@slotted/angular 0.1.0-beta.7 → 0.1.0-beta.9
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/docs/calendar.json +1 -1
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/currency-field.json +7 -0
- package/docs/currency-field.md +1 -0
- package/docs/data-grid.examples.md +1 -1
- package/docs/data-grid.json +21 -4
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +5 -3
- package/docs/dialog.examples.md +138 -136
- package/docs/dialog.json +8 -8
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/guidelines/async-feedback.md +10 -0
- package/docs/guidelines/composition.md +11 -7
- package/docs/guidelines/index.md +6 -1
- package/docs/guidelines/list-pages.md +30 -0
- package/docs/guidelines/overviews.md +10 -0
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/page-header.json +1 -1
- package/docs/skills/compose-screen/SKILL.md +22 -10
- package/docs/skills/review-screen/SKILL.md +6 -0
- package/docs/skills/waiting-states/SKILL.md +4 -1
- package/docs/tags-input.json +28 -2
- package/docs/tags-input.md +4 -1
- package/docs/timeline.json +131 -131
- package/docs/timeline.md +123 -123
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +21 -10
- 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 +17 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +52 -40
- 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 +9 -6
- 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 +53 -25
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +82 -30
- 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 +158 -64
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +4 -2
- 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 +13 -8
- 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 +77 -31
- 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 +98 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +127 -44
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +309 -104
- 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 +40 -14
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +19 -9
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +41 -16
- 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 +37 -23
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +111 -42
- 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 +61 -28
- 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 +38 -26
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +195 -67
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +259 -102
- 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 +104 -43
- 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 +10 -8
- 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 +14 -10
- 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 +41 -27
- 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 +133 -57
- 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 +107 -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 +72 -42
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +18 -9
- 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 +25 -18
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +122 -30
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +24 -18
- 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 +9 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +34 -15
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +15 -9
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +135 -53
- 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 +29 -13
- 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 +135 -72
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +31 -14
- 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 +28 -14
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +109 -40
- 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 +42 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +10 -6
- 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 +21 -10
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +8 -5
- 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 +46 -21
- 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 +1 -1
- package/types/slotted-angular-alert.d.ts.map +1 -1
- 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.map +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.map +1 -1
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +2 -0
- 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.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -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 +1 -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 +39 -13
- 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 +26 -2
- 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.map +1 -1
- package/types/slotted-angular-date-picker.d.ts.map +1 -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.map +1 -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 +2 -1
- 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.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- 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 +1 -1
- 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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +1 -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.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 +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +1 -1
- 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.map +1 -1
- 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.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.map +1 -1
- package/types/slotted-angular-tabs.d.ts.map +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-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +2 -2
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts.map +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.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-calendar.mjs","sources":["../../calendar/src/calendar-defaults.ts","../../calendar/src/calendar-selection.ts","../../calendar/src/calendar.ts","../../calendar/src/slotted-angular-calendar.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { PlainDate } from '@slotted/core/date';\n\n/** A run of days, either end of which may still be open while it is drawn. */\nexport interface DateRange {\n readonly start: PlainDate | null;\n readonly end: PlainDate | null;\n}\n\n/**\n * What the calendar holds, which depends on what it was asked to collect: one\n * date, a run of them, or a set.\n */\nexport type CalendarValue = PlainDate | DateRange | PlainDate[] | null;\n\n/** How many dates the reader may choose. */\nexport type CalendarSelectionMode = 'single' | 'range' | 'multiple';\n\n/** Which grid the calendar is showing. The heading walks up; Escape walks down. */\nexport type CalendarView = 'day' | 'month' | 'year';\n\n/**\n * The smallest thing the reader chooses. `month` makes the months of a year\n * the grid a choice is made in: the calendar opens there, a month cell is the\n * value, written as the first day of that month, and the day grid is never\n * shown.\n */\nexport type CalendarGranularity = 'day' | 'month';\n\n/** What happens to a day belonging to the month either side. */\nexport type CalendarOutsideDays = 'shown' | 'selectable' | 'hidden';\n\n/**\n * The calendar system the value is written in. One value today, and an axis\n * rather than a silence: a second calendar system is a second arithmetic, and\n * declaring the axis now is what keeps its arrival from being a contract break.\n */\nexport type CalendarCalendar = 'gregory';\n\nexport interface CalendarDefaults {\n calendar: CalendarCalendar;\n firstDayOfWeek: number | undefined;\n fixedWeeks: boolean;\n months: number;\n /**\n * Unset is not `shown`: a calendar showing one month draws the days either\n * side of it, and a calendar showing two would draw the same six days in\n * both grids. See the resolution in `calendar.ts`.\n */\n outsideDays: CalendarOutsideDays | undefined;\n timeZone: string | undefined;\n weekNumbers: boolean;\n}\n\nconst FALLBACK: CalendarDefaults = {\n calendar: 'gregory',\n firstDayOfWeek: undefined,\n fixedWeeks: false,\n months: 1,\n outsideDays: undefined,\n timeZone: undefined,\n weekNumbers: false,\n};\n\nexport const CALENDAR_DEFAULTS = new InjectionToken<CalendarDefaults>('slotted calendar defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once which day its weeks start on, which zone answers\n * \"today\" and whether its calendars keep a fixed six-row grid — rather than\n * repeating the same inputs on every instance. Its words and the locale that\n * writes its months come from the language in force (`provideSlotted`).\n *\n * `fixedWeeks` is the one worth setting where calendars live in popovers: a\n * surface that grows a row between one press of \"next\" and the next moves the\n * target the reader was aiming at.\n */\nexport function provideCalendarDefaults(defaults: Partial<CalendarDefaults>) {\n return {\n provide: CALENDAR_DEFAULTS,\n useFactory: (): CalendarDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a calendar renders as here, before it states anything of its own. */\nexport function injectCalendarDefaults(): CalendarDefaults {\n return inject(CALENDAR_DEFAULTS);\n}\n","/**\n * What choosing a date does to a value, in the three modes the family ships.\n *\n * It is separate from the component because none of it touches the DOM: a\n * range that is completed, a range that is restarted, and a set that a second\n * press takes a date back out of are all arithmetic over `PlainDate`, and the\n * two bindings must not each decide them.\n */\n\nimport { compareDate, isSameDate } from '@slotted/core/date';\nimport type { PlainDate } from '@slotted/core/date';\n\nimport type { CalendarSelectionMode, CalendarValue, DateRange } from './calendar-defaults';\n\nexport function isRange(value: CalendarValue): value is DateRange {\n return value !== null && !Array.isArray(value) && 'start' in value;\n}\n\nexport function asDates(value: CalendarValue): PlainDate[] {\n if (value === null) return [];\n if (Array.isArray(value)) return value;\n if (isRange(value)) return [value.start, value.end].filter((date) => date !== null);\n return [value];\n}\n\n/**\n * Whether a date is one of the two ends of a run, inside it, or none of the\n * three. A range with one end open has a start and no run, which is what the\n * calendar draws while the reader is choosing the second date.\n */\nexport function rangeStateOf(\n date: PlainDate,\n value: CalendarValue,\n): 'start' | 'end' | 'inside' | null {\n if (!isRange(value)) return null;\n const { start, end } = value;\n if (start !== null && isSameDate(date, start)) return 'start';\n if (end !== null && isSameDate(date, end)) return 'end';\n if (start === null || end === null) return null;\n return compareDate(date, start) > 0 && compareDate(date, end) < 0 ? 'inside' : null;\n}\n\nexport function isSelected(date: PlainDate, value: CalendarValue): boolean {\n if (isRange(value)) {\n const state = rangeStateOf(date, value);\n return state === 'start' || state === 'end';\n }\n return asDates(value).some((candidate) => isSameDate(candidate, date));\n}\n\n/**\n * The value a press produces.\n *\n * A range takes two presses and the second one may come first: a reader who\n * chooses the 11th and then the 7th means the 7th to the 11th, not a range\n * that runs backwards. A third press starts again, because a range that grew\n * on every press could never be narrowed.\n *\n * A set removes a date a second press lands on, which is the only way to take\n * one back out without a second control.\n */\nexport function nextValue(\n date: PlainDate,\n value: CalendarValue,\n mode: CalendarSelectionMode,\n): CalendarValue {\n if (mode === 'single') {\n return isSelected(date, value) ? null : date;\n }\n\n if (mode === 'multiple') {\n const held = asDates(value);\n const without = held.filter((candidate) => !isSameDate(candidate, date));\n if (without.length !== held.length) return without;\n return [...held, date].sort(compareDate);\n }\n\n const run = isRange(value) ? value : { start: null, end: null };\n if (run.start === null || run.end !== null) return { start: date, end: null };\n return compareDate(date, run.start) < 0\n ? { start: date, end: run.start }\n : { start: run.start, end: date };\n}\n\n/**\n * The run the grid draws while the reader is choosing the second end: from\n * the chosen start to the pending end — the day under the pointer, or the\n * focused day — ordered the way the second press will order it. `null` while\n * there is no open run, so a whole range and a single date preview nothing.\n */\nexport function previewRun(value: CalendarValue, pending: PlainDate | null): DateRange | null {\n if (pending === null || !isRange(value) || value.start === null || value.end !== null)\n return null;\n return compareDate(pending, value.start) < 0\n ? { start: pending, end: value.start }\n : { start: value.start, end: pending };\n}\n\n/** Value equality, which `Object.is` cannot give for a run or a set. */\nexport function isSameValue(a: CalendarValue, b: CalendarValue): boolean {\n if (isRange(a) || isRange(b)) {\n if (!isRange(a) || !isRange(b)) return false;\n return isSameDate(a.start, b.start) && isSameDate(a.end, b.end);\n }\n const left = asDates(a);\n const right = asDates(b);\n if (left.length !== right.length) return false;\n return left.every((date, index) => isSameDate(date, right[index] ?? null));\n}\n","import {\n addDays,\n clampDate,\n createDateFormat,\n endOfWeek,\n isDateInRange,\n isSameDate,\n monthGrid,\n plainDate,\n startOfWeek,\n stepMonth,\n stepYear,\n todayIn,\n visibleMonths,\n yearPage,\n} from '@slotted/core/date';\nimport type { CalendarDay, CalendarWeek, PlainDate } from '@slotted/core/date';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { calendarMessages, type CalendarMessages, type PartialMessages } from '@slotted/core/i18n';\n\nimport { injectCalendarDefaults } from './calendar-defaults';\nimport type {\n CalendarCalendar,\n CalendarGranularity,\n CalendarOutsideDays,\n CalendarSelectionMode,\n CalendarValue,\n CalendarView,\n} from './calendar-defaults';\nimport {\n isRange,\n isSameValue,\n isSelected,\n nextValue,\n previewRun,\n rangeStateOf,\n} from './calendar-selection';\n\n/** How many years one page of the year view holds. */\nconst YEAR_PAGE = 12;\n/** The heading needs an identifier every grid can point `aria-labelledby` at. */\nlet sequence = 0;\n\n/**\n * A month grid, and the two pages above it.\n *\n * **It is a real `table` with the `grid` role on it.** The APG's own note is\n * why nothing here writes `row`, `columnheader` or `gridcell`: those are\n * implied by `tr`, `th` and `td`, and writing them again would duplicate\n * semantics the platform already gives.\n *\n * **The date the reader is on and the date the reader has chosen are two\n * values**, and each has a model of its own — a product that pages a calendar\n * from outside it has nowhere else to say so.\n *\n * **A date the predicate refuses stays reachable.** It carries `aria-disabled`\n * rather than being taken out of the grid, so a reader can arrow onto it, hear\n * why it is out, and arrow past it.\n */\n@Component({\n selector: '[slCalendar]',\n standalone: true,\n exportAs: 'slCalendar',\n imports: [SlGlyph, SlIcon],\n template: `<div data-part=\"header\">\n <button\n data-part=\"previous\"\n type=\"button\"\n [attr.aria-label]=\"t('previous')\"\n [disabled]=\"!editable()\"\n (click)=\"turnPage(-1, $event)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <!--\n The heading is a live region: paging with a key changes nothing that\n focus lands on, so without this nothing announces the new month.\n -->\n <button\n data-part=\"heading\"\n type=\"button\"\n aria-live=\"polite\"\n [attr.id]=\"headingId\"\n [disabled]=\"!editable() || currentView() === 'year'\"\n (click)=\"walkUp()\"\n >\n {{ heading() }}\n @if (currentView() !== 'year') {\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n }\n </button>\n <button\n data-part=\"next\"\n type=\"button\"\n [attr.aria-label]=\"t('next')\"\n [disabled]=\"!editable()\"\n (click)=\"turnPage(1, $event)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n </div>\n\n @switch (currentView()) {\n @case ('day') {\n <div data-part=\"grids\">\n @for (month of shownMonths(); track month.year * 12 + month.month) {\n <table data-part=\"grid\" role=\"grid\" [attr.aria-labelledby]=\"headingId\">\n <caption data-part=\"grid-caption\">\n {{\n captionOf(month)\n }}\n </caption>\n <thead>\n <tr data-part=\"week-headers\">\n @if (resolvedWeekNumbers()) {\n <th data-part=\"week-number\" aria-hidden=\"true\"></th>\n }\n @for (name of weekdayNarrow(); track $index) {\n <th data-part=\"week-header\" scope=\"col\" [attr.abbr]=\"weekdayLong()[$index]\">\n {{ name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (week of weeksOf(month); track week.weekNumber) {\n <tr data-part=\"week\">\n @if (resolvedWeekNumbers()) {\n <th data-part=\"week-number\" scope=\"row\">{{ week.weekNumber }}</th>\n }\n @for (\n day of week.days;\n track day.date.year * 400 + day.date.month * 32 + day.date.day\n ) {\n <!-- A hidden day is an empty cell and nothing else. It\n carried the marks of the date it stood for, so a\n range across a month boundary painted a band with no\n digits under it. -->\n <td\n data-part=\"cell\"\n [attr.data-outside-month]=\"day.outsideMonth ? '' : null\"\n [attr.data-unavailable]=\"\n !drawn(day) ? null : unavailable(day.date) ? '' : null\n \"\n [attr.data-selected]=\"!drawn(day) ? null : chosen(day.date) ? '' : null\"\n [attr.data-range-start]=\"\n drawn(day) && rangeState(day.date) === 'start' ? '' : null\n \"\n [attr.data-range-end]=\"\n drawn(day) && rangeState(day.date) === 'end' ? '' : null\n \"\n [attr.data-in-range]=\"\n drawn(day) && rangeState(day.date) === 'inside' ? '' : null\n \"\n [attr.data-preview]=\"drawn(day) && proposed(day.date) ? '' : null\"\n >\n @if (drawn(day)) {\n <span\n data-part=\"day\"\n role=\"button\"\n [attr.data-today]=\"isToday(day.date) ? '' : null\"\n [attr.aria-selected]=\"chosen(day.date) ? 'true' : null\"\n [attr.aria-disabled]=\"refused(day) ? 'true' : null\"\n [tabindex]=\"tabIndexOf(day.date)\"\n (click)=\"!refused(day) && select(day.date, 'pointer', $event)\"\n (pointerenter)=\"hovered.set(day.date)\"\n (pointerleave)=\"hovered.set(null)\"\n >\n {{ day.date.day }}\n </span>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n }\n @case ('month') {\n @if (monthly()) {\n <div data-part=\"months\">\n @for (name of monthNames(); track $index) {\n <button\n data-part=\"period\"\n type=\"button\"\n [attr.aria-label]=\"monthLabel($index + 1)\"\n [attr.data-selected]=\"heldMonth($index + 1) ? '' : null\"\n [attr.aria-selected]=\"heldMonth($index + 1) ? 'true' : null\"\n [attr.aria-disabled]=\"monthUnavailable($index + 1) ? 'true' : null\"\n [attr.data-unavailable]=\"monthUnavailable($index + 1) ? '' : null\"\n [attr.data-focused]=\"focused().month === $index + 1 ? '' : null\"\n [tabindex]=\"focused().month === $index + 1 ? 0 : -1\"\n (click)=\"selectMonth(focused().year, $index + 1, 'pointer', $event)\"\n >\n {{ name }}\n </button>\n }\n </div>\n } @else {\n <div data-part=\"months\">\n @for (name of monthNames(); track $index) {\n <button\n data-part=\"period\"\n type=\"button\"\n [attr.data-selected]=\"focused().month === $index + 1 ? '' : null\"\n [attr.aria-selected]=\"focused().month === $index + 1 ? 'true' : null\"\n (click)=\"pickMonth($index + 1, $event)\"\n >\n {{ name }}\n </button>\n }\n </div>\n }\n }\n @default {\n <div data-part=\"years\">\n @for (year of years(); track year) {\n <button\n data-part=\"period\"\n type=\"button\"\n [attr.data-selected]=\"focused().year === year ? '' : null\"\n [attr.aria-selected]=\"focused().year === year ? 'true' : null\"\n (click)=\"pickYear(year, $event)\"\n >\n {{ year }}\n </button>\n }\n </div>\n }\n }`,\n styleUrl: '../../../styles/src/calendar/calendar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'calendar',\n 'data-part': 'root',\n '[attr.data-view]': 'currentView()',\n '[attr.data-calendar]': 'resolvedCalendar()',\n '[attr.data-months]': 'resolvedMonths() > 1 ? resolvedMonths() : null',\n '[attr.data-week-numbers]': \"resolvedWeekNumbers() ? '' : null\",\n '[attr.data-disabled]': \"disabled() === true ? '' : null\",\n '[attr.data-readonly]': \"readOnly() === true ? '' : null\",\n '[attr.data-invalid]': \"invalid() === true ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCalendar implements OnInit {\n /** Present means the consumer owns the value. */\n readonly value = input<CalendarValue | undefined>(undefined);\n readonly defaultValue = input<CalendarValue | undefined>(undefined);\n /** The date the reader is on. Present means the consumer owns it. */\n readonly focusedDate = input<PlainDate | undefined>(undefined);\n readonly defaultFocusedDate = input<PlainDate | undefined>(undefined);\n\n readonly min = input<PlainDate | undefined>(undefined);\n readonly max = input<PlainDate | undefined>(undefined);\n readonly isDateUnavailable = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n readonly selectionMode = input<CalendarSelectionMode>('single');\n readonly months = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n /** Present means the consumer owns which grid is showing. */\n readonly view = input<CalendarView | undefined>(undefined);\n readonly defaultView = input<CalendarView | undefined>(undefined);\n /** What a choice is: a day, or a month of a year. Defaults to `day`. */\n readonly granularity = input<CalendarGranularity | undefined>(undefined);\n\n readonly weekNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly fixedWeeks = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly outsideDays = input<CalendarOutsideDays | undefined>(undefined);\n\n /** The locale that writes months and days. Unset, the language in force decides. */\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly firstDayOfWeek = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly calendar = input<CalendarCalendar | undefined>(undefined);\n\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * names of the previous and next triggers.\n */\n readonly messages = input<PartialMessages<CalendarMessages> | undefined>(undefined);\n\n readonly valueChange = output<ChangeRequest<CalendarValue>>();\n readonly focusedDateChange = output<ChangeRequest<PlainDate>>();\n readonly viewChange = output<CalendarView>();\n /**\n * The pending end of an open run: the day under the pointer, or the focused\n * day when no pointer is over the grid, and `null` while no run is open. A\n * fact the grid states rather than a value the consumer owns, which is why\n * it is an output and not a model — `date-range-picker` reads it to say how\n * long the run would be.\n */\n readonly previewChange = output<PlainDate | null>();\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly defaults = injectCalendarDefaults();\n private readonly appLocale = injectLocale();\n /** The family's words in the language in force, with this calendar's `messages` laid over them. */\n readonly t = injectMessages(calendarMessages, this.messages);\n\n protected readonly headingId = `sl-calendar-${String((sequence += 1))}`;\n\n private readonly ownValue = signal<CalendarValue>(null);\n private readonly ownFocused = signal<PlainDate>(plainDate(2026, 1, 1));\n private readonly ownView = signal<CalendarView>('day');\n /**\n * The first month on screen, which is **not** the month the reader is on.\n *\n * Drawing two months from the focused date meant that choosing a day in the\n * second one scrolled the pair: a reader looking at June and July who chose\n * 9 June was shown July and August, with half of what they had just chosen\n * off screen. The page moves only when the reader leaves it.\n */\n private readonly page = signal<{ year: number; month: number }>({ year: 2026, month: 1 });\n private readonly today = signal<PlainDate | null>(null);\n /** Focus is only moved into the DOM after a key, never on a render. */\n private restoreFocus = false;\n\n protected readonly held = computed(() => this.value() ?? this.ownValue());\n protected readonly focused = computed(() => this.focusedDate() ?? this.ownFocused());\n /**\n * Under `granularity=\"month\"` the months of a year are where a choice is\n * made: the calendar opens there and never goes below it, so a view asked\n * for as `day` is read as `month`.\n */\n protected readonly monthly = computed(() => this.granularity() === 'month');\n /** Which grid is showing. Public, so a template reaches it through `exportAs`. */\n readonly currentView = computed((): CalendarView => {\n const asked = this.view() ?? this.ownView();\n return this.monthly() && asked === 'day' ? 'month' : asked;\n });\n\n protected readonly resolvedMonths = computed(() =>\n Math.max(1, this.months() ?? this.defaults.months),\n );\n protected readonly resolvedWeekNumbers = computed(\n () => this.weekNumbers() ?? this.defaults.weekNumbers,\n );\n protected readonly resolvedFixedWeeks = computed(\n () => this.fixedWeeks() ?? this.defaults.fixedWeeks,\n );\n /**\n * One month draws the days either side of it, because a week that starts on\n * the 30th of the month before has to say what that cell is. Two months\n * cannot: September's grid ends with the first three days of October and\n * October's begins with the last four of September, so a range across the\n * boundary is painted twice and a reader sees an interval twice as long as\n * the one chosen. Every surveyed multi-month calendar hides them, and so\n * does this one — until the consumer says otherwise, on the instance or on\n * the provider.\n */\n protected readonly resolvedOutsideDays = computed(\n () =>\n this.outsideDays() ??\n this.defaults.outsideDays ??\n (this.resolvedMonths() > 1 ? 'hidden' : 'shown'),\n );\n protected readonly resolvedCalendar = computed(() => this.calendar() ?? this.defaults.calendar);\n protected readonly editable = computed(\n () => this.disabled() !== true && this.readOnly() !== true,\n );\n\n protected readonly format = computed(() =>\n createDateFormat({\n locale: this.locale() ?? this.appLocale(),\n firstDayOfWeek: this.firstDayOfWeek() ?? this.defaults.firstDayOfWeek,\n }),\n );\n\n protected readonly weekdayLong = computed(() => this.format().weekdayNames('long'));\n protected readonly weekdayNarrow = computed(() => this.format().weekdayNames('narrow'));\n protected readonly monthNames = computed(() => this.format().monthNames('short'));\n protected readonly years = computed(() => yearPage(this.focused().year, YEAR_PAGE));\n protected readonly shownMonths = computed(() =>\n visibleMonths(this.page(), this.resolvedMonths()),\n );\n\n protected readonly heading = computed(() => {\n const focused = this.focused();\n const format = this.format();\n if (this.currentView() === 'year') {\n const years = this.years();\n return `${String(years[0] ?? focused.year)} – ${String(years.at(-1) ?? focused.year)}`;\n }\n if (this.currentView() === 'month') return String(focused.year);\n\n const page = this.page();\n const start = plainDate(page.year, page.month, 1);\n if (this.resolvedMonths() === 1) return format.monthYear(start);\n const last = stepMonth(start, this.resolvedMonths() - 1).date;\n return `${format.monthYear(start, 'short')} – ${format.monthYear(last, 'short')}`;\n });\n\n constructor() {\n /**\n * The page follows the reader, and only when the reader has left it.\n * Written as an effect rather than inside the request, so a consumer who\n * owns `focusedDate` and moves it from outside is followed too.\n */\n /* The pending end, reported once per change and never while it is the\n same day: a pointer crossing a cell twice is one fact, not two. */\n let reported: PlainDate | null = null;\n effect(() => {\n const end = this.previewEnd();\n if (isSameDate(reported, end)) return;\n reported = end;\n this.previewChange.emit(end);\n });\n\n effect(() => {\n const focused = this.focused();\n const held = this.page();\n const span = this.resolvedMonths();\n const start = held.year * 12 + (held.month - 1);\n const wanted = focused.year * 12 + (focused.month - 1);\n if (wanted >= start && wanted < start + span) return;\n /* Outside the span: the page moves by whole pages, so a reader stepping\n past the edge lands where the arrows would have taken them. */\n const moved = start + Math.floor((wanted - start) / span) * span;\n this.page.set({ year: Math.floor(moved / 12), month: (moved % 12) + 1 });\n });\n }\n\n ngOnInit() {\n this.ownValue.set(this.defaultValue() ?? null);\n this.ownView.set(this.defaultView() ?? (this.monthly() ? 'month' : 'day'));\n this.today.set(todayIn(this.timeZone() ?? this.defaults.timeZone));\n const start = this.startingDate();\n this.ownFocused.set(start);\n this.page.set({ year: start.year, month: start.month });\n }\n\n /** Puts focus on the cell holding the roving tab stop. */\n focus() {\n this.element\n .querySelector<HTMLElement>(\n '[data-part=\"day\"][tabindex=\"0\"], [data-part=\"period\"][tabindex=\"0\"]',\n )\n ?.focus();\n }\n\n /** Moves the reader to a date, paging the grid to reach it. */\n focusDate(date: PlainDate) {\n this.requestFocused(date, 'programmatic', undefined);\n }\n\n /** The date, the run or the set the calendar holds. */\n readonly selection = computed(() => this.held());\n\n protected captionOf(month: { year: number; month: number }) {\n return this.format().monthYear(plainDate(month.year, month.month, 1));\n }\n\n protected weeksOf(month: { year: number; month: number }): CalendarWeek[] {\n return monthGrid({\n ...month,\n firstDayOfWeek: this.format().firstDayOfWeek,\n fixedWeeks: this.resolvedFixedWeeks(),\n });\n }\n\n protected unavailable(date: PlainDate): boolean {\n if (!isDateInRange(date, this.min(), this.max())) return true;\n return this.isDateUnavailable()?.(date) === true;\n }\n\n /** Unavailable, or an outside day the axis says may not be chosen. */\n /** Whether the cell carries a day at all, or stands empty to fill the row. */\n protected drawn(day: CalendarDay): boolean {\n return !(day.outsideMonth && this.resolvedOutsideDays() === 'hidden');\n }\n\n /**\n * The grid already knows which month a day belongs to, and asking the first\n * shown month instead refused every day of the second one in a pair.\n */\n protected refused(day: CalendarDay): boolean {\n if (this.unavailable(day.date)) return true;\n return day.outsideMonth && this.resolvedOutsideDays() === 'shown';\n }\n\n protected chosen(date: PlainDate): boolean {\n return isSelected(date, this.held());\n }\n\n /**\n * The day under the pointer, held only to name the pending end of an open\n * run. It never moves the roving focus: a pointer crossing the grid is not\n * the reader choosing where they are.\n */\n protected readonly hovered = signal<PlainDate | null>(null);\n\n /** The run as it would close on the pending end; `null` while no run is open. */\n private readonly pending = computed(() =>\n this.selectionMode() === 'range' && this.editable()\n ? previewRun(this.held(), this.hovered() ?? this.focused())\n : null,\n );\n\n private readonly previewEnd = computed(() => {\n const pending = this.pending();\n const held = this.held();\n if (pending === null) return null;\n return isRange(held) && held.start !== null && isSameDate(pending.start, held.start)\n ? pending.end\n : pending.start;\n });\n\n protected rangeState(date: PlainDate) {\n return rangeStateOf(date, this.pending() ?? this.held());\n }\n\n /** Every cell of the pending band is a proposal except the start the reader chose. */\n protected proposed(date: PlainDate): boolean {\n return this.pending() !== null && this.rangeState(date) !== null && !this.chosen(date);\n }\n\n protected isToday(date: PlainDate): boolean {\n const today = this.today();\n return today !== null && isSameDate(date, today);\n }\n\n protected tabIndexOf(date: PlainDate): number {\n return isSameDate(date, this.focused()) && this.editable() ? 0 : -1;\n }\n\n protected select(date: PlainDate, reason: ChangeReason, source: Event | undefined) {\n if (!this.editable() || this.unavailable(date)) return;\n this.requestValue(nextValue(date, this.held(), this.selectionMode()), reason, source);\n this.requestFocused(date, reason, source);\n }\n\n /** A month cell's name: the month and the year, which the cell alone does not say. */\n protected monthLabel(month: number): string {\n return this.format().monthYear(plainDate(this.focused().year, month, 1));\n }\n\n /** Whether the value's month is this cell of the year on screen. */\n protected heldMonth(month: number): boolean {\n const held = this.held();\n if (held === null || Array.isArray(held) || isRange(held)) return false;\n return held.year === this.focused().year && held.month === month;\n }\n\n /**\n * A month the bounds leave no day of. The bounds are days, so a month is\n * refused only when it ends before `min` or starts after `max`.\n */\n protected monthUnavailable(month: number, year = this.focused().year): boolean {\n const at = year * 12 + month;\n const min = this.min();\n const max = this.max();\n return (\n (min !== undefined && at < min.year * 12 + min.month) ||\n (max !== undefined && at > max.year * 12 + max.month)\n );\n }\n\n /** The value of a month cell is the first day of the month. */\n protected selectMonth(\n year: number,\n month: number,\n reason: ChangeReason,\n source: Event | undefined,\n ) {\n if (!this.editable() || this.monthUnavailable(month, year)) return;\n const date = plainDate(year, month, 1);\n this.requestValue(date, reason, source);\n this.requestFocused(date, reason, source);\n }\n\n /** The reader moves with the page rather than staying behind it. */\n protected turnPage(direction: 1 | -1, source: Event) {\n const focused = this.focused();\n if (this.currentView() === 'day') {\n this.requestFocused(\n stepMonth(focused, direction * this.resolvedMonths()).date,\n 'pointer',\n source,\n );\n return;\n }\n const step = this.currentView() === 'month' ? direction : direction * YEAR_PAGE;\n this.requestFocused(stepYear(focused, step).date, 'pointer', source);\n }\n\n protected walkUp() {\n this.setView(this.currentView() === 'day' ? 'month' : 'year');\n }\n\n protected pickMonth(month: number, source: Event) {\n this.requestFocused({ ...this.focused(), month, day: 1 }, 'pointer', source);\n this.setView('day');\n }\n\n protected pickYear(year: number, source: Event) {\n this.requestFocused({ ...this.focused(), year, day: 1 }, 'pointer', source);\n this.setView('month');\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n const rtl = getComputedStyle(this.element).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const backward = rtl ? 'ArrowRight' : 'ArrowLeft';\n const focused = this.focused();\n const first = this.format().firstDayOfWeek;\n\n /**\n * A key the grid acted on is the grid's, and nothing above it sees it.\n * An application that binds a bare key guards it with \"is the target an\n * editable element\", and a `td` is not one — so the arrows a reader walks\n * a month with would fire every shortcut on the page.\n */\n const consume = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const move = (next: PlainDate) => {\n consume();\n this.requestFocused(next, 'keyboard', event);\n };\n\n /**\n * The months of a year, as a grid of four columns: the arrows move one\n * month or one row, Home and End reach January and December, the page\n * keys move a year, and Enter or Space chooses. Escape is left alone, so\n * the surface above the calendar may close on it.\n */\n if (this.monthly() && this.currentView() === 'month') {\n const toMonth = (delta: number) => {\n const index = focused.year * 12 + (focused.month - 1) + delta;\n return plainDate(Math.floor(index / 12), (index % 12) + 1, 1);\n };\n switch (event.key) {\n case forward:\n return move(toMonth(1));\n case backward:\n return move(toMonth(-1));\n case 'ArrowUp':\n return move(toMonth(-4));\n case 'ArrowDown':\n return move(toMonth(4));\n case 'Home':\n return move(plainDate(focused.year, 1, 1));\n case 'End':\n return move(plainDate(focused.year, 12, 1));\n case 'PageUp':\n return move(toMonth(-12));\n case 'PageDown':\n return move(toMonth(12));\n case 'Enter':\n case ' ':\n consume();\n this.selectMonth(focused.year, focused.month, 'keyboard', event);\n return;\n default:\n break;\n }\n }\n\n switch (event.key) {\n case forward:\n return move(addDays(focused, 1));\n case backward:\n return move(addDays(focused, -1));\n case 'ArrowUp':\n return move(addDays(focused, -7));\n case 'ArrowDown':\n return move(addDays(focused, 7));\n case 'Home':\n return move(startOfWeek(focused, first));\n case 'End':\n return move(endOfWeek(focused, first));\n case 'PageUp':\n return move(event.shiftKey ? stepYear(focused, -1).date : stepMonth(focused, -1).date);\n case 'PageDown':\n return move(event.shiftKey ? stepYear(focused, 1).date : stepMonth(focused, 1).date);\n case 'Enter':\n case ' ':\n consume();\n this.select(focused, 'keyboard', event);\n return;\n case 'Escape':\n /* The view closes before the surface does, which is the staging\n `dismissable-layer` asks a family to do: the key is simply not\n passed on, and no layer is asked to close. */\n /* In the day view the key is left alone, so a surface above the\n calendar may still close on it. */\n if (this.currentView() === 'day' || (this.monthly() && this.currentView() === 'month')) {\n return;\n }\n consume();\n this.setView(this.currentView() === 'year' ? 'month' : 'day');\n return;\n default:\n return;\n }\n }\n\n /**\n * The first date the reader is put on: what a consumer said, then the value\n * it holds, then today. A calendar that opened on an arbitrary month would\n * make the reader page to now before doing anything at all.\n */\n private startingDate(): PlainDate {\n const stated = this.defaultFocusedDate() ?? this.focusedDate();\n if (stated !== undefined) return stated;\n const held = this.defaultValue() ?? this.value() ?? null;\n if (held !== null) {\n if (Array.isArray(held)) {\n const first = held[0];\n if (first !== undefined) return first;\n } else if ('start' in held) {\n if (held.start !== null) return held.start;\n } else {\n return held;\n }\n }\n return clampDate(this.today() ?? plainDate(2026, 1, 1), this.min(), this.max());\n }\n\n private setView(next: CalendarView) {\n if (this.view() === undefined) this.ownView.set(next);\n this.viewChange.emit(next);\n }\n\n private requestValue(next: CalendarValue, reason: ChangeReason, source: Event | undefined) {\n const state = createControllable<CalendarValue>({\n controlled: this.value(),\n initial: this.held(),\n equals: isSameValue,\n onRequest: (request) => this.valueChange.emit(request),\n });\n if (state.request(next, reason, source)) this.ownValue.set(next);\n }\n\n private requestFocused(next: PlainDate, reason: ChangeReason, source: Event | undefined) {\n const bounded = clampDate(next, this.min(), this.max());\n const state = createControllable<PlainDate>({\n controlled: this.focusedDate(),\n initial: this.focused(),\n equals: (a, b) => isSameDate(a, b),\n onRequest: (request) => this.focusedDateChange.emit(request),\n });\n this.restoreFocus = reason === 'keyboard';\n if (state.request(bounded, reason, source)) this.ownFocused.set(bounded);\n if (this.restoreFocus) this.followFocus();\n }\n\n /**\n * Focus follows a key onto the cell that holds the roving tab stop, once the\n * page holding it is rendered.\n *\n * A key that crosses the month edge lands on the old page's trailing day\n * first, and the page follows one render later. Focused before that, the\n * cell was replaced under the reader and focus fell to the document — which\n * a consumer owning `focusedDate` met on every crossing. Focus is moved only\n * while it is still in the calendar or was lost to the document, so a\n * consumer that refused the move never has focus taken from elsewhere.\n */\n private followFocus() {\n afterNextRender(\n () => {\n if (!this.restoreFocus) return;\n const active = this.element.ownerDocument.activeElement;\n const lost = active === null || active === this.element.ownerDocument.body;\n if (!lost && !this.element.contains(active)) {\n this.restoreFocus = false;\n return;\n }\n const stop = this.element.querySelector<HTMLElement>(\n '[data-part=\"cell\"]:not([data-outside-month]) [data-part=\"day\"][tabindex=\"0\"], [data-part=\"period\"][tabindex=\"0\"]',\n );\n if (stop !== null) {\n this.restoreFocus = false;\n stop.focus();\n return;\n }\n if (this.element.querySelector('[data-part=\"day\"][tabindex=\"0\"]') === null) {\n this.restoreFocus = false;\n return;\n }\n this.followFocus();\n },\n { injector: this.injector },\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-calendar.mjs","sources":["../../calendar/src/calendar-defaults.ts","../../calendar/src/calendar-selection.ts","../../calendar/src/calendar.ts","../../calendar/src/slotted-angular-calendar.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\nimport type { PlainDate } from '@slotted/core/date';\n\n/** A run of days, either end of which may still be open while it is drawn. */\nexport interface DateRange {\n readonly start: PlainDate | null;\n readonly end: PlainDate | null;\n}\n\n/**\n * What the calendar holds, which depends on what it was asked to collect: one\n * date, a run of them, or a set.\n */\nexport type CalendarValue = PlainDate | DateRange | PlainDate[] | null;\n\n/** How many dates the reader may choose. */\nexport type CalendarSelectionMode = 'single' | 'range' | 'multiple';\n\n/** Which grid the calendar is showing. The heading walks up; Escape walks down. */\nexport type CalendarView = 'day' | 'month' | 'year';\n\n/**\n * The smallest thing the reader chooses. `month` makes the months of a year\n * the grid a choice is made in: the calendar opens there, a month cell is the\n * value, written as the first day of that month, and the day grid is never\n * shown.\n */\nexport type CalendarGranularity = 'day' | 'month';\n\n/** What happens to a day belonging to the month either side. */\nexport type CalendarOutsideDays = 'shown' | 'selectable' | 'hidden';\n\n/**\n * The calendar system the value is written in. One value today, and an axis\n * rather than a silence: a second calendar system is a second arithmetic, and\n * declaring the axis now is what keeps its arrival from being a contract break.\n */\nexport type CalendarCalendar = 'gregory';\n\nexport interface CalendarDefaults {\n calendar: CalendarCalendar;\n firstDayOfWeek: number | undefined;\n fixedWeeks: boolean;\n months: number;\n /**\n * Unset is not `shown`: a calendar showing one month draws the days either\n * side of it, and a calendar showing two would draw the same six days in\n * both grids. See the resolution in `calendar.ts`.\n */\n outsideDays: CalendarOutsideDays | undefined;\n timeZone: string | undefined;\n weekNumbers: boolean;\n}\n\nconst FALLBACK: CalendarDefaults = {\n calendar: 'gregory',\n firstDayOfWeek: undefined,\n fixedWeeks: false,\n months: 1,\n outsideDays: undefined,\n timeZone: undefined,\n weekNumbers: false,\n};\n\nexport const CALENDAR_DEFAULTS = new InjectionToken<CalendarDefaults>('slotted calendar defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once which day its weeks start on, which zone answers\n * \"today\" and whether its calendars keep a fixed six-row grid — rather than\n * repeating the same inputs on every instance. Its words and the locale that\n * writes its months come from the language in force (`provideSlotted`).\n *\n * `fixedWeeks` is the one worth setting where calendars live in popovers: a\n * surface that grows a row between one press of \"next\" and the next moves the\n * target the reader was aiming at.\n */\nexport function provideCalendarDefaults(defaults: Partial<CalendarDefaults>) {\n return {\n provide: CALENDAR_DEFAULTS,\n useFactory: (): CalendarDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a calendar renders as here, before it states anything of its own. */\nexport function injectCalendarDefaults(): CalendarDefaults {\n return inject(CALENDAR_DEFAULTS);\n}\n","/**\n * What choosing a date does to a value, in the three modes the family ships.\n *\n * It is separate from the component because none of it touches the DOM: a\n * range that is completed, a range that is restarted, and a set that a second\n * press takes a date back out of are all arithmetic over `PlainDate`, and the\n * two bindings must not each decide them.\n */\n\nimport { compareDate, isSameDate } from '@slotted/core/date';\nimport type { PlainDate } from '@slotted/core/date';\n\nimport type { CalendarSelectionMode, CalendarValue, DateRange } from './calendar-defaults';\n\nexport function isRange(value: CalendarValue): value is DateRange {\n return value !== null && !Array.isArray(value) && 'start' in value;\n}\n\nexport function asDates(value: CalendarValue): PlainDate[] {\n if (value === null) return [];\n if (Array.isArray(value)) return value;\n if (isRange(value)) return [value.start, value.end].filter((date) => date !== null);\n return [value];\n}\n\n/**\n * Whether a date is one of the two ends of a run, inside it, or none of the\n * three. A range with one end open has a start and no run, which is what the\n * calendar draws while the reader is choosing the second date.\n */\nexport function rangeStateOf(\n date: PlainDate,\n value: CalendarValue,\n): 'start' | 'end' | 'inside' | null {\n if (!isRange(value)) return null;\n const { start, end } = value;\n if (start !== null && isSameDate(date, start)) return 'start';\n if (end !== null && isSameDate(date, end)) return 'end';\n if (start === null || end === null) return null;\n return compareDate(date, start) > 0 && compareDate(date, end) < 0 ? 'inside' : null;\n}\n\nexport function isSelected(date: PlainDate, value: CalendarValue): boolean {\n if (isRange(value)) {\n const state = rangeStateOf(date, value);\n return state === 'start' || state === 'end';\n }\n return asDates(value).some((candidate) => isSameDate(candidate, date));\n}\n\n/**\n * The value a press produces.\n *\n * A range takes two presses and the second one may come first: a reader who\n * chooses the 11th and then the 7th means the 7th to the 11th, not a range\n * that runs backwards. A third press starts again, because a range that grew\n * on every press could never be narrowed.\n *\n * A set removes a date a second press lands on, which is the only way to take\n * one back out without a second control.\n */\nexport function nextValue(\n date: PlainDate,\n value: CalendarValue,\n mode: CalendarSelectionMode,\n): CalendarValue {\n if (mode === 'single') {\n return isSelected(date, value) ? null : date;\n }\n\n if (mode === 'multiple') {\n const held = asDates(value);\n const without = held.filter((candidate) => !isSameDate(candidate, date));\n if (without.length !== held.length) return without;\n return [...held, date].sort(compareDate);\n }\n\n const run = isRange(value) ? value : { start: null, end: null };\n if (run.start === null || run.end !== null) return { start: date, end: null };\n return compareDate(date, run.start) < 0\n ? { start: date, end: run.start }\n : { start: run.start, end: date };\n}\n\n/**\n * The run the grid draws while the reader is choosing the second end: from\n * the chosen start to the pending end — the day under the pointer, or the\n * focused day — ordered the way the second press will order it. `null` while\n * there is no open run, so a whole range and a single date preview nothing.\n */\nexport function previewRun(value: CalendarValue, pending: PlainDate | null): DateRange | null {\n if (pending === null || !isRange(value) || value.start === null || value.end !== null)\n return null;\n return compareDate(pending, value.start) < 0\n ? { start: pending, end: value.start }\n : { start: value.start, end: pending };\n}\n\n/** Value equality, which `Object.is` cannot give for a run or a set. */\nexport function isSameValue(a: CalendarValue, b: CalendarValue): boolean {\n if (isRange(a) || isRange(b)) {\n if (!isRange(a) || !isRange(b)) return false;\n return isSameDate(a.start, b.start) && isSameDate(a.end, b.end);\n }\n const left = asDates(a);\n const right = asDates(b);\n if (left.length !== right.length) return false;\n return left.every((date, index) => isSameDate(date, right[index] ?? null));\n}\n","import {\n addDays,\n clampDate,\n createDateFormat,\n endOfWeek,\n isDateInRange,\n isSameDate,\n monthGrid,\n plainDate,\n startOfWeek,\n stepMonth,\n stepYear,\n todayIn,\n visibleMonths,\n yearPage,\n} from '@slotted/core/date';\nimport type { CalendarDay, CalendarWeek, PlainDate } from '@slotted/core/date';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { calendarMessages, type CalendarMessages, type PartialMessages } from '@slotted/core/i18n';\n\nimport { injectCalendarDefaults } from './calendar-defaults';\nimport type {\n CalendarCalendar,\n CalendarGranularity,\n CalendarOutsideDays,\n CalendarSelectionMode,\n CalendarValue,\n CalendarView,\n} from './calendar-defaults';\nimport {\n isRange,\n isSameValue,\n isSelected,\n nextValue,\n previewRun,\n rangeStateOf,\n} from './calendar-selection';\n\n/** How many years one page of the year view holds. */\nconst YEAR_PAGE = 12;\n/** The heading needs an identifier every grid can point `aria-labelledby` at. */\nlet sequence = 0;\n\n/**\n * A month grid, and the two pages above it.\n *\n * **It is a real `table` with the `grid` role on it.** The APG's own note is\n * why nothing here writes `row`, `columnheader` or `gridcell`: those are\n * implied by `tr`, `th` and `td`, and writing them again would duplicate\n * semantics the platform already gives.\n *\n * **The date the reader is on and the date the reader has chosen are two\n * values**, and each has a model of its own — a product that pages a calendar\n * from outside it has nowhere else to say so.\n *\n * **A date the predicate refuses stays reachable.** It carries `aria-disabled`\n * rather than being taken out of the grid, so a reader can arrow onto it, hear\n * why it is out, and arrow past it.\n */\n@Component({\n selector: '[slCalendar]',\n standalone: true,\n exportAs: 'slCalendar',\n imports: [SlGlyph, SlIcon],\n template: `<div data-part=\"header\" data-part-header=\"\">\n <button\n data-part=\"previous\"\n data-part-previous=\"\"\n type=\"button\"\n [attr.aria-label]=\"pageNames()[0]\"\n [disabled]=\"!editable()\"\n (click)=\"turnPage(-1, $event)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n <!--\n The heading is a live region: paging with a key changes nothing that\n focus lands on, so without this nothing announces the new month.\n -->\n <button\n data-part=\"heading\"\n data-part-heading=\"\"\n type=\"button\"\n aria-live=\"polite\"\n [attr.id]=\"headingId\"\n [disabled]=\"!editable() || currentView() === 'year'\"\n (click)=\"walkUp()\"\n >\n {{ heading() }}\n @if (currentView() !== 'year') {\n <span slIcon><svg slGlyph name=\"chevron-down\"></svg></span>\n }\n </button>\n <button\n data-part=\"next\"\n data-part-next=\"\"\n type=\"button\"\n [attr.aria-label]=\"pageNames()[1]\"\n [disabled]=\"!editable()\"\n (click)=\"turnPage(1, $event)\"\n >\n <span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span>\n </button>\n </div>\n\n @switch (currentView()) {\n @case ('day') {\n <div data-part=\"grids\" data-part-grids=\"\">\n @for (month of shownMonths(); track month.year * 12 + month.month) {\n <table\n data-part=\"grid\"\n data-part-grid=\"\"\n role=\"grid\"\n [attr.aria-labelledby]=\"headingId\"\n >\n <caption data-part=\"grid-caption\" data-part-grid-caption=\"\">\n {{\n captionOf(month)\n }}\n </caption>\n <thead>\n <tr data-part=\"week-headers\" data-part-week-headers=\"\">\n @if (resolvedWeekNumbers()) {\n <th data-part=\"week-number\" data-part-week-number=\"\" aria-hidden=\"true\"></th>\n }\n @for (name of weekdayNarrow(); track $index) {\n <th\n data-part=\"week-header\"\n data-part-week-header=\"\"\n scope=\"col\"\n [attr.abbr]=\"weekdayLong()[$index]\"\n >\n {{ name }}\n </th>\n }\n </tr>\n </thead>\n <tbody>\n @for (week of weeksOf(month); track week.weekNumber) {\n <tr data-part=\"week\" data-part-week=\"\">\n @if (resolvedWeekNumbers()) {\n <th data-part=\"week-number\" data-part-week-number=\"\" scope=\"row\">\n {{ week.weekNumber }}\n </th>\n }\n @for (\n day of week.days;\n track day.date.year * 400 + day.date.month * 32 + day.date.day\n ) {\n <!-- A hidden day is an empty cell and nothing else. It\n carried the marks of the date it stood for, so a\n range across a month boundary painted a band with no\n digits under it. -->\n <td\n data-part=\"cell\"\n data-part-cell=\"\"\n [attr.data-outside-month]=\"day.outsideMonth ? '' : null\"\n [attr.data-unavailable]=\"\n !drawn(day) ? null : unavailable(day.date) ? '' : null\n \"\n [attr.data-selected]=\"!drawn(day) ? null : chosen(day.date) ? '' : null\"\n [attr.data-range-start]=\"\n drawn(day) && rangeState(day.date) === 'start' ? '' : null\n \"\n [attr.data-range-end]=\"\n drawn(day) && rangeState(day.date) === 'end' ? '' : null\n \"\n [attr.data-in-range]=\"\n drawn(day) && rangeState(day.date) === 'inside' ? '' : null\n \"\n [attr.data-preview]=\"drawn(day) && proposed(day.date) ? '' : null\"\n >\n @if (drawn(day)) {\n <span\n data-part=\"day\"\n data-part-day=\"\"\n role=\"button\"\n [attr.data-today]=\"isToday(day.date) ? '' : null\"\n [attr.aria-selected]=\"chosen(day.date) ? 'true' : null\"\n [attr.aria-disabled]=\"refused(day) ? 'true' : null\"\n [tabindex]=\"tabIndexOf(day.date)\"\n (click)=\"!refused(day) && select(day.date, 'pointer', $event)\"\n (pointerenter)=\"hovered.set(day.date)\"\n (pointerleave)=\"hovered.set(null)\"\n >\n {{ day.date.day }}\n </span>\n }\n </td>\n }\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n }\n @case ('month') {\n @if (monthly()) {\n <div data-part=\"months\" data-part-months=\"\">\n @for (name of monthNames(); track $index) {\n <button\n data-part=\"period\"\n data-part-period=\"\"\n type=\"button\"\n [attr.aria-label]=\"monthLabel($index + 1)\"\n [attr.data-selected]=\"heldMonth($index + 1) ? '' : null\"\n [attr.aria-selected]=\"heldMonth($index + 1) ? 'true' : null\"\n [attr.aria-disabled]=\"monthUnavailable($index + 1) ? 'true' : null\"\n [attr.data-unavailable]=\"monthUnavailable($index + 1) ? '' : null\"\n [attr.data-focused]=\"focused().month === $index + 1 ? '' : null\"\n [tabindex]=\"focused().month === $index + 1 ? 0 : -1\"\n (click)=\"selectMonth(focused().year, $index + 1, 'pointer', $event)\"\n >\n {{ name }}\n </button>\n }\n </div>\n } @else {\n <div data-part=\"months\" data-part-months=\"\">\n @for (name of monthNames(); track $index) {\n <button\n data-part=\"period\"\n data-part-period=\"\"\n type=\"button\"\n [attr.data-selected]=\"focused().month === $index + 1 ? '' : null\"\n [attr.aria-selected]=\"focused().month === $index + 1 ? 'true' : null\"\n (click)=\"pickMonth($index + 1, $event)\"\n >\n {{ name }}\n </button>\n }\n </div>\n }\n }\n @default {\n <div data-part=\"years\" data-part-years=\"\">\n @for (year of years(); track year) {\n <button\n data-part=\"period\"\n data-part-period=\"\"\n type=\"button\"\n [attr.data-selected]=\"focused().year === year ? '' : null\"\n [attr.aria-selected]=\"focused().year === year ? 'true' : null\"\n (click)=\"pickYear(year, $event)\"\n >\n {{ year }}\n </button>\n }\n </div>\n }\n }`,\n styleUrl: '../../../styles/src/calendar/calendar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'calendar',\n 'data-ui-calendar': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.data-view]': 'currentView()',\n '[attr.data-calendar]': 'resolvedCalendar()',\n '[attr.data-months]': 'resolvedMonths() > 1 ? resolvedMonths() : null',\n '[attr.data-week-numbers]': \"resolvedWeekNumbers() ? '' : null\",\n '[attr.data-disabled]': \"disabled() === true ? '' : null\",\n '[attr.data-readonly]': \"readOnly() === true ? '' : null\",\n '[attr.data-invalid]': \"invalid() === true ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCalendar implements OnInit {\n /** Present means the consumer owns the value. */\n readonly value = input<CalendarValue | undefined>(undefined);\n readonly defaultValue = input<CalendarValue | undefined>(undefined);\n /** The date the reader is on. Present means the consumer owns it. */\n readonly focusedDate = input<PlainDate | undefined>(undefined);\n readonly defaultFocusedDate = input<PlainDate | undefined>(undefined);\n\n readonly min = input<PlainDate | undefined>(undefined);\n readonly max = input<PlainDate | undefined>(undefined);\n readonly isDateUnavailable = input<((date: PlainDate) => boolean) | undefined>(undefined);\n\n readonly selectionMode = input<CalendarSelectionMode>('single');\n readonly months = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n /** Present means the consumer owns which grid is showing. */\n readonly view = input<CalendarView | undefined>(undefined);\n readonly defaultView = input<CalendarView | undefined>(undefined);\n /** What a choice is: a day, or a month of a year. Defaults to `day`. */\n readonly granularity = input<CalendarGranularity | undefined>(undefined);\n\n readonly weekNumbers = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly fixedWeeks = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly outsideDays = input<CalendarOutsideDays | undefined>(undefined);\n\n /** The locale that writes months and days. Unset, the language in force decides. */\n readonly locale = input<string | undefined>(undefined);\n readonly timeZone = input<string | undefined>(undefined);\n readonly firstDayOfWeek = input<number | undefined, unknown>(undefined, {\n transform: (value) =>\n value === undefined || value === null ? undefined : numberAttribute(value),\n });\n readonly calendar = input<CalendarCalendar | undefined>(undefined);\n\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * Words laid over the catalog of the language in force, key by key: the\n * names of the previous and next triggers.\n */\n readonly messages = input<PartialMessages<CalendarMessages> | undefined>(undefined);\n\n readonly valueChange = output<ChangeRequest<CalendarValue>>();\n readonly focusedDateChange = output<ChangeRequest<PlainDate>>();\n readonly viewChange = output<CalendarView>();\n /**\n * The pending end of an open run: the day under the pointer, or the focused\n * day when no pointer is over the grid, and `null` while no run is open. A\n * fact the grid states rather than a value the consumer owns, which is why\n * it is an output and not a model — `date-range-picker` reads it to say how\n * long the run would be.\n */\n readonly previewChange = output<PlainDate | null>();\n\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly injector = inject(Injector);\n private readonly defaults = injectCalendarDefaults();\n private readonly appLocale = injectLocale();\n /** The family's words in the language in force, with this calendar's `messages` laid over them. */\n readonly t = injectMessages(calendarMessages, this.messages);\n\n protected readonly headingId = `sl-calendar-${String((sequence += 1))}`;\n\n private readonly ownValue = signal<CalendarValue>(null);\n private readonly ownFocused = signal<PlainDate>(plainDate(2026, 1, 1));\n private readonly ownView = signal<CalendarView>('day');\n /**\n * The first month on screen, which is **not** the month the reader is on.\n *\n * Drawing two months from the focused date meant that choosing a day in the\n * second one scrolled the pair: a reader looking at June and July who chose\n * 9 June was shown July and August, with half of what they had just chosen\n * off screen. The page moves only when the reader leaves it.\n */\n private readonly page = signal<{ year: number; month: number }>({ year: 2026, month: 1 });\n private readonly today = signal<PlainDate | null>(null);\n /** Focus is only moved into the DOM after a key, never on a render. */\n private restoreFocus = false;\n\n protected readonly held = computed(() => this.value() ?? this.ownValue());\n protected readonly focused = computed(() => this.focusedDate() ?? this.ownFocused());\n /**\n * Under `granularity=\"month\"` the months of a year are where a choice is\n * made: the calendar opens there and never goes below it, so a view asked\n * for as `day` is read as `month`.\n */\n protected readonly monthly = computed(() => this.granularity() === 'month');\n /** Which grid is showing. Public, so a template reaches it through `exportAs`. */\n readonly currentView = computed((): CalendarView => {\n const asked = this.view() ?? this.ownView();\n return this.monthly() && asked === 'day' ? 'month' : asked;\n });\n\n protected readonly resolvedMonths = computed(() =>\n Math.max(1, this.months() ?? this.defaults.months),\n );\n protected readonly resolvedWeekNumbers = computed(\n () => this.weekNumbers() ?? this.defaults.weekNumbers,\n );\n protected readonly resolvedFixedWeeks = computed(\n () => this.fixedWeeks() ?? this.defaults.fixedWeeks,\n );\n /**\n * One month draws the days either side of it, because a week that starts on\n * the 30th of the month before has to say what that cell is. Two months\n * cannot: September's grid ends with the first three days of October and\n * October's begins with the last four of September, so a range across the\n * boundary is painted twice and a reader sees an interval twice as long as\n * the one chosen. Every surveyed multi-month calendar hides them, and so\n * does this one — until the consumer says otherwise, on the instance or on\n * the provider.\n */\n protected readonly resolvedOutsideDays = computed(\n () =>\n this.outsideDays() ??\n this.defaults.outsideDays ??\n (this.resolvedMonths() > 1 ? 'hidden' : 'shown'),\n );\n protected readonly resolvedCalendar = computed(() => this.calendar() ?? this.defaults.calendar);\n protected readonly editable = computed(\n () => this.disabled() !== true && this.readOnly() !== true,\n );\n\n protected readonly format = computed(() =>\n createDateFormat({\n locale: this.locale() ?? this.appLocale(),\n firstDayOfWeek: this.firstDayOfWeek() ?? this.defaults.firstDayOfWeek,\n }),\n );\n\n protected readonly weekdayLong = computed(() => this.format().weekdayNames('long'));\n protected readonly weekdayNarrow = computed(() => this.format().weekdayNames('narrow'));\n protected readonly monthNames = computed(() => this.format().monthNames('short'));\n /** Each paging button is named for the step it takes in the view showing. */\n protected readonly pageNames = computed(() => {\n const view = this.currentView();\n if (view === 'day') return [this.t('previousMonth'), this.t('nextMonth')];\n if (view === 'month') return [this.t('previousYear'), this.t('nextYear')];\n return [this.t('previousYears'), this.t('nextYears')];\n });\n protected readonly years = computed(() => yearPage(this.focused().year, YEAR_PAGE));\n protected readonly shownMonths = computed(() =>\n visibleMonths(this.page(), this.resolvedMonths()),\n );\n\n protected readonly heading = computed(() => {\n const focused = this.focused();\n const format = this.format();\n if (this.currentView() === 'year') {\n const years = this.years();\n return `${String(years[0] ?? focused.year)} – ${String(years.at(-1) ?? focused.year)}`;\n }\n if (this.currentView() === 'month') return String(focused.year);\n\n const page = this.page();\n const start = plainDate(page.year, page.month, 1);\n if (this.resolvedMonths() === 1) return format.monthYear(start);\n const last = stepMonth(start, this.resolvedMonths() - 1).date;\n return `${format.monthYear(start, 'short')} – ${format.monthYear(last, 'short')}`;\n });\n\n constructor() {\n /**\n * The page follows the reader, and only when the reader has left it.\n * Written as an effect rather than inside the request, so a consumer who\n * owns `focusedDate` and moves it from outside is followed too.\n */\n /* The pending end, reported once per change and never while it is the\n same day: a pointer crossing a cell twice is one fact, not two. */\n let reported: PlainDate | null = null;\n effect(() => {\n const end = this.previewEnd();\n if (isSameDate(reported, end)) return;\n reported = end;\n this.previewChange.emit(end);\n });\n\n effect(() => {\n const focused = this.focused();\n const held = this.page();\n const span = this.resolvedMonths();\n const start = held.year * 12 + (held.month - 1);\n const wanted = focused.year * 12 + (focused.month - 1);\n if (wanted >= start && wanted < start + span) return;\n /* Outside the span: the page moves by whole pages, so a reader stepping\n past the edge lands where the arrows would have taken them. */\n const moved = start + Math.floor((wanted - start) / span) * span;\n this.page.set({ year: Math.floor(moved / 12), month: (moved % 12) + 1 });\n });\n }\n\n ngOnInit() {\n this.ownValue.set(this.defaultValue() ?? null);\n this.ownView.set(this.defaultView() ?? (this.monthly() ? 'month' : 'day'));\n this.today.set(todayIn(this.timeZone() ?? this.defaults.timeZone));\n const start = this.startingDate();\n this.ownFocused.set(start);\n this.page.set({ year: start.year, month: start.month });\n }\n\n /** Puts focus on the cell holding the roving tab stop. */\n focus() {\n this.element\n .querySelector<HTMLElement>(\n '[data-part=\"day\"][tabindex=\"0\"], [data-part=\"period\"][tabindex=\"0\"]',\n )\n ?.focus();\n }\n\n /** Moves the reader to a date, paging the grid to reach it. */\n focusDate(date: PlainDate) {\n this.requestFocused(date, 'programmatic', undefined);\n }\n\n /** The date, the run or the set the calendar holds. */\n readonly selection = computed(() => this.held());\n\n protected captionOf(month: { year: number; month: number }) {\n return this.format().monthYear(plainDate(month.year, month.month, 1));\n }\n\n protected weeksOf(month: { year: number; month: number }): CalendarWeek[] {\n return monthGrid({\n ...month,\n firstDayOfWeek: this.format().firstDayOfWeek,\n fixedWeeks: this.resolvedFixedWeeks(),\n });\n }\n\n protected unavailable(date: PlainDate): boolean {\n if (!isDateInRange(date, this.min(), this.max())) return true;\n return this.isDateUnavailable()?.(date) === true;\n }\n\n /** Unavailable, or an outside day the axis says may not be chosen. */\n /** Whether the cell carries a day at all, or stands empty to fill the row. */\n protected drawn(day: CalendarDay): boolean {\n return !(day.outsideMonth && this.resolvedOutsideDays() === 'hidden');\n }\n\n /**\n * The grid already knows which month a day belongs to, and asking the first\n * shown month instead refused every day of the second one in a pair.\n */\n protected refused(day: CalendarDay): boolean {\n if (this.unavailable(day.date)) return true;\n return day.outsideMonth && this.resolvedOutsideDays() === 'shown';\n }\n\n protected chosen(date: PlainDate): boolean {\n return isSelected(date, this.held());\n }\n\n /**\n * The day under the pointer, held only to name the pending end of an open\n * run. It never moves the roving focus: a pointer crossing the grid is not\n * the reader choosing where they are.\n */\n protected readonly hovered = signal<PlainDate | null>(null);\n\n /** The run as it would close on the pending end; `null` while no run is open. */\n private readonly pending = computed(() =>\n this.selectionMode() === 'range' && this.editable()\n ? previewRun(this.held(), this.hovered() ?? this.focused())\n : null,\n );\n\n private readonly previewEnd = computed(() => {\n const pending = this.pending();\n const held = this.held();\n if (pending === null) return null;\n return isRange(held) && held.start !== null && isSameDate(pending.start, held.start)\n ? pending.end\n : pending.start;\n });\n\n protected rangeState(date: PlainDate) {\n return rangeStateOf(date, this.pending() ?? this.held());\n }\n\n /** Every cell of the pending band is a proposal except the start the reader chose. */\n protected proposed(date: PlainDate): boolean {\n return this.pending() !== null && this.rangeState(date) !== null && !this.chosen(date);\n }\n\n protected isToday(date: PlainDate): boolean {\n const today = this.today();\n return today !== null && isSameDate(date, today);\n }\n\n protected tabIndexOf(date: PlainDate): number {\n return isSameDate(date, this.focused()) && this.editable() ? 0 : -1;\n }\n\n protected select(date: PlainDate, reason: ChangeReason, source: Event | undefined) {\n if (!this.editable() || this.unavailable(date)) return;\n this.requestValue(nextValue(date, this.held(), this.selectionMode()), reason, source);\n this.requestFocused(date, reason, source);\n }\n\n /** A month cell's name: the month and the year, which the cell alone does not say. */\n protected monthLabel(month: number): string {\n return this.format().monthYear(plainDate(this.focused().year, month, 1));\n }\n\n /** Whether the value's month is this cell of the year on screen. */\n protected heldMonth(month: number): boolean {\n const held = this.held();\n if (held === null || Array.isArray(held) || isRange(held)) return false;\n return held.year === this.focused().year && held.month === month;\n }\n\n /**\n * A month the bounds leave no day of. The bounds are days, so a month is\n * refused only when it ends before `min` or starts after `max`.\n */\n protected monthUnavailable(month: number, year = this.focused().year): boolean {\n const at = year * 12 + month;\n const min = this.min();\n const max = this.max();\n return (\n (min !== undefined && at < min.year * 12 + min.month) ||\n (max !== undefined && at > max.year * 12 + max.month)\n );\n }\n\n /** The value of a month cell is the first day of the month. */\n protected selectMonth(\n year: number,\n month: number,\n reason: ChangeReason,\n source: Event | undefined,\n ) {\n if (!this.editable() || this.monthUnavailable(month, year)) return;\n const date = plainDate(year, month, 1);\n this.requestValue(date, reason, source);\n this.requestFocused(date, reason, source);\n }\n\n /** The reader moves with the page rather than staying behind it. */\n protected turnPage(direction: 1 | -1, source: Event) {\n const focused = this.focused();\n if (this.currentView() === 'day') {\n this.requestFocused(\n stepMonth(focused, direction * this.resolvedMonths()).date,\n 'pointer',\n source,\n );\n return;\n }\n const step = this.currentView() === 'month' ? direction : direction * YEAR_PAGE;\n this.requestFocused(stepYear(focused, step).date, 'pointer', source);\n }\n\n protected walkUp() {\n this.setView(this.currentView() === 'day' ? 'month' : 'year');\n }\n\n protected pickMonth(month: number, source: Event) {\n this.requestFocused({ ...this.focused(), month, day: 1 }, 'pointer', source);\n this.setView('day');\n }\n\n protected pickYear(year: number, source: Event) {\n this.requestFocused({ ...this.focused(), year, day: 1 }, 'pointer', source);\n this.setView('month');\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n const rtl = getComputedStyle(this.element).direction === 'rtl';\n const forward = rtl ? 'ArrowLeft' : 'ArrowRight';\n const backward = rtl ? 'ArrowRight' : 'ArrowLeft';\n const focused = this.focused();\n const first = this.format().firstDayOfWeek;\n\n /**\n * A key the grid acted on is the grid's, and nothing above it sees it.\n * An application that binds a bare key guards it with \"is the target an\n * editable element\", and a `td` is not one — so the arrows a reader walks\n * a month with would fire every shortcut on the page.\n */\n const consume = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n const move = (next: PlainDate) => {\n consume();\n this.requestFocused(next, 'keyboard', event);\n };\n\n /**\n * The months of a year, as a grid of four columns: the arrows move one\n * month or one row, Home and End reach January and December, the page\n * keys move a year, and Enter or Space chooses. Escape is left alone, so\n * the surface above the calendar may close on it.\n */\n if (this.monthly() && this.currentView() === 'month') {\n const toMonth = (delta: number) => {\n const index = focused.year * 12 + (focused.month - 1) + delta;\n return plainDate(Math.floor(index / 12), (index % 12) + 1, 1);\n };\n switch (event.key) {\n case forward:\n return move(toMonth(1));\n case backward:\n return move(toMonth(-1));\n case 'ArrowUp':\n return move(toMonth(-4));\n case 'ArrowDown':\n return move(toMonth(4));\n case 'Home':\n return move(plainDate(focused.year, 1, 1));\n case 'End':\n return move(plainDate(focused.year, 12, 1));\n case 'PageUp':\n return move(toMonth(-12));\n case 'PageDown':\n return move(toMonth(12));\n case 'Enter':\n case ' ':\n consume();\n this.selectMonth(focused.year, focused.month, 'keyboard', event);\n return;\n default:\n break;\n }\n }\n\n switch (event.key) {\n case forward:\n return move(addDays(focused, 1));\n case backward:\n return move(addDays(focused, -1));\n case 'ArrowUp':\n return move(addDays(focused, -7));\n case 'ArrowDown':\n return move(addDays(focused, 7));\n case 'Home':\n return move(startOfWeek(focused, first));\n case 'End':\n return move(endOfWeek(focused, first));\n case 'PageUp':\n return move(event.shiftKey ? stepYear(focused, -1).date : stepMonth(focused, -1).date);\n case 'PageDown':\n return move(event.shiftKey ? stepYear(focused, 1).date : stepMonth(focused, 1).date);\n case 'Enter':\n case ' ':\n consume();\n this.select(focused, 'keyboard', event);\n return;\n case 'Escape':\n /* The view closes before the surface does, which is the staging\n `dismissable-layer` asks a family to do: the key is simply not\n passed on, and no layer is asked to close. */\n /* In the day view the key is left alone, so a surface above the\n calendar may still close on it. */\n if (this.currentView() === 'day' || (this.monthly() && this.currentView() === 'month')) {\n return;\n }\n consume();\n this.setView(this.currentView() === 'year' ? 'month' : 'day');\n return;\n default:\n return;\n }\n }\n\n /**\n * The first date the reader is put on: what a consumer said, then the value\n * it holds, then today. A calendar that opened on an arbitrary month would\n * make the reader page to now before doing anything at all.\n */\n private startingDate(): PlainDate {\n const stated = this.defaultFocusedDate() ?? this.focusedDate();\n if (stated !== undefined) return stated;\n const held = this.defaultValue() ?? this.value() ?? null;\n if (held !== null) {\n if (Array.isArray(held)) {\n const first = held[0];\n if (first !== undefined) return first;\n } else if ('start' in held) {\n if (held.start !== null) return held.start;\n } else {\n return held;\n }\n }\n return clampDate(this.today() ?? plainDate(2026, 1, 1), this.min(), this.max());\n }\n\n private setView(next: CalendarView) {\n if (this.view() === undefined) this.ownView.set(next);\n this.viewChange.emit(next);\n }\n\n private requestValue(next: CalendarValue, reason: ChangeReason, source: Event | undefined) {\n const state = createControllable<CalendarValue>({\n controlled: this.value(),\n initial: this.held(),\n equals: isSameValue,\n onRequest: (request) => this.valueChange.emit(request),\n });\n if (state.request(next, reason, source)) this.ownValue.set(next);\n }\n\n private requestFocused(next: PlainDate, reason: ChangeReason, source: Event | undefined) {\n const bounded = clampDate(next, this.min(), this.max());\n const state = createControllable<PlainDate>({\n controlled: this.focusedDate(),\n initial: this.focused(),\n equals: (a, b) => isSameDate(a, b),\n onRequest: (request) => this.focusedDateChange.emit(request),\n });\n this.restoreFocus = reason === 'keyboard';\n if (state.request(bounded, reason, source)) this.ownFocused.set(bounded);\n if (this.restoreFocus) this.followFocus();\n }\n\n /**\n * Focus follows a key onto the cell that holds the roving tab stop, once the\n * page holding it is rendered.\n *\n * A key that crosses the month edge lands on the old page's trailing day\n * first, and the page follows one render later. Focused before that, the\n * cell was replaced under the reader and focus fell to the document — which\n * a consumer owning `focusedDate` met on every crossing. Focus is moved only\n * while it is still in the calendar or was lost to the document, so a\n * consumer that refused the move never has focus taken from elsewhere.\n */\n private followFocus() {\n afterNextRender(\n () => {\n if (!this.restoreFocus) return;\n const active = this.element.ownerDocument.activeElement;\n const lost = active === null || active === this.element.ownerDocument.body;\n if (!lost && !this.element.contains(active)) {\n this.restoreFocus = false;\n return;\n }\n const stop = this.element.querySelector<HTMLElement>(\n '[data-part=\"cell\"]:not([data-outside-month]) [data-part=\"day\"][tabindex=\"0\"], [data-part=\"period\"][tabindex=\"0\"]',\n );\n if (stop !== null) {\n this.restoreFocus = false;\n stop.focus();\n return;\n }\n if (this.element.querySelector('[data-part=\"day\"][tabindex=\"0\"]') === null) {\n this.restoreFocus = false;\n return;\n }\n this.followFocus();\n },\n { injector: this.injector },\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAsDA,MAAM,QAAQ,GAAqB;AACjC,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,WAAW,EAAE,SAAS;AACtB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,WAAW,EAAE,KAAK;CACnB;MAEY,iBAAiB,GAAG,IAAI,cAAc,CAAmB,2BAA2B,EAAE;AACjG,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,QAAQ;AACxB,CAAA;AAED;;;;;;;;;AASG;AACG,SAAU,uBAAuB,CAAC,QAAmC,EAAA;IACzE,OAAO;AACL,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,OAAyB,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;KACnE;AACH;AAEA;SACgB,sBAAsB,GAAA;AACpC,IAAA,OAAO,MAAM,CAAC,iBAAiB,CAAC;AAClC;;ACzFA;;;;;;;AAOG;AAOG,SAAU,OAAO,CAAC,KAAoB,EAAA;AAC1C,IAAA,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,IAAI,KAAK;AACpE;AAEM,SAAU,OAAO,CAAC,KAAoB,EAAA;IAC1C,IAAI,KAAK,KAAK,IAAI;AAAE,QAAA,OAAO,EAAE;AAC7B,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;IACtC,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC;IACnF,OAAO,CAAC,KAAK,CAAC;AAChB;AAEA;;;;AAIG;AACG,SAAU,YAAY,CAC1B,IAAe,EACf,KAAoB,EAAA;AAEpB,IAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,IAAI;AAChC,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK;IAC5B,IAAI,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;AAAE,QAAA,OAAO,OAAO;IAC7D,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;AAAE,QAAA,OAAO,KAAK;AACvD,IAAA,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;AAAE,QAAA,OAAO,IAAI;IAC/C,OAAO,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI;AACrF;AAEM,SAAU,UAAU,CAAC,IAAe,EAAE,KAAoB,EAAA;AAC9D,IAAA,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC,QAAA,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,KAAK;IAC7C;AACA,IAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxE;AAEA;;;;;;;;;;AAUG;SACa,SAAS,CACvB,IAAe,EACf,KAAoB,EACpB,IAA2B,EAAA;AAE3B,IAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;AACrB,QAAA,OAAO,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI;IAC9C;AAEA,IAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;AAC3B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACxE,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,OAAO;QAClD,OAAO,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1C;IAEA,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/D,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;IAC7E,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;UAClC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK;AAC/B,UAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;AACrC;AAEA;;;;;AAKG;AACG,SAAU,UAAU,CAAC,KAAoB,EAAE,OAAyB,EAAA;IACxE,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI;AACnF,QAAA,OAAO,IAAI;IACb,OAAO,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG;UACvC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK;AACpC,UAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;AAC1C;AAEA;AACM,SAAU,WAAW,CAAC,CAAgB,EAAE,CAAgB,EAAA;IAC5D,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAAE,YAAA,OAAO,KAAK;QAC5C,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;IACjE;AACA,IAAA,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;AACvB,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;AACxB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;AAAE,QAAA,OAAO,KAAK;IAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E;;AClDA;AACA,MAAM,SAAS,GAAG,EAAE;AACpB;AACA,IAAI,QAAQ,GAAG,CAAC;AAEhB;;;;;;;;;;;;;;;AAeG;MAoNU,UAAU,CAAA;;IAEZ,KAAK,GAAG,KAAK,CAA4B,SAAS;8EAAC;IACnD,YAAY,GAAG,KAAK,CAA4B,SAAS;qFAAC;;IAE1D,WAAW,GAAG,KAAK,CAAwB,SAAS;oFAAC;IACrD,kBAAkB,GAAG,KAAK,CAAwB,SAAS;2FAAC;IAE5D,GAAG,GAAG,KAAK,CAAwB,SAAS;4EAAC;IAC7C,GAAG,GAAG,KAAK,CAAwB,SAAS;4EAAC;IAC7C,iBAAiB,GAAG,KAAK,CAA6C,SAAS;0FAAC;IAEhF,aAAa,GAAG,KAAK,CAAwB,QAAQ;sFAAC;AACtD,IAAA,MAAM,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EAC5D,SAAS,EAAE,CAAC,KAAK,KACf,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,GAC5E;;IAEO,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,WAAW,GAAG,KAAK,CAA2B,SAAS;oFAAC;;IAExD,WAAW,GAAG,KAAK,CAAkC,SAAS;oFAAC;AAE/D,IAAA,WAAW,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,CAAA,EACvF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,UAAU,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EACtF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;IACO,WAAW,GAAG,KAAK,CAAkC,SAAS;oFAAC;;IAG/D,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,QAAQ,GAAG,KAAK,CAAqB,SAAS;iFAAC;AAC/C,IAAA,cAAc,GAAG,KAAK,CAA8B,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,CAAA,EACpE,SAAS,EAAE,CAAC,KAAK,KACf,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,GAC5E;IACO,QAAQ,GAAG,KAAK,CAA+B,SAAS;iFAAC;AAEzD,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,OAAO,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EACnF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AAEF;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAgD,SAAS;iFAAC;IAE1E,WAAW,GAAG,MAAM,EAAgC;IACpD,iBAAiB,GAAG,MAAM,EAA4B;IACtD,UAAU,GAAG,MAAM,EAAgB;AAC5C;;;;;;AAMG;IACM,aAAa,GAAG,MAAM,EAAoB;AAElC,IAAA,OAAO,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC,aAAa;AACnE,IAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3B,QAAQ,GAAG,sBAAsB,EAAE;IACnC,SAAS,GAAG,YAAY,EAAE;;IAElC,CAAC,GAAG,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC;IAEzC,SAAS,GAAG,CAAA,YAAA,EAAe,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAA,CAAE;IAEtD,QAAQ,GAAG,MAAM,CAAgB,IAAI;iFAAC;IACtC,UAAU,GAAG,MAAM,CAAY,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;mFAAC;IACrD,OAAO,GAAG,MAAM,CAAe,KAAK;gFAAC;AACtD;;;;;;;AAOG;IACc,IAAI,GAAG,MAAM,CAAkC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;6EAAC;IACxE,KAAK,GAAG,MAAM,CAAmB,IAAI;8EAAC;;IAE/C,YAAY,GAAG,KAAK;AAET,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE;6EAAC;AACtD,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;gFAAC;AACpF;;;;AAIG;IACgB,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO;gFAAC;;AAElE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAmB;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3C,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,KAAK,KAAK,GAAG,OAAO,GAAG,KAAK;IAC5D,CAAC;oFAAC;IAEiB,cAAc,GAAG,QAAQ,CAAC,MAC3C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;uFACnD;AACkB,IAAA,mBAAmB,GAAG,QAAQ,CAC/C,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;4FACtD;AACkB,IAAA,kBAAkB,GAAG,QAAQ,CAC9C,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU;2FACpD;AACD;;;;;;;;;AASG;IACgB,mBAAmB,GAAG,QAAQ,CAC/C,MACE,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,QAAQ,CAAC,WAAW;AACzB,SAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC;4FACnD;AACkB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAAC;AAC5E,IAAA,QAAQ,GAAG,QAAQ,CACpC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI;iFAC3D;AAEkB,IAAA,MAAM,GAAG,QAAQ,CAAC,MACnC,gBAAgB,CAAC;QACf,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;QACzC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;KACtE,CAAC;+EACH;AAEkB,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;oFAAC;AAChE,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;sFAAC;AACpE,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;mFAAC;;AAE9D,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;QAC/B,IAAI,IAAI,KAAK,KAAK;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACzE,IAAI,IAAI,KAAK,OAAO;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACzE,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;kFAAC;AACiB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;8EAAC;AAChE,IAAA,WAAW,GAAG,QAAQ,CAAC,MACxC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;oFAClD;AAEkB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,OAAO,CAAA,EAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA,GAAA,EAAM,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA,CAAE;QACxF;AACA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO;AAAE,YAAA,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AAE/D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;AAAE,YAAA,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;AAC/D,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;AAC7D,QAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACnF,CAAC;gFAAC;AAEF,IAAA,WAAA,GAAA;AACE;;;;AAIG;AACH;AACqE;QACrE,IAAI,QAAQ,GAAqB,IAAI;QACrC,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAA,IAAI,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;gBAAE;YAC/B,QAAQ,GAAG,GAAG;AACd,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE;AAClC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/C,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;YACtD,IAAI,MAAM,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,GAAG,IAAI;gBAAE;AAC9C;AACiE;AACjE,YAAA,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI;AAChE,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;AAC1E,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClE,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE;AACjC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACzD;;IAGA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC;aACF,aAAa,CACZ,qEAAqE;cAErE,KAAK,EAAE;IACb;;AAGA,IAAA,SAAS,CAAC,IAAe,EAAA;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,CAAC;IACtD;;IAGS,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE;kFAAC;AAEtC,IAAA,SAAS,CAAC,KAAsC,EAAA;QACxD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvE;AAEU,IAAA,OAAO,CAAC,KAAsC,EAAA;AACtD,QAAA,OAAO,SAAS,CAAC;AACf,YAAA,GAAG,KAAK;AACR,YAAA,cAAc,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc;AAC5C,YAAA,UAAU,EAAE,IAAI,CAAC,kBAAkB,EAAE;AACtC,SAAA,CAAC;IACJ;AAEU,IAAA,WAAW,CAAC,IAAe,EAAA;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AAAE,YAAA,OAAO,IAAI;QAC7D,OAAO,IAAI,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;IAClD;;;AAIU,IAAA,KAAK,CAAC,GAAgB,EAAA;AAC9B,QAAA,OAAO,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,QAAQ,CAAC;IACvE;AAEA;;;AAGG;AACO,IAAA,OAAO,CAAC,GAAgB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;QAC3C,OAAO,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,OAAO;IACnE;AAEU,IAAA,MAAM,CAAC,IAAe,EAAA;QAC9B,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACtC;AAEA;;;;AAIG;IACgB,OAAO,GAAG,MAAM,CAAmB,IAAI;gFAAC;;AAG1C,IAAA,OAAO,GAAG,QAAQ,CAAC,MAClC,IAAI,CAAC,aAAa,EAAE,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ;AAC/C,UAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1D,UAAE,IAAI;gFACT;AAEgB,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,IAAI,OAAO,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI;QACjC,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;cAC/E,OAAO,CAAC;AACV,cAAE,OAAO,CAAC,KAAK;IACnB,CAAC;mFAAC;AAEQ,IAAA,UAAU,CAAC,IAAe,EAAA;AAClC,QAAA,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1D;;AAGU,IAAA,QAAQ,CAAC,IAAe,EAAA;QAChC,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IACxF;AAEU,IAAA,OAAO,CAAC,IAAe,EAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;QAC1B,OAAO,KAAK,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;IAClD;AAEU,IAAA,UAAU,CAAC,IAAe,EAAA;QAClC,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE;AAEU,IAAA,MAAM,CAAC,IAAe,EAAE,MAAoB,EAAE,MAAyB,EAAA;QAC/E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YAAE;QAChD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC;QACrF,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C;;AAGU,IAAA,UAAU,CAAC,KAAa,EAAA;QAChC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1E;;AAGU,IAAA,SAAS,CAAC,KAAa,EAAA;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,KAAK;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;IAClE;AAEA;;;AAGG;IACO,gBAAgB,CAAC,KAAa,EAAE,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,EAAA;AAClE,QAAA,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,KAAK;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;AACtB,QAAA,QACE,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK;AACpD,aAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;IAEzD;;AAGU,IAAA,WAAW,CACnB,IAAY,EACZ,KAAa,EACb,MAAoB,EACpB,MAAyB,EAAA;AAEzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC;YAAE;QAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC3C;;IAGU,QAAQ,CAAC,SAAiB,EAAE,MAAa,EAAA;AACjD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;YAChC,IAAI,CAAC,cAAc,CACjB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,EAC1D,SAAS,EACT,MAAM,CACP;YACD;QACF;AACA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/E,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC;IACtE;IAEU,MAAM,GAAA;AACd,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAC/D;IAEU,SAAS,CAAC,KAAa,EAAE,MAAa,EAAA;QAC9C,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC;AAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACrB;IAEU,QAAQ,CAAC,IAAY,EAAE,MAAa,EAAA;QAC5C,IAAI,CAAC,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC;AAC3E,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACvB;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;AACtC,QAAA,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK;QAC9D,MAAM,OAAO,GAAG,GAAG,GAAG,WAAW,GAAG,YAAY;QAChD,MAAM,QAAQ,GAAG,GAAG,GAAG,YAAY,GAAG,WAAW;AACjD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc;AAE1C;;;;;AAKG;QACH,MAAM,OAAO,GAAG,MAAK;YACnB,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;AACzB,QAAA,CAAC;AAED,QAAA,MAAM,IAAI,GAAG,CAAC,IAAe,KAAI;AAC/B,YAAA,OAAO,EAAE;YACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;AAC9C,QAAA,CAAC;AAED;;;;;AAKG;AACH,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACpD,YAAA,MAAM,OAAO,GAAG,CAAC,KAAa,KAAI;AAChC,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,EAAE,IAAI,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK;gBAC7D,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/D,YAAA,CAAC;AACD,YAAA,QAAQ,KAAK,CAAC,GAAG;AACf,gBAAA,KAAK,OAAO;AACV,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,KAAK,QAAQ;oBACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,KAAK,SAAS;oBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,gBAAA,KAAK,WAAW;AACd,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,KAAK,MAAM;AACT,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,gBAAA,KAAK,KAAK;AACR,oBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7C,gBAAA,KAAK,QAAQ;oBACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC1B,gBAAA,KAAK,OAAO;AACZ,gBAAA,KAAK,GAAG;AACN,oBAAA,OAAO,EAAE;AACT,oBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;oBAChE;AACF,gBAAA;oBACE;;QAEN;AAEA,QAAA,QAAQ,KAAK,CAAC,GAAG;AACf,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAClC,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA,KAAK,SAAS;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AACnC,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAClC,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAC1C,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACxC,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxF,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,GAAG;AACN,gBAAA,OAAO,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC;gBACvC;AACF,YAAA,KAAK,QAAQ;AACX;;AAEgD;AAChD;AACqC;gBACrC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,EAAE;oBACtF;gBACF;AACA,gBAAA,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;gBAC7D;AACF,YAAA;gBACE;;IAEN;AAEA;;;;AAIG;IACK,YAAY,GAAA;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;QAC9D,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,MAAM;AACvC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI;AACxD,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,IAAI,KAAK,KAAK,SAAS;AAAE,oBAAA,OAAO,KAAK;YACvC;AAAO,iBAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAC1B,gBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,IAAI,CAAC,KAAK;YAC5C;iBAAO;AACL,gBAAA,OAAO,IAAI;YACb;QACF;QACA,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;IACjF;AAEQ,IAAA,OAAO,CAAC,IAAkB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,SAAS;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACrD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5B;AAEQ,IAAA,YAAY,CAAC,IAAmB,EAAE,MAAoB,EAAE,MAAyB,EAAA;QACvF,MAAM,KAAK,GAAG,kBAAkB,CAAgB;AAC9C,YAAA,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE;AACxB,YAAA,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;AACpB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;AACvD,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IAClE;AAEQ,IAAA,cAAc,CAAC,IAAe,EAAE,MAAoB,EAAE,MAAyB,EAAA;AACrF,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,kBAAkB,CAAY;AAC1C,YAAA,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE;AAC9B,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;AAClC,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7D,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,KAAK,UAAU;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;QACxE,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,WAAW,EAAE;IAC3C;AAEA;;;;;;;;;;AAUG;IACK,WAAW,GAAA;QACjB,eAAe,CACb,MAAK;YACH,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa;AACvD,YAAA,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI;AAC1E,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3C,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB;YACF;YACA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CACrC,kHAAkH,CACnH;AACD,YAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB,IAAI,CAAC,KAAK,EAAE;gBACZ;YACF;YACA,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iCAAiC,CAAC,KAAK,IAAI,EAAE;AAC1E,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;gBACzB;YACF;YACA,IAAI,CAAC,WAAW,EAAE;QACpB,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5B;IACH;uGAzjBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gDAAA,EAAA,wBAAA,EAAA,mCAAA,EAAA,oBAAA,EAAA,iCAAA,EAAA,oBAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9MX,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2LN,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,+lcAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA5LM,OAAO,oFAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA+Md,UAAU,EAAA,UAAA,EAAA,CAAA;kBAnNtB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA,QAAA,EAChB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LN,KAAA,CAAA,EAAA,eAAA,EAEa,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,kBAAkB,EAAE,EAAE;AACtB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,kBAAkB,EAAE,eAAe;AACnC,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,oBAAoB,EAAE,gDAAgD;AACtE,wBAAA,0BAA0B,EAAE,mCAAmC;AAC/D,wBAAA,sBAAsB,EAAE,iCAAiC;AACzD,wBAAA,sBAAsB,EAAE,iCAAiC;AACzD,wBAAA,qBAAqB,EAAE,gCAAgC;AACvD,wBAAA,WAAW,EAAE,mBAAmB;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,+lcAAA,CAAA,EAAA;;;AChSH;;AAEG;;"}
|
|
@@ -66,19 +66,21 @@ class SlCard {
|
|
|
66
66
|
resolvedSize = computed(() => this.size() ?? this.defaults.size, /* @ts-ignore */
|
|
67
67
|
...(ngDevMode ? [{ debugName: "resolvedSize" }] : /* istanbul ignore next */ []));
|
|
68
68
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCard, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlCard, isStandalone: true, selector: "[slCard]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "card", "data-part": "root" }, properties: { "attr.data-orientation": "resolvedOrientation()", "attr.data-fill": "resolvedFill()", "attr.data-size": "resolvedSize()", "attr.data-selected": "selected() ? '' : null", "attr.data-disabled": "disabled() ? '' : null" } }, exportAs: ["slCard"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui=card]{--_card-edge-width: var(--slotted-card-border-width, var(--slotted-border-width-thin, 1px));--_card-radius: var(--slotted-card-radius, var(--slotted-radius-lg, 8px));--_card-inset-block: var(--slotted-card-padding-block, var(--slotted-space-6, 1rem));--_card-inset-inline: var(--slotted-card-padding-inline, var(--slotted-space-6, 1rem));--_card-region-gap: var(--slotted-card-region-gap, var(--slotted-space-3, .375rem));--_card-surface-rest: var(--slotted-card-background, var(--slotted-surface-raised, Canvas));--_card-edge-rest: var(--slotted-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_card-shadow-rest: var(--slotted-card-shadow, none);--_card-surface-hover: var(--_card-surface-rest);--_card-edge-hover: var( --slotted-card-border-color-hover, var(--slotted-border-strong, ButtonBorder) );--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-xs));--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-hover);--_card-shadow-active: none;--_card-surface: var(--_card-surface-rest);--_card-edge: var(--_card-edge-rest);--_card-shadow: var(--_card-shadow-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-surface-sunken, Canvas) );background-color:var(--_card-surface);--slotted-ground: var(--_card-surface);border:none;border-radius:var(--_card-radius);box-shadow:var(--_card-shadow);box-sizing:border-box;color:var(--slotted-card-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;min-inline-size:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard),box-shadow var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=card]:before{border:var(--_card-edge-width) solid var(--_card-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui=card][data-size=sm]{--_card-inset-block: var(--slotted-card-padding-block-sm, var(--slotted-space-5, .75rem));--_card-inset-inline: var(--slotted-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_card-region-gap: var(--slotted-card-region-gap-sm, var(--slotted-space-2, .25rem))}[data-ui=card][data-size=lg]{--_card-inset-block: var(--slotted-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_card-inset-inline: var(--slotted-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_card-region-gap: var(--slotted-card-region-gap-lg, var(--slotted-space-4, .5rem))}[data-ui=card][data-fill=elevated]{--_card-shadow-rest: var(--slotted-card-shadow, var(--slotted-shadow-md));--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-lg));--_card-edge-active: var(--_card-edge-rest);--_card-shadow-active: var(--slotted-shadow-sm)}[data-ui=card][data-fill=subtle]{--_card-surface-rest: var( --slotted-card-background-subtle, var(--slotted-surface-sunken, Canvas) );--_card-surface-hover: var(--slotted-surface-raised, Canvas);--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: none;--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-disabled-background, Canvas) )}[data-ui=card]:not([data-disabled]):has(:is([data-part=link],[data-part=selection] :is(input,button)):not(:disabled)):hover{--_card-surface: var(--_card-surface-hover);--_card-edge: var(--_card-edge-hover);--_card-shadow: var(--_card-shadow-hover)}[data-ui=card]:not([data-disabled]):has(:is([data-part=link],[data-part=selection] :is(input,button)):not(:disabled)){cursor:pointer}[data-ui=card]:not([data-disabled]):has([data-part=selection] :is(input,button):not(:disabled)) :where(*){cursor:inherit}[data-ui=card]:not([data-disabled]):has(:is([data-part=link],[data-part=selection] :is(input,button)):not(:disabled)):active{--_card-surface: var(--_card-surface-active);--_card-edge: var(--_card-edge-active);--_card-shadow: var(--_card-shadow-active)}[data-ui=card]>:is([data-part=header],[data-part=body],[data-part=footer]){min-inline-size:0;padding-block:var(--_card-region-gap);padding-inline:var(--_card-inset-inline)}[data-ui=card]>:is([data-part=header],[data-part=body],[data-part=footer]):first-child,[data-ui=card]>[data-part=media]+:is([data-part=header],[data-part=body],[data-part=footer]){padding-block-start:var(--_card-inset-block)}[data-ui=card]>:is([data-part=header],[data-part=body],[data-part=footer]):last-child,[data-ui=card]>:is([data-part=header],[data-part=body],[data-part=footer]):has(+[data-part=media]){padding-block-end:var(--_card-inset-block)}[data-ui=card]>[data-part=header]{align-items:start;column-gap:var(--slotted-card-header-column-gap, var(--slotted-space-5, .75rem));display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:var(--slotted-card-header-gap, var(--slotted-space-2, .25rem))}[data-ui=card]>[data-part=header]>*{grid-column:1;min-inline-size:0}[data-ui=card]>[data-part=header]>[data-part=actions]{align-items:center;display:flex;flex-wrap:wrap;align-self:center;gap:var(--slotted-card-actions-gap, var(--slotted-space-3, .375rem));grid-column:-2 / -1;grid-row:1;position:relative}[data-ui=card]>[data-part=header]:has([data-part=selection]){grid-template-columns:auto minmax(0,1fr) auto}[data-ui=card]>[data-part=header]:has([data-part=selection])>*{grid-column:2}[data-ui=card]>[data-part=header]>[data-part=selection]{--_selection-line: var( --slotted-card-selection-line, calc(var(--slotted-font-size-lg, 1rem) * var(--slotted-line-height-lg, 1.5)) );align-items:center;align-self:start;block-size:var(--_selection-line);display:flex;grid-column:1;grid-row:1;position:relative}[data-ui=card]>[data-part=header]>[data-part=selection]>:is(input,button){block-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));inline-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));margin:0}[data-ui=card]>[data-part=body]{flex:1 1 auto;min-block-size:0}[data-ui=card]>[data-part=footer]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-card-footer-gap, var(--slotted-space-4, .5rem));position:relative}[data-ui=card]>[data-ui=divider]{flex-shrink:0}[data-ui=card][data-orientation=horizontal]>[data-ui=divider]{grid-column:2}[data-ui=card]>[data-part=media]{display:block;min-inline-size:0;overflow:hidden}[data-ui=card]>[data-part=media]>:is(img,video,canvas,picture,svg){block-size:100%;display:block;inline-size:100%;object-fit:cover}[data-ui=card]>[data-part=media]:first-child{border-start-end-radius:var(--_card-radius);border-start-start-radius:var(--_card-radius)}[data-ui=card]>[data-part=media]:last-child{border-end-end-radius:var(--_card-radius);border-end-start-radius:var(--_card-radius)}[data-ui=card][data-orientation=horizontal]{container-name:slotted-card;container-type:inline-size;display:grid;inline-size:100%;grid-template-columns:var(--slotted-card-media-size, minmax(0, 1fr)) minmax(0,2fr);grid-template-rows:repeat(4,auto)}[data-ui=card][data-orientation=horizontal]>[data-part=media]{border-end-end-radius:0;border-end-start-radius:var(--_card-radius);border-start-end-radius:0;border-start-start-radius:var(--_card-radius);grid-area:1 / 1 / -1 / 2}[data-ui=card][data-orientation=horizontal]>[data-part=header]{grid-area:1 / 2}[data-ui=card][data-orientation=horizontal]>[data-part=body]{grid-area:2 / 2}[data-ui=card][data-orientation=horizontal]>[data-part=footer]{grid-area:3 / 2}@container slotted-card (max-inline-size: 24rem){[data-ui=card][data-orientation=horizontal]>[data-part=media]{border-end-start-radius:0;border-start-end-radius:var(--_card-radius);grid-area:1 / 1 / 2 / -1}[data-ui=card][data-orientation=horizontal]>[data-part=header]{grid-area:2 / 1 / 3 / -1}[data-ui=card][data-orientation=horizontal]>[data-part=body]{grid-area:3 / 1 / 4 / -1}[data-ui=card][data-orientation=horizontal]>[data-part=footer]{grid-area:4 / 1 / 5 / -1}}[data-ui=card] [data-part=link]:after{content:\"\";inset:0;position:absolute}[data-ui=card]:has(:is([data-part=link],[data-part=selection] :is(input,button)):focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui=card]:has([data-part=link]) [data-part=link]:focus-visible,[data-ui=card]:has([data-part=selection]) [data-part=selection] :is(input,button):focus-visible{outline:none}[data-ui=card][data-selected]{--_card-surface-rest: var( --slotted-card-background-selected, var(--slotted-tone-accent-surface, Canvas) );--_card-surface-hover: var( --slotted-card-background-selected-hover, var(--slotted-tone-accent-subtle-hover, Canvas) );--_card-surface-active: var( --slotted-card-background-selected-active, var(--slotted-tone-accent-subtle-active, Canvas) );--_card-edge-rest: var( --slotted-card-edge-color-selected, var(--slotted-tone-accent-border, CanvasText) );--_card-edge: var(--_card-edge-rest);--_card-edge-hover: var(--_card-edge-rest);--_card-edge-active: var(--_card-edge-rest);--_card-edge-width: var( --slotted-card-edge-width-selected, var(--slotted-border-width-thin, 1px) )}[data-ui=card][data-disabled]{--_card-surface: var(--_card-surface-disabled);--_card-edge: var( --slotted-card-border-color-disabled, var(--slotted-disabled-border, GrayText) );--_card-shadow: none;color:var(--slotted-card-color-disabled, var(--slotted-disabled-foreground, GrayText))}[data-ui=card][data-disabled] [data-part=link]:after{display:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.7", type: SlCard, isStandalone: true, selector: "[slCard]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-ui": "card", "data-ui-card": "", "data-part": "root", "data-part-root": "" }, properties: { "attr.data-orientation": "resolvedOrientation()", "attr.data-fill": "resolvedFill()", "attr.data-size": "resolvedSize()", "attr.data-selected": "selected() ? '' : null", "attr.data-disabled": "disabled() ? '' : null" } }, exportAs: ["slCard"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: ["@layer slotted.components{[data-ui-card]{--_card-edge-width: var(--slotted-card-border-width, var(--slotted-border-width-thin, 1px));--_card-radius: var(--slotted-card-radius, var(--slotted-radius-lg, 8px));--_card-inset-block: var(--slotted-card-padding-block, var(--slotted-space-6, 1rem));--_card-inset-inline: var(--slotted-card-padding-inline, var(--slotted-space-6, 1rem));--_card-region-gap: var(--slotted-card-region-gap, var(--slotted-space-3, .375rem));--_card-surface-rest: var(--slotted-card-background, var(--slotted-surface-raised, Canvas));--_card-edge-rest: var(--slotted-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_card-shadow-rest: var(--slotted-card-shadow, none);--_card-surface-hover: var(--_card-surface-rest);--_card-edge-hover: var( --slotted-card-border-color-hover, var(--slotted-border-strong, ButtonBorder) );--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-xs));--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-hover);--_card-shadow-active: none;--_card-surface: var(--_card-surface-rest);--_card-edge: var(--_card-edge-rest);--_card-shadow: var(--_card-shadow-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-surface-sunken, Canvas) );background-color:var(--_card-surface);--slotted-ground: var(--_card-surface);border:none;border-radius:var(--_card-radius);box-shadow:var(--_card-shadow);box-sizing:border-box;color:var(--slotted-card-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;min-inline-size:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard),box-shadow var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-card]:before{border:var(--_card-edge-width) solid var(--_card-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-card][data-size=sm]{--_card-inset-block: var(--slotted-card-padding-block-sm, var(--slotted-space-5, .75rem));--_card-inset-inline: var(--slotted-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_card-region-gap: var(--slotted-card-region-gap-sm, var(--slotted-space-2, .25rem))}[data-ui-card][data-size=lg]{--_card-inset-block: var(--slotted-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_card-inset-inline: var(--slotted-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_card-region-gap: var(--slotted-card-region-gap-lg, var(--slotted-space-4, .5rem))}[data-ui-card][data-fill=elevated]{--_card-shadow-rest: var(--slotted-card-shadow, var(--slotted-shadow-md));--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-lg));--_card-edge-active: var(--_card-edge-rest);--_card-shadow-active: var(--slotted-shadow-sm)}[data-ui-card][data-fill=subtle]{--_card-surface-rest: var( --slotted-card-background-subtle, var(--slotted-surface-sunken, Canvas) );--_card-surface-hover: var(--slotted-surface-raised, Canvas);--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: none;--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-disabled-background, Canvas) )}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)):hover{--_card-surface: var(--_card-surface-hover);--_card-edge: var(--_card-edge-hover);--_card-shadow: var(--_card-shadow-hover)}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)){cursor:pointer}[data-ui-card]:not([data-disabled]):has([data-part-selection] :is(input,button):not(:disabled)) :where(*){cursor:inherit}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)):active{--_card-surface: var(--_card-surface-active);--_card-edge: var(--_card-edge-active);--_card-shadow: var(--_card-shadow-active)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]){min-inline-size:0;padding-block:var(--_card-region-gap);padding-inline:var(--_card-inset-inline)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):first-child,[data-ui-card]>[data-part-media]+:is([data-part-header],[data-part-body],[data-part-footer]){padding-block-start:var(--_card-inset-block)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):last-child,[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):has(+[data-part-media]){padding-block-end:var(--_card-inset-block)}[data-ui-card]>[data-part-header]{align-items:start;column-gap:var(--slotted-card-header-column-gap, var(--slotted-space-5, .75rem));display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:var(--slotted-card-header-gap, var(--slotted-space-2, .25rem))}[data-ui-card]>[data-part-header]>*{grid-column:1;min-inline-size:0}[data-ui-card]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;align-self:center;gap:var(--slotted-card-actions-gap, var(--slotted-space-3, .375rem));grid-column:-2 / -1;grid-row:1;position:relative}[data-ui-card]>[data-part-header]:has([data-part-selection]){grid-template-columns:auto minmax(0,1fr) auto}[data-ui-card]>[data-part-header]:has([data-part-selection])>*{grid-column:2}[data-ui-card]>[data-part-header]>[data-part-selection]{--_selection-line: var( --slotted-card-selection-line, calc(var(--slotted-font-size-lg, 1rem) * var(--slotted-line-height-lg, 1.5)) );align-items:center;align-self:start;block-size:var(--_selection-line);display:flex;grid-column:1;grid-row:1;position:relative}[data-ui-card]>[data-part-header]>[data-part-selection]>:is(input,button){block-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));inline-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));margin:0}[data-ui-card]>[data-part-body]{flex:1 1 auto;min-block-size:0}[data-ui-card]>[data-part-footer]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-card-footer-gap, var(--slotted-space-4, .5rem));position:relative}[data-ui-card]>[data-ui-divider]{flex-shrink:0}[data-ui-card][data-orientation=horizontal]>[data-ui-divider]{grid-column:2}[data-ui-card]>[data-part-media]{display:block;min-inline-size:0;overflow:hidden}[data-ui-card]>[data-part-media]>:is(img,video,canvas,picture,svg){block-size:100%;display:block;inline-size:100%;object-fit:cover}[data-ui-card]>[data-part-media]:first-child{border-start-end-radius:var(--_card-radius);border-start-start-radius:var(--_card-radius)}[data-ui-card]>[data-part-media]:last-child{border-end-end-radius:var(--_card-radius);border-end-start-radius:var(--_card-radius)}[data-ui-card][data-orientation=horizontal]{container-name:slotted-card;container-type:inline-size;display:grid;inline-size:100%;grid-template-columns:var(--slotted-card-media-size, minmax(0, 1fr)) minmax(0,2fr);grid-template-rows:repeat(4,auto)}[data-ui-card][data-orientation=horizontal]>[data-part-media]{border-end-end-radius:0;border-end-start-radius:var(--_card-radius);border-start-end-radius:0;border-start-start-radius:var(--_card-radius);grid-area:1 / 1 / -1 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-header]{grid-area:1 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-body]{grid-area:2 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-footer]{grid-area:3 / 2}@container slotted-card (max-inline-size: 24rem){[data-ui-card][data-orientation=horizontal]>[data-part-media]{border-end-start-radius:0;border-start-end-radius:var(--_card-radius);grid-area:1 / 1 / 2 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-header]{grid-area:2 / 1 / 3 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-body]{grid-area:3 / 1 / 4 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-footer]{grid-area:4 / 1 / 5 / -1}}[data-ui-card] [data-part-link]:after{content:\"\";inset:0;position:absolute}[data-ui-card]:has(:is([data-part-link],[data-part-selection] :is(input,button)):focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-card]:has([data-part-link]) [data-part-link]:focus-visible,[data-ui-card]:has([data-part-selection]) [data-part-selection] :is(input,button):focus-visible{outline:none}[data-ui-card][data-selected]{--_card-surface-rest: var( --slotted-card-background-selected, var(--slotted-tone-accent-surface, Canvas) );--_card-surface-hover: var( --slotted-card-background-selected-hover, var(--slotted-tone-accent-subtle-hover, Canvas) );--_card-surface-active: var( --slotted-card-background-selected-active, var(--slotted-tone-accent-subtle-active, Canvas) );--_card-edge-rest: var( --slotted-card-edge-color-selected, var(--slotted-tone-accent-border, CanvasText) );--_card-edge: var(--_card-edge-rest);--_card-edge-hover: var(--_card-edge-rest);--_card-edge-active: var(--_card-edge-rest);--_card-edge-width: var( --slotted-card-edge-width-selected, var(--slotted-border-width-thin, 1px) )}[data-ui-card][data-disabled]{--_card-surface: var(--_card-surface-disabled);--_card-edge: var( --slotted-card-border-color-disabled, var(--slotted-disabled-border, GrayText) );--_card-shadow: none;color:var(--slotted-card-color-disabled, var(--slotted-disabled-foreground, GrayText))}[data-ui-card][data-disabled] [data-part-link]:after{display:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCard, decorators: [{
|
|
72
72
|
type: Component,
|
|
73
73
|
args: [{ selector: '[slCard]', standalone: true, exportAs: 'slCard', template: '<ng-content></ng-content>', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
74
74
|
'data-ui': 'card',
|
|
75
|
+
'data-ui-card': '',
|
|
75
76
|
'data-part': 'root',
|
|
77
|
+
'data-part-root': '',
|
|
76
78
|
'[attr.data-orientation]': 'resolvedOrientation()',
|
|
77
79
|
'[attr.data-fill]': 'resolvedFill()',
|
|
78
80
|
'[attr.data-size]': 'resolvedSize()',
|
|
79
81
|
'[attr.data-selected]': "selected() ? '' : null",
|
|
80
82
|
'[attr.data-disabled]': "disabled() ? '' : null",
|
|
81
|
-
}, styles: ["@layer slotted.components{[data-ui
|
|
83
|
+
}, styles: ["@layer slotted.components{[data-ui-card]{--_card-edge-width: var(--slotted-card-border-width, var(--slotted-border-width-thin, 1px));--_card-radius: var(--slotted-card-radius, var(--slotted-radius-lg, 8px));--_card-inset-block: var(--slotted-card-padding-block, var(--slotted-space-6, 1rem));--_card-inset-inline: var(--slotted-card-padding-inline, var(--slotted-space-6, 1rem));--_card-region-gap: var(--slotted-card-region-gap, var(--slotted-space-3, .375rem));--_card-surface-rest: var(--slotted-card-background, var(--slotted-surface-raised, Canvas));--_card-edge-rest: var(--slotted-card-border-color, var(--slotted-border-subtle, ButtonBorder));--_card-shadow-rest: var(--slotted-card-shadow, none);--_card-surface-hover: var(--_card-surface-rest);--_card-edge-hover: var( --slotted-card-border-color-hover, var(--slotted-border-strong, ButtonBorder) );--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-xs));--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-hover);--_card-shadow-active: none;--_card-surface: var(--_card-surface-rest);--_card-edge: var(--_card-edge-rest);--_card-shadow: var(--_card-shadow-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-surface-sunken, Canvas) );background-color:var(--_card-surface);--slotted-ground: var(--_card-surface);border:none;border-radius:var(--_card-radius);box-shadow:var(--_card-shadow);box-sizing:border-box;color:var(--slotted-card-color, var(--slotted-text, CanvasText));display:flex;flex-direction:column;min-inline-size:0;position:relative;transition:background-color var(--slotted-duration-short) var(--slotted-easing-standard),box-shadow var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-card]:before{border:var(--_card-edge-width) solid var(--_card-edge);border-radius:inherit;content:\"\";inset:0;pointer-events:none;position:absolute;transition:border-color var(--slotted-duration-short) var(--slotted-easing-standard)}[data-ui-card][data-size=sm]{--_card-inset-block: var(--slotted-card-padding-block-sm, var(--slotted-space-5, .75rem));--_card-inset-inline: var(--slotted-card-padding-inline-sm, var(--slotted-space-5, .75rem));--_card-region-gap: var(--slotted-card-region-gap-sm, var(--slotted-space-2, .25rem))}[data-ui-card][data-size=lg]{--_card-inset-block: var(--slotted-card-padding-block-lg, var(--slotted-space-8, 1.5rem));--_card-inset-inline: var(--slotted-card-padding-inline-lg, var(--slotted-space-8, 1.5rem));--_card-region-gap: var(--slotted-card-region-gap-lg, var(--slotted-space-4, .5rem))}[data-ui-card][data-fill=elevated]{--_card-shadow-rest: var(--slotted-card-shadow, var(--slotted-shadow-md));--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: var(--slotted-card-shadow-hover, var(--slotted-shadow-lg));--_card-edge-active: var(--_card-edge-rest);--_card-shadow-active: var(--slotted-shadow-sm)}[data-ui-card][data-fill=subtle]{--_card-surface-rest: var( --slotted-card-background-subtle, var(--slotted-surface-sunken, Canvas) );--_card-surface-hover: var(--slotted-surface-raised, Canvas);--_card-edge-hover: var(--_card-edge-rest);--_card-shadow-hover: none;--_card-surface-active: var(--slotted-tone-secondary-subtle-active);--_card-edge-active: var(--_card-edge-rest);--_card-surface-disabled: var( --slotted-card-background-disabled, var(--slotted-disabled-background, Canvas) )}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)):hover{--_card-surface: var(--_card-surface-hover);--_card-edge: var(--_card-edge-hover);--_card-shadow: var(--_card-shadow-hover)}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)){cursor:pointer}[data-ui-card]:not([data-disabled]):has([data-part-selection] :is(input,button):not(:disabled)) :where(*){cursor:inherit}[data-ui-card]:not([data-disabled]):has(:is([data-part-link],[data-part-selection] :is(input,button)):not(:disabled)):active{--_card-surface: var(--_card-surface-active);--_card-edge: var(--_card-edge-active);--_card-shadow: var(--_card-shadow-active)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]){min-inline-size:0;padding-block:var(--_card-region-gap);padding-inline:var(--_card-inset-inline)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):first-child,[data-ui-card]>[data-part-media]+:is([data-part-header],[data-part-body],[data-part-footer]){padding-block-start:var(--_card-inset-block)}[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):last-child,[data-ui-card]>:is([data-part-header],[data-part-body],[data-part-footer]):has(+[data-part-media]){padding-block-end:var(--_card-inset-block)}[data-ui-card]>[data-part-header]{align-items:start;column-gap:var(--slotted-card-header-column-gap, var(--slotted-space-5, .75rem));display:grid;grid-template-columns:minmax(0,1fr) auto;row-gap:var(--slotted-card-header-gap, var(--slotted-space-2, .25rem))}[data-ui-card]>[data-part-header]>*{grid-column:1;min-inline-size:0}[data-ui-card]>[data-part-header]>[data-part-actions]{align-items:center;display:flex;flex-wrap:wrap;align-self:center;gap:var(--slotted-card-actions-gap, var(--slotted-space-3, .375rem));grid-column:-2 / -1;grid-row:1;position:relative}[data-ui-card]>[data-part-header]:has([data-part-selection]){grid-template-columns:auto minmax(0,1fr) auto}[data-ui-card]>[data-part-header]:has([data-part-selection])>*{grid-column:2}[data-ui-card]>[data-part-header]>[data-part-selection]{--_selection-line: var( --slotted-card-selection-line, calc(var(--slotted-font-size-lg, 1rem) * var(--slotted-line-height-lg, 1.5)) );align-items:center;align-self:start;block-size:var(--_selection-line);display:flex;grid-column:1;grid-row:1;position:relative}[data-ui-card]>[data-part-header]>[data-part-selection]>:is(input,button){block-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));inline-size:var(--slotted-card-selection-size, var(--slotted-selection-size-md, 16px));margin:0}[data-ui-card]>[data-part-body]{flex:1 1 auto;min-block-size:0}[data-ui-card]>[data-part-footer]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--slotted-card-footer-gap, var(--slotted-space-4, .5rem));position:relative}[data-ui-card]>[data-ui-divider]{flex-shrink:0}[data-ui-card][data-orientation=horizontal]>[data-ui-divider]{grid-column:2}[data-ui-card]>[data-part-media]{display:block;min-inline-size:0;overflow:hidden}[data-ui-card]>[data-part-media]>:is(img,video,canvas,picture,svg){block-size:100%;display:block;inline-size:100%;object-fit:cover}[data-ui-card]>[data-part-media]:first-child{border-start-end-radius:var(--_card-radius);border-start-start-radius:var(--_card-radius)}[data-ui-card]>[data-part-media]:last-child{border-end-end-radius:var(--_card-radius);border-end-start-radius:var(--_card-radius)}[data-ui-card][data-orientation=horizontal]{container-name:slotted-card;container-type:inline-size;display:grid;inline-size:100%;grid-template-columns:var(--slotted-card-media-size, minmax(0, 1fr)) minmax(0,2fr);grid-template-rows:repeat(4,auto)}[data-ui-card][data-orientation=horizontal]>[data-part-media]{border-end-end-radius:0;border-end-start-radius:var(--_card-radius);border-start-end-radius:0;border-start-start-radius:var(--_card-radius);grid-area:1 / 1 / -1 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-header]{grid-area:1 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-body]{grid-area:2 / 2}[data-ui-card][data-orientation=horizontal]>[data-part-footer]{grid-area:3 / 2}@container slotted-card (max-inline-size: 24rem){[data-ui-card][data-orientation=horizontal]>[data-part-media]{border-end-start-radius:0;border-start-end-radius:var(--_card-radius);grid-area:1 / 1 / 2 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-header]{grid-area:2 / 1 / 3 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-body]{grid-area:3 / 1 / 4 / -1}[data-ui-card][data-orientation=horizontal]>[data-part-footer]{grid-area:4 / 1 / 5 / -1}}[data-ui-card] [data-part-link]:after{content:\"\";inset:0;position:absolute}[data-ui-card]:has(:is([data-part-link],[data-part-selection] :is(input,button)):focus-visible){outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:var(--slotted-focus-ring-offset, 2px)}[data-ui-card]:has([data-part-link]) [data-part-link]:focus-visible,[data-ui-card]:has([data-part-selection]) [data-part-selection] :is(input,button):focus-visible{outline:none}[data-ui-card][data-selected]{--_card-surface-rest: var( --slotted-card-background-selected, var(--slotted-tone-accent-surface, Canvas) );--_card-surface-hover: var( --slotted-card-background-selected-hover, var(--slotted-tone-accent-subtle-hover, Canvas) );--_card-surface-active: var( --slotted-card-background-selected-active, var(--slotted-tone-accent-subtle-active, Canvas) );--_card-edge-rest: var( --slotted-card-edge-color-selected, var(--slotted-tone-accent-border, CanvasText) );--_card-edge: var(--_card-edge-rest);--_card-edge-hover: var(--_card-edge-rest);--_card-edge-active: var(--_card-edge-rest);--_card-edge-width: var( --slotted-card-edge-width-selected, var(--slotted-border-width-thin, 1px) )}[data-ui-card][data-disabled]{--_card-surface: var(--_card-surface-disabled);--_card-edge: var( --slotted-card-border-color-disabled, var(--slotted-disabled-border, GrayText) );--_card-shadow: none;color:var(--slotted-card-color-disabled, var(--slotted-disabled-foreground, GrayText))}[data-ui-card][data-disabled] [data-part-link]:after{display:none}}\n"] }]
|
|
82
84
|
}], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], selected: [{ type: i0.Input, args: [{ isSignal: true, alias: "selected", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
83
85
|
|
|
84
86
|
/**
|
|
@@ -88,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
88
90
|
*/
|
|
89
91
|
class SlCardActions {
|
|
90
92
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardActions, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
91
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardActions, isStandalone: true, selector: "[slCardActions]", host: { attributes: { "data-part": "actions" } }, exportAs: ["slCardActions"], ngImport: i0 });
|
|
93
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardActions, isStandalone: true, selector: "[slCardActions]", host: { attributes: { "data-part": "actions", "data-part-actions": "" } }, exportAs: ["slCardActions"], ngImport: i0 });
|
|
92
94
|
}
|
|
93
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardActions, decorators: [{
|
|
94
96
|
type: Directive,
|
|
@@ -96,14 +98,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
96
98
|
selector: '[slCardActions]',
|
|
97
99
|
standalone: true,
|
|
98
100
|
exportAs: 'slCardActions',
|
|
99
|
-
host: { 'data-part': 'actions' },
|
|
101
|
+
host: { 'data-part': 'actions', 'data-part-actions': '' },
|
|
100
102
|
}]
|
|
101
103
|
}] });
|
|
102
104
|
|
|
103
105
|
/** The content. It takes whatever a card stretched to a row height has left. */
|
|
104
106
|
class SlCardBody {
|
|
105
107
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardBody, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
106
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardBody, isStandalone: true, selector: "[slCardBody]", host: { attributes: { "data-part": "body" } }, exportAs: ["slCardBody"], ngImport: i0 });
|
|
108
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardBody, isStandalone: true, selector: "[slCardBody]", host: { attributes: { "data-part": "body", "data-part-body": "" } }, exportAs: ["slCardBody"], ngImport: i0 });
|
|
107
109
|
}
|
|
108
110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardBody, decorators: [{
|
|
109
111
|
type: Directive,
|
|
@@ -111,7 +113,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
111
113
|
selector: '[slCardBody]',
|
|
112
114
|
standalone: true,
|
|
113
115
|
exportAs: 'slCardBody',
|
|
114
|
-
host: { 'data-part': 'body' },
|
|
116
|
+
host: { 'data-part': 'body', 'data-part-body': '' },
|
|
115
117
|
}]
|
|
116
118
|
}] });
|
|
117
119
|
|
|
@@ -121,7 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
121
123
|
*/
|
|
122
124
|
class SlCardFooter {
|
|
123
125
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardFooter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
124
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardFooter, isStandalone: true, selector: "[slCardFooter]", host: { attributes: { "data-part": "footer" } }, exportAs: ["slCardFooter"], ngImport: i0 });
|
|
126
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardFooter, isStandalone: true, selector: "[slCardFooter]", host: { attributes: { "data-part": "footer", "data-part-footer": "" } }, exportAs: ["slCardFooter"], ngImport: i0 });
|
|
125
127
|
}
|
|
126
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardFooter, decorators: [{
|
|
127
129
|
type: Directive,
|
|
@@ -129,14 +131,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
129
131
|
selector: '[slCardFooter]',
|
|
130
132
|
standalone: true,
|
|
131
133
|
exportAs: 'slCardFooter',
|
|
132
|
-
host: { 'data-part': 'footer' },
|
|
134
|
+
host: { 'data-part': 'footer', 'data-part-footer': '' },
|
|
133
135
|
}]
|
|
134
136
|
}] });
|
|
135
137
|
|
|
136
138
|
/** A title and the line that supports it. Both of them are Typography. */
|
|
137
139
|
class SlCardHeader {
|
|
138
140
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
139
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardHeader, isStandalone: true, selector: "[slCardHeader]", host: { attributes: { "data-part": "header" } }, exportAs: ["slCardHeader"], ngImport: i0 });
|
|
141
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardHeader, isStandalone: true, selector: "[slCardHeader]", host: { attributes: { "data-part": "header", "data-part-header": "" } }, exportAs: ["slCardHeader"], ngImport: i0 });
|
|
140
142
|
}
|
|
141
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardHeader, decorators: [{
|
|
142
144
|
type: Directive,
|
|
@@ -144,7 +146,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
144
146
|
selector: '[slCardHeader]',
|
|
145
147
|
standalone: true,
|
|
146
148
|
exportAs: 'slCardHeader',
|
|
147
|
-
host: { 'data-part': 'header' },
|
|
149
|
+
host: { 'data-part': 'header', 'data-part-header': '' },
|
|
148
150
|
}]
|
|
149
151
|
}] });
|
|
150
152
|
|
|
@@ -159,7 +161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
159
161
|
*/
|
|
160
162
|
class SlCardLink {
|
|
161
163
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardLink, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
162
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardLink, isStandalone: true, selector: "a[slCardLink]", host: { attributes: { "data-part": "link" } }, exportAs: ["slCardLink"], ngImport: i0 });
|
|
164
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardLink, isStandalone: true, selector: "a[slCardLink]", host: { attributes: { "data-part": "link", "data-part-link": "" } }, exportAs: ["slCardLink"], ngImport: i0 });
|
|
163
165
|
}
|
|
164
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardLink, decorators: [{
|
|
165
167
|
type: Directive,
|
|
@@ -167,7 +169,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
167
169
|
selector: 'a[slCardLink]',
|
|
168
170
|
standalone: true,
|
|
169
171
|
exportAs: 'slCardLink',
|
|
170
|
-
host: { 'data-part': 'link' },
|
|
172
|
+
host: { 'data-part': 'link', 'data-part-link': '' },
|
|
171
173
|
}]
|
|
172
174
|
}] });
|
|
173
175
|
|
|
@@ -178,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
178
180
|
*/
|
|
179
181
|
class SlCardMedia {
|
|
180
182
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardMedia, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
181
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardMedia, isStandalone: true, selector: "[slCardMedia]", host: { attributes: { "data-part": "media" } }, exportAs: ["slCardMedia"], ngImport: i0 });
|
|
183
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardMedia, isStandalone: true, selector: "[slCardMedia]", host: { attributes: { "data-part": "media", "data-part-media": "" } }, exportAs: ["slCardMedia"], ngImport: i0 });
|
|
182
184
|
}
|
|
183
185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardMedia, decorators: [{
|
|
184
186
|
type: Directive,
|
|
@@ -186,7 +188,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
186
188
|
selector: '[slCardMedia]',
|
|
187
189
|
standalone: true,
|
|
188
190
|
exportAs: 'slCardMedia',
|
|
189
|
-
host: { 'data-part': 'media' },
|
|
191
|
+
host: { 'data-part': 'media', 'data-part-media': '' },
|
|
190
192
|
}]
|
|
191
193
|
}] });
|
|
192
194
|
|
|
@@ -205,7 +207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
205
207
|
*/
|
|
206
208
|
class SlCardSelection {
|
|
207
209
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardSelection, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
208
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardSelection, isStandalone: true, selector: "[slCardSelection]", host: { attributes: { "data-part": "selection" } }, exportAs: ["slCardSelection"], ngImport: i0 });
|
|
210
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.7", type: SlCardSelection, isStandalone: true, selector: "[slCardSelection]", host: { attributes: { "data-part": "selection", "data-part-selection": "" } }, exportAs: ["slCardSelection"], ngImport: i0 });
|
|
209
211
|
}
|
|
210
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlCardSelection, decorators: [{
|
|
211
213
|
type: Directive,
|
|
@@ -213,7 +215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
213
215
|
selector: '[slCardSelection]',
|
|
214
216
|
standalone: true,
|
|
215
217
|
exportAs: 'slCardSelection',
|
|
216
|
-
host: { 'data-part': 'selection' },
|
|
218
|
+
host: { 'data-part': 'selection', 'data-part-selection': '' },
|
|
217
219
|
}]
|
|
218
220
|
}] });
|
|
219
221
|
|