@slotted/angular 0.0.0-stage → 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -2
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/accordion.json +345 -0
- package/docs/accordion.md +207 -0
- package/docs/action-bar.json +421 -0
- package/docs/action-bar.md +364 -0
- package/docs/action-sheet.json +210 -0
- package/docs/action-sheet.md +19 -0
- package/docs/alert.json +407 -0
- package/docs/alert.md +239 -0
- package/docs/app-shell.examples.md +349 -0
- package/docs/app-shell.json +835 -0
- package/docs/app-shell.md +214 -0
- package/docs/aspect-ratio.json +159 -0
- package/docs/aspect-ratio.md +134 -0
- package/docs/attachment.json +486 -0
- package/docs/attachment.md +253 -0
- package/docs/avatar-group.json +208 -0
- package/docs/avatar-group.md +130 -0
- package/docs/avatar.json +342 -0
- package/docs/avatar.md +142 -0
- package/docs/badge.json +334 -0
- package/docs/badge.md +138 -0
- package/docs/breadcrumb.json +368 -0
- package/docs/breadcrumb.md +237 -0
- package/docs/button-group.json +158 -0
- package/docs/button-group.md +72 -0
- package/docs/button.examples.md +621 -0
- package/docs/button.json +977 -0
- package/docs/button.md +200 -0
- package/docs/calendar.json +592 -0
- package/docs/calendar.md +242 -0
- package/docs/card.json +283 -0
- package/docs/card.md +130 -0
- package/docs/carousel.json +560 -0
- package/docs/carousel.md +357 -0
- package/docs/cascader.json +933 -0
- package/docs/cascader.md +379 -0
- package/docs/chart.examples.md +582 -0
- package/docs/chart.json +1359 -0
- package/docs/chart.md +187 -0
- package/docs/checkbox-group.examples.md +612 -0
- package/docs/checkbox-group.json +395 -0
- package/docs/checkbox-group.md +106 -0
- package/docs/checkbox.examples.md +546 -0
- package/docs/checkbox.json +506 -0
- package/docs/checkbox.md +104 -0
- package/docs/code-block.json +616 -0
- package/docs/code-block.md +303 -0
- package/docs/collapsible.json +456 -0
- package/docs/collapsible.md +261 -0
- package/docs/color-picker.json +523 -0
- package/docs/color-picker.md +201 -0
- package/docs/column-manager.json +486 -0
- package/docs/column-manager.md +277 -0
- package/docs/combobox.examples.md +1732 -0
- package/docs/combobox.json +1250 -0
- package/docs/combobox.md +209 -0
- package/docs/command-palette.json +800 -0
- package/docs/command-palette.md +419 -0
- package/docs/container.json +156 -0
- package/docs/container.md +92 -0
- package/docs/context-menu.json +231 -0
- package/docs/context-menu.md +176 -0
- package/docs/currency-field.examples.md +321 -0
- package/docs/currency-field.json +649 -0
- package/docs/currency-field.md +128 -0
- package/docs/dashboard-grid.json +680 -0
- package/docs/dashboard-grid.md +265 -0
- package/docs/data-grid.examples.md +3064 -0
- package/docs/data-grid.json +1577 -0
- package/docs/data-grid.md +237 -0
- package/docs/data-grid.props.md +81 -0
- package/docs/data-list.json +685 -0
- package/docs/data-list.md +327 -0
- package/docs/date-field.json +490 -0
- package/docs/date-field.md +235 -0
- package/docs/date-picker.examples.md +1226 -0
- package/docs/date-picker.json +696 -0
- package/docs/date-picker.md +121 -0
- package/docs/date-range-picker.examples.md +1300 -0
- package/docs/date-range-picker.json +903 -0
- package/docs/date-range-picker.md +142 -0
- package/docs/datetime-field.json +665 -0
- package/docs/datetime-field.md +337 -0
- package/docs/datetime-picker.examples.md +1269 -0
- package/docs/datetime-picker.json +928 -0
- package/docs/datetime-picker.md +150 -0
- package/docs/datetime-range-picker.examples.md +225 -0
- package/docs/datetime-range-picker.json +1015 -0
- package/docs/datetime-range-picker.md +162 -0
- package/docs/description-list.json +471 -0
- package/docs/description-list.md +268 -0
- package/docs/detail-panel.json +530 -0
- package/docs/detail-panel.md +361 -0
- package/docs/dialog.examples.md +2467 -0
- package/docs/dialog.json +1141 -0
- package/docs/dialog.md +217 -0
- package/docs/dialog.props.md +63 -0
- package/docs/divider.json +148 -0
- package/docs/divider.md +83 -0
- package/docs/drawer.examples.md +1929 -0
- package/docs/drawer.json +753 -0
- package/docs/drawer.md +199 -0
- package/docs/entity-picker.json +946 -0
- package/docs/entity-picker.md +365 -0
- package/docs/event-calendar.examples.md +308 -0
- package/docs/event-calendar.json +1202 -0
- package/docs/event-calendar.md +201 -0
- package/docs/field-group.json +333 -0
- package/docs/field-group.md +181 -0
- package/docs/field.examples.md +676 -0
- package/docs/field.json +528 -0
- package/docs/field.md +127 -0
- package/docs/filter-bar.json +817 -0
- package/docs/filter-bar.md +380 -0
- package/docs/form.json +378 -0
- package/docs/form.md +235 -0
- package/docs/fullscreen.json +395 -0
- package/docs/fullscreen.md +225 -0
- package/docs/grid.json +176 -0
- package/docs/grid.md +74 -0
- package/docs/highlight.json +279 -0
- package/docs/highlight.md +210 -0
- package/docs/hover-card.json +254 -0
- package/docs/hover-card.md +213 -0
- package/docs/icon.json +173 -0
- package/docs/icon.md +101 -0
- package/docs/image.json +476 -0
- package/docs/image.md +254 -0
- package/docs/import-export-center.json +836 -0
- package/docs/import-export-center.md +345 -0
- package/docs/index.md +141 -0
- package/docs/inline-message.json +312 -0
- package/docs/inline-message.md +191 -0
- package/docs/inline.json +149 -0
- package/docs/inline.md +72 -0
- package/docs/kbd.json +350 -0
- package/docs/kbd.md +210 -0
- package/docs/link.json +264 -0
- package/docs/link.md +167 -0
- package/docs/list-item.json +463 -0
- package/docs/list-item.md +236 -0
- package/docs/list.json +321 -0
- package/docs/list.md +185 -0
- package/docs/listbox.json +807 -0
- package/docs/listbox.md +413 -0
- package/docs/loading-overlay.json +440 -0
- package/docs/loading-overlay.md +248 -0
- package/docs/markdown.json +461 -0
- package/docs/markdown.md +266 -0
- package/docs/menu.examples.md +1651 -0
- package/docs/menu.json +922 -0
- package/docs/menu.md +155 -0
- package/docs/menubar.json +292 -0
- package/docs/menubar.md +173 -0
- package/docs/message-scroller.json +401 -0
- package/docs/message-scroller.md +212 -0
- package/docs/message.json +862 -0
- package/docs/message.md +473 -0
- package/docs/multi-select.examples.md +1922 -0
- package/docs/multi-select.json +1314 -0
- package/docs/multi-select.md +213 -0
- package/docs/navigation-menu.json +529 -0
- package/docs/navigation-menu.md +329 -0
- package/docs/notification-center.json +664 -0
- package/docs/notification-center.md +372 -0
- package/docs/number-field.examples.md +1078 -0
- package/docs/number-field.json +668 -0
- package/docs/number-field.md +137 -0
- package/docs/otp-input.json +479 -0
- package/docs/otp-input.md +291 -0
- package/docs/page-header.json +574 -0
- package/docs/page-header.md +338 -0
- package/docs/page.json +332 -0
- package/docs/page.md +184 -0
- package/docs/pagination.json +434 -0
- package/docs/pagination.md +238 -0
- package/docs/popover.examples.md +1235 -0
- package/docs/popover.json +656 -0
- package/docs/popover.md +199 -0
- package/docs/progress-indicator.json +501 -0
- package/docs/progress-indicator.md +329 -0
- package/docs/prompt-composer.json +498 -0
- package/docs/prompt-composer.md +278 -0
- package/docs/prose.json +357 -0
- package/docs/prose.md +226 -0
- package/docs/radio-group.examples.md +626 -0
- package/docs/radio-group.json +541 -0
- package/docs/radio-group.md +112 -0
- package/docs/rating.json +1053 -0
- package/docs/rating.md +435 -0
- package/docs/result-state.json +376 -0
- package/docs/result-state.md +286 -0
- package/docs/saved-views.json +384 -0
- package/docs/saved-views.md +242 -0
- package/docs/scroll-area.json +120 -0
- package/docs/scroll-area.md +8 -0
- package/docs/section.json +344 -0
- package/docs/section.md +208 -0
- package/docs/segmented-control.json +429 -0
- package/docs/segmented-control.md +240 -0
- package/docs/select.examples.md +1214 -0
- package/docs/select.json +1147 -0
- package/docs/select.md +199 -0
- package/docs/side-navigation.json +632 -0
- package/docs/side-navigation.md +430 -0
- package/docs/skeleton.json +358 -0
- package/docs/skeleton.md +223 -0
- package/docs/slider.json +522 -0
- package/docs/slider.md +261 -0
- package/docs/sparkline.json +426 -0
- package/docs/sparkline.md +206 -0
- package/docs/split-button.json +361 -0
- package/docs/split-button.md +275 -0
- package/docs/splitter.json +142 -0
- package/docs/splitter.md +14 -0
- package/docs/stack.json +135 -0
- package/docs/stack.md +74 -0
- package/docs/stat-card.json +529 -0
- package/docs/stat-card.md +270 -0
- package/docs/status-indicator.json +314 -0
- package/docs/status-indicator.md +197 -0
- package/docs/stepper.json +451 -0
- package/docs/stepper.md +250 -0
- package/docs/switch.json +451 -0
- package/docs/switch.md +508 -0
- package/docs/table-of-contents.json +553 -0
- package/docs/table-of-contents.md +289 -0
- package/docs/table.examples.md +1981 -0
- package/docs/table.json +1059 -0
- package/docs/table.md +290 -0
- package/docs/tabs.examples.md +1370 -0
- package/docs/tabs.json +661 -0
- package/docs/tabs.md +211 -0
- package/docs/tag.json +813 -0
- package/docs/tag.md +241 -0
- package/docs/tags-input.json +771 -0
- package/docs/tags-input.md +361 -0
- package/docs/text-field.examples.md +821 -0
- package/docs/text-field.json +604 -0
- package/docs/text-field.md +125 -0
- package/docs/textarea.examples.md +612 -0
- package/docs/textarea.json +440 -0
- package/docs/textarea.md +98 -0
- package/docs/time-field.json +584 -0
- package/docs/time-field.md +291 -0
- package/docs/time-picker.json +679 -0
- package/docs/time-picker.md +315 -0
- package/docs/time-range-picker.examples.md +191 -0
- package/docs/time-range-picker.json +924 -0
- package/docs/time-range-picker.md +152 -0
- package/docs/timeline.json +839 -0
- package/docs/timeline.md +401 -0
- package/docs/toast.json +642 -0
- package/docs/toast.md +311 -0
- package/docs/toggle-group.json +417 -0
- package/docs/toggle-group.md +255 -0
- package/docs/toggle.json +326 -0
- package/docs/toggle.md +222 -0
- package/docs/toolbar.json +380 -0
- package/docs/toolbar.md +240 -0
- package/docs/tooltip.examples.md +664 -0
- package/docs/tooltip.json +604 -0
- package/docs/tooltip.md +146 -0
- package/docs/top-navigation.examples.md +287 -0
- package/docs/top-navigation.json +648 -0
- package/docs/top-navigation.md +138 -0
- package/docs/tour.json +759 -0
- package/docs/tour.md +337 -0
- package/docs/transfer.json +746 -0
- package/docs/transfer.md +273 -0
- package/docs/tree.json +918 -0
- package/docs/tree.md +397 -0
- package/docs/typography.json +317 -0
- package/docs/typography.md +107 -0
- package/docs/upload.examples.md +358 -0
- package/docs/upload.json +1103 -0
- package/docs/upload.md +166 -0
- package/docs/visually-hidden.json +71 -0
- package/docs/visually-hidden.md +42 -0
- package/docs/wizard.json +724 -0
- package/docs/wizard.md +295 -0
- package/fesm2022/slotted-angular-accordion.mjs +247 -0
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-bar.mjs +639 -0
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
- package/fesm2022/slotted-angular-alert.mjs +427 -0
- package/fesm2022/slotted-angular-alert.mjs.map +1 -0
- package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
- package/fesm2022/slotted-angular-attachment.mjs +595 -0
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar.mjs +330 -0
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
- package/fesm2022/slotted-angular-badge.mjs +255 -0
- package/fesm2022/slotted-angular-badge.mjs.map +1 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/slotted-angular-button-group.mjs +146 -0
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-button.mjs +692 -0
- package/fesm2022/slotted-angular-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-calendar.mjs +916 -0
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-card.mjs +225 -0
- package/fesm2022/slotted-angular-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-carousel.mjs +840 -0
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
- package/fesm2022/slotted-angular-cascader.mjs +1839 -0
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
- package/fesm2022/slotted-angular-chart.mjs +974 -0
- package/fesm2022/slotted-angular-chart.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox.mjs +468 -0
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-code-block.mjs +476 -0
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
- package/fesm2022/slotted-angular-collapsible.mjs +479 -0
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
- package/fesm2022/slotted-angular-color-picker.mjs +910 -0
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
- package/fesm2022/slotted-angular-combobox.mjs +1480 -0
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
- package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
- package/fesm2022/slotted-angular-container.mjs +105 -0
- package/fesm2022/slotted-angular-container.mjs.map +1 -0
- package/fesm2022/slotted-angular-context-menu.mjs +221 -0
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-list.mjs +1418 -0
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-field.mjs +772 -0
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-picker.mjs +690 -0
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-description-list.mjs +545 -0
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
- package/fesm2022/slotted-angular-dialog.mjs +980 -0
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
- package/fesm2022/slotted-angular-divider.mjs +76 -0
- package/fesm2022/slotted-angular-divider.mjs.map +1 -0
- package/fesm2022/slotted-angular-drawer.mjs +1397 -0
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
- package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-field-group.mjs +301 -0
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-field.mjs +928 -0
- package/fesm2022/slotted-angular-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-form.mjs +592 -0
- package/fesm2022/slotted-angular-form.mjs.map +1 -0
- package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
- package/fesm2022/slotted-angular-grid.mjs +58 -0
- package/fesm2022/slotted-angular-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-highlight.mjs +123 -0
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
- package/fesm2022/slotted-angular-hover-card.mjs +326 -0
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-i18n.mjs +75 -0
- package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
- package/fesm2022/slotted-angular-icon.mjs +232 -0
- package/fesm2022/slotted-angular-icon.mjs.map +1 -0
- package/fesm2022/slotted-angular-image.mjs +442 -0
- package/fesm2022/slotted-angular-image.mjs.map +1 -0
- package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline-message.mjs +280 -0
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline.mjs +52 -0
- package/fesm2022/slotted-angular-inline.mjs.map +1 -0
- package/fesm2022/slotted-angular-kbd.mjs +284 -0
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
- package/fesm2022/slotted-angular-link.mjs +182 -0
- package/fesm2022/slotted-angular-link.mjs.map +1 -0
- package/fesm2022/slotted-angular-list-item.mjs +367 -0
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
- package/fesm2022/slotted-angular-list.mjs +256 -0
- package/fesm2022/slotted-angular-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-listbox.mjs +1274 -0
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
- package/fesm2022/slotted-angular-markdown.mjs +914 -0
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
- package/fesm2022/slotted-angular-menu.mjs +1211 -0
- package/fesm2022/slotted-angular-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-menubar.mjs +230 -0
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
- package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
- package/fesm2022/slotted-angular-message.mjs +866 -0
- package/fesm2022/slotted-angular-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-number-field.mjs +966 -0
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-otp-input.mjs +629 -0
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-page-header.mjs +788 -0
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
- package/fesm2022/slotted-angular-page.mjs +255 -0
- package/fesm2022/slotted-angular-page.mjs.map +1 -0
- package/fesm2022/slotted-angular-pagination.mjs +562 -0
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
- package/fesm2022/slotted-angular-popover.mjs +799 -0
- package/fesm2022/slotted-angular-popover.mjs.map +1 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
- package/fesm2022/slotted-angular-prose.mjs +314 -0
- package/fesm2022/slotted-angular-prose.mjs.map +1 -0
- package/fesm2022/slotted-angular-radio-group.mjs +469 -0
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-rating.mjs +1174 -0
- package/fesm2022/slotted-angular-rating.mjs.map +1 -0
- package/fesm2022/slotted-angular-result-state.mjs +330 -0
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
- package/fesm2022/slotted-angular-saved-views.mjs +877 -0
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
- package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
- package/fesm2022/slotted-angular-section.mjs +266 -0
- package/fesm2022/slotted-angular-section.mjs.map +1 -0
- package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
- package/fesm2022/slotted-angular-select.mjs +1899 -0
- package/fesm2022/slotted-angular-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-skeleton.mjs +316 -0
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
- package/fesm2022/slotted-angular-slider.mjs +586 -0
- package/fesm2022/slotted-angular-slider.mjs.map +1 -0
- package/fesm2022/slotted-angular-sparkline.mjs +235 -0
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
- package/fesm2022/slotted-angular-split-button.mjs +331 -0
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-splitter.mjs +516 -0
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
- package/fesm2022/slotted-angular-stack.mjs +48 -0
- package/fesm2022/slotted-angular-stack.mjs.map +1 -0
- package/fesm2022/slotted-angular-stat-card.mjs +478 -0
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-stepper.mjs +536 -0
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
- package/fesm2022/slotted-angular-switch.mjs +447 -0
- package/fesm2022/slotted-angular-switch.mjs.map +1 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
- package/fesm2022/slotted-angular-table.mjs +2518 -0
- package/fesm2022/slotted-angular-table.mjs.map +1 -0
- package/fesm2022/slotted-angular-tabs.mjs +829 -0
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
- package/fesm2022/slotted-angular-tag.mjs +595 -0
- package/fesm2022/slotted-angular-tag.mjs.map +1 -0
- package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-text-field.mjs +674 -0
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-textarea.mjs +275 -0
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
- package/fesm2022/slotted-angular-theme.mjs +45 -0
- package/fesm2022/slotted-angular-theme.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-field.mjs +895 -0
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-picker.mjs +856 -0
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-timeline.mjs +928 -0
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
- package/fesm2022/slotted-angular-toast.mjs +917 -0
- package/fesm2022/slotted-angular-toast.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle.mjs +162 -0
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
- package/fesm2022/slotted-angular-toolbar.mjs +536 -0
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
- package/fesm2022/slotted-angular-tooltip.mjs +798 -0
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
- package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-tour.mjs +1330 -0
- package/fesm2022/slotted-angular-tour.mjs.map +1 -0
- package/fesm2022/slotted-angular-transfer.mjs +1406 -0
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
- package/fesm2022/slotted-angular-tree.mjs +1448 -0
- package/fesm2022/slotted-angular-tree.mjs.map +1 -0
- package/fesm2022/slotted-angular-typography.mjs +184 -0
- package/fesm2022/slotted-angular-typography.mjs.map +1 -0
- package/fesm2022/slotted-angular-upload.mjs +1523 -0
- package/fesm2022/slotted-angular-upload.mjs.map +1 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
- package/fesm2022/slotted-angular-wizard.mjs +1715 -0
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
- package/fesm2022/slotted-angular.mjs +4 -0
- package/fesm2022/slotted-angular.mjs.map +1 -0
- package/package.json +537 -3
- package/types/slotted-angular-accordion.d.ts +156 -0
- package/types/slotted-angular-accordion.d.ts.map +1 -0
- package/types/slotted-angular-action-bar.d.ts +291 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -0
- package/types/slotted-angular-action-sheet.d.ts +294 -0
- package/types/slotted-angular-action-sheet.d.ts.map +1 -0
- package/types/slotted-angular-alert.d.ts +214 -0
- package/types/slotted-angular-alert.d.ts.map +1 -0
- package/types/slotted-angular-app-shell.d.ts +549 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -0
- package/types/slotted-angular-aspect-ratio.d.ts +57 -0
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
- package/types/slotted-angular-attachment.d.ts +294 -0
- package/types/slotted-angular-attachment.d.ts.map +1 -0
- package/types/slotted-angular-avatar-group.d.ts +119 -0
- package/types/slotted-angular-avatar-group.d.ts.map +1 -0
- package/types/slotted-angular-avatar.d.ts +202 -0
- package/types/slotted-angular-avatar.d.ts.map +1 -0
- package/types/slotted-angular-badge.d.ts +166 -0
- package/types/slotted-angular-badge.d.ts.map +1 -0
- package/types/slotted-angular-breadcrumb.d.ts +251 -0
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
- package/types/slotted-angular-button-group.d.ts +89 -0
- package/types/slotted-angular-button-group.d.ts.map +1 -0
- package/types/slotted-angular-button.d.ts +390 -0
- package/types/slotted-angular-button.d.ts.map +1 -0
- package/types/slotted-angular-calendar.d.ts +280 -0
- package/types/slotted-angular-calendar.d.ts.map +1 -0
- package/types/slotted-angular-card.d.ts +140 -0
- package/types/slotted-angular-card.d.ts.map +1 -0
- package/types/slotted-angular-carousel.d.ts +288 -0
- package/types/slotted-angular-carousel.d.ts.map +1 -0
- package/types/slotted-angular-cascader.d.ts +351 -0
- package/types/slotted-angular-cascader.d.ts.map +1 -0
- package/types/slotted-angular-chart.d.ts +319 -0
- package/types/slotted-angular-chart.d.ts.map +1 -0
- package/types/slotted-angular-checkbox-group.d.ts +156 -0
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
- package/types/slotted-angular-checkbox.d.ts +197 -0
- package/types/slotted-angular-checkbox.d.ts.map +1 -0
- package/types/slotted-angular-code-block.d.ts +158 -0
- package/types/slotted-angular-code-block.d.ts.map +1 -0
- package/types/slotted-angular-collapsible.d.ts +272 -0
- package/types/slotted-angular-collapsible.d.ts.map +1 -0
- package/types/slotted-angular-color-picker.d.ts +181 -0
- package/types/slotted-angular-color-picker.d.ts.map +1 -0
- package/types/slotted-angular-column-manager.d.ts +200 -0
- package/types/slotted-angular-column-manager.d.ts.map +1 -0
- package/types/slotted-angular-combobox.d.ts +449 -0
- package/types/slotted-angular-combobox.d.ts.map +1 -0
- package/types/slotted-angular-command-palette.d.ts +256 -0
- package/types/slotted-angular-command-palette.d.ts.map +1 -0
- package/types/slotted-angular-container.d.ts +84 -0
- package/types/slotted-angular-container.d.ts.map +1 -0
- package/types/slotted-angular-context-menu.d.ts +84 -0
- package/types/slotted-angular-context-menu.d.ts.map +1 -0
- package/types/slotted-angular-currency-field.d.ts +480 -0
- package/types/slotted-angular-currency-field.d.ts.map +1 -0
- package/types/slotted-angular-dashboard-grid.d.ts +341 -0
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-grid.d.ts +1077 -0
- package/types/slotted-angular-data-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-list.d.ts +272 -0
- package/types/slotted-angular-data-list.d.ts.map +1 -0
- package/types/slotted-angular-date-field.d.ts +320 -0
- package/types/slotted-angular-date-field.d.ts.map +1 -0
- package/types/slotted-angular-date-picker.d.ts +224 -0
- package/types/slotted-angular-date-picker.d.ts.map +1 -0
- package/types/slotted-angular-date-range-picker.d.ts +310 -0
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-field.d.ts +362 -0
- package/types/slotted-angular-datetime-field.d.ts.map +1 -0
- package/types/slotted-angular-datetime-picker.d.ts +370 -0
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-description-list.d.ts +281 -0
- package/types/slotted-angular-description-list.d.ts.map +1 -0
- package/types/slotted-angular-detail-panel.d.ts +240 -0
- package/types/slotted-angular-detail-panel.d.ts.map +1 -0
- package/types/slotted-angular-dialog.d.ts +497 -0
- package/types/slotted-angular-dialog.d.ts.map +1 -0
- package/types/slotted-angular-divider.d.ts +40 -0
- package/types/slotted-angular-divider.d.ts.map +1 -0
- package/types/slotted-angular-drawer.d.ts +532 -0
- package/types/slotted-angular-drawer.d.ts.map +1 -0
- package/types/slotted-angular-entity-picker.d.ts +338 -0
- package/types/slotted-angular-entity-picker.d.ts.map +1 -0
- package/types/slotted-angular-event-calendar.d.ts +574 -0
- package/types/slotted-angular-event-calendar.d.ts.map +1 -0
- package/types/slotted-angular-field-group.d.ts +152 -0
- package/types/slotted-angular-field-group.d.ts.map +1 -0
- package/types/slotted-angular-field.d.ts +535 -0
- package/types/slotted-angular-field.d.ts.map +1 -0
- package/types/slotted-angular-filter-bar.d.ts +573 -0
- package/types/slotted-angular-filter-bar.d.ts.map +1 -0
- package/types/slotted-angular-form.d.ts +298 -0
- package/types/slotted-angular-form.d.ts.map +1 -0
- package/types/slotted-angular-fullscreen.d.ts +145 -0
- package/types/slotted-angular-fullscreen.d.ts.map +1 -0
- package/types/slotted-angular-grid.d.ts +50 -0
- package/types/slotted-angular-grid.d.ts.map +1 -0
- package/types/slotted-angular-highlight.d.ts +93 -0
- package/types/slotted-angular-highlight.d.ts.map +1 -0
- package/types/slotted-angular-hover-card.d.ts +140 -0
- package/types/slotted-angular-hover-card.d.ts.map +1 -0
- package/types/slotted-angular-i18n.d.ts +46 -0
- package/types/slotted-angular-i18n.d.ts.map +1 -0
- package/types/slotted-angular-icon.d.ts +94 -0
- package/types/slotted-angular-icon.d.ts.map +1 -0
- package/types/slotted-angular-image.d.ts +251 -0
- package/types/slotted-angular-image.d.ts.map +1 -0
- package/types/slotted-angular-import-export-center.d.ts +351 -0
- package/types/slotted-angular-import-export-center.d.ts.map +1 -0
- package/types/slotted-angular-inline-message.d.ts +195 -0
- package/types/slotted-angular-inline-message.d.ts.map +1 -0
- package/types/slotted-angular-inline.d.ts +41 -0
- package/types/slotted-angular-inline.d.ts.map +1 -0
- package/types/slotted-angular-kbd.d.ts +174 -0
- package/types/slotted-angular-kbd.d.ts.map +1 -0
- package/types/slotted-angular-link.d.ts +94 -0
- package/types/slotted-angular-link.d.ts.map +1 -0
- package/types/slotted-angular-list-item.d.ts +210 -0
- package/types/slotted-angular-list-item.d.ts.map +1 -0
- package/types/slotted-angular-list.d.ts +176 -0
- package/types/slotted-angular-list.d.ts.map +1 -0
- package/types/slotted-angular-listbox.d.ts +470 -0
- package/types/slotted-angular-listbox.d.ts.map +1 -0
- package/types/slotted-angular-loading-overlay.d.ts +219 -0
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
- package/types/slotted-angular-markdown.d.ts +172 -0
- package/types/slotted-angular-markdown.d.ts.map +1 -0
- package/types/slotted-angular-menu.d.ts +448 -0
- package/types/slotted-angular-menu.d.ts.map +1 -0
- package/types/slotted-angular-menubar.d.ts +90 -0
- package/types/slotted-angular-menubar.d.ts.map +1 -0
- package/types/slotted-angular-message-scroller.d.ts +151 -0
- package/types/slotted-angular-message-scroller.d.ts.map +1 -0
- package/types/slotted-angular-message.d.ts +348 -0
- package/types/slotted-angular-message.d.ts.map +1 -0
- package/types/slotted-angular-multi-select.d.ts +462 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -0
- package/types/slotted-angular-navigation-menu.d.ts +309 -0
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
- package/types/slotted-angular-notification-center.d.ts +318 -0
- package/types/slotted-angular-notification-center.d.ts.map +1 -0
- package/types/slotted-angular-number-field.d.ts +402 -0
- package/types/slotted-angular-number-field.d.ts.map +1 -0
- package/types/slotted-angular-otp-input.d.ts +286 -0
- package/types/slotted-angular-otp-input.d.ts.map +1 -0
- package/types/slotted-angular-page-header.d.ts +334 -0
- package/types/slotted-angular-page-header.d.ts.map +1 -0
- package/types/slotted-angular-page.d.ts +141 -0
- package/types/slotted-angular-page.d.ts.map +1 -0
- package/types/slotted-angular-pagination.d.ts +213 -0
- package/types/slotted-angular-pagination.d.ts.map +1 -0
- package/types/slotted-angular-popover.d.ts +366 -0
- package/types/slotted-angular-popover.d.ts.map +1 -0
- package/types/slotted-angular-progress-indicator.d.ts +312 -0
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
- package/types/slotted-angular-prompt-composer.d.ts +242 -0
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
- package/types/slotted-angular-prose.d.ts +171 -0
- package/types/slotted-angular-prose.d.ts.map +1 -0
- package/types/slotted-angular-radio-group.d.ts +268 -0
- package/types/slotted-angular-radio-group.d.ts.map +1 -0
- package/types/slotted-angular-rating.d.ts +374 -0
- package/types/slotted-angular-rating.d.ts.map +1 -0
- package/types/slotted-angular-result-state.d.ts +217 -0
- package/types/slotted-angular-result-state.d.ts.map +1 -0
- package/types/slotted-angular-saved-views.d.ts +198 -0
- package/types/slotted-angular-saved-views.d.ts.map +1 -0
- package/types/slotted-angular-scroll-area.d.ts +186 -0
- package/types/slotted-angular-scroll-area.d.ts.map +1 -0
- package/types/slotted-angular-section.d.ts +143 -0
- package/types/slotted-angular-section.d.ts.map +1 -0
- package/types/slotted-angular-segmented-control.d.ts +251 -0
- package/types/slotted-angular-segmented-control.d.ts.map +1 -0
- package/types/slotted-angular-select.d.ts +507 -0
- package/types/slotted-angular-select.d.ts.map +1 -0
- package/types/slotted-angular-side-navigation.d.ts +373 -0
- package/types/slotted-angular-side-navigation.d.ts.map +1 -0
- package/types/slotted-angular-skeleton.d.ts +198 -0
- package/types/slotted-angular-skeleton.d.ts.map +1 -0
- package/types/slotted-angular-slider.d.ts +216 -0
- package/types/slotted-angular-slider.d.ts.map +1 -0
- package/types/slotted-angular-sparkline.d.ts +106 -0
- package/types/slotted-angular-sparkline.d.ts.map +1 -0
- package/types/slotted-angular-split-button.d.ts +180 -0
- package/types/slotted-angular-split-button.d.ts.map +1 -0
- package/types/slotted-angular-splitter.d.ts +206 -0
- package/types/slotted-angular-splitter.d.ts.map +1 -0
- package/types/slotted-angular-stack.d.ts +38 -0
- package/types/slotted-angular-stack.d.ts.map +1 -0
- package/types/slotted-angular-stat-card.d.ts +232 -0
- package/types/slotted-angular-stat-card.d.ts.map +1 -0
- package/types/slotted-angular-status-indicator.d.ts +106 -0
- package/types/slotted-angular-status-indicator.d.ts.map +1 -0
- package/types/slotted-angular-stepper.d.ts +198 -0
- package/types/slotted-angular-stepper.d.ts.map +1 -0
- package/types/slotted-angular-switch.d.ts +243 -0
- package/types/slotted-angular-switch.d.ts.map +1 -0
- package/types/slotted-angular-table-of-contents.d.ts +210 -0
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
- package/types/slotted-angular-table.d.ts +888 -0
- package/types/slotted-angular-table.d.ts.map +1 -0
- package/types/slotted-angular-tabs.d.ts +340 -0
- package/types/slotted-angular-tabs.d.ts.map +1 -0
- package/types/slotted-angular-tag.d.ts +279 -0
- package/types/slotted-angular-tag.d.ts.map +1 -0
- package/types/slotted-angular-tags-input.d.ts +302 -0
- package/types/slotted-angular-tags-input.d.ts.map +1 -0
- package/types/slotted-angular-text-field.d.ts +334 -0
- package/types/slotted-angular-text-field.d.ts.map +1 -0
- package/types/slotted-angular-textarea.d.ts +150 -0
- package/types/slotted-angular-textarea.d.ts.map +1 -0
- package/types/slotted-angular-theme.d.ts +26 -0
- package/types/slotted-angular-theme.d.ts.map +1 -0
- package/types/slotted-angular-time-field.d.ts +300 -0
- package/types/slotted-angular-time-field.d.ts.map +1 -0
- package/types/slotted-angular-time-picker.d.ts +260 -0
- package/types/slotted-angular-time-picker.d.ts.map +1 -0
- package/types/slotted-angular-time-range-picker.d.ts +401 -0
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-timeline.d.ts +329 -0
- package/types/slotted-angular-timeline.d.ts.map +1 -0
- package/types/slotted-angular-toast.d.ts +340 -0
- package/types/slotted-angular-toast.d.ts.map +1 -0
- package/types/slotted-angular-toggle-group.d.ts +167 -0
- package/types/slotted-angular-toggle-group.d.ts.map +1 -0
- package/types/slotted-angular-toggle.d.ts +106 -0
- package/types/slotted-angular-toggle.d.ts.map +1 -0
- package/types/slotted-angular-toolbar.d.ts +252 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -0
- package/types/slotted-angular-tooltip.d.ts +388 -0
- package/types/slotted-angular-tooltip.d.ts.map +1 -0
- package/types/slotted-angular-top-navigation.d.ts +442 -0
- package/types/slotted-angular-top-navigation.d.ts.map +1 -0
- package/types/slotted-angular-tour.d.ts +440 -0
- package/types/slotted-angular-tour.d.ts.map +1 -0
- package/types/slotted-angular-transfer.d.ts +296 -0
- package/types/slotted-angular-transfer.d.ts.map +1 -0
- package/types/slotted-angular-tree.d.ts +499 -0
- package/types/slotted-angular-tree.d.ts.map +1 -0
- package/types/slotted-angular-typography.d.ts +89 -0
- package/types/slotted-angular-typography.d.ts.map +1 -0
- package/types/slotted-angular-upload.d.ts +365 -0
- package/types/slotted-angular-upload.d.ts.map +1 -0
- package/types/slotted-angular-visually-hidden.d.ts +19 -0
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
- package/types/slotted-angular-wizard.d.ts +441 -0
- package/types/slotted-angular-wizard.d.ts.map +1 -0
- package/types/slotted-angular.d.ts +3 -0
- package/types/slotted-angular.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-breadcrumb.mjs","sources":["../../breadcrumb/src/breadcrumb.constants.ts","../../breadcrumb/src/breadcrumb.ts","../../breadcrumb/src/slotted-angular-breadcrumb.ts"],"sourcesContent":["import { InjectionToken, inject } from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\n\n/**\n * What a trail does with crumbs its width cannot hold. `collapse` folds the\n * middle ones into the ellipsis; `wrap` lets the row break onto a second line\n * and only the count collapses.\n */\nexport type BreadcrumbOverflow = 'collapse' | 'wrap';\n\n/** Why the trail expanded. Only two things can ask: a press and a key. */\nexport type BreadcrumbExpandReason = 'pointer' | 'keyboard';\n\n/**\n * What every trail on the page does before it states anything of its own. The\n * three collapse numbers are here because how deep a trail may get before it\n * folds is a decision about the application rather than about one page.\n */\nexport interface BreadcrumbDefaults {\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n maxItems?: number;\n overflow?: BreadcrumbOverflow;\n /** The mark drawn between two crumbs, rendered once per item. */\n separator?: TemplateRef<unknown>;\n}\n\nexport const BREADCRUMB_DEFAULT_MAX_ITEMS = 8;\nexport const BREADCRUMB_DEFAULT_ITEMS_BEFORE = 1;\nexport const BREADCRUMB_DEFAULT_ITEMS_AFTER = 2;\nexport const BREADCRUMB_DEFAULT_OVERFLOW: BreadcrumbOverflow = 'collapse';\n\nexport const BREADCRUMB_DEFAULTS_TOKEN = new InjectionToken<BreadcrumbDefaults>(\n 'slotted breadcrumb defaults',\n { providedIn: 'root', factory: (): BreadcrumbDefaults => ({}) },\n);\n\n/**\n * An application decides once how deep its trails may get before they fold,\n * whether they fold for want of width, and what is drawn between two crumbs. A\n * trail that states any of those itself still wins: an explicit input is never\n * overridden by the token. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideBreadcrumbDefaults(defaults: BreadcrumbDefaults) {\n return { provide: BREADCRUMB_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectBreadcrumbDefaults(): BreadcrumbDefaults {\n return inject(BREADCRUMB_DEFAULTS_TOKEN);\n}\n\n/**\n * Which crumbs survive a collapse, as indices into the trail. Shared with the\n * React binding's own copy through the tests that assert the same table, and\n * deliberately not shared through `@slotted/core`: it is four lines, and a core\n * module exists for arithmetic two bindings would otherwise get *differently*\n * wrong, not for arithmetic they would each get right.\n */\nexport function collapsedRange(count: number, before: number, after: number) {\n const kept = Math.max(0, before) + Math.max(0, after);\n if (count <= kept) return undefined;\n return { start: Math.max(0, before), end: count - Math.max(0, after) };\n}\n","import {\n afterNextRender,\n afterRenderEffect,\n ApplicationRef,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n type ComponentRef,\n computed,\n contentChildren,\n createComponent,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n EnvironmentInjector,\n forwardRef,\n HostAttributeToken,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n breadcrumbMessages,\n type BreadcrumbMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createCollapse, type CollapseHandle } from '@slotted/core/overflow';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport {\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n BREADCRUMB_DEFAULT_MAX_ITEMS,\n BREADCRUMB_DEFAULT_OVERFLOW,\n collapsedRange,\n injectBreadcrumbDefaults,\n type BreadcrumbExpandReason,\n type BreadcrumbOverflow,\n} from './breadcrumb.constants';\n\n/**\n * The trail of ancestors above the current page.\n *\n * **The landmark and the list are the platform's.** `nav` makes the trail\n * findable and `ol` carries the hierarchy and the set size, which is the whole\n * of the APG's Breadcrumb pattern: it lists no keyboard interaction and two\n * attributes, and both are written here rather than reimplemented.\n *\n * **The collapse expands in place.** An overlay would need a layer, a\n * positioner and a dismissal policy; this needs none of them. The hidden\n * crumbs carry `hidden`, so they leave the accessibility tree with the page,\n * and the button that hides them names the count.\n *\n * **A trail that does not fit folds.** With `overflow=\"collapse\"` the list\n * measures itself and folds the middle crumbs its width cannot hold into the\n * same ellipsis, nearest the root first; what folded is read from the layout\n * and reported in `data-collapsed`, not owned by anyone.\n *\n * **It is a component on the consumer's own `nav`.** A directive carries no\n * `styleUrl`, and the element was never the family's to choose.\n */\n@Component({\n selector: 'nav[slBreadcrumb]',\n standalone: true,\n template: '<ng-content></ng-content>',\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumb',\n host: {\n 'data-ui': 'breadcrumb',\n 'data-part': 'root',\n '[attr.aria-label]': 'accessibleLabel()',\n '[attr.data-expanded]': 'expanded() ? \"\" : null',\n '[attr.data-collapsed]': 'collapsedCount() > 0 ? collapsedCount() : null',\n },\n})\nexport class SlBreadcrumb {\n /**\n * Present means controlled, for the life of the component, which is why the\n * unset value is `undefined` rather than `false`: a family that read `false`\n * as a consumer's answer would never own its own state.\n */\n readonly expandedValue = input(undefined, {\n alias: 'expanded',\n transform: (value: boolean | string | undefined) =>\n value === undefined ? undefined : booleanAttribute(value),\n });\n /** What an uncontrolled trail starts from, read once. */\n readonly defaultExpanded = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * landmark's name (`label`) and the ellipsis. A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<BreadcrumbMessages> | undefined>(undefined);\n readonly maxItems = input(undefined, { transform: optionalNumber });\n readonly itemsBeforeCollapse = input(undefined, { transform: optionalNumber });\n readonly itemsAfterCollapse = input(undefined, { transform: optionalNumber });\n readonly separator = input<TemplateRef<unknown> | undefined>(undefined);\n /** What the trail does with crumbs its width cannot hold. */\n readonly overflow = input<BreadcrumbOverflow | undefined>(undefined);\n\n /** How many crumbs are folded into the ellipsis, written by the list. */\n readonly collapsedCount = signal(0);\n\n /**\n * Emitted before the trail expands, carrying the value it replaces, the\n * reason and the event it came from. It is not the second half of\n * `[(expanded)]`: a two-way binding has one slot and can carry none of those.\n */\n readonly expandedChange = output<ChangeRequest<boolean>>();\n\n private readonly own = signal(false);\n readonly expanded = computed(() => this.expandedValue() ?? this.own());\n\n private readonly defaults = injectBreadcrumbDefaults();\n\n /** A static `aria-label` the consumer wrote survives the host binding. */\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n\n /** The family's words in the language in force, with this trail's `messages` laid over them. */\n readonly t = injectMessages(breadcrumbMessages, this.messages);\n readonly accessibleLabel = computed(() => this.ownLabel ?? this.t('label'));\n readonly maxItemsValue = computed(\n () => this.maxItems() ?? this.defaults.maxItems ?? BREADCRUMB_DEFAULT_MAX_ITEMS,\n );\n readonly beforeValue = computed(\n () =>\n this.itemsBeforeCollapse() ??\n this.defaults.itemsBeforeCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_BEFORE,\n );\n readonly afterValue = computed(\n () =>\n this.itemsAfterCollapse() ??\n this.defaults.itemsAfterCollapse ??\n BREADCRUMB_DEFAULT_ITEMS_AFTER,\n );\n readonly separatorValue = computed(() => this.separator() ?? this.defaults.separator);\n readonly overflowValue = computed(\n () => this.overflow() ?? this.defaults.overflow ?? BREADCRUMB_DEFAULT_OVERFLOW,\n );\n\n /**\n * Where focus goes once the ellipsis stops existing, registered by the list —\n * the only part that can see which crumb the ellipsis replaced. React reaches\n * the same crumb through an id it generates; Angular reaches it through the\n * query it already has, and neither writes anything the other does not.\n */\n private focusAfterExpand: (() => void) | undefined;\n\n registerFocusTarget(focus: (() => void) | undefined) {\n this.focusAfterExpand = focus;\n }\n\n private readonly injector = inject(Injector);\n\n /**\n * The ellipsis stops existing the moment it is pressed, and focus on a\n * removed element is lost to the body — so it is given to the first crumb the\n * expansion revealed. The move waits a microtask because that crumb is still\n * hidden while this runs.\n */\n expand(reason: BreadcrumbExpandReason, source?: Event) {\n if (this.expanded()) return;\n const state = createControllable<boolean>({\n controlled: this.expandedValue(),\n initial: this.expanded(),\n onRequest: (request) => this.expandedChange.emit(request),\n });\n if (state.request(true, reason, source)) this.own.set(true);\n /**\n * After the render, not after a microtask: the crumb focus moves to is\n * still hidden while this runs, and a microtask fires before Angular has\n * written the DOM. Focus then stayed on a removed button and fell to the\n * body, which the spec caught and nothing else would have.\n */\n afterNextRender(() => this.focusAfterExpand?.(), { injector: this.injector });\n }\n}\n\n/**\n * The control that reveals what the collapse hides, in an item of its own.\n *\n * The list creates it rather than any crumb drawing it, because it has to be a\n * sibling of the crumbs: a crumb that drew it inside itself hid it together\n * with itself, since the first crumb the collapse hides is the one it stands\n * in front of. Its accessible name carries the count, because three dots say\n * nothing about how much is behind them.\n */\n@Component({\n selector: 'li[slBreadcrumbEllipsis]',\n standalone: true,\n imports: [NgTemplateOutlet, SlGlyph, SlIcon],\n template: `\n <button\n [attr.aria-label]=\"label()\"\n aria-expanded=\"false\"\n data-part=\"ellipsis\"\n type=\"button\"\n (click)=\"trail.expand('pointer', $event)\"\n (keydown)=\"onKeydown($event)\"\n >\n <span slIcon><svg slGlyph name=\"ellipsis\"></svg></span>\n </button>\n <span aria-hidden=\"true\" data-part=\"separator\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'item' },\n})\nclass SlBreadcrumbEllipsis {\n readonly trail = inject(SlBreadcrumb);\n /* Declared below this class, and read only when an instance is created. */\n private readonly list = inject(SlBreadcrumbList);\n\n readonly label = computed(() => this.trail.t('showHidden', { count: this.list.hiddenCount() }));\n\n onKeydown(event: KeyboardEvent) {\n /* `Enter` and `Space` both activate a button and the browser turns each\n into a click; this is what tells the two apart in the request. */\n if (event.key === 'Enter' || event.key === ' ') this.trail.expand('keyboard', event);\n }\n}\n\n/**\n * The ordered list, and the one part that knows how many crumbs there are.\n *\n * It queries its items rather than projecting them blindly, because two facts\n * about a crumb can only be known from the outside: whether it is the last —\n * the last draws no separator — and whether the count collapse is hiding it.\n * It also owns the ellipsis, which it places in front of the first crumb that\n * can fold, and the width collapse.\n *\n * That is where the two bindings differ and the DOM does not: React maps its\n * children, Angular writes the same facts back onto queried items and inserts\n * the ellipsis's item itself.\n */\n@Directive({\n selector: 'ol[slBreadcrumbList]',\n standalone: true,\n exportAs: 'slBreadcrumbList',\n host: { 'data-part': 'list' },\n})\nexport class SlBreadcrumbList {\n private readonly trail = inject(SlBreadcrumb);\n /* The crumb is declared below this class, and the dev-server transform puts\n the query predicate in a static initializer — a direct reference would read\n the binding before it exists. `forwardRef` defers the read to the query. */\n private readonly items = contentChildren<SlBreadcrumbItem>(forwardRef(() => SlBreadcrumbItem));\n private readonly host: HTMLOListElement = inject(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly environment = inject(EnvironmentInjector);\n private readonly application = inject(ApplicationRef);\n\n private ellipsis: ComponentRef<SlBreadcrumbEllipsis> | null = null;\n private collapse: CollapseHandle | null = null;\n private readonly folded = signal(0);\n\n /**\n * The range is computed whether or not the trail is expanded, because two\n * different things read it. The collapse reads it only while folded; the\n * focus target reads it afterwards, and it has to still be there — the id\n * used to disappear with the ellipsis, which left focus on a removed button\n * and therefore on the body.\n */\n private readonly range = computed(() => {\n const count = this.items().length;\n const maxItems = this.trail.maxItemsValue();\n return maxItems <= 0 || count <= maxItems\n ? undefined\n : collapsedRange(count, this.trail.beforeValue(), this.trail.afterValue());\n });\n private readonly counted = computed(() => (this.trail.expanded() ? undefined : this.range()));\n /** Whether there is a middle at all: crumbs outside the ones that never fold. */\n private readonly middle = computed(\n () =>\n this.items().length >\n Math.max(0, this.trail.beforeValue()) + Math.max(0, this.trail.afterValue()),\n );\n /**\n * The width collapse runs only while the count has hidden nothing: a trail\n * the count already folded shows only the crumbs that never fold. One writer\n * per `hidden` attribute keeps the two from undoing each other — the item's\n * host binding writes it for the count, `createCollapse` for the width.\n */\n private readonly measuring = computed(\n () =>\n this.trail.overflowValue() === 'collapse' &&\n !this.trail.expanded() &&\n this.range() === undefined &&\n this.middle(),\n );\n\n readonly hiddenCount = computed(() => {\n const counted = this.counted();\n return counted === undefined ? this.folded() : counted.end - counted.start;\n });\n\n constructor() {\n effect(() => {\n const items = this.items();\n const counted = this.counted();\n for (const [index, item] of items.entries()) {\n item.last.set(index === items.length - 1);\n item.collapsed.set(counted !== undefined && index >= counted.start && index < counted.end);\n }\n /* The first crumb an expansion reveals, whichever collapse hid it. */\n const revealed = this.middle() ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n this.trail.registerFocusTarget(revealed === undefined ? undefined : () => revealed.focus());\n this.trail.collapsedCount.set(this.hiddenCount());\n });\n\n afterRenderEffect(() => {\n const items = this.items();\n const counted = this.counted() !== undefined;\n const measuring = this.measuring();\n const anchor =\n counted || measuring ? items[Math.max(0, this.trail.beforeValue())] : undefined;\n untracked(() => this.place(anchor?.element, counted, measuring));\n });\n\n inject(DestroyRef).onDestroy(() => {\n this.collapse?.destroy();\n this.ellipsis?.destroy();\n });\n }\n\n /**\n * Puts the ellipsis's item in front of the first crumb that can fold, or\n * takes it away, and starts or stops the width measurement.\n */\n private place(anchor: HTMLElement | undefined, counted: boolean, measuring: boolean) {\n if (!measuring) {\n this.collapse?.destroy();\n this.collapse = null;\n this.folded.set(0);\n }\n if (anchor === undefined) {\n if (this.ellipsis !== null) {\n this.application.detachView(this.ellipsis.hostView);\n this.ellipsis.destroy();\n this.ellipsis = null;\n }\n return;\n }\n\n const item = this.ensureEllipsis();\n if (item.nextElementSibling !== anchor) this.host.insertBefore(item, anchor);\n\n if (counted) {\n item.removeAttribute('hidden');\n return;\n }\n if (this.collapse === null) {\n /* Until the width has been measured the ellipsis stands for nothing. */\n item.setAttribute('hidden', '');\n const units = () =>\n [...this.host.children].filter(\n (unit): unit is HTMLElement => unit instanceof HTMLElement && unit !== item,\n );\n const before = Math.max(0, this.trail.beforeValue());\n const after = Math.max(0, this.trail.afterValue());\n this.collapse = createCollapse(this.host, {\n /* Only the middle folds: the first crumbs and the last ones never do. */\n collapsible: (unit) => {\n const index = units().indexOf(unit);\n return index >= before && index < units().length - after;\n },\n onChange: (hidden) => this.folded.set(hidden.length),\n /* Nearest the root first, so the folded run stays beside the ellipsis. */\n rank: (unit) => units().indexOf(unit),\n trigger: () => item,\n units,\n });\n } else {\n this.collapse.refresh();\n }\n }\n\n private ensureEllipsis(): HTMLElement {\n if (this.ellipsis === null) {\n this.ellipsis = createComponent(SlBreadcrumbEllipsis, {\n elementInjector: this.injector,\n environmentInjector: this.environment,\n hostElement: this.host.ownerDocument.createElement('li'),\n });\n this.application.attachView(this.ellipsis.hostView);\n }\n return this.ellipsis.location.nativeElement as HTMLElement;\n }\n}\n\n/**\n * One ancestor, or the current page. It carries the separator after it, so a\n * consumer writes none and never leaves a trailing one behind.\n */\n@Component({\n selector: 'li[slBreadcrumbItem]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `\n <ng-content></ng-content>\n @if (!last()) {\n <span aria-hidden=\"true\" data-part=\"separator\">\n <ng-container *ngTemplateOutlet=\"trail.separatorValue() ?? null\"></ng-container>\n </span>\n }\n `,\n styleUrls: ['../../../styles/src/breadcrumb/breadcrumb.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbItem',\n host: {\n 'data-part': 'item',\n '[attr.hidden]': 'collapsed() ? \"\" : null',\n },\n})\nexport class SlBreadcrumbItem {\n readonly trail = inject(SlBreadcrumb);\n\n readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n /** Written by the list, which is the only part that can see the whole trail. */\n readonly last = signal(false);\n readonly collapsed = signal(false);\n\n /** The crumb's own control, whatever the consumer made it. */\n focus() {\n this.element.querySelector<HTMLElement>('a, button, [tabindex]')?.focus();\n }\n}\n\n/**\n * An ancestor that can be reached. The directive sits on the consumer's own\n * anchor, so the role, `Enter`, the context menu and every modified click are\n * the platform's — and `routerLink` composes on the same element, because the\n * element was never the family's to begin with.\n */\n@Directive({\n selector: 'a[slBreadcrumbLink]',\n standalone: true,\n exportAs: 'slBreadcrumbLink',\n host: { 'data-part': 'link' },\n})\nexport class SlBreadcrumbLink {\n private readonly element: HTMLAnchorElement = inject(ElementRef).nativeElement;\n\n focus() {\n this.element.focus();\n }\n}\n\n/**\n * The page the reader is on. It is text rather than a link, because a link to\n * the page you are already on goes nowhere, and it carries `aria-current=\"page\"`\n * — the value the ARIA specification names for a link within a set of pages.\n */\n@Directive({\n selector: '[slBreadcrumbPage]',\n standalone: true,\n exportAs: 'slBreadcrumbPage',\n host: {\n 'data-part': 'page',\n 'aria-current': 'page',\n },\n})\nexport class SlBreadcrumbPage {}\n\n/**\n * A crumb that opens a menu of its siblings — the organisation, the project,\n * the environment. It is a component on the consumer's own `button`, because an\n * `a` without `href` takes no focus, and it draws the chevron after the label.\n * The menu composes on the same element:\n *\n * ```html\n * <button slBreadcrumbTrigger current [slMenuTriggerFor]=\"environments\">Production</button>\n * ```\n *\n * `current` keeps `aria-current=\"page\"` on the switcher of the page the reader\n * is on, which a switcher does not stop being.\n */\n@Component({\n selector: 'button[slBreadcrumbTrigger]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content></ng-content><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slBreadcrumbTrigger',\n host: {\n 'data-part': 'trigger',\n '[attr.type]': 'ownType ?? \"button\"',\n '[attr.aria-current]': 'current() ? \"page\" : ownCurrent',\n },\n})\nexport class SlBreadcrumbTrigger {\n readonly current = input(false, { transform: booleanAttribute });\n\n protected readonly ownType = inject(new HostAttributeToken('type'), { optional: true });\n protected readonly ownCurrent = inject(new HostAttributeToken('aria-current'), {\n optional: true,\n });\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n\n constructor() {\n /**\n * `slMenuTriggerFor` on the same element binds `data-part` to `null` when\n * its trigger is a plain control, which erased this part and the whole\n * crumb's styling with it. The erasing expression is a constant, so the\n * part written back after the first render is never erased again —\n * `docs/build-briefing.md` records the rule.\n */\n afterNextRender(() => this.element.setAttribute('data-part', 'trigger'));\n }\n}\n\n/**\n * Absence has to survive the transform: `numberAttribute` maps an unset input\n * to `NaN`, and a family that read that would stop deferring to the provider.\n */\nfunction optionalNumber(value: number | string | undefined) {\n if (value === undefined || value === null || value === '') return undefined;\n const parsed = numberAttribute(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, input, booleanAttribute, HostAttributeToken, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { BUTTON_DEFAULTS_TOKEN } from '@slotted/angular/button';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The three axes the group hands down to the buttons inside it, through the
|
|
7
|
+
* button family's own defaults token rather than through a second channel of
|
|
8
|
+
* this family's invention. That is what keeps an explicit input on a button
|
|
9
|
+
* winning over the group, because it is the rule `button` already implements.
|
|
10
|
+
*
|
|
11
|
+
* The value is read through getters so that a button's `computed` tracks the
|
|
12
|
+
* group's signals: a plain snapshot would fix the paint at the moment the
|
|
13
|
+
* first button was created and never move again.
|
|
14
|
+
*/
|
|
15
|
+
function provideGroupPaint() {
|
|
16
|
+
return {
|
|
17
|
+
provide: BUTTON_DEFAULTS_TOKEN,
|
|
18
|
+
useFactory: () => {
|
|
19
|
+
const group = inject(SlButtonGroup);
|
|
20
|
+
const inherited = inject(BUTTON_DEFAULTS_TOKEN, { skipSelf: true });
|
|
21
|
+
return {
|
|
22
|
+
get size() {
|
|
23
|
+
return group.size() ?? inherited.size;
|
|
24
|
+
},
|
|
25
|
+
get tone() {
|
|
26
|
+
return group.tone() ?? inherited.tone;
|
|
27
|
+
},
|
|
28
|
+
get variant() {
|
|
29
|
+
return group.variant() ?? inherited.variant;
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* A set of related actions joined into one shape. The group arranges what the
|
|
37
|
+
* consumer wrote and changes the semantics of nothing inside it: every button
|
|
38
|
+
* keeps its own role, its own state and its own place in the tab sequence.
|
|
39
|
+
*
|
|
40
|
+
* One shape and no other: the buttons share their edges, one border is painted
|
|
41
|
+
* in each shared column, and only the two ends of the bar are rounded. There
|
|
42
|
+
* is no input that spaces the buttons apart and none that unjoins them — a
|
|
43
|
+
* spaced row of buttons is `slInline` or `slStack` holding buttons.
|
|
44
|
+
*
|
|
45
|
+
* It is `role="group"` and not `role="toolbar"`, and the difference is a
|
|
46
|
+
* keyboard model rather than a name. A toolbar is one tab stop with arrow-key
|
|
47
|
+
* navigation between its controls, which is the `toolbar` family. A consumer
|
|
48
|
+
* who wrote `role` on the element keeps it, read before the host binding is
|
|
49
|
+
* written, so the role and the model are never confused by accident.
|
|
50
|
+
*
|
|
51
|
+
* There is no `label` input. The element already accepts `aria-label` and
|
|
52
|
+
* `aria-labelledby`, and a second way to name one thing is a second thing to
|
|
53
|
+
* get wrong.
|
|
54
|
+
*/
|
|
55
|
+
class SlButtonGroup {
|
|
56
|
+
/** Positions the buttons across the flow. */
|
|
57
|
+
align = input(/* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [undefined, { debugName: "align" }] : /* istanbul ignore next */ []));
|
|
59
|
+
/** Positions the buttons along the flow, which makes the group hold the line. */
|
|
60
|
+
justify = input(/* @ts-ignore */
|
|
61
|
+
...(ngDevMode ? [undefined, { debugName: "justify" }] : /* istanbul ignore next */ []));
|
|
62
|
+
orientation = input(/* @ts-ignore */
|
|
63
|
+
...(ngDevMode ? [undefined, { debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
64
|
+
/** The group holds the line and its buttons share it in equal segments. */
|
|
65
|
+
fullWidth = input(false, { ...(ngDevMode ? { debugName: "fullWidth" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
66
|
+
size = input(undefined, /* @ts-ignore */
|
|
67
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
68
|
+
tone = input(undefined, /* @ts-ignore */
|
|
69
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
70
|
+
variant = input(undefined, /* @ts-ignore */
|
|
71
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
72
|
+
/**
|
|
73
|
+
* A static attribute the consumer wrote survives the host binding, which is
|
|
74
|
+
* how `role="toolbar"` stays possible on an element this family would
|
|
75
|
+
* otherwise call a group.
|
|
76
|
+
*
|
|
77
|
+
* `role=""` is the way out: ARIA reads an empty role as "use the element's
|
|
78
|
+
* implicit one", so a `nav` or a `section` carrying this directive keeps the
|
|
79
|
+
* semantics it was chosen for instead of being flattened to a group.
|
|
80
|
+
*/
|
|
81
|
+
writtenRole = inject(new HostAttributeToken('role'), { optional: true });
|
|
82
|
+
role = this.writtenRole === '' ? null : (this.writtenRole ?? 'group');
|
|
83
|
+
/** What the rule between two runs turns with. */
|
|
84
|
+
flow = computed(() => this.orientation() ?? 'horizontal', /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "flow" }] : /* istanbul ignore next */ []));
|
|
86
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlButtonGroup, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
87
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlButtonGroup, isStandalone: true, selector: "[slButtonGroup]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "button-group", "data-part": "root" }, properties: { "attr.role": "role", "attr.data-orientation": "orientation() ?? null", "attr.data-align": "align() ?? null", "attr.data-justify": "justify() ?? null", "attr.data-full-width": "fullWidth() ? \"\" : null" } }, providers: [provideGroupPaint()], exportAs: ["slButtonGroup"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=button-group]{--_radius: var(--slotted-control-radius, 4px);--_overlap: calc(-1 * var(--slotted-control-border-width, 1px));--_join-main: var(--_radius);--_join-cross: 0;--_overlap-inline: var(--_overlap);--_overlap-block: 0;align-items:stretch;display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:0;isolation:isolate;min-inline-size:0}[data-ui=button-group]:empty{display:none}[data-ui=button-group][data-orientation=vertical]{--_join-main: 0;--_join-cross: var(--_radius);--_overlap-inline: 0;--_overlap-block: var(--_overlap);flex-direction:column}[data-ui=button-group][data-align=start]{align-items:start}[data-ui=button-group][data-align=center]{align-items:center}[data-ui=button-group][data-align=end]{align-items:end}[data-ui=button-group][data-align=stretch]{align-items:stretch}[data-ui=button-group][data-justify]{display:flex;inline-size:100%}[data-ui=button-group][data-justify=start]{justify-content:start}[data-ui=button-group][data-justify=center]{justify-content:center}[data-ui=button-group][data-justify=end]{justify-content:end}[data-ui=button-group][data-justify=between]{justify-content:space-between}[data-ui=button-group][data-full-width]{display:flex;inline-size:100%}[data-ui=button-group][data-full-width]:not([data-orientation=vertical])>:not([data-part=separator]){flex:1 1 0;min-inline-size:0}[data-ui=button-group]>:not([data-part=separator]):not([data-shape]){min-inline-size:0}[data-ui=button-group]>[data-shape]{flex:none}[data-ui=button-group]>:not([data-ui=button-group]){border-radius:0}[data-ui=button-group]>:not(:first-child):not([data-part=separator]){margin-block-start:var(--_overlap-block);margin-inline-start:var(--_overlap-inline)}[data-ui=button-group]>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group]>:only-child{border-radius:var(--_radius)}[data-ui=button-group] [data-ui=button-group]>:not([data-part=separator]){border-radius:0}[data-ui=button-group]>[data-ui=button-group]:first-child>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>[data-ui=button-group]:last-child>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline]:disabled{border-color:var(--slotted-control-border-color, ButtonBorder)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost]:disabled{border-color:transparent}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-inline-end-color:transparent}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-block-end-color:transparent}[data-ui=button-group]>[data-tone=accent]{--_seam: var(--slotted-tone-accent-solid-active)}[data-ui=button-group]>[data-tone=secondary]{--_seam: var(--slotted-tone-secondary-solid-active)}[data-ui=button-group]>[data-tone=success]{--_seam: var(--slotted-tone-success-solid-active)}[data-ui=button-group]>[data-tone=warning]{--_seam: var(--slotted-tone-warning-solid-active)}[data-ui=button-group]>[data-tone=danger]{--_seam: var(--slotted-tone-danger-solid-active)}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button][data-variant=solid]:not(:first-child){border-inline-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button][data-variant=solid]:not(:first-child){border-block-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group]>*:focus-visible,[data-ui=button-group]>*:has(:focus-visible){z-index:1}@media(forced-colors:active){[data-ui=button-group][data-part=root]>[data-ui=button][data-pressed]{border-color:Highlight}}[data-ui=button-group]>[data-part=separator]{background:none;block-size:0;border:0;flex:none;inline-size:0;margin:0}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-inline-start-color:var(--slotted-text-muted, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-block-start-color:var(--slotted-text-muted, ButtonBorder)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlButtonGroup, decorators: [{
|
|
90
|
+
type: Component,
|
|
91
|
+
args: [{ selector: '[slButtonGroup]', standalone: true, exportAs: 'slButtonGroup', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [provideGroupPaint()], host: {
|
|
92
|
+
'data-ui': 'button-group',
|
|
93
|
+
'data-part': 'root',
|
|
94
|
+
'[attr.role]': 'role',
|
|
95
|
+
'[attr.data-orientation]': 'orientation() ?? null',
|
|
96
|
+
'[attr.data-align]': 'align() ?? null',
|
|
97
|
+
'[attr.data-justify]': 'justify() ?? null',
|
|
98
|
+
'[attr.data-full-width]': 'fullWidth() ? "" : null',
|
|
99
|
+
}, styles: ["@layer slotted.components{[data-ui=button-group]{--_radius: var(--slotted-control-radius, 4px);--_overlap: calc(-1 * var(--slotted-control-border-width, 1px));--_join-main: var(--_radius);--_join-cross: 0;--_overlap-inline: var(--_overlap);--_overlap-block: 0;align-items:stretch;display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:0;isolation:isolate;min-inline-size:0}[data-ui=button-group]:empty{display:none}[data-ui=button-group][data-orientation=vertical]{--_join-main: 0;--_join-cross: var(--_radius);--_overlap-inline: 0;--_overlap-block: var(--_overlap);flex-direction:column}[data-ui=button-group][data-align=start]{align-items:start}[data-ui=button-group][data-align=center]{align-items:center}[data-ui=button-group][data-align=end]{align-items:end}[data-ui=button-group][data-align=stretch]{align-items:stretch}[data-ui=button-group][data-justify]{display:flex;inline-size:100%}[data-ui=button-group][data-justify=start]{justify-content:start}[data-ui=button-group][data-justify=center]{justify-content:center}[data-ui=button-group][data-justify=end]{justify-content:end}[data-ui=button-group][data-justify=between]{justify-content:space-between}[data-ui=button-group][data-full-width]{display:flex;inline-size:100%}[data-ui=button-group][data-full-width]:not([data-orientation=vertical])>:not([data-part=separator]){flex:1 1 0;min-inline-size:0}[data-ui=button-group]>:not([data-part=separator]):not([data-shape]){min-inline-size:0}[data-ui=button-group]>[data-shape]{flex:none}[data-ui=button-group]>:not([data-ui=button-group]){border-radius:0}[data-ui=button-group]>:not(:first-child):not([data-part=separator]){margin-block-start:var(--_overlap-block);margin-inline-start:var(--_overlap-inline)}[data-ui=button-group]>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group]>:only-child{border-radius:var(--_radius)}[data-ui=button-group] [data-ui=button-group]>:not([data-part=separator]){border-radius:0}[data-ui=button-group]>[data-ui=button-group]:first-child>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>[data-ui=button-group]:last-child>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline]:disabled{border-color:var(--slotted-control-border-color, ButtonBorder)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost]:disabled{border-color:transparent}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-inline-end-color:transparent}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-block-end-color:transparent}[data-ui=button-group]>[data-tone=accent]{--_seam: var(--slotted-tone-accent-solid-active)}[data-ui=button-group]>[data-tone=secondary]{--_seam: var(--slotted-tone-secondary-solid-active)}[data-ui=button-group]>[data-tone=success]{--_seam: var(--slotted-tone-success-solid-active)}[data-ui=button-group]>[data-tone=warning]{--_seam: var(--slotted-tone-warning-solid-active)}[data-ui=button-group]>[data-tone=danger]{--_seam: var(--slotted-tone-danger-solid-active)}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button][data-variant=solid]:not(:first-child){border-inline-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button][data-variant=solid]:not(:first-child){border-block-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group]>*:focus-visible,[data-ui=button-group]>*:has(:focus-visible){z-index:1}@media(forced-colors:active){[data-ui=button-group][data-part=root]>[data-ui=button][data-pressed]{border-color:Highlight}}[data-ui=button-group]>[data-part=separator]{background:none;block-size:0;border:0;flex:none;inline-size:0;margin:0}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-inline-start-color:var(--slotted-text-muted, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-block-start-color:var(--slotted-text-muted, ButtonBorder)}}\n"] }]
|
|
100
|
+
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* A rule between two runs of actions. It takes no room at all: the bar is one
|
|
104
|
+
* shape, and a rule is not licence to cut it — what the rule marks is painted
|
|
105
|
+
* in the column the shared edge already occupies, one step stronger than the
|
|
106
|
+
* seams around it, so the boundary reads without the bar coming apart. A
|
|
107
|
+
* filled run keeps its seam, which is the darkest step of its own tone and the
|
|
108
|
+
* strongest line that bar has.
|
|
109
|
+
*
|
|
110
|
+
* Its axis is the group's, mirrored: a rule across a row is vertical. It is
|
|
111
|
+
* derived rather than accepted, because a rule that could disagree with the
|
|
112
|
+
* group it divides is a rule that eventually does.
|
|
113
|
+
*/
|
|
114
|
+
class SlButtonGroupSeparator {
|
|
115
|
+
group = inject(SlButtonGroup, { optional: true });
|
|
116
|
+
/**
|
|
117
|
+
* Drops the rule out of the accessibility tree. Use it when the boundary is
|
|
118
|
+
* cosmetic; a boundary that carries meaning is better said by a nested group
|
|
119
|
+
* with a name of its own.
|
|
120
|
+
*/
|
|
121
|
+
decorative = input(false, { ...(ngDevMode ? { debugName: "decorative" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
122
|
+
axis = computed(() => {
|
|
123
|
+
if (this.decorative())
|
|
124
|
+
return null;
|
|
125
|
+
return (this.group?.flow() ?? 'horizontal') === 'vertical' ? 'horizontal' : 'vertical';
|
|
126
|
+
}, /* @ts-ignore */
|
|
127
|
+
...(ngDevMode ? [{ debugName: "axis" }] : /* istanbul ignore next */ []));
|
|
128
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlButtonGroupSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlButtonGroupSeparator, isStandalone: true, selector: "[slButtonGroupSeparator]", inputs: { decorative: { classPropertyName: "decorative", publicName: "decorative", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-part": "separator" }, properties: { "attr.role": "decorative() ? \"none\" : \"separator\"", "attr.aria-hidden": "decorative() ? \"true\" : null", "attr.aria-orientation": "axis()" } }, exportAs: ["slButtonGroupSeparator"], ngImport: i0, template: '', isInline: true, styles: ["@layer slotted.components{[data-ui=button-group]{--_radius: var(--slotted-control-radius, 4px);--_overlap: calc(-1 * var(--slotted-control-border-width, 1px));--_join-main: var(--_radius);--_join-cross: 0;--_overlap-inline: var(--_overlap);--_overlap-block: 0;align-items:stretch;display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:0;isolation:isolate;min-inline-size:0}[data-ui=button-group]:empty{display:none}[data-ui=button-group][data-orientation=vertical]{--_join-main: 0;--_join-cross: var(--_radius);--_overlap-inline: 0;--_overlap-block: var(--_overlap);flex-direction:column}[data-ui=button-group][data-align=start]{align-items:start}[data-ui=button-group][data-align=center]{align-items:center}[data-ui=button-group][data-align=end]{align-items:end}[data-ui=button-group][data-align=stretch]{align-items:stretch}[data-ui=button-group][data-justify]{display:flex;inline-size:100%}[data-ui=button-group][data-justify=start]{justify-content:start}[data-ui=button-group][data-justify=center]{justify-content:center}[data-ui=button-group][data-justify=end]{justify-content:end}[data-ui=button-group][data-justify=between]{justify-content:space-between}[data-ui=button-group][data-full-width]{display:flex;inline-size:100%}[data-ui=button-group][data-full-width]:not([data-orientation=vertical])>:not([data-part=separator]){flex:1 1 0;min-inline-size:0}[data-ui=button-group]>:not([data-part=separator]):not([data-shape]){min-inline-size:0}[data-ui=button-group]>[data-shape]{flex:none}[data-ui=button-group]>:not([data-ui=button-group]){border-radius:0}[data-ui=button-group]>:not(:first-child):not([data-part=separator]){margin-block-start:var(--_overlap-block);margin-inline-start:var(--_overlap-inline)}[data-ui=button-group]>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group]>:only-child{border-radius:var(--_radius)}[data-ui=button-group] [data-ui=button-group]>:not([data-part=separator]){border-radius:0}[data-ui=button-group]>[data-ui=button-group]:first-child>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>[data-ui=button-group]:last-child>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline]:disabled{border-color:var(--slotted-control-border-color, ButtonBorder)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost]:disabled{border-color:transparent}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-inline-end-color:transparent}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-block-end-color:transparent}[data-ui=button-group]>[data-tone=accent]{--_seam: var(--slotted-tone-accent-solid-active)}[data-ui=button-group]>[data-tone=secondary]{--_seam: var(--slotted-tone-secondary-solid-active)}[data-ui=button-group]>[data-tone=success]{--_seam: var(--slotted-tone-success-solid-active)}[data-ui=button-group]>[data-tone=warning]{--_seam: var(--slotted-tone-warning-solid-active)}[data-ui=button-group]>[data-tone=danger]{--_seam: var(--slotted-tone-danger-solid-active)}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button][data-variant=solid]:not(:first-child){border-inline-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button][data-variant=solid]:not(:first-child){border-block-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group]>*:focus-visible,[data-ui=button-group]>*:has(:focus-visible){z-index:1}@media(forced-colors:active){[data-ui=button-group][data-part=root]>[data-ui=button][data-pressed]{border-color:Highlight}}[data-ui=button-group]>[data-part=separator]{background:none;block-size:0;border:0;flex:none;inline-size:0;margin:0}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-inline-start-color:var(--slotted-text-muted, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-block-start-color:var(--slotted-text-muted, ButtonBorder)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlButtonGroupSeparator, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: '[slButtonGroupSeparator]', standalone: true, exportAs: 'slButtonGroupSeparator', template: '', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
134
|
+
'data-part': 'separator',
|
|
135
|
+
'[attr.role]': 'decorative() ? "none" : "separator"',
|
|
136
|
+
'[attr.aria-hidden]': 'decorative() ? "true" : null',
|
|
137
|
+
'[attr.aria-orientation]': 'axis()',
|
|
138
|
+
}, styles: ["@layer slotted.components{[data-ui=button-group]{--_radius: var(--slotted-control-radius, 4px);--_overlap: calc(-1 * var(--slotted-control-border-width, 1px));--_join-main: var(--_radius);--_join-cross: 0;--_overlap-inline: var(--_overlap);--_overlap-block: 0;align-items:stretch;display:inline-flex;flex-direction:row;flex-wrap:nowrap;gap:0;isolation:isolate;min-inline-size:0}[data-ui=button-group]:empty{display:none}[data-ui=button-group][data-orientation=vertical]{--_join-main: 0;--_join-cross: var(--_radius);--_overlap-inline: 0;--_overlap-block: var(--_overlap);flex-direction:column}[data-ui=button-group][data-align=start]{align-items:start}[data-ui=button-group][data-align=center]{align-items:center}[data-ui=button-group][data-align=end]{align-items:end}[data-ui=button-group][data-align=stretch]{align-items:stretch}[data-ui=button-group][data-justify]{display:flex;inline-size:100%}[data-ui=button-group][data-justify=start]{justify-content:start}[data-ui=button-group][data-justify=center]{justify-content:center}[data-ui=button-group][data-justify=end]{justify-content:end}[data-ui=button-group][data-justify=between]{justify-content:space-between}[data-ui=button-group][data-full-width]{display:flex;inline-size:100%}[data-ui=button-group][data-full-width]:not([data-orientation=vertical])>:not([data-part=separator]){flex:1 1 0;min-inline-size:0}[data-ui=button-group]>:not([data-part=separator]):not([data-shape]){min-inline-size:0}[data-ui=button-group]>[data-shape]{flex:none}[data-ui=button-group]>:not([data-ui=button-group]){border-radius:0}[data-ui=button-group]>:not(:first-child):not([data-part=separator]){margin-block-start:var(--_overlap-block);margin-inline-start:var(--_overlap-inline)}[data-ui=button-group]>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group]>:only-child{border-radius:var(--_radius)}[data-ui=button-group] [data-ui=button-group]>:not([data-part=separator]){border-radius:0}[data-ui=button-group]>[data-ui=button-group]:first-child>:first-child{border-end-start-radius:var(--_join-main);border-start-end-radius:var(--_join-cross);border-start-start-radius:var(--_radius)}[data-ui=button-group]>[data-ui=button-group]:last-child>:last-child{border-end-end-radius:var(--_radius);border-end-start-radius:var(--_join-cross);border-start-end-radius:var(--_join-main)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=outline]:disabled{border-color:var(--slotted-control-border-color, ButtonBorder)}[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-pressed],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost][data-disabled],[data-ui=button-group][data-part=root]>[data-ui=button][data-variant=ghost]:disabled{border-color:transparent}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-inline-end-color:transparent}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button]:not(:last-child),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button-group]:not(:last-child)>[data-ui=button]:last-child{border-block-end-color:transparent}[data-ui=button-group]>[data-tone=accent]{--_seam: var(--slotted-tone-accent-solid-active)}[data-ui=button-group]>[data-tone=secondary]{--_seam: var(--slotted-tone-secondary-solid-active)}[data-ui=button-group]>[data-tone=success]{--_seam: var(--slotted-tone-success-solid-active)}[data-ui=button-group]>[data-tone=warning]{--_seam: var(--slotted-tone-warning-solid-active)}[data-ui=button-group]>[data-tone=danger]{--_seam: var(--slotted-tone-danger-solid-active)}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-ui=button][data-variant=solid]:not(:first-child){border-inline-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-ui=button][data-variant=solid]:not(:first-child){border-block-start-color:var(--_seam, ButtonBorder)}[data-ui=button-group]>*:focus-visible,[data-ui=button-group]>*:has(:focus-visible){z-index:1}@media(forced-colors:active){[data-ui=button-group][data-part=root]>[data-ui=button][data-pressed]{border-color:Highlight}}[data-ui=button-group]>[data-part=separator]{background:none;block-size:0;border:0;flex:none;inline-size:0;margin:0}[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root]:not([data-orientation=vertical])>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-inline-start-color:var(--slotted-text-muted, ButtonBorder)}[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button]:not([data-variant=solid]),[data-ui=button-group][data-part=root][data-orientation=vertical]>[data-part=separator]+[data-ui=button-group]>[data-ui=button]:first-child:not([data-variant=solid]){border-block-start-color:var(--slotted-text-muted, ButtonBorder)}}\n"] }]
|
|
139
|
+
}], propDecorators: { decorative: [{ type: i0.Input, args: [{ isSignal: true, alias: "decorative", required: false }] }] } });
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Generated bundle index. Do not edit.
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
export { SlButtonGroup, SlButtonGroupSeparator };
|
|
146
|
+
//# sourceMappingURL=slotted-angular-button-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-button-group.mjs","sources":["../../button-group/src/button-group.ts","../../button-group/src/button-group-separator.ts","../../button-group/src/slotted-angular-button-group.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BUTTON_DEFAULTS_TOKEN } from '@slotted/angular/button';\nimport type {\n ButtonDefaults,\n ButtonSize,\n ButtonTone,\n ButtonVariant,\n} from '@slotted/angular/button';\n\nimport type {\n ButtonGroupAlign,\n ButtonGroupJustify,\n ButtonGroupOrientation,\n} from './button-group.types';\n\n/**\n * The three axes the group hands down to the buttons inside it, through the\n * button family's own defaults token rather than through a second channel of\n * this family's invention. That is what keeps an explicit input on a button\n * winning over the group, because it is the rule `button` already implements.\n *\n * The value is read through getters so that a button's `computed` tracks the\n * group's signals: a plain snapshot would fix the paint at the moment the\n * first button was created and never move again.\n */\nfunction provideGroupPaint() {\n return {\n provide: BUTTON_DEFAULTS_TOKEN,\n useFactory: (): ButtonDefaults => {\n const group = inject(SlButtonGroup);\n const inherited = inject(BUTTON_DEFAULTS_TOKEN, { skipSelf: true });\n\n return {\n get size() {\n return group.size() ?? inherited.size;\n },\n get tone() {\n return group.tone() ?? inherited.tone;\n },\n get variant() {\n return group.variant() ?? inherited.variant;\n },\n };\n },\n };\n}\n\n/**\n * A set of related actions joined into one shape. The group arranges what the\n * consumer wrote and changes the semantics of nothing inside it: every button\n * keeps its own role, its own state and its own place in the tab sequence.\n *\n * One shape and no other: the buttons share their edges, one border is painted\n * in each shared column, and only the two ends of the bar are rounded. There\n * is no input that spaces the buttons apart and none that unjoins them — a\n * spaced row of buttons is `slInline` or `slStack` holding buttons.\n *\n * It is `role=\"group\"` and not `role=\"toolbar\"`, and the difference is a\n * keyboard model rather than a name. A toolbar is one tab stop with arrow-key\n * navigation between its controls, which is the `toolbar` family. A consumer\n * who wrote `role` on the element keeps it, read before the host binding is\n * written, so the role and the model are never confused by accident.\n *\n * There is no `label` input. The element already accepts `aria-label` and\n * `aria-labelledby`, and a second way to name one thing is a second thing to\n * get wrong.\n */\n@Component({\n selector: '[slButtonGroup]',\n standalone: true,\n exportAs: 'slButtonGroup',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/button-group/button-group.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [provideGroupPaint()],\n host: {\n 'data-ui': 'button-group',\n 'data-part': 'root',\n '[attr.role]': 'role',\n '[attr.data-orientation]': 'orientation() ?? null',\n '[attr.data-align]': 'align() ?? null',\n '[attr.data-justify]': 'justify() ?? null',\n '[attr.data-full-width]': 'fullWidth() ? \"\" : null',\n },\n})\nexport class SlButtonGroup {\n /** Positions the buttons across the flow. */\n readonly align = input<ButtonGroupAlign>();\n /** Positions the buttons along the flow, which makes the group hold the line. */\n readonly justify = input<ButtonGroupJustify>();\n readonly orientation = input<ButtonGroupOrientation>();\n /** The group holds the line and its buttons share it in equal segments. */\n readonly fullWidth = input(false, { transform: booleanAttribute });\n\n readonly size = input<ButtonSize | undefined>(undefined);\n readonly tone = input<ButtonTone | undefined>(undefined);\n readonly variant = input<ButtonVariant | undefined>(undefined);\n\n /**\n * A static attribute the consumer wrote survives the host binding, which is\n * how `role=\"toolbar\"` stays possible on an element this family would\n * otherwise call a group.\n *\n * `role=\"\"` is the way out: ARIA reads an empty role as \"use the element's\n * implicit one\", so a `nav` or a `section` carrying this directive keeps the\n * semantics it was chosen for instead of being flattened to a group.\n */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n protected readonly role = this.writtenRole === '' ? null : (this.writtenRole ?? 'group');\n\n /** What the rule between two runs turns with. */\n readonly flow = computed(() => this.orientation() ?? 'horizontal');\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlButtonGroup } from './button-group';\n\n/**\n * A rule between two runs of actions. It takes no room at all: the bar is one\n * shape, and a rule is not licence to cut it — what the rule marks is painted\n * in the column the shared edge already occupies, one step stronger than the\n * seams around it, so the boundary reads without the bar coming apart. A\n * filled run keeps its seam, which is the darkest step of its own tone and the\n * strongest line that bar has.\n *\n * Its axis is the group's, mirrored: a rule across a row is vertical. It is\n * derived rather than accepted, because a rule that could disagree with the\n * group it divides is a rule that eventually does.\n */\n@Component({\n selector: '[slButtonGroupSeparator]',\n standalone: true,\n exportAs: 'slButtonGroupSeparator',\n template: '',\n styleUrl: '../../../styles/src/button-group/button-group.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'separator',\n '[attr.role]': 'decorative() ? \"none\" : \"separator\"',\n '[attr.aria-hidden]': 'decorative() ? \"true\" : null',\n '[attr.aria-orientation]': 'axis()',\n },\n})\nexport class SlButtonGroupSeparator {\n private readonly group = inject(SlButtonGroup, { optional: true });\n\n /**\n * Drops the rule out of the accessibility tree. Use it when the boundary is\n * cosmetic; a boundary that carries meaning is better said by a nested group\n * with a name of its own.\n */\n readonly decorative = input(false, { transform: booleanAttribute });\n\n protected readonly axis = computed(() => {\n if (this.decorative()) return null;\n return (this.group?.flow() ?? 'horizontal') === 'vertical' ? 'horizontal' : 'vertical';\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|