@slotted/angular 0.1.0-beta.0 → 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,5 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, input, booleanAttribute, HostAttributeToken, computed, ViewEncapsulation, ChangeDetectionStrategy, Component, Directive } from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, Injectable, input, booleanAttribute, HostAttributeToken, computed, contentChild, ViewEncapsulation, ChangeDetectionStrategy, Component, forwardRef, Directive } from '@angular/core';
|
|
3
|
+
import { BUTTON_DEFAULTS_TOKEN } from '@slotted/angular/button';
|
|
3
4
|
import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -8,13 +9,14 @@ import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
|
8
9
|
* GOV.UK's Error message component publishes the idea and hard-codes the word;
|
|
9
10
|
* this table generalises it to every tone that is a severity and puts it behind
|
|
10
11
|
* the token below, which is the only translation surface this library has
|
|
11
|
-
* today. `accent` and `
|
|
12
|
+
* today. `accent`, `secondary` and `info` carry none: information and help announce
|
|
12
13
|
* themselves by their sentence, and a reader told “Information:” before every
|
|
13
14
|
* hint hears one more word per field for nothing.
|
|
14
15
|
*/
|
|
15
16
|
const INLINE_MESSAGE_PREFIXES = {
|
|
16
17
|
accent: null,
|
|
17
18
|
secondary: null,
|
|
19
|
+
info: null,
|
|
18
20
|
success: 'Success:',
|
|
19
21
|
warning: 'Warning:',
|
|
20
22
|
danger: 'Error:',
|
|
@@ -79,6 +81,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
79
81
|
const TONE_GLYPH = {
|
|
80
82
|
accent: 'circle-info',
|
|
81
83
|
secondary: null,
|
|
84
|
+
info: 'circle-info',
|
|
82
85
|
success: 'circle-check',
|
|
83
86
|
warning: 'triangle-alert',
|
|
84
87
|
danger: 'circle-alert',
|
|
@@ -112,6 +115,9 @@ const LIVE_ROLE = {
|
|
|
112
115
|
* and MDN's `alert` role reference is explicit that the role is for text
|
|
113
116
|
* content alone. This family has no controls, so there is nothing to keep out.
|
|
114
117
|
*/
|
|
118
|
+
/** What the message queries for, declared before the directive it stands for. */
|
|
119
|
+
class SlInlineMessageActionsRef {
|
|
120
|
+
}
|
|
115
121
|
class SlInlineMessage {
|
|
116
122
|
/** Defaults to the token, then to `secondary` — help text. */
|
|
117
123
|
tone = input(undefined, /* @ts-ignore */
|
|
@@ -180,6 +186,10 @@ class SlInlineMessage {
|
|
|
180
186
|
get messageId() {
|
|
181
187
|
return this.id() ?? this.writtenId ?? this.generatedId;
|
|
182
188
|
}
|
|
189
|
+
/** The sentence's id, which names the group a message with actions becomes. */
|
|
190
|
+
get textId() {
|
|
191
|
+
return `${this.messageId}-text`;
|
|
192
|
+
}
|
|
183
193
|
/**
|
|
184
194
|
* A role the consumer wrote is never replaced by the family's. A host binding
|
|
185
195
|
* wins over a static attribute in Angular, so the written value has to be
|
|
@@ -204,41 +214,68 @@ class SlInlineMessage {
|
|
|
204
214
|
return mark === 'dot' ? 'dot' : TONE_GLYPH[this.resolvedTone()];
|
|
205
215
|
}, /* @ts-ignore */
|
|
206
216
|
...(ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []));
|
|
207
|
-
|
|
217
|
+
liveRole = computed(() => LIVE_ROLE[this.resolvedLive()], /* @ts-ignore */
|
|
218
|
+
...(ngDevMode ? [{ debugName: "liveRole" }] : /* istanbul ignore next */ []));
|
|
219
|
+
/**
|
|
220
|
+
* A message that holds `[slInlineMessageActions]` is a group named by its
|
|
221
|
+
* sentence, written on a `div`: a paragraph cannot hold a button. Its live
|
|
222
|
+
* role moves to the sentence, so the buttons are not announced with it.
|
|
223
|
+
*/
|
|
224
|
+
actions = contentChild(SlInlineMessageActionsRef, /* @ts-ignore */
|
|
225
|
+
...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
|
|
226
|
+
grouped = computed(() => this.actions() !== undefined, /* @ts-ignore */
|
|
227
|
+
...(ngDevMode ? [{ debugName: "grouped" }] : /* istanbul ignore next */ []));
|
|
228
|
+
role = computed(() => this.writtenRole ?? (this.grouped() ? 'group' : this.liveRole()), /* @ts-ignore */
|
|
208
229
|
...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
|
|
209
230
|
/* Unstated asks the table; the empty string is a consumer removing the word. */
|
|
210
231
|
prefixWord = computed(() => this.prefix() ?? this.defaults.prefixes[this.resolvedTone()] ?? '', /* @ts-ignore */
|
|
211
232
|
...(ngDevMode ? [{ debugName: "prefixWord" }] : /* istanbul ignore next */ []));
|
|
212
233
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInlineMessage, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlInlineMessage, isStandalone: true, selector: "[slInlineMessage]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, mark: { classPropertyName: "mark", publicName: "mark", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, hideIcon: { classPropertyName: "hideIcon", publicName: "hideIcon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, reserve: { classPropertyName: "reserve", publicName: "reserve", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "inline-message", "data-part": "root" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-size": "resolvedSize()", "attr.data-live": "resolvedLive()", "attr.data-mark": "resolvedMark()", "attr.data-loading": "loading() ? '' : null", "attr.data-disabled": "disabled() === true ? '' : null", "attr.data-reserve": "reserve() ? '' : null", "attr.role": "role()", "attr.id": "messageId" } }, exportAs: ["slInlineMessage"], ngImport: i0, template: `@if (prefixWord() !== '') {
|
|
214
|
-
<span data-part="prefix">{{ prefixWord() }}</span>
|
|
234
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlInlineMessage, isStandalone: true, selector: "[slInlineMessage]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, mark: { classPropertyName: "mark", publicName: "mark", isSignal: true, isRequired: false, transformFunction: null }, prefix: { classPropertyName: "prefix", publicName: "prefix", isSignal: true, isRequired: false, transformFunction: null }, hideIcon: { classPropertyName: "hideIcon", publicName: "hideIcon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, reserve: { classPropertyName: "reserve", publicName: "reserve", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "inline-message", "data-ui-inline-message": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-size": "resolvedSize()", "attr.data-live": "resolvedLive()", "attr.data-mark": "resolvedMark()", "attr.data-loading": "loading() ? '' : null", "attr.data-disabled": "disabled() === true ? '' : null", "attr.data-reserve": "reserve() ? '' : null", "attr.role": "role()", "attr.aria-labelledby": "grouped() ? textId : null", "attr.id": "messageId" } }, queries: [{ propertyName: "actions", first: true, predicate: SlInlineMessageActionsRef, descendants: true, isSignal: true }], exportAs: ["slInlineMessage"], ngImport: i0, template: `@if (prefixWord() !== '') {
|
|
235
|
+
<span data-part="prefix" data-part-prefix="">{{ prefixWord() }}</span>
|
|
215
236
|
}
|
|
216
237
|
@if (!hideIcon()) {
|
|
217
|
-
<span aria-hidden="true" data-part="icon"
|
|
238
|
+
<span aria-hidden="true" data-part="icon" data-part-icon=""
|
|
218
239
|
><ng-content select="[slInlineMessageIcon]">
|
|
219
240
|
@if (glyph(); as name) {
|
|
220
241
|
<span slIcon><svg slGlyph [name]="name"></svg></span>
|
|
221
242
|
}</ng-content
|
|
222
243
|
></span>
|
|
223
244
|
}
|
|
224
|
-
<span
|
|
245
|
+
<span
|
|
246
|
+
data-part="text"
|
|
247
|
+
data-part-text=""
|
|
248
|
+
[attr.id]="grouped() ? textId : null"
|
|
249
|
+
[attr.role]="grouped() ? liveRole() : null"
|
|
250
|
+
><ng-content
|
|
251
|
+
/></span>
|
|
252
|
+
<ng-content select="[slInlineMessageActions]" />`, isInline: true, styles: ["@layer slotted.components{[data-ui-inline-message][data-part-root]{--_text: var(--slotted-text-muted);--_font-size: var(--slotted-control-font-size-sm, 12px);--_mark-size: 1em;--_column-gap: var(--slotted-inline-message-column-gap, var(--slotted-space-4, .5rem));color:var(--_text);display:grid;font-family:var( --slotted-inline-message-font-family, var(--slotted-control-font-family, sans-serif) );font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr);line-height:var(--slotted-inline-message-line-height, var(--slotted-line-height-md, 1.5));margin:0;position:relative}[data-ui-inline-message][data-part-root][data-tone=accent]{--_text: var(--slotted-tone-accent-text)}[data-ui-inline-message][data-part-root][data-tone=secondary]{--_text: var(--slotted-text-muted)}[data-ui-inline-message][data-part-root][data-tone=success]{--_text: var(--slotted-tone-success-text)}[data-ui-inline-message][data-part-root][data-tone=info]{--_text: var(--slotted-tone-info-text)}[data-ui-inline-message][data-part-root][data-tone=warning]{--_text: var(--slotted-tone-warning-text)}[data-ui-inline-message][data-part-root][data-tone=danger]{--_text: var(--slotted-tone-danger-text)}[data-ui-inline-message][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px)}[data-ui-inline-message][data-part-root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px)}[data-ui-inline-message][data-part-root][data-reserve]{min-block-size:1lh}[data-ui-inline-message]>[data-part-prefix]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui-inline-message]>[data-part-icon]{--slotted-icon-size: var(--_mark-size);align-items:center;align-self:start;block-size:var(--_mark-size);box-sizing:border-box;display:flex;grid-column:1;grid-row:1;inline-size:var(--_mark-size);justify-content:center;margin-block-start:calc((1lh - var(--_mark-size)) / 2);margin-inline-end:var(--_column-gap)}[data-ui-inline-message][data-part-root][data-mark=dot]{--_dot-size: calc(var(--_mark-size) / 3)}[data-ui-inline-message][data-mark=dot]>[data-part-icon]:has(>[data-ui-icon]>[data-glyph=dot]){--slotted-icon-size: calc(var(--_dot-size) * 2);inline-size:var(--_dot-size)}[data-ui-inline-message][data-tone=secondary]:not([data-loading]):not([data-mark=dot])>[data-part-icon]:empty{display:none}[data-ui-inline-message][data-mark=none]:not([data-loading])>[data-part-icon]:empty{display:none}[data-ui-inline-message]>[data-part-text]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui-inline-message]>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-inline-message-actions-gap, var(--_column-gap));grid-column:2;grid-row:2;margin-block-start:var( --slotted-inline-message-actions-offset, var(--slotted-space-2, .25rem) );min-inline-size:0}[data-ui-inline-message]:has([data-part-text]:empty)>[data-part-icon],[data-ui-inline-message]:has([data-part-text]:empty)>[data-part-prefix]{display:none}[data-ui-inline-message][data-loading]>[data-part-icon]{animation:slotted-inline-message-spin var(--slotted-duration-loop-fast) linear infinite;block-size:var(--_mark-size);border:max(var(--slotted-border-width-thin, 1px),calc(var(--_mark-size) / 8)) solid currentcolor;border-inline-end-color:transparent;border-radius:var(--slotted-radius-full, 9999px);display:block;inline-size:var(--_mark-size);margin-block-start:calc((1lh - var(--_mark-size)) / 2)}[data-ui-inline-message][data-loading]>[data-part-icon]>*{display:none}[data-ui-inline-message][data-part-root][data-disabled]{color:var(--slotted-disabled-foreground)}[data-ui-inline-message][data-disabled]>[data-part-icon]{animation:none}@media(prefers-reduced-motion:reduce){[data-ui-inline-message][data-loading]>[data-part-icon]{animation:none}}@media(forced-colors:active){[data-ui-inline-message]>[data-part-icon]{color:CanvasText}[data-ui-inline-message][data-part-root][data-disabled]>[data-part-icon]{color:GrayText}[data-ui-inline-message][data-loading]>[data-part-icon]{border-color:CanvasText;border-inline-end-color:Canvas}}}@keyframes slotted-inline-message-spin{to{transform:rotate(1turn)}}\n"], dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
225
253
|
}
|
|
226
254
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInlineMessage, decorators: [{
|
|
227
255
|
type: Component,
|
|
228
256
|
args: [{ selector: '[slInlineMessage]', standalone: true, exportAs: 'slInlineMessage', imports: [SlGlyph, SlIcon], template: `@if (prefixWord() !== '') {
|
|
229
|
-
<span data-part="prefix">{{ prefixWord() }}</span>
|
|
257
|
+
<span data-part="prefix" data-part-prefix="">{{ prefixWord() }}</span>
|
|
230
258
|
}
|
|
231
259
|
@if (!hideIcon()) {
|
|
232
|
-
<span aria-hidden="true" data-part="icon"
|
|
260
|
+
<span aria-hidden="true" data-part="icon" data-part-icon=""
|
|
233
261
|
><ng-content select="[slInlineMessageIcon]">
|
|
234
262
|
@if (glyph(); as name) {
|
|
235
263
|
<span slIcon><svg slGlyph [name]="name"></svg></span>
|
|
236
264
|
}</ng-content
|
|
237
265
|
></span>
|
|
238
266
|
}
|
|
239
|
-
<span
|
|
267
|
+
<span
|
|
268
|
+
data-part="text"
|
|
269
|
+
data-part-text=""
|
|
270
|
+
[attr.id]="grouped() ? textId : null"
|
|
271
|
+
[attr.role]="grouped() ? liveRole() : null"
|
|
272
|
+
><ng-content
|
|
273
|
+
/></span>
|
|
274
|
+
<ng-content select="[slInlineMessageActions]" />`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
240
275
|
'data-ui': 'inline-message',
|
|
276
|
+
'data-ui-inline-message': '',
|
|
241
277
|
'data-part': 'root',
|
|
278
|
+
'data-part-root': '',
|
|
242
279
|
'[attr.data-tone]': 'resolvedTone()',
|
|
243
280
|
'[attr.data-size]': 'resolvedSize()',
|
|
244
281
|
'[attr.data-live]': 'resolvedLive()',
|
|
@@ -247,9 +284,47 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
247
284
|
'[attr.data-disabled]': "disabled() === true ? '' : null",
|
|
248
285
|
'[attr.data-reserve]': "reserve() ? '' : null",
|
|
249
286
|
'[attr.role]': 'role()',
|
|
287
|
+
'[attr.aria-labelledby]': 'grouped() ? textId : null',
|
|
250
288
|
'[attr.id]': 'messageId',
|
|
251
|
-
}, styles: ["@layer slotted.components{[data-ui
|
|
252
|
-
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], mark: [{ type: i0.Input, args: [{ isSignal: true, alias: "mark", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], hideIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideIcon", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], reserve: [{ type: i0.Input, args: [{ isSignal: true, alias: "reserve", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
|
|
289
|
+
}, styles: ["@layer slotted.components{[data-ui-inline-message][data-part-root]{--_text: var(--slotted-text-muted);--_font-size: var(--slotted-control-font-size-sm, 12px);--_mark-size: 1em;--_column-gap: var(--slotted-inline-message-column-gap, var(--slotted-space-4, .5rem));color:var(--_text);display:grid;font-family:var( --slotted-inline-message-font-family, var(--slotted-control-font-family, sans-serif) );font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr);line-height:var(--slotted-inline-message-line-height, var(--slotted-line-height-md, 1.5));margin:0;position:relative}[data-ui-inline-message][data-part-root][data-tone=accent]{--_text: var(--slotted-tone-accent-text)}[data-ui-inline-message][data-part-root][data-tone=secondary]{--_text: var(--slotted-text-muted)}[data-ui-inline-message][data-part-root][data-tone=success]{--_text: var(--slotted-tone-success-text)}[data-ui-inline-message][data-part-root][data-tone=info]{--_text: var(--slotted-tone-info-text)}[data-ui-inline-message][data-part-root][data-tone=warning]{--_text: var(--slotted-tone-warning-text)}[data-ui-inline-message][data-part-root][data-tone=danger]{--_text: var(--slotted-tone-danger-text)}[data-ui-inline-message][data-part-root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px)}[data-ui-inline-message][data-part-root][data-size=md]{--_font-size: var(--slotted-control-font-size-md, 13px)}[data-ui-inline-message][data-part-root][data-reserve]{min-block-size:1lh}[data-ui-inline-message]>[data-part-prefix]{block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui-inline-message]>[data-part-icon]{--slotted-icon-size: var(--_mark-size);align-items:center;align-self:start;block-size:var(--_mark-size);box-sizing:border-box;display:flex;grid-column:1;grid-row:1;inline-size:var(--_mark-size);justify-content:center;margin-block-start:calc((1lh - var(--_mark-size)) / 2);margin-inline-end:var(--_column-gap)}[data-ui-inline-message][data-part-root][data-mark=dot]{--_dot-size: calc(var(--_mark-size) / 3)}[data-ui-inline-message][data-mark=dot]>[data-part-icon]:has(>[data-ui-icon]>[data-glyph=dot]){--slotted-icon-size: calc(var(--_dot-size) * 2);inline-size:var(--_dot-size)}[data-ui-inline-message][data-tone=secondary]:not([data-loading]):not([data-mark=dot])>[data-part-icon]:empty{display:none}[data-ui-inline-message][data-mark=none]:not([data-loading])>[data-part-icon]:empty{display:none}[data-ui-inline-message]>[data-part-text]{grid-column:2;grid-row:1;min-inline-size:0;overflow-wrap:anywhere}[data-ui-inline-message]>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-inline-message-actions-gap, var(--_column-gap));grid-column:2;grid-row:2;margin-block-start:var( --slotted-inline-message-actions-offset, var(--slotted-space-2, .25rem) );min-inline-size:0}[data-ui-inline-message]:has([data-part-text]:empty)>[data-part-icon],[data-ui-inline-message]:has([data-part-text]:empty)>[data-part-prefix]{display:none}[data-ui-inline-message][data-loading]>[data-part-icon]{animation:slotted-inline-message-spin var(--slotted-duration-loop-fast) linear infinite;block-size:var(--_mark-size);border:max(var(--slotted-border-width-thin, 1px),calc(var(--_mark-size) / 8)) solid currentcolor;border-inline-end-color:transparent;border-radius:var(--slotted-radius-full, 9999px);display:block;inline-size:var(--_mark-size);margin-block-start:calc((1lh - var(--_mark-size)) / 2)}[data-ui-inline-message][data-loading]>[data-part-icon]>*{display:none}[data-ui-inline-message][data-part-root][data-disabled]{color:var(--slotted-disabled-foreground)}[data-ui-inline-message][data-disabled]>[data-part-icon]{animation:none}@media(prefers-reduced-motion:reduce){[data-ui-inline-message][data-loading]>[data-part-icon]{animation:none}}@media(forced-colors:active){[data-ui-inline-message]>[data-part-icon]{color:CanvasText}[data-ui-inline-message][data-part-root][data-disabled]>[data-part-icon]{color:GrayText}[data-ui-inline-message][data-loading]>[data-part-icon]{border-color:CanvasText;border-inline-end-color:Canvas}}}@keyframes slotted-inline-message-spin{to{transform:rotate(1turn)}}\n"] }]
|
|
290
|
+
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], mark: [{ type: i0.Input, args: [{ isSignal: true, alias: "mark", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], hideIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideIcon", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], reserve: [{ type: i0.Input, args: [{ isSignal: true, alias: "reserve", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], actions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlInlineMessageActionsRef), { isSignal: true }] }] } });
|
|
291
|
+
/**
|
|
292
|
+
* The answers a message offers, after its sentence: two amounts the reader
|
|
293
|
+
* may have meant, a way to undo. Written on a `div` inside the message, which
|
|
294
|
+
* is then a `div` itself; the buttons take the message's size.
|
|
295
|
+
*/
|
|
296
|
+
class SlInlineMessageActions {
|
|
297
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInlineMessageActions, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
298
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlInlineMessageActions, isStandalone: true, selector: "[slInlineMessageActions]", host: { attributes: { "data-part": "actions", "data-part-actions": "" } }, providers: [
|
|
299
|
+
{ provide: SlInlineMessageActionsRef, useExisting: forwardRef(() => SlInlineMessageActions) },
|
|
300
|
+
{
|
|
301
|
+
provide: BUTTON_DEFAULTS_TOKEN,
|
|
302
|
+
useFactory: () => ({
|
|
303
|
+
...inject(BUTTON_DEFAULTS_TOKEN, { skipSelf: true }),
|
|
304
|
+
size: inject(SlInlineMessage).resolvedSize(),
|
|
305
|
+
}),
|
|
306
|
+
},
|
|
307
|
+
], exportAs: ["slInlineMessageActions"], ngImport: i0 });
|
|
308
|
+
}
|
|
309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInlineMessageActions, decorators: [{
|
|
310
|
+
type: Directive,
|
|
311
|
+
args: [{
|
|
312
|
+
selector: '[slInlineMessageActions]',
|
|
313
|
+
standalone: true,
|
|
314
|
+
exportAs: 'slInlineMessageActions',
|
|
315
|
+
host: { 'data-part': 'actions', 'data-part-actions': '' },
|
|
316
|
+
providers: [
|
|
317
|
+
{ provide: SlInlineMessageActionsRef, useExisting: forwardRef(() => SlInlineMessageActions) },
|
|
318
|
+
{
|
|
319
|
+
provide: BUTTON_DEFAULTS_TOKEN,
|
|
320
|
+
useFactory: () => ({
|
|
321
|
+
...inject(BUTTON_DEFAULTS_TOKEN, { skipSelf: true }),
|
|
322
|
+
size: inject(SlInlineMessage).resolvedSize(),
|
|
323
|
+
}),
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
}]
|
|
327
|
+
}] });
|
|
253
328
|
|
|
254
329
|
/**
|
|
255
330
|
* A mark the page supplies instead of the tone's own. It is projected into the
|
|
@@ -276,5 +351,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
276
351
|
* Generated bundle index. Do not edit.
|
|
277
352
|
*/
|
|
278
353
|
|
|
279
|
-
export { INLINE_MESSAGE_DEFAULTS, INLINE_MESSAGE_PREFIXES, SlInlineMessage, SlInlineMessageIcon, SlInlineMessageIdFactory, injectInlineMessageDefaults, provideInlineMessageDefaults };
|
|
354
|
+
export { INLINE_MESSAGE_DEFAULTS, INLINE_MESSAGE_PREFIXES, SlInlineMessage, SlInlineMessageActions, SlInlineMessageIcon, SlInlineMessageIdFactory, injectInlineMessageDefaults, provideInlineMessageDefaults };
|
|
280
355
|
//# sourceMappingURL=slotted-angular-inline-message.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-inline-message.mjs","sources":["../../inline-message/src/inline-message-defaults.ts","../../inline-message/src/inline-message.ts","../../inline-message/src/inline-message-parts.ts","../../inline-message/src/slotted-angular-inline-message.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** Which of the five semantic colours the message speaks in. */\nexport type InlineMessageTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\n\n/**\n * The type step the message sits at. `sm` is the message of a field; `md` is\n * the message of a section. Both read the control scales, which the theme\n * restates per density.\n */\nexport type InlineMessageSize = 'sm' | 'md';\n\n/**\n * Which mark the message draws. `glyph` is the tone's own silhouette — the\n * circled information, check, triangle and circled exclamation. `dot` is a\n * neutral bullet in the tone's ink, the same shape for every tone including\n * the help tone that draws no silhouette at all, so a column of messages under\n * one field starts on one left edge. `none` draws nothing, and the tone is\n * then said by the ink and by the weight of the sentence: it is what `field`\n * and `field-group` ask for, because a silhouette repeated under every control\n * of a form is texture rather than a warning (F2).\n */\nexport type InlineMessageMark = 'glyph' | 'dot' | 'none';\n\n/**\n * Whether the message announces itself, and how loudly. `off` is the default,\n * because the WAI-ARIA APG records that a message already present when the page\n * finishes loading is not announced whatever role it carries.\n */\nexport type InlineMessageLive = 'off' | 'polite' | 'assertive';\n\n/**\n * The word a reader hears before the message. `null` is a tone that is not a\n * severity — help and information announce themselves by their sentence.\n */\nexport type InlineMessagePrefixes = Record<InlineMessageTone, string | null>;\n\n/**\n * The word a reader hears before the message, per tone.\n *\n * GOV.UK's Error message component publishes the idea and hard-codes the word;\n * this table generalises it to every tone that is a severity and puts it behind\n * the token below, which is the only translation surface this library has\n * today. `accent` and `secondary` carry none: information and help announce\n * themselves by their sentence, and a reader told “Information:” before every\n * hint hears one more word per field for nothing.\n */\nexport const INLINE_MESSAGE_PREFIXES: InlineMessagePrefixes = {\n accent: null,\n secondary: null,\n success: 'Success:',\n warning: 'Warning:',\n danger: 'Error:',\n};\n\nexport interface InlineMessageDefaults {\n live: InlineMessageLive;\n mark: InlineMessageMark;\n prefixes: InlineMessagePrefixes;\n size: InlineMessageSize;\n tone: InlineMessageTone;\n}\n\nconst FALLBACK: InlineMessageDefaults = {\n live: 'off',\n mark: 'glyph',\n prefixes: INLINE_MESSAGE_PREFIXES,\n size: 'sm',\n tone: 'secondary',\n};\n\nexport const INLINE_MESSAGE_DEFAULTS = new InjectionToken<InlineMessageDefaults>(\n 'slotted inline message defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once what its messages are painted like and — the one\n * that matters — what its severities are called, rather than repeating the same\n * inputs on every field in a form. A message that states any of them itself\n * still wins: an explicit input is never overridden by the token.\n *\n * `prefixes` is merged over the shipped table rather than replacing it, so a\n * Portuguese application writes the three words it has and inherits the shape.\n */\nexport function provideInlineMessageDefaults(\n defaults: Partial<Omit<InlineMessageDefaults, 'prefixes'>> & {\n prefixes?: Partial<InlineMessagePrefixes>;\n },\n) {\n return {\n provide: INLINE_MESSAGE_DEFAULTS,\n useFactory: (): InlineMessageDefaults => ({\n live: defaults.live ?? FALLBACK.live,\n mark: defaults.mark ?? FALLBACK.mark,\n prefixes: { ...FALLBACK.prefixes, ...defaults.prefixes },\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n }),\n };\n}\n\n/** What a message renders as here, before it states anything of its own. */\nexport function injectInlineMessageDefaults(): InlineMessageDefaults {\n return inject(INLINE_MESSAGE_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `tag` records: a\n * module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlInlineMessageIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-inline-message-${this.count}`;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\n\nimport { injectInlineMessageDefaults, SlInlineMessageIdFactory } from './inline-message-defaults';\nimport type {\n InlineMessageLive,\n InlineMessageMark,\n InlineMessageSize,\n InlineMessageTone,\n} from './inline-message-defaults';\n\nexport type {\n InlineMessageLive,\n InlineMessageMark,\n InlineMessagePrefixes,\n InlineMessageSize,\n InlineMessageTone,\n} from './inline-message-defaults';\n\n/**\n * The glyph each tone draws: `specs/components/inline-message/contract.json`\n * holds the map. Help is not a severity and draws none.\n */\nconst TONE_GLYPH: Record<InlineMessageTone, GlyphName | null> = {\n accent: 'circle-info',\n secondary: null,\n success: 'circle-check',\n warning: 'triangle-alert',\n danger: 'circle-alert',\n};\n\n/**\n * The two roles that announce, and the value that does not. Both roles imply\n * `aria-live` and `aria-atomic`, so the whole message is read rather than the\n * word that changed, and nothing here writes either attribute by hand.\n */\nconst LIVE_ROLE: Record<InlineMessageLive, string | null> = {\n off: null,\n polite: 'status',\n assertive: 'alert',\n};\n\n/**\n * One sentence about something else: a field, a section, an action. Help, an\n * error, a warning, a confirmation, or a wait.\n *\n * The directive is written on the consumer's own element, and the element it\n * belongs on is a `p`: the message is a sentence of prose about something else,\n * and a paragraph is the box a screen reader reads as one unit.\n *\n * **The severity is a word as well as a colour.** A reader who cannot see the\n * message hears the sentence and nothing else — neither the red ink nor the\n * crossed circle reaches the accessibility tree — so the family writes the\n * severity in clipped text before the message, which is GOV.UK's answer\n * generalised to every tone and to a table an application replaces once.\n *\n * **The role goes on this element, not on an inner one.** `slAlert` puts its\n * live role on the text part because it has a dismiss button beside the text,\n * and MDN's `alert` role reference is explicit that the role is for text\n * content alone. This family has no controls, so there is nothing to keep out.\n */\n@Component({\n selector: '[slInlineMessage]',\n standalone: true,\n exportAs: 'slInlineMessage',\n imports: [SlGlyph, SlIcon],\n template: `@if (prefixWord() !== '') {\n <span data-part=\"prefix\">{{ prefixWord() }}</span>\n }\n @if (!hideIcon()) {\n <span aria-hidden=\"true\" data-part=\"icon\"\n ><ng-content select=\"[slInlineMessageIcon]\">\n @if (glyph(); as name) {\n <span slIcon><svg slGlyph [name]=\"name\"></svg></span>\n }</ng-content\n ></span>\n }\n <span data-part=\"text\"><ng-content /></span>`,\n styleUrl: '../../../styles/src/inline-message/inline-message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'inline-message',\n 'data-part': 'root',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-live]': 'resolvedLive()',\n '[attr.data-mark]': 'resolvedMark()',\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.data-disabled]': \"disabled() === true ? '' : null\",\n '[attr.data-reserve]': \"reserve() ? '' : null\",\n '[attr.role]': 'role()',\n '[attr.id]': 'messageId',\n },\n})\nexport class SlInlineMessage {\n /** Defaults to the token, then to `secondary` — help text. */\n readonly tone = input<InlineMessageTone | undefined>(undefined);\n /** Defaults to the token, then to `sm`. */\n readonly size = input<InlineMessageSize | undefined>(undefined);\n /** Defaults to the token, then to `off`. */\n readonly live = input<InlineMessageLive | undefined>(undefined);\n /**\n * Which mark is drawn. Defaults to the token, then to `glyph`. `slField` and\n * `slFieldGroup` ask for `none` instead, because a form reads a column of\n * sentences rather than a column of silhouettes.\n */\n readonly mark = input<InlineMessageMark | undefined>(undefined);\n /**\n * The word read before the message. Unstated is the tone's own — `Error:`,\n * `Warning:`, `Success:` — and the empty string removes it, for a message\n * whose sentence already names the severity.\n */\n readonly prefix = input<string | undefined>(undefined);\n /**\n * Removes the mark's box from the markup, for a message that carries its own\n * artwork beside it. `mark='none'` is the other way to draw nothing: it is an\n * axis a provider can set for every message under it, and it leaves the box\n * in place for `reserve` to hold a line open with.\n */\n readonly hideIcon = input(false, { transform: booleanAttribute });\n /** The message is waiting for something: the mark becomes a turning ring. */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Unstated rather than `false`, so a `field` can answer it once this family\n * is inside one. Stated, it wins.\n */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /**\n * Holds one line box open whether or not there is a message, so the form\n * below does not move when the error arrives.\n */\n readonly reserve = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectInlineMessageDefaults();\n\n /**\n * An identifier bound by whatever renders the message. It is what a family\n * that composes with this one — `field`, whose description and error *are*\n * inline messages — uses to give the message an identifier derived from its\n * own base, which a static attribute cannot express and a directive on the\n * same element cannot write.\n */\n readonly id = input<string | undefined>(undefined);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly generatedId = inject(SlInlineMessageIdFactory).next();\n\n /**\n * The identifier an `aria-describedby` or an `aria-errormessage` points at.\n * A consumer's own is never replaced, and the generated one is reachable from\n * a template through `exportAs` — which is the reach an Angular template has\n * and a React consumer answers with `useId` in their own component.\n *\n * A getter rather than a signal, so `message.messageId` keeps reading as a\n * value in every template that already writes it. The host binding below\n * calls it in a reactive context, so the `id` input above is tracked.\n */\n get messageId(): string {\n return this.id() ?? this.writtenId ?? this.generatedId;\n }\n\n /**\n * A role the consumer wrote is never replaced by the family's. A host binding\n * wins over a static attribute in Angular, so the written value has to be\n * read before the binding is computed rather than after — the asymmetry with\n * React, where a consumer's prop simply spreads over the family's.\n */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly resolvedTone = computed(() => this.tone() ?? this.defaults.tone);\n protected readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedLive = computed(() => this.live() ?? this.defaults.live);\n protected readonly resolvedMark = computed(() => this.mark() ?? this.defaults.mark);\n /* The glyph the family draws when the page supplies none. A message that is\n waiting draws a ring instead, and one that asked for no mark draws none. */\n protected readonly glyph = computed<GlyphName | null>(() => {\n const mark = this.resolvedMark();\n if (this.loading() || mark === 'none') return null;\n return mark === 'dot' ? 'dot' : TONE_GLYPH[this.resolvedTone()];\n });\n protected readonly role = computed(() => this.writtenRole ?? LIVE_ROLE[this.resolvedLive()]);\n\n /* Unstated asks the table; the empty string is a consumer removing the word. */\n protected readonly prefixWord = computed(\n () => this.prefix() ?? this.defaults.prefixes[this.resolvedTone()] ?? '',\n );\n}\n","import { Directive } from '@angular/core';\n\n/**\n * A mark the page supplies instead of the tone's own. It is projected into the\n * box the family draws, so it keeps the size, the colour and the place on the\n * message's first line the tone's mark would have had.\n *\n * It is a marker rather than a component: what goes inside is the page's own\n * artwork, and the family has nothing to add to it beyond where it sits.\n */\n@Directive({\n selector: '[slInlineMessageIcon]',\n standalone: true,\n exportAs: 'slInlineMessageIcon',\n})\nexport class SlInlineMessageIcon {}\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-inline-message.mjs","sources":["../../inline-message/src/inline-message-defaults.ts","../../inline-message/src/inline-message.ts","../../inline-message/src/inline-message-parts.ts","../../inline-message/src/slotted-angular-inline-message.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** Which of the five semantic colours the message speaks in. */\nexport type InlineMessageTone = 'accent' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\n\n/**\n * The type step the message sits at. `sm` is the message of a field; `md` is\n * the message of a section. Both read the control scales, which the theme\n * restates per density.\n */\nexport type InlineMessageSize = 'sm' | 'md';\n\n/**\n * Which mark the message draws. `glyph` is the tone's own silhouette — the\n * circled information, check, triangle and circled exclamation. `dot` is a\n * neutral bullet in the tone's ink, the same shape for every tone including\n * the help tone that draws no silhouette at all, so a column of messages under\n * one field starts on one left edge. `none` draws nothing, and the tone is\n * then said by the ink and by the weight of the sentence: it is what `field`\n * and `field-group` ask for, because a silhouette repeated under every control\n * of a form is texture rather than a warning (F2).\n */\nexport type InlineMessageMark = 'glyph' | 'dot' | 'none';\n\n/**\n * Whether the message announces itself, and how loudly. `off` is the default,\n * because the WAI-ARIA APG records that a message already present when the page\n * finishes loading is not announced whatever role it carries.\n */\nexport type InlineMessageLive = 'off' | 'polite' | 'assertive';\n\n/**\n * The word a reader hears before the message. `null` is a tone that is not a\n * severity — help and information announce themselves by their sentence.\n */\nexport type InlineMessagePrefixes = Record<InlineMessageTone, string | null>;\n\n/**\n * The word a reader hears before the message, per tone.\n *\n * GOV.UK's Error message component publishes the idea and hard-codes the word;\n * this table generalises it to every tone that is a severity and puts it behind\n * the token below, which is the only translation surface this library has\n * today. `accent`, `secondary` and `info` carry none: information and help announce\n * themselves by their sentence, and a reader told “Information:” before every\n * hint hears one more word per field for nothing.\n */\nexport const INLINE_MESSAGE_PREFIXES: InlineMessagePrefixes = {\n accent: null,\n secondary: null,\n info: null,\n success: 'Success:',\n warning: 'Warning:',\n danger: 'Error:',\n};\n\nexport interface InlineMessageDefaults {\n live: InlineMessageLive;\n mark: InlineMessageMark;\n prefixes: InlineMessagePrefixes;\n size: InlineMessageSize;\n tone: InlineMessageTone;\n}\n\nconst FALLBACK: InlineMessageDefaults = {\n live: 'off',\n mark: 'glyph',\n prefixes: INLINE_MESSAGE_PREFIXES,\n size: 'sm',\n tone: 'secondary',\n};\n\nexport const INLINE_MESSAGE_DEFAULTS = new InjectionToken<InlineMessageDefaults>(\n 'slotted inline message defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once what its messages are painted like and — the one\n * that matters — what its severities are called, rather than repeating the same\n * inputs on every field in a form. A message that states any of them itself\n * still wins: an explicit input is never overridden by the token.\n *\n * `prefixes` is merged over the shipped table rather than replacing it, so a\n * Portuguese application writes the three words it has and inherits the shape.\n */\nexport function provideInlineMessageDefaults(\n defaults: Partial<Omit<InlineMessageDefaults, 'prefixes'>> & {\n prefixes?: Partial<InlineMessagePrefixes>;\n },\n) {\n return {\n provide: INLINE_MESSAGE_DEFAULTS,\n useFactory: (): InlineMessageDefaults => ({\n live: defaults.live ?? FALLBACK.live,\n mark: defaults.mark ?? FALLBACK.mark,\n prefixes: { ...FALLBACK.prefixes, ...defaults.prefixes },\n size: defaults.size ?? FALLBACK.size,\n tone: defaults.tone ?? FALLBACK.tone,\n }),\n };\n}\n\n/** What a message renders as here, before it states anything of its own. */\nexport function injectInlineMessageDefaults(): InlineMessageDefaults {\n return inject(INLINE_MESSAGE_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `tag` records: a\n * module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlInlineMessageIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-inline-message-${this.count}`;\n }\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n ViewEncapsulation,\n} from '@angular/core';\nimport { BUTTON_DEFAULTS_TOKEN } from '@slotted/angular/button';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport type { GlyphName } from '@slotted/angular/icon';\n\nimport { injectInlineMessageDefaults, SlInlineMessageIdFactory } from './inline-message-defaults';\nimport type {\n InlineMessageLive,\n InlineMessageMark,\n InlineMessageSize,\n InlineMessageTone,\n} from './inline-message-defaults';\n\nexport type {\n InlineMessageLive,\n InlineMessageMark,\n InlineMessagePrefixes,\n InlineMessageSize,\n InlineMessageTone,\n} from './inline-message-defaults';\n\n/**\n * The glyph each tone draws: `specs/components/inline-message/contract.json`\n * holds the map. Help is not a severity and draws none.\n */\nconst TONE_GLYPH: Record<InlineMessageTone, GlyphName | null> = {\n accent: 'circle-info',\n secondary: null,\n info: 'circle-info',\n success: 'circle-check',\n warning: 'triangle-alert',\n danger: 'circle-alert',\n};\n\n/**\n * The two roles that announce, and the value that does not. Both roles imply\n * `aria-live` and `aria-atomic`, so the whole message is read rather than the\n * word that changed, and nothing here writes either attribute by hand.\n */\nconst LIVE_ROLE: Record<InlineMessageLive, string | null> = {\n off: null,\n polite: 'status',\n assertive: 'alert',\n};\n\n/**\n * One sentence about something else: a field, a section, an action. Help, an\n * error, a warning, a confirmation, or a wait.\n *\n * The directive is written on the consumer's own element, and the element it\n * belongs on is a `p`: the message is a sentence of prose about something else,\n * and a paragraph is the box a screen reader reads as one unit.\n *\n * **The severity is a word as well as a colour.** A reader who cannot see the\n * message hears the sentence and nothing else — neither the red ink nor the\n * crossed circle reaches the accessibility tree — so the family writes the\n * severity in clipped text before the message, which is GOV.UK's answer\n * generalised to every tone and to a table an application replaces once.\n *\n * **The role goes on this element, not on an inner one.** `slAlert` puts its\n * live role on the text part because it has a dismiss button beside the text,\n * and MDN's `alert` role reference is explicit that the role is for text\n * content alone. This family has no controls, so there is nothing to keep out.\n */\n/** What the message queries for, declared before the directive it stands for. */\nexport abstract class SlInlineMessageActionsRef {}\n\n@Component({\n selector: '[slInlineMessage]',\n standalone: true,\n exportAs: 'slInlineMessage',\n imports: [SlGlyph, SlIcon],\n template: `@if (prefixWord() !== '') {\n <span data-part=\"prefix\" data-part-prefix=\"\">{{ prefixWord() }}</span>\n }\n @if (!hideIcon()) {\n <span aria-hidden=\"true\" data-part=\"icon\" data-part-icon=\"\"\n ><ng-content select=\"[slInlineMessageIcon]\">\n @if (glyph(); as name) {\n <span slIcon><svg slGlyph [name]=\"name\"></svg></span>\n }</ng-content\n ></span>\n }\n <span\n data-part=\"text\"\n data-part-text=\"\"\n [attr.id]=\"grouped() ? textId : null\"\n [attr.role]=\"grouped() ? liveRole() : null\"\n ><ng-content\n /></span>\n <ng-content select=\"[slInlineMessageActions]\" />`,\n styleUrl: '../../../styles/src/inline-message/inline-message.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'inline-message',\n 'data-ui-inline-message': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-tone]': 'resolvedTone()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-live]': 'resolvedLive()',\n '[attr.data-mark]': 'resolvedMark()',\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.data-disabled]': \"disabled() === true ? '' : null\",\n '[attr.data-reserve]': \"reserve() ? '' : null\",\n '[attr.role]': 'role()',\n '[attr.aria-labelledby]': 'grouped() ? textId : null',\n '[attr.id]': 'messageId',\n },\n})\nexport class SlInlineMessage {\n /** Defaults to the token, then to `secondary` — help text. */\n readonly tone = input<InlineMessageTone | undefined>(undefined);\n /** Defaults to the token, then to `sm`. */\n readonly size = input<InlineMessageSize | undefined>(undefined);\n /** Defaults to the token, then to `off`. */\n readonly live = input<InlineMessageLive | undefined>(undefined);\n /**\n * Which mark is drawn. Defaults to the token, then to `glyph`. `slField` and\n * `slFieldGroup` ask for `none` instead, because a form reads a column of\n * sentences rather than a column of silhouettes.\n */\n readonly mark = input<InlineMessageMark | undefined>(undefined);\n /**\n * The word read before the message. Unstated is the tone's own — `Error:`,\n * `Warning:`, `Success:` — and the empty string removes it, for a message\n * whose sentence already names the severity.\n */\n readonly prefix = input<string | undefined>(undefined);\n /**\n * Removes the mark's box from the markup, for a message that carries its own\n * artwork beside it. `mark='none'` is the other way to draw nothing: it is an\n * axis a provider can set for every message under it, and it leaves the box\n * in place for `reserve` to hold a line open with.\n */\n readonly hideIcon = input(false, { transform: booleanAttribute });\n /** The message is waiting for something: the mark becomes a turning ring. */\n readonly loading = input(false, { transform: booleanAttribute });\n /**\n * Unstated rather than `false`, so a `field` can answer it once this family\n * is inside one. Stated, it wins.\n */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /**\n * Holds one line box open whether or not there is a message, so the form\n * below does not move when the error arrives.\n */\n readonly reserve = input(false, { transform: booleanAttribute });\n\n private readonly defaults = injectInlineMessageDefaults();\n\n /**\n * An identifier bound by whatever renders the message. It is what a family\n * that composes with this one — `field`, whose description and error *are*\n * inline messages — uses to give the message an identifier derived from its\n * own base, which a static attribute cannot express and a directive on the\n * same element cannot write.\n */\n readonly id = input<string | undefined>(undefined);\n\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly generatedId = inject(SlInlineMessageIdFactory).next();\n\n /**\n * The identifier an `aria-describedby` or an `aria-errormessage` points at.\n * A consumer's own is never replaced, and the generated one is reachable from\n * a template through `exportAs` — which is the reach an Angular template has\n * and a React consumer answers with `useId` in their own component.\n *\n * A getter rather than a signal, so `message.messageId` keeps reading as a\n * value in every template that already writes it. The host binding below\n * calls it in a reactive context, so the `id` input above is tracked.\n */\n get messageId(): string {\n return this.id() ?? this.writtenId ?? this.generatedId;\n }\n /** The sentence's id, which names the group a message with actions becomes. */\n protected get textId(): string {\n return `${this.messageId}-text`;\n }\n\n /**\n * A role the consumer wrote is never replaced by the family's. A host binding\n * wins over a static attribute in Angular, so the written value has to be\n * read before the binding is computed rather than after — the asymmetry with\n * React, where a consumer's prop simply spreads over the family's.\n */\n private readonly writtenRole = inject(new HostAttributeToken('role'), { optional: true });\n\n protected readonly resolvedTone = computed(() => this.tone() ?? this.defaults.tone);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n protected readonly resolvedLive = computed(() => this.live() ?? this.defaults.live);\n protected readonly resolvedMark = computed(() => this.mark() ?? this.defaults.mark);\n /* The glyph the family draws when the page supplies none. A message that is\n waiting draws a ring instead, and one that asked for no mark draws none. */\n protected readonly glyph = computed<GlyphName | null>(() => {\n const mark = this.resolvedMark();\n if (this.loading() || mark === 'none') return null;\n return mark === 'dot' ? 'dot' : TONE_GLYPH[this.resolvedTone()];\n });\n protected readonly liveRole = computed(() => LIVE_ROLE[this.resolvedLive()]);\n /**\n * A message that holds `[slInlineMessageActions]` is a group named by its\n * sentence, written on a `div`: a paragraph cannot hold a button. Its live\n * role moves to the sentence, so the buttons are not announced with it.\n */\n private readonly actions = contentChild(SlInlineMessageActionsRef);\n protected readonly grouped = computed(() => this.actions() !== undefined);\n protected readonly role = computed(\n () => this.writtenRole ?? (this.grouped() ? 'group' : this.liveRole()),\n );\n\n /* Unstated asks the table; the empty string is a consumer removing the word. */\n protected readonly prefixWord = computed(\n () => this.prefix() ?? this.defaults.prefixes[this.resolvedTone()] ?? '',\n );\n}\n\n/**\n * The answers a message offers, after its sentence: two amounts the reader\n * may have meant, a way to undo. Written on a `div` inside the message, which\n * is then a `div` itself; the buttons take the message's size.\n */\n@Directive({\n selector: '[slInlineMessageActions]',\n standalone: true,\n exportAs: 'slInlineMessageActions',\n host: { 'data-part': 'actions', 'data-part-actions': '' },\n providers: [\n { provide: SlInlineMessageActionsRef, useExisting: forwardRef(() => SlInlineMessageActions) },\n {\n provide: BUTTON_DEFAULTS_TOKEN,\n useFactory: () => ({\n ...inject(BUTTON_DEFAULTS_TOKEN, { skipSelf: true }),\n size: inject(SlInlineMessage).resolvedSize(),\n }),\n },\n ],\n})\nexport class SlInlineMessageActions {}\n","import { Directive } from '@angular/core';\n\n/**\n * A mark the page supplies instead of the tone's own. It is projected into the\n * box the family draws, so it keeps the size, the colour and the place on the\n * message's first line the tone's mark would have had.\n *\n * It is a marker rather than a component: what goes inside is the page's own\n * artwork, and the family has nothing to add to it beyond where it sits.\n */\n@Directive({\n selector: '[slInlineMessageIcon]',\n standalone: true,\n exportAs: 'slInlineMessageIcon',\n})\nexport class SlInlineMessageIcon {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -27,13 +27,15 @@ class SlInline {
|
|
|
27
27
|
wrap = input(/* @ts-ignore */
|
|
28
28
|
...(ngDevMode ? [undefined, { debugName: "wrap" }] : /* istanbul ignore next */ []));
|
|
29
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInline, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlInline, isStandalone: true, selector: "[slInline]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "inline", "data-part": "root" }, properties: { "attr.data-gap": "gap() ?? null", "attr.data-align": "align() ?? null", "attr.align": "null", "attr.data-justify": "justify() ?? null", "attr.data-wrap": "wrap() ?? null" } }, exportAs: ["slInline"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlInline, isStandalone: true, selector: "[slInline]", inputs: { align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, justify: { classPropertyName: "justify", publicName: "justify", isSignal: true, isRequired: false, transformFunction: null }, wrap: { classPropertyName: "wrap", publicName: "wrap", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "inline", "data-ui-inline": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.data-gap": "gap() ?? null", "attr.data-align": "align() ?? null", "attr.align": "null", "attr.data-justify": "justify() ?? null", "attr.data-wrap": "wrap() ?? null" } }, exportAs: ["slInline"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui-inline]{--_gap: var(--slotted-space-4, .5rem);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--_gap);min-inline-size:0}[data-ui-inline][data-gap=\"0\"]{--_gap: 0}[data-ui-inline][data-gap=\"1\"]{--_gap: var(--slotted-space-1, .125rem)}[data-ui-inline][data-gap=\"2\"]{--_gap: var(--slotted-space-2, .25rem)}[data-ui-inline][data-gap=\"3\"]{--_gap: var(--slotted-space-3, .375rem)}[data-ui-inline][data-gap=\"4\"]{--_gap: var(--slotted-space-4, .5rem)}[data-ui-inline][data-gap=\"5\"]{--_gap: var(--slotted-space-5, .75rem)}[data-ui-inline][data-gap=\"6\"]{--_gap: var(--slotted-space-6, 1rem)}[data-ui-inline][data-gap=\"7\"]{--_gap: var(--slotted-space-7, 1.25rem)}[data-ui-inline][data-gap=\"8\"]{--_gap: var(--slotted-space-8, 1.5rem)}[data-ui-inline][data-gap=\"9\"]{--_gap: var(--slotted-space-9, 2rem)}[data-ui-inline][data-gap=\"10\"]{--_gap: var(--slotted-space-10, 2.5rem)}[data-ui-inline][data-gap=\"11\"]{--_gap: var(--slotted-space-11, 3rem)}[data-ui-inline][data-gap=\"12\"]{--_gap: var(--slotted-space-12, 4rem)}[data-ui-inline][data-align=start]{align-items:start}[data-ui-inline][data-align=center]{align-items:center}[data-ui-inline][data-align=end]{align-items:end}[data-ui-inline][data-align=stretch]{align-items:stretch}[data-ui-inline][data-align=baseline]{align-items:baseline}[data-ui-inline][data-justify=start]{justify-content:start}[data-ui-inline][data-justify=center]{justify-content:center}[data-ui-inline][data-justify=end]{justify-content:end}[data-ui-inline][data-justify=between]{justify-content:space-between}[data-ui-inline][data-justify=around]{justify-content:space-around}[data-ui-inline][data-justify=evenly]{justify-content:space-evenly}[data-ui-inline][data-wrap=wrap]{flex-wrap:wrap}[data-ui-inline][data-wrap=nowrap]{flex-wrap:nowrap}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlInline, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: '[slInline]', standalone: true, exportAs: 'slInline', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
35
35
|
'data-ui': 'inline',
|
|
36
|
+
'data-ui-inline': '',
|
|
36
37
|
'data-part': 'root',
|
|
38
|
+
'data-part-root': '',
|
|
37
39
|
'[attr.data-gap]': 'gap() ?? null',
|
|
38
40
|
'[attr.data-align]': 'align() ?? null',
|
|
39
41
|
/* `align` is also an obsolete HTML attribute a browser still honours on a
|
|
@@ -41,7 +43,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
41
43
|
'[attr.align]': 'null',
|
|
42
44
|
'[attr.data-justify]': 'justify() ?? null',
|
|
43
45
|
'[attr.data-wrap]': 'wrap() ?? null',
|
|
44
|
-
}, styles: ["@layer slotted.components{[data-ui
|
|
46
|
+
}, styles: ["@layer slotted.components{[data-ui-inline]{--_gap: var(--slotted-space-4, .5rem);display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--_gap);min-inline-size:0}[data-ui-inline][data-gap=\"0\"]{--_gap: 0}[data-ui-inline][data-gap=\"1\"]{--_gap: var(--slotted-space-1, .125rem)}[data-ui-inline][data-gap=\"2\"]{--_gap: var(--slotted-space-2, .25rem)}[data-ui-inline][data-gap=\"3\"]{--_gap: var(--slotted-space-3, .375rem)}[data-ui-inline][data-gap=\"4\"]{--_gap: var(--slotted-space-4, .5rem)}[data-ui-inline][data-gap=\"5\"]{--_gap: var(--slotted-space-5, .75rem)}[data-ui-inline][data-gap=\"6\"]{--_gap: var(--slotted-space-6, 1rem)}[data-ui-inline][data-gap=\"7\"]{--_gap: var(--slotted-space-7, 1.25rem)}[data-ui-inline][data-gap=\"8\"]{--_gap: var(--slotted-space-8, 1.5rem)}[data-ui-inline][data-gap=\"9\"]{--_gap: var(--slotted-space-9, 2rem)}[data-ui-inline][data-gap=\"10\"]{--_gap: var(--slotted-space-10, 2.5rem)}[data-ui-inline][data-gap=\"11\"]{--_gap: var(--slotted-space-11, 3rem)}[data-ui-inline][data-gap=\"12\"]{--_gap: var(--slotted-space-12, 4rem)}[data-ui-inline][data-align=start]{align-items:start}[data-ui-inline][data-align=center]{align-items:center}[data-ui-inline][data-align=end]{align-items:end}[data-ui-inline][data-align=stretch]{align-items:stretch}[data-ui-inline][data-align=baseline]{align-items:baseline}[data-ui-inline][data-justify=start]{justify-content:start}[data-ui-inline][data-justify=center]{justify-content:center}[data-ui-inline][data-justify=end]{justify-content:end}[data-ui-inline][data-justify=between]{justify-content:space-between}[data-ui-inline][data-justify=around]{justify-content:space-around}[data-ui-inline][data-justify=evenly]{justify-content:space-evenly}[data-ui-inline][data-wrap=wrap]{flex-wrap:wrap}[data-ui-inline][data-wrap=nowrap]{flex-wrap:nowrap}}\n"] }]
|
|
45
47
|
}], propDecorators: { align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], justify: [{ type: i0.Input, args: [{ isSignal: true, alias: "justify", required: false }] }], wrap: [{ type: i0.Input, args: [{ isSignal: true, alias: "wrap", required: false }] }] } });
|
|
46
48
|
|
|
47
49
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-inline.mjs","sources":["../../inline/src/inline.ts","../../inline/src/slotted-angular-inline.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A step on the space scale. Separation is chosen from the scale rather than\n * stated as a length, so a theme retunes every layout at once and no component\n * invents a rhythm of its own. `0` is the absence of separation.\n */\nexport type InlineGap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/** Across the flow, which for a run is the block axis. */\nexport type InlineAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n\n/** Along the flow, which for a run is the inline axis. */\nexport type InlineJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n\nexport type InlineWrap = 'wrap' | 'nowrap';\n\n/**\n * Inline arranges its children along the inline axis and lets them wrap. It\n * paints nothing and adds no semantics: the element is the one the consumer\n * wrote, so a list of tags stays a list.\n *\n * An axis reaches the stylesheet only when someone decided it. The base rule\n * already carries the family defaults — wrapping, centred, separated by half a\n * rem — and a layout is the most numerous element in a document.\n *\n * There is no input that reverses the children. The order they are written in\n * is the order they are read in, by a screen reader and by the Tab key alike.\n */\n@Component({\n selector: '[slInline]',\n standalone: true,\n exportAs: 'slInline',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/inline/inline.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'inline',\n 'data-part': 'root',\n '[attr.data-gap]': 'gap() ?? null',\n '[attr.data-align]': 'align() ?? null',\n /* `align` is also an obsolete HTML attribute a browser still honours on a\n div, centring its text; written statically for the input it would stay. */\n '[attr.align]': 'null',\n '[attr.data-justify]': 'justify() ?? null',\n '[attr.data-wrap]': 'wrap() ?? null',\n },\n})\nexport class SlInline {\n /** Positions items across the flow. `baseline` puts their type on one line. */\n readonly align = input<InlineAlign>();\n /** Separation between items, as a step on the space scale. */\n readonly gap = input<InlineGap>();\n /** Positions items along the flow, and distributes the space between them. */\n readonly justify = input<InlineJustify>();\n /** `nowrap` keeps one line, and overflows a container narrower than it. */\n readonly wrap = input<InlineWrap>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAiBA;;;;;;;;;;;AAWG;
|
|
1
|
+
{"version":3,"file":"slotted-angular-inline.mjs","sources":["../../inline/src/inline.ts","../../inline/src/slotted-angular-inline.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\n\n/**\n * A step on the space scale. Separation is chosen from the scale rather than\n * stated as a length, so a theme retunes every layout at once and no component\n * invents a rhythm of its own. `0` is the absence of separation.\n */\nexport type InlineGap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/** Across the flow, which for a run is the block axis. */\nexport type InlineAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n\n/** Along the flow, which for a run is the inline axis. */\nexport type InlineJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n\nexport type InlineWrap = 'wrap' | 'nowrap';\n\n/**\n * Inline arranges its children along the inline axis and lets them wrap. It\n * paints nothing and adds no semantics: the element is the one the consumer\n * wrote, so a list of tags stays a list.\n *\n * An axis reaches the stylesheet only when someone decided it. The base rule\n * already carries the family defaults — wrapping, centred, separated by half a\n * rem — and a layout is the most numerous element in a document.\n *\n * There is no input that reverses the children. The order they are written in\n * is the order they are read in, by a screen reader and by the Tab key alike.\n */\n@Component({\n selector: '[slInline]',\n standalone: true,\n exportAs: 'slInline',\n template: '<ng-content></ng-content>',\n styleUrl: '../../../styles/src/inline/inline.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'inline',\n 'data-ui-inline': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-gap]': 'gap() ?? null',\n '[attr.data-align]': 'align() ?? null',\n /* `align` is also an obsolete HTML attribute a browser still honours on a\n div, centring its text; written statically for the input it would stay. */\n '[attr.align]': 'null',\n '[attr.data-justify]': 'justify() ?? null',\n '[attr.data-wrap]': 'wrap() ?? null',\n },\n})\nexport class SlInline {\n /** Positions items across the flow. `baseline` puts their type on one line. */\n readonly align = input<InlineAlign>();\n /** Separation between items, as a step on the space scale. */\n readonly gap = input<InlineGap>();\n /** Positions items along the flow, and distributes the space between them. */\n readonly justify = input<InlineJustify>();\n /** `nowrap` keeps one line, and overflows a container narrower than it. */\n readonly wrap = input<InlineWrap>();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AAiBA;;;;;;;;;;;AAWG;MAuBU,QAAQ,CAAA;;AAEV,IAAA,KAAK,GAAG,KAAK;yFAAe;;AAE5B,IAAA,GAAG,GAAG,KAAK;uFAAa;;AAExB,IAAA,OAAO,GAAG,KAAK;2FAAiB;;AAEhC,IAAA,IAAI,GAAG,KAAK;wFAAc;uGARxB,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,m3BAlBT,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ozDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAkB1B,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAtBpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,QAAA,EACN,UAAU,YACV,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,QAAQ;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,iBAAiB,EAAE,eAAe;AAClC,wBAAA,mBAAmB,EAAE,iBAAiB;AACtC;AAC6E;AAC7E,wBAAA,cAAc,EAAE,MAAM;AACtB,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,kBAAkB,EAAE,gBAAgB;AACrC,qBAAA,EAAA,MAAA,EAAA,CAAA,ozDAAA,CAAA,EAAA;;;ACjDH;;AAEG;;"}
|