@slotted/angular 0.1.0-beta.1 → 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-navigation-menu.mjs","sources":["../../navigation-menu/src/navigation-menu-defaults.ts","../../navigation-menu/src/navigation-menu.ts","../../navigation-menu/src/navigation-menu-parts.ts","../../navigation-menu/src/slotted-angular-navigation-menu.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The control step of a trigger and of a top-level link. */\nexport type NavigationMenuSize = 'sm' | 'md' | 'lg';\n\n/** A row under which panels open, or a column beside which they open. */\nexport type NavigationMenuOrientation = 'horizontal' | 'vertical';\n\n/** How many columns of links or groups a panel lays out. */\nexport type NavigationMenuColumns = 1 | 2 | 3;\n\n/** Why the open section moved. */\nexport type NavigationMenuValueReason =\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'blur' | 'select' | 'programmatic';\n\nexport interface NavigationMenuDefaults {\n /** Draws the mark on the surface's edge that points at the open trigger. */\n arrow: boolean;\n /** Milliseconds a pointer leaving the root waits before the section closes. */\n closeDelay: number;\n /** A link inside a panel closes the panel when it is followed. */\n closeOnSelect: boolean;\n /** Milliseconds a pointer rests on a trigger before its section opens. */\n openDelay: number;\n size: NavigationMenuSize;\n}\n\n/** The contract's defaults. */\nexport const NAVIGATION_MENU_FALLBACK: NavigationMenuDefaults = {\n arrow: false,\n closeDelay: 300,\n closeOnSelect: true,\n openDelay: 200,\n size: 'md',\n};\n\nexport const NAVIGATION_MENU_DEFAULTS = new InjectionToken<NavigationMenuDefaults>(\n 'slotted navigation-menu defaults',\n { providedIn: 'root', factory: () => NAVIGATION_MENU_FALLBACK },\n);\n\n/**\n * An application decides once how its navigation menus behave — the hover\n * delays, whether following a link closes the panel, the size, the arrow —\n * rather than on every instance. An instance that states any of them still\n * wins. Its words come from the language in force (`provideSlotted`).\n */\nexport function provideNavigationMenuDefaults(defaults: Partial<NavigationMenuDefaults>) {\n return {\n provide: NAVIGATION_MENU_DEFAULTS,\n useFactory: (): NavigationMenuDefaults => ({ ...NAVIGATION_MENU_FALLBACK, ...defaults }),\n };\n}\n\n/** What a navigation menu renders as here, before it states anything of its own. */\nexport function injectNavigationMenuDefaults(): NavigationMenuDefaults {\n return inject(NAVIGATION_MENU_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 SlNavigationMenuIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-navigation-menu-${this.count}`;\n }\n}\n","import { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport {\n navigationMenuMessages,\n type NavigationMenuMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport {\n createHoverIntent,\n focusTarget,\n measureViewport,\n motionBetween,\n writeGeometry,\n} from '@slotted/core/navigation-menu';\nimport type { NavigationMenuMotion } from '@slotted/core/navigation-menu';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n Directive,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectNavigationMenuDefaults } from './navigation-menu-defaults';\nimport type {\n NavigationMenuOrientation,\n NavigationMenuSize,\n NavigationMenuValueReason,\n} from './navigation-menu-defaults';\n\nexport type {\n NavigationMenuColumns,\n NavigationMenuDefaults,\n NavigationMenuOrientation,\n NavigationMenuSize,\n NavigationMenuValueReason,\n} from './navigation-menu-defaults';\n\nfunction toggle(element: HTMLElement, name: string, on: boolean) {\n if (on) element.setAttribute(name, '');\n else element.removeAttribute(name);\n}\n\n/**\n * What a section is to the parts inside it: the item of this family, or the\n * item of another family that carries a section — `top-navigation`'s — which\n * provides the same token.\n */\nexport interface NavigationMenuSection {\n readonly contentId: string;\n value(): string;\n open(): boolean;\n disabled(): boolean;\n hasCurrent(): boolean;\n reportCurrent(link: object, current: boolean): void;\n}\n\nexport const NAVIGATION_MENU_SECTION = new InjectionToken<NavigationMenuSection>(\n 'slotted navigation-menu section',\n);\n\n/** Provided by a panel, so a root inside one knows it is a second level. */\nexport const NAVIGATION_MENU_PANEL = new InjectionToken<boolean>('slotted navigation-menu panel');\n\n/** The gap the surface keeps from the window's edges when it is moved to fit. */\nconst GUTTER = 8;\n\nconst SECTION = ':scope > [data-part=\"list\"] > [data-part=\"item\"]';\n\nfunction optionalBoolean(state: boolean | string | undefined) {\n return state === undefined ? undefined : booleanAttribute(state);\n}\n\nfunction optionalNumber(state: number | string | undefined) {\n return state === undefined ? undefined : numberAttribute(state);\n}\n\nexport interface NavigationMenuCrossing {\n from: string | null;\n to: string | null;\n enter: NavigationMenuMotion | null;\n exit: NavigationMenuMotion | null;\n}\n\n/**\n * The sections of a site or an application, each a button that shows a panel\n * of links under the row — or beside the column — with direct links beside\n * them.\n *\n * The directive goes on the consumer's own element: `<nav slNavigationMenu>`\n * on its own, `<div slNavigationMenu>` inside another one's panel, where it is\n * a second level — vertical, with no surface of its own, switching inside the\n * outer panel. It is a directive rather than a component so that another\n * family can carry it on its own part — `top-navigation`'s nav does, as a host\n * directive — and it appends the one surface after the consumer's list\n * itself. The stylesheet comes with the list and the trigger, the two parts\n * every menu has.\n *\n * **One value.** `value` is the open section, two-way; every way it moves\n * asks through `valueChangeRequest` with its reason.\n *\n * **The panel stays in its item.** Each panel follows its trigger in the\n * DOM, which is the disclosure example's structure and what lets Tab reach\n * it. The root writes the open panel's measured size and place on itself\n * (`@slotted/core/navigation-menu`); the stylesheet lays the panel over the\n * surface and moves both on one interpolation.\n */\n@Directive({\n selector: '[slNavigationMenu]',\n standalone: true,\n exportAs: 'slNavigationMenu',\n host: {\n 'data-ui': 'navigation-menu',\n 'data-part': 'root',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-nested]': \"nested ? '' : null\",\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-size]': 'resolvedSize()',\n '(focusout)': 'onFocusOut($event)',\n '(keydown)': 'onKeyDown($event)',\n '(pointerenter)': 'intent.stay()',\n '(pointerleave)': 'onPointerLeave($event)',\n },\n})\nexport class SlNavigationMenu {\n /** The open section's value, or null. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n\n readonly size = input<NavigationMenuSize | undefined>(undefined);\n /** A row or a column. Unstated, a second level is a column and a first level a row. */\n readonly orientation = input<NavigationMenuOrientation | undefined>(undefined);\n /** Draws the mark on the surface's edge that points at the open trigger. */\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Milliseconds a pointer rests on a trigger before its section opens. */\n readonly openDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n /** Milliseconds a pointer leaving the root waits before the section closes. */\n readonly closeDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n /** A link inside a panel closes the panel when it is followed. A link's own input wins. */\n readonly closeOnSelect = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Words laid over the catalog of the language in force. A static `aria-label` still wins. */\n readonly messages = input<PartialMessages<NavigationMenuMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n\n private readonly defaults = injectNavigationMenuDefaults();\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n readonly outer = inject(SlNavigationMenu, { optional: true, skipSelf: true });\n readonly nested =\n this.outer !== null && inject(NAVIGATION_MENU_PANEL, { optional: true }) === true;\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedOrientation = computed<NavigationMenuOrientation>(\n () => this.orientation() ?? (this.nested ? 'vertical' : 'horizontal'),\n );\n readonly resolvedArrow = computed(() => this.arrow() ?? this.defaults.arrow);\n readonly resolvedOpenDelay = computed(() => this.openDelay() ?? this.defaults.openDelay);\n readonly resolvedCloseDelay = computed(() => this.closeDelay() ?? this.defaults.closeDelay);\n readonly resolvedCloseOnSelect = computed(\n () => this.closeOnSelect() ?? this.defaults.closeOnSelect,\n );\n readonly t = injectMessages(navigationMenuMessages, this.messages);\n\n protected readonly ariaLabel = computed(() =>\n this.nested ? null : (this.writtenLabel ?? this.t('navigation')),\n );\n\n /** The crossing between the section that left and the one that arrived. */\n readonly motion = signal<NavigationMenuCrossing>({\n from: null,\n to: null,\n enter: null,\n exit: null,\n });\n readonly positioned = signal(false);\n /** Whether the open section stands in this root's list, where the surface can reach it. */\n readonly surfaced = signal(false);\n /** Each section's panel id, by value: a section another family moved out of the list keeps one. */\n private readonly panels = new Map<string, string>();\n private readonly tick = signal(0);\n private opened = false;\n\n /** The pointer: a delay to open, a switch without one, a delay to close. */\n protected readonly intent = createHoverIntent({\n openDelay: () => this.resolvedOpenDelay(),\n closeDelay: () => this.resolvedCloseDelay(),\n isOpen: () => this.value() !== null,\n open: (next) => this.request(next, 'pointer'),\n close: () => this.request(null, 'pointer'),\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => this.intent.destroy());\n\n let previous = this.value();\n effect(() => {\n const current = this.value();\n untracked(() => {\n if (current === previous) return;\n const order = [...this.host.querySelectorAll<HTMLElement>(SECTION)].map(\n (item) => item.getAttribute('data-value') ?? '',\n );\n this.motion.set({\n from: previous,\n to: current,\n ...motionBetween(order, previous, current),\n });\n previous = current;\n });\n });\n\n /* The surface, after the consumer's list. A second level has none. */\n if (!this.nested) {\n const document = this.host.ownerDocument;\n const viewport = document.createElement('div');\n viewport.setAttribute('data-part', 'viewport');\n const arrow = document.createElement('span');\n arrow.setAttribute('data-part', 'arrow');\n arrow.setAttribute('aria-hidden', 'true');\n afterNextRender(() => this.host.appendChild(viewport));\n effect(() => {\n toggle(viewport, 'data-open', this.value() !== null && this.surfaced());\n toggle(viewport, 'data-positioned', this.positioned());\n if (this.resolvedArrow()) viewport.appendChild(arrow);\n else arrow.remove();\n });\n destroyRef.onDestroy(() => viewport.remove());\n }\n\n afterRenderEffect(() => {\n this.value();\n this.tick();\n this.resolvedOrientation();\n untracked(() => this.measure());\n });\n\n /* Escape and a press outside the root close the open section. */\n effect((onCleanup) => {\n const open = this.value();\n if (open === null || this.nested) return;\n const away = untracked(() => this.openPanel());\n const layer = createDismissableLayer(this.host, {\n ...(away !== null && !this.host.contains(away) ? { branches: [away] } : {}),\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n onDismiss: (dismissal) => {\n const reason: NavigationMenuValueReason =\n dismissal.reason === 'escape' ? 'escape' : 'outsidePress';\n const trigger = this.host.querySelector<HTMLElement>(\n `${SECTION}[data-value=\"${CSS.escape(open)}\"] > [data-part=\"trigger\"]`,\n );\n this.request(null, reason, dismissal.source);\n if (reason === 'escape') trigger?.focus();\n },\n });\n onCleanup(() => layer.destroy());\n });\n\n /* A panel that grows, a window that narrows, fonts that arrive: measure again. */\n afterNextRender(() => {\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => this.remeasure());\n observer.observe(this.host);\n for (const content of this.host.querySelectorAll(`${SECTION} > [data-part=\"content\"]`)) {\n observer.observe(content);\n }\n const view = this.host.ownerDocument.defaultView;\n const onResize = () => this.remeasure();\n view?.addEventListener('resize', onResize);\n destroyRef.onDestroy(() => {\n observer.disconnect();\n view?.removeEventListener('resize', onResize);\n });\n });\n }\n\n /** A section says where its panel is, wherever another family moves it. */\n register(value: string, contentId: string): () => void {\n this.panels.set(value, contentId);\n return () => {\n if (this.panels.get(value) === contentId) this.panels.delete(value);\n };\n }\n\n /** The open section's panel, wherever it stands in the document. */\n openPanel(): HTMLElement | null {\n const open = this.value();\n const id = open === null ? undefined : this.panels.get(open);\n return id === undefined ? null : this.host.ownerDocument.getElementById(id);\n }\n\n /** Asks the open section to move. */\n request(next: string | null, reason: NavigationMenuValueReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.value(),\n onRequest: (change) => this.valueChangeRequest.emit(change),\n });\n if (state.request(next, reason, source)) this.value.set(next);\n }\n\n /** A panel link was followed: every level closes, with the reason `select`. */\n select(source?: Event) {\n if (this.nested && this.outer !== null) this.outer.select(source);\n else this.request(null, 'select', source);\n }\n\n /** The pointer entered a trigger. */\n hover(value: string, pointerType: string) {\n this.intent.enter(value, pointerType);\n }\n\n /** Measures the open panel again on the next render. */\n remeasure() {\n this.tick.update((value) => value + 1);\n }\n\n /** Opens one section, with the reason `programmatic`. */\n open(value: string) {\n this.request(value, 'programmatic');\n }\n\n /** Closes the open section, with the reason `programmatic`. */\n close() {\n this.request(null, 'programmatic');\n }\n\n /** Focuses one section's trigger, or the first top-level control. */\n focus(value?: string) {\n const selector =\n value === undefined\n ? `${SECTION} > :is([data-part=\"trigger\"], [data-part=\"link\"])`\n : `${SECTION}[data-value=\"${CSS.escape(value)}\"] > :is([data-part=\"trigger\"], [data-part=\"link\"])`;\n this.host.querySelector<HTMLElement>(selector)?.focus();\n }\n\n /** The surface, measured from the open panel and placed under (or beside) its trigger. */\n private measure() {\n const current = this.value();\n if (current === null) {\n this.opened = false;\n return;\n }\n const item = this.host.querySelector<HTMLElement>(\n `${SECTION}[data-value=\"${CSS.escape(current)}\"]`,\n );\n const trigger = item?.querySelector<HTMLElement>(':scope > [data-part=\"trigger\"]');\n const content = item?.querySelector<HTMLElement>(':scope > [data-part=\"content\"]');\n /* A section moved out of the list — folded into another family's panel —\n opens where it stands, and the surface stays away. */\n this.surfaced.set(Boolean(trigger && content));\n if (!trigger || !content || content.hidden) {\n if (!trigger || !content) this.opened = false;\n return;\n }\n const geometry = measureViewport(\n this.host,\n trigger,\n content,\n this.resolvedOrientation(),\n GUTTER,\n );\n if (this.nested) {\n const list = this.host.querySelector<HTMLElement>(':scope > [data-part=\"list\"]');\n geometry.blockSize = Math.max(geometry.blockSize, list?.offsetHeight ?? 0);\n }\n /* A first open writes its numbers while nothing transitions, then lets\n the stylesheet's transition back in for the next change of section. */\n const first = !this.opened;\n if (first) this.host.style.setProperty('transition', 'none');\n writeGeometry(this.host, geometry);\n if (first) {\n void this.host.offsetWidth;\n this.host.style.removeProperty('transition');\n }\n this.opened = true;\n this.positioned.set(true);\n if (this.nested) this.outer?.remeasure();\n }\n\n protected onPointerLeave(event: PointerEvent) {\n if (!this.nested && event.pointerType !== 'touch') this.intent.leave();\n }\n\n protected onFocusOut(event: FocusEvent) {\n if (this.nested) return;\n const next = event.relatedTarget as Node | null;\n if (next !== null && (this.host.contains(next) || this.openPanel()?.contains(next))) return;\n if (this.value() !== null) this.request(null, 'blur', event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n const level = target.closest('[data-ui=\"navigation-menu\"]');\n const owner = target.closest('[data-part=\"content\"]')?.closest('[data-ui=\"navigation-menu\"]');\n if (level !== this.host && owner !== this.host) return;\n const next = focusTarget(this.host, target, event.key, {\n orientation: this.resolvedOrientation(),\n dir: getComputedStyle(this.host).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n if (next === null) return;\n event.preventDefault();\n next.focus();\n }\n}\n","import { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n forwardRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n NAVIGATION_MENU_PANEL,\n NAVIGATION_MENU_SECTION,\n SlNavigationMenu,\n} from './navigation-menu';\nimport type { NavigationMenuSection } from './navigation-menu';\nimport { SlNavigationMenuIdFactory } from './navigation-menu-defaults';\nimport type { NavigationMenuColumns } from './navigation-menu-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/**\n * The sections and the top-level links, in a row or a column. A component\n * for one reason: it brings the family's stylesheet, which the root — a\n * directive another family may carry — cannot.\n */\n@Component({\n selector: 'ul[slNavigationMenuList]',\n standalone: true,\n template: '<ng-content />',\n styleUrl: '../../../styles/src/navigation-menu/navigation-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'list' },\n})\nexport class SlNavigationMenuList {}\n\n/**\n * One section — a trigger followed by its panel — or one top-level link. It\n * carries `data-open` while its panel is shown, and knows whether a link\n * inside the panel is the current page.\n */\n@Directive({\n selector: 'li[slNavigationMenuItem]',\n standalone: true,\n exportAs: 'slNavigationMenuItem',\n providers: [\n { provide: NAVIGATION_MENU_SECTION, useExisting: forwardRef(() => SlNavigationMenuItem) },\n ],\n host: {\n 'data-part': 'item',\n '[attr.data-value]': 'value()',\n '[attr.data-open]': \"open() ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n },\n})\nexport class SlNavigationMenuItem implements NavigationMenuSection {\n /** The item's identity: what the root's `value` names it by. */\n readonly value = input.required<string>();\n /** The section or the top-level link refuses interaction. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly navigation = inject(SlNavigationMenu);\n readonly contentId = `${inject(SlNavigationMenuIdFactory).next()}-content`;\n readonly open = computed(() => this.navigation.value() === this.value());\n\n private readonly currents = signal<ReadonlySet<object>>(new Set());\n /** Whether a link inside this item's panel is the current page. */\n readonly hasCurrent = computed(() => this.currents().size > 0);\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n let release: (() => void) | null = null;\n effect(() => {\n release?.();\n release = this.navigation.register(this.value(), this.contentId);\n });\n destroyRef.onDestroy(() => release?.());\n\n /* A second level holding the current page marks the outer section too. */\n const outer = inject(NAVIGATION_MENU_SECTION, { optional: true, skipSelf: true });\n if (outer !== null) {\n effect(() => outer.reportCurrent(this, this.hasCurrent()));\n destroyRef.onDestroy(() => outer.reportCurrent(this, false));\n }\n }\n\n /** A link inside the panel says whether it is the current page. */\n reportCurrent(link: object, current: boolean) {\n this.currents.update((set) => {\n if (set.has(link) === current) return set;\n const next = new Set(set);\n if (current) next.add(link);\n else next.delete(link);\n return next;\n });\n }\n}\n\n/**\n * What makes a button a section's trigger: `aria-expanded` and\n * `aria-controls` toward its panel, `data-open` and `data-current`, a press\n * and a resting pointer. A host directive, so another family's trigger —\n * `top-navigation`'s — is wired by the same lines.\n */\n@Directive({\n selector: '[slNavigationMenuTriggerWiring]',\n standalone: true,\n host: {\n 'data-part': 'trigger',\n type: 'button',\n '[attr.aria-controls]': 'section.contentId',\n '[attr.aria-expanded]': 'section.open()',\n '[attr.data-open]': \"section.open() ? '' : null\",\n '[attr.data-current]': \"section.hasCurrent() ? '' : null\",\n '[attr.disabled]': \"section.disabled() ? '' : null\",\n '(click)': 'onClick($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n },\n})\nexport class SlNavigationMenuTriggerWiring {\n protected readonly section = inject(NAVIGATION_MENU_SECTION);\n private readonly navigation = inject(SlNavigationMenu);\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.section.disabled()) return;\n this.navigation.request(\n this.section.open() ? null : this.section.value(),\n activationReason(event),\n event,\n );\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (event.defaultPrevented || this.section.disabled()) return;\n /* A trigger another family moved out of the row — into an overflow panel —\n opens on a press, never on a resting pointer. */\n if (!this.navigation.host.contains(event.currentTarget as Node)) return;\n this.navigation.hover(this.section.value(), event.pointerType);\n }\n}\n\n/**\n * The section's button: always a native `button`, because it owns\n * `aria-expanded` and `aria-controls` and the family wires both. The chevron\n * is the family's own mark.\n */\n@Component({\n selector: 'button[slNavigationMenuTrigger]',\n standalone: true,\n exportAs: 'slNavigationMenuTrigger',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content />\n <span data-part=\"indicator\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"vertical()\"\n ><svg slGlyph [name]=\"vertical() ? 'chevron-right' : 'chevron-down'\"></svg></span\n ></span>`,\n styleUrl: '../../../styles/src/navigation-menu/navigation-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlNavigationMenuTriggerWiring],\n})\nexport class SlNavigationMenuTrigger {\n private readonly navigation = inject(SlNavigationMenu);\n protected readonly vertical = computed(\n () => this.navigation.resolvedOrientation() === 'vertical',\n );\n}\n\n/**\n * The section's panel, after its trigger in the same item. It stays in the\n * document while it leaves — `@slotted/core/presence` holds it for the exit —\n * and is `hidden` otherwise, so the tab sequence, a static render and a search\n * engine read every destination. It tells a root rendered inside it that it is\n * a second level.\n */\n@Directive({\n selector: '[slNavigationMenuContent]',\n standalone: true,\n exportAs: 'slNavigationMenuContent',\n providers: [{ provide: NAVIGATION_MENU_PANEL, useValue: true }],\n host: {\n 'data-part': 'content',\n '[attr.id]': 'item.contentId',\n '[attr.data-columns]': 'columns()',\n '[attr.data-open]': \"item.open() ? '' : null\",\n '[attr.data-motion]': 'crossing()',\n '[hidden]': '!item.open() && status() === \"unmounted\"',\n },\n})\nexport class SlNavigationMenuContent {\n /** How many columns of links or groups the panel lays out. */\n readonly columns = input<NavigationMenuColumns, NavigationMenuColumns | string>(1, {\n transform: (value) => Number(value) as NavigationMenuColumns,\n });\n\n protected readonly item = inject(NAVIGATION_MENU_SECTION);\n private readonly navigation = inject(SlNavigationMenu);\n protected readonly status = signal<PresenceStatus>('unmounted');\n\n protected readonly crossing = computed(() => {\n const motion = this.navigation.motion();\n const value = this.item.value();\n if (this.item.open()) return motion.to === value ? motion.enter : null;\n return this.status() === 'exiting' && motion.from === value ? motion.exit : null;\n });\n\n constructor() {\n const presence = createPresence({\n present: false,\n onStatusChange: (status) => this.status.set(status),\n });\n presence.setNode(inject(ElementRef).nativeElement);\n effect(() => presence.sync(this.item.open()));\n inject(DestroyRef).onDestroy(() => presence.destroy());\n }\n}\n\n/**\n * A destination, at the top level or inside a panel. `current` — or the\n * `aria-current` a router writes — marks the page the reader is on and tells\n * the section's trigger. Inside a panel, following it closes every level.\n */\n@Directive({\n selector: 'a[slNavigationMenuLink]',\n standalone: true,\n exportAs: 'slNavigationMenuLink',\n host: {\n 'data-part': 'link',\n '[attr.aria-current]': \"resolvedCurrent() ? 'page' : null\",\n '[attr.data-current]': \"resolvedCurrent() ? '' : null\",\n '[attr.aria-disabled]': \"disabled() ? 'true' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlNavigationMenuLink {\n /** This link is the page the reader is on. Unstated, a router's `aria-current` is read. */\n readonly current = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The destination is unavailable: the click is refused and the `href` kept. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Following this link closes the panel. Wins over the root's `closeOnSelect`. */\n readonly closeOnSelect = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n\n private readonly navigation = inject(SlNavigationMenu);\n private readonly item = inject(NAVIGATION_MENU_SECTION, { optional: true });\n private readonly inPanel = inject(NAVIGATION_MENU_PANEL, { optional: true }) === true;\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 return this.writtenCurrent !== null && this.writtenCurrent !== 'false';\n });\n\n constructor() {\n const item = this.item;\n if (this.inPanel && item !== null) {\n effect(() => item.reportCurrent(this, this.resolvedCurrent()));\n inject(DestroyRef).onDestroy(() => item.reportCurrent(this, false));\n }\n }\n\n protected onClick(event: MouseEvent) {\n if (this.disabled()) {\n event.preventDefault();\n return;\n }\n if (event.defaultPrevented || !this.inPanel) return;\n if (this.closeOnSelect() ?? this.navigation.resolvedCloseOnSelect()) {\n this.navigation.select(event);\n }\n }\n}\n\n/** A grid of links inside a panel or a group. */\n@Directive({\n selector: 'ul[slNavigationMenuLinks]',\n standalone: true,\n host: { 'data-part': 'links' },\n})\nexport class SlNavigationMenuLinks {}\n\n/** A column of a panel with a title that names the links under it. */\n@Directive({\n selector: '[slNavigationMenuGroup]',\n standalone: true,\n host: {\n 'data-part': 'group',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy ?? labelId',\n },\n})\nexport class SlNavigationMenuGroup {\n readonly labelId = `${inject(SlNavigationMenuIdFactory).next()}-group-label`;\n protected readonly labelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n}\n\n/** The group's title. */\n@Directive({\n selector: '[slNavigationMenuGroupLabel]',\n standalone: true,\n host: { 'data-part': 'group-label', '[attr.id]': 'id' },\n})\nexport class SlNavigationMenuGroupLabel {\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ??\n inject(SlNavigationMenuGroup, { optional: true })?.labelId ??\n null;\n}\n\n/** The panel's last row, under a rule: the consumer's call to action. */\n@Directive({\n selector: '[slNavigationMenuFooter]',\n standalone: true,\n host: { 'data-part': 'footer' },\n})\nexport class SlNavigationMenuFooter {}\n\n/** A rich link's mark, aligned to the text of its label. */\n@Directive({\n selector: '[slNavigationMenuIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'aria-hidden': 'true' },\n})\nexport class SlNavigationMenuIcon {}\n\n/** A rich link's title. */\n@Directive({\n selector: '[slNavigationMenuLabel]',\n standalone: true,\n host: { 'data-part': 'label' },\n})\nexport class SlNavigationMenuLabel {}\n\n/** A rich link's description: two lines to the eye, whole in the DOM. */\n@Directive({\n selector: '[slNavigationMenuDescription]',\n standalone: true,\n host: { 'data-part': 'description' },\n})\nexport class SlNavigationMenuDescription {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-navigation-menu.mjs","sources":["../../navigation-menu/src/navigation-menu-defaults.ts","../../navigation-menu/src/navigation-menu.ts","../../navigation-menu/src/navigation-menu-parts.ts","../../navigation-menu/src/slotted-angular-navigation-menu.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The control step of a trigger and of a top-level link. */\nexport type NavigationMenuSize = 'sm' | 'md' | 'lg';\n\n/** A row under which panels open, or a column beside which they open. */\nexport type NavigationMenuOrientation = 'horizontal' | 'vertical';\n\n/** How many columns of links or groups a panel lays out. */\nexport type NavigationMenuColumns = 1 | 2 | 3;\n\n/** Why the open section moved. */\nexport type NavigationMenuValueReason =\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'blur' | 'select' | 'programmatic';\n\nexport interface NavigationMenuDefaults {\n /** Draws the mark on the surface's edge that points at the open trigger. */\n arrow: boolean;\n /** Milliseconds a pointer leaving the root waits before the section closes. */\n closeDelay: number;\n /** A link inside a panel closes the panel when it is followed. */\n closeOnSelect: boolean;\n /** Milliseconds a pointer rests on a trigger before its section opens. */\n openDelay: number;\n size: NavigationMenuSize;\n}\n\n/** The contract's defaults. */\nexport const NAVIGATION_MENU_FALLBACK: NavigationMenuDefaults = {\n arrow: false,\n closeDelay: 300,\n closeOnSelect: true,\n openDelay: 200,\n size: 'md',\n};\n\nexport const NAVIGATION_MENU_DEFAULTS = new InjectionToken<NavigationMenuDefaults>(\n 'slotted navigation-menu defaults',\n { providedIn: 'root', factory: () => NAVIGATION_MENU_FALLBACK },\n);\n\n/**\n * An application decides once how its navigation menus behave — the hover\n * delays, whether following a link closes the panel, the size, the arrow —\n * rather than on every instance. An instance that states any of them still\n * wins. Its words come from the language in force (`provideSlotted`).\n */\nexport function provideNavigationMenuDefaults(defaults: Partial<NavigationMenuDefaults>) {\n return {\n provide: NAVIGATION_MENU_DEFAULTS,\n useFactory: (): NavigationMenuDefaults => ({ ...NAVIGATION_MENU_FALLBACK, ...defaults }),\n };\n}\n\n/** What a navigation menu renders as here, before it states anything of its own. */\nexport function injectNavigationMenuDefaults(): NavigationMenuDefaults {\n return inject(NAVIGATION_MENU_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 SlNavigationMenuIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-navigation-menu-${this.count}`;\n }\n}\n","import { writeSelectorKey } from '@slotted/core/selector-key';\nimport { createDismissableLayer } from '@slotted/core/dismissable-layer';\nimport {\n navigationMenuMessages,\n type NavigationMenuMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport {\n createHoverIntent,\n focusTarget,\n measureViewport,\n motionBetween,\n writeGeometry,\n} from '@slotted/core/navigation-menu';\nimport type { NavigationMenuMotion } from '@slotted/core/navigation-menu';\nimport { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport {\n afterNextRender,\n afterRenderEffect,\n booleanAttribute,\n Directive,\n computed,\n DestroyRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n input,\n model,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectNavigationMenuDefaults } from './navigation-menu-defaults';\nimport type {\n NavigationMenuOrientation,\n NavigationMenuSize,\n NavigationMenuValueReason,\n} from './navigation-menu-defaults';\n\nexport type {\n NavigationMenuColumns,\n NavigationMenuDefaults,\n NavigationMenuOrientation,\n NavigationMenuSize,\n NavigationMenuValueReason,\n} from './navigation-menu-defaults';\n\nfunction toggle(element: HTMLElement, name: string, on: boolean) {\n if (on) element.setAttribute(name, '');\n else element.removeAttribute(name);\n}\n\n/**\n * What a section is to the parts inside it: the item of this family, or the\n * item of another family that carries a section — `top-navigation`'s — which\n * provides the same token.\n */\nexport interface NavigationMenuSection {\n readonly contentId: string;\n value(): string;\n open(): boolean;\n disabled(): boolean;\n hasCurrent(): boolean;\n reportCurrent(link: object, current: boolean): void;\n}\n\nexport const NAVIGATION_MENU_SECTION = new InjectionToken<NavigationMenuSection>(\n 'slotted navigation-menu section',\n);\n\n/** Provided by a panel, so a root inside one knows it is a second level. */\nexport const NAVIGATION_MENU_PANEL = new InjectionToken<boolean>('slotted navigation-menu panel');\n\n/** The gap the surface keeps from the window's edges when it is moved to fit. */\nconst GUTTER = 8;\n\nconst SECTION = ':scope > [data-part=\"list\"] > [data-part=\"item\"]';\n\nfunction optionalBoolean(state: boolean | string | undefined) {\n return state === undefined ? undefined : booleanAttribute(state);\n}\n\nfunction optionalNumber(state: number | string | undefined) {\n return state === undefined ? undefined : numberAttribute(state);\n}\n\nexport interface NavigationMenuCrossing {\n from: string | null;\n to: string | null;\n enter: NavigationMenuMotion | null;\n exit: NavigationMenuMotion | null;\n}\n\n/**\n * The sections of a site or an application, each a button that shows a panel\n * of links under the row — or beside the column — with direct links beside\n * them.\n *\n * The directive goes on the consumer's own element: `<nav slNavigationMenu>`\n * on its own, `<div slNavigationMenu>` inside another one's panel, where it is\n * a second level — vertical, with no surface of its own, switching inside the\n * outer panel. It is a directive rather than a component so that another\n * family can carry it on its own part — `top-navigation`'s nav does, as a host\n * directive — and it appends the one surface after the consumer's list\n * itself. The stylesheet comes with the list and the trigger, the two parts\n * every menu has.\n *\n * **One value.** `value` is the open section, two-way; every way it moves\n * asks through `valueChangeRequest` with its reason.\n *\n * **The panel stays in its item.** Each panel follows its trigger in the\n * DOM, which is the disclosure example's structure and what lets Tab reach\n * it. The root writes the open panel's measured size and place on itself\n * (`@slotted/core/navigation-menu`); the stylesheet lays the panel over the\n * surface and moves both on one interpolation.\n */\n@Directive({\n selector: '[slNavigationMenu]',\n standalone: true,\n exportAs: 'slNavigationMenu',\n host: {\n 'data-ui': 'navigation-menu',\n 'data-ui-navigation-menu': '',\n 'data-part': 'root',\n 'data-part-root': '',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.data-nested]': \"nested ? '' : null\",\n '[attr.data-orientation]': 'resolvedOrientation()',\n '[attr.data-size]': 'resolvedSize()',\n '(focusout)': 'onFocusOut($event)',\n '(keydown)': 'onKeyDown($event)',\n '(pointerenter)': 'intent.stay()',\n '(pointerleave)': 'onPointerLeave($event)',\n },\n})\nexport class SlNavigationMenu {\n /** The open section's value, or null. Two-way, so a template may bind it directly. */\n readonly value = model<string | null>(null);\n\n readonly size = input<NavigationMenuSize | undefined>(undefined);\n /** A row or a column. Unstated, a second level is a column and a first level a row. */\n readonly orientation = input<NavigationMenuOrientation | undefined>(undefined);\n /** Draws the mark on the surface's edge that points at the open trigger. */\n readonly arrow = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Milliseconds a pointer rests on a trigger before its section opens. */\n readonly openDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n /** Milliseconds a pointer leaving the root waits before the section closes. */\n readonly closeDelay = input<number | undefined, number | string | undefined>(undefined, {\n transform: optionalNumber,\n });\n /** A link inside a panel closes the panel when it is followed. A link's own input wins. */\n readonly closeOnSelect = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: optionalBoolean,\n });\n /** Words laid over the catalog of the language in force. A static `aria-label` still wins. */\n readonly messages = input<PartialMessages<NavigationMenuMessages> | undefined>(undefined);\n\n /** One output for one transition, carrying the reason and the event. */\n readonly valueChangeRequest = output<ChangeRequest<string | null>>();\n\n private readonly defaults = injectNavigationMenuDefaults();\n private readonly writtenLabel = inject(new HostAttributeToken('aria-label'), { optional: true });\n readonly outer = inject(SlNavigationMenu, { optional: true, skipSelf: true });\n readonly nested =\n this.outer !== null && inject(NAVIGATION_MENU_PANEL, { optional: true }) === true;\n readonly host: HTMLElement = inject(ElementRef).nativeElement;\n\n readonly resolvedSize = computed(() => this.size() ?? this.defaults.size);\n readonly resolvedOrientation = computed<NavigationMenuOrientation>(\n () => this.orientation() ?? (this.nested ? 'vertical' : 'horizontal'),\n );\n readonly resolvedArrow = computed(() => this.arrow() ?? this.defaults.arrow);\n readonly resolvedOpenDelay = computed(() => this.openDelay() ?? this.defaults.openDelay);\n readonly resolvedCloseDelay = computed(() => this.closeDelay() ?? this.defaults.closeDelay);\n readonly resolvedCloseOnSelect = computed(\n () => this.closeOnSelect() ?? this.defaults.closeOnSelect,\n );\n readonly t = injectMessages(navigationMenuMessages, this.messages);\n\n protected readonly ariaLabel = computed(() =>\n this.nested ? null : (this.writtenLabel ?? this.t('navigation')),\n );\n\n /** The crossing between the section that left and the one that arrived. */\n readonly motion = signal<NavigationMenuCrossing>({\n from: null,\n to: null,\n enter: null,\n exit: null,\n });\n readonly positioned = signal(false);\n /** Whether the open section stands in this root's list, where the surface can reach it. */\n readonly surfaced = signal(false);\n /** Each section's panel id, by value: a section another family moved out of the list keeps one. */\n private readonly panels = new Map<string, string>();\n private readonly tick = signal(0);\n private opened = false;\n\n /** The pointer: a delay to open, a switch without one, a delay to close. */\n protected readonly intent = createHoverIntent({\n openDelay: () => this.resolvedOpenDelay(),\n closeDelay: () => this.resolvedCloseDelay(),\n isOpen: () => this.value() !== null,\n open: (next) => this.request(next, 'pointer'),\n close: () => this.request(null, 'pointer'),\n });\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n destroyRef.onDestroy(() => this.intent.destroy());\n\n let previous = this.value();\n effect(() => {\n const current = this.value();\n untracked(() => {\n if (current === previous) return;\n const order = [...this.host.querySelectorAll<HTMLElement>(SECTION)].map(\n (item) => item.getAttribute('data-value') ?? '',\n );\n this.motion.set({\n from: previous,\n to: current,\n ...motionBetween(order, previous, current),\n });\n previous = current;\n });\n });\n\n /* The surface, after the consumer's list. A second level has none. */\n if (!this.nested) {\n const document = this.host.ownerDocument;\n const viewport = document.createElement('div');\n writeSelectorKey(viewport, 'part', 'viewport');\n const arrow = document.createElement('span');\n writeSelectorKey(arrow, 'part', 'arrow');\n arrow.setAttribute('aria-hidden', 'true');\n afterNextRender(() => this.host.appendChild(viewport));\n effect(() => {\n toggle(viewport, 'data-open', this.value() !== null && this.surfaced());\n toggle(viewport, 'data-positioned', this.positioned());\n if (this.resolvedArrow()) viewport.appendChild(arrow);\n else arrow.remove();\n });\n destroyRef.onDestroy(() => viewport.remove());\n }\n\n afterRenderEffect(() => {\n this.value();\n this.tick();\n this.resolvedOrientation();\n untracked(() => this.measure());\n });\n\n /* Escape and a press outside the root close the open section. */\n effect((onCleanup) => {\n const open = this.value();\n if (open === null || this.nested) return;\n const away = untracked(() => this.openPanel());\n const layer = createDismissableLayer(this.host, {\n ...(away !== null && !this.host.contains(away) ? { branches: [away] } : {}),\n escape: true,\n focusOutside: false,\n modal: false,\n outsidePress: true,\n scrollLock: false,\n onDismiss: (dismissal) => {\n const reason: NavigationMenuValueReason =\n dismissal.reason === 'escape' ? 'escape' : 'outsidePress';\n const trigger = this.host.querySelector<HTMLElement>(\n `${SECTION}[data-value=\"${CSS.escape(open)}\"] > [data-part=\"trigger\"]`,\n );\n this.request(null, reason, dismissal.source);\n if (reason === 'escape') trigger?.focus();\n },\n });\n onCleanup(() => layer.destroy());\n });\n\n /* A panel that grows, a window that narrows, fonts that arrive: measure again. */\n afterNextRender(() => {\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(() => this.remeasure());\n observer.observe(this.host);\n for (const content of this.host.querySelectorAll(`${SECTION} > [data-part=\"content\"]`)) {\n observer.observe(content);\n }\n const view = this.host.ownerDocument.defaultView;\n const onResize = () => this.remeasure();\n view?.addEventListener('resize', onResize);\n destroyRef.onDestroy(() => {\n observer.disconnect();\n view?.removeEventListener('resize', onResize);\n });\n });\n }\n\n /** A section says where its panel is, wherever another family moves it. */\n register(value: string, contentId: string): () => void {\n this.panels.set(value, contentId);\n return () => {\n if (this.panels.get(value) === contentId) this.panels.delete(value);\n };\n }\n\n /** The open section's panel, wherever it stands in the document. */\n openPanel(): HTMLElement | null {\n const open = this.value();\n const id = open === null ? undefined : this.panels.get(open);\n return id === undefined ? null : this.host.ownerDocument.getElementById(id);\n }\n\n /** Asks the open section to move. */\n request(next: string | null, reason: NavigationMenuValueReason, source?: Event) {\n const state = createControllable<string | null>({\n initial: this.value(),\n onRequest: (change) => this.valueChangeRequest.emit(change),\n });\n if (state.request(next, reason, source)) this.value.set(next);\n }\n\n /** A panel link was followed: every level closes, with the reason `select`. */\n select(source?: Event) {\n if (this.nested && this.outer !== null) this.outer.select(source);\n else this.request(null, 'select', source);\n }\n\n /** The pointer entered a trigger. */\n hover(value: string, pointerType: string) {\n this.intent.enter(value, pointerType);\n }\n\n /** Measures the open panel again on the next render. */\n remeasure() {\n this.tick.update((value) => value + 1);\n }\n\n /** Opens one section, with the reason `programmatic`. */\n open(value: string) {\n this.request(value, 'programmatic');\n }\n\n /** Closes the open section, with the reason `programmatic`. */\n close() {\n this.request(null, 'programmatic');\n }\n\n /** Focuses one section's trigger, or the first top-level control. */\n focus(value?: string) {\n const selector =\n value === undefined\n ? `${SECTION} > :is([data-part=\"trigger\"], [data-part=\"link\"])`\n : `${SECTION}[data-value=\"${CSS.escape(value)}\"] > :is([data-part=\"trigger\"], [data-part=\"link\"])`;\n this.host.querySelector<HTMLElement>(selector)?.focus();\n }\n\n /** The surface, measured from the open panel and placed under (or beside) its trigger. */\n private measure() {\n const current = this.value();\n if (current === null) {\n this.opened = false;\n return;\n }\n const item = this.host.querySelector<HTMLElement>(\n `${SECTION}[data-value=\"${CSS.escape(current)}\"]`,\n );\n const trigger = item?.querySelector<HTMLElement>(':scope > [data-part=\"trigger\"]');\n const content = item?.querySelector<HTMLElement>(':scope > [data-part=\"content\"]');\n /* A section moved out of the list — folded into another family's panel —\n opens where it stands, and the surface stays away. */\n this.surfaced.set(Boolean(trigger && content));\n if (!trigger || !content || content.hidden) {\n if (!trigger || !content) this.opened = false;\n return;\n }\n const geometry = measureViewport(\n this.host,\n trigger,\n content,\n this.resolvedOrientation(),\n GUTTER,\n );\n if (this.nested) {\n const list = this.host.querySelector<HTMLElement>(':scope > [data-part=\"list\"]');\n geometry.blockSize = Math.max(geometry.blockSize, list?.offsetHeight ?? 0);\n }\n /* A first open writes its numbers while nothing transitions, then lets\n the stylesheet's transition back in for the next change of section. */\n const first = !this.opened;\n if (first) this.host.style.setProperty('transition', 'none');\n writeGeometry(this.host, geometry);\n if (first) {\n void this.host.offsetWidth;\n this.host.style.removeProperty('transition');\n }\n this.opened = true;\n this.positioned.set(true);\n if (this.nested) this.outer?.remeasure();\n }\n\n protected onPointerLeave(event: PointerEvent) {\n if (!this.nested && event.pointerType !== 'touch') this.intent.leave();\n }\n\n protected onFocusOut(event: FocusEvent) {\n if (this.nested) return;\n const next = event.relatedTarget as Node | null;\n if (next !== null && (this.host.contains(next) || this.openPanel()?.contains(next))) return;\n if (this.value() !== null) this.request(null, 'blur', event);\n }\n\n protected onKeyDown(event: KeyboardEvent) {\n if (event.defaultPrevented) return;\n const target = event.target as HTMLElement;\n const level = target.closest('[data-ui=\"navigation-menu\"]');\n const owner = target.closest('[data-part=\"content\"]')?.closest('[data-ui=\"navigation-menu\"]');\n if (level !== this.host && owner !== this.host) return;\n const next = focusTarget(this.host, target, event.key, {\n orientation: this.resolvedOrientation(),\n dir: getComputedStyle(this.host).direction === 'rtl' ? 'rtl' : 'ltr',\n });\n if (next === null) return;\n event.preventDefault();\n next.focus();\n }\n}\n","import { createPresence } from '@slotted/core/presence';\nimport type { PresenceStatus } from '@slotted/core/presence';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n forwardRef,\n effect,\n ElementRef,\n HostAttributeToken,\n inject,\n input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n NAVIGATION_MENU_PANEL,\n NAVIGATION_MENU_SECTION,\n SlNavigationMenu,\n} from './navigation-menu';\nimport type { NavigationMenuSection } from './navigation-menu';\nimport { SlNavigationMenuIdFactory } from './navigation-menu-defaults';\nimport type { NavigationMenuColumns } from './navigation-menu-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/**\n * The sections and the top-level links, in a row or a column. A component\n * for one reason: it brings the family's stylesheet, which the root — a\n * directive another family may carry — cannot.\n */\n@Component({\n selector: 'ul[slNavigationMenuList]',\n standalone: true,\n template: '<ng-content />',\n styleUrl: '../../../styles/src/navigation-menu/navigation-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { 'data-part': 'list', 'data-part-list': '' },\n})\nexport class SlNavigationMenuList {}\n\n/**\n * One section — a trigger followed by its panel — or one top-level link. It\n * carries `data-open` while its panel is shown, and knows whether a link\n * inside the panel is the current page.\n */\n@Directive({\n selector: 'li[slNavigationMenuItem]',\n standalone: true,\n exportAs: 'slNavigationMenuItem',\n providers: [\n { provide: NAVIGATION_MENU_SECTION, useExisting: forwardRef(() => SlNavigationMenuItem) },\n ],\n host: {\n 'data-part': 'item',\n 'data-part-item': '',\n '[attr.data-value]': 'value()',\n '[attr.data-open]': \"open() ? '' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n },\n})\nexport class SlNavigationMenuItem implements NavigationMenuSection {\n /** The item's identity: what the root's `value` names it by. */\n readonly value = input.required<string>();\n /** The section or the top-level link refuses interaction. */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n readonly navigation = inject(SlNavigationMenu);\n readonly contentId = `${inject(SlNavigationMenuIdFactory).next()}-content`;\n readonly open = computed(() => this.navigation.value() === this.value());\n\n private readonly currents = signal<ReadonlySet<object>>(new Set());\n /** Whether a link inside this item's panel is the current page. */\n readonly hasCurrent = computed(() => this.currents().size > 0);\n\n constructor() {\n const destroyRef = inject(DestroyRef);\n let release: (() => void) | null = null;\n effect(() => {\n release?.();\n release = this.navigation.register(this.value(), this.contentId);\n });\n destroyRef.onDestroy(() => release?.());\n\n /* A second level holding the current page marks the outer section too. */\n const outer = inject(NAVIGATION_MENU_SECTION, { optional: true, skipSelf: true });\n if (outer !== null) {\n effect(() => outer.reportCurrent(this, this.hasCurrent()));\n destroyRef.onDestroy(() => outer.reportCurrent(this, false));\n }\n }\n\n /** A link inside the panel says whether it is the current page. */\n reportCurrent(link: object, current: boolean) {\n this.currents.update((set) => {\n if (set.has(link) === current) return set;\n const next = new Set(set);\n if (current) next.add(link);\n else next.delete(link);\n return next;\n });\n }\n}\n\n/**\n * What makes a button a section's trigger: `aria-expanded` and\n * `aria-controls` toward its panel, `data-open` and `data-current`, a press\n * and a resting pointer. A host directive, so another family's trigger —\n * `top-navigation`'s — is wired by the same lines.\n */\n@Directive({\n selector: '[slNavigationMenuTriggerWiring]',\n standalone: true,\n host: {\n 'data-part': 'trigger',\n 'data-part-trigger': '',\n type: 'button',\n '[attr.aria-controls]': 'section.contentId',\n '[attr.aria-expanded]': 'section.open()',\n '[attr.data-open]': \"section.open() ? '' : null\",\n '[attr.data-current]': \"section.hasCurrent() ? '' : null\",\n '[attr.disabled]': \"section.disabled() ? '' : null\",\n '(click)': 'onClick($event)',\n '(pointerenter)': 'onPointerEnter($event)',\n },\n})\nexport class SlNavigationMenuTriggerWiring {\n protected readonly section = inject(NAVIGATION_MENU_SECTION);\n private readonly navigation = inject(SlNavigationMenu);\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented || this.section.disabled()) return;\n this.navigation.request(\n this.section.open() ? null : this.section.value(),\n activationReason(event),\n event,\n );\n }\n\n protected onPointerEnter(event: PointerEvent) {\n if (event.defaultPrevented || this.section.disabled()) return;\n /* A trigger another family moved out of the row — into an overflow panel —\n opens on a press, never on a resting pointer. */\n if (!this.navigation.host.contains(event.currentTarget as Node)) return;\n this.navigation.hover(this.section.value(), event.pointerType);\n }\n}\n\n/**\n * The section's button: always a native `button`, because it owns\n * `aria-expanded` and `aria-controls` and the family wires both. The chevron\n * is the family's own mark.\n */\n@Component({\n selector: 'button[slNavigationMenuTrigger]',\n standalone: true,\n exportAs: 'slNavigationMenuTrigger',\n imports: [SlGlyph, SlIcon],\n template: `<ng-content />\n <span data-part=\"indicator\" data-part-indicator=\"\" aria-hidden=\"true\"\n ><span slIcon [directional]=\"vertical()\"\n ><svg slGlyph [name]=\"vertical() ? 'chevron-right' : 'chevron-down'\"></svg></span\n ></span>`,\n styleUrl: '../../../styles/src/navigation-menu/navigation-menu.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [SlNavigationMenuTriggerWiring],\n})\nexport class SlNavigationMenuTrigger {\n private readonly navigation = inject(SlNavigationMenu);\n protected readonly vertical = computed(\n () => this.navigation.resolvedOrientation() === 'vertical',\n );\n}\n\n/**\n * The section's panel, after its trigger in the same item. It stays in the\n * document while it leaves — `@slotted/core/presence` holds it for the exit —\n * and is `hidden` otherwise, so the tab sequence, a static render and a search\n * engine read every destination. It tells a root rendered inside it that it is\n * a second level.\n */\n@Directive({\n selector: '[slNavigationMenuContent]',\n standalone: true,\n exportAs: 'slNavigationMenuContent',\n providers: [{ provide: NAVIGATION_MENU_PANEL, useValue: true }],\n host: {\n 'data-part': 'content',\n 'data-part-content': '',\n '[attr.id]': 'item.contentId',\n '[attr.data-columns]': 'columns()',\n '[attr.data-open]': \"item.open() ? '' : null\",\n '[attr.data-motion]': 'crossing()',\n '[hidden]': '!item.open() && status() === \"unmounted\"',\n },\n})\nexport class SlNavigationMenuContent {\n /** How many columns of links or groups the panel lays out. */\n readonly columns = input<NavigationMenuColumns, NavigationMenuColumns | string>(1, {\n transform: (value) => Number(value) as NavigationMenuColumns,\n });\n\n protected readonly item = inject(NAVIGATION_MENU_SECTION);\n private readonly navigation = inject(SlNavigationMenu);\n protected readonly status = signal<PresenceStatus>('unmounted');\n\n protected readonly crossing = computed(() => {\n const motion = this.navigation.motion();\n const value = this.item.value();\n if (this.item.open()) return motion.to === value ? motion.enter : null;\n return this.status() === 'exiting' && motion.from === value ? motion.exit : null;\n });\n\n constructor() {\n const presence = createPresence({\n present: false,\n onStatusChange: (status) => this.status.set(status),\n });\n presence.setNode(inject(ElementRef).nativeElement);\n effect(() => presence.sync(this.item.open()));\n inject(DestroyRef).onDestroy(() => presence.destroy());\n }\n}\n\n/**\n * A destination, at the top level or inside a panel. `current` — or the\n * `aria-current` a router writes — marks the page the reader is on and tells\n * the section's trigger. Inside a panel, following it closes every level.\n */\n@Directive({\n selector: 'a[slNavigationMenuLink]',\n standalone: true,\n exportAs: 'slNavigationMenuLink',\n host: {\n 'data-part': 'link',\n 'data-part-link': '',\n '[attr.aria-current]': \"resolvedCurrent() ? 'page' : null\",\n '[attr.data-current]': \"resolvedCurrent() ? '' : null\",\n '[attr.aria-disabled]': \"disabled() ? 'true' : null\",\n '[attr.data-disabled]': \"disabled() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlNavigationMenuLink {\n /** This link is the page the reader is on. Unstated, a router's `aria-current` is read. */\n readonly current = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n /** The destination is unavailable: the click is refused and the `href` kept. */\n readonly disabled = input(false, { transform: booleanAttribute });\n /** Following this link closes the panel. Wins over the root's `closeOnSelect`. */\n readonly closeOnSelect = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (state) => (state === undefined ? undefined : booleanAttribute(state)),\n });\n\n private readonly navigation = inject(SlNavigationMenu);\n private readonly item = inject(NAVIGATION_MENU_SECTION, { optional: true });\n private readonly inPanel = inject(NAVIGATION_MENU_PANEL, { optional: true }) === true;\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 return this.writtenCurrent !== null && this.writtenCurrent !== 'false';\n });\n\n constructor() {\n const item = this.item;\n if (this.inPanel && item !== null) {\n effect(() => item.reportCurrent(this, this.resolvedCurrent()));\n inject(DestroyRef).onDestroy(() => item.reportCurrent(this, false));\n }\n }\n\n protected onClick(event: MouseEvent) {\n if (this.disabled()) {\n event.preventDefault();\n return;\n }\n if (event.defaultPrevented || !this.inPanel) return;\n if (this.closeOnSelect() ?? this.navigation.resolvedCloseOnSelect()) {\n this.navigation.select(event);\n }\n }\n}\n\n/** A grid of links inside a panel or a group. */\n@Directive({\n selector: 'ul[slNavigationMenuLinks]',\n standalone: true,\n host: { 'data-part': 'links', 'data-part-links': '' },\n})\nexport class SlNavigationMenuLinks {}\n\n/** A column of a panel with a title that names the links under it. */\n@Directive({\n selector: '[slNavigationMenuGroup]',\n standalone: true,\n host: {\n 'data-part': 'group',\n 'data-part-group': '',\n role: 'group',\n '[attr.aria-labelledby]': 'labelledBy ?? labelId',\n },\n})\nexport class SlNavigationMenuGroup {\n readonly labelId = `${inject(SlNavigationMenuIdFactory).next()}-group-label`;\n protected readonly labelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n}\n\n/** The group's title. */\n@Directive({\n selector: '[slNavigationMenuGroupLabel]',\n standalone: true,\n host: { 'data-part': 'group-label', 'data-part-group-label': '', '[attr.id]': 'id' },\n})\nexport class SlNavigationMenuGroupLabel {\n protected readonly id =\n inject(new HostAttributeToken('id'), { optional: true }) ??\n inject(SlNavigationMenuGroup, { optional: true })?.labelId ??\n null;\n}\n\n/** The panel's last row, under a rule: the consumer's call to action. */\n@Directive({\n selector: '[slNavigationMenuFooter]',\n standalone: true,\n host: { 'data-part': 'footer', 'data-part-footer': '' },\n})\nexport class SlNavigationMenuFooter {}\n\n/** A rich link's mark, aligned to the text of its label. */\n@Directive({\n selector: '[slNavigationMenuIcon]',\n standalone: true,\n host: { 'data-part': 'icon', 'data-part-icon': '', 'aria-hidden': 'true' },\n})\nexport class SlNavigationMenuIcon {}\n\n/** A rich link's title. */\n@Directive({\n selector: '[slNavigationMenuLabel]',\n standalone: true,\n host: { 'data-part': 'label', 'data-part-label': '' },\n})\nexport class SlNavigationMenuLabel {}\n\n/** A rich link's description: two lines to the eye, whole in the DOM. */\n@Directive({\n selector: '[slNavigationMenuDescription]',\n standalone: true,\n host: { 'data-part': 'description', 'data-part-description': '' },\n})\nexport class SlNavigationMenuDescription {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|