@slotted/angular 0.0.0-stage → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -2
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/accordion.json +345 -0
- package/docs/accordion.md +207 -0
- package/docs/action-bar.json +421 -0
- package/docs/action-bar.md +364 -0
- package/docs/action-sheet.json +210 -0
- package/docs/action-sheet.md +19 -0
- package/docs/alert.json +407 -0
- package/docs/alert.md +239 -0
- package/docs/app-shell.examples.md +349 -0
- package/docs/app-shell.json +835 -0
- package/docs/app-shell.md +214 -0
- package/docs/aspect-ratio.json +159 -0
- package/docs/aspect-ratio.md +134 -0
- package/docs/attachment.json +486 -0
- package/docs/attachment.md +253 -0
- package/docs/avatar-group.json +208 -0
- package/docs/avatar-group.md +130 -0
- package/docs/avatar.json +342 -0
- package/docs/avatar.md +142 -0
- package/docs/badge.json +334 -0
- package/docs/badge.md +138 -0
- package/docs/breadcrumb.json +368 -0
- package/docs/breadcrumb.md +237 -0
- package/docs/button-group.json +158 -0
- package/docs/button-group.md +72 -0
- package/docs/button.examples.md +621 -0
- package/docs/button.json +977 -0
- package/docs/button.md +200 -0
- package/docs/calendar.json +592 -0
- package/docs/calendar.md +242 -0
- package/docs/card.json +283 -0
- package/docs/card.md +130 -0
- package/docs/carousel.json +560 -0
- package/docs/carousel.md +357 -0
- package/docs/cascader.json +933 -0
- package/docs/cascader.md +379 -0
- package/docs/chart.examples.md +582 -0
- package/docs/chart.json +1359 -0
- package/docs/chart.md +187 -0
- package/docs/checkbox-group.examples.md +612 -0
- package/docs/checkbox-group.json +395 -0
- package/docs/checkbox-group.md +106 -0
- package/docs/checkbox.examples.md +546 -0
- package/docs/checkbox.json +506 -0
- package/docs/checkbox.md +104 -0
- package/docs/code-block.json +616 -0
- package/docs/code-block.md +303 -0
- package/docs/collapsible.json +456 -0
- package/docs/collapsible.md +261 -0
- package/docs/color-picker.json +523 -0
- package/docs/color-picker.md +201 -0
- package/docs/column-manager.json +486 -0
- package/docs/column-manager.md +277 -0
- package/docs/combobox.examples.md +1732 -0
- package/docs/combobox.json +1250 -0
- package/docs/combobox.md +209 -0
- package/docs/command-palette.json +800 -0
- package/docs/command-palette.md +419 -0
- package/docs/container.json +156 -0
- package/docs/container.md +92 -0
- package/docs/context-menu.json +231 -0
- package/docs/context-menu.md +176 -0
- package/docs/currency-field.examples.md +321 -0
- package/docs/currency-field.json +649 -0
- package/docs/currency-field.md +128 -0
- package/docs/dashboard-grid.json +680 -0
- package/docs/dashboard-grid.md +265 -0
- package/docs/data-grid.examples.md +3064 -0
- package/docs/data-grid.json +1577 -0
- package/docs/data-grid.md +237 -0
- package/docs/data-grid.props.md +81 -0
- package/docs/data-list.json +685 -0
- package/docs/data-list.md +327 -0
- package/docs/date-field.json +490 -0
- package/docs/date-field.md +235 -0
- package/docs/date-picker.examples.md +1226 -0
- package/docs/date-picker.json +696 -0
- package/docs/date-picker.md +121 -0
- package/docs/date-range-picker.examples.md +1300 -0
- package/docs/date-range-picker.json +903 -0
- package/docs/date-range-picker.md +142 -0
- package/docs/datetime-field.json +665 -0
- package/docs/datetime-field.md +337 -0
- package/docs/datetime-picker.examples.md +1269 -0
- package/docs/datetime-picker.json +928 -0
- package/docs/datetime-picker.md +150 -0
- package/docs/datetime-range-picker.examples.md +225 -0
- package/docs/datetime-range-picker.json +1015 -0
- package/docs/datetime-range-picker.md +162 -0
- package/docs/description-list.json +471 -0
- package/docs/description-list.md +268 -0
- package/docs/detail-panel.json +530 -0
- package/docs/detail-panel.md +361 -0
- package/docs/dialog.examples.md +2467 -0
- package/docs/dialog.json +1141 -0
- package/docs/dialog.md +217 -0
- package/docs/dialog.props.md +63 -0
- package/docs/divider.json +148 -0
- package/docs/divider.md +83 -0
- package/docs/drawer.examples.md +1929 -0
- package/docs/drawer.json +753 -0
- package/docs/drawer.md +199 -0
- package/docs/entity-picker.json +946 -0
- package/docs/entity-picker.md +365 -0
- package/docs/event-calendar.examples.md +308 -0
- package/docs/event-calendar.json +1202 -0
- package/docs/event-calendar.md +201 -0
- package/docs/field-group.json +333 -0
- package/docs/field-group.md +181 -0
- package/docs/field.examples.md +676 -0
- package/docs/field.json +528 -0
- package/docs/field.md +127 -0
- package/docs/filter-bar.json +817 -0
- package/docs/filter-bar.md +380 -0
- package/docs/form.json +378 -0
- package/docs/form.md +235 -0
- package/docs/fullscreen.json +395 -0
- package/docs/fullscreen.md +225 -0
- package/docs/grid.json +176 -0
- package/docs/grid.md +74 -0
- package/docs/highlight.json +279 -0
- package/docs/highlight.md +210 -0
- package/docs/hover-card.json +254 -0
- package/docs/hover-card.md +213 -0
- package/docs/icon.json +173 -0
- package/docs/icon.md +101 -0
- package/docs/image.json +476 -0
- package/docs/image.md +254 -0
- package/docs/import-export-center.json +836 -0
- package/docs/import-export-center.md +345 -0
- package/docs/index.md +141 -0
- package/docs/inline-message.json +312 -0
- package/docs/inline-message.md +191 -0
- package/docs/inline.json +149 -0
- package/docs/inline.md +72 -0
- package/docs/kbd.json +350 -0
- package/docs/kbd.md +210 -0
- package/docs/link.json +264 -0
- package/docs/link.md +167 -0
- package/docs/list-item.json +463 -0
- package/docs/list-item.md +236 -0
- package/docs/list.json +321 -0
- package/docs/list.md +185 -0
- package/docs/listbox.json +807 -0
- package/docs/listbox.md +413 -0
- package/docs/loading-overlay.json +440 -0
- package/docs/loading-overlay.md +248 -0
- package/docs/markdown.json +461 -0
- package/docs/markdown.md +266 -0
- package/docs/menu.examples.md +1651 -0
- package/docs/menu.json +922 -0
- package/docs/menu.md +155 -0
- package/docs/menubar.json +292 -0
- package/docs/menubar.md +173 -0
- package/docs/message-scroller.json +401 -0
- package/docs/message-scroller.md +212 -0
- package/docs/message.json +862 -0
- package/docs/message.md +473 -0
- package/docs/multi-select.examples.md +1922 -0
- package/docs/multi-select.json +1314 -0
- package/docs/multi-select.md +213 -0
- package/docs/navigation-menu.json +529 -0
- package/docs/navigation-menu.md +329 -0
- package/docs/notification-center.json +664 -0
- package/docs/notification-center.md +372 -0
- package/docs/number-field.examples.md +1078 -0
- package/docs/number-field.json +668 -0
- package/docs/number-field.md +137 -0
- package/docs/otp-input.json +479 -0
- package/docs/otp-input.md +291 -0
- package/docs/page-header.json +574 -0
- package/docs/page-header.md +338 -0
- package/docs/page.json +332 -0
- package/docs/page.md +184 -0
- package/docs/pagination.json +434 -0
- package/docs/pagination.md +238 -0
- package/docs/popover.examples.md +1235 -0
- package/docs/popover.json +656 -0
- package/docs/popover.md +199 -0
- package/docs/progress-indicator.json +501 -0
- package/docs/progress-indicator.md +329 -0
- package/docs/prompt-composer.json +498 -0
- package/docs/prompt-composer.md +278 -0
- package/docs/prose.json +357 -0
- package/docs/prose.md +226 -0
- package/docs/radio-group.examples.md +626 -0
- package/docs/radio-group.json +541 -0
- package/docs/radio-group.md +112 -0
- package/docs/rating.json +1053 -0
- package/docs/rating.md +435 -0
- package/docs/result-state.json +376 -0
- package/docs/result-state.md +286 -0
- package/docs/saved-views.json +384 -0
- package/docs/saved-views.md +242 -0
- package/docs/scroll-area.json +120 -0
- package/docs/scroll-area.md +8 -0
- package/docs/section.json +344 -0
- package/docs/section.md +208 -0
- package/docs/segmented-control.json +429 -0
- package/docs/segmented-control.md +240 -0
- package/docs/select.examples.md +1214 -0
- package/docs/select.json +1147 -0
- package/docs/select.md +199 -0
- package/docs/side-navigation.json +632 -0
- package/docs/side-navigation.md +430 -0
- package/docs/skeleton.json +358 -0
- package/docs/skeleton.md +223 -0
- package/docs/slider.json +522 -0
- package/docs/slider.md +261 -0
- package/docs/sparkline.json +426 -0
- package/docs/sparkline.md +206 -0
- package/docs/split-button.json +361 -0
- package/docs/split-button.md +275 -0
- package/docs/splitter.json +142 -0
- package/docs/splitter.md +14 -0
- package/docs/stack.json +135 -0
- package/docs/stack.md +74 -0
- package/docs/stat-card.json +529 -0
- package/docs/stat-card.md +270 -0
- package/docs/status-indicator.json +314 -0
- package/docs/status-indicator.md +197 -0
- package/docs/stepper.json +451 -0
- package/docs/stepper.md +250 -0
- package/docs/switch.json +451 -0
- package/docs/switch.md +508 -0
- package/docs/table-of-contents.json +553 -0
- package/docs/table-of-contents.md +289 -0
- package/docs/table.examples.md +1981 -0
- package/docs/table.json +1059 -0
- package/docs/table.md +290 -0
- package/docs/tabs.examples.md +1370 -0
- package/docs/tabs.json +661 -0
- package/docs/tabs.md +211 -0
- package/docs/tag.json +813 -0
- package/docs/tag.md +241 -0
- package/docs/tags-input.json +771 -0
- package/docs/tags-input.md +361 -0
- package/docs/text-field.examples.md +821 -0
- package/docs/text-field.json +604 -0
- package/docs/text-field.md +125 -0
- package/docs/textarea.examples.md +612 -0
- package/docs/textarea.json +440 -0
- package/docs/textarea.md +98 -0
- package/docs/time-field.json +584 -0
- package/docs/time-field.md +291 -0
- package/docs/time-picker.json +679 -0
- package/docs/time-picker.md +315 -0
- package/docs/time-range-picker.examples.md +191 -0
- package/docs/time-range-picker.json +924 -0
- package/docs/time-range-picker.md +152 -0
- package/docs/timeline.json +839 -0
- package/docs/timeline.md +401 -0
- package/docs/toast.json +642 -0
- package/docs/toast.md +311 -0
- package/docs/toggle-group.json +417 -0
- package/docs/toggle-group.md +255 -0
- package/docs/toggle.json +326 -0
- package/docs/toggle.md +222 -0
- package/docs/toolbar.json +380 -0
- package/docs/toolbar.md +240 -0
- package/docs/tooltip.examples.md +664 -0
- package/docs/tooltip.json +604 -0
- package/docs/tooltip.md +146 -0
- package/docs/top-navigation.examples.md +287 -0
- package/docs/top-navigation.json +648 -0
- package/docs/top-navigation.md +138 -0
- package/docs/tour.json +759 -0
- package/docs/tour.md +337 -0
- package/docs/transfer.json +746 -0
- package/docs/transfer.md +273 -0
- package/docs/tree.json +918 -0
- package/docs/tree.md +397 -0
- package/docs/typography.json +317 -0
- package/docs/typography.md +107 -0
- package/docs/upload.examples.md +358 -0
- package/docs/upload.json +1103 -0
- package/docs/upload.md +166 -0
- package/docs/visually-hidden.json +71 -0
- package/docs/visually-hidden.md +42 -0
- package/docs/wizard.json +724 -0
- package/docs/wizard.md +295 -0
- package/fesm2022/slotted-angular-accordion.mjs +247 -0
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-bar.mjs +639 -0
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
- package/fesm2022/slotted-angular-alert.mjs +427 -0
- package/fesm2022/slotted-angular-alert.mjs.map +1 -0
- package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
- package/fesm2022/slotted-angular-attachment.mjs +595 -0
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar.mjs +330 -0
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
- package/fesm2022/slotted-angular-badge.mjs +255 -0
- package/fesm2022/slotted-angular-badge.mjs.map +1 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/slotted-angular-button-group.mjs +146 -0
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-button.mjs +692 -0
- package/fesm2022/slotted-angular-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-calendar.mjs +916 -0
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-card.mjs +225 -0
- package/fesm2022/slotted-angular-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-carousel.mjs +840 -0
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
- package/fesm2022/slotted-angular-cascader.mjs +1839 -0
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
- package/fesm2022/slotted-angular-chart.mjs +974 -0
- package/fesm2022/slotted-angular-chart.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox.mjs +468 -0
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-code-block.mjs +476 -0
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
- package/fesm2022/slotted-angular-collapsible.mjs +479 -0
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
- package/fesm2022/slotted-angular-color-picker.mjs +910 -0
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
- package/fesm2022/slotted-angular-combobox.mjs +1480 -0
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
- package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
- package/fesm2022/slotted-angular-container.mjs +105 -0
- package/fesm2022/slotted-angular-container.mjs.map +1 -0
- package/fesm2022/slotted-angular-context-menu.mjs +221 -0
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-list.mjs +1418 -0
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-field.mjs +772 -0
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-picker.mjs +690 -0
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-description-list.mjs +545 -0
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
- package/fesm2022/slotted-angular-dialog.mjs +980 -0
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
- package/fesm2022/slotted-angular-divider.mjs +76 -0
- package/fesm2022/slotted-angular-divider.mjs.map +1 -0
- package/fesm2022/slotted-angular-drawer.mjs +1397 -0
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
- package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-field-group.mjs +301 -0
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-field.mjs +928 -0
- package/fesm2022/slotted-angular-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-form.mjs +592 -0
- package/fesm2022/slotted-angular-form.mjs.map +1 -0
- package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
- package/fesm2022/slotted-angular-grid.mjs +58 -0
- package/fesm2022/slotted-angular-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-highlight.mjs +123 -0
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
- package/fesm2022/slotted-angular-hover-card.mjs +326 -0
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-i18n.mjs +75 -0
- package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
- package/fesm2022/slotted-angular-icon.mjs +232 -0
- package/fesm2022/slotted-angular-icon.mjs.map +1 -0
- package/fesm2022/slotted-angular-image.mjs +442 -0
- package/fesm2022/slotted-angular-image.mjs.map +1 -0
- package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline-message.mjs +280 -0
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline.mjs +52 -0
- package/fesm2022/slotted-angular-inline.mjs.map +1 -0
- package/fesm2022/slotted-angular-kbd.mjs +284 -0
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
- package/fesm2022/slotted-angular-link.mjs +182 -0
- package/fesm2022/slotted-angular-link.mjs.map +1 -0
- package/fesm2022/slotted-angular-list-item.mjs +367 -0
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
- package/fesm2022/slotted-angular-list.mjs +256 -0
- package/fesm2022/slotted-angular-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-listbox.mjs +1274 -0
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
- package/fesm2022/slotted-angular-markdown.mjs +914 -0
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
- package/fesm2022/slotted-angular-menu.mjs +1211 -0
- package/fesm2022/slotted-angular-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-menubar.mjs +230 -0
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
- package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
- package/fesm2022/slotted-angular-message.mjs +866 -0
- package/fesm2022/slotted-angular-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-number-field.mjs +966 -0
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-otp-input.mjs +629 -0
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-page-header.mjs +788 -0
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
- package/fesm2022/slotted-angular-page.mjs +255 -0
- package/fesm2022/slotted-angular-page.mjs.map +1 -0
- package/fesm2022/slotted-angular-pagination.mjs +562 -0
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
- package/fesm2022/slotted-angular-popover.mjs +799 -0
- package/fesm2022/slotted-angular-popover.mjs.map +1 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
- package/fesm2022/slotted-angular-prose.mjs +314 -0
- package/fesm2022/slotted-angular-prose.mjs.map +1 -0
- package/fesm2022/slotted-angular-radio-group.mjs +469 -0
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-rating.mjs +1174 -0
- package/fesm2022/slotted-angular-rating.mjs.map +1 -0
- package/fesm2022/slotted-angular-result-state.mjs +330 -0
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
- package/fesm2022/slotted-angular-saved-views.mjs +877 -0
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
- package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
- package/fesm2022/slotted-angular-section.mjs +266 -0
- package/fesm2022/slotted-angular-section.mjs.map +1 -0
- package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
- package/fesm2022/slotted-angular-select.mjs +1899 -0
- package/fesm2022/slotted-angular-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-skeleton.mjs +316 -0
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
- package/fesm2022/slotted-angular-slider.mjs +586 -0
- package/fesm2022/slotted-angular-slider.mjs.map +1 -0
- package/fesm2022/slotted-angular-sparkline.mjs +235 -0
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
- package/fesm2022/slotted-angular-split-button.mjs +331 -0
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-splitter.mjs +516 -0
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
- package/fesm2022/slotted-angular-stack.mjs +48 -0
- package/fesm2022/slotted-angular-stack.mjs.map +1 -0
- package/fesm2022/slotted-angular-stat-card.mjs +478 -0
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-stepper.mjs +536 -0
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
- package/fesm2022/slotted-angular-switch.mjs +447 -0
- package/fesm2022/slotted-angular-switch.mjs.map +1 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
- package/fesm2022/slotted-angular-table.mjs +2518 -0
- package/fesm2022/slotted-angular-table.mjs.map +1 -0
- package/fesm2022/slotted-angular-tabs.mjs +829 -0
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
- package/fesm2022/slotted-angular-tag.mjs +595 -0
- package/fesm2022/slotted-angular-tag.mjs.map +1 -0
- package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-text-field.mjs +674 -0
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-textarea.mjs +275 -0
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
- package/fesm2022/slotted-angular-theme.mjs +45 -0
- package/fesm2022/slotted-angular-theme.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-field.mjs +895 -0
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-picker.mjs +856 -0
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-timeline.mjs +928 -0
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
- package/fesm2022/slotted-angular-toast.mjs +917 -0
- package/fesm2022/slotted-angular-toast.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle.mjs +162 -0
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
- package/fesm2022/slotted-angular-toolbar.mjs +536 -0
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
- package/fesm2022/slotted-angular-tooltip.mjs +798 -0
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
- package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-tour.mjs +1330 -0
- package/fesm2022/slotted-angular-tour.mjs.map +1 -0
- package/fesm2022/slotted-angular-transfer.mjs +1406 -0
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
- package/fesm2022/slotted-angular-tree.mjs +1448 -0
- package/fesm2022/slotted-angular-tree.mjs.map +1 -0
- package/fesm2022/slotted-angular-typography.mjs +184 -0
- package/fesm2022/slotted-angular-typography.mjs.map +1 -0
- package/fesm2022/slotted-angular-upload.mjs +1523 -0
- package/fesm2022/slotted-angular-upload.mjs.map +1 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
- package/fesm2022/slotted-angular-wizard.mjs +1715 -0
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
- package/fesm2022/slotted-angular.mjs +4 -0
- package/fesm2022/slotted-angular.mjs.map +1 -0
- package/package.json +537 -3
- package/types/slotted-angular-accordion.d.ts +156 -0
- package/types/slotted-angular-accordion.d.ts.map +1 -0
- package/types/slotted-angular-action-bar.d.ts +291 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -0
- package/types/slotted-angular-action-sheet.d.ts +294 -0
- package/types/slotted-angular-action-sheet.d.ts.map +1 -0
- package/types/slotted-angular-alert.d.ts +214 -0
- package/types/slotted-angular-alert.d.ts.map +1 -0
- package/types/slotted-angular-app-shell.d.ts +549 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -0
- package/types/slotted-angular-aspect-ratio.d.ts +57 -0
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
- package/types/slotted-angular-attachment.d.ts +294 -0
- package/types/slotted-angular-attachment.d.ts.map +1 -0
- package/types/slotted-angular-avatar-group.d.ts +119 -0
- package/types/slotted-angular-avatar-group.d.ts.map +1 -0
- package/types/slotted-angular-avatar.d.ts +202 -0
- package/types/slotted-angular-avatar.d.ts.map +1 -0
- package/types/slotted-angular-badge.d.ts +166 -0
- package/types/slotted-angular-badge.d.ts.map +1 -0
- package/types/slotted-angular-breadcrumb.d.ts +251 -0
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
- package/types/slotted-angular-button-group.d.ts +89 -0
- package/types/slotted-angular-button-group.d.ts.map +1 -0
- package/types/slotted-angular-button.d.ts +390 -0
- package/types/slotted-angular-button.d.ts.map +1 -0
- package/types/slotted-angular-calendar.d.ts +280 -0
- package/types/slotted-angular-calendar.d.ts.map +1 -0
- package/types/slotted-angular-card.d.ts +140 -0
- package/types/slotted-angular-card.d.ts.map +1 -0
- package/types/slotted-angular-carousel.d.ts +288 -0
- package/types/slotted-angular-carousel.d.ts.map +1 -0
- package/types/slotted-angular-cascader.d.ts +351 -0
- package/types/slotted-angular-cascader.d.ts.map +1 -0
- package/types/slotted-angular-chart.d.ts +319 -0
- package/types/slotted-angular-chart.d.ts.map +1 -0
- package/types/slotted-angular-checkbox-group.d.ts +156 -0
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
- package/types/slotted-angular-checkbox.d.ts +197 -0
- package/types/slotted-angular-checkbox.d.ts.map +1 -0
- package/types/slotted-angular-code-block.d.ts +158 -0
- package/types/slotted-angular-code-block.d.ts.map +1 -0
- package/types/slotted-angular-collapsible.d.ts +272 -0
- package/types/slotted-angular-collapsible.d.ts.map +1 -0
- package/types/slotted-angular-color-picker.d.ts +181 -0
- package/types/slotted-angular-color-picker.d.ts.map +1 -0
- package/types/slotted-angular-column-manager.d.ts +200 -0
- package/types/slotted-angular-column-manager.d.ts.map +1 -0
- package/types/slotted-angular-combobox.d.ts +449 -0
- package/types/slotted-angular-combobox.d.ts.map +1 -0
- package/types/slotted-angular-command-palette.d.ts +256 -0
- package/types/slotted-angular-command-palette.d.ts.map +1 -0
- package/types/slotted-angular-container.d.ts +84 -0
- package/types/slotted-angular-container.d.ts.map +1 -0
- package/types/slotted-angular-context-menu.d.ts +84 -0
- package/types/slotted-angular-context-menu.d.ts.map +1 -0
- package/types/slotted-angular-currency-field.d.ts +480 -0
- package/types/slotted-angular-currency-field.d.ts.map +1 -0
- package/types/slotted-angular-dashboard-grid.d.ts +341 -0
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-grid.d.ts +1077 -0
- package/types/slotted-angular-data-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-list.d.ts +272 -0
- package/types/slotted-angular-data-list.d.ts.map +1 -0
- package/types/slotted-angular-date-field.d.ts +320 -0
- package/types/slotted-angular-date-field.d.ts.map +1 -0
- package/types/slotted-angular-date-picker.d.ts +224 -0
- package/types/slotted-angular-date-picker.d.ts.map +1 -0
- package/types/slotted-angular-date-range-picker.d.ts +310 -0
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-field.d.ts +362 -0
- package/types/slotted-angular-datetime-field.d.ts.map +1 -0
- package/types/slotted-angular-datetime-picker.d.ts +370 -0
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-description-list.d.ts +281 -0
- package/types/slotted-angular-description-list.d.ts.map +1 -0
- package/types/slotted-angular-detail-panel.d.ts +240 -0
- package/types/slotted-angular-detail-panel.d.ts.map +1 -0
- package/types/slotted-angular-dialog.d.ts +497 -0
- package/types/slotted-angular-dialog.d.ts.map +1 -0
- package/types/slotted-angular-divider.d.ts +40 -0
- package/types/slotted-angular-divider.d.ts.map +1 -0
- package/types/slotted-angular-drawer.d.ts +532 -0
- package/types/slotted-angular-drawer.d.ts.map +1 -0
- package/types/slotted-angular-entity-picker.d.ts +338 -0
- package/types/slotted-angular-entity-picker.d.ts.map +1 -0
- package/types/slotted-angular-event-calendar.d.ts +574 -0
- package/types/slotted-angular-event-calendar.d.ts.map +1 -0
- package/types/slotted-angular-field-group.d.ts +152 -0
- package/types/slotted-angular-field-group.d.ts.map +1 -0
- package/types/slotted-angular-field.d.ts +535 -0
- package/types/slotted-angular-field.d.ts.map +1 -0
- package/types/slotted-angular-filter-bar.d.ts +573 -0
- package/types/slotted-angular-filter-bar.d.ts.map +1 -0
- package/types/slotted-angular-form.d.ts +298 -0
- package/types/slotted-angular-form.d.ts.map +1 -0
- package/types/slotted-angular-fullscreen.d.ts +145 -0
- package/types/slotted-angular-fullscreen.d.ts.map +1 -0
- package/types/slotted-angular-grid.d.ts +50 -0
- package/types/slotted-angular-grid.d.ts.map +1 -0
- package/types/slotted-angular-highlight.d.ts +93 -0
- package/types/slotted-angular-highlight.d.ts.map +1 -0
- package/types/slotted-angular-hover-card.d.ts +140 -0
- package/types/slotted-angular-hover-card.d.ts.map +1 -0
- package/types/slotted-angular-i18n.d.ts +46 -0
- package/types/slotted-angular-i18n.d.ts.map +1 -0
- package/types/slotted-angular-icon.d.ts +94 -0
- package/types/slotted-angular-icon.d.ts.map +1 -0
- package/types/slotted-angular-image.d.ts +251 -0
- package/types/slotted-angular-image.d.ts.map +1 -0
- package/types/slotted-angular-import-export-center.d.ts +351 -0
- package/types/slotted-angular-import-export-center.d.ts.map +1 -0
- package/types/slotted-angular-inline-message.d.ts +195 -0
- package/types/slotted-angular-inline-message.d.ts.map +1 -0
- package/types/slotted-angular-inline.d.ts +41 -0
- package/types/slotted-angular-inline.d.ts.map +1 -0
- package/types/slotted-angular-kbd.d.ts +174 -0
- package/types/slotted-angular-kbd.d.ts.map +1 -0
- package/types/slotted-angular-link.d.ts +94 -0
- package/types/slotted-angular-link.d.ts.map +1 -0
- package/types/slotted-angular-list-item.d.ts +210 -0
- package/types/slotted-angular-list-item.d.ts.map +1 -0
- package/types/slotted-angular-list.d.ts +176 -0
- package/types/slotted-angular-list.d.ts.map +1 -0
- package/types/slotted-angular-listbox.d.ts +470 -0
- package/types/slotted-angular-listbox.d.ts.map +1 -0
- package/types/slotted-angular-loading-overlay.d.ts +219 -0
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
- package/types/slotted-angular-markdown.d.ts +172 -0
- package/types/slotted-angular-markdown.d.ts.map +1 -0
- package/types/slotted-angular-menu.d.ts +448 -0
- package/types/slotted-angular-menu.d.ts.map +1 -0
- package/types/slotted-angular-menubar.d.ts +90 -0
- package/types/slotted-angular-menubar.d.ts.map +1 -0
- package/types/slotted-angular-message-scroller.d.ts +151 -0
- package/types/slotted-angular-message-scroller.d.ts.map +1 -0
- package/types/slotted-angular-message.d.ts +348 -0
- package/types/slotted-angular-message.d.ts.map +1 -0
- package/types/slotted-angular-multi-select.d.ts +462 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -0
- package/types/slotted-angular-navigation-menu.d.ts +309 -0
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
- package/types/slotted-angular-notification-center.d.ts +318 -0
- package/types/slotted-angular-notification-center.d.ts.map +1 -0
- package/types/slotted-angular-number-field.d.ts +402 -0
- package/types/slotted-angular-number-field.d.ts.map +1 -0
- package/types/slotted-angular-otp-input.d.ts +286 -0
- package/types/slotted-angular-otp-input.d.ts.map +1 -0
- package/types/slotted-angular-page-header.d.ts +334 -0
- package/types/slotted-angular-page-header.d.ts.map +1 -0
- package/types/slotted-angular-page.d.ts +141 -0
- package/types/slotted-angular-page.d.ts.map +1 -0
- package/types/slotted-angular-pagination.d.ts +213 -0
- package/types/slotted-angular-pagination.d.ts.map +1 -0
- package/types/slotted-angular-popover.d.ts +366 -0
- package/types/slotted-angular-popover.d.ts.map +1 -0
- package/types/slotted-angular-progress-indicator.d.ts +312 -0
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
- package/types/slotted-angular-prompt-composer.d.ts +242 -0
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
- package/types/slotted-angular-prose.d.ts +171 -0
- package/types/slotted-angular-prose.d.ts.map +1 -0
- package/types/slotted-angular-radio-group.d.ts +268 -0
- package/types/slotted-angular-radio-group.d.ts.map +1 -0
- package/types/slotted-angular-rating.d.ts +374 -0
- package/types/slotted-angular-rating.d.ts.map +1 -0
- package/types/slotted-angular-result-state.d.ts +217 -0
- package/types/slotted-angular-result-state.d.ts.map +1 -0
- package/types/slotted-angular-saved-views.d.ts +198 -0
- package/types/slotted-angular-saved-views.d.ts.map +1 -0
- package/types/slotted-angular-scroll-area.d.ts +186 -0
- package/types/slotted-angular-scroll-area.d.ts.map +1 -0
- package/types/slotted-angular-section.d.ts +143 -0
- package/types/slotted-angular-section.d.ts.map +1 -0
- package/types/slotted-angular-segmented-control.d.ts +251 -0
- package/types/slotted-angular-segmented-control.d.ts.map +1 -0
- package/types/slotted-angular-select.d.ts +507 -0
- package/types/slotted-angular-select.d.ts.map +1 -0
- package/types/slotted-angular-side-navigation.d.ts +373 -0
- package/types/slotted-angular-side-navigation.d.ts.map +1 -0
- package/types/slotted-angular-skeleton.d.ts +198 -0
- package/types/slotted-angular-skeleton.d.ts.map +1 -0
- package/types/slotted-angular-slider.d.ts +216 -0
- package/types/slotted-angular-slider.d.ts.map +1 -0
- package/types/slotted-angular-sparkline.d.ts +106 -0
- package/types/slotted-angular-sparkline.d.ts.map +1 -0
- package/types/slotted-angular-split-button.d.ts +180 -0
- package/types/slotted-angular-split-button.d.ts.map +1 -0
- package/types/slotted-angular-splitter.d.ts +206 -0
- package/types/slotted-angular-splitter.d.ts.map +1 -0
- package/types/slotted-angular-stack.d.ts +38 -0
- package/types/slotted-angular-stack.d.ts.map +1 -0
- package/types/slotted-angular-stat-card.d.ts +232 -0
- package/types/slotted-angular-stat-card.d.ts.map +1 -0
- package/types/slotted-angular-status-indicator.d.ts +106 -0
- package/types/slotted-angular-status-indicator.d.ts.map +1 -0
- package/types/slotted-angular-stepper.d.ts +198 -0
- package/types/slotted-angular-stepper.d.ts.map +1 -0
- package/types/slotted-angular-switch.d.ts +243 -0
- package/types/slotted-angular-switch.d.ts.map +1 -0
- package/types/slotted-angular-table-of-contents.d.ts +210 -0
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
- package/types/slotted-angular-table.d.ts +888 -0
- package/types/slotted-angular-table.d.ts.map +1 -0
- package/types/slotted-angular-tabs.d.ts +340 -0
- package/types/slotted-angular-tabs.d.ts.map +1 -0
- package/types/slotted-angular-tag.d.ts +279 -0
- package/types/slotted-angular-tag.d.ts.map +1 -0
- package/types/slotted-angular-tags-input.d.ts +302 -0
- package/types/slotted-angular-tags-input.d.ts.map +1 -0
- package/types/slotted-angular-text-field.d.ts +334 -0
- package/types/slotted-angular-text-field.d.ts.map +1 -0
- package/types/slotted-angular-textarea.d.ts +150 -0
- package/types/slotted-angular-textarea.d.ts.map +1 -0
- package/types/slotted-angular-theme.d.ts +26 -0
- package/types/slotted-angular-theme.d.ts.map +1 -0
- package/types/slotted-angular-time-field.d.ts +300 -0
- package/types/slotted-angular-time-field.d.ts.map +1 -0
- package/types/slotted-angular-time-picker.d.ts +260 -0
- package/types/slotted-angular-time-picker.d.ts.map +1 -0
- package/types/slotted-angular-time-range-picker.d.ts +401 -0
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-timeline.d.ts +329 -0
- package/types/slotted-angular-timeline.d.ts.map +1 -0
- package/types/slotted-angular-toast.d.ts +340 -0
- package/types/slotted-angular-toast.d.ts.map +1 -0
- package/types/slotted-angular-toggle-group.d.ts +167 -0
- package/types/slotted-angular-toggle-group.d.ts.map +1 -0
- package/types/slotted-angular-toggle.d.ts +106 -0
- package/types/slotted-angular-toggle.d.ts.map +1 -0
- package/types/slotted-angular-toolbar.d.ts +252 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -0
- package/types/slotted-angular-tooltip.d.ts +388 -0
- package/types/slotted-angular-tooltip.d.ts.map +1 -0
- package/types/slotted-angular-top-navigation.d.ts +442 -0
- package/types/slotted-angular-top-navigation.d.ts.map +1 -0
- package/types/slotted-angular-tour.d.ts +440 -0
- package/types/slotted-angular-tour.d.ts.map +1 -0
- package/types/slotted-angular-transfer.d.ts +296 -0
- package/types/slotted-angular-transfer.d.ts.map +1 -0
- package/types/slotted-angular-tree.d.ts +499 -0
- package/types/slotted-angular-tree.d.ts.map +1 -0
- package/types/slotted-angular-typography.d.ts +89 -0
- package/types/slotted-angular-typography.d.ts.map +1 -0
- package/types/slotted-angular-upload.d.ts +365 -0
- package/types/slotted-angular-upload.d.ts.map +1 -0
- package/types/slotted-angular-visually-hidden.d.ts +19 -0
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
- package/types/slotted-angular-wizard.d.ts +441 -0
- package/types/slotted-angular-wizard.d.ts.map +1 -0
- package/types/slotted-angular.d.ts +3 -0
- package/types/slotted-angular.d.ts.map +1 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# hover-card
|
|
3
|
+
|
|
4
|
+
`data-ui="hover-card"` · Preview card that opens on hover or focus.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlHoverCard, SlHoverCardTrigger, provideHoverCardDefaults } from '@slotted/angular/hover-card';
|
|
10
|
+
import { SlPopoverLayer, SlPopoverContent, SlPopoverBody } from '@slotted/angular/popover';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Selector: `[slHoverCard], [slHoverCardTrigger]` · exportAs: `slHoverCard`
|
|
14
|
+
|
|
15
|
+
## Minimal example
|
|
16
|
+
|
|
17
|
+
Excerpt — not a complete module
|
|
18
|
+
|
|
19
|
+
```html
|
|
20
|
+
<ng-container slHoverCard>
|
|
21
|
+
<a slHoverCardTrigger href="/people/ana">@ana.souza</a>
|
|
22
|
+
<ng-template slPopoverLayer>
|
|
23
|
+
<div slPopoverContent>
|
|
24
|
+
<div slPopoverBody>…</div>
|
|
25
|
+
<div slPopoverArrow></div>
|
|
26
|
+
</div>
|
|
27
|
+
</ng-template>
|
|
28
|
+
</ng-container>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Anatomy
|
|
32
|
+
|
|
33
|
+
| Part | Element | Required |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| `root` | a[slHoverCardTrigger], the consumer’s own anchor | yes |
|
|
36
|
+
|
|
37
|
+
## Props
|
|
38
|
+
|
|
39
|
+
| Name | Type | Default | Applies to | Description |
|
|
40
|
+
| --- | --- | --- | --- | --- |
|
|
41
|
+
| `open` | `model<boolean>` | false | slHoverCard | Whether the card shows. Two-way: [(open)] on the container; a bound [open] alone makes the card controlled. |
|
|
42
|
+
| `openDelay` | `number` | 600 | slHoverCard | Milliseconds the pointer rests on the trigger before the card opens. Focus never waits. |
|
|
43
|
+
| `closeDelay` | `number` | 300 | slHoverCard | Milliseconds after the pointer has left trigger and card before it closes; a pointer on its way to the card is not counted as gone. |
|
|
44
|
+
| `navigable` | `boolean` | false | slHoverCard | Whether the card holds controls a keyboard reader can reach. On, the panel is a dialog, the link announces it and Tab enters it; off, the panel is presentation. |
|
|
45
|
+
| `disabled` | `boolean` | false | slHoverCard | The card never opens. The link keeps working, and carries no disabled state. |
|
|
46
|
+
| `sideOffset` | `number` | 4 | slHoverCard | The popover’s own input, with the family’s default: the halo the open mark draws plus the same again of air, so the arrow’s tip stands off the word. |
|
|
47
|
+
| `side, align, size, width, arrow, mount, …` | `SlPopover inputs` | — | slHoverCard | Every input of slPopover except autoFocus, which the family forces off: slHoverCard extends SlPopover and provides itself as one. |
|
|
48
|
+
| `provideHoverCardDefaults()` | `provider` | — | Application | Sets openDelay, closeDelay and navigable once for an injector. A card that states one itself still wins; the panel reads providePopoverDefaults(). |
|
|
49
|
+
| `slPopoverLayer, slPopoverContent, slPopoverBody, slPopoverClose, …` | `directives` | — | Inside slHoverCard | The card is the popover family unchanged, and nothing is re-exported: slHoverCard provides itself as SlPopover, so every popover part inside it reaches the card. The panel’s role follows navigable. |
|
|
50
|
+
| `exportAs` | `template reference` | — | slHoverCard | A template reaches the card — #card="slHoverCard" — for show(), hide() and the resolved delays; the trigger as #mention="slHoverCardTrigger". |
|
|
51
|
+
| `many triggers` | `composition` | — | slHoverCard | Several a[slHoverCardTrigger] inside one container share one card; the one that starts an opening registers itself as the anchor. |
|
|
52
|
+
| `host attributes` | `attributes` | — | slHoverCardTrigger | The trigger is the consumer’s own anchor: href, rel and target are theirs, and a data-part they wrote is kept beside the identity. |
|
|
53
|
+
|
|
54
|
+
## Events
|
|
55
|
+
|
|
56
|
+
| Name | Payload | When |
|
|
57
|
+
| --- | --- | --- |
|
|
58
|
+
| `openChangeRequest` | `ChangeRequest<boolean>` | Before the card opens or closes. The request carries pointer (hover in, hover out, a tap), keyboard (focus arriving, a focus guard), escape, outsidePress, blur (focus leaving the trigger), dismiss (the Close part) or programmatic, the originating event, and cancel(). |
|
|
59
|
+
|
|
60
|
+
## Axes and defaults
|
|
61
|
+
|
|
62
|
+
| Axis | Values | Default |
|
|
63
|
+
| --- | --- | --- |
|
|
64
|
+
| `navigable` | `true`, `false` | `false` |
|
|
65
|
+
| `disabled` | `true`, `false` | `false` |
|
|
66
|
+
|
|
67
|
+
## Rules
|
|
68
|
+
|
|
69
|
+
- The platform supplies the link: it is a native anchor, so Enter follows it, a middle click opens it in a tab and a screen reader hears a link. The card never takes focus when it opens — autoFocus is forced off on the popover it holds — so the reader’s focus stays on the word under the pointer.
|
|
70
|
+
- The family answers WCAG 2.2 SC 1.4.13 item by item: the card is dismissible with Escape and no pointer movement, hoverable because the pointer may move onto it and the grace area keeps it open on the way, and persistent because it stays until hover and focus have left both link and card.
|
|
71
|
+
- A card the keyboard cannot enter is role="presentation" and the link says nothing about it, because a popup the announced means cannot reach would be a lie a screen reader repeats. A navigable card is the APG’s non-modal dialog, named by its title, with aria-haspopup="dialog", aria-expanded and aria-controls on the link, and Tab from the link enters it.
|
|
72
|
+
- Focus the family itself puts back on the link — after Escape inside the card, after a focus guard — does not reopen the card; the link holds the reopening back until focus has left it once. Without that rule a guard would close the card, focus the link, and open the card again.
|
|
73
|
+
|
|
74
|
+
## Tokens
|
|
75
|
+
|
|
76
|
+
`--slotted-border-width-thick`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-highlight-tint-opacity`, `--slotted-hover-card-color`, `--slotted-hover-card-halo`, `--slotted-hover-card-radius`, `--slotted-hover-card-tint`, `--slotted-hover-card-underline-color`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-tone-accent-text`
|
|
77
|
+
|
|
78
|
+
## Examples
|
|
79
|
+
|
|
80
|
+
### A person
|
|
81
|
+
|
|
82
|
+
The card a review thread shows for a handle: avatar, name, team and what they own, under the word it is about. While it shows, the word carries a tint and a halo that grow the inline box without moving the line — the sentence under it has not shifted.
|
|
83
|
+
|
|
84
|
+
Excerpt — not a complete module
|
|
85
|
+
|
|
86
|
+
```html
|
|
87
|
+
<ng-container slHoverCard [open]="true">
|
|
88
|
+
<a slHoverCardTrigger href="/people/ana">@ana.souza</a>
|
|
89
|
+
<ng-template slPopoverLayer>
|
|
90
|
+
<div slPopoverContent>
|
|
91
|
+
<div slPopoverBody>
|
|
92
|
+
<span slAvatar name="Ana Souza"></span>
|
|
93
|
+
…
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</ng-template>
|
|
97
|
+
</ng-container>
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### A document
|
|
101
|
+
|
|
102
|
+
The card a link to a spec shows: its title, who touched it last and its first lines. The trigger stays a link — Enter follows it, a middle click opens it in a tab — and the card adds nothing the destination does not have.
|
|
103
|
+
|
|
104
|
+
Excerpt — not a complete module
|
|
105
|
+
|
|
106
|
+
```html
|
|
107
|
+
<ng-container slHoverCard>
|
|
108
|
+
<a slHoverCardTrigger href="/specs/checkout-pricing">Checkout redesign — pricing table</a>
|
|
109
|
+
<ng-template slPopoverLayer>
|
|
110
|
+
<div slPopoverContent>
|
|
111
|
+
<div slPopoverHeader>
|
|
112
|
+
<div slPopoverTitle>Checkout redesign — pricing table</div>
|
|
113
|
+
<p slPopoverDescription>Product spec · updated 2 hours ago</p>
|
|
114
|
+
</div>
|
|
115
|
+
<div slPopoverBody>…</div>
|
|
116
|
+
</div>
|
|
117
|
+
</ng-template>
|
|
118
|
+
</ng-container>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Navigable
|
|
122
|
+
|
|
123
|
+
The card holds a control, so the page says so with navigable: the panel becomes a dialog named by its title, the link announces the popup, and Tab from the open link enters the card. Past its last control a focus guard closes it and puts focus back on the link, which does not reopen.
|
|
124
|
+
|
|
125
|
+
Excerpt — not a complete module
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<ng-container slHoverCard navigable>
|
|
129
|
+
<a slHoverCardTrigger href="/people/ana">@ana.souza</a>
|
|
130
|
+
<ng-template slPopoverLayer>
|
|
131
|
+
<div slPopoverContent>
|
|
132
|
+
<div slPopoverHeader><div slPopoverTitle>Ana Souza</div></div>
|
|
133
|
+
<div slPopoverBody>…</div>
|
|
134
|
+
<div slPopoverFooter><button slButton size="sm">Follow</button></div>
|
|
135
|
+
</div>
|
|
136
|
+
</ng-template>
|
|
137
|
+
</ng-container>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### The delays
|
|
141
|
+
|
|
142
|
+
Two of the same card: the left opens after the default 600 ms and closes 300 ms after the pointer has left; the right answers at once and holds for a second, for a page where the preview is the point. Focus never waits on either.
|
|
143
|
+
|
|
144
|
+
Excerpt — not a complete module
|
|
145
|
+
|
|
146
|
+
```html
|
|
147
|
+
<ng-container slHoverCard [openDelay]="0" [closeDelay]="1000">…</ng-container>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### One card, many mentions
|
|
151
|
+
|
|
152
|
+
A thread with four handles and one slHoverCard around all of them. The mention the pointer rests on registers itself as the anchor, and the request carries the event whose currentTarget names the person, so the card fills from one state instead of mounting four.
|
|
153
|
+
|
|
154
|
+
Excerpt — not a complete module
|
|
155
|
+
|
|
156
|
+
```html
|
|
157
|
+
<ng-container slHoverCard (openChangeRequest)="remember($event)">
|
|
158
|
+
<p>
|
|
159
|
+
<a slHoverCardTrigger data-handle="ana.souza" href="/people/ana">@ana.souza</a>
|
|
160
|
+
and
|
|
161
|
+
<a slHoverCardTrigger data-handle="marcus.lee" href="/people/marcus">@marcus.lee</a>
|
|
162
|
+
</p>
|
|
163
|
+
<ng-template slPopoverLayer>
|
|
164
|
+
<div slPopoverContent>{{ people[handle()] }}</div>
|
|
165
|
+
</ng-template>
|
|
166
|
+
</ng-container>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### On touch
|
|
170
|
+
|
|
171
|
+
There is no hover on a touch screen: the first tap on the mention opens the card instead of following the link, and a tap on the open mention follows it. The cost is one extra tap to navigate; the alternative is a preview no touch reader ever sees.
|
|
172
|
+
|
|
173
|
+
Excerpt — not a complete module
|
|
174
|
+
|
|
175
|
+
```html
|
|
176
|
+
<ng-container slHoverCard>
|
|
177
|
+
<a slHoverCardTrigger href="/people/ana">@ana.souza</a>
|
|
178
|
+
<ng-template slPopoverLayer><div slPopoverContent>…</div></ng-template>
|
|
179
|
+
</ng-container>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### On the consumer’s own link
|
|
183
|
+
|
|
184
|
+
The trigger is a component on the consumer’s anchor, and two components do not share one element: a[slLink] cannot also carry it, so the family paints the link itself and a data-part the consumer wrote is kept. The Close part inside the card is the popover’s, and it is what a touch reader has in place of Escape.
|
|
185
|
+
|
|
186
|
+
Excerpt — not a complete module
|
|
187
|
+
|
|
188
|
+
```html
|
|
189
|
+
<ng-container slHoverCard>
|
|
190
|
+
<a slHoverCardTrigger href="/people/ana" data-part="mention">Ana Souza</a>
|
|
191
|
+
<ng-template slPopoverLayer>
|
|
192
|
+
<div slPopoverContent>
|
|
193
|
+
<div slPopoverHeader>
|
|
194
|
+
<div slPopoverTitle>Ana Souza</div>
|
|
195
|
+
<button slPopoverClose></button>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
</ng-template>
|
|
199
|
+
</ng-container>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### From the keyboard
|
|
203
|
+
|
|
204
|
+
Tab onto the mention: the card opens in the same task, without the pointer's delay. Escape closes it and leaves focus where it is, and the mention does not reopen until focus has left it once. Tab on moves focus down the page and closes the card with the reason blur.
|
|
205
|
+
|
|
206
|
+
Excerpt — not a complete module
|
|
207
|
+
|
|
208
|
+
```html
|
|
209
|
+
<ng-container slHoverCard (openChangeRequest)="log($event.reason)">
|
|
210
|
+
<a slHoverCardTrigger href="/people/ana">@ana.souza</a>
|
|
211
|
+
<ng-template slPopoverLayer><div slPopoverContent>…</div></ng-template>
|
|
212
|
+
</ng-container>
|
|
213
|
+
```
|
package/docs/icon.json
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "icon",
|
|
3
|
+
"ui": "icon",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Data display",
|
|
7
|
+
"summary": "Sized glyph with an optional tone."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"size": [
|
|
11
|
+
"text",
|
|
12
|
+
"sm",
|
|
13
|
+
"md",
|
|
14
|
+
"lg"
|
|
15
|
+
],
|
|
16
|
+
"tone": [
|
|
17
|
+
"inherit",
|
|
18
|
+
"default",
|
|
19
|
+
"muted",
|
|
20
|
+
"accent",
|
|
21
|
+
"success",
|
|
22
|
+
"warning",
|
|
23
|
+
"danger",
|
|
24
|
+
"inverse"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"members": {
|
|
28
|
+
"icon": {
|
|
29
|
+
"nativeElement": "span",
|
|
30
|
+
"defaults": {
|
|
31
|
+
"size": "md",
|
|
32
|
+
"tone": "inherit",
|
|
33
|
+
"directional": false
|
|
34
|
+
},
|
|
35
|
+
"capabilities": [
|
|
36
|
+
"size"
|
|
37
|
+
],
|
|
38
|
+
"states": [
|
|
39
|
+
"default"
|
|
40
|
+
],
|
|
41
|
+
"parts": [
|
|
42
|
+
"root",
|
|
43
|
+
"glyph"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"docs": {
|
|
48
|
+
"icon": {
|
|
49
|
+
"imports": null,
|
|
50
|
+
"anatomy": [],
|
|
51
|
+
"api": [
|
|
52
|
+
{
|
|
53
|
+
"name": "size",
|
|
54
|
+
"type": "'text' | 'sm' | 'md' | 'lg'",
|
|
55
|
+
"defaultValue": "md",
|
|
56
|
+
"appliesTo": "slIcon",
|
|
57
|
+
"description": "Box size; sm, md and lg read the control icon scale, text follows the type"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "tone",
|
|
61
|
+
"type": "'inherit' | 'default' | 'muted' | 'accent' | 'success' | 'warning' | 'danger' | 'inverse'",
|
|
62
|
+
"defaultValue": "inherit",
|
|
63
|
+
"appliesTo": "slIcon",
|
|
64
|
+
"description": "Colour; inherit takes the colour of the text beside it"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "directional",
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"defaultValue": "false",
|
|
70
|
+
"appliesTo": "slIcon",
|
|
71
|
+
"description": "The artwork points somewhere, so it mirrors in a right-to-left document"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "label",
|
|
75
|
+
"type": "string",
|
|
76
|
+
"defaultValue": "—",
|
|
77
|
+
"appliesTo": "slIcon",
|
|
78
|
+
"description": "The name the icon carries; absent, the icon leaves the accessibility tree"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "content",
|
|
82
|
+
"type": "projected",
|
|
83
|
+
"defaultValue": "—",
|
|
84
|
+
"appliesTo": "slIcon",
|
|
85
|
+
"description": "The glyph — an ng-icon, an svg, any artwork the consumer projects"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "name",
|
|
89
|
+
"type": "GlyphName",
|
|
90
|
+
"defaultValue": "—",
|
|
91
|
+
"appliesTo": "slGlyph",
|
|
92
|
+
"description": "One of the library’s own icons, drawn as an svg inside the box; families draw theirs with it"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"composition": [],
|
|
96
|
+
"events": [],
|
|
97
|
+
"accessibility": [
|
|
98
|
+
"A glyph is drawn aria-hidden and focusable=false: it is artwork, and the Icon around it is what carries a name. A family’s close button is named by its own aria-label, never by the cross it draws.",
|
|
99
|
+
"There is no decorative input. An icon with no name is hidden with aria-hidden, and an icon with one takes role=\"img\" and carries it, so named and hidden cannot both be true.",
|
|
100
|
+
"WAI-ARIA requires a label on role=\"img\" (§5.2.8 lists img among the roles for which a name is required), which is why the role appears only once a name exists.",
|
|
101
|
+
"An aria-label or aria-labelledby written on the element is read as a name, so the icon a consumer labelled directly keeps its label and stays in the tree.",
|
|
102
|
+
"The name says what the icon means, not what it draws: “Payment failed”, not “red triangle”. An icon that repeats adjacent text is decorative and stays out of the tree.",
|
|
103
|
+
"Colour is inherited, so an icon works in forced colours without a rule of its own. Colour alone never carries the state: the icon accompanies text, or it carries a name.",
|
|
104
|
+
"size=\"text\" is 1em, so it follows the type it sits in under page zoom and under a text-only resize alike. The sm, md and lg steps read the theme’s control geometry, which page zoom scales and a text-only resize does not; an application that needs the icon to follow text alone uses text, or retunes the density scale in rem.",
|
|
105
|
+
"The optical shift is computed from the cap height of the surrounding font and the size of the box, so an icon stays on the text’s optical line at every combination of the two rather than at the one ratio a constant would fit."
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"tokens": [
|
|
110
|
+
"--slotted-control-icon-size-lg",
|
|
111
|
+
"--slotted-control-icon-size-md",
|
|
112
|
+
"--slotted-control-icon-size-sm",
|
|
113
|
+
"--slotted-icon-baseline-shift",
|
|
114
|
+
"--slotted-icon-size",
|
|
115
|
+
"--slotted-text",
|
|
116
|
+
"--slotted-text-inverse",
|
|
117
|
+
"--slotted-text-muted",
|
|
118
|
+
"--slotted-tone-accent-text",
|
|
119
|
+
"--slotted-tone-danger-text",
|
|
120
|
+
"--slotted-tone-success-text",
|
|
121
|
+
"--slotted-tone-warning-text"
|
|
122
|
+
],
|
|
123
|
+
"examples": [
|
|
124
|
+
{
|
|
125
|
+
"id": "icon-angular-library-glyph",
|
|
126
|
+
"title": "The library’s own icons are real svg elements",
|
|
127
|
+
"note": null,
|
|
128
|
+
"language": "html",
|
|
129
|
+
"source": "<button slButton aria-label=\"Close\">\n <span slIcon size=\"sm\"><svg slGlyph name=\"x\"></svg></span>\n</button>\n",
|
|
130
|
+
"verdict": "excerpt"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"id": "icon-angular-decorative",
|
|
134
|
+
"title": "Beside a label, the icon is decorative",
|
|
135
|
+
"note": null,
|
|
136
|
+
"language": "html",
|
|
137
|
+
"source": "<span slIcon><ng-icon name=\"lucideDownload\" /></span>\n",
|
|
138
|
+
"verdict": "excerpt"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "icon-angular-named",
|
|
142
|
+
"title": "Alone, the icon carries the name",
|
|
143
|
+
"note": null,
|
|
144
|
+
"language": "html",
|
|
145
|
+
"source": "<span slIcon label=\"Payment failed\" tone=\"danger\"><ng-icon name=\"lucideTriangleAlert\" /></span>\n",
|
|
146
|
+
"verdict": "excerpt"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": "icon-angular-directional",
|
|
150
|
+
"title": "Artwork that points somewhere mirrors",
|
|
151
|
+
"note": null,
|
|
152
|
+
"language": "html",
|
|
153
|
+
"source": "<span slIcon directional><ng-icon name=\"lucideArrowRight\" /></span>\n",
|
|
154
|
+
"verdict": "excerpt"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "icon-angular-container-size",
|
|
158
|
+
"title": "A container sizes every icon inside it, once",
|
|
159
|
+
"note": null,
|
|
160
|
+
"language": "html",
|
|
161
|
+
"source": "<div style=\"--slotted-icon-size: var(--slotted-control-icon-size-sm)\">\n <ng-content />\n</div>\n",
|
|
162
|
+
"verdict": "excerpt"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "icon-application-defaults",
|
|
166
|
+
"title": "Defaults for the whole application, set once",
|
|
167
|
+
"note": null,
|
|
168
|
+
"language": "css",
|
|
169
|
+
"source": "/* The family has no provider and no injection token: data-ui is public\n contract, so the cascade sets the defaults and any subtree overrides\n them. An instance that states its own size or tone still wins. */\n:root {\n --slotted-icon-size: var(--slotted-control-icon-size-sm);\n}\n\n[data-ui='icon'] svg {\n /* The stroke weight belongs to the icon set, not to the icon. */\n stroke-width: 2.25;\n}\n",
|
|
170
|
+
"verdict": "excerpt"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
package/docs/icon.md
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# icon
|
|
3
|
+
|
|
4
|
+
`data-ui="icon"` · Sized glyph with an optional tone.
|
|
5
|
+
|
|
6
|
+
## Minimal example
|
|
7
|
+
|
|
8
|
+
Excerpt — not a complete module
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<button slButton aria-label="Close">
|
|
12
|
+
<span slIcon size="sm"><svg slGlyph name="x"></svg></span>
|
|
13
|
+
</button>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Props
|
|
17
|
+
|
|
18
|
+
| Name | Type | Default | Applies to | Description |
|
|
19
|
+
| --- | --- | --- | --- | --- |
|
|
20
|
+
| `size` | `'text' \| 'sm' \| 'md' \| 'lg'` | md | slIcon | Box size; sm, md and lg read the control icon scale, text follows the type |
|
|
21
|
+
| `tone` | `'inherit' \| 'default' \| 'muted' \| 'accent' \| 'success' \| 'warning' \| 'danger' \| 'inverse'` | inherit | slIcon | Colour; inherit takes the colour of the text beside it |
|
|
22
|
+
| `directional` | `boolean` | false | slIcon | The artwork points somewhere, so it mirrors in a right-to-left document |
|
|
23
|
+
| `label` | `string` | — | slIcon | The name the icon carries; absent, the icon leaves the accessibility tree |
|
|
24
|
+
| `content` | `projected` | — | slIcon | The glyph — an ng-icon, an svg, any artwork the consumer projects |
|
|
25
|
+
| `name` | `GlyphName` | — | slGlyph | One of the library’s own icons, drawn as an svg inside the box; families draw theirs with it |
|
|
26
|
+
|
|
27
|
+
## Axes and defaults
|
|
28
|
+
|
|
29
|
+
| Axis | Values | Default |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `size` | `text`, `sm`, `md`, `lg` | `md` |
|
|
32
|
+
| `tone` | `inherit`, `default`, `muted`, `accent`, `success`, `warning`, `danger`, `inverse` | `inherit` |
|
|
33
|
+
|
|
34
|
+
## Rules
|
|
35
|
+
|
|
36
|
+
- A glyph is drawn aria-hidden and focusable=false: it is artwork, and the Icon around it is what carries a name. A family’s close button is named by its own aria-label, never by the cross it draws.
|
|
37
|
+
- There is no decorative input. An icon with no name is hidden with aria-hidden, and an icon with one takes role="img" and carries it, so named and hidden cannot both be true.
|
|
38
|
+
- WAI-ARIA requires a label on role="img" (§5.2.8 lists img among the roles for which a name is required), which is why the role appears only once a name exists.
|
|
39
|
+
- An aria-label or aria-labelledby written on the element is read as a name, so the icon a consumer labelled directly keeps its label and stays in the tree.
|
|
40
|
+
- The name says what the icon means, not what it draws: “Payment failed”, not “red triangle”. An icon that repeats adjacent text is decorative and stays out of the tree.
|
|
41
|
+
- Colour is inherited, so an icon works in forced colours without a rule of its own. Colour alone never carries the state: the icon accompanies text, or it carries a name.
|
|
42
|
+
- size="text" is 1em, so it follows the type it sits in under page zoom and under a text-only resize alike. The sm, md and lg steps read the theme’s control geometry, which page zoom scales and a text-only resize does not; an application that needs the icon to follow text alone uses text, or retunes the density scale in rem.
|
|
43
|
+
- The optical shift is computed from the cap height of the surrounding font and the size of the box, so an icon stays on the text’s optical line at every combination of the two rather than at the one ratio a constant would fit.
|
|
44
|
+
|
|
45
|
+
## Tokens
|
|
46
|
+
|
|
47
|
+
`--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-icon-baseline-shift`, `--slotted-icon-size`, `--slotted-text`, `--slotted-text-inverse`, `--slotted-text-muted`, `--slotted-tone-accent-text`, `--slotted-tone-danger-text`, `--slotted-tone-success-text`, `--slotted-tone-warning-text`
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Beside a label, the icon is decorative
|
|
52
|
+
|
|
53
|
+
Excerpt — not a complete module
|
|
54
|
+
|
|
55
|
+
```html
|
|
56
|
+
<span slIcon><ng-icon name="lucideDownload" /></span>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Alone, the icon carries the name
|
|
60
|
+
|
|
61
|
+
Excerpt — not a complete module
|
|
62
|
+
|
|
63
|
+
```html
|
|
64
|
+
<span slIcon label="Payment failed" tone="danger"><ng-icon name="lucideTriangleAlert" /></span>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Artwork that points somewhere mirrors
|
|
68
|
+
|
|
69
|
+
Excerpt — not a complete module
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<span slIcon directional><ng-icon name="lucideArrowRight" /></span>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### A container sizes every icon inside it, once
|
|
76
|
+
|
|
77
|
+
Excerpt — not a complete module
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<div style="--slotted-icon-size: var(--slotted-control-icon-size-sm)">
|
|
81
|
+
<ng-content />
|
|
82
|
+
</div>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Defaults for the whole application, set once
|
|
86
|
+
|
|
87
|
+
Excerpt — not a complete module
|
|
88
|
+
|
|
89
|
+
```css
|
|
90
|
+
/* The family has no provider and no injection token: data-ui is public
|
|
91
|
+
contract, so the cascade sets the defaults and any subtree overrides
|
|
92
|
+
them. An instance that states its own size or tone still wins. */
|
|
93
|
+
:root {
|
|
94
|
+
--slotted-icon-size: var(--slotted-control-icon-size-sm);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
[data-ui='icon'] svg {
|
|
98
|
+
/* The stroke weight belongs to the icon set, not to the icon. */
|
|
99
|
+
stroke-width: 2.25;
|
|
100
|
+
}
|
|
101
|
+
```
|