@slotted/angular 0.1.0-beta.0 → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +1 -0
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +24 -7
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +6 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +35 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +5 -0
- package/docs/drawer.md +1 -0
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +129 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +4 -3
- package/docs/page-header.md +2 -2
- package/docs/page.json +1 -0
- package/docs/page.md +1 -0
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +5 -5
- package/docs/section.json +27 -15
- package/docs/section.md +11 -9
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +95 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +77 -0
- package/docs/skills/theme-app/SKILL.md +87 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +7 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +4 -4
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +22 -11
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +90 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +166 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +112 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +354 -113
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +53 -29
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +189 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +75 -45
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +184 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +49 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +22 -11
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +74 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +49 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +7 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +4 -4
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-side-navigation.mjs","sources":["../../side-navigation/src/side-navigation-defaults.ts","../../side-navigation/src/side-navigation.ts","../../side-navigation/src/side-navigation-parts.ts","../../side-navigation/src/slotted-angular-side-navigation.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The row height step. `md` reads the geometry `app-shell` publishes. */\nexport type SideNavigationSize = 'sm' | 'md' | 'lg';\n\n/**\n * How the column reads the room it has. `auto` is compact below `compactAt`\n * pixels of its own width and labelled above; the other two force one.\n */\nexport type SideNavigationMode = 'auto' | 'expanded' | 'compact';\n\n/**\n * Where a label that does not fit is cut. `end` is the stylesheet's ellipsis;\n * `middle` keeps the start and the tail, measured by the binding; `none` wraps.\n */\nexport type SideNavigationTruncate = 'end' | 'middle' | 'none';\n\n/** Why the set of open groups moved. */\nexport type SideNavigationExpandedReason =\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'programmatic';\n\n/** Why the flyout opened or closed. */\nexport type SideNavigationFlyoutReason =\n | 'pointer'\n | 'keyboard'\n | 'select'\n | 'escape'\n | 'outsidePress'\n | 'blur'\n | 'resize'\n | 'programmatic';\n\n/** Why the current destination moved. */\nexport type SideNavigationValueReason = 'pointer' | 'keyboard' | 'programmatic';\n\nexport interface SideNavigationDefaults {\n autoExpand: boolean;\n compactAt: number;\n guides: boolean;\n landmark: boolean;\n mode: SideNavigationMode;\n multiple: boolean;\n size: SideNavigationSize;\n truncate: SideNavigationTruncate;\n}\n\n/** The contract's defaults, and the width the rail is read at. */\nexport const SIDE_NAVIGATION_FALLBACK: SideNavigationDefaults = {\n autoExpand: true,\n compactAt: 96,\n guides: true,\n landmark: true,\n mode: 'auto',\n multiple: true,\n size: 'md',\n truncate: 'end',\n};\n\nexport const SIDE_NAVIGATION_DEFAULTS = new InjectionToken<SideNavigationDefaults>(\n 'slotted side-navigation defaults',\n { providedIn: 'root', factory: () => SIDE_NAVIGATION_FALLBACK },\n);\n\n/**\n * An application decides once how its columns read — the rail's width, the\n * cut, whether groups open one at a time — rather than repeating it on every\n * navigation in a product. A column that states any of them itself still wins.\n * Its words come from the language in force (`provideSlotted`).\n */\nexport function provideSideNavigationDefaults(defaults: Partial<SideNavigationDefaults>) {\n return {\n provide: SIDE_NAVIGATION_DEFAULTS,\n useFactory: (): SideNavigationDefaults => ({ ...SIDE_NAVIGATION_FALLBACK, ...defaults }),\n };\n}\n\n/** What a column renders as here, before it states anything of its own. */\nexport function injectSideNavigationDefaults(): SideNavigationDefaults {\n return inject(SIDE_NAVIGATION_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlSideNavigationIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-side-navigation-${this.count}`;\n }\n}\n","import { nextOpenValues, sameOpenValues } from '@slotted/core/disclosure';\nimport { createWidthGate } from '@slotted/core/measure';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { SlAppShellNav } from '@slotted/angular/app-shell';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n sideNavigationMessages,\n type PartialMessages,\n type SideNavigationMessages,\n} from '@slotted/core/i18n';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectSideNavigationDefaults } from './side-navigation-defaults';\nimport type {\n SideNavigationExpandedReason,\n SideNavigationFlyoutReason,\n SideNavigationMode,\n SideNavigationSize,\n SideNavigationTruncate,\n SideNavigationValueReason,\n} from './side-navigation-defaults';\n\nexport type {\n SideNavigationDefaults,\n SideNavigationExpandedReason,\n SideNavigationFlyoutReason,\n SideNavigationMode,\n SideNavigationSize,\n SideNavigationTruncate,\n SideNavigationValueReason,\n} from './side-navigation-defaults';\n\n/** Every row a reader can land on, in the order the DOM holds them. */\nexport const SIDE_NAVIGATION_ROW_SELECTOR = '[data-part=\"link\"], [data-part=\"trigger\"]';\n\n/**\n * A row the keyboard may land on: not inside a closed group. Read from the\n * structure rather than from the layout, so the answer is the same before the\n * stylesheet has loaded and in an environment with no layout at all.\n */\nfunction visible(element: HTMLElement, root: HTMLElement): boolean {\n for (\n let group = element.closest<HTMLElement>('[data-part=\"group\"]');\n group !== null && root.contains(group);\n group = group.parentElement?.closest<HTMLElement>('[data-part=\"group\"]') ?? null\n ) {\n if (!group.parentElement?.hasAttribute('data-expanded')) return false;\n }\n return true;\n}\n\n/**\n * A column of destinations: nested groups, a current destination, and a rail\n * when the room it has is under `compactAt` pixels.\n *\n * The directive goes on the consumer's own element — `<nav slSideNavigation>`\n * standing alone, `<div slSideNavigation>` inside `app-shell`'s nav region,\n * which is already the navigation landmark. `landmark` decides whether the\n * name is written; the element is the consumer's, as it is everywhere in this\n * ecosystem.\n *\n * **Three values, three models.** `value` is the current destination and\n * `expanded` the set of open groups; `flyout` is the one group shown beside the\n * rail, transient by design, and it never writes into `expanded`.\n *\n * **The rail is a width.** The stylesheet decides the picture from the root's\n * own inline size, before any script; the width gate here writes\n * `data-compact` afterwards, and that is what turns on the tooltip and the\n * flyout.\n */\n@Component({\n selector: '[slSideNavigation]',\n standalone: true,\n exportAs: 'slSideNavigation',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/side-navigation/side-navigation.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'side-navigation',\n 'data-part': 'root',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-mode]': 'resolvedMode()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-truncate]': 'resolvedTruncate()',\n '[attr.data-guides]': \"resolvedGuides() ? '' : null\",\n '[attr.data-compact]': \"compact() ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlSideNavigation {\n /** The current destination's value. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n /** The set of open groups. */\n readonly expanded = model<readonly string[]>([]);\n /** The one group presented beside the rail, or null. */\n readonly flyout = model<string | null>(null);\n\n readonly size = input<SideNavigationSize | undefined>(undefined);\n readonly mode = input<SideNavigationMode | undefined>(undefined);\n readonly truncate = input<SideNavigationTruncate | undefined>(undefined);\n readonly multiple = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly autoExpand = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly guides = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /**\n * Whether the root is the navigation landmark. Unstated, it is one on its\n * own and not inside `app-shell`'s nav region, which already is.\n */\n readonly landmark = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The width, in CSS pixels, under which `mode=\"auto\"` is compact. */\n readonly compactAt = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n /**\n * Words laid over the catalog of the language in force: the landmark's name\n * (`navigation`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<SideNavigationMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n readonly expandedChangeRequest = output<ChangeRequest<readonly string[]>>();\n readonly flyoutChangeRequest = output<ChangeRequest<string | null>>();\n\n private readonly defaults = injectSideNavigationDefaults();\n private readonly shell = inject(SlAppShellNav, { optional: true });\n /** The name the consumer wrote, kept over the family's own. */\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedMode = computed(() => this.mode() ?? this.defaults.mode);\n readonly resolvedTruncate = computed(() => this.truncate() ?? this.defaults.truncate);\n readonly resolvedMultiple = computed(() => this.multiple() ?? this.defaults.multiple);\n readonly resolvedAutoExpand = computed(() => this.autoExpand() ?? this.defaults.autoExpand);\n readonly resolvedGuides = computed(() => this.guides() ?? this.defaults.guides);\n readonly resolvedCompactAt = computed(() => this.compactAt() ?? this.defaults.compactAt);\n readonly resolvedLandmark = computed(\n () => this.landmark() ?? (this.shell === null ? this.defaults.landmark : false),\n );\n /** The family's words in the language in force, with this column's `messages` laid over them. */\n readonly t = injectMessages(sideNavigationMessages, this.messages);\n\n protected readonly ariaLabel = computed(() =>\n this.resolvedLandmark() ? (this.writtenLabel ?? this.t('navigation')) : null,\n );\n\n /** Whether the root is under `compactAt`, measured. */\n private readonly narrow = signal(false);\n readonly compact = computed(\n () => this.resolvedMode() === 'compact' || (this.resolvedMode() === 'auto' && this.narrow()),\n );\n\n /** Moves when the root was resized or the fonts arrived, so a label measures again. */\n readonly measureTick = signal(0);\n\n /** The layer the flyout is drawn in, so the keyboard can walk into it. */\n readonly flyoutNode = signal<HTMLElement | null>(null);\n\n /** Every item's parent, so the ancestors of a destination can be opened. */\n private readonly parents = new Map<string, string | null>();\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* After the first render and not in the constructor: a measure there\n forced a style pass before any binding existed — `compactAt` was still\n its default, and inside app-shell the column resolved at rail width and\n then animated open. */\n afterNextRender(() => {\n if (typeof ResizeObserver === 'undefined') return;\n const gate = createWidthGate(this.host, {\n at: this.resolvedCompactAt(),\n onChange: (narrow) => this.narrow.set(narrow),\n });\n this.narrow.set(gate.narrow());\n destroyRef.onDestroy(() => gate.destroy());\n\n const observer = new ResizeObserver(() => this.measureTick.update((tick) => tick + 1));\n observer.observe(this.host);\n destroyRef.onDestroy(() => observer.disconnect());\n void this.host.ownerDocument.fonts?.ready.then(() =>\n this.measureTick.update((tick) => tick + 1),\n );\n });\n\n /* Compact mode ending takes the flyout with it: there is no rail to stand beside. */\n effect(() => {\n if (!this.compact() && this.flyout() !== null) this.setFlyout(null, 'resize');\n });\n\n /* The ancestors of the current destination open, with the reason select. */\n effect(() => {\n const current = this.value();\n if (!this.resolvedAutoExpand() || current === null) return;\n const open = this.expanded();\n const missing: string[] = [];\n for (\n let parent = this.parents.get(current) ?? null;\n parent !== null;\n parent = this.parents.get(parent) ?? null\n ) {\n if (!open.includes(parent)) missing.push(parent);\n }\n if (missing.length === 0) return;\n const next = this.resolvedMultiple()\n ? [...open, ...missing]\n : [missing[missing.length - 1] as string];\n this.requestExpanded(next, 'select');\n });\n }\n\n isExpanded(value: string): boolean {\n return this.expanded().includes(value);\n }\n\n /** An item says where it stands. */\n registerItem(value: string, parent: string | null): () => void {\n this.parents.set(value, parent);\n return () => {\n this.parents.delete(value);\n };\n }\n\n private requestExpanded(\n next: readonly string[],\n reason: SideNavigationExpandedReason,\n source?: Event,\n ) {\n const state = createControllable<readonly string[]>({\n equals: sameOpenValues,\n initial: this.expanded(),\n onRequest: (request) => this.expandedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.expanded.set(next);\n }\n\n /** Asks the set of open groups to include or drop one value. */\n toggleExpanded(\n value: string,\n next: boolean,\n reason: SideNavigationExpandedReason,\n source?: Event,\n ) {\n const current = this.expanded();\n if (current.includes(value) === next) return;\n this.requestExpanded(\n nextOpenValues(current, value, { multiple: this.resolvedMultiple() }),\n reason,\n source,\n );\n }\n\n /** Asks the flyout to show one group, or none. */\n setFlyout(next: string | null, reason: SideNavigationFlyoutReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.flyout(),\n onRequest: (request) => this.flyoutChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.flyout.set(next);\n }\n\n /** Asks the current destination to move. */\n select(next: string, reason: SideNavigationValueReason, 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 /** Opens one group, with the reason `programmatic`. */\n expand(value: string) {\n this.toggleExpanded(value, true, 'programmatic');\n }\n\n /** Closes one group, with the reason `programmatic`. */\n collapse(value: string) {\n this.toggleExpanded(value, false, 'programmatic');\n }\n\n /** Focuses the first link or trigger in the column. */\n focus() {\n this.rows()[0]?.focus();\n }\n\n /** The rows the arrow keys walk, with the flyout's spliced in after its trigger. */\n rows(): HTMLElement[] {\n const inColumn = [\n ...this.host.querySelectorAll<HTMLElement>(SIDE_NAVIGATION_ROW_SELECTOR),\n ].filter((row) => visible(row, this.host));\n const layer = this.flyoutNode();\n const open = this.flyout();\n if (layer === null || open === null) return inColumn;\n const inLayer = [...layer.querySelectorAll<HTMLElement>(SIDE_NAVIGATION_ROW_SELECTOR)];\n const at = inColumn.findIndex(\n (row) => row.closest('[data-part=\"item\"]')?.getAttribute('data-value') === open,\n );\n if (at === -1) return [...inColumn, ...inLayer];\n return [...inColumn.slice(0, at + 1), ...inLayer, ...inColumn.slice(at + 1)];\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n if (!target.matches(SIDE_NAVIGATION_ROW_SELECTOR)) return;\n\n if (event.key === 'Escape') {\n /* Inside the layer, the dismissable layer has already answered. */\n if (this.flyoutNode()?.contains(target)) return;\n const group = target.closest<HTMLElement>('[data-part=\"group\"]');\n const item = group?.parentElement;\n const value = item?.getAttribute('data-value');\n if (!group || !item || !value || !item.hasAttribute('data-expanded')) return;\n event.preventDefault();\n this.toggleExpanded(value, false, 'escape', event);\n item.querySelector<HTMLElement>(':scope > [data-part=\"trigger\"]')?.focus();\n return;\n }\n\n const step =\n event.key === 'ArrowDown' || event.key === 'ArrowRight'\n ? 1\n : event.key === 'ArrowUp' || event.key === 'ArrowLeft'\n ? -1\n : 0;\n if (step === 0 && event.key !== 'Home' && event.key !== 'End') return;\n\n const all = this.rows();\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","import { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { truncateMiddle } from '@slotted/core/text';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport {\n provideTooltipDefaults,\n SlTooltip,\n SlTooltipContent,\n SlTooltipLayer,\n} from '@slotted/angular/tooltip';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { Signal } from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlSideNavigation } from './side-navigation';\nimport { SlSideNavigationIdFactory } from './side-navigation-defaults';\nimport type { SideNavigationFlyoutReason } from './side-navigation-defaults';\n\n/** A click synthesised by the keyboard reports no detail; a real one reports the count. */\nfunction activationReason(event: MouseEvent) {\n return event.detail === 0 ? ('keyboard' as const) : ('pointer' as const);\n}\n\n/* ── Section, its title, and a list ─────────────────────────────────────── */\n\n/** A titled run of destinations. Several may stand under one root. */\n@Directive({\n selector: '[slSideNavigationSection]',\n standalone: true,\n host: { 'data-part': 'section' },\n})\nexport class SlSideNavigationSection {}\n\n/** The section's title. In compact mode it becomes a rule. */\n@Directive({\n selector: '[slSideNavigationSectionLabel]',\n standalone: true,\n host: { 'data-part': 'section-label' },\n})\nexport class SlSideNavigationSectionLabel {}\n\n/** The items of one level: the top level, or a section's. */\n@Directive({\n selector: 'ul[slSideNavigationList]',\n standalone: true,\n host: { 'data-part': 'list' },\n})\nexport class SlSideNavigationList {}\n\n/* ── The item ───────────────────────────────────────────────────────────── */\n\n/**\n * A row: a link, a trigger, or both, with optional actions and a group.\n *\n * It carries the states the stylesheet reads. `data-current` is on it while\n * its own link is the destination, and while a descendant is and the group is\n * closed or the column is a rail — the reader sees where they are when the\n * destination itself is out of sight.\n */\n@Directive({\n selector: 'li[slSideNavigationItem]',\n standalone: true,\n exportAs: 'slSideNavigationItem',\n host: {\n 'data-part': 'item',\n '[attr.data-value]': 'value()',\n '[attr.data-current]': \"marked() ? '' : null\",\n '[attr.data-expanded]': \"expanded() ? '' : null\",\n '[attr.data-open]': \"flyoutOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n },\n})\nexport class SlSideNavigationItem {\n /** The item's identity: what `value`, `expanded` and `flyout` name it by. */\n readonly value = input.required<string>();\n /** The row and everything in it refuse interaction. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly navigation = inject(SlSideNavigation);\n /** The item above, or nothing at the top level. */\n readonly parent = inject(SlSideNavigationItem, { optional: true, skipSelf: true });\n private readonly generated = inject(SlSideNavigationIdFactory).next();\n\n readonly ids = {\n groupId: `${this.generated}-group`,\n labelId: `${this.generated}-label`,\n triggerId: `${this.generated}-trigger`,\n };\n\n readonly hasLink = signal(false);\n readonly hasGroup = signal(false);\n /** Whether the label was measured as clipped, which is what opens the tooltip. */\n readonly clipped = signal(false);\n /** The label's whole text, for the tooltip and for `aria-label` under a middle cut. */\n readonly labelText = signal('');\n readonly descriptionText = signal('');\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly descendants = signal<readonly string[]>([]);\n\n readonly expanded = computed(() => this.navigation.isExpanded(this.value()));\n readonly flyoutOpen = computed(\n () => this.navigation.compact() && this.navigation.flyout() === this.value(),\n );\n /** Whether the current destination is this item's own link. */\n readonly current = computed(() => this.hasLink() && this.navigation.value() === this.value());\n /** Whether the current destination is somewhere under this item. */\n readonly holdsCurrent = computed(() => this.descendants().length > 0);\n readonly resolvedDisabled: Signal<boolean> = computed(\n () => this.disabled() || (this.parent?.resolvedDisabled() ?? false),\n );\n protected readonly marked = computed(\n () =>\n this.current() || (this.holdsCurrent() && (!this.expanded() || this.navigation.compact())),\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n let release: (() => void) | null = null;\n effect(() => {\n release?.();\n release = this.navigation.registerItem(this.value(), this.parent?.value() ?? null);\n });\n destroyRef.onDestroy(() => release?.());\n\n /* Where the reader is, said upward: own link, or anything under it. */\n const parent = this.parent;\n if (parent !== null) {\n effect(() => parent.reportCurrent(this.value(), this.current() || this.holdsCurrent()));\n destroyRef.onDestroy(() => parent.reportCurrent(this.value(), false));\n }\n }\n\n /** A descendant says whether it holds the current destination. */\n reportCurrent(descendant: string, isCurrent: boolean) {\n this.descendants.update((known) => {\n const has = known.includes(descendant);\n if (isCurrent === has) return known;\n return isCurrent ? [...known, descendant] : known.filter((item) => item !== descendant);\n });\n }\n}\n\n/* ── The row's hint ─────────────────────────────────────────────────────── */\n\n/**\n * What a link and a trigger share: the tooltip a row opens when it cannot\n * show its own words. `SlTooltip` is a host directive holding the state and\n * the delays; the row dispatches the pointer and the focus to it only while a\n * hint is due, because the family — not the consumer's template — decides\n * when a row is a trigger. The layer is stamped under `@if`, so an idle row\n * mounts nothing.\n */\n@Directive()\nabstract class SideNavigationRow {\n readonly item = inject(SlSideNavigationItem);\n readonly navigation = inject(SlSideNavigation);\n protected readonly tooltip = inject(SlTooltip);\n protected readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n abstract readonly hint: () => boolean;\n\n constructor() {\n this.tooltip.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.tooltip.triggerNode.set(null));\n }\n\n protected readonly describedBy = computed(() =>\n this.hint() && this.tooltip.isOpen() ? this.tooltip.contentId : null,\n );\n\n protected onPointerEnter(event: PointerEvent) {\n if (!this.hint() || event.pointerType === 'touch') return;\n this.tooltip.openAfterDelay(event);\n }\n\n protected onPointerLeave(event: PointerEvent) {\n if (!this.hint()) return;\n this.tooltip.closeAfterDelay(event);\n }\n\n protected onPointerDown(event: PointerEvent) {\n if (!this.hint()) return;\n if (event.pointerType === 'touch') this.tooltip.pressAndHold(event);\n else if (this.tooltip.isOpen()) this.tooltip.toggle(false, 'pointer', event);\n }\n\n protected onPointerUp() {\n this.tooltip.cancelPending();\n }\n\n protected onFocus(event: FocusEvent) {\n if (!this.hint() || !this.native.matches(':focus-visible')) return;\n this.tooltip.toggle(true, 'keyboard', event);\n }\n\n protected onBlur(event: FocusEvent) {\n if (this.tooltip.isOpen()) this.tooltip.toggle(false, 'blur', event);\n }\n}\n\nconst HINT_TEMPLATE = `<ng-content />\n@if (hint()) {\n <ng-template slTooltipLayer>\n <div slTooltipContent>\n {{ item.labelText() }}\n @if (item.descriptionText()) {\n <br />\n {{ item.descriptionText() }}\n }\n </div>\n </ng-template>\n}`;\n\nconst HINT_HOST = {\n '[attr.aria-describedby]': 'describedBy()',\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp()',\n '(pointercancel)': 'onPointerUp()',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)',\n};\n\n/* ── The link ───────────────────────────────────────────────────────────── */\n\n/**\n * The destination, or a command. On an `a` with an `href` it is a destination\n * and takes `aria-current`; on a `button` it is a command in the column with\n * the same row. `routerLink` and `routerLinkActive` live on the same element,\n * and an `aria-current` the router wrote is read and kept.\n */\n@Component({\n selector: 'a[slSideNavigationLink], button[slSideNavigationLink]',\n standalone: true,\n exportAs: 'slSideNavigationLink',\n imports: [SlTooltipLayer, SlTooltipContent],\n template: HINT_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlTooltip],\n providers: [\n provideTooltipDefaults({ describes: 'description', openOn: 'hover', side: 'inline-end' }),\n ],\n host: {\n ...HINT_HOST,\n 'data-part': 'link',\n '[attr.aria-current]': \"resolvedCurrent() ? 'page' : null\",\n '[attr.aria-disabled]': \"item.resolvedDisabled() ? 'true' : null\",\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-current]': \"resolvedCurrent() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlSideNavigationLink extends SideNavigationRow {\n /**\n * Whether this is the current destination, stated on the row itself. It\n * wins over the root's `value`; unstated, an `aria-current` the router wrote\n * on the element is read instead.\n */\n readonly current = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n\n private readonly isDestination = this.native.tagName === 'A';\n private readonly writtenCurrent = inject(new HostAttributeToken('aria-current'), {\n optional: true,\n });\n\n readonly resolvedCurrent = computed(() => {\n const stated = this.current();\n if (stated !== undefined) return stated;\n if (this.writtenCurrent !== null) return this.writtenCurrent !== 'false';\n return this.isDestination && this.navigation.value() === this.item.value();\n });\n\n readonly hint = computed(() => this.navigation.compact() || this.item.clipped());\n\n protected readonly ariaLabel = computed(() =>\n this.navigation.resolvedTruncate() === 'middle' && this.item.clipped()\n ? this.item.labelText()\n : null,\n );\n\n constructor() {\n super();\n this.item.hasLink.set(true);\n inject(DestroyRef).onDestroy(() => this.item.hasLink.set(false));\n }\n\n protected onClick(event: Event) {\n if (this.item.resolvedDisabled()) {\n event.preventDefault();\n return;\n }\n if (event.defaultPrevented) return;\n const reason = activationReason(event as MouseEvent);\n if (this.isDestination) this.navigation.select(this.item.value(), reason, event);\n if (this.navigation.compact() && this.navigation.flyout() !== null) {\n this.navigation.setFlyout(null, 'select', event);\n }\n }\n}\n\n/* ── The trigger ────────────────────────────────────────────────────────── */\n\n/**\n * The disclosure button of the group. Alone, it is the whole row and carries\n * the label; beside a link it is a mark-only button named by the row's label\n * through `aria-labelledby`. In the rail, a trigger without a link opens the\n * flyout instead of the inline group.\n */\n@Component({\n selector: 'button[slSideNavigationTrigger]',\n standalone: true,\n exportAs: 'slSideNavigationTrigger',\n imports: [SlGlyph, SlIcon, SlTooltipLayer, SlTooltipContent],\n template: `<ng-content />\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span\n ></span>\n @if (hint()) {\n <ng-template slTooltipLayer>\n <div slTooltipContent>{{ item.labelText() }}</div>\n </ng-template>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlTooltip],\n providers: [\n provideTooltipDefaults({ describes: 'description', openOn: 'hover', side: 'inline-end' }),\n ],\n host: {\n ...HINT_HOST,\n 'data-part': 'trigger',\n type: 'button',\n '[attr.id]': 'item.ids.triggerId',\n '[attr.aria-controls]': 'item.ids.groupId',\n '[attr.aria-expanded]': 'item.flyoutOpen() || item.expanded()',\n '[attr.aria-labelledby]': 'item.hasLink() ? item.ids.labelId : null',\n '[disabled]': 'item.resolvedDisabled()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlSideNavigationTrigger extends SideNavigationRow {\n readonly hint = computed(\n () => !this.item.hasLink() && (this.navigation.compact() || this.item.clipped()),\n );\n\n constructor() {\n super();\n this.item.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.item.triggerNode.set(null));\n }\n\n protected onClick(event: Event) {\n if (event.defaultPrevented) return;\n const reason = activationReason(event as MouseEvent);\n if (this.navigation.compact() && !this.item.hasLink()) {\n this.navigation.setFlyout(this.item.flyoutOpen() ? null : this.item.value(), reason, event);\n return;\n }\n this.navigation.toggleExpanded(this.item.value(), !this.item.expanded(), reason, event);\n }\n}\n\n/* ── The parts of a row ─────────────────────────────────────────────────── */\n\n/** The box the mark stands in. What is left of a row in the rail. */\n@Directive({\n selector: '[slSideNavigationIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'aria-hidden': 'true' },\n})\nexport class SlSideNavigationIcon {}\n\n/**\n * The row's text. It registers its words with the item, for the tooltip and\n * for the accessible name under a middle cut, and measures itself whenever\n * the column was resized: a label that overflows its box marks the row\n * clipped, which is what opens the tooltip on a row that fits nothing.\n */\n@Directive({\n selector: '[slSideNavigationLabel]',\n standalone: true,\n host: { 'data-part': 'label', '[attr.id]': 'item.ids.labelId' },\n})\nexport class SlSideNavigationLabel {\n protected readonly item = inject(SlSideNavigationItem);\n private readonly navigation = inject(SlSideNavigation);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n /** The words as the consumer wrote them, kept while a middle cut is shown. */\n private whole: string | null = null;\n\n constructor() {\n afterNextRender(() => {\n this.whole = this.native.textContent ?? '';\n this.item.labelText.set(this.whole);\n this.measure();\n });\n effect(() => {\n this.navigation.measureTick();\n this.navigation.compact();\n this.navigation.resolvedTruncate();\n if (this.whole !== null) this.measure();\n });\n }\n\n private measure() {\n const whole = this.whole ?? '';\n const truncate = this.navigation.resolvedTruncate();\n if (truncate === 'none' || this.navigation.compact()) {\n if (this.native.textContent !== whole) this.native.textContent = whole;\n this.item.clipped.set(this.navigation.compact());\n return;\n }\n if (truncate === 'middle') {\n const style = getComputedStyle(this.native);\n const canvas = this.native.ownerDocument.createElement('canvas').getContext('2d');\n const room = this.native.clientWidth;\n if (canvas === null || room === 0) return;\n /* The parts rather than the shorthand: Firefox reports the shorthand empty. */\n canvas.font = `${style.fontStyle} ${style.fontWeight} ${style.fontSize} ${style.fontFamily}`;\n const cut = truncateMiddle(whole, (candidate) => canvas.measureText(candidate).width <= room);\n if (this.native.textContent !== cut) this.native.textContent = cut;\n this.item.clipped.set(cut !== whole);\n return;\n }\n if (this.native.textContent !== whole) this.native.textContent = whole;\n this.item.clipped.set(this.native.scrollWidth > this.native.clientWidth + 1);\n }\n}\n\n/** The second line under the title. */\n@Directive({\n selector: '[slSideNavigationDescription]',\n standalone: true,\n host: { 'data-part': 'description' },\n})\nexport class SlSideNavigationDescription {\n private readonly item = inject(SlSideNavigationItem);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n constructor() {\n afterNextRender(() => this.item.descriptionText.set(this.native.textContent ?? ''));\n }\n}\n\n/** A quantity beside a destination, drawn as tabular figures. Never cut. */\n@Directive({\n selector: '[slSideNavigationCount]',\n standalone: true,\n host: { 'data-part': 'count' },\n})\nexport class SlSideNavigationCount {}\n\n/** The suffix with a tone: a badge, a key. */\n@Directive({\n selector: '[slSideNavigationEnd]',\n standalone: true,\n host: { 'data-part': 'end' },\n})\nexport class SlSideNavigationEnd {}\n\n/** Controls beside the row, outside its `a` or `button`. */\n@Directive({\n selector: '[slSideNavigationActions]',\n standalone: true,\n host: { 'data-part': 'actions' },\n})\nexport class SlSideNavigationActions {}\n\n/** A rule between items that keeps the list a list. */\n@Directive({\n selector: 'li[slSideNavigationDivider]',\n standalone: true,\n host: { 'data-part': 'divider', role: 'separator' },\n})\nexport class SlSideNavigationDivider {}\n\n/** A row still arriving: an item's geometry with `skeleton` boxes in it. */\n@Component({\n selector: 'li[slSideNavigationSkeleton]',\n standalone: true,\n imports: [SlSkeleton],\n template: `<span data-part=\"icon\"><span slSkeleton shape=\"square\" size=\"xs\"></span></span>\n <span data-part=\"label\"\n ><span slSkeleton shape=\"text\" [inlineSize]=\"labelSize()\"></span\n ></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'skeleton', 'aria-hidden': 'true' },\n})\nexport class SlSideNavigationSkeleton {\n /** How wide the label's bar is drawn, as any CSS length. */\n readonly labelSize = input('60%');\n}\n\n/* ── The group, inline or in the flyout ─────────────────────────────────── */\n\n/**\n * An item's children. Inline, it is the second track of the item's grid and\n * opens with it. In the rail the same `ul` is moved into a layer beside the\n * trigger — composed from `portal`, `positioner`, `presence` and\n * `dismissable-layer`, the four modules every overlay in the library takes —\n * and moved back when the layer has left, which is what the CDK's\n * `DomPortalOutlet` does with a template's nodes.\n */\n@Directive({\n selector: 'ul[slSideNavigationGroup]',\n standalone: true,\n exportAs: 'slSideNavigationGroup',\n host: {\n 'data-part': 'group',\n '[attr.id]': 'item.ids.groupId',\n '[attr.aria-labelledby]': 'item.ids.labelId',\n },\n})\nexport class SlSideNavigationGroup {\n protected readonly item = inject(SlSideNavigationItem);\n private readonly navigation = inject(SlSideNavigation);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n private layer: HTMLElement | null = null;\n private home: { parent: Node; next: Node | null } | null = null;\n private portal: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private dismissable: DismissableLayerHandle | null = null;\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n\n constructor() {\n this.item.hasGroup.set(true);\n effect(() => this.presence.sync(this.item.flyoutOpen()));\n effect(() => (this.status() === 'unmounted' ? this.teardown() : this.build()));\n effect(() => this.stack());\n inject(DestroyRef).onDestroy(() => {\n this.item.hasGroup.set(false);\n this.presence.destroy();\n this.teardown();\n });\n }\n\n private build() {\n if (this.layer !== null) return;\n const anchor = this.item.triggerNode();\n const document = this.native.ownerDocument;\n const layer = document.createElement('div');\n layer.setAttribute('data-ui', 'side-navigation');\n layer.setAttribute('data-part', 'flyout');\n layer.setAttribute('data-size', this.navigation.resolvedSize());\n layer.setAttribute('data-truncate', this.navigation.resolvedTruncate());\n if (this.navigation.resolvedGuides()) layer.setAttribute('data-guides', '');\n layer.addEventListener('focusout', this.onFocusOut);\n\n this.home = { parent: this.native.parentNode as Node, next: this.native.nextSibling };\n layer.appendChild(this.native);\n\n const portal = createPortalRoot({ origin: anchor });\n (portal.container ?? this.home.parent).appendChild(layer);\n\n this.portal = portal;\n this.layer = layer;\n this.presence.setNode(layer);\n this.navigation.flyoutNode.set(layer);\n\n if (anchor !== null) {\n this.positioner = createPositioner(anchor, layer, {\n align: 'start',\n flip: true,\n shift: true,\n side: 'inline-end',\n sideOffset: 0,\n strategy: 'fixed',\n });\n void this.positioner.update().then(() => {\n if (this.layer === layer && this.item.flyoutOpen()) layer.setAttribute('data-open', '');\n });\n }\n }\n\n /** The layer joins the single stack only while it is open; the trigger is a branch. */\n private stack() {\n const open = this.item.flyoutOpen();\n const layer = this.layer;\n this.dismissable?.destroy();\n this.dismissable = null;\n if (layer === null || !open) {\n layer?.removeAttribute('data-open');\n return;\n }\n const anchor = this.item.triggerNode();\n this.dismissable = createDismissableLayer(layer, {\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n ...(anchor ? { branches: [anchor] } : {}),\n onDismiss: (request) => {\n const reason: SideNavigationFlyoutReason =\n request.reason === 'escape' ? 'escape' : 'outsidePress';\n this.navigation.setFlyout(null, reason, request.source);\n if (reason === 'escape') anchor?.focus();\n },\n });\n }\n\n private readonly onFocusOut = (event: FocusEvent) => {\n const next = event.relatedTarget as Node | null;\n const layer = this.layer;\n if (next === null || layer === null || !this.item.flyoutOpen()) return;\n if (layer.contains(next) || this.item.triggerNode()?.contains(next)) return;\n this.navigation.setFlyout(null, 'blur', event);\n };\n\n private teardown() {\n const layer = this.layer;\n if (layer === null) return;\n this.dismissable?.destroy();\n this.dismissable = null;\n this.positioner?.destroy();\n this.positioner = null;\n layer.removeEventListener('focusout', this.onFocusOut);\n if (this.home !== null) this.home.parent.insertBefore(this.native, this.home.next);\n this.home = null;\n this.presence.setNode(null);\n layer.remove();\n this.portal?.release();\n this.portal = null;\n this.layer = null;\n if (this.navigation.flyoutNode() === layer) this.navigation.flyoutNode.set(null);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA8CA;AACO,MAAM,wBAAwB,GAA2B;AAC9D,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,MAAM,EAAE,IAAI;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,IAAI,EAAE,IAAI;AACV,IAAA,QAAQ,EAAE,KAAK;;MAGJ,wBAAwB,GAAG,IAAI,cAAc,CACxD,kCAAkC,EAClC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,EAAE;AAGjE;;;;;AAKG;AACG,SAAU,6BAA6B,CAAC,QAAyC,EAAA;IACrF,OAAO;AACL,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,UAAU,EAAE,OAA+B,EAAE,GAAG,wBAAwB,EAAE,GAAG,QAAQ,EAAE,CAAC;KACzF;AACH;AAEA;SACgB,4BAA4B,GAAA;AAC1C,IAAA,OAAO,MAAM,CAAC,wBAAwB,CAAC;AACzC;AAEA;;;;;AAKG;MAEU,yBAAyB,CAAA;IAC5B,KAAK,GAAG,CAAC;IAEjB,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC;AACf,QAAA,OAAO,CAAA,wBAAA,EAA2B,IAAI,CAAC,KAAK,EAAE;IAChD;uGANW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA;;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACrClC;AACO,MAAM,4BAA4B,GAAG;AAE5C;;;;AAIG;AACH,SAAS,OAAO,CAAC,OAAoB,EAAE,IAAiB,EAAA;AACtD,IAAA,KACE,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAc,qBAAqB,CAAC,EAC/D,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACtC,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAc,qBAAqB,CAAC,IAAI,IAAI,EAChF;QACA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,eAAe,CAAC;AAAE,YAAA,OAAO,KAAK;IACvE;AACA,IAAA,OAAO,IAAI;AACb;AAEA;;;;;;;;;;;;;;;;;;AAkBG;MAqBU,gBAAgB,CAAA;;IAElB,KAAK,GAAG,KAAK,CAAgB,IAAI;8EAAC;;IAElC,QAAQ,GAAG,KAAK,CAAoB,EAAE;iFAAC;;IAEvC,MAAM,GAAG,KAAK,CAAgB,IAAI;+EAAC;IAEnC,IAAI,GAAG,KAAK,CAAiC,SAAS;6EAAC;IACvD,IAAI,GAAG,KAAK,CAAiC,SAAS;6EAAC;IACvD,QAAQ,GAAG,KAAK,CAAqC,SAAS;iFAAC;AAC/D,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,UAAU,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,8BAAA,EAAA,CAAA,EACtF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,MAAM,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EAClF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACF;;;AAGG;AACM,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;;AAEO,IAAA,SAAS,GAAG,KAAK,CAAkD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,CAAA,EACnF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,GAChF;AACF;;;AAGG;IACM,QAAQ,GAAG,KAAK,CAAsD,SAAS;iFAAC;;IAGhF,kBAAkB,GAAG,MAAM,EAAgC;IAC3D,qBAAqB,GAAG,MAAM,EAAoC;IAClE,mBAAmB,GAAG,MAAM,EAAgC;IAEpD,QAAQ,GAAG,4BAA4B,EAAE;IACzC,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;AAEjD,IAAA,YAAY,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACvF,IAAA,IAAI,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAEpD,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AAChE,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI;qFAAC;AAChE,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAAC;AAC5E,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;yFAAC;AAC5E,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU;2FAAC;AAClF,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;uFAAC;AACtE,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS;0FAAC;AAC/E,IAAA,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;yFAChF;;IAEQ,CAAC,GAAG,cAAc,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC;AAE/C,IAAA,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI;kFAC7E;;IAGgB,MAAM,GAAG,MAAM,CAAC,KAAK;+EAAC;IAC9B,OAAO,GAAG,QAAQ,CACzB,MAAM,IAAI,CAAC,YAAY,EAAE,KAAK,SAAS,KAAK,IAAI,CAAC,YAAY,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gFAC7F;;IAGQ,WAAW,GAAG,MAAM,CAAC,CAAC;oFAAC;;IAGvB,UAAU,GAAG,MAAM,CAAqB,IAAI;mFAAC;;AAGrC,IAAA,OAAO,GAAG,IAAI,GAAG,EAAyB;AAE3D,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAErC;;;AAGyB;QACzB,eAAe,CAAC,MAAK;YACnB,IAAI,OAAO,cAAc,KAAK,WAAW;gBAAE;AAC3C,YAAA,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;AACtC,gBAAA,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC5B,gBAAA,QAAQ,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9C,aAAA,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAE1C,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;AACtF,YAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3B,UAAU,CAAC,SAAS,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC;AACjD,YAAA,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAC7C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAC5C;AACH,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI;AAAE,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC/E,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,OAAO,KAAK,IAAI;gBAAE;AACpD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC5B,MAAM,OAAO,GAAa,EAAE;AAC5B,YAAA,KACE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAC9C,MAAM,KAAK,IAAI,EACf,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EACzC;AACA,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAAE,oBAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAClD;AACA,YAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB;AAChC,kBAAE,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO;kBACpB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAW,CAAC;AAC3C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC;AACtC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,UAAU,CAAC,KAAa,EAAA;QACtB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;IACxC;;IAGA,YAAY,CAAC,KAAa,EAAE,MAAqB,EAAA;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AAC/B,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,CAAC;IACH;AAEQ,IAAA,eAAe,CACrB,IAAuB,EACvB,MAAoC,EACpC,MAAc,EAAA;QAEd,MAAM,KAAK,GAAG,kBAAkB,CAAoB;AAClD,YAAA,MAAM,EAAE,cAAc;AACtB,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;AACxB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;AACjE,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IAClE;;AAGA,IAAA,cAAc,CACZ,KAAa,EACb,IAAa,EACb,MAAoC,EACpC,MAAc,EAAA;AAEd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC/B,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE;QACtC,IAAI,CAAC,eAAe,CAClB,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,EACrE,MAAM,EACN,MAAM,CACP;IACH;;AAGA,IAAA,SAAS,CAAC,IAAmB,EAAE,MAAkC,EAAE,MAAc,EAAA;QAC/E,MAAM,KAAK,GAAG,kBAAkB,CAAgB;AAC9C,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC/D,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;IAChE;;AAGA,IAAA,MAAM,CAAC,IAAY,EAAE,MAAiC,EAAE,MAAc,EAAA;QACpE,MAAM,KAAK,GAAG,kBAAkB,CAAgB;AAC9C,YAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE;AACrB,YAAA,SAAS,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9D,SAAA,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IAC/D;;AAGA,IAAA,MAAM,CAAC,KAAa,EAAA;QAClB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC;IAClD;;AAGA,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC;IACnD;;IAGA,KAAK,GAAA;QACH,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;IACzB;;IAGA,IAAI,GAAA;AACF,QAAA,MAAM,QAAQ,GAAG;AACf,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,4BAA4B,CAAC;AACzE,SAAA,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;AAC1B,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,QAAQ;QACpD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAc,4BAA4B,CAAC,CAAC;QACtF,MAAM,EAAE,GAAG,QAAQ,CAAC,SAAS,CAC3B,CAAC,GAAG,KAAK,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,CAChF;QACD,IAAI,EAAE,KAAK,CAAC,CAAC;AAAE,YAAA,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC/C,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E;AAEU,IAAA,SAAS,CAAC,KAAoB,EAAA;QACtC,IAAI,KAAK,CAAC,gBAAgB;YAAE;AAC5B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB;AAC1C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,4BAA4B,CAAC;YAAE;AAEnD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;;YAE1B,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAAE;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAc,qBAAqB,CAAC;AAChE,YAAA,MAAM,IAAI,GAAG,KAAK,EAAE,aAAa;YACjC,MAAM,KAAK,GAAG,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;AAC9C,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;gBAAE;YACtE,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC;YAClD,IAAI,CAAC,aAAa,CAAc,gCAAgC,CAAC,EAAE,KAAK,EAAE;YAC1E;QACF;AAEA,QAAA,MAAM,IAAI,GACR,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK;AACzC,cAAE;cACA,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK;kBACvC,CAAC;kBACD,CAAC;AACT,QAAA,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK;YAAE;AAE/D,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE;AACvB,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE;QACtB,KAAK,CAAC,cAAc,EAAE;QACtB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;AACjC,QAAA,MAAM,IAAI,GACR,KAAK,CAAC,GAAG,KAAK;AACZ,cAAE;AACF,cAAE,KAAK,CAAC,GAAG,KAAK;AACd,kBAAE,GAAG,CAAC,MAAM,GAAG;kBACb,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;AAC3D,QAAA,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;IACpB;uGAjQW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,msEAhBjB,gBAAgB,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6nsBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAgBf,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBApB5B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,QAAA,EACN,kBAAkB,YAClB,gBAAgB,EAAA,eAAA,EAET,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACJ,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,kBAAkB,EAAE,gBAAgB;AACpC,wBAAA,kBAAkB,EAAE,gBAAgB;AACpC,wBAAA,sBAAsB,EAAE,oBAAoB;AAC5C,wBAAA,oBAAoB,EAAE,8BAA8B;AACpD,wBAAA,qBAAqB,EAAE,uBAAuB;AAC9C,wBAAA,WAAW,EAAE,mBAAmB;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,6nsBAAA,CAAA,EAAA;;;ACnEH;AACA,SAAS,gBAAgB,CAAC,KAAiB,EAAA;AACzC,IAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,GAAI,UAAoB,GAAI,SAAmB;AAC1E;AAEA;AAEA;MAMa,uBAAuB,CAAA;uGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;AACjC,iBAAA;;AAGD;MAMa,4BAA4B,CAAA;uGAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE;AACvC,iBAAA;;AAGD;MAMa,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;AAC9B,iBAAA;;AAGD;AAEA;;;;;;;AAOG;MAcU,oBAAoB,CAAA;;IAEtB,KAAK,GAAG,KAAK,CAAC,QAAQ;8EAAU;;IAEhC,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD,IAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;;AAErC,IAAA,MAAM,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjE,SAAS,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,EAAE;AAE5D,IAAA,GAAG,GAAG;AACb,QAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,MAAA,CAAQ;AAClC,QAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,MAAA,CAAQ;AAClC,QAAA,SAAS,EAAE,CAAA,EAAG,IAAI,CAAC,SAAS,CAAA,QAAA,CAAU;KACvC;IAEQ,OAAO,GAAG,MAAM,CAAC,KAAK;gFAAC;IACvB,QAAQ,GAAG,MAAM,CAAC,KAAK;iFAAC;;IAExB,OAAO,GAAG,MAAM,CAAC,KAAK;gFAAC;;IAEvB,SAAS,GAAG,MAAM,CAAC,EAAE;kFAAC;IACtB,eAAe,GAAG,MAAM,CAAC,EAAE;wFAAC;IAC5B,WAAW,GAAG,MAAM,CAAqB,IAAI;oFAAC;IACtC,WAAW,GAAG,MAAM,CAAoB,EAAE;oFAAC;AAEnD,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;iFAAC;IACnE,UAAU,GAAG,QAAQ,CAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;mFAC7E;;IAEQ,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE;gFAAC;;AAEpF,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;qFAAC;IAC5D,gBAAgB,GAAoB,QAAQ,CACnD,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,KAAK,CAAC;yFACpE;AACkB,IAAA,MAAM,GAAG,QAAQ,CAClC,MACE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;+EAC7F;AAED,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,OAAO,GAAwB,IAAI;QACvC,MAAM,CAAC,MAAK;YACV,OAAO,IAAI;YACX,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;AACpF,QAAA,CAAC,CAAC;QACF,UAAU,CAAC,SAAS,CAAC,MAAM,OAAO,IAAI,CAAC;;AAGvC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAC1B,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AACvF,YAAA,UAAU,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QACvE;IACF;;IAGA,aAAa,CAAC,UAAkB,EAAE,SAAkB,EAAA;QAClD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;YAChC,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;YACtC,IAAI,SAAS,KAAK,GAAG;AAAE,gBAAA,OAAO,KAAK;YACnC,OAAO,SAAS,GAAG,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,UAAU,CAAC;AACzF,QAAA,CAAC,CAAC;IACJ;uGAnEW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,IAAI,EAAE;AACJ,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,qBAAqB,EAAE,sBAAsB;AAC7C,wBAAA,sBAAsB,EAAE,wBAAwB;AAChD,wBAAA,kBAAkB,EAAE,0BAA0B;AAC9C,wBAAA,sBAAsB,EAAE,gCAAgC;AACzD,qBAAA;AACF,iBAAA;;AAuED;AAEA;;;;;;;AAOG;AACH,MACe,iBAAiB,CAAA;AACrB,IAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnC,IAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3B,IAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAC3B,IAAA,MAAM,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAIzE,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxE;AAEmB,IAAA,WAAW,GAAG,QAAQ,CAAC,MACxC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI;oFACrE;AAES,IAAA,cAAc,CAAC,KAAmB,EAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;YAAE;AACnD,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;IACpC;AAEU,IAAA,cAAc,CAAC,KAAmB,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;IACrC;AAEU,IAAA,aAAa,CAAC,KAAmB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE;AAClB,QAAA,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO;AAAE,YAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC9D,aAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;IAC9E;IAEU,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;IAC9B;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAAE;QAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC;IAC9C;AAEU,IAAA,MAAM,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;IACtE;uGA5Ca,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;AAgDD,MAAM,aAAa,GAAG,CAAA;;;;;;;;;;;EAWpB;AAEF,MAAM,SAAS,GAAG;AAChB,IAAA,yBAAyB,EAAE,eAAe;AAC1C,IAAA,gBAAgB,EAAE,wBAAwB;AAC1C,IAAA,gBAAgB,EAAE,wBAAwB;AAC1C,IAAA,eAAe,EAAE,uBAAuB;AACxC,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,iBAAiB,EAAE,eAAe;AAClC,IAAA,SAAS,EAAE,iBAAiB;AAC5B,IAAA,QAAQ,EAAE,gBAAgB;CAC3B;AAED;AAEA;;;;;AAKG;AAuBG,MAAO,oBAAqB,SAAQ,iBAAiB,CAAA;AACzD;;;;AAIG;AACM,IAAA,OAAO,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EACnF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;IAEe,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,GAAG;IAC3C,cAAc,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,cAAc,CAAC,EAAE;AAC/E,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEO,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;QAC7B,IAAI,MAAM,KAAK,SAAS;AAAE,YAAA,OAAO,MAAM;AACvC,QAAA,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC,cAAc,KAAK,OAAO;AACxE,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IAC5E,CAAC;wFAAC;AAEO,IAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;6EAAC;IAE7D,SAAS,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;AAClE,UAAE,IAAI,CAAC,IAAI,CAAC,SAAS;AACrB,UAAE,IAAI;kFACT;AAED,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClE;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;YAChC,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;QACA,IAAI,KAAK,CAAC,gBAAgB;YAAE;AAC5B,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAmB,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa;AAAE,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;AAChF,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YAClE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;QAClD;IACF;uGA/CW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,MAAA,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,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,mCAAA,EAAA,oBAAA,EAAA,yCAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,SAAA,EAbpB;AACT,YAAA,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SAC1F,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gQAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,cAAc,sGAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAkB/B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uDAAuD;AACjE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAC3C,oBAAA,QAAQ,EAAE,aAAa;oBACvB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,cAAc,EAAE,CAAC,SAAS,CAAC;AAC3B,oBAAA,SAAS,EAAE;AACT,wBAAA,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAC1F,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,SAAS;AACZ,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,qBAAqB,EAAE,mCAAmC;AAC1D,wBAAA,sBAAsB,EAAE,yCAAyC;AACjE,wBAAA,mBAAmB,EAAE,aAAa;AAClC,wBAAA,qBAAqB,EAAE,+BAA+B;AACtD,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA;;AAmDD;AAEA;;;;;AAKG;AAiCG,MAAO,uBAAwB,SAAQ,iBAAiB,CAAA;AACnD,IAAA,IAAI,GAAG,QAAQ,CACtB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;6EACjF;AAED,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE;AAEU,IAAA,OAAO,CAAC,KAAY,EAAA;QAC5B,IAAI,KAAK,CAAC,gBAAgB;YAAE;AAC5B,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAmB,CAAC;AACpD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;YAC3F;QACF;QACA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;IACzF;uGAnBW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,SAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,0CAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAfvB;AACT,YAAA,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SAC1F,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAdS,CAAA;;;;;;;;AAQN,KAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EATM,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,sGAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA4BhD,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAhCnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;oBACnC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,CAAC;AAC5D,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQN,KAAA,CAAA;oBACJ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,cAAc,EAAE,CAAC,SAAS,CAAC;AAC3B,oBAAA,SAAS,EAAE;AACT,wBAAA,sBAAsB,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AAC1F,qBAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,GAAG,SAAS;AACZ,wBAAA,WAAW,EAAE,SAAS;AACtB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,WAAW,EAAE,oBAAoB;AACjC,wBAAA,sBAAsB,EAAE,kBAAkB;AAC1C,wBAAA,sBAAsB,EAAE,sCAAsC;AAC9D,wBAAA,wBAAwB,EAAE,0CAA0C;AACpE,wBAAA,YAAY,EAAE,yBAAyB;AACvC,wBAAA,SAAS,EAAE,iBAAiB;AAC7B,qBAAA;AACF,iBAAA;;AAuBD;AAEA;MAMa,oBAAoB,CAAA;uGAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE;AACrD,iBAAA;;AAGD;;;;;AAKG;MAMU,qBAAqB,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACrC,IAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrC,IAAA,MAAM,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;;IAE/D,KAAK,GAAkB,IAAI;AAEnC,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,OAAO,EAAE;AAChB,QAAA,CAAC,CAAC;QACF,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACzB,YAAA,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;gBAAE,IAAI,CAAC,OAAO,EAAE;AACzC,QAAA,CAAC,CAAC;IACJ;IAEQ,OAAO,GAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;QACnD,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;AACpD,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK;AACtE,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAChD;QACF;AACA,QAAA,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3C,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACjF,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;AACpC,YAAA,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC;gBAAE;;YAEnC,MAAM,CAAC,IAAI,GAAG,CAAA,EAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,UAAU,CAAA,CAAA,EAAI,KAAK,CAAC,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAC,UAAU,EAAE;YAC5F,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC,SAAS,KAAK,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;AAC7F,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,GAAG;AAAE,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG;YAClE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,CAAC;YACpC;QACF;AACA,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,KAAK;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK;QACtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9E;uGA3CW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE;AAChE,iBAAA;;AA+CD;MAMa,2BAA2B,CAAA;AACrB,IAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACnC,IAAA,MAAM,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;AAEvE,IAAA,WAAA,GAAA;QACE,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IACrF;uGANW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE;AACrC,iBAAA;;AAUD;MAMa,qBAAqB,CAAA;uGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;AAC/B,iBAAA;;AAGD;MAMa,mBAAmB,CAAA;uGAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,KAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;AAC7B,iBAAA;;AAGD;MAMa,uBAAuB,CAAA;uGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE;AACjC,iBAAA;;AAGD;MAMa,uBAAuB,CAAA;uGAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;AACpD,iBAAA;;AAGD;MAaa,wBAAwB,CAAA;;IAE1B,SAAS,GAAG,KAAK,CAAC,KAAK;kFAAC;uGAFtB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,UAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARzB,CAAA;;;AAGC,YAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJD,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAST,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAZpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,UAAU,CAAC;AACrB,oBAAA,QAAQ,EAAE,CAAA;;;AAGC,YAAA,CAAA;oBACX,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE;AACzD,iBAAA;;AAMD;AAEA;;;;;;;AAOG;MAWU,qBAAqB,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC;AACrC,IAAA,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACrC,IAAA,MAAM,GAAgB,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa;IAE/D,KAAK,GAAuB,IAAI;IAChC,IAAI,GAA+C,IAAI;IACvD,MAAM,GAA4B,IAAI;IACtC,UAAU,GAA4B,IAAI;IAC1C,WAAW,GAAkC,IAAI;IACxC,MAAM,GAAG,MAAM,CAAiB,WAAW;+EAAC;IAC5C,QAAQ,GAAG,cAAc,CAAC;AACzC,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,cAAc,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAChD,KAAA,CAAC;AAEF,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,QAAA,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1B,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAK;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,QAAQ,EAAE;AACjB,QAAA,CAAC,CAAC;IACJ;IAEQ,KAAK,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,QAAA,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,iBAAiB,CAAC;AAChD,QAAA,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;AACzC,QAAA,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;AAC/D,QAAA,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;AACvE,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;AAAE,YAAA,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,EAAE,CAAC;QAC3E,KAAK,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;QAEnD,IAAI,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;AACrF,QAAA,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;QAE9B,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACnD,QAAA,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AAEzD,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAErC,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE;AAChD,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,QAAQ,EAAE,OAAO;AAClB,aAAA,CAAC;YACF,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAK;gBACtC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AAAE,oBAAA,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;AACzF,YAAA,CAAC,CAAC;QACJ;IACF;;IAGQ,KAAK,GAAA;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;AAC3B,YAAA,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC;YACnC;QACF;QACA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,sBAAsB,CAAC,KAAK,EAAE;AAC/C,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,YAAY,EAAE,KAAK;AACnB,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,IAAI,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;AACzC,YAAA,SAAS,EAAE,CAAC,OAAO,KAAI;AACrB,gBAAA,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,KAAK,QAAQ,GAAG,QAAQ,GAAG,cAAc;AACzD,gBAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;gBACvD,IAAI,MAAM,KAAK,QAAQ;oBAAE,MAAM,EAAE,KAAK,EAAE;YAC1C,CAAC;AACF,SAAA,CAAC;IACJ;AAEiB,IAAA,UAAU,GAAG,CAAC,KAAiB,KAAI;AAClD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,aAA4B;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE;AAChE,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC;YAAE;QACrE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;AAChD,IAAA,CAAC;IAEO,QAAQ,GAAA;AACd,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,KAAK,KAAK,IAAI;YAAE;AACpB,QAAA,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;AAAE,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,KAAK,CAAC,MAAM,EAAE;AACd,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,KAAK;YAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAClF;uGArHW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,WAAW,EAAE,OAAO;AACpB,wBAAA,WAAW,EAAE,kBAAkB;AAC/B,wBAAA,wBAAwB,EAAE,kBAAkB;AAC7C,qBAAA;AACF,iBAAA;;;AC1hBD;;AAEG;;"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-side-navigation.mjs","sources":["../../side-navigation/src/side-navigation-defaults.ts","../../side-navigation/src/side-navigation.ts","../../side-navigation/src/side-navigation-parts.ts","../../side-navigation/src/slotted-angular-side-navigation.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The row height step. `md` reads the geometry `app-shell` publishes. */\nexport type SideNavigationSize = 'sm' | 'md' | 'lg';\n\n/**\n * How the column reads the room it has. `auto` is compact below `compactAt`\n * pixels of its own width and labelled above; the other two force one.\n */\nexport type SideNavigationMode = 'auto' | 'expanded' | 'compact';\n\n/**\n * Where a label that does not fit is cut. `end` is the stylesheet's ellipsis;\n * `middle` keeps the start and the tail, measured by the binding; `none` wraps.\n */\nexport type SideNavigationTruncate = 'end' | 'middle' | 'none';\n\n/** Why the set of open groups moved. */\nexport type SideNavigationExpandedReason =\n 'pointer' | 'keyboard' | 'select' | 'escape' | 'programmatic';\n\n/** Why the flyout opened or closed. */\nexport type SideNavigationFlyoutReason =\n | 'pointer'\n | 'keyboard'\n | 'select'\n | 'escape'\n | 'outsidePress'\n | 'blur'\n | 'resize'\n | 'programmatic';\n\n/** Why the current destination moved. */\nexport type SideNavigationValueReason = 'pointer' | 'keyboard' | 'programmatic';\n\nexport interface SideNavigationDefaults {\n autoExpand: boolean;\n compactAt: number;\n guides: boolean;\n landmark: boolean;\n mode: SideNavigationMode;\n multiple: boolean;\n size: SideNavigationSize;\n truncate: SideNavigationTruncate;\n}\n\n/** The contract's defaults, and the width the rail is read at. */\nexport const SIDE_NAVIGATION_FALLBACK: SideNavigationDefaults = {\n autoExpand: true,\n compactAt: 96,\n guides: true,\n landmark: true,\n mode: 'auto',\n multiple: true,\n size: 'md',\n truncate: 'end',\n};\n\nexport const SIDE_NAVIGATION_DEFAULTS = new InjectionToken<SideNavigationDefaults>(\n 'slotted side-navigation defaults',\n { providedIn: 'root', factory: () => SIDE_NAVIGATION_FALLBACK },\n);\n\n/**\n * An application decides once how its columns read — the rail's width, the\n * cut, whether groups open one at a time — rather than repeating it on every\n * navigation in a product. A column that states any of them itself still wins.\n * Its words come from the language in force (`provideSlotted`).\n */\nexport function provideSideNavigationDefaults(defaults: Partial<SideNavigationDefaults>) {\n return {\n provide: SIDE_NAVIGATION_DEFAULTS,\n useFactory: (): SideNavigationDefaults => ({ ...SIDE_NAVIGATION_FALLBACK, ...defaults }),\n };\n}\n\n/** What a column renders as here, before it states anything of its own. */\nexport function injectSideNavigationDefaults(): SideNavigationDefaults {\n return inject(SIDE_NAVIGATION_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlSideNavigationIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-side-navigation-${this.count}`;\n }\n}\n","import { nextOpenValues, sameOpenValues } from '@slotted/core/disclosure';\nimport { createWidthGate } from '@slotted/core/measure';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { SlAppShellNav } from '@slotted/angular/app-shell';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n sideNavigationMessages,\n type PartialMessages,\n type SideNavigationMessages,\n} from '@slotted/core/i18n';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n model,\n numberAttribute,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { injectSideNavigationDefaults } from './side-navigation-defaults';\nimport type {\n SideNavigationExpandedReason,\n SideNavigationFlyoutReason,\n SideNavigationMode,\n SideNavigationSize,\n SideNavigationTruncate,\n SideNavigationValueReason,\n} from './side-navigation-defaults';\n\nexport type {\n SideNavigationDefaults,\n SideNavigationExpandedReason,\n SideNavigationFlyoutReason,\n SideNavigationMode,\n SideNavigationSize,\n SideNavigationTruncate,\n SideNavigationValueReason,\n} from './side-navigation-defaults';\n\n/** Every row a reader can land on, in the order the DOM holds them. */\nexport const SIDE_NAVIGATION_ROW_SELECTOR = '[data-part=\"link\"], [data-part=\"trigger\"]';\n\n/**\n * A row the keyboard may land on: not inside a closed group. Read from the\n * structure rather than from the layout, so the answer is the same before the\n * stylesheet has loaded and in an environment with no layout at all.\n */\nfunction visible(element: HTMLElement, root: HTMLElement): boolean {\n for (\n let group = element.closest<HTMLElement>('[data-part=\"group\"]');\n group !== null && root.contains(group);\n group = group.parentElement?.closest<HTMLElement>('[data-part=\"group\"]') ?? null\n ) {\n if (!group.parentElement?.hasAttribute('data-expanded')) return false;\n }\n return true;\n}\n\n/**\n * A column of destinations: nested groups, a current destination, and a rail\n * when the room it has is under `compactAt` pixels.\n *\n * The directive goes on the consumer's own element — `<nav slSideNavigation>`\n * standing alone, `<div slSideNavigation>` inside `app-shell`'s nav region,\n * which is already the navigation landmark. `landmark` decides whether the\n * name is written; the element is the consumer's, as it is everywhere in this\n * ecosystem.\n *\n * **Three values, three models.** `value` is the current destination and\n * `expanded` the set of open groups; `flyout` is the one group shown beside the\n * rail, transient by design, and it never writes into `expanded`.\n *\n * **The rail is a width.** The stylesheet decides the picture from the root's\n * own inline size, before any script; the width gate here writes\n * `data-compact` afterwards, and that is what turns on the tooltip and the\n * flyout.\n */\n@Component({\n selector: '[slSideNavigation]',\n standalone: true,\n exportAs: 'slSideNavigation',\n template: '<ng-content />',\n styleUrl: '../../../styles/src/side-navigation/side-navigation.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-ui': 'side-navigation',\n 'data-ui-side-navigation': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-mode]': 'resolvedMode()',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-truncate]': 'resolvedTruncate()',\n '[attr.data-guides]': \"resolvedGuides() ? '' : null\",\n '[attr.data-compact]': \"compact() ? '' : null\",\n '(keydown)': 'onKeyDown($event)',\n },\n})\nexport class SlSideNavigation {\n /** The current destination's value. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n /** The set of open groups. */\n readonly expanded = model<readonly string[]>([]);\n /** The one group presented beside the rail, or null. */\n readonly flyout = model<string | null>(null);\n\n readonly size = input<SideNavigationSize | undefined>(undefined);\n readonly mode = input<SideNavigationMode | undefined>(undefined);\n readonly truncate = input<SideNavigationTruncate | undefined>(undefined);\n readonly multiple = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly autoExpand = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n readonly guides = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /**\n * Whether the root is the navigation landmark. Unstated, it is one on its\n * own and not inside `app-shell`'s nav region, which already is.\n */\n readonly landmark = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The width, in CSS pixels, under which `mode=\"auto\"` is compact. */\n readonly compactAt = input<number | undefined, number | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : numberAttribute(state)),\n });\n /**\n * Words laid over the catalog of the language in force: the landmark's name\n * (`navigation`). A static `aria-label` still wins.\n */\n readonly messages = input<PartialMessages<SideNavigationMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n readonly expandedChangeRequest = output<ChangeRequest<readonly string[]>>();\n readonly flyoutChangeRequest = output<ChangeRequest<string | null>>();\n\n private readonly defaults = injectSideNavigationDefaults();\n private readonly shell = inject(SlAppShellNav, { optional: true });\n /** The name the consumer wrote, kept over the family's own. */\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedMode = computed(() => this.mode() ?? this.defaults.mode);\n readonly resolvedTruncate = computed(() => this.truncate() ?? this.defaults.truncate);\n readonly resolvedMultiple = computed(() => this.multiple() ?? this.defaults.multiple);\n readonly resolvedAutoExpand = computed(() => this.autoExpand() ?? this.defaults.autoExpand);\n readonly resolvedGuides = computed(() => this.guides() ?? this.defaults.guides);\n readonly resolvedCompactAt = computed(() => this.compactAt() ?? this.defaults.compactAt);\n readonly resolvedLandmark = computed(\n () => this.landmark() ?? (this.shell === null ? this.defaults.landmark : false),\n );\n /** The family's words in the language in force, with this column's `messages` laid over them. */\n readonly t = injectMessages(sideNavigationMessages, this.messages);\n\n protected readonly ariaLabel = computed(() =>\n this.resolvedLandmark() ? (this.writtenLabel ?? this.t('navigation')) : null,\n );\n\n /** Whether the root is under `compactAt`, measured. */\n private readonly narrow = signal(false);\n readonly compact = computed(\n () => this.resolvedMode() === 'compact' || (this.resolvedMode() === 'auto' && this.narrow()),\n );\n\n /** Moves when the root was resized or the fonts arrived, so a label measures again. */\n readonly measureTick = signal(0);\n\n /** The layer the flyout is drawn in, so the keyboard can walk into it. */\n readonly flyoutNode = signal<HTMLElement | null>(null);\n\n /** Every item's parent, so the ancestors of a destination can be opened. */\n private readonly parents = new Map<string, string | null>();\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n\n /* After the first render and not in the constructor: a measure there\n forced a style pass before any binding existed — `compactAt` was still\n its default, and inside app-shell the column resolved at rail width and\n then animated open. */\n afterNextRender(() => {\n if (typeof ResizeObserver === 'undefined') return;\n const gate = createWidthGate(this.host, {\n at: this.resolvedCompactAt(),\n onChange: (narrow) => this.narrow.set(narrow),\n });\n this.narrow.set(gate.narrow());\n destroyRef.onDestroy(() => gate.destroy());\n\n const observer = new ResizeObserver(() => this.measureTick.update((tick) => tick + 1));\n observer.observe(this.host);\n destroyRef.onDestroy(() => observer.disconnect());\n void this.host.ownerDocument.fonts?.ready.then(() =>\n this.measureTick.update((tick) => tick + 1),\n );\n });\n\n /* Compact mode ending takes the flyout with it: there is no rail to stand beside. */\n effect(() => {\n if (!this.compact() && this.flyout() !== null) this.setFlyout(null, 'resize');\n });\n\n /* The ancestors of the current destination open, with the reason select. */\n effect(() => {\n const current = this.value();\n if (!this.resolvedAutoExpand() || current === null) return;\n const open = this.expanded();\n const missing: string[] = [];\n for (\n let parent = this.parents.get(current) ?? null;\n parent !== null;\n parent = this.parents.get(parent) ?? null\n ) {\n if (!open.includes(parent)) missing.push(parent);\n }\n if (missing.length === 0) return;\n const next = this.resolvedMultiple()\n ? [...open, ...missing]\n : [missing[missing.length - 1] as string];\n this.requestExpanded(next, 'select');\n });\n }\n\n isExpanded(value: string): boolean {\n return this.expanded().includes(value);\n }\n\n /** An item says where it stands. */\n registerItem(value: string, parent: string | null): () => void {\n this.parents.set(value, parent);\n return () => {\n this.parents.delete(value);\n };\n }\n\n private requestExpanded(\n next: readonly string[],\n reason: SideNavigationExpandedReason,\n source?: Event,\n ) {\n const state = createControllable<readonly string[]>({\n equals: sameOpenValues,\n initial: this.expanded(),\n onRequest: (request) => this.expandedChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.expanded.set(next);\n }\n\n /** Asks the set of open groups to include or drop one value. */\n toggleExpanded(\n value: string,\n next: boolean,\n reason: SideNavigationExpandedReason,\n source?: Event,\n ) {\n const current = this.expanded();\n if (current.includes(value) === next) return;\n this.requestExpanded(\n nextOpenValues(current, value, { multiple: this.resolvedMultiple() }),\n reason,\n source,\n );\n }\n\n /** Asks the flyout to show one group, or none. */\n setFlyout(next: string | null, reason: SideNavigationFlyoutReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.flyout(),\n onRequest: (request) => this.flyoutChangeRequest.emit(request),\n });\n if (state.request(next, reason, source)) this.flyout.set(next);\n }\n\n /** Asks the current destination to move. */\n select(next: string, reason: SideNavigationValueReason, 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 /** Opens one group, with the reason `programmatic`. */\n expand(value: string) {\n this.toggleExpanded(value, true, 'programmatic');\n }\n\n /** Closes one group, with the reason `programmatic`. */\n collapse(value: string) {\n this.toggleExpanded(value, false, 'programmatic');\n }\n\n /** Focuses the first link or trigger in the column. */\n focus() {\n this.rows()[0]?.focus();\n }\n\n /** The rows the arrow keys walk, with the flyout's spliced in after its trigger. */\n rows(): HTMLElement[] {\n const inColumn = [\n ...this.host.querySelectorAll<HTMLElement>(SIDE_NAVIGATION_ROW_SELECTOR),\n ].filter((row) => visible(row, this.host));\n const layer = this.flyoutNode();\n const open = this.flyout();\n if (layer === null || open === null) return inColumn;\n const inLayer = [...layer.querySelectorAll<HTMLElement>(SIDE_NAVIGATION_ROW_SELECTOR)];\n const at = inColumn.findIndex(\n (row) => row.closest('[data-part=\"item\"]')?.getAttribute('data-value') === open,\n );\n if (at === -1) return [...inColumn, ...inLayer];\n return [...inColumn.slice(0, at + 1), ...inLayer, ...inColumn.slice(at + 1)];\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n if (!target.matches(SIDE_NAVIGATION_ROW_SELECTOR)) return;\n\n if (event.key === 'Escape') {\n /* Inside the layer, the dismissable layer has already answered. */\n if (this.flyoutNode()?.contains(target)) return;\n const group = target.closest<HTMLElement>('[data-part=\"group\"]');\n const item = group?.parentElement;\n const value = item?.getAttribute('data-value');\n if (!group || !item || !value || !item.hasAttribute('data-expanded')) return;\n event.preventDefault();\n this.toggleExpanded(value, false, 'escape', event);\n item.querySelector<HTMLElement>(':scope > [data-part=\"trigger\"]')?.focus();\n return;\n }\n\n const step =\n event.key === 'ArrowDown' || event.key === 'ArrowRight'\n ? 1\n : event.key === 'ArrowUp' || event.key === 'ArrowLeft'\n ? -1\n : 0;\n if (step === 0 && event.key !== 'Home' && event.key !== 'End') return;\n\n const all = this.rows();\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","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport type { DismissableLayerHandle } from '@slotted/core/dismissable-layer';\nimport { createPortalRoot } from '@slotted/core/portal';\nimport type { PortalRootHandle } from '@slotted/core/portal';\nimport { createPositioner } from '@slotted/core/positioner';\nimport type { PositionerHandle } from '@slotted/core/positioner';\nimport { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { truncateMiddle } from '@slotted/core/text';\nimport { SlSkeleton } from '@slotted/angular/skeleton';\nimport {\n provideTooltipDefaults,\n SlTooltip,\n SlTooltipContent,\n SlTooltipLayer,\n} from '@slotted/angular/tooltip';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { Signal } from '@angular/core';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\n\nimport { SlSideNavigation } from './side-navigation';\nimport { SlSideNavigationIdFactory } from './side-navigation-defaults';\nimport type { SideNavigationFlyoutReason } from './side-navigation-defaults';\n\n/** A click synthesised by the keyboard reports no detail; a real one reports the count. */\nfunction activationReason(event: MouseEvent) {\n return event.detail === 0 ? ('keyboard' as const) : ('pointer' as const);\n}\n\n/* ── Section, its title, and a list ─────────────────────────────────────── */\n\n/** A titled run of destinations. Several may stand under one root. */\n@Directive({\n selector: '[slSideNavigationSection]',\n standalone: true,\n host: { 'data-part': 'section', 'data-part-section': '' },\n})\nexport class SlSideNavigationSection {}\n\n/** The section's title. In compact mode it becomes a rule. */\n@Directive({\n selector: '[slSideNavigationSectionLabel]',\n standalone: true,\n host: { 'data-part': 'section-label', 'data-part-section-label': '' },\n})\nexport class SlSideNavigationSectionLabel {}\n\n/** The items of one level: the top level, or a section's. */\n@Directive({\n selector: 'ul[slSideNavigationList]',\n standalone: true,\n host: { 'data-part': 'list', 'data-part-list': '' },\n})\nexport class SlSideNavigationList {}\n\n/* ── The item ───────────────────────────────────────────────────────────── */\n\n/**\n * A row: a link, a trigger, or both, with optional actions and a group.\n *\n * It carries the states the stylesheet reads. `data-current` is on it while\n * its own link is the destination, and while a descendant is and the group is\n * closed or the column is a rail — the reader sees where they are when the\n * destination itself is out of sight.\n */\n@Directive({\n selector: 'li[slSideNavigationItem]',\n standalone: true,\n exportAs: 'slSideNavigationItem',\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n '[attr.data-value]': 'value()',\n '[attr.data-current]': \"marked() ? '' : null\",\n '[attr.data-expanded]': \"expanded() ? '' : null\",\n '[attr.data-open]': \"flyoutOpen() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() ? '' : null\",\n },\n})\nexport class SlSideNavigationItem {\n /** The item's identity: what `value`, `expanded` and `flyout` name it by. */\n readonly value = input.required<string>();\n /** The row and everything in it refuse interaction. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly navigation = inject(SlSideNavigation);\n /** The item above, or nothing at the top level. */\n readonly parent = inject(SlSideNavigationItem, { optional: true, skipSelf: true });\n private readonly generated = inject(SlSideNavigationIdFactory).next();\n\n readonly ids = {\n groupId: `${this.generated}-group`,\n labelId: `${this.generated}-label`,\n triggerId: `${this.generated}-trigger`,\n };\n\n readonly hasLink = signal(false);\n readonly hasGroup = signal(false);\n /** Whether the label was measured as clipped, which is what opens the tooltip. */\n readonly clipped = signal(false);\n /** The label's whole text, for the tooltip and for `aria-label` under a middle cut. */\n readonly labelText = signal('');\n readonly descriptionText = signal('');\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly descendants = signal<readonly string[]>([]);\n\n readonly expanded = computed(() => this.navigation.isExpanded(this.value()));\n readonly flyoutOpen = computed(\n () => this.navigation.compact() && this.navigation.flyout() === this.value(),\n );\n /** Whether the current destination is this item's own link. */\n readonly current = computed(() => this.hasLink() && this.navigation.value() === this.value());\n /** Whether the current destination is somewhere under this item. */\n readonly holdsCurrent = computed(() => this.descendants().length > 0);\n readonly resolvedDisabled: Signal<boolean> = computed(\n () => this.disabled() || (this.parent?.resolvedDisabled() ?? false),\n );\n protected readonly marked = computed(\n () =>\n this.current() || (this.holdsCurrent() && (!this.expanded() || this.navigation.compact())),\n );\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n let release: (() => void) | null = null;\n effect(() => {\n release?.();\n release = this.navigation.registerItem(this.value(), this.parent?.value() ?? null);\n });\n destroyRef.onDestroy(() => release?.());\n\n /* Where the reader is, said upward: own link, or anything under it. */\n const parent = this.parent;\n if (parent !== null) {\n effect(() => parent.reportCurrent(this.value(), this.current() || this.holdsCurrent()));\n destroyRef.onDestroy(() => parent.reportCurrent(this.value(), false));\n }\n }\n\n /** A descendant says whether it holds the current destination. */\n reportCurrent(descendant: string, isCurrent: boolean) {\n this.descendants.update((known) => {\n const has = known.includes(descendant);\n if (isCurrent === has) return known;\n return isCurrent ? [...known, descendant] : known.filter((item) => item !== descendant);\n });\n }\n}\n\n/* ── The row's hint ─────────────────────────────────────────────────────── */\n\n/**\n * What a link and a trigger share: the tooltip a row opens when it cannot\n * show its own words. `SlTooltip` is a host directive holding the state and\n * the delays; the row dispatches the pointer and the focus to it only while a\n * hint is due, because the family — not the consumer's template — decides\n * when a row is a trigger. The layer is stamped under `@if`, so an idle row\n * mounts nothing.\n */\n@Directive()\nabstract class SideNavigationRow {\n readonly item = inject(SlSideNavigationItem);\n readonly navigation = inject(SlSideNavigation);\n protected readonly tooltip = inject(SlTooltip);\n protected readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n abstract readonly hint: () => boolean;\n\n constructor() {\n this.tooltip.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.tooltip.triggerNode.set(null));\n }\n\n protected readonly describedBy = computed(() =>\n this.hint() && this.tooltip.isOpen() ? this.tooltip.contentId : null,\n );\n\n protected onPointerEnter(event: PointerEvent) {\n if (!this.hint() || event.pointerType === 'touch') return;\n this.tooltip.openAfterDelay(event);\n }\n\n protected onPointerLeave(event: PointerEvent) {\n if (!this.hint()) return;\n this.tooltip.closeAfterDelay(event);\n }\n\n protected onPointerDown(event: PointerEvent) {\n if (!this.hint()) return;\n if (event.pointerType === 'touch') this.tooltip.pressAndHold(event);\n else if (this.tooltip.isOpen()) this.tooltip.toggle(false, 'pointer', event);\n }\n\n protected onPointerUp() {\n this.tooltip.cancelPending();\n }\n\n protected onFocus(event: FocusEvent) {\n if (!this.hint() || !this.native.matches(':focus-visible')) return;\n this.tooltip.toggle(true, 'keyboard', event);\n }\n\n protected onBlur(event: FocusEvent) {\n if (this.tooltip.isOpen()) this.tooltip.toggle(false, 'blur', event);\n }\n}\n\nconst HINT_TEMPLATE = `<ng-content />\n@if (hint()) {\n <ng-template slTooltipLayer>\n <div slTooltipContent>\n {{ item.labelText() }}\n @if (item.descriptionText()) {\n <br />\n {{ item.descriptionText() }}\n }\n </div>\n </ng-template>\n}`;\n\nconst HINT_HOST = {\n '[attr.aria-describedby]': 'describedBy()',\n '(pointerenter)': 'onPointerEnter($event)',\n '(pointerleave)': 'onPointerLeave($event)',\n '(pointerdown)': 'onPointerDown($event)',\n '(pointerup)': 'onPointerUp()',\n '(pointercancel)': 'onPointerUp()',\n '(focus)': 'onFocus($event)',\n '(blur)': 'onBlur($event)',\n};\n\n/* ── The link ───────────────────────────────────────────────────────────── */\n\n/**\n * The destination, or a command. On an `a` with an `href` it is a destination\n * and takes `aria-current`; on a `button` it is a command in the column with\n * the same row. `routerLink` and `routerLinkActive` live on the same element,\n * and an `aria-current` the router wrote is read and kept.\n */\n@Component({\n selector: 'a[slSideNavigationLink], button[slSideNavigationLink]',\n standalone: true,\n exportAs: 'slSideNavigationLink',\n imports: [SlTooltipLayer, SlTooltipContent],\n template: HINT_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlTooltip],\n providers: [\n provideTooltipDefaults({ describes: 'description', openOn: 'hover', side: 'inline-end' }),\n ],\n host: {\n ...HINT_HOST,\n 'data-part': 'link',\n 'data-part-link': '',\n '[attr.aria-current]': \"resolvedCurrent() ? 'page' : null\",\n '[attr.aria-disabled]': \"item.resolvedDisabled() ? 'true' : null\",\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-current]': \"resolvedCurrent() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlSideNavigationLink extends SideNavigationRow {\n /**\n * Whether this is the current destination, stated on the row itself. It\n * wins over the root's `value`; unstated, an `aria-current` the router wrote\n * on the element is read instead.\n */\n readonly current = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n\n private readonly isDestination = this.native.tagName === 'A';\n private readonly writtenCurrent = inject(new HostAttributeToken('aria-current'), {\n optional: true,\n });\n\n readonly resolvedCurrent = computed(() => {\n const stated = this.current();\n if (stated !== undefined) return stated;\n if (this.writtenCurrent !== null) return this.writtenCurrent !== 'false';\n return this.isDestination && this.navigation.value() === this.item.value();\n });\n\n readonly hint = computed(() => this.navigation.compact() || this.item.clipped());\n\n protected readonly ariaLabel = computed(() =>\n this.navigation.resolvedTruncate() === 'middle' && this.item.clipped()\n ? this.item.labelText()\n : null,\n );\n\n constructor() {\n super();\n this.item.hasLink.set(true);\n inject(DestroyRef).onDestroy(() => this.item.hasLink.set(false));\n }\n\n protected onClick(event: Event) {\n if (this.item.resolvedDisabled()) {\n event.preventDefault();\n return;\n }\n if (event.defaultPrevented) return;\n const reason = activationReason(event as MouseEvent);\n if (this.isDestination) this.navigation.select(this.item.value(), reason, event);\n if (this.navigation.compact() && this.navigation.flyout() !== null) {\n this.navigation.setFlyout(null, 'select', event);\n }\n }\n}\n\n/* ── The trigger ────────────────────────────────────────────────────────── */\n\n/**\n * The disclosure button of the group. Alone, it is the whole row and carries\n * the label; beside a link it is a mark-only button named by the row's label\n * through `aria-labelledby`. In the rail, a trigger without a link opens the\n * flyout instead of the inline group.\n */\n@Component({\n selector: 'button[slSideNavigationTrigger]',\n standalone: true,\n exportAs: 'slSideNavigationTrigger',\n imports: [SlGlyph, SlIcon, SlTooltipLayer, SlTooltipContent],\n template: `<ng-content />\n <span data-part=\"indicator\" data-part-indicator=\"\" aria-hidden=\"true\"\n ><span slIcon directional><svg slGlyph name=\"chevron-right\"></svg></span\n ></span>\n @if (hint()) {\n <ng-template slTooltipLayer>\n <div slTooltipContent>{{ item.labelText() }}</div>\n </ng-template>\n }`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlTooltip],\n providers: [\n provideTooltipDefaults({ describes: 'description', openOn: 'hover', side: 'inline-end' }),\n ],\n host: {\n ...HINT_HOST,\n 'data-part': 'trigger',\n 'data-part-trigger': '',\n type: 'button',\n '[attr.id]': 'item.ids.triggerId',\n '[attr.aria-controls]': 'item.ids.groupId',\n '[attr.aria-expanded]': 'item.flyoutOpen() || item.expanded()',\n '[attr.aria-labelledby]': 'item.hasLink() ? item.ids.labelId : null',\n '[disabled]': 'item.resolvedDisabled()',\n '(click)': 'onClick($event)',\n },\n})\nexport class SlSideNavigationTrigger extends SideNavigationRow {\n readonly hint = computed(\n () => !this.item.hasLink() && (this.navigation.compact() || this.item.clipped()),\n );\n\n constructor() {\n super();\n this.item.triggerNode.set(this.native);\n inject(DestroyRef).onDestroy(() => this.item.triggerNode.set(null));\n }\n\n protected onClick(event: Event) {\n if (event.defaultPrevented) return;\n const reason = activationReason(event as MouseEvent);\n if (this.navigation.compact() && !this.item.hasLink()) {\n this.navigation.setFlyout(this.item.flyoutOpen() ? null : this.item.value(), reason, event);\n return;\n }\n this.navigation.toggleExpanded(this.item.value(), !this.item.expanded(), reason, event);\n }\n}\n\n/* ── The parts of a row ─────────────────────────────────────────────────── */\n\n/** The box the mark stands in. What is left of a row in the rail. */\n@Directive({\n selector: '[slSideNavigationIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'data-part-icon': '', 'aria-hidden': 'true' },\n})\nexport class SlSideNavigationIcon {}\n\n/**\n * The row's text. It registers its words with the item, for the tooltip and\n * for the accessible name under a middle cut, and measures itself whenever\n * the column was resized: a label that overflows its box marks the row\n * clipped, which is what opens the tooltip on a row that fits nothing.\n */\n@Directive({\n selector: '[slSideNavigationLabel]',\n standalone: true,\n host: { 'data-part': 'label', 'data-part-label': '', '[attr.id]': 'item.ids.labelId' },\n})\nexport class SlSideNavigationLabel {\n protected readonly item = inject(SlSideNavigationItem);\n private readonly navigation = inject(SlSideNavigation);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n /** The words as the consumer wrote them, kept while a middle cut is shown. */\n private whole: string | null = null;\n\n constructor() {\n afterNextRender(() => {\n this.whole = this.native.textContent ?? '';\n this.item.labelText.set(this.whole);\n this.measure();\n });\n effect(() => {\n this.navigation.measureTick();\n this.navigation.compact();\n this.navigation.resolvedTruncate();\n if (this.whole !== null) this.measure();\n });\n }\n\n private measure() {\n const whole = this.whole ?? '';\n const truncate = this.navigation.resolvedTruncate();\n if (truncate === 'none' || this.navigation.compact()) {\n if (this.native.textContent !== whole) this.native.textContent = whole;\n this.item.clipped.set(this.navigation.compact());\n return;\n }\n if (truncate === 'middle') {\n const style = getComputedStyle(this.native);\n const canvas = this.native.ownerDocument.createElement('canvas').getContext('2d');\n const room = this.native.clientWidth;\n if (canvas === null || room === 0) return;\n /* The parts rather than the shorthand: Firefox reports the shorthand empty. */\n canvas.font = `${style.fontStyle} ${style.fontWeight} ${style.fontSize} ${style.fontFamily}`;\n const cut = truncateMiddle(whole, (candidate) => canvas.measureText(candidate).width <= room);\n if (this.native.textContent !== cut) this.native.textContent = cut;\n this.item.clipped.set(cut !== whole);\n return;\n }\n if (this.native.textContent !== whole) this.native.textContent = whole;\n this.item.clipped.set(this.native.scrollWidth > this.native.clientWidth + 1);\n }\n}\n\n/** The second line under the title. */\n@Directive({\n selector: '[slSideNavigationDescription]',\n standalone: true,\n host: { 'data-part': 'description', 'data-part-description': '' },\n})\nexport class SlSideNavigationDescription {\n private readonly item = inject(SlSideNavigationItem);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n constructor() {\n afterNextRender(() => this.item.descriptionText.set(this.native.textContent ?? ''));\n }\n}\n\n/** A quantity beside a destination, drawn as tabular figures. Never cut. */\n@Directive({\n selector: '[slSideNavigationCount]',\n standalone: true,\n host: { 'data-part': 'count', 'data-part-count': '' },\n})\nexport class SlSideNavigationCount {}\n\n/** The suffix with a tone: a badge, a key. */\n@Directive({\n selector: '[slSideNavigationEnd]',\n standalone: true,\n host: { 'data-part': 'end', 'data-part-end': '' },\n})\nexport class SlSideNavigationEnd {}\n\n/** Controls beside the row, outside its `a` or `button`. */\n@Directive({\n selector: '[slSideNavigationActions]',\n standalone: true,\n host: { 'data-part': 'actions', 'data-part-actions': '' },\n})\nexport class SlSideNavigationActions {}\n\n/** A rule between items that keeps the list a list. */\n@Directive({\n selector: 'li[slSideNavigationDivider]',\n standalone: true,\n host: { 'data-part': 'divider', 'data-part-divider': '', role: 'separator' },\n})\nexport class SlSideNavigationDivider {}\n\n/** A row still arriving: an item's geometry with `skeleton` boxes in it. */\n@Component({\n selector: 'li[slSideNavigationSkeleton]',\n standalone: true,\n imports: [SlSkeleton],\n template: `<span data-part=\"icon\" data-part-icon=\"\"\n ><span slSkeleton shape=\"square\" size=\"xs\"></span\n ></span>\n <span data-part=\"label\" data-part-label=\"\"\n ><span slSkeleton shape=\"text\" [inlineSize]=\"labelSize()\"></span\n ></span>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'skeleton', 'data-part-skeleton': '', 'aria-hidden': 'true' },\n})\nexport class SlSideNavigationSkeleton {\n /** How wide the label's bar is drawn, as any CSS length. */\n readonly labelSize = input('60%');\n}\n\n/* ── The group, inline or in the flyout ─────────────────────────────────── */\n\n/**\n * An item's children. Inline, it is the second track of the item's grid and\n * opens with it. In the rail the same `ul` is moved into a layer beside the\n * trigger — composed from `portal`, `positioner`, `presence` and\n * `dismissable-layer`, the four modules every overlay in the library takes —\n * and moved back when the layer has left, which is what the CDK's\n * `DomPortalOutlet` does with a template's nodes.\n */\n@Directive({\n selector: 'ul[slSideNavigationGroup]',\n standalone: true,\n exportAs: 'slSideNavigationGroup',\n host: {\n 'data-part': 'group',\n 'data-part-group': '',\n '[attr.id]': 'item.ids.groupId',\n '[attr.aria-labelledby]': 'item.ids.labelId',\n },\n})\nexport class SlSideNavigationGroup {\n protected readonly item = inject(SlSideNavigationItem);\n private readonly navigation = inject(SlSideNavigation);\n private readonly native: HTMLElement = inject(ElementRef).nativeElement;\n\n private layer: HTMLElement | null = null;\n private home: { parent: Node; next: Node | null } | null = null;\n private portal: PortalRootHandle | null = null;\n private positioner: PositionerHandle | null = null;\n private dismissable: DismissableLayerHandle | null = null;\n private readonly status = signal<PresenceStatus>('unmounted');\n private readonly presence = createPresence({\n present: false,\n onStatusChange: (next) => this.status.set(next),\n });\n\n constructor() {\n this.item.hasGroup.set(true);\n effect(() => this.presence.sync(this.item.flyoutOpen()));\n effect(() => (this.status() === 'unmounted' ? this.teardown() : this.build()));\n effect(() => this.stack());\n inject(DestroyRef).onDestroy(() => {\n this.item.hasGroup.set(false);\n this.presence.destroy();\n this.teardown();\n });\n }\n\n private build() {\n if (this.layer !== null) return;\n const anchor = this.item.triggerNode();\n const document = this.native.ownerDocument;\n const layer = document.createElement('div');\n writeSelectorKey(layer, 'ui', 'side-navigation');\n writeSelectorKey(layer, 'part', 'flyout');\n layer.setAttribute('data-size', this.navigation.resolvedSize());\n layer.setAttribute('data-truncate', this.navigation.resolvedTruncate());\n if (this.navigation.resolvedGuides()) layer.setAttribute('data-guides', '');\n layer.addEventListener('focusout', this.onFocusOut);\n\n this.home = { parent: this.native.parentNode as Node, next: this.native.nextSibling };\n layer.appendChild(this.native);\n\n const portal = createPortalRoot({ origin: anchor });\n (portal.container ?? this.home.parent).appendChild(layer);\n\n this.portal = portal;\n this.layer = layer;\n this.presence.setNode(layer);\n this.navigation.flyoutNode.set(layer);\n\n if (anchor !== null) {\n this.positioner = createPositioner(anchor, layer, {\n align: 'start',\n flip: true,\n shift: true,\n side: 'inline-end',\n sideOffset: 0,\n strategy: 'fixed',\n });\n void this.positioner.update().then(() => {\n if (this.layer === layer && this.item.flyoutOpen()) layer.setAttribute('data-open', '');\n });\n }\n }\n\n /** The layer joins the single stack only while it is open; the trigger is a branch. */\n private stack() {\n const open = this.item.flyoutOpen();\n const layer = this.layer;\n this.dismissable?.destroy();\n this.dismissable = null;\n if (layer === null || !open) {\n layer?.removeAttribute('data-open');\n return;\n }\n const anchor = this.item.triggerNode();\n this.dismissable = createDismissableLayer(layer, {\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n ...(anchor ? { branches: [anchor] } : {}),\n onDismiss: (request) => {\n const reason: SideNavigationFlyoutReason =\n request.reason === 'escape' ? 'escape' : 'outsidePress';\n this.navigation.setFlyout(null, reason, request.source);\n if (reason === 'escape') anchor?.focus();\n },\n });\n }\n\n private readonly onFocusOut = (event: FocusEvent) => {\n const next = event.relatedTarget as Node | null;\n const layer = this.layer;\n if (next === null || layer === null || !this.item.flyoutOpen()) return;\n if (layer.contains(next) || this.item.triggerNode()?.contains(next)) return;\n this.navigation.setFlyout(null, 'blur', event);\n };\n\n private teardown() {\n const layer = this.layer;\n if (layer === null) return;\n this.dismissable?.destroy();\n this.dismissable = null;\n this.positioner?.destroy();\n this.positioner = null;\n layer.removeEventListener('focusout', this.onFocusOut);\n if (this.home !== null) this.home.parent.insertBefore(this.native, this.home.next);\n this.home = null;\n this.presence.setNode(null);\n layer.remove();\n this.portal?.release();\n this.portal = null;\n this.layer = null;\n if (this.navigation.flyoutNode() === layer) this.navigation.flyoutNode.set(null);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|