@slotted/angular 0.1.0-beta.1 → 0.1.0-beta.10
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/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +1 -0
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +24 -7
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +6 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +35 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +5 -0
- package/docs/drawer.md +1 -0
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +129 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +4 -3
- package/docs/page-header.md +2 -2
- package/docs/page.json +1 -0
- package/docs/page.md +1 -0
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +5 -5
- package/docs/section.json +27 -15
- package/docs/section.md +11 -9
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +95 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +77 -0
- package/docs/skills/theme-app/SKILL.md +87 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +7 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +4 -4
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +22 -11
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +90 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +166 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +112 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +354 -113
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +53 -29
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +189 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +75 -45
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +184 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +49 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +22 -11
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +74 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +49 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +7 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +4 -4
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
package/docs/data-grid.json
CHANGED
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
"skeletonRows": 8,
|
|
99
99
|
"filterDebounce": 300,
|
|
100
100
|
"loadMoreThreshold": 20,
|
|
101
|
+
"loadMoreTrigger": "scroll",
|
|
101
102
|
"pageSizes": [
|
|
102
103
|
25,
|
|
103
104
|
50,
|
|
@@ -498,7 +499,7 @@
|
|
|
498
499
|
"type": "GridColumn<Row>[]",
|
|
499
500
|
"defaultValue": "—",
|
|
500
501
|
"appliesTo": "sl-data-grid",
|
|
501
|
-
"description": "The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, options, aggregate, validate, parse."
|
|
502
|
+
"description": "The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, pinned (end by default for kind actions), options, aggregate, validate, parse."
|
|
502
503
|
},
|
|
503
504
|
{
|
|
504
505
|
"name": "description",
|
|
@@ -561,14 +562,14 @@
|
|
|
561
562
|
"type": "boolean",
|
|
562
563
|
"defaultValue": "—",
|
|
563
564
|
"appliesTo": "sl-data-grid",
|
|
564
|
-
"description": "Whether a page past this one exists when the total is unknown;
|
|
565
|
+
"description": "Whether a page past this one exists when the total is unknown; loadMoreTrigger decides what asks for it."
|
|
565
566
|
},
|
|
566
567
|
{
|
|
567
568
|
"name": "loading",
|
|
568
|
-
"type": "boolean",
|
|
569
|
+
"type": "boolean | 'initial' | 'refresh'",
|
|
569
570
|
"defaultValue": "false",
|
|
570
571
|
"appliesTo": "sl-data-grid",
|
|
571
|
-
"description": "Skeleton rows with no
|
|
572
|
+
"description": "Skeleton rows with no answer to keep; aria-busy over an answer already drawn — rows, which dim, or the empty state, which stays. true is initial until the grid has drawn an answer, and refresh after; rows emptied while a load starts wait in the skeleton."
|
|
572
573
|
},
|
|
573
574
|
{
|
|
574
575
|
"name": "error",
|
|
@@ -766,6 +767,20 @@
|
|
|
766
767
|
"appliesTo": "sl-data-grid",
|
|
767
768
|
"description": "Rows left below the window before loadMore is emitted."
|
|
768
769
|
},
|
|
770
|
+
{
|
|
771
|
+
"name": "loadMoreTrigger",
|
|
772
|
+
"type": "'scroll' | 'button' | 'both'",
|
|
773
|
+
"defaultValue": "scroll",
|
|
774
|
+
"appliesTo": "sl-data-grid",
|
|
775
|
+
"description": "What asks for the next page: nearing the end, with a loading status in the footer; a Load more control; or both."
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"name": "loadMoreFailed",
|
|
779
|
+
"type": "boolean",
|
|
780
|
+
"defaultValue": "false",
|
|
781
|
+
"appliesTo": "sl-data-grid",
|
|
782
|
+
"description": "The last page asked for failed: the automatic request stops and the footer offers Try again."
|
|
783
|
+
},
|
|
769
784
|
{
|
|
770
785
|
"name": "skeletonRows",
|
|
771
786
|
"type": "number",
|
|
@@ -934,7 +949,7 @@
|
|
|
934
949
|
"type": "provider",
|
|
935
950
|
"defaultValue": "—",
|
|
936
951
|
"appliesTo": "Application",
|
|
937
|
-
"description": "Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold and skeletonRows once for an injector. A grid that states one itself still wins. Its words and its locale come from the language in force (provideSlotted)."
|
|
952
|
+
"description": "Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold, loadMoreTrigger and skeletonRows once for an injector. A grid that states one itself still wins. Its words and its locale come from the language in force (provideSlotted)."
|
|
938
953
|
},
|
|
939
954
|
{
|
|
940
955
|
"name": "@slotted/core/grid",
|
|
@@ -1097,7 +1112,9 @@
|
|
|
1097
1112
|
"--slotted-control-font-size-md",
|
|
1098
1113
|
"--slotted-control-font-size-sm",
|
|
1099
1114
|
"--slotted-control-gap-md",
|
|
1115
|
+
"--slotted-control-height-lg",
|
|
1100
1116
|
"--slotted-control-height-md",
|
|
1117
|
+
"--slotted-control-height-sm",
|
|
1101
1118
|
"--slotted-control-icon-size-md",
|
|
1102
1119
|
"--slotted-control-inner-size-sm",
|
|
1103
1120
|
"--slotted-control-invalid-edge-width",
|
|
@@ -1416,7 +1433,7 @@
|
|
|
1416
1433
|
{
|
|
1417
1434
|
"id": "load-more",
|
|
1418
1435
|
"title": "Load more",
|
|
1419
|
-
"note": "With an unknown total the footer states the range without one
|
|
1436
|
+
"note": "With an unknown total the footer states the range without one. loadMore is emitted on its own as the reader nears the end, and the footer says a page is loading; it offers a control only to retry a page that failed (loadMoreFailed). loadMoreTrigger=\"button\" asks only from a Load more control, \"both\" does the two.",
|
|
1420
1437
|
"language": "html",
|
|
1421
1438
|
"source": "<sl-data-grid\n rowKey=\"id\"\n [rows]=\"rows()\"\n [columns]=\"columns\"\n [hasMore]=\"hasMore()\"\n [query]=\"{ ...emptyQuery(), page: { cursor: cursor(), size: 50 } }\"\n (loadMore)=\"fetchMore()\"\n/>\n",
|
|
1422
1439
|
"verdict": "excerpt"
|
|
@@ -1424,7 +1441,7 @@
|
|
|
1424
1441
|
{
|
|
1425
1442
|
"id": "empty-and-loading",
|
|
1426
1443
|
"title": "Empty, no results, error, loading",
|
|
1427
|
-
"note": "Three states a body can hold instead of rows, each a result-state: nothing at all; nothing after the filter, with Clear filters; and a failed load, with Try again. A first load draws skeleton rows; a refresh over rows already shown dims them and moves nothing.",
|
|
1444
|
+
"note": "Three states a body can hold instead of rows, each a result-state: nothing at all; nothing after the filter, with Clear filters; and a failed load, with Try again. A first load draws skeleton rows; a refresh over rows already shown dims them and moves nothing. Zero rows is an answer too: once the grid has drawn the empty state, loading keeps it and draws no skeleton, and loading=\"initial\" asks for the skeleton anyway.",
|
|
1428
1445
|
"language": "html",
|
|
1429
1446
|
"source": "<sl-data-grid\n rowKey=\"id\"\n [rows]=\"rows()\"\n [columns]=\"columns\"\n [loading]=\"loading()\"\n [error]=\"error()\"\n (retry)=\"reload()\"\n/>\n",
|
|
1430
1447
|
"verdict": "excerpt"
|
package/docs/data-grid.md
CHANGED
|
@@ -230,7 +230,7 @@ See [data-grid.props.md](./data-grid.props.md).
|
|
|
230
230
|
|
|
231
231
|
## Tokens
|
|
232
232
|
|
|
233
|
-
`--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-md`, `--slotted-control-height-md`, `--slotted-control-icon-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-data-grid-band-surface`, `--slotted-data-grid-block-size`, `--slotted-data-grid-border-color`, `--slotted-data-grid-border-color-strong`, `--slotted-data-grid-border-width`, `--slotted-data-grid-cell-padding-block`, `--slotted-data-grid-cell-padding-inline`, `--slotted-data-grid-changed-surface`, `--slotted-data-grid-color`, `--slotted-data-grid-color-muted`, `--slotted-data-grid-control-radius`, `--slotted-data-grid-cursor-color`, `--slotted-data-grid-filter-operator-size`, `--slotted-data-grid-filter-panel-size`, `--slotted-data-grid-filter-panel-size-date`, `--slotted-data-grid-filter-panel-size-datetime`, `--slotted-data-grid-font-family`, `--slotted-data-grid-font-size`, `--slotted-data-grid-gap`, `--slotted-data-grid-head-block-size`, `--slotted-data-grid-header-surface`, `--slotted-data-grid-header-surface-hover`, `--slotted-data-grid-icon-size`, `--slotted-data-grid-indent`, `--slotted-data-grid-pin-shadow-color`, `--slotted-data-grid-pin-shadow-size`, `--slotted-data-grid-radius`, `--slotted-data-grid-range-surface`, `--slotted-data-grid-row-block-size`, `--slotted-data-grid-row-color-selected`, `--slotted-data-grid-row-max-block-size`, `--slotted-data-grid-row-surface-hover`, `--slotted-data-grid-row-surface-selected`, `--slotted-data-grid-row-surface-selected-hover`, `--slotted-data-grid-row-surface-stripe`, `--slotted-data-grid-shadow`, `--slotted-data-grid-sticky-offset`, `--slotted-data-grid-sticky-offset-end`, `--slotted-data-grid-surface`, `--slotted-disabled-foreground`, `--slotted-duration-long`, `--slotted-duration-loop`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-popover-gap`, `--slotted-popover-padding-block-sm`, `--slotted-popover-padding-inline-sm`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-8`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
|
|
233
|
+
`--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-md`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-data-grid-band-surface`, `--slotted-data-grid-block-size`, `--slotted-data-grid-border-color`, `--slotted-data-grid-border-color-strong`, `--slotted-data-grid-border-width`, `--slotted-data-grid-cell-padding-block`, `--slotted-data-grid-cell-padding-inline`, `--slotted-data-grid-changed-surface`, `--slotted-data-grid-color`, `--slotted-data-grid-color-muted`, `--slotted-data-grid-control-radius`, `--slotted-data-grid-cursor-color`, `--slotted-data-grid-filter-operator-size`, `--slotted-data-grid-filter-panel-size`, `--slotted-data-grid-filter-panel-size-date`, `--slotted-data-grid-filter-panel-size-datetime`, `--slotted-data-grid-font-family`, `--slotted-data-grid-font-size`, `--slotted-data-grid-gap`, `--slotted-data-grid-head-block-size`, `--slotted-data-grid-header-surface`, `--slotted-data-grid-header-surface-hover`, `--slotted-data-grid-icon-size`, `--slotted-data-grid-indent`, `--slotted-data-grid-pin-shadow-color`, `--slotted-data-grid-pin-shadow-size`, `--slotted-data-grid-radius`, `--slotted-data-grid-range-surface`, `--slotted-data-grid-row-block-size`, `--slotted-data-grid-row-color-selected`, `--slotted-data-grid-row-max-block-size`, `--slotted-data-grid-row-surface-hover`, `--slotted-data-grid-row-surface-selected`, `--slotted-data-grid-row-surface-selected-hover`, `--slotted-data-grid-row-surface-stripe`, `--slotted-data-grid-shadow`, `--slotted-data-grid-sticky-offset`, `--slotted-data-grid-sticky-offset-end`, `--slotted-data-grid-surface`, `--slotted-disabled-foreground`, `--slotted-duration-long`, `--slotted-duration-loop`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-popover-gap`, `--slotted-popover-padding-block-sm`, `--slotted-popover-padding-inline-sm`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-8`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
|
|
234
234
|
|
|
235
235
|
## Examples
|
|
236
236
|
|
package/docs/data-grid.props.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| --- | --- | --- | --- | --- |
|
|
10
10
|
| `rows` | `readonly Row[]` | — | sl-data-grid | The records; the grid never mutates them. Left out when a dataSource answers for them. |
|
|
11
11
|
| `rowKey` | `keyof Row \| (row) => string` | — | sl-data-grid | A field name or a function: the key every state model names a row by. |
|
|
12
|
-
| `columns` | `GridColumn<Row>[]` | — | sl-data-grid | The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, options, aggregate, validate, parse. |
|
|
12
|
+
| `columns` | `GridColumn<Row>[]` | — | sl-data-grid | The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, pinned (end by default for kind actions), options, aggregate, validate, parse. |
|
|
13
13
|
| `description` | `string` | — | GridColumn | What the column is: the header’s accessible description, the caption atop its menu and the first line of its help popover. |
|
|
14
14
|
| `priority` | `number` | — | GridColumn | The lower, the longer the column stays when the frame is too narrow. A column without one leaves before every numbered one; the identity column and an actions column never leave. |
|
|
15
15
|
| `popin` | `boolean` | true | GridColumn | Whether a column with no room moves into the row’s pop-in; false hides it instead. |
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
| `columnGroups` | `GridColumnGroup[]` | — | sl-data-grid | Headings spanning columns, drawn as a row above the names. |
|
|
19
19
|
| `mode` | `'client' \| 'server'` | inferred | sl-data-grid | client applies the query to rows; server draws rows as given. server when totalCount or hasMore is present. |
|
|
20
20
|
| `totalCount` | `number` | — | sl-data-grid | The whole set’s size in server mode; aria-rowcount and the range read it. |
|
|
21
|
-
| `hasMore` | `boolean` | — | sl-data-grid | Whether a page past this one exists when the total is unknown;
|
|
22
|
-
| `loading` | `boolean` | false | sl-data-grid | Skeleton rows with no
|
|
21
|
+
| `hasMore` | `boolean` | — | sl-data-grid | Whether a page past this one exists when the total is unknown; loadMoreTrigger decides what asks for it. |
|
|
22
|
+
| `loading` | `boolean \| 'initial' \| 'refresh'` | false | sl-data-grid | Skeleton rows with no answer to keep; aria-busy over an answer already drawn — rows, which dim, or the empty state, which stays. true is initial until the grid has drawn an answer, and refresh after; rows emptied while a load starts wait in the skeleton. |
|
|
23
23
|
| `error` | `string \| null` | — | sl-data-grid | The message of a failed load; draws the error state with Try again, which emits retry. |
|
|
24
24
|
| `disabledKeys` | `string[]` | — | sl-data-grid | Rows that are neither selectable nor editable, drawn with data-disabled. |
|
|
25
25
|
| `query` | `model<GridQuery>` | emptyQuery() | sl-data-grid | sort, filter, search, page and group in one object, two-way. An unbound grid starts from the model’s own initial value. |
|
|
@@ -48,6 +48,8 @@
|
|
|
48
48
|
| `rowsReorder` | `{ key, from, to, reason, event }` | — | sl-data-grid | Where a row goes in rows: from, and the index it takes once moved. The consumer moves it. |
|
|
49
49
|
| `highlightChanges` | `boolean \| number` | false | sl-data-grid | Marks a mounted cell whose value changed between two rows, for the stated milliseconds (true is 1200). |
|
|
50
50
|
| `loadMoreThreshold` | `number` | 20 | sl-data-grid | Rows left below the window before loadMore is emitted. |
|
|
51
|
+
| `loadMoreTrigger` | `'scroll' \| 'button' \| 'both'` | scroll | sl-data-grid | What asks for the next page: nearing the end, with a loading status in the footer; a Load more control; or both. |
|
|
52
|
+
| `loadMoreFailed` | `boolean` | false | sl-data-grid | The last page asked for failed: the automatic request stops and the footer offers Try again. |
|
|
51
53
|
| `skeletonRows` | `number` | 8 | sl-data-grid | Rows the first load draws. |
|
|
52
54
|
| `pageSizes` | `number[]` | 25,50,100 | sl-data-grid | The sizes a page-size control in the footer offers, read through injectDataGridDefaults. |
|
|
53
55
|
| `variant` | `'plain' \| 'ruled' \| 'framed'` | ruled | sl-data-grid | No rules, rules between rows, or the border and the radius. |
|
|
@@ -71,7 +73,7 @@
|
|
|
71
73
|
| `align` | `'start' \| 'center' \| 'end'` | start | GridColumn | Where the value sits; a number column sits at the end unless told otherwise. |
|
|
72
74
|
| `numeric` | `boolean` | false | GridColumn | Tabular figures and end alignment; true for kind number. |
|
|
73
75
|
| `text` | `'wrap' \| 'truncate' \| 'nowrap'` | truncate | GridColumn | What a long value does. |
|
|
74
|
-
| `provideDataGridDefaults` | `provider` | — | Application | Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold and skeletonRows once for an injector. A grid that states one itself still wins. Its words and its locale come from the language in force (provideSlotted). |
|
|
76
|
+
| `provideDataGridDefaults` | `provider` | — | Application | Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold, loadMoreTrigger and skeletonRows once for an injector. A grid that states one itself still wins. Its words and its locale come from the language in force (provideSlotted). |
|
|
75
77
|
| `@slotted/core/grid` | `module` | — | Application | applyQuery, emptyQuery, withSortPress, withColumnFilter, withSearch, withPageIndex, withGroup, toGridParams, fromGridParams, normalizeColumnState, serializeColumnState, parseColumnState: the engine the grid runs on, for a server mock, a URL and a saved view. |
|
|
76
78
|
| `slDataGridCell, slDataGridEditor, slDataGridHeader, slDataGridFilter, slDataGridColumnHelp, slDataGridDetail, slDataGridGroup, slDataGridEmpty` | `ng-template directives` | — | sl-data-grid | Every surface a consumer replaces, projected as content; the four column-scoped ones name a column or serve every column, and slDataGridColumnHelp names one column and draws its help button. row, cell, head and body are fixed: the layout and the roles are theirs. |
|
|
77
79
|
| `slDataGridFooter` | `attribute` | — | sl-data-grid | Pagination, a page-size select, a count: the consumer’s own controls projected into the bar the grid draws. |
|
package/docs/data-list.json
CHANGED
package/docs/data-list.md
CHANGED
|
@@ -131,7 +131,7 @@ Excerpt — not a complete module
|
|
|
131
131
|
|
|
132
132
|
## Tokens
|
|
133
133
|
|
|
134
|
-
`--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-8`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`
|
|
134
|
+
`--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-8`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`, `--slotted-z-index-sticky`
|
|
135
135
|
|
|
136
136
|
## Examples
|
|
137
137
|
|
package/docs/date-field.json
CHANGED
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"type": "PlainDate | null",
|
|
128
128
|
"defaultValue": "—",
|
|
129
129
|
"appliesTo": "SlDateField",
|
|
130
|
-
"description": "The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it."
|
|
130
|
+
"description": "The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, and toISODate(date) returns 'YYYY-MM-DD'."
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"name": "defaultValue",
|
|
@@ -136,6 +136,13 @@
|
|
|
136
136
|
"appliesTo": "SlDateField",
|
|
137
137
|
"description": "The date the control starts from when nobody else writes one. Read once, in ngOnInit, because Angular binds inputs after it constructs a component."
|
|
138
138
|
},
|
|
139
|
+
{
|
|
140
|
+
"name": "granularity",
|
|
141
|
+
"type": "'day' | 'month'",
|
|
142
|
+
"defaultValue": "day",
|
|
143
|
+
"appliesTo": "SlDateField",
|
|
144
|
+
"description": "What the control holds. month shows the month and the year segments in the locale’s order, takes the first day of the month as its value, and submits YYYY-MM through name."
|
|
145
|
+
},
|
|
139
146
|
{
|
|
140
147
|
"name": "min",
|
|
141
148
|
"type": "PlainDate",
|
|
@@ -313,6 +320,7 @@
|
|
|
313
320
|
"--slotted-border-subtle",
|
|
314
321
|
"--slotted-control-border-color",
|
|
315
322
|
"--slotted-control-border-width",
|
|
323
|
+
"--slotted-control-focus-ring-offset",
|
|
316
324
|
"--slotted-control-font-family",
|
|
317
325
|
"--slotted-control-font-size-lg",
|
|
318
326
|
"--slotted-control-font-size-md",
|
package/docs/date-field.md
CHANGED
|
@@ -40,8 +40,9 @@ Excerpt — not a complete module
|
|
|
40
40
|
|
|
41
41
|
| Name | Type | Default | Applies to | Description |
|
|
42
42
|
| --- | --- | --- | --- | --- |
|
|
43
|
-
| `value` | `PlainDate \| null` | — | SlDateField | The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. |
|
|
43
|
+
| `value` | `PlainDate \| null` | — | SlDateField | The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, and toISODate(date) returns 'YYYY-MM-DD'. |
|
|
44
44
|
| `defaultValue` | `PlainDate \| null` | — | SlDateField | The date the control starts from when nobody else writes one. Read once, in ngOnInit, because Angular binds inputs after it constructs a component. |
|
|
45
|
+
| `granularity` | `'day' \| 'month'` | day | SlDateField | What the control holds. month shows the month and the year segments in the locale’s order, takes the first day of the month as its value, and submits YYYY-MM through name. |
|
|
45
46
|
| `min` | `PlainDate` | — | SlDateField | The earliest date the control accepts. Reported through each segment’s aria-valuemin, and as the slottedDateRange form error. |
|
|
46
47
|
| `max` | `PlainDate` | — | SlDateField | The latest date the control accepts, on the same terms as min. |
|
|
47
48
|
| `isDateUnavailable` | `(date: PlainDate) => boolean` | — | SlDateField | Refuses particular dates — a weekend, a holiday, a day already booked. Reported as the slottedDateUnavailable form error. |
|
|
@@ -89,7 +90,7 @@ Excerpt — not a complete module
|
|
|
89
90
|
|
|
90
91
|
## Tokens
|
|
91
92
|
|
|
92
|
-
`--slotted-border-subtle`, `--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-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-date-field-action-active-background`, `--slotted-date-field-action-color`, `--slotted-date-field-action-hover-background`, `--slotted-date-field-action-size`, `--slotted-date-field-adornment-color`, `--slotted-date-field-background`, `--slotted-date-field-border-color`, `--slotted-date-field-color`, `--slotted-date-field-disabled-background`, `--slotted-date-field-disabled-border-color`, `--slotted-date-field-disabled-color`, `--slotted-date-field-hover-border-color`, `--slotted-date-field-icon-size-min`, `--slotted-date-field-invalid-border-color`, `--slotted-date-field-invalid-edge-width`, `--slotted-date-field-invalid-focus-ring-color`, `--slotted-date-field-literal-color`, `--slotted-date-field-placeholder-color`, `--slotted-date-field-plain-hover-background`, `--slotted-date-field-radius`, `--slotted-date-field-readonly-background`, `--slotted-date-field-segment-focus-background`, `--slotted-date-field-segment-focus-color`, `--slotted-date-field-segment-min-inline-size`, `--slotted-date-field-segment-padding-inline`, `--slotted-date-field-segment-radius`, `--slotted-date-field-shadow`, `--slotted-date-field-subtle-background`, `--slotted-date-field-subtle-border-color`, `--slotted-date-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
|
|
93
|
+
`--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-focus-ring-offset`, `--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-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-date-field-action-active-background`, `--slotted-date-field-action-color`, `--slotted-date-field-action-hover-background`, `--slotted-date-field-action-size`, `--slotted-date-field-adornment-color`, `--slotted-date-field-background`, `--slotted-date-field-border-color`, `--slotted-date-field-color`, `--slotted-date-field-disabled-background`, `--slotted-date-field-disabled-border-color`, `--slotted-date-field-disabled-color`, `--slotted-date-field-hover-border-color`, `--slotted-date-field-icon-size-min`, `--slotted-date-field-invalid-border-color`, `--slotted-date-field-invalid-edge-width`, `--slotted-date-field-invalid-focus-ring-color`, `--slotted-date-field-literal-color`, `--slotted-date-field-placeholder-color`, `--slotted-date-field-plain-hover-background`, `--slotted-date-field-radius`, `--slotted-date-field-readonly-background`, `--slotted-date-field-segment-focus-background`, `--slotted-date-field-segment-focus-color`, `--slotted-date-field-segment-min-inline-size`, `--slotted-date-field-segment-padding-inline`, `--slotted-date-field-segment-radius`, `--slotted-date-field-shadow`, `--slotted-date-field-subtle-background`, `--slotted-date-field-subtle-border-color`, `--slotted-date-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
|
|
93
94
|
|
|
94
95
|
## Examples
|
|
95
96
|
|
|
@@ -877,6 +877,42 @@ export class DatePickerInvoiceDue {
|
|
|
877
877
|
}
|
|
878
878
|
```
|
|
879
879
|
|
|
880
|
+
### iso-date.ts
|
|
881
|
+
|
|
882
|
+
Example
|
|
883
|
+
|
|
884
|
+
```ts
|
|
885
|
+
import { Component, computed, signal } from '@angular/core';
|
|
886
|
+
import type { CalendarValue } from '@slotted/angular/calendar';
|
|
887
|
+
import { SlDatePicker } from '@slotted/angular/date-picker';
|
|
888
|
+
import { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';
|
|
889
|
+
import { isPlainDate, parseISODate, toISODate } from '@slotted/core/date';
|
|
890
|
+
|
|
891
|
+
@Component({
|
|
892
|
+
selector: 'app-date-picker-iso-date',
|
|
893
|
+
imports: [SlDatePicker, SlField, SlFieldDescription, SlFieldLabel],
|
|
894
|
+
template: `
|
|
895
|
+
<div slField>
|
|
896
|
+
<label slFieldLabel>Statement date</label>
|
|
897
|
+
<div slDatePicker [value]="date()" (valueChange)="set($event.value)"></div>
|
|
898
|
+
<span slFieldDescription>{{ summary() }}</span>
|
|
899
|
+
</div>
|
|
900
|
+
`,
|
|
901
|
+
})
|
|
902
|
+
export class DatePickerIsoDate {
|
|
903
|
+
/* The API carries the date as text; the picker holds a PlainDate. */
|
|
904
|
+
protected readonly iso = signal('2026-10-19');
|
|
905
|
+
protected readonly date = computed(() => parseISODate(this.iso()));
|
|
906
|
+
protected readonly summary = computed(() =>
|
|
907
|
+
this.iso() === '' ? 'No date sent.' : `The API receives ${this.iso()}.`,
|
|
908
|
+
);
|
|
909
|
+
|
|
910
|
+
protected set(value: CalendarValue): void {
|
|
911
|
+
this.iso.set(isPlainDate(value) ? toISODate(value) : '');
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
```
|
|
915
|
+
|
|
880
916
|
### locale.ts
|
|
881
917
|
|
|
882
918
|
Example
|
package/docs/date-picker.json
CHANGED
|
@@ -134,14 +134,14 @@
|
|
|
134
134
|
"api": [
|
|
135
135
|
{
|
|
136
136
|
"name": "value",
|
|
137
|
-
"type": "PlainDate | DateRange | PlainDate[] | null",
|
|
137
|
+
"type": "PlainDate | DateRange | PlainDate[] | PlainYearMonth | null",
|
|
138
138
|
"defaultValue": "—",
|
|
139
139
|
"appliesTo": "SlDatePicker",
|
|
140
|
-
"description": "The selected value, whose shape follows selectionMode. Binding it makes the value controlled."
|
|
140
|
+
"description": "The selected value, whose shape follows selectionMode. Binding it makes the value controlled. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, toISODate(date) returns 'YYYY-MM-DD', and isPlainDate(value) narrows the CalendarValue (valueChange) reports."
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"name": "defaultValue",
|
|
144
|
-
"type": "PlainDate | DateRange | PlainDate[] | null",
|
|
144
|
+
"type": "PlainDate | DateRange | PlainDate[] | PlainYearMonth | null",
|
|
145
145
|
"defaultValue": "—",
|
|
146
146
|
"appliesTo": "SlDatePicker",
|
|
147
147
|
"description": "The starting value of an uncontrolled date picker. Read once, when the date picker initializes."
|
|
@@ -162,14 +162,14 @@
|
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
"name": "min",
|
|
165
|
-
"type": "PlainDate",
|
|
165
|
+
"type": "PlainDate | PlainYearMonth",
|
|
166
166
|
"defaultValue": "—",
|
|
167
167
|
"appliesTo": "SlDatePicker",
|
|
168
168
|
"description": "The earliest date the field and the calendar accept. Earlier days are disabled in the calendar, an earlier typed date marks the date picker invalid, and a form reports slottedDateRange."
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"name": "max",
|
|
172
|
-
"type": "PlainDate",
|
|
172
|
+
"type": "PlainDate | PlainYearMonth",
|
|
173
173
|
"defaultValue": "—",
|
|
174
174
|
"appliesTo": "SlDatePicker",
|
|
175
175
|
"description": "The latest date the field and the calendar accept. Later days are disabled in the calendar, a later typed date marks the date picker invalid, and a form reports slottedDateRange."
|
|
@@ -181,6 +181,13 @@
|
|
|
181
181
|
"appliesTo": "SlDatePicker",
|
|
182
182
|
"description": "Returns true for a date the reader cannot choose. The calendar disables it, a typed unavailable date marks the date picker invalid, and a form reports slottedDateUnavailable."
|
|
183
183
|
},
|
|
184
|
+
{
|
|
185
|
+
"name": "granularity",
|
|
186
|
+
"type": "'day' | 'month'",
|
|
187
|
+
"defaultValue": "day",
|
|
188
|
+
"appliesTo": "SlDatePicker",
|
|
189
|
+
"description": "What a choice is. month opens the calendar on the months of a year and chooses a month cell; the field shows the month and the year segments; value, defaultValue, min and max are PlainYearMonth from @slotted/core/date ({ year, month }), (valueChange) reports one, and name submits YYYY-MM. parseISOYearMonth and toISOYearMonth convert to and from that text. selectionMode, months, isDateUnavailable and the week inputs do not apply."
|
|
190
|
+
},
|
|
184
191
|
{
|
|
185
192
|
"name": "selectionMode",
|
|
186
193
|
"type": "'single' | 'range' | 'multiple'",
|
|
@@ -636,6 +643,14 @@
|
|
|
636
643
|
"source": "import { Component, computed, signal } from '@angular/core';\nimport type { CalendarValue } from '@slotted/angular/calendar';\nimport { SlDatePicker } from '@slotted/angular/date-picker';\nimport { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';\nimport { SlSelect, SlSelectItem, type SelectSelection } from '@slotted/angular/select';\nimport { SlStack } from '@slotted/angular/stack';\nimport {\n addDays,\n createDateFormat,\n isPlainDate,\n plainDate,\n type PlainDate,\n} from '@slotted/core/date';\n\nconst TERMS = [\n { value: 'receipt', label: 'Due on receipt', days: 0 },\n { value: 'net-15', label: 'Net 15', days: 15 },\n { value: 'net-30', label: 'Net 30', days: 30 },\n { value: 'net-60', label: 'Net 60', days: 60 },\n];\nconst words = createDateFormat({ locale: 'en-US' });\n\n@Component({\n selector: 'app-date-picker-invoice-due',\n imports: [\n SlDatePicker,\n SlField,\n SlFieldDescription,\n SlFieldLabel,\n SlSelect,\n SlSelectItem,\n SlStack,\n ],\n template: `\n <div slStack [gap]=\"5\">\n <div slField required>\n <label slFieldLabel>Invoice date</label>\n <div slDatePicker [value]=\"issued()\" (valueChange)=\"setIssued($event.value)\"></div>\n </div>\n <div slField>\n <label slFieldLabel>Payment terms</label>\n <sl-select [items]=\"terms\" [(value)]=\"term\">\n @for (option of terms; track option.value) {\n <sl-select-item [value]=\"option.value\">{{ option.label }}</sl-select-item>\n }\n </sl-select>\n </div>\n <div slField readOnly>\n <label slFieldLabel>Due date</label>\n <div slDatePicker [value]=\"due()\"></div>\n <span slFieldDescription>{{ summary() }}</span>\n </div>\n </div>\n `,\n})\nexport class DatePickerInvoiceDue {\n protected readonly terms = TERMS;\n protected readonly issued = signal<PlainDate | null>(plainDate(2026, 9, 30));\n protected readonly term = signal<SelectSelection>('net-30');\n protected readonly due = computed(() => {\n const issued = this.issued();\n const days = TERMS.find((option) => option.value === this.term())?.days ?? 0;\n return issued === null ? null : addDays(issued, days);\n });\n protected readonly summary = computed(() => {\n const due = this.due();\n return due === null ? 'Set the invoice date first.' : `Payment is due ${words.describe(due)}.`;\n });\n\n protected setIssued(value: CalendarValue): void {\n this.issued.set(isPlainDate(value) ? value : null);\n }\n}\n",
|
|
637
644
|
"verdict": "example"
|
|
638
645
|
},
|
|
646
|
+
{
|
|
647
|
+
"id": "iso-date",
|
|
648
|
+
"title": "iso-date.ts",
|
|
649
|
+
"note": null,
|
|
650
|
+
"language": "ts",
|
|
651
|
+
"source": "import { Component, computed, signal } from '@angular/core';\nimport type { CalendarValue } from '@slotted/angular/calendar';\nimport { SlDatePicker } from '@slotted/angular/date-picker';\nimport { SlField, SlFieldDescription, SlFieldLabel } from '@slotted/angular/field';\nimport { isPlainDate, parseISODate, toISODate } from '@slotted/core/date';\n\n@Component({\n selector: 'app-date-picker-iso-date',\n imports: [SlDatePicker, SlField, SlFieldDescription, SlFieldLabel],\n template: `\n <div slField>\n <label slFieldLabel>Statement date</label>\n <div slDatePicker [value]=\"date()\" (valueChange)=\"set($event.value)\"></div>\n <span slFieldDescription>{{ summary() }}</span>\n </div>\n `,\n})\nexport class DatePickerIsoDate {\n /* The API carries the date as text; the picker holds a PlainDate. */\n protected readonly iso = signal('2026-10-19');\n protected readonly date = computed(() => parseISODate(this.iso()));\n protected readonly summary = computed(() =>\n this.iso() === '' ? 'No date sent.' : `The API receives ${this.iso()}.`,\n );\n\n protected set(value: CalendarValue): void {\n this.iso.set(isPlainDate(value) ? toISODate(value) : '');\n }\n}\n",
|
|
652
|
+
"verdict": "example"
|
|
653
|
+
},
|
|
639
654
|
{
|
|
640
655
|
"id": "locale",
|
|
641
656
|
"title": "locale.ts",
|
package/docs/date-picker.md
CHANGED
|
@@ -50,13 +50,14 @@ export class DatePickerBasic {}
|
|
|
50
50
|
|
|
51
51
|
| Name | Type | Default | Applies to | Description |
|
|
52
52
|
| --- | --- | --- | --- | --- |
|
|
53
|
-
| `value` | `PlainDate \| DateRange \| PlainDate[] \| null` | — | SlDatePicker | The selected value, whose shape follows selectionMode. Binding it makes the value controlled. |
|
|
54
|
-
| `defaultValue` | `PlainDate \| DateRange \| PlainDate[] \| null` | — | SlDatePicker | The starting value of an uncontrolled date picker. Read once, when the date picker initializes. |
|
|
53
|
+
| `value` | `PlainDate \| DateRange \| PlainDate[] \| PlainYearMonth \| null` | — | SlDatePicker | The selected value, whose shape follows selectionMode. Binding it makes the value controlled. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, toISODate(date) returns 'YYYY-MM-DD', and isPlainDate(value) narrows the CalendarValue (valueChange) reports. |
|
|
54
|
+
| `defaultValue` | `PlainDate \| DateRange \| PlainDate[] \| PlainYearMonth \| null` | — | SlDatePicker | The starting value of an uncontrolled date picker. Read once, when the date picker initializes. |
|
|
55
55
|
| `open` | `boolean` | — | SlDatePicker | Whether the calendar is showing. Binding it makes the open state controlled. |
|
|
56
56
|
| `defaultOpen` | `boolean` | false | SlDatePicker | Whether the calendar shows when the date picker initializes. Focus does not move into it. |
|
|
57
|
-
| `min` | `PlainDate` | — | SlDatePicker | The earliest date the field and the calendar accept. Earlier days are disabled in the calendar, an earlier typed date marks the date picker invalid, and a form reports slottedDateRange. |
|
|
58
|
-
| `max` | `PlainDate` | — | SlDatePicker | The latest date the field and the calendar accept. Later days are disabled in the calendar, a later typed date marks the date picker invalid, and a form reports slottedDateRange. |
|
|
57
|
+
| `min` | `PlainDate \| PlainYearMonth` | — | SlDatePicker | The earliest date the field and the calendar accept. Earlier days are disabled in the calendar, an earlier typed date marks the date picker invalid, and a form reports slottedDateRange. |
|
|
58
|
+
| `max` | `PlainDate \| PlainYearMonth` | — | SlDatePicker | The latest date the field and the calendar accept. Later days are disabled in the calendar, a later typed date marks the date picker invalid, and a form reports slottedDateRange. |
|
|
59
59
|
| `isDateUnavailable` | `(date: PlainDate) => boolean` | — | SlDatePicker | Returns true for a date the reader cannot choose. The calendar disables it, a typed unavailable date marks the date picker invalid, and a form reports slottedDateUnavailable. |
|
|
60
|
+
| `granularity` | `'day' \| 'month'` | day | SlDatePicker | What a choice is. month opens the calendar on the months of a year and chooses a month cell; the field shows the month and the year segments; value, defaultValue, min and max are PlainYearMonth from @slotted/core/date ({ year, month }), (valueChange) reports one, and name submits YYYY-MM. parseISOYearMonth and toISOYearMonth convert to and from that text. selectionMode, months, isDateUnavailable and the week inputs do not apply. |
|
|
60
61
|
| `selectionMode` | `'single' \| 'range' \| 'multiple'` | single | SlDatePicker | How many dates the calendar selects, and so the shape of the value. The field shows a single date only; for a start and an end, use slDateRangePicker. |
|
|
61
62
|
| `months` | `number` | 1 | SlDatePicker | How many months the calendar draws side by side. |
|
|
62
63
|
| `defaultView` | `'day' \| 'month' \| 'year'` | day | SlDatePicker | The grid the calendar opens on. |
|
package/docs/datetime-field.json
CHANGED
|
@@ -421,6 +421,7 @@
|
|
|
421
421
|
"--slotted-border-subtle",
|
|
422
422
|
"--slotted-control-border-color",
|
|
423
423
|
"--slotted-control-border-width",
|
|
424
|
+
"--slotted-control-focus-ring-offset",
|
|
424
425
|
"--slotted-control-font-family",
|
|
425
426
|
"--slotted-control-font-size-lg",
|
|
426
427
|
"--slotted-control-font-size-md",
|
package/docs/datetime-field.md
CHANGED
|
@@ -105,7 +105,7 @@ Excerpt — not a complete module
|
|
|
105
105
|
|
|
106
106
|
## Tokens
|
|
107
107
|
|
|
108
|
-
`--slotted-border-subtle`, `--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-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-datetime-field-action-active-background`, `--slotted-datetime-field-action-color`, `--slotted-datetime-field-action-hover-background`, `--slotted-datetime-field-action-size`, `--slotted-datetime-field-adornment-color`, `--slotted-datetime-field-background`, `--slotted-datetime-field-border-color`, `--slotted-datetime-field-color`, `--slotted-datetime-field-disabled-background`, `--slotted-datetime-field-disabled-border-color`, `--slotted-datetime-field-disabled-color`, `--slotted-datetime-field-half-gap`, `--slotted-datetime-field-hover-border-color`, `--slotted-datetime-field-icon-size-min`, `--slotted-datetime-field-incomplete-border-color`, `--slotted-datetime-field-invalid-border-color`, `--slotted-datetime-field-invalid-edge-width`, `--slotted-datetime-field-invalid-focus-ring-color`, `--slotted-datetime-field-literal-color`, `--slotted-datetime-field-padding-block`, `--slotted-datetime-field-period-min-inline-size`, `--slotted-datetime-field-placeholder-color`, `--slotted-datetime-field-plain-hover-background`, `--slotted-datetime-field-preview-color`, `--slotted-datetime-field-preview-day-color`, `--slotted-datetime-field-radius`, `--slotted-datetime-field-readonly-background`, `--slotted-datetime-field-relative-border-color`, `--slotted-datetime-field-segment-focus-background`, `--slotted-datetime-field-segment-focus-color`, `--slotted-datetime-field-segment-min-inline-size`, `--slotted-datetime-field-segment-padding-inline`, `--slotted-datetime-field-segment-radius`, `--slotted-datetime-field-shadow`, `--slotted-datetime-field-subtle-background`, `--slotted-datetime-field-subtle-border-color`, `--slotted-datetime-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-semibold`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-warning-border`
|
|
108
|
+
`--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-focus-ring-offset`, `--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-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-datetime-field-action-active-background`, `--slotted-datetime-field-action-color`, `--slotted-datetime-field-action-hover-background`, `--slotted-datetime-field-action-size`, `--slotted-datetime-field-adornment-color`, `--slotted-datetime-field-background`, `--slotted-datetime-field-border-color`, `--slotted-datetime-field-color`, `--slotted-datetime-field-disabled-background`, `--slotted-datetime-field-disabled-border-color`, `--slotted-datetime-field-disabled-color`, `--slotted-datetime-field-half-gap`, `--slotted-datetime-field-hover-border-color`, `--slotted-datetime-field-icon-size-min`, `--slotted-datetime-field-incomplete-border-color`, `--slotted-datetime-field-invalid-border-color`, `--slotted-datetime-field-invalid-edge-width`, `--slotted-datetime-field-invalid-focus-ring-color`, `--slotted-datetime-field-literal-color`, `--slotted-datetime-field-padding-block`, `--slotted-datetime-field-period-min-inline-size`, `--slotted-datetime-field-placeholder-color`, `--slotted-datetime-field-plain-hover-background`, `--slotted-datetime-field-preview-color`, `--slotted-datetime-field-preview-day-color`, `--slotted-datetime-field-radius`, `--slotted-datetime-field-readonly-background`, `--slotted-datetime-field-relative-border-color`, `--slotted-datetime-field-segment-focus-background`, `--slotted-datetime-field-segment-focus-color`, `--slotted-datetime-field-segment-min-inline-size`, `--slotted-datetime-field-segment-padding-inline`, `--slotted-datetime-field-segment-radius`, `--slotted-datetime-field-shadow`, `--slotted-datetime-field-subtle-background`, `--slotted-datetime-field-subtle-border-color`, `--slotted-datetime-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-semibold`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-warning-border`
|
|
109
109
|
|
|
110
110
|
## Examples
|
|
111
111
|
|