@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
package/docs/inline.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# inline
|
|
3
|
+
|
|
4
|
+
`data-ui="inline"` · Row of items with gaps that wraps.
|
|
5
|
+
|
|
6
|
+
## Minimal example
|
|
7
|
+
|
|
8
|
+
Excerpt — not a complete module
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<div slInline [gap]="4" justify="between">
|
|
12
|
+
<button slButton variant="secondary">Cancel</button>
|
|
13
|
+
<button slButton>Save changes</button>
|
|
14
|
+
</div>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Props
|
|
18
|
+
|
|
19
|
+
| Name | Type | Default | Applies to | Description |
|
|
20
|
+
| --- | --- | --- | --- | --- |
|
|
21
|
+
| `gap` | `0 \| 1 \| … \| 12` | 4 | slInline | Separation between items, as a step on the space scale |
|
|
22
|
+
| `align` | `'start' \| 'center' \| 'end' \| 'stretch' \| 'baseline'` | center | slInline | Positions items across the flow; baseline puts their type on one line |
|
|
23
|
+
| `justify` | `'start' \| 'center' \| 'end' \| 'between' \| 'around' \| 'evenly'` | — | slInline | Positions items along the flow, and distributes the space between them |
|
|
24
|
+
| `wrap` | `'wrap' \| 'nowrap'` | wrap | slInline | nowrap keeps one line, and overflows a container narrower than it |
|
|
25
|
+
|
|
26
|
+
## Axes and defaults
|
|
27
|
+
|
|
28
|
+
| Axis | Values | Default |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| `gap` | `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12` | `4` |
|
|
31
|
+
| `align` | `start`, `center`, `end`, `stretch`, `baseline` | `center` |
|
|
32
|
+
| `justify` | `start`, `center`, `end`, `between`, `around`, `evenly` | — |
|
|
33
|
+
| `wrap` | `wrap`, `nowrap` | `wrap` |
|
|
34
|
+
|
|
35
|
+
## Rules
|
|
36
|
+
|
|
37
|
+
- slInline has no role and no ARIA. It arranges what the consumer wrote, and the items keep whatever semantics they already had.
|
|
38
|
+
- The directive selector is an attribute, so the element is always the consumer’s. Write ul when the items are list items.
|
|
39
|
+
- There is no input that reverses the items. Visual order stays DOM order, which is what WCAG 2.2 SC 1.3.2 asks for (technique C27, failure F1) and what keeps the Tab order matching the page.
|
|
40
|
+
- Wrapping is the default because a row that cannot wrap has one answer to a narrow container: overflow it. Asking for nowrap is asking for that, and WCAG 1.4.10 Reflow is what it costs.
|
|
41
|
+
- baseline is the alignment for items that carry text of different sizes. It puts the type on one line where centring only puts the boxes there.
|
|
42
|
+
|
|
43
|
+
## Tokens
|
|
44
|
+
|
|
45
|
+
`--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`
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
### A list of tags that wraps
|
|
50
|
+
|
|
51
|
+
Excerpt — not a complete module
|
|
52
|
+
|
|
53
|
+
```html
|
|
54
|
+
<ul slInline [gap]="2">
|
|
55
|
+
@for (tag of tags; track tag) {
|
|
56
|
+
<li>
|
|
57
|
+
<span slTag>{{ tag }}</span>
|
|
58
|
+
</li>
|
|
59
|
+
}
|
|
60
|
+
</ul>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### A label and a value on one line
|
|
64
|
+
|
|
65
|
+
Excerpt — not a complete module
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<div slInline [gap]="5" align="baseline">
|
|
69
|
+
<span slText tone="muted">Status</span>
|
|
70
|
+
<span slText size="lg" weight="semibold">Awaiting review</span>
|
|
71
|
+
</div>
|
|
72
|
+
```
|
package/docs/kbd.json
ADDED
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "kbd",
|
|
3
|
+
"ui": "kbd",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Data display",
|
|
7
|
+
"summary": "Keyboard key or shortcut."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"size": [
|
|
11
|
+
"xs",
|
|
12
|
+
"sm",
|
|
13
|
+
"md",
|
|
14
|
+
"lg",
|
|
15
|
+
"inherit"
|
|
16
|
+
],
|
|
17
|
+
"variant": [
|
|
18
|
+
"raised",
|
|
19
|
+
"outline",
|
|
20
|
+
"soft",
|
|
21
|
+
"plain"
|
|
22
|
+
],
|
|
23
|
+
"platform": [
|
|
24
|
+
"auto",
|
|
25
|
+
"mac",
|
|
26
|
+
"windows",
|
|
27
|
+
"linux",
|
|
28
|
+
"other"
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
"members": {
|
|
32
|
+
"kbd": {
|
|
33
|
+
"nativeElement": "kbd",
|
|
34
|
+
"defaults": {
|
|
35
|
+
"size": "md",
|
|
36
|
+
"variant": "raised",
|
|
37
|
+
"platform": "auto",
|
|
38
|
+
"disabled": false,
|
|
39
|
+
"separator": "+"
|
|
40
|
+
},
|
|
41
|
+
"capabilities": [
|
|
42
|
+
"appearance",
|
|
43
|
+
"size",
|
|
44
|
+
"disabled"
|
|
45
|
+
],
|
|
46
|
+
"states": [
|
|
47
|
+
"default",
|
|
48
|
+
"disabled"
|
|
49
|
+
],
|
|
50
|
+
"parts": [
|
|
51
|
+
"root",
|
|
52
|
+
"legend",
|
|
53
|
+
"name",
|
|
54
|
+
"shortcut",
|
|
55
|
+
"separator"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"docs": {
|
|
60
|
+
"kbd": {
|
|
61
|
+
"imports": {
|
|
62
|
+
"source": "import { SlKbd, SlShortcut, provideKbdDefaults } from '@slotted/angular/kbd';",
|
|
63
|
+
"selector": "kbd[slKbd] · kbd[slShortcut]",
|
|
64
|
+
"exportAs": "slKbd · slShortcut"
|
|
65
|
+
},
|
|
66
|
+
"anatomy": [
|
|
67
|
+
{
|
|
68
|
+
"part": "root",
|
|
69
|
+
"element": "kbd",
|
|
70
|
+
"required": true,
|
|
71
|
+
"purpose": "One key — the consumer’s own kbd element, which the directive attaches to. Carries data-ui=\"kbd\", the axes as data attributes, and data-key when the token is in the vocabulary."
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"part": "legend",
|
|
75
|
+
"element": "span",
|
|
76
|
+
"required": true,
|
|
77
|
+
"purpose": "What the eye sees. Hidden from assistive technology whenever the key is in the vocabulary, and marked data-legend=\"symbol\" when what it draws is a mark rather than a word."
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"part": "name",
|
|
81
|
+
"element": "span",
|
|
82
|
+
"required": false,
|
|
83
|
+
"purpose": "What a reader hears in place of the legend — “Command”, “Control”, “Up arrow”. Clipped from view by the family’s own rule. Rendered only for a key in the vocabulary."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"part": "shortcut",
|
|
87
|
+
"element": "kbd",
|
|
88
|
+
"required": false,
|
|
89
|
+
"purpose": "A whole combination, holding the key roots. The one part that contains the family’s root instead of sitting inside it, so it carries data-ui itself, plus data-platform for the resolution it made."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"part": "separator",
|
|
93
|
+
"element": "span",
|
|
94
|
+
"required": false,
|
|
95
|
+
"purpose": "Between two keys. data-separator=\"plus\" joins keys pressed together and is hidden from assistive technology; data-separator=\"then\" joins two steps of a sequence and is read aloud."
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"api": [
|
|
99
|
+
{
|
|
100
|
+
"name": "keyName",
|
|
101
|
+
"type": "string",
|
|
102
|
+
"defaultValue": "—",
|
|
103
|
+
"appliesTo": "slKbd",
|
|
104
|
+
"description": "A token from the vocabulary — mod, meta, ctrl, alt, shift, fn, enter, escape, tab, space, backspace, delete, capslock, pageup, pagedown, home, end, plus, up, down, left, right — or an alias such as cmd, option, esc or arrowup. Wins over projected content where both are written"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "keys",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"defaultValue": "—",
|
|
110
|
+
"appliesTo": "slShortcut",
|
|
111
|
+
"description": "The whole combination: + joins keys pressed together, whitespace joins the steps of a sequence"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "platform",
|
|
115
|
+
"type": "'auto' | 'mac' | 'windows' | 'linux' | 'other'",
|
|
116
|
+
"defaultValue": "auto",
|
|
117
|
+
"appliesTo": "slKbd, slShortcut",
|
|
118
|
+
"description": "Which keyboard the legends are drawn for. auto reads the browser and never the server, so a server-rendered application states it through provideKbdDefaults"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "size",
|
|
122
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'inherit'",
|
|
123
|
+
"defaultValue": "md",
|
|
124
|
+
"appliesTo": "slKbd, slShortcut",
|
|
125
|
+
"description": "xs to lg are fixed heights of 16, 20, 24 and 28 pixels whose legend answers density; inherit reads the text around the key and stays inside its line"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "variant",
|
|
129
|
+
"type": "'raised' | 'outline' | 'soft' | 'plain'",
|
|
130
|
+
"defaultValue": "raised",
|
|
131
|
+
"appliesTo": "slKbd, slShortcut",
|
|
132
|
+
"description": "raised is a key with a bottom edge, outline owns no ground, soft is the tinted chip, plain takes the colour of the text it sits in"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "disabled",
|
|
136
|
+
"type": "boolean",
|
|
137
|
+
"defaultValue": "false",
|
|
138
|
+
"appliesTo": "slKbd, slShortcut",
|
|
139
|
+
"description": "Dims the key without writing aria-disabled, which kbd may not carry. The item the shortcut belongs to owns the semantics"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "separator",
|
|
143
|
+
"type": "string",
|
|
144
|
+
"defaultValue": "+",
|
|
145
|
+
"appliesTo": "slShortcut",
|
|
146
|
+
"description": "Between two simultaneous keys. A Mac joins with nothing whatever this says"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "messages",
|
|
150
|
+
"type": "PartialMessages<KeysMessages>",
|
|
151
|
+
"defaultValue": "—",
|
|
152
|
+
"appliesTo": "slKbd, slShortcut",
|
|
153
|
+
"description": "Words laid over the keys catalog of the language in force, key by key: legends.*, names.*, and then — the word between two steps of a sequence, read aloud"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "legends",
|
|
157
|
+
"type": "Record<string, string>",
|
|
158
|
+
"defaultValue": "—",
|
|
159
|
+
"appliesTo": "slShortcut",
|
|
160
|
+
"description": "Replaces what the eye sees, per key token: { ctrl: \"Strg\" }. Falls back to the injection token"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"name": "names",
|
|
164
|
+
"type": "Record<string, string>",
|
|
165
|
+
"defaultValue": "—",
|
|
166
|
+
"appliesTo": "slShortcut",
|
|
167
|
+
"description": "Replaces what a reader hears, per key token: { ctrl: \"Steuerung\" }. Falls back to the injection token"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"composition": [
|
|
171
|
+
{
|
|
172
|
+
"name": "projected content",
|
|
173
|
+
"type": "ng-content",
|
|
174
|
+
"defaultValue": "—",
|
|
175
|
+
"appliesTo": "slKbd",
|
|
176
|
+
"description": "The legend written verbatim — the application’s own word, neither resolved nor given a hidden name"
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "projected content",
|
|
180
|
+
"type": "ng-content",
|
|
181
|
+
"defaultValue": "—",
|
|
182
|
+
"appliesTo": "slShortcut",
|
|
183
|
+
"description": "Keys authored one by one. They are rendered in the order written, which is the way out of the platform reordering, and they take the combination’s painting"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "the host element",
|
|
187
|
+
"type": "kbd",
|
|
188
|
+
"defaultValue": "—",
|
|
189
|
+
"appliesTo": "slKbd, slShortcut",
|
|
190
|
+
"description": "The directive is written on the consumer’s own kbd, so substituting the element is the default rather than a prop. Every static attribute on it survives the host bindings"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "exportAs",
|
|
194
|
+
"type": "'slKbd' | 'slShortcut'",
|
|
195
|
+
"defaultValue": "—",
|
|
196
|
+
"appliesTo": "slKbd, slShortcut",
|
|
197
|
+
"description": "Reaches the instance from a template. There is no imperative method on it: the family has no action a template cannot express declaratively"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "provideKbdDefaults",
|
|
201
|
+
"type": "{ platform, size, variant, separator, legends, names }",
|
|
202
|
+
"defaultValue": "—",
|
|
203
|
+
"appliesTo": "an injector",
|
|
204
|
+
"description": "Sets all six once for everything under it; an explicit input on a key still wins"
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"events": [],
|
|
208
|
+
"accessibility": [
|
|
209
|
+
"There is no kbd pattern in the WAI-ARIA Authoring Practices — the pattern index carries no entry — and ARIA in HTML (W3C Recommendation, 11 August 2026) maps the kbd element to no corresponding role and declares it Naming Prohibited. The family therefore writes no role, no aria-label and no aria-disabled, and every word a reader hears is content.",
|
|
210
|
+
"A key in the vocabulary hides its legend with aria-hidden and carries the word in a name part the family clips from view itself. ⌘ is U+2318 PLACE OF INTEREST SIGN and would otherwise be read as one; Ctrl is an abbreviation whose pronunciation belongs to the screen reader’s dictionary. Both are announced “Control” or “Command” here.",
|
|
211
|
+
"The plus between two keys is aria-hidden — it is punctuation joining two caps, and “Command Shift K” is what the operating systems announce for the same shortcut. The word between two steps of a sequence is not hidden, because it is the only thing that distinguishes “G then I” from “G and I together”.",
|
|
212
|
+
"Nothing here is focusable and nothing here binds a key. WCAG 2.2 2.1.4 Character Key Shortcuts belongs to whoever registers the shortcut, because only the application knows whether a single-character shortcut can be turned off.",
|
|
213
|
+
"The keys inside a combination keep their left-to-right order in a right-to-left document. A combination is one formula, the bidi algorithm renders the same string as one left-to-right run inside an Arabic paragraph, and a mirrored K + ⌘ is a shortcut no operating system displays. The combination as a whole still sits where the paragraph puts it.",
|
|
214
|
+
"An arrow legend is never mirrored: ← is the physical Left arrow key, not a direction of travel.",
|
|
215
|
+
"A key label is never truncated. A shortcut too wide for its column wraps between caps and never inside one, because half a key name is a wrong instruction where a wrapped shortcut is only a taller row.",
|
|
216
|
+
"The platform is resolved in the browser and never on the server, so a server-rendered application calls provideKbdDefaults({ platform }) — a development-mode warning says so rather than leaving a reader to discover Ctrl on their Mac."
|
|
217
|
+
]
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"tokens": [
|
|
221
|
+
"--slotted-border-strong",
|
|
222
|
+
"--slotted-border-width-thick",
|
|
223
|
+
"--slotted-border-width-thin",
|
|
224
|
+
"--slotted-control-border-color",
|
|
225
|
+
"--slotted-control-font-family",
|
|
226
|
+
"--slotted-control-font-size-lg",
|
|
227
|
+
"--slotted-control-font-size-md",
|
|
228
|
+
"--slotted-control-font-size-sm",
|
|
229
|
+
"--slotted-control-inner-size",
|
|
230
|
+
"--slotted-control-transition-duration",
|
|
231
|
+
"--slotted-control-transition-easing",
|
|
232
|
+
"--slotted-disabled-background",
|
|
233
|
+
"--slotted-disabled-border",
|
|
234
|
+
"--slotted-disabled-foreground",
|
|
235
|
+
"--slotted-font-family-sans",
|
|
236
|
+
"--slotted-font-weight-medium",
|
|
237
|
+
"--slotted-kbd-base-width",
|
|
238
|
+
"--slotted-kbd-border-width",
|
|
239
|
+
"--slotted-kbd-font-family",
|
|
240
|
+
"--slotted-kbd-font-weight",
|
|
241
|
+
"--slotted-kbd-radius",
|
|
242
|
+
"--slotted-kbd-symbol-font-family",
|
|
243
|
+
"--slotted-radius-lg",
|
|
244
|
+
"--slotted-radius-md",
|
|
245
|
+
"--slotted-radius-sm",
|
|
246
|
+
"--slotted-space-1",
|
|
247
|
+
"--slotted-space-2",
|
|
248
|
+
"--slotted-space-3",
|
|
249
|
+
"--slotted-space-4",
|
|
250
|
+
"--slotted-space-6",
|
|
251
|
+
"--slotted-space-7",
|
|
252
|
+
"--slotted-space-8",
|
|
253
|
+
"--slotted-surface-raised",
|
|
254
|
+
"--slotted-text",
|
|
255
|
+
"--slotted-text-muted",
|
|
256
|
+
"--slotted-tone-secondary-border",
|
|
257
|
+
"--slotted-tone-secondary-surface",
|
|
258
|
+
"--slotted-tone-secondary-text"
|
|
259
|
+
],
|
|
260
|
+
"examples": [
|
|
261
|
+
{
|
|
262
|
+
"id": "playground",
|
|
263
|
+
"title": "Playground",
|
|
264
|
+
"note": "One key with every input on it, driven by the controls below the canvas. Change platform and watch the legend change without the template changing.",
|
|
265
|
+
"language": "html",
|
|
266
|
+
"source": "<kbd slKbd keyName=\"mod\"></kbd>\n\n<!-- Or a word this library has never heard of. -->\n<kbd slKbd>Any key</kbd>\n",
|
|
267
|
+
"verdict": "excerpt"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"id": "variants",
|
|
271
|
+
"title": "How the key is painted",
|
|
272
|
+
"note": "raised is the only value that looks like an object; outline owns no ground, so it survives on a solid surface where raised would cut a white hole.",
|
|
273
|
+
"language": "html",
|
|
274
|
+
"source": "<kbd slShortcut keys=\"mod+b\"></kbd>\n<kbd slShortcut keys=\"mod+b\" variant=\"outline\"></kbd>\n<kbd slShortcut keys=\"mod+b\" variant=\"soft\"></kbd>\n<kbd slShortcut keys=\"mod+b\" variant=\"plain\"></kbd>\n",
|
|
275
|
+
"verdict": "excerpt"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "sizes",
|
|
279
|
+
"title": "How large the key is",
|
|
280
|
+
"note": "Four absolute heights, 16, 20, 24 and 28 pixels, that no legend and no variant changes; the legend reads the control type scale, so it shrinks with density inside the same box. xs fits a caption or a tooltip. inherit reads the text around it and stays inside its line, which is the step a heading and a footnote both need.",
|
|
281
|
+
"language": "html",
|
|
282
|
+
"source": "<kbd slKbd keyName=\"escape\" size=\"xs\"></kbd>\n<kbd slKbd keyName=\"escape\" size=\"sm\"></kbd>\n<kbd slKbd keyName=\"escape\" size=\"lg\"></kbd>\n\n<h2>Press <kbd slKbd keyName=\"escape\" size=\"inherit\"></kbd> to close</h2>\n",
|
|
283
|
+
"verdict": "excerpt"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"id": "shortcut",
|
|
287
|
+
"title": "A whole combination",
|
|
288
|
+
"note": "One kbd nested inside another, which is what the HTML Standard says a combination is. The plus is a part of its own, so an application can restyle or replace it.",
|
|
289
|
+
"language": "html",
|
|
290
|
+
"source": "<kbd slShortcut keys=\"mod+shift+p\"></kbd>\n",
|
|
291
|
+
"verdict": "excerpt"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "platform",
|
|
295
|
+
"title": "The same string on three keyboards",
|
|
296
|
+
"note": "The modifiers are reordered into each platform’s own convention and the legends redrawn; on a Mac the separator is not rendered at all, because a Mac joins with nothing.",
|
|
297
|
+
"language": "html",
|
|
298
|
+
"source": "<kbd slShortcut keys=\"mod+shift+alt+p\" platform=\"mac\"></kbd>\n<kbd slShortcut keys=\"mod+shift+alt+p\" platform=\"windows\"></kbd>\n\n<!-- Left to itself it asks the reader’s browser. -->\n<kbd slShortcut keys=\"mod+shift+alt+p\"></kbd>\n",
|
|
299
|
+
"verdict": "excerpt"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "sequence",
|
|
303
|
+
"title": "One key after another",
|
|
304
|
+
"note": "Whitespace between two groups is a step break, so “g i” is G then I. The word is read aloud where the plus is not, because it is the only thing that tells a sequence from a chord.",
|
|
305
|
+
"language": "html",
|
|
306
|
+
"source": "<kbd slShortcut keys=\"g i\"></kbd>\n<kbd slShortcut keys=\"mod+k mod+s\"></kbd>\n",
|
|
307
|
+
"verdict": "excerpt"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"id": "context",
|
|
311
|
+
"title": "Where a shortcut actually lives",
|
|
312
|
+
"note": "A menu, where the label takes the room and the shortcut takes the end of the row. plain inherits the row’s colour, so a row that dims dims its shortcut with no state to set.",
|
|
313
|
+
"language": "html",
|
|
314
|
+
"source": "<li>\n <span>Open command palette</span>\n <kbd slShortcut keys=\"mod+k\" variant=\"plain\"></kbd>\n</li>\n",
|
|
315
|
+
"verdict": "excerpt"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "states",
|
|
319
|
+
"title": "Available and unavailable",
|
|
320
|
+
"note": "disabled dims the ground, the rim and the ink, and writes no aria-disabled: kbd may carry only the global ARIA attributes, so the item owns the semantics.",
|
|
321
|
+
"language": "html",
|
|
322
|
+
"source": "<kbd slShortcut keys=\"mod+z\"></kbd>\n<kbd slShortcut keys=\"mod+z\" disabled></kbd>\n",
|
|
323
|
+
"verdict": "excerpt"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"id": "content",
|
|
327
|
+
"title": "Content the family did not choose",
|
|
328
|
+
"note": "The longest real key name, a German legend replaced through the injection token, and a four-key combination in a narrow column: it wraps between caps and never inside one.",
|
|
329
|
+
"language": "ts",
|
|
330
|
+
"source": "provideKbdDefaults({\n platform: 'windows',\n legends: { ctrl: 'Strg', shift: 'Umschalt', delete: 'Entf' },\n names: { ctrl: 'Steuerung', delete: 'Entfernen' },\n});\n",
|
|
331
|
+
"verdict": "excerpt"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"id": "composition",
|
|
335
|
+
"title": "Composition and escape hatches",
|
|
336
|
+
"note": "Projected keys are rendered in the order written, which is the way out of the platform reordering. The directive is already on the consumer’s element, so no render prop is needed.",
|
|
337
|
+
"language": "html",
|
|
338
|
+
"source": "<kbd slShortcut>\n <kbd slKbd keyName=\"mod\"></kbd>\n <kbd slKbd>K</kbd>\n</kbd>\n\n<kbd slShortcut keys=\"mod+k\" #combination=\"slShortcut\"></kbd>\n",
|
|
339
|
+
"verdict": "excerpt"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "accessibility",
|
|
343
|
+
"title": "What a reader hears",
|
|
344
|
+
"note": "Every mark and every abbreviation hides its legend and carries the word beside it, so ⌘ is announced “Command” rather than “place of interest sign” and Ctrl is not left to a pronunciation dictionary.",
|
|
345
|
+
"language": "html",
|
|
346
|
+
"source": "<!-- “Command Shift K” -->\n<kbd slShortcut keys=\"mod+shift+k\" platform=\"mac\"></kbd>\n\n<!-- “G then I” -->\n<kbd slShortcut keys=\"g i\"></kbd>\n\n<!-- “Any key” — a word the page wrote, so the page owns it. -->\n<kbd slKbd>Any key</kbd>\n",
|
|
347
|
+
"verdict": "excerpt"
|
|
348
|
+
}
|
|
349
|
+
]
|
|
350
|
+
}
|
package/docs/kbd.md
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# kbd
|
|
3
|
+
|
|
4
|
+
`data-ui="kbd"` · Keyboard key or shortcut.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlKbd, SlShortcut, provideKbdDefaults } from '@slotted/angular/kbd';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `kbd[slKbd] · kbd[slShortcut]` · exportAs: `slKbd · slShortcut`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<kbd slKbd keyName="mod"></kbd>
|
|
20
|
+
|
|
21
|
+
<!-- Or a word this library has never heard of. -->
|
|
22
|
+
<kbd slKbd>Any key</kbd>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Anatomy
|
|
26
|
+
|
|
27
|
+
| Part | Element | Required |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `root` | kbd | yes |
|
|
30
|
+
| `legend` | span | yes |
|
|
31
|
+
| `name` | span | no |
|
|
32
|
+
| `shortcut` | kbd | no |
|
|
33
|
+
| `separator` | span | no |
|
|
34
|
+
|
|
35
|
+
## Props
|
|
36
|
+
|
|
37
|
+
| Name | Type | Default | Applies to | Description |
|
|
38
|
+
| --- | --- | --- | --- | --- |
|
|
39
|
+
| `keyName` | `string` | — | slKbd | A token from the vocabulary — mod, meta, ctrl, alt, shift, fn, enter, escape, tab, space, backspace, delete, capslock, pageup, pagedown, home, end, plus, up, down, left, right — or an alias such as cmd, option, esc or arrowup. Wins over projected content where both are written |
|
|
40
|
+
| `keys` | `string` | — | slShortcut | The whole combination: + joins keys pressed together, whitespace joins the steps of a sequence |
|
|
41
|
+
| `platform` | `'auto' \| 'mac' \| 'windows' \| 'linux' \| 'other'` | auto | slKbd, slShortcut | Which keyboard the legends are drawn for. auto reads the browser and never the server, so a server-rendered application states it through provideKbdDefaults |
|
|
42
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'inherit'` | md | slKbd, slShortcut | xs to lg are fixed heights of 16, 20, 24 and 28 pixels whose legend answers density; inherit reads the text around the key and stays inside its line |
|
|
43
|
+
| `variant` | `'raised' \| 'outline' \| 'soft' \| 'plain'` | raised | slKbd, slShortcut | raised is a key with a bottom edge, outline owns no ground, soft is the tinted chip, plain takes the colour of the text it sits in |
|
|
44
|
+
| `disabled` | `boolean` | false | slKbd, slShortcut | Dims the key without writing aria-disabled, which kbd may not carry. The item the shortcut belongs to owns the semantics |
|
|
45
|
+
| `separator` | `string` | + | slShortcut | Between two simultaneous keys. A Mac joins with nothing whatever this says |
|
|
46
|
+
| `messages` | `PartialMessages<KeysMessages>` | — | slKbd, slShortcut | Words laid over the keys catalog of the language in force, key by key: legends.*, names.*, and then — the word between two steps of a sequence, read aloud |
|
|
47
|
+
| `legends` | `Record<string, string>` | — | slShortcut | Replaces what the eye sees, per key token: { ctrl: "Strg" }. Falls back to the injection token |
|
|
48
|
+
| `names` | `Record<string, string>` | — | slShortcut | Replaces what a reader hears, per key token: { ctrl: "Steuerung" }. Falls back to the injection token |
|
|
49
|
+
| `projected content` | `ng-content` | — | slKbd | The legend written verbatim — the application’s own word, neither resolved nor given a hidden name |
|
|
50
|
+
| `projected content` | `ng-content` | — | slShortcut | Keys authored one by one. They are rendered in the order written, which is the way out of the platform reordering, and they take the combination’s painting |
|
|
51
|
+
| `the host element` | `kbd` | — | slKbd, slShortcut | The directive is written on the consumer’s own kbd, so substituting the element is the default rather than a prop. Every static attribute on it survives the host bindings |
|
|
52
|
+
| `exportAs` | `'slKbd' \| 'slShortcut'` | — | slKbd, slShortcut | Reaches the instance from a template. There is no imperative method on it: the family has no action a template cannot express declaratively |
|
|
53
|
+
| `provideKbdDefaults` | `{ platform, size, variant, separator, legends, names }` | — | an injector | Sets all six once for everything under it; an explicit input on a key still wins |
|
|
54
|
+
|
|
55
|
+
## Axes and defaults
|
|
56
|
+
|
|
57
|
+
| Axis | Values | Default |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `size` | `xs`, `sm`, `md`, `lg`, `inherit` | `md` |
|
|
60
|
+
| `variant` | `raised`, `outline`, `soft`, `plain` | `raised` |
|
|
61
|
+
| `platform` | `auto`, `mac`, `windows`, `linux`, `other` | `auto` |
|
|
62
|
+
|
|
63
|
+
## Rules
|
|
64
|
+
|
|
65
|
+
- There is no kbd pattern in the WAI-ARIA Authoring Practices — the pattern index carries no entry — and ARIA in HTML (W3C Recommendation, 11 August 2026) maps the kbd element to no corresponding role and declares it Naming Prohibited. The family therefore writes no role, no aria-label and no aria-disabled, and every word a reader hears is content.
|
|
66
|
+
- A key in the vocabulary hides its legend with aria-hidden and carries the word in a name part the family clips from view itself. ⌘ is U+2318 PLACE OF INTEREST SIGN and would otherwise be read as one; Ctrl is an abbreviation whose pronunciation belongs to the screen reader’s dictionary. Both are announced “Control” or “Command” here.
|
|
67
|
+
- The plus between two keys is aria-hidden — it is punctuation joining two caps, and “Command Shift K” is what the operating systems announce for the same shortcut. The word between two steps of a sequence is not hidden, because it is the only thing that distinguishes “G then I” from “G and I together”.
|
|
68
|
+
- Nothing here is focusable and nothing here binds a key. WCAG 2.2 2.1.4 Character Key Shortcuts belongs to whoever registers the shortcut, because only the application knows whether a single-character shortcut can be turned off.
|
|
69
|
+
- The keys inside a combination keep their left-to-right order in a right-to-left document. A combination is one formula, the bidi algorithm renders the same string as one left-to-right run inside an Arabic paragraph, and a mirrored K + ⌘ is a shortcut no operating system displays. The combination as a whole still sits where the paragraph puts it.
|
|
70
|
+
- An arrow legend is never mirrored: ← is the physical Left arrow key, not a direction of travel.
|
|
71
|
+
- A key label is never truncated. A shortcut too wide for its column wraps between caps and never inside one, because half a key name is a wrong instruction where a wrapped shortcut is only a taller row.
|
|
72
|
+
- The platform is resolved in the browser and never on the server, so a server-rendered application calls provideKbdDefaults({ platform }) — a development-mode warning says so rather than leaving a reader to discover Ctrl on their Mac.
|
|
73
|
+
|
|
74
|
+
## Tokens
|
|
75
|
+
|
|
76
|
+
`--slotted-border-strong`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-border-color`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-inner-size`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-font-family-sans`, `--slotted-font-weight-medium`, `--slotted-kbd-base-width`, `--slotted-kbd-border-width`, `--slotted-kbd-font-family`, `--slotted-kbd-font-weight`, `--slotted-kbd-radius`, `--slotted-kbd-symbol-font-family`, `--slotted-radius-lg`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-6`, `--slotted-space-7`, `--slotted-space-8`, `--slotted-surface-raised`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-secondary-border`, `--slotted-tone-secondary-surface`, `--slotted-tone-secondary-text`
|
|
77
|
+
|
|
78
|
+
## Examples
|
|
79
|
+
|
|
80
|
+
### How the key is painted
|
|
81
|
+
|
|
82
|
+
raised is the only value that looks like an object; outline owns no ground, so it survives on a solid surface where raised would cut a white hole.
|
|
83
|
+
|
|
84
|
+
Excerpt — not a complete module
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<kbd slShortcut keys="mod+b"></kbd>
|
|
88
|
+
<kbd slShortcut keys="mod+b" variant="outline"></kbd>
|
|
89
|
+
<kbd slShortcut keys="mod+b" variant="soft"></kbd>
|
|
90
|
+
<kbd slShortcut keys="mod+b" variant="plain"></kbd>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### How large the key is
|
|
94
|
+
|
|
95
|
+
Four absolute heights, 16, 20, 24 and 28 pixels, that no legend and no variant changes; the legend reads the control type scale, so it shrinks with density inside the same box. xs fits a caption or a tooltip. inherit reads the text around it and stays inside its line, which is the step a heading and a footnote both need.
|
|
96
|
+
|
|
97
|
+
Excerpt — not a complete module
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<kbd slKbd keyName="escape" size="xs"></kbd>
|
|
101
|
+
<kbd slKbd keyName="escape" size="sm"></kbd>
|
|
102
|
+
<kbd slKbd keyName="escape" size="lg"></kbd>
|
|
103
|
+
|
|
104
|
+
<h2>Press <kbd slKbd keyName="escape" size="inherit"></kbd> to close</h2>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### A whole combination
|
|
108
|
+
|
|
109
|
+
One kbd nested inside another, which is what the HTML Standard says a combination is. The plus is a part of its own, so an application can restyle or replace it.
|
|
110
|
+
|
|
111
|
+
Excerpt — not a complete module
|
|
112
|
+
|
|
113
|
+
```html
|
|
114
|
+
<kbd slShortcut keys="mod+shift+p"></kbd>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### The same string on three keyboards
|
|
118
|
+
|
|
119
|
+
The modifiers are reordered into each platform’s own convention and the legends redrawn; on a Mac the separator is not rendered at all, because a Mac joins with nothing.
|
|
120
|
+
|
|
121
|
+
Excerpt — not a complete module
|
|
122
|
+
|
|
123
|
+
```html
|
|
124
|
+
<kbd slShortcut keys="mod+shift+alt+p" platform="mac"></kbd>
|
|
125
|
+
<kbd slShortcut keys="mod+shift+alt+p" platform="windows"></kbd>
|
|
126
|
+
|
|
127
|
+
<!-- Left to itself it asks the reader’s browser. -->
|
|
128
|
+
<kbd slShortcut keys="mod+shift+alt+p"></kbd>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### One key after another
|
|
132
|
+
|
|
133
|
+
Whitespace between two groups is a step break, so “g i” is G then I. The word is read aloud where the plus is not, because it is the only thing that tells a sequence from a chord.
|
|
134
|
+
|
|
135
|
+
Excerpt — not a complete module
|
|
136
|
+
|
|
137
|
+
```html
|
|
138
|
+
<kbd slShortcut keys="g i"></kbd>
|
|
139
|
+
<kbd slShortcut keys="mod+k mod+s"></kbd>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Where a shortcut actually lives
|
|
143
|
+
|
|
144
|
+
A menu, where the label takes the room and the shortcut takes the end of the row. plain inherits the row’s colour, so a row that dims dims its shortcut with no state to set.
|
|
145
|
+
|
|
146
|
+
Excerpt — not a complete module
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<li>
|
|
150
|
+
<span>Open command palette</span>
|
|
151
|
+
<kbd slShortcut keys="mod+k" variant="plain"></kbd>
|
|
152
|
+
</li>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Available and unavailable
|
|
156
|
+
|
|
157
|
+
disabled dims the ground, the rim and the ink, and writes no aria-disabled: kbd may carry only the global ARIA attributes, so the item owns the semantics.
|
|
158
|
+
|
|
159
|
+
Excerpt — not a complete module
|
|
160
|
+
|
|
161
|
+
```html
|
|
162
|
+
<kbd slShortcut keys="mod+z"></kbd>
|
|
163
|
+
<kbd slShortcut keys="mod+z" disabled></kbd>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Content the family did not choose
|
|
167
|
+
|
|
168
|
+
The longest real key name, a German legend replaced through the injection token, and a four-key combination in a narrow column: it wraps between caps and never inside one.
|
|
169
|
+
|
|
170
|
+
Excerpt — not a complete module
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
provideKbdDefaults({
|
|
174
|
+
platform: 'windows',
|
|
175
|
+
legends: { ctrl: 'Strg', shift: 'Umschalt', delete: 'Entf' },
|
|
176
|
+
names: { ctrl: 'Steuerung', delete: 'Entfernen' },
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Composition and escape hatches
|
|
181
|
+
|
|
182
|
+
Projected keys are rendered in the order written, which is the way out of the platform reordering. The directive is already on the consumer’s element, so no render prop is needed.
|
|
183
|
+
|
|
184
|
+
Excerpt — not a complete module
|
|
185
|
+
|
|
186
|
+
```html
|
|
187
|
+
<kbd slShortcut>
|
|
188
|
+
<kbd slKbd keyName="mod"></kbd>
|
|
189
|
+
<kbd slKbd>K</kbd>
|
|
190
|
+
</kbd>
|
|
191
|
+
|
|
192
|
+
<kbd slShortcut keys="mod+k" #combination="slShortcut"></kbd>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### What a reader hears
|
|
196
|
+
|
|
197
|
+
Every mark and every abbreviation hides its legend and carries the word beside it, so ⌘ is announced “Command” rather than “place of interest sign” and Ctrl is not left to a pronunciation dictionary.
|
|
198
|
+
|
|
199
|
+
Excerpt — not a complete module
|
|
200
|
+
|
|
201
|
+
```html
|
|
202
|
+
<!-- “Command Shift K” -->
|
|
203
|
+
<kbd slShortcut keys="mod+shift+k" platform="mac"></kbd>
|
|
204
|
+
|
|
205
|
+
<!-- “G then I” -->
|
|
206
|
+
<kbd slShortcut keys="g i"></kbd>
|
|
207
|
+
|
|
208
|
+
<!-- “Any key” — a word the page wrote, so the page owns it. -->
|
|
209
|
+
<kbd slKbd>Any key</kbd>
|
|
210
|
+
```
|