@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-tour.mjs","sources":["../../tour/src/tour-context.ts","../../tour/src/tour-defaults.ts","../../tour/src/tour-parts.ts","../../tour/src/tour.ts","../../tour/src/slotted-angular-tour.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { Signal, TemplateRef } from '@angular/core';\nimport type { FamilyTranslator, TourMessages } from '@slotted/core/i18n';\n\nimport type { TourOutcome, TourStep } from './tour-defaults';\n\n/**\n * What a part reads from the tour around it. A token rather than the class,\n * so the parts and `sl-tour` — whose own template renders the parts — do not\n * import each other.\n */\nexport interface TourContext {\n readonly current: Signal<TourStep | null>;\n readonly position: Signal<number>;\n readonly total: Signal<number>;\n readonly first: Signal<boolean>;\n readonly last: Signal<boolean>;\n readonly pending: Signal<boolean>;\n readonly modal: Signal<boolean>;\n /** The family's words in the language in force, with the tour's and the step's `messages` laid over them. */\n readonly t: FamilyTranslator<TourMessages>;\n readonly titleId: string;\n readonly descriptionId: string;\n readonly hasDescription: Signal<boolean>;\n readonly showPrev: Signal<boolean>;\n readonly showNext: Signal<boolean>;\n readonly showSkip: Signal<boolean>;\n readonly showClose: Signal<boolean>;\n /** The body the current step renders: its own template, one written for it in the tour, or text. */\n readonly bodyTemplate: Signal<TemplateRef<unknown> | null>;\n readonly mediaTemplate: Signal<TemplateRef<unknown> | null>;\n next(source?: Event): void;\n prev(source?: Event): void;\n close(outcome: TourOutcome, source?: Event, dismiss?: boolean): void;\n onKeyDown(event: KeyboardEvent): void;\n}\n\nexport const SL_TOUR = new InjectionToken<TourContext>('slotted tour');\n","import type { PartialMessages, TourMessages } from '@slotted/core/i18n';\nimport type { TourMissing, TourOutcome, TourTarget } from '@slotted/core/tour';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { Provider, TemplateRef } from '@angular/core';\n\nexport type { TourMissing, TourOutcome, TourTarget };\n\nexport type TourSize = 'sm' | 'md' | 'lg';\n\nexport type TourSide = 'top' | 'bottom' | 'inline-start' | 'inline-end' | 'left' | 'right';\n\nexport type TourAlign = 'start' | 'center' | 'end';\n\n/** `auto` follows the viewport's size class; the other two decide it. */\nexport type TourLayout = 'auto' | 'compact' | 'regular';\n\n/** Somewhere to put the focus when the tour closes: an element, or a selector read in the document. */\nexport type TourFocusTarget = Element | string;\n\n/** Why the tour opened or closed. */\nexport type TourOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'dismiss' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** Why the current step moved. */\nexport type TourStepReason = Extract<\n ChangeRequest<string>['reason'],\n 'pointer' | 'keyboard' | 'programmatic'\n>;\n\n/**\n * The request emitted before the tour opens or closes. A close carries the\n * outcome, as `slDialog` carries its `result`.\n */\nexport interface TourOpenRequest extends ChangeRequest<boolean> {\n readonly reason: TourOpenReason;\n readonly outcome?: TourOutcome | undefined;\n}\n\nexport interface TourStepRequest extends ChangeRequest<string | null> {\n readonly reason: TourStepReason;\n}\n\n/** The words a step may say in place of the tour's: \"Start tour\", \"Got it\". */\nexport type TourStepMessages = PartialMessages<\n Pick<TourMessages, 'next' | 'prev' | 'skip' | 'done'>\n>;\n\nexport interface TourStepActions {\n prev?: boolean | undefined;\n next?: boolean | undefined;\n skip?: boolean | undefined;\n close?: boolean | undefined;\n}\n\nexport interface TourStep {\n /** Unique in the tour; the value of `step`. */\n id: string;\n /** An element, a selector, a ref-like `{ current }` or a function. Absent for a centred step. */\n target?: TourTarget;\n title: string;\n description?: string | undefined;\n /**\n * The step's body. A template renders lazily, only while its step is shown;\n * `<ng-template slTourStep=\"id\">` in the tour's content does the same\n * without naming the template here.\n */\n content?: TemplateRef<unknown> | string | undefined;\n /** An image or a video above the header, as a template, or an image URL. */\n media?: TemplateRef<unknown> | string | undefined;\n side?: TourSide | undefined;\n align?: TourAlign | undefined;\n when?: (() => boolean) | undefined;\n prepare?: ((signal: AbortSignal) => void | Promise<void>) | undefined;\n interactive?: boolean | undefined;\n advanceOn?: string | undefined;\n spotlight?: boolean | undefined;\n /** Laid over the tour's words for this step: \"Start tour\", \"Got it\". */\n messages?: TourStepMessages | undefined;\n actions?: TourStepActions | undefined;\n /** Read aloud when the step arrives while focus is elsewhere. Defaults to the title. */\n announcement?: string | undefined;\n}\n\nexport interface TourDefaults {\n align: TourAlign;\n alignOffset: number;\n arrow: boolean;\n arrowPadding: number;\n autoFocus: boolean;\n closeOnEscape: boolean;\n closeOnOutsidePress: boolean;\n collisionPadding: number;\n keyboardNavigation: boolean;\n layout: TourLayout;\n missing: TourMissing;\n modal: boolean;\n scrollIntoView: boolean;\n side: TourSide;\n sideOffset: number;\n size: TourSize;\n spotlight: boolean;\n targetTimeout: number;\n}\n\n/**\n * `closeOnOutsidePress` is off: a press on the scrim is the easiest press on\n * the page to make by accident, and it would throw away where the reader was.\n * `targetTimeout` is zero: a wait shows nothing new, so a consumer whose\n * target renders late says how late.\n */\nexport const TOUR_FALLBACK: TourDefaults = {\n align: 'center',\n alignOffset: 0,\n arrow: true,\n arrowPadding: 12,\n autoFocus: true,\n closeOnEscape: true,\n closeOnOutsidePress: false,\n collisionPadding: 8,\n keyboardNavigation: true,\n layout: 'auto',\n missing: 'center',\n modal: true,\n scrollIntoView: true,\n side: 'bottom',\n sideOffset: 0,\n size: 'md',\n spotlight: true,\n targetTimeout: 0,\n};\n\nexport const TOUR_DEFAULTS = new InjectionToken<TourDefaults>('slotted tour defaults', {\n providedIn: 'root',\n factory: () => TOUR_FALLBACK,\n});\n\n/**\n * An application decides once how its tours behave. A tour that states any of\n * it itself still wins, and so does a step. Its words come from the language\n * in force (`provideSlotted`).\n */\nexport function provideTourDefaults(defaults: Partial<TourDefaults>): Provider {\n return {\n provide: TOUR_DEFAULTS,\n useFactory: (): TourDefaults => ({ ...TOUR_FALLBACK, ...defaults }),\n };\n}\n\n/** What a tour renders as here, before it states anything of its own. */\nexport function injectTourDefaults(): TourDefaults {\n return inject(TOUR_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * two applications rendering in one server process must not share a sequence.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTourIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tour-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SL_TOUR } from './tour-context';\n\n/**\n * `<ng-template slTourStep=\"share\">`: the body of the step with that id,\n * rendered only while the step is shown. `slTourStepSlot=\"media\"` writes the\n * picture above the header instead.\n */\n@Directive({ selector: 'ng-template[slTourStep]', standalone: true })\nexport class SlTourStep {\n readonly id = input.required<string>({ alias: 'slTourStep' });\n readonly slot = input<'body' | 'media'>('body', { alias: 'slTourStepSlot' });\n readonly template = inject(TemplateRef<unknown>);\n}\n\n/**\n * `<ng-template slTourCard>`: the consumer's own arrangement of the card,\n * rendered inside the positioned layer in place of the whole anatomy.\n */\n@Directive({ selector: 'ng-template[slTourCard]', standalone: true })\nexport class SlTourCard {\n readonly template = inject(TemplateRef<unknown>);\n}\n\n/**\n * The card. `role=\"dialog\"`, named by the title part and described by the\n * description part when the step has one; `aria-modal` only on a modal step,\n * the only state in which the page behind is actually inert. The arrow keys\n * are read here. A role or an `aria-label` the consumer wrote survives.\n */\n@Directive({\n selector: '[slTourContent]',\n standalone: true,\n host: {\n 'data-part': 'content',\n tabindex: '-1',\n '[attr.role]': 'role ?? \"dialog\"',\n '[attr.aria-labelledby]': 'label === null ? tour.titleId : null',\n '[attr.aria-describedby]': 'tour.hasDescription() ? tour.descriptionId : null',\n '[attr.aria-modal]': 'tour.modal() ? \"true\" : null',\n '(keydown)': 'tour.onKeyDown($event)',\n },\n})\nexport class SlTourContent {\n protected readonly tour = inject(SL_TOUR);\n protected readonly role = inject(new HostAttributeToken('role'), { optional: true });\n protected readonly label = inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/** The step's picture, full bleed above the header; hidden when it has none. */\n@Component({\n selector: '[slTourMedia]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `@if (tour.mediaTemplate(); as media) {\n <ng-container [ngTemplateOutlet]=\"media\" />\n } @else if (url(); as src) {\n <img alt=\"\" [src]=\"src\" />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'media',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlTourMedia {\n protected readonly tour = inject(SL_TOUR);\n protected readonly url = computed(() => {\n const media = this.tour.current()?.media;\n return typeof media === 'string' ? media : null;\n });\n protected readonly shown = computed(\n () => this.tour.mediaTemplate() !== null || this.url() !== null,\n );\n}\n\n@Directive({ selector: '[slTourHeader]', standalone: true, host: { 'data-part': 'header' } })\nexport class SlTourHeader {}\n\n/** “2 of 5”, counting the steps available now; hidden in a tour of one step. */\n@Component({\n selector: '[slTourProgress]',\n standalone: true,\n template: `{{ tour.t('progress', { position: tour.position(), total: tour.total() }) }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'progress',\n '[attr.hidden]': 'tour.total() > 1 ? null : \"\"',\n },\n})\nexport class SlTourProgress {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** Closes with the outcome `close` and the reason `dismiss`. The cross is drawn unless the consumer wrote content of their own. */\n@Component({\n selector: 'button[slTourClose]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon size=\"sm\"><svg slGlyph name=\"x\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'close',\n type: 'button',\n '[attr.aria-label]': \"label ?? tour.t('close')\",\n '[attr.hidden]': 'tour.showClose() ? null : \"\"',\n '(click)': 'tour.close(\"close\", $event, true)',\n },\n})\nexport class SlTourClose {\n protected readonly tour = inject(SL_TOUR);\n protected readonly label = inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/** The step's title and the card's accessible name. Text written inside replaces it. */\n@Component({\n selector: '[slTourTitle]',\n standalone: true,\n template: `<ng-content>{{ tour.current()?.title }}</ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'title', '[id]': 'tour.titleId' },\n})\nexport class SlTourTitle {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** The step's description, and the card's accessible description; hidden when it has none. */\n@Component({\n selector: '[slTourDescription]',\n standalone: true,\n template: `{{ tour.current()?.description }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'description',\n '[id]': 'tour.descriptionId',\n '[attr.hidden]': 'tour.hasDescription() ? null : \"\"',\n },\n})\nexport class SlTourDescription {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** The step's content — a template or text — and the only part that scrolls. */\n@Component({\n selector: '[slTourBody]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `@if (tour.bodyTemplate(); as body) {\n <ng-container [ngTemplateOutlet]=\"body\" />\n } @else {\n {{ text() }}\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'body',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlTourBody {\n protected readonly tour = inject(SL_TOUR);\n protected readonly text = computed(() => {\n const content = this.tour.current()?.content;\n return typeof content === 'string' ? content : '';\n });\n protected readonly shown = computed(\n () => this.tour.bodyTemplate() !== null || this.text() !== '',\n );\n}\n\n@Directive({ selector: '[slTourFooter]', standalone: true, host: { 'data-part': 'footer' } })\nexport class SlTourFooter {}\n\n/**\n * The three actions go on the consumer's own `button slButton`. `slButton`\n * writes `data-part=\"root\"` as a static host attribute, which erases the part\n * the template wrote, so each of these writes its part back after the first\n * render, as `slTransferPart` does.\n */\nabstract class TourAction {\n protected readonly tour = inject(SL_TOUR);\n\n constructor(part: string) {\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n afterNextRender(() => host.setAttribute('data-part', part));\n }\n}\n\n/** Closes with the outcome `skip`. Hidden on the last step and in a tour of one. */\n@Directive({\n selector: 'button[slTourSkip]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showSkip() ? null : \"\"',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourSkip extends TourAction {\n constructor() {\n super('skip');\n }\n\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.tour.close('skip', event);\n }\n}\n\n/** The previous available step. Hidden on the first. */\n@Directive({\n selector: 'button[slTourPrev]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showPrev() ? null : \"\"',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourPrev extends TourAction {\n constructor() {\n super('prev');\n }\n\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.tour.prev(event);\n }\n}\n\n/**\n * The next available step, or Done on the last (`data-last`), which closes\n * with the outcome `complete`. Hidden on a step that advances on the reader's\n * own action at the target, unless the step asks for it.\n */\n@Directive({\n selector: 'button[slTourNext]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showNext() ? null : \"\"',\n '[attr.data-last]': 'tour.last() ? \"\" : null',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourNext extends TourAction {\n constructor() {\n super('next');\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.tour.pending()) return;\n this.tour.next(event);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ComponentRef } from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissReason, DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createFocusScope, tabbables } from '@slotted/core/focus';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { tourMessages, type PartialMessages, type TourMessages } from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport {\n cardFits,\n compactSide,\n createTourController,\n isCompactViewport,\n isTextEntry,\n keepOverTarget,\n stageStep,\n tourKey,\n tourProgress,\n watchTarget,\n writeTargetRect,\n} from '@slotted/core/tour';\nimport type { ResolvedStep, SpotMove, TourNavigationReason } from '@slotted/core/tour';\n\nimport { SL_TOUR } from './tour-context';\nimport type { TourContext } from './tour-context';\nimport { injectTourDefaults, SlTourIdFactory } from './tour-defaults';\nimport type {\n TourAlign,\n TourFocusTarget,\n TourLayout,\n TourMissing,\n TourOpenReason,\n TourOpenRequest,\n TourOutcome,\n TourSide,\n TourSize,\n TourStep,\n TourStepRequest,\n} from './tour-defaults';\nimport {\n SlTourBody,\n SlTourCard,\n SlTourClose,\n SlTourContent,\n SlTourDescription,\n SlTourFooter,\n SlTourHeader,\n SlTourMedia,\n SlTourNext,\n SlTourPrev,\n SlTourProgress,\n SlTourSkip,\n SlTourStep,\n SlTourTitle,\n} from './tour-parts';\n\nconst optionalBoolean = (state: boolean | string | undefined) =>\n state === undefined ? undefined : booleanAttribute(state);\n\nconst optionalNumber = (value: number | string | undefined) =>\n value === undefined ? undefined : numberAttribute(value);\n\nconst DISMISS_REASONS: Record<DismissReason, TourOpenReason> = {\n back: 'back',\n blur: 'programmatic',\n escape: 'escape',\n outsidePress: 'outsidePress',\n programmatic: 'programmatic',\n};\n\nfunction eventReason(event: Event | undefined): TourNavigationReason {\n if (event === undefined) return 'programmatic';\n if (event instanceof KeyboardEvent) return 'keyboard';\n if (event instanceof MouseEvent) return event.detail === 0 ? 'keyboard' : 'pointer';\n return 'programmatic';\n}\n\nfunction directionOf(node: Element): 'ltr' | 'rtl' {\n const declared = node.closest('[dir]')?.getAttribute('dir');\n if (declared === 'rtl' || declared === 'ltr') return declared;\n return node.ownerDocument.defaultView?.getComputedStyle(node).direction === 'rtl' ? 'rtl' : 'ltr';\n}\n\n/**\n * The frame the tour draws over the page: scrim, spotlight and the card's\n * layer. A component of its own, created inside `sl-tour` and moved to the\n * portal, because a component's view is redrawn by the signals it reads.\n * The same template as an embedded view created by hand was drawn once and\n * never again outside a harness that checks the whole tree: the tour opened\n * with no scrim, its card never appeared, and a step change removed\n * `data-open` from a frame that no longer followed its state.\n */\n@Component({\n selector: 'sl-tour-frame',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlTourBody,\n SlTourClose,\n SlTourContent,\n SlTourDescription,\n SlTourFooter,\n SlTourHeader,\n SlTourMedia,\n SlTourNext,\n SlTourPrev,\n SlTourProgress,\n SlTourSkip,\n SlTourTitle,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { style: 'display: contents' },\n template: `<div\n data-ui=\"tour\"\n data-part=\"root\"\n [attr.data-open]=\"tour.visible() && tour.arrived() ? '' : null\"\n [attr.data-modal]=\"tour.modal() ? '' : null\"\n [attr.data-spot]=\"tour.spot().move\"\n [attr.data-spotlight]=\"tour.spotlightOn() ? '' : null\"\n [attr.data-compact]=\"tour.compact() ? '' : null\"\n [attr.data-missing]=\"tour.drawn()?.missing ? '' : null\"\n [attr.data-placement]=\"tour.anchored() ? 'anchored' : 'centered'\"\n [attr.data-size]=\"tour.resolvedSize()\"\n [attr.data-align]=\"tour.anchored() ? tour.resolvedAlign() : null\"\n >\n @if (tour.modal() || tour.spotlightOn()) {\n <div data-part=\"backdrop\" aria-hidden=\"true\">\n @if (tour.spotlightOn()) {\n <div data-part=\"spotlight\"></div>\n }\n </div>\n }\n <div\n data-part=\"surface\"\n [attr.data-placement]=\"tour.anchored() ? 'anchored' : 'centered'\"\n [attr.data-ready]=\"tour.ready() ? '' : null\"\n [attr.data-leaving]=\"tour.leaving() ? '' : null\"\n >\n @if (!tour.modal()) {\n <span\n data-part=\"focus-guard\"\n tabindex=\"0\"\n aria-hidden=\"true\"\n (focus)=\"tour.onGuardFocus()\"\n ></span>\n }\n @if (tour.anchored() && tour.resolvedArrow()) {\n <div data-part=\"arrow\"></div>\n }\n @if (tour.card(); as custom) {\n <ng-container [ngTemplateOutlet]=\"custom.template\" />\n } @else {\n <div slTourContent>\n <div slTourMedia></div>\n <div slTourHeader>\n <p slTourProgress></p>\n <button slTourClose></button>\n </div>\n <h2 slTourTitle></h2>\n <p slTourDescription></p>\n <div slTourBody></div>\n <div slTourFooter>\n <button slButton slTourSkip size=\"sm\" tone=\"secondary\" variant=\"ghost\">\n {{ tour.t('skip') }}\n </button>\n <button slButton slTourPrev size=\"sm\" tone=\"secondary\" variant=\"outline\">\n {{ tour.t('prev') }}\n </button>\n <button\n slButton\n slTourNext\n size=\"sm\"\n tone=\"accent\"\n variant=\"solid\"\n [loading]=\"tour.pending()\"\n [messages]=\"{ loading: tour.t('preparing') }\"\n >\n {{ tour.t(tour.last() ? 'done' : 'next') }}\n </button>\n </div>\n </div>\n }\n @if (!tour.modal()) {\n <span\n data-part=\"focus-guard\"\n tabindex=\"0\"\n aria-hidden=\"true\"\n (focus)=\"tour.onGuardFocus()\"\n ></span>\n }\n </div>\n </div>`,\n})\nexport class SlTourFrame {\n protected readonly tour = inject(SL_TOUR) as unknown as SlTour;\n}\n\n/**\n * A guided walk through an interface, one step at a time.\n *\n * `open` and `step` are two-way; `@slotted/core/tour` owns everything between\n * a press and a card — conditions, preparation, a target that arrives late or\n * never. The frame is built from a template and portalled to the end of the\n * document, as `slPopoverLayer`'s is. A modal step makes the page `inert` and\n * keeps focus in the card; an interactive step leaves the page reachable so\n * the reader can operate the target.\n *\n * With no `ng-template slTourCard` inside, it renders the whole card.\n */\n@Component({\n selector: 'sl-tour',\n standalone: true,\n exportAs: 'slTour',\n imports: [SlTourFrame],\n providers: [{ provide: SL_TOUR, useExisting: forwardRef(() => SlTour) }],\n styleUrls: ['../../../styles/src/tour/tour.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-container #outlet></ng-container>`,\n})\nexport class SlTour implements TourContext {\n readonly steps = input.required<readonly TourStep[]>();\n /** Whether the tour is showing. Two-way. */\n readonly open = model<boolean>(false);\n /** The current step's id. Two-way; `null` is the first available step. */\n readonly step = model<string | null>(null);\n\n readonly size = input<TourSize | undefined>(undefined);\n /** `compact` or `regular` decide the phone composition; `auto` takes it below 600 pixels of viewport. */\n readonly layout = input<TourLayout | undefined>(undefined);\n readonly side = input<TourSide | undefined>(undefined);\n readonly align = input<TourAlign | undefined>(undefined);\n readonly missing = input<TourMissing | undefined>(undefined);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<TourMessages> | undefined>(undefined);\n readonly finalFocus = input<TourFocusTarget | undefined>(undefined);\n\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly modalInput = input<boolean | undefined, boolean | string | undefined>(undefined, {\n alias: 'modal',\n transform: optionalBoolean,\n });\n readonly spotlight = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly autoFocus = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnEscape = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnOutsidePress = input<boolean | undefined, boolean | string | undefined>(\n undefined,\n { transform: optionalBoolean },\n );\n readonly scrollIntoView = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly keyboardNavigation = input<boolean | undefined, boolean | string | undefined>(\n undefined,\n { transform: optionalBoolean },\n );\n readonly targetTimeout = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly sideOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly alignOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly collisionPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly arrowPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n\n /** One output per transition, carrying the reason, the event and — on a close — the outcome. */\n readonly openChangeRequest = output<TourOpenRequest>();\n readonly stepChangeRequest = output<TourStepRequest>();\n\n readonly card = contentChild(SlTourCard);\n private readonly stepTemplates = contentChildren(SlTourStep);\n /**\n * Where the frame's view is inserted: inside this component's own view, so\n * the signals its template reads mark this component for check. Inserted\n * into the host's container instead — the parent's view — the frame was\n * never redrawn after the first time outside a test harness that checks the\n * whole tree: the tour opened with no scrim and its card never appeared.\n * The frame's nodes are then moved to the portal, as before.\n */\n private readonly outlet = viewChild.required('outlet', { read: ViewContainerRef });\n\n private readonly defaults = injectTourDefaults();\n private readonly base = inject(SlTourIdFactory).next();\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private readonly document = inject(ViewContainerRef).element.nativeElement\n .ownerDocument as Document;\n\n readonly titleId = `${this.base}-title`;\n readonly descriptionId = `${this.base}-description`;\n\n /* ── Resolution ─────────────────────────────────────────────────────── */\n\n private readonly shown = signal<ResolvedStep<TourStep> | null>(null);\n /** The cutout's target and the movement that brings it there. */\n readonly spot = signal<{ target: Element | null; move: SpotMove }>({\n target: null,\n move: 'rest',\n });\n readonly leaving = signal(false);\n /** The card of the drawn step has been placed, and may be shown. */\n readonly ready = signal(false);\n private staging: AbortController | null = null;\n readonly pending = signal(false);\n /** The last step drawn, kept through the exit so the card leaves as it was. */\n readonly drawn = signal<ResolvedStep<TourStep> | null>(null);\n readonly current = computed(() => this.drawn()?.step ?? null);\n\n /** The tour's own words and the drawn step's, laid over the catalog in that order. */\n private readonly override = computed(() => {\n const step = this.current()?.messages;\n return step === undefined ? this.messages() : { ...this.messages(), ...step };\n });\n /** The family's words in the language in force, with the tour's and the step's `messages` laid over them. */\n readonly t = injectMessages(tourMessages, this.override);\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n /** The viewport is in the compact size class: a lateral side turns vertical, the card takes the width. */\n private readonly narrow = signal(false);\n readonly compact = computed(() => {\n const layout = this.layout() ?? this.defaults.layout;\n return layout === 'compact' || (layout === 'auto' && this.narrow());\n });\n /** The target leaves a card room on some side; when it does not, the card is centred over it. */\n private readonly fits = signal(true);\n readonly resolvedSide = computed(() =>\n compactSide(this.current()?.side ?? this.side() ?? this.defaults.side, this.compact()),\n );\n readonly resolvedAlign = computed(\n () => this.current()?.align ?? this.align() ?? this.defaults.align,\n );\n readonly resolvedArrow = computed(() => this.arrow() ?? this.defaults.arrow);\n readonly modal = computed(\n () => (this.modalInput() ?? this.defaults.modal) && this.current()?.interactive !== true,\n );\n private readonly resolvedSpotlight = computed(\n () => this.current()?.spotlight ?? this.spotlight() ?? this.defaults.spotlight,\n );\n private readonly hasTarget = computed(() => (this.drawn()?.target ?? null) !== null);\n readonly anchored = computed(() => this.hasTarget() && this.fits());\n readonly spotlightOn = computed(() => this.resolvedSpotlight() && this.spot().target !== null);\n\n private readonly progress = computed(() =>\n tourProgress(this.steps(), this.current()?.id ?? null),\n );\n readonly position = computed(() => this.progress().position);\n readonly total = computed(() => this.progress().total);\n readonly first = computed(() => this.progress().first);\n readonly last = computed(() => this.progress().last);\n readonly hasDescription = computed(() => (this.current()?.description ?? '') !== '');\n\n readonly showPrev = computed(() => this.current()?.actions?.prev ?? !this.first());\n readonly showSkip = computed(\n () => this.current()?.actions?.skip ?? (!this.last() && this.total() > 1),\n );\n readonly showClose = computed(() => this.current()?.actions?.close ?? true);\n readonly showNext = computed(\n () => this.current()?.actions?.next ?? this.current()?.advanceOn === undefined,\n );\n\n private readonly namedTemplate = (slot: 'body' | 'media') =>\n this.stepTemplates().find((entry) => entry.id() === this.current()?.id && entry.slot() === slot)\n ?.template ?? null;\n\n readonly bodyTemplate = computed(() => {\n const content = this.current()?.content;\n return typeof content === 'object' && content !== null ? content : this.namedTemplate('body');\n });\n readonly mediaTemplate = computed(() => {\n const media = this.current()?.media;\n return typeof media === 'object' && media !== null ? media : this.namedTemplate('media');\n });\n\n private readonly controller = createTourController<TourStep>({\n steps: () => this.steps(),\n settings: () => ({\n missing: this.missing() ?? this.defaults.missing,\n targetTimeout: this.targetTimeout() ?? this.defaults.targetTimeout,\n }),\n onShow: (resolved) => this.shown.set(resolved),\n onPending: (value) => {\n if (value) {\n const card = this.document.activeElement?.closest('[data-ui=\"tour\"] [data-part=\"content\"]');\n this.leftFromCard = card !== null && card !== undefined;\n }\n this.pending.set(value);\n },\n requestStep: (id, reason, source) => this.requestStep(id, reason, source as Event | undefined),\n requestClose: (outcome, reason, source) =>\n this.requestOpen(false, reason, outcome, source as Event | undefined),\n });\n\n /* ── Frame, presence and layer ──────────────────────────────────────── */\n\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n readonly visible = computed(() => this.open() && this.drawn() !== null);\n /**\n * `data-open` is written a frame after the frame exists, so the scrim and\n * the card have a closed style to arrive from.\n */\n readonly arrived = signal(false);\n private readonly mounted = computed(\n () => this.drawn() !== null && (this.visible() || this.status() !== 'unmounted'),\n );\n private readonly rootNode = signal<HTMLElement | null>(null);\n private frameRef: ComponentRef<SlTourFrame> | null = null;\n private portal: PortalRootHandle | null = null;\n private closing: TourOutcome | undefined = undefined;\n private opener: HTMLElement | null = null;\n private focusedStep: string | null = null;\n /** Whether focus was in the card when the reader asked to move; a dialog a step opens may take it meanwhile. */\n private leftFromCard = false;\n private layerHandle: DismissableLayerHandle | null = null;\n private readonly layer = signal<DismissableLayerHandle | null>(null);\n /** The target of an interactive step, which a press on is not a press outside. */\n private readonly interactiveTarget = computed(() =>\n this.current()?.interactive === true ? (this.drawn()?.target ?? null) : null,\n );\n private reposition_: () => void = () => {};\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n effect(() => {\n const open = this.open();\n const id = this.step();\n untracked(() => {\n if (open) {\n if (this.opener === null) {\n const active = this.document.activeElement;\n this.opener =\n active instanceof HTMLElement && active !== this.document.body ? active : null;\n }\n this.controller.sync(id);\n return;\n }\n this.controller.reset();\n this.shown.set(null);\n this.pending.set(false);\n this.restoreFocus();\n const outcome = this.closing;\n this.closing = undefined;\n if (outcome !== undefined && outcome !== 'close') this.step.set(null);\n });\n });\n\n /* The steps changed under an open tour: the shown one may have gone. */\n effect(() => {\n const steps = this.steps();\n const shown = untracked(() => this.shown());\n if (shown !== null && !steps.some((candidate) => candidate.id === shown.step.id)) {\n untracked(() => this.controller.sync(null));\n }\n });\n\n effect(() => this.presence.sync(this.visible()));\n effect((onCleanup) => {\n const root = this.rootNode();\n if (root === null || !this.visible()) {\n untracked(() => this.arrived.set(false));\n return;\n }\n const frame = requestAnimationFrame(() => this.arrived.set(true));\n onCleanup(() => cancelAnimationFrame(frame));\n });\n effect(() => (this.mounted() ? this.build() : this.teardown()));\n\n /**\n * Every step the controller shows is staged: the old card leaves while the\n * cutout moves and the page scrolls, and the new card arrives once the\n * cutout has landed (`@slotted/core/tour`'s `stageStep`). `drawn` is the\n * step whose card is on screen, and it trails `shown` by that sequence.\n */\n effect(() => {\n const shown = this.shown();\n untracked(() => {\n this.staging?.abort();\n this.staging = null;\n if (shown === null) return;\n const run = new AbortController();\n this.staging = run;\n const opening = this.drawn() === null;\n void stageStep({\n /* Before the tour has an element of its own, the target — or the\n tour's own host — stands in the theme's region and carries the\n same duration tokens. */\n root: this.rootNode() ?? shown.target ?? this.viewContainer.element.nativeElement,\n from: opening ? undefined : this.spot().target,\n to: shown.target,\n scroll: this.scrollIntoView() ?? this.defaults.scrollIntoView,\n signal: run.signal,\n spot: (target, move) => {\n /* Written on the element at once, before the rectangle it moves to\n is: a transition needs its property in place before the value\n changes, and the frame's bindings are drawn a tick later. */\n this.rootNode()?.setAttribute('data-spot', move);\n this.spot.set({ target, move });\n },\n card: (phase) => {\n if (phase === 'leave') {\n this.leaving.set(true);\n return;\n }\n this.ready.set(false);\n /* Whether the arriving card fits beside its target is its own\n target's answer, taken as it arrives. */\n const rect = shown.target?.getBoundingClientRect();\n const view = this.document.defaultView;\n this.fits.set(\n rect === undefined ||\n view === null ||\n cardFits(\n { x: rect.left, y: rect.top, width: rect.width, height: rect.height },\n { width: view.innerWidth, height: view.innerHeight },\n ),\n );\n this.drawn.set(shown);\n this.leaving.set(false);\n },\n });\n });\n });\n\n effect((onCleanup) => {\n const root = this.rootNode();\n const target = this.spot().target;\n if (root === null) return;\n if (target === null) {\n writeTargetRect(root, null);\n return;\n }\n onCleanup(\n watchTarget(target, {\n onRect: (rect) => {\n writeTargetRect(root, rect);\n const view = this.document.defaultView;\n /* Only the card's own target answers whether the card fits beside it. */\n if (view !== null && target === untracked(() => this.drawn()?.target)) {\n this.fits.set(cardFits(rect, { width: view.innerWidth, height: view.innerHeight }));\n }\n },\n onRemoved: () => this.controller.markMissing(),\n }),\n );\n });\n\n effect((onCleanup) => {\n const view = this.document.defaultView;\n if (!this.mounted() || view === null) return;\n const update = () => this.narrow.set(isCompactViewport(view));\n update();\n view.addEventListener('resize', update, { passive: true });\n onCleanup(() => view.removeEventListener('resize', update));\n });\n\n effect((onCleanup) => this.place(onCleanup));\n effect((onCleanup) => this.stack(onCleanup));\n effect((onCleanup) => {\n const layer = this.layer();\n const branch = this.interactiveTarget();\n if (layer === null || branch === null) return;\n onCleanup(layer.addBranch(branch));\n });\n\n effect((onCleanup) => {\n const root = this.rootNode();\n if (root === null || !this.visible() || !this.modal()) return;\n const scope = createFocusScope(root, { contain: true, initial: false, restore: false });\n onCleanup(() => scope.destroy());\n });\n\n effect(() => {\n const drawn = this.drawn();\n const root = this.rootNode();\n /* A frame still hidden until the frame it arrives in cannot take focus. */\n if (!this.visible() || !this.arrived() || drawn === null || root === null) return;\n afterNextRender(() => this.focusStep(drawn, root), { injector: this.injector });\n });\n\n /**\n * A step whose target lives in a layer opened after the tour — a dialog its\n * `prepare` opened — would stand under that layer, inert and unreachable.\n * The tour is raised back over it, in the document and in the stack.\n */\n effect((onCleanup) => {\n const root = this.rootNode();\n const target = this.spot().target;\n /* The portal's own element, which stands beside the other layers; the\n root's parent is the frame component's host. */\n const layerNode = root === null ? null : (this.portal?.container ?? null);\n if (!this.visible() || target === null || layerNode === null) return;\n onCleanup(\n keepOverTarget(layerNode, target, () => {\n this.portal?.raise();\n this.layerHandle?.raise();\n }),\n );\n });\n\n effect((onCleanup) => {\n const target = this.drawn()?.target ?? null;\n const event = this.current()?.advanceOn;\n if (!this.visible() || target === null || event === undefined) return;\n const listener = (source: Event) => this.controller.next(eventReason(source), source);\n target.addEventListener(event, listener);\n onCleanup(() => target.removeEventListener(event, listener));\n });\n\n destroyRef.onDestroy(() => {\n this.controller.destroy();\n this.presence.destroy();\n this.teardown();\n });\n }\n\n /* ── The two values ─────────────────────────────────────────────────── */\n\n private requestOpen(\n next: boolean,\n reason: TourOpenReason,\n outcome: TourOutcome | undefined,\n source: Event | undefined,\n ) {\n if (next === this.open()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (raw) => {\n this.openChangeRequest.emit({\n get cancelled() {\n return raw.cancelled;\n },\n cancel: () => raw.cancel(),\n outcome,\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n });\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n if (!next) this.closing = outcome;\n this.open.set(next);\n }\n\n private requestStep(id: string, reason: TourNavigationReason, source: Event | undefined) {\n if (id === this.step()) {\n this.controller.sync(id);\n return;\n }\n let cancelled = false;\n const state = createControllable<string | null>({\n initial: this.step(),\n onRequest: (raw) => {\n this.stepChangeRequest.emit({\n get cancelled() {\n return raw.cancelled;\n },\n cancel: () => raw.cancel(),\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n });\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(id, reason, source);\n if (!cancelled && moved) this.step.set(id);\n }\n\n /* ── The handle a template reaches through exportAs ─────────────────── */\n\n /** Opens the tour at a step, or at the first available one. */\n start(id?: string) {\n if (id !== undefined) this.requestStep(id, 'programmatic', undefined);\n this.requestOpen(true, 'programmatic', undefined, undefined);\n }\n\n next(source?: Event) {\n this.controller.next(eventReason(source), source);\n }\n\n prev(source?: Event) {\n this.controller.prev(eventReason(source), source);\n }\n\n goTo(id: string) {\n this.controller.goTo(id, 'programmatic');\n }\n\n close(outcome: TourOutcome = 'close', source?: Event, dismiss = false) {\n this.requestOpen(false, dismiss ? 'dismiss' : eventReason(source), outcome, source);\n }\n\n /** Measures the target and the card again, after the page moved without scrolling. */\n reposition() {\n this.reposition_();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!(this.keyboardNavigation() ?? this.defaults.keyboardNavigation)) return;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const origin = event.target instanceof Element ? event.target : null;\n if (isTextEntry(origin)) return;\n const action = tourKey(event.key, origin === null ? 'ltr' : directionOf(origin));\n if (action === null) return;\n event.preventDefault();\n if (action === 'next') this.controller.next('keyboard', event);\n else this.controller.prev('keyboard', event);\n }\n\n onGuardFocus() {\n const target = this.drawn()?.target;\n let destination: HTMLElement | null = null;\n if (target instanceof HTMLElement) {\n destination = tabbables(target)[0] ?? (target.tabIndex >= 0 ? target : null);\n }\n (destination ?? this.contentNode())?.focus();\n }\n\n /* ── The frame ──────────────────────────────────────────────────────── */\n\n private contentNode(): HTMLElement | null {\n return this.rootNode()?.querySelector<HTMLElement>('[data-part=\"content\"]') ?? null;\n }\n\n private build() {\n if (untracked(() => this.rootNode()) !== null) return;\n const frame = untracked(() => this.outlet()).createComponent(SlTourFrame);\n frame.changeDetectorRef.detectChanges();\n const element: HTMLElement = frame.location.nativeElement;\n const root = element.querySelector<HTMLElement>('[data-ui=\"tour\"]');\n if (root === null) return;\n\n /**\n * The layer inherits its theme, scheme, density and direction from its\n * origin. The tour's own element stands where the consumer wrote it, in\n * the region whose theme the layer belongs to, which a centred first step\n * with no target could not otherwise say.\n */\n const host: Element = this.viewContainer.element.nativeElement;\n const portal = createPortalRoot({ origin: untracked(() => this.drawn()?.target ?? host) });\n (portal.container ?? this.document.body).appendChild(element);\n\n this.frameRef = frame;\n this.portal = portal;\n this.presence.setNode(root);\n this.rootNode.set(root);\n }\n\n private teardown() {\n const root = untracked(() => this.rootNode());\n if (root === null && this.frameRef === null) return;\n this.presence.setNode(null);\n this.frameRef?.location.nativeElement.remove();\n this.rootNode.set(null);\n this.frameRef?.destroy();\n this.frameRef = null;\n this.portal?.release();\n this.portal = null;\n untracked(() => {\n this.drawn.set(null);\n this.spot.set({ target: null, move: 'rest' });\n this.leaving.set(false);\n this.ready.set(false);\n });\n }\n\n private place(onCleanup: (cleanup: () => void) => void) {\n const root = this.rootNode();\n const target = this.anchored() ? (this.drawn()?.target ?? null) : null;\n const stepId = this.current()?.id;\n const options = {\n align: this.resolvedAlign(),\n alignOffset: this.alignOffset() ?? this.defaults.alignOffset,\n boundaryPadding: this.collisionPadding() ?? this.defaults.collisionPadding,\n side: this.resolvedSide(),\n sideOffset: this.sideOffset() ?? this.defaults.sideOffset,\n strategy: 'absolute' as const,\n };\n const arrowPadding = this.arrowPadding() ?? this.defaults.arrowPadding;\n const withArrow = this.resolvedArrow();\n if (root === null || stepId === undefined) return;\n\n let destroy: () => void = () => {};\n let live = true;\n afterNextRender(\n () => {\n if (!live) return;\n const surface = root.querySelector<HTMLElement>('[data-part=\"surface\"]');\n if (surface === null) return;\n if (target === null) {\n surface.style.removeProperty('left');\n surface.style.removeProperty('top');\n surface.removeAttribute('data-side');\n surface.removeAttribute('data-positioned');\n /* A centred card is placed by the stylesheet; it is ready on the\n next frame, so its arrival starts from nothing. */\n requestAnimationFrame(() => live && this.ready.set(true));\n return;\n }\n const arrow = withArrow ? root.querySelector<HTMLElement>('[data-part=\"arrow\"]') : null;\n const handle = createPositioner(target, surface, {\n ...options,\n ...(arrow ? { arrow, arrowPadding } : {}),\n });\n this.reposition_ = () => void handle.update();\n void handle.update().then(() => {\n if (live) requestAnimationFrame(() => live && this.ready.set(true));\n });\n destroy = () => {\n handle.destroy();\n surface.removeAttribute('data-positioned');\n this.reposition_ = () => {};\n };\n },\n { injector: this.injector },\n );\n onCleanup(() => {\n live = false;\n destroy();\n });\n }\n\n /**\n * One layer in the single stack. A modal step makes everything outside it\n * `inert` and holds a history entry for the way back; the target of an\n * interactive step is a branch, so pressing it is not a press outside.\n */\n /**\n * The layer is made again only when something that defines it changes —\n * whether it is modal, and the two dismissals. A modal layer holds a history\n * entry for the way back, and one made again on every step gave its entry\n * back and took a new one on every Next: the browser's own `popstate` for\n * the entry given back arrived as the way back, and the tour closed itself.\n * The target of an interactive step joins the layer as a branch instead.\n */\n private stack(onCleanup: (cleanup: () => void) => void) {\n const root = this.rootNode();\n const visible = this.visible();\n const modal = this.modal();\n const escape = this.closeOnEscape() ?? this.defaults.closeOnEscape;\n const outside = this.closeOnOutsidePress() ?? this.defaults.closeOnOutsidePress;\n if (root === null || !visible) return;\n const surface = root.querySelector<HTMLElement>('[data-part=\"surface\"]') ?? root;\n\n const layer = createDismissableLayer(root, {\n back: modal,\n content: surface,\n escape,\n modal,\n outsidePress: outside,\n scrollLock: false,\n onDismiss: (request) =>\n this.requestOpen(\n false,\n DISMISS_REASONS[request.reason],\n 'close',\n request.source as Event | undefined,\n ),\n });\n this.layerHandle = layer;\n this.layer.set(layer);\n onCleanup(() => {\n this.layerHandle = null;\n this.layer.set(null);\n layer.destroy();\n });\n }\n\n /**\n * Focus follows the reader rather than the tour: the card takes it when the\n * tour opens, and on a step change only when it was already in the card. A\n * reader elsewhere keeps their place and hears the new step instead.\n */\n private focusStep(shown: ResolvedStep<TourStep>, root: HTMLElement) {\n const id = shown.step.id;\n if (this.focusedStep === id) return;\n const first = this.focusedStep === null;\n this.focusedStep = id;\n const content = root.querySelector<HTMLElement>('[data-part=\"content\"]');\n const active = this.document.activeElement;\n const inCard = active === null || active === this.document.body || root.contains(active);\n\n /* The mark is the navigation's that led here; the opening has none, and\n a first card focused late must not take the mark of the next move. */\n const fromCard = !first && this.leftFromCard;\n if (!first) this.leftFromCard = false;\n if (first ? (this.autoFocus() ?? this.defaults.autoFocus) : inCard || fromCard) {\n content?.focus({ preventScroll: true });\n return;\n }\n if (!first) {\n const text = shown.step.announcement ?? shown.step.title;\n if (text !== '') getLiveAnnouncer(this.document).announce(text);\n }\n }\n\n private restoreFocus() {\n const wasOpen = this.focusedStep !== null;\n this.focusedStep = null;\n const origin = this.opener;\n this.opener = null;\n if (!wasOpen) return;\n const root = this.rootNode();\n const active = this.document.activeElement;\n const inside =\n active === null || active === this.document.body || (root?.contains(active) ?? false);\n if (!inside) return;\n const named = this.finalFocus();\n const destination =\n named === undefined\n ? origin\n : typeof named === 'string'\n ? this.document.querySelector<HTMLElement>(named)\n : (named as HTMLElement);\n if (destination?.isConnected) destination.focus();\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-tour.mjs","sources":["../../tour/src/tour-context.ts","../../tour/src/tour-defaults.ts","../../tour/src/tour-parts.ts","../../tour/src/tour.ts","../../tour/src/slotted-angular-tour.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type { Signal, TemplateRef } from '@angular/core';\nimport type { FamilyTranslator, TourMessages } from '@slotted/core/i18n';\n\nimport type { TourOutcome, TourStep } from './tour-defaults';\n\n/**\n * What a part reads from the tour around it. A token rather than the class,\n * so the parts and `sl-tour` — whose own template renders the parts — do not\n * import each other.\n */\nexport interface TourContext {\n readonly current: Signal<TourStep | null>;\n readonly position: Signal<number>;\n readonly total: Signal<number>;\n readonly first: Signal<boolean>;\n readonly last: Signal<boolean>;\n readonly pending: Signal<boolean>;\n readonly modal: Signal<boolean>;\n /** The family's words in the language in force, with the tour's and the step's `messages` laid over them. */\n readonly t: FamilyTranslator<TourMessages>;\n readonly titleId: string;\n readonly descriptionId: string;\n readonly hasDescription: Signal<boolean>;\n readonly showPrev: Signal<boolean>;\n readonly showNext: Signal<boolean>;\n readonly showSkip: Signal<boolean>;\n readonly showClose: Signal<boolean>;\n /** The body the current step renders: its own template, one written for it in the tour, or text. */\n readonly bodyTemplate: Signal<TemplateRef<unknown> | null>;\n readonly mediaTemplate: Signal<TemplateRef<unknown> | null>;\n next(source?: Event): void;\n prev(source?: Event): void;\n close(outcome: TourOutcome, source?: Event, dismiss?: boolean): void;\n onKeyDown(event: KeyboardEvent): void;\n}\n\nexport const SL_TOUR = new InjectionToken<TourContext>('slotted tour');\n","import type { PartialMessages, TourMessages } from '@slotted/core/i18n';\nimport type { TourMissing, TourOutcome, TourTarget } from '@slotted/core/tour';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { Provider, TemplateRef } from '@angular/core';\n\nexport type { TourMissing, TourOutcome, TourTarget };\n\nexport type TourSize = 'sm' | 'md' | 'lg';\n\nexport type TourSide = 'top' | 'bottom' | 'inline-start' | 'inline-end' | 'left' | 'right';\n\nexport type TourAlign = 'start' | 'center' | 'end';\n\n/** `auto` follows the viewport's size class; the other two decide it. */\nexport type TourLayout = 'auto' | 'compact' | 'regular';\n\n/** Somewhere to put the focus when the tour closes: an element, or a selector read in the document. */\nexport type TourFocusTarget = Element | string;\n\n/** Why the tour opened or closed. */\nexport type TourOpenReason = Extract<\n ChangeRequest<boolean>['reason'],\n 'pointer' | 'keyboard' | 'dismiss' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** Why the current step moved. */\nexport type TourStepReason = Extract<\n ChangeRequest<string>['reason'],\n 'pointer' | 'keyboard' | 'programmatic'\n>;\n\n/**\n * The request emitted before the tour opens or closes. A close carries the\n * outcome, as `slDialog` carries its `result`.\n */\nexport interface TourOpenRequest extends ChangeRequest<boolean> {\n readonly reason: TourOpenReason;\n readonly outcome?: TourOutcome | undefined;\n}\n\nexport interface TourStepRequest extends ChangeRequest<string | null> {\n readonly reason: TourStepReason;\n}\n\n/** The words a step may say in place of the tour's: \"Start tour\", \"Got it\". */\nexport type TourStepMessages = PartialMessages<\n Pick<TourMessages, 'next' | 'prev' | 'skip' | 'done'>\n>;\n\nexport interface TourStepActions {\n prev?: boolean | undefined;\n next?: boolean | undefined;\n skip?: boolean | undefined;\n close?: boolean | undefined;\n}\n\nexport interface TourStep {\n /** Unique in the tour; the value of `step`. */\n id: string;\n /** An element, a selector, a ref-like `{ current }` or a function. Absent for a centred step. */\n target?: TourTarget;\n title: string;\n description?: string | undefined;\n /**\n * The step's body. A template renders lazily, only while its step is shown;\n * `<ng-template slTourStep=\"id\">` in the tour's content does the same\n * without naming the template here.\n */\n content?: TemplateRef<unknown> | string | undefined;\n /** An image or a video above the header, as a template, or an image URL. */\n media?: TemplateRef<unknown> | string | undefined;\n side?: TourSide | undefined;\n align?: TourAlign | undefined;\n when?: (() => boolean) | undefined;\n prepare?: ((signal: AbortSignal) => void | Promise<void>) | undefined;\n interactive?: boolean | undefined;\n advanceOn?: string | undefined;\n spotlight?: boolean | undefined;\n /** Laid over the tour's words for this step: \"Start tour\", \"Got it\". */\n messages?: TourStepMessages | undefined;\n actions?: TourStepActions | undefined;\n /** Read aloud when the step arrives while focus is elsewhere. Defaults to the title. */\n announcement?: string | undefined;\n}\n\nexport interface TourDefaults {\n align: TourAlign;\n alignOffset: number;\n arrow: boolean;\n arrowPadding: number;\n autoFocus: boolean;\n closeOnEscape: boolean;\n closeOnOutsidePress: boolean;\n collisionPadding: number;\n keyboardNavigation: boolean;\n layout: TourLayout;\n missing: TourMissing;\n modal: boolean;\n scrollIntoView: boolean;\n side: TourSide;\n sideOffset: number;\n size: TourSize;\n spotlight: boolean;\n targetTimeout: number;\n}\n\n/**\n * `closeOnOutsidePress` is off: a press on the scrim is the easiest press on\n * the page to make by accident, and it would throw away where the reader was.\n * `targetTimeout` is zero: a wait shows nothing new, so a consumer whose\n * target renders late says how late.\n */\nexport const TOUR_FALLBACK: TourDefaults = {\n align: 'center',\n alignOffset: 0,\n arrow: true,\n arrowPadding: 12,\n autoFocus: true,\n closeOnEscape: true,\n closeOnOutsidePress: false,\n collisionPadding: 8,\n keyboardNavigation: true,\n layout: 'auto',\n missing: 'center',\n modal: true,\n scrollIntoView: true,\n side: 'bottom',\n sideOffset: 0,\n size: 'md',\n spotlight: true,\n targetTimeout: 0,\n};\n\nexport const TOUR_DEFAULTS = new InjectionToken<TourDefaults>('slotted tour defaults', {\n providedIn: 'root',\n factory: () => TOUR_FALLBACK,\n});\n\n/**\n * An application decides once how its tours behave. A tour that states any of\n * it itself still wins, and so does a step. Its words come from the language\n * in force (`provideSlotted`).\n */\nexport function provideTourDefaults(defaults: Partial<TourDefaults>): Provider {\n return {\n provide: TOUR_DEFAULTS,\n useFactory: (): TourDefaults => ({ ...TOUR_FALLBACK, ...defaults }),\n };\n}\n\n/** What a tour renders as here, before it states anything of its own. */\nexport function injectTourDefaults(): TourDefaults {\n return inject(TOUR_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * two applications rendering in one server process must not share a sequence.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlTourIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-tour-${this.count}`;\n }\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SL_TOUR } from './tour-context';\n\n/**\n * `<ng-template slTourStep=\"share\">`: the body of the step with that id,\n * rendered only while the step is shown. `slTourStepSlot=\"media\"` writes the\n * picture above the header instead.\n */\n@Directive({ selector: 'ng-template[slTourStep]', standalone: true })\nexport class SlTourStep {\n readonly id = input.required<string>({ alias: 'slTourStep' });\n readonly slot = input<'body' | 'media'>('body', { alias: 'slTourStepSlot' });\n readonly template = inject(TemplateRef<unknown>);\n}\n\n/**\n * `<ng-template slTourCard>`: the consumer's own arrangement of the card,\n * rendered inside the positioned layer in place of the whole anatomy.\n */\n@Directive({ selector: 'ng-template[slTourCard]', standalone: true })\nexport class SlTourCard {\n readonly template = inject(TemplateRef<unknown>);\n}\n\n/**\n * The card. `role=\"dialog\"`, named by the title part and described by the\n * description part when the step has one; `aria-modal` only on a modal step,\n * the only state in which the page behind is actually inert. The arrow keys\n * are read here. A role or an `aria-label` the consumer wrote survives.\n */\n@Directive({\n selector: '[slTourContent]',\n standalone: true,\n host: {\n 'data-part': 'content',\n 'data-part-content': '',\n tabindex: '-1',\n '[attr.role]': 'role ?? \"dialog\"',\n '[attr.aria-labelledby]': 'label === null ? tour.titleId : null',\n '[attr.aria-describedby]': 'tour.hasDescription() ? tour.descriptionId : null',\n '[attr.aria-modal]': 'tour.modal() ? \"true\" : null',\n '(keydown)': 'tour.onKeyDown($event)',\n },\n})\nexport class SlTourContent {\n protected readonly tour = inject(SL_TOUR);\n protected readonly role = inject(new HostAttributeToken('role'), { optional: true });\n protected readonly label = inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/** The step's picture, full bleed above the header; hidden when it has none. */\n@Component({\n selector: '[slTourMedia]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `@if (tour.mediaTemplate(); as media) {\n <ng-container [ngTemplateOutlet]=\"media\" />\n } @else if (url(); as src) {\n <img alt=\"\" [src]=\"src\" />\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'media',\n 'data-part-media': '',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlTourMedia {\n protected readonly tour = inject(SL_TOUR);\n protected readonly url = computed(() => {\n const media = this.tour.current()?.media;\n return typeof media === 'string' ? media : null;\n });\n protected readonly shown = computed(\n () => this.tour.mediaTemplate() !== null || this.url() !== null,\n );\n}\n\n@Directive({\n selector: '[slTourHeader]',\n standalone: true,\n host: { 'data-part': 'header', 'data-part-header': '' },\n})\nexport class SlTourHeader {}\n\n/** “2 of 5”, counting the steps available now; hidden in a tour of one step. */\n@Component({\n selector: '[slTourProgress]',\n standalone: true,\n template: `{{ tour.t('progress', { position: tour.position(), total: tour.total() }) }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'progress',\n 'data-part-progress': '',\n '[attr.hidden]': 'tour.total() > 1 ? null : \"\"',\n },\n})\nexport class SlTourProgress {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** Closes with the outcome `close` and the reason `dismiss`. The cross is drawn unless the consumer wrote content of their own. */\n@Component({\n selector: 'button[slTourClose]',\n standalone: true,\n imports: [SlGlyph, SlIcon],\n template: `<ng-content\n ><span slIcon size=\"sm\"><svg slGlyph name=\"x\"></svg></span\n ></ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'close',\n 'data-part-close': '',\n type: 'button',\n '[attr.aria-label]': \"label ?? tour.t('close')\",\n '[attr.hidden]': 'tour.showClose() ? null : \"\"',\n '(click)': 'tour.close(\"close\", $event, true)',\n },\n})\nexport class SlTourClose {\n protected readonly tour = inject(SL_TOUR);\n protected readonly label = inject(new HostAttributeToken('aria-label'), { optional: true });\n}\n\n/** The step's title and the card's accessible name. Text written inside replaces it. */\n@Component({\n selector: '[slTourTitle]',\n standalone: true,\n template: `<ng-content>{{ tour.current()?.title }}</ng-content>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'title', 'data-part-title': '', '[id]': 'tour.titleId' },\n})\nexport class SlTourTitle {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** The step's description, and the card's accessible description; hidden when it has none. */\n@Component({\n selector: '[slTourDescription]',\n standalone: true,\n template: `{{ tour.current()?.description }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'description',\n 'data-part-description': '',\n '[id]': 'tour.descriptionId',\n '[attr.hidden]': 'tour.hasDescription() ? null : \"\"',\n },\n})\nexport class SlTourDescription {\n protected readonly tour = inject(SL_TOUR);\n}\n\n/** The step's content — a template or text — and the only part that scrolls. */\n@Component({\n selector: '[slTourBody]',\n standalone: true,\n imports: [NgTemplateOutlet],\n template: `@if (tour.bodyTemplate(); as body) {\n <ng-container [ngTemplateOutlet]=\"body\" />\n } @else {\n {{ text() }}\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-part': 'body',\n 'data-part-body': '',\n '[attr.hidden]': 'shown() ? null : \"\"',\n },\n})\nexport class SlTourBody {\n protected readonly tour = inject(SL_TOUR);\n protected readonly text = computed(() => {\n const content = this.tour.current()?.content;\n return typeof content === 'string' ? content : '';\n });\n protected readonly shown = computed(\n () => this.tour.bodyTemplate() !== null || this.text() !== '',\n );\n}\n\n@Directive({\n selector: '[slTourFooter]',\n standalone: true,\n host: { 'data-part': 'footer', 'data-part-footer': '' },\n})\nexport class SlTourFooter {}\n\n/**\n * The three actions go on the consumer's own `button slButton`. `slButton`\n * writes `data-part=\"root\"` as a static host attribute, which erases the part\n * the template wrote, so each of these writes its part back after the first\n * render, as `slTransferPart` does.\n */\nabstract class TourAction {\n protected readonly tour = inject(SL_TOUR);\n\n constructor(part: string) {\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n afterNextRender(() => writeSelectorKey(host, 'part', part));\n }\n}\n\n/** Closes with the outcome `skip`. Hidden on the last step and in a tour of one. */\n@Directive({\n selector: 'button[slTourSkip]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showSkip() ? null : \"\"',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourSkip extends TourAction {\n constructor() {\n super('skip');\n }\n\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.tour.close('skip', event);\n }\n}\n\n/** The previous available step. Hidden on the first. */\n@Directive({\n selector: 'button[slTourPrev]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showPrev() ? null : \"\"',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourPrev extends TourAction {\n constructor() {\n super('prev');\n }\n\n protected onClick(event: MouseEvent) {\n if (!event.defaultPrevented) this.tour.prev(event);\n }\n}\n\n/**\n * The next available step, or Done on the last (`data-last`), which closes\n * with the outcome `complete`. Hidden on a step that advances on the reader's\n * own action at the target, unless the step asks for it.\n */\n@Directive({\n selector: 'button[slTourNext]',\n standalone: true,\n host: {\n '[attr.hidden]': 'tour.showNext() ? null : \"\"',\n '[attr.data-last]': 'tour.last() ? \"\" : null',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlTourNext extends TourAction {\n constructor() {\n super('next');\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.tour.pending()) return;\n this.tour.next(event);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n effect,\n forwardRef,\n inject,\n Injector,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { ComponentRef } from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissReason, DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createFocusScope, tabbables } from '@slotted/core/focus';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { tourMessages, type PartialMessages, type TourMessages } from '@slotted/core/i18n';\nimport { createControllable } from '@slotted/core/state';\nimport {\n cardFits,\n compactSide,\n createTourController,\n isCompactViewport,\n isTextEntry,\n keepOverTarget,\n stageStep,\n tourKey,\n tourProgress,\n watchTarget,\n writeTargetRect,\n} from '@slotted/core/tour';\nimport type { ResolvedStep, SpotMove, TourNavigationReason } from '@slotted/core/tour';\n\nimport { SL_TOUR } from './tour-context';\nimport type { TourContext } from './tour-context';\nimport { injectTourDefaults, SlTourIdFactory } from './tour-defaults';\nimport type {\n TourAlign,\n TourFocusTarget,\n TourLayout,\n TourMissing,\n TourOpenReason,\n TourOpenRequest,\n TourOutcome,\n TourSide,\n TourSize,\n TourStep,\n TourStepRequest,\n} from './tour-defaults';\nimport {\n SlTourBody,\n SlTourCard,\n SlTourClose,\n SlTourContent,\n SlTourDescription,\n SlTourFooter,\n SlTourHeader,\n SlTourMedia,\n SlTourNext,\n SlTourPrev,\n SlTourProgress,\n SlTourSkip,\n SlTourStep,\n SlTourTitle,\n} from './tour-parts';\n\nconst optionalBoolean = (state: boolean | string | undefined) =>\n state === undefined ? undefined : booleanAttribute(state);\n\nconst optionalNumber = (value: number | string | undefined) =>\n value === undefined ? undefined : numberAttribute(value);\n\nconst DISMISS_REASONS: Record<DismissReason, TourOpenReason> = {\n back: 'back',\n blur: 'programmatic',\n escape: 'escape',\n outsidePress: 'outsidePress',\n programmatic: 'programmatic',\n};\n\nfunction eventReason(event: Event | undefined): TourNavigationReason {\n if (event === undefined) return 'programmatic';\n if (event instanceof KeyboardEvent) return 'keyboard';\n if (event instanceof MouseEvent) return event.detail === 0 ? 'keyboard' : 'pointer';\n return 'programmatic';\n}\n\nfunction directionOf(node: Element): 'ltr' | 'rtl' {\n const declared = node.closest('[dir]')?.getAttribute('dir');\n if (declared === 'rtl' || declared === 'ltr') return declared;\n return node.ownerDocument.defaultView?.getComputedStyle(node).direction === 'rtl' ? 'rtl' : 'ltr';\n}\n\n/**\n * The frame the tour draws over the page: scrim, spotlight and the card's\n * layer. A component of its own, created inside `sl-tour` and moved to the\n * portal, because a component's view is redrawn by the signals it reads.\n * The same template as an embedded view created by hand was drawn once and\n * never again outside a harness that checks the whole tree: the tour opened\n * with no scrim, its card never appeared, and a step change removed\n * `data-open` from a frame that no longer followed its state.\n */\n@Component({\n selector: 'sl-tour-frame',\n standalone: true,\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlTourBody,\n SlTourClose,\n SlTourContent,\n SlTourDescription,\n SlTourFooter,\n SlTourHeader,\n SlTourMedia,\n SlTourNext,\n SlTourPrev,\n SlTourProgress,\n SlTourSkip,\n SlTourTitle,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { style: 'display: contents' },\n template: `<div\n data-ui=\"tour\"\n data-ui-tour=\"\"\n data-part=\"root\"\n data-part-root=\"\"\n [attr.data-open]=\"tour.visible() && tour.arrived() ? '' : null\"\n [attr.data-modal]=\"tour.modal() ? '' : null\"\n [attr.data-spot]=\"tour.spot().move\"\n [attr.data-spotlight]=\"tour.spotlightOn() ? '' : null\"\n [attr.data-compact]=\"tour.compact() ? '' : null\"\n [attr.data-missing]=\"tour.drawn()?.missing ? '' : null\"\n [attr.data-placement]=\"tour.anchored() ? 'anchored' : 'centered'\"\n [attr.data-size]=\"tour.resolvedSize()\"\n [attr.data-align]=\"tour.anchored() ? tour.resolvedAlign() : null\"\n >\n @if (tour.modal() || tour.spotlightOn()) {\n <div data-part=\"backdrop\" data-part-backdrop=\"\" aria-hidden=\"true\">\n @if (tour.spotlightOn()) {\n <div data-part=\"spotlight\" data-part-spotlight=\"\"></div>\n }\n </div>\n }\n <div\n data-part=\"surface\"\n data-part-surface=\"\"\n [attr.data-placement]=\"tour.anchored() ? 'anchored' : 'centered'\"\n [attr.data-ready]=\"tour.ready() ? '' : null\"\n [attr.data-leaving]=\"tour.leaving() ? '' : null\"\n >\n @if (!tour.modal()) {\n <span\n data-part=\"focus-guard\"\n data-part-focus-guard=\"\"\n tabindex=\"0\"\n aria-hidden=\"true\"\n (focus)=\"tour.onGuardFocus()\"\n ></span>\n }\n @if (tour.anchored() && tour.resolvedArrow()) {\n <div data-part=\"arrow\" data-part-arrow=\"\"></div>\n }\n @if (tour.card(); as custom) {\n <ng-container [ngTemplateOutlet]=\"custom.template\" />\n } @else {\n <div slTourContent>\n <div slTourMedia></div>\n <div slTourHeader>\n <p slTourProgress></p>\n <button slTourClose></button>\n </div>\n <h2 slTourTitle></h2>\n <p slTourDescription></p>\n <div slTourBody></div>\n <div slTourFooter>\n <button slButton slTourSkip size=\"sm\" tone=\"secondary\" variant=\"ghost\">\n {{ tour.t('skip') }}\n </button>\n <button slButton slTourPrev size=\"sm\" tone=\"secondary\" variant=\"outline\">\n {{ tour.t('prev') }}\n </button>\n <button\n slButton\n slTourNext\n size=\"sm\"\n tone=\"accent\"\n variant=\"solid\"\n [loading]=\"tour.pending()\"\n [messages]=\"{ loading: tour.t('preparing') }\"\n >\n {{ tour.t(tour.last() ? 'done' : 'next') }}\n </button>\n </div>\n </div>\n }\n @if (!tour.modal()) {\n <span\n data-part=\"focus-guard\"\n data-part-focus-guard=\"\"\n tabindex=\"0\"\n aria-hidden=\"true\"\n (focus)=\"tour.onGuardFocus()\"\n ></span>\n }\n </div>\n </div>`,\n})\nexport class SlTourFrame {\n protected readonly tour = inject(SL_TOUR) as unknown as SlTour;\n}\n\n/**\n * A guided walk through an interface, one step at a time.\n *\n * `open` and `step` are two-way; `@slotted/core/tour` owns everything between\n * a press and a card — conditions, preparation, a target that arrives late or\n * never. The frame is built from a template and portalled to the end of the\n * document, as `slPopoverLayer`'s is. A modal step makes the page `inert` and\n * keeps focus in the card; an interactive step leaves the page reachable so\n * the reader can operate the target.\n *\n * With no `ng-template slTourCard` inside, it renders the whole card.\n */\n@Component({\n selector: 'sl-tour',\n standalone: true,\n exportAs: 'slTour',\n imports: [SlTourFrame],\n providers: [{ provide: SL_TOUR, useExisting: forwardRef(() => SlTour) }],\n styleUrls: ['../../../styles/src/tour/tour.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-container #outlet></ng-container>`,\n})\nexport class SlTour implements TourContext {\n readonly steps = input.required<readonly TourStep[]>();\n /** Whether the tour is showing. Two-way. */\n readonly open = model<boolean>(false);\n /** The current step's id. Two-way; `null` is the first available step. */\n readonly step = model<string | null>(null);\n\n readonly size = input<TourSize | undefined>(undefined);\n /** `compact` or `regular` decide the phone composition; `auto` takes it below 600 pixels of viewport. */\n readonly layout = input<TourLayout | undefined>(undefined);\n readonly side = input<TourSide | undefined>(undefined);\n readonly align = input<TourAlign | undefined>(undefined);\n readonly missing = input<TourMissing | undefined>(undefined);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<TourMessages> | undefined>(undefined);\n readonly finalFocus = input<TourFocusTarget | undefined>(undefined);\n\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly modalInput = input<boolean | undefined, boolean | string | undefined>(undefined, {\n alias: 'modal',\n transform: optionalBoolean,\n });\n readonly spotlight = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly autoFocus = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnEscape = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly closeOnOutsidePress = input<boolean | undefined, boolean | string | undefined>(\n undefined,\n { transform: optionalBoolean },\n );\n readonly scrollIntoView = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n readonly keyboardNavigation = input<boolean | undefined, boolean | string | undefined>(\n undefined,\n { transform: optionalBoolean },\n );\n readonly targetTimeout = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly sideOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly alignOffset = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly collisionPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n readonly arrowPadding = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n\n /** One output per transition, carrying the reason, the event and — on a close — the outcome. */\n readonly openChangeRequest = output<TourOpenRequest>();\n readonly stepChangeRequest = output<TourStepRequest>();\n\n readonly card = contentChild(SlTourCard);\n private readonly stepTemplates = contentChildren(SlTourStep);\n /**\n * Where the frame's view is inserted: inside this component's own view, so\n * the signals its template reads mark this component for check. Inserted\n * into the host's container instead — the parent's view — the frame was\n * never redrawn after the first time outside a test harness that checks the\n * whole tree: the tour opened with no scrim and its card never appeared.\n * The frame's nodes are then moved to the portal, as before.\n */\n private readonly outlet = viewChild.required('outlet', { read: ViewContainerRef });\n\n private readonly defaults = injectTourDefaults();\n private readonly base = inject(SlTourIdFactory).next();\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly injector = inject(Injector);\n private readonly document = inject(ViewContainerRef).element.nativeElement\n .ownerDocument as Document;\n\n readonly titleId = `${this.base}-title`;\n readonly descriptionId = `${this.base}-description`;\n\n /* ── Resolution ─────────────────────────────────────────────────────── */\n\n private readonly shown = signal<ResolvedStep<TourStep> | null>(null);\n /** The cutout's target and the movement that brings it there. */\n readonly spot = signal<{ target: Element | null; move: SpotMove }>({\n target: null,\n move: 'rest',\n });\n readonly leaving = signal(false);\n /** The card of the drawn step has been placed, and may be shown. */\n readonly ready = signal(false);\n private staging: AbortController | null = null;\n readonly pending = signal(false);\n /** The last step drawn, kept through the exit so the card leaves as it was. */\n readonly drawn = signal<ResolvedStep<TourStep> | null>(null);\n readonly current = computed(() => this.drawn()?.step ?? null);\n\n /** The tour's own words and the drawn step's, laid over the catalog in that order. */\n private readonly override = computed(() => {\n const step = this.current()?.messages;\n return step === undefined ? this.messages() : { ...this.messages(), ...step };\n });\n /** The family's words in the language in force, with the tour's and the step's `messages` laid over them. */\n readonly t = injectMessages(tourMessages, this.override);\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n /** The viewport is in the compact size class: a lateral side turns vertical, the card takes the width. */\n private readonly narrow = signal(false);\n readonly compact = computed(() => {\n const layout = this.layout() ?? this.defaults.layout;\n return layout === 'compact' || (layout === 'auto' && this.narrow());\n });\n /** The target leaves a card room on some side; when it does not, the card is centred over it. */\n private readonly fits = signal(true);\n readonly resolvedSide = computed(() =>\n compactSide(this.current()?.side ?? this.side() ?? this.defaults.side, this.compact()),\n );\n readonly resolvedAlign = computed(\n () => this.current()?.align ?? this.align() ?? this.defaults.align,\n );\n readonly resolvedArrow = computed(() => this.arrow() ?? this.defaults.arrow);\n readonly modal = computed(\n () => (this.modalInput() ?? this.defaults.modal) && this.current()?.interactive !== true,\n );\n private readonly resolvedSpotlight = computed(\n () => this.current()?.spotlight ?? this.spotlight() ?? this.defaults.spotlight,\n );\n private readonly hasTarget = computed(() => (this.drawn()?.target ?? null) !== null);\n readonly anchored = computed(() => this.hasTarget() && this.fits());\n readonly spotlightOn = computed(() => this.resolvedSpotlight() && this.spot().target !== null);\n\n private readonly progress = computed(() =>\n tourProgress(this.steps(), this.current()?.id ?? null),\n );\n readonly position = computed(() => this.progress().position);\n readonly total = computed(() => this.progress().total);\n readonly first = computed(() => this.progress().first);\n readonly last = computed(() => this.progress().last);\n readonly hasDescription = computed(() => (this.current()?.description ?? '') !== '');\n\n readonly showPrev = computed(() => this.current()?.actions?.prev ?? !this.first());\n readonly showSkip = computed(\n () => this.current()?.actions?.skip ?? (!this.last() && this.total() > 1),\n );\n readonly showClose = computed(() => this.current()?.actions?.close ?? true);\n readonly showNext = computed(\n () => this.current()?.actions?.next ?? this.current()?.advanceOn === undefined,\n );\n\n private readonly namedTemplate = (slot: 'body' | 'media') =>\n this.stepTemplates().find((entry) => entry.id() === this.current()?.id && entry.slot() === slot)\n ?.template ?? null;\n\n readonly bodyTemplate = computed(() => {\n const content = this.current()?.content;\n return typeof content === 'object' && content !== null ? content : this.namedTemplate('body');\n });\n readonly mediaTemplate = computed(() => {\n const media = this.current()?.media;\n return typeof media === 'object' && media !== null ? media : this.namedTemplate('media');\n });\n\n private readonly controller = createTourController<TourStep>({\n steps: () => this.steps(),\n settings: () => ({\n missing: this.missing() ?? this.defaults.missing,\n targetTimeout: this.targetTimeout() ?? this.defaults.targetTimeout,\n }),\n onShow: (resolved) => this.shown.set(resolved),\n onPending: (value) => {\n if (value) {\n const card = this.document.activeElement?.closest('[data-ui=\"tour\"] [data-part=\"content\"]');\n this.leftFromCard = card !== null && card !== undefined;\n }\n this.pending.set(value);\n },\n requestStep: (id, reason, source) => this.requestStep(id, reason, source as Event | undefined),\n requestClose: (outcome, reason, source) =>\n this.requestOpen(false, reason, outcome, source as Event | undefined),\n });\n\n /* ── Frame, presence and layer ──────────────────────────────────────── */\n\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n readonly visible = computed(() => this.open() && this.drawn() !== null);\n /**\n * `data-open` is written a frame after the frame exists, so the scrim and\n * the card have a closed style to arrive from.\n */\n readonly arrived = signal(false);\n private readonly mounted = computed(\n () => this.drawn() !== null && (this.visible() || this.status() !== 'unmounted'),\n );\n private readonly rootNode = signal<HTMLElement | null>(null);\n private frameRef: ComponentRef<SlTourFrame> | null = null;\n private portal: PortalRootHandle | null = null;\n private closing: TourOutcome | undefined = undefined;\n private opener: HTMLElement | null = null;\n private focusedStep: string | null = null;\n /** Whether focus was in the card when the reader asked to move; a dialog a step opens may take it meanwhile. */\n private leftFromCard = false;\n private layerHandle: DismissableLayerHandle | null = null;\n private readonly layer = signal<DismissableLayerHandle | null>(null);\n /** The target of an interactive step, which a press on is not a press outside. */\n private readonly interactiveTarget = computed(() =>\n this.current()?.interactive === true ? (this.drawn()?.target ?? null) : null,\n );\n private reposition_: () => void = () => {};\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n effect(() => {\n const open = this.open();\n const id = this.step();\n untracked(() => {\n if (open) {\n if (this.opener === null) {\n const active = this.document.activeElement;\n this.opener =\n active instanceof HTMLElement && active !== this.document.body ? active : null;\n }\n this.controller.sync(id);\n return;\n }\n this.controller.reset();\n this.shown.set(null);\n this.pending.set(false);\n this.restoreFocus();\n const outcome = this.closing;\n this.closing = undefined;\n if (outcome !== undefined && outcome !== 'close') this.step.set(null);\n });\n });\n\n /* The steps changed under an open tour: the shown one may have gone. */\n effect(() => {\n const steps = this.steps();\n const shown = untracked(() => this.shown());\n if (shown !== null && !steps.some((candidate) => candidate.id === shown.step.id)) {\n untracked(() => this.controller.sync(null));\n }\n });\n\n effect(() => this.presence.sync(this.visible()));\n effect((onCleanup) => {\n const root = this.rootNode();\n if (root === null || !this.visible()) {\n untracked(() => this.arrived.set(false));\n return;\n }\n const frame = requestAnimationFrame(() => this.arrived.set(true));\n onCleanup(() => cancelAnimationFrame(frame));\n });\n effect(() => (this.mounted() ? this.build() : this.teardown()));\n\n /**\n * Every step the controller shows is staged: the old card leaves while the\n * cutout moves and the page scrolls, and the new card arrives once the\n * cutout has landed (`@slotted/core/tour`'s `stageStep`). `drawn` is the\n * step whose card is on screen, and it trails `shown` by that sequence.\n */\n effect(() => {\n const shown = this.shown();\n untracked(() => {\n this.staging?.abort();\n this.staging = null;\n if (shown === null) return;\n const run = new AbortController();\n this.staging = run;\n const opening = this.drawn() === null;\n void stageStep({\n /* Before the tour has an element of its own, the target — or the\n tour's own host — stands in the theme's region and carries the\n same duration tokens. */\n root: this.rootNode() ?? shown.target ?? this.viewContainer.element.nativeElement,\n from: opening ? undefined : this.spot().target,\n to: shown.target,\n scroll: this.scrollIntoView() ?? this.defaults.scrollIntoView,\n signal: run.signal,\n spot: (target, move) => {\n /* Written on the element at once, before the rectangle it moves to\n is: a transition needs its property in place before the value\n changes, and the frame's bindings are drawn a tick later. */\n this.rootNode()?.setAttribute('data-spot', move);\n this.spot.set({ target, move });\n },\n card: (phase) => {\n if (phase === 'leave') {\n this.leaving.set(true);\n return;\n }\n this.ready.set(false);\n /* Whether the arriving card fits beside its target is its own\n target's answer, taken as it arrives. */\n const rect = shown.target?.getBoundingClientRect();\n const view = this.document.defaultView;\n this.fits.set(\n rect === undefined ||\n view === null ||\n cardFits(\n { x: rect.left, y: rect.top, width: rect.width, height: rect.height },\n { width: view.innerWidth, height: view.innerHeight },\n ),\n );\n this.drawn.set(shown);\n this.leaving.set(false);\n },\n });\n });\n });\n\n effect((onCleanup) => {\n const root = this.rootNode();\n const target = this.spot().target;\n if (root === null) return;\n if (target === null) {\n writeTargetRect(root, null);\n return;\n }\n onCleanup(\n watchTarget(target, {\n onRect: (rect) => {\n writeTargetRect(root, rect);\n const view = this.document.defaultView;\n /* Only the card's own target answers whether the card fits beside it. */\n if (view !== null && target === untracked(() => this.drawn()?.target)) {\n this.fits.set(cardFits(rect, { width: view.innerWidth, height: view.innerHeight }));\n }\n },\n onRemoved: () => this.controller.markMissing(),\n }),\n );\n });\n\n effect((onCleanup) => {\n const view = this.document.defaultView;\n if (!this.mounted() || view === null) return;\n const update = () => this.narrow.set(isCompactViewport(view));\n update();\n view.addEventListener('resize', update, { passive: true });\n onCleanup(() => view.removeEventListener('resize', update));\n });\n\n effect((onCleanup) => this.place(onCleanup));\n effect((onCleanup) => this.stack(onCleanup));\n effect((onCleanup) => {\n const layer = this.layer();\n const branch = this.interactiveTarget();\n if (layer === null || branch === null) return;\n onCleanup(layer.addBranch(branch));\n });\n\n effect((onCleanup) => {\n const root = this.rootNode();\n if (root === null || !this.visible() || !this.modal()) return;\n const scope = createFocusScope(root, { contain: true, initial: false, restore: false });\n onCleanup(() => scope.destroy());\n });\n\n effect(() => {\n const drawn = this.drawn();\n const root = this.rootNode();\n /* A frame still hidden until the frame it arrives in cannot take focus. */\n if (!this.visible() || !this.arrived() || drawn === null || root === null) return;\n afterNextRender(() => this.focusStep(drawn, root), { injector: this.injector });\n });\n\n /**\n * A step whose target lives in a layer opened after the tour — a dialog its\n * `prepare` opened — would stand under that layer, inert and unreachable.\n * The tour is raised back over it, in the document and in the stack.\n */\n effect((onCleanup) => {\n const root = this.rootNode();\n const target = this.spot().target;\n /* The portal's own element, which stands beside the other layers; the\n root's parent is the frame component's host. */\n const layerNode = root === null ? null : (this.portal?.container ?? null);\n if (!this.visible() || target === null || layerNode === null) return;\n onCleanup(\n keepOverTarget(layerNode, target, () => {\n this.portal?.raise();\n this.layerHandle?.raise();\n }),\n );\n });\n\n effect((onCleanup) => {\n const target = this.drawn()?.target ?? null;\n const event = this.current()?.advanceOn;\n if (!this.visible() || target === null || event === undefined) return;\n const listener = (source: Event) => this.controller.next(eventReason(source), source);\n target.addEventListener(event, listener);\n onCleanup(() => target.removeEventListener(event, listener));\n });\n\n destroyRef.onDestroy(() => {\n this.controller.destroy();\n this.presence.destroy();\n this.teardown();\n });\n }\n\n /* ── The two values ─────────────────────────────────────────────────── */\n\n private requestOpen(\n next: boolean,\n reason: TourOpenReason,\n outcome: TourOutcome | undefined,\n source: Event | undefined,\n ) {\n if (next === this.open()) return;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (raw) => {\n this.openChangeRequest.emit({\n get cancelled() {\n return raw.cancelled;\n },\n cancel: () => raw.cancel(),\n outcome,\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n });\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(next, reason, source);\n if (cancelled || !moved) return;\n if (!next) this.closing = outcome;\n this.open.set(next);\n }\n\n private requestStep(id: string, reason: TourNavigationReason, source: Event | undefined) {\n if (id === this.step()) {\n this.controller.sync(id);\n return;\n }\n let cancelled = false;\n const state = createControllable<string | null>({\n initial: this.step(),\n onRequest: (raw) => {\n this.stepChangeRequest.emit({\n get cancelled() {\n return raw.cancelled;\n },\n cancel: () => raw.cancel(),\n previous: raw.previous,\n reason,\n source: raw.source,\n value: raw.value,\n });\n cancelled = raw.cancelled;\n },\n });\n const moved = state.request(id, reason, source);\n if (!cancelled && moved) this.step.set(id);\n }\n\n /* ── The handle a template reaches through exportAs ─────────────────── */\n\n /** Opens the tour at a step, or at the first available one. */\n start(id?: string) {\n if (id !== undefined) this.requestStep(id, 'programmatic', undefined);\n this.requestOpen(true, 'programmatic', undefined, undefined);\n }\n\n next(source?: Event) {\n this.controller.next(eventReason(source), source);\n }\n\n prev(source?: Event) {\n this.controller.prev(eventReason(source), source);\n }\n\n goTo(id: string) {\n this.controller.goTo(id, 'programmatic');\n }\n\n close(outcome: TourOutcome = 'close', source?: Event, dismiss = false) {\n this.requestOpen(false, dismiss ? 'dismiss' : eventReason(source), outcome, source);\n }\n\n /** Measures the target and the card again, after the page moved without scrolling. */\n reposition() {\n this.reposition_();\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (!(this.keyboardNavigation() ?? this.defaults.keyboardNavigation)) return;\n if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) return;\n const origin = event.target instanceof Element ? event.target : null;\n if (isTextEntry(origin)) return;\n const action = tourKey(event.key, origin === null ? 'ltr' : directionOf(origin));\n if (action === null) return;\n event.preventDefault();\n if (action === 'next') this.controller.next('keyboard', event);\n else this.controller.prev('keyboard', event);\n }\n\n onGuardFocus() {\n const target = this.drawn()?.target;\n let destination: HTMLElement | null = null;\n if (target instanceof HTMLElement) {\n destination = tabbables(target)[0] ?? (target.tabIndex >= 0 ? target : null);\n }\n (destination ?? this.contentNode())?.focus();\n }\n\n /* ── The frame ──────────────────────────────────────────────────────── */\n\n private contentNode(): HTMLElement | null {\n return this.rootNode()?.querySelector<HTMLElement>('[data-part=\"content\"]') ?? null;\n }\n\n private build() {\n if (untracked(() => this.rootNode()) !== null) return;\n const frame = untracked(() => this.outlet()).createComponent(SlTourFrame);\n frame.changeDetectorRef.detectChanges();\n const element: HTMLElement = frame.location.nativeElement;\n const root = element.querySelector<HTMLElement>('[data-ui=\"tour\"]');\n if (root === null) return;\n\n /**\n * The layer inherits its theme, scheme, density and direction from its\n * origin. The tour's own element stands where the consumer wrote it, in\n * the region whose theme the layer belongs to, which a centred first step\n * with no target could not otherwise say.\n */\n const host: Element = this.viewContainer.element.nativeElement;\n const portal = createPortalRoot({ origin: untracked(() => this.drawn()?.target ?? host) });\n (portal.container ?? this.document.body).appendChild(element);\n\n this.frameRef = frame;\n this.portal = portal;\n this.presence.setNode(root);\n this.rootNode.set(root);\n }\n\n private teardown() {\n const root = untracked(() => this.rootNode());\n if (root === null && this.frameRef === null) return;\n this.presence.setNode(null);\n this.frameRef?.location.nativeElement.remove();\n this.rootNode.set(null);\n this.frameRef?.destroy();\n this.frameRef = null;\n this.portal?.release();\n this.portal = null;\n untracked(() => {\n this.drawn.set(null);\n this.spot.set({ target: null, move: 'rest' });\n this.leaving.set(false);\n this.ready.set(false);\n });\n }\n\n private place(onCleanup: (cleanup: () => void) => void) {\n const root = this.rootNode();\n const target = this.anchored() ? (this.drawn()?.target ?? null) : null;\n const stepId = this.current()?.id;\n const options = {\n align: this.resolvedAlign(),\n alignOffset: this.alignOffset() ?? this.defaults.alignOffset,\n boundaryPadding: this.collisionPadding() ?? this.defaults.collisionPadding,\n side: this.resolvedSide(),\n sideOffset: this.sideOffset() ?? this.defaults.sideOffset,\n strategy: 'absolute' as const,\n };\n const arrowPadding = this.arrowPadding() ?? this.defaults.arrowPadding;\n const withArrow = this.resolvedArrow();\n if (root === null || stepId === undefined) return;\n\n let destroy: () => void = () => {};\n let live = true;\n afterNextRender(\n () => {\n if (!live) return;\n const surface = root.querySelector<HTMLElement>('[data-part=\"surface\"]');\n if (surface === null) return;\n if (target === null) {\n surface.style.removeProperty('left');\n surface.style.removeProperty('top');\n surface.removeAttribute('data-side');\n surface.removeAttribute('data-positioned');\n /* A centred card is placed by the stylesheet; it is ready on the\n next frame, so its arrival starts from nothing. */\n requestAnimationFrame(() => live && this.ready.set(true));\n return;\n }\n const arrow = withArrow ? root.querySelector<HTMLElement>('[data-part=\"arrow\"]') : null;\n const handle = createPositioner(target, surface, {\n ...options,\n ...(arrow ? { arrow, arrowPadding } : {}),\n });\n this.reposition_ = () => void handle.update();\n void handle.update().then(() => {\n if (live) requestAnimationFrame(() => live && this.ready.set(true));\n });\n destroy = () => {\n handle.destroy();\n surface.removeAttribute('data-positioned');\n this.reposition_ = () => {};\n };\n },\n { injector: this.injector },\n );\n onCleanup(() => {\n live = false;\n destroy();\n });\n }\n\n /**\n * One layer in the single stack. A modal step makes everything outside it\n * `inert` and holds a history entry for the way back; the target of an\n * interactive step is a branch, so pressing it is not a press outside.\n */\n /**\n * The layer is made again only when something that defines it changes —\n * whether it is modal, and the two dismissals. A modal layer holds a history\n * entry for the way back, and one made again on every step gave its entry\n * back and took a new one on every Next: the browser's own `popstate` for\n * the entry given back arrived as the way back, and the tour closed itself.\n * The target of an interactive step joins the layer as a branch instead.\n */\n private stack(onCleanup: (cleanup: () => void) => void) {\n const root = this.rootNode();\n const visible = this.visible();\n const modal = this.modal();\n const escape = this.closeOnEscape() ?? this.defaults.closeOnEscape;\n const outside = this.closeOnOutsidePress() ?? this.defaults.closeOnOutsidePress;\n if (root === null || !visible) return;\n const surface = root.querySelector<HTMLElement>('[data-part=\"surface\"]') ?? root;\n\n const layer = createDismissableLayer(root, {\n back: modal,\n content: surface,\n escape,\n modal,\n outsidePress: outside,\n scrollLock: false,\n onDismiss: (request) =>\n this.requestOpen(\n false,\n DISMISS_REASONS[request.reason],\n 'close',\n request.source as Event | undefined,\n ),\n });\n this.layerHandle = layer;\n this.layer.set(layer);\n onCleanup(() => {\n this.layerHandle = null;\n this.layer.set(null);\n layer.destroy();\n });\n }\n\n /**\n * Focus follows the reader rather than the tour: the card takes it when the\n * tour opens, and on a step change only when it was already in the card. A\n * reader elsewhere keeps their place and hears the new step instead.\n */\n private focusStep(shown: ResolvedStep<TourStep>, root: HTMLElement) {\n const id = shown.step.id;\n if (this.focusedStep === id) return;\n const first = this.focusedStep === null;\n this.focusedStep = id;\n const content = root.querySelector<HTMLElement>('[data-part=\"content\"]');\n const active = this.document.activeElement;\n const inCard = active === null || active === this.document.body || root.contains(active);\n\n /* The mark is the navigation's that led here; the opening has none, and\n a first card focused late must not take the mark of the next move. */\n const fromCard = !first && this.leftFromCard;\n if (!first) this.leftFromCard = false;\n if (first ? (this.autoFocus() ?? this.defaults.autoFocus) : inCard || fromCard) {\n content?.focus({ preventScroll: true });\n return;\n }\n if (!first) {\n const text = shown.step.announcement ?? shown.step.title;\n if (text !== '') getLiveAnnouncer(this.document).announce(text);\n }\n }\n\n private restoreFocus() {\n const wasOpen = this.focusedStep !== null;\n this.focusedStep = null;\n const origin = this.opener;\n this.opener = null;\n if (!wasOpen) return;\n const root = this.rootNode();\n const active = this.document.activeElement;\n const inside =\n active === null || active === this.document.body || (root?.contains(active) ?? false);\n if (!inside) return;\n const named = this.finalFocus();\n const destination =\n named === undefined\n ? origin\n : typeof named === 'string'\n ? this.document.querySelector<HTMLElement>(named)\n : (named as HTMLElement);\n if (destination?.isConnected) destination.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|