@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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Slotted contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,52 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @slotted/angular
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Angular components for Slotted, a UI library for product web applications.
|
|
4
|
+
|
|
5
|
+
This package is a `0.x` beta. Its public API changes between beta releases without deprecation.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm install @slotted/angular @slotted/core @slotted/theme @slotted/themes
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
`@angular/core`, `@angular/common` and `@angular/forms` `>=22.1.0 <23` are peer dependencies.
|
|
14
|
+
|
|
15
|
+
## Use
|
|
16
|
+
|
|
17
|
+
Load one theme once in the application's global stylesheet:
|
|
18
|
+
|
|
19
|
+
```css
|
|
20
|
+
@layer slotted, app;
|
|
21
|
+
@import '@slotted/themes/default.css';
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Every rule the library ships lives in the `slotted` cascade layer; the `@layer` statement places it before the application's own layer ([styling](https://github.com/andrelopes-code/slotted/blob/main/docs/styling.md)). Each component comes from its secondary entry point and attaches to its native element:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { Component } from '@angular/core';
|
|
28
|
+
import { SlButton } from '@slotted/angular/button';
|
|
29
|
+
|
|
30
|
+
@Component({
|
|
31
|
+
imports: [SlButton],
|
|
32
|
+
template: `<button slButton>Save</button>`,
|
|
33
|
+
})
|
|
34
|
+
export class Actions {}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Language
|
|
38
|
+
|
|
39
|
+
Components write English when no provider is present. `provideSlotted` sets the locale and the catalogs; `locale` accepts a string or a signal:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
import { provideSlotted } from '@slotted/angular/i18n';
|
|
43
|
+
import { PT_BR } from '@slotted/core/i18n/pt-BR';
|
|
44
|
+
|
|
45
|
+
export const appConfig = {
|
|
46
|
+
providers: [provideSlotted({ locale: 'pt-BR', catalogs: { 'pt-BR': PT_BR } })],
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## License
|
|
51
|
+
|
|
52
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
## Slotted UI (@slotted/angular)
|
|
2
|
+
|
|
3
|
+
Before writing or changing UI, read `node_modules/@slotted/angular/docs/index.md`, then the file of each family you use. These files match the installed version: prefer them over prior knowledge of the library.
|
|
4
|
+
|
|
5
|
+
- Import the standalone directives from the family entry point that each file's Import section shows (`@slotted/angular/<family>`), and place each on the native element its selector names: `<button slButton>`.
|
|
6
|
+
- Load `@slotted/themes/default.css` once, in the global stylesheet.
|
|
7
|
+
- Set `data-slotted-theme="default"` on `<html>`. `data-slotted-scheme` (`light`, `dark`, `high-contrast`) and `data-slotted-density` (`comfortable`, `compact`, `dense`) apply to any element and its descendants.
|
|
8
|
+
- Change a family's appearance through its inputs (`size`, `variant`, `tone` where it has them), not with CSS that targets its parts.
|
|
9
|
+
- Application CSS uses `var(--slotted-*)` tokens for color, spacing and radius, inside a layer declared after the library's: `@layer slotted, app;`.
|
|
10
|
+
- In CSS and tests, select a family by `[data-ui="<family>"]` and its parts by `[data-part="<part>"]`.
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "accordion",
|
|
3
|
+
"ui": "accordion",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Layout",
|
|
7
|
+
"summary": "Stacked sections that expand and collapse."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"size": [
|
|
11
|
+
"sm",
|
|
12
|
+
"md",
|
|
13
|
+
"lg"
|
|
14
|
+
],
|
|
15
|
+
"variant": [
|
|
16
|
+
"plain",
|
|
17
|
+
"ruled",
|
|
18
|
+
"framed",
|
|
19
|
+
"separated"
|
|
20
|
+
],
|
|
21
|
+
"indicator": [
|
|
22
|
+
"chevron",
|
|
23
|
+
"plus-minus",
|
|
24
|
+
"none"
|
|
25
|
+
],
|
|
26
|
+
"togglePlacement": [
|
|
27
|
+
"end",
|
|
28
|
+
"start"
|
|
29
|
+
],
|
|
30
|
+
"headingLevel": [
|
|
31
|
+
"none",
|
|
32
|
+
"1",
|
|
33
|
+
"2",
|
|
34
|
+
"3",
|
|
35
|
+
"4",
|
|
36
|
+
"5",
|
|
37
|
+
"6"
|
|
38
|
+
],
|
|
39
|
+
"mount": [
|
|
40
|
+
"active",
|
|
41
|
+
"lazy",
|
|
42
|
+
"eager",
|
|
43
|
+
"until-found"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"members": {
|
|
47
|
+
"accordion": {
|
|
48
|
+
"nativeElement": "div",
|
|
49
|
+
"defaults": {
|
|
50
|
+
"size": "md",
|
|
51
|
+
"variant": "ruled",
|
|
52
|
+
"indicator": "chevron",
|
|
53
|
+
"togglePlacement": "end",
|
|
54
|
+
"headingLevel": "3",
|
|
55
|
+
"mount": "eager",
|
|
56
|
+
"truncate": false,
|
|
57
|
+
"multiple": false,
|
|
58
|
+
"requireOpen": false,
|
|
59
|
+
"loop": true,
|
|
60
|
+
"disabled": false
|
|
61
|
+
},
|
|
62
|
+
"capabilities": [
|
|
63
|
+
"selection",
|
|
64
|
+
"size",
|
|
65
|
+
"appearance",
|
|
66
|
+
"disabled",
|
|
67
|
+
"wiring"
|
|
68
|
+
],
|
|
69
|
+
"states": [
|
|
70
|
+
"default",
|
|
71
|
+
"disabled"
|
|
72
|
+
],
|
|
73
|
+
"parts": [
|
|
74
|
+
"root"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"docs": {
|
|
79
|
+
"accordion": {
|
|
80
|
+
"imports": {
|
|
81
|
+
"source": "import { SlAccordion } from '@slotted/angular/accordion';",
|
|
82
|
+
"selector": "[slAccordion]",
|
|
83
|
+
"exportAs": "slAccordion"
|
|
84
|
+
},
|
|
85
|
+
"anatomy": [
|
|
86
|
+
{
|
|
87
|
+
"part": "root",
|
|
88
|
+
"element": "the element carrying slAccordion",
|
|
89
|
+
"required": true,
|
|
90
|
+
"purpose": "The set. A single column carrying data-ui=\"accordion\", data-size, data-variant and data-disabled, and the chrome that belongs to the set rather than to one item — the rule under the last one, the frame around them all, the air between cards. Its items are slCollapsibles: a family beside this one, never a part of it, so nothing here selects into their DOM."
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"api": [
|
|
94
|
+
{
|
|
95
|
+
"name": "value",
|
|
96
|
+
"type": "model<readonly string[]>",
|
|
97
|
+
"defaultValue": "[]",
|
|
98
|
+
"appliesTo": "slAccordion",
|
|
99
|
+
"description": "The set of open panels. A model, so [(value)] is both the value and the write-back — the initial value is the uncontrolled start and a bound signal is the controlled one. Each entry is an slCollapsible’s value"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "multiple",
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"defaultValue": "false",
|
|
105
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
106
|
+
"description": "Whether more than one panel may be open. With it off, opening one closes the one that was, and that panel is told the reason was select"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "requireOpen",
|
|
110
|
+
"type": "boolean",
|
|
111
|
+
"defaultValue": "false",
|
|
112
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
113
|
+
"description": "Whether the set refuses to empty. The one open header then carries aria-disabled=\"true\", which is what the pattern asks of an accordion that does not permit its panel to be collapsed"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "loop",
|
|
117
|
+
"type": "boolean",
|
|
118
|
+
"defaultValue": "true",
|
|
119
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
120
|
+
"description": "Whether the arrow keys wrap past the ends of the set"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "size",
|
|
124
|
+
"type": "'sm' | 'md' | 'lg'",
|
|
125
|
+
"defaultValue": "md",
|
|
126
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
127
|
+
"description": "The step every item sits at, and the air between cards under separated"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "variant",
|
|
131
|
+
"type": "'plain' | 'ruled' | 'framed' | 'separated'",
|
|
132
|
+
"defaultValue": "ruled",
|
|
133
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
134
|
+
"description": "How the set is drawn. Each value maps onto the item variant the set hands over: plain to plain, ruled and framed to ruled, separated to framed. The set never selects into an item to draw it"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "indicator",
|
|
138
|
+
"type": "'chevron' | 'plus-minus' | 'none'",
|
|
139
|
+
"defaultValue": "chevron",
|
|
140
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
141
|
+
"description": "The mark every header carries, handed to each item"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "togglePlacement",
|
|
145
|
+
"type": "'end' | 'start'",
|
|
146
|
+
"defaultValue": "end",
|
|
147
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
148
|
+
"description": "Which side of the words that mark stands on, handed to each item"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "headingLevel",
|
|
152
|
+
"type": "'none' | '1' | '2' | '3' | '4' | '5' | '6'",
|
|
153
|
+
"defaultValue": "3",
|
|
154
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
155
|
+
"description": "The heading level every item’s header answers to. A native heading element the consumer wrote is left alone; anything else is given role=\"heading\" and this level"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "mount",
|
|
159
|
+
"type": "'active' | 'lazy' | 'eager' | 'until-found'",
|
|
160
|
+
"defaultValue": "eager",
|
|
161
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
162
|
+
"description": "When each panel’s content exists, handed to every item"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "truncate",
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"defaultValue": "false",
|
|
168
|
+
"appliesTo": "slAccordion, provideAccordionDefaults",
|
|
169
|
+
"description": "Clips every title to one line instead of letting the row grow"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "disabled",
|
|
173
|
+
"type": "boolean",
|
|
174
|
+
"defaultValue": "false",
|
|
175
|
+
"appliesTo": "slAccordion",
|
|
176
|
+
"description": "Reaches every item, and every trigger as the native attribute"
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
"composition": [
|
|
180
|
+
{
|
|
181
|
+
"name": "exportAs",
|
|
182
|
+
"type": "'slAccordion'",
|
|
183
|
+
"defaultValue": "—",
|
|
184
|
+
"appliesTo": "slAccordion",
|
|
185
|
+
"description": "#set=\"slAccordion\" reaches the instance from the template: openAll(), closeAll(), holds(value), isHeld(value) and every resolved axis, with no component class in between"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"name": "openAll, closeAll",
|
|
189
|
+
"type": "() => void",
|
|
190
|
+
"defaultValue": "—",
|
|
191
|
+
"appliesTo": "the instance",
|
|
192
|
+
"description": "The two moves an array cannot express while the family owns the array. Both carry the reason programmatic; openAll skips a disabled item, and closeAll leaves one open when requireOpen holds it"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"name": "provideAccordionDefaults",
|
|
196
|
+
"type": "(defaults: Partial<AccordionDefaults>) => Provider",
|
|
197
|
+
"defaultValue": "—",
|
|
198
|
+
"appliesTo": "an injector",
|
|
199
|
+
"description": "The ten decisions an application takes once. A set that states any of them itself still wins"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "the element the directive is on",
|
|
203
|
+
"type": "any",
|
|
204
|
+
"defaultValue": "—",
|
|
205
|
+
"appliesTo": "slAccordion",
|
|
206
|
+
"description": "The set attaches to the consumer’s own element, so a set of sections can be a section without a render prop existing"
|
|
207
|
+
}
|
|
208
|
+
],
|
|
209
|
+
"events": [
|
|
210
|
+
{
|
|
211
|
+
"name": "valueChange",
|
|
212
|
+
"payload": "readonly string[]",
|
|
213
|
+
"when": "The write-back half of the two-way binding. `[(value)]=\"open\"` keeps a signal in step with the set of open panels, which is the form this ecosystem expects."
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "valueChangeRequest",
|
|
217
|
+
"payload": "ChangeRequest<readonly string[]>",
|
|
218
|
+
"when": "Before the set of open panels moves. The request carries the new set, the set it replaces, the reason (pointer, keyboard, select or programmatic), the originating event, and cancel(), which refuses the move before anything commits. Two sets holding the same values in any order are the same set, so no request is emitted for a move that changes nothing."
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "openChangeRequest, on each item",
|
|
222
|
+
"payload": "ChangeRequest<boolean>",
|
|
223
|
+
"when": "Before that one panel moves, and before the set is asked. It is what lets a consumer watch one section without unpacking the array, and cancelling it stops the set from being asked at all."
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"name": "focusin, keydown, on the set",
|
|
227
|
+
"payload": "the element’s own events",
|
|
228
|
+
"when": "Whenever the set fires them. Which header has focus is read from $event.target.dataset.value, which is why the family ships no separate focus-change output."
|
|
229
|
+
}
|
|
230
|
+
],
|
|
231
|
+
"accessibility": [
|
|
232
|
+
"The pattern is the WAI-ARIA APG’s Accordion (w3.org/WAI/ARIA/apg/patterns/accordion/). Its keyboard table is four keys and all four are the platform’s: Enter and Space toggle the focused header because it is a button, and Tab and Shift + Tab move through the set because every focusable element in an accordion is in the page tab sequence. Nothing here writes tabindex.",
|
|
233
|
+
"ArrowDown, ArrowUp, Home and End are a deliberate departure, and the cost is written down. The arrows were optional guidance until w3c/aria-practices#3434 removed them, and Base UI deprecated its own loopFocus and orientation in the same change; Radix and Ark still ship them and readers have learned them. Here they are additive — they move focus between headers, open nothing, and take no header out of the tab sequence — so a reader who does not know them loses nothing.",
|
|
234
|
+
"Each header is a heading at the level headingLevel names, and the trigger is its only element, which is what the pattern requires. The set itself carries no role: a group of headings is already an outline a reader can navigate, and a container announced around it is one more thing to move past.",
|
|
235
|
+
"requireOpen writes aria-disabled=\"true\" on the one header the set will not let close. The pattern asks for exactly that, and the APG’s own example is the only surveyed implementation that ships it; the header stays focusable and announced rather than leaving the reader’s path.",
|
|
236
|
+
"A horizontal accordion is not shipped. Radix and Ark both offer one and Base UI has deprecated its own; a horizontally stacked set of sections of which one is open is a tab list, and slTabs owns it — with the marker, the scrolling list and that pattern’s own keyboard model.",
|
|
237
|
+
"A nested set is two sets. The arrow ring is scoped to the headers this set owns, so arrowing through an outer accordion never falls into an inner one, and the inner panel stays closed while the outer is open."
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
"tokens": [
|
|
242
|
+
"--slotted-accordion-gap",
|
|
243
|
+
"--slotted-accordion-radius",
|
|
244
|
+
"--slotted-accordion-rule-color",
|
|
245
|
+
"--slotted-accordion-surface",
|
|
246
|
+
"--slotted-border-subtle",
|
|
247
|
+
"--slotted-border-width-thin",
|
|
248
|
+
"--slotted-disabled-foreground",
|
|
249
|
+
"--slotted-radius-md",
|
|
250
|
+
"--slotted-space-3",
|
|
251
|
+
"--slotted-space-4",
|
|
252
|
+
"--slotted-space-5",
|
|
253
|
+
"--slotted-surface-raised"
|
|
254
|
+
],
|
|
255
|
+
"examples": [
|
|
256
|
+
{
|
|
257
|
+
"id": "playground",
|
|
258
|
+
"title": "Playground",
|
|
259
|
+
"note": "One set with every input on it, driven by the controls below the canvas. Tab reaches every header; the arrows move between them without opening anything.",
|
|
260
|
+
"language": "html",
|
|
261
|
+
"source": "<div slAccordion [(value)]=\"open\">\n <div slCollapsible value=\"entrega\">\n <h3 slCollapsibleHeader><button slCollapsibleTrigger>Entrega</button></h3>\n <div slCollapsiblePanel>Prevista para 12 de setembro.</div>\n </div>\n <div slCollapsible value=\"pagamento\">\n <h3 slCollapsibleHeader><button slCollapsibleTrigger>Pagamento</button></h3>\n <div slCollapsiblePanel>Cartão de crédito, aprovado.</div>\n </div>\n</div>\n",
|
|
262
|
+
"verdict": "excerpt"
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"id": "multiple",
|
|
266
|
+
"title": "One panel open, or several",
|
|
267
|
+
"note": "With multiple off, opening one closes the one that was — and that panel is told it closed with the reason select, not because the reader asked it to.",
|
|
268
|
+
"language": "html",
|
|
269
|
+
"source": "<div slAccordion [multiple]=\"true\" [value]=\"['entrega', 'pagamento']\">…</div>\n",
|
|
270
|
+
"verdict": "excerpt"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "requireOpen",
|
|
274
|
+
"title": "A set that refuses to empty",
|
|
275
|
+
"note": "The one open header carries aria-disabled=\"true\", which is the pattern’s own instruction for an accordion that does not permit its panel to be collapsed. It stays focusable and announced.",
|
|
276
|
+
"language": "html",
|
|
277
|
+
"source": "<div slAccordion [requireOpen]=\"true\" [value]=\"['entrega']\">…</div>\n",
|
|
278
|
+
"verdict": "excerpt"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"id": "variant",
|
|
282
|
+
"title": "The four ways a set is drawn",
|
|
283
|
+
"note": "ruled puts one hairline per seam and closes the stack at the bottom, framed wraps that set in one frame, separated gives each item a card, and plain paints nothing at all.",
|
|
284
|
+
"language": "html",
|
|
285
|
+
"source": "<div slAccordion variant=\"separated\">…</div>\n",
|
|
286
|
+
"verdict": "excerpt"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"id": "sizes",
|
|
290
|
+
"title": "The step the set sits at",
|
|
291
|
+
"note": "The set hands the step to every item, so one word moves the type of every title and the rhythm of every row at once. The gap between cards moves with it.",
|
|
292
|
+
"language": "html",
|
|
293
|
+
"source": "<div slAccordion size=\"lg\" variant=\"separated\">…</div>\n",
|
|
294
|
+
"verdict": "excerpt"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"id": "mount",
|
|
298
|
+
"title": "When each panel’s content exists",
|
|
299
|
+
"note": "The set hands the strategy to every item: eager keeps every panel ready to transition, lazy builds one on its first open, and active drops each one as it closes.",
|
|
300
|
+
"language": "html",
|
|
301
|
+
"source": "<div slAccordion mount=\"lazy\">\n <div slCollapsible value=\"entrega\">\n <h3 slCollapsibleHeader><button slCollapsibleTrigger>Entrega</button></h3>\n <div slCollapsiblePanel>\n <ng-template slCollapsibleContent>{{ delivery() }}</ng-template>\n </div>\n </div>\n</div>\n",
|
|
302
|
+
"verdict": "excerpt"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"id": "states",
|
|
306
|
+
"title": "Every state the set paints",
|
|
307
|
+
"note": "A disabled set reaches every trigger as the native attribute, and one item may be out of action inside a live set. Hover and press are the item’s, held back for both.",
|
|
308
|
+
"language": "html",
|
|
309
|
+
"source": "<div slAccordion>\n <div slCollapsible value=\"nota\" [disabled]=\"true\">…</div>\n</div>\n",
|
|
310
|
+
"verdict": "excerpt"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"id": "imperative",
|
|
314
|
+
"title": "Opening and closing everything",
|
|
315
|
+
"note": "exportAs reaches the set from the template, so the pair Angular Material ships needs no component class in between and no handle to be passed down.",
|
|
316
|
+
"language": "html",
|
|
317
|
+
"source": "<div slAccordion #set=\"slAccordion\" [multiple]=\"true\">…</div>\n\n<button slButton (click)=\"set.openAll()\">Abrir tudo</button>\n<button slButton (click)=\"set.closeAll()\">Fechar tudo</button>\n",
|
|
318
|
+
"verdict": "excerpt"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"id": "content",
|
|
322
|
+
"title": "Content the set did not choose",
|
|
323
|
+
"note": "A hundred sections, a title longer than its row, and an accordion nested inside another’s panel — which stays closed, because nothing in the family is a descendant rule.",
|
|
324
|
+
"language": "html",
|
|
325
|
+
"source": "<div slCollapsiblePanel>\n <div slAccordion variant=\"plain\">…</div>\n</div>\n",
|
|
326
|
+
"verdict": "excerpt"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"id": "composition",
|
|
330
|
+
"title": "Setting it once, and reaching past it",
|
|
331
|
+
"note": "provideAccordionDefaults carries the ten decisions an application takes once, and a set that states any of them still wins over it.",
|
|
332
|
+
"language": "ts",
|
|
333
|
+
"source": "bootstrapApplication(App, {\n providers: [provideAccordionDefaults({ variant: 'separated', multiple: true })],\n});\n",
|
|
334
|
+
"verdict": "excerpt"
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"id": "keyboard",
|
|
338
|
+
"title": "The pattern’s table, and the four keys beside it",
|
|
339
|
+
"note": "Every header is a Tab stop, which is what the pattern requires; the arrows, Home and End move focus on top of that sequence and open nothing at all.",
|
|
340
|
+
"language": "html",
|
|
341
|
+
"source": "<div slAccordion (valueChangeRequest)=\"reason.set($event.reason)\">…</div>\n",
|
|
342
|
+
"verdict": "excerpt"
|
|
343
|
+
}
|
|
344
|
+
]
|
|
345
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# accordion
|
|
3
|
+
|
|
4
|
+
`data-ui="accordion"` · Stacked sections that expand and collapse.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlAccordion } from '@slotted/angular/accordion';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `[slAccordion]` · exportAs: `slAccordion`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<div slAccordion [(value)]="open">
|
|
20
|
+
<div slCollapsible value="entrega">
|
|
21
|
+
<h3 slCollapsibleHeader><button slCollapsibleTrigger>Entrega</button></h3>
|
|
22
|
+
<div slCollapsiblePanel>Prevista para 12 de setembro.</div>
|
|
23
|
+
</div>
|
|
24
|
+
<div slCollapsible value="pagamento">
|
|
25
|
+
<h3 slCollapsibleHeader><button slCollapsibleTrigger>Pagamento</button></h3>
|
|
26
|
+
<div slCollapsiblePanel>Cartão de crédito, aprovado.</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Anatomy
|
|
32
|
+
|
|
33
|
+
| Part | Element | Required |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| `root` | the element carrying slAccordion | yes |
|
|
36
|
+
|
|
37
|
+
## Props
|
|
38
|
+
|
|
39
|
+
| Name | Type | Default | Applies to | Description |
|
|
40
|
+
| --- | --- | --- | --- | --- |
|
|
41
|
+
| `value` | `model<readonly string[]>` | [] | slAccordion | The set of open panels. A model, so [(value)] is both the value and the write-back — the initial value is the uncontrolled start and a bound signal is the controlled one. Each entry is an slCollapsible’s value |
|
|
42
|
+
| `multiple` | `boolean` | false | slAccordion, provideAccordionDefaults | Whether more than one panel may be open. With it off, opening one closes the one that was, and that panel is told the reason was select |
|
|
43
|
+
| `requireOpen` | `boolean` | false | slAccordion, provideAccordionDefaults | Whether the set refuses to empty. The one open header then carries aria-disabled="true", which is what the pattern asks of an accordion that does not permit its panel to be collapsed |
|
|
44
|
+
| `loop` | `boolean` | true | slAccordion, provideAccordionDefaults | Whether the arrow keys wrap past the ends of the set |
|
|
45
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | md | slAccordion, provideAccordionDefaults | The step every item sits at, and the air between cards under separated |
|
|
46
|
+
| `variant` | `'plain' \| 'ruled' \| 'framed' \| 'separated'` | ruled | slAccordion, provideAccordionDefaults | How the set is drawn. Each value maps onto the item variant the set hands over: plain to plain, ruled and framed to ruled, separated to framed. The set never selects into an item to draw it |
|
|
47
|
+
| `indicator` | `'chevron' \| 'plus-minus' \| 'none'` | chevron | slAccordion, provideAccordionDefaults | The mark every header carries, handed to each item |
|
|
48
|
+
| `togglePlacement` | `'end' \| 'start'` | end | slAccordion, provideAccordionDefaults | Which side of the words that mark stands on, handed to each item |
|
|
49
|
+
| `headingLevel` | `'none' \| '1' \| '2' \| '3' \| '4' \| '5' \| '6'` | 3 | slAccordion, provideAccordionDefaults | The heading level every item’s header answers to. A native heading element the consumer wrote is left alone; anything else is given role="heading" and this level |
|
|
50
|
+
| `mount` | `'active' \| 'lazy' \| 'eager' \| 'until-found'` | eager | slAccordion, provideAccordionDefaults | When each panel’s content exists, handed to every item |
|
|
51
|
+
| `truncate` | `boolean` | false | slAccordion, provideAccordionDefaults | Clips every title to one line instead of letting the row grow |
|
|
52
|
+
| `disabled` | `boolean` | false | slAccordion | Reaches every item, and every trigger as the native attribute |
|
|
53
|
+
| `exportAs` | `'slAccordion'` | — | slAccordion | #set="slAccordion" reaches the instance from the template: openAll(), closeAll(), holds(value), isHeld(value) and every resolved axis, with no component class in between |
|
|
54
|
+
| `openAll, closeAll` | `() => void` | — | the instance | The two moves an array cannot express while the family owns the array. Both carry the reason programmatic; openAll skips a disabled item, and closeAll leaves one open when requireOpen holds it |
|
|
55
|
+
| `provideAccordionDefaults` | `(defaults: Partial<AccordionDefaults>) => Provider` | — | an injector | The ten decisions an application takes once. A set that states any of them itself still wins |
|
|
56
|
+
| `the element the directive is on` | `any` | — | slAccordion | The set attaches to the consumer’s own element, so a set of sections can be a section without a render prop existing |
|
|
57
|
+
|
|
58
|
+
## Events
|
|
59
|
+
|
|
60
|
+
| Name | Payload | When |
|
|
61
|
+
| --- | --- | --- |
|
|
62
|
+
| `valueChange` | `readonly string[]` | The write-back half of the two-way binding. `[(value)]="open"` keeps a signal in step with the set of open panels, which is the form this ecosystem expects. |
|
|
63
|
+
| `valueChangeRequest` | `ChangeRequest<readonly string[]>` | Before the set of open panels moves. The request carries the new set, the set it replaces, the reason (pointer, keyboard, select or programmatic), the originating event, and cancel(), which refuses the move before anything commits. Two sets holding the same values in any order are the same set, so no request is emitted for a move that changes nothing. |
|
|
64
|
+
| `openChangeRequest, on each item` | `ChangeRequest<boolean>` | Before that one panel moves, and before the set is asked. It is what lets a consumer watch one section without unpacking the array, and cancelling it stops the set from being asked at all. |
|
|
65
|
+
| `focusin, keydown, on the set` | `the element’s own events` | Whenever the set fires them. Which header has focus is read from $event.target.dataset.value, which is why the family ships no separate focus-change output. |
|
|
66
|
+
|
|
67
|
+
## Axes and defaults
|
|
68
|
+
|
|
69
|
+
| Axis | Values | Default |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| `size` | `sm`, `md`, `lg` | `md` |
|
|
72
|
+
| `variant` | `plain`, `ruled`, `framed`, `separated` | `ruled` |
|
|
73
|
+
| `indicator` | `chevron`, `plus-minus`, `none` | `chevron` |
|
|
74
|
+
| `togglePlacement` | `end`, `start` | `end` |
|
|
75
|
+
| `headingLevel` | `none`, `1`, `2`, `3`, `4`, `5`, `6` | `3` |
|
|
76
|
+
| `mount` | `active`, `lazy`, `eager`, `until-found` | `eager` |
|
|
77
|
+
|
|
78
|
+
## Rules
|
|
79
|
+
|
|
80
|
+
- The pattern is the WAI-ARIA APG’s Accordion (w3.org/WAI/ARIA/apg/patterns/accordion/). Its keyboard table is four keys and all four are the platform’s: Enter and Space toggle the focused header because it is a button, and Tab and Shift + Tab move through the set because every focusable element in an accordion is in the page tab sequence. Nothing here writes tabindex.
|
|
81
|
+
- ArrowDown, ArrowUp, Home and End are a deliberate departure, and the cost is written down. The arrows were optional guidance until w3c/aria-practices#3434 removed them, and Base UI deprecated its own loopFocus and orientation in the same change; Radix and Ark still ship them and readers have learned them. Here they are additive — they move focus between headers, open nothing, and take no header out of the tab sequence — so a reader who does not know them loses nothing.
|
|
82
|
+
- Each header is a heading at the level headingLevel names, and the trigger is its only element, which is what the pattern requires. The set itself carries no role: a group of headings is already an outline a reader can navigate, and a container announced around it is one more thing to move past.
|
|
83
|
+
- requireOpen writes aria-disabled="true" on the one header the set will not let close. The pattern asks for exactly that, and the APG’s own example is the only surveyed implementation that ships it; the header stays focusable and announced rather than leaving the reader’s path.
|
|
84
|
+
- A horizontal accordion is not shipped. Radix and Ark both offer one and Base UI has deprecated its own; a horizontally stacked set of sections of which one is open is a tab list, and slTabs owns it — with the marker, the scrolling list and that pattern’s own keyboard model.
|
|
85
|
+
- A nested set is two sets. The arrow ring is scoped to the headers this set owns, so arrowing through an outer accordion never falls into an inner one, and the inner panel stays closed while the outer is open.
|
|
86
|
+
|
|
87
|
+
## Tokens
|
|
88
|
+
|
|
89
|
+
`--slotted-accordion-gap`, `--slotted-accordion-radius`, `--slotted-accordion-rule-color`, `--slotted-accordion-surface`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-disabled-foreground`, `--slotted-radius-md`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-surface-raised`
|
|
90
|
+
|
|
91
|
+
## Examples
|
|
92
|
+
|
|
93
|
+
### One panel open, or several
|
|
94
|
+
|
|
95
|
+
With multiple off, opening one closes the one that was — and that panel is told it closed with the reason select, not because the reader asked it to.
|
|
96
|
+
|
|
97
|
+
Excerpt — not a complete module
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<div slAccordion [multiple]="true" [value]="['entrega', 'pagamento']">…</div>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### A set that refuses to empty
|
|
104
|
+
|
|
105
|
+
The one open header carries aria-disabled="true", which is the pattern’s own instruction for an accordion that does not permit its panel to be collapsed. It stays focusable and announced.
|
|
106
|
+
|
|
107
|
+
Excerpt — not a complete module
|
|
108
|
+
|
|
109
|
+
```html
|
|
110
|
+
<div slAccordion [requireOpen]="true" [value]="['entrega']">…</div>
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### The four ways a set is drawn
|
|
114
|
+
|
|
115
|
+
ruled puts one hairline per seam and closes the stack at the bottom, framed wraps that set in one frame, separated gives each item a card, and plain paints nothing at all.
|
|
116
|
+
|
|
117
|
+
Excerpt — not a complete module
|
|
118
|
+
|
|
119
|
+
```html
|
|
120
|
+
<div slAccordion variant="separated">…</div>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### The step the set sits at
|
|
124
|
+
|
|
125
|
+
The set hands the step to every item, so one word moves the type of every title and the rhythm of every row at once. The gap between cards moves with it.
|
|
126
|
+
|
|
127
|
+
Excerpt — not a complete module
|
|
128
|
+
|
|
129
|
+
```html
|
|
130
|
+
<div slAccordion size="lg" variant="separated">…</div>
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### When each panel’s content exists
|
|
134
|
+
|
|
135
|
+
The set hands the strategy to every item: eager keeps every panel ready to transition, lazy builds one on its first open, and active drops each one as it closes.
|
|
136
|
+
|
|
137
|
+
Excerpt — not a complete module
|
|
138
|
+
|
|
139
|
+
```html
|
|
140
|
+
<div slAccordion mount="lazy">
|
|
141
|
+
<div slCollapsible value="entrega">
|
|
142
|
+
<h3 slCollapsibleHeader><button slCollapsibleTrigger>Entrega</button></h3>
|
|
143
|
+
<div slCollapsiblePanel>
|
|
144
|
+
<ng-template slCollapsibleContent>{{ delivery() }}</ng-template>
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Every state the set paints
|
|
151
|
+
|
|
152
|
+
A disabled set reaches every trigger as the native attribute, and one item may be out of action inside a live set. Hover and press are the item’s, held back for both.
|
|
153
|
+
|
|
154
|
+
Excerpt — not a complete module
|
|
155
|
+
|
|
156
|
+
```html
|
|
157
|
+
<div slAccordion>
|
|
158
|
+
<div slCollapsible value="nota" [disabled]="true">…</div>
|
|
159
|
+
</div>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Opening and closing everything
|
|
163
|
+
|
|
164
|
+
exportAs reaches the set from the template, so the pair Angular Material ships needs no component class in between and no handle to be passed down.
|
|
165
|
+
|
|
166
|
+
Excerpt — not a complete module
|
|
167
|
+
|
|
168
|
+
```html
|
|
169
|
+
<div slAccordion #set="slAccordion" [multiple]="true">…</div>
|
|
170
|
+
|
|
171
|
+
<button slButton (click)="set.openAll()">Abrir tudo</button>
|
|
172
|
+
<button slButton (click)="set.closeAll()">Fechar tudo</button>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Content the set did not choose
|
|
176
|
+
|
|
177
|
+
A hundred sections, a title longer than its row, and an accordion nested inside another’s panel — which stays closed, because nothing in the family is a descendant rule.
|
|
178
|
+
|
|
179
|
+
Excerpt — not a complete module
|
|
180
|
+
|
|
181
|
+
```html
|
|
182
|
+
<div slCollapsiblePanel>
|
|
183
|
+
<div slAccordion variant="plain">…</div>
|
|
184
|
+
</div>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Setting it once, and reaching past it
|
|
188
|
+
|
|
189
|
+
provideAccordionDefaults carries the ten decisions an application takes once, and a set that states any of them still wins over it.
|
|
190
|
+
|
|
191
|
+
Excerpt — not a complete module
|
|
192
|
+
|
|
193
|
+
```ts
|
|
194
|
+
bootstrapApplication(App, {
|
|
195
|
+
providers: [provideAccordionDefaults({ variant: 'separated', multiple: true })],
|
|
196
|
+
});
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### The pattern’s table, and the four keys beside it
|
|
200
|
+
|
|
201
|
+
Every header is a Tab stop, which is what the pattern requires; the arrows, Home and End move focus on top of that sequence and open nothing at all.
|
|
202
|
+
|
|
203
|
+
Excerpt — not a complete module
|
|
204
|
+
|
|
205
|
+
```html
|
|
206
|
+
<div slAccordion (valueChangeRequest)="reason.set($event.reason)">…</div>
|
|
207
|
+
```
|