@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-listbox.mjs","sources":["../../listbox/src/listbox-defaults.ts","../../listbox/src/listbox-context.ts","../../listbox/src/listbox-parts.ts","../../listbox/src/listbox.ts","../../listbox/src/slotted-angular-listbox.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the listbox and every option inside it sit at. */\nexport type ListboxSize = 'sm' | 'md' | 'lg';\n\n/**\n * Whether the listbox draws its own box. `framed` is the standalone control —\n * what `<select multiple>` looks like — and `plain` is what a layer that\n * already has an edge renders inside itself.\n */\nexport type ListboxVariant = 'plain' | 'framed';\n\n/** How many options may be chosen at once. */\nexport type ListboxSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * Which of the two models the pattern offers is in force. `toggle` is the\n * recommended one and holds no modifier; `replace` is the alternative, where a\n * plain press replaces the selection and Control extends it.\n */\nexport type ListboxSelectionBehavior = 'toggle' | 'replace';\n\nexport type ListboxOrientation = 'vertical' | 'horizontal';\n\n/**\n * How the keyboard's position is expressed. `auto` reads one fact — whether the\n * set is windowed — and answers `activedescendant` when it is, because a roving\n * tab stop cannot survive its own element being recycled.\n */\nexport type ListboxFocusMode = 'auto' | 'roving' | 'activedescendant';\n\n/** Whether a chosen option draws a mark as well as its ground and its bar. */\nexport type ListboxIndicatorMode = 'check' | 'none';\n\n/** Where `scrollToKey` puts the option it reveals. */\nexport type ListboxAlignment = 'start' | 'center' | 'end' | 'nearest';\n\nexport interface ListboxDefaults {\n columns: number;\n disallowEmptySelection: boolean;\n disallowSelectAll: boolean;\n focusMode: ListboxFocusMode;\n indicator: ListboxIndicatorMode;\n loadMoreThreshold: number;\n loop: boolean;\n navigateDisabled: boolean;\n orientation: ListboxOrientation;\n overscan: number;\n pageSize: number;\n rows: number;\n selectOnFocus: boolean;\n selectionBehavior: ListboxSelectionBehavior;\n selectionMode: ListboxSelectionMode;\n size: ListboxSize;\n typeahead: boolean;\n typeaheadTimeout: number;\n variant: ListboxVariant;\n}\n\n/**\n * `loop` is off because React Aria and Zag both default it off and only the\n * Angular CDK defaults it on, and a list of two hundred options that jumps from\n * the last to the first loses the reader. `selectOnFocus` is off because the\n * pattern names the accessibility cost of the other answer.\n */\nconst FALLBACK: ListboxDefaults = {\n columns: 1,\n disallowEmptySelection: false,\n disallowSelectAll: false,\n focusMode: 'auto',\n indicator: 'check',\n loadMoreThreshold: 0,\n loop: false,\n navigateDisabled: false,\n orientation: 'vertical',\n overscan: 4,\n pageSize: 10,\n rows: 7,\n selectOnFocus: false,\n selectionBehavior: 'toggle',\n selectionMode: 'single',\n size: 'md',\n typeahead: true,\n typeaheadTimeout: 500,\n variant: 'framed',\n};\n\nexport const LISTBOX_DEFAULTS = new InjectionToken<ListboxDefaults>('slotted listbox defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its listboxes behave, rather than repeating\n * nineteen inputs on every collection in a product. A listbox that states any\n * of them itself still wins: an explicit input is never overridden by the\n * token.\n */\nexport function provideListboxDefaults(defaults: Partial<ListboxDefaults>) {\n return {\n provide: LISTBOX_DEFAULTS,\n useFactory: (): ListboxDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a listbox behaves as here, before it states anything of its own. */\nexport function injectListboxDefaults(): ListboxDefaults {\n return inject(LISTBOX_DEFAULTS);\n}\n\n/**\n * `aria-activedescendant` names an option by its id, so every option needs one\n * and the same string has to be produced on the server and in the browser. A\n * counter held by the injector produces one; `Math.random` would not match for\n * hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlListboxIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-listbox-${this.count}`;\n }\n}\n","import type { Signal } from '@angular/core';\n\nimport type { ListboxIndicatorMode, ListboxSelectionMode } from './listbox-defaults';\n\n/**\n * What a part asks the listbox around it.\n *\n * It is an abstract class rather than an interface so it can be the injection\n * token as well as the type, and it exists in a file of its own so the parts do\n * not import the component that renders them: the component's own template\n * applies the option directive, and a direct import each way is a cycle.\n */\nexport abstract class SlListboxContext {\n abstract readonly indicatorMode: Signal<ListboxIndicatorMode>;\n abstract readonly selection: Signal<ListboxSelectionMode>;\n abstract readonly listboxDisabled: Signal<boolean>;\n /** Whether this key is chosen. */\n abstract isSelected(key: string): boolean;\n /** Whether this key is the one the keyboard is on. */\n abstract isActive(key: string): boolean;\n /** The id an option carries, so `aria-activedescendant` can name it. */\n abstract optionId(key: string): string;\n /** The tab stop under the roving model, and `null` under the other one. */\n abstract optionTabIndex(key: string): number | null;\n /**\n * How large the whole set is, and where one option sits in it. Both are\n * `null` unless the collection is one the family was handed, which is exactly\n * when the pattern requires them: with options written in the template the\n * whole set is in the DOM and the platform counts it.\n */\n abstract setSize(): number | null;\n abstract posInSet(key: string): number | null;\n /** A press on an option, with the modifiers it was pressed with. */\n abstract press(key: string, event: MouseEvent): void;\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlListboxContext } from './listbox-context';\nimport { SlListboxIdFactory } from './listbox-defaults';\n\n/** The selector the listbox reads its collection through, in DOM order. */\nexport const OPTION_SELECTOR = \"[data-part='option']\";\n\n/**\n * One option, and the four facts the listbox reads back off it.\n *\n * The collection is read from the DOM rather than from a registry, which is\n * what `menu` already does for its typeahead: DOM order is the reading order,\n * it survives arbitrary nesting inside groups, and it cannot disagree with what\n * the reader sees. The facts travel as data attributes, so nothing has to be\n * registered, unregistered or ordered by the time it was created.\n *\n * `aria-disabled` and never the native attribute: the pattern needs a disabled\n * option to keep its place in the set, and `navigateDisabled` is what decides\n * whether the arrows land on it.\n */\n@Component({\n selector: '[slListboxOption]',\n standalone: true,\n exportAs: 'slListboxOption',\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'option',\n role: 'option',\n '[attr.id]': 'id()',\n '[attr.data-key]': 'value()',\n '[attr.data-text-value]': 'textValue() ?? null',\n '[attr.data-selected]': \"selected() ? '' : null\",\n '[attr.data-current]': \"current() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n '[attr.data-pinned]': \"pinned() ? '' : null\",\n '[attr.aria-selected]': 'ariaSelected()',\n '[attr.aria-disabled]': \"resolvedDisabled() ? 'true' : null\",\n '[attr.aria-setsize]': 'setSize()',\n '[attr.aria-posinset]': 'posInSet()',\n '[attr.tabindex]': 'tabIndex()',\n '(click)': 'onClick($event)',\n '(pointerdown)': 'onPointerDown($event)',\n },\n})\nexport class SlListboxOption {\n /** The key this option chooses. It is what the listbox value holds. */\n readonly value = input.required<string>();\n /**\n * What typeahead matches and what a reader hears. Defaults to the option's\n * own text, which is wrong exactly when the option holds a mark, a badge or\n * a number the reader would not type.\n */\n readonly textValue = input<string | undefined>(undefined);\n /** Unstated rather than `false`, so the option defers to the listbox. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /**\n * Rendered outside the window that covers it, at its own place on the canvas.\n * The listbox pins the active option and the range anchor; nothing else sets\n * it, because an `aria-activedescendant` whose target has been recycled names\n * an id that is not in the document.\n */\n readonly pinned = input(false, { transform: booleanAttribute });\n\n private readonly listbox = inject(SlListboxContext);\n\n protected readonly id = computed(() => this.listbox.optionId(this.value()));\n protected readonly selected = computed(() => this.listbox.isSelected(this.value()));\n protected readonly current = computed(() => this.listbox.isActive(this.value()));\n protected readonly resolvedDisabled = computed(\n () => (this.disabled() ?? false) === true || this.listbox.listboxDisabled() === true,\n );\n protected readonly ariaSelected = computed(() =>\n this.listbox.selection() === 'none' ? null : this.selected() ? 'true' : 'false',\n );\n protected readonly setSize = computed(() => this.listbox.setSize());\n protected readonly posInSet = computed(() => this.listbox.posInSet(this.value()));\n protected readonly tabIndex = computed(() => this.listbox.optionTabIndex(this.value()));\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.listbox.press(this.value(), event);\n }\n\n /**\n * Only to stop the browser moving focus off the root. Under\n * `aria-activedescendant` the root is the focused element, and a press that\n * took focus to the option would leave the property pointing at something\n * that is no longer the active element.\n */\n protected onPointerDown(event: PointerEvent) {\n if (event.defaultPrevented) return;\n event.preventDefault();\n }\n}\n\n/**\n * A group of options, named by its own label. The pattern requires the name —\n * \"each option group has an accessible name provided via aria-label or\n * aria-labelledby\" — and requires the group to hold at least one option, which\n * is the consumer's to honour.\n */\n@Component({\n selector: '[slListboxGroup]',\n standalone: true,\n exportAs: 'slListboxGroup',\n template: `@if (label()) {\n <div data-part=\"group-label\" [attr.id]=\"labelId\">{{ label() }}</div>\n }\n <ng-content />`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'group',\n role: 'group',\n '[attr.aria-labelledby]': 'label() ? labelId : null',\n '[attr.aria-label]': 'label() ? null : ariaLabel()',\n },\n})\nexport class SlListboxGroup {\n /** The group's accessible name, rendered as its own label row. */\n readonly label = input<string | undefined>(undefined);\n /**\n * The name without the row, which is what a windowed group takes when its\n * label has scrolled out of the slice: the run of options is still a group\n * and still has to be named.\n */\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'groupLabel' });\n\n protected readonly labelId = inject(SlListboxIdFactory).next();\n}\n\n/**\n * The mark that says an option is chosen. The listbox reserves its column\n * whether or not the mark is painted, so a list does not shift sideways as one\n * option is chosen; `indicator=\"none\"` removes the element and the column with\n * it. The tick is a `Glyph` sized by the column, and content the consumer\n * wrote replaces it.\n */\n@Component({\n selector: '[slListboxIndicator]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon><svg slGlyph name=\"check\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'indicator', 'aria-hidden': 'true' },\n})\nexport class SlListboxIndicator {}\n\n/**\n * The option's own artwork, in the same column the mark uses and never beside\n * it: a `span[slIcon]` holding an `svg[slGlyph]`, or an element of the page's\n * own. The column sizes and centres it; no stylesheet fills it.\n */\n@Directive({\n selector: '[slListboxIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'aria-hidden': 'true' },\n})\nexport class SlListboxIcon {}\n\n/** The option's primary text, and the only one of the three columns that gives way. */\n@Directive({ selector: '[slListboxLabel]', standalone: true, host: { 'data-part': 'label' } })\nexport class SlListboxLabel {}\n\n/** A second line under the label, for what the label cannot say on its own. */\n@Directive({\n selector: '[slListboxDescription]',\n standalone: true,\n host: { 'data-part': 'description' },\n})\nexport class SlListboxDescription {}\n\n/**\n * The value beside the name — a count, a price, a status word. `menu` calls the\n * same column `shortcut`, because a menu's third column holds a key binding.\n */\n@Directive({ selector: '[slListboxMeta]', standalone: true, host: { 'data-part': 'meta' } })\nexport class SlListboxMeta {}\n\n/**\n * What the listbox says when it holds nothing. It lives inside the listbox for\n * the reason `list` records: outside it a reader hears \"listbox, zero items\"\n * and then nothing, and the words fall outside the box a framed listbox paints.\n *\n * It carries no role: `listbox` owns `option` and `group` and nothing else, so\n * a message with a role of its own would be an owned element ARIA does not\n * permit.\n */\n@Directive({ selector: '[slListboxEmpty]', standalone: true, host: { 'data-part': 'empty' } })\nexport class SlListboxEmpty {}\n\n/**\n * The row at the end of a page that has not arrived. It is an `option` by role\n * and disabled, because a listbox owns nothing else and the row is not a\n * choice — which is also why it is not counted in `aria-setsize`.\n */\n@Directive({\n selector: '[slListboxLoader]',\n standalone: true,\n host: { 'data-part': 'loader', role: 'option', 'aria-disabled': 'true' },\n})\nexport class SlListboxLoader {}\n\n/**\n * The content of one option of a collection the listbox was handed. The family\n * renders the option element around it, so the template says what an option\n * holds and never how it is wired.\n */\n@Directive({ selector: '[slListboxOptionContent]', standalone: true })\nexport class SlListboxOptionContent {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type {\n AbstractControl,\n ControlValueAccessor,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport {\n createCollection,\n createRowMetrics,\n moveIndex,\n nextSelection,\n offsetForIndex,\n shouldLoadMore,\n virtualWindow,\n} from '@slotted/core/collection';\nimport type {\n Collection,\n MoveIntent,\n RowMetrics,\n SelectionAction,\n SelectionBehavior,\n} from '@slotted/core/collection';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { createTypeahead, isPrintable } from '@slotted/core/typeahead';\nimport type { TypeaheadHandle } from '@slotted/core/typeahead';\n\nimport { SlListboxContext } from './listbox-context';\nimport { injectListboxDefaults, SlListboxIdFactory } from './listbox-defaults';\nimport type {\n ListboxAlignment,\n ListboxFocusMode,\n ListboxIndicatorMode,\n ListboxOrientation,\n ListboxSelectionBehavior,\n ListboxSelectionMode,\n ListboxSize,\n ListboxVariant,\n} from './listbox-defaults';\nimport {\n OPTION_SELECTOR,\n SlListboxGroup,\n SlListboxOption,\n SlListboxOptionContent,\n} from './listbox-parts';\n\nexport type {\n ListboxAlignment,\n ListboxFocusMode,\n ListboxIndicatorMode,\n ListboxOrientation,\n ListboxSelectionBehavior,\n ListboxSelectionMode,\n ListboxSize,\n ListboxVariant,\n} from './listbox-defaults';\n\n/**\n * What the listbox holds: one key in `single` and `none`, a set of them in\n * `multiple`. Three of the four surveyed implementations give single selection\n * a scalar; the array-always shape is what makes a consumer write `value[0]`.\n */\nexport type ListboxValue = string | readonly string[] | null;\n\nexport type ListboxChangeRequest = ChangeRequest<ListboxValue>;\nexport type ListboxActiveRequest = ChangeRequest<string | null>;\n\n/** One section of a collection the listbox was handed. */\nexport interface ListboxSection<T = unknown> {\n key: string;\n label: string;\n items: readonly T[];\n}\n\n/** One option of the render plan the template walks. */\ninterface PlanOption {\n kind: 'option';\n id: string;\n key: string;\n item: unknown;\n label: string;\n disabled: boolean;\n /** Where a pinned row sits on the canvas, or `null` for a row in the slice. */\n offset: number | null;\n}\n\ninterface PlanGroup {\n kind: 'group';\n id: string;\n sectionKey: string;\n label: string;\n /** Whether the label row itself is inside the window. */\n showLabel: boolean;\n options: PlanOption[];\n}\n\ntype PlanEntry = PlanOption | PlanGroup;\n\nconst EMPTY_SNAPSHOT = { keys: [] as string[], labels: [] as string[], disabled: [] as boolean[] };\n\nfunction toKeys(value: ListboxValue | undefined): readonly string[] {\n if (value === undefined || value === null) return [];\n return typeof value === 'string' ? [value] : value;\n}\n\nfunction sameKeys(a: readonly string[], b: readonly string[]) {\n return a.length === b.length && a.every((key, index) => key === b[index]);\n}\n\n/**\n * A list of options the reader chooses from, and the primitive `select`,\n * `combobox` and the pickers are built on.\n *\n * ── Where the collection comes from ─────────────────────────────────────\n *\n * Two ways in, one shape out. Written in the template, the collection is read\n * from the rendered options in DOM order — which is the reading order, survives\n * nesting inside groups, and cannot disagree with what the reader sees. Handed\n * `items` or `sections`, it is built by `@slotted/core/collection`, which is\n * the only way a listbox can window a set larger than the DOM or report a set\n * the DOM does not hold.\n *\n * ── Two mutable values ──────────────────────────────────────────────────\n *\n * The pattern is explicit that they are two: \"DOM focus (the active element) is\n * functionally distinct from the selected state\". `value` is what the reader\n * chose and `activeKey` is where the keyboard is, and a `select` reopening onto\n * the option chosen last time needs the second and nothing else.\n *\n * ── The focus model is read, not asked for ──────────────────────────────\n *\n * `focusMode=\"auto\"` answers `activedescendant` whenever the set is windowed,\n * because a roving `tabindex` cannot survive its own element being recycled:\n * the element carrying `tabindex=\"0\"` is removed while it holds focus, and\n * focus falls to the document body.\n */\n@Component({\n selector: '[slListbox]',\n standalone: true,\n exportAs: 'slListbox',\n imports: [NgTemplateOutlet, SlListboxGroup, SlListboxOption],\n styleUrls: ['../../../styles/src/listbox/listbox.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: SlListboxContext, useExisting: forwardRef(() => SlListbox) },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlListbox), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => SlListbox), multi: true },\n ],\n template: `@if (collection(); as held) {\n @if (windowed()) {\n <div\n data-part=\"canvas\"\n role=\"presentation\"\n [style.--_canvas-size]=\"slice().totalSize + 'px'\"\n [style.--_canvas-offset]=\"slice().startOffset + 'px'\"\n >\n <ng-container\n [ngTemplateOutlet]=\"planRows\"\n [ngTemplateOutletContext]=\"{ $implicit: plan() }\"\n />\n </div>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"planRows\"\n [ngTemplateOutletContext]=\"{ $implicit: plan() }\"\n />\n }\n }\n <ng-content />\n\n <ng-template #planRows let-entries>\n @for (entry of entries; track entry.id) {\n @if (entry.kind === 'group') {\n <div\n slListboxGroup\n [label]=\"entry.showLabel ? entry.label : undefined\"\n [groupLabel]=\"entry.label\"\n >\n @for (option of entry.options; track option.id) {\n <ng-container\n [ngTemplateOutlet]=\"optionRow\"\n [ngTemplateOutletContext]=\"{ $implicit: option }\"\n />\n }\n </div>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"optionRow\"\n [ngTemplateOutletContext]=\"{ $implicit: entry }\"\n />\n }\n }\n </ng-template>\n\n <ng-template #optionRow let-option>\n <div\n slListboxOption\n [value]=\"option.key\"\n [textValue]=\"option.label\"\n [disabled]=\"option.disabled\"\n [pinned]=\"option.offset !== null\"\n [style.inset-block-start.px]=\"option.offset\"\n >\n @if (optionContent(); as content) {\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ $implicit: option.item }\"\n />\n }\n </div>\n </ng-template>`,\n host: {\n 'data-ui': 'listbox',\n 'data-part': 'root',\n '[attr.role]': 'writtenRole ?? \"listbox\"',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-indicator]': 'indicatorMode()',\n '[attr.data-focus-mode]': 'mode()',\n '[attr.data-layout]': 'resolvedColumns() > 1 ? \"grid\" : null',\n '[attr.data-disabled]': 'listboxDisabled() ? \"\" : null',\n '[attr.data-readonly]': 'resolvedReadOnly() ? \"\" : null',\n '[attr.data-invalid]': 'resolvedInvalid() ? \"\" : null',\n '[attr.data-required]': 'resolvedRequired() ? \"\" : null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.aria-multiselectable]': 'selection() === \"multiple\" ? \"true\" : null',\n '[attr.aria-orientation]': 'resolvedOrientation() === \"horizontal\" ? \"horizontal\" : null',\n '[attr.aria-activedescendant]': 'activeDescendant()',\n '[attr.aria-disabled]': 'listboxDisabled() ? \"true\" : null',\n '[attr.aria-readonly]': 'resolvedReadOnly() ? \"true\" : null',\n '[attr.aria-required]': 'resolvedRequired() ? \"true\" : null',\n '[attr.aria-invalid]': 'resolvedInvalid() ? \"true\" : null',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.tabindex]': 'rootTabIndex()',\n '[style.--slotted-listbox-rows]': 'resolvedRows()',\n '[style.--slotted-listbox-columns]': 'resolvedColumns()',\n '(keydown)': 'handleKeyDown($event)',\n '(focusin)': 'handleFocusIn($event)',\n '(focusout)': 'handleFocusOut($event)',\n '(scroll)': 'readViewport()',\n },\n})\nexport class SlListbox implements ControlValueAccessor, OnInit, SlListboxContext, Validator {\n /* ── Inputs ───────────────────────────────────────────────────────── */\n\n /** Present means the consumer owns the choice, for the life of the component. */\n readonly value = input<ListboxValue | undefined>(undefined);\n /** What an uncontrolled listbox starts from, read once. */\n readonly defaultValue = input<ListboxValue | undefined>(undefined);\n /** Present means the consumer owns which option the keyboard is on. */\n readonly activeKey = input<string | null | undefined>(undefined);\n readonly defaultActiveKey = input<string | null | undefined>(undefined);\n\n readonly selectionMode = input<ListboxSelectionMode | undefined>(undefined);\n readonly selectionBehavior = input<ListboxSelectionBehavior | undefined>(undefined);\n readonly size = input<ListboxSize | undefined>(undefined);\n readonly variant = input<ListboxVariant | undefined>(undefined);\n readonly orientation = input<ListboxOrientation | undefined>(undefined);\n readonly focusMode = input<ListboxFocusMode | undefined>(undefined);\n readonly indicator = input<ListboxIndicatorMode | undefined>(undefined);\n\n readonly loop = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly typeahead = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly selectOnFocus = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly navigateDisabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly disallowEmptySelection = input<boolean | undefined, boolean | string | undefined>(\n undefined,\n { transform: (state) => (state === undefined ? undefined : booleanAttribute(state)) },\n );\n readonly disallowSelectAll = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n\n readonly rows = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly columns = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly pageSize = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly typeaheadTimeout = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n\n /** Unstated rather than `false`, so the listbox defers to the form around it. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly required = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly loading = input(false, { transform: booleanAttribute });\n\n /** The whole collection, when the listbox is to window it or to report a set larger than the DOM. */\n readonly items = input<readonly unknown[] | undefined>(undefined);\n /** A grouped collection. Mutually exclusive with `items`. */\n readonly sections = input<readonly ListboxSection[] | undefined>(undefined);\n readonly getKey = input<((item: never) => string) | undefined>(undefined);\n readonly getLabel = input<((item: never) => string) | undefined>(undefined);\n readonly isItemDisabled = input<((item: never) => boolean) | undefined>(undefined);\n /** How large the whole set is when only part of it has been loaded. */\n readonly totalCount = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n\n /** Renders only the options the viewport covers, plus the pinned ones. */\n readonly virtual = input(false, { transform: booleanAttribute });\n /** The block size of one option. Required whenever `virtual` is set. */\n readonly itemSize = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n /** The block size of a group label row. Defaults to `itemSize`. */\n readonly sectionSize = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly overscan = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n\n readonly hasMore = input(false, { transform: booleanAttribute });\n readonly loadMoreThreshold = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n\n /* ── Outputs ──────────────────────────────────────────────────────── */\n\n /** Emitted before the selection moves, with the request that carries the reason. */\n readonly valueChange = output<ListboxChangeRequest>();\n /** Emitted before the option the keyboard is on moves. */\n readonly activeKeyChange = output<ListboxActiveRequest>();\n /** Asked when the rendered window reaches the end of what has been loaded. */\n readonly loadMore = output<void>();\n\n /* ── Wiring ───────────────────────────────────────────────────────── */\n\n private readonly defaults = injectListboxDefaults();\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly idPrefix = inject(SlListboxIdFactory).next();\n private readonly destroyRef = inject(DestroyRef);\n\n /** A role the consumer wrote is never replaced by the family's. */\n protected readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n /* The consumer's `<ng-template slListboxOptionContent let-item>`: what one\n option of a handed collection holds, so the template says what an option is\n made of and never how it is wired. */\n protected readonly optionContent = contentChild(SlListboxOptionContent, {\n read: TemplateRef,\n });\n\n private readonly ownKeys = signal<readonly string[]>([]);\n private readonly ownActive = signal<string | null>(null);\n private readonly formKeys = signal<readonly string[] | null>(null);\n private readonly formDisabled = signal(false);\n private readonly anchor = signal<string | undefined>(undefined);\n private typeaheadHandle: TypeaheadHandle | null = null;\n private onChangeFn: (value: ListboxValue) => void = () => {};\n private onTouchedFn: () => void = () => {};\n\n protected readonly viewportSize = signal(0);\n protected readonly scrollOffset = signal(0);\n\n constructor() {\n afterNextRender(() => {\n const element = this.host.nativeElement;\n this.readViewport();\n /* A `ResizeObserver` where there is one, and the viewport's own resize\n where there is not: a test environment and an old browser both answer\n the second, and a window that never re-measured would render the first\n frame's slice forever. */\n if (typeof ResizeObserver === 'undefined') {\n const view = element.ownerDocument.defaultView;\n const read = () => this.readViewport();\n view?.addEventListener('resize', read);\n this.destroyRef.onDestroy(() => view?.removeEventListener('resize', read));\n return;\n }\n const observer = new ResizeObserver(() => this.readViewport());\n observer.observe(element);\n this.destroyRef.onDestroy(() => observer.disconnect());\n });\n\n this.destroyRef.onDestroy(() => this.typeaheadHandle?.destroy());\n }\n\n /**\n * The uncontrolled start, read once. It is read here rather than in the\n * constructor because that is where Angular has finished writing the inputs,\n * and a value read a moment earlier is the input's declared default rather\n * than the consumer's.\n */\n ngOnInit() {\n this.ownKeys.set(toKeys(this.defaultValue()));\n this.ownActive.set(this.defaultActiveKey() ?? null);\n }\n\n /* ── Resolved axes ────────────────────────────────────────────────── */\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly indicatorMode = computed(() => this.indicator() ?? this.defaults.indicator);\n readonly selection = computed(() => this.selectionMode() ?? this.defaults.selectionMode);\n readonly resolvedBehavior = computed<SelectionBehavior>(\n () => this.selectionBehavior() ?? this.defaults.selectionBehavior,\n );\n readonly resolvedRows = computed(() => this.rows() ?? this.defaults.rows);\n readonly resolvedColumns = computed(() =>\n Math.max(Math.floor(this.columns() ?? this.defaults.columns), 1),\n );\n readonly resolvedReadOnly = computed(() => (this.readOnly() ?? false) === true);\n readonly resolvedRequired = computed(() => (this.required() ?? false) === true);\n readonly resolvedInvalid = computed(() => (this.invalid() ?? false) === true);\n readonly listboxDisabled = computed(() => (this.disabled() ?? this.formDisabled()) === true);\n\n readonly windowed = computed(() => this.virtual() && (this.itemSize() ?? 0) > 0);\n readonly mode = computed<'roving' | 'activedescendant'>(() => {\n const asked = this.focusMode() ?? this.defaults.focusMode;\n return asked === 'auto' ? (this.windowed() ? 'activedescendant' : 'roving') : asked;\n });\n\n /* ── State ────────────────────────────────────────────────────────── */\n\n readonly selectedKeys = computed<readonly string[]>(() => {\n const controlled = this.value();\n if (controlled !== undefined) return toKeys(controlled);\n return this.formKeys() ?? this.ownKeys();\n });\n\n readonly active = computed<string | null>(() => {\n const controlled = this.activeKey();\n return controlled === undefined ? this.ownActive() : controlled;\n });\n\n protected readonly activeDescendant = computed(() => {\n const key = this.active();\n return this.mode() === 'activedescendant' && key !== null ? this.optionId(key) : null;\n });\n\n protected readonly rootTabIndex = computed(() =>\n this.mode() === 'activedescendant' || this.active() === null ? 0 : -1,\n );\n\n /* ── The collection ───────────────────────────────────────────────── */\n\n readonly collection = computed<Collection<unknown> | undefined>(() => {\n const items = this.items();\n const sections = this.sections();\n if (items === undefined && sections === undefined) return undefined;\n const key = this.getKey() as ((item: unknown) => string) | undefined;\n const label = this.getLabel() as ((item: unknown) => string) | undefined;\n const disabled = this.isItemDisabled() as ((item: unknown) => boolean) | undefined;\n const total = this.totalCount();\n return createCollection<unknown>({\n ...(items === undefined ? {} : { items }),\n ...(sections === undefined ? {} : { sections }),\n getKey: key === undefined ? (_item, index) => String(index) : (item) => key(item),\n ...(label === undefined ? {} : { getLabel: label }),\n ...(disabled === undefined ? {} : { isDisabled: disabled }),\n ...(total === undefined ? {} : { totalCount: total }),\n });\n });\n\n private readonly rowMetrics = computed<RowMetrics | undefined>(() => {\n const held = this.collection();\n if (!this.windowed() || held === undefined || this.sections() === undefined) return undefined;\n const option = this.itemSize() ?? 0;\n const label = this.sectionSize() ?? option;\n return createRowMetrics(held.rows.map((row) => (row.kind === 'option' ? option : label)));\n });\n\n readonly slice = computed(() => {\n const held = this.collection();\n const metrics = this.rowMetrics();\n const activeRow =\n this.active() === null ? -1 : (held?.optionFor(this.active() as string)?.row ?? -1);\n const anchorKey = this.anchor();\n const anchorRow = anchorKey === undefined ? -1 : (held?.optionFor(anchorKey)?.row ?? -1);\n return virtualWindow({\n itemCount: held?.rows.length ?? 0,\n ...(metrics === undefined ? { itemSize: this.itemSize() ?? 0 } : { metrics }),\n overscan: this.overscan() ?? this.defaults.overscan,\n scrollOffset: this.scrollOffset(),\n viewportSize: this.viewportSize(),\n pinned: [activeRow, anchorRow],\n });\n });\n\n /**\n * What the template walks. A windowed slice starts and ends in the middle of\n * the collection, so a group is emitted per contiguous run of rows belonging\n * to one section rather than per section — and a run whose label row is\n * outside the window is named by `aria-label` instead. Each run is still a\n * group carrying the section's name, which is what the pattern asks of a\n * grouped option.\n */\n protected readonly plan = computed<PlanEntry[]>(() => {\n const held = this.collection();\n if (held === undefined) return [];\n\n const metrics = this.rowMetrics();\n const size = this.itemSize() ?? 0;\n const offsetOf = (row: number) => metrics?.offsetOf(row) ?? row * size;\n\n const toOption = (index: number, pinned: boolean): PlanOption | null => {\n const option = held.options[index];\n if (option === undefined) return null;\n return {\n kind: 'option',\n id: `${option.key}-${pinned ? 'pinned' : 'row'}`,\n key: option.key,\n item: option.item,\n label: option.label,\n disabled: option.disabled,\n offset: pinned ? offsetOf(option.row) : null,\n };\n };\n\n const window_ = this.slice();\n const rows = this.windowed()\n ? held.rows.slice(window_.startIndex, window_.endIndex)\n : held.rows;\n\n const entries: PlanEntry[] = [];\n\n if (this.windowed()) {\n for (const row of [...window_.pinnedBefore, ...window_.pinnedAfter]) {\n const held_ = held.rows[row];\n if (held_?.kind !== 'option') continue;\n const option = toOption(held_.option.index, true);\n if (option !== null) entries.push(option);\n }\n }\n\n const group = (sectionKey: string, label: string, showLabel: boolean): PlanGroup => {\n const made: PlanGroup = {\n kind: 'group',\n id: `group-${sectionKey}-${window_.startIndex}`,\n sectionKey,\n label,\n showLabel,\n options: [],\n };\n entries.push(made);\n return made;\n };\n\n let run: PlanGroup | undefined;\n\n for (const row of rows) {\n if (row.kind === 'section-label') {\n run = group(row.section.key, row.section.label ?? '', true);\n continue;\n }\n const option = toOption(row.option.index, false);\n if (option === null) continue;\n const section = row.option.section;\n if (section === undefined) {\n run = undefined;\n entries.push(option);\n continue;\n }\n if (run === undefined || run.sectionKey !== section) {\n run = group(section, held.sections.find((s) => s.key === section)?.label ?? '', false);\n }\n run.options.push(option);\n }\n\n return entries;\n });\n\n /**\n * The collection as the reducers want it, read at the moment of a key press\n * rather than held in state: an option added or removed between two presses\n * is already accounted for, and nothing has to be registered.\n */\n private snapshot() {\n const held = this.collection();\n if (held !== undefined) {\n return {\n keys: held.keys,\n labels: held.labels,\n disabled: held.options.map((option) => option.disabled),\n };\n }\n const nodes = [...this.host.nativeElement.querySelectorAll<HTMLElement>(OPTION_SELECTOR)];\n if (nodes.length === 0) return EMPTY_SNAPSHOT;\n return {\n keys: nodes.map((node) => node.dataset['key'] ?? ''),\n labels: nodes.map((node) => node.dataset['textValue'] ?? node.textContent?.trim() ?? ''),\n disabled: nodes.map((node) => node.getAttribute('aria-disabled') === 'true'),\n };\n }\n\n /* ── What the parts are told ──────────────────────────────────────── */\n\n isSelected(key: string) {\n return this.selectedKeys().includes(key);\n }\n\n isActive(key: string) {\n return this.active() === key;\n }\n\n optionId(key: string) {\n return `${this.idPrefix}-${key}`;\n }\n\n optionTabIndex(key: string) {\n if (this.mode() !== 'roving') return null;\n return this.active() === key ? 0 : -1;\n }\n\n setSize() {\n return this.collection()?.setSize ?? null;\n }\n\n posInSet(key: string) {\n const position = this.collection()?.posInSet(key);\n return position === undefined || position === -1 ? null : position;\n }\n\n press(key: string, event: MouseEvent) {\n if (this.listboxDisabled()) return;\n const snap = this.snapshot();\n const index = snap.keys.indexOf(key);\n const optionDisabled = index !== -1 && snap.disabled[index] === true;\n const navigateDisabled = this.navigateDisabled() ?? this.defaults.navigateDisabled;\n\n if (this.mode() === 'roving') this.focusOption(key);\n else this.host.nativeElement.focus();\n\n if (optionDisabled && !navigateDisabled) return;\n this.requestActive(key, 'pointer', event);\n if (optionDisabled) return;\n\n if (event.shiftKey) this.applySelection('range', key, 'pointer', event);\n /* Control or Command adds one, whichever model is in force: it is the press\n that says \"this one as well\", and it means that in both. */\n else if (event.ctrlKey || event.metaKey) {\n this.applySelection('toggle', key, 'pointer', event, 'toggle');\n } else this.applySelection('toggle', key, 'pointer', event);\n }\n\n /* ── Moving and choosing ──────────────────────────────────────────── */\n\n private focusOption(key: string) {\n this.host.nativeElement\n .querySelector<HTMLElement>(`${OPTION_SELECTOR}[data-key=\"${CSS.escape(key)}\"]`)\n ?.focus();\n }\n\n private requestActive(\n key: string | null,\n reason: 'pointer' | 'keyboard' | 'programmatic',\n source: unknown,\n ) {\n let cancelled = false;\n const controlled = this.activeKey();\n const state = createControllable<string | null>({\n ...(controlled === undefined ? {} : { controlled }),\n initial: this.active(),\n onRequest: (request) => {\n this.activeKeyChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(key, reason, source);\n if (cancelled) return;\n if (moved) this.ownActive.set(key);\n }\n\n private applySelection(\n action: SelectionAction,\n key: string | undefined,\n reason: 'pointer' | 'keyboard' | 'select' | 'clear' | 'programmatic',\n source: unknown,\n behavior: SelectionBehavior = this.resolvedBehavior(),\n ) {\n if (this.selection() === 'none' || this.resolvedReadOnly()) return;\n const snap = this.snapshot();\n const selected = this.selectedKeys();\n const result = nextSelection({\n action,\n behavior,\n mode: this.selection(),\n selected,\n keys: snap.keys,\n ...(key === undefined ? {} : { key }),\n ...(this.anchor() === undefined ? {} : { anchor: this.anchor() as string }),\n disabled: (candidate) => snap.disabled[snap.keys.indexOf(candidate)] === true,\n disallowEmpty: this.disallowEmptySelection() ?? this.defaults.disallowEmptySelection,\n disallowSelectAll: this.disallowSelectAll() ?? this.defaults.disallowSelectAll,\n });\n this.anchor.set(result.anchor);\n if (!result.changed) return;\n\n let cancelled = false;\n const controlled = this.value();\n const outward = (keys: readonly string[]): ListboxValue =>\n this.selection() === 'multiple' ? keys : (keys[0] ?? null);\n const state = createControllable<readonly string[]>({\n ...(controlled === undefined ? {} : { controlled: toKeys(controlled) }),\n initial: selected,\n equals: sameKeys,\n onRequest: (request) => {\n /* The request the consumer sees carries the shape the consumer gave:\n one key in single selection, the set in multiple. The reducer works in\n arrays throughout, and this is the one place the two meet. */\n this.valueChange.emit({\n value: outward(request.value),\n previous: outward(request.previous),\n reason: request.reason,\n source: request.source,\n get cancelled() {\n return request.cancelled;\n },\n cancel: () => request.cancel(),\n });\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(result.selected, reason, source);\n if (cancelled) return;\n if (moved) {\n this.ownKeys.set(result.selected);\n this.formKeys.set(result.selected);\n }\n this.onChangeFn(outward(result.selected));\n }\n\n private moveActive(index: number, source: unknown, keys: readonly string[]) {\n const key = keys[index];\n if (key === undefined) return;\n this.requestActive(key, 'keyboard', source);\n this.revealIndex(index, 'nearest');\n if (this.mode() === 'roving') this.focusOption(key);\n }\n\n private revealIndex(index: number, align: ListboxAlignment) {\n const element = this.host.nativeElement;\n if (index < 0) return;\n\n if (!this.windowed()) {\n const key = this.snapshot().keys[index];\n if (key === undefined) return;\n element\n .querySelector<HTMLElement>(`${OPTION_SELECTOR}[data-key=\"${CSS.escape(key)}\"]`)\n /* Optional-called: `scrollIntoView` is absent in a test environment. */\n ?.scrollIntoView?.({ block: align === 'nearest' ? 'nearest' : 'center' });\n return;\n }\n\n const held = this.collection();\n const metrics = this.rowMetrics();\n element.scrollTop = offsetForIndex({\n index: held?.options[index]?.row ?? index,\n itemCount: held?.rows.length ?? 0,\n ...(metrics === undefined ? { itemSize: this.itemSize() ?? 0 } : { metrics }),\n scrollOffset: element.scrollTop,\n viewportSize: element.clientHeight,\n align,\n });\n }\n\n /* ── The keyboard ─────────────────────────────────────────────────── */\n\n protected handleKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || this.listboxDisabled()) return;\n\n const snap = this.snapshot();\n if (snap.keys.length === 0) return;\n\n const navigateDisabled = this.navigateDisabled() ?? this.defaults.navigateDisabled;\n const enabled = snap.keys.map((_, index) => navigateDisabled || snap.disabled[index] !== true);\n const active = this.active();\n const from = active === null ? -1 : snap.keys.indexOf(active);\n const modifier = event.ctrlKey || event.metaKey;\n const element = this.host.nativeElement;\n const rtl = element.ownerDocument.defaultView?.getComputedStyle(element).direction === 'rtl';\n const loop = this.loop() ?? this.defaults.loop;\n const columns = this.resolvedColumns();\n const pageSize = this.pageSize() ?? this.defaults.pageSize;\n const selectOnFocus = this.selectOnFocus() ?? this.defaults.selectOnFocus;\n\n /**\n * A row in a two-dimensional arrangement is `pageDown` with the page set to\n * `columns`: the engine's page arithmetic already clamps rather than\n * wrapping and lands on the nearest enabled option inward, which is exactly\n * what a row step needs.\n */\n const step = (intent: MoveIntent, page?: number) => {\n const index = moveIndex({\n enabled,\n from,\n intent,\n loop,\n ...(page === undefined ? {} : { page }),\n });\n if (index === -1 || index === from) return;\n event.preventDefault();\n this.moveActive(index, event, snap.keys);\n\n const key = snap.keys[index];\n if (key === undefined || snap.disabled[index] === true) return;\n if (event.shiftKey && this.selection() === 'multiple') {\n this.applySelection('toggle', key, 'keyboard', event, 'toggle');\n } else if (!modifier && selectOnFocus) {\n this.applySelection('replace', key, 'keyboard', event);\n }\n };\n\n const edge = (intent: 'first' | 'last') => {\n const index = moveIndex({ enabled, from, intent });\n if (index === -1) return;\n event.preventDefault();\n const key = snap.keys[index];\n this.moveActive(index, event, snap.keys);\n if (modifier && event.shiftKey && key !== undefined) {\n this.applySelection('range', key, 'keyboard', event, 'toggle');\n } else if (!modifier && selectOnFocus && key !== undefined) {\n this.applySelection('replace', key, 'keyboard', event);\n }\n };\n\n const inlineNext = rtl ? 'ArrowLeft' : 'ArrowRight';\n const inlinePrevious = rtl ? 'ArrowRight' : 'ArrowLeft';\n const horizontal = this.resolvedOrientation() === 'horizontal';\n const grid = columns > 1;\n\n if (event.key === 'ArrowDown' && !horizontal) {\n return grid ? step('pageDown', columns) : step('next');\n }\n if (event.key === 'ArrowUp' && !horizontal) {\n return grid ? step('pageUp', columns) : step('previous');\n }\n if (event.key === inlineNext && (horizontal || grid)) return step('next');\n if (event.key === inlinePrevious && (horizontal || grid)) return step('previous');\n if (event.key === 'Home') return edge('first');\n if (event.key === 'End') return edge('last');\n if (event.key === 'PageDown') return step('pageDown', pageSize);\n if (event.key === 'PageUp') return step('pageUp', pageSize);\n\n const sequenceOpen = (this.typeaheadHandle?.query.length ?? 0) > 0;\n\n if ((event.key === ' ' && !sequenceOpen) || event.key === 'Enter') {\n if (active === null) return;\n event.preventDefault();\n if (event.shiftKey && this.selection() === 'multiple') {\n this.applySelection('range', active, 'keyboard', event, 'toggle');\n } else {\n /* Control+Space toggles even under the alternative model, where a plain\n Space replaces. It is the one key that says \"this one as well\". */\n this.applySelection(\n 'toggle',\n active,\n 'keyboard',\n event,\n modifier ? 'toggle' : this.resolvedBehavior(),\n );\n }\n return;\n }\n\n if (modifier && (event.key === 'a' || event.key === 'A')) {\n event.preventDefault();\n this.applySelection('all', undefined, 'select', event);\n return;\n }\n\n const typeahead = this.typeahead() ?? this.defaults.typeahead;\n if (typeahead && !modifier && isPrintable(event.key, sequenceOpen)) {\n this.typeaheadHandle ??= createTypeahead({\n timeout: this.typeaheadTimeout() ?? this.defaults.typeaheadTimeout,\n });\n const index = this.typeaheadHandle.match(event.key, snap.labels, from);\n if (index === -1) return;\n event.preventDefault();\n this.moveActive(index, event, snap.keys);\n const key = snap.keys[index];\n if (selectOnFocus && key !== undefined) {\n this.applySelection('replace', key, 'keyboard', event);\n }\n }\n }\n\n protected handleFocusIn(event: FocusEvent) {\n if (this.listboxDisabled()) return;\n if (event.target !== this.host.nativeElement || this.active() !== null) return;\n\n /* The pattern: focus lands on the selected option when there is one, and on\n the first option otherwise, in both single and multiple selection. */\n const snap = this.snapshot();\n const navigateDisabled = this.navigateDisabled() ?? this.defaults.navigateDisabled;\n const enabled = snap.keys.map((_, index) => navigateDisabled || snap.disabled[index] !== true);\n const selected = this.selectedKeys();\n const chosen = selected.length > 0 ? snap.keys.indexOf(selected[0] as string) : -1;\n const index =\n chosen !== -1 && enabled[chosen] === true\n ? chosen\n : moveIndex({ enabled, from: -1, intent: 'first' });\n if (index !== -1) this.moveActive(index, event, snap.keys);\n }\n\n protected handleFocusOut(event: FocusEvent) {\n const next = event.relatedTarget as Node | null;\n if (next !== null && this.host.nativeElement.contains(next)) return;\n /**\n * Only when focus has actually left. Under the roving model the family\n * moves focus from option to option on every key, and each of those moves\n * raises a `focusout` on the root: resetting on all of them cleared the\n * typeahead buffer after every character, so a sequence longer than one\n * letter could never be typed.\n */\n this.typeaheadHandle?.reset();\n this.onTouchedFn();\n }\n\n protected readViewport() {\n const element = this.host.nativeElement;\n this.viewportSize.set(element.clientHeight);\n this.scrollOffset.set(element.scrollTop);\n if (!this.windowed()) return;\n this.askForMore();\n }\n\n private askForMore() {\n const held = this.collection();\n if (held === undefined) return;\n if (\n shouldLoadMore({\n endIndex: this.windowed() ? this.slice().endIndex : held.rows.length,\n loadedCount: held.rows.length,\n threshold: this.loadMoreThreshold() ?? this.defaults.loadMoreThreshold,\n hasMore: this.hasMore(),\n loading: this.loading(),\n })\n ) {\n this.loadMore.emit();\n }\n }\n\n /* ── The imperative actions ───────────────────────────────────────── */\n\n /** Moves real focus into the listbox, under either focus model. */\n focus() {\n const active = this.active();\n if (this.mode() === 'activedescendant' || active === null) {\n this.host.nativeElement.focus();\n return;\n }\n this.focusOption(active);\n }\n\n /** Reveals an option, whether or not it is currently rendered. */\n scrollToKey(key: string, align: ListboxAlignment = 'nearest') {\n const index = this.snapshot().keys.indexOf(key);\n if (index !== -1) this.revealIndex(index, align);\n }\n\n /** Which option the keyboard is on, or `null`. */\n getActiveKey() {\n return this.active();\n }\n\n /* ── Forms ────────────────────────────────────────────────────────── */\n\n writeValue(value: ListboxValue | undefined) {\n this.formKeys.set(toKeys(value));\n }\n\n registerOnChange(fn: (value: ListboxValue) => void) {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /**\n * The listbox owns validity over the set, which no single option can see:\n * \"choose one\" is a fact about the collection and not about any one option.\n */\n validate(control: AbstractControl): ValidationErrors | null {\n if (!this.resolvedRequired()) return null;\n const value = control.value as ListboxValue | undefined;\n return toKeys(value).length === 0 ? { required: true } : null;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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AA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,sBAAsB,CAAA,EAAA,EAAA,GAAE;AACtE,4BAAA,IAAI,EAAE,WAAW;AAClB,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACpYH;;AAEG;;"}
|