@slotted/angular 0.1.0-beta.0 → 0.1.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/docs/AGENTS.snippet.md +12 -0
- package/docs/alert.json +7 -1
- package/docs/alert.md +3 -3
- package/docs/app-shell.examples.md +1 -1
- package/docs/app-shell.json +5 -5
- package/docs/app-shell.md +2 -2
- package/docs/avatar.json +22 -1
- package/docs/avatar.md +5 -3
- package/docs/badge.json +7 -1
- package/docs/badge.md +3 -3
- package/docs/button-group.json +2 -0
- package/docs/button-group.md +1 -1
- package/docs/button.json +51 -11
- package/docs/button.md +10 -6
- package/docs/calendar.json +8 -1
- package/docs/calendar.md +1 -0
- package/docs/cascader.json +1 -0
- package/docs/cascader.md +1 -1
- package/docs/chart.examples.md +1 -1
- package/docs/chart.json +10 -1
- package/docs/chart.md +3 -2
- package/docs/checkbox.json +7 -0
- package/docs/checkbox.md +1 -0
- package/docs/code-block.json +92 -92
- package/docs/code-block.md +69 -69
- package/docs/combobox.json +1 -0
- package/docs/combobox.md +1 -1
- package/docs/currency-field.json +40 -1
- package/docs/currency-field.md +5 -1
- package/docs/data-grid.examples.md +2 -2
- package/docs/data-grid.json +24 -7
- package/docs/data-grid.md +1 -1
- package/docs/data-grid.props.md +6 -4
- package/docs/data-list.json +2 -1
- package/docs/data-list.md +1 -1
- package/docs/date-field.json +9 -1
- package/docs/date-field.md +3 -2
- package/docs/date-picker.examples.md +36 -0
- package/docs/date-picker.json +20 -5
- package/docs/date-picker.md +5 -4
- package/docs/datetime-field.json +1 -0
- package/docs/datetime-field.md +1 -1
- package/docs/dialog.examples.md +158 -136
- package/docs/dialog.json +35 -11
- package/docs/dialog.md +4 -2
- package/docs/dialog.props.md +1 -1
- package/docs/drawer.json +5 -0
- package/docs/drawer.md +1 -0
- package/docs/entity-picker.json +19 -4
- package/docs/entity-picker.md +8 -6
- package/docs/event-calendar.json +7 -0
- package/docs/event-calendar.md +1 -0
- package/docs/filter-bar.json +118 -118
- package/docs/filter-bar.md +79 -79
- package/docs/form.json +2 -1
- package/docs/form.md +1 -1
- package/docs/guidelines/README.md +27 -0
- package/docs/guidelines/async-feedback.md +129 -0
- package/docs/guidelines/browsing.md +74 -0
- package/docs/guidelines/builders.md +97 -0
- package/docs/guidelines/composition.md +143 -0
- package/docs/guidelines/conversations.md +59 -0
- package/docs/guidelines/errors-and-conflicts.md +71 -0
- package/docs/guidelines/forms.md +202 -0
- package/docs/guidelines/index.md +129 -0
- package/docs/guidelines/layout-alignment.md +95 -0
- package/docs/guidelines/ledgers.md +45 -0
- package/docs/guidelines/list-pages.md +206 -0
- package/docs/guidelines/overviews.md +76 -0
- package/docs/guidelines/own-elements.md +115 -0
- package/docs/guidelines/reading-permissions.md +55 -0
- package/docs/guidelines/record-pages.md +178 -0
- package/docs/guidelines/reports.md +123 -0
- package/docs/guidelines/shell-composition.md +94 -0
- package/docs/guidelines/workspaces.md +46 -0
- package/docs/icon.json +3 -1
- package/docs/icon.md +3 -3
- package/docs/index.md +12 -0
- package/docs/inline-message.json +14 -2
- package/docs/inline-message.md +4 -3
- package/docs/list-item.json +9 -1
- package/docs/list-item.md +3 -3
- package/docs/list.json +19 -1
- package/docs/list.md +3 -1
- package/docs/markdown.json +79 -79
- package/docs/markdown.md +65 -65
- package/docs/menu.json +12 -0
- package/docs/menu.md +2 -0
- package/docs/message.json +7 -1
- package/docs/message.md +3 -3
- package/docs/multi-select.json +1 -0
- package/docs/multi-select.md +1 -1
- package/docs/notification-center.json +4 -0
- package/docs/notification-center.md +2 -2
- package/docs/number-field.json +1 -0
- package/docs/number-field.md +1 -1
- package/docs/otp-input.json +1 -0
- package/docs/otp-input.md +1 -1
- package/docs/page-header.json +4 -3
- package/docs/page-header.md +2 -2
- package/docs/page.json +1 -0
- package/docs/page.md +1 -0
- package/docs/popover.json +1 -1
- package/docs/progress-indicator.json +4 -3
- package/docs/progress-indicator.md +4 -4
- package/docs/prompt-composer.json +41 -1
- package/docs/prompt-composer.md +5 -1
- package/docs/rating.json +5 -3
- package/docs/rating.md +5 -5
- package/docs/section.json +27 -15
- package/docs/section.md +11 -9
- package/docs/segmented-control.json +36 -12
- package/docs/segmented-control.md +17 -1
- package/docs/select.json +1 -0
- package/docs/select.md +1 -1
- package/docs/side-navigation.json +1 -0
- package/docs/side-navigation.md +1 -1
- package/docs/skills/build-own-element/SKILL.md +90 -0
- package/docs/skills/compose-screen/SKILL.md +95 -0
- package/docs/skills/index.md +9 -0
- package/docs/skills/review-screen/SKILL.md +77 -0
- package/docs/skills/theme-app/SKILL.md +87 -0
- package/docs/skills/waiting-states/SKILL.md +143 -0
- package/docs/sparkline.json +5 -2
- package/docs/sparkline.md +4 -4
- package/docs/split-button.json +4 -1
- package/docs/split-button.md +3 -3
- package/docs/stat-card.json +5 -1
- package/docs/stat-card.md +3 -3
- package/docs/table.examples.md +3 -3
- package/docs/table.json +85 -3
- package/docs/table.md +12 -1
- package/docs/tabs.json +17 -7
- package/docs/tabs.md +3 -2
- package/docs/tag.json +14 -4
- package/docs/tag.md +6 -6
- package/docs/tags-input.json +29 -2
- package/docs/tags-input.md +4 -1
- package/docs/text-field.json +2 -1
- package/docs/text-field.md +2 -2
- package/docs/textarea.json +1 -0
- package/docs/textarea.md +1 -1
- package/docs/time-field.json +1 -0
- package/docs/time-field.md +1 -1
- package/docs/timeline.json +138 -132
- package/docs/timeline.md +125 -125
- package/docs/toast.json +7 -1
- package/docs/toast.md +3 -3
- package/docs/toggle-group.json +14 -3
- package/docs/toggle-group.md +3 -3
- package/docs/toggle.json +12 -3
- package/docs/toggle.md +3 -3
- package/docs/tokens.md +467 -0
- package/docs/tour.json +1 -1
- package/docs/typography.json +4 -2
- package/docs/typography.md +4 -4
- package/fesm2022/slotted-angular-accordion.mjs +4 -2
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-bar.mjs +22 -11
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-action-sheet.mjs +42 -29
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -1
- package/fesm2022/slotted-angular-alert.mjs +18 -11
- package/fesm2022/slotted-angular-alert.mjs.map +1 -1
- package/fesm2022/slotted-angular-app-shell.mjs +111 -61
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
- package/fesm2022/slotted-angular-aspect-ratio.mjs +4 -2
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -1
- package/fesm2022/slotted-angular-attachment.mjs +31 -20
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar-group.mjs +9 -6
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-avatar.mjs +14 -7
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -1
- package/fesm2022/slotted-angular-badge.mjs +14 -10
- package/fesm2022/slotted-angular-badge.mjs.map +1 -1
- package/fesm2022/slotted-angular-breadcrumb.mjs +26 -18
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -1
- package/fesm2022/slotted-angular-button-group.mjs +7 -4
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-button.mjs +90 -29
- package/fesm2022/slotted-angular-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-calendar.mjs +235 -58
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-card.mjs +18 -16
- package/fesm2022/slotted-angular-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-carousel.mjs +22 -11
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -1
- package/fesm2022/slotted-angular-cascader.mjs +166 -66
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -1
- package/fesm2022/slotted-angular-chart.mjs +53 -20
- package/fesm2022/slotted-angular-chart.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox-group.mjs +5 -3
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-checkbox.mjs +23 -9
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-code-block.mjs +29 -15
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -1
- package/fesm2022/slotted-angular-collapsible.mjs +20 -15
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -1
- package/fesm2022/slotted-angular-color-picker.mjs +77 -22
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-column-manager.mjs +68 -31
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
- package/fesm2022/slotted-angular-combobox.mjs +112 -39
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
- package/fesm2022/slotted-angular-command-palette.mjs +150 -54
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -1
- package/fesm2022/slotted-angular-container.mjs +6 -4
- package/fesm2022/slotted-angular-container.mjs.map +1 -1
- package/fesm2022/slotted-angular-context-menu.mjs +5 -4
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-currency-field.mjs +149 -32
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-dashboard-grid.mjs +142 -63
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-grid.mjs +354 -113
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-data-list.mjs +83 -50
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-field.mjs +74 -25
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-picker.mjs +112 -40
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-date-range-picker.mjs +45 -22
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-field.mjs +48 -16
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-picker.mjs +41 -29
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +115 -48
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-description-list.mjs +33 -19
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-detail-panel.mjs +29 -18
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -1
- package/fesm2022/slotted-angular-dialog.mjs +72 -30
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -1
- package/fesm2022/slotted-angular-divider.mjs +7 -5
- package/fesm2022/slotted-angular-divider.mjs.map +1 -1
- package/fesm2022/slotted-angular-drawer.mjs +53 -29
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
- package/fesm2022/slotted-angular-entity-picker.mjs +468 -75
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-event-calendar.mjs +275 -108
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
- package/fesm2022/slotted-angular-field-group.mjs +14 -7
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-field.mjs +35 -15
- package/fesm2022/slotted-angular-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-filter-bar.mjs +112 -51
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -1
- package/fesm2022/slotted-angular-form.mjs +18 -10
- package/fesm2022/slotted-angular-form.mjs.map +1 -1
- package/fesm2022/slotted-angular-fullscreen.mjs +14 -8
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -1
- package/fesm2022/slotted-angular-grid.mjs +4 -2
- package/fesm2022/slotted-angular-grid.mjs.map +1 -1
- package/fesm2022/slotted-angular-highlight.mjs +5 -3
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -1
- package/fesm2022/slotted-angular-hover-card.mjs +5 -4
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-icon.mjs +6 -3
- package/fesm2022/slotted-angular-icon.mjs.map +1 -1
- package/fesm2022/slotted-angular-image.mjs +13 -10
- package/fesm2022/slotted-angular-image.mjs.map +1 -1
- package/fesm2022/slotted-angular-import-export-center.mjs +167 -99
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline-message.mjs +88 -13
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-inline.mjs +4 -2
- package/fesm2022/slotted-angular-inline.mjs.map +1 -1
- package/fesm2022/slotted-angular-kbd.mjs +11 -7
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -1
- package/fesm2022/slotted-angular-link.mjs +5 -3
- package/fesm2022/slotted-angular-link.mjs.map +1 -1
- package/fesm2022/slotted-angular-list-item.mjs +21 -18
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -1
- package/fesm2022/slotted-angular-list.mjs +37 -22
- package/fesm2022/slotted-angular-list.mjs.map +1 -1
- package/fesm2022/slotted-angular-listbox.mjs +39 -21
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -1
- package/fesm2022/slotted-angular-loading-overlay.mjs +59 -22
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -1
- package/fesm2022/slotted-angular-markdown.mjs +31 -19
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
- package/fesm2022/slotted-angular-menu.mjs +51 -29
- package/fesm2022/slotted-angular-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-menubar.mjs +4 -2
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -1
- package/fesm2022/slotted-angular-message-scroller.mjs +28 -15
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -1
- package/fesm2022/slotted-angular-message.mjs +113 -51
- package/fesm2022/slotted-angular-message.mjs.map +1 -1
- package/fesm2022/slotted-angular-multi-select.mjs +189 -87
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-navigation-menu.mjs +34 -26
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -1
- package/fesm2022/slotted-angular-notification-center.mjs +108 -65
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -1
- package/fesm2022/slotted-angular-number-field.mjs +23 -11
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-otp-input.mjs +13 -8
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-page-header.mjs +75 -45
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -1
- package/fesm2022/slotted-angular-page.mjs +38 -10
- package/fesm2022/slotted-angular-page.mjs.map +1 -1
- package/fesm2022/slotted-angular-pagination.mjs +35 -22
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -1
- package/fesm2022/slotted-angular-popover.mjs +32 -19
- package/fesm2022/slotted-angular-popover.mjs.map +1 -1
- package/fesm2022/slotted-angular-progress-indicator.mjs +236 -52
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-prompt-composer.mjs +41 -20
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -1
- package/fesm2022/slotted-angular-prose.mjs +14 -11
- package/fesm2022/slotted-angular-prose.mjs.map +1 -1
- package/fesm2022/slotted-angular-radio-group.mjs +15 -9
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-rating.mjs +138 -82
- package/fesm2022/slotted-angular-rating.mjs.map +1 -1
- package/fesm2022/slotted-angular-result-state.mjs +16 -12
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -1
- package/fesm2022/slotted-angular-saved-views.mjs +43 -16
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -1
- package/fesm2022/slotted-angular-scroll-area.mjs +13 -5
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -1
- package/fesm2022/slotted-angular-section.mjs +53 -18
- package/fesm2022/slotted-angular-section.mjs.map +1 -1
- package/fesm2022/slotted-angular-segmented-control.mjs +37 -11
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -1
- package/fesm2022/slotted-angular-select.mjs +184 -94
- package/fesm2022/slotted-angular-select.mjs.map +1 -1
- package/fesm2022/slotted-angular-side-navigation.mjs +46 -35
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-skeleton.mjs +32 -16
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -1
- package/fesm2022/slotted-angular-slider.mjs +31 -11
- package/fesm2022/slotted-angular-slider.mjs.map +1 -1
- package/fesm2022/slotted-angular-sparkline.mjs +41 -14
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -1
- package/fesm2022/slotted-angular-split-button.mjs +25 -11
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -1
- package/fesm2022/slotted-angular-splitter.mjs +11 -9
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -1
- package/fesm2022/slotted-angular-stack.mjs +4 -2
- package/fesm2022/slotted-angular-stack.mjs.map +1 -1
- package/fesm2022/slotted-angular-stat-card.mjs +35 -28
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
- package/fesm2022/slotted-angular-status-indicator.mjs +22 -8
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -1
- package/fesm2022/slotted-angular-stepper.mjs +40 -15
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -1
- package/fesm2022/slotted-angular-switch.mjs +15 -10
- package/fesm2022/slotted-angular-switch.mjs.map +1 -1
- package/fesm2022/slotted-angular-table-of-contents.mjs +29 -21
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -1
- package/fesm2022/slotted-angular-table.mjs +243 -73
- package/fesm2022/slotted-angular-table.mjs.map +1 -1
- package/fesm2022/slotted-angular-tabs.mjs +42 -18
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
- package/fesm2022/slotted-angular-tag.mjs +19 -12
- package/fesm2022/slotted-angular-tag.mjs.map +1 -1
- package/fesm2022/slotted-angular-tags-input.mjs +253 -28
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -1
- package/fesm2022/slotted-angular-text-field.mjs +49 -15
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-textarea.mjs +5 -3
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-field.mjs +48 -14
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-picker.mjs +32 -20
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-time-range-picker.mjs +113 -46
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -1
- package/fesm2022/slotted-angular-timeline.mjs +135 -64
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -1
- package/fesm2022/slotted-angular-toast.mjs +43 -31
- package/fesm2022/slotted-angular-toast.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle-group.mjs +25 -8
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -1
- package/fesm2022/slotted-angular-toggle.mjs +9 -4
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -1
- package/fesm2022/slotted-angular-toolbar.mjs +22 -11
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -1
- package/fesm2022/slotted-angular-tooltip.mjs +15 -6
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -1
- package/fesm2022/slotted-angular-top-navigation.mjs +64 -44
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -1
- package/fesm2022/slotted-angular-tour.mjs +47 -22
- package/fesm2022/slotted-angular-tour.mjs.map +1 -1
- package/fesm2022/slotted-angular-transfer.mjs +69 -30
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
- package/fesm2022/slotted-angular-tree.mjs +74 -26
- package/fesm2022/slotted-angular-tree.mjs.map +1 -1
- package/fesm2022/slotted-angular-typography.mjs +8 -4
- package/fesm2022/slotted-angular-typography.mjs.map +1 -1
- package/fesm2022/slotted-angular-upload.mjs +125 -57
- package/fesm2022/slotted-angular-upload.mjs.map +1 -1
- package/fesm2022/slotted-angular-visually-hidden.mjs +4 -2
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -1
- package/fesm2022/slotted-angular-wizard.mjs +163 -65
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/types/slotted-angular-accordion.d.ts.map +1 -1
- package/types/slotted-angular-action-bar.d.ts.map +1 -1
- package/types/slotted-angular-action-sheet.d.ts.map +1 -1
- package/types/slotted-angular-alert.d.ts +2 -2
- package/types/slotted-angular-alert.d.ts.map +1 -1
- package/types/slotted-angular-app-shell.d.ts +11 -3
- package/types/slotted-angular-app-shell.d.ts.map +1 -1
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -1
- package/types/slotted-angular-attachment.d.ts +1 -1
- package/types/slotted-angular-attachment.d.ts.map +1 -1
- package/types/slotted-angular-avatar-group.d.ts.map +1 -1
- package/types/slotted-angular-avatar.d.ts +11 -3
- package/types/slotted-angular-avatar.d.ts.map +1 -1
- package/types/slotted-angular-badge.d.ts +1 -1
- package/types/slotted-angular-badge.d.ts.map +1 -1
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -1
- package/types/slotted-angular-button-group.d.ts +1 -1
- package/types/slotted-angular-button-group.d.ts.map +1 -1
- package/types/slotted-angular-button.d.ts +33 -13
- package/types/slotted-angular-button.d.ts.map +1 -1
- package/types/slotted-angular-calendar.d.ts +30 -2
- package/types/slotted-angular-calendar.d.ts.map +1 -1
- package/types/slotted-angular-card.d.ts.map +1 -1
- package/types/slotted-angular-carousel.d.ts.map +1 -1
- package/types/slotted-angular-cascader.d.ts.map +1 -1
- package/types/slotted-angular-chart.d.ts +10 -0
- package/types/slotted-angular-chart.d.ts.map +1 -1
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -1
- package/types/slotted-angular-checkbox.d.ts +7 -1
- package/types/slotted-angular-checkbox.d.ts.map +1 -1
- package/types/slotted-angular-code-block.d.ts +1 -1
- package/types/slotted-angular-code-block.d.ts.map +1 -1
- package/types/slotted-angular-collapsible.d.ts +1 -1
- package/types/slotted-angular-collapsible.d.ts.map +1 -1
- package/types/slotted-angular-color-picker.d.ts.map +1 -1
- package/types/slotted-angular-column-manager.d.ts.map +1 -1
- package/types/slotted-angular-combobox.d.ts +5 -1
- package/types/slotted-angular-combobox.d.ts.map +1 -1
- package/types/slotted-angular-command-palette.d.ts +10 -1
- package/types/slotted-angular-command-palette.d.ts.map +1 -1
- package/types/slotted-angular-container.d.ts.map +1 -1
- package/types/slotted-angular-context-menu.d.ts.map +1 -1
- package/types/slotted-angular-currency-field.d.ts +63 -15
- package/types/slotted-angular-currency-field.d.ts.map +1 -1
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-grid.d.ts +49 -4
- package/types/slotted-angular-data-grid.d.ts.map +1 -1
- package/types/slotted-angular-data-list.d.ts.map +1 -1
- package/types/slotted-angular-date-field.d.ts +11 -1
- package/types/slotted-angular-date-field.d.ts.map +1 -1
- package/types/slotted-angular-date-picker.d.ts +38 -12
- package/types/slotted-angular-date-picker.d.ts.map +1 -1
- package/types/slotted-angular-date-range-picker.d.ts +0 -1
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-field.d.ts.map +1 -1
- package/types/slotted-angular-datetime-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -1
- package/types/slotted-angular-datetime-range-picker.d.ts +0 -1
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-description-list.d.ts.map +1 -1
- package/types/slotted-angular-detail-panel.d.ts.map +1 -1
- package/types/slotted-angular-dialog.d.ts +10 -3
- package/types/slotted-angular-dialog.d.ts.map +1 -1
- package/types/slotted-angular-divider.d.ts.map +1 -1
- package/types/slotted-angular-drawer.d.ts +7 -1
- package/types/slotted-angular-drawer.d.ts.map +1 -1
- package/types/slotted-angular-entity-picker.d.ts +63 -15
- package/types/slotted-angular-entity-picker.d.ts.map +1 -1
- package/types/slotted-angular-event-calendar.d.ts +9 -2
- package/types/slotted-angular-event-calendar.d.ts.map +1 -1
- package/types/slotted-angular-field-group.d.ts.map +1 -1
- package/types/slotted-angular-field.d.ts.map +1 -1
- package/types/slotted-angular-filter-bar.d.ts.map +1 -1
- package/types/slotted-angular-form.d.ts.map +1 -1
- package/types/slotted-angular-fullscreen.d.ts.map +1 -1
- package/types/slotted-angular-grid.d.ts.map +1 -1
- package/types/slotted-angular-highlight.d.ts.map +1 -1
- package/types/slotted-angular-hover-card.d.ts.map +1 -1
- package/types/slotted-angular-icon.d.ts +2 -2
- package/types/slotted-angular-icon.d.ts.map +1 -1
- package/types/slotted-angular-image.d.ts.map +1 -1
- package/types/slotted-angular-import-export-center.d.ts.map +1 -1
- package/types/slotted-angular-inline-message.d.ts +25 -25
- package/types/slotted-angular-inline-message.d.ts.map +1 -1
- package/types/slotted-angular-inline.d.ts.map +1 -1
- package/types/slotted-angular-kbd.d.ts.map +1 -1
- package/types/slotted-angular-link.d.ts.map +1 -1
- package/types/slotted-angular-list-item.d.ts +1 -1
- package/types/slotted-angular-list-item.d.ts.map +1 -1
- package/types/slotted-angular-list.d.ts +42 -27
- package/types/slotted-angular-list.d.ts.map +1 -1
- package/types/slotted-angular-listbox.d.ts.map +1 -1
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -1
- package/types/slotted-angular-markdown.d.ts.map +1 -1
- package/types/slotted-angular-menu.d.ts +11 -2
- package/types/slotted-angular-menu.d.ts.map +1 -1
- package/types/slotted-angular-menubar.d.ts.map +1 -1
- package/types/slotted-angular-message-scroller.d.ts.map +1 -1
- package/types/slotted-angular-message.d.ts +1 -1
- package/types/slotted-angular-message.d.ts.map +1 -1
- package/types/slotted-angular-multi-select.d.ts +15 -1
- package/types/slotted-angular-multi-select.d.ts.map +1 -1
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -1
- package/types/slotted-angular-notification-center.d.ts +1 -1
- package/types/slotted-angular-notification-center.d.ts.map +1 -1
- package/types/slotted-angular-number-field.d.ts.map +1 -1
- package/types/slotted-angular-otp-input.d.ts.map +1 -1
- package/types/slotted-angular-page-header.d.ts +4 -4
- package/types/slotted-angular-page-header.d.ts.map +1 -1
- package/types/slotted-angular-page.d.ts.map +1 -1
- package/types/slotted-angular-pagination.d.ts.map +1 -1
- package/types/slotted-angular-popover.d.ts.map +1 -1
- package/types/slotted-angular-progress-indicator.d.ts +8 -1
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -1
- package/types/slotted-angular-prompt-composer.d.ts +11 -2
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -1
- package/types/slotted-angular-prose.d.ts.map +1 -1
- package/types/slotted-angular-radio-group.d.ts.map +1 -1
- package/types/slotted-angular-rating.d.ts +1 -1
- package/types/slotted-angular-rating.d.ts.map +1 -1
- package/types/slotted-angular-result-state.d.ts.map +1 -1
- package/types/slotted-angular-saved-views.d.ts.map +1 -1
- package/types/slotted-angular-scroll-area.d.ts.map +1 -1
- package/types/slotted-angular-section.d.ts +11 -3
- package/types/slotted-angular-section.d.ts.map +1 -1
- package/types/slotted-angular-segmented-control.d.ts +15 -2
- package/types/slotted-angular-segmented-control.d.ts.map +1 -1
- package/types/slotted-angular-select.d.ts +12 -2
- package/types/slotted-angular-select.d.ts.map +1 -1
- package/types/slotted-angular-side-navigation.d.ts.map +1 -1
- package/types/slotted-angular-skeleton.d.ts.map +1 -1
- package/types/slotted-angular-slider.d.ts.map +1 -1
- package/types/slotted-angular-sparkline.d.ts +7 -1
- package/types/slotted-angular-sparkline.d.ts.map +1 -1
- package/types/slotted-angular-split-button.d.ts +2 -2
- package/types/slotted-angular-split-button.d.ts.map +1 -1
- package/types/slotted-angular-splitter.d.ts.map +1 -1
- package/types/slotted-angular-stack.d.ts.map +1 -1
- package/types/slotted-angular-stat-card.d.ts +1 -1
- package/types/slotted-angular-stat-card.d.ts.map +1 -1
- package/types/slotted-angular-status-indicator.d.ts +1 -1
- package/types/slotted-angular-status-indicator.d.ts.map +1 -1
- package/types/slotted-angular-stepper.d.ts +1 -1
- package/types/slotted-angular-stepper.d.ts.map +1 -1
- package/types/slotted-angular-switch.d.ts.map +1 -1
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -1
- package/types/slotted-angular-table.d.ts +63 -6
- package/types/slotted-angular-table.d.ts.map +1 -1
- package/types/slotted-angular-tabs.d.ts +3 -4
- package/types/slotted-angular-tabs.d.ts.map +1 -1
- package/types/slotted-angular-tag.d.ts +1 -1
- package/types/slotted-angular-tag.d.ts.map +1 -1
- package/types/slotted-angular-tags-input.d.ts +33 -1
- package/types/slotted-angular-tags-input.d.ts.map +1 -1
- package/types/slotted-angular-text-field.d.ts.map +1 -1
- package/types/slotted-angular-textarea.d.ts.map +1 -1
- package/types/slotted-angular-theme.d.ts +1 -1
- package/types/slotted-angular-time-field.d.ts.map +1 -1
- package/types/slotted-angular-time-picker.d.ts +0 -1
- package/types/slotted-angular-time-picker.d.ts.map +1 -1
- package/types/slotted-angular-time-range-picker.d.ts +0 -1
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -1
- package/types/slotted-angular-timeline.d.ts +1 -1
- package/types/slotted-angular-timeline.d.ts.map +1 -1
- package/types/slotted-angular-toast.d.ts +3 -3
- package/types/slotted-angular-toast.d.ts.map +1 -1
- package/types/slotted-angular-toggle-group.d.ts +8 -2
- package/types/slotted-angular-toggle-group.d.ts.map +1 -1
- package/types/slotted-angular-toggle.d.ts +1 -1
- package/types/slotted-angular-toggle.d.ts.map +1 -1
- package/types/slotted-angular-toolbar.d.ts.map +1 -1
- package/types/slotted-angular-tooltip.d.ts.map +1 -1
- package/types/slotted-angular-top-navigation.d.ts.map +1 -1
- package/types/slotted-angular-tour.d.ts.map +1 -1
- package/types/slotted-angular-transfer.d.ts.map +1 -1
- package/types/slotted-angular-tree.d.ts.map +1 -1
- package/types/slotted-angular-typography.d.ts +1 -1
- package/types/slotted-angular-typography.d.ts.map +1 -1
- package/types/slotted-angular-upload.d.ts +2 -2
- package/types/slotted-angular-upload.d.ts.map +1 -1
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -1
- package/types/slotted-angular-wizard.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slotted-angular-progress-indicator.mjs","sources":["../../progress-indicator/src/progress-indicator-defaults.ts","../../progress-indicator/src/progress-indicator.constants.ts","../../progress-indicator/src/progress-indicator-base.ts","../../progress-indicator/src/loader.ts","../../progress-indicator/src/progress-bar.ts","../../progress-indicator/src/progress-circle.ts","../../progress-indicator/src/slotted-angular-progress-indicator.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { ProgressSize, ProgressTone } from './progress-indicator.constants';\n\n/**\n * What every indicator in an application looks like, and how a wait is timed,\n * before any of them states anything of its own.\n *\n * The two durations are here rather than on an indicator because the policy is\n * an application's: a team decides once that a wait under two hundred\n * milliseconds is not worth reporting, and every bar inherits it. `locale` is\n * here for the same reason — the digits of a percentage belong to the\n * application's language, not to one upload.\n */\nexport interface ProgressIndicatorDefaults {\n delay?: number;\n label?: string;\n locale?: string;\n minDuration?: number;\n size?: ProgressSize;\n tone?: ProgressTone;\n}\n\nexport const PROGRESS_INDICATOR_DEFAULTS_TOKEN = new InjectionToken<ProgressIndicatorDefaults>(\n 'slotted progress indicator defaults',\n { providedIn: 'root', factory: (): ProgressIndicatorDefaults => ({}) },\n);\n\n/**\n * An application decides once how its indicators are sized and toned, how long\n * a wait has to last before one appears, how long one is held once it has, and\n * which language writes the digits. An indicator that states any of those still\n * wins: an explicit input is never overridden by the token.\n */\nexport function provideProgressIndicatorDefaults(defaults: ProgressIndicatorDefaults) {\n return { provide: PROGRESS_INDICATOR_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectProgressIndicatorDefaults(): ProgressIndicatorDefaults {\n return inject(PROGRESS_INDICATOR_DEFAULTS_TOKEN);\n}\n","export type ProgressSize = 'sm' | 'md' | 'lg';\nexport type ProgressTone = 'accent' | 'secondary' | 'success' | 'warning' | 'danger';\nexport type ProgressPlacement = 'inline' | 'page' | 'edge-start' | 'edge-end';\n/** The geometry a component draws. Written to `data-shape`, never chosen. */\nexport type ProgressShape = 'linear' | 'circular' | 'morph';\n\nexport const PROGRESS_DEFAULT_SIZE: ProgressSize = 'md';\nexport const PROGRESS_DEFAULT_TONE: ProgressTone = 'accent';\nexport const PROGRESS_DEFAULT_PLACEMENT: ProgressPlacement = 'inline';\nexport const PROGRESS_DEFAULT_MIN = 0;\nexport const PROGRESS_DEFAULT_MAX = 100;\n","import { initialLoadingVisibility, nextLoadingVisibility } from '@slotted/core/loading';\nimport type { LoadingVisibilityState } from '@slotted/core/loading';\nimport { progressGeometry, progressValueText } from '@slotted/core/progress';\nimport type { ProgressGeometry } from '@slotted/core/progress';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n HostAttributeToken,\n inject,\n input,\n isDevMode,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectProgressIndicatorDefaults } from './progress-indicator-defaults';\nimport {\n PROGRESS_DEFAULT_SIZE,\n PROGRESS_DEFAULT_TONE,\n type ProgressShape,\n type ProgressSize,\n type ProgressTone,\n} from './progress-indicator.constants';\n\nlet nextId = 0;\n\n/**\n * Everything a bar, a ring and a loader answer the same way: the defaults, the\n * timing, the geometry, the text and the identity in the DOM.\n *\n * It is a base class rather than three copies because the two answers easiest\n * to get subtly wrong are the two no test can see from outside — which\n * `aria-value*` attributes are absent while a wait is indeterminate, and\n * whether the painted percentage came from the same call as the announced one.\n * The host bindings stay with each component, because `host` metadata belongs\n * to a decorator and a shape writes different attributes; the arithmetic\n * behind them is here.\n *\n * `@Directive()` with no selector is what makes the inputs and the output\n * inheritable: `input()` and `output()` are compiled rather than called, and\n * the compiler refuses them in a class it has not been told is a directive.\n */\n@Directive()\nexport abstract class SlProgressIndicatorBase {\n /** The geometry the component draws. Written by the component, never chosen. */\n protected abstract readonly shape: ProgressShape;\n\n readonly loading = input(true, { transform: booleanAttribute });\n readonly delay = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly minDuration = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n readonly label = input<string | undefined>(undefined);\n readonly hideLabel = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly decorative = input(false, { transform: booleanAttribute });\n readonly size = input<ProgressSize | undefined>(undefined);\n readonly tone = input<ProgressTone | undefined>(undefined);\n\n /**\n * The moment the indicator actually leaves the page, which is later than\n * `loading` turning false whenever `minDuration` is holding it. An\n * application unmounting on the input alone would take the indicator down\n * mid-hold.\n */\n readonly withdraw = output<void>();\n\n protected readonly defaults = injectProgressIndicatorDefaults();\n\n /**\n * A name the consumer wrote on their own element is read once and kept, so\n * the family never writes over it — the escape hatch `skeleton` established\n * with the same token.\n */\n protected readonly ownAriaLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n protected readonly ownAriaLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n protected readonly ownAriaHidden = inject(new HostAttributeToken('aria-hidden'), {\n optional: true,\n });\n\n /**\n * A stable id, and not `crypto.randomUUID()`: a server render and the\n * hydration that follows it have to produce the same string, and a counter\n * per document does while a random value does not.\n */\n protected readonly labelId = `slotted-progress-${(nextId += 1)}`;\n\n /** Whether anything is painted at all: `delay` may still be running. */\n readonly painted = signal(false);\n\n readonly sizeValue = computed(() => this.size() ?? this.defaults.size ?? PROGRESS_DEFAULT_SIZE);\n readonly toneValue = computed(() => this.tone() ?? this.defaults.tone ?? PROGRESS_DEFAULT_TONE);\n readonly labelText = computed(() => this.label() ?? this.defaults.label);\n readonly labelHidden = computed(() => this.hideLabel() ?? this.hidesLabelByPlacement());\n\n /** What the two measured components state, and the loader does not. */\n protected measure(): {\n value: number | null | undefined;\n min: number | undefined;\n max: number | undefined;\n buffer: number | null | undefined;\n format: Intl.NumberFormatOptions | undefined;\n showValue: boolean | undefined;\n valueText: string | undefined;\n locale: string | undefined;\n } | null {\n return null;\n }\n\n /** Overridden by the bar, whose page placement has nowhere to put a name. */\n protected hidesLabelByPlacement(): boolean {\n return false;\n }\n\n readonly geometry = computed<ProgressGeometry>(() => {\n const measured = this.measure();\n return progressGeometry({\n value: measured?.value,\n min: measured?.min,\n max: measured?.max,\n buffer: measured?.buffer,\n });\n });\n\n readonly valueTextValue = computed(() => {\n const measured = this.measure();\n if (measured === null) return undefined;\n return progressValueText({\n geometry: this.geometry(),\n valueText: measured.valueText,\n format: measured.format,\n locale: measured.locale ?? this.defaults.locale,\n });\n });\n\n readonly showValueValue = computed(\n () =>\n this.measure()?.showValue === true &&\n !this.geometry().indeterminate &&\n this.valueTextValue() !== undefined,\n );\n\n protected readonly named = computed(() => this.labelText() !== undefined && !this.decorative());\n\n /* ── What reaches the host ─────────────────────────────────────────────── */\n\n protected readonly roleAttribute = computed(() => (this.decorative() ? null : 'progressbar'));\n protected readonly labelledByAttribute = computed(() =>\n this.named() ? (this.ownAriaLabelledBy ?? this.labelId) : this.ownAriaLabelledBy,\n );\n /**\n * `decorative` is one switch and not two: it takes the role away as well as\n * hiding the box, because an indicator a reader can reach and that announces\n * nothing is worse than either half. A consumer's own `aria-hidden` is kept\n * rather than overwritten.\n */\n protected readonly hiddenFromTree = computed(() =>\n this.decorative() ? (this.ownAriaHidden ?? 'true') : this.ownAriaHidden,\n );\n /**\n * The range is written out even where it equals the ARIA default, so a reader\n * is never told a number that depends on one. `aria-valuenow` is the one\n * attribute that is absent rather than defaulted: ARIA 1.3 asks an author to\n * omit it while the value is indeterminate, and the omission is what says\n * \"in progress, and nobody knows how far\".\n */\n protected readonly valueMinAttribute = computed(() =>\n this.decorative() || this.measure() === null ? null : this.geometry().min,\n );\n protected readonly valueMaxAttribute = computed(() =>\n this.decorative() || this.measure() === null ? null : this.geometry().max,\n );\n protected readonly valueNowAttribute = computed(() =>\n this.decorative() || this.geometry().indeterminate ? null : this.geometry().valueNow,\n );\n protected readonly valueTextAttribute = computed(() =>\n this.decorative() ? null : (this.valueTextValue() ?? null),\n );\n protected readonly indeterminateAttribute = computed(() =>\n this.measure() === null || this.geometry().indeterminate ? '' : null,\n );\n protected readonly completeAttribute = computed(() => (this.geometry().complete ? '' : null));\n protected readonly percentStyle = computed(() => `${this.geometry().percent}`);\n protected readonly bufferStyle = computed(() => {\n const buffer = this.geometry().buffer;\n return buffer === null ? null : `${buffer}`;\n });\n protected readonly bufferedAttribute = computed(() =>\n this.geometry().buffer === null ? null : '',\n );\n\n private machine: LoadingVisibilityState = initialLoadingVisibility;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => clearTimeout(this.timer));\n\n effect(() => {\n const request = {\n loading: this.loading(),\n delay: this.delay() ?? this.defaults.delay ?? 0,\n minDuration: this.minDuration() ?? this.defaults.minDuration ?? 0,\n };\n untracked(() => this.settle(request));\n });\n\n /**\n * A missing name is reported and rendered anyway. `icon-button` throws\n * because an unnamed icon button is unusable; a nameless progress bar still\n * reports visually, and taking a screen down mid-upload is worse than the\n * defect it would be reporting. The family this one replaces recorded the\n * same decision.\n */\n effect(() => {\n const nameless =\n !this.decorative() &&\n this.labelText() === undefined &&\n this.ownAriaLabel === null &&\n this.ownAriaLabelledBy === null;\n if (isDevMode() && nameless) {\n console.warn(\n `${this.constructor.name} has no accessible name: pass label, or aria-label, or decorative when the text beside it already says what is happening.`,\n );\n }\n });\n }\n\n /**\n * One step of the shared machine, plus at most one timer. The rule lives in\n * `@slotted/core/loading` rather than here so React and Angular cannot\n * disagree about when an indicator appears — a difference no test that looked\n * at either binding alone would report.\n */\n private settle(request: { loading: boolean; delay: number; minDuration: number }) {\n clearTimeout(this.timer);\n const answer = nextLoadingVisibility({ ...request, now: Date.now(), state: this.machine });\n this.machine = answer.state;\n\n const was = this.painted();\n this.painted.set(answer.state.visible);\n if (was && !answer.state.visible) this.withdraw.emit();\n\n if (answer.wait === null) return;\n this.timer = setTimeout(() => this.settle(request), answer.wait);\n }\n}\n\n/**\n * Absence has to survive the transform. `numberAttribute` maps an unset input\n * to `NaN`, and `NaN` is a value: it would stop the application's own timing\n * decision from ever reaching an indicator that says nothing.\n */\nexport function optionalNumber(value: unknown): number | undefined {\n return value === undefined || value === null || value === '' ? undefined : numberAttribute(value);\n}\n\n/**\n * The same for a boolean. `booleanAttribute` maps an unset input to `false`,\n * and `false` is a value: it would stop a page-level bar from deciding that\n * its own name has nowhere visible to go.\n */\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n/**\n * A value the consumer may state as `null` to mean \"no number yet\", which\n * `numberAttribute` would read as nought — the claim this family refuses to\n * make. An empty string arrives from a template binding that has not resolved.\n */\nexport function measurableNumber(value: unknown): number | null | undefined {\n if (value === undefined) return undefined;\n if (value === null || value === '') return null;\n return numberAttribute(value);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlProgressIndicatorBase } from './progress-indicator-base';\nimport type { ProgressShape } from './progress-indicator.constants';\n\n/**\n * The wait a shape keeps, rather than the wait a ring reports.\n *\n * It is M3 Expressive's loading indicator, which Google recommends *instead of*\n * an indeterminate circular indicator for a wait under five seconds, and which\n * no other design system and no headless library surveyed ships at all. A\n * rounded shape morphs through a sequence — circle, clover, flower, trefoil,\n * oval — while it turns, at two periods that do not divide into each other, so\n * the sequence never shows the same shape in the same orientation twice.\n *\n * It measures nothing on purpose. A loader with a value would be a shape whose\n * progress nobody could read off a morphing outline, and the family already\n * has two shapes that report a number.\n *\n * `contained` draws M3's fully rounded container behind the shape, at M3's own\n * 38:48 ratio. It is the form to reach for on a photograph or a coloured\n * surface, where a bare shape has no ground to be seen against.\n *\n * Content after the label is projected, so a loader can stand in a sentence\n * the consumer wrote rather than only beside a string it was given.\n */\n@Component({\n selector: '[slLoader]',\n standalone: true,\n template: `<div data-part=\"track\"><div data-part=\"indicator\"></div></div>\n @if (labelText(); as text) {\n <span data-part=\"label\" [id]=\"labelId\" [attr.data-ui]=\"labelUi()\">{{ text }}</span>\n }\n <ng-content />`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slLoader',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-part': 'root',\n 'data-shape': 'morph',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-contained]': 'containedAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n },\n})\nexport class SlLoader extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'morph';\n\n /** M3's fully rounded container behind the morphing shape. */\n readonly contained = input(false, { transform: booleanAttribute });\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly containedAttribute = computed(() => (this.contained() ? '' : null));\n}\n","import {\n PROGRESS_WAVE_BAR_INDETERMINATE_PATH,\n PROGRESS_WAVE_BAR_PATH,\n PROGRESS_WAVE_BAR_REACH,\n} from '@slotted/core/progress';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n measurableNumber,\n optionalNumber,\n SlProgressIndicatorBase,\n} from './progress-indicator-base';\nimport {\n PROGRESS_DEFAULT_PLACEMENT,\n type ProgressPlacement,\n type ProgressShape,\n} from './progress-indicator.constants';\n\n/**\n * The linear recipe: a quantity along a track, or a wait travelling it.\n *\n * The shape is M3's from 2024 onward — a fully rounded indicator, a gap of one\n * thickness before the track it has not reached, and a stop indicator marking\n * where the bar is going. The gap and the dot are what make a bar at four per\n * cent read as four per cent of something rather than as a stray mark, and no\n * other surveyed implementation draws either.\n *\n * `placement=\"page\"` is the whole of what the deleted `loading-bar` family\n * was: the same bar pinned to the top edge of the viewport, with no corner to\n * round and a transparent track, because a permanent grey band across the top\n * of a page reads as a rule under the header rather than as a wait.\n * `edge-start` and `edge-end` are the same bar on an edge of the nearest\n * positioned box, which is the frame `app-shell` and `page-header` render as\n * their `progress` part.\n *\n * With `wave` the indicator is an `svg` over the whole track and one stroked\n * path inside it; the stylesheet shows a window of it with a dash, so the bar\n * ends in its own crest with a round cap. The path carries the `svg:` prefix\n * for the reason the ring's shapes do: inside a control-flow block the parser\n * decides the namespace, and an unprefixed `path` would be an unknown HTML\n * element that draws nothing.\n *\n * The selector is a bare attribute, so the element stays the consumer's: a bar\n * belongs in whatever already holds it — a table cell, a card's footer, a\n * `header` — and wrapping it in a second element would change their layout to\n * carry an attribute.\n */\n@Component({\n selector: '[slProgressBar]',\n standalone: true,\n template: `@if (labelText(); as text) {\n <span data-part=\"label\" [id]=\"labelId\" [attr.data-ui]=\"labelUi()\">{{ text }}</span>\n }\n @if (showValueValue()) {\n <span data-part=\"value\">{{ valueTextValue() }}</span>\n }\n <div data-part=\"track\">\n @if (wave()) {\n <svg\n aria-hidden=\"true\"\n data-part=\"indicator\"\n focusable=\"false\"\n preserveAspectRatio=\"xMinYMid meet\"\n [attr.viewBox]=\"waveViewBox\"\n >\n <svg:path [attr.d]=\"wavePath()\" [attr.pathLength]=\"waveReach\" />\n </svg>\n } @else {\n <div data-part=\"indicator\"></div>\n }\n </div>`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slProgressBar',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-part': 'root',\n 'data-shape': 'linear',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.aria-valuemin]': 'valueMinAttribute()',\n '[attr.aria-valuemax]': 'valueMaxAttribute()',\n '[attr.aria-valuenow]': 'valueNowAttribute()',\n '[attr.aria-valuetext]': 'valueTextAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-complete]': 'completeAttribute()',\n '[attr.data-buffered]': 'bufferedAttribute()',\n '[attr.data-placement]': 'placementAttribute()',\n '[attr.data-wave]': 'waveAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n '[style.--slotted-progress-indicator-percent]': 'percentStyle()',\n '[style.--slotted-progress-indicator-buffer-percent]': 'bufferStyle()',\n },\n})\nexport class SlProgressBar extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'linear';\n\n readonly value = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly min = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly max = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** A second, further quantity: received but not yet processed. */\n readonly buffer = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly valueText = input<string | undefined>(undefined);\n readonly format = input<Intl.NumberFormatOptions | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly wave = input(false, { transform: booleanAttribute });\n readonly placement = input<ProgressPlacement>(PROGRESS_DEFAULT_PLACEMENT);\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly placementAttribute = computed(() =>\n this.placement() === 'inline' ? null : this.placement(),\n );\n protected readonly waveAttribute = computed(() => (this.wave() ? '' : null));\n\n /**\n * M3's sine from `@slotted/core/progress`, in a user space where one unit\n * is one thickness, and the tighter wave M3 draws while the value is\n * unknown. The viewBox and `pathLength` both state the path's reach, which\n * is what makes a dash of one unit one thickness of travel at any amplitude.\n */\n protected readonly waveReach = PROGRESS_WAVE_BAR_REACH;\n protected readonly waveViewBox = `0 -1.25 ${PROGRESS_WAVE_BAR_REACH} 2.5`;\n protected readonly wavePath = computed(() =>\n this.geometry().indeterminate ? PROGRESS_WAVE_BAR_INDETERMINATE_PATH : PROGRESS_WAVE_BAR_PATH,\n );\n\n /**\n * A bar on an edge has no room for a visible name and still needs one, so the\n * placement decides it — and a consumer who states `hideLabel` outright still\n * wins, which is the rule the whole library follows.\n */\n protected override hidesLabelByPlacement(): boolean {\n return this.placement() !== 'inline';\n }\n\n protected override measure() {\n return {\n value: this.value(),\n min: this.min(),\n max: this.max(),\n buffer: this.buffer(),\n format: this.format(),\n showValue: this.showValue(),\n valueText: this.valueText(),\n locale: this.locale(),\n };\n }\n}\n","import { PROGRESS_WAVE_RING_PATH } from '@slotted/core/progress';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n measurableNumber,\n optionalNumber,\n SlProgressIndicatorBase,\n} from './progress-indicator-base';\nimport type { ProgressShape } from './progress-indicator.constants';\n\n/**\n * The circular recipe, and with no value the spinner every surveyed library\n * ships under that name.\n *\n * Two concentric shapes in one `48 48` box, each carrying `pathLength=\"100\"`\n * so a dash length *is* the percentage and the stylesheet needs no arithmetic\n * of its own. The stroke is stated in the viewBox's own units, which makes it\n * one eighth of the diameter at every size — the ratio `button` derived for its\n * own loading ring, so the ring in a button and this circle are the same\n * object.\n *\n * The number sits beside the ring rather than inside it: the largest ring this\n * family draws is 38 pixels across with a 4.75-pixel stroke, which leaves 28\n * pixels of hole, and a percentage centred in it would be four-pixel type.\n *\n * With `wave` the indicator is M3's wavy ring from `@slotted/core/progress`\n * and the track stays a circle, which is what `CircularWavyProgressModifiers`\n * draws: only the active indicator morphs.\n *\n * The shapes carry the `svg:` prefix because a template's namespace is decided\n * by the parser rather than by the parent element: inside a control-flow block\n * an unprefixed `circle` is an unknown HTML element, and an unknown HTML\n * element draws nothing at all.\n */\n@Component({\n selector: '[slProgressCircle]',\n standalone: true,\n template: `<svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 48 48\">\n <svg:circle cx=\"24\" cy=\"24\" data-part=\"track\" [attr.pathLength]=\"100\" r=\"20\" />\n @if (wave()) {\n <svg:path [attr.d]=\"wavePath\" data-part=\"indicator\" [attr.pathLength]=\"100\" />\n } @else {\n <svg:circle cx=\"24\" cy=\"24\" data-part=\"indicator\" [attr.pathLength]=\"100\" r=\"20\" />\n }\n </svg>\n @if (labelText(); as text) {\n <span data-part=\"label\" [id]=\"labelId\" [attr.data-ui]=\"labelUi()\">{{ text }}</span>\n }\n @if (showValueValue()) {\n <span data-part=\"value\">{{ valueTextValue() }}</span>\n }`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slProgressCircle',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-part': 'root',\n 'data-shape': 'circular',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.aria-valuemin]': 'valueMinAttribute()',\n '[attr.aria-valuemax]': 'valueMaxAttribute()',\n '[attr.aria-valuenow]': 'valueNowAttribute()',\n '[attr.aria-valuetext]': 'valueTextAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-complete]': 'completeAttribute()',\n '[attr.data-wave]': 'waveAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n '[style.--slotted-progress-indicator-percent]': 'percentStyle()',\n },\n})\nexport class SlProgressCircle extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'circular';\n protected readonly wavePath = PROGRESS_WAVE_RING_PATH;\n\n readonly value = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly min = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly max = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly valueText = input<string | undefined>(undefined);\n readonly format = input<Intl.NumberFormatOptions | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly wave = input(false, { transform: booleanAttribute });\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly waveAttribute = computed(() => (this.wave() ? '' : null));\n\n protected override measure() {\n return {\n value: this.value(),\n min: this.min(),\n max: this.max(),\n buffer: null,\n format: this.format(),\n showValue: this.showValue(),\n valueText: this.valueText(),\n locale: this.locale(),\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slotted-angular-progress-indicator.mjs","sources":["../../progress-indicator/src/progress-indicator-defaults.ts","../../progress-indicator/src/progress-indicator.constants.ts","../../progress-indicator/src/progress-indicator-base.ts","../../progress-indicator/src/loader.ts","../../progress-indicator/src/progress-bar.ts","../../progress-indicator/src/progress-circle.ts","../../progress-indicator/src/slotted-angular-progress-indicator.ts"],"sourcesContent":["import { inject, InjectionToken } from '@angular/core';\n\nimport type { ProgressSize, ProgressTone } from './progress-indicator.constants';\n\n/**\n * What every indicator in an application looks like, and how a wait is timed,\n * before any of them states anything of its own.\n *\n * The two durations are here rather than on an indicator because the policy is\n * an application's: a team decides once that a wait under two hundred\n * milliseconds is not worth reporting, and every bar inherits it. `locale` is\n * here for the same reason — the digits of a percentage belong to the\n * application's language, not to one upload.\n */\nexport interface ProgressIndicatorDefaults {\n delay?: number;\n label?: string;\n locale?: string;\n minDuration?: number;\n size?: ProgressSize;\n tone?: ProgressTone;\n}\n\nexport const PROGRESS_INDICATOR_DEFAULTS_TOKEN = new InjectionToken<ProgressIndicatorDefaults>(\n 'slotted progress indicator defaults',\n { providedIn: 'root', factory: (): ProgressIndicatorDefaults => ({}) },\n);\n\n/**\n * An application decides once how its indicators are sized and toned, how long\n * a wait has to last before one appears, how long one is held once it has, and\n * which language writes the digits. An indicator that states any of those still\n * wins: an explicit input is never overridden by the token.\n */\nexport function provideProgressIndicatorDefaults(defaults: ProgressIndicatorDefaults) {\n return { provide: PROGRESS_INDICATOR_DEFAULTS_TOKEN, useValue: defaults };\n}\n\nexport function injectProgressIndicatorDefaults(): ProgressIndicatorDefaults {\n return inject(PROGRESS_INDICATOR_DEFAULTS_TOKEN);\n}\n","export type ProgressSize = 'sm' | 'md' | 'lg';\nexport type ProgressTone = 'accent' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';\nexport type ProgressPlacement = 'inline' | 'page' | 'edge-start' | 'edge-end';\n/** The geometry a component draws. Written to `data-shape`, never chosen. */\nexport type ProgressShape = 'linear' | 'circular' | 'morph';\n\nexport const PROGRESS_DEFAULT_SIZE: ProgressSize = 'md';\nexport const PROGRESS_DEFAULT_TONE: ProgressTone = 'accent';\nexport const PROGRESS_DEFAULT_PLACEMENT: ProgressPlacement = 'inline';\nexport const PROGRESS_DEFAULT_MIN = 0;\nexport const PROGRESS_DEFAULT_MAX = 100;\n","import { initialLoadingVisibility, nextLoadingVisibility } from '@slotted/core/loading';\nimport type { LoadingVisibilityState } from '@slotted/core/loading';\nimport { progressGeometry, progressValueText } from '@slotted/core/progress';\nimport type { ProgressGeometry } from '@slotted/core/progress';\nimport {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n HostAttributeToken,\n inject,\n input,\n isDevMode,\n numberAttribute,\n output,\n signal,\n untracked,\n} from '@angular/core';\n\nimport { injectProgressIndicatorDefaults } from './progress-indicator-defaults';\nimport {\n PROGRESS_DEFAULT_SIZE,\n PROGRESS_DEFAULT_TONE,\n type ProgressShape,\n type ProgressSize,\n type ProgressTone,\n} from './progress-indicator.constants';\n\nlet nextId = 0;\n\n/**\n * Everything a bar, a ring and a loader answer the same way: the defaults, the\n * timing, the geometry, the text and the identity in the DOM.\n *\n * It is a base class rather than three copies because the two answers easiest\n * to get subtly wrong are the two no test can see from outside — which\n * `aria-value*` attributes are absent while a wait is indeterminate, and\n * whether the painted percentage came from the same call as the announced one.\n * The host bindings stay with each component, because `host` metadata belongs\n * to a decorator and a shape writes different attributes; the arithmetic\n * behind them is here.\n *\n * `@Directive()` with no selector is what makes the inputs and the output\n * inheritable: `input()` and `output()` are compiled rather than called, and\n * the compiler refuses them in a class it has not been told is a directive.\n */\n@Directive()\nexport abstract class SlProgressIndicatorBase {\n /** The geometry the component draws. Written by the component, never chosen. */\n protected abstract readonly shape: ProgressShape;\n\n readonly loading = input(true, { transform: booleanAttribute });\n readonly delay = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly minDuration = input<number | undefined, unknown>(undefined, {\n transform: optionalNumber,\n });\n readonly label = input<string | undefined>(undefined);\n readonly hideLabel = input<boolean | undefined, unknown>(undefined, {\n transform: optionalBoolean,\n });\n readonly decorative = input(false, { transform: booleanAttribute });\n readonly size = input<ProgressSize | undefined>(undefined);\n readonly tone = input<ProgressTone | undefined>(undefined);\n\n /**\n * The moment the indicator actually leaves the page, which is later than\n * `loading` turning false whenever `minDuration` is holding it. An\n * application unmounting on the input alone would take the indicator down\n * mid-hold.\n */\n readonly withdraw = output<void>();\n\n protected readonly defaults = injectProgressIndicatorDefaults();\n\n /**\n * A name the consumer wrote on their own element is read once and kept, so\n * the family never writes over it — the escape hatch `skeleton` established\n * with the same token.\n */\n protected readonly ownAriaLabel = inject(new HostAttributeToken('aria-label'), {\n optional: true,\n });\n protected readonly ownAriaLabelledBy = inject(new HostAttributeToken('aria-labelledby'), {\n optional: true,\n });\n protected readonly ownAriaHidden = inject(new HostAttributeToken('aria-hidden'), {\n optional: true,\n });\n\n /**\n * A stable id, and not `crypto.randomUUID()`: a server render and the\n * hydration that follows it have to produce the same string, and a counter\n * per document does while a random value does not.\n */\n protected readonly labelId = `slotted-progress-${(nextId += 1)}`;\n\n /** Whether anything is painted at all: `delay` may still be running. */\n readonly painted = signal(false);\n /**\n * How many times the indicator has been painted after being withdrawn. The\n * template draws the indicator once per value, so an indeterminate sweep\n * starts at its leading edge each time it comes back rather than where the\n * last one stood.\n */\n readonly paint = signal(0);\n\n readonly sizeValue = computed(() => this.size() ?? this.defaults.size ?? PROGRESS_DEFAULT_SIZE);\n readonly toneValue = computed(() => this.tone() ?? this.defaults.tone ?? PROGRESS_DEFAULT_TONE);\n readonly labelText = computed(() => this.label() ?? this.defaults.label);\n readonly labelHidden = computed(() => this.hideLabel() ?? this.hidesLabelByPlacement());\n\n /** What the two measured components state, and the loader does not. */\n protected measure(): {\n value: number | null | undefined;\n min: number | undefined;\n max: number | undefined;\n buffer: number | null | undefined;\n format: Intl.NumberFormatOptions | undefined;\n showValue: boolean | undefined;\n valueText: string | undefined;\n locale: string | undefined;\n } | null {\n return null;\n }\n\n /** Overridden by the bar, whose page placement has nowhere to put a name. */\n protected hidesLabelByPlacement(): boolean {\n return false;\n }\n\n readonly geometry = computed<ProgressGeometry>(() => {\n const measured = this.measure();\n return progressGeometry({\n value: measured?.value,\n min: measured?.min,\n max: measured?.max,\n buffer: measured?.buffer,\n });\n });\n\n readonly valueTextValue = computed(() => {\n const measured = this.measure();\n if (measured === null) return undefined;\n return progressValueText({\n geometry: this.geometry(),\n valueText: measured.valueText,\n format: measured.format,\n locale: measured.locale ?? this.defaults.locale,\n });\n });\n\n readonly showValueValue = computed(\n () =>\n this.measure()?.showValue === true &&\n !this.geometry().indeterminate &&\n this.valueTextValue() !== undefined,\n );\n\n protected readonly named = computed(() => this.labelText() !== undefined && !this.decorative());\n\n /* ── What reaches the host ─────────────────────────────────────────────── */\n\n protected readonly roleAttribute = computed(() => (this.decorative() ? null : 'progressbar'));\n protected readonly labelledByAttribute = computed(() =>\n this.named() ? (this.ownAriaLabelledBy ?? this.labelId) : this.ownAriaLabelledBy,\n );\n /**\n * `decorative` is one switch and not two: it takes the role away as well as\n * hiding the box, because an indicator a reader can reach and that announces\n * nothing is worse than either half. A consumer's own `aria-hidden` is kept\n * rather than overwritten.\n */\n protected readonly hiddenFromTree = computed(() =>\n this.decorative() ? (this.ownAriaHidden ?? 'true') : this.ownAriaHidden,\n );\n /**\n * The range is written out even where it equals the ARIA default, so a reader\n * is never told a number that depends on one. `aria-valuenow` is the one\n * attribute that is absent rather than defaulted: ARIA 1.3 asks an author to\n * omit it while the value is indeterminate, and the omission is what says\n * \"in progress, and nobody knows how far\".\n */\n protected readonly valueMinAttribute = computed(() =>\n this.decorative() || this.measure() === null ? null : this.geometry().min,\n );\n protected readonly valueMaxAttribute = computed(() =>\n this.decorative() || this.measure() === null ? null : this.geometry().max,\n );\n protected readonly valueNowAttribute = computed(() =>\n this.decorative() || this.geometry().indeterminate ? null : this.geometry().valueNow,\n );\n protected readonly valueTextAttribute = computed(() =>\n this.decorative() ? null : (this.valueTextValue() ?? null),\n );\n protected readonly indeterminateAttribute = computed(() =>\n this.measure() === null || this.geometry().indeterminate ? '' : null,\n );\n protected readonly completeAttribute = computed(() => (this.geometry().complete ? '' : null));\n protected readonly percentStyle = computed(() => `${this.geometry().percent}`);\n protected readonly bufferStyle = computed(() => {\n const buffer = this.geometry().buffer;\n return buffer === null ? null : `${buffer}`;\n });\n protected readonly bufferedAttribute = computed(() =>\n this.geometry().buffer === null ? null : '',\n );\n\n private machine: LoadingVisibilityState = initialLoadingVisibility;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n constructor() {\n inject(DestroyRef).onDestroy(() => clearTimeout(this.timer));\n\n effect(() => {\n const request = {\n loading: this.loading(),\n delay: this.delay() ?? this.defaults.delay ?? 0,\n minDuration: this.minDuration() ?? this.defaults.minDuration ?? 0,\n };\n untracked(() => this.settle(request));\n });\n\n /**\n * A missing name is reported and rendered anyway. `icon-button` throws\n * because an unnamed icon button is unusable; a nameless progress bar still\n * reports visually, and taking a screen down mid-upload is worse than the\n * defect it would be reporting. The family this one replaces recorded the\n * same decision.\n */\n effect(() => {\n const nameless =\n !this.decorative() &&\n this.labelText() === undefined &&\n this.ownAriaLabel === null &&\n this.ownAriaLabelledBy === null;\n if (isDevMode() && nameless) {\n console.warn(\n `${this.constructor.name} has no accessible name: pass label, or aria-label, or decorative when the text beside it already says what is happening.`,\n );\n }\n });\n }\n\n /**\n * One step of the shared machine, plus at most one timer. The rule lives in\n * `@slotted/core/loading` rather than here so React and Angular cannot\n * disagree about when an indicator appears — a difference no test that looked\n * at either binding alone would report.\n */\n private settle(request: { loading: boolean; delay: number; minDuration: number }) {\n clearTimeout(this.timer);\n const answer = nextLoadingVisibility({ ...request, now: Date.now(), state: this.machine });\n this.machine = answer.state;\n\n const was = this.painted();\n this.painted.set(answer.state.visible);\n if (was && !answer.state.visible) this.withdraw.emit();\n if (!was && answer.state.visible) this.paint.update((count) => count + 1);\n\n if (answer.wait === null) return;\n this.timer = setTimeout(() => this.settle(request), answer.wait);\n }\n}\n\n/**\n * Absence has to survive the transform. `numberAttribute` maps an unset input\n * to `NaN`, and `NaN` is a value: it would stop the application's own timing\n * decision from ever reaching an indicator that says nothing.\n */\nexport function optionalNumber(value: unknown): number | undefined {\n return value === undefined || value === null || value === '' ? undefined : numberAttribute(value);\n}\n\n/**\n * The same for a boolean. `booleanAttribute` maps an unset input to `false`,\n * and `false` is a value: it would stop a page-level bar from deciding that\n * its own name has nowhere visible to go.\n */\nexport function optionalBoolean(value: unknown): boolean | undefined {\n return value === undefined ? undefined : booleanAttribute(value);\n}\n\n/**\n * A value the consumer may state as `null` to mean \"no number yet\", which\n * `numberAttribute` would read as nought — the claim this family refuses to\n * make. An empty string arrives from a template binding that has not resolved.\n */\nexport function measurableNumber(value: unknown): number | null | undefined {\n if (value === undefined) return undefined;\n if (value === null || value === '') return null;\n return numberAttribute(value);\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { SlProgressIndicatorBase } from './progress-indicator-base';\nimport type { ProgressShape } from './progress-indicator.constants';\n\n/**\n * The wait a shape keeps, rather than the wait a ring reports.\n *\n * It is M3 Expressive's loading indicator, which Google recommends *instead of*\n * an indeterminate circular indicator for a wait under five seconds, and which\n * no other design system and no headless library surveyed ships at all. A\n * rounded shape morphs through a sequence — circle, clover, flower, trefoil,\n * oval — while it turns, at two periods that do not divide into each other, so\n * the sequence never shows the same shape in the same orientation twice.\n *\n * It measures nothing on purpose. A loader with a value would be a shape whose\n * progress nobody could read off a morphing outline, and the family already\n * has two shapes that report a number.\n *\n * `contained` draws M3's fully rounded container behind the shape, at M3's own\n * 38:48 ratio. It is the form to reach for on a photograph or a coloured\n * surface, where a bare shape has no ground to be seen against.\n *\n * Content after the label is projected, so a loader can stand in a sentence\n * the consumer wrote rather than only beside a string it was given.\n */\n@Component({\n selector: '[slLoader]',\n standalone: true,\n template: `<div data-part=\"track\" data-part-track=\"\">\n <div data-part=\"indicator\" data-part-indicator=\"\"></div>\n </div>\n @if (labelText(); as text) {\n <span\n data-part=\"label\"\n data-part-label=\"\"\n [id]=\"labelId\"\n [attr.data-ui]=\"labelUi()\"\n [attr.data-ui-visually-hidden]=\"labelUi() ? '' : null\"\n >{{ text }}</span\n >\n }\n <ng-content />`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slLoader',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-ui-progress-indicator': '',\n 'data-part': 'root',\n 'data-part-root': '',\n 'data-shape': 'morph',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-contained]': 'containedAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n },\n})\nexport class SlLoader extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'morph';\n\n /** M3's fully rounded container behind the morphing shape. */\n readonly contained = input(false, { transform: booleanAttribute });\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly containedAttribute = computed(() => (this.contained() ? '' : null));\n}\n","import {\n PROGRESS_WAVE_BAR_INDETERMINATE_PATH,\n PROGRESS_WAVE_BAR_PATH,\n PROGRESS_WAVE_BAR_REACH,\n} from '@slotted/core/progress';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n measurableNumber,\n optionalNumber,\n SlProgressIndicatorBase,\n} from './progress-indicator-base';\nimport {\n PROGRESS_DEFAULT_PLACEMENT,\n type ProgressPlacement,\n type ProgressShape,\n} from './progress-indicator.constants';\n\n/**\n * The linear recipe: a quantity along a track, or a wait travelling it.\n *\n * The shape is M3's from 2024 onward — a fully rounded indicator, a gap of one\n * thickness before the track it has not reached, and a stop indicator marking\n * where the bar is going. The gap and the dot are what make a bar at four per\n * cent read as four per cent of something rather than as a stray mark, and no\n * other surveyed implementation draws either.\n *\n * `placement=\"page\"` is the whole of what the deleted `loading-bar` family\n * was: the same bar pinned to the top edge of the viewport, with no corner to\n * round and a transparent track, because a permanent grey band across the top\n * of a page reads as a rule under the header rather than as a wait.\n * `edge-start` and `edge-end` are the same bar on an edge of the nearest\n * positioned box, which is the frame `app-shell` and `page-header` render as\n * their `progress` part.\n *\n * With `wave` the indicator is an `svg` over the whole track and one stroked\n * path inside it; the stylesheet shows a window of it with a dash, so the bar\n * ends in its own crest with a round cap. The path carries the `svg:` prefix\n * for the reason the ring's shapes do: inside a control-flow block the parser\n * decides the namespace, and an unprefixed `path` would be an unknown HTML\n * element that draws nothing.\n *\n * The selector is a bare attribute, so the element stays the consumer's: a bar\n * belongs in whatever already holds it — a table cell, a card's footer, a\n * `header` — and wrapping it in a second element would change their layout to\n * carry an attribute.\n */\n@Component({\n selector: '[slProgressBar]',\n standalone: true,\n template: `@if (labelText(); as text) {\n <span\n data-part=\"label\"\n data-part-label=\"\"\n [id]=\"labelId\"\n [attr.data-ui]=\"labelUi()\"\n [attr.data-ui-visually-hidden]=\"labelUi() ? '' : null\"\n >{{ text }}</span\n >\n }\n @if (showValueValue()) {\n <span data-part=\"value\" data-part-value=\"\">{{ valueTextValue() }}</span>\n }\n <div data-part=\"track\" data-part-track=\"\">\n <!-- Each paint draws the indicator again, so its sweep starts at the\n leading edge: the branch changes with the paint's parity. -->\n @if (paint() % 2 === 0) {\n @if (wave()) {\n <svg\n aria-hidden=\"true\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n focusable=\"false\"\n preserveAspectRatio=\"xMinYMid meet\"\n [attr.viewBox]=\"waveViewBox\"\n >\n <svg:path [attr.d]=\"wavePath()\" [attr.pathLength]=\"waveReach\" />\n </svg>\n } @else {\n <div data-part=\"indicator\" data-part-indicator=\"\"></div>\n }\n } @else {\n @if (wave()) {\n <svg\n aria-hidden=\"true\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n focusable=\"false\"\n preserveAspectRatio=\"xMinYMid meet\"\n [attr.viewBox]=\"waveViewBox\"\n >\n <svg:path [attr.d]=\"wavePath()\" [attr.pathLength]=\"waveReach\" />\n </svg>\n } @else {\n <div data-part=\"indicator\" data-part-indicator=\"\"></div>\n }\n }\n </div>`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slProgressBar',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-ui-progress-indicator': '',\n 'data-part': 'root',\n 'data-part-root': '',\n 'data-shape': 'linear',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.aria-valuemin]': 'valueMinAttribute()',\n '[attr.aria-valuemax]': 'valueMaxAttribute()',\n '[attr.aria-valuenow]': 'valueNowAttribute()',\n '[attr.aria-valuetext]': 'valueTextAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-complete]': 'completeAttribute()',\n '[attr.data-buffered]': 'bufferedAttribute()',\n '[attr.data-placement]': 'placementAttribute()',\n '[attr.data-wave]': 'waveAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n '[style.--slotted-progress-indicator-percent]': 'percentStyle()',\n '[style.--slotted-progress-indicator-buffer-percent]': 'bufferStyle()',\n },\n})\nexport class SlProgressBar extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'linear';\n\n readonly value = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly min = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly max = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n /** A second, further quantity: received but not yet processed. */\n readonly buffer = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly valueText = input<string | undefined>(undefined);\n readonly format = input<Intl.NumberFormatOptions | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly wave = input(false, { transform: booleanAttribute });\n readonly placement = input<ProgressPlacement>(PROGRESS_DEFAULT_PLACEMENT);\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly placementAttribute = computed(() =>\n this.placement() === 'inline' ? null : this.placement(),\n );\n protected readonly waveAttribute = computed(() => (this.wave() ? '' : null));\n\n /**\n * M3's sine from `@slotted/core/progress`, in a user space where one unit\n * is one thickness, and the tighter wave M3 draws while the value is\n * unknown. The viewBox and `pathLength` both state the path's reach, which\n * is what makes a dash of one unit one thickness of travel at any amplitude.\n */\n protected readonly waveReach = PROGRESS_WAVE_BAR_REACH;\n protected readonly waveViewBox = `0 -1.25 ${PROGRESS_WAVE_BAR_REACH} 2.5`;\n protected readonly wavePath = computed(() =>\n this.geometry().indeterminate ? PROGRESS_WAVE_BAR_INDETERMINATE_PATH : PROGRESS_WAVE_BAR_PATH,\n );\n\n /**\n * A bar on an edge has no room for a visible name and still needs one, so the\n * placement decides it — and a consumer who states `hideLabel` outright still\n * wins, which is the rule the whole library follows.\n */\n protected override hidesLabelByPlacement(): boolean {\n return this.placement() !== 'inline';\n }\n\n protected override measure() {\n return {\n value: this.value(),\n min: this.min(),\n max: this.max(),\n buffer: this.buffer(),\n format: this.format(),\n showValue: this.showValue(),\n valueText: this.valueText(),\n locale: this.locale(),\n };\n }\n}\n","import { PROGRESS_WAVE_RING_PATH } from '@slotted/core/progress';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n input,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport {\n measurableNumber,\n optionalNumber,\n SlProgressIndicatorBase,\n} from './progress-indicator-base';\nimport type { ProgressShape } from './progress-indicator.constants';\n\n/**\n * The circular recipe, and with no value the spinner every surveyed library\n * ships under that name.\n *\n * Two concentric shapes in one `48 48` box, each carrying `pathLength=\"100\"`\n * so a dash length *is* the percentage and the stylesheet needs no arithmetic\n * of its own. The stroke is stated in the viewBox's own units, which makes it\n * one eighth of the diameter at every size — the ratio `button` derived for its\n * own loading ring, so the ring in a button and this circle are the same\n * object.\n *\n * The number sits beside the ring rather than inside it: the largest ring this\n * family draws is 38 pixels across with a 4.75-pixel stroke, which leaves 28\n * pixels of hole, and a percentage centred in it would be four-pixel type.\n *\n * With `wave` the indicator is M3's wavy ring from `@slotted/core/progress`\n * and the track stays a circle, which is what `CircularWavyProgressModifiers`\n * draws: only the active indicator morphs.\n *\n * The shapes carry the `svg:` prefix because a template's namespace is decided\n * by the parser rather than by the parent element: inside a control-flow block\n * an unprefixed `circle` is an unknown HTML element, and an unknown HTML\n * element draws nothing at all.\n */\n@Component({\n selector: '[slProgressCircle]',\n standalone: true,\n template: `<svg aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 48 48\">\n <svg:circle\n cx=\"24\"\n cy=\"24\"\n data-part=\"track\"\n data-part-track=\"\"\n [attr.pathLength]=\"100\"\n r=\"20\"\n />\n <!-- Each paint draws the indicator again, so its sweep starts at the\n leading edge: the branch changes with the paint's parity. -->\n @if (paint() % 2 === 0) {\n @if (wave()) {\n <svg:path\n [attr.d]=\"wavePath\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n [attr.pathLength]=\"100\"\n />\n } @else {\n <svg:circle\n cx=\"24\"\n cy=\"24\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n [attr.pathLength]=\"100\"\n r=\"20\"\n />\n }\n } @else {\n @if (wave()) {\n <svg:path\n [attr.d]=\"wavePath\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n [attr.pathLength]=\"100\"\n />\n } @else {\n <svg:circle\n cx=\"24\"\n cy=\"24\"\n data-part=\"indicator\"\n data-part-indicator=\"\"\n [attr.pathLength]=\"100\"\n r=\"20\"\n />\n }\n }\n </svg>\n @if (labelText(); as text) {\n <span\n data-part=\"label\"\n data-part-label=\"\"\n [id]=\"labelId\"\n [attr.data-ui]=\"labelUi()\"\n [attr.data-ui-visually-hidden]=\"labelUi() ? '' : null\"\n >{{ text }}</span\n >\n }\n @if (showValueValue()) {\n <span data-part=\"value\" data-part-value=\"\">{{ valueTextValue() }}</span>\n }`,\n styleUrls: [\n '../../../styles/src/progress-indicator/progress-indicator.css',\n '../../../styles/src/visually-hidden/visually-hidden.css',\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'slProgressCircle',\n host: {\n 'data-ui': 'progress-indicator',\n 'data-ui-progress-indicator': '',\n 'data-part': 'root',\n 'data-part-root': '',\n 'data-shape': 'circular',\n '[attr.role]': 'roleAttribute()',\n '[attr.aria-hidden]': 'hiddenFromTree()',\n '[attr.aria-labelledby]': 'labelledByAttribute()',\n '[attr.aria-valuemin]': 'valueMinAttribute()',\n '[attr.aria-valuemax]': 'valueMaxAttribute()',\n '[attr.aria-valuenow]': 'valueNowAttribute()',\n '[attr.aria-valuetext]': 'valueTextAttribute()',\n '[attr.data-size]': 'sizeValue()',\n '[attr.data-tone]': 'toneValue()',\n '[attr.data-indeterminate]': 'indeterminateAttribute()',\n '[attr.data-complete]': 'completeAttribute()',\n '[attr.data-wave]': 'waveAttribute()',\n '[attr.hidden]': 'painted() ? null : \"\"',\n '[style.--slotted-progress-indicator-percent]': 'percentStyle()',\n },\n})\nexport class SlProgressCircle extends SlProgressIndicatorBase {\n protected override readonly shape: ProgressShape = 'circular';\n protected readonly wavePath = PROGRESS_WAVE_RING_PATH;\n\n readonly value = input<number | null | undefined, unknown>(undefined, {\n transform: measurableNumber,\n });\n readonly min = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly max = input<number | undefined, unknown>(undefined, { transform: optionalNumber });\n readonly showValue = input(false, { transform: booleanAttribute });\n readonly valueText = input<string | undefined>(undefined);\n readonly format = input<Intl.NumberFormatOptions | undefined>(undefined);\n readonly locale = input<string | undefined>(undefined);\n readonly wave = input(false, { transform: booleanAttribute });\n\n protected readonly labelUi = computed(() => (this.labelHidden() ? 'visually-hidden' : null));\n protected readonly waveAttribute = computed(() => (this.wave() ? '' : null));\n\n protected override measure() {\n return {\n value: this.value(),\n min: this.min(),\n max: this.max(),\n buffer: null,\n format: this.format(),\n showValue: this.showValue(),\n valueText: this.valueText(),\n locale: this.locale(),\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAuBO,MAAM,iCAAiC,GAAG,IAAI,cAAc,CACjE,qCAAqC,EACrC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAkC,EAAE,CAAC,EAAE;AAGxE;;;;;AAKG;AACG,SAAU,gCAAgC,CAAC,QAAmC,EAAA;IAClF,OAAO,EAAE,OAAO,EAAE,iCAAiC,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC3E;SAEgB,+BAA+B,GAAA;AAC7C,IAAA,OAAO,MAAM,CAAC,iCAAiC,CAAC;AAClD;;AClCO,MAAM,qBAAqB,GAAiB,IAAI;AAChD,MAAM,qBAAqB,GAAiB,QAAQ;AACpD,MAAM,0BAA0B,GAAsB,QAAQ;AAC9D,MAAM,oBAAoB,GAAG,CAAC;AAC9B,MAAM,oBAAoB,GAAG,GAAG;;ACmBvC,IAAI,MAAM,GAAG,CAAC;AAEd;;;;;;;;;;;;;;;AAeG;MAEmB,uBAAuB,CAAA;IAIlC,OAAO,GAAG,KAAK,CAAC,IAAI,+EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACtD,KAAK,GAAG,KAAK,CAA8B,SAAS,6EAAI,SAAS,EAAE,cAAc,EAAA,CAAG;IACpF,WAAW,GAAG,KAAK,CAA8B,SAAS,mFACjE,SAAS,EAAE,cAAc,EAAA,CACzB;IACO,KAAK,GAAG,KAAK,CAAqB,SAAS;8EAAC;IAC5C,SAAS,GAAG,KAAK,CAA+B,SAAS,iFAChE,SAAS,EAAE,eAAe,EAAA,CAC1B;IACO,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAC1D,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;AAE1D;;;;;AAKG;IACM,QAAQ,GAAG,MAAM,EAAQ;IAEf,QAAQ,GAAG,+BAA+B,EAAE;AAE/D;;;;AAIG;IACgB,YAAY,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE;AAC7E,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;IACiB,iBAAiB,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,EAAE;AACvF,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;IACiB,aAAa,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAE;AAC/E,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEF;;;;AAIG;IACgB,OAAO,GAAG,qBAAqB,MAAM,IAAI,CAAC,GAAG;;IAGvD,OAAO,GAAG,MAAM,CAAC,KAAK;gFAAC;AAChC;;;;;AAKG;IACM,KAAK,GAAG,MAAM,CAAC,CAAC;8EAAC;AAEjB,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,qBAAqB;kFAAC;AACtF,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,qBAAqB;kFAAC;AACtF,IAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;kFAAC;AAC/D,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;oFAAC;;IAG7E,OAAO,GAAA;AAUf,QAAA,OAAO,IAAI;IACb;;IAGU,qBAAqB,GAAA;AAC7B,QAAA,OAAO,KAAK;IACd;AAES,IAAA,QAAQ,GAAG,QAAQ,CAAmB,MAAK;AAClD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;AAC/B,QAAA,OAAO,gBAAgB,CAAC;YACtB,KAAK,EAAE,QAAQ,EAAE,KAAK;YACtB,GAAG,EAAE,QAAQ,EAAE,GAAG;YAClB,GAAG,EAAE,QAAQ,EAAE,GAAG;YAClB,MAAM,EAAE,QAAQ,EAAE,MAAM;AACzB,SAAA,CAAC;IACJ,CAAC;iFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE;QAC/B,IAAI,QAAQ,KAAK,IAAI;AAAE,YAAA,OAAO,SAAS;AACvC,QAAA,OAAO,iBAAiB,CAAC;AACvB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAChD,SAAA,CAAC;IACJ,CAAC;uFAAC;AAEO,IAAA,cAAc,GAAG,QAAQ,CAChC,MACE,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,KAAK,IAAI;AAClC,QAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa;AAC9B,QAAA,IAAI,CAAC,cAAc,EAAE,KAAK,SAAS;uFACtC;AAEkB,IAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;8EAAC;;AAI5E,IAAA,aAAa,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,aAAa,CAAC;sFAAC;IAC1E,mBAAmB,GAAG,QAAQ,CAAC,MAChD,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB;4FACjF;AACD;;;;;AAKG;IACgB,cAAc,GAAG,QAAQ,CAAC,MAC3C,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa;uFACxE;AACD;;;;;;AAMG;AACgB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG;0FAC1E;AACkB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG;0FAC1E;AACkB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ;0FACrF;IACkB,kBAAkB,GAAG,QAAQ,CAAC,MAC/C,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC;2FAC3D;IACkB,sBAAsB,GAAG,QAAQ,CAAC,MACnD,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI;+FACrE;IACkB,iBAAiB,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC;0FAAC;AAC1E,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAA,CAAE;qFAAC;AAC3D,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM;AACrC,QAAA,OAAO,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,CAAA,EAAG,MAAM,EAAE;IAC7C,CAAC;oFAAC;IACiB,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;0FAC5C;IAEO,OAAO,GAA2B,wBAAwB;AAC1D,IAAA,KAAK;AAEb,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5D,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,OAAO,GAAG;AACd,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AAC/C,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC;aAClE;YACD,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,QAAA,CAAC,CAAC;AAEF;;;;;;AAMG;QACH,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,QAAQ,GACZ,CAAC,IAAI,CAAC,UAAU,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,EAAE,KAAK,SAAS;gBAC9B,IAAI,CAAC,YAAY,KAAK,IAAI;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,KAAK,IAAI;AACjC,YAAA,IAAI,SAAS,EAAE,IAAI,QAAQ,EAAE;gBAC3B,OAAO,CAAC,IAAI,CACV,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA,yHAAA,CAA2H,CACpJ;YACH;AACF,QAAA,CAAC,CAAC;IACJ;AAEA;;;;;AAKG;AACK,IAAA,MAAM,CAAC,OAAiE,EAAA;AAC9E,QAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC1F,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK;AAE3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;AACtC,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACtD,QAAA,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;AAEzE,QAAA,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;IAClE;uGAtNoB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C;;AA0ND;;;;AAIG;AACG,SAAU,cAAc,CAAC,KAAc,EAAA;IAC3C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,GAAG,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;AACnG;AAEA;;;;AAIG;AACG,SAAU,eAAe,CAAC,KAAc,EAAA;AAC5C,IAAA,OAAO,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAClE;AAEA;;;;AAIG;AACG,SAAU,gBAAgB,CAAC,KAAc,EAAA;IAC7C,IAAI,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,SAAS;AACzC,IAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;AAAE,QAAA,OAAO,IAAI;AAC/C,IAAA,OAAO,eAAe,CAAC,KAAK,CAAC;AAC/B;;ACxRA;;;;;;;;;;;;;;;;;;;;AAoBG;AAyCG,MAAO,QAAS,SAAQ,uBAAuB,CAAA;IACvB,KAAK,GAAkB,OAAO;;IAGjD,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/C,IAAA,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC;gFAAC;AACzE,IAAA,kBAAkB,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;2FAAC;uGAP3E,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArCT,CAAA;;;;;;;;;;;;;AAaO,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAwBN,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAxCpB,SAAS;+BACE,YAAY,EAAA,UAAA,EACV,IAAI,EAAA,QAAA,EACN,CAAA;;;;;;;;;;;;;mBAaO,EAAA,eAAA,EAKA,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,UAAU,EAAA,IAAA,EACd;AACJ,wBAAA,SAAS,EAAE,oBAAoB;AAC/B,wBAAA,4BAA4B,EAAE,EAAE;AAChC,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,YAAY,EAAE,OAAO;AACrB,wBAAA,aAAa,EAAE,iBAAiB;AAChC,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,wBAAwB,EAAE,uBAAuB;AACjD,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,2BAA2B,EAAE,0BAA0B;AACvD,wBAAA,uBAAuB,EAAE,sBAAsB;AAC/C,wBAAA,eAAe,EAAE,uBAAuB;AACzC,qBAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA;;;AC9CH;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BG;AAoFG,MAAO,aAAc,SAAQ,uBAAuB,CAAA;IAC5B,KAAK,GAAkB,QAAQ;IAElD,KAAK,GAAG,KAAK,CAAqC,SAAS,6EAClE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,GAAG,GAAG,KAAK,CAA8B,SAAS,2EAAI,SAAS,EAAE,cAAc,EAAA,CAAG;IAClF,GAAG,GAAG,KAAK,CAA8B,SAAS,2EAAI,SAAS,EAAE,cAAc,EAAA,CAAG;;IAElF,MAAM,GAAG,KAAK,CAAqC,SAAS,8EACnE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACzD,SAAS,GAAG,KAAK,CAAqB,SAAS;kFAAC;IAChD,MAAM,GAAG,KAAK,CAAuC,SAAS;+EAAC;IAC/D,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,KAAK,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACpD,SAAS,GAAG,KAAK,CAAoB,0BAA0B;kFAAC;AAEtD,IAAA,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC;gFAAC;IACzE,kBAAkB,GAAG,QAAQ,CAAC,MAC/C,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;2FACxD;AACkB,IAAA,aAAa,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;sFAAC;AAE5E;;;;;AAKG;IACgB,SAAS,GAAG,uBAAuB;AACnC,IAAA,WAAW,GAAG,CAAA,QAAA,EAAW,uBAAuB,CAAA,IAAA,CAAM;AACtD,IAAA,QAAQ,GAAG,QAAQ,CAAC,MACrC,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,GAAG,oCAAoC,GAAG,sBAAsB;iFAC9F;AAED;;;;AAIG;IACgB,qBAAqB,GAAA;AACtC,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,QAAQ;IACtC;IAEmB,OAAO,GAAA;QACxB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AACf,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AACf,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACtB;IACH;uGAzDW,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,4CAAA,EAAA,gBAAA,EAAA,mDAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAhFd,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CD,UAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAiCE,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnFzB,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,QAAA,EACN,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA+CD,EAAA,eAAA,EAKQ,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,eAAe,EAAA,IAAA,EACnB;AACJ,wBAAA,SAAS,EAAE,oBAAoB;AAC/B,wBAAA,4BAA4B,EAAE,EAAE;AAChC,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,YAAY,EAAE,QAAQ;AACtB,wBAAA,aAAa,EAAE,iBAAiB;AAChC,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,wBAAwB,EAAE,uBAAuB;AACjD,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,uBAAuB,EAAE,sBAAsB;AAC/C,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,2BAA2B,EAAE,0BAA0B;AACvD,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,uBAAuB,EAAE,sBAAsB;AAC/C,wBAAA,kBAAkB,EAAE,iBAAiB;AACrC,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,8CAA8C,EAAE,gBAAgB;AAChE,wBAAA,qDAAqD,EAAE,eAAe;AACvE,qBAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA;;;ACtHH;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AA+FG,MAAO,gBAAiB,SAAQ,uBAAuB,CAAA;IAC/B,KAAK,GAAkB,UAAU;IAC1C,QAAQ,GAAG,uBAAuB;IAE5C,KAAK,GAAG,KAAK,CAAqC,SAAS,6EAClE,SAAS,EAAE,gBAAgB,EAAA,CAC3B;IACO,GAAG,GAAG,KAAK,CAA8B,SAAS,2EAAI,SAAS,EAAE,cAAc,EAAA,CAAG;IAClF,GAAG,GAAG,KAAK,CAA8B,SAAS,2EAAI,SAAS,EAAE,cAAc,EAAA,CAAG;IAClF,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IACzD,SAAS,GAAG,KAAK,CAAqB,SAAS;kFAAC;IAChD,MAAM,GAAG,KAAK,CAAuC,SAAS;+EAAC;IAC/D,MAAM,GAAG,KAAK,CAAqB,SAAS;+EAAC;IAC7C,IAAI,GAAG,KAAK,CAAC,KAAK,4EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1C,IAAA,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,iBAAiB,GAAG,IAAI,CAAC;gFAAC;AACzE,IAAA,aAAa,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;sFAAC;IAEzD,OAAO,GAAA;QACxB,OAAO;AACL,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACnB,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AACf,YAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AACf,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE;AAC3B,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SACtB;IACH;uGA7BW,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,yBAAA,EAAA,4CAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA3FjB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DN,KAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA8BO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA9F5B,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,QAAA,EACN,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6DN,EAAA,eAAA,EAKa,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAC3B,kBAAkB,EAAA,IAAA,EACtB;AACJ,wBAAA,SAAS,EAAE,oBAAoB;AAC/B,wBAAA,4BAA4B,EAAE,EAAE;AAChC,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,gBAAgB,EAAE,EAAE;AACpB,wBAAA,YAAY,EAAE,UAAU;AACxB,wBAAA,aAAa,EAAE,iBAAiB;AAChC,wBAAA,oBAAoB,EAAE,kBAAkB;AACxC,wBAAA,wBAAwB,EAAE,uBAAuB;AACjD,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,uBAAuB,EAAE,sBAAsB;AAC/C,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,kBAAkB,EAAE,aAAa;AACjC,wBAAA,2BAA2B,EAAE,0BAA0B;AACvD,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,kBAAkB,EAAE,iBAAiB;AACrC,wBAAA,eAAe,EAAE,uBAAuB;AACxC,wBAAA,8CAA8C,EAAE,gBAAgB;AACjE,qBAAA,EAAA,MAAA,EAAA,CAAA,ks2BAAA,EAAA,6QAAA,CAAA,EAAA;;;ACrIH;;AAEG;;"}
|