@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-carousel.mjs","sources":["../../carousel/src/carousel-defaults.ts","../../carousel/src/carousel.ts","../../carousel/src/carousel-parts.ts","../../carousel/src/slotted-angular-carousel.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { DEFAULT_AUTOPLAY_DELAY } from '@slotted/core/carousel';\nimport type {\n CarouselAlign,\n CarouselOrientation,\n CarouselTransition,\n} from '@slotted/core/carousel';\n\nexport type {\n CarouselAlign,\n CarouselOrientation,\n CarouselSlidesPerMove,\n CarouselTransition,\n} from '@slotted/core/carousel';\n\n/** Where previous and next stand when they are children of the root. */\nexport type CarouselArrows = 'inset' | 'outside';\n\n/** The step of the control scale the round controls take. */\nexport type CarouselSize = 'sm' | 'md' | 'lg';\n\n/** What the indicators draw: a dot per page, a segment per page, or the consumer's picture. */\nexport type CarouselIndicatorsVariant = 'dots' | 'line' | 'thumbnails';\n\n/** Where the bar stands: under the viewport, or over its foot. */\nexport type CarouselControlsPlacement = 'below' | 'overlay';\n\nexport interface CarouselDefaults {\n orientation: CarouselOrientation;\n transition: CarouselTransition;\n align: CarouselAlign;\n arrows: CarouselArrows;\n size: CarouselSize;\n loop: boolean;\n draggable: boolean;\n /** The rotation's wait on a page, in milliseconds, when `autoplay` is `true`. */\n autoplayDelay: number;\n}\n\nconst FALLBACK: CarouselDefaults = {\n align: 'start',\n arrows: 'inset',\n autoplayDelay: DEFAULT_AUTOPLAY_DELAY,\n draggable: true,\n loop: false,\n orientation: 'horizontal',\n size: 'md',\n transition: 'slide',\n};\n\nexport const CAROUSEL_DEFAULTS = new InjectionToken<CarouselDefaults>('slotted carousel defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its carousels look and move; a carousel that\n * states anything itself still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideCarouselDefaults(defaults: Partial<CarouselDefaults>) {\n return {\n provide: CAROUSEL_DEFAULTS,\n useFactory: (): CarouselDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a carousel renders as here, before it states anything of its own. */\nexport function injectCarouselDefaults(): CarouselDefaults {\n return inject(CAROUSEL_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlCarouselIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-carousel-${this.count}`;\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n canStep,\n createCarouselEngine,\n createCarouselRotation,\n EMPTY_PAGES,\n stepPage,\n} from '@slotted/core/carousel';\nimport type {\n CarouselEngineHandle,\n CarouselPages,\n CarouselRotationHandle,\n CarouselSlidesPerMove,\n} from '@slotted/core/carousel';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { carouselMessages, type CarouselMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectCarouselDefaults, SlCarouselIdFactory } from './carousel-defaults';\nimport type {\n CarouselAlign,\n CarouselArrows,\n CarouselOrientation,\n CarouselSize,\n CarouselTransition,\n} from './carousel-defaults';\n\n/** Why the page moved. */\nexport type CarouselPageReason =\n 'pointer' | 'keyboard' | 'scroll' | 'timeout' | 'resize' | 'programmatic';\n\n/** Why the rotation started or stopped. */\nexport type CarouselPlayingReason = 'pointer' | 'keyboard' | 'scroll' | 'timeout' | 'programmatic';\n\nexport type CarouselPageRequest = ChangeRequest<number>;\nexport type CarouselPlayingRequest = ChangeRequest<boolean>;\n\n/** `autoplay` as an attribute is on; a number is the wait in milliseconds. */\nfunction autoplayAttribute(value: boolean | number | string | null | undefined): boolean | number {\n if (value === undefined || value === null || value === false || value === 'false') return false;\n if (value === '' || value === true || value === 'true') return true;\n const number = Number(value);\n return Number.isFinite(number) && number > 0 ? number : true;\n}\n\nfunction optionalBoolean(value: boolean | string | undefined): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n/** Whether focus arrived the way a keyboard brings it; an engine without the selector says yes. */\nfunction focusVisible(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false;\n try {\n return target.matches(':focus-visible');\n } catch {\n return true;\n }\n}\n\n/**\n * A set of slides shown a page at a time, and the controls that move it.\n *\n * **The viewport is a native scroller with snap**, so a finger, a trackpad\n * and the keyboard page it as the platform does. `@slotted/core/carousel`\n * reads the pages from the slides' own boxes, animates the scroll on the\n * theme's motion scale, drags it with a mouse and reports where a gesture\n * ended; the page a consumer owns is decided here, as a request with a reason.\n *\n * **The rotation follows the APG.** It never starts unless asked, does not\n * start for a reader who asked for reduced motion, pauses on hover and on a\n * hidden document with the time that was left, and stops on the first\n * keyboard focus inside until the rotation control starts it again.\n */\n@Component({\n selector: 'section[slCarousel]',\n standalone: true,\n exportAs: 'slCarousel',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/carousel/carousel.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'carousel',\n 'data-part': 'root',\n '[attr.aria-roledescription]': \"t('roleDescription')\",\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-transition]': 'resolvedTransition()',\n '[attr.data-align]': 'resolvedAlign()',\n '[attr.data-arrows]': 'resolvedArrows()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-draggable]': \"resolvedDraggable() ? '' : null\",\n '[attr.data-dragging]': \"dragging() ? '' : null\",\n '[attr.data-measured]': \"measured() ? '' : null\",\n '[attr.data-playing]': \"isPlaying() ? '' : null\",\n '[attr.data-paused]': \"isPlaying() && held() ? '' : null\",\n '[style.--slotted-carousel-slides-per-view]': 'slidesPerView() ?? null',\n '[style.--slotted-carousel-autoplay-delay]': \"rotates() ? delay() + 'ms' : null\",\n '(focusin)': 'onFocusIn($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave()',\n },\n})\nexport class SlCarousel {\n /** Present means the consumer owns the page, counted from 0. */\n readonly page = input<number | undefined>(undefined);\n /** The page an uncontrolled carousel starts on, read once. */\n readonly defaultPage = input(0);\n /** Present means the consumer owns whether the rotation runs. */\n readonly playing = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Whether an uncontrolled rotation starts running. */\n readonly defaultPlaying = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Turns the rotation on: present as an attribute waits the provider's delay, a number that many ms. */\n readonly autoplay = input<boolean | number, boolean | number | string | null | undefined>(false, {\n transform: autoplayAttribute,\n });\n readonly loop = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly draggable = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly orientation = input<CarouselOrientation | undefined>(undefined);\n readonly transition = input<CarouselTransition | undefined>(undefined);\n readonly align = input<CarouselAlign | undefined>(undefined);\n readonly arrows = input<CarouselArrows | undefined>(undefined);\n readonly size = input<CarouselSize | undefined>(undefined);\n /** Written as `--slotted-carousel-slides-per-view`; unset, a container query may write it. */\n readonly slidesPerView = input<number | undefined>(undefined);\n /** How many slides a page moves: a number, or `page` for the slides wholly in view. */\n readonly slidesPerMove = input<CarouselSlidesPerMove>('page');\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<CarouselMessages> | undefined>(undefined);\n\n /** The page after it moved, for `[(page)]`. */\n readonly pageChange = output<number>();\n /** Asked before the page moves, with the reason; `cancel()` keeps the page. */\n readonly pageRequest = output<CarouselPageRequest>();\n /** Whether the rotation runs, after it changed, for `[(playing)]`. */\n readonly playingChange = output<boolean>();\n /** Asked before the rotation starts or stops, with the reason. */\n readonly playingRequest = output<CarouselPlayingRequest>();\n\n private readonly defaults = injectCarouselDefaults();\n private readonly destroyRef = inject(DestroyRef);\n readonly baseId = inject(SlCarouselIdFactory).next();\n\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedTransition = computed(() => this.transition() ?? this.defaults.transition);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedArrows = computed(() => this.arrows() ?? this.defaults.arrows);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n readonly resolvedDraggable = computed(() => this.draggable() ?? this.defaults.draggable);\n /** The family's words in the language in force, with this carousel's `messages` laid over them. */\n readonly t = injectMessages(carouselMessages, this.messages);\n /** The locale in force: what the counter's numbers are written in. */\n readonly locale = injectLocale();\n readonly rotates = computed(() => this.autoplay() !== false);\n readonly delay = computed(() => {\n const value = this.autoplay();\n return typeof value === 'number' ? value : this.defaults.autoplayDelay;\n });\n\n private readonly ownPage = signal<number | null>(null);\n private readonly ownPlaying = signal<boolean | null>(null);\n private readonly visualPage = signal<number | null>(null);\n readonly pages = signal<CarouselPages>(EMPTY_PAGES);\n readonly slideIds = signal<string[]>([]);\n protected readonly measured = signal(false);\n protected readonly dragging = signal(false);\n protected readonly held = signal(false);\n private readonly revision = signal(0);\n private readonly viewportElement = signal<HTMLElement | null>(null);\n\n private engine: CarouselEngineHandle | null = null;\n private rotation: CarouselRotationHandle | null = null;\n private motion = { animate: false, announce: false };\n private placed: number | null = null;\n\n readonly pageCount = computed(() => this.pages().positions.length);\n private readonly committed = computed(\n () => this.page() ?? this.ownPage() ?? untracked(() => this.defaultPage()),\n );\n /** The page the family holds, kept inside the pages that exist. */\n readonly current = computed(() => {\n const count = this.pageCount();\n const page = this.committed();\n return count === 0 ? page : Math.min(Math.max(page, 0), count - 1);\n });\n /** The page the parts draw: the committed one, or the one a gesture is crossing. */\n readonly shown = computed(() => this.visualPage() ?? this.current());\n readonly isPlaying = computed(() => {\n if (!this.rotates()) return false;\n return this.playing() ?? this.ownPlaying() ?? this.defaultPlaying() !== false;\n });\n readonly canPrevious = computed(() =>\n canStep(this.current(), -1, this.pageCount(), this.resolvedLoop()),\n );\n readonly canNext = computed(() =>\n canStep(this.current(), 1, this.pageCount(), this.resolvedLoop()),\n );\n readonly viewportId = `${this.baseId}-viewport`;\n\n constructor() {\n afterNextRender(() => {\n const viewport = this.viewportElement();\n if (viewport !== null) this.start(viewport);\n });\n\n /** The viewport follows the page the family holds, whoever moved it. */\n effect(() => {\n const current = this.current();\n this.revision();\n this.pages();\n untracked(() => this.place(current));\n });\n\n effect(() => {\n const playing = this.isPlaying();\n const count = this.pageCount();\n untracked(() => {\n if (playing && count > 1) this.rotation?.start();\n else this.rotation?.stop();\n });\n });\n\n /** A page that stopped existing is asked away with `resize`. */\n effect(() => {\n const count = this.pageCount();\n untracked(() => {\n if (count > 0 && this.committed() > count - 1) {\n this.go(count - 1, 'resize', undefined, { instant: true });\n }\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.engine?.destroy();\n this.rotation?.destroy();\n });\n }\n\n /** The viewport hands the root its element; the root owns the engine that moves it. */\n attachViewport(element: HTMLElement) {\n this.viewportElement.set(element);\n }\n\n private start(viewport: HTMLElement) {\n const doc = viewport.ownerDocument;\n if (this.defaultPlaying() !== true && this.playing() === undefined) {\n const reduced = doc.defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)');\n if (reduced?.matches === true) this.ownPlaying.set(false);\n }\n\n const engine = createCarouselEngine(viewport, {\n orientation: () => this.resolvedOrientation(),\n align: () => this.resolvedAlign(),\n slidesPerMove: () => this.slidesPerMove(),\n transition: () => this.resolvedTransition(),\n draggable: () => this.resolvedDraggable(),\n page: () => this.current(),\n idPrefix: `${this.baseId}-slide-`,\n slideLabel: (index, count) => this.t('slide', { index: index + 1, count }),\n onPages: (pages, ids) => {\n this.pages.set(pages);\n this.slideIds.set(ids);\n this.measured.set(true);\n },\n onVisualPage: (page) => this.visualPage.set(page),\n onSettle: (page, reason, event) => this.go(page, reason, event, { instant: true }),\n onDraggingChange: (dragging) => this.dragging.set(dragging),\n onSwipe: (delta, event) => this.step(delta, 'pointer', event),\n onPeekPress: (slide, event) => {\n const target = engine.pages().pageOfSlide[slide];\n if (target !== undefined) this.go(target, 'pointer', event);\n },\n });\n this.engine = engine;\n\n if (this.rotates()) {\n this.rotation = createCarouselRotation({\n delay: () => this.delay(),\n document: doc,\n onHeldChange: (held) => this.held.set(held),\n onTick: () => this.tick(),\n });\n this.held.set(this.rotation.held());\n if (this.isPlaying() && this.pageCount() > 1) this.rotation.start();\n }\n this.place(this.current());\n }\n\n private place(current: number) {\n const engine = this.engine;\n if (engine === null) return;\n const moved = this.placed !== current;\n this.placed = current;\n engine.setCurrent(current);\n /* An unmoved page is a request the consumer refused: the viewport glides back to it. */\n engine.scrollToPage(current, { animate: moved ? this.motion.animate : true });\n const count = this.pageCount();\n if (moved && this.motion.announce && count > 0) {\n getLiveAnnouncer(this.viewportElement()?.ownerDocument).announce(\n this.t('announce', { page: current + 1, count }),\n );\n }\n this.motion = { animate: false, announce: false };\n this.rotation?.restart();\n }\n\n private tick() {\n const count = this.pageCount();\n const at = this.current();\n if (count <= 1) return;\n if (at >= count - 1 && !this.resolvedLoop()) {\n this.setPlaying(false, 'timeout');\n return;\n }\n this.go(stepPage(at, 1, count, true), 'timeout');\n }\n\n /** Asks for a page, carrying the reason and the originating event. */\n go(\n next: number,\n reason: CarouselPageReason,\n source?: Event,\n options: { instant?: boolean } = {},\n ) {\n const count = this.pageCount();\n if (count === 0 || next < 0 || next >= count) return;\n if (\n (reason === 'pointer' || reason === 'keyboard' || reason === 'scroll') &&\n this.isPlaying()\n ) {\n this.setPlaying(false, reason, source);\n }\n this.visualPage.set(null);\n this.revision.update((value) => value + 1);\n const current = this.current();\n if (next === current) return;\n\n this.motion = {\n animate: options.instant !== true,\n announce: reason === 'pointer' || reason === 'keyboard' || reason === 'scroll',\n };\n let cancelled = false;\n const state = createControllable<number>({\n controlled: this.page(),\n initial: current,\n onRequest: (request) => {\n this.pageRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n if (moved) this.ownPage.set(next);\n this.pageChange.emit(next);\n }\n\n /** Steps a page forward or back, within the ends unless the carousel loops. */\n step(delta: 1 | -1, reason: CarouselPageReason, source?: Event) {\n const count = this.pageCount();\n const current = this.current();\n if (!canStep(current, delta, count, this.resolvedLoop())) return;\n this.go(stepPage(current, delta, count, this.resolvedLoop()), reason, source);\n }\n\n /** Asks for the rotation to start or stop. */\n setPlaying(next: boolean, reason: CarouselPlayingReason, source?: Event) {\n if (!this.rotates() || next === this.isPlaying()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n controlled: this.playing(),\n initial: this.isPlaying(),\n onRequest: (request) => {\n this.playingRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n if (moved) this.ownPlaying.set(next);\n this.playingChange.emit(next);\n }\n\n /** Asks for a page with reason `programmatic`. */\n scrollTo(page: number) {\n this.go(page, 'programmatic');\n }\n\n /** Asks for the page that holds a slide, with reason `programmatic`. */\n scrollToSlide(slide: number) {\n const target = this.pages().pageOfSlide[slide];\n if (target !== undefined) this.go(target, 'programmatic');\n }\n\n /** Reads the layout again. */\n refresh() {\n this.engine?.measure();\n }\n\n protected onFocusIn(event: FocusEvent) {\n /* \"Automatic slide rotation stops when any element in the carousel receives keyboard focus.\" */\n if (this.isPlaying() && focusVisible(event.target)) this.setPlaying(false, 'keyboard', event);\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (event.pointerType === 'mouse') this.rotation?.hold('hover');\n }\n\n protected onPointerLeave() {\n this.rotation?.release('hover');\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n carouselKeyIntent,\n indicatorDistance,\n intentPage,\n revealInStrip,\n} from '@slotted/core/carousel';\nimport { createRovingTabindex } from '@slotted/core/focus';\nimport type { RovingTabindexHandle } from '@slotted/core/focus';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlCarousel } from './carousel';\nimport type { CarouselControlsPlacement, CarouselIndicatorsVariant } from './carousel-defaults';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is the rule every activating family in this library writes.\n */\nfunction activationReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/** The `aria-label` the consumer wrote, read before the host binding writes the family's. */\nfunction consumerLabel(): string | null {\n return inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/**\n * The scroller, and the one element the family moves. It takes focus of its\n * own: the arrows of its axis, `PageUp`, `PageDown`, `Home` and `End` move a\n * page, and a held key moves without animating.\n */\n@Directive({\n selector: '[slCarouselViewport]',\n standalone: true,\n host: {\n 'data-part': 'viewport',\n role: 'group',\n tabindex: '0',\n '[id]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('viewport')\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCarouselViewport {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n constructor() {\n this.carousel.attachViewport(this.element);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.target !== this.element) return;\n const direction = getComputedStyle(this.element).direction === 'rtl' ? 'rtl' : 'ltr';\n const intent = carouselKeyIntent(event.key, this.carousel.resolvedOrientation(), direction);\n if (intent === null) return;\n const target = intentPage(\n intent,\n this.carousel.shown(),\n this.carousel.pageCount(),\n this.carousel.resolvedLoop(),\n );\n if (target === -1) return;\n event.preventDefault();\n this.carousel.go(target, 'keyboard', event, { instant: event.repeat });\n }\n}\n\n/**\n * One slide. The engine names it \"3 de 8\" unless the consumer wrote a name,\n * marks it in view, and makes it `inert` when it is not.\n */\n@Directive({\n selector: '[slCarouselSlide]',\n standalone: true,\n host: {\n 'data-part': 'slide',\n role: 'group',\n '[attr.aria-roledescription]': \"carousel.t('slideRoleDescription')\",\n },\n})\nexport class SlCarouselSlide {\n protected readonly carousel = inject(SlCarousel);\n}\n\n/** The control that shows the previous page; at the first page without a loop it stays, and says so. */\n@Component({\n selector: 'button[slCarouselPrevious]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon [directional]=\"carousel.resolvedOrientation() === 'horizontal'\"\n ><svg slGlyph name=\"chevron-right\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'previous',\n type: 'button',\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('previous')\",\n '[attr.aria-disabled]': \"carousel.canPrevious() ? null : 'true'\",\n '[attr.data-disabled]': \"carousel.canPrevious() ? null : ''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselPrevious {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || !this.carousel.canPrevious()) return;\n this.carousel.step(-1, activationReason(event), event);\n }\n}\n\n/** The control that shows the next page. */\n@Component({\n selector: 'button[slCarouselNext]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon [directional]=\"carousel.resolvedOrientation() === 'horizontal'\"\n ><svg slGlyph name=\"chevron-right\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'next',\n type: 'button',\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('next')\",\n '[attr.aria-disabled]': \"carousel.canNext() ? null : 'true'\",\n '[attr.data-disabled]': \"carousel.canNext() ? null : ''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselNext {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || !this.carousel.canNext()) return;\n this.carousel.step(1, activationReason(event), event);\n }\n}\n\n/**\n * The rotation control, named by the action it performs and carrying no\n * pressed state, as the APG asks. Hidden in a carousel that does not rotate.\n */\n@Component({\n selector: 'button[slCarouselAutoplay]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon><svg slGlyph [name]=\"carousel.isPlaying() ? 'pause' : 'play'\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'autoplay',\n type: 'button',\n '[attr.hidden]': \"carousel.rotates() ? null : ''\",\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t(carousel.isPlaying() ? 'stop' : 'start')\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselAutoplay {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.carousel.setPlaying(!this.carousel.isPlaying(), activationReason(event), event);\n }\n}\n\n/** The bar the controls stand in: under the viewport, or over its foot. */\n@Directive({\n selector: '[slCarouselControls]',\n standalone: true,\n host: {\n 'data-part': 'controls',\n '[attr.data-placement]': 'placement()',\n },\n})\nexport class SlCarouselControls {\n readonly placement = input<CarouselControlsPlacement>('below');\n}\n\n/** One page in the picker. Its content is the family's mark, or what the consumer puts in it. */\n@Component({\n selector: 'button[slCarouselIndicator]',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'indicator',\n role: 'tab',\n type: 'button',\n '[attr.aria-selected]': 'current()',\n '[attr.aria-controls]': 'controls()',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.data-current]': \"current() ? '' : null\",\n '[attr.data-distance]': 'distance()',\n '[attr.tabindex]': 'current() ? 0 : -1',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselIndicator {\n /** The page this indicator shows. */\n readonly page = input.required<number>();\n protected readonly carousel = inject(SlCarousel);\n private readonly label = consumerLabel();\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n protected readonly current = computed(() => this.carousel.shown() === this.page());\n protected readonly distance = computed(() =>\n indicatorDistance(this.page(), this.carousel.shown(), this.carousel.pageCount()),\n );\n protected readonly controls = computed(() => {\n const first = this.carousel.pages().starts[this.page()];\n return first === undefined ? null : (this.carousel.slideIds()[first] ?? null);\n });\n /** A thumbnail is named by its picture; a dot or a segment by the page. */\n protected readonly resolvedLabel = computed(() => {\n if (this.label !== null) return this.label;\n if (this.element.childElementCount > 0) return null;\n return this.carousel.t('indicator', {\n page: this.page() + 1,\n count: this.carousel.pageCount(),\n });\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.carousel.go(this.page(), activationReason(event), event);\n }\n}\n\n/**\n * The template a slide picker draws each indicator from, with the page as\n * its implicit context: `<ng-template slCarouselIndicatorTemplate let-page>`.\n */\n@Directive({ selector: 'ng-template[slCarouselIndicatorTemplate]', standalone: true })\nexport class SlCarouselIndicatorTemplate {\n readonly template = inject<TemplateRef<{ $implicit: number }>>(TemplateRef);\n}\n\n/**\n * The slide picker, as the APG's tabs: one tab stop, arrows that move and\n * show and stop at the ends. Without a template the family draws a dot — or a\n * segment — per page.\n */\n@Component({\n selector: '[slCarouselIndicators]',\n standalone: true,\n imports: [NgTemplateOutlet, SlCarouselIndicator],\n template: `@for (page of pageList(); track page) {\n @if (custom(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template; context: { $implicit: page }\" />\n } @else {\n <button slCarouselIndicator [page]=\"page\"></button>\n }\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'indicators',\n role: 'tablist',\n '[attr.aria-label]': \"label ?? carousel.t('indicators')\",\n '[attr.data-variant]': 'variant()',\n '[attr.data-adaptive]': \"adaptive() ? '' : null\",\n },\n})\nexport class SlCarouselIndicators {\n readonly variant = input<CarouselIndicatorsVariant>('dots');\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n protected readonly custom = contentChild(SlCarouselIndicatorTemplate);\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private roving: RovingTabindexHandle | null = null;\n\n protected readonly pageList = computed(() =>\n Array.from({ length: this.carousel.pageCount() }, (_, index) => index),\n );\n protected readonly adaptive = computed(\n () => this.variant() === 'dots' && indicatorDistance(0, 0, this.carousel.pageCount()) !== null,\n );\n\n constructor() {\n afterNextRender(() => {\n this.roving = createRovingTabindex(this.element, {\n itemSelector: '[data-part=\"indicator\"]',\n loop: false,\n orientation: () => 'horizontal',\n onMove: (index) => this.carousel.go(index, 'keyboard'),\n });\n });\n\n effect(() => {\n const page = this.carousel.shown();\n this.pageList();\n untracked(() => {\n /* After the indicators of a new page count have rendered. */\n queueMicrotask(() => {\n this.roving?.refresh();\n this.roving?.setActive(page);\n if (this.variant() !== 'thumbnails') return;\n const item = this.element.querySelectorAll<HTMLElement>('[data-part=\"indicator\"]')[page];\n if (item !== undefined) revealInStrip(this.element, item);\n });\n });\n });\n\n inject(DestroyRef).onDestroy(() => this.roving?.destroy());\n }\n}\n\n/**\n * \"3 / 8\", hidden from assistive technology: the slides' names and the\n * announcement already say where the reader is.\n */\n@Component({\n selector: '[slCarouselCounter]',\n standalone: true,\n template: '{{ text() }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'counter',\n 'aria-hidden': 'true',\n },\n})\nexport class SlCarouselCounter {\n protected readonly carousel = inject(SlCarousel);\n private readonly number = computed(() => new Intl.NumberFormat(this.carousel.locale()));\n\n protected readonly text = computed(() => {\n const count = this.carousel.pageCount();\n const shown = count === 0 ? 0 : this.carousel.shown() + 1;\n const number = this.number();\n return `${number.format(shown)} / ${number.format(count)}`;\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-carousel.mjs","sources":["../../carousel/src/carousel-defaults.ts","../../carousel/src/carousel.ts","../../carousel/src/carousel-parts.ts","../../carousel/src/slotted-angular-carousel.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { DEFAULT_AUTOPLAY_DELAY } from '@slotted/core/carousel';\nimport type {\n CarouselAlign,\n CarouselOrientation,\n CarouselTransition,\n} from '@slotted/core/carousel';\n\nexport type {\n CarouselAlign,\n CarouselOrientation,\n CarouselSlidesPerMove,\n CarouselTransition,\n} from '@slotted/core/carousel';\n\n/** Where previous and next stand when they are children of the root. */\nexport type CarouselArrows = 'inset' | 'outside';\n\n/** The step of the control scale the round controls take. */\nexport type CarouselSize = 'sm' | 'md' | 'lg';\n\n/** What the indicators draw: a dot per page, a segment per page, or the consumer's picture. */\nexport type CarouselIndicatorsVariant = 'dots' | 'line' | 'thumbnails';\n\n/** Where the bar stands: under the viewport, or over its foot. */\nexport type CarouselControlsPlacement = 'below' | 'overlay';\n\nexport interface CarouselDefaults {\n orientation: CarouselOrientation;\n transition: CarouselTransition;\n align: CarouselAlign;\n arrows: CarouselArrows;\n size: CarouselSize;\n loop: boolean;\n draggable: boolean;\n /** The rotation's wait on a page, in milliseconds, when `autoplay` is `true`. */\n autoplayDelay: number;\n}\n\nconst FALLBACK: CarouselDefaults = {\n align: 'start',\n arrows: 'inset',\n autoplayDelay: DEFAULT_AUTOPLAY_DELAY,\n draggable: true,\n loop: false,\n orientation: 'horizontal',\n size: 'md',\n transition: 'slide',\n};\n\nexport const CAROUSEL_DEFAULTS = new InjectionToken<CarouselDefaults>('slotted carousel defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once how its carousels look and move; a carousel that\n * states anything itself still wins. Its words come from the language in force\n * (`provideSlotted`).\n */\nexport function provideCarouselDefaults(defaults: Partial<CarouselDefaults>) {\n return {\n provide: CAROUSEL_DEFAULTS,\n useFactory: (): CarouselDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a carousel renders as here, before it states anything of its own. */\nexport function injectCarouselDefaults(): CarouselDefaults {\n return inject(CAROUSEL_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlCarouselIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-carousel-${this.count}`;\n }\n}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n output,\n signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n canStep,\n createCarouselEngine,\n createCarouselRotation,\n EMPTY_PAGES,\n stepPage,\n} from '@slotted/core/carousel';\nimport type {\n CarouselEngineHandle,\n CarouselPages,\n CarouselRotationHandle,\n CarouselSlidesPerMove,\n} from '@slotted/core/carousel';\nimport { injectLocale, injectMessages } from '@slotted/angular/i18n';\nimport { carouselMessages, type CarouselMessages, type PartialMessages } from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\n\nimport { injectCarouselDefaults, SlCarouselIdFactory } from './carousel-defaults';\nimport type {\n CarouselAlign,\n CarouselArrows,\n CarouselOrientation,\n CarouselSize,\n CarouselTransition,\n} from './carousel-defaults';\n\n/** Why the page moved. */\nexport type CarouselPageReason =\n 'pointer' | 'keyboard' | 'scroll' | 'timeout' | 'resize' | 'programmatic';\n\n/** Why the rotation started or stopped. */\nexport type CarouselPlayingReason = 'pointer' | 'keyboard' | 'scroll' | 'timeout' | 'programmatic';\n\nexport type CarouselPageRequest = ChangeRequest<number>;\nexport type CarouselPlayingRequest = ChangeRequest<boolean>;\n\n/** `autoplay` as an attribute is on; a number is the wait in milliseconds. */\nfunction autoplayAttribute(value: boolean | number | string | null | undefined): boolean | number {\n if (value === undefined || value === null || value === false || value === 'false') return false;\n if (value === '' || value === true || value === 'true') return true;\n const number = Number(value);\n return Number.isFinite(number) && number > 0 ? number : true;\n}\n\nfunction optionalBoolean(value: boolean | string | undefined): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n/** Whether focus arrived the way a keyboard brings it; an engine without the selector says yes. */\nfunction focusVisible(target: EventTarget | null): boolean {\n if (!(target instanceof Element)) return false;\n try {\n return target.matches(':focus-visible');\n } catch {\n return true;\n }\n}\n\n/**\n * A set of slides shown a page at a time, and the controls that move it.\n *\n * **The viewport is a native scroller with snap**, so a finger, a trackpad\n * and the keyboard page it as the platform does. `@slotted/core/carousel`\n * reads the pages from the slides' own boxes, animates the scroll on the\n * theme's motion scale, drags it with a mouse and reports where a gesture\n * ended; the page a consumer owns is decided here, as a request with a reason.\n *\n * **The rotation follows the APG.** It never starts unless asked, does not\n * start for a reader who asked for reduced motion, pauses on hover and on a\n * hidden document with the time that was left, and stops on the first\n * keyboard focus inside until the rotation control starts it again.\n */\n@Component({\n selector: 'section[slCarousel]',\n standalone: true,\n exportAs: 'slCarousel',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/carousel/carousel.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'carousel',\n 'data-ui-carousel': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.aria-roledescription]': \"t('roleDescription')\",\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-transition]': 'resolvedTransition()',\n '[attr.data-align]': 'resolvedAlign()',\n '[attr.data-arrows]': 'resolvedArrows()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-draggable]': \"resolvedDraggable() ? '' : null\",\n '[attr.data-dragging]': \"dragging() ? '' : null\",\n '[attr.data-measured]': \"measured() ? '' : null\",\n '[attr.data-playing]': \"isPlaying() ? '' : null\",\n '[attr.data-paused]': \"isPlaying() && held() ? '' : null\",\n '[style.--slotted-carousel-slides-per-view]': 'slidesPerView() ?? null',\n '[style.--slotted-carousel-autoplay-delay]': \"rotates() ? delay() + 'ms' : null\",\n '(focusin)': 'onFocusIn($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave()',\n },\n})\nexport class SlCarousel {\n /** Present means the consumer owns the page, counted from 0. */\n readonly page = input<number | undefined>(undefined);\n /** The page an uncontrolled carousel starts on, read once. */\n readonly defaultPage = input(0);\n /** Present means the consumer owns whether the rotation runs. */\n readonly playing = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Whether an uncontrolled rotation starts running. */\n readonly defaultPlaying = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Turns the rotation on: present as an attribute waits the provider's delay, a number that many ms. */\n readonly autoplay = input<boolean | number, boolean | number | string | null | undefined>(false, {\n transform: autoplayAttribute,\n });\n readonly loop = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly draggable = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly orientation = input<CarouselOrientation | undefined>(undefined);\n readonly transition = input<CarouselTransition | undefined>(undefined);\n readonly align = input<CarouselAlign | undefined>(undefined);\n readonly arrows = input<CarouselArrows | undefined>(undefined);\n readonly size = input<CarouselSize | undefined>(undefined);\n /** Written as `--slotted-carousel-slides-per-view`; unset, a container query may write it. */\n readonly slidesPerView = input<number | undefined>(undefined);\n /** How many slides a page moves: a number, or `page` for the slides wholly in view. */\n readonly slidesPerMove = input<CarouselSlidesPerMove>('page');\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<CarouselMessages> | undefined>(undefined);\n\n /** The page after it moved, for `[(page)]`. */\n readonly pageChange = output<number>();\n /** Asked before the page moves, with the reason; `cancel()` keeps the page. */\n readonly pageRequest = output<CarouselPageRequest>();\n /** Whether the rotation runs, after it changed, for `[(playing)]`. */\n readonly playingChange = output<boolean>();\n /** Asked before the rotation starts or stops, with the reason. */\n readonly playingRequest = output<CarouselPlayingRequest>();\n\n private readonly defaults = injectCarouselDefaults();\n private readonly destroyRef = inject(DestroyRef);\n readonly baseId = inject(SlCarouselIdFactory).next();\n\n readonly resolvedOrientation = computed(() => this.orientation() ?? this.defaults.orientation);\n readonly resolvedTransition = computed(() => this.transition() ?? this.defaults.transition);\n readonly resolvedAlign = computed(() => this.align() ?? this.defaults.align);\n readonly resolvedArrows = computed(() => this.arrows() ?? this.defaults.arrows);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedLoop = computed(() => this.loop() ?? this.defaults.loop);\n readonly resolvedDraggable = computed(() => this.draggable() ?? this.defaults.draggable);\n /** The family's words in the language in force, with this carousel's `messages` laid over them. */\n readonly t = injectMessages(carouselMessages, this.messages);\n /** The locale in force: what the counter's numbers are written in. */\n readonly locale = injectLocale();\n readonly rotates = computed(() => this.autoplay() !== false);\n readonly delay = computed(() => {\n const value = this.autoplay();\n return typeof value === 'number' ? value : this.defaults.autoplayDelay;\n });\n\n private readonly ownPage = signal<number | null>(null);\n private readonly ownPlaying = signal<boolean | null>(null);\n private readonly visualPage = signal<number | null>(null);\n readonly pages = signal<CarouselPages>(EMPTY_PAGES);\n readonly slideIds = signal<string[]>([]);\n protected readonly measured = signal(false);\n protected readonly dragging = signal(false);\n protected readonly held = signal(false);\n private readonly revision = signal(0);\n private readonly viewportElement = signal<HTMLElement | null>(null);\n\n private engine: CarouselEngineHandle | null = null;\n private rotation: CarouselRotationHandle | null = null;\n private motion = { animate: false, announce: false };\n private placed: number | null = null;\n\n readonly pageCount = computed(() => this.pages().positions.length);\n private readonly committed = computed(\n () => this.page() ?? this.ownPage() ?? untracked(() => this.defaultPage()),\n );\n /** The page the family holds, kept inside the pages that exist. */\n readonly current = computed(() => {\n const count = this.pageCount();\n const page = this.committed();\n return count === 0 ? page : Math.min(Math.max(page, 0), count - 1);\n });\n /** The page the parts draw: the committed one, or the one a gesture is crossing. */\n readonly shown = computed(() => this.visualPage() ?? this.current());\n readonly isPlaying = computed(() => {\n if (!this.rotates()) return false;\n return this.playing() ?? this.ownPlaying() ?? this.defaultPlaying() !== false;\n });\n readonly canPrevious = computed(() =>\n canStep(this.current(), -1, this.pageCount(), this.resolvedLoop()),\n );\n readonly canNext = computed(() =>\n canStep(this.current(), 1, this.pageCount(), this.resolvedLoop()),\n );\n readonly viewportId = `${this.baseId}-viewport`;\n\n constructor() {\n afterNextRender(() => {\n const viewport = this.viewportElement();\n if (viewport !== null) this.start(viewport);\n });\n\n /** The viewport follows the page the family holds, whoever moved it. */\n effect(() => {\n const current = this.current();\n this.revision();\n this.pages();\n untracked(() => this.place(current));\n });\n\n effect(() => {\n const playing = this.isPlaying();\n const count = this.pageCount();\n untracked(() => {\n if (playing && count > 1) this.rotation?.start();\n else this.rotation?.stop();\n });\n });\n\n /** A page that stopped existing is asked away with `resize`. */\n effect(() => {\n const count = this.pageCount();\n untracked(() => {\n if (count > 0 && this.committed() > count - 1) {\n this.go(count - 1, 'resize', undefined, { instant: true });\n }\n });\n });\n\n this.destroyRef.onDestroy(() => {\n this.engine?.destroy();\n this.rotation?.destroy();\n });\n }\n\n /** The viewport hands the root its element; the root owns the engine that moves it. */\n attachViewport(element: HTMLElement) {\n this.viewportElement.set(element);\n }\n\n private start(viewport: HTMLElement) {\n const doc = viewport.ownerDocument;\n if (this.defaultPlaying() !== true && this.playing() === undefined) {\n const reduced = doc.defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)');\n if (reduced?.matches === true) this.ownPlaying.set(false);\n }\n\n const engine = createCarouselEngine(viewport, {\n orientation: () => this.resolvedOrientation(),\n align: () => this.resolvedAlign(),\n slidesPerMove: () => this.slidesPerMove(),\n transition: () => this.resolvedTransition(),\n draggable: () => this.resolvedDraggable(),\n page: () => this.current(),\n idPrefix: `${this.baseId}-slide-`,\n slideLabel: (index, count) => this.t('slide', { index: index + 1, count }),\n onPages: (pages, ids) => {\n this.pages.set(pages);\n this.slideIds.set(ids);\n this.measured.set(true);\n },\n onVisualPage: (page) => this.visualPage.set(page),\n onSettle: (page, reason, event) => this.go(page, reason, event, { instant: true }),\n onDraggingChange: (dragging) => this.dragging.set(dragging),\n onSwipe: (delta, event) => this.step(delta, 'pointer', event),\n onPeekPress: (slide, event) => {\n const target = engine.pages().pageOfSlide[slide];\n if (target !== undefined) this.go(target, 'pointer', event);\n },\n });\n this.engine = engine;\n\n if (this.rotates()) {\n this.rotation = createCarouselRotation({\n delay: () => this.delay(),\n document: doc,\n onHeldChange: (held) => this.held.set(held),\n onTick: () => this.tick(),\n });\n this.held.set(this.rotation.held());\n if (this.isPlaying() && this.pageCount() > 1) this.rotation.start();\n }\n this.place(this.current());\n }\n\n private place(current: number) {\n const engine = this.engine;\n if (engine === null) return;\n const moved = this.placed !== current;\n this.placed = current;\n engine.setCurrent(current);\n /* An unmoved page is a request the consumer refused: the viewport glides back to it. */\n engine.scrollToPage(current, { animate: moved ? this.motion.animate : true });\n const count = this.pageCount();\n if (moved && this.motion.announce && count > 0) {\n getLiveAnnouncer(this.viewportElement()?.ownerDocument).announce(\n this.t('announce', { page: current + 1, count }),\n );\n }\n this.motion = { animate: false, announce: false };\n this.rotation?.restart();\n }\n\n private tick() {\n const count = this.pageCount();\n const at = this.current();\n if (count <= 1) return;\n if (at >= count - 1 && !this.resolvedLoop()) {\n this.setPlaying(false, 'timeout');\n return;\n }\n this.go(stepPage(at, 1, count, true), 'timeout');\n }\n\n /** Asks for a page, carrying the reason and the originating event. */\n go(\n next: number,\n reason: CarouselPageReason,\n source?: Event,\n options: { instant?: boolean } = {},\n ) {\n const count = this.pageCount();\n if (count === 0 || next < 0 || next >= count) return;\n if (\n (reason === 'pointer' || reason === 'keyboard' || reason === 'scroll') &&\n this.isPlaying()\n ) {\n this.setPlaying(false, reason, source);\n }\n this.visualPage.set(null);\n this.revision.update((value) => value + 1);\n const current = this.current();\n if (next === current) return;\n\n this.motion = {\n animate: options.instant !== true,\n announce: reason === 'pointer' || reason === 'keyboard' || reason === 'scroll',\n };\n let cancelled = false;\n const state = createControllable<number>({\n controlled: this.page(),\n initial: current,\n onRequest: (request) => {\n this.pageRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n if (moved) this.ownPage.set(next);\n this.pageChange.emit(next);\n }\n\n /** Steps a page forward or back, within the ends unless the carousel loops. */\n step(delta: 1 | -1, reason: CarouselPageReason, source?: Event) {\n const count = this.pageCount();\n const current = this.current();\n if (!canStep(current, delta, count, this.resolvedLoop())) return;\n this.go(stepPage(current, delta, count, this.resolvedLoop()), reason, source);\n }\n\n /** Asks for the rotation to start or stop. */\n setPlaying(next: boolean, reason: CarouselPlayingReason, source?: Event) {\n if (!this.rotates() || next === this.isPlaying()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n controlled: this.playing(),\n initial: this.isPlaying(),\n onRequest: (request) => {\n this.playingRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled) return;\n if (moved) this.ownPlaying.set(next);\n this.playingChange.emit(next);\n }\n\n /** Asks for a page with reason `programmatic`. */\n scrollTo(page: number) {\n this.go(page, 'programmatic');\n }\n\n /** Asks for the page that holds a slide, with reason `programmatic`. */\n scrollToSlide(slide: number) {\n const target = this.pages().pageOfSlide[slide];\n if (target !== undefined) this.go(target, 'programmatic');\n }\n\n /** Reads the layout again. */\n refresh() {\n this.engine?.measure();\n }\n\n protected onFocusIn(event: FocusEvent) {\n /* \"Automatic slide rotation stops when any element in the carousel receives keyboard focus.\" */\n if (this.isPlaying() && focusVisible(event.target)) this.setPlaying(false, 'keyboard', event);\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (event.pointerType === 'mouse') this.rotation?.hold('hover');\n }\n\n protected onPointerLeave() {\n this.rotation?.release('hover');\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n carouselKeyIntent,\n indicatorDistance,\n intentPage,\n revealInStrip,\n} from '@slotted/core/carousel';\nimport { createRovingTabindex } from '@slotted/core/focus';\nimport type { RovingTabindexHandle } from '@slotted/core/focus';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlCarousel } from './carousel';\nimport type { CarouselControlsPlacement, CarouselIndicatorsVariant } from './carousel-defaults';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is the rule every activating family in this library writes.\n */\nfunction activationReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/** The `aria-label` the consumer wrote, read before the host binding writes the family's. */\nfunction consumerLabel(): string | null {\n return inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/**\n * The scroller, and the one element the family moves. It takes focus of its\n * own: the arrows of its axis, `PageUp`, `PageDown`, `Home` and `End` move a\n * page, and a held key moves without animating.\n */\n@Directive({\n selector: '[slCarouselViewport]',\n standalone: true,\n host: {\n 'data-part': 'viewport',\n 'data-part-viewport': '',\n role: 'group',\n tabindex: '0',\n '[id]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('viewport')\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlCarouselViewport {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n constructor() {\n this.carousel.attachViewport(this.element);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented || event.target !== this.element) return;\n const direction = getComputedStyle(this.element).direction === 'rtl' ? 'rtl' : 'ltr';\n const intent = carouselKeyIntent(event.key, this.carousel.resolvedOrientation(), direction);\n if (intent === null) return;\n const target = intentPage(\n intent,\n this.carousel.shown(),\n this.carousel.pageCount(),\n this.carousel.resolvedLoop(),\n );\n if (target === -1) return;\n event.preventDefault();\n this.carousel.go(target, 'keyboard', event, { instant: event.repeat });\n }\n}\n\n/**\n * One slide. The engine names it \"3 de 8\" unless the consumer wrote a name,\n * marks it in view, and makes it `inert` when it is not.\n */\n@Directive({\n selector: '[slCarouselSlide]',\n standalone: true,\n host: {\n 'data-part': 'slide',\n 'data-part-slide': '',\n role: 'group',\n '[attr.aria-roledescription]': \"carousel.t('slideRoleDescription')\",\n },\n})\nexport class SlCarouselSlide {\n protected readonly carousel = inject(SlCarousel);\n}\n\n/** The control that shows the previous page; at the first page without a loop it stays, and says so. */\n@Component({\n selector: 'button[slCarouselPrevious]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon [directional]=\"carousel.resolvedOrientation() === 'horizontal'\"\n ><svg slGlyph name=\"chevron-right\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'previous',\n 'data-part-previous': '',\n type: 'button',\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('previous')\",\n '[attr.aria-disabled]': \"carousel.canPrevious() ? null : 'true'\",\n '[attr.data-disabled]': \"carousel.canPrevious() ? null : ''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselPrevious {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || !this.carousel.canPrevious()) return;\n this.carousel.step(-1, activationReason(event), event);\n }\n}\n\n/** The control that shows the next page. */\n@Component({\n selector: 'button[slCarouselNext]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon [directional]=\"carousel.resolvedOrientation() === 'horizontal'\"\n ><svg slGlyph name=\"chevron-right\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'next',\n 'data-part-next': '',\n type: 'button',\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t('next')\",\n '[attr.aria-disabled]': \"carousel.canNext() ? null : 'true'\",\n '[attr.data-disabled]': \"carousel.canNext() ? null : ''\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselNext {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || !this.carousel.canNext()) return;\n this.carousel.step(1, activationReason(event), event);\n }\n}\n\n/**\n * The rotation control, named by the action it performs and carrying no\n * pressed state, as the APG asks. Hidden in a carousel that does not rotate.\n */\n@Component({\n selector: 'button[slCarouselAutoplay]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon><svg slGlyph [name]=\"carousel.isPlaying() ? 'pause' : 'play'\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'autoplay',\n 'data-part-autoplay': '',\n type: 'button',\n '[attr.hidden]': \"carousel.rotates() ? null : ''\",\n '[attr.aria-controls]': 'carousel.viewportId',\n '[attr.aria-label]': \"label ?? carousel.t(carousel.isPlaying() ? 'stop' : 'start')\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselAutoplay {\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.carousel.setPlaying(!this.carousel.isPlaying(), activationReason(event), event);\n }\n}\n\n/** The bar the controls stand in: under the viewport, or over its foot. */\n@Directive({\n selector: '[slCarouselControls]',\n standalone: true,\n host: {\n 'data-part': 'controls',\n 'data-part-controls': '',\n '[attr.data-placement]': 'placement()',\n },\n})\nexport class SlCarouselControls {\n readonly placement = input<CarouselControlsPlacement>('below');\n}\n\n/** One page in the picker. Its content is the family's mark, or what the consumer puts in it. */\n@Component({\n selector: 'button[slCarouselIndicator]',\n standalone: true,\n template: '<ng-content />',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'indicator',\n 'data-part-indicator': '',\n role: 'tab',\n type: 'button',\n '[attr.aria-selected]': 'current()',\n '[attr.aria-controls]': 'controls()',\n '[attr.aria-label]': 'resolvedLabel()',\n '[attr.data-current]': \"current() ? '' : null\",\n '[attr.data-distance]': 'distance()',\n '[attr.tabindex]': 'current() ? 0 : -1',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlCarouselIndicator {\n /** The page this indicator shows. */\n readonly page = input.required<number>();\n protected readonly carousel = inject(SlCarousel);\n private readonly label = consumerLabel();\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n\n protected readonly current = computed(() => this.carousel.shown() === this.page());\n protected readonly distance = computed(() =>\n indicatorDistance(this.page(), this.carousel.shown(), this.carousel.pageCount()),\n );\n protected readonly controls = computed(() => {\n const first = this.carousel.pages().starts[this.page()];\n return first === undefined ? null : (this.carousel.slideIds()[first] ?? null);\n });\n /** A thumbnail is named by its picture; a dot or a segment by the page. */\n protected readonly resolvedLabel = computed(() => {\n if (this.label !== null) return this.label;\n if (this.element.childElementCount > 0) return null;\n return this.carousel.t('indicator', {\n page: this.page() + 1,\n count: this.carousel.pageCount(),\n });\n });\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.carousel.go(this.page(), activationReason(event), event);\n }\n}\n\n/**\n * The template a slide picker draws each indicator from, with the page as\n * its implicit context: `<ng-template slCarouselIndicatorTemplate let-page>`.\n */\n@Directive({ selector: 'ng-template[slCarouselIndicatorTemplate]', standalone: true })\nexport class SlCarouselIndicatorTemplate {\n readonly template = inject<TemplateRef<{ $implicit: number }>>(TemplateRef);\n}\n\n/**\n * The slide picker, as the APG's tabs: one tab stop, arrows that move and\n * show and stop at the ends. Without a template the family draws a dot — or a\n * segment — per page.\n */\n@Component({\n selector: '[slCarouselIndicators]',\n standalone: true,\n imports: [NgTemplateOutlet, SlCarouselIndicator],\n template: `@for (page of pageList(); track page) {\n @if (custom(); as custom) {\n <ng-container *ngTemplateOutlet=\"custom.template; context: { $implicit: page }\" />\n } @else {\n <button slCarouselIndicator [page]=\"page\"></button>\n }\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'indicators',\n 'data-part-indicators': '',\n role: 'tablist',\n '[attr.aria-label]': \"label ?? carousel.t('indicators')\",\n '[attr.data-variant]': 'variant()',\n '[attr.data-adaptive]': \"adaptive() ? '' : null\",\n },\n})\nexport class SlCarouselIndicators {\n readonly variant = input<CarouselIndicatorsVariant>('dots');\n protected readonly carousel = inject(SlCarousel);\n protected readonly label = consumerLabel();\n protected readonly custom = contentChild(SlCarouselIndicatorTemplate);\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private roving: RovingTabindexHandle | null = null;\n\n protected readonly pageList = computed(() =>\n Array.from({ length: this.carousel.pageCount() }, (_, index) => index),\n );\n protected readonly adaptive = computed(\n () => this.variant() === 'dots' && indicatorDistance(0, 0, this.carousel.pageCount()) !== null,\n );\n\n constructor() {\n afterNextRender(() => {\n this.roving = createRovingTabindex(this.element, {\n itemSelector: '[data-part=\"indicator\"]',\n loop: false,\n orientation: () => 'horizontal',\n onMove: (index) => this.carousel.go(index, 'keyboard'),\n });\n });\n\n effect(() => {\n const page = this.carousel.shown();\n this.pageList();\n untracked(() => {\n /* After the indicators of a new page count have rendered. */\n queueMicrotask(() => {\n this.roving?.refresh();\n this.roving?.setActive(page);\n if (this.variant() !== 'thumbnails') return;\n const item = this.element.querySelectorAll<HTMLElement>('[data-part=\"indicator\"]')[page];\n if (item !== undefined) revealInStrip(this.element, item);\n });\n });\n });\n\n inject(DestroyRef).onDestroy(() => this.roving?.destroy());\n }\n}\n\n/**\n * \"3 / 8\", hidden from assistive technology: the slides' names and the\n * announcement already say where the reader is.\n */\n@Component({\n selector: '[slCarouselCounter]',\n standalone: true,\n template: '{{ text() }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'counter',\n 'data-part-counter': '',\n 'aria-hidden': 'true',\n },\n})\nexport class SlCarouselCounter {\n protected readonly carousel = inject(SlCarousel);\n private readonly number = computed(() => new Intl.NumberFormat(this.carousel.locale()));\n\n protected readonly text = computed(() => {\n const count = this.carousel.pageCount();\n const shown = count === 0 ? 0 : this.carousel.shown() + 1;\n const number = this.number();\n return `${number.format(shown)} / ${number.format(count)}`;\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|