@slotted/angular 0.0.0-stage → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -2
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/accordion.json +345 -0
- package/docs/accordion.md +207 -0
- package/docs/action-bar.json +421 -0
- package/docs/action-bar.md +364 -0
- package/docs/action-sheet.json +210 -0
- package/docs/action-sheet.md +19 -0
- package/docs/alert.json +407 -0
- package/docs/alert.md +239 -0
- package/docs/app-shell.examples.md +349 -0
- package/docs/app-shell.json +835 -0
- package/docs/app-shell.md +214 -0
- package/docs/aspect-ratio.json +159 -0
- package/docs/aspect-ratio.md +134 -0
- package/docs/attachment.json +486 -0
- package/docs/attachment.md +253 -0
- package/docs/avatar-group.json +208 -0
- package/docs/avatar-group.md +130 -0
- package/docs/avatar.json +342 -0
- package/docs/avatar.md +142 -0
- package/docs/badge.json +334 -0
- package/docs/badge.md +138 -0
- package/docs/breadcrumb.json +368 -0
- package/docs/breadcrumb.md +237 -0
- package/docs/button-group.json +158 -0
- package/docs/button-group.md +72 -0
- package/docs/button.examples.md +621 -0
- package/docs/button.json +977 -0
- package/docs/button.md +200 -0
- package/docs/calendar.json +592 -0
- package/docs/calendar.md +242 -0
- package/docs/card.json +283 -0
- package/docs/card.md +130 -0
- package/docs/carousel.json +560 -0
- package/docs/carousel.md +357 -0
- package/docs/cascader.json +933 -0
- package/docs/cascader.md +379 -0
- package/docs/chart.examples.md +582 -0
- package/docs/chart.json +1359 -0
- package/docs/chart.md +187 -0
- package/docs/checkbox-group.examples.md +612 -0
- package/docs/checkbox-group.json +395 -0
- package/docs/checkbox-group.md +106 -0
- package/docs/checkbox.examples.md +546 -0
- package/docs/checkbox.json +506 -0
- package/docs/checkbox.md +104 -0
- package/docs/code-block.json +616 -0
- package/docs/code-block.md +303 -0
- package/docs/collapsible.json +456 -0
- package/docs/collapsible.md +261 -0
- package/docs/color-picker.json +523 -0
- package/docs/color-picker.md +201 -0
- package/docs/column-manager.json +486 -0
- package/docs/column-manager.md +277 -0
- package/docs/combobox.examples.md +1732 -0
- package/docs/combobox.json +1250 -0
- package/docs/combobox.md +209 -0
- package/docs/command-palette.json +800 -0
- package/docs/command-palette.md +419 -0
- package/docs/container.json +156 -0
- package/docs/container.md +92 -0
- package/docs/context-menu.json +231 -0
- package/docs/context-menu.md +176 -0
- package/docs/currency-field.examples.md +321 -0
- package/docs/currency-field.json +649 -0
- package/docs/currency-field.md +128 -0
- package/docs/dashboard-grid.json +680 -0
- package/docs/dashboard-grid.md +265 -0
- package/docs/data-grid.examples.md +3064 -0
- package/docs/data-grid.json +1577 -0
- package/docs/data-grid.md +237 -0
- package/docs/data-grid.props.md +81 -0
- package/docs/data-list.json +685 -0
- package/docs/data-list.md +327 -0
- package/docs/date-field.json +490 -0
- package/docs/date-field.md +235 -0
- package/docs/date-picker.examples.md +1226 -0
- package/docs/date-picker.json +696 -0
- package/docs/date-picker.md +121 -0
- package/docs/date-range-picker.examples.md +1300 -0
- package/docs/date-range-picker.json +903 -0
- package/docs/date-range-picker.md +142 -0
- package/docs/datetime-field.json +665 -0
- package/docs/datetime-field.md +337 -0
- package/docs/datetime-picker.examples.md +1269 -0
- package/docs/datetime-picker.json +928 -0
- package/docs/datetime-picker.md +150 -0
- package/docs/datetime-range-picker.examples.md +225 -0
- package/docs/datetime-range-picker.json +1015 -0
- package/docs/datetime-range-picker.md +162 -0
- package/docs/description-list.json +471 -0
- package/docs/description-list.md +268 -0
- package/docs/detail-panel.json +530 -0
- package/docs/detail-panel.md +361 -0
- package/docs/dialog.examples.md +2467 -0
- package/docs/dialog.json +1141 -0
- package/docs/dialog.md +217 -0
- package/docs/dialog.props.md +63 -0
- package/docs/divider.json +148 -0
- package/docs/divider.md +83 -0
- package/docs/drawer.examples.md +1929 -0
- package/docs/drawer.json +753 -0
- package/docs/drawer.md +199 -0
- package/docs/entity-picker.json +946 -0
- package/docs/entity-picker.md +365 -0
- package/docs/event-calendar.examples.md +308 -0
- package/docs/event-calendar.json +1202 -0
- package/docs/event-calendar.md +201 -0
- package/docs/field-group.json +333 -0
- package/docs/field-group.md +181 -0
- package/docs/field.examples.md +676 -0
- package/docs/field.json +528 -0
- package/docs/field.md +127 -0
- package/docs/filter-bar.json +817 -0
- package/docs/filter-bar.md +380 -0
- package/docs/form.json +378 -0
- package/docs/form.md +235 -0
- package/docs/fullscreen.json +395 -0
- package/docs/fullscreen.md +225 -0
- package/docs/grid.json +176 -0
- package/docs/grid.md +74 -0
- package/docs/highlight.json +279 -0
- package/docs/highlight.md +210 -0
- package/docs/hover-card.json +254 -0
- package/docs/hover-card.md +213 -0
- package/docs/icon.json +173 -0
- package/docs/icon.md +101 -0
- package/docs/image.json +476 -0
- package/docs/image.md +254 -0
- package/docs/import-export-center.json +836 -0
- package/docs/import-export-center.md +345 -0
- package/docs/index.md +141 -0
- package/docs/inline-message.json +312 -0
- package/docs/inline-message.md +191 -0
- package/docs/inline.json +149 -0
- package/docs/inline.md +72 -0
- package/docs/kbd.json +350 -0
- package/docs/kbd.md +210 -0
- package/docs/link.json +264 -0
- package/docs/link.md +167 -0
- package/docs/list-item.json +463 -0
- package/docs/list-item.md +236 -0
- package/docs/list.json +321 -0
- package/docs/list.md +185 -0
- package/docs/listbox.json +807 -0
- package/docs/listbox.md +413 -0
- package/docs/loading-overlay.json +440 -0
- package/docs/loading-overlay.md +248 -0
- package/docs/markdown.json +461 -0
- package/docs/markdown.md +266 -0
- package/docs/menu.examples.md +1651 -0
- package/docs/menu.json +922 -0
- package/docs/menu.md +155 -0
- package/docs/menubar.json +292 -0
- package/docs/menubar.md +173 -0
- package/docs/message-scroller.json +401 -0
- package/docs/message-scroller.md +212 -0
- package/docs/message.json +862 -0
- package/docs/message.md +473 -0
- package/docs/multi-select.examples.md +1922 -0
- package/docs/multi-select.json +1314 -0
- package/docs/multi-select.md +213 -0
- package/docs/navigation-menu.json +529 -0
- package/docs/navigation-menu.md +329 -0
- package/docs/notification-center.json +664 -0
- package/docs/notification-center.md +372 -0
- package/docs/number-field.examples.md +1078 -0
- package/docs/number-field.json +668 -0
- package/docs/number-field.md +137 -0
- package/docs/otp-input.json +479 -0
- package/docs/otp-input.md +291 -0
- package/docs/page-header.json +574 -0
- package/docs/page-header.md +338 -0
- package/docs/page.json +332 -0
- package/docs/page.md +184 -0
- package/docs/pagination.json +434 -0
- package/docs/pagination.md +238 -0
- package/docs/popover.examples.md +1235 -0
- package/docs/popover.json +656 -0
- package/docs/popover.md +199 -0
- package/docs/progress-indicator.json +501 -0
- package/docs/progress-indicator.md +329 -0
- package/docs/prompt-composer.json +498 -0
- package/docs/prompt-composer.md +278 -0
- package/docs/prose.json +357 -0
- package/docs/prose.md +226 -0
- package/docs/radio-group.examples.md +626 -0
- package/docs/radio-group.json +541 -0
- package/docs/radio-group.md +112 -0
- package/docs/rating.json +1053 -0
- package/docs/rating.md +435 -0
- package/docs/result-state.json +376 -0
- package/docs/result-state.md +286 -0
- package/docs/saved-views.json +384 -0
- package/docs/saved-views.md +242 -0
- package/docs/scroll-area.json +120 -0
- package/docs/scroll-area.md +8 -0
- package/docs/section.json +344 -0
- package/docs/section.md +208 -0
- package/docs/segmented-control.json +429 -0
- package/docs/segmented-control.md +240 -0
- package/docs/select.examples.md +1214 -0
- package/docs/select.json +1147 -0
- package/docs/select.md +199 -0
- package/docs/side-navigation.json +632 -0
- package/docs/side-navigation.md +430 -0
- package/docs/skeleton.json +358 -0
- package/docs/skeleton.md +223 -0
- package/docs/slider.json +522 -0
- package/docs/slider.md +261 -0
- package/docs/sparkline.json +426 -0
- package/docs/sparkline.md +206 -0
- package/docs/split-button.json +361 -0
- package/docs/split-button.md +275 -0
- package/docs/splitter.json +142 -0
- package/docs/splitter.md +14 -0
- package/docs/stack.json +135 -0
- package/docs/stack.md +74 -0
- package/docs/stat-card.json +529 -0
- package/docs/stat-card.md +270 -0
- package/docs/status-indicator.json +314 -0
- package/docs/status-indicator.md +197 -0
- package/docs/stepper.json +451 -0
- package/docs/stepper.md +250 -0
- package/docs/switch.json +451 -0
- package/docs/switch.md +508 -0
- package/docs/table-of-contents.json +553 -0
- package/docs/table-of-contents.md +289 -0
- package/docs/table.examples.md +1981 -0
- package/docs/table.json +1059 -0
- package/docs/table.md +290 -0
- package/docs/tabs.examples.md +1370 -0
- package/docs/tabs.json +661 -0
- package/docs/tabs.md +211 -0
- package/docs/tag.json +813 -0
- package/docs/tag.md +241 -0
- package/docs/tags-input.json +771 -0
- package/docs/tags-input.md +361 -0
- package/docs/text-field.examples.md +821 -0
- package/docs/text-field.json +604 -0
- package/docs/text-field.md +125 -0
- package/docs/textarea.examples.md +612 -0
- package/docs/textarea.json +440 -0
- package/docs/textarea.md +98 -0
- package/docs/time-field.json +584 -0
- package/docs/time-field.md +291 -0
- package/docs/time-picker.json +679 -0
- package/docs/time-picker.md +315 -0
- package/docs/time-range-picker.examples.md +191 -0
- package/docs/time-range-picker.json +924 -0
- package/docs/time-range-picker.md +152 -0
- package/docs/timeline.json +839 -0
- package/docs/timeline.md +401 -0
- package/docs/toast.json +642 -0
- package/docs/toast.md +311 -0
- package/docs/toggle-group.json +417 -0
- package/docs/toggle-group.md +255 -0
- package/docs/toggle.json +326 -0
- package/docs/toggle.md +222 -0
- package/docs/toolbar.json +380 -0
- package/docs/toolbar.md +240 -0
- package/docs/tooltip.examples.md +664 -0
- package/docs/tooltip.json +604 -0
- package/docs/tooltip.md +146 -0
- package/docs/top-navigation.examples.md +287 -0
- package/docs/top-navigation.json +648 -0
- package/docs/top-navigation.md +138 -0
- package/docs/tour.json +759 -0
- package/docs/tour.md +337 -0
- package/docs/transfer.json +746 -0
- package/docs/transfer.md +273 -0
- package/docs/tree.json +918 -0
- package/docs/tree.md +397 -0
- package/docs/typography.json +317 -0
- package/docs/typography.md +107 -0
- package/docs/upload.examples.md +358 -0
- package/docs/upload.json +1103 -0
- package/docs/upload.md +166 -0
- package/docs/visually-hidden.json +71 -0
- package/docs/visually-hidden.md +42 -0
- package/docs/wizard.json +724 -0
- package/docs/wizard.md +295 -0
- package/fesm2022/slotted-angular-accordion.mjs +247 -0
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-bar.mjs +639 -0
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
- package/fesm2022/slotted-angular-alert.mjs +427 -0
- package/fesm2022/slotted-angular-alert.mjs.map +1 -0
- package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
- package/fesm2022/slotted-angular-attachment.mjs +595 -0
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar.mjs +330 -0
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
- package/fesm2022/slotted-angular-badge.mjs +255 -0
- package/fesm2022/slotted-angular-badge.mjs.map +1 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/slotted-angular-button-group.mjs +146 -0
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-button.mjs +692 -0
- package/fesm2022/slotted-angular-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-calendar.mjs +916 -0
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-card.mjs +225 -0
- package/fesm2022/slotted-angular-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-carousel.mjs +840 -0
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
- package/fesm2022/slotted-angular-cascader.mjs +1839 -0
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
- package/fesm2022/slotted-angular-chart.mjs +974 -0
- package/fesm2022/slotted-angular-chart.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox.mjs +468 -0
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-code-block.mjs +476 -0
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
- package/fesm2022/slotted-angular-collapsible.mjs +479 -0
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
- package/fesm2022/slotted-angular-color-picker.mjs +910 -0
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
- package/fesm2022/slotted-angular-combobox.mjs +1480 -0
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
- package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
- package/fesm2022/slotted-angular-container.mjs +105 -0
- package/fesm2022/slotted-angular-container.mjs.map +1 -0
- package/fesm2022/slotted-angular-context-menu.mjs +221 -0
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-list.mjs +1418 -0
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-field.mjs +772 -0
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-picker.mjs +690 -0
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-description-list.mjs +545 -0
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
- package/fesm2022/slotted-angular-dialog.mjs +980 -0
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
- package/fesm2022/slotted-angular-divider.mjs +76 -0
- package/fesm2022/slotted-angular-divider.mjs.map +1 -0
- package/fesm2022/slotted-angular-drawer.mjs +1397 -0
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
- package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-field-group.mjs +301 -0
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-field.mjs +928 -0
- package/fesm2022/slotted-angular-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-form.mjs +592 -0
- package/fesm2022/slotted-angular-form.mjs.map +1 -0
- package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
- package/fesm2022/slotted-angular-grid.mjs +58 -0
- package/fesm2022/slotted-angular-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-highlight.mjs +123 -0
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
- package/fesm2022/slotted-angular-hover-card.mjs +326 -0
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-i18n.mjs +75 -0
- package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
- package/fesm2022/slotted-angular-icon.mjs +232 -0
- package/fesm2022/slotted-angular-icon.mjs.map +1 -0
- package/fesm2022/slotted-angular-image.mjs +442 -0
- package/fesm2022/slotted-angular-image.mjs.map +1 -0
- package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline-message.mjs +280 -0
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline.mjs +52 -0
- package/fesm2022/slotted-angular-inline.mjs.map +1 -0
- package/fesm2022/slotted-angular-kbd.mjs +284 -0
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
- package/fesm2022/slotted-angular-link.mjs +182 -0
- package/fesm2022/slotted-angular-link.mjs.map +1 -0
- package/fesm2022/slotted-angular-list-item.mjs +367 -0
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
- package/fesm2022/slotted-angular-list.mjs +256 -0
- package/fesm2022/slotted-angular-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-listbox.mjs +1274 -0
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
- package/fesm2022/slotted-angular-markdown.mjs +914 -0
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
- package/fesm2022/slotted-angular-menu.mjs +1211 -0
- package/fesm2022/slotted-angular-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-menubar.mjs +230 -0
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
- package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
- package/fesm2022/slotted-angular-message.mjs +866 -0
- package/fesm2022/slotted-angular-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-number-field.mjs +966 -0
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-otp-input.mjs +629 -0
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-page-header.mjs +788 -0
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
- package/fesm2022/slotted-angular-page.mjs +255 -0
- package/fesm2022/slotted-angular-page.mjs.map +1 -0
- package/fesm2022/slotted-angular-pagination.mjs +562 -0
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
- package/fesm2022/slotted-angular-popover.mjs +799 -0
- package/fesm2022/slotted-angular-popover.mjs.map +1 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
- package/fesm2022/slotted-angular-prose.mjs +314 -0
- package/fesm2022/slotted-angular-prose.mjs.map +1 -0
- package/fesm2022/slotted-angular-radio-group.mjs +469 -0
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-rating.mjs +1174 -0
- package/fesm2022/slotted-angular-rating.mjs.map +1 -0
- package/fesm2022/slotted-angular-result-state.mjs +330 -0
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
- package/fesm2022/slotted-angular-saved-views.mjs +877 -0
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
- package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
- package/fesm2022/slotted-angular-section.mjs +266 -0
- package/fesm2022/slotted-angular-section.mjs.map +1 -0
- package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
- package/fesm2022/slotted-angular-select.mjs +1899 -0
- package/fesm2022/slotted-angular-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-skeleton.mjs +316 -0
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
- package/fesm2022/slotted-angular-slider.mjs +586 -0
- package/fesm2022/slotted-angular-slider.mjs.map +1 -0
- package/fesm2022/slotted-angular-sparkline.mjs +235 -0
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
- package/fesm2022/slotted-angular-split-button.mjs +331 -0
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-splitter.mjs +516 -0
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
- package/fesm2022/slotted-angular-stack.mjs +48 -0
- package/fesm2022/slotted-angular-stack.mjs.map +1 -0
- package/fesm2022/slotted-angular-stat-card.mjs +478 -0
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-stepper.mjs +536 -0
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
- package/fesm2022/slotted-angular-switch.mjs +447 -0
- package/fesm2022/slotted-angular-switch.mjs.map +1 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
- package/fesm2022/slotted-angular-table.mjs +2518 -0
- package/fesm2022/slotted-angular-table.mjs.map +1 -0
- package/fesm2022/slotted-angular-tabs.mjs +829 -0
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
- package/fesm2022/slotted-angular-tag.mjs +595 -0
- package/fesm2022/slotted-angular-tag.mjs.map +1 -0
- package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-text-field.mjs +674 -0
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-textarea.mjs +275 -0
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
- package/fesm2022/slotted-angular-theme.mjs +45 -0
- package/fesm2022/slotted-angular-theme.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-field.mjs +895 -0
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-picker.mjs +856 -0
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-timeline.mjs +928 -0
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
- package/fesm2022/slotted-angular-toast.mjs +917 -0
- package/fesm2022/slotted-angular-toast.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle.mjs +162 -0
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
- package/fesm2022/slotted-angular-toolbar.mjs +536 -0
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
- package/fesm2022/slotted-angular-tooltip.mjs +798 -0
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
- package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-tour.mjs +1330 -0
- package/fesm2022/slotted-angular-tour.mjs.map +1 -0
- package/fesm2022/slotted-angular-transfer.mjs +1406 -0
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
- package/fesm2022/slotted-angular-tree.mjs +1448 -0
- package/fesm2022/slotted-angular-tree.mjs.map +1 -0
- package/fesm2022/slotted-angular-typography.mjs +184 -0
- package/fesm2022/slotted-angular-typography.mjs.map +1 -0
- package/fesm2022/slotted-angular-upload.mjs +1523 -0
- package/fesm2022/slotted-angular-upload.mjs.map +1 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
- package/fesm2022/slotted-angular-wizard.mjs +1715 -0
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
- package/fesm2022/slotted-angular.mjs +4 -0
- package/fesm2022/slotted-angular.mjs.map +1 -0
- package/package.json +537 -3
- package/types/slotted-angular-accordion.d.ts +156 -0
- package/types/slotted-angular-accordion.d.ts.map +1 -0
- package/types/slotted-angular-action-bar.d.ts +291 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -0
- package/types/slotted-angular-action-sheet.d.ts +294 -0
- package/types/slotted-angular-action-sheet.d.ts.map +1 -0
- package/types/slotted-angular-alert.d.ts +214 -0
- package/types/slotted-angular-alert.d.ts.map +1 -0
- package/types/slotted-angular-app-shell.d.ts +549 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -0
- package/types/slotted-angular-aspect-ratio.d.ts +57 -0
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
- package/types/slotted-angular-attachment.d.ts +294 -0
- package/types/slotted-angular-attachment.d.ts.map +1 -0
- package/types/slotted-angular-avatar-group.d.ts +119 -0
- package/types/slotted-angular-avatar-group.d.ts.map +1 -0
- package/types/slotted-angular-avatar.d.ts +202 -0
- package/types/slotted-angular-avatar.d.ts.map +1 -0
- package/types/slotted-angular-badge.d.ts +166 -0
- package/types/slotted-angular-badge.d.ts.map +1 -0
- package/types/slotted-angular-breadcrumb.d.ts +251 -0
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
- package/types/slotted-angular-button-group.d.ts +89 -0
- package/types/slotted-angular-button-group.d.ts.map +1 -0
- package/types/slotted-angular-button.d.ts +390 -0
- package/types/slotted-angular-button.d.ts.map +1 -0
- package/types/slotted-angular-calendar.d.ts +280 -0
- package/types/slotted-angular-calendar.d.ts.map +1 -0
- package/types/slotted-angular-card.d.ts +140 -0
- package/types/slotted-angular-card.d.ts.map +1 -0
- package/types/slotted-angular-carousel.d.ts +288 -0
- package/types/slotted-angular-carousel.d.ts.map +1 -0
- package/types/slotted-angular-cascader.d.ts +351 -0
- package/types/slotted-angular-cascader.d.ts.map +1 -0
- package/types/slotted-angular-chart.d.ts +319 -0
- package/types/slotted-angular-chart.d.ts.map +1 -0
- package/types/slotted-angular-checkbox-group.d.ts +156 -0
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
- package/types/slotted-angular-checkbox.d.ts +197 -0
- package/types/slotted-angular-checkbox.d.ts.map +1 -0
- package/types/slotted-angular-code-block.d.ts +158 -0
- package/types/slotted-angular-code-block.d.ts.map +1 -0
- package/types/slotted-angular-collapsible.d.ts +272 -0
- package/types/slotted-angular-collapsible.d.ts.map +1 -0
- package/types/slotted-angular-color-picker.d.ts +181 -0
- package/types/slotted-angular-color-picker.d.ts.map +1 -0
- package/types/slotted-angular-column-manager.d.ts +200 -0
- package/types/slotted-angular-column-manager.d.ts.map +1 -0
- package/types/slotted-angular-combobox.d.ts +449 -0
- package/types/slotted-angular-combobox.d.ts.map +1 -0
- package/types/slotted-angular-command-palette.d.ts +256 -0
- package/types/slotted-angular-command-palette.d.ts.map +1 -0
- package/types/slotted-angular-container.d.ts +84 -0
- package/types/slotted-angular-container.d.ts.map +1 -0
- package/types/slotted-angular-context-menu.d.ts +84 -0
- package/types/slotted-angular-context-menu.d.ts.map +1 -0
- package/types/slotted-angular-currency-field.d.ts +480 -0
- package/types/slotted-angular-currency-field.d.ts.map +1 -0
- package/types/slotted-angular-dashboard-grid.d.ts +341 -0
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-grid.d.ts +1077 -0
- package/types/slotted-angular-data-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-list.d.ts +272 -0
- package/types/slotted-angular-data-list.d.ts.map +1 -0
- package/types/slotted-angular-date-field.d.ts +320 -0
- package/types/slotted-angular-date-field.d.ts.map +1 -0
- package/types/slotted-angular-date-picker.d.ts +224 -0
- package/types/slotted-angular-date-picker.d.ts.map +1 -0
- package/types/slotted-angular-date-range-picker.d.ts +310 -0
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-field.d.ts +362 -0
- package/types/slotted-angular-datetime-field.d.ts.map +1 -0
- package/types/slotted-angular-datetime-picker.d.ts +370 -0
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-description-list.d.ts +281 -0
- package/types/slotted-angular-description-list.d.ts.map +1 -0
- package/types/slotted-angular-detail-panel.d.ts +240 -0
- package/types/slotted-angular-detail-panel.d.ts.map +1 -0
- package/types/slotted-angular-dialog.d.ts +497 -0
- package/types/slotted-angular-dialog.d.ts.map +1 -0
- package/types/slotted-angular-divider.d.ts +40 -0
- package/types/slotted-angular-divider.d.ts.map +1 -0
- package/types/slotted-angular-drawer.d.ts +532 -0
- package/types/slotted-angular-drawer.d.ts.map +1 -0
- package/types/slotted-angular-entity-picker.d.ts +338 -0
- package/types/slotted-angular-entity-picker.d.ts.map +1 -0
- package/types/slotted-angular-event-calendar.d.ts +574 -0
- package/types/slotted-angular-event-calendar.d.ts.map +1 -0
- package/types/slotted-angular-field-group.d.ts +152 -0
- package/types/slotted-angular-field-group.d.ts.map +1 -0
- package/types/slotted-angular-field.d.ts +535 -0
- package/types/slotted-angular-field.d.ts.map +1 -0
- package/types/slotted-angular-filter-bar.d.ts +573 -0
- package/types/slotted-angular-filter-bar.d.ts.map +1 -0
- package/types/slotted-angular-form.d.ts +298 -0
- package/types/slotted-angular-form.d.ts.map +1 -0
- package/types/slotted-angular-fullscreen.d.ts +145 -0
- package/types/slotted-angular-fullscreen.d.ts.map +1 -0
- package/types/slotted-angular-grid.d.ts +50 -0
- package/types/slotted-angular-grid.d.ts.map +1 -0
- package/types/slotted-angular-highlight.d.ts +93 -0
- package/types/slotted-angular-highlight.d.ts.map +1 -0
- package/types/slotted-angular-hover-card.d.ts +140 -0
- package/types/slotted-angular-hover-card.d.ts.map +1 -0
- package/types/slotted-angular-i18n.d.ts +46 -0
- package/types/slotted-angular-i18n.d.ts.map +1 -0
- package/types/slotted-angular-icon.d.ts +94 -0
- package/types/slotted-angular-icon.d.ts.map +1 -0
- package/types/slotted-angular-image.d.ts +251 -0
- package/types/slotted-angular-image.d.ts.map +1 -0
- package/types/slotted-angular-import-export-center.d.ts +351 -0
- package/types/slotted-angular-import-export-center.d.ts.map +1 -0
- package/types/slotted-angular-inline-message.d.ts +195 -0
- package/types/slotted-angular-inline-message.d.ts.map +1 -0
- package/types/slotted-angular-inline.d.ts +41 -0
- package/types/slotted-angular-inline.d.ts.map +1 -0
- package/types/slotted-angular-kbd.d.ts +174 -0
- package/types/slotted-angular-kbd.d.ts.map +1 -0
- package/types/slotted-angular-link.d.ts +94 -0
- package/types/slotted-angular-link.d.ts.map +1 -0
- package/types/slotted-angular-list-item.d.ts +210 -0
- package/types/slotted-angular-list-item.d.ts.map +1 -0
- package/types/slotted-angular-list.d.ts +176 -0
- package/types/slotted-angular-list.d.ts.map +1 -0
- package/types/slotted-angular-listbox.d.ts +470 -0
- package/types/slotted-angular-listbox.d.ts.map +1 -0
- package/types/slotted-angular-loading-overlay.d.ts +219 -0
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
- package/types/slotted-angular-markdown.d.ts +172 -0
- package/types/slotted-angular-markdown.d.ts.map +1 -0
- package/types/slotted-angular-menu.d.ts +448 -0
- package/types/slotted-angular-menu.d.ts.map +1 -0
- package/types/slotted-angular-menubar.d.ts +90 -0
- package/types/slotted-angular-menubar.d.ts.map +1 -0
- package/types/slotted-angular-message-scroller.d.ts +151 -0
- package/types/slotted-angular-message-scroller.d.ts.map +1 -0
- package/types/slotted-angular-message.d.ts +348 -0
- package/types/slotted-angular-message.d.ts.map +1 -0
- package/types/slotted-angular-multi-select.d.ts +462 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -0
- package/types/slotted-angular-navigation-menu.d.ts +309 -0
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
- package/types/slotted-angular-notification-center.d.ts +318 -0
- package/types/slotted-angular-notification-center.d.ts.map +1 -0
- package/types/slotted-angular-number-field.d.ts +402 -0
- package/types/slotted-angular-number-field.d.ts.map +1 -0
- package/types/slotted-angular-otp-input.d.ts +286 -0
- package/types/slotted-angular-otp-input.d.ts.map +1 -0
- package/types/slotted-angular-page-header.d.ts +334 -0
- package/types/slotted-angular-page-header.d.ts.map +1 -0
- package/types/slotted-angular-page.d.ts +141 -0
- package/types/slotted-angular-page.d.ts.map +1 -0
- package/types/slotted-angular-pagination.d.ts +213 -0
- package/types/slotted-angular-pagination.d.ts.map +1 -0
- package/types/slotted-angular-popover.d.ts +366 -0
- package/types/slotted-angular-popover.d.ts.map +1 -0
- package/types/slotted-angular-progress-indicator.d.ts +312 -0
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
- package/types/slotted-angular-prompt-composer.d.ts +242 -0
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
- package/types/slotted-angular-prose.d.ts +171 -0
- package/types/slotted-angular-prose.d.ts.map +1 -0
- package/types/slotted-angular-radio-group.d.ts +268 -0
- package/types/slotted-angular-radio-group.d.ts.map +1 -0
- package/types/slotted-angular-rating.d.ts +374 -0
- package/types/slotted-angular-rating.d.ts.map +1 -0
- package/types/slotted-angular-result-state.d.ts +217 -0
- package/types/slotted-angular-result-state.d.ts.map +1 -0
- package/types/slotted-angular-saved-views.d.ts +198 -0
- package/types/slotted-angular-saved-views.d.ts.map +1 -0
- package/types/slotted-angular-scroll-area.d.ts +186 -0
- package/types/slotted-angular-scroll-area.d.ts.map +1 -0
- package/types/slotted-angular-section.d.ts +143 -0
- package/types/slotted-angular-section.d.ts.map +1 -0
- package/types/slotted-angular-segmented-control.d.ts +251 -0
- package/types/slotted-angular-segmented-control.d.ts.map +1 -0
- package/types/slotted-angular-select.d.ts +507 -0
- package/types/slotted-angular-select.d.ts.map +1 -0
- package/types/slotted-angular-side-navigation.d.ts +373 -0
- package/types/slotted-angular-side-navigation.d.ts.map +1 -0
- package/types/slotted-angular-skeleton.d.ts +198 -0
- package/types/slotted-angular-skeleton.d.ts.map +1 -0
- package/types/slotted-angular-slider.d.ts +216 -0
- package/types/slotted-angular-slider.d.ts.map +1 -0
- package/types/slotted-angular-sparkline.d.ts +106 -0
- package/types/slotted-angular-sparkline.d.ts.map +1 -0
- package/types/slotted-angular-split-button.d.ts +180 -0
- package/types/slotted-angular-split-button.d.ts.map +1 -0
- package/types/slotted-angular-splitter.d.ts +206 -0
- package/types/slotted-angular-splitter.d.ts.map +1 -0
- package/types/slotted-angular-stack.d.ts +38 -0
- package/types/slotted-angular-stack.d.ts.map +1 -0
- package/types/slotted-angular-stat-card.d.ts +232 -0
- package/types/slotted-angular-stat-card.d.ts.map +1 -0
- package/types/slotted-angular-status-indicator.d.ts +106 -0
- package/types/slotted-angular-status-indicator.d.ts.map +1 -0
- package/types/slotted-angular-stepper.d.ts +198 -0
- package/types/slotted-angular-stepper.d.ts.map +1 -0
- package/types/slotted-angular-switch.d.ts +243 -0
- package/types/slotted-angular-switch.d.ts.map +1 -0
- package/types/slotted-angular-table-of-contents.d.ts +210 -0
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
- package/types/slotted-angular-table.d.ts +888 -0
- package/types/slotted-angular-table.d.ts.map +1 -0
- package/types/slotted-angular-tabs.d.ts +340 -0
- package/types/slotted-angular-tabs.d.ts.map +1 -0
- package/types/slotted-angular-tag.d.ts +279 -0
- package/types/slotted-angular-tag.d.ts.map +1 -0
- package/types/slotted-angular-tags-input.d.ts +302 -0
- package/types/slotted-angular-tags-input.d.ts.map +1 -0
- package/types/slotted-angular-text-field.d.ts +334 -0
- package/types/slotted-angular-text-field.d.ts.map +1 -0
- package/types/slotted-angular-textarea.d.ts +150 -0
- package/types/slotted-angular-textarea.d.ts.map +1 -0
- package/types/slotted-angular-theme.d.ts +26 -0
- package/types/slotted-angular-theme.d.ts.map +1 -0
- package/types/slotted-angular-time-field.d.ts +300 -0
- package/types/slotted-angular-time-field.d.ts.map +1 -0
- package/types/slotted-angular-time-picker.d.ts +260 -0
- package/types/slotted-angular-time-picker.d.ts.map +1 -0
- package/types/slotted-angular-time-range-picker.d.ts +401 -0
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-timeline.d.ts +329 -0
- package/types/slotted-angular-timeline.d.ts.map +1 -0
- package/types/slotted-angular-toast.d.ts +340 -0
- package/types/slotted-angular-toast.d.ts.map +1 -0
- package/types/slotted-angular-toggle-group.d.ts +167 -0
- package/types/slotted-angular-toggle-group.d.ts.map +1 -0
- package/types/slotted-angular-toggle.d.ts +106 -0
- package/types/slotted-angular-toggle.d.ts.map +1 -0
- package/types/slotted-angular-toolbar.d.ts +252 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -0
- package/types/slotted-angular-tooltip.d.ts +388 -0
- package/types/slotted-angular-tooltip.d.ts.map +1 -0
- package/types/slotted-angular-top-navigation.d.ts +442 -0
- package/types/slotted-angular-top-navigation.d.ts.map +1 -0
- package/types/slotted-angular-tour.d.ts +440 -0
- package/types/slotted-angular-tour.d.ts.map +1 -0
- package/types/slotted-angular-transfer.d.ts +296 -0
- package/types/slotted-angular-transfer.d.ts.map +1 -0
- package/types/slotted-angular-tree.d.ts +499 -0
- package/types/slotted-angular-tree.d.ts.map +1 -0
- package/types/slotted-angular-typography.d.ts +89 -0
- package/types/slotted-angular-typography.d.ts.map +1 -0
- package/types/slotted-angular-upload.d.ts +365 -0
- package/types/slotted-angular-upload.d.ts.map +1 -0
- package/types/slotted-angular-visually-hidden.d.ts +19 -0
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
- package/types/slotted-angular-wizard.d.ts +441 -0
- package/types/slotted-angular-wizard.d.ts.map +1 -0
- package/types/slotted-angular.d.ts +3 -0
- package/types/slotted-angular.d.ts.map +1 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# attachment
|
|
3
|
+
|
|
4
|
+
`data-ui="attachment"` · File that belongs to a message or record.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { provideAttachmentDefaults, SlAttachment, SlAttachmentAction, SlAttachmentActions, SlAttachmentBody, SlAttachmentDetail, SlAttachmentFilename, SlAttachmentGroup, SlAttachmentMessage, SlAttachmentPreview, SlAttachmentProgress, SlAttachmentRemove, SlAttachmentTrigger } from '@slotted/angular/attachment';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `[slAttachment], [slAttachmentGroup], [slAttachmentPreview], [slAttachmentBody], a[slAttachmentTrigger], button[slAttachmentTrigger], [slAttachmentFilename], [slAttachmentDetail], [slAttachmentMessage], [slAttachmentProgress], [slAttachmentActions], button[slAttachmentAction], a[slAttachmentAction], button[slAttachmentRemove]` · exportAs: `slAttachment, slAttachmentGroup, slAttachmentPreview, slAttachmentBody, slAttachmentTrigger, slAttachmentFilename, slAttachmentDetail, slAttachmentMessage, slAttachmentProgress, slAttachmentActions, slAttachmentAction, slAttachmentRemove`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<li slAttachment [file]="file" removable (remove)="drop($event.file)">
|
|
20
|
+
<span slAttachmentPreview></span>
|
|
21
|
+
<div slAttachmentBody>
|
|
22
|
+
<a slAttachmentTrigger [href]="file.url"></a>
|
|
23
|
+
<p slAttachmentDetail></p>
|
|
24
|
+
</div>
|
|
25
|
+
<div slAttachmentActions><button slAttachmentRemove></button></div>
|
|
26
|
+
</li>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Anatomy
|
|
30
|
+
|
|
31
|
+
| Part | Element | Required |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| `root` | li, or div alone | yes |
|
|
34
|
+
| `group` | ul | no |
|
|
35
|
+
| `preview` | span | no |
|
|
36
|
+
| `body` | div | yes |
|
|
37
|
+
| `trigger` | a or button | no |
|
|
38
|
+
| `filename` | span | yes |
|
|
39
|
+
| `name` | span | yes |
|
|
40
|
+
| `extension` | span | no |
|
|
41
|
+
| `detail` | p | no |
|
|
42
|
+
| `message` | p | no |
|
|
43
|
+
| `progress` | div | no |
|
|
44
|
+
| `actions` | div | no |
|
|
45
|
+
| `action` | button or a | no |
|
|
46
|
+
| `remove` | button | no |
|
|
47
|
+
|
|
48
|
+
## Props
|
|
49
|
+
|
|
50
|
+
| Name | Type | Default | Applies to | Description |
|
|
51
|
+
| --- | --- | --- | --- | --- |
|
|
52
|
+
| `[file]` | `{ name: string; type?: string; size?: number }` | — | slAttachment | Required. A File already is one; a server record needs only the name |
|
|
53
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | md | slAttachment, slAttachmentGroup | The room the attachment gets. Falls back to the group, then the token |
|
|
54
|
+
| `orientation` | `'horizontal' \| 'vertical'` | horizontal | slAttachment, slAttachmentGroup | A row, or a card stood on end. Falls back to the group, then the token |
|
|
55
|
+
| `layout` | `'list' \| 'grid' \| 'strip'` | list | slAttachmentGroup | A column, a wrapping grid, or one line that scrolls |
|
|
56
|
+
| `invalid` | `boolean` | false | slAttachment | The file failed: tinted ground, doubled edge, and the message named as the trigger description |
|
|
57
|
+
| `loading` | `boolean` | false | slAttachment | aria-busy on the root and the trigger refused; remove stays operable |
|
|
58
|
+
| `disabled` | `boolean` | false | slAttachment | The trigger, every action and remove are refused |
|
|
59
|
+
| `removable` | `boolean` | false | slAttachment | Shows slAttachmentRemove and lets Backspace and Delete ask for removal |
|
|
60
|
+
| `messages` | `Partial<AttachmentMessages>` | — | slAttachment | Words laid over the language in force, key by key: the remove control name (remove, with the file name) and the tile word for a file without an extension (noExtension) |
|
|
61
|
+
| `src` | `string` | — | slAttachmentPreview | A thumbnail. Absent or failing, the kind tile is drawn |
|
|
62
|
+
| `value` | `number \| null` | null | slAttachmentProgress | Per cent, 0 to 100; null draws the indeterminate bar |
|
|
63
|
+
| `href / download` | `string` | — | a[slAttachmentTrigger], a[slAttachmentAction] | The anchor own attributes, untouched |
|
|
64
|
+
| `provideAttachmentDefaults` | `{ size, orientation, layout }` | — | an injector | Sets the three once; the group and the attachment still win |
|
|
65
|
+
| `exportAs` | `slAttachment and every part` | — | template reference | #attachment="slAttachment" reaches kind(), blocked() and request() |
|
|
66
|
+
| `projected content` | `ng-content` | — | trigger, filename, detail, remove | Replaces the name, the size or the cross the family draws by default |
|
|
67
|
+
| `static attributes` | `id, title, dir, type, aria-label, aria-describedby` | — | every part | Read with HostAttributeToken and kept; aria-describedby is joined, not replaced |
|
|
68
|
+
|
|
69
|
+
## Events
|
|
70
|
+
|
|
71
|
+
| Name | Payload | When |
|
|
72
|
+
| --- | --- | --- |
|
|
73
|
+
| `(remove)` | `{ reason: 'remove' \| 'keyboard', file: AttachmentFile, source: Event }` | The remove control was pressed, or Backspace or Delete arrived inside a removable attachment. A request: the list is the page’s, and nothing leaves until the page removes it. Not emitted while disabled, nor for a repeated key. |
|
|
74
|
+
|
|
75
|
+
## Axes and defaults
|
|
76
|
+
|
|
77
|
+
| Axis | Values | Default |
|
|
78
|
+
| --- | --- | --- |
|
|
79
|
+
| `size` | `sm`, `md`, `lg` | `md` |
|
|
80
|
+
| `orientation` | `horizontal`, `vertical` | `horizontal` |
|
|
81
|
+
| `layout` | `list`, `grid`, `strip` | `list` |
|
|
82
|
+
|
|
83
|
+
## Rules
|
|
84
|
+
|
|
85
|
+
- The set is a native ul and each attachment an li, so a reader hears the count of files; an attachment alone goes on a div, because a list item outside a list is an error.
|
|
86
|
+
- The trigger is a real a or button whose accessible name is the file name and whose description is the detail and the message, so a failed file is heard as its name and then its reason.
|
|
87
|
+
- The trigger is stretched over the attachment by a transparent pseudo-element rather than wrapping it, because interactive content may not nest inside a or button; the actions are its siblings and sit above it.
|
|
88
|
+
- ARIA 1.2 deprecates aria-invalid and aria-disabled on listitem, so the three states are painted from data attributes on the root and carried by the controls: disabled on a button, aria-disabled on a link that keeps its destination.
|
|
89
|
+
- A refused link is refused by slAttachment in the capture phase, so the page’s own (click) on the trigger never runs while the file is loading or unavailable.
|
|
90
|
+
- Backspace and Delete ask to remove a removable attachment from wherever focus is inside it; a held key does not repeat the request, and a field inside the attachment keeps its editing keys.
|
|
91
|
+
- When an attachment leaves, focus goes to the control that took its place, then to the last one, then to the list, which holds tabindex -1 for that purpose.
|
|
92
|
+
- The progress bar is named by the file, so a reader hears the file and the percentage together, and without a value it is announced as indeterminate.
|
|
93
|
+
|
|
94
|
+
## Tokens
|
|
95
|
+
|
|
96
|
+
`--slotted-attachment-action-radius`, `--slotted-attachment-action-size`, `--slotted-attachment-action-state-layer-active`, `--slotted-attachment-action-state-layer-hover`, `--slotted-attachment-background`, `--slotted-attachment-border-color`, `--slotted-attachment-border-width`, `--slotted-attachment-card-actions-opacity`, `--slotted-attachment-card-preview-radius`, `--slotted-attachment-card-size`, `--slotted-attachment-font-family`, `--slotted-attachment-grid-min`, `--slotted-attachment-group-gap`, `--slotted-attachment-icon-size-min`, `--slotted-attachment-line-gap`, `--slotted-attachment-name-font-weight`, `--slotted-attachment-padding-lg`, `--slotted-attachment-padding-md`, `--slotted-attachment-padding-sm`, `--slotted-attachment-preview-radius`, `--slotted-attachment-preview-size`, `--slotted-attachment-radius`, `--slotted-attachment-state-layer-active`, `--slotted-attachment-state-layer-hover`, `--slotted-attachment-strip-item-size`, `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-foreground`, `--slotted-duration-instant`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-radius-lg`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-surface`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-danger-border`, `--slotted-tone-danger-surface`, `--slotted-tone-danger-text`, `--slotted-upload-kind-archive`, `--slotted-upload-kind-audio`, `--slotted-upload-kind-document`, `--slotted-upload-kind-foreground`, `--slotted-upload-kind-image`, `--slotted-upload-kind-other`, `--slotted-upload-kind-pdf`, `--slotted-upload-kind-presentation`, `--slotted-upload-kind-spreadsheet`, `--slotted-upload-kind-video`
|
|
97
|
+
|
|
98
|
+
## Examples
|
|
99
|
+
|
|
100
|
+
### Every part, and a file with almost none
|
|
101
|
+
|
|
102
|
+
An absent part leaves no column behind: without a tile or actions the name takes the width they held. A file that cannot be opened writes its name without a trigger.
|
|
103
|
+
|
|
104
|
+
Excerpt — not a complete module
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
<div slAttachment [file]="{ name: 'telematics-export' }">
|
|
108
|
+
<div slAttachmentBody>
|
|
109
|
+
<span slAttachmentFilename></span>
|
|
110
|
+
<p slAttachmentDetail>No preview available</p>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Three sizes, one tile rule
|
|
116
|
+
|
|
117
|
+
The tile is the height of the two lines beside it — 40 pixels at md — so its edges meet the name’s cap and the detail’s foot. Density shrinks all three with the fields around them.
|
|
118
|
+
|
|
119
|
+
Excerpt — not a complete module
|
|
120
|
+
|
|
121
|
+
```html
|
|
122
|
+
<div slAttachment [file]="file" size="sm"></div>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### A row, or a card stood on end
|
|
126
|
+
|
|
127
|
+
A card is three tiles wide — 120 pixels at md — with the picture square inside it. The actions move onto the picture on a plate of their own, and a card with no picture writes its extension under the mark.
|
|
128
|
+
|
|
129
|
+
Excerpt — not a complete module
|
|
130
|
+
|
|
131
|
+
```html
|
|
132
|
+
<li slAttachment [file]="photo" orientation="vertical" removable (remove)="drop(photo)">
|
|
133
|
+
<span slAttachmentPreview [src]="photo.thumbnail"></span>
|
|
134
|
+
<div slAttachmentBody>
|
|
135
|
+
<button slAttachmentTrigger (click)="openViewer(photo)"></button>
|
|
136
|
+
<p slAttachmentDetail></p>
|
|
137
|
+
</div>
|
|
138
|
+
<div slAttachmentActions><button slAttachmentRemove></button></div>
|
|
139
|
+
</li>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### A column, a grid, a scrolling tray
|
|
143
|
+
|
|
144
|
+
The group is a native list. Grid rows share the width and never go narrower than a name; cards keep their own width so each is a whole pixel. The strip scrolls on one line and snaps to each attachment, and its ring never meets the clip.
|
|
145
|
+
|
|
146
|
+
Excerpt — not a complete module
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<ul slAttachmentGroup aria-label="Attached to your reply" layout="strip" size="sm">
|
|
150
|
+
@for (file of files(); track file.name) {
|
|
151
|
+
<li slAttachment [file]="file" removable (remove)="drop(file)">
|
|
152
|
+
<span slAttachmentPreview></span>
|
|
153
|
+
<div slAttachmentBody>
|
|
154
|
+
<span slAttachmentFilename></span>
|
|
155
|
+
<p slAttachmentDetail></p>
|
|
156
|
+
</div>
|
|
157
|
+
<div slAttachmentActions><button slAttachmentRemove></button></div>
|
|
158
|
+
</li>
|
|
159
|
+
}
|
|
160
|
+
</ul>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Nine kinds, read before the name
|
|
164
|
+
|
|
165
|
+
The kind comes from the media type first and the extension second, and paints the tile from the scale upload uses, so a PDF is the same red in a reply as in the upload it came from. A thumbnail replaces the tile, and falls back to it if it fails.
|
|
166
|
+
|
|
167
|
+
Excerpt — not a complete module
|
|
168
|
+
|
|
169
|
+
```html
|
|
170
|
+
<div slAttachment [file]="{ name: 'repair-estimate.xlsx', size: 86000 }">
|
|
171
|
+
<span slAttachmentPreview></span>
|
|
172
|
+
<div slAttachmentBody>
|
|
173
|
+
<span slAttachmentFilename></span>
|
|
174
|
+
<p slAttachmentDetail></p>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### A link, or a button that opens a viewer
|
|
180
|
+
|
|
181
|
+
On an a the trigger is a real anchor, so href, download and a modified click are the browser’s; on a button it is a real button for a viewer the page opens. Either one is the whole attachment’s target, and the ring goes round the attachment.
|
|
182
|
+
|
|
183
|
+
Excerpt — not a complete module
|
|
184
|
+
|
|
185
|
+
```html
|
|
186
|
+
<a slAttachmentTrigger [href]="file.url"></a>
|
|
187
|
+
<button slAttachmentTrigger (click)="openViewer(file)"></button>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Actions beside the file, never inside it
|
|
191
|
+
|
|
192
|
+
slAttachmentAction is an inner control on the button or the a the page wrote: no frame at rest, a state layer on hover and a deeper one on press. The remove control is hidden unless the attachment is removable.
|
|
193
|
+
|
|
194
|
+
Excerpt — not a complete module
|
|
195
|
+
|
|
196
|
+
```html
|
|
197
|
+
<div slAttachmentActions>
|
|
198
|
+
<a slAttachmentAction [href]="file.url" download [attr.aria-label]="'Download ' + file.name">
|
|
199
|
+
<span slIcon><svg slGlyph name="external"></svg></span>
|
|
200
|
+
</a>
|
|
201
|
+
<button slAttachmentRemove></button>
|
|
202
|
+
</div>
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Failed, sending, waiting, unavailable
|
|
206
|
+
|
|
207
|
+
A failed file tints its ground, doubles its edge and says why in a sentence the trigger names as its description; its tile keeps the kind. A sending file carries its bar as its bottom edge and refuses its trigger but not remove.
|
|
208
|
+
|
|
209
|
+
Excerpt — not a complete module
|
|
210
|
+
|
|
211
|
+
```html
|
|
212
|
+
<li slAttachment [file]="file" [loading]="percent() < 100" removable (remove)="cancel()">
|
|
213
|
+
<span slAttachmentPreview></span>
|
|
214
|
+
<div slAttachmentBody>
|
|
215
|
+
<button slAttachmentTrigger></button>
|
|
216
|
+
<p slAttachmentDetail>Uploading · {{ percent() }}%</p>
|
|
217
|
+
</div>
|
|
218
|
+
<div slAttachmentProgress [value]="percent()"></div>
|
|
219
|
+
<div slAttachmentActions><button slAttachmentRemove></button></div>
|
|
220
|
+
</li>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Names the family did not choose
|
|
224
|
+
|
|
225
|
+
The stem shrinks and the extension stays, so a sixty-character report still ends in .pdf; the whole name stays in the title. A name in Arabic keeps its own direction, and a name with no dot is one run.
|
|
226
|
+
|
|
227
|
+
Excerpt — not a complete module
|
|
228
|
+
|
|
229
|
+
```html
|
|
230
|
+
<div slAttachment [file]="report"></div>
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### In a claim thread
|
|
234
|
+
|
|
235
|
+
A message carries its files the way the product would: the group under the text, links that download, one file still sending. provideAttachmentDefaults sets the size once for the application; the words and the locale come from provideSlotted.
|
|
236
|
+
|
|
237
|
+
Excerpt — not a complete module
|
|
238
|
+
|
|
239
|
+
```ts
|
|
240
|
+
bootstrapApplication(App, {
|
|
241
|
+
providers: [provideAttachmentDefaults({ size: 'sm' })],
|
|
242
|
+
});
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Tab reaches every control; Delete asks
|
|
246
|
+
|
|
247
|
+
Tab reaches the trigger, each action and remove. Backspace or Delete anywhere in a removable attachment asks to remove it, a held key is ignored, and focus moves to the attachment that took its place, then the last one, then the list.
|
|
248
|
+
|
|
249
|
+
Excerpt — not a complete module
|
|
250
|
+
|
|
251
|
+
```html
|
|
252
|
+
<li slAttachment [file]="file" removable (remove)="drop($event.file, $event.reason)"></li>
|
|
253
|
+
```
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "avatar-group",
|
|
3
|
+
"ui": "avatar-group",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Data display",
|
|
7
|
+
"summary": "Overlapping avatars with an overflow count."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"layout": [
|
|
11
|
+
"stack",
|
|
12
|
+
"spread"
|
|
13
|
+
],
|
|
14
|
+
"size": [
|
|
15
|
+
"xs",
|
|
16
|
+
"sm",
|
|
17
|
+
"md",
|
|
18
|
+
"lg",
|
|
19
|
+
"xl"
|
|
20
|
+
],
|
|
21
|
+
"shape": [
|
|
22
|
+
"circle",
|
|
23
|
+
"square"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"members": {
|
|
27
|
+
"avatarGroup": {
|
|
28
|
+
"nativeElement": "ul",
|
|
29
|
+
"defaults": {
|
|
30
|
+
"layout": "stack",
|
|
31
|
+
"size": "md",
|
|
32
|
+
"shape": "circle",
|
|
33
|
+
"max": 5
|
|
34
|
+
},
|
|
35
|
+
"capabilities": [
|
|
36
|
+
"appearance",
|
|
37
|
+
"size",
|
|
38
|
+
"shape"
|
|
39
|
+
],
|
|
40
|
+
"states": [
|
|
41
|
+
"default",
|
|
42
|
+
"hover",
|
|
43
|
+
"focus-visible"
|
|
44
|
+
],
|
|
45
|
+
"parts": [
|
|
46
|
+
"root",
|
|
47
|
+
"item",
|
|
48
|
+
"overflow"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"docs": {
|
|
53
|
+
"avatarGroup": {
|
|
54
|
+
"imports": null,
|
|
55
|
+
"anatomy": [],
|
|
56
|
+
"api": [
|
|
57
|
+
{
|
|
58
|
+
"name": "layout",
|
|
59
|
+
"type": "'stack' | 'spread'",
|
|
60
|
+
"defaultValue": "stack",
|
|
61
|
+
"appliesTo": "slAvatarGroup",
|
|
62
|
+
"description": "stack overlaps the members; spread lays them apart and wraps"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "max",
|
|
66
|
+
"type": "number | false",
|
|
67
|
+
"defaultValue": "5",
|
|
68
|
+
"appliesTo": "slAvatarGroup",
|
|
69
|
+
"description": "The largest number of discs the group draws, the summary included. false shows every member"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "total",
|
|
73
|
+
"type": "number",
|
|
74
|
+
"defaultValue": "—",
|
|
75
|
+
"appliesTo": "slAvatarGroup",
|
|
76
|
+
"description": "How many members there really are, when the page renders fewer than it has"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "overflowLabel",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"defaultValue": "—",
|
|
82
|
+
"appliesTo": "slAvatarGroup",
|
|
83
|
+
"description": "What the summary is called. Defaults to the hidden members’ names, joined for the locale"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "size",
|
|
87
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
88
|
+
"defaultValue": "md",
|
|
89
|
+
"appliesTo": "slAvatarGroup",
|
|
90
|
+
"description": "Provided to every member, and the length the overlap is measured against"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "shape",
|
|
94
|
+
"type": "'circle' | 'square'",
|
|
95
|
+
"defaultValue": "circle",
|
|
96
|
+
"appliesTo": "slAvatarGroup",
|
|
97
|
+
"description": "Provided to every member. An avatar that states its own still wins"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "variant",
|
|
101
|
+
"type": "'soft' | 'solid'",
|
|
102
|
+
"defaultValue": "—",
|
|
103
|
+
"appliesTo": "slAvatarGroup",
|
|
104
|
+
"description": "Provided to every member. tone is never provided: it is the member’s own identity"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "locale",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"defaultValue": "—",
|
|
110
|
+
"appliesTo": "slAvatarGroup",
|
|
111
|
+
"description": "BCP 47, for the digits of the summary and for joining the hidden names"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "slAvatarGroupItem",
|
|
115
|
+
"type": "directive",
|
|
116
|
+
"defaultValue": "—",
|
|
117
|
+
"appliesTo": "li",
|
|
118
|
+
"description": "One member. Hidden when it falls past the limit, and its name is what the summary is called"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "aria-label",
|
|
122
|
+
"type": "string",
|
|
123
|
+
"defaultValue": "—",
|
|
124
|
+
"appliesTo": "slAvatarGroup",
|
|
125
|
+
"description": "What the list is called. Native, because the element already accepts it"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "exportAs",
|
|
129
|
+
"type": "'slAvatarGroup'",
|
|
130
|
+
"defaultValue": "—",
|
|
131
|
+
"appliesTo": "slAvatarGroup",
|
|
132
|
+
"description": "Reaches the component instance from the template"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"composition": [],
|
|
136
|
+
"events": [],
|
|
137
|
+
"accessibility": [
|
|
138
|
+
"There is no avatar-group pattern in the WAI-ARIA Authoring Practices. The component is written on a real ul whose members are real li, so assistive technology announces a list of N without the family inventing a role.",
|
|
139
|
+
"There is no label input. The element already accepts aria-label and aria-labelledby, and a second way to name one thing is a second thing to get wrong — the decision button-group took for the same question.",
|
|
140
|
+
"The summary’s accessible name is the hidden members’ names, read from the avatar inside each item and joined with Intl.ListFormat for the locale. Atlassian’s default there is the English string “N more people”; MUI, Ant, Fluent, Chakra and HeroUI leave “+3” as the whole announcement.",
|
|
141
|
+
"A member past the limit carries hidden, which takes it out of the layout and out of the accessibility tree in one attribute. Its name is not lost: the group reads it and puts it on the summary.",
|
|
142
|
+
"A group told it stands for more members than it renders knows only the names it holds, so it names none of them rather than a third of them. Supply overflowLabel in that case.",
|
|
143
|
+
"The group has no keyboard model of its own, because it is a list rather than a composite widget. Members that are links or buttons are ordinary tab stops in document order.",
|
|
144
|
+
"In a stack each member covers the trailing edge of the one before it, so the member under the pointer or the caret is raised. The raise is instant, and a disabled member does not rise.",
|
|
145
|
+
"The summary is not interactive here. Making it open the hidden members is a disclosure, which belongs to the popover and menu families.",
|
|
146
|
+
"An empty group takes no room at all, so a row built from a permission filter does not leave a gap nobody can see in the markup."
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"tokens": [
|
|
151
|
+
"--slotted-avatar-group-overlap",
|
|
152
|
+
"--slotted-avatar-group-raise-lift",
|
|
153
|
+
"--slotted-avatar-size",
|
|
154
|
+
"--slotted-avatar-size-lg",
|
|
155
|
+
"--slotted-avatar-size-md",
|
|
156
|
+
"--slotted-avatar-size-sm",
|
|
157
|
+
"--slotted-avatar-size-xl",
|
|
158
|
+
"--slotted-avatar-size-xs",
|
|
159
|
+
"--slotted-border-width-thick",
|
|
160
|
+
"--slotted-easing-enter",
|
|
161
|
+
"--slotted-easing-exit",
|
|
162
|
+
"--slotted-shadow-sm",
|
|
163
|
+
"--slotted-space-2",
|
|
164
|
+
"--slotted-space-4"
|
|
165
|
+
],
|
|
166
|
+
"examples": [
|
|
167
|
+
{
|
|
168
|
+
"id": "avatar-group-angular-basic",
|
|
169
|
+
"title": "A list of faces, and a summary of the rest",
|
|
170
|
+
"note": null,
|
|
171
|
+
"language": "html",
|
|
172
|
+
"source": "<ul slAvatarGroup aria-label=\"Reviewers\">\n @for (person of reviewers(); track person.id) {\n <li slAvatarGroupItem>\n <span slAvatar [name]=\"person.name\" [src]=\"person.photograph\"></span>\n </li>\n }\n</ul>\n",
|
|
173
|
+
"verdict": "excerpt"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": "avatar-group-angular-total",
|
|
177
|
+
"title": "Three of forty, from a paged endpoint",
|
|
178
|
+
"note": null,
|
|
179
|
+
"language": "html",
|
|
180
|
+
"source": "<ul\n slAvatarGroup\n aria-label=\"Attendees\"\n [total]=\"event().attendeeCount\"\n [overflowLabel]=\"event().attendeeCount - 3 + ' more attendees'\"\n>\n @for (person of firstAttendees(); track person.id) {\n <li slAvatarGroupItem>\n <span slAvatar [name]=\"person.name\" [src]=\"person.photograph\"></span>\n </li>\n }\n</ul>\n",
|
|
181
|
+
"verdict": "excerpt"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "avatar-group-angular-spread",
|
|
185
|
+
"title": "Laid apart rather than stacked",
|
|
186
|
+
"note": null,
|
|
187
|
+
"language": "html",
|
|
188
|
+
"source": "<ul slAvatarGroup aria-label=\"Team\" layout=\"spread\" size=\"lg\" [max]=\"false\">\n @for (person of team(); track person.id) {\n <li slAvatarGroupItem>\n <span slAvatar [name]=\"person.name\" [src]=\"person.photograph\"></span>\n </li>\n }\n</ul>\n",
|
|
189
|
+
"verdict": "excerpt"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "avatar-group-angular-links",
|
|
193
|
+
"title": "Members that open a profile",
|
|
194
|
+
"note": null,
|
|
195
|
+
"language": "html",
|
|
196
|
+
"source": "<ul slAvatarGroup aria-label=\"Assignees\" size=\"sm\">\n @for (person of assignees(); track person.id) {\n <li slAvatarGroupItem>\n <a\n slAvatar\n [name]=\"person.name\"\n [src]=\"person.photograph\"\n [routerLink]=\"['/people', person.id]\"\n ></a>\n </li>\n }\n</ul>\n",
|
|
197
|
+
"verdict": "excerpt"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"id": "avatar-group-angular-ring",
|
|
201
|
+
"title": "A group on a coloured row",
|
|
202
|
+
"note": null,
|
|
203
|
+
"language": "html",
|
|
204
|
+
"source": "<ul\n slAvatarGroup\n aria-label=\"Reviewers\"\n style=\"--slotted-avatar-ring-color: var(--slotted-surface-sunken)\"\n>\n @for (person of reviewers(); track person.id) {\n <li slAvatarGroupItem>\n <span slAvatar [name]=\"person.name\" [src]=\"person.photograph\"></span>\n </li>\n }\n</ul>\n",
|
|
205
|
+
"verdict": "excerpt"
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# avatar-group
|
|
3
|
+
|
|
4
|
+
`data-ui="avatar-group"` · Overlapping avatars with an overflow count.
|
|
5
|
+
|
|
6
|
+
## Minimal example
|
|
7
|
+
|
|
8
|
+
Excerpt — not a complete module
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<ul slAvatarGroup aria-label="Reviewers">
|
|
12
|
+
@for (person of reviewers(); track person.id) {
|
|
13
|
+
<li slAvatarGroupItem>
|
|
14
|
+
<span slAvatar [name]="person.name" [src]="person.photograph"></span>
|
|
15
|
+
</li>
|
|
16
|
+
}
|
|
17
|
+
</ul>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Props
|
|
21
|
+
|
|
22
|
+
| Name | Type | Default | Applies to | Description |
|
|
23
|
+
| --- | --- | --- | --- | --- |
|
|
24
|
+
| `layout` | `'stack' \| 'spread'` | stack | slAvatarGroup | stack overlaps the members; spread lays them apart and wraps |
|
|
25
|
+
| `max` | `number \| false` | 5 | slAvatarGroup | The largest number of discs the group draws, the summary included. false shows every member |
|
|
26
|
+
| `total` | `number` | — | slAvatarGroup | How many members there really are, when the page renders fewer than it has |
|
|
27
|
+
| `overflowLabel` | `string` | — | slAvatarGroup | What the summary is called. Defaults to the hidden members’ names, joined for the locale |
|
|
28
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | md | slAvatarGroup | Provided to every member, and the length the overlap is measured against |
|
|
29
|
+
| `shape` | `'circle' \| 'square'` | circle | slAvatarGroup | Provided to every member. An avatar that states its own still wins |
|
|
30
|
+
| `variant` | `'soft' \| 'solid'` | — | slAvatarGroup | Provided to every member. tone is never provided: it is the member’s own identity |
|
|
31
|
+
| `locale` | `string` | — | slAvatarGroup | BCP 47, for the digits of the summary and for joining the hidden names |
|
|
32
|
+
| `slAvatarGroupItem` | `directive` | — | li | One member. Hidden when it falls past the limit, and its name is what the summary is called |
|
|
33
|
+
| `aria-label` | `string` | — | slAvatarGroup | What the list is called. Native, because the element already accepts it |
|
|
34
|
+
| `exportAs` | `'slAvatarGroup'` | — | slAvatarGroup | Reaches the component instance from the template |
|
|
35
|
+
|
|
36
|
+
## Axes and defaults
|
|
37
|
+
|
|
38
|
+
| Axis | Values | Default |
|
|
39
|
+
| --- | --- | --- |
|
|
40
|
+
| `layout` | `stack`, `spread` | `stack` |
|
|
41
|
+
| `size` | `xs`, `sm`, `md`, `lg`, `xl` | `md` |
|
|
42
|
+
| `shape` | `circle`, `square` | `circle` |
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
|
|
46
|
+
- There is no avatar-group pattern in the WAI-ARIA Authoring Practices. The component is written on a real ul whose members are real li, so assistive technology announces a list of N without the family inventing a role.
|
|
47
|
+
- There is no label input. The element already accepts aria-label and aria-labelledby, and a second way to name one thing is a second thing to get wrong — the decision button-group took for the same question.
|
|
48
|
+
- The summary’s accessible name is the hidden members’ names, read from the avatar inside each item and joined with Intl.ListFormat for the locale. Atlassian’s default there is the English string “N more people”; MUI, Ant, Fluent, Chakra and HeroUI leave “+3” as the whole announcement.
|
|
49
|
+
- A member past the limit carries hidden, which takes it out of the layout and out of the accessibility tree in one attribute. Its name is not lost: the group reads it and puts it on the summary.
|
|
50
|
+
- A group told it stands for more members than it renders knows only the names it holds, so it names none of them rather than a third of them. Supply overflowLabel in that case.
|
|
51
|
+
- The group has no keyboard model of its own, because it is a list rather than a composite widget. Members that are links or buttons are ordinary tab stops in document order.
|
|
52
|
+
- In a stack each member covers the trailing edge of the one before it, so the member under the pointer or the caret is raised. The raise is instant, and a disabled member does not rise.
|
|
53
|
+
- The summary is not interactive here. Making it open the hidden members is a disclosure, which belongs to the popover and menu families.
|
|
54
|
+
- An empty group takes no room at all, so a row built from a permission filter does not leave a gap nobody can see in the markup.
|
|
55
|
+
|
|
56
|
+
## Tokens
|
|
57
|
+
|
|
58
|
+
`--slotted-avatar-group-overlap`, `--slotted-avatar-group-raise-lift`, `--slotted-avatar-size`, `--slotted-avatar-size-lg`, `--slotted-avatar-size-md`, `--slotted-avatar-size-sm`, `--slotted-avatar-size-xl`, `--slotted-avatar-size-xs`, `--slotted-border-width-thick`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-shadow-sm`, `--slotted-space-2`, `--slotted-space-4`
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
### Three of forty, from a paged endpoint
|
|
63
|
+
|
|
64
|
+
Excerpt — not a complete module
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<ul
|
|
68
|
+
slAvatarGroup
|
|
69
|
+
aria-label="Attendees"
|
|
70
|
+
[total]="event().attendeeCount"
|
|
71
|
+
[overflowLabel]="event().attendeeCount - 3 + ' more attendees'"
|
|
72
|
+
>
|
|
73
|
+
@for (person of firstAttendees(); track person.id) {
|
|
74
|
+
<li slAvatarGroupItem>
|
|
75
|
+
<span slAvatar [name]="person.name" [src]="person.photograph"></span>
|
|
76
|
+
</li>
|
|
77
|
+
}
|
|
78
|
+
</ul>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Laid apart rather than stacked
|
|
82
|
+
|
|
83
|
+
Excerpt — not a complete module
|
|
84
|
+
|
|
85
|
+
```html
|
|
86
|
+
<ul slAvatarGroup aria-label="Team" layout="spread" size="lg" [max]="false">
|
|
87
|
+
@for (person of team(); track person.id) {
|
|
88
|
+
<li slAvatarGroupItem>
|
|
89
|
+
<span slAvatar [name]="person.name" [src]="person.photograph"></span>
|
|
90
|
+
</li>
|
|
91
|
+
}
|
|
92
|
+
</ul>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Members that open a profile
|
|
96
|
+
|
|
97
|
+
Excerpt — not a complete module
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<ul slAvatarGroup aria-label="Assignees" size="sm">
|
|
101
|
+
@for (person of assignees(); track person.id) {
|
|
102
|
+
<li slAvatarGroupItem>
|
|
103
|
+
<a
|
|
104
|
+
slAvatar
|
|
105
|
+
[name]="person.name"
|
|
106
|
+
[src]="person.photograph"
|
|
107
|
+
[routerLink]="['/people', person.id]"
|
|
108
|
+
></a>
|
|
109
|
+
</li>
|
|
110
|
+
}
|
|
111
|
+
</ul>
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### A group on a coloured row
|
|
115
|
+
|
|
116
|
+
Excerpt — not a complete module
|
|
117
|
+
|
|
118
|
+
```html
|
|
119
|
+
<ul
|
|
120
|
+
slAvatarGroup
|
|
121
|
+
aria-label="Reviewers"
|
|
122
|
+
style="--slotted-avatar-ring-color: var(--slotted-surface-sunken)"
|
|
123
|
+
>
|
|
124
|
+
@for (person of reviewers(); track person.id) {
|
|
125
|
+
<li slAvatarGroupItem>
|
|
126
|
+
<span slAvatar [name]="person.name" [src]="person.photograph"></span>
|
|
127
|
+
</li>
|
|
128
|
+
}
|
|
129
|
+
</ul>
|
|
130
|
+
```
|