@slotted/angular 0.0.0-stage → 0.1.0-beta.0
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,595 @@
|
|
|
1
|
+
import { tagMessages } from '@slotted/core/i18n';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { InjectionToken, inject, Injectable, input, booleanAttribute, ElementRef, HostAttributeToken, computed, DestroyRef, afterNextRender, Directive, output, signal, ViewEncapsulation, ChangeDetectionStrategy, Component, Renderer2, effect } from '@angular/core';
|
|
4
|
+
import { injectMessages } from '@slotted/angular/i18n';
|
|
5
|
+
import { createRovingTabindex, createRemovalFocus } from '@slotted/core/focus';
|
|
6
|
+
import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
7
|
+
import { createControllable } from '@slotted/core/state';
|
|
8
|
+
|
|
9
|
+
const FALLBACK = {
|
|
10
|
+
shape: 'pill',
|
|
11
|
+
size: 'md',
|
|
12
|
+
tone: 'secondary',
|
|
13
|
+
variant: 'soft',
|
|
14
|
+
};
|
|
15
|
+
const TAG_DEFAULTS = new InjectionToken('slotted tag defaults', {
|
|
16
|
+
providedIn: 'root',
|
|
17
|
+
factory: () => FALLBACK,
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* An application decides once how its tags are painted and how large they are,
|
|
21
|
+
* rather than repeating four inputs on every chip in a filter bar. A tag that
|
|
22
|
+
* states any of them itself still wins: an explicit input is never overridden
|
|
23
|
+
* by the token. The remove control's word comes from the language in force
|
|
24
|
+
* (`provideSlotted`).
|
|
25
|
+
*/
|
|
26
|
+
function provideTagDefaults(defaults) {
|
|
27
|
+
return {
|
|
28
|
+
provide: TAG_DEFAULTS,
|
|
29
|
+
useFactory: () => ({
|
|
30
|
+
shape: defaults.shape ?? FALLBACK.shape,
|
|
31
|
+
size: defaults.size ?? FALLBACK.size,
|
|
32
|
+
tone: defaults.tone ?? FALLBACK.tone,
|
|
33
|
+
variant: defaults.variant ?? FALLBACK.variant,
|
|
34
|
+
}),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/** What a tag renders as here, before it states anything of its own. */
|
|
38
|
+
function injectTagDefaults() {
|
|
39
|
+
return inject(TAG_DEFAULTS);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Application-scoped rather than module-scoped, for the reason the field
|
|
43
|
+
* primitive records: a module-level counter produces colliding sequences when
|
|
44
|
+
* two applications render in one server process, and the server and the client
|
|
45
|
+
* sequences must match for hydration.
|
|
46
|
+
*/
|
|
47
|
+
class SlTagIdFactory {
|
|
48
|
+
count = 0;
|
|
49
|
+
next() {
|
|
50
|
+
this.count += 1;
|
|
51
|
+
return `slotted-tag-${this.count}`;
|
|
52
|
+
}
|
|
53
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagIdFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
54
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagIdFactory, providedIn: 'root' });
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagIdFactory, decorators: [{
|
|
57
|
+
type: Injectable,
|
|
58
|
+
args: [{ providedIn: 'root' }]
|
|
59
|
+
}] });
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Every control the keyboard moves between, in the order the DOM holds them: a
|
|
63
|
+
* chip's own control, then its remove control, then the next chip's. Read
|
|
64
|
+
* literally from the APG Toolbar pattern, which needs no second axis to reach
|
|
65
|
+
* a control inside an item.
|
|
66
|
+
*/
|
|
67
|
+
const CONTROL_SELECTOR = '[data-part="body"]:is(a, button), [data-part="remove"]';
|
|
68
|
+
/**
|
|
69
|
+
* The run of tags, and the keyboard that belongs to it.
|
|
70
|
+
*
|
|
71
|
+
* It is a toolbar: the APG pattern for "a container for grouping a set of
|
|
72
|
+
* controls, such as buttons". One tab stop, arrow keys between the controls
|
|
73
|
+
* inside it, `Home` and `End` at the ends. React Aria and Angular Material
|
|
74
|
+
* reach for the Grid pattern instead, which buys a second axis at the price of
|
|
75
|
+
* two wrapper elements per chip and a `gridcell` role over every button; a
|
|
76
|
+
* single wrapping run does not need the second axis.
|
|
77
|
+
*
|
|
78
|
+
* Writing `role="list"` on the element turns the keyboard off and makes every
|
|
79
|
+
* chip a `listitem`. A list is a structure rather than a widget, its items are
|
|
80
|
+
* not controls to move between, and a screen reader announces its length.
|
|
81
|
+
*/
|
|
82
|
+
class SlTagGroup {
|
|
83
|
+
/** Which way the run reads. `vertical` also writes `aria-orientation`. */
|
|
84
|
+
orientation = input('horizontal', /* @ts-ignore */
|
|
85
|
+
...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
86
|
+
/** Whether the arrow keys wrap past the ends of the run. */
|
|
87
|
+
loop = input(true, { ...(ngDevMode ? { debugName: "loop" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
88
|
+
element = inject((ElementRef)).nativeElement;
|
|
89
|
+
writtenRole = inject(new HostAttributeToken('role'), { optional: true });
|
|
90
|
+
role = computed(() => this.writtenRole ?? 'toolbar', /* @ts-ignore */
|
|
91
|
+
...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
|
|
92
|
+
roving = computed(() => this.role() === 'toolbar', /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "roving" }] : /* istanbul ignore next */ []));
|
|
94
|
+
ariaOrientation = computed(() =>
|
|
95
|
+
/* `horizontal` is the toolbar role's own default, so only the other one is
|
|
96
|
+
written; a list has no orientation to state. */
|
|
97
|
+
this.roving() && this.orientation() === 'vertical' ? 'vertical' : null, /* @ts-ignore */
|
|
98
|
+
...(ngDevMode ? [{ debugName: "ariaOrientation" }] : /* istanbul ignore next */ []));
|
|
99
|
+
/** What a chip inside this run calls itself. A toolbar's items are its controls. */
|
|
100
|
+
itemRole = computed(() => (this.role() === 'list' ? 'listitem' : undefined), /* @ts-ignore */
|
|
101
|
+
...(ngDevMode ? [{ debugName: "itemRole" }] : /* istanbul ignore next */ []));
|
|
102
|
+
constructor() {
|
|
103
|
+
const destroyRef = inject(DestroyRef);
|
|
104
|
+
afterNextRender(() => {
|
|
105
|
+
if (!this.roving())
|
|
106
|
+
return;
|
|
107
|
+
const tabindex = createRovingTabindex(this.element, {
|
|
108
|
+
itemSelector: CONTROL_SELECTOR,
|
|
109
|
+
loop: this.loop(),
|
|
110
|
+
orientation: () => this.orientation(),
|
|
111
|
+
});
|
|
112
|
+
/**
|
|
113
|
+
* Where the keyboard goes when the chip it was on is taken away. The
|
|
114
|
+
* container is the last resort, which is why it holds `tabindex="-1"`: a
|
|
115
|
+
* group emptied by its final removal keeps focus rather than returning
|
|
116
|
+
* it to the top of the page.
|
|
117
|
+
*/
|
|
118
|
+
const removal = createRemovalFocus(this.element, {
|
|
119
|
+
itemSelector: CONTROL_SELECTOR,
|
|
120
|
+
});
|
|
121
|
+
/**
|
|
122
|
+
* The tab stop has to survive a chip arriving or leaving, and neither
|
|
123
|
+
* binding can be told by the other's change detection. The DOM is the
|
|
124
|
+
* one thing both of them agree on.
|
|
125
|
+
*/
|
|
126
|
+
const observer = new MutationObserver(() => tabindex.refresh());
|
|
127
|
+
observer.observe(this.element, { childList: true, subtree: true });
|
|
128
|
+
destroyRef.onDestroy(() => {
|
|
129
|
+
observer.disconnect();
|
|
130
|
+
removal.destroy();
|
|
131
|
+
tabindex.destroy();
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
136
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", type: SlTagGroup, isStandalone: true, selector: "[slTagGroup]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, loop: { classPropertyName: "loop", publicName: "loop", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "tag", "data-part": "group", "tabindex": "-1" }, properties: { "attr.data-orientation": "orientation()", "attr.role": "role()", "attr.aria-orientation": "ariaOrientation()" } }, exportAs: ["slTagGroup"], ngImport: i0 });
|
|
137
|
+
}
|
|
138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagGroup, decorators: [{
|
|
139
|
+
type: Directive,
|
|
140
|
+
args: [{
|
|
141
|
+
selector: '[slTagGroup]',
|
|
142
|
+
standalone: true,
|
|
143
|
+
exportAs: 'slTagGroup',
|
|
144
|
+
host: {
|
|
145
|
+
'data-ui': 'tag',
|
|
146
|
+
'data-part': 'group',
|
|
147
|
+
tabindex: '-1',
|
|
148
|
+
'[attr.data-orientation]': 'orientation()',
|
|
149
|
+
'[attr.role]': 'role()',
|
|
150
|
+
'[attr.aria-orientation]': 'ariaOrientation()',
|
|
151
|
+
},
|
|
152
|
+
}]
|
|
153
|
+
}], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], loop: [{ type: i0.Input, args: [{ isSignal: true, alias: "loop", required: false }] }] } });
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* The chip box: an entity, a filter or a compact value. It is not metadata —
|
|
157
|
+
* that is `badge`, and the two share this tone and this type scale on purpose.
|
|
158
|
+
*
|
|
159
|
+
* **The root is never the interactive element.** A `button` cannot contain a
|
|
160
|
+
* `button` and an `a` cannot contain either, so a chip that both acts and
|
|
161
|
+
* removes has to put its two controls side by side. The chip is written on the
|
|
162
|
+
* consumer's own `span`; what the chip *is* is decided by the element under
|
|
163
|
+
* `slTagBody`: a `span` does nothing, a `button` runs a command, an `a`
|
|
164
|
+
* navigates, and `slTagToggle` holds a selection. The element is the member,
|
|
165
|
+
* which is what keeps `routerLink`, `type` and every native attribute on the
|
|
166
|
+
* element that owns them.
|
|
167
|
+
*/
|
|
168
|
+
class SlTag {
|
|
169
|
+
/** Defaults to the provider, then to `secondary`. */
|
|
170
|
+
tone = input(undefined, /* @ts-ignore */
|
|
171
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
172
|
+
/** Defaults to the provider, then to `soft`. */
|
|
173
|
+
variant = input(undefined, /* @ts-ignore */
|
|
174
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
175
|
+
/** Defaults to the provider, then to `md`. */
|
|
176
|
+
size = input(undefined, /* @ts-ignore */
|
|
177
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
178
|
+
/** Defaults to the provider, then to `pill`. */
|
|
179
|
+
shape = input(undefined, /* @ts-ignore */
|
|
180
|
+
...(ngDevMode ? [{ debugName: "shape" }] : /* istanbul ignore next */ []));
|
|
181
|
+
/** Refuses every interaction the tag offers, including its removal. */
|
|
182
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
183
|
+
/**
|
|
184
|
+
* Whether the chip can be removed at all. React reads the same fact from
|
|
185
|
+
* whether a handler was passed; Angular cannot see whether an output was
|
|
186
|
+
* subscribed, so the opt-in is stated — the asymmetry `button` recorded for
|
|
187
|
+
* its own toggle.
|
|
188
|
+
*/
|
|
189
|
+
removable = input(false, { ...(ngDevMode ? { debugName: "removable" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
190
|
+
/** Refuses the removal while the rest of the tag stays operable. */
|
|
191
|
+
removeDisabled = input(false, { ...(ngDevMode ? { debugName: "removeDisabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
192
|
+
/**
|
|
193
|
+
* Words laid over the catalog of the language in force, key by key: `remove`
|
|
194
|
+
* is the word the remove control announces before the tag's own label, so it
|
|
195
|
+
* reads "Remove Design" rather than "Remove".
|
|
196
|
+
*/
|
|
197
|
+
messages = input(undefined, /* @ts-ignore */
|
|
198
|
+
...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
199
|
+
/** One output for one transition, carrying the reason, the event and `cancel()`. */
|
|
200
|
+
remove = output();
|
|
201
|
+
defaults = injectTagDefaults();
|
|
202
|
+
group = inject(SlTagGroup, { optional: true, skipSelf: true });
|
|
203
|
+
/** An explicit role the consumer wrote is never replaced by an inferred one. */
|
|
204
|
+
writtenRole = inject(new HostAttributeToken('role'), { optional: true });
|
|
205
|
+
/**
|
|
206
|
+
* One identifier for the chip, from which the label's and the hidden word's
|
|
207
|
+
* are derived. Deriving beats registering: the remove control needs the
|
|
208
|
+
* label's id before the body has had a chance to announce one.
|
|
209
|
+
*/
|
|
210
|
+
id = inject(SlTagIdFactory).next();
|
|
211
|
+
labelId = `${this.id}-label`;
|
|
212
|
+
removeWordId = `${this.id}-remove`;
|
|
213
|
+
/** Set by `slTagToggle`, which is the one member that holds a selection. */
|
|
214
|
+
selectedState = signal(false, /* @ts-ignore */
|
|
215
|
+
...(ngDevMode ? [{ debugName: "selectedState" }] : /* istanbul ignore next */ []));
|
|
216
|
+
resolvedTone = computed(() => this.tone() ?? this.defaults.tone, /* @ts-ignore */
|
|
217
|
+
...(ngDevMode ? [{ debugName: "resolvedTone" }] : /* istanbul ignore next */ []));
|
|
218
|
+
resolvedVariant = computed(() => this.variant() ?? this.defaults.variant, /* @ts-ignore */
|
|
219
|
+
...(ngDevMode ? [{ debugName: "resolvedVariant" }] : /* istanbul ignore next */ []));
|
|
220
|
+
resolvedSize = computed(() => this.size() ?? this.defaults.size, /* @ts-ignore */
|
|
221
|
+
...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
|
|
222
|
+
resolvedShape = computed(() => this.shape() ?? this.defaults.shape, /* @ts-ignore */
|
|
223
|
+
...(ngDevMode ? [{ debugName: "resolvedShape" }] : /* istanbul ignore next */ []));
|
|
224
|
+
role = computed(() => this.writtenRole ?? this.group?.itemRole() ?? null, /* @ts-ignore */
|
|
225
|
+
...(ngDevMode ? [{ debugName: "role" }] : /* istanbul ignore next */ []));
|
|
226
|
+
selected = computed(() => this.selectedState(), /* @ts-ignore */
|
|
227
|
+
...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
228
|
+
/** The family's words in the language in force, with this tag's `messages` laid over them. */
|
|
229
|
+
t = injectMessages(tagMessages, this.messages);
|
|
230
|
+
removeRefused = computed(() => this.disabled() || this.removeDisabled(), /* @ts-ignore */
|
|
231
|
+
...(ngDevMode ? [{ debugName: "removeRefused" }] : /* istanbul ignore next */ []));
|
|
232
|
+
/** Called by the toggle, which owns the value and only reports it here. */
|
|
233
|
+
setSelected(selected) {
|
|
234
|
+
this.selectedState.set(selected);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* The request the remove control and the keyboard both make. Nothing is
|
|
238
|
+
* committed here: the tag does not own whether it exists, and a consumer
|
|
239
|
+
* that refuses the request leaves the chip and the keyboard where they were.
|
|
240
|
+
*/
|
|
241
|
+
requestRemoval(reason, source) {
|
|
242
|
+
if (!this.removable() || this.removeRefused())
|
|
243
|
+
return;
|
|
244
|
+
let cancelled = false;
|
|
245
|
+
this.remove.emit({
|
|
246
|
+
reason,
|
|
247
|
+
source,
|
|
248
|
+
get cancelled() {
|
|
249
|
+
return cancelled;
|
|
250
|
+
},
|
|
251
|
+
cancel() {
|
|
252
|
+
cancelled = true;
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* `Backspace` and `Delete` on a removable chip, which is the shortcut MUI,
|
|
258
|
+
* Primer, React Aria and Angular Material all ship. It is bound to the chip
|
|
259
|
+
* box rather than to either control, so it answers wherever focus is inside
|
|
260
|
+
* the chip, and a consumer's own handler runs first and can refuse it by
|
|
261
|
+
* calling `preventDefault`.
|
|
262
|
+
*
|
|
263
|
+
* A held key repeats, and a repeat would remove the chip focus has just
|
|
264
|
+
* landed on. The default is prevented because `Backspace` still navigates
|
|
265
|
+
* back in some browsers when nothing is being edited.
|
|
266
|
+
*/
|
|
267
|
+
onKeydown(event) {
|
|
268
|
+
if (event.repeat || event.defaultPrevented)
|
|
269
|
+
return;
|
|
270
|
+
if (event.key !== 'Backspace' && event.key !== 'Delete')
|
|
271
|
+
return;
|
|
272
|
+
if (!this.removable() || this.removeRefused())
|
|
273
|
+
return;
|
|
274
|
+
event.preventDefault();
|
|
275
|
+
this.requestRemoval('keyboard', event);
|
|
276
|
+
}
|
|
277
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTag, isStandalone: true, selector: "[slTag]", inputs: { tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, removable: { classPropertyName: "removable", publicName: "removable", isSignal: true, isRequired: false, transformFunction: null }, removeDisabled: { classPropertyName: "removeDisabled", publicName: "removeDisabled", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { remove: "remove" }, host: { attributes: { "data-ui": "tag", "data-part": "root" }, listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.data-tone": "resolvedTone()", "attr.data-variant": "resolvedVariant()", "attr.data-size": "resolvedSize()", "attr.data-shape": "resolvedShape()", "attr.data-disabled": "disabled() ? '' : null", "attr.data-selected": "selected() ? '' : null", "attr.role": "role()" } }, exportAs: ["slTag"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=tag][data-part=root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui=tag][data-part=root][hidden]{display:none}[data-ui=tag][data-part=root][data-tone=secondary]{--_edge: var(--_border)}[data-ui=tag][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui=tag][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui=tag][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui=tag][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui=tag][data-part=root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui=tag] [data-part=body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;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=tag] [data-part=body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui=tag] [data-part=body]:has(+[data-part=remove]){padding-inline-end:var(--_gap)}[data-ui=tag] [data-part=body]:is(a,button){cursor:pointer}[data-ui=tag] [data-part=label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui=tag] [data-part=label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui=tag] [data-part=start],[data-ui=tag] [data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui=tag] [data-part=start]>*,[data-ui=tag] [data-part=end]>*{block-size:100%;display:block;inline-size:100%}[data-ui=tag] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=tag][data-part=root][data-selected] [data-part=indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui=tag] [data-part=remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=tag] [data-part=remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui=tag] [data-part=remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=tag] [data-part=remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui=tag] [data-part=body]:focus-visible,[data-ui=tag] [data-part=remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui=tag][data-part=group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=tag][data-part=root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=root][data-variant=solid][data-disabled],[data-ui=tag][data-part=root][data-variant=soft][data-disabled],[data-ui=tag][data-part=root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-disabled] :is([data-part=body],[data-part=remove]),[data-ui=tag] [data-part=body]:disabled,[data-ui=tag] [data-part=remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui=tag] [data-part=remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui=tag][data-part=group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui=tag][data-part=group]:empty{display:none}@media(forced-colors:active){[data-ui=tag][data-part=root]{border-color:currentColor}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=tag][data-part=root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
279
|
+
}
|
|
280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTag, decorators: [{
|
|
281
|
+
type: Component,
|
|
282
|
+
args: [{ selector: '[slTag]', standalone: true, exportAs: 'slTag', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
283
|
+
'data-ui': 'tag',
|
|
284
|
+
'data-part': 'root',
|
|
285
|
+
'[attr.data-tone]': 'resolvedTone()',
|
|
286
|
+
'[attr.data-variant]': 'resolvedVariant()',
|
|
287
|
+
'[attr.data-size]': 'resolvedSize()',
|
|
288
|
+
'[attr.data-shape]': 'resolvedShape()',
|
|
289
|
+
'[attr.data-disabled]': "disabled() ? '' : null",
|
|
290
|
+
'[attr.data-selected]': "selected() ? '' : null",
|
|
291
|
+
'[attr.role]': 'role()',
|
|
292
|
+
'(keydown)': 'onKeydown($event)',
|
|
293
|
+
}, styles: ["@layer slotted.components{[data-ui=tag][data-part=root]{--_solid: var(--slotted-tone-secondary-solid-hover);--_solid-hover: var(--slotted-tone-secondary-solid-active);--_solid-active: var(--slotted-tone-secondary-solid-active);--_on-solid: var(--slotted-tone-secondary-on-solid);--_surface: var(--slotted-tone-secondary-surface);--_subtle-hover: var(--slotted-tone-secondary-subtle-hover);--_subtle-active: var(--slotted-tone-secondary-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-secondary-border));--_text: var(--slotted-tone-secondary-text);--_edge: var(--_solid);--_font-size: var(--slotted-control-font-size-md, 13px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_inner-size: var(--slotted-control-inner-size-sm, 22px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-2, .25rem));--_inset-inline: var(--slotted-space-4, .5rem);--_gap: var(--slotted-space-2, .25rem);--_line-height: var(--slotted-line-height-xs, 1.4);--_edge-width: var(--slotted-tag-border-width, var(--slotted-border-width-thin, 1px));--_radius: var(--slotted-radius-full, 9999px);--_inner-radius: max(0px, calc(var(--_radius) - var(--_edge-width)));--_own-size: calc( var(--_font-size) * var(--_line-height) + 2 * var(--_inset-block) + 2 * var(--_edge-width) );--_block-size: var(--slotted-control-inner-size, var(--_own-size));--_line: min( calc(var(--_font-size) * var(--_line-height)), calc(var(--_block-size) - 2 * var(--_edge-width)) );--_inset: max(0px, calc((var(--_block-size) - var(--_line) - 2 * var(--_edge-width)) / 2));align-items:stretch;border:var(--_edge-width) solid transparent;border-radius:var(--_radius);box-sizing:border-box;display:inline-flex;font-family:var(--slotted-tag-font-family, var(--slotted-control-font-family, sans-serif));font-size:var(--_font-size);font-weight:var(--slotted-tag-font-weight, var(--slotted-font-weight-medium, 500));line-height:var(--_line);max-inline-size:100%;min-block-size:var(--_block-size);vertical-align:middle;white-space:nowrap}[data-ui=tag][data-part=root][hidden]{display:none}[data-ui=tag][data-part=root][data-tone=secondary]{--_edge: var(--_border)}[data-ui=tag][data-part=root][data-tone=accent]{--_solid: var(--slotted-tone-accent-solid);--_solid-hover: var(--slotted-tone-accent-solid-hover);--_solid-active: var(--slotted-tone-accent-solid-active);--_on-solid: var(--slotted-tone-accent-on-solid);--_surface: var(--slotted-tone-accent-surface);--_subtle-hover: var(--slotted-tone-accent-subtle-hover);--_subtle-active: var(--slotted-tone-accent-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-accent-border));--_text: var(--slotted-tone-accent-text)}[data-ui=tag][data-part=root][data-tone=success]{--_solid: var(--slotted-tone-success-solid);--_solid-hover: var(--slotted-tone-success-solid-hover);--_solid-active: var(--slotted-tone-success-solid-active);--_on-solid: var(--slotted-tone-success-on-solid);--_surface: var(--slotted-tone-success-surface);--_subtle-hover: var(--slotted-tone-success-subtle-hover);--_subtle-active: var(--slotted-tone-success-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-success-border));--_text: var(--slotted-tone-success-text)}[data-ui=tag][data-part=root][data-tone=warning]{--_solid: var(--slotted-tone-warning-solid);--_solid-hover: var(--slotted-tone-warning-solid-hover);--_solid-active: var(--slotted-tone-warning-solid-active);--_on-solid: var(--slotted-tone-warning-on-solid);--_surface: var(--slotted-tone-warning-surface);--_subtle-hover: var(--slotted-tone-warning-subtle-hover);--_subtle-active: var(--slotted-tone-warning-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-warning-border));--_text: var(--slotted-tone-warning-text)}[data-ui=tag][data-part=root][data-tone=danger]{--_solid: var(--slotted-tone-danger-solid);--_solid-hover: var(--slotted-tone-danger-solid-hover);--_solid-active: var(--slotted-tone-danger-solid-active);--_on-solid: var(--slotted-tone-danger-on-solid);--_surface: var(--slotted-tone-danger-surface);--_subtle-hover: var(--slotted-tone-danger-subtle-hover);--_subtle-active: var(--slotted-tone-danger-subtle-active);--_border: var(--slotted-tag-border-color, var(--slotted-tone-danger-border));--_text: var(--slotted-tone-danger-text)}[data-ui=tag][data-part=root][data-variant=solid]{background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonFace);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root][data-variant=soft]{background-color:var(--_surface, ButtonFace);border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-variant=outline]{background-color:transparent;border-color:var(--_border, ButtonBorder);color:var(--_text, ButtonText)}[data-ui=tag][data-part=root][data-size=sm]{--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-1, .125rem));--_inset-inline: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-size=lg]{--_font-size: var(--slotted-control-font-size-lg, 14px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_inner-size: var(--slotted-control-inner-size-md, 24px);--_inset-block: var(--slotted-tag-inset-block, var(--slotted-space-3, .375rem));--_inset-inline: var(--slotted-space-5, .75rem);--_gap: var(--slotted-space-3, .375rem)}[data-ui=tag][data-part=root][data-shape=square]{--_radius: var(--slotted-radius-sm, 4px)}[data-ui=tag] [data-part=body]{align-items:center;background-color:transparent;border:0;border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;display:inline-flex;font:inherit;gap:var(--_gap);letter-spacing:inherit;min-inline-size:0;padding-block:var(--_inset);padding-inline:var(--_inset-inline);text-align:start;text-decoration:none;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=tag] [data-part=body]:last-child{border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius)}[data-ui=tag] [data-part=body]:has(+[data-part=remove]){padding-inline-end:var(--_gap)}[data-ui=tag] [data-part=body]:is(a,button){cursor:pointer}[data-ui=tag] [data-part=label]{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;unicode-bidi:plaintext}@supports (text-box: trim-both cap alphabetic){[data-ui=tag] [data-part=label]{margin-block:-.3em;padding-block:.3em;text-box:trim-both cap alphabetic}}[data-ui=tag] [data-part=start],[data-ui=tag] [data-part=end]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);box-sizing:border-box;display:inline-flex;flex:none;font-size:var(--_icon-size);inline-size:var(--_icon-size);justify-content:center;line-height:1}[data-ui=tag] [data-part=start]>*,[data-ui=tag] [data-part=end]>*{block-size:100%;display:block;inline-size:100%}[data-ui=tag] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);align-items:center;block-size:var(--_icon-size);display:inline-flex;flex:none;inline-size:0;justify-content:center;margin-inline-end:calc(-1 * var(--_gap));opacity:0;overflow:hidden;transition:inline-size var(--slotted-duration-short) var(--slotted-easing-standard),margin-inline-end var(--slotted-duration-short) var(--slotted-easing-standard),opacity var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=tag][data-part=root][data-selected] [data-part=indicator]{inline-size:var(--_icon-size);margin-inline-end:0;opacity:1}[data-ui=tag] [data-part=remove]{--slotted-icon-size: var(--_icon-size);align-items:center;appearance:none;background-color:transparent;border:0;border-end-end-radius:var(--_inner-radius);border-start-end-radius:var(--_inner-radius);box-sizing:border-box;color:inherit;cursor:pointer;display:inline-flex;flex:none;inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)));justify-content:center;padding:0;position:relative;transition:background-color var(--slotted-control-transition-duration) var(--slotted-control-transition-easing)}[data-ui=tag] [data-part=remove]:after{content:\"\";inset:min(0px,calc((100% - var(--slotted-target-min, 24px)) / 2));position:absolute}@media(pointer:coarse){[data-ui=tag] [data-part=remove]{inline-size:max(var(--slotted-target-min, 24px),min(calc(var(--_icon-size) + 2 * var(--slotted-space-2, .25rem)),var(--_inner-size)),calc(var(--_block-size) - 2 * var(--_edge-width)))}[data-ui=tag] [data-part=remove]:after{inset:min(0px,calc((100% - var(--slotted-target-comfortable, 44px)) / 2))}}[data-ui=tag] [data-part=remove]:first-child{border-end-start-radius:var(--_inner-radius);border-start-start-radius:var(--_inner-radius)}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:var(--_solid, ButtonFace);border-color:var(--_edge, ButtonBorder);color:var(--_on-solid, ButtonText)}[data-ui=tag][data-part=root]{--_state-hover: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-hover, 8%), transparent );--_state-active: color-mix( in oklab, currentColor var(--slotted-tag-state-layer-active, 14%), transparent )}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_state-hover)}[data-ui=tag][data-part=root][data-variant=soft]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_state-active)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_subtle-hover, ButtonFace)}[data-ui=tag][data-part=root][data-variant=outline]:not([data-disabled]):not([data-selected]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_subtle-active, ButtonFace)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):hover:not(:disabled){background-color:var(--_solid-hover, Highlight)}[data-ui=tag][data-part=root][data-variant=solid]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled),[data-ui=tag][data-part=root][data-selected]:not([data-disabled]) :is([data-part=body]:is(a,button),[data-part=remove]):active:not(:disabled){background-color:var(--_solid-active, Highlight)}[data-ui=tag] [data-part=body]:focus-visible,[data-ui=tag] [data-part=remove]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-2 * var(--slotted-focus-ring-width, 2px))}[data-ui=tag][data-part=group]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=tag][data-part=root][data-disabled]{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=root][data-variant=solid][data-disabled],[data-ui=tag][data-part=root][data-variant=soft][data-disabled],[data-ui=tag][data-part=root][data-selected][data-disabled]{background-color:var(--slotted-disabled-background, Canvas);border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-variant=outline][data-disabled]{background-color:transparent;border-color:var(--slotted-disabled-border, GrayText)}[data-ui=tag][data-part=root][data-disabled] :is([data-part=body],[data-part=remove]),[data-ui=tag] [data-part=body]:disabled,[data-ui=tag] [data-part=remove]:disabled{background-color:transparent;cursor:not-allowed}[data-ui=tag] [data-part=remove]:disabled{color:var(--slotted-disabled-foreground, GrayText)}[data-ui=tag][data-part=group]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-tag-group-gap, var(--slotted-space-2, .25rem))}[data-ui=tag][data-part=group][data-orientation=vertical]{align-items:start;flex-direction:column;flex-wrap:nowrap;inline-size:fit-content}[data-ui=tag][data-part=group]:empty{display:none}@media(forced-colors:active){[data-ui=tag][data-part=root]{border-color:currentColor}[data-ui=tag][data-part=root][data-selected]:not([data-disabled]){background-color:Highlight;color:HighlightText;forced-color-adjust:none}[data-ui=tag][data-part=root][data-disabled]{border-color:GrayText;color:GrayText}}}\n"] }]
|
|
294
|
+
}], propDecorators: { tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], shape: [{ type: i0.Input, args: [{ isSignal: true, alias: "shape", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], removable: [{ type: i0.Input, args: [{ isSignal: true, alias: "removable", required: false }] }], removeDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "removeDisabled", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], remove: [{ type: i0.Output, args: ["remove"] }] } });
|
|
295
|
+
|
|
296
|
+
/**
|
|
297
|
+
* The template every content box shares. The words get a box of their own — it
|
|
298
|
+
* is what `text-box` needs to trim the line to the cap and the baseline, what
|
|
299
|
+
* `text-overflow` needs to clip a long value, and what `aria-labelledby` on
|
|
300
|
+
* the remove control points at so it announces the value rather than the word
|
|
301
|
+
* "Remove" on its own.
|
|
302
|
+
*
|
|
303
|
+
* Every space between these tags is load-bearing: Angular collapses a newline
|
|
304
|
+
* between two nodes into a space, and a space beside the label box would put a
|
|
305
|
+
* word gap inside the chip that the family's own `gap` is already drawing.
|
|
306
|
+
*/
|
|
307
|
+
const TAG_BODY_TEMPLATE = '<ng-content select="[slTagStart]"></ng-content>' +
|
|
308
|
+
'<span data-part="label" [id]="tag.labelId"><ng-content></ng-content></span>' +
|
|
309
|
+
'<ng-content select="[slTagEnd]"></ng-content>';
|
|
310
|
+
/**
|
|
311
|
+
* The content box, and the primary target when there is one. It is written on
|
|
312
|
+
* the element the chip *is*: a `span` that does nothing, a `button` that runs
|
|
313
|
+
* a command, an `a` that navigates. The element is the member, which is what
|
|
314
|
+
* keeps `routerLink`, `type`, `download` and every native listener on the
|
|
315
|
+
* element that owns them.
|
|
316
|
+
*
|
|
317
|
+
* `disabled` belongs to the chip rather than to this element, because a chip
|
|
318
|
+
* is unavailable as a whole. What that means depends on the element, and the
|
|
319
|
+
* platform only offers one of the two forms per element.
|
|
320
|
+
*/
|
|
321
|
+
class SlTagBody {
|
|
322
|
+
tag = inject(SlTag);
|
|
323
|
+
element = inject((ElementRef)).nativeElement;
|
|
324
|
+
renderer = inject(Renderer2);
|
|
325
|
+
isButton = this.element.tagName === 'BUTTON';
|
|
326
|
+
isAnchor = this.element.tagName === 'A';
|
|
327
|
+
nativelyDisabled = computed(() => this.isButton && this.tag.disabled() ? '' : null, /* @ts-ignore */
|
|
328
|
+
...(ngDevMode ? [{ debugName: "nativelyDisabled" }] : /* istanbul ignore next */ []));
|
|
329
|
+
ariaDisabled = computed(() => this.isAnchor && this.tag.disabled() ? 'true' : null, /* @ts-ignore */
|
|
330
|
+
...(ngDevMode ? [{ debugName: "ariaDisabled" }] : /* istanbul ignore next */ []));
|
|
331
|
+
/** An anchor without a destination is no longer a link, so it says it is one. */
|
|
332
|
+
anchorRole = computed(() => this.isAnchor && this.tag.disabled() ? 'link' : null, /* @ts-ignore */
|
|
333
|
+
...(ngDevMode ? [{ debugName: "anchorRole" }] : /* istanbul ignore next */ []));
|
|
334
|
+
/**
|
|
335
|
+
* A disabled anchor keeps its place in the tab sequence and loses its
|
|
336
|
+
* destination, which is the line `link` draws for the same case: an anchor
|
|
337
|
+
* without an `href` would drop out of the tab sequence and take its own
|
|
338
|
+
* explanation with it. The attribute is withheld rather than overwritten, so
|
|
339
|
+
* it is given back the moment the chip becomes available again.
|
|
340
|
+
*/
|
|
341
|
+
withheldHref = null;
|
|
342
|
+
constructor() {
|
|
343
|
+
if (this.isAnchor) {
|
|
344
|
+
effect(() => {
|
|
345
|
+
if (this.tag.disabled()) {
|
|
346
|
+
this.withheldHref ??= this.element.getAttribute('href');
|
|
347
|
+
this.renderer.removeAttribute(this.element, 'href');
|
|
348
|
+
this.renderer.setAttribute(this.element, 'tabindex', '0');
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
if (this.withheldHref !== null) {
|
|
352
|
+
this.renderer.setAttribute(this.element, 'href', this.withheldHref);
|
|
353
|
+
this.withheldHref = null;
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* The capture phase, because a control that is unavailable must refuse the
|
|
359
|
+
* activation before any listener the consumer attached to it can run. A
|
|
360
|
+
* natively disabled button needs none of this; an anchor and a `span` with
|
|
361
|
+
* a listener on it do.
|
|
362
|
+
*/
|
|
363
|
+
if (!this.isButton) {
|
|
364
|
+
const destroyRef = inject(DestroyRef);
|
|
365
|
+
const refuse = (event) => {
|
|
366
|
+
if (!this.tag.disabled())
|
|
367
|
+
return;
|
|
368
|
+
event.preventDefault();
|
|
369
|
+
event.stopPropagation();
|
|
370
|
+
event.stopImmediatePropagation();
|
|
371
|
+
};
|
|
372
|
+
for (const type of ['click', 'auxclick', 'keydown']) {
|
|
373
|
+
this.element.addEventListener(type, refuse, { capture: true });
|
|
374
|
+
destroyRef.onDestroy(() => this.element.removeEventListener(type, refuse, { capture: true }));
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
379
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagBody, isStandalone: true, selector: "[slTagBody]", host: { attributes: { "data-part": "body" }, properties: { "attr.disabled": "nativelyDisabled()", "attr.aria-disabled": "ariaDisabled()", "attr.role": "anchorRole()" } }, exportAs: ["slTagBody"], ngImport: i0, template: "<ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
380
|
+
}
|
|
381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagBody, decorators: [{
|
|
382
|
+
type: Component,
|
|
383
|
+
args: [{
|
|
384
|
+
selector: '[slTagBody]',
|
|
385
|
+
standalone: true,
|
|
386
|
+
exportAs: 'slTagBody',
|
|
387
|
+
template: TAG_BODY_TEMPLATE,
|
|
388
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
389
|
+
encapsulation: ViewEncapsulation.None,
|
|
390
|
+
host: {
|
|
391
|
+
'data-part': 'body',
|
|
392
|
+
'[attr.disabled]': 'nativelyDisabled()',
|
|
393
|
+
'[attr.aria-disabled]': 'ariaDisabled()',
|
|
394
|
+
'[attr.role]': 'anchorRole()',
|
|
395
|
+
},
|
|
396
|
+
}]
|
|
397
|
+
}], ctorParameters: () => [] });
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* A glyph or an avatar before the words. The artwork is the consumer's, and
|
|
401
|
+
* the part gives it a box that is sized and centred; the directive is written
|
|
402
|
+
* on the element the page already has, so nothing is wrapped.
|
|
403
|
+
*/
|
|
404
|
+
class SlTagStart {
|
|
405
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagStart, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
406
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagStart, isStandalone: true, selector: "[slTagStart]", host: { attributes: { "data-part": "start" } }, exportAs: ["slTagStart"], ngImport: i0 });
|
|
407
|
+
}
|
|
408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagStart, decorators: [{
|
|
409
|
+
type: Directive,
|
|
410
|
+
args: [{
|
|
411
|
+
selector: '[slTagStart]',
|
|
412
|
+
standalone: true,
|
|
413
|
+
exportAs: 'slTagStart',
|
|
414
|
+
host: { 'data-part': 'start' },
|
|
415
|
+
}]
|
|
416
|
+
}] });
|
|
417
|
+
/** A glyph after the words. */
|
|
418
|
+
class SlTagEnd {
|
|
419
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagEnd, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
420
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlTagEnd, isStandalone: true, selector: "[slTagEnd]", host: { attributes: { "data-part": "end" } }, exportAs: ["slTagEnd"], ngImport: i0 });
|
|
421
|
+
}
|
|
422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagEnd, decorators: [{
|
|
423
|
+
type: Directive,
|
|
424
|
+
args: [{
|
|
425
|
+
selector: '[slTagEnd]',
|
|
426
|
+
standalone: true,
|
|
427
|
+
exportAs: 'slTagEnd',
|
|
428
|
+
host: { 'data-part': 'end' },
|
|
429
|
+
}]
|
|
430
|
+
}] });
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* The control at the end of the chip, on the consumer's own button so its
|
|
434
|
+
* listeners and its attributes stay theirs. The glyph is the family's `x`,
|
|
435
|
+
* drawn as the `Glyph` element unless the consumer wrote content of their own:
|
|
436
|
+
* a character is never an icon.
|
|
437
|
+
*
|
|
438
|
+
* Its name is composed rather than repeated. The hidden word and the tag's own
|
|
439
|
+
* label are joined by `aria-labelledby`, so it announces "Remove Design"
|
|
440
|
+
* without the consumer writing the value a second time — the string four of
|
|
441
|
+
* the surveyed implementations make the consumer keep in step with the value
|
|
442
|
+
* by hand. Text referenced by `aria-labelledby` counts even when the element
|
|
443
|
+
* holding it is hidden, which is what lets the word cost no space.
|
|
444
|
+
*/
|
|
445
|
+
class SlTagRemove {
|
|
446
|
+
tag = inject(SlTag);
|
|
447
|
+
labelledBy = computed(() => `${this.tag.removeWordId} ${this.tag.labelId}`, /* @ts-ignore */
|
|
448
|
+
...(ngDevMode ? [{ debugName: "labelledBy" }] : /* istanbul ignore next */ []));
|
|
449
|
+
onClick(event) {
|
|
450
|
+
/* The X is its own target. A handler the consumer put on the chip is about
|
|
451
|
+
the chip, and a removal is not a press of it. */
|
|
452
|
+
event.stopPropagation();
|
|
453
|
+
this.tag.requestRemoval('remove', event);
|
|
454
|
+
}
|
|
455
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagRemove, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
456
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.7", type: SlTagRemove, isStandalone: true, selector: "button[slTagRemove]", host: { attributes: { "data-part": "remove", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-labelledby": "labelledBy()", "attr.disabled": "tag.removeRefused() ? '' : null" } }, exportAs: ["slTagRemove"], ngImport: i0, template: `<ng-content
|
|
457
|
+
><span slIcon><svg slGlyph name="x"></svg></span></ng-content
|
|
458
|
+
><span hidden [id]="tag.removeWordId">{{ tag.t('remove') }}</span>`, isInline: true, 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 });
|
|
459
|
+
}
|
|
460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagRemove, decorators: [{
|
|
461
|
+
type: Component,
|
|
462
|
+
args: [{
|
|
463
|
+
selector: 'button[slTagRemove]',
|
|
464
|
+
standalone: true,
|
|
465
|
+
exportAs: 'slTagRemove',
|
|
466
|
+
imports: [SlGlyph, SlIcon],
|
|
467
|
+
template: `<ng-content
|
|
468
|
+
><span slIcon><svg slGlyph name="x"></svg></span></ng-content
|
|
469
|
+
><span hidden [id]="tag.removeWordId">{{ tag.t('remove') }}</span>`,
|
|
470
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
471
|
+
encapsulation: ViewEncapsulation.None,
|
|
472
|
+
host: {
|
|
473
|
+
'data-part': 'remove',
|
|
474
|
+
type: 'button',
|
|
475
|
+
'[attr.aria-labelledby]': 'labelledBy()',
|
|
476
|
+
'[attr.disabled]': "tag.removeRefused() ? '' : null",
|
|
477
|
+
'(click)': 'onClick($event)',
|
|
478
|
+
},
|
|
479
|
+
}]
|
|
480
|
+
}] });
|
|
481
|
+
|
|
482
|
+
/**
|
|
483
|
+
* A native button fires the same `click` for a pointer, for Space and for
|
|
484
|
+
* Enter, which is why the family uses one — and why the reason a selection
|
|
485
|
+
* moved has to be recovered from the event. A click synthesised by the
|
|
486
|
+
* keyboard reports no detail; a real one reports the click count.
|
|
487
|
+
*/
|
|
488
|
+
function activationReason(event) {
|
|
489
|
+
return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* The controlled and uncontrolled pair, decided by whether the consumer passed
|
|
493
|
+
* a value. `@slotted/core/state` owns that decision so the two bindings cannot
|
|
494
|
+
* disagree about who holds the value; the signal below is only where an
|
|
495
|
+
* uncontrolled chip keeps its own.
|
|
496
|
+
*/
|
|
497
|
+
class SelectionState {
|
|
498
|
+
source;
|
|
499
|
+
own = signal(undefined, /* @ts-ignore */
|
|
500
|
+
...(ngDevMode ? [{ debugName: "own" }] : /* istanbul ignore next */ []));
|
|
501
|
+
constructor(source) {
|
|
502
|
+
this.source = source;
|
|
503
|
+
}
|
|
504
|
+
value = () => this.source.selected() ?? this.own() ?? this.source.defaultSelected();
|
|
505
|
+
request(event) {
|
|
506
|
+
const next = !this.value();
|
|
507
|
+
const state = createControllable({
|
|
508
|
+
controlled: this.source.selected(),
|
|
509
|
+
initial: this.value(),
|
|
510
|
+
onRequest: (request) => this.source.emit(request),
|
|
511
|
+
});
|
|
512
|
+
if (state.request(next, activationReason(event), event))
|
|
513
|
+
this.own.set(next);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
/**
|
|
517
|
+
* A chip that holds a selection: a filter that is on, a facet that is chosen.
|
|
518
|
+
* Carbon calls it a selectable tag, Ant a checkable tag, Fluent a selected
|
|
519
|
+
* tag — and none of them ships the uncontrolled half, so a filter bar cannot
|
|
520
|
+
* be written without a piece of application state for every chip in it.
|
|
521
|
+
*
|
|
522
|
+
* It announces `aria-pressed` rather than `aria-selected`, which is a
|
|
523
|
+
* deliberate departure with a cost: `aria-selected` is only valid inside a
|
|
524
|
+
* `listbox`, a `grid` or a `tree`, and an `option` may not contain the remove
|
|
525
|
+
* control this family puts beside the label. The family keeps `selected` as
|
|
526
|
+
* its own word and writes `data-selected` for styling.
|
|
527
|
+
*
|
|
528
|
+
* The label never changes with the state — the APG's rule for a toggle — so
|
|
529
|
+
* "Aberto" stays "Aberto" and the state is announced beside it.
|
|
530
|
+
*/
|
|
531
|
+
class SlTagToggle {
|
|
532
|
+
/** Present means controlled, for the life of the component. */
|
|
533
|
+
selected = input(undefined, { ...(ngDevMode ? { debugName: "selected" } : /* istanbul ignore next */ {}), transform: (value) => (value === undefined ? undefined : booleanAttribute(value)) });
|
|
534
|
+
defaultSelected = input(false, { ...(ngDevMode ? { debugName: "defaultSelected" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
535
|
+
/**
|
|
536
|
+
* One output for one transition, carrying the value, the value it replaces,
|
|
537
|
+
* the reason, the originating event and `cancel()`. There is no
|
|
538
|
+
* `[(selected)]` because a two-way binding has one slot and cannot carry any
|
|
539
|
+
* of those, and a second output for the same transition would be the same
|
|
540
|
+
* failure stated twice.
|
|
541
|
+
*/
|
|
542
|
+
selectedChange = output();
|
|
543
|
+
tag = inject(SlTag);
|
|
544
|
+
state = new SelectionState({
|
|
545
|
+
selected: this.selected,
|
|
546
|
+
defaultSelected: this.defaultSelected,
|
|
547
|
+
emit: (request) => this.selectedChange.emit(request),
|
|
548
|
+
});
|
|
549
|
+
isSelected = computed(() => this.state.value(), /* @ts-ignore */
|
|
550
|
+
...(ngDevMode ? [{ debugName: "isSelected" }] : /* istanbul ignore next */ []));
|
|
551
|
+
constructor() {
|
|
552
|
+
/* The chip box paints the selection; the control owns it. */
|
|
553
|
+
effect(() => this.tag.setSelected(this.isSelected()));
|
|
554
|
+
}
|
|
555
|
+
onClick(event) {
|
|
556
|
+
if (this.tag.disabled())
|
|
557
|
+
return;
|
|
558
|
+
/* A consumer that calls preventDefault has refused the activation, and a
|
|
559
|
+
refused activation moves nothing. */
|
|
560
|
+
if (event.defaultPrevented)
|
|
561
|
+
return;
|
|
562
|
+
this.state.request(event);
|
|
563
|
+
}
|
|
564
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagToggle, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
565
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlTagToggle, isStandalone: true, selector: "button[slTagToggle]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, defaultSelected: { classPropertyName: "defaultSelected", publicName: "defaultSelected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, host: { attributes: { "data-part": "body", "type": "button" }, listeners: { "click": "onClick($event)" }, properties: { "attr.aria-pressed": "isSelected()", "attr.disabled": "tag.disabled() ? '' : null" } }, exportAs: ["slTagToggle"], ngImport: i0, template: "<span aria-hidden=\"true\" data-part=\"indicator\"\n ><span slIcon><svg slGlyph name=\"check\"></svg></span></span\n ><ng-content select=\"[slTagStart]\"></ng-content><span data-part=\"label\" [id]=\"tag.labelId\"><ng-content></ng-content></span><ng-content select=\"[slTagEnd]\"></ng-content>", isInline: true, 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 });
|
|
566
|
+
}
|
|
567
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTagToggle, decorators: [{
|
|
568
|
+
type: Component,
|
|
569
|
+
args: [{
|
|
570
|
+
selector: 'button[slTagToggle]',
|
|
571
|
+
standalone: true,
|
|
572
|
+
exportAs: 'slTagToggle',
|
|
573
|
+
imports: [SlGlyph, SlIcon],
|
|
574
|
+
/* The selection mark's check, which the sheet uncovers when the chip is on. */
|
|
575
|
+
template: `<span aria-hidden="true" data-part="indicator"
|
|
576
|
+
><span slIcon><svg slGlyph name="check"></svg></span></span
|
|
577
|
+
>${TAG_BODY_TEMPLATE}`,
|
|
578
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
579
|
+
encapsulation: ViewEncapsulation.None,
|
|
580
|
+
host: {
|
|
581
|
+
'data-part': 'body',
|
|
582
|
+
type: 'button',
|
|
583
|
+
'[attr.aria-pressed]': 'isSelected()',
|
|
584
|
+
'[attr.disabled]': "tag.disabled() ? '' : null",
|
|
585
|
+
'(click)': 'onClick($event)',
|
|
586
|
+
},
|
|
587
|
+
}]
|
|
588
|
+
}], ctorParameters: () => [], propDecorators: { selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], defaultSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSelected", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }] } });
|
|
589
|
+
|
|
590
|
+
/**
|
|
591
|
+
* Generated bundle index. Do not edit.
|
|
592
|
+
*/
|
|
593
|
+
|
|
594
|
+
export { SlTag, SlTagBody, SlTagEnd, SlTagGroup, SlTagRemove, SlTagStart, SlTagToggle, TAG_DEFAULTS, injectTagDefaults, provideTagDefaults };
|
|
595
|
+
//# sourceMappingURL=slotted-angular-tag.mjs.map
|