@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.10
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/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +1 -0
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +24 -7
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +6 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +35 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +5 -0
- package/docs/drawer.md +1 -0
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +129 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +4 -3
- package/docs/page-header.md +2 -2
- package/docs/page.json +1 -0
- package/docs/page.md +1 -0
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +5 -5
- package/docs/section.json +27 -15
- package/docs/section.md +11 -9
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +95 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +77 -0
- package/docs/skills/theme-app/SKILL.md +87 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +7 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +4 -4
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +22 -11
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +90 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +166 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +112 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +354 -113
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +53 -29
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +189 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +75 -45
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +184 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +49 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +22 -11
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +74 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +49 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +7 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +4 -4
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-avatar.mjs","sources":["../../avatar/src/avatar-defaults.ts","../../avatar/src/avatar-fallback.ts","../../avatar/src/avatar-image-host.ts","../../avatar/src/avatar-image.ts","../../avatar/src/avatar.ts","../../avatar/src/slotted-angular-avatar.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/**\n * Which of the five semantic colours the fallback is painted in. `auto` derives\n * it from the name, so the same person keeps the same colour in a list that is\n * re-sorted and in a table that is paged.\n */\nexport type AvatarTone = 'auto' | 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\n\n/** The palette `auto` chooses from, in the order the hash indexes it. */\nexport type AvatarResolvedTone = Exclude<AvatarTone, 'auto'>;\n\n/** How that colour is painted. `soft` is the tinted disc an avatar usually is. */\nexport type AvatarVariant = 'soft' | 'solid';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** A circle is a person; a square is a team, an organisation or a bot. */\nexport type AvatarShape = 'circle' | 'square';\n\n/** Where the picture is. Four values, because a boolean cannot say why there is none. */\nexport type AvatarStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\nexport type AvatarGroupLayout = 'stack' | 'spread';\n\nexport interface AvatarDefaults {\n /** BCP 47. Used to case the initials, and by the group to join names. */\n locale: string | undefined;\n shape: AvatarShape;\n size: AvatarSize;\n tone: AvatarTone;\n variant: AvatarVariant;\n}\n\nconst FALLBACK: AvatarDefaults = {\n locale: undefined,\n shape: 'circle',\n size: 'md',\n tone: 'auto',\n variant: 'soft',\n};\n\nexport const AVATAR_DEFAULTS = new InjectionToken<AvatarDefaults>('slotted avatar defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its avatars are shaped, how large they are,\n * how they are painted and — the one that matters most — which locale cases\n * their initials, rather than repeating four inputs on every avatar. An avatar\n * that states any of them itself still wins: an explicit input is never\n * overridden by the token.\n *\n * `SlAvatarGroup` provides the same token rather than a channel of its own,\n * which is what keeps a member's explicit `size` winning over the group's.\n */\nexport function provideAvatarDefaults(defaults: Partial<AvatarDefaults>) {\n return {\n provide: AVATAR_DEFAULTS,\n useFactory: (): AvatarDefaults => ({\n locale: defaults.locale ?? FALLBACK.locale,\n shape: defaults.shape ?? FALLBACK.shape,\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What an avatar renders as here, before it states anything of its own. */\nexport function injectAvatarDefaults(): AvatarDefaults {\n return inject(AVATAR_DEFAULTS);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Content that stands in for the picture, in place of the initials and the\n * glyph: a company mark, a product logo, an `sl-icon`.\n *\n * It is a marker rather than a bare `<ng-content>` because Angular cannot ask\n * whether anything was projected, and an avatar that wrote its initials\n * *and* the consumer's logo into the same disc would be drawing two fallbacks.\n * React answers the same question by looking at `children`.\n */\n@Directive({\n selector: '[slAvatarFallback]',\n standalone: true,\n exportAs: 'slAvatarFallback',\n})\nexport class SlAvatarFallback {}\n","import { InjectionToken } from '@angular/core';\n\nimport type { AvatarStatus } from './avatar-defaults';\n\n/**\n * What the picture tells the avatar it sits in.\n *\n * It is a token rather than the component's own class so that one directive can\n * serve both pictures the family knows about: the `<img>` the avatar renders\n * for its own `src`, and the `<img>` the consumer projects — which is the one\n * that carries `ngSrc`, and therefore the one `NgOptimizedImage` can reach. A\n * directive that injected the component directly would put a cycle between the\n * two files, and the component imports the directive for its own template.\n */\nexport interface AvatarImageHost {\n reportStatus(status: AvatarStatus): void;\n}\n\nexport const AVATAR_IMAGE_HOST = new InjectionToken<AvatarImageHost>('slotted avatar image host');\n","import { afterNextRender, Directive, ElementRef, HostAttributeToken, inject } from '@angular/core';\n\nimport { AVATAR_IMAGE_HOST } from './avatar-image-host';\n\n/**\n * The picture inside an avatar.\n *\n * It is written on an `<img>` the consumer owns, which is what lets\n * `NgOptimizedImage` do its work: `ngSrc`, the priority hint, the generated\n * `srcset` and the size warnings all belong to a real `<img>` in the\n * consumer's template, and none of them survive being handed a `src` string\n * through an input. React has no equivalent, and its `renderImage` is the other\n * half of the same idea.\n *\n * `alt` is written empty only when the consumer wrote none: the avatar's name\n * is on the root, so naming the picture as well would read the person twice —\n * and would name them differently before the picture arrives.\n */\n@Directive({\n selector: 'img[slAvatarImage]',\n standalone: true,\n exportAs: 'slAvatarImage',\n host: {\n 'data-part': 'image',\n '[attr.alt]': 'alt',\n '(load)': 'avatar.reportStatus(\"loaded\")',\n '(error)': 'avatar.reportStatus(\"error\")',\n },\n})\nexport class SlAvatarImage {\n protected readonly avatar = inject(AVATAR_IMAGE_HOST);\n\n /** A static `alt` the consumer wrote is read before the host binding writes one. */\n protected readonly alt = inject(new HostAttributeToken('alt'), { optional: true }) ?? '';\n\n private readonly element = inject<ElementRef<HTMLImageElement>>(ElementRef).nativeElement;\n\n constructor() {\n /**\n * A picture already in the browser cache finishes decoding before the\n * listener is attached, so the element is asked whether it is already\n * complete rather than waited on for an event that has been and gone.\n * Without it an avatar shows initials over a picture that is already there.\n */\n afterNextRender(() => {\n if (this.element.complete && this.element.naturalWidth > 0) {\n this.avatar.reportStatus('loaded');\n }\n });\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n linkedSignal,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { initialsFrom, toneFrom } from '@slotted/core/identity';\n\nimport {\n injectAvatarDefaults,\n type AvatarResolvedTone,\n type AvatarShape,\n type AvatarSize,\n type AvatarStatus,\n type AvatarTone,\n type AvatarVariant,\n} from './avatar-defaults';\nimport { SlAvatarFallback } from './avatar-fallback';\nimport { AVATAR_IMAGE_HOST } from './avatar-image-host';\nimport { SlAvatarImage } from './avatar-image';\n\nexport type {\n AvatarDefaults,\n AvatarGroupLayout,\n AvatarResolvedTone,\n AvatarShape,\n AvatarSize,\n AvatarStatus,\n AvatarTone,\n AvatarVariant,\n} from './avatar-defaults';\n\n/**\n * The palette `tone=\"auto\"` chooses from, in the order the hash indexes it.\n * Five is a small palette and collisions are frequent by construction: the\n * colour is an aid to scanning a list of faces, and the name is what identifies\n * the person — which is why it is on the root in every one of the four\n * statuses.\n */\nconst AUTO_TONES: readonly AvatarResolvedTone[] = [\n 'accent',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n];\n\n/** At the smallest step there is room for one letter, which is Fluent's rule at 16 pixels. */\nconst INITIALS_MAX: Record<AvatarSize, number> = { xs: 1, sm: 2, md: 2, lg: 2, xl: 2 };\n\n/**\n * A picture of a person or an entity, and what stands in when there is none:\n * the initials taken from the name, then a glyph the family owns. A request\n * that fails never paints the browser's torn-page mark, because the picture is\n * out of sight until it reports that it arrived.\n *\n * The component is written on the element the page chose, so a `span` in a\n * table cell, an `a` that opens a profile and a `button` that opens a menu are\n * all the same avatar.\n *\n * The name lives on the root and the picture takes an empty `alt`, so the\n * avatar announces the same thing before and after the photograph loads. Every\n * surveyed implementation names the image instead, which makes the same avatar\n * “Ada Lovelace” once the picture arrives and “AL” before it.\n *\n * `status` is an input with an output beside it rather than a `model()`. A\n * `model()` promises a two-way binding for a value the browser owns: the\n * component would write over whatever the consumer passed the first time an\n * image loaded. Here the consumer's value simply wins, and the output reports\n * the derivation — a load event is a fact rather than a request, so there is\n * nothing to cancel and no reason from the closed vocabulary that fits it.\n */\n@Component({\n selector: '[slAvatar]',\n standalone: true,\n exportAs: 'slAvatar',\n imports: [SlAvatarImage, SlGlyph, SlIcon],\n providers: [\n /* The component is its own image host, and a decorator is evaluated before\n the class it decorates exists. */\n { provide: AVATAR_IMAGE_HOST, useExisting: forwardRef(() => SlAvatar) },\n ],\n template: `@if (src(); as source) {\n <img slAvatarImage [src]=\"source\" />\n }\n <ng-content select=\"img\"></ng-content\n ><span data-part=\"fallback\">\n @if (custom() === undefined) {\n <!-- No picture and no name to take initials from: the person glyph. -->\n @if (initials() === '') {\n <span slIcon><svg slGlyph name=\"person\"></svg></span>\n } @else {\n {{ initials() }}\n }\n }\n <ng-content select=\"[slAvatarFallback]\"></ng-content\n ></span>`,\n styleUrl: '../../../styles/src/avatar/avatar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'avatar',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-shape]': 'resolvedShape()',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-status]': 'resolvedStatus()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.role]': 'role()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-hidden]': 'ariaHidden()',\n },\n})\nexport class SlAvatar {\n /**\n * The person or entity this is a picture of. It is the accessible name in\n * every status, the source of the initials, and the seed of the colour.\n */\n readonly name = input<string | undefined>(undefined);\n /** The picture. Absent, the avatar is its fallback and nothing is requested. */\n readonly src = input<string | undefined>(undefined);\n /**\n * The letters to draw, in place of the ones derived from the name. Two\n * graphemes at most is what the box holds; `xs` draws one.\n */\n readonly initialsOverride = input<string | undefined>(undefined, { alias: 'initials' });\n /**\n * A stable identifier to derive the colour from, when the name is not stable\n * or two people share one. Defaults to `name`.\n */\n readonly idFor = input<string | undefined>(undefined);\n /** BCP 47, for the case of the initials. Defaults to the provider, then to the runtime. */\n readonly locale = input<string | undefined>(undefined);\n /** Defaults to the provider, then to `md`. */\n readonly size = input<AvatarSize | undefined>(undefined);\n /** Defaults to the provider, then to `circle`. */\n readonly shape = input<AvatarShape | undefined>(undefined);\n /** Defaults to the provider, then to `auto`, which derives it from the name. */\n readonly tone = input<AvatarTone | undefined>(undefined);\n /** Defaults to the provider, then to `soft`. */\n readonly variant = input<AvatarVariant | undefined>(undefined);\n /** A deactivated account, or an avatar inside a control the page has turned off. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Takes the avatar out of the accessibility tree. For an avatar beside the\n * name it belongs to, where announcing it would read the person twice.\n */\n readonly decorative = input(false, { transform: booleanAttribute });\n /**\n * Where the picture is. Supplied, it wins over what the component derives\n * from the element — for a server that already knows, or a loader the family\n * cannot see.\n */\n readonly status = input<AvatarStatus | undefined>(undefined);\n\n /** Reports the derived status. Never emits for a status passed in. */\n readonly statusChange = output<AvatarStatus>();\n\n private readonly defaults = injectAvatarDefaults();\n /** An explicit role the consumer wrote is never replaced by an inferred one. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly custom = contentChild(SlAvatarFallback);\n private readonly projected = contentChild(SlAvatarImage);\n\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedShape = computed(() => this.shape() ?? this.defaults.shape);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n private readonly resolvedLocale = computed(() => this.locale() ?? this.defaults.locale);\n\n /**\n * The derivation, and the picture it belongs to. A new request makes the\n * previous answer describe nothing, so the status starts again from what the\n * props alone can say — which is also what a server render and the hydration\n * after it both compute, so nothing flashes between them.\n */\n private readonly derived = linkedSignal<string, AvatarStatus>({\n source: () => `${this.src() ?? ''}|${this.projected() === undefined ? '' : 'projected'}`,\n computation: (request) => (request === '|' ? 'idle' : 'loading'),\n });\n\n protected readonly resolvedStatus = computed(() => this.status() ?? this.derived());\n\n protected readonly resolvedTone = computed<AvatarResolvedTone>(() => {\n const tone = this.tone() ?? this.defaults.tone;\n if (tone !== 'auto') return tone;\n return toneFrom({ seed: this.idFor() ?? this.name(), tones: AUTO_TONES }) ?? 'secondary';\n });\n\n protected readonly initials = computed(\n () =>\n this.initialsOverride() ??\n initialsFrom({\n name: this.name(),\n max: INITIALS_MAX[this.resolvedSize()],\n locale: this.resolvedLocale(),\n }),\n );\n\n /**\n * The W3C `alt` decision tree, in this library's vocabulary and with the rule\n * `icon` already took: a name present decides `role=\"img\"`, an absent one\n * decides `aria-hidden`. `decorative` is the third case — a name that is\n * written beside the avatar, where announcing it reads the person twice.\n */\n private readonly silent = computed(() => {\n const name = this.name();\n return this.decorative() || name === undefined || name.trim() === '';\n });\n\n protected readonly role = computed(() => this.writtenRole ?? (this.silent() ? null : 'img'));\n protected readonly ariaLabel = computed(() => (this.silent() ? null : (this.name() ?? null)));\n protected readonly ariaHidden = computed(() => (this.silent() ? 'true' : null));\n\n /** Called by the picture, whichever of the two elements it turned out to be. */\n reportStatus(status: AvatarStatus) {\n this.derived.set(status);\n this.statusChange.emit(status);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-avatar.mjs","sources":["../../avatar/src/avatar-defaults.ts","../../avatar/src/avatar-fallback.ts","../../avatar/src/avatar-image-host.ts","../../avatar/src/avatar-image.ts","../../avatar/src/avatar.ts","../../avatar/src/slotted-angular-avatar.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/**\n * Which of the five semantic colours the fallback is painted in. `auto` derives\n * it from the name, so the same person keeps the same colour in a list that is\n * re-sorted and in a table that is paged.\n */\nexport type AvatarTone =\n 'auto' | 'accent' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\n\n/** The palette `auto` chooses from, in the order the hash indexes it. */\nexport type AvatarResolvedTone = Exclude<AvatarTone, 'auto'>;\n\n/** How that colour is painted. `soft` is the tinted disc an avatar usually is. */\nexport type AvatarVariant = 'soft' | 'solid';\n/**\n * The ground behind the avatar. `tone` paints the tone behind the fallback and\n * nothing behind a loaded picture; `none` paints nothing; `plate` paints a\n * light plate in every scheme, for a logo designed for a white ground.\n */\nexport type AvatarSurface = 'tone' | 'none' | 'plate';\n\nexport type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** A circle is a person; a square is a team, an organisation or a bot. */\nexport type AvatarShape = 'circle' | 'square';\n\n/** Where the picture is. Four values, because a boolean cannot say why there is none. */\nexport type AvatarStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\nexport type AvatarGroupLayout = 'stack' | 'spread';\n\nexport interface AvatarDefaults {\n /** BCP 47. Used to case the initials, and by the group to join names. */\n locale: string | undefined;\n shape: AvatarShape;\n size: AvatarSize;\n tone: AvatarTone;\n variant: AvatarVariant;\n}\n\nconst FALLBACK: AvatarDefaults = {\n locale: undefined,\n shape: 'circle',\n size: 'md',\n tone: 'auto',\n variant: 'soft',\n};\n\nexport const AVATAR_DEFAULTS = new InjectionToken<AvatarDefaults>('slotted avatar defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its avatars are shaped, how large they are,\n * how they are painted and — the one that matters most — which locale cases\n * their initials, rather than repeating four inputs on every avatar. An avatar\n * that states any of them itself still wins: an explicit input is never\n * overridden by the token.\n *\n * `SlAvatarGroup` provides the same token rather than a channel of its own,\n * which is what keeps a member's explicit `size` winning over the group's.\n */\nexport function provideAvatarDefaults(defaults: Partial<AvatarDefaults>) {\n return {\n provide: AVATAR_DEFAULTS,\n useFactory: (): AvatarDefaults => ({\n locale: defaults.locale ?? FALLBACK.locale,\n shape: defaults.shape ?? FALLBACK.shape,\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What an avatar renders as here, before it states anything of its own. */\nexport function injectAvatarDefaults(): AvatarDefaults {\n return inject(AVATAR_DEFAULTS);\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Content that stands in for the picture, in place of the initials and the\n * glyph: a company mark, a product logo, an `sl-icon`.\n *\n * It is a marker rather than a bare `<ng-content>` because Angular cannot ask\n * whether anything was projected, and an avatar that wrote its initials\n * *and* the consumer's logo into the same disc would be drawing two fallbacks.\n * React answers the same question by looking at `children`.\n */\n@Directive({\n selector: '[slAvatarFallback]',\n standalone: true,\n exportAs: 'slAvatarFallback',\n})\nexport class SlAvatarFallback {}\n","import { InjectionToken } from '@angular/core';\n\nimport type { AvatarStatus } from './avatar-defaults';\n\n/**\n * What the picture tells the avatar it sits in.\n *\n * It is a token rather than the component's own class so that one directive can\n * serve both pictures the family knows about: the `<img>` the avatar renders\n * for its own `src`, and the `<img>` the consumer projects — which is the one\n * that carries `ngSrc`, and therefore the one `NgOptimizedImage` can reach. A\n * directive that injected the component directly would put a cycle between the\n * two files, and the component imports the directive for its own template.\n */\nexport interface AvatarImageHost {\n reportStatus(status: AvatarStatus): void;\n}\n\nexport const AVATAR_IMAGE_HOST = new InjectionToken<AvatarImageHost>('slotted avatar image host');\n","import { afterNextRender, Directive, ElementRef, HostAttributeToken, inject } from '@angular/core';\n\nimport { AVATAR_IMAGE_HOST } from './avatar-image-host';\n\n/**\n * The picture inside an avatar.\n *\n * It is written on an `<img>` the consumer owns, which is what lets\n * `NgOptimizedImage` do its work: `ngSrc`, the priority hint, the generated\n * `srcset` and the size warnings all belong to a real `<img>` in the\n * consumer's template, and none of them survive being handed a `src` string\n * through an input. React has no equivalent, and its `renderImage` is the other\n * half of the same idea.\n *\n * `alt` is written empty only when the consumer wrote none: the avatar's name\n * is on the root, so naming the picture as well would read the person twice —\n * and would name them differently before the picture arrives.\n */\n@Directive({\n selector: 'img[slAvatarImage]',\n standalone: true,\n exportAs: 'slAvatarImage',\n host: {\n 'data-part': 'image',\n 'data-part-image': '',\n '[attr.alt]': 'alt',\n '(load)': 'avatar.reportStatus(\"loaded\")',\n '(error)': 'avatar.reportStatus(\"error\")',\n },\n})\nexport class SlAvatarImage {\n protected readonly avatar = inject(AVATAR_IMAGE_HOST);\n\n /** A static `alt` the consumer wrote is read before the host binding writes one. */\n protected readonly alt = inject(new HostAttributeToken('alt'), { optional: true }) ?? '';\n\n private readonly element = inject<ElementRef<HTMLImageElement>>(ElementRef).nativeElement;\n\n constructor() {\n /**\n * A picture already in the browser cache finishes decoding before the\n * listener is attached, so the element is asked whether it is already\n * complete rather than waited on for an event that has been and gone.\n * Without it an avatar shows initials over a picture that is already there.\n */\n afterNextRender(() => {\n if (this.element.complete && this.element.naturalWidth > 0) {\n this.avatar.reportStatus('loaded');\n }\n });\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n linkedSignal,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { initialsFrom, toneFrom } from '@slotted/core/identity';\n\nimport {\n injectAvatarDefaults,\n type AvatarResolvedTone,\n type AvatarShape,\n type AvatarSize,\n type AvatarStatus,\n type AvatarTone,\n type AvatarSurface,\n type AvatarVariant,\n} from './avatar-defaults';\nimport { SlAvatarFallback } from './avatar-fallback';\nimport { AVATAR_IMAGE_HOST } from './avatar-image-host';\nimport { SlAvatarImage } from './avatar-image';\n\nexport type {\n AvatarDefaults,\n AvatarGroupLayout,\n AvatarResolvedTone,\n AvatarShape,\n AvatarSize,\n AvatarStatus,\n AvatarTone,\n AvatarSurface,\n AvatarVariant,\n} from './avatar-defaults';\n\n/**\n * The palette `tone=\"auto\"` chooses from, in the order the hash indexes it.\n * Five is a small palette and collisions are frequent by construction: the\n * colour is an aid to scanning a list of faces, and the name is what identifies\n * the person — which is why it is on the root in every one of the four\n * statuses.\n */\nconst AUTO_TONES: readonly AvatarResolvedTone[] = [\n 'accent',\n 'secondary',\n 'success',\n 'warning',\n 'danger',\n];\n\n/** At the smallest step there is room for one letter, which is Fluent's rule at 16 pixels. */\nconst INITIALS_MAX: Record<AvatarSize, number> = { xs: 1, sm: 2, md: 2, lg: 2, xl: 2 };\n\n/**\n * A picture of a person or an entity, and what stands in when there is none:\n * the initials taken from the name, then a glyph the family owns. A request\n * that fails never paints the browser's torn-page mark, because the picture is\n * out of sight until it reports that it arrived.\n *\n * The component is written on the element the page chose, so a `span` in a\n * table cell, an `a` that opens a profile and a `button` that opens a menu are\n * all the same avatar.\n *\n * The name lives on the root and the picture takes an empty `alt`, so the\n * avatar announces the same thing before and after the photograph loads. Every\n * surveyed implementation names the image instead, which makes the same avatar\n * “Ada Lovelace” once the picture arrives and “AL” before it.\n *\n * `status` is an input with an output beside it rather than a `model()`. A\n * `model()` promises a two-way binding for a value the browser owns: the\n * component would write over whatever the consumer passed the first time an\n * image loaded. Here the consumer's value simply wins, and the output reports\n * the derivation — a load event is a fact rather than a request, so there is\n * nothing to cancel and no reason from the closed vocabulary that fits it.\n */\n@Component({\n selector: '[slAvatar]',\n standalone: true,\n exportAs: 'slAvatar',\n imports: [SlAvatarImage, SlGlyph, SlIcon],\n providers: [\n /* The component is its own image host, and a decorator is evaluated before\n the class it decorates exists. */\n { provide: AVATAR_IMAGE_HOST, useExisting: forwardRef(() => SlAvatar) },\n ],\n template: `@if (src(); as source) {\n <img slAvatarImage [src]=\"source\" />\n }\n <ng-content select=\"img\"></ng-content\n ><span data-part=\"fallback\" data-part-fallback=\"\">\n @if (custom() === undefined) {\n <!-- No picture and no name to take initials from: the person glyph. -->\n @if (initials() === '') {\n <span slIcon><svg slGlyph name=\"person\"></svg></span>\n } @else {\n {{ initials() }}\n }\n }\n <ng-content select=\"[slAvatarFallback]\"></ng-content\n ></span>`,\n styleUrl: '../../../styles/src/avatar/avatar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'avatar',\n 'data-ui-avatar': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-shape]': 'resolvedShape()',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-surface]': 'surface()',\n '[attr.data-status]': 'resolvedStatus()',\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '[attr.role]': 'role()',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-hidden]': 'ariaHidden()',\n },\n})\nexport class SlAvatar {\n /**\n * The person or entity this is a picture of. It is the accessible name in\n * every status, the source of the initials, and the seed of the colour.\n */\n readonly name = input<string | undefined>(undefined);\n /** The picture. Absent, the avatar is its fallback and nothing is requested. */\n readonly src = input<string | undefined>(undefined);\n /**\n * The letters to draw, in place of the ones derived from the name. Two\n * graphemes at most is what the box holds; `xs` draws one.\n */\n readonly initialsOverride = input<string | undefined>(undefined, { alias: 'initials' });\n /**\n * A stable identifier to derive the colour from, when the name is not stable\n * or two people share one. Defaults to `name`.\n */\n readonly idFor = input<string | undefined>(undefined);\n /** BCP 47, for the case of the initials. Defaults to the provider, then to the runtime. */\n readonly locale = input<string | undefined>(undefined);\n /** Defaults to the provider, then to `md`. */\n readonly size = input<AvatarSize | undefined>(undefined);\n /** Defaults to the provider, then to `circle`. */\n readonly shape = input<AvatarShape | undefined>(undefined);\n /** Defaults to the provider, then to `auto`, which derives it from the name. */\n readonly tone = input<AvatarTone | undefined>(undefined);\n /** Defaults to the provider, then to `soft`. */\n readonly variant = input<AvatarVariant | undefined>(undefined);\n /** The ground behind the avatar; `tone` by default. */\n readonly surface = input<AvatarSurface>('tone');\n /** A deactivated account, or an avatar inside a control the page has turned off. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /**\n * Takes the avatar out of the accessibility tree. For an avatar beside the\n * name it belongs to, where announcing it would read the person twice.\n */\n readonly decorative = input(false, { transform: booleanAttribute });\n /**\n * Where the picture is. Supplied, it wins over what the component derives\n * from the element — for a server that already knows, or a loader the family\n * cannot see.\n */\n readonly status = input<AvatarStatus | undefined>(undefined);\n\n /** Reports the derived status. Never emits for a status passed in. */\n readonly statusChange = output<AvatarStatus>();\n\n private readonly defaults = injectAvatarDefaults();\n /** An explicit role the consumer wrote is never replaced by an inferred one. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly custom = contentChild(SlAvatarFallback);\n private readonly projected = contentChild(SlAvatarImage);\n\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedShape = computed(() => this.shape() ?? this.defaults.shape);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n private readonly resolvedLocale = computed(() => this.locale() ?? this.defaults.locale);\n\n /**\n * The derivation, and the picture it belongs to. A new request makes the\n * previous answer describe nothing, so the status starts again from what the\n * props alone can say — which is also what a server render and the hydration\n * after it both compute, so nothing flashes between them.\n */\n private readonly derived = linkedSignal<string, AvatarStatus>({\n source: () => `${this.src() ?? ''}|${this.projected() === undefined ? '' : 'projected'}`,\n computation: (request) => (request === '|' ? 'idle' : 'loading'),\n });\n\n protected readonly resolvedStatus = computed(() => this.status() ?? this.derived());\n\n protected readonly resolvedTone = computed<AvatarResolvedTone>(() => {\n const tone = this.tone() ?? this.defaults.tone;\n if (tone !== 'auto') return tone;\n return toneFrom({ seed: this.idFor() ?? this.name(), tones: AUTO_TONES }) ?? 'secondary';\n });\n\n protected readonly initials = computed(\n () =>\n this.initialsOverride() ??\n initialsFrom({\n name: this.name(),\n max: INITIALS_MAX[this.resolvedSize()],\n locale: this.resolvedLocale(),\n }),\n );\n\n /**\n * The W3C `alt` decision tree, in this library's vocabulary and with the rule\n * `icon` already took: a name present decides `role=\"img\"`, an absent one\n * decides `aria-hidden`. `decorative` is the third case — a name that is\n * written beside the avatar, where announcing it reads the person twice.\n */\n private readonly silent = computed(() => {\n const name = this.name();\n return this.decorative() || name === undefined || name.trim() === '';\n });\n\n protected readonly role = computed(() => this.writtenRole ?? (this.silent() ? null : 'img'));\n protected readonly ariaLabel = computed(() => (this.silent() ? null : (this.name() ?? null)));\n protected readonly ariaHidden = computed(() => (this.silent() ? 'true' : null));\n\n /** Called by the picture, whichever of the two elements it turned out to be. */\n reportStatus(status: AvatarStatus) {\n this.derived.set(status);\n this.statusChange.emit(status);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -125,17 +125,19 @@ class SlBadge {
|
|
|
125
125
|
value = computed(() => this.resolvedShape() === 'dot' ? '' : (this.counted() ?? ''), /* @ts-ignore */
|
|
126
126
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
127
127
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadge, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBadge, isStandalone: true, selector: "[slBadge]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, showZero: { classPropertyName: "showZero", publicName: "showZero", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "badge", "data-part": "root" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-shape": "resolvedShape()", "attr.role": "role()", "style.display": "empty() ? 'none' : null" } }, exportAs: ["slBadge"], ngImport: i0, template: `<ng-content select="[slBadgeStart]"></ng-content
|
|
129
|
-
><span data-part="label">{{ value() }}<ng-content></ng-content></span
|
|
130
|
-
><ng-content select="[slBadgeEnd]"></ng-content>`, isInline: true, styles: ["@layer slotted.components{[data-ui
|
|
128
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlBadge, isStandalone: true, selector: "[slBadge]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, showZero: { classPropertyName: "showZero", publicName: "showZero", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "badge", "data-ui-badge": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-shape": "resolvedShape()", "attr.role": "role()", "style.display": "empty() ? 'none' : null" } }, exportAs: ["slBadge"], ngImport: i0, template: `<ng-content select="[slBadgeStart]"></ng-content
|
|
129
|
+
><span data-part="label" data-part-label="">{{ value() }}<ng-content></ng-content></span
|
|
130
|
+
><ng-content select="[slBadgeEnd]"></ng-content>`, isInline: true, styles: ["@layer slotted.components{[data-ui-badge][data-part-root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inset-block: var(--slotted-space-1, .125rem);--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_dot-size: var(--_font-size);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-badge-border-width, var(--slotted-border-width-thin, 1px));--_block-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );align-items:center;border:var(--_edge-width) solid transparent;border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-badge-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-badge-font-weight, var(--slotted-font-weight-medium, 500));gap:var(--_gap);justify-content:center;line-height:var(--_line-height);max-inline-size:100%;min-block-size:var(--_block-size);min-inline-size:var(--_block-size);padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);text-decoration:none;vertical-align:middle;white-space:nowrap}[data-ui-badge][data-part-root][data-tone=secondary]{--_edge: var(--_border)}[data-ui-badge][data-part-root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text)}[data-ui-badge][data-part-root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_border: var(--slotted-tone-success-border);--_text: var(--slotted-tone-success-text)}[data-ui-badge][data-part-root][data-tone=info]{--_solid: var(--slotted-tone-info-solid);--_on-solid: var(--slotted-tone-info-on-solid);--_surface: var(--slotted-tone-info-surface);--_border: var(--slotted-tone-info-border);--_text: var(--slotted-tone-info-text)}[data-ui-badge][data-part-root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_border: var(--slotted-tone-warning-border);--_text: var(--slotted-tone-warning-text)}[data-ui-badge][data-part-root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_border: var(--slotted-tone-danger-border);--_text: var(--slotted-tone-danger-text)}[data-ui-badge][data-part-root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui-badge][data-part-root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-badge][data-part-root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-badge][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: 0px;--_inset-inline: var(--slotted-space-3, .375rem);--_gap: var(--slotted-space-2, .25rem)}[data-ui-badge][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inset-block: var(--slotted-space-2, .25rem);--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui-badge][data-part-root][data-shape=square]{border-radius:var(--slotted-badge-radius, var(--slotted-radius-sm, 4px))}[data-ui-badge][data-part-root][data-shape=dot]{block-size:var(--_dot-size);border-color:var(--slotted-badge-dot-border-color, var(--slotted-border-strong, CanvasText));border-radius:var(--slotted-radius-full, 9999px);inline-size:var(--_dot-size);min-block-size:0;min-inline-size:0;padding-block:0;padding-inline:0}[data-ui-badge][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-badge] [data-part-label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis}@supports (text-box: trim-both cap alphabetic){[data-ui-badge] [data-part-label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui-badge] [data-part-start],[data-ui-badge] [data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui-badge] [data-part-start]>*,[data-ui-badge] [data-part-end]>*{block-size:100%;display:block;inline-size:100%}[data-ui-badge][data-part-anchor]{--_dir: 1;--_overhang-inline: 50%;--_overhang-block: -50%;--_anchor-inset: 0%;--_offset-inline: var(--slotted-badge-anchor-offset-x, 0px);--_offset-block: var(--slotted-badge-anchor-offset-y, 0px);display:inline-flex;position:relative;vertical-align:middle}[data-ui-badge][data-part-anchor]:dir(rtl){--_dir: -1}[data-ui-badge][data-part-anchor][data-overlap=circle]{--_anchor-inset: 14%}[data-ui-badge][data-part-anchor][data-placement=top-start],[data-ui-badge][data-part-anchor][data-placement=bottom-start]{--_overhang-inline: -50%}[data-ui-badge][data-part-anchor][data-placement=bottom-start],[data-ui-badge][data-part-anchor][data-placement=bottom-end]{--_overhang-block: 50%}[data-ui-badge][data-part-anchor]>[data-ui-badge][data-part-root]{box-shadow:0 0 0 var(--slotted-badge-ring-width, var(--slotted-border-width-thick, 2px)) var(--slotted-badge-ring-color, var(--slotted-surface, Canvas));max-inline-size:none;position:absolute;translate:calc((var(--_overhang-inline) + var(--_offset-inline)) * var(--_dir)) calc(var(--_overhang-block) + var(--_offset-block));z-index:1}[data-ui-badge][data-part-anchor][data-placement=top-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=top-start]>[data-part-root]{inset-block-start:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=bottom-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-start]>[data-part-root]{inset-block-end:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=top-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-end]>[data-part-root]{inset-inline-end:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=top-start]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-start]>[data-part-root]{inset-inline-start:var(--_anchor-inset)}@media(forced-colors:active){[data-ui-badge][data-part-root]{border-color:currentColor}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
131
131
|
}
|
|
132
132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadge, decorators: [{
|
|
133
133
|
type: Component,
|
|
134
134
|
args: [{ selector: '[slBadge]', standalone: true, exportAs: 'slBadge', template: `<ng-content select="[slBadgeStart]"></ng-content
|
|
135
|
-
><span data-part="label">{{ value() }}<ng-content></ng-content></span
|
|
135
|
+
><span data-part="label" data-part-label="">{{ value() }}<ng-content></ng-content></span
|
|
136
136
|
><ng-content select="[slBadgeEnd]"></ng-content>`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
137
137
|
'data-ui': 'badge',
|
|
138
|
+
'data-ui-badge': '',
|
|
138
139
|
'data-part': 'root',
|
|
140
|
+
'data-part-root': '',
|
|
139
141
|
'[attr.data-tone]': 'resolvedTone()',
|
|
140
142
|
'[attr.data-variant]': 'resolvedVariant()',
|
|
141
143
|
'[attr.data-size]': 'resolvedSize()',
|
|
@@ -150,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
150
152
|
* which the `hidden` attribute would lose to.
|
|
151
153
|
*/
|
|
152
154
|
'[style.display]': "empty() ? 'none' : null",
|
|
153
|
-
}, styles: ["@layer slotted.components{[data-ui
|
|
155
|
+
}, styles: ["@layer slotted.components{[data-ui-badge][data-part-root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inset-block: var(--slotted-space-1, .125rem);--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_dot-size: var(--_font-size);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-badge-border-width, var(--slotted-border-width-thin, 1px));--_block-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );align-items:center;border:var(--_edge-width) solid transparent;border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-badge-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-badge-font-weight, var(--slotted-font-weight-medium, 500));gap:var(--_gap);justify-content:center;line-height:var(--_line-height);max-inline-size:100%;min-block-size:var(--_block-size);min-inline-size:var(--_block-size);padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);text-decoration:none;vertical-align:middle;white-space:nowrap}[data-ui-badge][data-part-root][data-tone=secondary]{--_edge: var(--_border)}[data-ui-badge][data-part-root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text)}[data-ui-badge][data-part-root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_border: var(--slotted-tone-success-border);--_text: var(--slotted-tone-success-text)}[data-ui-badge][data-part-root][data-tone=info]{--_solid: var(--slotted-tone-info-solid);--_on-solid: var(--slotted-tone-info-on-solid);--_surface: var(--slotted-tone-info-surface);--_border: var(--slotted-tone-info-border);--_text: var(--slotted-tone-info-text)}[data-ui-badge][data-part-root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_border: var(--slotted-tone-warning-border);--_text: var(--slotted-tone-warning-text)}[data-ui-badge][data-part-root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_border: var(--slotted-tone-danger-border);--_text: var(--slotted-tone-danger-text)}[data-ui-badge][data-part-root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui-badge][data-part-root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-badge][data-part-root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui-badge][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: 0px;--_inset-inline: var(--slotted-space-3, .375rem);--_gap: var(--slotted-space-2, .25rem)}[data-ui-badge][data-part-root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inset-block: var(--slotted-space-2, .25rem);--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui-badge][data-part-root][data-shape=square]{border-radius:var(--slotted-badge-radius, var(--slotted-radius-sm, 4px))}[data-ui-badge][data-part-root][data-shape=dot]{block-size:var(--_dot-size);border-color:var(--slotted-badge-dot-border-color, var(--slotted-border-strong, CanvasText));border-radius:var(--slotted-radius-full, 9999px);inline-size:var(--_dot-size);min-block-size:0;min-inline-size:0;padding-block:0;padding-inline:0}[data-ui-badge][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-badge] [data-part-label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis}@supports (text-box: trim-both cap alphabetic){[data-ui-badge] [data-part-label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui-badge] [data-part-start],[data-ui-badge] [data-part-end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui-badge] [data-part-start]>*,[data-ui-badge] [data-part-end]>*{block-size:100%;display:block;inline-size:100%}[data-ui-badge][data-part-anchor]{--_dir: 1;--_overhang-inline: 50%;--_overhang-block: -50%;--_anchor-inset: 0%;--_offset-inline: var(--slotted-badge-anchor-offset-x, 0px);--_offset-block: var(--slotted-badge-anchor-offset-y, 0px);display:inline-flex;position:relative;vertical-align:middle}[data-ui-badge][data-part-anchor]:dir(rtl){--_dir: -1}[data-ui-badge][data-part-anchor][data-overlap=circle]{--_anchor-inset: 14%}[data-ui-badge][data-part-anchor][data-placement=top-start],[data-ui-badge][data-part-anchor][data-placement=bottom-start]{--_overhang-inline: -50%}[data-ui-badge][data-part-anchor][data-placement=bottom-start],[data-ui-badge][data-part-anchor][data-placement=bottom-end]{--_overhang-block: 50%}[data-ui-badge][data-part-anchor]>[data-ui-badge][data-part-root]{box-shadow:0 0 0 var(--slotted-badge-ring-width, var(--slotted-border-width-thick, 2px)) var(--slotted-badge-ring-color, var(--slotted-surface, Canvas));max-inline-size:none;position:absolute;translate:calc((var(--_overhang-inline) + var(--_offset-inline)) * var(--_dir)) calc(var(--_overhang-block) + var(--_offset-block));z-index:1}[data-ui-badge][data-part-anchor][data-placement=top-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=top-start]>[data-part-root]{inset-block-start:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=bottom-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-start]>[data-part-root]{inset-block-end:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=top-end]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-end]>[data-part-root]{inset-inline-end:var(--_anchor-inset)}[data-ui-badge][data-part-anchor][data-placement=top-start]>[data-part-root],[data-ui-badge][data-part-anchor][data-placement=bottom-start]>[data-part-root]{inset-inline-start:var(--_anchor-inset)}@media(forced-colors:active){[data-ui-badge][data-part-root]{border-color:currentColor}}}\n"] }]
|
|
154
156
|
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], count: [{ type: i0.Input, args: [{ isSignal: true, alias: "count", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], showZero: [{ type: i0.Input, args: [{ isSignal: true, alias: "showZero", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }] } });
|
|
155
157
|
|
|
156
158
|
/**
|
|
@@ -192,7 +194,7 @@ class SlBadgeAnchor {
|
|
|
192
194
|
offsetY = computed(() => length(this.offset()?.y), /* @ts-ignore */
|
|
193
195
|
...(ngDevMode ? [{ debugName: "offsetY" }] : /* istanbul ignore next */ []));
|
|
194
196
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
195
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlBadgeAnchor, isStandalone: true, selector: "[slBadgeAnchor]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, overlap: { classPropertyName: "overlap", publicName: "overlap", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "badge", "data-part": "anchor" }, properties: { "attr.data-placement": "resolvedPlacement()", "attr.data-overlap": "resolvedOverlap()", "style.--slotted-badge-anchor-offset-x": "offsetX()", "style.--slotted-badge-anchor-offset-y": "offsetY()" } }, exportAs: ["slBadgeAnchor"], ngImport: i0 });
|
|
197
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlBadgeAnchor, isStandalone: true, selector: "[slBadgeAnchor]", inputs: { placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, overlap: { classPropertyName: "overlap", publicName: "overlap", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "badge", "data-ui-badge": "", "data-part": "anchor", "data-part-anchor": "" }, properties: { "attr.data-placement": "resolvedPlacement()", "attr.data-overlap": "resolvedOverlap()", "style.--slotted-badge-anchor-offset-x": "offsetX()", "style.--slotted-badge-anchor-offset-y": "offsetY()" } }, exportAs: ["slBadgeAnchor"], ngImport: i0 });
|
|
196
198
|
}
|
|
197
199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeAnchor, decorators: [{
|
|
198
200
|
type: Directive,
|
|
@@ -202,7 +204,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
202
204
|
exportAs: 'slBadgeAnchor',
|
|
203
205
|
host: {
|
|
204
206
|
'data-ui': 'badge',
|
|
207
|
+
'data-ui-badge': '',
|
|
205
208
|
'data-part': 'anchor',
|
|
209
|
+
'data-part-anchor': '',
|
|
206
210
|
'[attr.data-placement]': 'resolvedPlacement()',
|
|
207
211
|
'[attr.data-overlap]': 'resolvedOverlap()',
|
|
208
212
|
'[style.--slotted-badge-anchor-offset-x]': 'offsetX()',
|
|
@@ -221,7 +225,7 @@ function length(value) {
|
|
|
221
225
|
*/
|
|
222
226
|
class SlBadgeStart {
|
|
223
227
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeStart, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
224
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBadgeStart, isStandalone: true, selector: "[slBadgeStart]", host: { attributes: { "data-part": "start" } }, exportAs: ["slBadgeStart"], ngImport: i0 });
|
|
228
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBadgeStart, isStandalone: true, selector: "[slBadgeStart]", host: { attributes: { "data-part": "start", "data-part-start": "" } }, exportAs: ["slBadgeStart"], ngImport: i0 });
|
|
225
229
|
}
|
|
226
230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeStart, decorators: [{
|
|
227
231
|
type: Directive,
|
|
@@ -229,13 +233,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
229
233
|
selector: '[slBadgeStart]',
|
|
230
234
|
standalone: true,
|
|
231
235
|
exportAs: 'slBadgeStart',
|
|
232
|
-
host: { 'data-part': 'start' },
|
|
236
|
+
host: { 'data-part': 'start', 'data-part-start': '' },
|
|
233
237
|
}]
|
|
234
238
|
}] });
|
|
235
239
|
/** A glyph after the words. */
|
|
236
240
|
class SlBadgeEnd {
|
|
237
241
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeEnd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
238
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBadgeEnd, isStandalone: true, selector: "[slBadgeEnd]", host: { attributes: { "data-part": "end" } }, exportAs: ["slBadgeEnd"], ngImport: i0 });
|
|
242
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlBadgeEnd, isStandalone: true, selector: "[slBadgeEnd]", host: { attributes: { "data-part": "end", "data-part-end": "" } }, exportAs: ["slBadgeEnd"], ngImport: i0 });
|
|
239
243
|
}
|
|
240
244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlBadgeEnd, decorators: [{
|
|
241
245
|
type: Directive,
|
|
@@ -243,7 +247,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
243
247
|
selector: '[slBadgeEnd]',
|
|
244
248
|
standalone: true,
|
|
245
249
|
exportAs: 'slBadgeEnd',
|
|
246
|
-
host: { 'data-part': 'end' },
|
|
250
|
+
host: { 'data-part': 'end', 'data-part-end': '' },
|
|
247
251
|
}]
|
|
248
252
|
}] });
|
|
249
253
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-badge.mjs","sources":["../../badge/src/badge-defaults.ts","../../badge/src/badge.ts","../../badge/src/badge-anchor.ts","../../badge/src/badge-content.ts","../../badge/src/slotted-angular-badge.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** Which of the five semantic colours the badge speaks in. */\nexport type BadgeTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\n\n/** How that colour is painted. `soft` is the tinted chip a badge usually is. */\nexport type BadgeVariant = 'solid' | 'soft' | 'outline';\n\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n\n/** `dot` is the same badge, tone and hidden text, drawn without a value. */\nexport type BadgeShape = 'pill' | 'square' | 'dot';\n\n/** Whether a changing badge is announced, and how urgently. */\nexport type BadgeLive = 'off' | 'polite' | 'assertive';\n\nexport type BadgePlacement = 'top-end' | 'top-start' | 'bottom-end' | 'bottom-start';\n\n/** The shape of the host, which decides how far in from the corner to sit. */\nexport type BadgeOverlap = 'rectangle' | 'circle';\n\n/**\n * The page's own correction of the corner, in CSS pixels.\n *\n * `x` runs along the inline axis, from the leading edge towards the trailing\n * one, so it mirrors with the document: a badge moved two pixels back along it\n * keeps the same relation to its host in a right-to-left page. `y` runs down\n * the block axis. Both default to nought.\n */\nexport interface BadgeOffset {\n x?: number | undefined;\n y?: number | undefined;\n}\n\nexport interface BadgeDefaults {\n /** BCP 47. Absent, the runtime's own default writes the digits. */\n locale: string | undefined;\n max: number | false;\n shape: BadgeShape;\n size: BadgeSize;\n tone: BadgeTone;\n variant: BadgeVariant;\n}\n\nconst FALLBACK: BadgeDefaults = {\n locale: undefined,\n max: 99,\n shape: 'pill',\n size: 'md',\n tone: 'secondary',\n variant: 'soft',\n};\n\nexport const BADGE_DEFAULTS = new InjectionToken<BadgeDefaults>('slotted badge defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its badges are painted, how large they are\n * and — the one that matters most — which locale writes their digits, rather\n * than repeating five inputs on every badge. A badge that states any of them\n * itself still wins: an explicit input is never overridden by the token.\n */\nexport function provideBadgeDefaults(defaults: Partial<BadgeDefaults>) {\n return {\n provide: BADGE_DEFAULTS,\n useFactory: (): BadgeDefaults => ({\n locale: defaults.locale ?? FALLBACK.locale,\n max: defaults.max ?? FALLBACK.max,\n shape: defaults.shape ?? FALLBACK.shape,\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What a badge renders as here, before it states anything of its own. */\nexport function injectBadgeDefaults(): BadgeDefaults {\n return inject(BADGE_DEFAULTS);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { formatCount } from '@slotted/core/count';\n\nimport { injectBadgeDefaults } from './badge-defaults';\nimport type { BadgeLive, BadgeShape, BadgeSize, BadgeTone, BadgeVariant } from './badge-defaults';\n\nexport type {\n BadgeLive,\n BadgeOverlap,\n BadgePlacement,\n BadgeShape,\n BadgeSize,\n BadgeTone,\n BadgeVariant,\n} from './badge-defaults';\n\nconst ROLE: Record<BadgeLive, string | null> = { off: null, polite: 'status', assertive: 'alert' };\n\n/**\n * A short, non-editable piece of metadata: a count, a status, a label. It is\n * never a command — it answers no hover and gives no press feedback — and it\n * carries no role of its own, because what a badge means comes from where it\n * sits.\n *\n * The directive is written on the element the page chose, so a `span` in a\n * sentence, a `dd` in a description list and an `a` that navigates are all the\n * same badge.\n *\n * `count` is the one place the family does work rather than paint. The ceiling\n * above which a count becomes `99+`, whether nought is a value or an absence,\n * and which locale writes the digits are three decisions every consumer would\n * otherwise take again, and `@slotted/core/count` is where both bindings take\n * them once.\n */\n@Component({\n selector: '[slBadge]',\n standalone: true,\n exportAs: 'slBadge',\n /**\n * The text has a box of its own so `text-box` can trim its line to the cap\n * and the baseline: a flex container's own text lives in an anonymous item no\n * stylesheet can reach. The glyphs are projected by selector, so they stay\n * siblings of that box rather than joining the line inside it.\n */\n template: `<ng-content select=\"[slBadgeStart]\"></ng-content\n ><span data-part=\"label\">{{ value() }}<ng-content></ng-content></span\n ><ng-content select=\"[slBadgeEnd]\"></ng-content>`,\n styleUrl: '../../../styles/src/badge/badge.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'badge',\n 'data-part': 'root',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-shape]': 'resolvedShape()',\n '[attr.role]': 'role()',\n /**\n * React returns nothing for a count that has fallen to nought. This\n * directive is written on an element the consumer owns, so it cannot\n * un-write it; `display: none` is the same outcome the platform can give\n * from here — no box, no layout, and nothing in the accessibility tree.\n * The inline style is what beats the family's own `display: inline-flex`,\n * which the `hidden` attribute would lose to.\n */\n '[style.display]': \"empty() ? 'none' : null\",\n },\n})\nexport class SlBadge {\n /** Defaults to the provider, then to `secondary`. */\n readonly tone = input<BadgeTone>();\n /** Defaults to the provider, then to `soft`. */\n readonly variant = input<BadgeVariant>();\n /** Defaults to the provider, then to `md`. */\n readonly size = input<BadgeSize>();\n /** `dot` draws no value; the words it cannot say are projected content. */\n readonly shape = input<BadgeShape>();\n /**\n * Whether a change to this badge is announced, and how urgently. `off` by\n * default: a page of twenty badges that all announce is a page no screen\n * reader user can read.\n */\n readonly live = input<BadgeLive>('off');\n /** The number the badge shows, written before any projected content. */\n readonly count = input<number | undefined>(undefined);\n /**\n * The largest count written in full; above it the badge shows the ceiling and\n * a `+`. `false` removes the ceiling. Defaults to the provider, then to `99`.\n */\n readonly max = input<number | false | undefined>(undefined);\n /** Whether a count of nought is a value worth showing or an absence worth hiding. */\n readonly showZero = input(false, { transform: booleanAttribute });\n /** BCP 47, for the digits of `count`. Defaults to the provider, then to the runtime. */\n readonly locale = input<string | undefined>(undefined);\n\n private readonly defaults = injectBadgeDefaults();\n /** An explicit role the consumer wrote is never replaced by an inferred one. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly resolvedTone = computed(() => this.tone() ?? this.defaults.tone);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedShape = computed(() => this.shape() ?? this.defaults.shape);\n\n protected readonly role = computed(() => this.writtenRole ?? ROLE[this.live()]);\n\n private readonly counted = computed(() => {\n const count = this.count();\n if (count === undefined) return undefined;\n return formatCount({\n count,\n max: this.max() ?? this.defaults.max,\n showZero: this.showZero(),\n locale: this.locale() ?? this.defaults.locale,\n });\n });\n\n /**\n * A count that has fallen to nought leaves the corner rather than sitting\n * there as a blank circle. A badge given no count at all is untouched by the\n * rule: an empty `dot` is the whole point of that shape.\n */\n protected readonly empty = computed(\n () => this.count() !== undefined && this.counted() === undefined,\n );\n\n /** A dot draws no value at any size. */\n protected readonly value = computed(() =>\n this.resolvedShape() === 'dot' ? '' : (this.counted() ?? ''),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport type { BadgeOffset, BadgeOverlap, BadgePlacement } from './badge-defaults';\n\n/**\n * The frame that places a badge on the corner of something else. It is written\n * on the element the page already has around the host — a `span`, a `div`, the\n * `li` of a list — rather than wrapping it, which is the one place this binding\n * is the smaller of the two: React must render a wrapper of its own.\n *\n * It does not rewrite the host's semantics. The badge is read after the host in\n * document order, and an interactive host whose name must carry the count wires\n * `aria-describedby` to the badge's own id, or names the count in its own\n * `aria-label`. Both wirings are on the reference page.\n */\n@Directive({\n selector: '[slBadgeAnchor]',\n standalone: true,\n exportAs: 'slBadgeAnchor',\n host: {\n 'data-ui': 'badge',\n 'data-part': 'anchor',\n '[attr.data-placement]': 'resolvedPlacement()',\n '[attr.data-overlap]': 'resolvedOverlap()',\n '[style.--slotted-badge-anchor-offset-x]': 'offsetX()',\n '[style.--slotted-badge-anchor-offset-y]': 'offsetY()',\n },\n})\nexport class SlBadgeAnchor {\n /** Which corner of the host the badge sits on. Mirrors in a right-to-left document. */\n readonly placement = input<BadgePlacement>();\n /** `circle` moves the badge in from the corner far enough to meet the curve. */\n readonly overlap = input<BadgeOverlap>();\n /**\n * Moves the badge off the corner the frame computed, in pixels. `overlap` has\n * two values and hosts have many: how far a badge sits into one depends on\n * that host's own curve, shadow and optical weight.\n */\n readonly offset = input<BadgeOffset>();\n\n protected readonly resolvedPlacement = computed(() => this.placement() ?? 'top-end');\n protected readonly resolvedOverlap = computed(() => this.overlap() ?? 'rectangle');\n /**\n * An axis the page did not state is `null`, which removes the property rather\n * than writing nought into it: the sheet's own default is what answers, and a\n * theme that moves it still wins.\n */\n protected readonly offsetX = computed(() => length(this.offset()?.x));\n protected readonly offsetY = computed(() => length(this.offset()?.y));\n}\n\nfunction length(value: number | undefined): string | null {\n return value === undefined ? null : `${value}px`;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A glyph before the words. The artwork is the consumer's, and the part gives\n * it a box that is sized and centred; the directive is written on the element\n * the page already has, so nothing is wrapped.\n */\n@Directive({\n selector: '[slBadgeStart]',\n standalone: true,\n exportAs: 'slBadgeStart',\n host: { 'data-part': 'start' },\n})\nexport class SlBadgeStart {}\n\n/** A glyph after the words. */\n@Directive({\n selector: '[slBadgeEnd]',\n standalone: true,\n exportAs: 'slBadgeEnd',\n host: { 'data-part': 'end' },\n})\nexport class SlBadgeEnd {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-badge.mjs","sources":["../../badge/src/badge-defaults.ts","../../badge/src/badge.ts","../../badge/src/badge-anchor.ts","../../badge/src/badge-content.ts","../../badge/src/slotted-angular-badge.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\n/** Which of the five semantic colours the badge speaks in. */\nexport type BadgeTone = 'accent' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\n\n/** How that colour is painted. `soft` is the tinted chip a badge usually is. */\nexport type BadgeVariant = 'solid' | 'soft' | 'outline';\n\nexport type BadgeSize = 'sm' | 'md' | 'lg';\n\n/** `dot` is the same badge, tone and hidden text, drawn without a value. */\nexport type BadgeShape = 'pill' | 'square' | 'dot';\n\n/** Whether a changing badge is announced, and how urgently. */\nexport type BadgeLive = 'off' | 'polite' | 'assertive';\n\nexport type BadgePlacement = 'top-end' | 'top-start' | 'bottom-end' | 'bottom-start';\n\n/** The shape of the host, which decides how far in from the corner to sit. */\nexport type BadgeOverlap = 'rectangle' | 'circle';\n\n/**\n * The page's own correction of the corner, in CSS pixels.\n *\n * `x` runs along the inline axis, from the leading edge towards the trailing\n * one, so it mirrors with the document: a badge moved two pixels back along it\n * keeps the same relation to its host in a right-to-left page. `y` runs down\n * the block axis. Both default to nought.\n */\nexport interface BadgeOffset {\n x?: number | undefined;\n y?: number | undefined;\n}\n\nexport interface BadgeDefaults {\n /** BCP 47. Absent, the runtime's own default writes the digits. */\n locale: string | undefined;\n max: number | false;\n shape: BadgeShape;\n size: BadgeSize;\n tone: BadgeTone;\n variant: BadgeVariant;\n}\n\nconst FALLBACK: BadgeDefaults = {\n locale: undefined,\n max: 99,\n shape: 'pill',\n size: 'md',\n tone: 'secondary',\n variant: 'soft',\n};\n\nexport const BADGE_DEFAULTS = new InjectionToken<BadgeDefaults>('slotted badge defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its badges are painted, how large they are\n * and — the one that matters most — which locale writes their digits, rather\n * than repeating five inputs on every badge. A badge that states any of them\n * itself still wins: an explicit input is never overridden by the token.\n */\nexport function provideBadgeDefaults(defaults: Partial<BadgeDefaults>) {\n return {\n provide: BADGE_DEFAULTS,\n useFactory: (): BadgeDefaults => ({\n locale: defaults.locale ?? FALLBACK.locale,\n max: defaults.max ?? FALLBACK.max,\n shape: defaults.shape ?? FALLBACK.shape,\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n variant: defaults.variant ?? FALLBACK.variant,\n }),\n };\n}\n\n/** What a badge renders as here, before it states anything of its own. */\nexport function injectBadgeDefaults(): BadgeDefaults {\n return inject(BADGE_DEFAULTS);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { formatCount } from '@slotted/core/count';\n\nimport { injectBadgeDefaults } from './badge-defaults';\nimport type { BadgeLive, BadgeShape, BadgeSize, BadgeTone, BadgeVariant } from './badge-defaults';\n\nexport type {\n BadgeLive,\n BadgeOverlap,\n BadgePlacement,\n BadgeShape,\n BadgeSize,\n BadgeTone,\n BadgeVariant,\n} from './badge-defaults';\n\nconst ROLE: Record<BadgeLive, string | null> = { off: null, polite: 'status', assertive: 'alert' };\n\n/**\n * A short, non-editable piece of metadata: a count, a status, a label. It is\n * never a command — it answers no hover and gives no press feedback — and it\n * carries no role of its own, because what a badge means comes from where it\n * sits.\n *\n * The directive is written on the element the page chose, so a `span` in a\n * sentence, a `dd` in a description list and an `a` that navigates are all the\n * same badge.\n *\n * `count` is the one place the family does work rather than paint. The ceiling\n * above which a count becomes `99+`, whether nought is a value or an absence,\n * and which locale writes the digits are three decisions every consumer would\n * otherwise take again, and `@slotted/core/count` is where both bindings take\n * them once.\n */\n@Component({\n selector: '[slBadge]',\n standalone: true,\n exportAs: 'slBadge',\n /**\n * The text has a box of its own so `text-box` can trim its line to the cap\n * and the baseline: a flex container's own text lives in an anonymous item no\n * stylesheet can reach. The glyphs are projected by selector, so they stay\n * siblings of that box rather than joining the line inside it.\n */\n template: `<ng-content select=\"[slBadgeStart]\"></ng-content\n ><span data-part=\"label\" data-part-label=\"\">{{ value() }}<ng-content></ng-content></span\n ><ng-content select=\"[slBadgeEnd]\"></ng-content>`,\n styleUrl: '../../../styles/src/badge/badge.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'badge',\n 'data-ui-badge': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-shape]': 'resolvedShape()',\n '[attr.role]': 'role()',\n /**\n * React returns nothing for a count that has fallen to nought. This\n * directive is written on an element the consumer owns, so it cannot\n * un-write it; `display: none` is the same outcome the platform can give\n * from here — no box, no layout, and nothing in the accessibility tree.\n * The inline style is what beats the family's own `display: inline-flex`,\n * which the `hidden` attribute would lose to.\n */\n '[style.display]': \"empty() ? 'none' : null\",\n },\n})\nexport class SlBadge {\n /** Defaults to the provider, then to `secondary`. */\n readonly tone = input<BadgeTone>();\n /** Defaults to the provider, then to `soft`. */\n readonly variant = input<BadgeVariant>();\n /** Defaults to the provider, then to `md`. */\n readonly size = input<BadgeSize>();\n /** `dot` draws no value; the words it cannot say are projected content. */\n readonly shape = input<BadgeShape>();\n /**\n * Whether a change to this badge is announced, and how urgently. `off` by\n * default: a page of twenty badges that all announce is a page no screen\n * reader user can read.\n */\n readonly live = input<BadgeLive>('off');\n /** The number the badge shows, written before any projected content. */\n readonly count = input<number | undefined>(undefined);\n /**\n * The largest count written in full; above it the badge shows the ceiling and\n * a `+`. `false` removes the ceiling. Defaults to the provider, then to `99`.\n */\n readonly max = input<number | false | undefined>(undefined);\n /** Whether a count of nought is a value worth showing or an absence worth hiding. */\n readonly showZero = input(false, { transform: booleanAttribute });\n /** BCP 47, for the digits of `count`. Defaults to the provider, then to the runtime. */\n readonly locale = input<string | undefined>(undefined);\n\n private readonly defaults = injectBadgeDefaults();\n /** An explicit role the consumer wrote is never replaced by an inferred one. */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly resolvedTone = computed(() => this.tone() ?? this.defaults.tone);\n protected readonly resolvedVariant = computed(() => this.variant() ?? this.defaults.variant);\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedShape = computed(() => this.shape() ?? this.defaults.shape);\n\n protected readonly role = computed(() => this.writtenRole ?? ROLE[this.live()]);\n\n private readonly counted = computed(() => {\n const count = this.count();\n if (count === undefined) return undefined;\n return formatCount({\n count,\n max: this.max() ?? this.defaults.max,\n showZero: this.showZero(),\n locale: this.locale() ?? this.defaults.locale,\n });\n });\n\n /**\n * A count that has fallen to nought leaves the corner rather than sitting\n * there as a blank circle. A badge given no count at all is untouched by the\n * rule: an empty `dot` is the whole point of that shape.\n */\n protected readonly empty = computed(\n () => this.count() !== undefined && this.counted() === undefined,\n );\n\n /** A dot draws no value at any size. */\n protected readonly value = computed(() =>\n this.resolvedShape() === 'dot' ? '' : (this.counted() ?? ''),\n );\n}\n","import { computed, Directive, input } from '@angular/core';\n\nimport type { BadgeOffset, BadgeOverlap, BadgePlacement } from './badge-defaults';\n\n/**\n * The frame that places a badge on the corner of something else. It is written\n * on the element the page already has around the host — a `span`, a `div`, the\n * `li` of a list — rather than wrapping it, which is the one place this binding\n * is the smaller of the two: React must render a wrapper of its own.\n *\n * It does not rewrite the host's semantics. The badge is read after the host in\n * document order, and an interactive host whose name must carry the count wires\n * `aria-describedby` to the badge's own id, or names the count in its own\n * `aria-label`. Both wirings are on the reference page.\n */\n@Directive({\n selector: '[slBadgeAnchor]',\n standalone: true,\n exportAs: 'slBadgeAnchor',\n host: {\n 'data-ui': 'badge',\n 'data-ui-badge': '',\n 'data-part': 'anchor',\n 'data-part-anchor': '',\n '[attr.data-placement]': 'resolvedPlacement()',\n '[attr.data-overlap]': 'resolvedOverlap()',\n '[style.--slotted-badge-anchor-offset-x]': 'offsetX()',\n '[style.--slotted-badge-anchor-offset-y]': 'offsetY()',\n },\n})\nexport class SlBadgeAnchor {\n /** Which corner of the host the badge sits on. Mirrors in a right-to-left document. */\n readonly placement = input<BadgePlacement>();\n /** `circle` moves the badge in from the corner far enough to meet the curve. */\n readonly overlap = input<BadgeOverlap>();\n /**\n * Moves the badge off the corner the frame computed, in pixels. `overlap` has\n * two values and hosts have many: how far a badge sits into one depends on\n * that host's own curve, shadow and optical weight.\n */\n readonly offset = input<BadgeOffset>();\n\n protected readonly resolvedPlacement = computed(() => this.placement() ?? 'top-end');\n protected readonly resolvedOverlap = computed(() => this.overlap() ?? 'rectangle');\n /**\n * An axis the page did not state is `null`, which removes the property rather\n * than writing nought into it: the sheet's own default is what answers, and a\n * theme that moves it still wins.\n */\n protected readonly offsetX = computed(() => length(this.offset()?.x));\n protected readonly offsetY = computed(() => length(this.offset()?.y));\n}\n\nfunction length(value: number | undefined): string | null {\n return value === undefined ? null : `${value}px`;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A glyph before the words. The artwork is the consumer's, and the part gives\n * it a box that is sized and centred; the directive is written on the element\n * the page already has, so nothing is wrapped.\n */\n@Directive({\n selector: '[slBadgeStart]',\n standalone: true,\n exportAs: 'slBadgeStart',\n host: { 'data-part': 'start', 'data-part-start': '' },\n})\nexport class SlBadgeStart {}\n\n/** A glyph after the words. */\n@Directive({\n selector: '[slBadgeEnd]',\n standalone: true,\n exportAs: 'slBadgeEnd',\n host: { 'data-part': 'end', 'data-part-end': '' },\n})\nexport class SlBadgeEnd {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|