@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,365 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# entity-picker
|
|
3
|
+
|
|
4
|
+
`data-ui="entity-picker"` · Searches and picks remote records like people.
|
|
5
|
+
|
|
6
|
+
## Import
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { SlEntityPicker, SlEntityPickerChip, SlEntityPickerOption, provideEntityPickerDefaults } from '@slotted/angular/entity-picker';
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Selector: `sl-entity-picker, ng-template[slEntityPickerOption], ng-template[slEntityPickerChip]` · exportAs: `slEntityPicker`
|
|
13
|
+
|
|
14
|
+
## Minimal example
|
|
15
|
+
|
|
16
|
+
Excerpt — not a complete module
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<sl-entity-picker
|
|
20
|
+
aria-label="Owner"
|
|
21
|
+
[source]="directory"
|
|
22
|
+
[(value)]="owner"
|
|
23
|
+
(valueChangeRequest)="log($event)"
|
|
24
|
+
/>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Anatomy
|
|
28
|
+
|
|
29
|
+
| Part | Element | Required |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| `root` | sl-entity-picker | yes |
|
|
32
|
+
| `scope` | div around an sl-select | no |
|
|
33
|
+
| `control` | div | yes |
|
|
34
|
+
| `selection` | span around an slAvatar | no |
|
|
35
|
+
| `values` | div | no |
|
|
36
|
+
| `chips` | div | no |
|
|
37
|
+
| `field` | span | no |
|
|
38
|
+
| `input` | input | yes |
|
|
39
|
+
| `clear` | button | no |
|
|
40
|
+
| `trigger` | button | yes |
|
|
41
|
+
| `arrow` | span | no |
|
|
42
|
+
| `busy` | span, the spinner family | no |
|
|
43
|
+
| `positioner` | div, portalled | yes |
|
|
44
|
+
| `content` | div | yes |
|
|
45
|
+
| `group` | div | no |
|
|
46
|
+
| `group-label` | div | no |
|
|
47
|
+
| `item` | div | no |
|
|
48
|
+
| `media` | span around an slAvatar | no |
|
|
49
|
+
| `label` | span | no |
|
|
50
|
+
| `match` | mark, from slHighlight | no |
|
|
51
|
+
| `description` | span | no |
|
|
52
|
+
| `meta` | span | no |
|
|
53
|
+
| `indicator` | span | no |
|
|
54
|
+
| `error` | div | no |
|
|
55
|
+
| `empty` | div | no |
|
|
56
|
+
| `placeholder` | div | no |
|
|
57
|
+
| `more` | div | no |
|
|
58
|
+
| `status` | div | yes |
|
|
59
|
+
|
|
60
|
+
## Props
|
|
61
|
+
|
|
62
|
+
| Name | Type | Default | Applies to | Description |
|
|
63
|
+
| --- | --- | --- | --- | --- |
|
|
64
|
+
| `selectionMode` | `'single' \| 'multiple'` | single | sl-entity-picker | One id or an array of ids |
|
|
65
|
+
| `source` | `EntitySource` | — | sl-entity-picker | search(request, { signal }) and resolve(ids, { signal }) |
|
|
66
|
+
| `items` | `readonly Entity[]` | — | sl-entity-picker | A list the application holds, filtered locally |
|
|
67
|
+
| `entities` | `readonly Entity[]` | [] | sl-entity-picker | Records the application already knows |
|
|
68
|
+
| `favorites` | `readonly Entity[]` | [] | sl-entity-picker | The first section on an empty query |
|
|
69
|
+
| `recent` | `readonly Entity[]` | [] | sl-entity-picker | The section after favorites |
|
|
70
|
+
| `scopes` | `readonly { id; label }[]` | [] | sl-entity-picker | Draws an sl-select in front of the field |
|
|
71
|
+
| `value` | `model<string \| null \| readonly string[]>` | null | sl-entity-picker | Two-way ids |
|
|
72
|
+
| `defaultValue` | `string \| readonly string[]` | — | sl-entity-picker | The uncontrolled start, read once |
|
|
73
|
+
| `inputValue` | `model<string>` | '' | sl-entity-picker | Two-way text |
|
|
74
|
+
| `open` | `model<boolean>` | false | sl-entity-picker | Two-way popup |
|
|
75
|
+
| `highlightedValue` | `model<string \| null>` | null | sl-entity-picker | Two-way highlight |
|
|
76
|
+
| `scope` | `model<string \| null>` | null | sl-entity-picker | Two-way scope |
|
|
77
|
+
| `createEntity` | `(query) => Entity \| Promise<Entity \| null>` | — | sl-entity-picker | Draws the offer to create |
|
|
78
|
+
| `max` | `number` | null | sl-entity-picker | multiple: the most records chosen |
|
|
79
|
+
| `searchDelay` | `number` | 250 | sl-entity-picker | Milliseconds after the last keystroke |
|
|
80
|
+
| `minQueryLength` | `number` | 0 | sl-entity-picker | Below it nothing is asked |
|
|
81
|
+
| `media` | `'avatar' \| 'none'` | avatar | sl-entity-picker | Faces in rows, chips and the field |
|
|
82
|
+
| `overflow` | `'collapse' \| 'wrap'` | collapse | sl-entity-picker | multiple: one line with +N, or three lines |
|
|
83
|
+
| `openOn` | `'input' \| 'focus' \| 'manual'` | input | sl-entity-picker | input: typing or a press opens; focus: every focus too; manual: only the trigger and the arrows |
|
|
84
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | md | sl-entity-picker | The control step; a field sets it |
|
|
85
|
+
| `variant` | `'outline' \| 'subtle' \| 'plain'` | outline | sl-entity-picker | plain gives the box to a cell |
|
|
86
|
+
| `side` | `'bottom' \| 'top'` | bottom | sl-entity-picker | Where the popup opens |
|
|
87
|
+
| `width` | `'anchor' \| 'content'` | content | sl-entity-picker | The popup at least as wide as the frame and as wide as its longest row (content), or pinned to the width of the frame (anchor) |
|
|
88
|
+
| `strategy` | `'absolute' \| 'fixed'` | absolute | sl-entity-picker | fixed inside a clipped ancestor |
|
|
89
|
+
| `clearable` | `boolean` | true | sl-entity-picker | Draws the clear button |
|
|
90
|
+
| `loop` | `boolean` | false | sl-entity-picker | The arrows wrap |
|
|
91
|
+
| `highlightMatch` | `boolean` | true | sl-entity-picker | Marks the span the query found |
|
|
92
|
+
| `portal` | `boolean` | true | sl-entity-picker | false keeps the layer in place |
|
|
93
|
+
| `fullWidth` | `boolean` | true | sl-entity-picker | false sizes the root to its content |
|
|
94
|
+
| `disabled` | `boolean` | false | sl-entity-picker | Also from a field or a form control |
|
|
95
|
+
| `readOnly` | `boolean` | false | sl-entity-picker | Keeps the text, withholds the popup |
|
|
96
|
+
| `required` | `boolean` | false | sl-entity-picker | Reported by the Validator |
|
|
97
|
+
| `invalid` | `boolean` | false | sl-entity-picker | Also from a field |
|
|
98
|
+
| `locale` | `string` | — | sl-entity-picker | BCP 47. The language in force when absent |
|
|
99
|
+
| `messages` | `Partial<EntityPickerMessages>` | — | sl-entity-picker | Words laid over the language in force, key by key; {count}, {query}, {label}, {id} and {max} are slots |
|
|
100
|
+
| `aria-label` | `string` | — | sl-entity-picker | The name when no field labels it |
|
|
101
|
+
| `slEntityPickerOption` | `ng-template, context { $implicit, query, selected, current, disabled }` | — | option content | The content of an option |
|
|
102
|
+
| `slEntityPickerChip` | `ng-template, context { $implicit }` | — | chip words | The words of a chip |
|
|
103
|
+
| `provideEntityPickerDefaults` | `(defaults) => Provider` | — | an injector | The decisions an application takes once |
|
|
104
|
+
|
|
105
|
+
## Events
|
|
106
|
+
|
|
107
|
+
| Name | Payload | When |
|
|
108
|
+
| --- | --- | --- |
|
|
109
|
+
| `valueChangeRequest` | `ChangeRequest<string \| null \| readonly string[]> & { entities: readonly Entity[] }` | Before the choice moves: a press (pointer), Enter (keyboard), a removal (remove), clear (clear), a created record (submit). cancel() refuses it; otherwise value and a form control follow. |
|
|
110
|
+
| `valueChange` | `string \| null \| readonly string[]` | The model half of [(value)], after a request nobody cancelled. |
|
|
111
|
+
| `inputValueChangeRequest / inputValueChange` | `ChangeRequest<string> / string` | The text: typing (keyboard), a choice (select), clear (clear), leaving text that chose nothing (blur). |
|
|
112
|
+
| `openChangeRequest / openChange` | `ChangeRequest<boolean> / boolean` | The popup: focus and keys (keyboard), a press on the input or the trigger (pointer), escape, outsidePress, select, blur. |
|
|
113
|
+
| `highlightedValueChangeRequest / highlightedValueChange` | `ChangeRequest<string \| null> / string \| null` | The highlight: arrows (keyboard), hovering (pointer). |
|
|
114
|
+
| `scopeChangeRequest / scopeChange` | `ChangeRequest<string \| null> / string \| null` | The scope, from the sl-select in front of the field (pointer, keyboard). |
|
|
115
|
+
| `create` | `{ query: string; reason }` | The offer to create is taken; [createEntity] makes the record, which is then chosen. |
|
|
116
|
+
|
|
117
|
+
## Axes and defaults
|
|
118
|
+
|
|
119
|
+
| Axis | Values | Default |
|
|
120
|
+
| --- | --- | --- |
|
|
121
|
+
| `selectionMode` | `single`, `multiple` | `single` |
|
|
122
|
+
| `size` | `sm`, `md`, `lg` | `md` |
|
|
123
|
+
| `variant` | `outline`, `subtle`, `plain` | `outline` |
|
|
124
|
+
| `media` | `avatar`, `none` | `avatar` |
|
|
125
|
+
| `overflow` | `collapse`, `wrap` | `collapse` |
|
|
126
|
+
| `openOn` | `input`, `focus`, `manual` | `input` |
|
|
127
|
+
| `side` | `bottom`, `top` | `bottom` |
|
|
128
|
+
| `width` | `anchor`, `content` | `content` |
|
|
129
|
+
| `strategy` | `absolute`, `fixed` | `absolute` |
|
|
130
|
+
| `clearable` | `true`, `false` | `true` |
|
|
131
|
+
| `loop` | `true`, `false` | `false` |
|
|
132
|
+
| `highlightMatch` | `true`, `false` | `true` |
|
|
133
|
+
| `portal` | `true`, `false` | `true` |
|
|
134
|
+
| `fullWidth` | `true`, `false` | `true` |
|
|
135
|
+
| `disabled` | `true`, `false` | `false` |
|
|
136
|
+
| `readOnly` | `true`, `false` | `false` |
|
|
137
|
+
| `required` | `true`, `false` | `false` |
|
|
138
|
+
| `invalid` | `true`, `false` | `false` |
|
|
139
|
+
|
|
140
|
+
## Rules
|
|
141
|
+
|
|
142
|
+
- The input is a combobox with a listbox popup, as the APG Combobox Pattern writes it: DOM focus never leaves the input, aria-activedescendant names the highlighted record, and aria-autocomplete is list.
|
|
143
|
+
- Each option and each chip is named by the name and the identifier, so two people called Ana Souza are two things to a screen reader; an id without a record is named Unavailable with the id.
|
|
144
|
+
- In multiple the chips are one row of a grid with one tab stop: the arrows move between chips, Delete removes, and focus after a removal goes to the chip that took the index, then the previous one, then the input.
|
|
145
|
+
- The Validator reports required and unresolved to a Reactive Form, so a value that holds a deleted record is invalid without the application checking it.
|
|
146
|
+
- The failure and every chip added or removed are said once through the shared polite announcer; the skeletons are hidden from assistive technology.
|
|
147
|
+
|
|
148
|
+
## Tokens
|
|
149
|
+
|
|
150
|
+
`--slotted-avatar-size-md`, `--slotted-avatar-size-sm`, `--slotted-avatar-size-xs`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-shadow-focus-geometry`, `--slotted-control-surface`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-entity-picker-action-active-background`, `--slotted-entity-picker-action-color`, `--slotted-entity-picker-action-hover-background`, `--slotted-entity-picker-action-size`, `--slotted-entity-picker-autofill-background`, `--slotted-entity-picker-background`, `--slotted-entity-picker-border-color`, `--slotted-entity-picker-color`, `--slotted-entity-picker-content-border-color`, `--slotted-entity-picker-content-radius`, `--slotted-entity-picker-content-shadow`, `--slotted-entity-picker-content-text`, `--slotted-entity-picker-content-text-muted`, `--slotted-entity-picker-disabled-background`, `--slotted-entity-picker-disabled-border-color`, `--slotted-entity-picker-disabled-color`, `--slotted-entity-picker-error-color`, `--slotted-entity-picker-field-basis`, `--slotted-entity-picker-field-min`, `--slotted-entity-picker-highlight`, `--slotted-entity-picker-highlight-active`, `--slotted-entity-picker-highlight-ring`, `--slotted-entity-picker-hover-border-color`, `--slotted-entity-picker-icon-size-min`, `--slotted-entity-picker-invalid-border-color`, `--slotted-entity-picker-invalid-edge-width`, `--slotted-entity-picker-invalid-focus-ring-color`, `--slotted-entity-picker-item-radius`, `--slotted-entity-picker-measure`, `--slotted-entity-picker-meta-measure`, `--slotted-entity-picker-offer-color`, `--slotted-entity-picker-open-border-color`, `--slotted-entity-picker-placeholder-color`, `--slotted-entity-picker-plain-hover-background`, `--slotted-entity-picker-radius`, `--slotted-entity-picker-readonly-background`, `--slotted-entity-picker-scope-inline-size`, `--slotted-entity-picker-selected-color`, `--slotted-entity-picker-shadow`, `--slotted-entity-picker-subtle-background`, `--slotted-entity-picker-subtle-border-color`, `--slotted-entity-picker-subtle-hover-background`, `--slotted-entity-picker-surface`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-radius-lg`, `--slotted-radius-none`, `--slotted-shadow-md`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-danger-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-popover`
|
|
151
|
+
|
|
152
|
+
## Examples
|
|
153
|
+
|
|
154
|
+
### One record
|
|
155
|
+
|
|
156
|
+
The chosen name is the text of the field and the face stands before it. Typing searches; leaving text that chose nothing puts the name back.
|
|
157
|
+
|
|
158
|
+
Excerpt — not a complete module
|
|
159
|
+
|
|
160
|
+
```html
|
|
161
|
+
<div slField>
|
|
162
|
+
<label slFieldLabel>Account owner</label>
|
|
163
|
+
<sl-entity-picker defaultValue="usr_bruno" [source]="directory" />
|
|
164
|
+
</div>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Several records
|
|
168
|
+
|
|
169
|
+
Reviewers as chips with faces. Choosing keeps the popup open and empties the query; the field stays one line, and what does not fit is counted by +N.
|
|
170
|
+
|
|
171
|
+
Excerpt — not a complete module
|
|
172
|
+
|
|
173
|
+
```html
|
|
174
|
+
<sl-entity-picker
|
|
175
|
+
aria-label="Reviewers"
|
|
176
|
+
selectionMode="multiple"
|
|
177
|
+
[defaultValue]="['usr_ana', 'usr_bruno', 'usr_carla']"
|
|
178
|
+
[source]="directory"
|
|
179
|
+
/>
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### A record, not a string
|
|
183
|
+
|
|
184
|
+
The face, the name, the identifier under it and a short fact on its line. Two people called Ana Souza are told apart by their address, in the list and in what a screen reader hears.
|
|
185
|
+
|
|
186
|
+
Excerpt — not a complete module
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
const record: Entity = {
|
|
190
|
+
id: 'usr_ana',
|
|
191
|
+
label: 'Ana Souza',
|
|
192
|
+
description: 'ana.souza@northwind.io',
|
|
193
|
+
meta: 'Admin',
|
|
194
|
+
};
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Favorites and recent
|
|
198
|
+
|
|
199
|
+
Press the empty field: favorites, then recent, then what the empty query returned, with no id twice. rememberRecent keeps the application’s list.
|
|
200
|
+
|
|
201
|
+
Excerpt — not a complete module
|
|
202
|
+
|
|
203
|
+
```html
|
|
204
|
+
<sl-entity-picker
|
|
205
|
+
aria-label="Assignee"
|
|
206
|
+
[favorites]="pinned"
|
|
207
|
+
[recent]="recent()"
|
|
208
|
+
[source]="directory"
|
|
209
|
+
(valueChangeRequest)="remember($event)"
|
|
210
|
+
/>
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Searching in a scope
|
|
214
|
+
|
|
215
|
+
An sl-select joined to the front of the field chooses what the search runs over; the scope rides on every request.
|
|
216
|
+
|
|
217
|
+
Excerpt — not a complete module
|
|
218
|
+
|
|
219
|
+
```html
|
|
220
|
+
<sl-entity-picker aria-label="Related record" [scopes]="scopes" [(scope)]="scope" [source]="crm" />
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Waiting for the source
|
|
224
|
+
|
|
225
|
+
The first page waits as three skeleton records; a new query dims the rows already shown; the next page arrives under a skeleton row at the end. Nothing is drawn for an answer faster than 200ms.
|
|
226
|
+
|
|
227
|
+
Excerpt — not a complete module
|
|
228
|
+
|
|
229
|
+
```ts
|
|
230
|
+
const directory: EntitySource = {
|
|
231
|
+
search: async ({ query, cursor }, { signal }) => {
|
|
232
|
+
const page = await api.people({ query, cursor, signal });
|
|
233
|
+
return { items: page.people, hasMore: page.next !== null, cursor: page.next };
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Creating what is not there
|
|
239
|
+
|
|
240
|
+
Type a company the source does not hold: the last option offers to create it, and the record createEntity returns is chosen with reason submit.
|
|
241
|
+
|
|
242
|
+
Excerpt — not a complete module
|
|
243
|
+
|
|
244
|
+
```html
|
|
245
|
+
<sl-entity-picker aria-label="Account" [createEntity]="createAccount" [source]="accounts" />
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### When the source fails
|
|
249
|
+
|
|
250
|
+
The sentence names what failed and the option under it searches again — ArrowDown reaches it and Enter takes it. Chips already chosen stay.
|
|
251
|
+
|
|
252
|
+
Excerpt — not a complete module
|
|
253
|
+
|
|
254
|
+
```html
|
|
255
|
+
<sl-entity-picker aria-label="Owner" [source]="offline" />
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Ids without records
|
|
259
|
+
|
|
260
|
+
A value that arrives as ids: each chip waits as a skeleton while resolve runs, and an id the source never returns reads Unavailable and stays removable.
|
|
261
|
+
|
|
262
|
+
Excerpt — not a complete module
|
|
263
|
+
|
|
264
|
+
```html
|
|
265
|
+
<sl-entity-picker
|
|
266
|
+
aria-label="Watchers"
|
|
267
|
+
selectionMode="multiple"
|
|
268
|
+
[defaultValue]="['usr_marta', 'usr_deleted']"
|
|
269
|
+
[source]="directory"
|
|
270
|
+
/>
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### A limit
|
|
274
|
+
|
|
275
|
+
At three approvers every other record goes aria-disabled and the field says it is complete; removing one opens the list again.
|
|
276
|
+
|
|
277
|
+
Excerpt — not a complete module
|
|
278
|
+
|
|
279
|
+
```html
|
|
280
|
+
<sl-entity-picker aria-label="Approvers" max="3" selectionMode="multiple" [source]="directory" />
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Sizes
|
|
284
|
+
|
|
285
|
+
sm, md and lg beside a text field of the same step: the frame, the face and the chips follow the control scale.
|
|
286
|
+
|
|
287
|
+
Excerpt — not a complete module
|
|
288
|
+
|
|
289
|
+
```html
|
|
290
|
+
<sl-entity-picker aria-label="Owner" size="sm" [source]="directory" />
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### Variants
|
|
294
|
+
|
|
295
|
+
outline in a form, subtle on a sunken panel, plain inside a table cell whose row is the box — square, no lift, the ring drawn inward.
|
|
296
|
+
|
|
297
|
+
Excerpt — not a complete module
|
|
298
|
+
|
|
299
|
+
```html
|
|
300
|
+
<sl-entity-picker aria-label="Owner" variant="plain" [source]="directory" />
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### States
|
|
304
|
+
|
|
305
|
+
Disabled drops the remove buttons and fades the faces; read-only keeps the name copyable and withholds the popup; invalid retargets the edge and the ring.
|
|
306
|
+
|
|
307
|
+
Excerpt — not a complete module
|
|
308
|
+
|
|
309
|
+
```html
|
|
310
|
+
<sl-entity-picker aria-label="Owner" disabled [source]="directory" />
|
|
311
|
+
<sl-entity-picker aria-label="Owner" readOnly [source]="directory" />
|
|
312
|
+
<sl-entity-picker aria-label="Owner" invalid required [source]="directory" />
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### Content the family did not choose
|
|
316
|
+
|
|
317
|
+
A nine-word name clamps to two lines, a long address to one with an ellipsis, an Arabic name reads right to left, and a token with no spaces breaks.
|
|
318
|
+
|
|
319
|
+
Excerpt — not a complete module
|
|
320
|
+
|
|
321
|
+
```html
|
|
322
|
+
<sl-entity-picker aria-label="Watchers" selectionMode="multiple" [source]="international" />
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Every key
|
|
326
|
+
|
|
327
|
+
ArrowDown opens and moves, PageDown jumps ten, Enter chooses, Escape closes then reverts; in multiple, Backspace from an empty field goes to the last chip and a second press removes it.
|
|
328
|
+
|
|
329
|
+
Excerpt — not a complete module
|
|
330
|
+
|
|
331
|
+
```html
|
|
332
|
+
<sl-entity-picker aria-label="Reviewers" selectionMode="multiple" [source]="directory" />
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### In a form
|
|
336
|
+
|
|
337
|
+
A deal form with Reactive Forms: the owner and the reviewers are form controls, required, and stand at the height of the fields beside them.
|
|
338
|
+
|
|
339
|
+
Excerpt — not a complete module
|
|
340
|
+
|
|
341
|
+
```html
|
|
342
|
+
<sl-entity-picker
|
|
343
|
+
aria-label="Reviewers"
|
|
344
|
+
required
|
|
345
|
+
selectionMode="multiple"
|
|
346
|
+
[formControl]="reviewers"
|
|
347
|
+
[source]="directory"
|
|
348
|
+
/>
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Composition
|
|
352
|
+
|
|
353
|
+
An option template adds the team after the address; a chip template adds the role; provideSlotted says every sentence in Portuguese once.
|
|
354
|
+
|
|
355
|
+
Excerpt — not a complete module
|
|
356
|
+
|
|
357
|
+
```html
|
|
358
|
+
<sl-entity-picker aria-label="Reviewers" selectionMode="multiple" [source]="directory">
|
|
359
|
+
<ng-template slEntityPickerOption let-person>
|
|
360
|
+
<span data-part="label">{{ person.label }}</span>
|
|
361
|
+
<span data-part="description">{{ person.description }} · Northwind</span>
|
|
362
|
+
</ng-template>
|
|
363
|
+
<ng-template slEntityPickerChip let-person>{{ person.label }} · {{ person.meta }}</ng-template>
|
|
364
|
+
</sl-entity-picker>
|
|
365
|
+
```
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
<!-- index: ./index.md -->
|
|
2
|
+
# event-calendar
|
|
3
|
+
|
|
4
|
+
`data-ui="event-calendar"` · Month, week, day and list views of events.
|
|
5
|
+
|
|
6
|
+
## Examples
|
|
7
|
+
|
|
8
|
+
### Which views, in what order
|
|
9
|
+
|
|
10
|
+
[views] sets the switcher and its order; the first is the one an unbound calendar opens on. A booking page that only lists and a planner without a list are the same family.
|
|
11
|
+
|
|
12
|
+
Excerpt — not a complete module
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<div slEventCalendar [events]="events" [views]="['week', 'day', 'month']"></div>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### The month
|
|
19
|
+
|
|
20
|
+
All-day and multi-day events are bars; a meeting of one day is a dot, a time and a title. A bar running into next week stops in its cell with a chevron; the week number, the outside days and the continuous run of chosen days all show here.
|
|
21
|
+
|
|
22
|
+
Excerpt — not a complete module
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<div slEventCalendar [events]="events" fixedWeeks weekNumbers></div>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### The week
|
|
29
|
+
|
|
30
|
+
Blocks stand off the rules and off each other. The all-day lane holds bars across days, today’s column carries the now line, and the hours open on scrollTime. Hide the weekend for a working week.
|
|
31
|
+
|
|
32
|
+
Excerpt — not a complete module
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<div
|
|
36
|
+
slEventCalendar
|
|
37
|
+
[events]="events"
|
|
38
|
+
[dayHours]="[8, 20]"
|
|
39
|
+
defaultView="week"
|
|
40
|
+
weekends="hidden"
|
|
41
|
+
></div>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### The day
|
|
45
|
+
|
|
46
|
+
One column with room for the location under each title. The previous and next buttons step one day, and skip Saturday and Sunday when the weekend is hidden.
|
|
47
|
+
|
|
48
|
+
Excerpt — not a complete module
|
|
49
|
+
|
|
50
|
+
```html
|
|
51
|
+
<div slEventCalendar [events]="events" defaultView="day" [slotDuration]="15"></div>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### The list
|
|
55
|
+
|
|
56
|
+
A heading per day that holds an event and nothing for the days that hold none. Every event is in the tab order; the time has a column of its own so the titles align down the page.
|
|
57
|
+
|
|
58
|
+
Excerpt — not a complete module
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<div slEventCalendar [events]="events" defaultView="list" listRange="month"></div>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### All-day, multi-day and past midnight
|
|
65
|
+
|
|
66
|
+
A start without a time is a whole day, and its end is the last day, inclusive. The release window runs from 10 PM to 2 AM: one block per day in the week, one bar in the month labelled with its start.
|
|
67
|
+
|
|
68
|
+
Excerpt — not a complete module
|
|
69
|
+
|
|
70
|
+
```html
|
|
71
|
+
<div slEventCalendar [events]="[conference, releaseWindow]" defaultView="week"></div>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Overlapping events
|
|
75
|
+
|
|
76
|
+
Events that overlap share the day in columns, each spanning the free columns to its right; no text is covered. Five hiring panels at the same hour draw two columns and a +3 that opens the day.
|
|
77
|
+
|
|
78
|
+
Excerpt — not a complete module
|
|
79
|
+
|
|
80
|
+
```html
|
|
81
|
+
<div slEventCalendar [events]="events" defaultView="week" [maxColumns]="4"></div>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Recurrence, exceptions and a moved occurrence
|
|
85
|
+
|
|
86
|
+
The standup repeats every weekday and skips Labor Day; planning repeats every other Monday, and the one on the 21st was moved to Tuesday afternoon. A rule outside the subset degrades to a single occurrence.
|
|
87
|
+
|
|
88
|
+
Excerpt — not a complete module
|
|
89
|
+
|
|
90
|
+
```html
|
|
91
|
+
<div slEventCalendar [events]="[standup, movedPlanning]" defaultView="week"></div>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Time zones and the day the clocks change
|
|
95
|
+
|
|
96
|
+
The calendar draws wall-clock time. The application converts its instants once with wallClockIn; timeZone decides today, the now line and the gutter’s label. On 1 November in New York the header says the clocks go back at 2 AM and the column marks the minute.
|
|
97
|
+
|
|
98
|
+
Excerpt — not a complete module
|
|
99
|
+
|
|
100
|
+
```html
|
|
101
|
+
<div slEventCalendar [events]="shifts" [timeZone]="zone" defaultView="day"></div>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Calendars and their colours
|
|
105
|
+
|
|
106
|
+
Each calendar takes a slot of the data palette in order and never cycles. The filter is a menu of checkboxes; a predicate composes a search on top. Colour is identity only: the calendar is also in every event’s name.
|
|
107
|
+
|
|
108
|
+
Excerpt — not a complete module
|
|
109
|
+
|
|
110
|
+
```html
|
|
111
|
+
<div
|
|
112
|
+
slEventCalendar
|
|
113
|
+
[calendars]="calendars"
|
|
114
|
+
[events]="events"
|
|
115
|
+
[(visibleCalendars)]="visible"
|
|
116
|
+
[filter]="matches"
|
|
117
|
+
>
|
|
118
|
+
<div slTextField slEventCalendarActions size="sm">
|
|
119
|
+
<input slTextFieldInput type="search" aria-label="Search events" (input)="search($event)" />
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Working hours
|
|
125
|
+
|
|
126
|
+
The hours outside workingHours are shaded, and a day no entry names is shaded whole. Shading informs and does not refuse: whether a slot outside hours can be booked is the application’s rule.
|
|
127
|
+
|
|
128
|
+
Excerpt — not a complete module
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<div slEventCalendar [events]="appointments" [workingHours]="shifts" defaultView="week"></div>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### What a domain writes on a day
|
|
135
|
+
|
|
136
|
+
An ng-template with slEventCalendarDayContent writes into every day header: who is on call here, a nightly price on a booking page, free slots in a clinic. It sits at the end of the header line in the month and under the date in the week.
|
|
137
|
+
|
|
138
|
+
Excerpt — not a complete module
|
|
139
|
+
|
|
140
|
+
```html
|
|
141
|
+
<div slEventCalendar [events]="events">
|
|
142
|
+
<ng-template slEventCalendarDayContent let-date>{{ onCall(date) }}</ng-template>
|
|
143
|
+
</div>
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Opening an event
|
|
147
|
+
|
|
148
|
+
With an ng-template carrying slEventCalendarDetail the family opens a popover anchored to the event and gives it back focus on close. Without one, (openEventRequest) asks and the application opens its own drawer; the open event keeps aria-expanded either way.
|
|
149
|
+
|
|
150
|
+
Excerpt — not a complete module
|
|
151
|
+
|
|
152
|
+
```html
|
|
153
|
+
<div slEventCalendar [events]="events">
|
|
154
|
+
<ng-template slEventCalendarDetail let-occurrence let-close="close">
|
|
155
|
+
<app-event-summary [occurrence]="occurrence" (edit)="close()" />
|
|
156
|
+
</ng-template>
|
|
157
|
+
</div>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Commands on a right click
|
|
161
|
+
|
|
162
|
+
With an ng-template carrying slEventCalendarContextMenu a secondary click, a long press or Shift+F10 opens the context-menu family on what was pointed at: an event, the selection when the pointer is inside it, one step of the hours, or a day. The event is drawn solid and a stretch as the selection being made; slEventCalendarContextMenuFor leaves the browser’s own menu on the targets it refuses.
|
|
163
|
+
|
|
164
|
+
Excerpt — not a complete module
|
|
165
|
+
|
|
166
|
+
```html
|
|
167
|
+
<div slEventCalendar [events]="events">
|
|
168
|
+
<ng-template slEventCalendarContextMenu let-target>
|
|
169
|
+
@if (target.kind === 'event') {
|
|
170
|
+
<button slMenuItem (select)="duplicate(target.occurrence)">Duplicate</button>
|
|
171
|
+
<hr slMenuSeparator />
|
|
172
|
+
<button slMenuItem tone="danger" (select)="remove(target.occurrence)">Delete</button>
|
|
173
|
+
} @else {
|
|
174
|
+
<button slMenuItem (select)="openCreateDialog(target.slot)">New event</button>
|
|
175
|
+
}
|
|
176
|
+
</ng-template>
|
|
177
|
+
</div>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Choosing a stretch to create an event
|
|
181
|
+
|
|
182
|
+
Drag across empty hours or days, or press Space on a day and extend with Shift and the arrows. The calendar asks with the stretch and a reason; the application opens its form and clears the selection when done.
|
|
183
|
+
|
|
184
|
+
Excerpt — not a complete module
|
|
185
|
+
|
|
186
|
+
```html
|
|
187
|
+
<div
|
|
188
|
+
slEventCalendar
|
|
189
|
+
[events]="events"
|
|
190
|
+
selectionMode="range"
|
|
191
|
+
[(selection)]="selection"
|
|
192
|
+
(selectionRequest)="create($event)"
|
|
193
|
+
></div>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Moving and resizing
|
|
197
|
+
|
|
198
|
+
With editable, a press that travels four pixels picks an event up and lays it out where it would land; its end pulls to resize. Release asks with eventChangeRequest; Escape puts it back. Alt with the arrows does the same from the keyboard. A series asks with the occurrence’s own date. canDrop is asked about every destination with the same change: a refused one is drawn with a dashed danger edge, letting go there asks nothing, and Alt with an arrow passes over it to the next allowed one.
|
|
199
|
+
|
|
200
|
+
Excerpt — not a complete module
|
|
201
|
+
|
|
202
|
+
```html
|
|
203
|
+
<div
|
|
204
|
+
slEventCalendar
|
|
205
|
+
editable
|
|
206
|
+
[canDrop]="notAtWeekends"
|
|
207
|
+
[events]="events()"
|
|
208
|
+
(eventChangeRequest)="move($event.value)"
|
|
209
|
+
></div>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Loading a new range
|
|
213
|
+
|
|
214
|
+
The grid is structure the date decides, so it stays painted; one bar on its top edge says events are coming, after loadingDelay, and holds for loadingMinDuration. Events already drawn stay until the new ones arrive.
|
|
215
|
+
|
|
216
|
+
Excerpt — not a complete module
|
|
217
|
+
|
|
218
|
+
```html
|
|
219
|
+
<div
|
|
220
|
+
slEventCalendar
|
|
221
|
+
[events]="events()"
|
|
222
|
+
[loading]="fetching()"
|
|
223
|
+
(rangeChange)="range.set($event)"
|
|
224
|
+
></div>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Nothing this week
|
|
228
|
+
|
|
229
|
+
The list says so in a sentence and carries the application’s next step. The grid needs no sentence: an empty month is visibly empty.
|
|
230
|
+
|
|
231
|
+
Excerpt — not a complete module
|
|
232
|
+
|
|
233
|
+
```html
|
|
234
|
+
<div slEventCalendar [events]="[]" defaultView="list">
|
|
235
|
+
<button slButton slEventCalendarEmpty type="button">New event</button>
|
|
236
|
+
</div>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### A range that failed
|
|
240
|
+
|
|
241
|
+
The error sits above the grid with the application’s retry; paging, the views and the filter keep working, because the failure is the data’s, not the calendar’s.
|
|
242
|
+
|
|
243
|
+
Excerpt — not a complete module
|
|
244
|
+
|
|
245
|
+
```html
|
|
246
|
+
<div slEventCalendar [events]="events">
|
|
247
|
+
<div slAlert slEventCalendarError tone="danger">The events could not be loaded.</div>
|
|
248
|
+
</div>
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### On a phone
|
|
252
|
+
|
|
253
|
+
Below 600 pixels the month and the week draw as a list of the same days and the view does not change. With compact="keep" the grid stays: events become marks of colour, the day is the target, and each keeps its name. At that width the “+N” panel and the detail are sheets from the bottom edge rather than popovers.
|
|
254
|
+
|
|
255
|
+
Excerpt — not a complete module
|
|
256
|
+
|
|
257
|
+
```html
|
|
258
|
+
<div slEventCalendar [events]="events" compact="keep"></div>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Drawing the inside of an event
|
|
262
|
+
|
|
263
|
+
An ng-template with slEventCalendarEvent replaces what an event shows and keeps the element, its name, its focus and its geometry. The context says where it is drawn — lane, bar, block or list — and the time the family would write.
|
|
264
|
+
|
|
265
|
+
Excerpt — not a complete module
|
|
266
|
+
|
|
267
|
+
```html
|
|
268
|
+
<div slEventCalendar [events]="events" defaultView="day">
|
|
269
|
+
<ng-template slEventCalendarEvent let-occurrence let-time="time">
|
|
270
|
+
<span data-part="event-title">{{ occurrence.event.title }}</span>
|
|
271
|
+
<span data-part="event-time">{{ time }}</span>
|
|
272
|
+
<span data-part="event-location">{{ occurrence.event.owner }}</span>
|
|
273
|
+
</ng-template>
|
|
274
|
+
</div>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Locale, clock and direction
|
|
278
|
+
|
|
279
|
+
Portuguese starts the week on Sunday and writes a 24-hour clock; Hebrew mirrors the grid, the chevrons and the bars, and an English title on a Hebrew page keeps its own direction.
|
|
280
|
+
|
|
281
|
+
Excerpt — not a complete module
|
|
282
|
+
|
|
283
|
+
```html
|
|
284
|
+
<div slEventCalendar [events]="events"></div>
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Density
|
|
288
|
+
|
|
289
|
+
An hour is two small controls tall — 60, 52 and 48 pixels — and a lane is the inside of one, so dense shrinks the grid the way it shrinks the controls around it. Switch the toolbar to compare.
|
|
290
|
+
|
|
291
|
+
Excerpt — not a complete module
|
|
292
|
+
|
|
293
|
+
```html
|
|
294
|
+
<div data-slotted-density="dense">
|
|
295
|
+
<div slEventCalendar [events]="events" defaultView="week"></div>
|
|
296
|
+
</div>
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
### Keyboard
|
|
300
|
+
|
|
301
|
+
Tab reaches one day. Arrows move the day, Page Up and Down the period, Home and End the week; in the week Up and Down move between the header, all-day and hours rows. Enter goes into a day, Up and Down walk its events, Escape comes back.
|
|
302
|
+
|
|
303
|
+
Excerpt — not a complete module
|
|
304
|
+
|
|
305
|
+
```html
|
|
306
|
+
<div slEventCalendar #calendar="slEventCalendar" [events]="events"></div>
|
|
307
|
+
<button type="button" (click)="calendar.focusDate(firstOfOctober)">Focus 1 October</button>
|
|
308
|
+
```
|