@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,358 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "skeleton",
|
|
3
|
+
"ui": "skeleton",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Feedback",
|
|
7
|
+
"summary": "Placeholder shapes while content loads."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"shape": [
|
|
11
|
+
"text",
|
|
12
|
+
"block",
|
|
13
|
+
"circle",
|
|
14
|
+
"square"
|
|
15
|
+
],
|
|
16
|
+
"size": [
|
|
17
|
+
"xs",
|
|
18
|
+
"sm",
|
|
19
|
+
"md",
|
|
20
|
+
"lg",
|
|
21
|
+
"xl"
|
|
22
|
+
],
|
|
23
|
+
"animation": [
|
|
24
|
+
"shimmer",
|
|
25
|
+
"pulse",
|
|
26
|
+
"none"
|
|
27
|
+
],
|
|
28
|
+
"live": [
|
|
29
|
+
"polite",
|
|
30
|
+
"off"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"members": {
|
|
34
|
+
"skeleton": {
|
|
35
|
+
"nativeElement": "span",
|
|
36
|
+
"defaults": {
|
|
37
|
+
"shape": "text",
|
|
38
|
+
"size": "md",
|
|
39
|
+
"animation": "shimmer",
|
|
40
|
+
"loading": true,
|
|
41
|
+
"lines": 3,
|
|
42
|
+
"lastLineSize": "62%",
|
|
43
|
+
"live": "polite",
|
|
44
|
+
"delay": 0,
|
|
45
|
+
"minDuration": 0
|
|
46
|
+
},
|
|
47
|
+
"capabilities": [
|
|
48
|
+
"appearance",
|
|
49
|
+
"shape",
|
|
50
|
+
"size",
|
|
51
|
+
"loading",
|
|
52
|
+
"live"
|
|
53
|
+
],
|
|
54
|
+
"states": [
|
|
55
|
+
"default",
|
|
56
|
+
"loading"
|
|
57
|
+
],
|
|
58
|
+
"parts": [
|
|
59
|
+
"root",
|
|
60
|
+
"text",
|
|
61
|
+
"line",
|
|
62
|
+
"region",
|
|
63
|
+
"announcement"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"docs": {
|
|
68
|
+
"skeleton": {
|
|
69
|
+
"imports": {
|
|
70
|
+
"source": "import { SlSkeleton, SlSkeletonText, SlSkeletonRegion, provideSkeletonDefaults } from '@slotted/angular/skeleton';",
|
|
71
|
+
"selector": "[slSkeleton] · [slSkeletonText] · [slSkeletonRegion]",
|
|
72
|
+
"exportAs": "slSkeleton · slSkeletonText · slSkeletonRegion"
|
|
73
|
+
},
|
|
74
|
+
"anatomy": [
|
|
75
|
+
{
|
|
76
|
+
"part": "root",
|
|
77
|
+
"element": "span",
|
|
78
|
+
"required": true,
|
|
79
|
+
"purpose": "One placeholder box, on whatever element you put slSkeleton on — the selector is a bare attribute, so a word’s placeholder lives in a span and a card’s lives in the card. Empty it draws the geometry shape and size describe; with projected content it takes that content’s geometry and covers it."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"part": "text",
|
|
83
|
+
"element": "div",
|
|
84
|
+
"required": true,
|
|
85
|
+
"purpose": "The rows of a paragraph, on your own element, from slSkeletonText. A grid whose tracks are exactly one line box, so the rows occupy the lines the words will."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"part": "line",
|
|
89
|
+
"element": "span",
|
|
90
|
+
"required": true,
|
|
91
|
+
"purpose": "One row inside text, repeated lines times by the component’s own template. The last of several is drawn short; a lone row is not."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"part": "region",
|
|
95
|
+
"element": "div",
|
|
96
|
+
"required": true,
|
|
97
|
+
"purpose": "The loading fact for a subtree, on your own element — a section, a tbody, a list item — from slSkeletonRegion. Carries aria-busy, the timing, and the animation phase every placeholder inside it reads through DI."
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"part": "announcement",
|
|
101
|
+
"element": "span",
|
|
102
|
+
"required": true,
|
|
103
|
+
"purpose": "The one visually-hidden role=\"status\" per region, projected before the consumer’s own content. Holds the label while waiting and is emptied afterwards, so a load announces once."
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
"api": [
|
|
107
|
+
{
|
|
108
|
+
"name": "shape",
|
|
109
|
+
"type": "'text' | 'block' | 'circle' | 'square'",
|
|
110
|
+
"defaultValue": "text",
|
|
111
|
+
"appliesTo": "SlSkeleton",
|
|
112
|
+
"description": "What the placeholder stands for: a line of type, a block of content, or an avatar"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "size",
|
|
116
|
+
"type": "'xs' | 'sm' | 'md' | 'lg' | 'xl'",
|
|
117
|
+
"defaultValue": "md",
|
|
118
|
+
"appliesTo": "SlSkeleton",
|
|
119
|
+
"description": "The avatar scale. Means nothing for text, which takes its height from the type, or for block"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "inlineSize, blockSize",
|
|
123
|
+
"type": "string",
|
|
124
|
+
"defaultValue": "—",
|
|
125
|
+
"appliesTo": "SlSkeleton, SlSkeletonText",
|
|
126
|
+
"description": "The reserved geometry, in logical axes, written straight onto the family’s own custom properties. Ignored where content is covered and measured instead"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "loading",
|
|
130
|
+
"type": "boolean",
|
|
131
|
+
"defaultValue": "true",
|
|
132
|
+
"appliesTo": "SlSkeleton, SlSkeletonText, SlSkeletonRegion",
|
|
133
|
+
"description": "Whether the content is still on its way. On a box, unset means the nearest region decides"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"name": "lines",
|
|
137
|
+
"type": "number",
|
|
138
|
+
"defaultValue": "3",
|
|
139
|
+
"appliesTo": "SlSkeletonText",
|
|
140
|
+
"description": "How many rows of the paragraph to reserve"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "lastLineSize",
|
|
144
|
+
"type": "string",
|
|
145
|
+
"defaultValue": "62%",
|
|
146
|
+
"appliesTo": "SlSkeletonText",
|
|
147
|
+
"description": "How wide the last row is drawn, when there is more than one"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "animation",
|
|
151
|
+
"type": "'shimmer' | 'pulse' | 'none'",
|
|
152
|
+
"defaultValue": "shimmer",
|
|
153
|
+
"appliesTo": "SlSkeleton, SlSkeletonText, SlSkeletonRegion",
|
|
154
|
+
"description": "How the wait moves. A region hands its value to everything inside it"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "live",
|
|
158
|
+
"type": "'polite' | 'off'",
|
|
159
|
+
"defaultValue": "polite",
|
|
160
|
+
"appliesTo": "SlSkeletonRegion",
|
|
161
|
+
"description": "Whether the region announces the wait at all"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "messages",
|
|
165
|
+
"type": "Partial<SkeletonMessages>",
|
|
166
|
+
"defaultValue": "—",
|
|
167
|
+
"appliesTo": "SlSkeletonRegion",
|
|
168
|
+
"description": "Words laid over the language in force, key by key: what a screen reader hears once, while the region is waiting (label)"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"name": "loadedLabel",
|
|
172
|
+
"type": "string",
|
|
173
|
+
"defaultValue": "—",
|
|
174
|
+
"appliesTo": "SlSkeletonRegion",
|
|
175
|
+
"description": "What it hears when the content arrives. Silent unless set, so one load says one thing"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "delay",
|
|
179
|
+
"type": "number",
|
|
180
|
+
"defaultValue": "0",
|
|
181
|
+
"appliesTo": "SlSkeletonRegion",
|
|
182
|
+
"description": "Milliseconds the wait must last before anything is painted"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"name": "minDuration",
|
|
186
|
+
"type": "number",
|
|
187
|
+
"defaultValue": "0",
|
|
188
|
+
"appliesTo": "SlSkeletonRegion",
|
|
189
|
+
"description": "Milliseconds a placeholder that did appear is held before it is withdrawn"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"composition": [
|
|
193
|
+
{
|
|
194
|
+
"name": "<ng-content>",
|
|
195
|
+
"type": "—",
|
|
196
|
+
"defaultValue": "—",
|
|
197
|
+
"appliesTo": "SlSkeleton, SlSkeletonRegion",
|
|
198
|
+
"description": "Content is covered rather than replaced: the box takes its geometry, hides it, and reveals it untouched when loading ends"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "the selector",
|
|
202
|
+
"type": "[slSkeleton], [slSkeletonText], [slSkeletonRegion]",
|
|
203
|
+
"defaultValue": "—",
|
|
204
|
+
"appliesTo": "all three",
|
|
205
|
+
"description": "Bare attributes, so the element stays yours — a span, a li, a tbody, a section — and your own attributes and listeners sit on it"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"name": "exportAs",
|
|
209
|
+
"type": "slSkeleton | slSkeletonText | slSkeletonRegion",
|
|
210
|
+
"defaultValue": "—",
|
|
211
|
+
"appliesTo": "all three",
|
|
212
|
+
"description": "Reaches the instance from a template, including painted(), which is not the same signal as loading"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "provideSkeletonDefaults()",
|
|
216
|
+
"type": "SkeletonDefaults",
|
|
217
|
+
"defaultValue": "—",
|
|
218
|
+
"appliesTo": "Application",
|
|
219
|
+
"description": "Sets the animation, the measure and the timing once through SKELETON_DEFAULTS_TOKEN; an input on a region or a box still wins"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"events": [
|
|
223
|
+
{
|
|
224
|
+
"name": "(reveal)",
|
|
225
|
+
"payload": "void",
|
|
226
|
+
"when": "The placeholders are actually withdrawn — later than loading turning false whenever minDuration is still holding them. It is the moment an application moves focus on."
|
|
227
|
+
}
|
|
228
|
+
],
|
|
229
|
+
"accessibility": [
|
|
230
|
+
"Every placeholder carries aria-hidden=\"true\" and inert while it is painted. Reading out the absence of something is noise, and focus must not fall into content that is not ready — a covered button is unreachable rather than reachable and useless.",
|
|
231
|
+
"An aria-hidden you wrote on your own element is read once through HostAttributeToken and kept, so a placeholder that has to stay announced can be, and the host binding never writes over a static attribute.",
|
|
232
|
+
"The region carries aria-busy=\"true\" while it waits, which is the platform’s own answer: ARIA 1.2 asks an author to set it on the container before the first change and clear it when the last change is complete. There is no APG pattern for a skeleton — the index holds thirty patterns and none is this one.",
|
|
233
|
+
"One region is one announcement. A visually-hidden role=\"status\" holds the label while waiting and is emptied afterwards, and emptying a live region announces nothing, so twelve placeholders do not become twelve messages. loadedLabel opts into a second.",
|
|
234
|
+
"Under prefers-reduced-motion the loop stops rather than shortening: an infinite animation that hurries is still moving. animation=\"none\", set once through the provider, is the author-side mechanism WCAG 2.2 SC 2.2.2 asks for.",
|
|
235
|
+
"The placeholder is visible in all three colour schemes. The fill is the unavailable surface carried a little toward the text colour, and a hairline rim takes over in high contrast, where that surface is the page’s own white."
|
|
236
|
+
]
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"tokens": [
|
|
240
|
+
"--slotted-avatar-size-lg",
|
|
241
|
+
"--slotted-avatar-size-md",
|
|
242
|
+
"--slotted-avatar-size-sm",
|
|
243
|
+
"--slotted-avatar-size-xl",
|
|
244
|
+
"--slotted-avatar-size-xs",
|
|
245
|
+
"--slotted-border-subtle",
|
|
246
|
+
"--slotted-border-width-thin",
|
|
247
|
+
"--slotted-disabled-background",
|
|
248
|
+
"--slotted-duration-loop-slow",
|
|
249
|
+
"--slotted-radius-full",
|
|
250
|
+
"--slotted-radius-md",
|
|
251
|
+
"--slotted-skeleton-block-size",
|
|
252
|
+
"--slotted-skeleton-border-color",
|
|
253
|
+
"--slotted-skeleton-border-width",
|
|
254
|
+
"--slotted-skeleton-fill",
|
|
255
|
+
"--slotted-skeleton-highlight-color",
|
|
256
|
+
"--slotted-skeleton-inline-size",
|
|
257
|
+
"--slotted-skeleton-last-line-size",
|
|
258
|
+
"--slotted-skeleton-line-size",
|
|
259
|
+
"--slotted-skeleton-min-block-size",
|
|
260
|
+
"--slotted-skeleton-phase",
|
|
261
|
+
"--slotted-skeleton-radius",
|
|
262
|
+
"--slotted-skeleton-row-size",
|
|
263
|
+
"--slotted-skeleton-size",
|
|
264
|
+
"--slotted-skeleton-trough-color",
|
|
265
|
+
"--slotted-surface-sunken",
|
|
266
|
+
"--slotted-text"
|
|
267
|
+
],
|
|
268
|
+
"examples": [
|
|
269
|
+
{
|
|
270
|
+
"id": "playground",
|
|
271
|
+
"title": "Playground",
|
|
272
|
+
"note": "A member row, driven by the controls below the canvas. Turn loading off and nothing moves — the placeholders were the real content’s own boxes all along.",
|
|
273
|
+
"language": "html",
|
|
274
|
+
"source": "<span slSkeleton shape=\"circle\" size=\"md\" [loading]=\"pending()\">\n <span slAvatar name=\"Ada Lovelace\" size=\"md\"></span>\n</span>\n",
|
|
275
|
+
"verdict": "excerpt"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "shapes",
|
|
279
|
+
"title": "What the placeholder stands for",
|
|
280
|
+
"note": "Four relationships to the layout rather than four points on a scale: a line of type, a block of content, and the two boxes an avatar can be.",
|
|
281
|
+
"language": "html",
|
|
282
|
+
"source": "<span slSkeleton shape=\"text\" inlineSize=\"8rem\"></span>\n<span slSkeleton shape=\"block\" blockSize=\"6rem\"></span>\n<span slSkeleton shape=\"circle\" size=\"lg\"></span>\n<span slSkeleton shape=\"square\" size=\"lg\"></span>\n",
|
|
283
|
+
"verdict": "excerpt"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"id": "text",
|
|
287
|
+
"title": "A paragraph that has not arrived",
|
|
288
|
+
"note": "The rows are exactly one line box each, so three rows are the three lines the words will take — at any type size, at any density, with no height typed anywhere.",
|
|
289
|
+
"language": "html",
|
|
290
|
+
"source": "<div slSkeletonText [lines]=\"3\"></div>\n\n<!-- Ten rows of a list, and a shorter tail. -->\n<div slSkeletonText [lines]=\"10\" lastLineSize=\"40%\"></div>\n",
|
|
291
|
+
"verdict": "excerpt"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"id": "sizes",
|
|
295
|
+
"title": "The round placeholder and the avatar it replaces",
|
|
296
|
+
"note": "size reads the avatar scale, so a placeholder and the picture that lands in its place are the same box at every step and at every density.",
|
|
297
|
+
"language": "html",
|
|
298
|
+
"source": "<span slSkeleton shape=\"circle\" size=\"md\"></span>\n\n<!-- Once the person has loaded. -->\n<span slAvatar name=\"Ada Lovelace\" size=\"md\"></span>\n",
|
|
299
|
+
"verdict": "excerpt"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"id": "wrapping",
|
|
303
|
+
"title": "Covering content instead of describing it",
|
|
304
|
+
"note": "Project content into a placeholder and it takes that content’s box rather than one you typed, so the reserved space cannot disagree with what replaces it.",
|
|
305
|
+
"language": "html",
|
|
306
|
+
"source": "<span slSkeleton [loading]=\"pending()\">\n <span slBadge tone=\"success\">Paid in full</span>\n</span>\n",
|
|
307
|
+
"verdict": "excerpt"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"id": "region",
|
|
311
|
+
"title": "One wait, one announcement",
|
|
312
|
+
"note": "The region carries aria-busy and the single status message; every placeholder inside it is hidden, inert, and reads the region loading state through DI instead of its own input.",
|
|
313
|
+
"language": "html",
|
|
314
|
+
"source": "<section slSkeletonRegion [messages]=\"{ label: 'Loading members' }\" [loading]=\"pending()\">\n @for (member of members(); track member.id) {\n <app-member-row [member]=\"member\" />\n }\n</section>\n",
|
|
315
|
+
"verdict": "excerpt"
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
"id": "timing",
|
|
319
|
+
"title": "The flash, and the flash in reverse",
|
|
320
|
+
"note": "delay withholds the paint until the wait is worth reporting; minDuration holds a placeholder that did appear. Both are zero unless an application sets them.",
|
|
321
|
+
"language": "ts",
|
|
322
|
+
"source": "bootstrapApplication(App, {\n providers: [provideSkeletonDefaults({ delay: 200, minDuration: 400 })],\n});\n",
|
|
323
|
+
"verdict": "excerpt"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"id": "animation",
|
|
327
|
+
"title": "How the wait moves",
|
|
328
|
+
"note": "shimmer sends a band across the placeholder and is the default; pulse dims the fill and back for a quieter surface; none is still. Under reduced motion all three stop.",
|
|
329
|
+
"language": "html",
|
|
330
|
+
"source": "<div slSkeletonText animation=\"shimmer\"></div>\n<div slSkeletonText animation=\"pulse\"></div>\n<div slSkeletonText animation=\"none\"></div>\n",
|
|
331
|
+
"verdict": "excerpt"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"id": "composition",
|
|
335
|
+
"title": "A loading surface a product would ship",
|
|
336
|
+
"note": "An avatar, a name, a role and a status chip, each placeholder standing in the box its own family will occupy, all under one region that owns the wait.",
|
|
337
|
+
"language": "html",
|
|
338
|
+
"source": "<div slSkeletonRegion [messages]=\"{ label: 'Loading members' }\" [loading]=\"pending()\">\n <div slInline gap=\"5\">\n <span slSkeleton shape=\"circle\" size=\"md\"></span>\n <div slStack gap=\"2\">\n <span slSkeleton shape=\"text\" inlineSize=\"9rem\"></span>\n <span slSkeleton shape=\"text\" inlineSize=\"5rem\"></span>\n </div>\n </div>\n</div>\n",
|
|
339
|
+
"verdict": "excerpt"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"id": "content",
|
|
343
|
+
"title": "Content the family did not choose",
|
|
344
|
+
"note": "A narrow column, a right-to-left paragraph where the short row and the sweep both change ends, and a heading whose placeholder is a heading tall without being told what a heading is.",
|
|
345
|
+
"language": "html",
|
|
346
|
+
"source": "<h2 slHeading [level]=\"2\">\n <span slSkeleton shape=\"text\" inlineSize=\"60%\"></span>\n</h2>\n\n<div dir=\"rtl\">\n <div slSkeletonText [lines]=\"3\"></div>\n</div>\n",
|
|
347
|
+
"verdict": "excerpt"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"id": "accessibility",
|
|
351
|
+
"title": "What a reader hears",
|
|
352
|
+
"note": "Every box is hidden and inert; the region says the label once and then falls silent. Tab through the loading half and focus skips it entirely.",
|
|
353
|
+
"language": "html",
|
|
354
|
+
"source": "<div slSkeletonRegion [messages]=\"{ label: 'Loading invoices' }\" loadedLabel=\"Invoices loaded\">\n <div slSkeletonText></div>\n</div>\n\n<!-- A region the reader never waits on says nothing at all. -->\n<div slSkeletonRegion live=\"off\">\n <span slSkeleton shape=\"circle\"></span>\n</div>\n",
|
|
355
|
+
"verdict": "excerpt"
|
|
356
|
+
}
|
|
357
|
+
]
|
|
358
|
+
}
|
package/docs/skeleton.md
ADDED
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# skeleton
|
|
3
|
+
|
|
4
|
+
`data-ui="skeleton"` · Placeholder shapes while content loads.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlSkeleton, SlSkeletonText, SlSkeletonRegion, provideSkeletonDefaults } from '@slotted/angular/skeleton';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `[slSkeleton] · [slSkeletonText] · [slSkeletonRegion]` · exportAs: `slSkeleton · slSkeletonText · slSkeletonRegion`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<span slSkeleton shape="circle" size="md" [loading]="pending()">
|
|
20
|
+
<span slAvatar name="Ada Lovelace" size="md"></span>
|
|
21
|
+
</span>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Anatomy
|
|
25
|
+
|
|
26
|
+
| Part | Element | Required |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `root` | span | yes |
|
|
29
|
+
| `text` | div | yes |
|
|
30
|
+
| `line` | span | yes |
|
|
31
|
+
| `region` | div | yes |
|
|
32
|
+
| `announcement` | span | yes |
|
|
33
|
+
|
|
34
|
+
## Props
|
|
35
|
+
|
|
36
|
+
| Name | Type | Default | Applies to | Description |
|
|
37
|
+
| --- | --- | --- | --- | --- |
|
|
38
|
+
| `shape` | `'text' \| 'block' \| 'circle' \| 'square'` | text | SlSkeleton | What the placeholder stands for: a line of type, a block of content, or an avatar |
|
|
39
|
+
| `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | md | SlSkeleton | The avatar scale. Means nothing for text, which takes its height from the type, or for block |
|
|
40
|
+
| `inlineSize, blockSize` | `string` | — | SlSkeleton, SlSkeletonText | The reserved geometry, in logical axes, written straight onto the family’s own custom properties. Ignored where content is covered and measured instead |
|
|
41
|
+
| `loading` | `boolean` | true | SlSkeleton, SlSkeletonText, SlSkeletonRegion | Whether the content is still on its way. On a box, unset means the nearest region decides |
|
|
42
|
+
| `lines` | `number` | 3 | SlSkeletonText | How many rows of the paragraph to reserve |
|
|
43
|
+
| `lastLineSize` | `string` | 62% | SlSkeletonText | How wide the last row is drawn, when there is more than one |
|
|
44
|
+
| `animation` | `'shimmer' \| 'pulse' \| 'none'` | shimmer | SlSkeleton, SlSkeletonText, SlSkeletonRegion | How the wait moves. A region hands its value to everything inside it |
|
|
45
|
+
| `live` | `'polite' \| 'off'` | polite | SlSkeletonRegion | Whether the region announces the wait at all |
|
|
46
|
+
| `messages` | `Partial<SkeletonMessages>` | — | SlSkeletonRegion | Words laid over the language in force, key by key: what a screen reader hears once, while the region is waiting (label) |
|
|
47
|
+
| `loadedLabel` | `string` | — | SlSkeletonRegion | What it hears when the content arrives. Silent unless set, so one load says one thing |
|
|
48
|
+
| `delay` | `number` | 0 | SlSkeletonRegion | Milliseconds the wait must last before anything is painted |
|
|
49
|
+
| `minDuration` | `number` | 0 | SlSkeletonRegion | Milliseconds a placeholder that did appear is held before it is withdrawn |
|
|
50
|
+
| `<ng-content>` | `—` | — | SlSkeleton, SlSkeletonRegion | Content is covered rather than replaced: the box takes its geometry, hides it, and reveals it untouched when loading ends |
|
|
51
|
+
| `the selector` | `[slSkeleton], [slSkeletonText], [slSkeletonRegion]` | — | all three | Bare attributes, so the element stays yours — a span, a li, a tbody, a section — and your own attributes and listeners sit on it |
|
|
52
|
+
| `exportAs` | `slSkeleton \| slSkeletonText \| slSkeletonRegion` | — | all three | Reaches the instance from a template, including painted(), which is not the same signal as loading |
|
|
53
|
+
| `provideSkeletonDefaults()` | `SkeletonDefaults` | — | Application | Sets the animation, the measure and the timing once through SKELETON_DEFAULTS_TOKEN; an input on a region or a box still wins |
|
|
54
|
+
|
|
55
|
+
## Events
|
|
56
|
+
|
|
57
|
+
| Name | Payload | When |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| `(reveal)` | `void` | The placeholders are actually withdrawn — later than loading turning false whenever minDuration is still holding them. It is the moment an application moves focus on. |
|
|
60
|
+
|
|
61
|
+
## Axes and defaults
|
|
62
|
+
|
|
63
|
+
| Axis | Values | Default |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `shape` | `text`, `block`, `circle`, `square` | `text` |
|
|
66
|
+
| `size` | `xs`, `sm`, `md`, `lg`, `xl` | `md` |
|
|
67
|
+
| `animation` | `shimmer`, `pulse`, `none` | `shimmer` |
|
|
68
|
+
| `live` | `polite`, `off` | `polite` |
|
|
69
|
+
|
|
70
|
+
## Rules
|
|
71
|
+
|
|
72
|
+
- Every placeholder carries aria-hidden="true" and inert while it is painted. Reading out the absence of something is noise, and focus must not fall into content that is not ready — a covered button is unreachable rather than reachable and useless.
|
|
73
|
+
- An aria-hidden you wrote on your own element is read once through HostAttributeToken and kept, so a placeholder that has to stay announced can be, and the host binding never writes over a static attribute.
|
|
74
|
+
- The region carries aria-busy="true" while it waits, which is the platform’s own answer: ARIA 1.2 asks an author to set it on the container before the first change and clear it when the last change is complete. There is no APG pattern for a skeleton — the index holds thirty patterns and none is this one.
|
|
75
|
+
- One region is one announcement. A visually-hidden role="status" holds the label while waiting and is emptied afterwards, and emptying a live region announces nothing, so twelve placeholders do not become twelve messages. loadedLabel opts into a second.
|
|
76
|
+
- Under prefers-reduced-motion the loop stops rather than shortening: an infinite animation that hurries is still moving. animation="none", set once through the provider, is the author-side mechanism WCAG 2.2 SC 2.2.2 asks for.
|
|
77
|
+
- The placeholder is visible in all three colour schemes. The fill is the unavailable surface carried a little toward the text colour, and a hairline rim takes over in high contrast, where that surface is the page’s own white.
|
|
78
|
+
|
|
79
|
+
## Tokens
|
|
80
|
+
|
|
81
|
+
`--slotted-avatar-size-lg`, `--slotted-avatar-size-md`, `--slotted-avatar-size-sm`, `--slotted-avatar-size-xl`, `--slotted-avatar-size-xs`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-disabled-background`, `--slotted-duration-loop-slow`, `--slotted-radius-full`, `--slotted-radius-md`, `--slotted-skeleton-block-size`, `--slotted-skeleton-border-color`, `--slotted-skeleton-border-width`, `--slotted-skeleton-fill`, `--slotted-skeleton-highlight-color`, `--slotted-skeleton-inline-size`, `--slotted-skeleton-last-line-size`, `--slotted-skeleton-line-size`, `--slotted-skeleton-min-block-size`, `--slotted-skeleton-phase`, `--slotted-skeleton-radius`, `--slotted-skeleton-row-size`, `--slotted-skeleton-size`, `--slotted-skeleton-trough-color`, `--slotted-surface-sunken`, `--slotted-text`
|
|
82
|
+
|
|
83
|
+
## Examples
|
|
84
|
+
|
|
85
|
+
### What the placeholder stands for
|
|
86
|
+
|
|
87
|
+
Four relationships to the layout rather than four points on a scale: a line of type, a block of content, and the two boxes an avatar can be.
|
|
88
|
+
|
|
89
|
+
Excerpt — not a complete module
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<span slSkeleton shape="text" inlineSize="8rem"></span>
|
|
93
|
+
<span slSkeleton shape="block" blockSize="6rem"></span>
|
|
94
|
+
<span slSkeleton shape="circle" size="lg"></span>
|
|
95
|
+
<span slSkeleton shape="square" size="lg"></span>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### A paragraph that has not arrived
|
|
99
|
+
|
|
100
|
+
The rows are exactly one line box each, so three rows are the three lines the words will take — at any type size, at any density, with no height typed anywhere.
|
|
101
|
+
|
|
102
|
+
Excerpt — not a complete module
|
|
103
|
+
|
|
104
|
+
```html
|
|
105
|
+
<div slSkeletonText [lines]="3"></div>
|
|
106
|
+
|
|
107
|
+
<!-- Ten rows of a list, and a shorter tail. -->
|
|
108
|
+
<div slSkeletonText [lines]="10" lastLineSize="40%"></div>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### The round placeholder and the avatar it replaces
|
|
112
|
+
|
|
113
|
+
size reads the avatar scale, so a placeholder and the picture that lands in its place are the same box at every step and at every density.
|
|
114
|
+
|
|
115
|
+
Excerpt — not a complete module
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<span slSkeleton shape="circle" size="md"></span>
|
|
119
|
+
|
|
120
|
+
<!-- Once the person has loaded. -->
|
|
121
|
+
<span slAvatar name="Ada Lovelace" size="md"></span>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Covering content instead of describing it
|
|
125
|
+
|
|
126
|
+
Project content into a placeholder and it takes that content’s box rather than one you typed, so the reserved space cannot disagree with what replaces it.
|
|
127
|
+
|
|
128
|
+
Excerpt — not a complete module
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<span slSkeleton [loading]="pending()">
|
|
132
|
+
<span slBadge tone="success">Paid in full</span>
|
|
133
|
+
</span>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### One wait, one announcement
|
|
137
|
+
|
|
138
|
+
The region carries aria-busy and the single status message; every placeholder inside it is hidden, inert, and reads the region loading state through DI instead of its own input.
|
|
139
|
+
|
|
140
|
+
Excerpt — not a complete module
|
|
141
|
+
|
|
142
|
+
```html
|
|
143
|
+
<section slSkeletonRegion [messages]="{ label: 'Loading members' }" [loading]="pending()">
|
|
144
|
+
@for (member of members(); track member.id) {
|
|
145
|
+
<app-member-row [member]="member" />
|
|
146
|
+
}
|
|
147
|
+
</section>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### The flash, and the flash in reverse
|
|
151
|
+
|
|
152
|
+
delay withholds the paint until the wait is worth reporting; minDuration holds a placeholder that did appear. Both are zero unless an application sets them.
|
|
153
|
+
|
|
154
|
+
Excerpt — not a complete module
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
bootstrapApplication(App, {
|
|
158
|
+
providers: [provideSkeletonDefaults({ delay: 200, minDuration: 400 })],
|
|
159
|
+
});
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### How the wait moves
|
|
163
|
+
|
|
164
|
+
shimmer sends a band across the placeholder and is the default; pulse dims the fill and back for a quieter surface; none is still. Under reduced motion all three stop.
|
|
165
|
+
|
|
166
|
+
Excerpt — not a complete module
|
|
167
|
+
|
|
168
|
+
```html
|
|
169
|
+
<div slSkeletonText animation="shimmer"></div>
|
|
170
|
+
<div slSkeletonText animation="pulse"></div>
|
|
171
|
+
<div slSkeletonText animation="none"></div>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### A loading surface a product would ship
|
|
175
|
+
|
|
176
|
+
An avatar, a name, a role and a status chip, each placeholder standing in the box its own family will occupy, all under one region that owns the wait.
|
|
177
|
+
|
|
178
|
+
Excerpt — not a complete module
|
|
179
|
+
|
|
180
|
+
```html
|
|
181
|
+
<div slSkeletonRegion [messages]="{ label: 'Loading members' }" [loading]="pending()">
|
|
182
|
+
<div slInline gap="5">
|
|
183
|
+
<span slSkeleton shape="circle" size="md"></span>
|
|
184
|
+
<div slStack gap="2">
|
|
185
|
+
<span slSkeleton shape="text" inlineSize="9rem"></span>
|
|
186
|
+
<span slSkeleton shape="text" inlineSize="5rem"></span>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Content the family did not choose
|
|
193
|
+
|
|
194
|
+
A narrow column, a right-to-left paragraph where the short row and the sweep both change ends, and a heading whose placeholder is a heading tall without being told what a heading is.
|
|
195
|
+
|
|
196
|
+
Excerpt — not a complete module
|
|
197
|
+
|
|
198
|
+
```html
|
|
199
|
+
<h2 slHeading [level]="2">
|
|
200
|
+
<span slSkeleton shape="text" inlineSize="60%"></span>
|
|
201
|
+
</h2>
|
|
202
|
+
|
|
203
|
+
<div dir="rtl">
|
|
204
|
+
<div slSkeletonText [lines]="3"></div>
|
|
205
|
+
</div>
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### What a reader hears
|
|
209
|
+
|
|
210
|
+
Every box is hidden and inert; the region says the label once and then falls silent. Tab through the loading half and focus skips it entirely.
|
|
211
|
+
|
|
212
|
+
Excerpt — not a complete module
|
|
213
|
+
|
|
214
|
+
```html
|
|
215
|
+
<div slSkeletonRegion [messages]="{ label: 'Loading invoices' }" loadedLabel="Invoices loaded">
|
|
216
|
+
<div slSkeletonText></div>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
<!-- A region the reader never waits on says nothing at all. -->
|
|
220
|
+
<div slSkeletonRegion live="off">
|
|
221
|
+
<span slSkeleton shape="circle"></span>
|
|
222
|
+
</div>
|
|
223
|
+
```
|