@slotted/angular 0.1.0-beta.8 → 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/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 +68 -26
- 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 +128 -51
- 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 +38 -12
- 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 +46 -14
- 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 +39 -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 +32 -24
- 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 +46 -12
- 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.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.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
|
@@ -547,30 +547,31 @@ class SlTableOfContents {
|
|
|
547
547
|
this.navigate(id, 'programmatic');
|
|
548
548
|
}
|
|
549
549
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTableOfContents, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
550
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlTableOfContents, isStandalone: true, selector: "[slTableOfContents]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, levels: { classPropertyName: "levels", publicName: "levels", isSignal: true, isRequired: false, transformFunction: null }, exclude: { classPropertyName: "exclude", publicName: "exclude", isSignal: true, isRequired: false, transformFunction: null }, scroller: { classPropertyName: "scroller", publicName: "scroller", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, history: { classPropertyName: "history", publicName: "history", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, numbered: { classPropertyName: "numbered", publicName: "numbered", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", open: "openChange", valueChangeRequest: "valueChangeRequest", openChangeRequest: "openChangeRequest" }, host: { attributes: { "data-ui": "table-of-contents", "data-part": "root" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.aria-busy": "loading() ? 'true' : null", "attr.data-layout": "resolvedLayout()", "attr.data-size": "resolvedSize()", "attr.data-sticky": "resolvedSticky() && !collapsed() ? '' : null", "attr.data-numbered": "resolvedNumbered() ? '' : null", "attr.data-open": "collapsed() && open() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.data-empty": "empty() ? '' : null" } }, queries: [{ propertyName: "linkTemplate", first: true, predicate: SlTableOfContentsLink, descendants: true, isSignal: true }, { propertyName: "labelTemplate", first: true, predicate: SlTableOfContentsLabel, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "marker", first: true, predicate: ["marker"], descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], exportAs: ["slTableOfContents"], ngImport: i0, template: `
|
|
550
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: SlTableOfContents, isStandalone: true, selector: "[slTableOfContents]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: false, transformFunction: null }, levels: { classPropertyName: "levels", publicName: "levels", isSignal: true, isRequired: false, transformFunction: null }, exclude: { classPropertyName: "exclude", publicName: "exclude", isSignal: true, isRequired: false, transformFunction: null }, scroller: { classPropertyName: "scroller", publicName: "scroller", isSignal: true, isRequired: false, transformFunction: null }, offset: { classPropertyName: "offset", publicName: "offset", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, history: { classPropertyName: "history", publicName: "history", isSignal: true, isRequired: false, transformFunction: null }, sticky: { classPropertyName: "sticky", publicName: "sticky", isSignal: true, isRequired: false, transformFunction: null }, numbered: { classPropertyName: "numbered", publicName: "numbered", isSignal: true, isRequired: false, transformFunction: null }, landmark: { classPropertyName: "landmark", publicName: "landmark", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", open: "openChange", valueChangeRequest: "valueChangeRequest", openChangeRequest: "openChangeRequest" }, host: { attributes: { "data-ui": "table-of-contents", "data-ui-table-of-contents": "", "data-part": "root", "data-part-root": "" }, listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.aria-busy": "loading() ? 'true' : null", "attr.data-layout": "resolvedLayout()", "attr.data-size": "resolvedSize()", "attr.data-sticky": "resolvedSticky() && !collapsed() ? '' : null", "attr.data-numbered": "resolvedNumbered() ? '' : null", "attr.data-open": "collapsed() && open() ? '' : null", "attr.data-loading": "loading() ? '' : null", "attr.data-empty": "empty() ? '' : null" } }, queries: [{ propertyName: "linkTemplate", first: true, predicate: SlTableOfContentsLink, descendants: true, isSignal: true }, { propertyName: "labelTemplate", first: true, predicate: SlTableOfContentsLabel, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }, { propertyName: "marker", first: true, predicate: ["marker"], descendants: true, isSignal: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true, isSignal: true }], exportAs: ["slTableOfContents"], ngImport: i0, template: `
|
|
551
551
|
@if (collapsed()) {
|
|
552
552
|
<button
|
|
553
553
|
#trigger
|
|
554
554
|
data-part="trigger"
|
|
555
|
+
data-part-trigger=""
|
|
555
556
|
type="button"
|
|
556
557
|
[attr.aria-controls]="panelId"
|
|
557
558
|
[attr.aria-expanded]="open()"
|
|
558
559
|
(click)="toggle($event)"
|
|
559
560
|
>
|
|
560
|
-
<span data-part="label" [id]="labelId">
|
|
561
|
+
<span data-part="label" data-part-label="" [id]="labelId">
|
|
561
562
|
@if (labelTemplate(); as label) {
|
|
562
563
|
<ng-container *ngTemplateOutlet="label.template" />
|
|
563
564
|
} @else {
|
|
564
565
|
{{ resolvedLabel() }}
|
|
565
566
|
}
|
|
566
567
|
</span>
|
|
567
|
-
<span data-part="current">{{ currentLabel() }}</span>
|
|
568
|
-
<span data-part="indicator" aria-hidden="true"
|
|
568
|
+
<span data-part="current" data-part-current="">{{ currentLabel() }}</span>
|
|
569
|
+
<span data-part="indicator" data-part-indicator="" aria-hidden="true"
|
|
569
570
|
><span slIcon><svg slGlyph name="chevron-down"></svg></span
|
|
570
571
|
></span>
|
|
571
572
|
</button>
|
|
572
573
|
} @else if (hasLabel()) {
|
|
573
|
-
<div data-part="label" [id]="labelId">
|
|
574
|
+
<div data-part="label" data-part-label="" [id]="labelId">
|
|
574
575
|
@if (labelTemplate(); as label) {
|
|
575
576
|
<ng-container *ngTemplateOutlet="label.template" />
|
|
576
577
|
} @else {
|
|
@@ -578,12 +579,12 @@ class SlTableOfContents {
|
|
|
578
579
|
}
|
|
579
580
|
</div>
|
|
580
581
|
}
|
|
581
|
-
<div #panel data-part="panel" [id]="panelId">
|
|
582
|
-
<div #marker data-part="marker" aria-hidden="true"></div>
|
|
583
|
-
<ol data-part="list">
|
|
582
|
+
<div #panel data-part="panel" data-part-panel="" [id]="panelId">
|
|
583
|
+
<div #marker data-part="marker" data-part-marker="" aria-hidden="true"></div>
|
|
584
|
+
<ol data-part="list" data-part-list="">
|
|
584
585
|
@if (loading()) {
|
|
585
586
|
@for (width of skeletonRows; track width) {
|
|
586
|
-
<li data-part="skeleton" aria-hidden="true">
|
|
587
|
+
<li data-part="skeleton" data-part-skeleton="" aria-hidden="true">
|
|
587
588
|
<span slSkeleton shape="text" [inlineSize]="width"></span>
|
|
588
589
|
</li>
|
|
589
590
|
}
|
|
@@ -599,12 +600,14 @@ class SlTableOfContents {
|
|
|
599
600
|
@for (entry of list; track entry.id) {
|
|
600
601
|
<li
|
|
601
602
|
data-part="item"
|
|
603
|
+
data-part-item=""
|
|
602
604
|
[attr.data-depth]="depth"
|
|
603
605
|
[attr.data-value]="entry.id"
|
|
604
606
|
[attr.data-current]="value() === entry.id ? '' : null"
|
|
605
607
|
>
|
|
606
608
|
<a
|
|
607
609
|
data-part="link"
|
|
610
|
+
data-part-link=""
|
|
608
611
|
[attr.href]="'#' + entry.id"
|
|
609
612
|
[attr.aria-current]="value() === entry.id ? 'location' : null"
|
|
610
613
|
[attr.data-current]="value() === entry.id ? '' : null"
|
|
@@ -622,7 +625,7 @@ class SlTableOfContents {
|
|
|
622
625
|
}
|
|
623
626
|
</a>
|
|
624
627
|
@if (entry.children?.length) {
|
|
625
|
-
<ol data-part="group">
|
|
628
|
+
<ol data-part="group" data-part-group="">
|
|
626
629
|
<ng-container
|
|
627
630
|
*ngTemplateOutlet="
|
|
628
631
|
entriesTemplate;
|
|
@@ -634,7 +637,7 @@ class SlTableOfContents {
|
|
|
634
637
|
</li>
|
|
635
638
|
}
|
|
636
639
|
</ng-template>
|
|
637
|
-
`, isInline: true, styles: ["@layer slotted.components{[data-ui=table-of-contents]{--_text: var(--slotted-table-of-contents-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-text, CanvasText);--_hover: var( --slotted-table-of-contents-color-hover, color-mix(in oklab, var(--_text) 30%, var(--_strong)) );--_current: var( --slotted-table-of-contents-color-current, var(--slotted-tone-accent-text, LinkText) );--_track: var(--slotted-table-of-contents-track-color, var(--slotted-border-subtle, GrayText));--_track-width: var( --slotted-table-of-contents-track-width, var(--slotted-border-width-medium, 2px) );--_marker: var( --slotted-table-of-contents-marker-color, var(--slotted-tone-accent-solid, Highlight) );--_indent: var(--slotted-table-of-contents-indent, var(--slotted-space-5, .75rem));--_line-height: var(--slotted-line-height-sm, 1.45);--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, ease);color:var(--_text);display:block;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=table-of-contents][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset: var(--slotted-control-padding-inline-sm, 10px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=table-of-contents][data-size=md]{--_row-height: var(--slotted-control-height-md, 34px);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset: var(--slotted-control-padding-inline-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px)}[data-ui=table-of-contents][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset: var(--slotted-control-padding-inline-lg, 16px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=table-of-contents][data-empty]:not([data-loading]){display:none}[data-ui=table-of-contents]>[data-part=label]{color:var(--_strong);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-sm, 1.45);margin-block-end:var(--slotted-space-3, .375rem);padding-inline:var(--_inset)}[data-ui=table-of-contents] [data-part=panel]{position:relative}[data-ui=table-of-contents] :is([data-part=list],[data-part=group]){list-style:none;margin:0;padding:0}[data-ui=table-of-contents][data-layout=vertical] [data-part=panel]>[data-part=list]{border-inline-start:var(--_track-width) solid var(--_track)}[data-ui=table-of-contents] [data-part=group]{padding-inline-start:var(--_indent)}[data-ui=table-of-contents] [data-part=item]{display:block;min-inline-size:0}[data-ui=table-of-contents] [data-part=link]{border-radius:var(--slotted-control-radius, 4px);color:inherit;display:block;overflow-wrap:anywhere;padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset);text-decoration:none;transition:color var(--slotted-duration-short) var(--_easing),font-weight var(--slotted-duration-short) var(--_easing)}[data-ui=table-of-contents] [data-part=link]:not([data-disabled]):not([data-current]):hover{color:var(--_hover)}[data-ui=table-of-contents] [data-part=link]:not([data-disabled]):not([data-current]):active{color:var(--_strong)}[data-ui=table-of-contents] [data-part=link][data-current]{color:var(--_current);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=table-of-contents] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=table-of-contents] [data-part=marker]{background-color:var(--_marker);border-radius:var(--slotted-radius-full, 9999px);pointer-events:none;position:absolute;transition:inset-block-start var(--_duration) var(--_easing),inset-inline-start var(--_duration) var(--_easing),block-size var(--_duration) var(--_easing),inline-size var(--_duration) var(--_easing)}[data-ui=table-of-contents][data-layout=vertical] [data-part=marker]{block-size:var(--_marker-size, 0px);inline-size:var(--_track-width);inset-block-start:var(--_marker-start, 0px);inset-inline-start:0}[data-ui=table-of-contents][data-numbered] :is([data-part=list],[data-part=group]){counter-reset:slotted-table-of-contents}[data-ui=table-of-contents][data-numbered] [data-part=item]{counter-increment:slotted-table-of-contents}[data-ui=table-of-contents][data-numbered] [data-part=link]:before{content:counters(slotted-table-of-contents,\".\") \".\";display:inline-block;font-variant-numeric:tabular-nums;margin-inline-end:var(--_gap)}[data-ui=table-of-contents][data-sticky]{display:flex;flex-direction:column;inset-block-start:var(--slotted-page-sticky-top, 0px);max-block-size:calc(100dvh - var(--slotted-page-sticky-top, 0px));position:sticky}[data-ui=table-of-contents][data-sticky]>[data-part=panel]{min-block-size:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}[data-ui=table-of-contents][data-layout=horizontal]{display:flex;gap:var(--_gap)}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=label]{align-self:center;flex:none;margin-block-end:0;padding-inline-end:0;white-space:nowrap}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel]{--_fade: var(--slotted-space-9, 2rem);--_fade-angle: 90deg;background:linear-gradient(var(--_track),var(--_track)) 0 100% / 100% var(--_track-width) no-repeat;display:flex;flex:1 1 auto;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain;padding-block-end:var(--_track-width);scrollbar-width:none}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel]:dir(rtl){--_fade-angle: 270deg}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=end]{-webkit-mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent)}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=start]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade));mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade))}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=both]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent)}[data-ui=table-of-contents][data-layout=horizontal] [data-part=list]{display:flex}[data-ui=table-of-contents][data-layout=horizontal] [data-part=item]{flex:none}[data-ui=table-of-contents][data-layout=horizontal] [data-part=link]{white-space:nowrap}[data-ui=table-of-contents][data-layout=horizontal] [data-part=group]{display:none}[data-ui=table-of-contents][data-layout=horizontal] [data-part=marker]{block-size:var(--_track-width);inline-size:var(--_marker-size, 0px);inset-block-end:0;inset-inline-start:var(--_marker-start, 0px)}[data-ui=table-of-contents][data-layout=collapsed]{position:relative}[data-ui=table-of-contents] [data-part=trigger]{align-items:center;appearance:none;background:none;border:0;border-block-end:var(--_track-width) solid var(--_track);border-radius:0;color:var(--_strong);cursor:pointer;display:flex;font:inherit;gap:var(--_gap);inline-size:100%;margin:0;min-block-size:var(--_row-height);padding-block:0;padding-inline:var(--_inset);text-align:start}[data-ui=table-of-contents] [data-part=trigger]>[data-part=label]{color:var(--_strong);flex:none;font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=table-of-contents] [data-part=current]{color:var(--_text);flex:1 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=table-of-contents] [data-part=current]:empty{display:none}[data-ui=table-of-contents] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;flex:none;margin-inline-start:auto}[data-ui=table-of-contents] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--_duration) var(--_easing)}[data-ui=table-of-contents][data-open] [data-part=indicator]>[data-ui=icon]{rotate:180deg}[data-ui=table-of-contents][data-layout=collapsed]>[data-part=panel]{--_enter-distance: var(--slotted-space-2, .25rem);background-color:var(--slotted-surface-raised, Canvas);border:var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle, GrayText);border-radius:var(--slotted-radius-md, 6px);box-shadow:var(--slotted-shadow-md, none);display:none;inset-block-start:100%;inset-inline:0;margin-block-start:var(--slotted-space-2, .25rem);max-block-size:min(60dvh,24rem);overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem);position:absolute;z-index:var(--slotted-z-index-popover, 1100)}[data-ui=table-of-contents][data-layout=collapsed][data-open]>[data-part=panel]{animation:slotted-table-of-contents-enter var(--slotted-duration-short) var(--slotted-easing-enter, ease-out);display:block}[data-ui=table-of-contents][data-layout=collapsed] [data-part=marker]{display:none}@keyframes slotted-table-of-contents-enter{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@media(prefers-reduced-motion:reduce){@keyframes slotted-table-of-contents-enter{0%{opacity:0}}}[data-ui=table-of-contents] [data-part=skeleton]{display:flex;min-block-size:var(--_row-height);padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset)}[data-ui=table-of-contents] [data-part=skeleton]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_font-size)}[data-ui=table-of-contents][data-layout=horizontal] [data-part=skeleton]{flex:none;inline-size:6rem}@media(forced-colors:active){[data-ui=table-of-contents] [data-part=marker]{background-color:Highlight;forced-color-adjust:none}[data-ui=table-of-contents] [data-part=link][data-current]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
640
|
+
`, isInline: true, styles: ["@layer slotted.components{[data-ui-table-of-contents]{--_text: var(--slotted-table-of-contents-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-text, CanvasText);--_hover: var( --slotted-table-of-contents-color-hover, color-mix(in oklab, var(--_text) 30%, var(--_strong)) );--_current: var( --slotted-table-of-contents-color-current, var(--slotted-tone-accent-text, LinkText) );--_track: var(--slotted-table-of-contents-track-color, var(--slotted-border-subtle, GrayText));--_track-width: var( --slotted-table-of-contents-track-width, var(--slotted-border-width-medium, 2px) );--_marker: var( --slotted-table-of-contents-marker-color, var(--slotted-tone-accent-solid, Highlight) );--_indent: var(--slotted-table-of-contents-indent, var(--slotted-space-5, .75rem));--_line-height: var(--slotted-line-height-sm, 1.45);--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, ease);color:var(--_text);display:block;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui-table-of-contents][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset: var(--slotted-control-padding-inline-sm, 10px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui-table-of-contents][data-size=md]{--_row-height: var(--slotted-control-height-md, 34px);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset: var(--slotted-control-padding-inline-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px)}[data-ui-table-of-contents][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset: var(--slotted-control-padding-inline-lg, 16px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui-table-of-contents][data-empty]:not([data-loading]){display:none}[data-ui-table-of-contents]>[data-part-label]{color:var(--_strong);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-sm, 1.45);margin-block-end:var(--slotted-space-3, .375rem);padding-inline:var(--_inset)}[data-ui-table-of-contents] [data-part-panel]{position:relative}[data-ui-table-of-contents] :is([data-part-list],[data-part-group]){list-style:none;margin:0;padding:0}[data-ui-table-of-contents][data-layout=vertical] [data-part-panel]>[data-part-list]{border-inline-start:var(--_track-width) solid var(--_track)}[data-ui-table-of-contents] [data-part-group]{padding-inline-start:var(--_indent)}[data-ui-table-of-contents] [data-part-item]{display:block;min-inline-size:0}[data-ui-table-of-contents] [data-part-link]{border-radius:var(--slotted-control-radius, 4px);color:inherit;display:block;overflow-wrap:anywhere;padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset);text-decoration:none;transition:color var(--slotted-duration-short) var(--_easing),font-weight var(--slotted-duration-short) var(--_easing)}[data-ui-table-of-contents] [data-part-link]:not([data-disabled]):not([data-current]):hover{color:var(--_hover)}[data-ui-table-of-contents] [data-part-link]:not([data-disabled]):not([data-current]):active{color:var(--_strong)}[data-ui-table-of-contents] [data-part-link][data-current]{color:var(--_current);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui-table-of-contents] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui-table-of-contents] [data-part-marker]{background-color:var(--_marker);border-radius:var(--slotted-radius-full, 9999px);pointer-events:none;position:absolute;transition:inset-block-start var(--_duration) var(--_easing),inset-inline-start var(--_duration) var(--_easing),block-size var(--_duration) var(--_easing),inline-size var(--_duration) var(--_easing)}[data-ui-table-of-contents][data-layout=vertical] [data-part-marker]{block-size:var(--_marker-size, 0px);inline-size:var(--_track-width);inset-block-start:var(--_marker-start, 0px);inset-inline-start:0}[data-ui-table-of-contents][data-numbered] :is([data-part-list],[data-part-group]){counter-reset:slotted-table-of-contents}[data-ui-table-of-contents][data-numbered] [data-part-item]{counter-increment:slotted-table-of-contents}[data-ui-table-of-contents][data-numbered] [data-part-link]:before{content:counters(slotted-table-of-contents,\".\") \".\";display:inline-block;font-variant-numeric:tabular-nums;margin-inline-end:var(--_gap)}[data-ui-table-of-contents][data-sticky]{display:flex;flex-direction:column;inset-block-start:var(--slotted-page-sticky-top, 0px);max-block-size:calc(100dvh - var(--slotted-page-sticky-top, 0px));position:sticky}[data-ui-table-of-contents][data-sticky]>[data-part-panel]{min-block-size:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}[data-ui-table-of-contents][data-layout=horizontal]{display:flex;gap:var(--_gap)}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-label]{align-self:center;flex:none;margin-block-end:0;padding-inline-end:0;white-space:nowrap}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel]{--_fade: var(--slotted-space-9, 2rem);--_fade-angle: 90deg;background:linear-gradient(var(--_track),var(--_track)) 0 100% / 100% var(--_track-width) no-repeat;display:flex;flex:1 1 auto;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain;padding-block-end:var(--_track-width);scrollbar-width:none}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel]:dir(rtl){--_fade-angle: 270deg}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=end]{-webkit-mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent)}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=start]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade));mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade))}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=both]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent)}[data-ui-table-of-contents][data-layout=horizontal] [data-part-list]{display:flex}[data-ui-table-of-contents][data-layout=horizontal] [data-part-item]{flex:none}[data-ui-table-of-contents][data-layout=horizontal] [data-part-link]{white-space:nowrap}[data-ui-table-of-contents][data-layout=horizontal] [data-part-group]{display:none}[data-ui-table-of-contents][data-layout=horizontal] [data-part-marker]{block-size:var(--_track-width);inline-size:var(--_marker-size, 0px);inset-block-end:0;inset-inline-start:var(--_marker-start, 0px)}[data-ui-table-of-contents][data-layout=collapsed]{position:relative}[data-ui-table-of-contents] [data-part-trigger]{align-items:center;appearance:none;background:none;border:0;border-block-end:var(--_track-width) solid var(--_track);border-radius:0;color:var(--_strong);cursor:pointer;display:flex;font:inherit;gap:var(--_gap);inline-size:100%;margin:0;min-block-size:var(--_row-height);padding-block:0;padding-inline:var(--_inset);text-align:start}[data-ui-table-of-contents] [data-part-trigger]>[data-part-label]{color:var(--_strong);flex:none;font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui-table-of-contents] [data-part-current]{color:var(--_text);flex:1 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-table-of-contents] [data-part-current]:empty{display:none}[data-ui-table-of-contents] [data-part-indicator]{--slotted-icon-size: var(--_icon-size);display:flex;flex:none;margin-inline-start:auto}[data-ui-table-of-contents] [data-part-indicator]>[data-ui-icon]{transition:rotate var(--_duration) var(--_easing)}[data-ui-table-of-contents][data-open] [data-part-indicator]>[data-ui-icon]{rotate:180deg}[data-ui-table-of-contents][data-layout=collapsed]>[data-part-panel]{--_enter-distance: var(--slotted-space-2, .25rem);background-color:var(--slotted-surface-raised, Canvas);border:var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle, GrayText);border-radius:var(--slotted-radius-md, 6px);box-shadow:var(--slotted-shadow-md, none);display:none;inset-block-start:100%;inset-inline:0;margin-block-start:var(--slotted-space-2, .25rem);max-block-size:min(60dvh,24rem);overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem);position:absolute;z-index:var(--slotted-z-index-popover, 1100)}[data-ui-table-of-contents][data-layout=collapsed][data-open]>[data-part-panel]{animation:slotted-table-of-contents-enter var(--slotted-duration-short) var(--slotted-easing-enter, ease-out);display:block}[data-ui-table-of-contents][data-layout=collapsed] [data-part-marker]{display:none}@keyframes slotted-table-of-contents-enter{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@media(prefers-reduced-motion:reduce){@keyframes slotted-table-of-contents-enter{0%{opacity:0}}}[data-ui-table-of-contents] [data-part-skeleton]{display:flex;min-block-size:var(--_row-height);padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset)}[data-ui-table-of-contents] [data-part-skeleton]>[data-ui-skeleton]{--slotted-skeleton-block-size: var(--_font-size)}[data-ui-table-of-contents][data-layout=horizontal] [data-part-skeleton]{flex:none;inline-size:6rem}@media(forced-colors:active){[data-ui-table-of-contents] [data-part-marker]{background-color:Highlight;forced-color-adjust:none}[data-ui-table-of-contents] [data-part-link][data-current]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlSkeleton, selector: "[slSkeleton]", inputs: ["shape", "size", "animation", "loading", "inlineSize", "blockSize"], exportAs: ["slSkeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
638
641
|
}
|
|
639
642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlTableOfContents, decorators: [{
|
|
640
643
|
type: Component,
|
|
@@ -643,25 +646,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
643
646
|
<button
|
|
644
647
|
#trigger
|
|
645
648
|
data-part="trigger"
|
|
649
|
+
data-part-trigger=""
|
|
646
650
|
type="button"
|
|
647
651
|
[attr.aria-controls]="panelId"
|
|
648
652
|
[attr.aria-expanded]="open()"
|
|
649
653
|
(click)="toggle($event)"
|
|
650
654
|
>
|
|
651
|
-
<span data-part="label" [id]="labelId">
|
|
655
|
+
<span data-part="label" data-part-label="" [id]="labelId">
|
|
652
656
|
@if (labelTemplate(); as label) {
|
|
653
657
|
<ng-container *ngTemplateOutlet="label.template" />
|
|
654
658
|
} @else {
|
|
655
659
|
{{ resolvedLabel() }}
|
|
656
660
|
}
|
|
657
661
|
</span>
|
|
658
|
-
<span data-part="current">{{ currentLabel() }}</span>
|
|
659
|
-
<span data-part="indicator" aria-hidden="true"
|
|
662
|
+
<span data-part="current" data-part-current="">{{ currentLabel() }}</span>
|
|
663
|
+
<span data-part="indicator" data-part-indicator="" aria-hidden="true"
|
|
660
664
|
><span slIcon><svg slGlyph name="chevron-down"></svg></span
|
|
661
665
|
></span>
|
|
662
666
|
</button>
|
|
663
667
|
} @else if (hasLabel()) {
|
|
664
|
-
<div data-part="label" [id]="labelId">
|
|
668
|
+
<div data-part="label" data-part-label="" [id]="labelId">
|
|
665
669
|
@if (labelTemplate(); as label) {
|
|
666
670
|
<ng-container *ngTemplateOutlet="label.template" />
|
|
667
671
|
} @else {
|
|
@@ -669,12 +673,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
669
673
|
}
|
|
670
674
|
</div>
|
|
671
675
|
}
|
|
672
|
-
<div #panel data-part="panel" [id]="panelId">
|
|
673
|
-
<div #marker data-part="marker" aria-hidden="true"></div>
|
|
674
|
-
<ol data-part="list">
|
|
676
|
+
<div #panel data-part="panel" data-part-panel="" [id]="panelId">
|
|
677
|
+
<div #marker data-part="marker" data-part-marker="" aria-hidden="true"></div>
|
|
678
|
+
<ol data-part="list" data-part-list="">
|
|
675
679
|
@if (loading()) {
|
|
676
680
|
@for (width of skeletonRows; track width) {
|
|
677
|
-
<li data-part="skeleton" aria-hidden="true">
|
|
681
|
+
<li data-part="skeleton" data-part-skeleton="" aria-hidden="true">
|
|
678
682
|
<span slSkeleton shape="text" [inlineSize]="width"></span>
|
|
679
683
|
</li>
|
|
680
684
|
}
|
|
@@ -690,12 +694,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
690
694
|
@for (entry of list; track entry.id) {
|
|
691
695
|
<li
|
|
692
696
|
data-part="item"
|
|
697
|
+
data-part-item=""
|
|
693
698
|
[attr.data-depth]="depth"
|
|
694
699
|
[attr.data-value]="entry.id"
|
|
695
700
|
[attr.data-current]="value() === entry.id ? '' : null"
|
|
696
701
|
>
|
|
697
702
|
<a
|
|
698
703
|
data-part="link"
|
|
704
|
+
data-part-link=""
|
|
699
705
|
[attr.href]="'#' + entry.id"
|
|
700
706
|
[attr.aria-current]="value() === entry.id ? 'location' : null"
|
|
701
707
|
[attr.data-current]="value() === entry.id ? '' : null"
|
|
@@ -713,7 +719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
713
719
|
}
|
|
714
720
|
</a>
|
|
715
721
|
@if (entry.children?.length) {
|
|
716
|
-
<ol data-part="group">
|
|
722
|
+
<ol data-part="group" data-part-group="">
|
|
717
723
|
<ng-container
|
|
718
724
|
*ngTemplateOutlet="
|
|
719
725
|
entriesTemplate;
|
|
@@ -727,7 +733,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
727
733
|
</ng-template>
|
|
728
734
|
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
729
735
|
'data-ui': 'table-of-contents',
|
|
736
|
+
'data-ui-table-of-contents': '',
|
|
730
737
|
'data-part': 'root',
|
|
738
|
+
'data-part-root': '',
|
|
731
739
|
'[attr.aria-label]': 'ariaLabel()',
|
|
732
740
|
'[attr.aria-labelledby]': 'ariaLabelledBy()',
|
|
733
741
|
'[attr.aria-busy]': "loading() ? 'true' : null",
|
|
@@ -739,7 +747,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
|
|
|
739
747
|
'[attr.data-loading]': "loading() ? '' : null",
|
|
740
748
|
'[attr.data-empty]': "empty() ? '' : null",
|
|
741
749
|
'(keydown)': 'onKeyDown($event)',
|
|
742
|
-
}, styles: ["@layer slotted.components{[data-ui=table-of-contents]{--_text: var(--slotted-table-of-contents-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-text, CanvasText);--_hover: var( --slotted-table-of-contents-color-hover, color-mix(in oklab, var(--_text) 30%, var(--_strong)) );--_current: var( --slotted-table-of-contents-color-current, var(--slotted-tone-accent-text, LinkText) );--_track: var(--slotted-table-of-contents-track-color, var(--slotted-border-subtle, GrayText));--_track-width: var( --slotted-table-of-contents-track-width, var(--slotted-border-width-medium, 2px) );--_marker: var( --slotted-table-of-contents-marker-color, var(--slotted-tone-accent-solid, Highlight) );--_indent: var(--slotted-table-of-contents-indent, var(--slotted-space-5, .75rem));--_line-height: var(--slotted-line-height-sm, 1.45);--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, ease);color:var(--_text);display:block;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui=table-of-contents][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset: var(--slotted-control-padding-inline-sm, 10px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui=table-of-contents][data-size=md]{--_row-height: var(--slotted-control-height-md, 34px);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset: var(--slotted-control-padding-inline-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px)}[data-ui=table-of-contents][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset: var(--slotted-control-padding-inline-lg, 16px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui=table-of-contents][data-empty]:not([data-loading]){display:none}[data-ui=table-of-contents]>[data-part=label]{color:var(--_strong);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-sm, 1.45);margin-block-end:var(--slotted-space-3, .375rem);padding-inline:var(--_inset)}[data-ui=table-of-contents] [data-part=panel]{position:relative}[data-ui=table-of-contents] :is([data-part=list],[data-part=group]){list-style:none;margin:0;padding:0}[data-ui=table-of-contents][data-layout=vertical] [data-part=panel]>[data-part=list]{border-inline-start:var(--_track-width) solid var(--_track)}[data-ui=table-of-contents] [data-part=group]{padding-inline-start:var(--_indent)}[data-ui=table-of-contents] [data-part=item]{display:block;min-inline-size:0}[data-ui=table-of-contents] [data-part=link]{border-radius:var(--slotted-control-radius, 4px);color:inherit;display:block;overflow-wrap:anywhere;padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset);text-decoration:none;transition:color var(--slotted-duration-short) var(--_easing),font-weight var(--slotted-duration-short) var(--_easing)}[data-ui=table-of-contents] [data-part=link]:not([data-disabled]):not([data-current]):hover{color:var(--_hover)}[data-ui=table-of-contents] [data-part=link]:not([data-disabled]):not([data-current]):active{color:var(--_strong)}[data-ui=table-of-contents] [data-part=link][data-current]{color:var(--_current);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui=table-of-contents] :is([data-part=link],[data-part=trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui=table-of-contents] [data-part=marker]{background-color:var(--_marker);border-radius:var(--slotted-radius-full, 9999px);pointer-events:none;position:absolute;transition:inset-block-start var(--_duration) var(--_easing),inset-inline-start var(--_duration) var(--_easing),block-size var(--_duration) var(--_easing),inline-size var(--_duration) var(--_easing)}[data-ui=table-of-contents][data-layout=vertical] [data-part=marker]{block-size:var(--_marker-size, 0px);inline-size:var(--_track-width);inset-block-start:var(--_marker-start, 0px);inset-inline-start:0}[data-ui=table-of-contents][data-numbered] :is([data-part=list],[data-part=group]){counter-reset:slotted-table-of-contents}[data-ui=table-of-contents][data-numbered] [data-part=item]{counter-increment:slotted-table-of-contents}[data-ui=table-of-contents][data-numbered] [data-part=link]:before{content:counters(slotted-table-of-contents,\".\") \".\";display:inline-block;font-variant-numeric:tabular-nums;margin-inline-end:var(--_gap)}[data-ui=table-of-contents][data-sticky]{display:flex;flex-direction:column;inset-block-start:var(--slotted-page-sticky-top, 0px);max-block-size:calc(100dvh - var(--slotted-page-sticky-top, 0px));position:sticky}[data-ui=table-of-contents][data-sticky]>[data-part=panel]{min-block-size:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}[data-ui=table-of-contents][data-layout=horizontal]{display:flex;gap:var(--_gap)}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=label]{align-self:center;flex:none;margin-block-end:0;padding-inline-end:0;white-space:nowrap}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel]{--_fade: var(--slotted-space-9, 2rem);--_fade-angle: 90deg;background:linear-gradient(var(--_track),var(--_track)) 0 100% / 100% var(--_track-width) no-repeat;display:flex;flex:1 1 auto;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain;padding-block-end:var(--_track-width);scrollbar-width:none}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel]:dir(rtl){--_fade-angle: 270deg}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=end]{-webkit-mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent)}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=start]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade));mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade))}[data-ui=table-of-contents][data-layout=horizontal]>[data-part=panel][data-overflow=both]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent)}[data-ui=table-of-contents][data-layout=horizontal] [data-part=list]{display:flex}[data-ui=table-of-contents][data-layout=horizontal] [data-part=item]{flex:none}[data-ui=table-of-contents][data-layout=horizontal] [data-part=link]{white-space:nowrap}[data-ui=table-of-contents][data-layout=horizontal] [data-part=group]{display:none}[data-ui=table-of-contents][data-layout=horizontal] [data-part=marker]{block-size:var(--_track-width);inline-size:var(--_marker-size, 0px);inset-block-end:0;inset-inline-start:var(--_marker-start, 0px)}[data-ui=table-of-contents][data-layout=collapsed]{position:relative}[data-ui=table-of-contents] [data-part=trigger]{align-items:center;appearance:none;background:none;border:0;border-block-end:var(--_track-width) solid var(--_track);border-radius:0;color:var(--_strong);cursor:pointer;display:flex;font:inherit;gap:var(--_gap);inline-size:100%;margin:0;min-block-size:var(--_row-height);padding-block:0;padding-inline:var(--_inset);text-align:start}[data-ui=table-of-contents] [data-part=trigger]>[data-part=label]{color:var(--_strong);flex:none;font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui=table-of-contents] [data-part=current]{color:var(--_text);flex:1 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui=table-of-contents] [data-part=current]:empty{display:none}[data-ui=table-of-contents] [data-part=indicator]{--slotted-icon-size: var(--_icon-size);display:flex;flex:none;margin-inline-start:auto}[data-ui=table-of-contents] [data-part=indicator]>[data-ui=icon]{transition:rotate var(--_duration) var(--_easing)}[data-ui=table-of-contents][data-open] [data-part=indicator]>[data-ui=icon]{rotate:180deg}[data-ui=table-of-contents][data-layout=collapsed]>[data-part=panel]{--_enter-distance: var(--slotted-space-2, .25rem);background-color:var(--slotted-surface-raised, Canvas);border:var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle, GrayText);border-radius:var(--slotted-radius-md, 6px);box-shadow:var(--slotted-shadow-md, none);display:none;inset-block-start:100%;inset-inline:0;margin-block-start:var(--slotted-space-2, .25rem);max-block-size:min(60dvh,24rem);overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem);position:absolute;z-index:var(--slotted-z-index-popover, 1100)}[data-ui=table-of-contents][data-layout=collapsed][data-open]>[data-part=panel]{animation:slotted-table-of-contents-enter var(--slotted-duration-short) var(--slotted-easing-enter, ease-out);display:block}[data-ui=table-of-contents][data-layout=collapsed] [data-part=marker]{display:none}@keyframes slotted-table-of-contents-enter{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@media(prefers-reduced-motion:reduce){@keyframes slotted-table-of-contents-enter{0%{opacity:0}}}[data-ui=table-of-contents] [data-part=skeleton]{display:flex;min-block-size:var(--_row-height);padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset)}[data-ui=table-of-contents] [data-part=skeleton]>[data-ui=skeleton]{--slotted-skeleton-block-size: var(--_font-size)}[data-ui=table-of-contents][data-layout=horizontal] [data-part=skeleton]{flex:none;inline-size:6rem}@media(forced-colors:active){[data-ui=table-of-contents] [data-part=marker]{background-color:Highlight;forced-color-adjust:none}[data-ui=table-of-contents] [data-part=link][data-current]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}}}\n"] }]
|
|
750
|
+
}, styles: ["@layer slotted.components{[data-ui-table-of-contents]{--_text: var(--slotted-table-of-contents-color, var(--slotted-text-muted, GrayText));--_strong: var(--slotted-text, CanvasText);--_hover: var( --slotted-table-of-contents-color-hover, color-mix(in oklab, var(--_text) 30%, var(--_strong)) );--_current: var( --slotted-table-of-contents-color-current, var(--slotted-tone-accent-text, LinkText) );--_track: var(--slotted-table-of-contents-track-color, var(--slotted-border-subtle, GrayText));--_track-width: var( --slotted-table-of-contents-track-width, var(--slotted-border-width-medium, 2px) );--_marker: var( --slotted-table-of-contents-marker-color, var(--slotted-tone-accent-solid, Highlight) );--_indent: var(--slotted-table-of-contents-indent, var(--slotted-space-5, .75rem));--_line-height: var(--slotted-line-height-sm, 1.45);--_duration: var(--slotted-duration-medium);--_easing: var(--slotted-easing-standard, ease);color:var(--_text);display:block;font-family:var(--slotted-font-family-sans, inherit);font-size:var(--_font-size);line-height:var(--_line-height);min-inline-size:0}[data-ui-table-of-contents][data-size=sm]{--_row-height: var(--slotted-control-height-sm, 30px);--_font-size: var(--slotted-control-font-size-sm, 12px);--_inset: var(--slotted-control-padding-inline-sm, 10px);--_icon-size: var(--slotted-control-icon-size-sm, 14px);--_gap: var(--slotted-control-gap-sm, 6px)}[data-ui-table-of-contents][data-size=md]{--_row-height: var(--slotted-control-height-md, 34px);--_font-size: var(--slotted-control-font-size-md, 13px);--_inset: var(--slotted-control-padding-inline-md, 13px);--_icon-size: var(--slotted-control-icon-size-md, 16px);--_gap: var(--slotted-control-gap-md, 8px)}[data-ui-table-of-contents][data-size=lg]{--_row-height: var(--slotted-control-height-lg, 38px);--_font-size: var(--slotted-control-font-size-lg, 14px);--_inset: var(--slotted-control-padding-inline-lg, 16px);--_icon-size: var(--slotted-control-icon-size-lg, 18px);--_gap: var(--slotted-control-gap-lg, 8px)}[data-ui-table-of-contents][data-empty]:not([data-loading]){display:none}[data-ui-table-of-contents]>[data-part-label]{color:var(--_strong);font-size:var(--slotted-font-size-sm, .8125rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-sm, 1.45);margin-block-end:var(--slotted-space-3, .375rem);padding-inline:var(--_inset)}[data-ui-table-of-contents] [data-part-panel]{position:relative}[data-ui-table-of-contents] :is([data-part-list],[data-part-group]){list-style:none;margin:0;padding:0}[data-ui-table-of-contents][data-layout=vertical] [data-part-panel]>[data-part-list]{border-inline-start:var(--_track-width) solid var(--_track)}[data-ui-table-of-contents] [data-part-group]{padding-inline-start:var(--_indent)}[data-ui-table-of-contents] [data-part-item]{display:block;min-inline-size:0}[data-ui-table-of-contents] [data-part-link]{border-radius:var(--slotted-control-radius, 4px);color:inherit;display:block;overflow-wrap:anywhere;padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset);text-decoration:none;transition:color var(--slotted-duration-short) var(--_easing),font-weight var(--slotted-duration-short) var(--_easing)}[data-ui-table-of-contents] [data-part-link]:not([data-disabled]):not([data-current]):hover{color:var(--_hover)}[data-ui-table-of-contents] [data-part-link]:not([data-disabled]):not([data-current]):active{color:var(--_strong)}[data-ui-table-of-contents] [data-part-link][data-current]{color:var(--_current);font-weight:var(--slotted-font-weight-medium, 500)}[data-ui-table-of-contents] :is([data-part-link],[data-part-trigger]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, Highlight);outline-offset:calc(-1 * var(--slotted-focus-ring-offset, 2px))}[data-ui-table-of-contents] [data-part-marker]{background-color:var(--_marker);border-radius:var(--slotted-radius-full, 9999px);pointer-events:none;position:absolute;transition:inset-block-start var(--_duration) var(--_easing),inset-inline-start var(--_duration) var(--_easing),block-size var(--_duration) var(--_easing),inline-size var(--_duration) var(--_easing)}[data-ui-table-of-contents][data-layout=vertical] [data-part-marker]{block-size:var(--_marker-size, 0px);inline-size:var(--_track-width);inset-block-start:var(--_marker-start, 0px);inset-inline-start:0}[data-ui-table-of-contents][data-numbered] :is([data-part-list],[data-part-group]){counter-reset:slotted-table-of-contents}[data-ui-table-of-contents][data-numbered] [data-part-item]{counter-increment:slotted-table-of-contents}[data-ui-table-of-contents][data-numbered] [data-part-link]:before{content:counters(slotted-table-of-contents,\".\") \".\";display:inline-block;font-variant-numeric:tabular-nums;margin-inline-end:var(--_gap)}[data-ui-table-of-contents][data-sticky]{display:flex;flex-direction:column;inset-block-start:var(--slotted-page-sticky-top, 0px);max-block-size:calc(100dvh - var(--slotted-page-sticky-top, 0px));position:sticky}[data-ui-table-of-contents][data-sticky]>[data-part-panel]{min-block-size:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}[data-ui-table-of-contents][data-layout=horizontal]{display:flex;gap:var(--_gap)}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-label]{align-self:center;flex:none;margin-block-end:0;padding-inline-end:0;white-space:nowrap}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel]{--_fade: var(--slotted-space-9, 2rem);--_fade-angle: 90deg;background:linear-gradient(var(--_track),var(--_track)) 0 100% / 100% var(--_track-width) no-repeat;display:flex;flex:1 1 auto;min-inline-size:0;overflow-x:auto;overscroll-behavior-inline:contain;padding-block-end:var(--_track-width);scrollbar-width:none}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel]:dir(rtl){--_fade-angle: 270deg}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=end]{-webkit-mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),#000 calc(100% - var(--_fade)),transparent)}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=start]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade));mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade))}[data-ui-table-of-contents][data-layout=horizontal]>[data-part-panel][data-overflow=both]{-webkit-mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent);mask-image:linear-gradient(var(--_fade-angle),transparent,#000 var(--_fade),#000 calc(100% - var(--_fade)),transparent)}[data-ui-table-of-contents][data-layout=horizontal] [data-part-list]{display:flex}[data-ui-table-of-contents][data-layout=horizontal] [data-part-item]{flex:none}[data-ui-table-of-contents][data-layout=horizontal] [data-part-link]{white-space:nowrap}[data-ui-table-of-contents][data-layout=horizontal] [data-part-group]{display:none}[data-ui-table-of-contents][data-layout=horizontal] [data-part-marker]{block-size:var(--_track-width);inline-size:var(--_marker-size, 0px);inset-block-end:0;inset-inline-start:var(--_marker-start, 0px)}[data-ui-table-of-contents][data-layout=collapsed]{position:relative}[data-ui-table-of-contents] [data-part-trigger]{align-items:center;appearance:none;background:none;border:0;border-block-end:var(--_track-width) solid var(--_track);border-radius:0;color:var(--_strong);cursor:pointer;display:flex;font:inherit;gap:var(--_gap);inline-size:100%;margin:0;min-block-size:var(--_row-height);padding-block:0;padding-inline:var(--_inset);text-align:start}[data-ui-table-of-contents] [data-part-trigger]>[data-part-label]{color:var(--_strong);flex:none;font-weight:var(--slotted-font-weight-semibold, 600)}[data-ui-table-of-contents] [data-part-current]{color:var(--_text);flex:1 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-ui-table-of-contents] [data-part-current]:empty{display:none}[data-ui-table-of-contents] [data-part-indicator]{--slotted-icon-size: var(--_icon-size);display:flex;flex:none;margin-inline-start:auto}[data-ui-table-of-contents] [data-part-indicator]>[data-ui-icon]{transition:rotate var(--_duration) var(--_easing)}[data-ui-table-of-contents][data-open] [data-part-indicator]>[data-ui-icon]{rotate:180deg}[data-ui-table-of-contents][data-layout=collapsed]>[data-part-panel]{--_enter-distance: var(--slotted-space-2, .25rem);background-color:var(--slotted-surface-raised, Canvas);border:var(--slotted-border-width-thin, 1px) solid var(--slotted-border-subtle, GrayText);border-radius:var(--slotted-radius-md, 6px);box-shadow:var(--slotted-shadow-md, none);display:none;inset-block-start:100%;inset-inline:0;margin-block-start:var(--slotted-space-2, .25rem);max-block-size:min(60dvh,24rem);overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem);position:absolute;z-index:var(--slotted-z-index-popover, 1100)}[data-ui-table-of-contents][data-layout=collapsed][data-open]>[data-part-panel]{animation:slotted-table-of-contents-enter var(--slotted-duration-short) var(--slotted-easing-enter, ease-out);display:block}[data-ui-table-of-contents][data-layout=collapsed] [data-part-marker]{display:none}@keyframes slotted-table-of-contents-enter{0%{opacity:0;translate:0 calc(-1 * var(--_enter-distance))}}@media(prefers-reduced-motion:reduce){@keyframes slotted-table-of-contents-enter{0%{opacity:0}}}[data-ui-table-of-contents] [data-part-skeleton]{display:flex;min-block-size:var(--_row-height);padding-block:calc((var(--_row-height) - var(--_font-size) * var(--_line-height)) / 2);padding-inline:var(--_inset)}[data-ui-table-of-contents] [data-part-skeleton]>[data-ui-skeleton]{--slotted-skeleton-block-size: var(--_font-size)}[data-ui-table-of-contents][data-layout=horizontal] [data-part-skeleton]{flex:none;inline-size:6rem}@media(forced-colors:active){[data-ui-table-of-contents] [data-part-marker]{background-color:Highlight;forced-color-adjust:none}[data-ui-table-of-contents] [data-part-link][data-current]{background-color:Highlight;color:HighlightText;forced-color-adjust:none}}}\n"] }]
|
|
743
751
|
}], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], source: [{ type: i0.Input, args: [{ isSignal: true, alias: "source", required: false }] }], levels: [{ type: i0.Input, args: [{ isSignal: true, alias: "levels", required: false }] }], exclude: [{ type: i0.Input, args: [{ isSignal: true, alias: "exclude", required: false }] }], scroller: [{ type: i0.Input, args: [{ isSignal: true, alias: "scroller", required: false }] }], offset: [{ type: i0.Input, args: [{ isSignal: true, alias: "offset", required: false }] }], layout: [{ type: i0.Input, args: [{ isSignal: true, alias: "layout", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], history: [{ type: i0.Input, args: [{ isSignal: true, alias: "history", required: false }] }], sticky: [{ type: i0.Input, args: [{ isSignal: true, alias: "sticky", required: false }] }], numbered: [{ type: i0.Input, args: [{ isSignal: true, alias: "numbered", required: false }] }], landmark: [{ type: i0.Input, args: [{ isSignal: true, alias: "landmark", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], valueChangeRequest: [{ type: i0.Output, args: ["valueChangeRequest"] }], openChangeRequest: [{ type: i0.Output, args: ["openChangeRequest"] }], linkTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlTableOfContentsLink), { isSignal: true }] }], labelTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SlTableOfContentsLabel), { isSignal: true }] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }], marker: [{ type: i0.ViewChild, args: ['marker', { isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: ['trigger', { isSignal: true }] }] } });
|
|
744
752
|
|
|
745
753
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-table-of-contents.mjs","sources":["../../table-of-contents/src/table-of-contents-defaults.ts","../../table-of-contents/src/table-of-contents.ts","../../table-of-contents/src/slotted-angular-table-of-contents.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { DEFAULT_LEVELS } from '@slotted/core/outline';\n\n/** The row height step, on the control scale. */\nexport type TableOfContentsSize = 'sm' | 'md' | 'lg';\n\n/**\n * The column beside a page, the bar under its title, or the trigger with the\n * current label that opens the list under it. Not decided by width: a sidebar\n * column is narrower than a phone's bar, so the width does not say which one\n * the consumer wants.\n */\nexport type TableOfContentsLayout = 'vertical' | 'horizontal' | 'collapsed';\n\n/** What a press does to the URL. `push` and `replace` write `history`; `none` leaves it. */\nexport type TableOfContentsHistory = 'push' | 'replace' | 'none';\n\n/** Why the current target moved. `scroll` is the observer answering the position. */\nexport type TableOfContentsValueReason = 'scroll' | 'pointer' | 'keyboard' | 'programmatic';\n\n/** Why the collapsed list opened or closed. */\nexport type TableOfContentsOpenReason =\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'outsidePress' | 'programmatic';\n\n/** One entry of the list, when the list is given as data. */\nexport interface TableOfContentsItemData {\n /** The target's id, without the hash. */\n id: string;\n label: string;\n children?: readonly TableOfContentsItemData[] | undefined;\n}\n\n/** What an application sets once for every list under it. */\nexport interface TableOfContentsDefaults {\n history: TableOfContentsHistory;\n landmark: boolean;\n layout: TableOfContentsLayout;\n levels: readonly [number, number];\n numbered: boolean;\n offset: number;\n size: TableOfContentsSize;\n sticky: boolean;\n}\n\n/** The contract's defaults. */\nexport const TABLE_OF_CONTENTS_FALLBACK: TableOfContentsDefaults = {\n history: 'push',\n landmark: true,\n layout: 'vertical',\n levels: DEFAULT_LEVELS,\n numbered: false,\n offset: 0,\n size: 'md',\n sticky: false,\n};\n\nexport const TABLE_OF_CONTENTS_DEFAULTS = new InjectionToken<TableOfContentsDefaults>(\n 'slotted table-of-contents defaults',\n { providedIn: 'root', factory: () => TABLE_OF_CONTENTS_FALLBACK },\n);\n\n/**\n * An application decides once how its lists read — the levels a document\n * outlines, whether the column pins, what a press does to the URL — rather\n * than repeating it on every page. A list that states any of them itself\n * still wins. Its words come from the language in force (`provideSlotted`).\n */\nexport function provideTableOfContentsDefaults(defaults: Partial<TableOfContentsDefaults>) {\n return {\n provide: TABLE_OF_CONTENTS_DEFAULTS,\n useFactory: (): TableOfContentsDefaults => ({ ...TABLE_OF_CONTENTS_FALLBACK, ...defaults }),\n };\n}\n\nexport function injectTableOfContentsDefaults(): TableOfContentsDefaults {\n return inject(TABLE_OF_CONTENTS_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlTableOfContentsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-table-of-contents-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport {\n tableOfContentsMessages,\n type PartialMessages,\n type TableOfContentsMessages,\n} from '@slotted/core/i18n';\nimport { collectOutline } from '@slotted/core/outline';\nimport type { OutlineEntry } from '@slotted/core/outline';\nimport {\n createScrollSpy,\n focusTarget,\n landOn,\n prefersReducedMotion,\n readStickyTop,\n resolveScroller,\n} from '@slotted/core/scroll-spy';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectTableOfContentsDefaults,\n SlTableOfContentsIdFactory,\n} from './table-of-contents-defaults';\nimport type {\n TableOfContentsHistory,\n TableOfContentsItemData,\n TableOfContentsLayout,\n TableOfContentsOpenReason,\n TableOfContentsSize,\n TableOfContentsValueReason,\n} from './table-of-contents-defaults';\n\nexport type {\n TableOfContentsDefaults,\n TableOfContentsHistory,\n TableOfContentsItemData,\n TableOfContentsLayout,\n TableOfContentsOpenReason,\n TableOfContentsSize,\n TableOfContentsValueReason,\n} from './table-of-contents-defaults';\n\n/**\n * The tolerance under the reading line: a target whose top is within it is\n * taken as reached, so a heading landed on by a press — sitting exactly at\n * the line, give or take a subpixel — is the one marked. Ant's `bounds`.\n */\nexport const TABLE_OF_CONTENTS_BOUNDS = 4;\n\n/** The skeleton rows the list draws while loading, by width. */\nconst SKELETON_ROWS = ['72%', '56%', '80%', '48%'];\n\n/** What the link template is handed: the entry, and whether it is current. */\nexport interface TableOfContentsLinkContext {\n $implicit: TableOfContentsItemData;\n current: boolean;\n}\n\n/**\n * The content of every link, as a template: `<ng-template slTableOfContentsLink let-entry>`.\n * Without one the link shows the entry's label.\n */\n@Directive({ selector: 'ng-template[slTableOfContentsLink]', standalone: true })\nexport class SlTableOfContentsLink {\n readonly template = inject<TemplateRef<TableOfContentsLinkContext>>(TemplateRef);\n /* Types the template's context, so `let-entry` is an entry in the template. */\n static ngTemplateContextGuard(\n _directive: SlTableOfContentsLink,\n context: unknown,\n ): context is TableOfContentsLinkContext {\n return context !== null;\n }\n}\n\n/** The list's title, as a template: `<ng-template slTableOfContentsLabel>`. */\n@Directive({ selector: 'ng-template[slTableOfContentsLabel]', standalone: true })\nexport class SlTableOfContentsLabel {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\nfunction fromOutline(entries: readonly OutlineEntry[]): TableOfContentsItemData[] {\n return entries.map((entry) => ({\n id: entry.id,\n label: entry.label,\n children: fromOutline(entry.children),\n }));\n}\n\nfunction flatten(items: readonly TableOfContentsItemData[]): TableOfContentsItemData[] {\n const out: TableOfContentsItemData[] = [];\n const walk = (list: readonly TableOfContentsItemData[]) => {\n for (const item of list) {\n out.push(item);\n if (item.children !== undefined) walk(item.children);\n }\n };\n walk(items);\n return out;\n}\n\nfunction element(\n value: ElementRef<HTMLElement> | HTMLElement | null | undefined,\n): HTMLElement | null | undefined {\n if (value === undefined || value === null) return value;\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\n/** A click the platform should keep: a modifier for a new tab, or a button other than the main one. */\nfunction platformClick(event: MouseEvent): boolean {\n return event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n}\n\n/**\n * A list of links into the document the reader is in, with the link of the\n * place in view marked.\n *\n * The directive goes on the consumer's own element — `<nav slTableOfContents>`\n * standing alone, `<div slTableOfContents>` inside a landmark that already has\n * a name. `landmark` decides whether the name is written; the element is the\n * consumer's, as it is everywhere in this ecosystem.\n *\n * **Two ways in, one list.** `items` as data, or `source` — a region whose\n * headings are read after the view is built by `@slotted/core/outline` and\n * read again when the region's subtree changes. A template Angular would not\n * write a nested list by hand, so there are no parts to compose; a\n * `slTableOfContentsLink` template shapes every link instead.\n *\n * **Two values, two models.** `value` is the current target and `open` is\n * whether the collapsed list is shown. The spy asks `value` to move with the\n * reason `scroll`; a press asks with `pointer` or `keyboard` before it\n * scrolls, and the scroll happens whether or not the request is accepted.\n */\n@Component({\n selector: '[slTableOfContents]',\n standalone: true,\n exportAs: 'slTableOfContents',\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlSkeleton],\n template: `\n @if (collapsed()) {\n <button\n #trigger\n data-part=\"trigger\"\n type=\"button\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"toggle($event)\"\n >\n <span data-part=\"label\" [id]=\"labelId\">\n @if (labelTemplate(); as label) {\n <ng-container *ngTemplateOutlet=\"label.template\" />\n } @else {\n {{ resolvedLabel() }}\n }\n </span>\n <span data-part=\"current\">{{ currentLabel() }}</span>\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n </button>\n } @else if (hasLabel()) {\n <div data-part=\"label\" [id]=\"labelId\">\n @if (labelTemplate(); as label) {\n <ng-container *ngTemplateOutlet=\"label.template\" />\n } @else {\n {{ label() }}\n }\n </div>\n }\n <div #panel data-part=\"panel\" [id]=\"panelId\">\n <div #marker data-part=\"marker\" aria-hidden=\"true\"></div>\n <ol data-part=\"list\">\n @if (loading()) {\n @for (width of skeletonRows; track width) {\n <li data-part=\"skeleton\" aria-hidden=\"true\">\n <span slSkeleton shape=\"text\" [inlineSize]=\"width\"></span>\n </li>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"entriesTemplate; context: { $implicit: entries(), depth: 1 }\"\n />\n }\n </ol>\n </div>\n\n <ng-template #entriesTemplate let-list let-depth=\"depth\">\n @for (entry of list; track entry.id) {\n <li\n data-part=\"item\"\n [attr.data-depth]=\"depth\"\n [attr.data-value]=\"entry.id\"\n [attr.data-current]=\"value() === entry.id ? '' : null\"\n >\n <a\n data-part=\"link\"\n [attr.href]=\"'#' + entry.id\"\n [attr.aria-current]=\"value() === entry.id ? 'location' : null\"\n [attr.data-current]=\"value() === entry.id ? '' : null\"\n (click)=\"onLinkClick($event, entry.id)\"\n >\n @if (linkTemplate(); as link) {\n <ng-container\n *ngTemplateOutlet=\"\n link.template;\n context: { $implicit: entry, current: value() === entry.id }\n \"\n />\n } @else {\n {{ entry.label }}\n }\n </a>\n @if (entry.children?.length) {\n <ol data-part=\"group\">\n <ng-container\n *ngTemplateOutlet=\"\n entriesTemplate;\n context: { $implicit: entry.children, depth: depth + 1 }\n \"\n />\n </ol>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: '../../../styles/src/table-of-contents/table-of-contents.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'table-of-contents',\n 'data-part': 'root',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-sticky]': \"resolvedSticky() && !collapsed() ? '' : null\",\n '[attr.data-numbered]': \"resolvedNumbered() ? '' : null\",\n '[attr.data-open]': \"collapsed() && open() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.data-empty]': \"empty() ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlTableOfContents {\n /** The current target's id, without the hash. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n /** Whether the collapsed list is shown. */\n readonly open = model<boolean>(false);\n\n /** The list as data. */\n readonly items = input<readonly TableOfContentsItemData[] | undefined>(undefined);\n /** The region whose headings make the list, read after the view is built. */\n readonly source = input<ElementRef<HTMLElement> | HTMLElement | null | undefined>(undefined);\n /** The lowest and highest heading level `source` keeps. */\n readonly levels = input<readonly [number, number] | undefined>(undefined);\n /** A heading matching this selector, or inside one, is left out of `source`. */\n readonly exclude = input<string | undefined>(undefined);\n /** The element that scrolls. Derived from the first target when unset. */\n readonly scroller = input<ElementRef<HTMLElement> | HTMLElement | null | undefined>(undefined);\n /** What to add under the page's chrome, in CSS pixels. */\n readonly offset = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly layout = input<TableOfContentsLayout | undefined>(undefined);\n readonly size = input<TableOfContentsSize | undefined>(undefined);\n readonly history = input<TableOfContentsHistory | undefined>(undefined);\n readonly sticky = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly numbered = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Whether the host is the navigation landmark and takes its name. */\n readonly landmark = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The list's title, as text. A `slTableOfContentsLabel` template wins over it. */\n readonly label = input<string | undefined>(undefined);\n /** Rows of skeleton in the list's place. */\n readonly loading = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force: the landmark's name\n * when no label is given, and the collapsed trigger's fixed text\n * (`navigation`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<TableOfContentsMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectTableOfContentsDefaults();\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly ids = inject(SlTableOfContentsIdFactory).next();\n readonly panelId = `${this.ids}-panel`;\n readonly labelId = `${this.ids}-label`;\n readonly skeletonRows = SKELETON_ROWS;\n\n readonly linkTemplate = contentChild(SlTableOfContentsLink);\n readonly labelTemplate = contentChild(SlTableOfContentsLabel);\n private readonly panel = viewChild.required<ElementRef<HTMLElement>>('panel');\n private readonly marker = viewChild.required<ElementRef<HTMLElement>>('marker');\n private readonly trigger = viewChild<ElementRef<HTMLButtonElement>>('trigger');\n\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedHistory = computed(() => this.history() ?? this.defaults.history);\n readonly resolvedSticky = computed(() => this.sticky() ?? this.defaults.sticky);\n readonly resolvedNumbered = computed(() => this.numbered() ?? this.defaults.numbered);\n readonly resolvedLandmark = computed(() => this.landmark() ?? this.defaults.landmark);\n readonly resolvedLevels = computed(() => this.levels() ?? this.defaults.levels);\n readonly resolvedOffset = computed(() => this.offset() ?? this.defaults.offset);\n /** The family's words in the language in force, with this list's `messages` laid over them. */\n readonly t = injectMessages(tableOfContentsMessages, this.messages);\n readonly collapsed = computed(() => this.resolvedLayout() === 'collapsed');\n\n /** The headings of `source`, as the list reads them. */\n private readonly outline = signal<OutlineEntry[]>([]);\n /** The list, whichever way it came. */\n readonly entries = computed<readonly TableOfContentsItemData[]>(\n () => this.items() ?? fromOutline(this.outline()),\n );\n readonly flat = computed(() => flatten(this.entries()));\n readonly empty = computed(() => !this.loading() && this.flat().length === 0);\n\n readonly hasLabel = computed(\n () => this.labelTemplate() !== undefined || this.label() !== undefined,\n );\n readonly resolvedLabel = computed(() => this.label() ?? this.t('navigation'));\n readonly currentLabel = computed(() => {\n const current = this.value();\n return current === null ? '' : (this.flat().find((entry) => entry.id === current)?.label ?? '');\n });\n\n protected readonly ariaLabelledBy = computed(() =>\n this.resolvedLandmark() && this.writtenLabel === null && this.hasLabel()\n ? (this.writtenLabelledBy ?? this.labelId)\n : this.writtenLabelledBy,\n );\n protected readonly ariaLabel = computed(() =>\n this.resolvedLandmark() && this.writtenLabelledBy === null && !this.hasLabel()\n ? (this.writtenLabel ?? this.t('navigation'))\n : this.writtenLabel,\n );\n\n private pendingFocus = false;\n\n constructor() {\n /* The headings of `source`, read when it is set and again when its subtree changes. */\n effect((onCleanup) => {\n const region = element(this.source());\n const levels = this.resolvedLevels();\n const exclude = this.exclude();\n if (region === null || region === undefined) return;\n const read = () =>\n this.outline.set(\n collectOutline(region, { levels, ...(exclude !== undefined ? { exclude } : {}) }),\n );\n read();\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(read);\n observer.observe(region, { childList: true, subtree: true, characterData: true });\n onCleanup(() => observer.disconnect());\n });\n\n /* The spy, rebuilt when the targets, the scroller or the offset change. */\n afterRenderEffect((onCleanup) => {\n const ids = this.flat().map((entry) => entry.id);\n const scrollerInput = this.scroller();\n const offset = this.resolvedOffset();\n if (ids.length === 0) return;\n const doc = this.host.ownerDocument;\n const targets = () =>\n ids\n .map((id) => doc.getElementById(id))\n .filter((node): node is HTMLElement => node !== null)\n .sort((a, b) =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1,\n );\n const explicit = element(scrollerInput);\n const scroller = explicit === undefined ? resolveScroller(targets()) : explicit;\n const handle = createScrollSpy({\n targets,\n scroller,\n line: () => readStickyTop(scroller, doc) + offset + TABLE_OF_CONTENTS_BOUNDS,\n onChange: (next) => this.requestValue(next, 'scroll'),\n own: this.host,\n });\n this.spy = handle;\n\n /* A deep link the browser jumped to on load landed under the chrome: land it again, instantly. */\n const hash = doc.defaultView?.location.hash.slice(1) ?? '';\n if (hash !== '' && ids.includes(hash)) {\n const target = doc.getElementById(hash);\n if (target !== null) {\n landOn(target, {\n scroller,\n chrome: readStickyTop(scroller, doc),\n offset,\n behavior: 'instant',\n });\n }\n }\n onCleanup(() => {\n handle.destroy();\n this.spy = null;\n });\n });\n\n /* The marker, measured against the panel from the current link's box. */\n afterRenderEffect((onCleanup) => {\n this.value();\n this.entries();\n this.open();\n const layout = this.resolvedLayout();\n const panel = this.panel().nativeElement;\n const marker = this.marker().nativeElement;\n const measure = () => this.measureMarker(panel, marker, layout);\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(panel);\n let live = true;\n void panel.ownerDocument.fonts?.ready.then(() => {\n if (live) measure();\n });\n onCleanup(() => {\n live = false;\n observer.disconnect();\n });\n });\n\n /* The bar says which edge it continues past, for the stylesheet's fade. */\n afterRenderEffect((onCleanup) => {\n this.entries();\n if (this.resolvedLayout() !== 'horizontal') return;\n const panel = this.panel().nativeElement;\n const measure = () => {\n const overflow = panel.scrollWidth - panel.clientWidth;\n if (overflow <= 1) {\n panel.removeAttribute('data-overflow');\n return;\n }\n const scrolled = Math.abs(panel.scrollLeft);\n const atStart = scrolled <= 1;\n const atEnd = scrolled >= overflow - 1;\n panel.setAttribute('data-overflow', atStart ? 'end' : atEnd ? 'start' : 'both');\n };\n measure();\n panel.addEventListener('scroll', measure, { passive: true });\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure);\n observer?.observe(panel);\n onCleanup(() => {\n panel.removeEventListener('scroll', measure);\n observer?.disconnect();\n });\n });\n\n /* The collapsed list is a dismissable layer while it is shown, with the trigger as a branch. */\n afterRenderEffect((onCleanup) => {\n if (!this.collapsed() || !this.open()) return;\n const panel = this.panel().nativeElement;\n const trigger = this.trigger()?.nativeElement ?? null;\n const layer = createDismissableLayer(panel, {\n branches: trigger === null ? [] : [trigger],\n onDismiss: (request) => {\n if (request.reason !== 'escape' && request.reason !== 'outsidePress') return;\n this.requestOpen(false, request.reason, request.source);\n if (request.reason === 'escape') trigger?.focus();\n },\n });\n onCleanup(() => layer.destroy());\n });\n\n /* ArrowDown on the trigger opened the list: the first link takes focus once it is drawn. */\n afterRenderEffect(() => {\n if (!this.open() || !this.pendingFocus) return;\n this.pendingFocus = false;\n untracked(() => this.links()[0]?.focus());\n });\n\n this.destroyRef.onDestroy(() => this.spy?.destroy());\n }\n\n private spy: ReturnType<typeof createScrollSpy> | null = null;\n\n private requestValue(next: string | null, reason: TableOfContentsValueReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.value(),\n onRequest: (request) => this.valueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.value.set(next);\n }\n\n private requestOpen(next: boolean, reason: TableOfContentsOpenReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.open.set(next);\n }\n\n private measureMarker(panel: HTMLElement, marker: HTMLElement, layout: TableOfContentsLayout) {\n const link = panel.querySelector<HTMLElement>('[data-part=\"link\"][data-current]');\n if (link === null) {\n marker.style.removeProperty('--_marker-start');\n marker.style.removeProperty('--_marker-size');\n return;\n }\n const panelRect = panel.getBoundingClientRect();\n const linkRect = link.getBoundingClientRect();\n const rtl = getComputedStyle(panel).direction === 'rtl';\n if (layout === 'horizontal') {\n const start = rtl\n ? panelRect.right - linkRect.right - panel.scrollLeft\n : linkRect.left - panelRect.left + panel.scrollLeft;\n marker.style.setProperty('--_marker-start', `${start}px`);\n marker.style.setProperty('--_marker-size', `${linkRect.width}px`);\n /* The current link is kept in view without moving the page: the panel alone scrolls. */\n const from = rtl ? panelRect.right - linkRect.right : linkRect.left - panelRect.left;\n const room = panelRect.width;\n if (from < 0 || from + linkRect.width > room) {\n const delta = from < 0 ? from : from + linkRect.width - room;\n panel.scrollBy({ left: rtl ? -delta : delta, behavior: 'smooth' });\n }\n return;\n }\n const start = linkRect.top - panelRect.top + panel.scrollTop;\n marker.style.setProperty('--_marker-start', `${start}px`);\n marker.style.setProperty('--_marker-size', `${linkRect.height}px`);\n const from = linkRect.top - panelRect.top;\n if (panel.scrollHeight > panel.clientHeight) {\n if (from < 0) panel.scrollBy({ top: from, behavior: 'smooth' });\n else if (from + linkRect.height > panelRect.height) {\n panel.scrollBy({ top: from + linkRect.height - panelRect.height, behavior: 'smooth' });\n }\n }\n }\n\n /** The links the keyboard walks: every link while the list is shown, none while it is folded. */\n links(): HTMLElement[] {\n if (this.collapsed() && !this.open()) return [];\n return [...this.panel().nativeElement.querySelectorAll<HTMLElement>('[data-part=\"link\"]')];\n }\n\n /**\n * A press asks `value`, then the list scrolls the target under the chrome,\n * writes the URL and focuses the target. Cmd-click, Ctrl-click and the\n * middle button are the platform's: they open the fragment in a new tab.\n */\n protected onLinkClick(event: MouseEvent, id: string) {\n if (event.defaultPrevented || platformClick(event)) return;\n event.preventDefault();\n this.navigate(id, event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n private navigate(id: string, reason: 'pointer' | 'keyboard' | 'programmatic', source?: Event) {\n const doc = this.host.ownerDocument;\n const view = doc.defaultView;\n const target = doc.getElementById(id);\n this.requestValue(id, reason, source);\n if (target === null || view === null) return;\n /* The choice holds against the end-of-scroller rule until the reader scrolls by a gesture. */\n this.spy?.pin(id);\n const scroller = this.spy?.scroller() ?? element(this.scroller()) ?? null;\n landOn(target, {\n scroller,\n chrome: readStickyTop(scroller, doc),\n offset: this.resolvedOffset(),\n behavior: prefersReducedMotion(view) ? 'instant' : 'smooth',\n });\n const history = this.resolvedHistory();\n if (reason !== 'programmatic' && history !== 'none') {\n const url = `#${id}`;\n if (history === 'push') view.history.pushState(null, '', url);\n else view.history.replaceState(null, '', url);\n }\n focusTarget(target);\n if (this.collapsed() && this.open()) this.requestOpen(false, 'select', source);\n }\n\n protected toggle(event: MouseEvent) {\n this.requestOpen(!this.open(), event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n\n if (target === this.trigger()?.nativeElement) {\n if (event.key === 'ArrowDown' && !this.open()) {\n event.preventDefault();\n this.pendingFocus = true;\n this.requestOpen(true, 'keyboard', event);\n }\n return;\n }\n if (!target.matches('[data-part=\"link\"]')) return;\n\n const horizontal = this.resolvedLayout() === 'horizontal';\n const forward = horizontal ? 'ArrowRight' : 'ArrowDown';\n const backward = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const step =\n event.key === forward || event.key === 'ArrowDown'\n ? 1\n : event.key === backward || event.key === 'ArrowUp'\n ? -1\n : 0;\n if (step === 0 && event.key !== 'Home' && event.key !== 'End') return;\n\n const all = this.links();\n if (all.length === 0) return;\n event.preventDefault();\n const index = all.indexOf(target);\n const next =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? all.length - 1\n : Math.min(all.length - 1, Math.max(0, index + step));\n all[next]?.focus();\n }\n\n /** Focuses the first link, or the trigger in the collapsed layout. */\n focus() {\n if (this.collapsed()) this.trigger()?.nativeElement.focus();\n else this.links()[0]?.focus();\n }\n\n /** Reads the headings again and measures again. */\n refresh() {\n const region = element(this.source());\n if (region !== null && region !== undefined) {\n const exclude = this.exclude();\n this.outline.set(\n collectOutline(region, {\n levels: this.resolvedLevels(),\n ...(exclude !== undefined ? { exclude } : {}),\n }),\n );\n }\n this.spy?.refresh();\n }\n\n /** Scrolls to a target and asks `value` to move with the reason `programmatic`; the URL is left. */\n scrollTo(id: string) {\n this.navigate(id, 'programmatic');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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A,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA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AA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,qBAAqB,+FACpB,sBAAsB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACS,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACN,QAAQ,iEACV,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACjV/E;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-table-of-contents.mjs","sources":["../../table-of-contents/src/table-of-contents-defaults.ts","../../table-of-contents/src/table-of-contents.ts","../../table-of-contents/src/slotted-angular-table-of-contents.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\nimport { DEFAULT_LEVELS } from '@slotted/core/outline';\n\n/** The row height step, on the control scale. */\nexport type TableOfContentsSize = 'sm' | 'md' | 'lg';\n\n/**\n * The column beside a page, the bar under its title, or the trigger with the\n * current label that opens the list under it. Not decided by width: a sidebar\n * column is narrower than a phone's bar, so the width does not say which one\n * the consumer wants.\n */\nexport type TableOfContentsLayout = 'vertical' | 'horizontal' | 'collapsed';\n\n/** What a press does to the URL. `push` and `replace` write `history`; `none` leaves it. */\nexport type TableOfContentsHistory = 'push' | 'replace' | 'none';\n\n/** Why the current target moved. `scroll` is the observer answering the position. */\nexport type TableOfContentsValueReason = 'scroll' | 'pointer' | 'keyboard' | 'programmatic';\n\n/** Why the collapsed list opened or closed. */\nexport type TableOfContentsOpenReason =\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'outsidePress' | 'programmatic';\n\n/** One entry of the list, when the list is given as data. */\nexport interface TableOfContentsItemData {\n /** The target's id, without the hash. */\n id: string;\n label: string;\n children?: readonly TableOfContentsItemData[] | undefined;\n}\n\n/** What an application sets once for every list under it. */\nexport interface TableOfContentsDefaults {\n history: TableOfContentsHistory;\n landmark: boolean;\n layout: TableOfContentsLayout;\n levels: readonly [number, number];\n numbered: boolean;\n offset: number;\n size: TableOfContentsSize;\n sticky: boolean;\n}\n\n/** The contract's defaults. */\nexport const TABLE_OF_CONTENTS_FALLBACK: TableOfContentsDefaults = {\n history: 'push',\n landmark: true,\n layout: 'vertical',\n levels: DEFAULT_LEVELS,\n numbered: false,\n offset: 0,\n size: 'md',\n sticky: false,\n};\n\nexport const TABLE_OF_CONTENTS_DEFAULTS = new InjectionToken<TableOfContentsDefaults>(\n 'slotted table-of-contents defaults',\n { providedIn: 'root', factory: () => TABLE_OF_CONTENTS_FALLBACK },\n);\n\n/**\n * An application decides once how its lists read — the levels a document\n * outlines, whether the column pins, what a press does to the URL — rather\n * than repeating it on every page. A list that states any of them itself\n * still wins. Its words come from the language in force (`provideSlotted`).\n */\nexport function provideTableOfContentsDefaults(defaults: Partial<TableOfContentsDefaults>) {\n return {\n provide: TABLE_OF_CONTENTS_DEFAULTS,\n useFactory: (): TableOfContentsDefaults => ({ ...TABLE_OF_CONTENTS_FALLBACK, ...defaults }),\n };\n}\n\nexport function injectTableOfContentsDefaults(): TableOfContentsDefaults {\n return inject(TABLE_OF_CONTENTS_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlTableOfContentsIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-table-of-contents-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport {\n tableOfContentsMessages,\n type PartialMessages,\n type TableOfContentsMessages,\n} from '@slotted/core/i18n';\nimport { collectOutline } from '@slotted/core/outline';\nimport type { OutlineEntry } from '@slotted/core/outline';\nimport {\n createScrollSpy,\n focusTarget,\n landOn,\n prefersReducedMotion,\n readStickyTop,\n resolveScroller,\n} from '@slotted/core/scroll-spy';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\n\nimport {\n injectTableOfContentsDefaults,\n SlTableOfContentsIdFactory,\n} from './table-of-contents-defaults';\nimport type {\n TableOfContentsHistory,\n TableOfContentsItemData,\n TableOfContentsLayout,\n TableOfContentsOpenReason,\n TableOfContentsSize,\n TableOfContentsValueReason,\n} from './table-of-contents-defaults';\n\nexport type {\n TableOfContentsDefaults,\n TableOfContentsHistory,\n TableOfContentsItemData,\n TableOfContentsLayout,\n TableOfContentsOpenReason,\n TableOfContentsSize,\n TableOfContentsValueReason,\n} from './table-of-contents-defaults';\n\n/**\n * The tolerance under the reading line: a target whose top is within it is\n * taken as reached, so a heading landed on by a press — sitting exactly at\n * the line, give or take a subpixel — is the one marked. Ant's `bounds`.\n */\nexport const TABLE_OF_CONTENTS_BOUNDS = 4;\n\n/** The skeleton rows the list draws while loading, by width. */\nconst SKELETON_ROWS = ['72%', '56%', '80%', '48%'];\n\n/** What the link template is handed: the entry, and whether it is current. */\nexport interface TableOfContentsLinkContext {\n $implicit: TableOfContentsItemData;\n current: boolean;\n}\n\n/**\n * The content of every link, as a template: `<ng-template slTableOfContentsLink let-entry>`.\n * Without one the link shows the entry's label.\n */\n@Directive({ selector: 'ng-template[slTableOfContentsLink]', standalone: true })\nexport class SlTableOfContentsLink {\n readonly template = inject<TemplateRef<TableOfContentsLinkContext>>(TemplateRef);\n /* Types the template's context, so `let-entry` is an entry in the template. */\n static ngTemplateContextGuard(\n _directive: SlTableOfContentsLink,\n context: unknown,\n ): context is TableOfContentsLinkContext {\n return context !== null;\n }\n}\n\n/** The list's title, as a template: `<ng-template slTableOfContentsLabel>`. */\n@Directive({ selector: 'ng-template[slTableOfContentsLabel]', standalone: true })\nexport class SlTableOfContentsLabel {\n readonly template = inject<TemplateRef<unknown>>(TemplateRef);\n}\n\nfunction fromOutline(entries: readonly OutlineEntry[]): TableOfContentsItemData[] {\n return entries.map((entry) => ({\n id: entry.id,\n label: entry.label,\n children: fromOutline(entry.children),\n }));\n}\n\nfunction flatten(items: readonly TableOfContentsItemData[]): TableOfContentsItemData[] {\n const out: TableOfContentsItemData[] = [];\n const walk = (list: readonly TableOfContentsItemData[]) => {\n for (const item of list) {\n out.push(item);\n if (item.children !== undefined) walk(item.children);\n }\n };\n walk(items);\n return out;\n}\n\nfunction element(\n value: ElementRef<HTMLElement> | HTMLElement | null | undefined,\n): HTMLElement | null | undefined {\n if (value === undefined || value === null) return value;\n return value instanceof ElementRef ? value.nativeElement : value;\n}\n\n/** A click the platform should keep: a modifier for a new tab, or a button other than the main one. */\nfunction platformClick(event: MouseEvent): boolean {\n return event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey;\n}\n\n/**\n * A list of links into the document the reader is in, with the link of the\n * place in view marked.\n *\n * The directive goes on the consumer's own element — `<nav slTableOfContents>`\n * standing alone, `<div slTableOfContents>` inside a landmark that already has\n * a name. `landmark` decides whether the name is written; the element is the\n * consumer's, as it is everywhere in this ecosystem.\n *\n * **Two ways in, one list.** `items` as data, or `source` — a region whose\n * headings are read after the view is built by `@slotted/core/outline` and\n * read again when the region's subtree changes. A template Angular would not\n * write a nested list by hand, so there are no parts to compose; a\n * `slTableOfContentsLink` template shapes every link instead.\n *\n * **Two values, two models.** `value` is the current target and `open` is\n * whether the collapsed list is shown. The spy asks `value` to move with the\n * reason `scroll`; a press asks with `pointer` or `keyboard` before it\n * scrolls, and the scroll happens whether or not the request is accepted.\n */\n@Component({\n selector: '[slTableOfContents]',\n standalone: true,\n exportAs: 'slTableOfContents',\n imports: [NgTemplateOutlet, SlGlyph, SlIcon, SlSkeleton],\n template: `\n @if (collapsed()) {\n <button\n #trigger\n data-part=\"trigger\"\n data-part-trigger=\"\"\n type=\"button\"\n [attr.aria-controls]=\"panelId\"\n [attr.aria-expanded]=\"open()\"\n (click)=\"toggle($event)\"\n >\n <span data-part=\"label\" data-part-label=\"\" [id]=\"labelId\">\n @if (labelTemplate(); as label) {\n <ng-container *ngTemplateOutlet=\"label.template\" />\n } @else {\n {{ resolvedLabel() }}\n }\n </span>\n <span data-part=\"current\" data-part-current=\"\">{{ currentLabel() }}</span>\n <span data-part=\"indicator\" data-part-indicator=\"\" aria-hidden=\"true\"\n ><span slIcon><svg slGlyph name=\"chevron-down\"></svg></span\n ></span>\n </button>\n } @else if (hasLabel()) {\n <div data-part=\"label\" data-part-label=\"\" [id]=\"labelId\">\n @if (labelTemplate(); as label) {\n <ng-container *ngTemplateOutlet=\"label.template\" />\n } @else {\n {{ label() }}\n }\n </div>\n }\n <div #panel data-part=\"panel\" data-part-panel=\"\" [id]=\"panelId\">\n <div #marker data-part=\"marker\" data-part-marker=\"\" aria-hidden=\"true\"></div>\n <ol data-part=\"list\" data-part-list=\"\">\n @if (loading()) {\n @for (width of skeletonRows; track width) {\n <li data-part=\"skeleton\" data-part-skeleton=\"\" aria-hidden=\"true\">\n <span slSkeleton shape=\"text\" [inlineSize]=\"width\"></span>\n </li>\n }\n } @else {\n <ng-container\n *ngTemplateOutlet=\"entriesTemplate; context: { $implicit: entries(), depth: 1 }\"\n />\n }\n </ol>\n </div>\n\n <ng-template #entriesTemplate let-list let-depth=\"depth\">\n @for (entry of list; track entry.id) {\n <li\n data-part=\"item\"\n data-part-item=\"\"\n [attr.data-depth]=\"depth\"\n [attr.data-value]=\"entry.id\"\n [attr.data-current]=\"value() === entry.id ? '' : null\"\n >\n <a\n data-part=\"link\"\n data-part-link=\"\"\n [attr.href]=\"'#' + entry.id\"\n [attr.aria-current]=\"value() === entry.id ? 'location' : null\"\n [attr.data-current]=\"value() === entry.id ? '' : null\"\n (click)=\"onLinkClick($event, entry.id)\"\n >\n @if (linkTemplate(); as link) {\n <ng-container\n *ngTemplateOutlet=\"\n link.template;\n context: { $implicit: entry, current: value() === entry.id }\n \"\n />\n } @else {\n {{ entry.label }}\n }\n </a>\n @if (entry.children?.length) {\n <ol data-part=\"group\" data-part-group=\"\">\n <ng-container\n *ngTemplateOutlet=\"\n entriesTemplate;\n context: { $implicit: entry.children, depth: depth + 1 }\n \"\n />\n </ol>\n }\n </li>\n }\n </ng-template>\n `,\n styleUrl: '../../../styles/src/table-of-contents/table-of-contents.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'table-of-contents',\n 'data-ui-table-of-contents': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-labelledby]': 'ariaLabelledBy()',\n '[attr.aria-busy]': \"loading() ? 'true' : null\",\n '[attr.data-layout]': 'resolvedLayout()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-sticky]': \"resolvedSticky() && !collapsed() ? '' : null\",\n '[attr.data-numbered]': \"resolvedNumbered() ? '' : null\",\n '[attr.data-open]': \"collapsed() && open() ? '' : null\",\n '[attr.data-loading]': \"loading() ? '' : null\",\n '[attr.data-empty]': \"empty() ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlTableOfContents {\n /** The current target's id, without the hash. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n /** Whether the collapsed list is shown. */\n readonly open = model<boolean>(false);\n\n /** The list as data. */\n readonly items = input<readonly TableOfContentsItemData[] | undefined>(undefined);\n /** The region whose headings make the list, read after the view is built. */\n readonly source = input<ElementRef<HTMLElement> | HTMLElement | null | undefined>(undefined);\n /** The lowest and highest heading level `source` keeps. */\n readonly levels = input<readonly [number, number] | undefined>(undefined);\n /** A heading matching this selector, or inside one, is left out of `source`. */\n readonly exclude = input<string | undefined>(undefined);\n /** The element that scrolls. Derived from the first target when unset. */\n readonly scroller = input<ElementRef<HTMLElement> | HTMLElement | null | undefined>(undefined);\n /** What to add under the page's chrome, in CSS pixels. */\n readonly offset = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n readonly layout = input<TableOfContentsLayout | undefined>(undefined);\n readonly size = input<TableOfContentsSize | undefined>(undefined);\n readonly history = input<TableOfContentsHistory | undefined>(undefined);\n readonly sticky = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly numbered = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** Whether the host is the navigation landmark and takes its name. */\n readonly landmark = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The list's title, as text. A `slTableOfContentsLabel` template wins over it. */\n readonly label = input<string | undefined>(undefined);\n /** Rows of skeleton in the list's place. */\n readonly loading = input<boolean, boolean | string>(false, { transform: booleanAttribute });\n /**\n * Words laid over the catalog of the language in force: the landmark's name\n * when no label is given, and the collapsed trigger's fixed text\n * (`navigation`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<TableOfContentsMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectTableOfContentsDefaults();\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n private readonly writtenLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly ids = inject(SlTableOfContentsIdFactory).next();\n readonly panelId = `${this.ids}-panel`;\n readonly labelId = `${this.ids}-label`;\n readonly skeletonRows = SKELETON_ROWS;\n\n readonly linkTemplate = contentChild(SlTableOfContentsLink);\n readonly labelTemplate = contentChild(SlTableOfContentsLabel);\n private readonly panel = viewChild.required<ElementRef<HTMLElement>>('panel');\n private readonly marker = viewChild.required<ElementRef<HTMLElement>>('marker');\n private readonly trigger = viewChild<ElementRef<HTMLButtonElement>>('trigger');\n\n readonly resolvedLayout = computed(() => this.layout() ?? this.defaults.layout);\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedHistory = computed(() => this.history() ?? this.defaults.history);\n readonly resolvedSticky = computed(() => this.sticky() ?? this.defaults.sticky);\n readonly resolvedNumbered = computed(() => this.numbered() ?? this.defaults.numbered);\n readonly resolvedLandmark = computed(() => this.landmark() ?? this.defaults.landmark);\n readonly resolvedLevels = computed(() => this.levels() ?? this.defaults.levels);\n readonly resolvedOffset = computed(() => this.offset() ?? this.defaults.offset);\n /** The family's words in the language in force, with this list's `messages` laid over them. */\n readonly t = injectMessages(tableOfContentsMessages, this.messages);\n readonly collapsed = computed(() => this.resolvedLayout() === 'collapsed');\n\n /** The headings of `source`, as the list reads them. */\n private readonly outline = signal<OutlineEntry[]>([]);\n /** The list, whichever way it came. */\n readonly entries = computed<readonly TableOfContentsItemData[]>(\n () => this.items() ?? fromOutline(this.outline()),\n );\n readonly flat = computed(() => flatten(this.entries()));\n readonly empty = computed(() => !this.loading() && this.flat().length === 0);\n\n readonly hasLabel = computed(\n () => this.labelTemplate() !== undefined || this.label() !== undefined,\n );\n readonly resolvedLabel = computed(() => this.label() ?? this.t('navigation'));\n readonly currentLabel = computed(() => {\n const current = this.value();\n return current === null ? '' : (this.flat().find((entry) => entry.id === current)?.label ?? '');\n });\n\n protected readonly ariaLabelledBy = computed(() =>\n this.resolvedLandmark() && this.writtenLabel === null && this.hasLabel()\n ? (this.writtenLabelledBy ?? this.labelId)\n : this.writtenLabelledBy,\n );\n protected readonly ariaLabel = computed(() =>\n this.resolvedLandmark() && this.writtenLabelledBy === null && !this.hasLabel()\n ? (this.writtenLabel ?? this.t('navigation'))\n : this.writtenLabel,\n );\n\n private pendingFocus = false;\n\n constructor() {\n /* The headings of `source`, read when it is set and again when its subtree changes. */\n effect((onCleanup) => {\n const region = element(this.source());\n const levels = this.resolvedLevels();\n const exclude = this.exclude();\n if (region === null || region === undefined) return;\n const read = () =>\n this.outline.set(\n collectOutline(region, { levels, ...(exclude !== undefined ? { exclude } : {}) }),\n );\n read();\n if (typeof MutationObserver === 'undefined') return;\n const observer = new MutationObserver(read);\n observer.observe(region, { childList: true, subtree: true, characterData: true });\n onCleanup(() => observer.disconnect());\n });\n\n /* The spy, rebuilt when the targets, the scroller or the offset change. */\n afterRenderEffect((onCleanup) => {\n const ids = this.flat().map((entry) => entry.id);\n const scrollerInput = this.scroller();\n const offset = this.resolvedOffset();\n if (ids.length === 0) return;\n const doc = this.host.ownerDocument;\n const targets = () =>\n ids\n .map((id) => doc.getElementById(id))\n .filter((node): node is HTMLElement => node !== null)\n .sort((a, b) =>\n a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1,\n );\n const explicit = element(scrollerInput);\n const scroller = explicit === undefined ? resolveScroller(targets()) : explicit;\n const handle = createScrollSpy({\n targets,\n scroller,\n line: () => readStickyTop(scroller, doc) + offset + TABLE_OF_CONTENTS_BOUNDS,\n onChange: (next) => this.requestValue(next, 'scroll'),\n own: this.host,\n });\n this.spy = handle;\n\n /* A deep link the browser jumped to on load landed under the chrome: land it again, instantly. */\n const hash = doc.defaultView?.location.hash.slice(1) ?? '';\n if (hash !== '' && ids.includes(hash)) {\n const target = doc.getElementById(hash);\n if (target !== null) {\n landOn(target, {\n scroller,\n chrome: readStickyTop(scroller, doc),\n offset,\n behavior: 'instant',\n });\n }\n }\n onCleanup(() => {\n handle.destroy();\n this.spy = null;\n });\n });\n\n /* The marker, measured against the panel from the current link's box. */\n afterRenderEffect((onCleanup) => {\n this.value();\n this.entries();\n this.open();\n const layout = this.resolvedLayout();\n const panel = this.panel().nativeElement;\n const marker = this.marker().nativeElement;\n const measure = () => this.measureMarker(panel, marker, layout);\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(panel);\n let live = true;\n void panel.ownerDocument.fonts?.ready.then(() => {\n if (live) measure();\n });\n onCleanup(() => {\n live = false;\n observer.disconnect();\n });\n });\n\n /* The bar says which edge it continues past, for the stylesheet's fade. */\n afterRenderEffect((onCleanup) => {\n this.entries();\n if (this.resolvedLayout() !== 'horizontal') return;\n const panel = this.panel().nativeElement;\n const measure = () => {\n const overflow = panel.scrollWidth - panel.clientWidth;\n if (overflow <= 1) {\n panel.removeAttribute('data-overflow');\n return;\n }\n const scrolled = Math.abs(panel.scrollLeft);\n const atStart = scrolled <= 1;\n const atEnd = scrolled >= overflow - 1;\n panel.setAttribute('data-overflow', atStart ? 'end' : atEnd ? 'start' : 'both');\n };\n measure();\n panel.addEventListener('scroll', measure, { passive: true });\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure);\n observer?.observe(panel);\n onCleanup(() => {\n panel.removeEventListener('scroll', measure);\n observer?.disconnect();\n });\n });\n\n /* The collapsed list is a dismissable layer while it is shown, with the trigger as a branch. */\n afterRenderEffect((onCleanup) => {\n if (!this.collapsed() || !this.open()) return;\n const panel = this.panel().nativeElement;\n const trigger = this.trigger()?.nativeElement ?? null;\n const layer = createDismissableLayer(panel, {\n branches: trigger === null ? [] : [trigger],\n onDismiss: (request) => {\n if (request.reason !== 'escape' && request.reason !== 'outsidePress') return;\n this.requestOpen(false, request.reason, request.source);\n if (request.reason === 'escape') trigger?.focus();\n },\n });\n onCleanup(() => layer.destroy());\n });\n\n /* ArrowDown on the trigger opened the list: the first link takes focus once it is drawn. */\n afterRenderEffect(() => {\n if (!this.open() || !this.pendingFocus) return;\n this.pendingFocus = false;\n untracked(() => this.links()[0]?.focus());\n });\n\n this.destroyRef.onDestroy(() => this.spy?.destroy());\n }\n\n private spy: ReturnType<typeof createScrollSpy> | null = null;\n\n private requestValue(next: string | null, reason: TableOfContentsValueReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.value(),\n onRequest: (request) => this.valueChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.value.set(next);\n }\n\n private requestOpen(next: boolean, reason: TableOfContentsOpenReason, source?: Event) {\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => this.openChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.open.set(next);\n }\n\n private measureMarker(panel: HTMLElement, marker: HTMLElement, layout: TableOfContentsLayout) {\n const link = panel.querySelector<HTMLElement>('[data-part=\"link\"][data-current]');\n if (link === null) {\n marker.style.removeProperty('--_marker-start');\n marker.style.removeProperty('--_marker-size');\n return;\n }\n const panelRect = panel.getBoundingClientRect();\n const linkRect = link.getBoundingClientRect();\n const rtl = getComputedStyle(panel).direction === 'rtl';\n if (layout === 'horizontal') {\n const start = rtl\n ? panelRect.right - linkRect.right - panel.scrollLeft\n : linkRect.left - panelRect.left + panel.scrollLeft;\n marker.style.setProperty('--_marker-start', `${start}px`);\n marker.style.setProperty('--_marker-size', `${linkRect.width}px`);\n /* The current link is kept in view without moving the page: the panel alone scrolls. */\n const from = rtl ? panelRect.right - linkRect.right : linkRect.left - panelRect.left;\n const room = panelRect.width;\n if (from < 0 || from + linkRect.width > room) {\n const delta = from < 0 ? from : from + linkRect.width - room;\n panel.scrollBy({ left: rtl ? -delta : delta, behavior: 'smooth' });\n }\n return;\n }\n const start = linkRect.top - panelRect.top + panel.scrollTop;\n marker.style.setProperty('--_marker-start', `${start}px`);\n marker.style.setProperty('--_marker-size', `${linkRect.height}px`);\n const from = linkRect.top - panelRect.top;\n if (panel.scrollHeight > panel.clientHeight) {\n if (from < 0) panel.scrollBy({ top: from, behavior: 'smooth' });\n else if (from + linkRect.height > panelRect.height) {\n panel.scrollBy({ top: from + linkRect.height - panelRect.height, behavior: 'smooth' });\n }\n }\n }\n\n /** The links the keyboard walks: every link while the list is shown, none while it is folded. */\n links(): HTMLElement[] {\n if (this.collapsed() && !this.open()) return [];\n return [...this.panel().nativeElement.querySelectorAll<HTMLElement>('[data-part=\"link\"]')];\n }\n\n /**\n * A press asks `value`, then the list scrolls the target under the chrome,\n * writes the URL and focuses the target. Cmd-click, Ctrl-click and the\n * middle button are the platform's: they open the fragment in a new tab.\n */\n protected onLinkClick(event: MouseEvent, id: string) {\n if (event.defaultPrevented || platformClick(event)) return;\n event.preventDefault();\n this.navigate(id, event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n private navigate(id: string, reason: 'pointer' | 'keyboard' | 'programmatic', source?: Event) {\n const doc = this.host.ownerDocument;\n const view = doc.defaultView;\n const target = doc.getElementById(id);\n this.requestValue(id, reason, source);\n if (target === null || view === null) return;\n /* The choice holds against the end-of-scroller rule until the reader scrolls by a gesture. */\n this.spy?.pin(id);\n const scroller = this.spy?.scroller() ?? element(this.scroller()) ?? null;\n landOn(target, {\n scroller,\n chrome: readStickyTop(scroller, doc),\n offset: this.resolvedOffset(),\n behavior: prefersReducedMotion(view) ? 'instant' : 'smooth',\n });\n const history = this.resolvedHistory();\n if (reason !== 'programmatic' && history !== 'none') {\n const url = `#${id}`;\n if (history === 'push') view.history.pushState(null, '', url);\n else view.history.replaceState(null, '', url);\n }\n focusTarget(target);\n if (this.collapsed() && this.open()) this.requestOpen(false, 'select', source);\n }\n\n protected toggle(event: MouseEvent) {\n this.requestOpen(!this.open(), event.detail === 0 ? 'keyboard' : 'pointer', event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n\n if (target === this.trigger()?.nativeElement) {\n if (event.key === 'ArrowDown' && !this.open()) {\n event.preventDefault();\n this.pendingFocus = true;\n this.requestOpen(true, 'keyboard', event);\n }\n return;\n }\n if (!target.matches('[data-part=\"link\"]')) return;\n\n const horizontal = this.resolvedLayout() === 'horizontal';\n const forward = horizontal ? 'ArrowRight' : 'ArrowDown';\n const backward = horizontal ? 'ArrowLeft' : 'ArrowUp';\n const step =\n event.key === forward || event.key === 'ArrowDown'\n ? 1\n : event.key === backward || event.key === 'ArrowUp'\n ? -1\n : 0;\n if (step === 0 && event.key !== 'Home' && event.key !== 'End') return;\n\n const all = this.links();\n if (all.length === 0) return;\n event.preventDefault();\n const index = all.indexOf(target);\n const next =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? all.length - 1\n : Math.min(all.length - 1, Math.max(0, index + step));\n all[next]?.focus();\n }\n\n /** Focuses the first link, or the trigger in the collapsed layout. */\n focus() {\n if (this.collapsed()) this.trigger()?.nativeElement.focus();\n else this.links()[0]?.focus();\n }\n\n /** Reads the headings again and measures again. */\n refresh() {\n const region = element(this.source());\n if (region !== null && region !== undefined) {\n const exclude = this.exclude();\n this.outline.set(\n collectOutline(region, {\n levels: this.resolvedLevels(),\n ...(exclude !== undefined ? { exclude } : {}),\n }),\n );\n }\n this.spy?.refresh();\n }\n\n /** Scrolls to a target and asks `value` to move with the reason `programmatic`; the URL is left. */\n scrollTo(id: string) {\n this.navigate(id, 'programmatic');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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A,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA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AAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,qBAAqB,+FACpB,sBAAsB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACS,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACN,QAAQ,iEACV,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ACtV/E;;AAEG;;"}
|