change bulk selection panel to allow more versatile input (#4394)

# Description of Changes

- Add features to BulkSelectionPanel to allow more versatility when
selecting pages
- Make changes to Tooltip to: Remove non-existent props delayAppearance,
fixed defaults no hardcoded maxWidth, and documented new props
(closeOnOutside, containerStyle, minWidth). Clarify pinned vs. unpinned
outside-click logic, hover/focus interactions, and event/ref
preservation.
- Made top controls show full text always rather than dynamically
display the text only for the selected items
---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
This commit is contained in:
EthanHealy01
2025-09-18 10:19:52 +00:00
committed by GitHub
parent 06e5205302
commit d2de8e54aa
22 changed files with 2323 additions and 441 deletions
+68 -3
View File
@@ -1194,9 +1194,7 @@
},
"pageSelection": {
"tooltip": {
"header": {
"title": "Page Selection Guide"
},
"header": { "title": "Page Selection Guide" },
"basic": {
"title": "Basic Usage",
"text": "Select specific pages from your PDF document using simple syntax.",
@@ -1213,7 +1211,74 @@
"bullet1": "Page numbers start from 1 (not 0)",
"bullet2": "Spaces are automatically removed",
"bullet3": "Invalid expressions are ignored"
},
"syntax": {
"title": "Syntax Basics",
"text": "Use numbers, ranges, keywords, and progressions (n starts at 0). Parentheses are supported.",
"bullets": {
"numbers": "Numbers/ranges: 5, 10-20",
"keywords": "Keywords: odd, even",
"progressions": "Progressions: 3n, 4n+1"
}
},
"operators": {
"title": "Operators",
"text": "AND has higher precedence than comma. NOT applies within the document range.",
"and": "AND: & or \"and\" — require both conditions (e.g., 1-50 & even)",
"comma": "Comma: , or | — combine selections (e.g., 1-10, 20)",
"not": "NOT: ! or \"not\" — exclude pages (e.g., 3n & not 30)"
},
"examples": { "title": "Examples" }
}
},
"bulkSelection": {
"header": { "title": "Page Selection Guide" },
"syntax": {
"title": "Syntax Basics",
"text": "Use numbers, ranges, keywords, and progressions (n starts at 0). Parentheses are supported.",
"bullets": {
"numbers": "Numbers/ranges: 5, 10-20",
"keywords": "Keywords: odd, even",
"progressions": "Progressions: 3n, 4n+1"
}
},
"operators": {
"title": "Operators",
"text": "AND has higher precedence than comma. NOT applies within the document range.",
"and": "AND: & or \"and\" — require both conditions (e.g., 1-50 & even)",
"comma": "Comma: , or | — combine selections (e.g., 1-10, 20)",
"not": "NOT: ! or \"not\" — exclude pages (e.g., 3n & not 30)"
},
"examples": {
"title": "Examples",
"first50": "First 50",
"last50": "Last 50",
"every3rd": "Every 3rd",
"oddWithinExcluding": "Odd within 1-20 excluding 5-7",
"combineSets": "Combine sets"
},
"firstNPages": {
"title": "First N Pages",
"placeholder": "Number of pages"
},
"lastNPages": {
"title": "Last N Pages",
"placeholder": "Number of pages"
},
"everyNthPage": {
"title": "Every Nth Page",
"placeholder": "Step size"
},
"range": {
"title": "Range",
"fromPlaceholder": "From",
"toPlaceholder": "To"
},
"keywords": {
"title": "Keywords"
},
"advanced": {
"title": "Advanced"
}
},
"compressPdfs": {