@slotted/angular 0.0.0-stage → 0.1.0-beta.1
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,419 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# command-palette
|
|
3
|
+
|
|
4
|
+
`data-ui="command-palette"` · Searchable dialog of commands and destinations.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlCommandPalette, SlCommandPaletteTrigger, SlCommandPaletteItem, provideCommandPaletteDefaults } from '@slotted/angular/command-palette';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `sl-command-palette, [slCommandPaletteTrigger], ng-template[slCommandPaletteItem]` · exportAs: `slCommandPalette`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<button slButton [slCommandPaletteTrigger]="palette">Search</button>
|
|
20
|
+
<sl-command-palette
|
|
21
|
+
#palette="slCommandPalette"
|
|
22
|
+
[items]="items"
|
|
23
|
+
[groups]="groups"
|
|
24
|
+
(select)="run($event.item.id)"
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Anatomy
|
|
29
|
+
|
|
30
|
+
| Part | Element | Required |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| `root` | div | yes |
|
|
33
|
+
| `trigger` | button | no |
|
|
34
|
+
| `header` | div | yes |
|
|
35
|
+
| `search` | span | no |
|
|
36
|
+
| `busy` | span | no |
|
|
37
|
+
| `pages` | ol | no |
|
|
38
|
+
| `page` | button | no |
|
|
39
|
+
| `input` | input | yes |
|
|
40
|
+
| `clear` | button | yes |
|
|
41
|
+
| `close` | button | no |
|
|
42
|
+
| `list` | div | yes |
|
|
43
|
+
| `group` | div | no |
|
|
44
|
+
| `group-label` | div | no |
|
|
45
|
+
| `item` | div \| a | no |
|
|
46
|
+
| `icon` | span | no |
|
|
47
|
+
| `label` | span | no |
|
|
48
|
+
| `match` | mark | no |
|
|
49
|
+
| `description` | span | no |
|
|
50
|
+
| `meta` | span | no |
|
|
51
|
+
| `shortcut` | span | no |
|
|
52
|
+
| `arrow` | span | no |
|
|
53
|
+
| `separator` | div | no |
|
|
54
|
+
| `empty` | div | no |
|
|
55
|
+
| `status` | div | yes |
|
|
56
|
+
| `placeholder` | div | no |
|
|
57
|
+
| `footer` | div | no |
|
|
58
|
+
| `hint` | span | no |
|
|
59
|
+
|
|
60
|
+
## Props
|
|
61
|
+
|
|
62
|
+
| Name | Type | Default | Applies to | Description |
|
|
63
|
+
| --- | --- | --- | --- | --- |
|
|
64
|
+
| `items` | `CommandPaletteItem[]` | — | sl-command-palette | The commands: id, label, keywords, description, group, meta, shortcut, href, target, disabled, onSelect, children |
|
|
65
|
+
| `groups` | `CommandGroup[]` | — | sl-command-palette | The headings and their order; a group not listed is drawn after them under its own id |
|
|
66
|
+
| `rank` | `CommandRanker \| null` | the core ranker | sl-command-palette | (item, query) => number \| null. Absent takes the locale-sensitive core ranker; null shows the items as they came |
|
|
67
|
+
| `locale` | `string` | — | sl-command-palette | BCP 47, for the comparison the default ranker and the match mark make |
|
|
68
|
+
| `limit` | `number` | — | sl-command-palette | How many rows to draw at most, across groups in reading order |
|
|
69
|
+
| `open` | `model<boolean>` | false | sl-command-palette | model(): the layer’s state, two-way with [(open)] |
|
|
70
|
+
| `query` | `model<string>` | '' | sl-command-palette | model(): the text, two-way with [(query)] |
|
|
71
|
+
| `highlightedId` | `model<string \| null>` | null | sl-command-palette | model(): the current row; autoHighlight moves it to the first row |
|
|
72
|
+
| `pages` | `model<string[]>` | [] | sl-command-palette | model(): the ids of the open pages, oldest first |
|
|
73
|
+
| `recent` | `model<string[]>` | [] | sl-command-palette | model(): the ids the reader ran recently, newest first |
|
|
74
|
+
| `presentation` | `'dialog' \| 'inline'` | dialog | sl-command-palette | dialog composes the dialog family; inline draws the panel where it was written |
|
|
75
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | md | sl-command-palette | The dialog’s measure and the row’s control step |
|
|
76
|
+
| `outsidePress` | `'close' \| 'none'` | close | sl-command-palette | Whether a press on the scrim closes the palette |
|
|
77
|
+
| `loop` | `boolean` | true | sl-command-palette | Whether ArrowDown on the last row wraps to the first |
|
|
78
|
+
| `autoHighlight` | `boolean` | true | sl-command-palette | Whether the first enabled row is current on open and after every change of the rows |
|
|
79
|
+
| `closeOnSelect` | `boolean` | true | sl-command-palette | Whether running a row closes the palette; keepOpen() on the request holds it open once |
|
|
80
|
+
| `clearOnClose` | `boolean` | true | sl-command-palette | Whether closing empties the query and the pages, each through its own request |
|
|
81
|
+
| `highlightMatch` | `boolean` | true | sl-command-palette | Whether the run the query matched is marked in the label |
|
|
82
|
+
| `hotkey` | `string \| null` | mod+k | sl-command-palette | The chord that opens the palette from anywhere; null for none. A bare key stays quiet in an editable field |
|
|
83
|
+
| `recentLimit` | `number` | 5 | sl-command-palette | How many recents are kept |
|
|
84
|
+
| `loading` | `boolean` | false | sl-command-palette | The ring in the header, three skeleton rows when there is nothing to show, aria-busy on the list, the loading message in the status row |
|
|
85
|
+
| `disabled` | `boolean` | false | sl-command-palette | Disables the field, the trigger and the hotkey |
|
|
86
|
+
| `hideFooter` | `boolean` | false | sl-command-palette | Removes the footer; an ng-template[slCommandPaletteFooter] replaces it instead |
|
|
87
|
+
| `container` | `Element \| null` | — | sl-command-palette | A parent for the layer alone, instead of the portal root the dialog makes beside this host |
|
|
88
|
+
| `messages` | `Partial<CommandPaletteMessages>` | — | sl-command-palette | Words laid over the language in force, key by key: the dialog’s name (label), the field’s name and placeholder (input, placeholder), the empty, loading, count and error sentences, the recents heading, the clear, close and back controls, and the footer’s hints |
|
|
89
|
+
| `slCommandPaletteTrigger` | `SlCommandPalette` | — | [slCommandPaletteTrigger] | The instance the control opens, reached with a template reference variable |
|
|
90
|
+
| `ng-template[slCommandPaletteItem]` | `let-item, let-current, let-disabled, let-pending, let-query, let-runs` | — | sl-command-palette | Replaces the row’s content; the option element and its wiring stay the family’s. runs is the marked label |
|
|
91
|
+
| `ng-template[slCommandPaletteEmpty]` | `—` | — | sl-command-palette | Replaces the empty message |
|
|
92
|
+
| `ng-template[slCommandPaletteFooter]` | `—` | — | sl-command-palette | Replaces the footer |
|
|
93
|
+
| `exportAs` | `slCommandPalette` | — | sl-command-palette | openPalette(), close(), toggle(), focus(), setQuery(), setHighlighted(), setPages(), scrollToId() |
|
|
94
|
+
| `[slCommandPaletteTrigger]` | `directive` | — | the consumer’s button | Writes data-part="trigger", aria-haspopup, aria-expanded and data-open on the consumer’s own element and registers it as the layer’s focus origin |
|
|
95
|
+
| `provideCommandPaletteDefaults` | `Partial<CommandPaletteDefaults>` | — | the injector | Every axis, set once; an explicit input still wins |
|
|
96
|
+
|
|
97
|
+
## Events
|
|
98
|
+
|
|
99
|
+
| Name | Payload | When |
|
|
100
|
+
| --- | --- | --- |
|
|
101
|
+
| `openChange / openChangeRequest` | `boolean / ChangeRequest<boolean>` | Before the palette opens or closes; reason is pointer, keyboard, escape, outsidePress, select, dismiss or programmatic. request.cancel() refuses it; the model updates after. |
|
|
102
|
+
| `queryChange / queryChangeRequest` | `string / ChangeRequest<string>` | Before the query moves: keyboard as the reader types, clear from the clear control or Escape, select when a page opens, programmatic on close and from setQuery(). |
|
|
103
|
+
| `highlightedIdChange / highlightedIdChangeRequest` | `string \| null / ChangeRequest<string \| null>` | Before the current row moves: pointer, keyboard, or programmatic when the rows changed under it. |
|
|
104
|
+
| `pagesChange / pagesChangeRequest` | `string[] / ChangeRequest<readonly string[]>` | Before a page opens or closes: select from Enter on a row with children, pointer from a click on one or on the trail, keyboard from Backspace or Escape, programmatic on close. |
|
|
105
|
+
| `recentChange / recentChangeRequest` | `string[] / ChangeRequest<readonly string[]>` | After a row ran, with its id moved to the front and the array cut at recentLimit; reason select. |
|
|
106
|
+
| `select` | `{ item, reason, source, keepOpen() }` | When a row runs, after the row’s own onSelect and after a returned promise fulfilled; reason pointer or keyboard. Never for a disabled row or a row that opens a page. |
|
|
107
|
+
|
|
108
|
+
## Axes and defaults
|
|
109
|
+
|
|
110
|
+
| Axis | Values | Default |
|
|
111
|
+
| --- | --- | --- |
|
|
112
|
+
| `presentation` | `dialog`, `inline` | `dialog` |
|
|
113
|
+
| `size` | `sm`, `md`, `lg` | `md` |
|
|
114
|
+
| `outsidePress` | `close`, `none` | `close` |
|
|
115
|
+
| `loop` | `true`, `false` | `true` |
|
|
116
|
+
| `autoHighlight` | `true`, `false` | `true` |
|
|
117
|
+
| `closeOnSelect` | `true`, `false` | `true` |
|
|
118
|
+
| `clearOnClose` | `true`, `false` | `true` |
|
|
119
|
+
| `highlightMatch` | `true`, `false` | `true` |
|
|
120
|
+
| `loading` | `true`, `false` | `false` |
|
|
121
|
+
| `disabled` | `true`, `false` | `false` |
|
|
122
|
+
|
|
123
|
+
## Rules
|
|
124
|
+
|
|
125
|
+
- The field carries role="combobox" with aria-expanded="true", aria-controls naming the list and aria-autocomplete="list"; the list carries role="listbox" and each row role="option". DOM focus stays on the field for the whole interaction and the current row is named by aria-activedescendant and marked aria-selected — the WAI-ARIA combobox pattern with a listbox popup, whose note says exactly this.
|
|
126
|
+
- The layer is the dialog family’s: role="dialog", aria-modal, the page inert behind the scrim, focus contained and returned to the trigger. Its name is the label message, pointed at through a hidden title the dialog labels itself by; the field’s name is the input message, and the list borrows it.
|
|
127
|
+
- A row with a shortcut carries aria-keyshortcuts in the platform’s own words — Meta+Shift+D on a Mac, Control+Shift+D elsewhere — while the drawn keys are aria-hidden; a sequence has no syntax in the attribute and is drawn only. A disabled row is announced with aria-disabled, stays in the list, and is skipped by every movement key.
|
|
128
|
+
- The result count, the loading sentence and the failure of a rejected handler are one visually hidden role="status" row, spoken through the shared live announcer so the same sentence is never said twice in a row.
|
|
129
|
+
- Escape is three steps in a fixed order — clear the query, return one page, close — so a reader who typed does not lose the palette on the first press; the footer draws the same keys the family answers.
|
|
130
|
+
- The panel answers its own width: below 360 pixels the description and the meta go and the binding stays; inside a dialog on a narrow screen the panel takes the whole layer.
|
|
131
|
+
|
|
132
|
+
## Tokens
|
|
133
|
+
|
|
134
|
+
`--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-command-palette-active`, `--slotted-command-palette-border-color`, `--slotted-command-palette-footer-surface`, `--slotted-command-palette-highlight`, `--slotted-command-palette-highlight-ring`, `--slotted-command-palette-hover`, `--slotted-command-palette-item-radius`, `--slotted-command-palette-list-max-block-size`, `--slotted-command-palette-list-padding`, `--slotted-command-palette-measure`, `--slotted-command-palette-page-surface`, `--slotted-command-palette-placeholder-fade`, `--slotted-command-palette-radius`, `--slotted-command-palette-separator-color`, `--slotted-command-palette-shadow`, `--slotted-command-palette-surface`, `--slotted-command-palette-text`, `--slotted-command-palette-text-muted`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-lg`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-lg`, `--slotted-radius-sm`, `--slotted-shadow-lg`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-6`, `--slotted-space-8`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
|
|
135
|
+
|
|
136
|
+
## Examples
|
|
137
|
+
|
|
138
|
+
### Every part, inline
|
|
139
|
+
|
|
140
|
+
The same panel with no layer around it, so every part can be pointed at: the header with its mark and clear, the grouped list, the current row, a row with a description and a binding, and the footer of hints.
|
|
141
|
+
|
|
142
|
+
Excerpt — not a complete module
|
|
143
|
+
|
|
144
|
+
```ts
|
|
145
|
+
const items: CommandPaletteItem[] = [
|
|
146
|
+
{
|
|
147
|
+
id: 'deploy',
|
|
148
|
+
label: 'Deploy to production',
|
|
149
|
+
description: 'Ship the current release of api-gateway',
|
|
150
|
+
keywords: ['ship', 'release'],
|
|
151
|
+
group: 'actions',
|
|
152
|
+
shortcut: 'mod+shift+d',
|
|
153
|
+
onSelect: () => this.deploy(),
|
|
154
|
+
},
|
|
155
|
+
];
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Groups, in the order the product declares
|
|
159
|
+
|
|
160
|
+
groups gives each heading its label and its place; an item whose group is not listed lands under its own id, after them, and an item with no group closes the list.
|
|
161
|
+
|
|
162
|
+
Excerpt — not a complete module
|
|
163
|
+
|
|
164
|
+
```html
|
|
165
|
+
<sl-command-palette
|
|
166
|
+
presentation="inline"
|
|
167
|
+
[items]="items"
|
|
168
|
+
[groups]="[
|
|
169
|
+
{ id: 'nav', label: 'Go to' },
|
|
170
|
+
{ id: 'actions', label: 'Actions' },
|
|
171
|
+
]"
|
|
172
|
+
/>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Ranking, and the adapter
|
|
176
|
+
|
|
177
|
+
Type “dep”: a label that starts with it outranks a word that starts with it, which outranks a run inside a word, which outranks a keyword; groups reorder by their best row. The third panel hands the order to a ranker of the product’s own.
|
|
178
|
+
|
|
179
|
+
Excerpt — not a complete module
|
|
180
|
+
|
|
181
|
+
```html
|
|
182
|
+
<sl-command-palette presentation="inline" query="dep" [items]="items" />
|
|
183
|
+
|
|
184
|
+
<!-- A server has already ranked the list: show it as it came. -->
|
|
185
|
+
<sl-command-palette presentation="inline" [items]="results" [rank]="null" />
|
|
186
|
+
|
|
187
|
+
<!-- Or score it yourself. -->
|
|
188
|
+
<sl-command-palette presentation="inline" [items]="items" [rank]="byWeight" />
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Pages, stacked
|
|
192
|
+
|
|
193
|
+
A row with children opens a page: the trail appears before the field, the children take the list, and Backspace on an empty query or Escape returns one page. pages is state the product may own through the model.
|
|
194
|
+
|
|
195
|
+
Excerpt — not a complete module
|
|
196
|
+
|
|
197
|
+
```html
|
|
198
|
+
<sl-command-palette presentation="inline" [items]="items" [(pages)]="pages" />
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### What the reader ran last
|
|
202
|
+
|
|
203
|
+
With nothing typed, the recents open the list under their own heading; running a row moves it to the front and cuts the array at recentLimit. Persisting it is the product’s — it receives the array through the model.
|
|
204
|
+
|
|
205
|
+
Excerpt — not a complete module
|
|
206
|
+
|
|
207
|
+
```html
|
|
208
|
+
<sl-command-palette
|
|
209
|
+
presentation="inline"
|
|
210
|
+
[items]="items"
|
|
211
|
+
[(recent)]="recent"
|
|
212
|
+
[recentLimit]="3"
|
|
213
|
+
(recentChangeRequest)="persist($event.value)"
|
|
214
|
+
/>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Shortcuts, drawn for the platform
|
|
218
|
+
|
|
219
|
+
One notation, mod+shift+d, becomes ⌘⇧D on a Mac and Ctrl+Shift+D elsewhere, and is announced as Meta+Shift+D or Control+Shift+D. A sequence such as g i is drawn and not announced. The palette binds none of them: the lines below do.
|
|
220
|
+
|
|
221
|
+
Excerpt — not a complete module
|
|
222
|
+
|
|
223
|
+
```ts
|
|
224
|
+
class Shell {
|
|
225
|
+
private readonly platformOf = injectKbdPlatform();
|
|
226
|
+
|
|
227
|
+
@HostListener('document:keydown', ['$event'])
|
|
228
|
+
onKey(event: KeyboardEvent) {
|
|
229
|
+
const platform = this.platformOf();
|
|
230
|
+
const hit = this.items.find(
|
|
231
|
+
(item) => item.shortcut && matchesShortcut(event, item.shortcut, platform),
|
|
232
|
+
);
|
|
233
|
+
if (hit) hit.onSelect?.();
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Rows that are places
|
|
239
|
+
|
|
240
|
+
A row with href renders as a link with role option: Enter follows it, ⌘Enter opens it in a new tab because the browser, not the palette, answers the modifier. meta says what kind of place it is.
|
|
241
|
+
|
|
242
|
+
Excerpt — not a complete module
|
|
243
|
+
|
|
244
|
+
```ts
|
|
245
|
+
const items: CommandPaletteItem[] = [
|
|
246
|
+
{ id: 'billing', label: 'Billing', href: '/settings/billing', meta: 'Page' },
|
|
247
|
+
{ id: 'invoice', label: 'Download last invoice', onSelect: () => this.download() },
|
|
248
|
+
];
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### A command that takes a while
|
|
252
|
+
|
|
253
|
+
A handler that returns a promise keeps the palette open and the row busy, refuses a second run of the same row until it settles, then closes; a rejection keeps it open and the status row says why. Press the first row and wait two seconds.
|
|
254
|
+
|
|
255
|
+
Excerpt — not a complete module
|
|
256
|
+
|
|
257
|
+
```ts
|
|
258
|
+
const items: CommandPaletteItem[] = [
|
|
259
|
+
{ id: 'restart', label: 'Restart api-gateway', onSelect: () => this.api.restart('api-gateway') },
|
|
260
|
+
{
|
|
261
|
+
id: 'purge',
|
|
262
|
+
label: 'Purge CDN cache',
|
|
263
|
+
onSelect: () => Promise.reject(new Error('Not allowed')),
|
|
264
|
+
},
|
|
265
|
+
];
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### While the results travel
|
|
269
|
+
|
|
270
|
+
loading swaps the magnifier for the ring, draws three skeleton rows when there is nothing to show yet, and says the loading message in the status row. The palette debounces nothing: the product does, in a few lines.
|
|
271
|
+
|
|
272
|
+
Excerpt — not a complete module
|
|
273
|
+
|
|
274
|
+
```html
|
|
275
|
+
<sl-command-palette [items]="results()" [loading]="loading()" [rank]="null" [(query)]="query" />
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Nothing matched
|
|
279
|
+
|
|
280
|
+
The empty part takes the list, the count row says “0 results”, and the root carries data-empty. The second panel replaces the sentence with the product’s own template.
|
|
281
|
+
|
|
282
|
+
Excerpt — not a complete module
|
|
283
|
+
|
|
284
|
+
```html
|
|
285
|
+
<sl-command-palette presentation="inline" query="xylophone" [items]="items">
|
|
286
|
+
<ng-template slCommandPaletteEmpty>No command matches. Try a service name.</ng-template>
|
|
287
|
+
</sl-command-palette>
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Without a layer
|
|
291
|
+
|
|
292
|
+
presentation="inline" draws the panel where it was written — here inside a popover on an “Assign to” button — with no scrim, no hotkey and no Escape to close. It is the filtered menu that menu refused.
|
|
293
|
+
|
|
294
|
+
Excerpt — not a complete module
|
|
295
|
+
|
|
296
|
+
```html
|
|
297
|
+
<ng-container slPopover>
|
|
298
|
+
<button slButton slPopoverTrigger>Assign to…</button>
|
|
299
|
+
<ng-template slPopoverLayer>
|
|
300
|
+
<div slPopoverContent aria-label="Assign to">
|
|
301
|
+
<sl-command-palette presentation="inline" hideFooter [items]="people" />
|
|
302
|
+
</div>
|
|
303
|
+
</ng-template>
|
|
304
|
+
</ng-container>
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
### Three measures
|
|
308
|
+
|
|
309
|
+
size is the dialog’s measure — 24, 32 and 42 rems — and the row’s step: sm rows read the small control geometry, lg rows the large, and the header stands one step above the rows in each.
|
|
310
|
+
|
|
311
|
+
Excerpt — not a complete module
|
|
312
|
+
|
|
313
|
+
```html
|
|
314
|
+
<sl-command-palette presentation="inline" size="sm" [items]="items" />
|
|
315
|
+
<sl-command-palette presentation="inline" size="lg" [items]="items" />
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Every state a row can be in
|
|
319
|
+
|
|
320
|
+
At rest, current from the keyboard, busy while its handler runs, disabled but announced and kept in place, opening a page, and a link. Hover a row that is not current for the quieter wash.
|
|
321
|
+
|
|
322
|
+
Excerpt — not a complete module
|
|
323
|
+
|
|
324
|
+
```ts
|
|
325
|
+
const items: CommandPaletteItem[] = [
|
|
326
|
+
{
|
|
327
|
+
id: 'delete',
|
|
328
|
+
label: 'Delete workspace',
|
|
329
|
+
description: 'Requires the owner role',
|
|
330
|
+
disabled: true,
|
|
331
|
+
},
|
|
332
|
+
];
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Content the family did not choose
|
|
336
|
+
|
|
337
|
+
A German label of sixty characters, a description longer than the row, a binding of four keys and a row with a short label beside it: the label gives way, the binding never does, and the rows stay one line each.
|
|
338
|
+
|
|
339
|
+
Excerpt — not a complete module
|
|
340
|
+
|
|
341
|
+
```ts
|
|
342
|
+
const items: CommandPaletteItem[] = [
|
|
343
|
+
{
|
|
344
|
+
id: 'sync',
|
|
345
|
+
label: 'Benachrichtigungseinstellungen für alle Arbeitsbereiche synchronisieren',
|
|
346
|
+
shortcut: 'mod+shift+alt+p',
|
|
347
|
+
},
|
|
348
|
+
];
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### The chord that opens it
|
|
352
|
+
|
|
353
|
+
mod+k by default, matched on the document in the capture phase with preventDefault, so Firefox’s search bar does not answer first. A bare key such as / stays quiet inside a text field; [hotkey]="null" turns it off. Focus the page and press ⌘K or Ctrl+K.
|
|
354
|
+
|
|
355
|
+
Excerpt — not a complete module
|
|
356
|
+
|
|
357
|
+
```html
|
|
358
|
+
<sl-command-palette hotkey="mod+p" [items]="items" />
|
|
359
|
+
<sl-command-palette hotkey="/" [items]="items" />
|
|
360
|
+
<sl-command-palette [hotkey]="null" [items]="items" />
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Set once for the application
|
|
364
|
+
|
|
365
|
+
The provider holds every axis, and provideSlotted the language the family speaks: the panel below reads Portuguese words, a size and a hotkey it did not state itself.
|
|
366
|
+
|
|
367
|
+
Excerpt — not a complete module
|
|
368
|
+
|
|
369
|
+
```ts
|
|
370
|
+
bootstrapApplication(App, {
|
|
371
|
+
providers: [
|
|
372
|
+
provideSlotted({ locale: 'pt-BR' }),
|
|
373
|
+
provideCommandPaletteDefaults({ hotkey: 'mod+p', size: 'sm' }),
|
|
374
|
+
],
|
|
375
|
+
});
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### In an application’s top bar
|
|
379
|
+
|
|
380
|
+
The trigger is a search-shaped slButton with a kbd in it, carrying slCommandPaletteTrigger; the row content is the product’s own through an item template, with an avatar where the icon column is.
|
|
381
|
+
|
|
382
|
+
Excerpt — not a complete module
|
|
383
|
+
|
|
384
|
+
```html
|
|
385
|
+
<button slButton tone="secondary" variant="outline" [slCommandPaletteTrigger]="palette">
|
|
386
|
+
Search people <kbd slKbd size="sm">⌘K</kbd>
|
|
387
|
+
</button>
|
|
388
|
+
<sl-command-palette #palette="slCommandPalette" [items]="people">
|
|
389
|
+
<ng-template slCommandPaletteItem let-item let-query="query">
|
|
390
|
+
<span data-part="icon"><sl-avatar [name]="item.label" size="xs" /></span>
|
|
391
|
+
<span data-part="label">
|
|
392
|
+
<span slHighlight [text]="item.label" [query]="query"></span>
|
|
393
|
+
</span>
|
|
394
|
+
</ng-template>
|
|
395
|
+
</sl-command-palette>
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### The keys
|
|
399
|
+
|
|
400
|
+
Arrows move and wrap, PageUp and PageDown move ten and stop, Ctrl+Home and Ctrl+End reach the ends, Home and End keep moving the caret, Enter runs, Escape clears then returns a page then closes, Backspace on an empty query returns a page.
|
|
401
|
+
|
|
402
|
+
Excerpt — not a complete module
|
|
403
|
+
|
|
404
|
+
```html
|
|
405
|
+
<sl-command-palette presentation="inline" [items]="items" />
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### What a screen reader meets
|
|
409
|
+
|
|
410
|
+
The dialog is named by the label message, the field by the input message, the list by the same; the current row is aria-selected and named by aria-activedescendant; the count, the wait and a failure are one live region. Open the tree to read it.
|
|
411
|
+
|
|
412
|
+
Excerpt — not a complete module
|
|
413
|
+
|
|
414
|
+
```html
|
|
415
|
+
<sl-command-palette
|
|
416
|
+
[messages]="{ label: 'Deployment commands', input: 'Search deployments' }"
|
|
417
|
+
[items]="items"
|
|
418
|
+
/>
|
|
419
|
+
```
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "container",
|
|
3
|
+
"ui": "container",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Layout",
|
|
7
|
+
"summary": "Centers content at a maximum width."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"size": [
|
|
11
|
+
"measure",
|
|
12
|
+
"content",
|
|
13
|
+
"wide",
|
|
14
|
+
"full",
|
|
15
|
+
"bleed"
|
|
16
|
+
],
|
|
17
|
+
"inset": [
|
|
18
|
+
"0",
|
|
19
|
+
"1",
|
|
20
|
+
"2",
|
|
21
|
+
"3",
|
|
22
|
+
"4",
|
|
23
|
+
"5",
|
|
24
|
+
"6",
|
|
25
|
+
"7",
|
|
26
|
+
"8",
|
|
27
|
+
"9",
|
|
28
|
+
"10",
|
|
29
|
+
"11",
|
|
30
|
+
"12"
|
|
31
|
+
],
|
|
32
|
+
"align": [
|
|
33
|
+
"center",
|
|
34
|
+
"start",
|
|
35
|
+
"end"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"members": {
|
|
39
|
+
"container": {
|
|
40
|
+
"nativeElement": "div",
|
|
41
|
+
"defaults": {
|
|
42
|
+
"size": "content",
|
|
43
|
+
"inset": "6",
|
|
44
|
+
"align": "center"
|
|
45
|
+
},
|
|
46
|
+
"capabilities": [
|
|
47
|
+
"size"
|
|
48
|
+
],
|
|
49
|
+
"states": [
|
|
50
|
+
"default"
|
|
51
|
+
],
|
|
52
|
+
"parts": [
|
|
53
|
+
"root",
|
|
54
|
+
"breakout"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"docs": {
|
|
59
|
+
"container": {
|
|
60
|
+
"imports": null,
|
|
61
|
+
"anatomy": [],
|
|
62
|
+
"api": [
|
|
63
|
+
{
|
|
64
|
+
"name": "size",
|
|
65
|
+
"type": "'measure' | 'content' | 'wide' | 'full' | 'bleed'",
|
|
66
|
+
"defaultValue": "content",
|
|
67
|
+
"appliesTo": "slContainer",
|
|
68
|
+
"description": "What the column bounds. measure is the comfortable reading line, counted in characters; full is the space the frame gives up to --slotted-container-full, 120rem; bleed removes the maximum. Both keep the inset"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "inset",
|
|
72
|
+
"type": "0 | 1 | … | 12",
|
|
73
|
+
"defaultValue": "6",
|
|
74
|
+
"appliesTo": "slContainer",
|
|
75
|
+
"description": "The gap between the column and the edge of the space the container was given, as a step on the space scale"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "align",
|
|
79
|
+
"type": "'center' | 'start' | 'end'",
|
|
80
|
+
"defaultValue": "center",
|
|
81
|
+
"appliesTo": "slContainer",
|
|
82
|
+
"description": "Where the column sits when there is space left over. Logical, so a right-to-left document mirrors"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "render",
|
|
86
|
+
"type": "—",
|
|
87
|
+
"defaultValue": "—",
|
|
88
|
+
"appliesTo": "slContainer, slContainerBreakout",
|
|
89
|
+
"description": "Not needed: both are written on the element the template already chose, so the element is never substituted"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"composition": [],
|
|
93
|
+
"events": [],
|
|
94
|
+
"accessibility": [
|
|
95
|
+
"Container has no role and no ARIA. It bounds what the template wrote, and the children keep whatever semantics they already had. The directive goes on a main, a section or an article so the document says what it means.",
|
|
96
|
+
"size=\"measure\" bounds the line at 65ch. WCAG 2.2 SC 1.4.8 asks for no more than 80 characters per line, and technique C20 asks that the width be set in a relative measurement; ch is relative to the inherited type, so the bound follows a reader who enlarges the text rather than fighting them.",
|
|
97
|
+
"Every other step is stated in rem, so the whole page grows with the browser zoom WCAG SC 1.4.4 requires.",
|
|
98
|
+
"The column collapses continuously through min(), and every child is allowed to shrink below its content, so a long unbroken token overflows its own box rather than widening the page — the two-axis scroll SC 1.4.10 refuses.",
|
|
99
|
+
"Nothing reorders children. Visual order stays DOM order, which is what SC 1.3.2 asks for, and a breakout is read where it is written.",
|
|
100
|
+
"The root is a grid, so a run of text written directly inside it becomes an item nothing can place in the column. Wrap text in an element."
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"tokens": [
|
|
105
|
+
"--slotted-container-content",
|
|
106
|
+
"--slotted-container-full",
|
|
107
|
+
"--slotted-container-measure",
|
|
108
|
+
"--slotted-container-wide",
|
|
109
|
+
"--slotted-space-1",
|
|
110
|
+
"--slotted-space-10",
|
|
111
|
+
"--slotted-space-11",
|
|
112
|
+
"--slotted-space-12",
|
|
113
|
+
"--slotted-space-2",
|
|
114
|
+
"--slotted-space-3",
|
|
115
|
+
"--slotted-space-4",
|
|
116
|
+
"--slotted-space-5",
|
|
117
|
+
"--slotted-space-6",
|
|
118
|
+
"--slotted-space-7",
|
|
119
|
+
"--slotted-space-8",
|
|
120
|
+
"--slotted-space-9"
|
|
121
|
+
],
|
|
122
|
+
"examples": [
|
|
123
|
+
{
|
|
124
|
+
"id": "container-angular-page",
|
|
125
|
+
"title": "A reading page holding a table that reaches both edges",
|
|
126
|
+
"note": null,
|
|
127
|
+
"language": "html",
|
|
128
|
+
"source": "<main slContainer size=\"measure\">\n <div slStack [gap]=\"6\">\n <h1 slHeading level=\"1\">Usage this month</h1>\n <p slText>Billed per seat, settled with the invoice.</p>\n </div>\n <div slContainerBreakout>\n <app-usage-table />\n </div>\n <p slText>Bounded content resumes at the same column.</p>\n</main>\n",
|
|
129
|
+
"verdict": "excerpt"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": "container-angular-nested",
|
|
133
|
+
"title": "Bounded content returns inside a breakout",
|
|
134
|
+
"note": null,
|
|
135
|
+
"language": "html",
|
|
136
|
+
"source": "<article slContainer size=\"measure\">\n <app-article />\n <aside slContainerBreakout class=\"sunken\">\n <div slContainer size=\"wide\" [inset]=\"9\">\n <app-related-accounts />\n </div>\n </aside>\n</article>\n",
|
|
137
|
+
"verdict": "excerpt"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"id": "container-angular-defaults",
|
|
141
|
+
"title": "An application decides once what its pages are bounded to",
|
|
142
|
+
"note": null,
|
|
143
|
+
"language": "ts",
|
|
144
|
+
"source": "import { provideContainerDefaults } from '@slotted/angular/container';\n\nbootstrapApplication(App, {\n providers: [provideContainerDefaults({ inset: 8, size: 'wide' })],\n});\n",
|
|
145
|
+
"verdict": "excerpt"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "container-maxima",
|
|
149
|
+
"title": "Retuning the maxima, which is the whole theming story",
|
|
150
|
+
"note": null,
|
|
151
|
+
"language": "css",
|
|
152
|
+
"source": "[data-slotted-theme='acme'] {\n --slotted-container-measure: 60ch;\n --slotted-container-content: 48rem;\n --slotted-container-wide: 90rem;\n}\n",
|
|
153
|
+
"verdict": "excerpt"
|
|
154
|
+
}
|
|
155
|
+
]
|
|
156
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# container
|
|
3
|
+
|
|
4
|
+
`data-ui="container"` · Centers content at a maximum width.
|
|
5
|
+
|
|
6
|
+
## Minimal example
|
|
7
|
+
|
|
8
|
+
Excerpt — not a complete module
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<main slContainer size="measure">
|
|
12
|
+
<div slStack [gap]="6">
|
|
13
|
+
<h1 slHeading level="1">Usage this month</h1>
|
|
14
|
+
<p slText>Billed per seat, settled with the invoice.</p>
|
|
15
|
+
</div>
|
|
16
|
+
<div slContainerBreakout>
|
|
17
|
+
<app-usage-table />
|
|
18
|
+
</div>
|
|
19
|
+
<p slText>Bounded content resumes at the same column.</p>
|
|
20
|
+
</main>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
| Name | Type | Default | Applies to | Description |
|
|
26
|
+
| --- | --- | --- | --- | --- |
|
|
27
|
+
| `size` | `'measure' \| 'content' \| 'wide' \| 'full' \| 'bleed'` | content | slContainer | What the column bounds. measure is the comfortable reading line, counted in characters; full is the space the frame gives up to --slotted-container-full, 120rem; bleed removes the maximum. Both keep the inset |
|
|
28
|
+
| `inset` | `0 \| 1 \| … \| 12` | 6 | slContainer | The gap between the column and the edge of the space the container was given, as a step on the space scale |
|
|
29
|
+
| `align` | `'center' \| 'start' \| 'end'` | center | slContainer | Where the column sits when there is space left over. Logical, so a right-to-left document mirrors |
|
|
30
|
+
| `render` | `—` | — | slContainer, slContainerBreakout | Not needed: both are written on the element the template already chose, so the element is never substituted |
|
|
31
|
+
|
|
32
|
+
## Axes and defaults
|
|
33
|
+
|
|
34
|
+
| Axis | Values | Default |
|
|
35
|
+
| --- | --- | --- |
|
|
36
|
+
| `size` | `measure`, `content`, `wide`, `full`, `bleed` | `content` |
|
|
37
|
+
| `inset` | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12` | `6` |
|
|
38
|
+
| `align` | `center`, `start`, `end` | `center` |
|
|
39
|
+
|
|
40
|
+
## Rules
|
|
41
|
+
|
|
42
|
+
- Container has no role and no ARIA. It bounds what the template wrote, and the children keep whatever semantics they already had. The directive goes on a main, a section or an article so the document says what it means.
|
|
43
|
+
- size="measure" bounds the line at 65ch. WCAG 2.2 SC 1.4.8 asks for no more than 80 characters per line, and technique C20 asks that the width be set in a relative measurement; ch is relative to the inherited type, so the bound follows a reader who enlarges the text rather than fighting them.
|
|
44
|
+
- Every other step is stated in rem, so the whole page grows with the browser zoom WCAG SC 1.4.4 requires.
|
|
45
|
+
- The column collapses continuously through min(), and every child is allowed to shrink below its content, so a long unbroken token overflows its own box rather than widening the page — the two-axis scroll SC 1.4.10 refuses.
|
|
46
|
+
- Nothing reorders children. Visual order stays DOM order, which is what SC 1.3.2 asks for, and a breakout is read where it is written.
|
|
47
|
+
- The root is a grid, so a run of text written directly inside it becomes an item nothing can place in the column. Wrap text in an element.
|
|
48
|
+
|
|
49
|
+
## Tokens
|
|
50
|
+
|
|
51
|
+
`--slotted-container-content`, `--slotted-container-full`, `--slotted-container-measure`, `--slotted-container-wide`, `--slotted-space-1`, `--slotted-space-10`, `--slotted-space-11`, `--slotted-space-12`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-7`, `--slotted-space-8`, `--slotted-space-9`
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
### Bounded content returns inside a breakout
|
|
56
|
+
|
|
57
|
+
Excerpt — not a complete module
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<article slContainer size="measure">
|
|
61
|
+
<app-article />
|
|
62
|
+
<aside slContainerBreakout class="sunken">
|
|
63
|
+
<div slContainer size="wide" [inset]="9">
|
|
64
|
+
<app-related-accounts />
|
|
65
|
+
</div>
|
|
66
|
+
</aside>
|
|
67
|
+
</article>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### An application decides once what its pages are bounded to
|
|
71
|
+
|
|
72
|
+
Excerpt — not a complete module
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { provideContainerDefaults } from '@slotted/angular/container';
|
|
76
|
+
|
|
77
|
+
bootstrapApplication(App, {
|
|
78
|
+
providers: [provideContainerDefaults({ inset: 8, size: 'wide' })],
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Retuning the maxima, which is the whole theming story
|
|
83
|
+
|
|
84
|
+
Excerpt — not a complete module
|
|
85
|
+
|
|
86
|
+
```css
|
|
87
|
+
[data-slotted-theme='acme'] {
|
|
88
|
+
--slotted-container-measure: 60ch;
|
|
89
|
+
--slotted-container-content: 48rem;
|
|
90
|
+
--slotted-container-wide: 90rem;
|
|
91
|
+
}
|
|
92
|
+
```
|