@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 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-stat-card.mjs","sources":["../../stat-card/src/stat-card-defaults.ts","../../stat-card/src/stat-card.constants.ts","../../stat-card/src/stat-card.ts","../../stat-card/src/stat-card-delta.ts","../../stat-card/src/stat-card-parts.ts","../../stat-card/src/stat-card-value.ts","../../stat-card/src/slotted-angular-stat-card.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatCardFill,\n StatCardGoodWhen,\n StatCardLayout,\n StatCardSize,\n} from './stat-card.constants';\n\n/**\n * What every card in an application does before any of them states anything\n * of its own. `goodWhen` is here because a product usually has one answer —\n * a sales dashboard wants everything up, an operations one wants everything\n * down — and a card that disagrees says so.\n */\nexport interface StatCardDefaults {\n fill?: StatCardFill;\n formatOptions?: Intl.NumberFormatOptions;\n goodWhen?: StatCardGoodWhen;\n layout?: StatCardLayout;\n size?: StatCardSize;\n}\n\nexport const STAT_CARD_DEFAULTS_TOKEN = new InjectionToken<StatCardDefaults>(\n 'slotted stat-card defaults',\n { providedIn: 'root', factory: (): StatCardDefaults => ({}) },\n);\n\n/**\n * An explicit input is never overridden by the token. The words and the locale\n * come from the language in force (`provideSlotted`).\n */\nexport function provideStatCardDefaults(defaults: StatCardDefaults) {\n return { provide: STAT_CARD_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatCardDefaults(): StatCardDefaults {\n return inject(STAT_CARD_DEFAULTS_TOKEN);\n}\n","export type StatCardSize = 'sm' | 'md' | 'lg';\nexport type StatCardFill = 'outline' | 'elevated' | 'subtle' | 'plain';\nexport type StatCardLayout = 'inline' | 'stacked';\nexport type StatCardValueStatus = 'ready' | 'empty' | 'error';\nexport type StatCardGoodWhen = 'up' | 'down' | 'none';\nexport type StatCardTone = 'neutral' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type StatCardDirection = 'up' | 'down' | 'flat';\nexport type StatCardDeltaFormat = 'percent' | 'decimal';\n\n/** The direction of a change, from its sign. */\nexport function trendOf(value: number | undefined): StatCardDirection {\n if (value === undefined || Number.isNaN(value) || value === 0) return 'flat';\n return value > 0 ? 'up' : 'down';\n}\n\n/**\n * The tone of a change, from what the metric means and never from the sign:\n * a rise is good when up is good and bad when down is; a fall is the reverse;\n * a flat change, or a metric with no valence, is neutral.\n */\nexport function toneOf(trend: StatCardDirection, goodWhen: StatCardGoodWhen): StatCardTone {\n if (trend === 'flat' || goodWhen === 'none') return 'neutral';\n return (trend === 'up') === (goodWhen === 'up') ? 'success' : 'danger';\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n numberAttribute,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { type PartialMessages, statCardMessages, type StatCardMessages } from '@slotted/core/i18n';\n\nimport { injectStatCardDefaults } from './stat-card-defaults';\nimport {\n toneOf,\n trendOf,\n type StatCardFill,\n type StatCardGoodWhen,\n type StatCardLayout,\n type StatCardSize,\n type StatCardTone,\n type StatCardValueStatus,\n} from './stat-card.constants';\n\nlet nextId = 0;\n\n/**\n * A metric with its name, its change and its trend, in a frame.\n *\n * The root holds the facts the parts read — which way is good, the change,\n * the status, whether it is loading — and derives the one thing two parts\n * have to agree on: the tone of the change, which the delta wears and the\n * trend hands to its sparkline. It is derived here, from `delta` and\n * `goodWhen`, so the first render already carries it.\n *\n * The root is a group named by its label, so a reader who lands on the\n * action inside it hears which metric it belongs to; an `aria-label` or\n * `aria-labelledby` the consumer wrote on the element wins. It carries\n * `aria-busy` while loading; the placeholders are `skeleton`s, and a\n * consumer who wants one announcement for a whole dashboard wraps it in a\n * `slSkeletonRegion`.\n */\n@Component({\n selector: '[slStatCard]',\n standalone: true,\n template: '<div data-part=\"body\"><ng-content /></div>',\n styleUrl: '../../../styles/src/stat-card/stat-card.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCard',\n host: {\n 'data-ui': 'stat-card',\n 'data-part': 'root',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy()',\n '[attr.aria-busy]': 'loading() ? \"true\" : null',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-fill]': 'resolvedFill()',\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-status]': 'status()',\n '[attr.data-good-when]': 'resolvedGoodWhen()',\n '[attr.data-tone]': 'resolvedTone() ?? null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n },\n})\nexport class SlStatCard {\n readonly size = input<StatCardSize | undefined>(undefined);\n readonly fill = input<StatCardFill | undefined>(undefined);\n readonly layout = input<StatCardLayout | undefined>(undefined);\n /** Whether there is a value to show, and if not, why. */\n readonly status = input<StatCardValueStatus>('ready');\n /** The value is still on its way: every part stands in with a placeholder. */\n readonly loading = input<boolean, unknown>(false, { transform: booleanAttribute });\n /** Which way is good for this metric. The delta's tone is derived from it, never from the sign. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /**\n * The change since the comparison period, as the first delta inside reads\n * it: a fraction for a percentage (`0.124` is +12.4%), or a number.\n */\n readonly delta = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** The tone the card hands to its trend. Unset, it is the delta's. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n /** The locale numbers are written in; the language in force when absent. */\n readonly locale = input<string | undefined>(undefined);\n /** How the value, the delta and the comparison read numbers. */\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: what a\n * screen reader hears beside a change (`up`, `down`, `flat`, read before the\n * number because a sign is a glyph some readers skip) and what stands in for\n * a value that is not there (`empty`).\n */\n readonly messages = input<PartialMessages<StatCardMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatCardDefaults();\n private readonly appLocale = injectLocale();\n private readonly ownLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly ownLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n\n /** The id the label takes, and the root is named by. */\n readonly labelId = `slotted-stat-card-label-${nextId++}`;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size ?? 'md');\n readonly resolvedFill = computed(() => this.fill() ?? this.defaults.fill ?? 'outline');\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout ?? 'inline');\n readonly resolvedGoodWhen = computed(() => this.goodWhen() ?? this.defaults.goodWhen ?? 'up');\n readonly resolvedLocale = computed(() => this.locale() ?? this.appLocale());\n readonly resolvedFormatOptions = computed(\n () => this.formatOptions() ?? this.defaults.formatOptions,\n );\n /** The family's words in the language in force, with this card's `messages` laid over them. */\n readonly t = injectMessages(statCardMessages, this.messages);\n readonly resolvedTone = computed<StatCardTone | undefined>(() => {\n const explicit = this.tone();\n if (explicit !== undefined) return explicit;\n const delta = this.delta();\n return delta === undefined ? undefined : toneOf(trendOf(delta), this.resolvedGoodWhen());\n });\n\n readonly labelledBy = computed(() =>\n this.ownLabel !== null ? null : (this.ownLabelledBy ?? this.labelId),\n );\n}\n\nexport function optionalNumber(value: unknown): number | undefined {\n if (value === undefined || value === null || value === '') return undefined;\n return numberAttribute(value);\n}\n\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport { SlVisuallyHidden } from '@slotted/angular/visually-hidden';\n\nimport { SlStatCard, optionalNumber } from './stat-card';\nimport {\n toneOf,\n trendOf,\n type StatCardDeltaFormat,\n type StatCardGoodWhen,\n type StatCardTone,\n} from './stat-card.constants';\n\n/**\n * The change, with the mark that says which way and the word a screen reader\n * hears before the number. `value` is the root's `delta` unless the part\n * states its own, so a second delta on one card — month over month beside\n * year over year — is one more part with one more value.\n *\n * `percent` reads the value as a fraction, which is what a division gives;\n * the sign is always shown except on nought. The tone is derived from the\n * direction and from `goodWhen`, never from the sign, and an explicit `tone`\n * wins.\n */\n@Component({\n selector: '[slStatCardDelta]',\n standalone: true,\n imports: [SlGlyph, SlIcon, SlSkeleton, SlVisuallyHidden],\n /* One glyph for a rise and a fall, turned over by the sheet for a fall. */\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"3.5em\"></span>\n } @else {\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"trend() !== 'flat'\"\n ><svg slGlyph [name]=\"trend() === 'flat' ? 'minus' : 'trending-up'\"></svg></span></span\n ><span slVisuallyHidden>{{ card.t(trend()) }} </span>{{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardDelta',\n host: {\n 'data-part': 'delta',\n '[attr.data-trend]': 'card.loading() ? \"flat\" : trend()',\n '[attr.data-tone]': 'card.loading() ? \"neutral\" : resolvedTone()',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlStatCardDelta {\n /** The change. Unset, the root's `delta`. */\n readonly value = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** `percent` reads the value as a fraction; `decimal` reads it as it is. */\n readonly format = input<StatCardDeltaFormat>('percent');\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n /** Unset, the root's. */\n readonly goodWhen = input<StatCardGoodWhen | undefined>(undefined);\n /** An explicit tone, which wins over the one derived from `goodWhen`. */\n readonly tone = input<StatCardTone | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly change = computed(() => this.value() ?? this.card.delta());\n readonly trend = computed(() => trendOf(this.change()));\n readonly resolvedTone = computed(\n () => this.tone() ?? toneOf(this.trend(), this.goodWhen() ?? this.card.resolvedGoodWhen()),\n );\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n\n readonly formatted = computed(() => {\n const change = this.change();\n if (typeof change !== 'number') return '';\n return new Intl.NumberFormat(this.card.resolvedLocale(), {\n signDisplay: 'exceptZero',\n ...(this.format() === 'percent' ? { style: 'percent', maximumFractionDigits: 1 } : {}),\n ...this.card.resolvedFormatOptions(),\n ...this.formatOptions(),\n }).format(change);\n });\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n HostAttributeToken,\n inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/** The row with the name, a status beside it and an action at the end. */\n@Directive({\n selector: '[slStatCardHeader]',\n standalone: true,\n exportAs: 'slStatCardHeader',\n host: { 'data-part': 'header' },\n})\nexport class SlStatCardHeader {}\n\n/**\n * The name of the metric. It is the element the root is named by, so it\n * carries the id the root points at; an `id` the consumer wrote wins, and\n * the root then names nothing, which is the consumer's decision to make.\n */\n@Directive({\n selector: '[slStatCardLabel]',\n standalone: true,\n exportAs: 'slStatCardLabel',\n host: { 'data-part': 'label', '[attr.id]': 'id' },\n})\nexport class SlStatCardLabel {\n private readonly card = inject(SlStatCard);\n private readonly ownId = inject(new HostAttributeToken('id'), { optional: true });\n readonly id = this.ownId ?? this.card.labelId;\n}\n\n/** A slot beside the name for a badge or a status indicator. */\n@Directive({\n selector: '[slStatCardStatus]',\n standalone: true,\n exportAs: 'slStatCardStatus',\n host: { 'data-part': 'status' },\n})\nexport class SlStatCardStatus {}\n\n/** The place at the end of the header for the consumer's link or button. */\n@Directive({\n selector: '[slStatCardAction]',\n standalone: true,\n exportAs: 'slStatCardAction',\n host: { 'data-part': 'action' },\n})\nexport class SlStatCardAction {}\n\n/** The value with its unit and its delta on one line, and the comparison under them. */\n@Directive({\n selector: '[slStatCardFigure]',\n standalone: true,\n exportAs: 'slStatCardFigure',\n host: { 'data-part': 'figure' },\n})\nexport class SlStatCardFigure {}\n\n/** The unit, wherever the consumer puts it inside the value: `$` before, `%` after. */\n@Directive({\n selector: '[slStatCardUnit]',\n standalone: true,\n exportAs: 'slStatCardUnit',\n host: { 'data-part': 'unit' },\n})\nexport class SlStatCardUnit {}\n\n@Directive({\n selector: '[slStatCardPeriod]',\n standalone: true,\n exportAs: 'slStatCardPeriod',\n host: { 'data-part': 'period' },\n})\nexport class SlStatCardPeriod {}\n\n/**\n * The prose under the figure: what the value was, and the period. Shown\n * only while there is a value to compare; a placeholder while loading.\n */\n@Component({\n selector: '[slStatCardComparison]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"10em\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardComparison',\n host: { 'data-part': 'comparison', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardComparison {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/**\n * Where a sparkline goes. The stylesheet hands it the card's tone and the\n * card's ground; while loading it holds a block the sparkline's height, so\n * the card does not change size when the line arrives.\n */\n@Component({\n selector: '[slStatCardTrend]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton shape=\"block\"></span>\n } @else {\n <ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardTrend',\n host: { 'data-part': 'trend', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardTrend {\n protected readonly card = inject(SlStatCard);\n readonly shown = computed(() => this.card.loading() || this.card.status() === 'ready');\n}\n\n/** What is said in place of a value that is missing or failed. Shown only then. */\n@Directive({\n selector: '[slStatCardMessage]',\n standalone: true,\n exportAs: 'slStatCardMessage',\n host: { 'data-part': 'message', '[attr.hidden]': 'shown() ? null : \"\"' },\n})\nexport class SlStatCardMessage {\n private readonly card = inject(SlStatCard);\n readonly shown = computed(() => !this.card.loading() && this.card.status() !== 'ready');\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { inject } from '@angular/core';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport { SlStatCard } from './stat-card';\n\n/**\n * The number. A numeric `value` is formatted with the card's locale and\n * `formatOptions` — `notation: 'compact'` is how 12,900 becomes 12.9K — and\n * projected content is the consumer's own rendering, unit and all, after\n * it. A missing or failed value is the `empty` message, a dash; a loading\n * one is a placeholder five figures wide, on the value's own line.\n */\n@Component({\n selector: '[slStatCardValue]',\n standalone: true,\n imports: [SlSkeleton],\n template: `@if (card.loading()) {\n <span slSkeleton inlineSize=\"5ch\"></span>\n } @else if (card.status() !== 'ready') {\n {{ card.t('empty') }}\n } @else {\n {{ formatted() }}<ng-content />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatCardValue',\n host: { 'data-part': 'value' },\n})\nexport class SlStatCardValue {\n /** A number, formatted with the card's locale and `formatOptions`; the text otherwise. */\n readonly value = input<number | string | undefined>(undefined);\n readonly formatOptions = input<Intl.NumberFormatOptions | undefined>(undefined);\n\n protected readonly card = inject(SlStatCard);\n\n readonly formatted = computed(() => {\n const value = this.value();\n if (typeof value !== 'number') return value ?? '';\n return new Intl.NumberFormat(\n this.card.resolvedLocale(),\n this.formatOptions() ?? this.card.resolvedFormatOptions(),\n ).format(value);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, input, booleanAttribute, HostAttributeToken, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { injectMessages } from '@slotted/angular/i18n';
|
|
4
|
+
import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
5
|
+
import { statusIndicatorMessages } from '@slotted/core/i18n';
|
|
6
|
+
|
|
7
|
+
const STATUS_INDICATOR_DEFAULTS_TOKEN = new InjectionToken('slotted status indicator defaults', { providedIn: 'root', factory: () => ({}) });
|
|
8
|
+
/**
|
|
9
|
+
* An application decides once how its statuses are marked, how large they are
|
|
10
|
+
* and whether they announce. An indicator that states any of those still wins:
|
|
11
|
+
* an explicit input is never overridden by the token.
|
|
12
|
+
*/
|
|
13
|
+
function provideStatusIndicatorDefaults(defaults) {
|
|
14
|
+
return { provide: STATUS_INDICATOR_DEFAULTS_TOKEN, useValue: defaults };
|
|
15
|
+
}
|
|
16
|
+
function injectStatusIndicatorDefaults() {
|
|
17
|
+
return inject(STATUS_INDICATOR_DEFAULTS_TOKEN);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const STATUS_INDICATOR_DEFAULT_STATUS = 'neutral';
|
|
21
|
+
/**
|
|
22
|
+
* The glyph each status draws when the mark is an icon, as the contract's
|
|
23
|
+
* `statusGlyphs` names it. Two statuses never share one: the icon mark is the
|
|
24
|
+
* family's non-chromatic answer, and `neutral` and `unknown` share a tone.
|
|
25
|
+
*/
|
|
26
|
+
const STATUS_INDICATOR_GLYPHS = {
|
|
27
|
+
neutral: 'circle',
|
|
28
|
+
info: 'circle-info',
|
|
29
|
+
success: 'circle-check',
|
|
30
|
+
warning: 'circle-alert',
|
|
31
|
+
danger: 'circle-x',
|
|
32
|
+
unknown: 'circle-question',
|
|
33
|
+
};
|
|
34
|
+
const STATUS_INDICATOR_DEFAULT_MARK = 'dot';
|
|
35
|
+
const STATUS_INDICATOR_DEFAULT_SIZE = 'md';
|
|
36
|
+
const STATUS_INDICATOR_DEFAULT_LIVE = 'off';
|
|
37
|
+
/**
|
|
38
|
+
* What `live` writes on the host. The names are the platform's: `status` is a
|
|
39
|
+
* polite live region with an implicit `aria-atomic`, so the mark and its word
|
|
40
|
+
* are announced as one thing; `alert` interrupts, which the APG's Alert
|
|
41
|
+
* pattern reserves for a message that needs immediate attention.
|
|
42
|
+
*/
|
|
43
|
+
const STATUS_INDICATOR_ROLE = {
|
|
44
|
+
off: null,
|
|
45
|
+
polite: 'status',
|
|
46
|
+
assertive: 'alert',
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The operational state of something the application observes.
|
|
51
|
+
*
|
|
52
|
+
* The family reports; it never moves the value. That is why there is no
|
|
53
|
+
* `model()` here and no output — `status` is the application's fact about a
|
|
54
|
+
* system this component cannot see, the same relationship a progress range has
|
|
55
|
+
* to the work it reports.
|
|
56
|
+
*
|
|
57
|
+
* It is always named. Given projected content, that content is the name; given
|
|
58
|
+
* none, the status's own word is rendered and clipped from view. The fallback
|
|
59
|
+
* belongs to `<ng-content>` rather than to a flag the component has to compute,
|
|
60
|
+
* which is Angular's own answer to the question React answers with
|
|
61
|
+
* `children === undefined`: the template knows whether anything was projected,
|
|
62
|
+
* so nothing has to inspect the DOM to find out.
|
|
63
|
+
*
|
|
64
|
+
* The selector is a bare attribute, so the element stays the consumer's: a
|
|
65
|
+
* status belongs in whatever a table cell, a list item or a heading already
|
|
66
|
+
* is, and wrapping it in a second element would change their layout to carry
|
|
67
|
+
* an attribute.
|
|
68
|
+
*/
|
|
69
|
+
class SlStatusIndicator {
|
|
70
|
+
status = input(STATUS_INDICATOR_DEFAULT_STATUS, /* @ts-ignore */
|
|
71
|
+
...(ngDevMode ? [{ debugName: "status" }] : /* istanbul ignore next */ []));
|
|
72
|
+
mark = input(undefined, /* @ts-ignore */
|
|
73
|
+
...(ngDevMode ? [{ debugName: "mark" }] : /* istanbul ignore next */ []));
|
|
74
|
+
size = input(undefined, /* @ts-ignore */
|
|
75
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
76
|
+
live = input(undefined, /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "live" }] : /* istanbul ignore next */ []));
|
|
78
|
+
/**
|
|
79
|
+
* A wave leaving the dot, for a change happening now. An icon mark does not
|
|
80
|
+
* pulse, and the wave is withdrawn under reduced motion and under forced
|
|
81
|
+
* colours, so nothing is ever said by the wave alone.
|
|
82
|
+
*/
|
|
83
|
+
pulse = input(false, { ...(ngDevMode ? { debugName: "pulse" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
84
|
+
/**
|
|
85
|
+
* What a reader hears when nothing was projected. Ignored when something
|
|
86
|
+
* was, because naming an element twice is how a screen reader comes to read
|
|
87
|
+
* “Success Healthy”. Falls back to the status's word in the catalog.
|
|
88
|
+
*/
|
|
89
|
+
label = input(undefined, /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
91
|
+
/**
|
|
92
|
+
* Words laid over the catalog of the language in force, key by key: the
|
|
93
|
+
* word each status is heard as when nothing was projected.
|
|
94
|
+
*/
|
|
95
|
+
messages = input(undefined, /* @ts-ignore */
|
|
96
|
+
...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
97
|
+
defaults = injectStatusIndicatorDefaults();
|
|
98
|
+
/** The family's words in the language in force, with this indicator's `messages` laid over them. */
|
|
99
|
+
t = injectMessages(statusIndicatorMessages, this.messages);
|
|
100
|
+
/**
|
|
101
|
+
* Read once, before the host binding writes one. A consumer who put
|
|
102
|
+
* `role="note"` on their own element keeps it, which is the rule
|
|
103
|
+
* `frameworks.md` states for every static attribute a family writes over.
|
|
104
|
+
*/
|
|
105
|
+
ownRole = inject(new HostAttributeToken('role'), { optional: true });
|
|
106
|
+
markValue = computed(() => this.mark() ?? this.defaults.mark ?? STATUS_INDICATOR_DEFAULT_MARK, /* @ts-ignore */
|
|
107
|
+
...(ngDevMode ? [{ debugName: "markValue" }] : /* istanbul ignore next */ []));
|
|
108
|
+
sizeValue = computed(() => this.size() ?? this.defaults.size ?? STATUS_INDICATOR_DEFAULT_SIZE, /* @ts-ignore */
|
|
109
|
+
...(ngDevMode ? [{ debugName: "sizeValue" }] : /* istanbul ignore next */ []));
|
|
110
|
+
liveValue = computed(() => this.live() ?? this.defaults.live ?? STATUS_INDICATOR_DEFAULT_LIVE, /* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "liveValue" }] : /* istanbul ignore next */ []));
|
|
112
|
+
glyph = computed(() => STATUS_INDICATOR_GLYPHS[this.status()], /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []));
|
|
114
|
+
roleValue = computed(() => this.ownRole ?? STATUS_INDICATOR_ROLE[this.liveValue()], /* @ts-ignore */
|
|
115
|
+
...(ngDevMode ? [{ debugName: "roleValue" }] : /* istanbul ignore next */ []));
|
|
116
|
+
name = computed(() => this.label() ?? this.t(this.status()), /* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
118
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatusIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
119
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlStatusIndicator, isStandalone: true, selector: "[slStatusIndicator]", inputs: { status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, mark: { classPropertyName: "mark", publicName: "mark", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, pulse: { classPropertyName: "pulse", publicName: "pulse", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "status-indicator", "data-part": "root" }, properties: { "attr.data-status": "status()", "attr.data-mark": "markValue()", "attr.data-size": "sizeValue()", "attr.data-pulse": "pulse() ? \"\" : null", "attr.role": "roleValue()" } }, exportAs: ["slStatusIndicator"], ngImport: i0, template: `<span aria-hidden="true" data-part="mark">
|
|
120
|
+
@if (markValue() === 'icon') {
|
|
121
|
+
<span slIcon><svg slGlyph [name]="glyph()"></svg></span>
|
|
122
|
+
}</span
|
|
123
|
+
><span data-part="label"
|
|
124
|
+
><ng-content
|
|
125
|
+
><span data-part="announcement" data-ui="visually-hidden">{{ name() }}</span></ng-content
|
|
126
|
+
></span
|
|
127
|
+
>`, isInline: true, styles: ["@layer slotted.components{[data-ui=status-indicator][data-part=root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_glyph-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-space-4, .5rem);--_line-height: var(--slotted-line-height-md, 1.5);--_dot-size: var(--slotted-space-4, .5rem);--_mark-size: var(--_dot-size);--_rim-width: var( --slotted-status-indicator-mark-border-width, var(--slotted-border-width-thin, 1px) );--_rim: var(--slotted-status-indicator-mark-border-color, var(--_edge, var(--_solid)));--_halo: color-mix(in oklab, var(--_rim) 20%, transparent);--_halo-width: calc(var(--slotted-space-1, .125rem) * 1.5);--_pulse-inset: round(nearest, (1lh - var(--_mark-size)) / 2, 1px);align-items:flex-start;color:inherit;display:inline-flex;font-family:var( --slotted-status-indicator-font-family, var(--slotted-control-font-family, sans-serif) );font-size:var(--_font-size);line-height:var(--_line-height);max-inline-size:100%;min-inline-size:0;position:relative;text-decoration:none;vertical-align:middle}[data-ui=status-indicator][data-part=root][data-status=neutral]{--_solid: var(--slotted-border-strong);--_text: var(--slotted-tone-secondary-text)}[data-ui=status-indicator][data-part=root][data-status=info]{--_solid: var(--slotted-tone-accent-solid);--_text: var(--slotted-tone-accent-text)}[data-ui=status-indicator][data-part=root][data-status=success]{--_solid: var(--slotted-tone-success-solid);--_text: var(--slotted-tone-success-text)}[data-ui=status-indicator][data-part=root][data-status=warning]{--_edge: var(--slotted-tone-warning-border);--_solid: var(--slotted-tone-warning-solid);--_text: var(--slotted-tone-warning-text)}[data-ui=status-indicator][data-part=root][data-status=danger]{--_solid: var(--slotted-tone-danger-solid);--_text: var(--slotted-tone-danger-text)}[data-ui=status-indicator][data-part=root][data-status=unknown]{--_edge: var(--slotted-border-strong);--_halo: transparent;--_solid: transparent;--_text: var(--slotted-tone-secondary-text)}[data-ui=status-indicator][data-part=root][data-mark=icon]{--_mark-size: var(--_glyph-size)}[data-ui=status-indicator][data-part=root][data-size=sm]{--_dot-size: var(--slotted-space-3, .375rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_glyph-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-space-3, .375rem);--_halo-width: var(--slotted-space-1, .125rem)}[data-ui=status-indicator][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_glyph-size: var(--slotted-control-icon-size-lg, 18px)}[data-ui=status-indicator] [data-part=mark]{block-size:var(--_mark-size);box-sizing:border-box;flex:none;inline-size:var(--_mark-size);margin-block-start:var(--_pulse-inset)}[data-ui=status-indicator][data-mark=dot] [data-part=mark]{background-color:var(--_solid, ButtonFace);border:var(--_rim-width) solid var(--_rim, CanvasText);border-radius:var(--slotted-radius-full, 9999px);box-shadow:0 0 0 var(--_halo-width) var(--_halo)}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]{border:0;position:relative}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]:before{border:var(--slotted-border-width-thick, 2px) dashed var(--_rim);border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;content:\"\";inset:calc(-1 * var(--_halo-width));position:absolute}[data-ui=status-indicator][data-mark=icon] [data-part=mark]{--slotted-icon-size: var(--_mark-size);color:var(--_text, CanvasText);display:flex}[data-ui=status-indicator] [data-part=label]{margin-inline-start:var(--_gap);min-inline-size:0;overflow-wrap:break-word}[data-ui=status-indicator] [data-part=label]:has(>[data-part=announcement]){margin-inline-start:0}[data-ui=status-indicator][data-part=root]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=status-indicator][data-part=root]:any-link{text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:from-font;text-underline-offset:.15em;transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=status-indicator][data-part=root]:any-link:not([data-disabled]):hover{text-decoration-color:currentColor}[data-ui=status-indicator][data-part=root]:any-link:not([data-disabled]):active{color:var(--slotted-text-muted, GrayText);text-decoration-color:currentColor}@keyframes slotted-status-indicator-pulse{0%{opacity:.45;scale:1}70%,to{opacity:0;scale:3}}[data-ui=status-indicator][data-pulse]{isolation:isolate}[data-ui=status-indicator][data-pulse]:after{animation:slotted-status-indicator-pulse var(--slotted-duration-loop-slow) var(--slotted-easing-enter) infinite;background-color:var(--_rim);block-size:var(--_mark-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_mark-size);inset-block-start:var(--_pulse-inset);inset-inline-start:0;pointer-events:none;position:absolute;z-index:-1}[data-ui=status-indicator][data-mark=icon][data-pulse]:after{content:none}@media(prefers-reduced-motion:reduce){[data-ui=status-indicator][data-pulse]:after{animation:none;content:none}}@media(forced-colors:active){[data-ui=status-indicator][data-mark=dot] [data-part=mark]{background-color:CanvasText;border-color:CanvasText}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]{background-color:Canvas}[data-ui=status-indicator][data-pulse]:after{content:none}}}\n", "@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"], dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
128
|
+
}
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlStatusIndicator, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{ selector: '[slStatusIndicator]', standalone: true, imports: [SlGlyph, SlIcon], template: `<span aria-hidden="true" data-part="mark">
|
|
132
|
+
@if (markValue() === 'icon') {
|
|
133
|
+
<span slIcon><svg slGlyph [name]="glyph()"></svg></span>
|
|
134
|
+
}</span
|
|
135
|
+
><span data-part="label"
|
|
136
|
+
><ng-content
|
|
137
|
+
><span data-part="announcement" data-ui="visually-hidden">{{ name() }}</span></ng-content
|
|
138
|
+
></span
|
|
139
|
+
>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slStatusIndicator', host: {
|
|
140
|
+
'data-ui': 'status-indicator',
|
|
141
|
+
'data-part': 'root',
|
|
142
|
+
'[attr.data-status]': 'status()',
|
|
143
|
+
'[attr.data-mark]': 'markValue()',
|
|
144
|
+
'[attr.data-size]': 'sizeValue()',
|
|
145
|
+
'[attr.data-pulse]': 'pulse() ? "" : null',
|
|
146
|
+
'[attr.role]': 'roleValue()',
|
|
147
|
+
}, styles: ["@layer slotted.components{[data-ui=status-indicator][data-part=root]{--_font-size: var(--slotted-control-font-size-md, 13px);--_glyph-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-space-4, .5rem);--_line-height: var(--slotted-line-height-md, 1.5);--_dot-size: var(--slotted-space-4, .5rem);--_mark-size: var(--_dot-size);--_rim-width: var( --slotted-status-indicator-mark-border-width, var(--slotted-border-width-thin, 1px) );--_rim: var(--slotted-status-indicator-mark-border-color, var(--_edge, var(--_solid)));--_halo: color-mix(in oklab, var(--_rim) 20%, transparent);--_halo-width: calc(var(--slotted-space-1, .125rem) * 1.5);--_pulse-inset: round(nearest, (1lh - var(--_mark-size)) / 2, 1px);align-items:flex-start;color:inherit;display:inline-flex;font-family:var( --slotted-status-indicator-font-family, var(--slotted-control-font-family, sans-serif) );font-size:var(--_font-size);line-height:var(--_line-height);max-inline-size:100%;min-inline-size:0;position:relative;text-decoration:none;vertical-align:middle}[data-ui=status-indicator][data-part=root][data-status=neutral]{--_solid: var(--slotted-border-strong);--_text: var(--slotted-tone-secondary-text)}[data-ui=status-indicator][data-part=root][data-status=info]{--_solid: var(--slotted-tone-accent-solid);--_text: var(--slotted-tone-accent-text)}[data-ui=status-indicator][data-part=root][data-status=success]{--_solid: var(--slotted-tone-success-solid);--_text: var(--slotted-tone-success-text)}[data-ui=status-indicator][data-part=root][data-status=warning]{--_edge: var(--slotted-tone-warning-border);--_solid: var(--slotted-tone-warning-solid);--_text: var(--slotted-tone-warning-text)}[data-ui=status-indicator][data-part=root][data-status=danger]{--_solid: var(--slotted-tone-danger-solid);--_text: var(--slotted-tone-danger-text)}[data-ui=status-indicator][data-part=root][data-status=unknown]{--_edge: var(--slotted-border-strong);--_halo: transparent;--_solid: transparent;--_text: var(--slotted-tone-secondary-text)}[data-ui=status-indicator][data-part=root][data-mark=icon]{--_mark-size: var(--_glyph-size)}[data-ui=status-indicator][data-part=root][data-size=sm]{--_dot-size: var(--slotted-space-3, .375rem);--_font-size: var(--slotted-control-font-size-sm, 12px);--_glyph-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-space-3, .375rem);--_halo-width: var(--slotted-space-1, .125rem)}[data-ui=status-indicator][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_glyph-size: var(--slotted-control-icon-size-lg, 18px)}[data-ui=status-indicator] [data-part=mark]{block-size:var(--_mark-size);box-sizing:border-box;flex:none;inline-size:var(--_mark-size);margin-block-start:var(--_pulse-inset)}[data-ui=status-indicator][data-mark=dot] [data-part=mark]{background-color:var(--_solid, ButtonFace);border:var(--_rim-width) solid var(--_rim, CanvasText);border-radius:var(--slotted-radius-full, 9999px);box-shadow:0 0 0 var(--_halo-width) var(--_halo)}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]{border:0;position:relative}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]:before{border:var(--slotted-border-width-thick, 2px) dashed var(--_rim);border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;content:\"\";inset:calc(-1 * var(--_halo-width));position:absolute}[data-ui=status-indicator][data-mark=icon] [data-part=mark]{--slotted-icon-size: var(--_mark-size);color:var(--_text, CanvasText);display:flex}[data-ui=status-indicator] [data-part=label]{margin-inline-start:var(--_gap);min-inline-size:0;overflow-wrap:break-word}[data-ui=status-indicator] [data-part=label]:has(>[data-part=announcement]){margin-inline-start:0}[data-ui=status-indicator][data-part=root]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=status-indicator][data-part=root]:any-link{text-decoration-color:transparent;text-decoration-line:underline;text-decoration-thickness:from-font;text-underline-offset:.15em;transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=status-indicator][data-part=root]:any-link:not([data-disabled]):hover{text-decoration-color:currentColor}[data-ui=status-indicator][data-part=root]:any-link:not([data-disabled]):active{color:var(--slotted-text-muted, GrayText);text-decoration-color:currentColor}@keyframes slotted-status-indicator-pulse{0%{opacity:.45;scale:1}70%,to{opacity:0;scale:3}}[data-ui=status-indicator][data-pulse]{isolation:isolate}[data-ui=status-indicator][data-pulse]:after{animation:slotted-status-indicator-pulse var(--slotted-duration-loop-slow) var(--slotted-easing-enter) infinite;background-color:var(--_rim);block-size:var(--_mark-size);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inline-size:var(--_mark-size);inset-block-start:var(--_pulse-inset);inset-inline-start:0;pointer-events:none;position:absolute;z-index:-1}[data-ui=status-indicator][data-mark=icon][data-pulse]:after{content:none}@media(prefers-reduced-motion:reduce){[data-ui=status-indicator][data-pulse]:after{animation:none;content:none}}@media(forced-colors:active){[data-ui=status-indicator][data-mark=dot] [data-part=mark]{background-color:CanvasText;border-color:CanvasText}[data-ui=status-indicator][data-mark=dot][data-status=unknown] [data-part=mark]{background-color:Canvas}[data-ui=status-indicator][data-pulse]:after{content:none}}}\n", "@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"] }]
|
|
148
|
+
}], propDecorators: { status: [{ type: i0.Input, args: [{ isSignal: true, alias: "status", required: false }] }], mark: [{ type: i0.Input, args: [{ isSignal: true, alias: "mark", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], pulse: [{ type: i0.Input, args: [{ isSignal: true, alias: "pulse", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }] } });
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Generated bundle index. Do not edit.
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
export { STATUS_INDICATOR_DEFAULTS_TOKEN, STATUS_INDICATOR_DEFAULT_LIVE, STATUS_INDICATOR_DEFAULT_MARK, STATUS_INDICATOR_DEFAULT_SIZE, STATUS_INDICATOR_DEFAULT_STATUS, SlStatusIndicator, injectStatusIndicatorDefaults, provideStatusIndicatorDefaults };
|
|
155
|
+
//# sourceMappingURL=slotted-angular-status-indicator.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-status-indicator.mjs","sources":["../../status-indicator/src/status-indicator-defaults.ts","../../status-indicator/src/status-indicator.constants.ts","../../status-indicator/src/status-indicator.ts","../../status-indicator/src/slotted-angular-status-indicator.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type {\n StatusIndicatorLive,\n StatusIndicatorMark,\n StatusIndicatorSize,\n} from './status-indicator.constants';\n\n/**\n * What every status in an application looks like before any one of them states\n * anything of its own. The six words come from the language in force\n * (`provideSlotted`).\n */\nexport interface StatusIndicatorDefaults {\n live?: StatusIndicatorLive;\n mark?: StatusIndicatorMark;\n size?: StatusIndicatorSize;\n}\n\nexport const STATUS_INDICATOR_DEFAULTS_TOKEN = new InjectionToken<StatusIndicatorDefaults>(\n 'slotted status indicator defaults',\n { providedIn: 'root', factory: (): StatusIndicatorDefaults => ({}) },\n);\n\n/**\n * An application decides once how its statuses are marked, how large they are\n * and whether they announce. An indicator that states any of those still wins:\n * an explicit input is never overridden by the token.\n */\nexport function provideStatusIndicatorDefaults(defaults: StatusIndicatorDefaults) {\n return { provide: STATUS_INDICATOR_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectStatusIndicatorDefaults(): StatusIndicatorDefaults {\n return inject(STATUS_INDICATOR_DEFAULTS_TOKEN);\n}\n","import type { GlyphName } from '@slotted/angular/icon';\n\n/**\n * The six operational states. The vocabulary is closed, and that is a decision\n * rather than an omission: a seventh value would carry no tone, no glyph and\n * no fallback word, which are the three things this family exists to supply.\n */\nexport type StatusIndicatorStatus =\n 'neutral' | 'info' | 'success' | 'warning' | 'danger' | 'unknown';\n\n/** The compact mark, and the one that says the status without colour. */\nexport type StatusIndicatorMark = 'dot' | 'icon';\nexport type StatusIndicatorSize = 'sm' | 'md' | 'lg';\nexport type StatusIndicatorLive = 'off' | 'polite' | 'assertive';\n\nexport const STATUS_INDICATOR_DEFAULT_STATUS: StatusIndicatorStatus = 'neutral';\n\n/**\n * The glyph each status draws when the mark is an icon, as the contract's\n * `statusGlyphs` names it. Two statuses never share one: the icon mark is the\n * family's non-chromatic answer, and `neutral` and `unknown` share a tone.\n */\nexport const STATUS_INDICATOR_GLYPHS: Record<StatusIndicatorStatus, GlyphName> = {\n neutral: 'circle',\n info: 'circle-info',\n success: 'circle-check',\n warning: 'circle-alert',\n danger: 'circle-x',\n unknown: 'circle-question',\n};\nexport const STATUS_INDICATOR_DEFAULT_MARK: StatusIndicatorMark = 'dot';\nexport const STATUS_INDICATOR_DEFAULT_SIZE: StatusIndicatorSize = 'md';\nexport const STATUS_INDICATOR_DEFAULT_LIVE: StatusIndicatorLive = 'off';\n\n/**\n * What `live` writes on the host. The names are the platform's: `status` is a\n * polite live region with an implicit `aria-atomic`, so the mark and its word\n * are announced as one thing; `alert` interrupts, which the APG's Alert\n * pattern reserves for a message that needs immediate attention.\n */\nexport const STATUS_INDICATOR_ROLE: Record<StatusIndicatorLive, string | null> = {\n off: null,\n polite: 'status',\n assertive: 'alert',\n};\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n type PartialMessages,\n statusIndicatorMessages,\n type StatusIndicatorMessages,\n} from '@slotted/core/i18n';\n\nimport { injectStatusIndicatorDefaults } from './status-indicator-defaults';\nimport {\n STATUS_INDICATOR_DEFAULT_LIVE,\n STATUS_INDICATOR_DEFAULT_MARK,\n STATUS_INDICATOR_DEFAULT_SIZE,\n STATUS_INDICATOR_DEFAULT_STATUS,\n STATUS_INDICATOR_GLYPHS,\n STATUS_INDICATOR_ROLE,\n type StatusIndicatorLive,\n type StatusIndicatorMark,\n type StatusIndicatorSize,\n type StatusIndicatorStatus,\n} from './status-indicator.constants';\n\n/**\n * The operational state of something the application observes.\n *\n * The family reports; it never moves the value. That is why there is no\n * `model()` here and no output — `status` is the application's fact about a\n * system this component cannot see, the same relationship a progress range has\n * to the work it reports.\n *\n * It is always named. Given projected content, that content is the name; given\n * none, the status's own word is rendered and clipped from view. The fallback\n * belongs to `<ng-content>` rather than to a flag the component has to compute,\n * which is Angular's own answer to the question React answers with\n * `children === undefined`: the template knows whether anything was projected,\n * so nothing has to inspect the DOM to find out.\n *\n * The selector is a bare attribute, so the element stays the consumer's: a\n * status belongs in whatever a table cell, a list item or a heading already\n * is, and wrapping it in a second element would change their layout to carry\n * an attribute.\n */\n@Component({\n selector: '[slStatusIndicator]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n /* The icon mark's glyph follows the status; the sheet sizes and colours it. */\n template: `<span aria-hidden=\"true\" data-part=\"mark\">\n @if (markValue() === 'icon') {\n <span slIcon><svg slGlyph [name]=\"glyph()\"></svg></span>\n }</span\n ><span data-part=\"label\"\n ><ng-content\n ><span data-part=\"announcement\" data-ui=\"visually-hidden\">{{ name() }}</span></ng-content\n ></span\n >`,\n styleUrls: [\n '../../../styles/src/status-indicator/status-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slStatusIndicator',\n host: {\n 'data-ui': 'status-indicator',\n 'data-part': 'root',\n '[attr.data-status]': 'status()',\n '[attr.data-mark]': 'markValue()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-pulse]': 'pulse() ? \"\" : null',\n '[attr.role]': 'roleValue()',\n },\n})\nexport class SlStatusIndicator {\n readonly status = input<StatusIndicatorStatus>(STATUS_INDICATOR_DEFAULT_STATUS);\n readonly mark = input<StatusIndicatorMark | undefined>(undefined);\n readonly size = input<StatusIndicatorSize | undefined>(undefined);\n readonly live = input<StatusIndicatorLive | undefined>(undefined);\n /**\n * A wave leaving the dot, for a change happening now. An icon mark does not\n * pulse, and the wave is withdrawn under reduced motion and under forced\n * colours, so nothing is ever said by the wave alone.\n */\n readonly pulse = input(false, { transform: booleanAttribute });\n /**\n * What a reader hears when nothing was projected. Ignored when something\n * was, because naming an element twice is how a screen reader comes to read\n * “Success Healthy”. Falls back to the status's word in the catalog.\n */\n readonly label = input<string | undefined>(undefined);\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * word each status is heard as when nothing was projected.\n */\n readonly messages = input<PartialMessages<StatusIndicatorMessages> | undefined>(undefined);\n\n private readonly defaults = injectStatusIndicatorDefaults();\n /** The family's words in the language in force, with this indicator's `messages` laid over them. */\n readonly t = injectMessages(statusIndicatorMessages, this.messages);\n /**\n * Read once, before the host binding writes one. A consumer who put\n * `role=\"note\"` on their own element keeps it, which is the rule\n * `frameworks.md` states for every static attribute a family writes over.\n */\n private readonly ownRole = inject(new HostAttributeToken('role'), { optional: true });\n\n readonly markValue = computed(\n () => this.mark() ?? this.defaults.mark ?? STATUS_INDICATOR_DEFAULT_MARK,\n );\n readonly sizeValue = computed(\n () => this.size() ?? this.defaults.size ?? STATUS_INDICATOR_DEFAULT_SIZE,\n );\n readonly liveValue = computed(\n () => this.live() ?? this.defaults.live ?? STATUS_INDICATOR_DEFAULT_LIVE,\n );\n\n readonly glyph = computed(() => STATUS_INDICATOR_GLYPHS[this.status()]);\n\n readonly roleValue = computed(() => this.ownRole ?? STATUS_INDICATOR_ROLE[this.liveValue()]);\n\n readonly name = computed(() => this.label() ?? this.t(this.status()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAmBO,MAAM,+BAA+B,GAAG,IAAI,cAAc,CAC/D,mCAAmC,EACnC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAgC,EAAE,CAAC,EAAE;AAGtE;;;;AAIG;AACG,SAAU,8BAA8B,CAAC,QAAiC,EAAA;IAC9E,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACzE;SAEgB,6BAA6B,GAAA;AAC3C,IAAA,OAAO,MAAM,CAAC,+BAA+B,CAAC;AAChD;;ACpBO,MAAM,+BAA+B,GAA0B;AAEtE;;;;AAIG;AACI,MAAM,uBAAuB,GAA6C;AAC/E,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,OAAO,EAAE,iBAAiB;CAC3B;AACM,MAAM,6BAA6B,GAAwB;AAC3D,MAAM,6BAA6B,GAAwB;AAC3D,MAAM,6BAA6B,GAAwB;AAElE;;;;;AAKG;AACI,MAAM,qBAAqB,GAA+C;AAC/E,IAAA,GAAG,EAAE,IAAI;AACT,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,SAAS,EAAE,OAAO;CACnB;;ACZD;;;;;;;;;;;;;;;;;;;AAmBG;MAgCU,iBAAiB,CAAA;IACnB,MAAM,GAAG,KAAK,CAAwB,+BAA+B;+EAAC;IACtE,IAAI,GAAG,KAAK,CAAkC,SAAS;6EAAC;IACxD,IAAI,GAAG,KAAK,CAAkC,SAAS;6EAAC;IACxD,IAAI,GAAG,KAAK,CAAkC,SAAS;6EAAC;AACjE;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAC9D;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAqB,SAAS;8EAAC;AACrD;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAuD,SAAS;iFAAC;IAEzE,QAAQ,GAAG,6BAA6B,EAAE;;IAElD,CAAC,GAAG,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC;AACnE;;;;AAIG;AACc,IAAA,OAAO,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE5E,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,6BAA6B;kFACzE;AACQ,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,6BAA6B;kFACzE;AACQ,IAAA,SAAS,GAAG,QAAQ,CAC3B,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,6BAA6B;kFACzE;AAEQ,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;8EAAC;AAE9D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;kFAAC;AAEnF,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;6EAAC;uGA/C1D,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA1BlB,CAAA;;;;;;;;MAQN,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0gLAAA,EAAA,6QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAVM,OAAO,oFAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA4Bd,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA/B7B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA,QAAA,EAEhB,CAAA;;;;;;;;MAQN,EAAA,eAAA,EAKa,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,mBAAmB,EAAA,IAAA,EACvB;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,oBAAoB,EAAE,UAAU;AAChC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,mBAAmB,EAAE,qBAAqB;AAC1C,wBAAA,aAAa,EAAE,aAAa;AAC7B,qBAAA,EAAA,MAAA,EAAA,CAAA,0gLAAA,EAAA,6QAAA,CAAA,EAAA;;;ACjFH;;AAEG;;"}
|