@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,182 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, input, booleanAttribute, ElementRef, Renderer2, HostAttributeToken, computed, DestroyRef, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { injectMessages } from '@slotted/angular/i18n';
|
|
4
|
+
import { SlGlyph, SlIcon } from '@slotted/angular/icon';
|
|
5
|
+
import { linkMessages } from '@slotted/core/i18n';
|
|
6
|
+
|
|
7
|
+
const LINK_DEFAULTS_TOKEN = new InjectionToken('slotted link defaults', {
|
|
8
|
+
providedIn: 'root',
|
|
9
|
+
factory: () => ({}),
|
|
10
|
+
});
|
|
11
|
+
/**
|
|
12
|
+
* An application decides once whether its links are underlined, how they are
|
|
13
|
+
* painted, and whether a followed destination is marked. A link that states
|
|
14
|
+
* any of those itself still wins: an explicit input is never overridden by the
|
|
15
|
+
* token. Its words come from the language in force (`provideSlotted`).
|
|
16
|
+
*/
|
|
17
|
+
function provideLinkDefaults(defaults) {
|
|
18
|
+
return { provide: LINK_DEFAULTS_TOKEN, useValue: defaults };
|
|
19
|
+
}
|
|
20
|
+
function injectLinkDefaults() {
|
|
21
|
+
return inject(LINK_DEFAULTS_TOKEN);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* The zero-width character whose only job is to forbid a line break. It keeps
|
|
26
|
+
* the marker with the last word of the link, and unlike a no-break space it
|
|
27
|
+
* carries no width of its own — the distance between word and glyph is the
|
|
28
|
+
* stylesheet's decision, not this string's.
|
|
29
|
+
*/
|
|
30
|
+
const WORD_JOINER = '\u2060';
|
|
31
|
+
const LINK_DEFAULT_UNDERLINE = 'always';
|
|
32
|
+
const LINK_DEFAULT_VARIANT = 'accent';
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Text that goes somewhere. The directive sits on the consumer's own anchor,
|
|
36
|
+
* so the role, `Enter`, the context menu, the middle click and every modified
|
|
37
|
+
* click are the platform's — and `routerLink` composes on the same element,
|
|
38
|
+
* because the element was never the family's to begin with. `button` owns the
|
|
39
|
+
* action that has no URL, and `ButtonLink` the navigation that wants the
|
|
40
|
+
* action surface.
|
|
41
|
+
*
|
|
42
|
+
* `rel` and `target` are written imperatively rather than through host
|
|
43
|
+
* bindings, and only when the anchor carries neither. A host binding writes on
|
|
44
|
+
* every change detection pass, and the value that means "leave it alone" is
|
|
45
|
+
* `null`, which removes the attribute — so an anchor whose consumer binds
|
|
46
|
+
* `[attr.target]` itself would lose it to this component. Adding what is
|
|
47
|
+
* missing and touching nothing else is the only shape that keeps the
|
|
48
|
+
* consumer's explicit value winning.
|
|
49
|
+
*/
|
|
50
|
+
class SlLink {
|
|
51
|
+
disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
52
|
+
external = input(false, { ...(ngDevMode ? { debugName: "external" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
53
|
+
/**
|
|
54
|
+
* Words laid over the catalog of the language in force: the warning a link
|
|
55
|
+
* to a new tab announces (`externalHint`).
|
|
56
|
+
*/
|
|
57
|
+
messages = input(undefined, /* @ts-ignore */
|
|
58
|
+
...(ngDevMode ? [{ debugName: "messages" }] : /* istanbul ignore next */ []));
|
|
59
|
+
underline = input(undefined, /* @ts-ignore */
|
|
60
|
+
...(ngDevMode ? [{ debugName: "underline" }] : /* istanbul ignore next */ []));
|
|
61
|
+
variant = input(undefined, /* @ts-ignore */
|
|
62
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
63
|
+
visited = input(undefined, { ...(ngDevMode ? { debugName: "visited" } : /* istanbul ignore next */ {}), transform: optionalBoolean });
|
|
64
|
+
defaults = injectLinkDefaults();
|
|
65
|
+
/** The family's words in the language in force, with this link's `messages` laid over them. */
|
|
66
|
+
t = injectMessages(linkMessages, this.messages);
|
|
67
|
+
element = inject((ElementRef)).nativeElement;
|
|
68
|
+
renderer = inject(Renderer2);
|
|
69
|
+
/**
|
|
70
|
+
* What the consumer wrote on their own anchor, read once through the token
|
|
71
|
+
* that exists for exactly this: a static attribute has to survive the
|
|
72
|
+
* component that was placed on top of it.
|
|
73
|
+
*/
|
|
74
|
+
ownRel = inject(new HostAttributeToken('rel'), { optional: true });
|
|
75
|
+
ownTarget = inject(new HostAttributeToken('target'), { optional: true });
|
|
76
|
+
ownTabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });
|
|
77
|
+
/** The destination the anchor had before it was made unavailable. */
|
|
78
|
+
withheldHref = null;
|
|
79
|
+
underlineValue = computed(() => this.underline() ?? this.defaults.underline ?? LINK_DEFAULT_UNDERLINE, /* @ts-ignore */
|
|
80
|
+
...(ngDevMode ? [{ debugName: "underlineValue" }] : /* istanbul ignore next */ []));
|
|
81
|
+
variantValue = computed(() => this.variant() ?? this.defaults.variant ?? LINK_DEFAULT_VARIANT, /* @ts-ignore */
|
|
82
|
+
...(ngDevMode ? [{ debugName: "variantValue" }] : /* istanbul ignore next */ []));
|
|
83
|
+
visitedValue = computed(() => this.visited() ?? this.defaults.visited ?? false, /* @ts-ignore */
|
|
84
|
+
...(ngDevMode ? [{ debugName: "visitedValue" }] : /* istanbul ignore next */ []));
|
|
85
|
+
/**
|
|
86
|
+
* The fact, not the prop. `external` is the way to state it, and an anchor
|
|
87
|
+
* the consumer already pointed at a new tab has stated the same thing.
|
|
88
|
+
*/
|
|
89
|
+
newTab = computed(() => this.external() || this.ownTarget === '_blank', /* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [{ debugName: "newTab" }] : /* istanbul ignore next */ []));
|
|
91
|
+
hint = computed(() => ` ${this.t('externalHint')}`, /* @ts-ignore */
|
|
92
|
+
...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
|
|
93
|
+
/**
|
|
94
|
+
* A disabled link keeps its place in the tab sequence: without an `href` the
|
|
95
|
+
* anchor would drop out of it, so the zero is stated rather than inherited.
|
|
96
|
+
*/
|
|
97
|
+
tabIndex = computed(() => this.disabled() ? (this.ownTabIndex ?? '0') : this.ownTabIndex, /* @ts-ignore */
|
|
98
|
+
...(ngDevMode ? [{ debugName: "tabIndex" }] : /* istanbul ignore next */ []));
|
|
99
|
+
constructor() {
|
|
100
|
+
const destroyRef = inject(DestroyRef);
|
|
101
|
+
const listen = (type, listener) => {
|
|
102
|
+
this.element.addEventListener(type, listener, { capture: true });
|
|
103
|
+
destroyRef.onDestroy(() => this.element.removeEventListener(type, listener, { capture: true }));
|
|
104
|
+
};
|
|
105
|
+
listen('click', (event) => this.refuse(event));
|
|
106
|
+
listen('auxclick', (event) => this.refuse(event));
|
|
107
|
+
listen('keydown', (event) => {
|
|
108
|
+
if (event.key === 'Enter')
|
|
109
|
+
this.refuse(event);
|
|
110
|
+
});
|
|
111
|
+
effect(() => {
|
|
112
|
+
const newTab = this.newTab();
|
|
113
|
+
this.write('target', newTab && this.ownTarget === null ? '_blank' : null);
|
|
114
|
+
this.write('rel', newTab && this.ownRel === null ? 'noopener noreferrer' : null);
|
|
115
|
+
});
|
|
116
|
+
/**
|
|
117
|
+
* An anchor that keeps its destination and only refuses `click` still
|
|
118
|
+
* navigates on a middle click, on a modified click and from the context
|
|
119
|
+
* menu. Taking the destination away is what actually disables it, and it
|
|
120
|
+
* is given back the moment the link becomes available again.
|
|
121
|
+
*/
|
|
122
|
+
effect(() => {
|
|
123
|
+
if (this.disabled()) {
|
|
124
|
+
this.withheldHref ??= this.element.getAttribute('href');
|
|
125
|
+
this.renderer.removeAttribute(this.element, 'href');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (this.withheldHref === null)
|
|
129
|
+
return;
|
|
130
|
+
this.renderer.setAttribute(this.element, 'href', this.withheldHref);
|
|
131
|
+
this.withheldHref = null;
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/** Adds what the anchor is missing, and removes only what it added. */
|
|
135
|
+
write(attribute, value) {
|
|
136
|
+
if (value !== null) {
|
|
137
|
+
this.renderer.setAttribute(this.element, attribute, value);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const own = attribute === 'rel' ? this.ownRel : this.ownTarget;
|
|
141
|
+
if (own === null)
|
|
142
|
+
this.renderer.removeAttribute(this.element, attribute);
|
|
143
|
+
}
|
|
144
|
+
refuse(event) {
|
|
145
|
+
if (!this.disabled())
|
|
146
|
+
return;
|
|
147
|
+
event.preventDefault();
|
|
148
|
+
event.stopImmediatePropagation();
|
|
149
|
+
event.stopPropagation();
|
|
150
|
+
}
|
|
151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlLink, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
152
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlLink, isStandalone: true, selector: "a[slLink]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, external: { classPropertyName: "external", publicName: "external", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, underline: { classPropertyName: "underline", publicName: "underline", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, visited: { classPropertyName: "visited", publicName: "visited", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "link", "data-part": "root" }, properties: { "attr.data-underline": "underlineValue()", "attr.data-variant": "variantValue()", "attr.data-visited": "visitedValue() ? \"\" : null", "attr.data-disabled": "disabled() ? \"\" : null", "attr.aria-disabled": "disabled() ? \"true\" : null", "attr.role": "disabled() ? \"link\" : null", "attr.tabindex": "tabIndex()" } }, exportAs: ["slLink"], ngImport: i0, template: `<ng-content></ng-content>@if (newTab()) {⁠<span aria-hidden="true" data-part="external-icon"><span slIcon directional><svg slGlyph name="external"></svg></span></span><span data-part="external-hint" data-ui="visually-hidden">{{ hint() }}</span>⁠}`, isInline: true, styles: ["@layer slotted.components{[data-ui=link]{--_strong: var(--slotted-text, CanvasText);--_rest: var(--slotted-link-color, var(--slotted-tone-accent-text, LinkText));--_hover: var( --slotted-link-color-hover, color-mix(in oklab, var(--_rest) 65%, var(--_strong)) );--_active: var( --slotted-link-color-active, color-mix(in oklab, var(--_rest) 35%, var(--_strong)) );--_visited: var( --slotted-link-color-visited, color-mix(in oklab, var(--_rest) 40%, var(--slotted-text-muted, GrayText)) );--_underline: var( --slotted-link-underline-color, color-mix(in oklab, currentColor 55%, transparent) );border-radius:var(--slotted-link-radius, var(--slotted-control-radius, 4px));color:var(--_rest);inline-size:fit-content;overflow-wrap:anywhere;text-decoration-color:var(--_underline);text-decoration-line:underline;text-decoration-thickness:var(--slotted-link-underline-thickness, from-font);text-underline-offset:var(--slotted-link-underline-offset, .15em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=link][data-variant=neutral]{--_rest: var(--slotted-link-color, currentColor);--_hover: var(--slotted-link-color-hover, var(--slotted-tone-accent-text, LinkText));--_active: var( --slotted-link-color-active, color-mix(in oklab, var(--slotted-tone-accent-text, LinkText) 65%, var(--_strong)) )}[data-ui=link][data-variant=inverse]{--_strong: var(--slotted-text-inverse, Canvas);--_rest: var(--slotted-link-color, var(--slotted-text-inverse, Canvas))}[data-ui=link][data-underline=hover],[data-ui=link][data-underline=none]{text-decoration-line:none}[data-ui=link][data-underline=hover]:not([data-disabled]):hover{text-decoration-line:underline}[data-ui=link][data-underline=hover]:focus-visible{text-decoration-line:underline}[data-ui=link][data-visited]:visited{color:var(--_visited)}[data-ui=link]:not([data-disabled]):hover{--_underline: currentColor;color:var(--_hover)}[data-ui=link]:not([data-disabled]):active{--_underline: currentColor;color:var(--_active)}[data-ui=link]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-link-focus-ring-offset, 1px)}[data-ui=link][data-disabled]{color:var(--slotted-link-color-disabled, var(--slotted-disabled-foreground, GrayText));cursor:not-allowed}[data-ui=link] [data-part=external-icon]{--slotted-icon-size: var(--slotted-link-external-icon-size, 1em);margin-inline-start:var(--slotted-link-external-icon-gap, .15em)}[data-ui=link][aria-current]:not([aria-current=false]){--_rest: var(--slotted-link-color-current, var(--slotted-text, CanvasText))}@media(forced-colors:active){[data-ui=link]{text-decoration-line:underline}}}\n", "@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"], dependencies: [{ kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
153
|
+
}
|
|
154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlLink, decorators: [{
|
|
155
|
+
type: Component,
|
|
156
|
+
args: [{ selector: 'a[slLink]', standalone: true, imports: [SlGlyph, SlIcon], template: `<ng-content></ng-content>@if (newTab()) {⁠<span aria-hidden="true" data-part="external-icon"><span slIcon directional><svg slGlyph name="external"></svg></span></span><span data-part="external-hint" data-ui="visually-hidden">{{ hint() }}</span>⁠}`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'slLink', host: {
|
|
157
|
+
'data-ui': 'link',
|
|
158
|
+
'data-part': 'root',
|
|
159
|
+
'[attr.data-underline]': 'underlineValue()',
|
|
160
|
+
'[attr.data-variant]': 'variantValue()',
|
|
161
|
+
'[attr.data-visited]': 'visitedValue() ? "" : null',
|
|
162
|
+
'[attr.data-disabled]': 'disabled() ? "" : null',
|
|
163
|
+
'[attr.aria-disabled]': 'disabled() ? "true" : null',
|
|
164
|
+
'[attr.role]': 'disabled() ? "link" : null',
|
|
165
|
+
'[attr.tabindex]': 'tabIndex()',
|
|
166
|
+
}, styles: ["@layer slotted.components{[data-ui=link]{--_strong: var(--slotted-text, CanvasText);--_rest: var(--slotted-link-color, var(--slotted-tone-accent-text, LinkText));--_hover: var( --slotted-link-color-hover, color-mix(in oklab, var(--_rest) 65%, var(--_strong)) );--_active: var( --slotted-link-color-active, color-mix(in oklab, var(--_rest) 35%, var(--_strong)) );--_visited: var( --slotted-link-color-visited, color-mix(in oklab, var(--_rest) 40%, var(--slotted-text-muted, GrayText)) );--_underline: var( --slotted-link-underline-color, color-mix(in oklab, currentColor 55%, transparent) );border-radius:var(--slotted-link-radius, var(--slotted-control-radius, 4px));color:var(--_rest);inline-size:fit-content;overflow-wrap:anywhere;text-decoration-color:var(--_underline);text-decoration-line:underline;text-decoration-thickness:var(--slotted-link-underline-thickness, from-font);text-underline-offset:var(--slotted-link-underline-offset, .15em);transition:color var(--slotted-duration-short) var(--slotted-easing-standard),text-decoration-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=link][data-variant=neutral]{--_rest: var(--slotted-link-color, currentColor);--_hover: var(--slotted-link-color-hover, var(--slotted-tone-accent-text, LinkText));--_active: var( --slotted-link-color-active, color-mix(in oklab, var(--slotted-tone-accent-text, LinkText) 65%, var(--_strong)) )}[data-ui=link][data-variant=inverse]{--_strong: var(--slotted-text-inverse, Canvas);--_rest: var(--slotted-link-color, var(--slotted-text-inverse, Canvas))}[data-ui=link][data-underline=hover],[data-ui=link][data-underline=none]{text-decoration-line:none}[data-ui=link][data-underline=hover]:not([data-disabled]):hover{text-decoration-line:underline}[data-ui=link][data-underline=hover]:focus-visible{text-decoration-line:underline}[data-ui=link][data-visited]:visited{color:var(--_visited)}[data-ui=link]:not([data-disabled]):hover{--_underline: currentColor;color:var(--_hover)}[data-ui=link]:not([data-disabled]):active{--_underline: currentColor;color:var(--_active)}[data-ui=link]:focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-link-focus-ring-offset, 1px)}[data-ui=link][data-disabled]{color:var(--slotted-link-color-disabled, var(--slotted-disabled-foreground, GrayText));cursor:not-allowed}[data-ui=link] [data-part=external-icon]{--slotted-icon-size: var(--slotted-link-external-icon-size, 1em);margin-inline-start:var(--slotted-link-external-icon-gap, .15em)}[data-ui=link][aria-current]:not([aria-current=false]){--_rest: var(--slotted-link-color-current, var(--slotted-text, CanvasText))}@media(forced-colors:active){[data-ui=link]{text-decoration-line:underline}}}\n", "@layer slotted.components{[data-ui=visually-hidden]:not([data-focusable]:focus-within){block-size:1px;border:0;clip-path:inset(50%);inline-size:1px;inset-block-start:0;inset-inline-start:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}}\n"] }]
|
|
167
|
+
}], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], external: [{ type: i0.Input, args: [{ isSignal: true, alias: "external", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], underline: [{ type: i0.Input, args: [{ isSignal: true, alias: "underline", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], visited: [{ type: i0.Input, args: [{ isSignal: true, alias: "visited", required: false }] }] } });
|
|
168
|
+
/**
|
|
169
|
+
* Absence has to survive the transform. `booleanAttribute` maps an unset input
|
|
170
|
+
* to `false`, and `false` is a value: it would stop the application's own
|
|
171
|
+
* decision about visited links from ever reaching a link that says nothing.
|
|
172
|
+
*/
|
|
173
|
+
function optionalBoolean(value) {
|
|
174
|
+
return value === undefined ? undefined : booleanAttribute(value);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Generated bundle index. Do not edit.
|
|
179
|
+
*/
|
|
180
|
+
|
|
181
|
+
export { LINK_DEFAULTS_TOKEN, SlLink, injectLinkDefaults, provideLinkDefaults };
|
|
182
|
+
//# sourceMappingURL=slotted-angular-link.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slotted-angular-link.mjs","sources":["../../link/src/link-defaults.ts","../../link/src/link.constants.ts","../../link/src/link.ts","../../link/src/slotted-angular-link.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { LinkUnderline, LinkVariant } from './link.constants';\n\n/** What every link on the page looks like before it states anything of its own. */\nexport interface LinkDefaults {\n underline?: LinkUnderline;\n variant?: LinkVariant;\n visited?: boolean;\n}\n\nexport const LINK_DEFAULTS_TOKEN = new InjectionToken<LinkDefaults>('slotted link defaults', {\n providedIn: 'root',\n factory: (): LinkDefaults => ({}),\n});\n\n/**\n * An application decides once whether its links are underlined, how they are\n * painted, and whether a followed destination is marked. A link that states\n * any of those itself still wins: an explicit input is never overridden by the\n * token. Its words come from the language in force (`provideSlotted`).\n */\nexport function provideLinkDefaults(defaults: LinkDefaults) {\n return { provide: LINK_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectLinkDefaults(): LinkDefaults {\n return inject(LINK_DEFAULTS_TOKEN);\n}\n","export type LinkUnderline = 'always' | 'hover' | 'none';\nexport type LinkVariant = 'accent' | 'neutral' | 'inverse';\n\n/**\n * The zero-width character whose only job is to forbid a line break. It keeps\n * the marker with the last word of the link, and unlike a no-break space it\n * carries no width of its own — the distance between word and glyph is the\n * stylesheet's decision, not this string's.\n */\nexport const WORD_JOINER = '\\u2060';\n\nexport const LINK_DEFAULT_UNDERLINE: LinkUnderline = 'always';\nexport const LINK_DEFAULT_VARIANT: LinkVariant = 'accent';\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n Renderer2,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { linkMessages, type LinkMessages, type PartialMessages } from '@slotted/core/i18n';\n\nimport { injectLinkDefaults } from './link-defaults';\nimport {\n LINK_DEFAULT_UNDERLINE,\n LINK_DEFAULT_VARIANT,\n type LinkUnderline,\n type LinkVariant,\n} from './link.constants';\n\n/**\n * Text that goes somewhere. The directive sits on the consumer's own anchor,\n * so the role, `Enter`, the context menu, the middle click and every modified\n * click are the platform's — and `routerLink` composes on the same element,\n * because the element was never the family's to begin with. `button` owns the\n * action that has no URL, and `ButtonLink` the navigation that wants the\n * action surface.\n *\n * `rel` and `target` are written imperatively rather than through host\n * bindings, and only when the anchor carries neither. A host binding writes on\n * every change detection pass, and the value that means \"leave it alone\" is\n * `null`, which removes the attribute — so an anchor whose consumer binds\n * `[attr.target]` itself would lose it to this component. Adding what is\n * missing and touching nothing else is the only shape that keeps the\n * consumer's explicit value winning.\n */\n@Component({\n selector: 'a[slLink]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n /**\n * The joiner is a text node of its own, before the marker and outside it:\n * what it forbids is the line break between the last word of the link and\n * the inline box that follows it. Every space in this template is therefore\n * load-bearing — Angular collapses a newline between two nodes into one\n * space, and a space before the joiner puts back exactly the break the\n * joiner exists to forbid. The formatter is told to leave it alone, and\n * `link.spec.ts` asserts the rendered text in case it stops listening. The\n * arrow mirrors in a right-to-left document, which is what `directional` is.\n */\n // prettier-ignore\n template: `<ng-content></ng-content>@if (newTab()) {⁠<span aria-hidden=\"true\" data-part=\"external-icon\"><span slIcon directional><svg slGlyph name=\"external\"></svg></span></span><span data-part=\"external-hint\" data-ui=\"visually-hidden\">{{ hint() }}</span>⁠}`,\n styleUrls: [\n '../../../styles/src/link/link.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slLink',\n host: {\n 'data-ui': 'link',\n 'data-part': 'root',\n '[attr.data-underline]': 'underlineValue()',\n '[attr.data-variant]': 'variantValue()',\n '[attr.data-visited]': 'visitedValue() ? \"\" : null',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n '[attr.aria-disabled]': 'disabled() ? \"true\" : null',\n '[attr.role]': 'disabled() ? \"link\" : null',\n '[attr.tabindex]': 'tabIndex()',\n },\n})\nexport class SlLink {\n readonly disabled = input(false, { transform: booleanAttribute });\n readonly external = input(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force: the warning a link\n * to a new tab announces (`externalHint`).\n */\n readonly messages = input<PartialMessages<LinkMessages> | undefined>(undefined);\n readonly underline = input<LinkUnderline | undefined>(undefined);\n readonly variant = input<LinkVariant | undefined>(undefined);\n readonly visited = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n\n private readonly defaults = injectLinkDefaults();\n /** The family's words in the language in force, with this link's `messages` laid over them. */\n readonly t = injectMessages(linkMessages, this.messages);\n private readonly element = inject(ElementRef<HTMLAnchorElement>).nativeElement;\n private readonly renderer = inject(Renderer2);\n\n /**\n * What the consumer wrote on their own anchor, read once through the token\n * that exists for exactly this: a static attribute has to survive the\n * component that was placed on top of it.\n */\n private readonly ownRel = inject(new HostAttributeToken('rel'), { optional: true });\n private readonly ownTarget = inject(new HostAttributeToken('target'), { optional: true });\n private readonly ownTabIndex = inject(new HostAttributeToken('tabindex'), { optional: true });\n\n /** The destination the anchor had before it was made unavailable. */\n private withheldHref: string | null = null;\n\n readonly underlineValue = computed(\n () => this.underline() ?? this.defaults.underline ?? LINK_DEFAULT_UNDERLINE,\n );\n readonly variantValue = computed(\n () => this.variant() ?? this.defaults.variant ?? LINK_DEFAULT_VARIANT,\n );\n readonly visitedValue = computed(() => this.visited() ?? this.defaults.visited ?? false);\n\n /**\n * The fact, not the prop. `external` is the way to state it, and an anchor\n * the consumer already pointed at a new tab has stated the same thing.\n */\n readonly newTab = computed(() => this.external() || this.ownTarget === '_blank');\n readonly hint = computed(() => ` ${this.t('externalHint')}`);\n\n /**\n * A disabled link keeps its place in the tab sequence: without an `href` the\n * anchor would drop out of it, so the zero is stated rather than inherited.\n */\n readonly tabIndex = computed(() =>\n this.disabled() ? (this.ownTabIndex ?? '0') : this.ownTabIndex,\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n const listen = (type: 'click' | 'auxclick' | 'keydown', listener: EventListener) => {\n this.element.addEventListener(type, listener, { capture: true });\n destroyRef.onDestroy(() =>\n this.element.removeEventListener(type, listener, { capture: true }),\n );\n };\n\n listen('click', (event) => this.refuse(event));\n listen('auxclick', (event) => this.refuse(event));\n listen('keydown', (event) => {\n if ((event as KeyboardEvent).key === 'Enter') this.refuse(event);\n });\n\n effect(() => {\n const newTab = this.newTab();\n this.write('target', newTab && this.ownTarget === null ? '_blank' : null);\n this.write('rel', newTab && this.ownRel === null ? 'noopener noreferrer' : null);\n });\n\n /**\n * An anchor that keeps its destination and only refuses `click` still\n * navigates on a middle click, on a modified click and from the context\n * menu. Taking the destination away is what actually disables it, and it\n * is given back the moment the link becomes available again.\n */\n effect(() => {\n if (this.disabled()) {\n this.withheldHref ??= this.element.getAttribute('href');\n this.renderer.removeAttribute(this.element, 'href');\n return;\n }\n if (this.withheldHref === null) return;\n this.renderer.setAttribute(this.element, 'href', this.withheldHref);\n this.withheldHref = null;\n });\n }\n\n /** Adds what the anchor is missing, and removes only what it added. */\n private write(attribute: 'rel' | 'target', value: string | null) {\n if (value !== null) {\n this.renderer.setAttribute(this.element, attribute, value);\n return;\n }\n const own = attribute === 'rel' ? this.ownRel : this.ownTarget;\n if (own === null) this.renderer.removeAttribute(this.element, attribute);\n }\n\n private refuse(event: Event) {\n if (!this.disabled()) return;\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n}\n\n/**\n * Absence has to survive the transform. `booleanAttribute` maps an unset input\n * to `false`, and `false` is a value: it would stop the application's own\n * decision about visited links from ever reaching a link that says nothing.\n */\nfunction optionalBoolean(value: boolean | string | undefined) {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|