@slotted/angular 0.0.0-stage → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -2
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/accordion.json +345 -0
- package/docs/accordion.md +207 -0
- package/docs/action-bar.json +421 -0
- package/docs/action-bar.md +364 -0
- package/docs/action-sheet.json +210 -0
- package/docs/action-sheet.md +19 -0
- package/docs/alert.json +407 -0
- package/docs/alert.md +239 -0
- package/docs/app-shell.examples.md +349 -0
- package/docs/app-shell.json +835 -0
- package/docs/app-shell.md +214 -0
- package/docs/aspect-ratio.json +159 -0
- package/docs/aspect-ratio.md +134 -0
- package/docs/attachment.json +486 -0
- package/docs/attachment.md +253 -0
- package/docs/avatar-group.json +208 -0
- package/docs/avatar-group.md +130 -0
- package/docs/avatar.json +342 -0
- package/docs/avatar.md +142 -0
- package/docs/badge.json +334 -0
- package/docs/badge.md +138 -0
- package/docs/breadcrumb.json +368 -0
- package/docs/breadcrumb.md +237 -0
- package/docs/button-group.json +158 -0
- package/docs/button-group.md +72 -0
- package/docs/button.examples.md +621 -0
- package/docs/button.json +977 -0
- package/docs/button.md +200 -0
- package/docs/calendar.json +592 -0
- package/docs/calendar.md +242 -0
- package/docs/card.json +283 -0
- package/docs/card.md +130 -0
- package/docs/carousel.json +560 -0
- package/docs/carousel.md +357 -0
- package/docs/cascader.json +933 -0
- package/docs/cascader.md +379 -0
- package/docs/chart.examples.md +582 -0
- package/docs/chart.json +1359 -0
- package/docs/chart.md +187 -0
- package/docs/checkbox-group.examples.md +612 -0
- package/docs/checkbox-group.json +395 -0
- package/docs/checkbox-group.md +106 -0
- package/docs/checkbox.examples.md +546 -0
- package/docs/checkbox.json +506 -0
- package/docs/checkbox.md +104 -0
- package/docs/code-block.json +616 -0
- package/docs/code-block.md +303 -0
- package/docs/collapsible.json +456 -0
- package/docs/collapsible.md +261 -0
- package/docs/color-picker.json +523 -0
- package/docs/color-picker.md +201 -0
- package/docs/column-manager.json +486 -0
- package/docs/column-manager.md +277 -0
- package/docs/combobox.examples.md +1732 -0
- package/docs/combobox.json +1250 -0
- package/docs/combobox.md +209 -0
- package/docs/command-palette.json +800 -0
- package/docs/command-palette.md +419 -0
- package/docs/container.json +156 -0
- package/docs/container.md +92 -0
- package/docs/context-menu.json +231 -0
- package/docs/context-menu.md +176 -0
- package/docs/currency-field.examples.md +321 -0
- package/docs/currency-field.json +649 -0
- package/docs/currency-field.md +128 -0
- package/docs/dashboard-grid.json +680 -0
- package/docs/dashboard-grid.md +265 -0
- package/docs/data-grid.examples.md +3064 -0
- package/docs/data-grid.json +1577 -0
- package/docs/data-grid.md +237 -0
- package/docs/data-grid.props.md +81 -0
- package/docs/data-list.json +685 -0
- package/docs/data-list.md +327 -0
- package/docs/date-field.json +490 -0
- package/docs/date-field.md +235 -0
- package/docs/date-picker.examples.md +1226 -0
- package/docs/date-picker.json +696 -0
- package/docs/date-picker.md +121 -0
- package/docs/date-range-picker.examples.md +1300 -0
- package/docs/date-range-picker.json +903 -0
- package/docs/date-range-picker.md +142 -0
- package/docs/datetime-field.json +665 -0
- package/docs/datetime-field.md +337 -0
- package/docs/datetime-picker.examples.md +1269 -0
- package/docs/datetime-picker.json +928 -0
- package/docs/datetime-picker.md +150 -0
- package/docs/datetime-range-picker.examples.md +225 -0
- package/docs/datetime-range-picker.json +1015 -0
- package/docs/datetime-range-picker.md +162 -0
- package/docs/description-list.json +471 -0
- package/docs/description-list.md +268 -0
- package/docs/detail-panel.json +530 -0
- package/docs/detail-panel.md +361 -0
- package/docs/dialog.examples.md +2467 -0
- package/docs/dialog.json +1141 -0
- package/docs/dialog.md +217 -0
- package/docs/dialog.props.md +63 -0
- package/docs/divider.json +148 -0
- package/docs/divider.md +83 -0
- package/docs/drawer.examples.md +1929 -0
- package/docs/drawer.json +753 -0
- package/docs/drawer.md +199 -0
- package/docs/entity-picker.json +946 -0
- package/docs/entity-picker.md +365 -0
- package/docs/event-calendar.examples.md +308 -0
- package/docs/event-calendar.json +1202 -0
- package/docs/event-calendar.md +201 -0
- package/docs/field-group.json +333 -0
- package/docs/field-group.md +181 -0
- package/docs/field.examples.md +676 -0
- package/docs/field.json +528 -0
- package/docs/field.md +127 -0
- package/docs/filter-bar.json +817 -0
- package/docs/filter-bar.md +380 -0
- package/docs/form.json +378 -0
- package/docs/form.md +235 -0
- package/docs/fullscreen.json +395 -0
- package/docs/fullscreen.md +225 -0
- package/docs/grid.json +176 -0
- package/docs/grid.md +74 -0
- package/docs/highlight.json +279 -0
- package/docs/highlight.md +210 -0
- package/docs/hover-card.json +254 -0
- package/docs/hover-card.md +213 -0
- package/docs/icon.json +173 -0
- package/docs/icon.md +101 -0
- package/docs/image.json +476 -0
- package/docs/image.md +254 -0
- package/docs/import-export-center.json +836 -0
- package/docs/import-export-center.md +345 -0
- package/docs/index.md +141 -0
- package/docs/inline-message.json +312 -0
- package/docs/inline-message.md +191 -0
- package/docs/inline.json +149 -0
- package/docs/inline.md +72 -0
- package/docs/kbd.json +350 -0
- package/docs/kbd.md +210 -0
- package/docs/link.json +264 -0
- package/docs/link.md +167 -0
- package/docs/list-item.json +463 -0
- package/docs/list-item.md +236 -0
- package/docs/list.json +321 -0
- package/docs/list.md +185 -0
- package/docs/listbox.json +807 -0
- package/docs/listbox.md +413 -0
- package/docs/loading-overlay.json +440 -0
- package/docs/loading-overlay.md +248 -0
- package/docs/markdown.json +461 -0
- package/docs/markdown.md +266 -0
- package/docs/menu.examples.md +1651 -0
- package/docs/menu.json +922 -0
- package/docs/menu.md +155 -0
- package/docs/menubar.json +292 -0
- package/docs/menubar.md +173 -0
- package/docs/message-scroller.json +401 -0
- package/docs/message-scroller.md +212 -0
- package/docs/message.json +862 -0
- package/docs/message.md +473 -0
- package/docs/multi-select.examples.md +1922 -0
- package/docs/multi-select.json +1314 -0
- package/docs/multi-select.md +213 -0
- package/docs/navigation-menu.json +529 -0
- package/docs/navigation-menu.md +329 -0
- package/docs/notification-center.json +664 -0
- package/docs/notification-center.md +372 -0
- package/docs/number-field.examples.md +1078 -0
- package/docs/number-field.json +668 -0
- package/docs/number-field.md +137 -0
- package/docs/otp-input.json +479 -0
- package/docs/otp-input.md +291 -0
- package/docs/page-header.json +574 -0
- package/docs/page-header.md +338 -0
- package/docs/page.json +332 -0
- package/docs/page.md +184 -0
- package/docs/pagination.json +434 -0
- package/docs/pagination.md +238 -0
- package/docs/popover.examples.md +1235 -0
- package/docs/popover.json +656 -0
- package/docs/popover.md +199 -0
- package/docs/progress-indicator.json +501 -0
- package/docs/progress-indicator.md +329 -0
- package/docs/prompt-composer.json +498 -0
- package/docs/prompt-composer.md +278 -0
- package/docs/prose.json +357 -0
- package/docs/prose.md +226 -0
- package/docs/radio-group.examples.md +626 -0
- package/docs/radio-group.json +541 -0
- package/docs/radio-group.md +112 -0
- package/docs/rating.json +1053 -0
- package/docs/rating.md +435 -0
- package/docs/result-state.json +376 -0
- package/docs/result-state.md +286 -0
- package/docs/saved-views.json +384 -0
- package/docs/saved-views.md +242 -0
- package/docs/scroll-area.json +120 -0
- package/docs/scroll-area.md +8 -0
- package/docs/section.json +344 -0
- package/docs/section.md +208 -0
- package/docs/segmented-control.json +429 -0
- package/docs/segmented-control.md +240 -0
- package/docs/select.examples.md +1214 -0
- package/docs/select.json +1147 -0
- package/docs/select.md +199 -0
- package/docs/side-navigation.json +632 -0
- package/docs/side-navigation.md +430 -0
- package/docs/skeleton.json +358 -0
- package/docs/skeleton.md +223 -0
- package/docs/slider.json +522 -0
- package/docs/slider.md +261 -0
- package/docs/sparkline.json +426 -0
- package/docs/sparkline.md +206 -0
- package/docs/split-button.json +361 -0
- package/docs/split-button.md +275 -0
- package/docs/splitter.json +142 -0
- package/docs/splitter.md +14 -0
- package/docs/stack.json +135 -0
- package/docs/stack.md +74 -0
- package/docs/stat-card.json +529 -0
- package/docs/stat-card.md +270 -0
- package/docs/status-indicator.json +314 -0
- package/docs/status-indicator.md +197 -0
- package/docs/stepper.json +451 -0
- package/docs/stepper.md +250 -0
- package/docs/switch.json +451 -0
- package/docs/switch.md +508 -0
- package/docs/table-of-contents.json +553 -0
- package/docs/table-of-contents.md +289 -0
- package/docs/table.examples.md +1981 -0
- package/docs/table.json +1059 -0
- package/docs/table.md +290 -0
- package/docs/tabs.examples.md +1370 -0
- package/docs/tabs.json +661 -0
- package/docs/tabs.md +211 -0
- package/docs/tag.json +813 -0
- package/docs/tag.md +241 -0
- package/docs/tags-input.json +771 -0
- package/docs/tags-input.md +361 -0
- package/docs/text-field.examples.md +821 -0
- package/docs/text-field.json +604 -0
- package/docs/text-field.md +125 -0
- package/docs/textarea.examples.md +612 -0
- package/docs/textarea.json +440 -0
- package/docs/textarea.md +98 -0
- package/docs/time-field.json +584 -0
- package/docs/time-field.md +291 -0
- package/docs/time-picker.json +679 -0
- package/docs/time-picker.md +315 -0
- package/docs/time-range-picker.examples.md +191 -0
- package/docs/time-range-picker.json +924 -0
- package/docs/time-range-picker.md +152 -0
- package/docs/timeline.json +839 -0
- package/docs/timeline.md +401 -0
- package/docs/toast.json +642 -0
- package/docs/toast.md +311 -0
- package/docs/toggle-group.json +417 -0
- package/docs/toggle-group.md +255 -0
- package/docs/toggle.json +326 -0
- package/docs/toggle.md +222 -0
- package/docs/toolbar.json +380 -0
- package/docs/toolbar.md +240 -0
- package/docs/tooltip.examples.md +664 -0
- package/docs/tooltip.json +604 -0
- package/docs/tooltip.md +146 -0
- package/docs/top-navigation.examples.md +287 -0
- package/docs/top-navigation.json +648 -0
- package/docs/top-navigation.md +138 -0
- package/docs/tour.json +759 -0
- package/docs/tour.md +337 -0
- package/docs/transfer.json +746 -0
- package/docs/transfer.md +273 -0
- package/docs/tree.json +918 -0
- package/docs/tree.md +397 -0
- package/docs/typography.json +317 -0
- package/docs/typography.md +107 -0
- package/docs/upload.examples.md +358 -0
- package/docs/upload.json +1103 -0
- package/docs/upload.md +166 -0
- package/docs/visually-hidden.json +71 -0
- package/docs/visually-hidden.md +42 -0
- package/docs/wizard.json +724 -0
- package/docs/wizard.md +295 -0
- package/fesm2022/slotted-angular-accordion.mjs +247 -0
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-bar.mjs +639 -0
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
- package/fesm2022/slotted-angular-alert.mjs +427 -0
- package/fesm2022/slotted-angular-alert.mjs.map +1 -0
- package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
- package/fesm2022/slotted-angular-attachment.mjs +595 -0
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar.mjs +330 -0
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
- package/fesm2022/slotted-angular-badge.mjs +255 -0
- package/fesm2022/slotted-angular-badge.mjs.map +1 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/slotted-angular-button-group.mjs +146 -0
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-button.mjs +692 -0
- package/fesm2022/slotted-angular-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-calendar.mjs +916 -0
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-card.mjs +225 -0
- package/fesm2022/slotted-angular-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-carousel.mjs +840 -0
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
- package/fesm2022/slotted-angular-cascader.mjs +1839 -0
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
- package/fesm2022/slotted-angular-chart.mjs +974 -0
- package/fesm2022/slotted-angular-chart.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox.mjs +468 -0
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-code-block.mjs +476 -0
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
- package/fesm2022/slotted-angular-collapsible.mjs +479 -0
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
- package/fesm2022/slotted-angular-color-picker.mjs +910 -0
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
- package/fesm2022/slotted-angular-combobox.mjs +1480 -0
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
- package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
- package/fesm2022/slotted-angular-container.mjs +105 -0
- package/fesm2022/slotted-angular-container.mjs.map +1 -0
- package/fesm2022/slotted-angular-context-menu.mjs +221 -0
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-list.mjs +1418 -0
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-field.mjs +772 -0
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-picker.mjs +690 -0
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-description-list.mjs +545 -0
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
- package/fesm2022/slotted-angular-dialog.mjs +980 -0
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
- package/fesm2022/slotted-angular-divider.mjs +76 -0
- package/fesm2022/slotted-angular-divider.mjs.map +1 -0
- package/fesm2022/slotted-angular-drawer.mjs +1397 -0
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
- package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-field-group.mjs +301 -0
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-field.mjs +928 -0
- package/fesm2022/slotted-angular-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-form.mjs +592 -0
- package/fesm2022/slotted-angular-form.mjs.map +1 -0
- package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
- package/fesm2022/slotted-angular-grid.mjs +58 -0
- package/fesm2022/slotted-angular-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-highlight.mjs +123 -0
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
- package/fesm2022/slotted-angular-hover-card.mjs +326 -0
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-i18n.mjs +75 -0
- package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
- package/fesm2022/slotted-angular-icon.mjs +232 -0
- package/fesm2022/slotted-angular-icon.mjs.map +1 -0
- package/fesm2022/slotted-angular-image.mjs +442 -0
- package/fesm2022/slotted-angular-image.mjs.map +1 -0
- package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline-message.mjs +280 -0
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline.mjs +52 -0
- package/fesm2022/slotted-angular-inline.mjs.map +1 -0
- package/fesm2022/slotted-angular-kbd.mjs +284 -0
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
- package/fesm2022/slotted-angular-link.mjs +182 -0
- package/fesm2022/slotted-angular-link.mjs.map +1 -0
- package/fesm2022/slotted-angular-list-item.mjs +367 -0
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
- package/fesm2022/slotted-angular-list.mjs +256 -0
- package/fesm2022/slotted-angular-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-listbox.mjs +1274 -0
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
- package/fesm2022/slotted-angular-markdown.mjs +914 -0
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
- package/fesm2022/slotted-angular-menu.mjs +1211 -0
- package/fesm2022/slotted-angular-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-menubar.mjs +230 -0
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
- package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
- package/fesm2022/slotted-angular-message.mjs +866 -0
- package/fesm2022/slotted-angular-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-number-field.mjs +966 -0
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-otp-input.mjs +629 -0
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-page-header.mjs +788 -0
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
- package/fesm2022/slotted-angular-page.mjs +255 -0
- package/fesm2022/slotted-angular-page.mjs.map +1 -0
- package/fesm2022/slotted-angular-pagination.mjs +562 -0
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
- package/fesm2022/slotted-angular-popover.mjs +799 -0
- package/fesm2022/slotted-angular-popover.mjs.map +1 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
- package/fesm2022/slotted-angular-prose.mjs +314 -0
- package/fesm2022/slotted-angular-prose.mjs.map +1 -0
- package/fesm2022/slotted-angular-radio-group.mjs +469 -0
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-rating.mjs +1174 -0
- package/fesm2022/slotted-angular-rating.mjs.map +1 -0
- package/fesm2022/slotted-angular-result-state.mjs +330 -0
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
- package/fesm2022/slotted-angular-saved-views.mjs +877 -0
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
- package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
- package/fesm2022/slotted-angular-section.mjs +266 -0
- package/fesm2022/slotted-angular-section.mjs.map +1 -0
- package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
- package/fesm2022/slotted-angular-select.mjs +1899 -0
- package/fesm2022/slotted-angular-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-skeleton.mjs +316 -0
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
- package/fesm2022/slotted-angular-slider.mjs +586 -0
- package/fesm2022/slotted-angular-slider.mjs.map +1 -0
- package/fesm2022/slotted-angular-sparkline.mjs +235 -0
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
- package/fesm2022/slotted-angular-split-button.mjs +331 -0
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-splitter.mjs +516 -0
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
- package/fesm2022/slotted-angular-stack.mjs +48 -0
- package/fesm2022/slotted-angular-stack.mjs.map +1 -0
- package/fesm2022/slotted-angular-stat-card.mjs +478 -0
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-stepper.mjs +536 -0
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
- package/fesm2022/slotted-angular-switch.mjs +447 -0
- package/fesm2022/slotted-angular-switch.mjs.map +1 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
- package/fesm2022/slotted-angular-table.mjs +2518 -0
- package/fesm2022/slotted-angular-table.mjs.map +1 -0
- package/fesm2022/slotted-angular-tabs.mjs +829 -0
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
- package/fesm2022/slotted-angular-tag.mjs +595 -0
- package/fesm2022/slotted-angular-tag.mjs.map +1 -0
- package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-text-field.mjs +674 -0
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-textarea.mjs +275 -0
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
- package/fesm2022/slotted-angular-theme.mjs +45 -0
- package/fesm2022/slotted-angular-theme.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-field.mjs +895 -0
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-picker.mjs +856 -0
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-timeline.mjs +928 -0
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
- package/fesm2022/slotted-angular-toast.mjs +917 -0
- package/fesm2022/slotted-angular-toast.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle.mjs +162 -0
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
- package/fesm2022/slotted-angular-toolbar.mjs +536 -0
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
- package/fesm2022/slotted-angular-tooltip.mjs +798 -0
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
- package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-tour.mjs +1330 -0
- package/fesm2022/slotted-angular-tour.mjs.map +1 -0
- package/fesm2022/slotted-angular-transfer.mjs +1406 -0
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
- package/fesm2022/slotted-angular-tree.mjs +1448 -0
- package/fesm2022/slotted-angular-tree.mjs.map +1 -0
- package/fesm2022/slotted-angular-typography.mjs +184 -0
- package/fesm2022/slotted-angular-typography.mjs.map +1 -0
- package/fesm2022/slotted-angular-upload.mjs +1523 -0
- package/fesm2022/slotted-angular-upload.mjs.map +1 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
- package/fesm2022/slotted-angular-wizard.mjs +1715 -0
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
- package/fesm2022/slotted-angular.mjs +4 -0
- package/fesm2022/slotted-angular.mjs.map +1 -0
- package/package.json +537 -3
- package/types/slotted-angular-accordion.d.ts +156 -0
- package/types/slotted-angular-accordion.d.ts.map +1 -0
- package/types/slotted-angular-action-bar.d.ts +291 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -0
- package/types/slotted-angular-action-sheet.d.ts +294 -0
- package/types/slotted-angular-action-sheet.d.ts.map +1 -0
- package/types/slotted-angular-alert.d.ts +214 -0
- package/types/slotted-angular-alert.d.ts.map +1 -0
- package/types/slotted-angular-app-shell.d.ts +549 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -0
- package/types/slotted-angular-aspect-ratio.d.ts +57 -0
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
- package/types/slotted-angular-attachment.d.ts +294 -0
- package/types/slotted-angular-attachment.d.ts.map +1 -0
- package/types/slotted-angular-avatar-group.d.ts +119 -0
- package/types/slotted-angular-avatar-group.d.ts.map +1 -0
- package/types/slotted-angular-avatar.d.ts +202 -0
- package/types/slotted-angular-avatar.d.ts.map +1 -0
- package/types/slotted-angular-badge.d.ts +166 -0
- package/types/slotted-angular-badge.d.ts.map +1 -0
- package/types/slotted-angular-breadcrumb.d.ts +251 -0
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
- package/types/slotted-angular-button-group.d.ts +89 -0
- package/types/slotted-angular-button-group.d.ts.map +1 -0
- package/types/slotted-angular-button.d.ts +390 -0
- package/types/slotted-angular-button.d.ts.map +1 -0
- package/types/slotted-angular-calendar.d.ts +280 -0
- package/types/slotted-angular-calendar.d.ts.map +1 -0
- package/types/slotted-angular-card.d.ts +140 -0
- package/types/slotted-angular-card.d.ts.map +1 -0
- package/types/slotted-angular-carousel.d.ts +288 -0
- package/types/slotted-angular-carousel.d.ts.map +1 -0
- package/types/slotted-angular-cascader.d.ts +351 -0
- package/types/slotted-angular-cascader.d.ts.map +1 -0
- package/types/slotted-angular-chart.d.ts +319 -0
- package/types/slotted-angular-chart.d.ts.map +1 -0
- package/types/slotted-angular-checkbox-group.d.ts +156 -0
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
- package/types/slotted-angular-checkbox.d.ts +197 -0
- package/types/slotted-angular-checkbox.d.ts.map +1 -0
- package/types/slotted-angular-code-block.d.ts +158 -0
- package/types/slotted-angular-code-block.d.ts.map +1 -0
- package/types/slotted-angular-collapsible.d.ts +272 -0
- package/types/slotted-angular-collapsible.d.ts.map +1 -0
- package/types/slotted-angular-color-picker.d.ts +181 -0
- package/types/slotted-angular-color-picker.d.ts.map +1 -0
- package/types/slotted-angular-column-manager.d.ts +200 -0
- package/types/slotted-angular-column-manager.d.ts.map +1 -0
- package/types/slotted-angular-combobox.d.ts +449 -0
- package/types/slotted-angular-combobox.d.ts.map +1 -0
- package/types/slotted-angular-command-palette.d.ts +256 -0
- package/types/slotted-angular-command-palette.d.ts.map +1 -0
- package/types/slotted-angular-container.d.ts +84 -0
- package/types/slotted-angular-container.d.ts.map +1 -0
- package/types/slotted-angular-context-menu.d.ts +84 -0
- package/types/slotted-angular-context-menu.d.ts.map +1 -0
- package/types/slotted-angular-currency-field.d.ts +480 -0
- package/types/slotted-angular-currency-field.d.ts.map +1 -0
- package/types/slotted-angular-dashboard-grid.d.ts +341 -0
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-grid.d.ts +1077 -0
- package/types/slotted-angular-data-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-list.d.ts +272 -0
- package/types/slotted-angular-data-list.d.ts.map +1 -0
- package/types/slotted-angular-date-field.d.ts +320 -0
- package/types/slotted-angular-date-field.d.ts.map +1 -0
- package/types/slotted-angular-date-picker.d.ts +224 -0
- package/types/slotted-angular-date-picker.d.ts.map +1 -0
- package/types/slotted-angular-date-range-picker.d.ts +310 -0
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-field.d.ts +362 -0
- package/types/slotted-angular-datetime-field.d.ts.map +1 -0
- package/types/slotted-angular-datetime-picker.d.ts +370 -0
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-description-list.d.ts +281 -0
- package/types/slotted-angular-description-list.d.ts.map +1 -0
- package/types/slotted-angular-detail-panel.d.ts +240 -0
- package/types/slotted-angular-detail-panel.d.ts.map +1 -0
- package/types/slotted-angular-dialog.d.ts +497 -0
- package/types/slotted-angular-dialog.d.ts.map +1 -0
- package/types/slotted-angular-divider.d.ts +40 -0
- package/types/slotted-angular-divider.d.ts.map +1 -0
- package/types/slotted-angular-drawer.d.ts +532 -0
- package/types/slotted-angular-drawer.d.ts.map +1 -0
- package/types/slotted-angular-entity-picker.d.ts +338 -0
- package/types/slotted-angular-entity-picker.d.ts.map +1 -0
- package/types/slotted-angular-event-calendar.d.ts +574 -0
- package/types/slotted-angular-event-calendar.d.ts.map +1 -0
- package/types/slotted-angular-field-group.d.ts +152 -0
- package/types/slotted-angular-field-group.d.ts.map +1 -0
- package/types/slotted-angular-field.d.ts +535 -0
- package/types/slotted-angular-field.d.ts.map +1 -0
- package/types/slotted-angular-filter-bar.d.ts +573 -0
- package/types/slotted-angular-filter-bar.d.ts.map +1 -0
- package/types/slotted-angular-form.d.ts +298 -0
- package/types/slotted-angular-form.d.ts.map +1 -0
- package/types/slotted-angular-fullscreen.d.ts +145 -0
- package/types/slotted-angular-fullscreen.d.ts.map +1 -0
- package/types/slotted-angular-grid.d.ts +50 -0
- package/types/slotted-angular-grid.d.ts.map +1 -0
- package/types/slotted-angular-highlight.d.ts +93 -0
- package/types/slotted-angular-highlight.d.ts.map +1 -0
- package/types/slotted-angular-hover-card.d.ts +140 -0
- package/types/slotted-angular-hover-card.d.ts.map +1 -0
- package/types/slotted-angular-i18n.d.ts +46 -0
- package/types/slotted-angular-i18n.d.ts.map +1 -0
- package/types/slotted-angular-icon.d.ts +94 -0
- package/types/slotted-angular-icon.d.ts.map +1 -0
- package/types/slotted-angular-image.d.ts +251 -0
- package/types/slotted-angular-image.d.ts.map +1 -0
- package/types/slotted-angular-import-export-center.d.ts +351 -0
- package/types/slotted-angular-import-export-center.d.ts.map +1 -0
- package/types/slotted-angular-inline-message.d.ts +195 -0
- package/types/slotted-angular-inline-message.d.ts.map +1 -0
- package/types/slotted-angular-inline.d.ts +41 -0
- package/types/slotted-angular-inline.d.ts.map +1 -0
- package/types/slotted-angular-kbd.d.ts +174 -0
- package/types/slotted-angular-kbd.d.ts.map +1 -0
- package/types/slotted-angular-link.d.ts +94 -0
- package/types/slotted-angular-link.d.ts.map +1 -0
- package/types/slotted-angular-list-item.d.ts +210 -0
- package/types/slotted-angular-list-item.d.ts.map +1 -0
- package/types/slotted-angular-list.d.ts +176 -0
- package/types/slotted-angular-list.d.ts.map +1 -0
- package/types/slotted-angular-listbox.d.ts +470 -0
- package/types/slotted-angular-listbox.d.ts.map +1 -0
- package/types/slotted-angular-loading-overlay.d.ts +219 -0
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
- package/types/slotted-angular-markdown.d.ts +172 -0
- package/types/slotted-angular-markdown.d.ts.map +1 -0
- package/types/slotted-angular-menu.d.ts +448 -0
- package/types/slotted-angular-menu.d.ts.map +1 -0
- package/types/slotted-angular-menubar.d.ts +90 -0
- package/types/slotted-angular-menubar.d.ts.map +1 -0
- package/types/slotted-angular-message-scroller.d.ts +151 -0
- package/types/slotted-angular-message-scroller.d.ts.map +1 -0
- package/types/slotted-angular-message.d.ts +348 -0
- package/types/slotted-angular-message.d.ts.map +1 -0
- package/types/slotted-angular-multi-select.d.ts +462 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -0
- package/types/slotted-angular-navigation-menu.d.ts +309 -0
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
- package/types/slotted-angular-notification-center.d.ts +318 -0
- package/types/slotted-angular-notification-center.d.ts.map +1 -0
- package/types/slotted-angular-number-field.d.ts +402 -0
- package/types/slotted-angular-number-field.d.ts.map +1 -0
- package/types/slotted-angular-otp-input.d.ts +286 -0
- package/types/slotted-angular-otp-input.d.ts.map +1 -0
- package/types/slotted-angular-page-header.d.ts +334 -0
- package/types/slotted-angular-page-header.d.ts.map +1 -0
- package/types/slotted-angular-page.d.ts +141 -0
- package/types/slotted-angular-page.d.ts.map +1 -0
- package/types/slotted-angular-pagination.d.ts +213 -0
- package/types/slotted-angular-pagination.d.ts.map +1 -0
- package/types/slotted-angular-popover.d.ts +366 -0
- package/types/slotted-angular-popover.d.ts.map +1 -0
- package/types/slotted-angular-progress-indicator.d.ts +312 -0
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
- package/types/slotted-angular-prompt-composer.d.ts +242 -0
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
- package/types/slotted-angular-prose.d.ts +171 -0
- package/types/slotted-angular-prose.d.ts.map +1 -0
- package/types/slotted-angular-radio-group.d.ts +268 -0
- package/types/slotted-angular-radio-group.d.ts.map +1 -0
- package/types/slotted-angular-rating.d.ts +374 -0
- package/types/slotted-angular-rating.d.ts.map +1 -0
- package/types/slotted-angular-result-state.d.ts +217 -0
- package/types/slotted-angular-result-state.d.ts.map +1 -0
- package/types/slotted-angular-saved-views.d.ts +198 -0
- package/types/slotted-angular-saved-views.d.ts.map +1 -0
- package/types/slotted-angular-scroll-area.d.ts +186 -0
- package/types/slotted-angular-scroll-area.d.ts.map +1 -0
- package/types/slotted-angular-section.d.ts +143 -0
- package/types/slotted-angular-section.d.ts.map +1 -0
- package/types/slotted-angular-segmented-control.d.ts +251 -0
- package/types/slotted-angular-segmented-control.d.ts.map +1 -0
- package/types/slotted-angular-select.d.ts +507 -0
- package/types/slotted-angular-select.d.ts.map +1 -0
- package/types/slotted-angular-side-navigation.d.ts +373 -0
- package/types/slotted-angular-side-navigation.d.ts.map +1 -0
- package/types/slotted-angular-skeleton.d.ts +198 -0
- package/types/slotted-angular-skeleton.d.ts.map +1 -0
- package/types/slotted-angular-slider.d.ts +216 -0
- package/types/slotted-angular-slider.d.ts.map +1 -0
- package/types/slotted-angular-sparkline.d.ts +106 -0
- package/types/slotted-angular-sparkline.d.ts.map +1 -0
- package/types/slotted-angular-split-button.d.ts +180 -0
- package/types/slotted-angular-split-button.d.ts.map +1 -0
- package/types/slotted-angular-splitter.d.ts +206 -0
- package/types/slotted-angular-splitter.d.ts.map +1 -0
- package/types/slotted-angular-stack.d.ts +38 -0
- package/types/slotted-angular-stack.d.ts.map +1 -0
- package/types/slotted-angular-stat-card.d.ts +232 -0
- package/types/slotted-angular-stat-card.d.ts.map +1 -0
- package/types/slotted-angular-status-indicator.d.ts +106 -0
- package/types/slotted-angular-status-indicator.d.ts.map +1 -0
- package/types/slotted-angular-stepper.d.ts +198 -0
- package/types/slotted-angular-stepper.d.ts.map +1 -0
- package/types/slotted-angular-switch.d.ts +243 -0
- package/types/slotted-angular-switch.d.ts.map +1 -0
- package/types/slotted-angular-table-of-contents.d.ts +210 -0
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
- package/types/slotted-angular-table.d.ts +888 -0
- package/types/slotted-angular-table.d.ts.map +1 -0
- package/types/slotted-angular-tabs.d.ts +340 -0
- package/types/slotted-angular-tabs.d.ts.map +1 -0
- package/types/slotted-angular-tag.d.ts +279 -0
- package/types/slotted-angular-tag.d.ts.map +1 -0
- package/types/slotted-angular-tags-input.d.ts +302 -0
- package/types/slotted-angular-tags-input.d.ts.map +1 -0
- package/types/slotted-angular-text-field.d.ts +334 -0
- package/types/slotted-angular-text-field.d.ts.map +1 -0
- package/types/slotted-angular-textarea.d.ts +150 -0
- package/types/slotted-angular-textarea.d.ts.map +1 -0
- package/types/slotted-angular-theme.d.ts +26 -0
- package/types/slotted-angular-theme.d.ts.map +1 -0
- package/types/slotted-angular-time-field.d.ts +300 -0
- package/types/slotted-angular-time-field.d.ts.map +1 -0
- package/types/slotted-angular-time-picker.d.ts +260 -0
- package/types/slotted-angular-time-picker.d.ts.map +1 -0
- package/types/slotted-angular-time-range-picker.d.ts +401 -0
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-timeline.d.ts +329 -0
- package/types/slotted-angular-timeline.d.ts.map +1 -0
- package/types/slotted-angular-toast.d.ts +340 -0
- package/types/slotted-angular-toast.d.ts.map +1 -0
- package/types/slotted-angular-toggle-group.d.ts +167 -0
- package/types/slotted-angular-toggle-group.d.ts.map +1 -0
- package/types/slotted-angular-toggle.d.ts +106 -0
- package/types/slotted-angular-toggle.d.ts.map +1 -0
- package/types/slotted-angular-toolbar.d.ts +252 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -0
- package/types/slotted-angular-tooltip.d.ts +388 -0
- package/types/slotted-angular-tooltip.d.ts.map +1 -0
- package/types/slotted-angular-top-navigation.d.ts +442 -0
- package/types/slotted-angular-top-navigation.d.ts.map +1 -0
- package/types/slotted-angular-tour.d.ts +440 -0
- package/types/slotted-angular-tour.d.ts.map +1 -0
- package/types/slotted-angular-transfer.d.ts +296 -0
- package/types/slotted-angular-transfer.d.ts.map +1 -0
- package/types/slotted-angular-tree.d.ts +499 -0
- package/types/slotted-angular-tree.d.ts.map +1 -0
- package/types/slotted-angular-typography.d.ts +89 -0
- package/types/slotted-angular-typography.d.ts.map +1 -0
- package/types/slotted-angular-upload.d.ts +365 -0
- package/types/slotted-angular-upload.d.ts.map +1 -0
- package/types/slotted-angular-visually-hidden.d.ts +19 -0
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
- package/types/slotted-angular-wizard.d.ts +441 -0
- package/types/slotted-angular-wizard.d.ts.map +1 -0
- package/types/slotted-angular.d.ts +3 -0
- package/types/slotted-angular.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-action-sheet.mjs","sources":["../../action-sheet/src/action-sheet-defaults.ts","../../action-sheet/src/action-sheet.ts","../../action-sheet/src/action-sheet-parts.ts","../../action-sheet/src/slotted-angular-action-sheet.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/**\n * When the layer exists. `active` builds it on opening and drops it once the\n * exit is over, `lazy` builds it on the first open and keeps it, `eager` builds\n * it up front and makes it inert.\n */\nexport type ActionSheetMount = 'active' | 'lazy' | 'eager';\n\n/** Whether a dismissal source closes the sheet. */\nexport type ActionSheetDismissPolicy = 'close' | 'none';\n\n/** The five tones `menu` paints an item in; `danger` is the destructive action. */\nexport type ActionSheetTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\n\n/** Why the sheet opened or closed. */\nexport type ActionSheetOpenReason =\n | 'pointer'\n | 'keyboard'\n | 'select'\n | 'dismiss'\n | 'escape'\n | 'outsidePress'\n | 'back'\n | 'programmatic';\n\n/**\n * The request emitted before the sheet moves. `result` is the value of the item\n * chosen, present when `reason` is `select`.\n */\nexport interface ActionSheetChangeRequest {\n readonly value: boolean;\n readonly previous: boolean;\n readonly reason: ActionSheetOpenReason;\n readonly result?: string | undefined;\n readonly source?: unknown;\n readonly cancelled: boolean;\n cancel(): void;\n}\n\n/** What `(select)` carries. `preventDefault()` keeps the sheet open. */\nexport interface ActionSheetSelectEvent {\n readonly reason: 'pointer' | 'keyboard';\n readonly source: Event;\n readonly value: string | undefined;\n readonly defaultPrevented: boolean;\n preventDefault(): void;\n}\n\nexport interface ActionSheetDefaults {\n back: ActionSheetDismissPolicy;\n closeOnSelect: boolean;\n escape: ActionSheetDismissPolicy;\n modal: boolean;\n mount: ActionSheetMount;\n outsidePress: ActionSheetDismissPolicy;\n}\n\nconst FALLBACK: ActionSheetDefaults = {\n back: 'close',\n closeOnSelect: true,\n escape: 'close',\n modal: true,\n mount: 'active',\n outsidePress: 'close',\n};\n\nexport const ACTION_SHEET_DEFAULTS = new InjectionToken<ActionSheetDefaults>(\n 'slotted action sheet defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once how its sheets behave. A sheet that states any of\n * them itself still wins. The cancel's words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideActionSheetDefaults(defaults: Partial<ActionSheetDefaults>) {\n return {\n provide: ACTION_SHEET_DEFAULTS,\n useFactory: (): ActionSheetDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectActionSheetDefaults(): ActionSheetDefaults {\n return inject(ACTION_SHEET_DEFAULTS);\n}\n\n/** Ids that are unique across every sheet in the application. */\n@Injectable({ providedIn: 'root' })\nexport class SlActionSheetIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-action-sheet-${this.count}`;\n }\n}\n","import { SlDrawer } from '@slotted/angular/drawer';\nimport type { DrawerChangeRequest } from '@slotted/angular/drawer';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n actionSheetMessages,\n type ActionSheetMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n HostAttributeToken,\n inject,\n input,\n model,\n output,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectActionSheetDefaults } from './action-sheet-defaults';\nimport type {\n ActionSheetChangeRequest,\n ActionSheetDismissPolicy,\n ActionSheetMount,\n ActionSheetOpenReason,\n} from './action-sheet-defaults';\n\nconst optionalBoolean = (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given);\n\n/**\n * Where focus enters, from the dialog pattern's first note: the first action\n * that can run, unless it is destructive, in which case the least destructive\n * action — the cancel, or the first action that is not `danger`, or the panel.\n */\nexport function entryTarget(panel: HTMLElement): HTMLElement {\n const items = [...panel.querySelectorAll<HTMLElement>(\"[data-part='list'] [data-part='item']\")];\n const enabled = items.filter(\n (item) => item.dataset['disabled'] === undefined && item.dataset['loading'] === undefined,\n );\n const first = enabled[0];\n if (first !== undefined && first.dataset['tone'] !== 'danger') return first;\n const cancel = panel.querySelector<HTMLElement>(\"[data-part='cancel']\");\n if (cancel !== null) return cancel;\n return enabled.find((item) => item.dataset['tone'] !== 'danger') ?? panel;\n}\n\n/**\n * A `scrimFrom` no extent reaches. A sheet that is not modal keeps the page\n * live, and a scrim over a live page would promise an inertness that is not\n * there, so `drawer` is asked to leave it undimmed at every height.\n */\nconst NEVER_DIMMED = 2;\n\n/** The family's measure, handed to `drawer`'s sheet. */\nconst MEASURE = 'var(--slotted-action-sheet-inline-size, 32rem)';\n\n/**\n * A short list of actions that rises from the bottom edge, and the explicit\n * way out beneath it.\n *\n * The sheet is `<sl-drawer>` — `side=\"bottom\"`, `size=\"content\"` — which owns\n * the layer, the portal, the scrim, the slide, the width, Escape, the press\n * outside, the way back, the drag that closes it and the virtual keyboard.\n * This family owns what is inside and the state, because only it knows that a\n * close was a choice (`select`) and what was chosen.\n *\n * The parts are the consumer's own elements, projected into the drawer's\n * panel, and dependency injection does not reach from them into this\n * component's view, where the drawer lives. So the parts talk to the sheet,\n * and the sheet hands `drawer` what they said — the trigger, whether a title\n * and a message exist — and reads back the ids the panel is named by.\n *\n * `docs/history/designs/2026-09-25-action-sheet-on-drawer-design.md`.\n */\n@Component({\n selector: 'sl-action-sheet',\n standalone: true,\n exportAs: 'slActionSheet',\n imports: [SlDrawer],\n template: `\n <sl-drawer\n #drawer\n mode=\"overlay\"\n side=\"bottom\"\n size=\"content\"\n drag=\"panel\"\n [open]=\"open()\"\n [modal]=\"resolvedModal()\"\n [scrimFrom]=\"resolvedModal() ? 0 : neverDimmed\"\n [mount]=\"resolvedMount()\"\n [escape]=\"resolvedEscape()\"\n [outsidePress]=\"resolvedOutsidePress()\"\n [back]=\"resolvedBack()\"\n [container]=\"container()\"\n [initialFocus]=\"entry()\"\n [finalFocus]=\"finalFocus()\"\n (openChangeRequest)=\"fromDrawer($event)\"\n (closed)=\"onClosed()\"\n >\n <div data-ui=\"action-sheet\" data-part=\"root\"><ng-content /></div>\n </sl-drawer>\n `,\n styleUrls: [\n '../../../styles/src/action-sheet/action-sheet.css',\n '../../../styles/src/spinner/spinner.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[style.display]': \"'contents'\" },\n})\nexport class SlActionSheet {\n readonly open = model<boolean>(false);\n\n readonly modal = input(undefined, { transform: optionalBoolean });\n readonly mount = input<ActionSheetMount | undefined>(undefined);\n readonly escape = input<ActionSheetDismissPolicy | undefined>(undefined);\n readonly outsidePress = input<ActionSheetDismissPolicy | undefined>(undefined);\n readonly back = input<ActionSheetDismissPolicy | undefined>(undefined);\n readonly closeOnSelect = input(undefined, { transform: optionalBoolean });\n /** Words laid over the catalog of the language in force, key by key: the cancel's (`cancel`). */\n readonly messages = input<PartialMessages<ActionSheetMessages> | undefined>(undefined);\n readonly container = input<Element | null | undefined>(undefined);\n readonly initialFocus = input<HTMLElement | false | undefined>(undefined);\n readonly finalFocus = input<HTMLElement | false | undefined>(undefined);\n\n readonly openChangeRequest = output<ActionSheetChangeRequest>();\n readonly closed = output<string | undefined>();\n\n private readonly defaults = injectActionSheetDefaults();\n /** The family's words in the language in force, with this sheet's `messages` laid over them. */\n readonly t = injectMessages(actionSheetMessages, this.messages);\n\n /**\n * A consumer's own `aria-label` on `<sl-action-sheet>`, read before the host\n * bindings are written and handed to the panel, which is the element the\n * role is on.\n */\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n\n protected readonly drawer = viewChild<SlDrawer>('drawer');\n protected readonly neverDimmed = NEVER_DIMMED;\n\n /** What the parts say exists; the sheet hands it to `drawer`. */\n readonly hasTitle = signal(false);\n readonly hasMessage = signal(false);\n readonly triggerNode = signal<HTMLElement | null>(null);\n\n /** The ids `drawer`'s panel is named and described by, once it exists. */\n readonly titleId = computed(() => this.drawer()?.titleId ?? null);\n readonly messageId = computed(() => this.drawer()?.descriptionId ?? null);\n readonly panelId = computed(() => this.drawer()?.panelId ?? null);\n readonly triggerId = computed(() => this.drawer()?.triggerId ?? null);\n readonly mounted = computed(() => this.drawer()?.mounted() ?? false);\n\n private result: string | undefined = undefined;\n\n readonly resolvedModal = computed(() => this.modal() ?? this.defaults.modal);\n readonly resolvedMount = computed(() => this.mount() ?? this.defaults.mount);\n readonly resolvedCloseOnSelect = computed(\n () => this.closeOnSelect() ?? this.defaults.closeOnSelect,\n );\n protected readonly resolvedEscape = computed(() => this.escape() ?? this.defaults.escape);\n protected readonly resolvedBack = computed(() => this.back() ?? this.defaults.back);\n protected readonly resolvedOutsidePress = computed(\n () => this.outsidePress() ?? this.defaults.outsidePress,\n );\n\n /**\n * Where focus enters, decided when the sheet has opened and its actions\n * exist: the consumer's element, or the least destructive action.\n */\n protected readonly entry = computed(() => {\n const wanted = this.initialFocus();\n if (wanted === false) return false as const;\n return (): HTMLElement | null => {\n if (wanted !== undefined) return wanted;\n const panel = this.drawer()?.panel ?? null;\n return panel === null ? null : entryTarget(panel);\n };\n });\n\n constructor() {\n /* What the parts said, handed to the drawer that renders the panel. */\n effect(() => {\n const drawer = this.drawer();\n if (drawer === undefined) return;\n const title = this.hasTitle();\n const message = this.hasMessage();\n const trigger = this.triggerNode();\n untracked(() => {\n drawer.hasTitle.set(title);\n drawer.hasDescription.set(message);\n drawer.triggerNode.set(trigger);\n });\n });\n\n /**\n * What only this family knows about the panel: its measure, handed to\n * `drawer`'s sheet token; that it takes focus from script when the pointer\n * leaves an item; and a label the consumer wrote on the host.\n */\n effect(() => {\n /* `panel` reads the drawer's view query, so this runs again whenever the\n layer — and the panel with it — is built. */\n const panel = this.drawer()?.panel ?? null;\n if (panel === null) return;\n panel.style.setProperty('--slotted-drawer-sheet-inline-size', MEASURE);\n panel.tabIndex = -1;\n if (this.writtenLabel !== null) panel.setAttribute('aria-label', this.writtenLabel);\n });\n }\n\n /**\n * `drawer`'s own request — the trigger, Escape, the press outside, the way\n * back, the drag — asks this family first, and a refusal here refuses it\n * there, so the consumer's `cancel()` holds whichever family asked.\n */\n protected fromDrawer(request: DrawerChangeRequest) {\n if (!this.request(request.value, request.reason, undefined, request.source)) {\n request.cancel();\n }\n }\n\n protected onClosed() {\n this.closed.emit(this.result);\n this.result = undefined;\n }\n\n /** Asks to move, and answers whether the move stands. */\n request(\n next: boolean,\n reason: ActionSheetOpenReason,\n result: string | undefined,\n source: unknown,\n ): boolean {\n if (next === this.open()) return true;\n\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (raw) => {\n this.openChangeRequest.emit({\n cancel: () => raw.cancel(),\n get cancelled() {\n return raw.cancelled;\n },\n previous: raw.previous,\n reason,\n result,\n source: raw.source,\n value: raw.value,\n });\n cancelled = raw.cancelled;\n },\n });\n\n if (!state.request(next, reason, source) || cancelled) return false;\n if (!next) this.result = result;\n this.open.set(next);\n return true;\n }\n\n show() {\n this.request(true, 'programmatic', undefined, undefined);\n }\n\n close() {\n this.request(false, 'programmatic', undefined, undefined);\n }\n\n focus() {\n const panel = this.drawer()?.panel ?? null;\n const stop = panel?.querySelector<HTMLElement>(\"[data-part='item'][tabindex='0']\");\n (stop ?? panel)?.focus();\n }\n}\n","import { createRovingTabindex } from '@slotted/core/focus';\nimport type { RovingTabindexHandle } from '@slotted/core/focus';\nimport { createTypeahead, isPrintable } from '@slotted/core/typeahead';\nimport {\n AfterContentChecked,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n output,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlActionSheet } from './action-sheet';\nimport type {\n ActionSheetOpenReason,\n ActionSheetSelectEvent,\n ActionSheetTone,\n} from './action-sheet-defaults';\n\nconst ITEM_SELECTOR = \"[data-part='item']\";\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It tells `Enter` and `Space` from a press without a key listener.\n */\nfunction activationReason(event: Event): 'pointer' | 'keyboard' {\n return (event as MouseEvent).detail === 0 ? 'keyboard' : 'pointer';\n}\n\nlet nextId = 0;\nconst uniqueId = (prefix: string) => `${prefix}-${(nextId += 1)}`;\n\n/**\n * The control that opens the sheet: the consumer's own element, which is what\n * this ecosystem composes with. It is also the layer's branch, so a press on\n * it is not read as an outside press.\n */\n@Directive({\n selector: '[slActionSheetTrigger]',\n standalone: true,\n exportAs: 'slActionSheetTrigger',\n host: {\n 'data-part': 'trigger',\n type: 'button',\n 'aria-haspopup': 'dialog',\n '[attr.aria-expanded]': 'sheet().open()',\n '[attr.aria-controls]': 'controls()',\n '[attr.data-open]': \"sheet().open() ? '' : null\",\n '[attr.id]': 'sheet().triggerId()',\n '(click)': 'press($event)',\n },\n})\nexport class SlActionSheetTrigger implements OnInit, OnDestroy {\n /** The sheet this control opens, reached with a template reference variable. */\n readonly sheet = input.required<SlActionSheet>({ alias: 'slActionSheetTrigger' });\n\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly controls = computed(() =>\n this.sheet().mounted() ? this.sheet().panelId() : null,\n );\n\n ngOnInit() {\n this.sheet().triggerNode.set(this.native);\n }\n\n ngOnDestroy() {\n if (this.sheet().triggerNode() === this.native) this.sheet().triggerNode.set(null);\n }\n\n protected press(event: Event) {\n /* The consumer's own handler ran first, and `preventDefault()` refuses. */\n if (event.defaultPrevented) return;\n const sheet = this.sheet();\n sheet.request(\n !sheet.open(),\n activationReason(event) as ActionSheetOpenReason,\n undefined,\n event,\n );\n }\n}\n\n@Directive({\n selector: '[slActionSheetHeader]',\n standalone: true,\n host: { 'data-part': 'header' },\n})\nexport class SlActionSheetHeader {}\n\n/** The name of the dialog and of the list. */\n@Directive({\n selector: '[slActionSheetTitle]',\n standalone: true,\n host: { 'data-part': 'title', '[attr.id]': 'sheet.titleId()' },\n})\nexport class SlActionSheetTitle implements OnInit, OnDestroy {\n protected readonly sheet = inject(SlActionSheet);\n\n ngOnInit() {\n this.sheet.hasTitle.set(true);\n }\n\n ngOnDestroy() {\n this.sheet.hasTitle.set(false);\n }\n}\n\n/** The dialog's description. */\n@Directive({\n selector: '[slActionSheetMessage]',\n standalone: true,\n host: { 'data-part': 'message', '[attr.id]': 'sheet.messageId()' },\n})\nexport class SlActionSheetMessage implements OnInit, OnDestroy {\n protected readonly sheet = inject(SlActionSheet);\n\n ngOnInit() {\n this.sheet.hasMessage.set(true);\n }\n\n ngOnDestroy() {\n this.sheet.hasMessage.set(false);\n }\n}\n\n/**\n * The menu: one tab stop for every action, the arrows, `Home`, `End` and\n * typeahead. Named by the sheet's title unless the consumer names it.\n */\n@Directive({\n selector: '[slActionSheetList]',\n standalone: true,\n exportAs: 'slActionSheetList',\n host: {\n 'data-part': 'list',\n role: 'menu',\n 'aria-orientation': 'vertical',\n '[attr.aria-labelledby]': 'labelledBy()',\n '(focusin)': 'onFocusIn($event)',\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlActionSheetList implements OnInit, AfterContentChecked {\n private readonly sheet = inject(SlActionSheet);\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n private roving: RovingTabindexHandle | null = null;\n private readonly typeahead = createTypeahead();\n\n protected readonly labelledBy = computed(() =>\n this.sheet.hasTitle() && !this.element.hasAttribute('aria-label') ? this.sheet.titleId() : null,\n );\n\n constructor() {\n inject(DestroyRef).onDestroy(() => {\n this.roving?.destroy();\n this.typeahead.destroy();\n });\n }\n\n ngOnInit() {\n this.roving = createRovingTabindex(this.element, {\n includeAriaDisabled: true,\n itemSelector: ITEM_SELECTOR,\n orientation: () => 'vertical',\n });\n }\n\n /** An item added, removed or disabled moves the stop. */\n ngAfterContentChecked() {\n this.roving?.refresh();\n }\n\n private items() {\n return [...this.element.querySelectorAll<HTMLElement>(ITEM_SELECTOR)];\n }\n\n /** Focus that arrived by the pointer or by entry moves the stop with it. */\n protected onFocusIn(event: FocusEvent) {\n const index = this.items().indexOf(event.target as HTMLElement);\n if (index !== -1) this.roving?.setActive(index);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.ctrlKey || event.metaKey || event.altKey) return;\n if (!isPrintable(event.key, this.typeahead.query.length > 0)) return;\n event.preventDefault();\n const all = this.items();\n const labels = all.map(\n (item) =>\n item.dataset['textValue'] ??\n item.querySelector(\"[data-part='label']\")?.textContent?.trim() ??\n '',\n );\n const index = this.typeahead.match(event.key, labels, all.indexOf(event.target as HTMLElement));\n all[index]?.focus();\n }\n}\n\n@Directive({\n selector: '[slActionSheetGroupLabel]',\n standalone: true,\n host: { 'data-part': 'group-label', '[id]': 'id' },\n})\nexport class SlActionSheetGroupLabel {\n readonly id = uniqueId('slotted-action-sheet-group-label');\n}\n\n/** A run of related actions, named by the label it holds. */\n@Directive({\n selector: '[slActionSheetGroup]',\n standalone: true,\n host: {\n 'data-part': 'group',\n role: 'group',\n '[attr.aria-labelledby]': 'label()?.id ?? null',\n },\n})\nexport class SlActionSheetGroup {\n protected readonly label = contentChild(SlActionSheetGroupLabel);\n}\n\n@Directive({\n selector: 'hr[slActionSheetSeparator]',\n standalone: true,\n host: { 'data-part': 'separator', role: 'separator' },\n})\nexport class SlActionSheetSeparator {}\n\n/** The item's visual. Hidden from assistive technology: the label names the action. */\n@Directive({\n selector: '[slActionSheetItemIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'aria-hidden': 'true' },\n})\nexport class SlActionSheetItemIcon {}\n\n/** The item's second line, which describes the action rather than naming it. */\n@Directive({\n selector: '[slActionSheetItemDescription]',\n standalone: true,\n host: { 'data-part': 'description', '[id]': 'id' },\n})\nexport class SlActionSheetItemDescription {\n readonly id = uniqueId('slotted-action-sheet-description');\n}\n\n/**\n * One action, on the consumer's own `button` or `a`. The role is `menuitem`,\n * as in `menu`; a disabled or loading item keeps its tab index and takes\n * `aria-disabled`, because the pattern keeps disabled items in the ring.\n *\n * While `loading`, the ring takes the icon box and the projected icon is not\n * shown, so the label never moves.\n */\n@Component({\n selector: 'button[slActionSheetItem], a[slActionSheetItem]',\n standalone: true,\n exportAs: 'slActionSheetItem',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'item',\n role: 'menuitem',\n tabindex: '-1',\n '[attr.type]': 'isLink ? null : \"button\"',\n '[attr.aria-disabled]': 'inert() ? true : null',\n '[attr.aria-busy]': 'loading() ? true : null',\n '[attr.aria-describedby]': 'description()?.id ?? null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n /* A static `disabled` on the host would stay as the native attribute and\n take the item out of the ring the arrows walk; the pattern keeps it in. */\n '[attr.disabled]': 'null',\n '[attr.data-loading]': 'loading() ? \"\" : null',\n '[attr.data-text-value]': 'textValue() ?? null',\n '[attr.data-tone]': 'tone() ?? null',\n '[attr.data-value]': 'value() ?? null',\n '(click)': 'onClick($event)',\n '(pointermove)': 'onPointerMove($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n },\n template: `\n @if (loading()) {\n <span data-part=\"icon\" aria-hidden=\"true\"><span data-ui=\"spinner\"></span></span>\n } @else {\n <ng-content select=\"[slActionSheetItemIcon]\" />\n }\n <span data-part=\"label\"><ng-content /></span>\n <ng-content select=\"[slActionSheetItemDescription]\" />\n `,\n})\nexport class SlActionSheetItem {\n /** What the close carries as its `result` when this item is chosen. */\n readonly value = input<string | undefined>(undefined);\n /** What typeahead matches on, when the visible label is not the word. */\n readonly textValue = input<string | undefined>(undefined);\n readonly tone = input<ActionSheetTone | undefined>(undefined);\n readonly disabled = input(false, { transform: booleanAttribute });\n /** The action is running: the item refuses a second press and the sheet stays open. */\n readonly loading = input(false, { transform: booleanAttribute });\n readonly closeOnSelect = input(undefined, {\n transform: (given: boolean | string | undefined) =>\n given === undefined ? undefined : booleanAttribute(given),\n });\n readonly select = output<ActionSheetSelectEvent>();\n\n private readonly sheet = inject(SlActionSheet);\n private readonly element: HTMLElement = inject(ElementRef).nativeElement;\n protected readonly isLink = this.element.tagName === 'A';\n protected readonly description = contentChild(SlActionSheetItemDescription);\n protected readonly inert = computed(() => this.disabled() || this.loading());\n\n protected onClick(event: Event) {\n if (this.inert()) {\n event.preventDefault();\n return;\n }\n let prevented = false;\n this.select.emit({\n reason: activationReason(event),\n source: event,\n value: this.value(),\n get defaultPrevented() {\n return prevented;\n },\n preventDefault: () => {\n prevented = true;\n },\n });\n if (prevented) return;\n if (this.closeOnSelect() ?? this.sheet.resolvedCloseOnSelect()) {\n this.sheet.request(false, 'select', this.value(), event);\n }\n }\n\n /**\n * A mouse or a pen over an item focuses it, so exactly one row is lit\n * whichever device is driving. A finger does not: focus moving under a touch\n * that is about to scroll the list would light rows at random.\n */\n protected onPointerMove(event: Event) {\n if ((event as PointerEvent).pointerType === 'touch') return;\n if (this.element.ownerDocument.activeElement !== this.element) {\n this.element.focus({ preventScroll: true });\n }\n }\n\n protected onPointerLeave(event: Event) {\n if ((event as PointerEvent).pointerType === 'touch') return;\n if (this.element.ownerDocument.activeElement !== this.element) return;\n this.element.closest<HTMLElement>(\"[data-part='panel']\")?.focus({ preventScroll: true });\n }\n}\n\n/** The band that holds the cancel. */\n@Directive({\n selector: '[slActionSheetFooter]',\n standalone: true,\n host: { 'data-part': 'footer' },\n})\nexport class SlActionSheetFooter {}\n\n/**\n * The explicit way out, on the consumer's own `button`. Never disabled: a sheet\n * that cannot be left is a trap. Given no words, it shows the catalog's `cancel`.\n */\n@Component({\n selector: 'button[slActionSheetCancel]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'cancel',\n type: 'button',\n '[disabled]': 'false',\n '(click)': 'onClick($event)',\n },\n template: `<ng-content>{{ sheet.t('cancel') }}</ng-content>`,\n})\nexport class SlActionSheetCancel {\n protected readonly sheet = inject(SlActionSheet);\n\n protected onClick(event: Event) {\n if (event.defaultPrevented) return;\n this.sheet.request(false, 'dismiss', undefined, event);\n }\n}\n\n/** Every part, for a standalone component's `imports`. */\nexport const SL_ACTION_SHEET = [\n SlActionSheet,\n SlActionSheetTrigger,\n SlActionSheetHeader,\n SlActionSheetTitle,\n SlActionSheetMessage,\n SlActionSheetList,\n SlActionSheetGroup,\n SlActionSheetGroupLabel,\n SlActionSheetSeparator,\n SlActionSheetItem,\n SlActionSheetItemIcon,\n SlActionSheetItemDescription,\n SlActionSheetFooter,\n SlActionSheetCancel,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import { alertMessages } from '@slotted/core/i18n';
|
|
2
|
+
import { createControllable } from '@slotted/core/state';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { InjectionToken, inject, Injectable, Directive, input, booleanAttribute, output, ElementRef, HostAttributeToken, signal, computed, contentChild, effect, DestroyRef, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
import { injectMessages } from '@slotted/angular/i18n';
|
|
6
|
+
import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
7
|
+
|
|
8
|
+
const FALLBACK = {
|
|
9
|
+
live: 'off',
|
|
10
|
+
reach: 'section',
|
|
11
|
+
tone: 'accent',
|
|
12
|
+
variant: 'soft',
|
|
13
|
+
};
|
|
14
|
+
const ALERT_DEFAULTS = new InjectionToken('slotted alert defaults', {
|
|
15
|
+
providedIn: 'root',
|
|
16
|
+
factory: () => FALLBACK,
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* An application decides once how its messages are painted, at what reach and
|
|
20
|
+
* how loud, rather than repeating the same inputs on every alert in a settings
|
|
21
|
+
* page. An alert that states any of them itself still wins: an explicit input is
|
|
22
|
+
* never overridden by the token. The dismiss control's name comes from the
|
|
23
|
+
* language in force (`provideSlotted`).
|
|
24
|
+
*/
|
|
25
|
+
function provideAlertDefaults(defaults) {
|
|
26
|
+
return {
|
|
27
|
+
provide: ALERT_DEFAULTS,
|
|
28
|
+
useFactory: () => ({
|
|
29
|
+
live: defaults.live ?? FALLBACK.live,
|
|
30
|
+
reach: defaults.reach ?? FALLBACK.reach,
|
|
31
|
+
tone: defaults.tone ?? FALLBACK.tone,
|
|
32
|
+
variant: defaults.variant ?? FALLBACK.variant,
|
|
33
|
+
}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/** What an alert renders as here, before it states anything of its own. */
|
|
37
|
+
function injectAlertDefaults() {
|
|
38
|
+
return inject(ALERT_DEFAULTS);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Application-scoped rather than module-scoped, for the reason `tag` records: a
|
|
42
|
+
* module-level counter produces colliding sequences when two applications
|
|
43
|
+
* render in one server process, and the server and the client sequences must
|
|
44
|
+
* match for hydration.
|
|
45
|
+
*/
|
|
46
|
+
class SlAlertIdFactory {
|
|
47
|
+
count = 0;
|
|
48
|
+
next() {
|
|
49
|
+
this.count += 1;
|
|
50
|
+
return `slotted-alert-${this.count}`;
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertIdFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertIdFactory, providedIn: 'root' });
|
|
54
|
+
}
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertIdFactory, decorators: [{
|
|
56
|
+
type: Injectable,
|
|
57
|
+
args: [{ providedIn: 'root' }]
|
|
58
|
+
}] });
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The glyph each tone draws, in its solid form: `specs/components/alert/contract.json`
|
|
62
|
+
* holds the map. Every one is circled, so every mark is the same disc and the
|
|
63
|
+
* symbol cut out of it tells the tones apart. `secondary` draws none: a neutral
|
|
64
|
+
* note has no severity to state, and a disc with nothing cut out of it said
|
|
65
|
+
* nothing. Its absence is itself the difference under forced colours.
|
|
66
|
+
*/
|
|
67
|
+
const TONE_GLYPH = {
|
|
68
|
+
accent: 'circle-info',
|
|
69
|
+
secondary: null,
|
|
70
|
+
success: 'circle-check',
|
|
71
|
+
warning: 'circle-alert',
|
|
72
|
+
danger: 'circle-x',
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A message about the page, a section, or the thing beside it.
|
|
76
|
+
*
|
|
77
|
+
* The directive is written on the consumer's own element, and the element it
|
|
78
|
+
* belongs on is a `section`: named by its own title through `aria-labelledby`,
|
|
79
|
+
* a `section` is a `region` landmark a reader can jump to, and unnamed it is a
|
|
80
|
+
* plain grouping element that costs nothing.
|
|
81
|
+
*
|
|
82
|
+
* **The box is not the live region.** MDN's `alert` role reference states that
|
|
83
|
+
* the role "should only be used for text content, not interactive elements such
|
|
84
|
+
* as links or buttons", and every alert worth shipping has a dismiss control.
|
|
85
|
+
* `slAlertContent` is what announces, and it holds the title and the
|
|
86
|
+
* description alone; the actions and the dismiss control are its siblings.
|
|
87
|
+
*
|
|
88
|
+
* **Closing hides rather than removes.** A live region has to be in the
|
|
89
|
+
* document before its text changes, so an alert that removed itself could not
|
|
90
|
+
* announce the second time the message arrived — and `data-open` is only a
|
|
91
|
+
* state a consumer can style if the element is there to carry it.
|
|
92
|
+
*/
|
|
93
|
+
/**
|
|
94
|
+
* A mark the page supplies instead of the tone's own. It is projected into the
|
|
95
|
+
* box the family draws, so it keeps the size, the colour and the place on the
|
|
96
|
+
* message's first line that the tone's own mark would have had.
|
|
97
|
+
*/
|
|
98
|
+
class SlAlertIcon {
|
|
99
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
100
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlAlertIcon, isStandalone: true, selector: "[slAlertIcon]", exportAs: ["slAlertIcon"], ngImport: i0 });
|
|
101
|
+
}
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertIcon, decorators: [{
|
|
103
|
+
type: Directive,
|
|
104
|
+
args: [{
|
|
105
|
+
selector: '[slAlertIcon]',
|
|
106
|
+
standalone: true,
|
|
107
|
+
exportAs: 'slAlertIcon',
|
|
108
|
+
}]
|
|
109
|
+
}] });
|
|
110
|
+
class SlAlert {
|
|
111
|
+
/** Defaults to the provider, then to `accent`. */
|
|
112
|
+
tone = input(undefined, /* @ts-ignore */
|
|
113
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
114
|
+
/** Defaults to the provider, then to `soft`. */
|
|
115
|
+
variant = input(undefined, /* @ts-ignore */
|
|
116
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
117
|
+
/** Defaults to the provider, then to `section`. */
|
|
118
|
+
reach = input(undefined, /* @ts-ignore */
|
|
119
|
+
...(ngDevMode ? [{ debugName: "reach" }] : /* istanbul ignore next */ []));
|
|
120
|
+
/** Defaults to the provider, then to `off`. */
|
|
121
|
+
live = input(undefined, /* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [{ debugName: "live" }] : /* istanbul ignore next */ []));
|
|
123
|
+
/** Draws no mark at all, for a callout carrying its own artwork. */
|
|
124
|
+
hideIcon = input(false, { ...(ngDevMode ? { debugName: "hideIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
125
|
+
/**
|
|
126
|
+
* Renders the control that closes the message. React reads the same fact from
|
|
127
|
+
* whether a handler was passed; Angular cannot see whether an output was
|
|
128
|
+
* subscribed, so the opt-in is stated — the asymmetry `tag` recorded.
|
|
129
|
+
*/
|
|
130
|
+
dismissible = input(false, { ...(ngDevMode ? { debugName: "dismissible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
131
|
+
/** Words laid over the catalog of the language in force, key by key: what that control announces (`dismiss`). */
|
|
132
|
+
messages = input(undefined, /* @ts-ignore */
|
|
133
|
+
...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
134
|
+
/** Present means controlled, for the life of the component. */
|
|
135
|
+
open = input(undefined, { ...(ngDevMode ? { debugName: "open" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
|
|
136
|
+
/** The openness an uncontrolled alert starts from, read once. */
|
|
137
|
+
defaultOpen = input(true, { ...(ngDevMode ? { debugName: "defaultOpen" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
138
|
+
/**
|
|
139
|
+
* Returns the keyboard to where it came from when the message closes with
|
|
140
|
+
* focus inside it. Nothing moves when focus was never there.
|
|
141
|
+
*/
|
|
142
|
+
restoreFocus = input(true, { ...(ngDevMode ? { debugName: "restoreFocus" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
143
|
+
/**
|
|
144
|
+
* One output for one transition, carrying the value, the value it replaces,
|
|
145
|
+
* the reason, the originating event and `cancel()`. There is no `[(open)]`
|
|
146
|
+
* because a two-way binding has one slot and cannot carry any of those.
|
|
147
|
+
*/
|
|
148
|
+
openChange = output();
|
|
149
|
+
defaults = injectAlertDefaults();
|
|
150
|
+
/** The family's words in the language in force, with this alert's `messages` laid over them. */
|
|
151
|
+
t = injectMessages(alertMessages, this.messages);
|
|
152
|
+
host = inject(ElementRef);
|
|
153
|
+
/** An explicit tab index the consumer wrote is never replaced by the family's. */
|
|
154
|
+
writtenTabIndex = inject(new HostAttributeToken('tabindex'), {
|
|
155
|
+
optional: true,
|
|
156
|
+
});
|
|
157
|
+
/** The identifier the title writes, and the box is named by. */
|
|
158
|
+
titleId = `${inject(SlAlertIdFactory).next()}-title`;
|
|
159
|
+
own = signal(undefined, /* @ts-ignore */
|
|
160
|
+
...(ngDevMode ? [{ debugName: "own" }] : /* istanbul ignore next */ []));
|
|
161
|
+
titlePresent = signal(false, /* @ts-ignore */
|
|
162
|
+
...(ngDevMode ? [{ debugName: "titlePresent" }] : /* istanbul ignore next */ []));
|
|
163
|
+
/**
|
|
164
|
+
* Where the keyboard came from, and whether it is here now. Both are read at
|
|
165
|
+
* the moment the message closes, when the element focus was on may already be
|
|
166
|
+
* gone — so they are remembered as focus crosses the boundary rather than
|
|
167
|
+
* looked up in the DOM afterwards.
|
|
168
|
+
*/
|
|
169
|
+
cameFrom = null;
|
|
170
|
+
holdsFocus = false;
|
|
171
|
+
resolvedTone = computed(() => this.tone() ?? this.defaults.tone, /* @ts-ignore */
|
|
172
|
+
...(ngDevMode ? [{ debugName: "resolvedTone" }] : /* istanbul ignore next */ []));
|
|
173
|
+
glyph = computed(() => TONE_GLYPH[this.resolvedTone()], /* @ts-ignore */
|
|
174
|
+
...(ngDevMode ? [{ debugName: "glyph" }] : /* istanbul ignore next */ []));
|
|
175
|
+
/** A mark the page projected, which draws even where the tone has none. */
|
|
176
|
+
suppliedIcon = contentChild(SlAlertIcon, /* @ts-ignore */
|
|
177
|
+
...(ngDevMode ? [{ debugName: "suppliedIcon" }] : /* istanbul ignore next */ []));
|
|
178
|
+
resolvedVariant = computed(() => this.variant() ?? this.defaults.variant, /* @ts-ignore */
|
|
179
|
+
...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
|
|
180
|
+
resolvedReach = computed(() => this.reach() ?? this.defaults.reach, /* @ts-ignore */
|
|
181
|
+
...(ngDevMode ? [{ debugName: "resolvedReach" }] : /* istanbul ignore next */ []));
|
|
182
|
+
resolvedLive = computed(() => this.live() ?? this.defaults.live, /* @ts-ignore */
|
|
183
|
+
...(ngDevMode ? [{ debugName: "resolvedLive" }] : /* istanbul ignore next */ []));
|
|
184
|
+
isOpen = computed(() => this.open() ?? this.own() ?? this.defaultOpen(), /* @ts-ignore */
|
|
185
|
+
...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
|
|
186
|
+
/**
|
|
187
|
+
* A `section` with an `aria-labelledby` pointing at nothing has no accessible
|
|
188
|
+
* name and is not a landmark, so the attribute is written only once a title
|
|
189
|
+
* has said it exists.
|
|
190
|
+
*/
|
|
191
|
+
labelledBy = computed(() => (this.titlePresent() ? this.titleId : null), /* @ts-ignore */
|
|
192
|
+
...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
|
|
193
|
+
constructor() {
|
|
194
|
+
let previous = this.isOpen();
|
|
195
|
+
effect(() => {
|
|
196
|
+
const next = this.isOpen();
|
|
197
|
+
if (previous && !next)
|
|
198
|
+
this.restore();
|
|
199
|
+
previous = next;
|
|
200
|
+
});
|
|
201
|
+
/* The message removed by the consumer rather than closed by itself. */
|
|
202
|
+
inject(DestroyRef).onDestroy(() => this.restore());
|
|
203
|
+
}
|
|
204
|
+
/** Called by `slAlertTitle`, which is the part that names the box. */
|
|
205
|
+
registerTitle(present) {
|
|
206
|
+
this.titlePresent.set(present);
|
|
207
|
+
}
|
|
208
|
+
/** Sends the keyboard to the message. The family never does this by itself. */
|
|
209
|
+
focus() {
|
|
210
|
+
this.host.nativeElement.focus();
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Asks to open or close, carrying `programmatic` as the reason. It is the
|
|
214
|
+
* reach a template has and React does not: JSX can re-render an input, and an
|
|
215
|
+
* Angular template can only call a method on the instance `exportAs` gives it.
|
|
216
|
+
*/
|
|
217
|
+
setOpen(next) {
|
|
218
|
+
this.request(next, 'programmatic');
|
|
219
|
+
}
|
|
220
|
+
onDismiss(event) {
|
|
221
|
+
/* A consumer that called preventDefault has refused the dismissal, and a
|
|
222
|
+
refused dismissal moves nothing. */
|
|
223
|
+
if (event.defaultPrevented)
|
|
224
|
+
return;
|
|
225
|
+
this.request(false, 'dismiss', event);
|
|
226
|
+
}
|
|
227
|
+
onFocusIn(event) {
|
|
228
|
+
const previous = event.relatedTarget;
|
|
229
|
+
if (previous instanceof HTMLElement && !this.host.nativeElement.contains(previous)) {
|
|
230
|
+
this.cameFrom = previous;
|
|
231
|
+
}
|
|
232
|
+
this.holdsFocus = true;
|
|
233
|
+
}
|
|
234
|
+
onFocusOut(event) {
|
|
235
|
+
const next = event.relatedTarget;
|
|
236
|
+
if (!(next instanceof Node) || !this.host.nativeElement.contains(next)) {
|
|
237
|
+
this.holdsFocus = false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
request(next, reason, source) {
|
|
241
|
+
const state = createControllable({
|
|
242
|
+
controlled: this.open(),
|
|
243
|
+
initial: this.isOpen(),
|
|
244
|
+
onRequest: (request) => this.openChange.emit(request),
|
|
245
|
+
});
|
|
246
|
+
if (state.request(next, reason, source))
|
|
247
|
+
this.own.set(next);
|
|
248
|
+
}
|
|
249
|
+
restore() {
|
|
250
|
+
if (!this.restoreFocus() || !this.holdsFocus)
|
|
251
|
+
return;
|
|
252
|
+
this.holdsFocus = false;
|
|
253
|
+
const target = this.cameFrom;
|
|
254
|
+
if (target === null || !target.isConnected)
|
|
255
|
+
return;
|
|
256
|
+
target.focus();
|
|
257
|
+
}
|
|
258
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlert, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
259
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlAlert, isStandalone: true, selector: "[slAlert]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, reach: { classPropertyName: "reach", publicName: "reach", isSignal: true, isRequired: false, transformFunction: null }, live: { classPropertyName: "live", publicName: "live", isSignal: true, isRequired: false, transformFunction: null }, hideIcon: { classPropertyName: "hideIcon", publicName: "hideIcon", isSignal: true, isRequired: false, transformFunction: null }, dismissible: { classPropertyName: "dismissible", publicName: "dismissible", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, defaultOpen: { classPropertyName: "defaultOpen", publicName: "defaultOpen", isSignal: true, isRequired: false, transformFunction: null }, restoreFocus: { classPropertyName: "restoreFocus", publicName: "restoreFocus", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, host: { attributes: { "data-ui": "alert", "data-part": "root" }, listeners: { "focusin": "onFocusIn($event)", "focusout": "onFocusOut($event)" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-reach": "resolvedReach()", "attr.data-live": "resolvedLive()", "attr.data-open": "isOpen() ? '' : null", "attr.hidden": "isOpen() ? null : ''", "attr.tabindex": "writtenTabIndex ?? -1", "attr.aria-labelledby": "labelledBy()" } }, queries: [{ propertyName: "suppliedIcon", first: true, predicate: SlAlertIcon, descendants: true, isSignal: true }], exportAs: ["slAlert"], ngImport: i0, template: `@if (!hideIcon() && (glyph() || suppliedIcon())) {
|
|
260
|
+
<span aria-hidden="true" data-part="icon"
|
|
261
|
+
><ng-content select="[slAlertIcon]">
|
|
262
|
+
@if (glyph(); as name) {
|
|
263
|
+
<span slIcon><svg slGlyph [name]="name" solid></svg></span>
|
|
264
|
+
}</ng-content
|
|
265
|
+
></span>
|
|
266
|
+
}
|
|
267
|
+
<ng-content />
|
|
268
|
+
@if (dismissible()) {
|
|
269
|
+
<button
|
|
270
|
+
type="button"
|
|
271
|
+
data-part="dismiss"
|
|
272
|
+
[attr.aria-label]="t('dismiss')"
|
|
273
|
+
(click)="onDismiss($event)"
|
|
274
|
+
>
|
|
275
|
+
<span slIcon><svg slGlyph name="x"></svg></span>
|
|
276
|
+
</button>
|
|
277
|
+
}`, isInline: true, styles: ["@layer slotted.components{[data-ui=alert][data-part=root]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text);--_state-hover: color-mix( in oklab, currentcolor var(--slotted-alert-state-layer-hover, 10%), transparent );--_state-active: color-mix( in oklab, currentcolor var(--slotted-alert-state-layer-active, 16%), transparent );--_font-size: var(--slotted-control-font-size-md, 13px);--_description-font-size: var(--slotted-control-font-size-md, 13px);--_glyph-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_mark-size: round(nearest, 1.2em, 2px);--_line-height: var(--slotted-line-height-md, 1.5);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-6, 1rem));--_column-gap: var(--slotted-alert-column-gap, var(--slotted-space-4, .5rem));--_row-gap: var(--slotted-alert-row-gap, var(--slotted-space-5, .75rem));--_text-gap: var(--slotted-alert-text-gap, var(--slotted-space-2, .25rem));--_radius: var(--slotted-alert-radius, var(--slotted-radius-md, 6px));--_border-width: var(--slotted-alert-border-width, var(--slotted-border-width-thin, 1px));--_dismiss-size: var( --slotted-alert-dismiss-size, max( var(--slotted-target-min, 24px), min(calc(var(--_glyph-size) + 2 * var(--slotted-space-2, .25rem)), var(--_inner-size)) ) );container-name:slotted-alert;container-type:inline-size;inline-size:100%;background-color:transparent;border:var(--_border-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;color:var(--_text);column-gap:0;display:grid;font-family:var(--slotted-alert-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto;line-height:round(nearest,calc(var(--_line-height) * 1em),2px);padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);row-gap:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),translate var(--slotted-duration-short) var(--slotted-easing-enter),display var(--slotted-duration-short) var(--slotted-easing-enter);transition-behavior:allow-discrete}[data-ui=alert][data-part=root][hidden]{display:none;opacity:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit),display var(--slotted-duration-short) var(--slotted-easing-exit);translate:0 calc(-1 * var(--slotted-space-2, .25rem))}@starting-style{[data-ui=alert][data-part=root]:is([data-live=polite],[data-live=assertive]){opacity:0;translate:0 calc(-1 * var(--slotted-space-2, .25rem))}}[data-ui=alert][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text)}[data-ui=alert][data-part=root][data-tone=secondary]{--_solid: var(--slotted-tone-secondary-solid);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_text: var(--slotted-tone-secondary-text)}[data-ui=alert][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_border: var(--slotted-tone-success-border);--_text: var(--slotted-tone-success-text)}[data-ui=alert][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_border: var(--slotted-tone-warning-border);--_text: var(--slotted-tone-warning-text)}[data-ui=alert][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_border: var(--slotted-tone-danger-border);--_text: var(--slotted-tone-danger-text)}[data-ui=alert][data-part=root][data-variant=soft]{background-color:var(--_surface);border-color:var(--_border)}[data-ui=alert][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border)}[data-ui=alert][data-part=root][data-variant=solid]{background-color:var(--_solid);border-color:var(--_solid);color:var(--_on-solid)}[data-ui=alert][data-part=root][data-reach=inline]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_description-font-size: var(--slotted-control-font-size-sm, 12px);--_glyph-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-4, .5rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-5, .75rem));--_row-gap: var(--slotted-alert-row-gap, var(--slotted-space-4, .5rem));--_radius: var(--slotted-alert-radius, var(--slotted-radius-sm, 4px))}[data-ui=alert][data-part=root][data-reach=page]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_glyph-size: var(--slotted-control-icon-size-lg, 18px);--_inner-size: var(--slotted-control-inner-size-lg, 28px);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-alert-radius, 0);border-block-start-width:0;border-inline-width:0}[data-ui=alert][data-part=root][data-reach=page][data-variant=solid]{border-block-start-width:var(--_border-width);border-inline-width:var(--_border-width)}[data-ui=alert]>[data-part=icon]{--slotted-icon-size: calc(var(--_mark-size) * 12 / 11);align-items:center;align-self:baseline;block-size:var(--_mark-size);contain:layout;display:flex;grid-column:1;grid-row:1;inline-size:var(--_mark-size);inset-block-start:round(nearest,(var(--_mark-size) - 1cap) / 2,1px);justify-content:center;margin-block-start:calc(-1 * var(--_mark-size));margin-inline-end:var(--_column-gap);position:relative}[data-ui=alert]>[data-part=content]{align-self:baseline;display:grid;grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr);min-inline-size:0;row-gap:var(--_text-gap)}[data-ui=alert] [data-part=title]{font-family:var( --slotted-alert-title-font-family, var( --slotted-font-family-heading, var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif) ) );font-size:inherit;font-weight:var(--slotted-alert-title-font-weight, var(--slotted-font-weight-semibold, 600));line-height:inherit;margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=alert] [data-part=description]{font-size:var(--_description-font-size);line-height:round(nearest,calc(var(--_line-height) * 1em),2px);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=alert]>[data-part=actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-alert-actions-gap, var(--slotted-space-3, .375rem));grid-column:2;grid-row:2;min-inline-size:0}[data-ui=alert]>[data-part=dismiss]{--slotted-icon-size: var(--_glyph-size);align-items:center;align-self:start;appearance:none;background-color:transparent;block-size:var(--_dismiss-size);border:0;border-radius:var(--slotted-alert-dismiss-radius, var(--slotted-control-radius, 4px));color:inherit;cursor:pointer;display:inline-flex;flex:none;font:inherit;grid-column:3;grid-row:1;inline-size:var(--_dismiss-size);justify-content:center;margin-block-end:calc((1lh - var(--_dismiss-size)) / 2);margin-block-start:calc((1lh - var(--_dismiss-size)) / 2);margin-inline-end:calc((1lh - var(--_dismiss-size)) / 2);margin-inline-start:var(--_column-gap);padding:0;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=alert]>[data-part=dismiss]:enabled:hover{background-color:var(--_state-hover)}[data-ui=alert]>[data-part=dismiss]:enabled:active{background-color:var(--_state-active)}[data-ui=alert]>[data-part=dismiss]:disabled{color:var(--slotted-disabled-foreground);cursor:default}@media(pointer:coarse){[data-ui=alert]>[data-part=dismiss]{position:relative}[data-ui=alert]>[data-part=dismiss]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}[data-ui=alert]>[data-part=dismiss]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=alert][data-variant=solid]>[data-part=dismiss]:focus-visible{box-shadow:inset 0 0 0 calc(2 * var(--slotted-focus-ring-width, 2px)) var(--_on-solid)}[data-ui=alert][data-part=root]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}@container slotted-alert (max-width: 22rem){[data-ui=alert]>[data-part=actions]{align-items:flex-start;flex-direction:column}}@container slotted-alert (min-width: 40rem){[data-ui=alert][data-reach=page]>[data-part=actions]{align-self:center;grid-column:3;grid-row:1;margin-inline-start:var(--_column-gap)}[data-ui=alert][data-reach=page]>[data-part=dismiss]{align-self:center;grid-column:4;margin-block:0}}@media(forced-colors:active){[data-ui=alert][data-part=root][data-variant]{background-color:Canvas;border-color:CanvasText;color:CanvasText}[data-ui=alert]>[data-part=dismiss]{color:CanvasText}[data-ui=alert]>[data-part=dismiss]:enabled:hover,[data-ui=alert]>[data-part=dismiss]:enabled:active{background-color:Highlight;color:HighlightText}}}\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 });
|
|
278
|
+
}
|
|
279
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlert, decorators: [{
|
|
280
|
+
type: Component,
|
|
281
|
+
args: [{ selector: '[slAlert]', standalone: true, exportAs: 'slAlert', imports: [SlGlyph, SlIcon], template: `@if (!hideIcon() && (glyph() || suppliedIcon())) {
|
|
282
|
+
<span aria-hidden="true" data-part="icon"
|
|
283
|
+
><ng-content select="[slAlertIcon]">
|
|
284
|
+
@if (glyph(); as name) {
|
|
285
|
+
<span slIcon><svg slGlyph [name]="name" solid></svg></span>
|
|
286
|
+
}</ng-content
|
|
287
|
+
></span>
|
|
288
|
+
}
|
|
289
|
+
<ng-content />
|
|
290
|
+
@if (dismissible()) {
|
|
291
|
+
<button
|
|
292
|
+
type="button"
|
|
293
|
+
data-part="dismiss"
|
|
294
|
+
[attr.aria-label]="t('dismiss')"
|
|
295
|
+
(click)="onDismiss($event)"
|
|
296
|
+
>
|
|
297
|
+
<span slIcon><svg slGlyph name="x"></svg></span>
|
|
298
|
+
</button>
|
|
299
|
+
}`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
300
|
+
'data-ui': 'alert',
|
|
301
|
+
'data-part': 'root',
|
|
302
|
+
'[attr.data-tone]': 'resolvedTone()',
|
|
303
|
+
'[attr.data-variant]': 'resolvedVariant()',
|
|
304
|
+
'[attr.data-reach]': 'resolvedReach()',
|
|
305
|
+
'[attr.data-live]': 'resolvedLive()',
|
|
306
|
+
'[attr.data-open]': "isOpen() ? '' : null",
|
|
307
|
+
'[attr.hidden]': "isOpen() ? null : ''",
|
|
308
|
+
'[attr.tabindex]': 'writtenTabIndex ?? -1',
|
|
309
|
+
'[attr.aria-labelledby]': 'labelledBy()',
|
|
310
|
+
'(focusin)': 'onFocusIn($event)',
|
|
311
|
+
'(focusout)': 'onFocusOut($event)',
|
|
312
|
+
}, styles: ["@layer slotted.components{[data-ui=alert][data-part=root]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text);--_state-hover: color-mix( in oklab, currentcolor var(--slotted-alert-state-layer-hover, 10%), transparent );--_state-active: color-mix( in oklab, currentcolor var(--slotted-alert-state-layer-active, 16%), transparent );--_font-size: var(--slotted-control-font-size-md, 13px);--_description-font-size: var(--slotted-control-font-size-md, 13px);--_glyph-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_mark-size: round(nearest, 1.2em, 2px);--_line-height: var(--slotted-line-height-md, 1.5);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-5, .75rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-6, 1rem));--_column-gap: var(--slotted-alert-column-gap, var(--slotted-space-4, .5rem));--_row-gap: var(--slotted-alert-row-gap, var(--slotted-space-5, .75rem));--_text-gap: var(--slotted-alert-text-gap, var(--slotted-space-2, .25rem));--_radius: var(--slotted-alert-radius, var(--slotted-radius-md, 6px));--_border-width: var(--slotted-alert-border-width, var(--slotted-border-width-thin, 1px));--_dismiss-size: var( --slotted-alert-dismiss-size, max( var(--slotted-target-min, 24px), min(calc(var(--_glyph-size) + 2 * var(--slotted-space-2, .25rem)), var(--_inner-size)) ) );container-name:slotted-alert;container-type:inline-size;inline-size:100%;background-color:transparent;border:var(--_border-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;color:var(--_text);column-gap:0;display:grid;font-family:var(--slotted-alert-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);grid-template-columns:auto minmax(0,1fr) auto;line-height:round(nearest,calc(var(--_line-height) * 1em),2px);padding-block:var(--_inset-block);padding-inline:var(--_inset-inline);row-gap:var(--_row-gap);transition:opacity var(--slotted-duration-short) var(--slotted-easing-enter),translate var(--slotted-duration-short) var(--slotted-easing-enter),display var(--slotted-duration-short) var(--slotted-easing-enter);transition-behavior:allow-discrete}[data-ui=alert][data-part=root][hidden]{display:none;opacity:0;transition:opacity var(--slotted-duration-short) var(--slotted-easing-exit),translate var(--slotted-duration-short) var(--slotted-easing-exit),display var(--slotted-duration-short) var(--slotted-easing-exit);translate:0 calc(-1 * var(--slotted-space-2, .25rem))}@starting-style{[data-ui=alert][data-part=root]:is([data-live=polite],[data-live=assertive]){opacity:0;translate:0 calc(-1 * var(--slotted-space-2, .25rem))}}[data-ui=alert][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_border: var(--slotted-tone-accent-border);--_text: var(--slotted-tone-accent-text)}[data-ui=alert][data-part=root][data-tone=secondary]{--_solid: var(--slotted-tone-secondary-solid);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_border: var(--slotted-tone-secondary-border);--_text: var(--slotted-tone-secondary-text)}[data-ui=alert][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_border: var(--slotted-tone-success-border);--_text: var(--slotted-tone-success-text)}[data-ui=alert][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_border: var(--slotted-tone-warning-border);--_text: var(--slotted-tone-warning-text)}[data-ui=alert][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_border: var(--slotted-tone-danger-border);--_text: var(--slotted-tone-danger-text)}[data-ui=alert][data-part=root][data-variant=soft]{background-color:var(--_surface);border-color:var(--_border)}[data-ui=alert][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border)}[data-ui=alert][data-part=root][data-variant=solid]{background-color:var(--_solid);border-color:var(--_solid);color:var(--_on-solid)}[data-ui=alert][data-part=root][data-reach=inline]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_description-font-size: var(--slotted-control-font-size-sm, 12px);--_glyph-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-4, .5rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-5, .75rem));--_row-gap: var(--slotted-alert-row-gap, var(--slotted-space-4, .5rem));--_radius: var(--slotted-alert-radius, var(--slotted-radius-sm, 4px))}[data-ui=alert][data-part=root][data-reach=page]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_glyph-size: var(--slotted-control-icon-size-lg, 18px);--_inner-size: var(--slotted-control-inner-size-lg, 28px);--_inset-block: var(--slotted-alert-padding-block, var(--slotted-space-6, 1rem));--_inset-inline: var(--slotted-alert-padding-inline, var(--slotted-space-7, 1.25rem));--_radius: var(--slotted-alert-radius, 0);border-block-start-width:0;border-inline-width:0}[data-ui=alert][data-part=root][data-reach=page][data-variant=solid]{border-block-start-width:var(--_border-width);border-inline-width:var(--_border-width)}[data-ui=alert]>[data-part=icon]{--slotted-icon-size: calc(var(--_mark-size) * 12 / 11);align-items:center;align-self:baseline;block-size:var(--_mark-size);contain:layout;display:flex;grid-column:1;grid-row:1;inline-size:var(--_mark-size);inset-block-start:round(nearest,(var(--_mark-size) - 1cap) / 2,1px);justify-content:center;margin-block-start:calc(-1 * var(--_mark-size));margin-inline-end:var(--_column-gap);position:relative}[data-ui=alert]>[data-part=content]{align-self:baseline;display:grid;grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr);min-inline-size:0;row-gap:var(--_text-gap)}[data-ui=alert] [data-part=title]{font-family:var( --slotted-alert-title-font-family, var( --slotted-font-family-heading, var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif) ) );font-size:inherit;font-weight:var(--slotted-alert-title-font-weight, var(--slotted-font-weight-semibold, 600));line-height:inherit;margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=alert] [data-part=description]{font-size:var(--_description-font-size);line-height:round(nearest,calc(var(--_line-height) * 1em),2px);margin:0;min-inline-size:0;overflow-wrap:anywhere}[data-ui=alert]>[data-part=actions]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-alert-actions-gap, var(--slotted-space-3, .375rem));grid-column:2;grid-row:2;min-inline-size:0}[data-ui=alert]>[data-part=dismiss]{--slotted-icon-size: var(--_glyph-size);align-items:center;align-self:start;appearance:none;background-color:transparent;block-size:var(--_dismiss-size);border:0;border-radius:var(--slotted-alert-dismiss-radius, var(--slotted-control-radius, 4px));color:inherit;cursor:pointer;display:inline-flex;flex:none;font:inherit;grid-column:3;grid-row:1;inline-size:var(--_dismiss-size);justify-content:center;margin-block-end:calc((1lh - var(--_dismiss-size)) / 2);margin-block-start:calc((1lh - var(--_dismiss-size)) / 2);margin-inline-end:calc((1lh - var(--_dismiss-size)) / 2);margin-inline-start:var(--_column-gap);padding:0;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing),color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=alert]>[data-part=dismiss]:enabled:hover{background-color:var(--_state-hover)}[data-ui=alert]>[data-part=dismiss]:enabled:active{background-color:var(--_state-active)}[data-ui=alert]>[data-part=dismiss]:disabled{color:var(--slotted-disabled-foreground);cursor:default}@media(pointer:coarse){[data-ui=alert]>[data-part=dismiss]{position:relative}[data-ui=alert]>[data-part=dismiss]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2));position:absolute}}[data-ui=alert]>[data-part=dismiss]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-width, 2px))}[data-ui=alert][data-variant=solid]>[data-part=dismiss]:focus-visible{box-shadow:inset 0 0 0 calc(2 * var(--slotted-focus-ring-width, 2px)) var(--_on-solid)}[data-ui=alert][data-part=root]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}@container slotted-alert (max-width: 22rem){[data-ui=alert]>[data-part=actions]{align-items:flex-start;flex-direction:column}}@container slotted-alert (min-width: 40rem){[data-ui=alert][data-reach=page]>[data-part=actions]{align-self:center;grid-column:3;grid-row:1;margin-inline-start:var(--_column-gap)}[data-ui=alert][data-reach=page]>[data-part=dismiss]{align-self:center;grid-column:4;margin-block:0}}@media(forced-colors:active){[data-ui=alert][data-part=root][data-variant]{background-color:Canvas;border-color:CanvasText;color:CanvasText}[data-ui=alert]>[data-part=dismiss]{color:CanvasText}[data-ui=alert]>[data-part=dismiss]:enabled:hover,[data-ui=alert]>[data-part=dismiss]:enabled:active{background-color:Highlight;color:HighlightText}}}\n"] }]
|
|
313
|
+
}], ctorParameters: () => [], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], reach: [{ type: i0.Input, args: [{ isSignal: true, alias: "reach", required: false }] }], live: [{ type: i0.Input, args: [{ isSignal: true, alias: "live", required: false }] }], hideIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideIcon", required: false }] }], dismissible: [{ type: i0.Input, args: [{ isSignal: true, alias: "dismissible", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], defaultOpen: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultOpen", required: false }] }], restoreFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "restoreFocus", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], suppliedIcon: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlAlertIcon), { isSignal: true }] }] } });
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* The two roles that announce, and the value that does not. Both roles imply
|
|
317
|
+
* `aria-live` and `aria-atomic`, so the whole message is read rather than the
|
|
318
|
+
* word that changed, and nothing here writes either attribute by hand.
|
|
319
|
+
*/
|
|
320
|
+
const LIVE_ROLE = {
|
|
321
|
+
off: null,
|
|
322
|
+
polite: 'status',
|
|
323
|
+
assertive: 'alert',
|
|
324
|
+
};
|
|
325
|
+
/**
|
|
326
|
+
* The message itself, and the only part that announces.
|
|
327
|
+
*
|
|
328
|
+
* It is written explicitly rather than wrapped around the alert's projected
|
|
329
|
+
* content, because a box that guessed which of its children were text would be
|
|
330
|
+
* guessing about the one thing a reader hears. Fluent's `MessageBarBody` is the
|
|
331
|
+
* only surveyed implementation with the same shape, and it is the only one
|
|
332
|
+
* whose region excludes its own controls.
|
|
333
|
+
*/
|
|
334
|
+
class SlAlertContent {
|
|
335
|
+
alert = inject(SlAlert);
|
|
336
|
+
role = computed(() => LIVE_ROLE[this.alert.resolvedLive()], /* @ts-ignore */
|
|
337
|
+
...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
|
|
338
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
339
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlAlertContent, isStandalone: true, selector: "[slAlertContent]", host: { attributes: { "data-part": "content" }, properties: { "attr.role": "role()" } }, exportAs: ["slAlertContent"], ngImport: i0 });
|
|
340
|
+
}
|
|
341
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertContent, decorators: [{
|
|
342
|
+
type: Directive,
|
|
343
|
+
args: [{
|
|
344
|
+
selector: '[slAlertContent]',
|
|
345
|
+
standalone: true,
|
|
346
|
+
exportAs: 'slAlertContent',
|
|
347
|
+
host: {
|
|
348
|
+
'data-part': 'content',
|
|
349
|
+
'[attr.role]': 'role()',
|
|
350
|
+
},
|
|
351
|
+
}]
|
|
352
|
+
}] });
|
|
353
|
+
/**
|
|
354
|
+
* The message's name, and the box's.
|
|
355
|
+
*
|
|
356
|
+
* The element is the consumer's: a heading puts the alert in the document
|
|
357
|
+
* outline, which is right for a page banner and wrong for the alert beside a
|
|
358
|
+
* field group, and only the page knows which. Writing `<h3 slAlertTitle>` is
|
|
359
|
+
* how a page that wants one says so, and Angular needs no `render` prop to
|
|
360
|
+
* allow it.
|
|
361
|
+
*/
|
|
362
|
+
class SlAlertTitle {
|
|
363
|
+
alert = inject(SlAlert);
|
|
364
|
+
constructor() {
|
|
365
|
+
this.alert.registerTitle(true);
|
|
366
|
+
}
|
|
367
|
+
ngOnDestroy() {
|
|
368
|
+
this.alert.registerTitle(false);
|
|
369
|
+
}
|
|
370
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertTitle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
371
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlAlertTitle, isStandalone: true, selector: "[slAlertTitle]", host: { attributes: { "data-part": "title" }, properties: { "attr.id": "alert.titleId" } }, exportAs: ["slAlertTitle"], ngImport: i0, template: '<ng-content />', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
372
|
+
}
|
|
373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertTitle, decorators: [{
|
|
374
|
+
type: Component,
|
|
375
|
+
args: [{
|
|
376
|
+
selector: '[slAlertTitle]',
|
|
377
|
+
standalone: true,
|
|
378
|
+
exportAs: 'slAlertTitle',
|
|
379
|
+
template: '<ng-content />',
|
|
380
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
381
|
+
encapsulation: ViewEncapsulation.None,
|
|
382
|
+
host: {
|
|
383
|
+
'data-part': 'title',
|
|
384
|
+
'[attr.id]': 'alert.titleId',
|
|
385
|
+
},
|
|
386
|
+
}]
|
|
387
|
+
}], ctorParameters: () => [] });
|
|
388
|
+
/** The message. Written on the consumer's own `p`, which is what prose is. */
|
|
389
|
+
class SlAlertDescription {
|
|
390
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
391
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlAlertDescription, isStandalone: true, selector: "[slAlertDescription]", host: { attributes: { "data-part": "description" } }, exportAs: ["slAlertDescription"], ngImport: i0 });
|
|
392
|
+
}
|
|
393
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertDescription, decorators: [{
|
|
394
|
+
type: Directive,
|
|
395
|
+
args: [{
|
|
396
|
+
selector: '[slAlertDescription]',
|
|
397
|
+
standalone: true,
|
|
398
|
+
exportAs: 'slAlertDescription',
|
|
399
|
+
host: { 'data-part': 'description' },
|
|
400
|
+
}]
|
|
401
|
+
}] });
|
|
402
|
+
/**
|
|
403
|
+
* The controls that act on the message, outside the region that announces: a
|
|
404
|
+
* reader hearing the message is not read the labels of two buttons in the
|
|
405
|
+
* middle of it. What goes in is the consumer's own buttons, because `button`
|
|
406
|
+
* already owns what a button is.
|
|
407
|
+
*/
|
|
408
|
+
class SlAlertActions {
|
|
409
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertActions, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
410
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlAlertActions, isStandalone: true, selector: "[slAlertActions]", host: { attributes: { "data-part": "actions" } }, exportAs: ["slAlertActions"], ngImport: i0 });
|
|
411
|
+
}
|
|
412
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlAlertActions, decorators: [{
|
|
413
|
+
type: Directive,
|
|
414
|
+
args: [{
|
|
415
|
+
selector: '[slAlertActions]',
|
|
416
|
+
standalone: true,
|
|
417
|
+
exportAs: 'slAlertActions',
|
|
418
|
+
host: { 'data-part': 'actions' },
|
|
419
|
+
}]
|
|
420
|
+
}] });
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Generated bundle index. Do not edit.
|
|
424
|
+
*/
|
|
425
|
+
|
|
426
|
+
export { ALERT_DEFAULTS, SlAlert, SlAlertActions, SlAlertContent, SlAlertDescription, SlAlertIcon, SlAlertTitle, injectAlertDefaults, provideAlertDefaults };
|
|
427
|
+
//# sourceMappingURL=slotted-angular-alert.mjs.map
|