@koobiq/components 20.4.2 → 21.0.1
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/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +791 -609
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2871 -2595
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +400 -149
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +463 -143
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +734 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1700 -617
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +415 -18
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.cjs +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/{data.js → data.cjs} +3 -0
- package/schematics/migrations/alert-signals/index.cjs +221 -0
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.cjs +136 -0
- package/schematics/migrations/app-switcher-signals/index.cjs +366 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
- package/schematics/migrations/autocomplete-signals/index.cjs +707 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.cjs +109 -0
- package/schematics/migrations/badge-signals/index.cjs +694 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.cjs +136 -0
- package/schematics/migrations/button-state-and-styles/index.cjs +221 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.cjs +106 -0
- package/schematics/migrations/button-supported-colors/index.cjs +261 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.cjs +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.cjs +88 -0
- package/schematics/migrations/button-truncation/index.cjs +270 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.cjs +114 -0
- package/schematics/migrations/checkbox-signals/index.cjs +635 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.cjs +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.cjs +121 -0
- package/schematics/migrations/code-block-signals/index.cjs +701 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.cjs +131 -0
- package/schematics/migrations/color-signals/index.cjs +20 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.cjs +49 -0
- package/schematics/migrations/datepicker-signals/index.cjs +18 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
- package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.cjs +152 -0
- package/schematics/migrations/dropdown-signals/index.cjs +20 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
- package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
- package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.cjs +58 -0
- package/schematics/migrations/flag-inner-html/index.cjs +62 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.cjs +288 -0
- package/schematics/migrations/form-field-signals/index.cjs +383 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.cjs +135 -0
- package/schematics/migrations/input-number-surface/index.cjs +293 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.cjs +30 -0
- package/schematics/migrations/input-signals/index.cjs +18 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.cjs +116 -0
- package/schematics/migrations/link-signals/index.cjs +416 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.cjs +35 -0
- package/schematics/migrations/list-signals/index.cjs +18 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
- package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
- package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.cjs +79 -0
- package/schematics/migrations/markdown-signals/index.cjs +640 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.cjs +132 -0
- package/schematics/migrations/modal-signals/index.cjs +20 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.cjs +66 -0
- package/schematics/migrations/notification-center-signals/index.cjs +62 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.cjs +86 -0
- package/schematics/migrations/option-signals/index.cjs +20 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
- package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
- package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.cjs +70 -0
- package/schematics/migrations/query-list-signals/index.cjs +18 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
- package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.cjs +88 -0
- package/schematics/migrations/state-saving-default/index.cjs +63 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.cjs +66 -0
- package/schematics/migrations/table-cell-content/index.cjs +67 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
- package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.cjs +191 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.cjs +103 -0
- package/schematics/migrations/tags-signals/index.cjs +674 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.cjs +121 -0
- package/schematics/migrations/textarea-signals/index.cjs +380 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.cjs +139 -0
- package/schematics/migrations/time-range-title-for/index.cjs +164 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.cjs +82 -0
- package/schematics/migrations/timepicker-signals/index.cjs +710 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.cjs +69 -0
- package/schematics/migrations/title-encapsulation/index.cjs +58 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.cjs +106 -0
- package/schematics/migrations/tree-select-signals/index.cjs +59 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.cjs +123 -0
- package/schematics/migrations/tree-signals/index.cjs +55 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
- package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
- package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
- package/schematics/migrations/v21-upgrade/index.cjs +95 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +401 -6
- package/schematics/ng-add/index.cjs +266 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/deprecated-path-migration.cjs +62 -0
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +670 -0
- package/types/koobiq-components-tree.d.ts +1339 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/schematics/migrations/alert-signals/index.js +0 -353
- package/schematics/migrations/filter-bar-signals/index.js +0 -319
- package/schematics/migrations/v20-upgrade/index.js +0 -225
- package/schematics/ng-add/index.js +0 -39
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -178
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
- /package/schematics/utils/{messages.js → messages.cjs} +0 -0
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -3,10 +3,11 @@ import { Directionality } from '@angular/cdk/bidi';
|
|
|
3
3
|
import { UniqueSelectionDispatcher } from '@angular/cdk/collections';
|
|
4
4
|
import { ENTER, SPACE } from '@angular/cdk/keycodes';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
|
-
import { inject, Renderer2, Injector, signal, afterNextRender, RendererStyleFlags2, Directive, viewChild, ViewEncapsulation,
|
|
6
|
+
import { inject, Renderer2, Injector, computed, signal, afterNextRender, untracked, RendererStyleFlags2, Directive, viewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, contentChild, forwardRef, linkedSignal, input, output, booleanAttribute, ElementRef, contentChildren, numberAttribute, effect, NgModule } from '@angular/core';
|
|
7
|
+
import * as i1 from '@koobiq/components/core';
|
|
8
|
+
import { kbqInjectNativeElement, kbqAnimationsDisabled, KbqStateSaving } from '@koobiq/components/core';
|
|
7
9
|
import { Subscription, Subject } from 'rxjs';
|
|
8
10
|
import { Platform } from '@angular/cdk/platform';
|
|
9
|
-
import { kbqInjectNativeElement, KBQ_WINDOW } from '@koobiq/components/core';
|
|
10
11
|
import { KbqIcon } from '@koobiq/components/icon';
|
|
11
12
|
|
|
12
13
|
const CONTENT_HEIGHT = '--kbq-accordion-content-height';
|
|
@@ -27,8 +28,14 @@ class KbqAccordionContentDirective {
|
|
|
27
28
|
this.nativeElement = kbqInjectNativeElement();
|
|
28
29
|
/** @docs-private */
|
|
29
30
|
this.item = inject(KbqAccordionItem);
|
|
31
|
+
/**
|
|
32
|
+
* Value of `data-state`.
|
|
33
|
+
*
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
this.dataState = computed(() => this.item.dataState, ...(ngDevMode ? [{ debugName: "dataState" }] : /* istanbul ignore next */ []));
|
|
30
37
|
/** @docs-private */
|
|
31
|
-
this.hidden = signal(true, ...(ngDevMode ? [{ debugName: "hidden" }] : []));
|
|
38
|
+
this.hidden = signal(true, ...(ngDevMode ? [{ debugName: "hidden" }] : /* istanbul ignore next */ []));
|
|
32
39
|
/** Whether the first browser render has happened; until then a toggle only sets the initial state. */
|
|
33
40
|
this.rendered = false;
|
|
34
41
|
// `afterNextRender` never runs on the server, so no platform check is needed here.
|
|
@@ -57,10 +64,14 @@ class KbqAccordionContentDirective {
|
|
|
57
64
|
this.disableAnimation();
|
|
58
65
|
}
|
|
59
66
|
toggle() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
// Untracked: called from a consumer's `effect()`, the `expanded` of the item read on the way would make the
|
|
68
|
+
// effect run again on every expand and collapse.
|
|
69
|
+
untracked(() => {
|
|
70
|
+
if (this.rendered) {
|
|
71
|
+
this.pinHeight();
|
|
72
|
+
}
|
|
73
|
+
this.hidden.set(!this.item.expanded);
|
|
74
|
+
});
|
|
64
75
|
}
|
|
65
76
|
/** @docs-private */
|
|
66
77
|
onTransitionEnd(event) {
|
|
@@ -134,10 +145,10 @@ class KbqAccordionContentDirective {
|
|
|
134
145
|
releaseHeight() {
|
|
135
146
|
this.renderer.removeStyle(this.nativeElement, CONTENT_HEIGHT, RendererStyleFlags2.DashCase);
|
|
136
147
|
}
|
|
137
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
138
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
148
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
149
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqAccordionContentDirective, isStandalone: true, selector: "[kbqAccordionContent]", host: { listeners: { "transitionend": "onTransitionEnd($event)", "transitioncancel": "onTransitionEnd($event)" }, properties: { "attr.id": "contentId", "attr.role": "\"region\"", "attr.hidden": "hidden() ? \"\" : null", "attr.inert": "hidden() ? \"\" : null", "attr.aria-labelledby": "triggerId", "attr.data-state": "dataState()", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" } }, exportAs: ["kbqAccordionContent"], ngImport: i0 }); }
|
|
139
150
|
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
151
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionContentDirective, decorators: [{
|
|
141
152
|
type: Directive,
|
|
142
153
|
args: [{
|
|
143
154
|
selector: '[kbqAccordionContent]',
|
|
@@ -151,7 +162,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
151
162
|
// a zero-height, clipped box.
|
|
152
163
|
'[attr.inert]': 'hidden() ? "" : null',
|
|
153
164
|
'[attr.aria-labelledby]': 'triggerId',
|
|
154
|
-
'
|
|
165
|
+
// Signals of this directive's own: the item and its other parts read the same state, and the host bindings of
|
|
166
|
+
// every item in a view run in that view's reactive consumer, where a signal read again after others costs a
|
|
167
|
+
// scan of all it has read so far.
|
|
168
|
+
'[attr.data-state]': 'dataState()',
|
|
155
169
|
'[attr.data-disabled]': 'item.disabled',
|
|
156
170
|
'[attr.data-orientation]': 'item.orientation',
|
|
157
171
|
'(transitionend)': 'onTransitionEnd($event)',
|
|
@@ -169,6 +183,18 @@ class KbqAccordionTriggerDirective {
|
|
|
169
183
|
this.accordion = inject(KbqAccordion);
|
|
170
184
|
/** @docs-private */
|
|
171
185
|
this.item = inject(KbqAccordionItem);
|
|
186
|
+
/**
|
|
187
|
+
* Value of `aria-expanded`.
|
|
188
|
+
*
|
|
189
|
+
* @internal
|
|
190
|
+
*/
|
|
191
|
+
this.expanded = computed(() => this.item.expanded, ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
|
|
192
|
+
/**
|
|
193
|
+
* Value of `data-state`.
|
|
194
|
+
*
|
|
195
|
+
* @internal
|
|
196
|
+
*/
|
|
197
|
+
this.dataState = computed(() => this.item.dataState, ...(ngDevMode ? [{ debugName: "dataState" }] : /* istanbul ignore next */ []));
|
|
172
198
|
}
|
|
173
199
|
/** @docs-private */
|
|
174
200
|
get triggerId() {
|
|
@@ -188,6 +214,7 @@ class KbqAccordionTriggerDirective {
|
|
|
188
214
|
/**
|
|
189
215
|
* Keeps the accordion's key manager in sync with native focus so that arrow-key navigation
|
|
190
216
|
* continues from the header the user has just tabbed/focused into.
|
|
217
|
+
*
|
|
191
218
|
* @docs-private
|
|
192
219
|
*/
|
|
193
220
|
onFocus() {
|
|
@@ -213,20 +240,23 @@ class KbqAccordionTriggerDirective {
|
|
|
213
240
|
focus() {
|
|
214
241
|
this.nativeElement.focus();
|
|
215
242
|
}
|
|
216
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
217
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
243
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
244
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqAccordionTriggerDirective, isStandalone: true, selector: "[kbqAccordionTrigger]", host: { listeners: { "click": "onClick()", "focus": "onFocus()", "keydown": "onKeydown($event)" }, properties: { "attr.id": "triggerId", "attr.role": "\"button\"", "attr.aria-expanded": "expanded()", "attr.aria-controls": "contentId", "attr.aria-disabled": "item.disabled", "attr.data-state": "dataState()", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" } }, ngImport: i0 }); }
|
|
218
245
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionTriggerDirective, decorators: [{
|
|
220
247
|
type: Directive,
|
|
221
248
|
args: [{
|
|
222
249
|
selector: '[kbqAccordionTrigger]',
|
|
223
250
|
host: {
|
|
224
251
|
'[attr.id]': 'triggerId',
|
|
225
252
|
'[attr.role]': '"button"',
|
|
226
|
-
'
|
|
253
|
+
// Signals of this directive's own: the item and its other parts read the same state, and the host bindings of
|
|
254
|
+
// every item in a view run in that view's reactive consumer, where a signal read again after others costs a
|
|
255
|
+
// scan of all it has read so far.
|
|
256
|
+
'[attr.aria-expanded]': 'expanded()',
|
|
227
257
|
'[attr.aria-controls]': 'contentId',
|
|
228
258
|
'[attr.aria-disabled]': 'item.disabled',
|
|
229
|
-
'[attr.data-state]': '
|
|
259
|
+
'[attr.data-state]': 'dataState()',
|
|
230
260
|
'[attr.data-disabled]': 'item.disabled',
|
|
231
261
|
'[attr.data-orientation]': 'item.orientation',
|
|
232
262
|
'(click)': 'onClick()',
|
|
@@ -249,11 +279,15 @@ class KbqAccordionTrigger {
|
|
|
249
279
|
constructor() {
|
|
250
280
|
this.platform = inject(Platform);
|
|
251
281
|
/** @docs-private */
|
|
252
|
-
this.nativeElement = kbqInjectNativeElement();
|
|
253
|
-
/** @docs-private */
|
|
254
282
|
this.accordion = inject(KbqAccordion);
|
|
255
283
|
/** @docs-private */
|
|
256
284
|
this.icon = viewChild.required(KbqIcon);
|
|
285
|
+
/**
|
|
286
|
+
* Whether the icon turns without motion.
|
|
287
|
+
*
|
|
288
|
+
* @docs-private
|
|
289
|
+
*/
|
|
290
|
+
this.animationsDisabled = kbqAnimationsDisabled();
|
|
257
291
|
this.afterRenderRef = afterNextRender(() => {
|
|
258
292
|
this.animationTimerId = setTimeout(() => this.enableAnimation());
|
|
259
293
|
this.afterRenderRef?.destroy();
|
|
@@ -277,31 +311,33 @@ class KbqAccordionTrigger {
|
|
|
277
311
|
enableAnimation() {
|
|
278
312
|
this.icon().getHostElement().style.transition = this.savedTransition;
|
|
279
313
|
}
|
|
280
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
281
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
314
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
315
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqAccordionTrigger, isStandalone: true, selector: "kbq-accordion-trigger, [kbq-accordion-trigger]", host: { properties: { "class.kbq-accordion-trigger_fill": "isFill", "class.kbq-accordion-trigger_hug": "isHug", "class.kbq-accordion-trigger_hug-space-between": "isHugSpaceBetween" }, classAttribute: "kbq-accordion-trigger" }, viewQueries: [{ propertyName: "icon", first: true, predicate: KbqIcon, descendants: true, isSignal: true }], hostDirectives: [{ directive: KbqAccordionTriggerDirective }], ngImport: i0, template: `
|
|
282
316
|
<i
|
|
283
317
|
kbq-icon="{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}"
|
|
284
318
|
class="kbq-accordion-trigger__icon"
|
|
319
|
+
[class.kbq-animations-disabled]="animationsDisabled"
|
|
285
320
|
></i>
|
|
286
321
|
|
|
287
322
|
<ng-content />
|
|
288
|
-
`, isInline: true, styles: ["
|
|
323
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";.kbq-accordion-trigger{display:flex;flex-direction:row;align-items:center}.kbq-accordion-trigger .kbq-accordion-trigger__icon{box-sizing:initial;align-self:flex-start;padding:var(--kbq-size-xxs);transition:transform .3s ease-out}.kbq-accordion-trigger .kbq-accordion-trigger__icon.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-trigger .kbq-accordion-trigger__icon{animation:none;transition:none}}.kbq-accordion-trigger .kbq-accordion-trigger__badge,.kbq-accordion-trigger .kbq-accordion-trigger__caption{margin-top:var(--kbq-size-xxs);margin-right:var(--kbq-size-s)}.kbq-accordion-trigger.kbq-accordion-trigger_fill{padding:var(--kbq-accordion-size-item-header-variant-fill-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_fill[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug{flex-direction:row-reverse;justify-content:flex-end;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between{flex-direction:row-reverse;justify-content:space-between;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(-180deg)}button.kbq-accordion-trigger{flex:1;min-width:0}\n", ".kbq-accordion{--kbq-accordion-size-item-border-width: 2px;--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-size-item-header-actions-gap: var(--kbq-size-3xs);--kbq-accordion-size-item-header-actions-padding-right: var(--kbq-size-s);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
289
324
|
}
|
|
290
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionTrigger, decorators: [{
|
|
291
326
|
type: Component,
|
|
292
327
|
args: [{ selector: 'kbq-accordion-trigger, [kbq-accordion-trigger]', imports: [KbqIcon], template: `
|
|
293
328
|
<i
|
|
294
329
|
kbq-icon="{{ isHugSpaceBetween ? 'kbq-chevron-down-s_16' : 'kbq-chevron-right-s_16' }}"
|
|
295
330
|
class="kbq-accordion-trigger__icon"
|
|
331
|
+
[class.kbq-animations-disabled]="animationsDisabled"
|
|
296
332
|
></i>
|
|
297
333
|
|
|
298
334
|
<ng-content />
|
|
299
|
-
`, encapsulation: ViewEncapsulation.None, host: {
|
|
335
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
300
336
|
class: 'kbq-accordion-trigger',
|
|
301
337
|
'[class.kbq-accordion-trigger_fill]': 'isFill',
|
|
302
338
|
'[class.kbq-accordion-trigger_hug]': 'isHug',
|
|
303
339
|
'[class.kbq-accordion-trigger_hug-space-between]': 'isHugSpaceBetween'
|
|
304
|
-
}, hostDirectives: [KbqAccordionTriggerDirective], styles: ["
|
|
340
|
+
}, hostDirectives: [KbqAccordionTriggerDirective], styles: ["@charset \"UTF-8\";.kbq-accordion-trigger{display:flex;flex-direction:row;align-items:center}.kbq-accordion-trigger .kbq-accordion-trigger__icon{box-sizing:initial;align-self:flex-start;padding:var(--kbq-size-xxs);transition:transform .3s ease-out}.kbq-accordion-trigger .kbq-accordion-trigger__icon.kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-trigger .kbq-accordion-trigger__icon{animation:none;transition:none}}.kbq-accordion-trigger .kbq-accordion-trigger__badge,.kbq-accordion-trigger .kbq-accordion-trigger__caption{margin-top:var(--kbq-size-xxs);margin-right:var(--kbq-size-s)}.kbq-accordion-trigger.kbq-accordion-trigger_fill{padding:var(--kbq-accordion-size-item-header-variant-fill-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_fill[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug{flex-direction:row-reverse;justify-content:flex-end;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(90deg)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between{flex-direction:row-reverse;justify-content:space-between;padding:var(--kbq-accordion-size-item-header-variant-hug-padding)}.kbq-accordion-trigger.kbq-accordion-trigger_hug-space-between[data-state=open]>.kbq-accordion-trigger__icon{transform:rotate(-180deg)}button.kbq-accordion-trigger{flex:1;min-width:0}\n", ".kbq-accordion{--kbq-accordion-size-item-border-width: 2px;--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-size-item-header-actions-gap: var(--kbq-size-3xs);--kbq-accordion-size-item-header-actions-padding-right: var(--kbq-size-s);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"] }]
|
|
305
341
|
}], ctorParameters: () => [], propDecorators: { icon: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqIcon), { isSignal: true }] }] } });
|
|
306
342
|
|
|
307
343
|
let uniqueIdCounter$1 = 0;
|
|
@@ -322,33 +358,52 @@ class KbqAccordionItem {
|
|
|
322
358
|
* Whether the AccordionItem is expanded. When the accordion initializes, its controlled `value`, the saved
|
|
323
359
|
* state and `defaultValue` take precedence over it.
|
|
324
360
|
*/
|
|
325
|
-
//
|
|
326
|
-
// cascade (emits opened/closed/expandedChange, notifies the selection dispatcher, toggles the
|
|
327
|
-
//
|
|
361
|
+
// An accessor over the bound state rather than a `model()`: the setter runs a synchronous side-effect
|
|
362
|
+
// cascade (emits opened/closed/expandedChange, notifies the selection dispatcher, toggles the content and
|
|
363
|
+
// persists state) that sibling items rely on within the same change-detection tick.
|
|
328
364
|
get expanded() {
|
|
329
|
-
return this.
|
|
365
|
+
return this.expandedState();
|
|
330
366
|
}
|
|
331
367
|
set expanded(expanded) {
|
|
368
|
+
// Untracked, as `toggle()`, `open()` and `close()`: called from a consumer's `effect()`, the state read on the
|
|
369
|
+
// way — `expanded`, `disabled`, the siblings and the accordion it reports to — would make the effect run again
|
|
370
|
+
// on every expand and collapse.
|
|
371
|
+
untracked(() => this.setExpanded(expanded));
|
|
372
|
+
}
|
|
373
|
+
/** Body of the `expanded` setter. */
|
|
374
|
+
setExpanded(expanded) {
|
|
332
375
|
// Only emit events and update the internal value if the value changes.
|
|
333
|
-
if (this.
|
|
334
|
-
this.
|
|
376
|
+
if (this.expandedState() !== expanded) {
|
|
377
|
+
this.expandedState.set(expanded);
|
|
335
378
|
// Before `ngOnInit` the accordion's inputs may still be unbound, this item may not be in its `items()`
|
|
336
|
-
// and nothing listens to the outputs yet
|
|
379
|
+
// and nothing listens to the outputs yet.
|
|
337
380
|
if (this.initialized)
|
|
338
381
|
this.reportExpanded();
|
|
339
382
|
}
|
|
340
383
|
}
|
|
341
384
|
/** Whether the AccordionItem is disabled. */
|
|
342
|
-
//
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
//
|
|
385
|
+
// An accessor, not a signal: `KbqAccordionItem` is a `FocusKeyManager` option, and
|
|
386
|
+
// `ListKeyManagerOption.disabled` (core/a11y/key-manager) is read as a plain `boolean` — a signal
|
|
387
|
+
// function is always truthy, which makes the key manager treat every item as disabled. The getter
|
|
388
|
+
// also merges the item's own state with the parent accordion's.
|
|
346
389
|
get disabled() {
|
|
347
390
|
return this.accordion.disabled() || this._disabled;
|
|
348
391
|
}
|
|
349
392
|
set disabled(value) {
|
|
350
393
|
this._disabled = value;
|
|
351
394
|
}
|
|
395
|
+
ngOnChanges(changes) {
|
|
396
|
+
// A bound input is handed to its member; unbound, it leaves what code wrote.
|
|
397
|
+
// The state already follows the binding; a later change still has to be reported, once.
|
|
398
|
+
if (changes['expandedInput'] && this.initialized && this.expanded !== this.reportedExpanded) {
|
|
399
|
+
this.reportExpanded();
|
|
400
|
+
}
|
|
401
|
+
if (changes['disabledInput']) {
|
|
402
|
+
const disabled = this.disabledInput();
|
|
403
|
+
if (disabled !== undefined)
|
|
404
|
+
this.disabled = disabled;
|
|
405
|
+
}
|
|
406
|
+
}
|
|
352
407
|
constructor() {
|
|
353
408
|
/**
|
|
354
409
|
* The accordion this item belongs to — always the nearest one, because it is injected.
|
|
@@ -356,26 +411,47 @@ class KbqAccordionItem {
|
|
|
356
411
|
*/
|
|
357
412
|
this.accordion = inject(KbqAccordion);
|
|
358
413
|
/** @docs-private */
|
|
359
|
-
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
360
|
-
/** @docs-private */
|
|
361
414
|
this.expansionDispatcher = inject(UniqueSelectionDispatcher);
|
|
362
415
|
/** @docs-private */
|
|
363
|
-
this.trigger = contentChild(KbqAccordionTriggerDirective, ...(ngDevMode ? [{ debugName: "trigger" }] : []));
|
|
416
|
+
this.trigger = contentChild(KbqAccordionTriggerDirective, ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
|
|
364
417
|
/** @docs-private */
|
|
365
|
-
this.triggerComponent = contentChild(KbqAccordionTrigger, ...(ngDevMode ? [{ debugName: "triggerComponent" }] : []));
|
|
418
|
+
this.triggerComponent = contentChild(KbqAccordionTrigger, ...(ngDevMode ? [{ debugName: "triggerComponent" }] : /* istanbul ignore next */ []));
|
|
366
419
|
/** @docs-private */
|
|
367
|
-
this.content = contentChild(forwardRef(() => KbqAccordionContentDirective), ...(ngDevMode ? [{ debugName: "content" }] : []));
|
|
420
|
+
this.content = contentChild(forwardRef(() => KbqAccordionContentDirective), ...(ngDevMode ? [{ debugName: "content" }] : /* istanbul ignore next */ []));
|
|
368
421
|
this._id = `kbq-accordion-item-${uniqueIdCounter$1++}`;
|
|
369
|
-
|
|
422
|
+
/**
|
|
423
|
+
* Follows the binding at once, a static `expanded` included, while the view is created: every item of a
|
|
424
|
+
* single-mode accordion holds its bound state before the first of them reports in `ngOnInit` and collapses
|
|
425
|
+
* the others.
|
|
426
|
+
*/
|
|
427
|
+
this.expandedState = linkedSignal(() => !!this.expandedInput(), ...(ngDevMode ? [{ debugName: "expandedState" }] : /* istanbul ignore next */ []));
|
|
428
|
+
/** The state the item last reported, so a binding change that the state already follows is reported once. */
|
|
429
|
+
this.reportedExpanded = false;
|
|
370
430
|
this.initialized = false;
|
|
371
431
|
/**
|
|
372
432
|
* The item's own `value` input. Must stay `public`: a `protected` input cannot be bound from a
|
|
373
433
|
* consumer template (TS2445 under full AOT template type-checking).
|
|
434
|
+
*
|
|
374
435
|
* @docs-private
|
|
375
436
|
*/
|
|
376
|
-
this.valueInput = input('', ...(ngDevMode ?
|
|
377
|
-
/**
|
|
378
|
-
|
|
437
|
+
this.valueInput = input('', { ...(ngDevMode ? { debugName: "valueInput" } : /* istanbul ignore next */ {}), alias: 'value' });
|
|
438
|
+
/**
|
|
439
|
+
* The item's effective value — its own `value`, or its position inside the accordion when none is
|
|
440
|
+
* provided.
|
|
441
|
+
*
|
|
442
|
+
* The position, rather than the id: the value is what the accordion persists, and the id carries a
|
|
443
|
+
* global instantiation counter that shifts as soon as anything else on the page is created ahead of
|
|
444
|
+
* this accordion. The prefix keeps a generated value from colliding with an author-written one.
|
|
445
|
+
*/
|
|
446
|
+
this.value = computed(() => {
|
|
447
|
+
const value = this.valueInput();
|
|
448
|
+
if (value)
|
|
449
|
+
return value;
|
|
450
|
+
const index = this.accordion.items().indexOf(this);
|
|
451
|
+
// The accordion's content query has not matched this item yet. Nothing is persisted that early —
|
|
452
|
+
// the accordion suppresses writes until it has read — and the id is unique, so it stands in.
|
|
453
|
+
return index < 0 ? this.id : `kbq-item-${index}`;
|
|
454
|
+
}, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
379
455
|
this._disabled = false;
|
|
380
456
|
/** Event emitted every time the AccordionItem is closed. */
|
|
381
457
|
this.closed = output();
|
|
@@ -384,11 +460,18 @@ class KbqAccordionItem {
|
|
|
384
460
|
/**
|
|
385
461
|
* Emits whenever the expanded state of the accordion item changes.
|
|
386
462
|
* Primarily used to facilitate two-way binding.
|
|
463
|
+
*
|
|
387
464
|
* @docs-private
|
|
388
465
|
*/
|
|
389
466
|
this.expandedChange = output();
|
|
390
467
|
/** Subscription to openAll/closeAll events. */
|
|
391
468
|
this.openCloseAllSubscription = Subscription.EMPTY;
|
|
469
|
+
/** @docs-private */
|
|
470
|
+
this.expandedInput = input(undefined, { ...(ngDevMode ? { debugName: "expandedInput" } : /* istanbul ignore next */ {}), alias: 'expanded',
|
|
471
|
+
transform: booleanAttribute });
|
|
472
|
+
/** @docs-private */
|
|
473
|
+
this.disabledInput = input(undefined, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled',
|
|
474
|
+
transform: booleanAttribute });
|
|
392
475
|
this.removeUniqueSelectionListener = this.expansionDispatcher.listen((id, accordionId) => {
|
|
393
476
|
if (this.accordion.id !== accordionId)
|
|
394
477
|
return;
|
|
@@ -417,7 +500,7 @@ class KbqAccordionItem {
|
|
|
417
500
|
}
|
|
418
501
|
ngOnInit() {
|
|
419
502
|
this.initialized = true;
|
|
420
|
-
if (this.
|
|
503
|
+
if (this.expanded)
|
|
421
504
|
this.reportExpanded();
|
|
422
505
|
}
|
|
423
506
|
ngOnDestroy() {
|
|
@@ -430,28 +513,27 @@ class KbqAccordionItem {
|
|
|
430
513
|
}
|
|
431
514
|
/** Toggles the expanded state of the accordion item. */
|
|
432
515
|
toggle() {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
516
|
+
untracked(() => {
|
|
517
|
+
if (!this.disabled) {
|
|
518
|
+
this.expanded = !this.expanded;
|
|
519
|
+
}
|
|
520
|
+
});
|
|
436
521
|
}
|
|
437
522
|
/** Sets the expanded state of the accordion item to false. */
|
|
438
523
|
close() {
|
|
439
|
-
|
|
440
|
-
this.
|
|
441
|
-
|
|
524
|
+
untracked(() => {
|
|
525
|
+
if (!this.disabled) {
|
|
526
|
+
this.expanded = false;
|
|
527
|
+
}
|
|
528
|
+
});
|
|
442
529
|
}
|
|
443
530
|
/** Sets the expanded state of the accordion item to true. */
|
|
444
531
|
open() {
|
|
445
|
-
|
|
446
|
-
this.
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
getState() {
|
|
451
|
-
return {
|
|
452
|
-
expanded: this.expanded,
|
|
453
|
-
value: this.value()
|
|
454
|
-
};
|
|
532
|
+
untracked(() => {
|
|
533
|
+
if (!this.disabled) {
|
|
534
|
+
this.expanded = true;
|
|
535
|
+
}
|
|
536
|
+
});
|
|
455
537
|
}
|
|
456
538
|
/** Disables the open/close animation of the item's content and chevron. @docs-private */
|
|
457
539
|
disableAnimation() {
|
|
@@ -465,11 +547,11 @@ class KbqAccordionItem {
|
|
|
465
547
|
}
|
|
466
548
|
/** Emits the expanded state and propagates it to the siblings, the content and the saved state. */
|
|
467
549
|
reportExpanded() {
|
|
550
|
+
this.reportedExpanded = this.expanded;
|
|
468
551
|
// First: a handler below may run change detection, and the content pins its height before `data-state` flips.
|
|
469
552
|
this.content()?.toggle();
|
|
470
|
-
this.expandedChange.emit(this.
|
|
471
|
-
if (this.
|
|
472
|
-
// TODO: The 'emit' function requires a mandatory void argument
|
|
553
|
+
this.expandedChange.emit(this.expanded);
|
|
554
|
+
if (this.expanded) {
|
|
473
555
|
this.opened.emit();
|
|
474
556
|
/**
|
|
475
557
|
* In the unique selection dispatcher, the id parameter is the id of the KbqAccordionItem,
|
|
@@ -478,13 +560,9 @@ class KbqAccordionItem {
|
|
|
478
560
|
this.expansionDispatcher.notify(this.value(), this.accordion.id);
|
|
479
561
|
}
|
|
480
562
|
else {
|
|
481
|
-
// TODO: The 'emit' function requires a mandatory void argument
|
|
482
563
|
this.closed.emit();
|
|
483
564
|
}
|
|
484
|
-
this.accordion.
|
|
485
|
-
// Ensures that the animation will run when the value is set outside of an `@Input`.
|
|
486
|
-
// This includes cases like the open, close and toggle methods.
|
|
487
|
-
this.changeDetectorRef.markForCheck();
|
|
565
|
+
this.accordion.saveState();
|
|
488
566
|
}
|
|
489
567
|
subscribeToOpenCloseAllActions() {
|
|
490
568
|
return this.accordion.openCloseAllActions.subscribe((expanded) => {
|
|
@@ -494,10 +572,10 @@ class KbqAccordionItem {
|
|
|
494
572
|
}
|
|
495
573
|
});
|
|
496
574
|
}
|
|
497
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
498
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
575
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
576
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.25", type: KbqAccordionItem, isStandalone: true, selector: "kbq-accordion-item, [kbq-accordion-item]", inputs: { valueInput: { classPropertyName: "valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, expandedInput: { classPropertyName: "expandedInput", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", opened: "opened", expandedChange: "expandedChange" }, host: { properties: { "attr.data-state": "dataState", "attr.data-disabled": "disabled", "attr.data-orientation": "orientation" }, classAttribute: "kbq-accordion-item" }, queries: [{ propertyName: "trigger", first: true, predicate: KbqAccordionTriggerDirective, descendants: true, isSignal: true }, { propertyName: "triggerComponent", first: true, predicate: KbqAccordionTrigger, descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: i0.forwardRef(() => KbqAccordionContentDirective), descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0 }); }
|
|
499
577
|
}
|
|
500
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
578
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionItem, decorators: [{
|
|
501
579
|
type: Directive,
|
|
502
580
|
args: [{
|
|
503
581
|
selector: 'kbq-accordion-item, [kbq-accordion-item]',
|
|
@@ -508,63 +586,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
508
586
|
'[attr.data-orientation]': 'orientation'
|
|
509
587
|
}
|
|
510
588
|
}]
|
|
511
|
-
}], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqAccordionTriggerDirective), { isSignal: true }] }], triggerComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqAccordionTrigger), { isSignal: true }] }], content: [{ type: i0.ContentChild, args: [forwardRef(() => KbqAccordionContentDirective), { isSignal: true }] }], expanded: [{
|
|
512
|
-
type: Input,
|
|
513
|
-
args: [{ transform: booleanAttribute }]
|
|
514
|
-
}], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], disabled: [{
|
|
515
|
-
type: Input,
|
|
516
|
-
args: [{ transform: booleanAttribute }]
|
|
517
|
-
}], closed: [{ type: i0.Output, args: ["closed"] }], opened: [{ type: i0.Output, args: ["opened"] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }] } });
|
|
589
|
+
}], ctorParameters: () => [], propDecorators: { trigger: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqAccordionTriggerDirective), { isSignal: true }] }], triggerComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => KbqAccordionTrigger), { isSignal: true }] }], content: [{ type: i0.ContentChild, args: [forwardRef(() => KbqAccordionContentDirective), { isSignal: true }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], opened: [{ type: i0.Output, args: ["opened"] }], expandedChange: [{ type: i0.Output, args: ["expandedChange"] }], expandedInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "expanded", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
518
590
|
|
|
591
|
+
let uniqueIdCounter = 0;
|
|
592
|
+
/** Normalizes a value input to an array, dropping the empty string that stands for "nothing expanded". */
|
|
593
|
+
const toValueArray = (value) => (Array.isArray(value) ? value : [value]).filter(Boolean);
|
|
594
|
+
/** Whether two value sets hold the same values, regardless of order. */
|
|
595
|
+
const sameValues = (a, b) => a.length === b.length && a.every((value) => b.includes(value));
|
|
519
596
|
/**
|
|
520
|
-
*
|
|
597
|
+
* Coerces a raw persisted payload into a `KbqAccordionState`, returning `null` for anything
|
|
598
|
+
* unrecognizable. Web storage is origin-wide and user-writable, so a payload is never trusted —
|
|
599
|
+
* without this, an entry such as `{"a": null}` would crash the accordion while restoring.
|
|
521
600
|
*
|
|
522
|
-
*
|
|
523
|
-
*
|
|
601
|
+
* Also upgrades the previous `{ [itemId]: { expanded, value } }` format, so state persisted by an
|
|
602
|
+
* earlier version is carried over instead of silently resetting.
|
|
524
603
|
*/
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
const
|
|
535
|
-
return
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
}
|
|
540
|
-
}
|
|
541
|
-
setState(key, state) {
|
|
542
|
-
if (!this.isBrowser)
|
|
543
|
-
return;
|
|
544
|
-
try {
|
|
545
|
-
this.window.localStorage.setItem(key, JSON.stringify(state));
|
|
546
|
-
}
|
|
547
|
-
catch {
|
|
548
|
-
// Ignore storage write failures (quota exceeded, disabled/blocked storage, etc.).
|
|
549
|
-
}
|
|
604
|
+
const normalizeAccordionState = (parsed) => {
|
|
605
|
+
if (Array.isArray(parsed)) {
|
|
606
|
+
const values = parsed.filter((value) => typeof value === 'string');
|
|
607
|
+
// An array that held nothing usable is somebody else's payload, not "nothing was expanded" — the
|
|
608
|
+
// difference matters, because a state that exists suppresses `defaultValue` from then on.
|
|
609
|
+
return values.length || !parsed.length ? values : null;
|
|
610
|
+
}
|
|
611
|
+
if (parsed !== null && typeof parsed === 'object') {
|
|
612
|
+
const snapshots = Object.values(parsed).filter((snapshot) => {
|
|
613
|
+
const { expanded, value } = (snapshot ?? {});
|
|
614
|
+
return typeof expanded === 'boolean' && typeof value === 'string';
|
|
615
|
+
});
|
|
616
|
+
// Same reasoning as above: only an object that actually holds snapshots is the previous format.
|
|
617
|
+
return snapshots.length ? snapshots.filter(({ expanded }) => expanded).map(({ value }) => value) : null;
|
|
550
618
|
}
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
}
|
|
554
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqAccordionLocalStorageStateStore, decorators: [{
|
|
555
|
-
type: Injectable,
|
|
556
|
-
args: [{ providedIn: 'root' }]
|
|
557
|
-
}] });
|
|
558
|
-
/**
|
|
559
|
-
* Injection token for the store used to persist accordion state while `useStateSaving` is enabled.
|
|
560
|
-
* Defaults to a `localStorage`-backed implementation (`KbqAccordionLocalStorageStateStore`).
|
|
561
|
-
*/
|
|
562
|
-
const KBQ_ACCORDION_STATE_STORE = new InjectionToken('KBQ_ACCORDION_STATE_STORE', {
|
|
563
|
-
providedIn: 'root',
|
|
564
|
-
factory: () => inject(KbqAccordionLocalStorageStateStore)
|
|
565
|
-
});
|
|
566
|
-
|
|
567
|
-
let uniqueIdCounter = 0;
|
|
619
|
+
return null;
|
|
620
|
+
};
|
|
568
621
|
class KbqAccordion {
|
|
569
622
|
/** The unique id of this accordion. */
|
|
570
623
|
get id() {
|
|
@@ -574,9 +627,12 @@ class KbqAccordion {
|
|
|
574
627
|
get isMultiple() {
|
|
575
628
|
return this.type() === 'multiple';
|
|
576
629
|
}
|
|
577
|
-
/**
|
|
630
|
+
/**
|
|
631
|
+
* Whether state is currently persisted for this accordion — restored on init, or written since.
|
|
632
|
+
* Always `false` while `useStateSaving` is unset, and `false` again after `clearSavedState()`.
|
|
633
|
+
*/
|
|
578
634
|
get hasSavedState() {
|
|
579
|
-
return
|
|
635
|
+
return this.stateSaving.state != null;
|
|
580
636
|
}
|
|
581
637
|
constructor() {
|
|
582
638
|
/** @docs-private */
|
|
@@ -584,23 +640,21 @@ class KbqAccordion {
|
|
|
584
640
|
/** @docs-private */
|
|
585
641
|
this.elementRef = inject(ElementRef);
|
|
586
642
|
/** @docs-private */
|
|
587
|
-
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
588
|
-
/** @docs-private */
|
|
589
643
|
this.selectionDispatcher = inject(UniqueSelectionDispatcher);
|
|
590
644
|
/** @docs-private */
|
|
591
645
|
this.dir = inject(Directionality, { optional: true });
|
|
592
646
|
this.injector = inject(Injector);
|
|
593
|
-
this.stateStore = inject(KBQ_ACCORDION_STATE_STORE);
|
|
594
647
|
/** Emits every time `openAll()` or `closeAll()` is called. @docs-private */
|
|
595
648
|
this.openCloseAllActions = new Subject();
|
|
596
649
|
/**
|
|
597
650
|
* Every item the content query matches, including those of a nested accordion.
|
|
598
651
|
* Use `items` instead — this one is the raw, unfiltered query.
|
|
652
|
+
*
|
|
599
653
|
* @docs-private
|
|
600
654
|
*/
|
|
601
655
|
// The generic is explicit because `forwardRef` erases the locator type, which would leave both
|
|
602
656
|
// this query and `items` as `Signal<any[]>` in the public API report.
|
|
603
|
-
this.allItems = contentChildren(forwardRef(() => KbqAccordionItem), ...(ngDevMode ?
|
|
657
|
+
this.allItems = contentChildren(forwardRef(() => KbqAccordionItem), { ...(ngDevMode ? { debugName: "allItems" } : /* istanbul ignore next */ {}), descendants: true });
|
|
604
658
|
/**
|
|
605
659
|
* The accordion items that belong to this accordion.
|
|
606
660
|
*
|
|
@@ -610,44 +664,43 @@ class KbqAccordion {
|
|
|
610
664
|
* injected and therefore always its nearest one, which makes ownership the reliable filter.
|
|
611
665
|
* Without it the key manager would move focus into the nested accordion's headers, `valueChange`
|
|
612
666
|
* would report a nested item's value and state saving would persist it under the outer key.
|
|
667
|
+
*
|
|
613
668
|
* @docs-private
|
|
614
669
|
*/
|
|
615
|
-
this.items = computed(() => this.allItems().filter((item) => item.accordion === this), ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
616
|
-
/** Whether the accordion persists the expanded state of its items across reloads. Defaults to `false`. */
|
|
617
|
-
this.useStateSaving = input(false, ...(ngDevMode ? [{ debugName: "useStateSaving", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
|
|
670
|
+
this.items = computed(() => this.allItems().filter((item) => item.accordion === this), ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
618
671
|
/**
|
|
619
|
-
*
|
|
620
|
-
*
|
|
621
|
-
* instantiation-order-dependent id that is unreliable under lazy/conditional/reordered rendering.
|
|
672
|
+
* Persistence of the expanded state, applied as a host directive. `useStateSaving` and
|
|
673
|
+
* `stateSavingKey` are its inputs, forwarded onto the accordion.
|
|
622
674
|
*/
|
|
623
|
-
this.
|
|
675
|
+
this.stateSaving = inject(KbqStateSaving);
|
|
624
676
|
/** The visual variant of the accordion. Defaults to `fill`. */
|
|
625
|
-
this.variant = input('fill', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
677
|
+
this.variant = input('fill', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
626
678
|
/** Whether the whole accordion is disabled. */
|
|
627
|
-
this.disabled = input(undefined, ...(ngDevMode ?
|
|
679
|
+
this.disabled = input(undefined, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
628
680
|
/** The layout orientation of the accordion. Defaults to `vertical`. */
|
|
629
|
-
this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
|
|
681
|
+
this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
630
682
|
/**
|
|
631
683
|
* The `aria-level` applied to the item headings. Defaults to `2`.
|
|
632
684
|
* Set it to match the surrounding document outline (e.g. `3` when nested under an `<h2>` section).
|
|
633
685
|
*/
|
|
634
|
-
this.level = input(2, ...(ngDevMode ?
|
|
686
|
+
this.level = input(2, { ...(ngDevMode ? { debugName: "level" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
635
687
|
/**
|
|
636
688
|
* The value of the item(s) to expand when initially rendered.
|
|
637
689
|
* Use when you do not need to control the state of the items.
|
|
638
690
|
*/
|
|
639
|
-
this.defaultValue = input([], ...(ngDevMode ? [{ debugName: "defaultValue" }] : []));
|
|
691
|
+
this.defaultValue = input([], ...(ngDevMode ? [{ debugName: "defaultValue" }] : /* istanbul ignore next */ []));
|
|
640
692
|
/** Determines whether one or multiple items can be expanded at the same time. */
|
|
641
|
-
this.type = input('single', ...(ngDevMode ? [{ debugName: "type" }] : []));
|
|
693
|
+
this.type = input('single', ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
642
694
|
/** Whether an expanded item can be collapsed by the user. Defaults to `true`. */
|
|
643
|
-
this.collapsible = input(true, ...(ngDevMode ? [{ debugName: "collapsible" }] : []));
|
|
695
|
+
this.collapsible = input(true, ...(ngDevMode ? [{ debugName: "collapsible" }] : /* istanbul ignore next */ []));
|
|
644
696
|
/**
|
|
645
697
|
* The raw controlled `value` input. Must stay `public`: a `protected` input cannot be bound from
|
|
646
698
|
* a consumer template (TS2445 under full AOT template type-checking).
|
|
699
|
+
*
|
|
647
700
|
* @docs-private
|
|
648
701
|
*/
|
|
649
702
|
// `input()` (not `model()`): a `model()` would auto-create a colliding `valueChange` output.
|
|
650
|
-
this.valueInput = input(undefined, ...(ngDevMode ?
|
|
703
|
+
this.valueInput = input(undefined, { ...(ngDevMode ? { debugName: "valueInput" } : /* istanbul ignore next */ {}), alias: 'value' });
|
|
651
704
|
/**
|
|
652
705
|
* The controlled value of the item(s) to expand, reshaped by mode. Supports `[(value)]`.
|
|
653
706
|
* Falls back to `defaultValue` while `value` is unbound.
|
|
@@ -656,24 +709,26 @@ class KbqAccordion {
|
|
|
656
709
|
* when nothing is expanded, matching what `valueChange` emits.
|
|
657
710
|
*/
|
|
658
711
|
this.value = computed(() => {
|
|
659
|
-
const
|
|
660
|
-
const array = Array.isArray(value) ? value : [value];
|
|
712
|
+
const array = this.valueArray();
|
|
661
713
|
return this.isMultiple ? array : (array[0] ?? '');
|
|
662
|
-
}, ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
714
|
+
}, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
663
715
|
/** Emits the current value whenever the expanded state of the accordion changes. */
|
|
664
716
|
this.valueChange = output();
|
|
665
|
-
/** `defaultValue` normalized to an array for internal coordination. */
|
|
666
|
-
this.defaultValueArray = computed(() => {
|
|
667
|
-
const value = this.defaultValue();
|
|
668
|
-
return Array.isArray(value) ? value : [value];
|
|
669
|
-
}, ...(ngDevMode ? [{ debugName: "defaultValueArray" }] : []));
|
|
670
|
-
this._id = `kbq-accordion-${uniqueIdCounter++}`;
|
|
671
|
-
this.state = null;
|
|
672
717
|
/**
|
|
673
|
-
*
|
|
674
|
-
*
|
|
718
|
+
* `value()` as an array, reshaped by mode — the shape the selection dispatcher is notified with.
|
|
719
|
+
* Falls back to `defaultValue` while `value` is unbound, so it doubles as the uncontrolled default.
|
|
675
720
|
*/
|
|
676
|
-
this.
|
|
721
|
+
this.valueArray = computed(() => {
|
|
722
|
+
const array = toValueArray(this.valueInput() ?? this.defaultValue());
|
|
723
|
+
return this.isMultiple ? array : array.slice(0, 1);
|
|
724
|
+
}, ...(ngDevMode ? [{ debugName: "valueArray" }] : /* istanbul ignore next */ []));
|
|
725
|
+
this._id = `kbq-accordion-${uniqueIdCounter++}`;
|
|
726
|
+
/** Whether the state saving key changed and the state under the new key is still to be restored. */
|
|
727
|
+
this.keyChanged = false;
|
|
728
|
+
// The state lives under the new key now, so restore from it — in `ngAfterContentChecked`: the change is
|
|
729
|
+
// reported while the view updates, before sections created in the same pass have bound their `value`,
|
|
730
|
+
// and that same pass runs the hook.
|
|
731
|
+
this.stateSaving.keyChanges.subscribe(() => (this.keyChanged = true));
|
|
677
732
|
// Re-emit `valueChange` whenever any (current or future) item toggles its expanded state.
|
|
678
733
|
// Reading `items()` inside the effect keeps the subscriptions in sync with dynamically
|
|
679
734
|
// added/removed items.
|
|
@@ -682,45 +737,18 @@ class KbqAccordion {
|
|
|
682
737
|
onCleanup(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
683
738
|
});
|
|
684
739
|
// Notify the selection dispatcher when the controlled `[value]` changes (the old setter's
|
|
685
|
-
// side-effect).
|
|
686
|
-
//
|
|
740
|
+
// side-effect). An unbound `value` (`undefined`, or `null` from an `async` pipe) keeps the mandatory
|
|
741
|
+
// first run a no-op. View effects run before content hooks, so when bound this notifies first and
|
|
742
|
+
// `ngAfterContentInit` re-notifies the same value (idempotent).
|
|
687
743
|
effect(() => {
|
|
688
744
|
const value = this.valueInput();
|
|
689
|
-
if (value
|
|
745
|
+
if (value == null)
|
|
690
746
|
return;
|
|
691
|
-
untracked(() => this.
|
|
747
|
+
untracked(() => this.notifySelection(this.valueArray()));
|
|
692
748
|
});
|
|
693
749
|
}
|
|
694
750
|
ngAfterContentInit() {
|
|
695
|
-
|
|
696
|
-
if (isDevMode() && !this.stateSavingKey()) {
|
|
697
|
-
// eslint-disable-next-line no-console
|
|
698
|
-
console.warn('KbqAccordion: `useStateSaving` is enabled without a `stateSavingKey`. Falling back to an ' +
|
|
699
|
-
'auto-generated id, which is unreliable across lazy/conditional/reordered rendering. ' +
|
|
700
|
-
'Provide a stable `stateSavingKey`.');
|
|
701
|
-
}
|
|
702
|
-
this.state = this.stateStore.getState(this.stateStorageKey);
|
|
703
|
-
}
|
|
704
|
-
this.stateRestored = true;
|
|
705
|
-
if (this.valueInput() !== undefined) {
|
|
706
|
-
this.selectionDispatcher.notify(this.value(), this.id);
|
|
707
|
-
}
|
|
708
|
-
else if (this.useStateSaving() && this.hasSavedState) {
|
|
709
|
-
const expandedValues = Object.keys(this.state)
|
|
710
|
-
.filter((key) => this.state[key].expanded)
|
|
711
|
-
.map((key) => this.state[key].value);
|
|
712
|
-
if (expandedValues.length) {
|
|
713
|
-
this.selectionDispatcher.notify((this.isMultiple ? expandedValues : expandedValues[0]), this.id);
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
else if (this.defaultValueArray().length) {
|
|
717
|
-
// Without a `defaultValue` the items keep their own `[expanded]`: an empty payload would close them all.
|
|
718
|
-
this.selectionDispatcher.notify(this.defaultValueArray(), this.id);
|
|
719
|
-
}
|
|
720
|
-
// Seed initial state for any items missing from the store (without overwriting existing entries).
|
|
721
|
-
if (this.useStateSaving()) {
|
|
722
|
-
this.items().forEach((item) => this.saveItemState(item, false));
|
|
723
|
-
}
|
|
751
|
+
this.restoreState(true);
|
|
724
752
|
this.keyManager = new FocusKeyManager(this.items, this.injector).withHomeAndEnd();
|
|
725
753
|
if (this.orientation() === 'horizontal') {
|
|
726
754
|
this.keyManager.withHorizontalOrientation(this.dir?.value || 'ltr');
|
|
@@ -729,6 +757,12 @@ class KbqAccordion {
|
|
|
729
757
|
this.keyManager.withVerticalOrientation();
|
|
730
758
|
}
|
|
731
759
|
}
|
|
760
|
+
ngAfterContentChecked() {
|
|
761
|
+
if (!this.keyChanged)
|
|
762
|
+
return;
|
|
763
|
+
this.keyChanged = false;
|
|
764
|
+
this.restoreState(false);
|
|
765
|
+
}
|
|
732
766
|
ngAfterViewInit() {
|
|
733
767
|
this.focusMonitor.monitor(this.elementRef, true);
|
|
734
768
|
}
|
|
@@ -744,6 +778,7 @@ class KbqAccordion {
|
|
|
744
778
|
* also receives keys bubbling from the section content and from controls placed next to the
|
|
745
779
|
* trigger, and would swallow their Enter/Space and hijack their arrow keys. It would also
|
|
746
780
|
* activate the first item — stealing focus — the first time any key was pressed anywhere inside.
|
|
781
|
+
*
|
|
747
782
|
* @docs-private
|
|
748
783
|
*/
|
|
749
784
|
keydownHandler(event) {
|
|
@@ -763,62 +798,133 @@ class KbqAccordion {
|
|
|
763
798
|
}
|
|
764
799
|
/** Opens all enabled accordion items in an accordion where `type` is `multiple`. */
|
|
765
800
|
openAll() {
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
801
|
+
// Untracked, as `closeAll()`, `saveState()` and `clearSavedState()`: called from a consumer's `effect()`, the
|
|
802
|
+
// state read on the way — the inputs, the items' `disabled` — would make the effect run again.
|
|
803
|
+
untracked(() => {
|
|
804
|
+
if (this.isMultiple) {
|
|
805
|
+
this.openCloseAllActions.next(true);
|
|
806
|
+
}
|
|
807
|
+
});
|
|
769
808
|
}
|
|
770
809
|
/** Closes all enabled accordion items. */
|
|
771
810
|
closeAll() {
|
|
772
|
-
this.openCloseAllActions.next(false);
|
|
811
|
+
untracked(() => this.openCloseAllActions.next(false));
|
|
773
812
|
}
|
|
774
813
|
/** @docs-private */
|
|
775
814
|
setActiveItem(item) {
|
|
776
815
|
this.keyManager?.setActiveItem(item);
|
|
777
816
|
}
|
|
817
|
+
/** Reads the persisted state and applies it. Runs while initializing, and again after the key changes. */
|
|
818
|
+
restoreState(initializing) {
|
|
819
|
+
const savedState = this.stateSaving.read(normalizeAccordionState);
|
|
820
|
+
const initialValue = this.initialValue(savedState, initializing);
|
|
821
|
+
if (initialValue) {
|
|
822
|
+
this.stateSaving.applying(() => this.notifySelection(initialValue));
|
|
823
|
+
}
|
|
824
|
+
// Reconcile the store with what was applied, dropping values whose item is gone. Only when there
|
|
825
|
+
// are items to reconcile against: sections that arrive later (`@if`, `@for` over an async list)
|
|
826
|
+
// would otherwise have their saved values deleted before they exist.
|
|
827
|
+
if (savedState !== null && this.items().length > 0 && !sameValues(savedState, this.expandedValues())) {
|
|
828
|
+
this.saveState();
|
|
829
|
+
}
|
|
830
|
+
}
|
|
778
831
|
/**
|
|
779
|
-
* Persists the
|
|
832
|
+
* Persists the values of the currently expanded items when `useStateSaving` is enabled.
|
|
833
|
+
*
|
|
780
834
|
* @docs-private
|
|
781
835
|
*/
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
836
|
+
saveState() {
|
|
837
|
+
untracked(() => {
|
|
838
|
+
// Checked before the snapshot is built: `expandedValues()` walks the content query on every
|
|
839
|
+
// toggle. A controlled `[value]` belongs to the application, so persisting it is pointless.
|
|
840
|
+
if (!this.stateSaving.useStateSaving() || this.valueInput() != null)
|
|
841
|
+
return;
|
|
842
|
+
this.stateSaving.write(this.expandedValues());
|
|
843
|
+
});
|
|
790
844
|
}
|
|
791
|
-
/**
|
|
792
|
-
|
|
793
|
-
|
|
845
|
+
/**
|
|
846
|
+
* Removes the state persisted for this accordion.
|
|
847
|
+
*
|
|
848
|
+
* Persistence itself stays on — the next change is written again. Unset `useStateSaving` to stop it.
|
|
849
|
+
*/
|
|
850
|
+
clearSavedState() {
|
|
851
|
+
untracked(() => this.stateSaving.clear());
|
|
852
|
+
}
|
|
853
|
+
/**
|
|
854
|
+
* The values to expand when restoring: a controlled `value` wins, then the persisted state, then — only
|
|
855
|
+
* while initializing — `defaultValue`. An array, because only the array payload can also *close* the items
|
|
856
|
+
* that are not part of it — a scalar cannot express an empty selection at all.
|
|
857
|
+
*
|
|
858
|
+
* `null` when there is nothing to apply, so the items keep their current `expanded`: their own while
|
|
859
|
+
* initializing, whatever the previous key left after a key change.
|
|
860
|
+
*/
|
|
861
|
+
initialValue(savedState, initializing) {
|
|
862
|
+
if (this.valueInput() != null)
|
|
863
|
+
return this.valueArray();
|
|
864
|
+
if (savedState !== null) {
|
|
865
|
+
if (this.isMultiple)
|
|
866
|
+
return savedState;
|
|
867
|
+
// The first value that still names an item, so a stale one does not collapse every section.
|
|
868
|
+
const values = this.items().map((item) => item.value());
|
|
869
|
+
return savedState.filter((value) => values.includes(value)).slice(0, 1);
|
|
870
|
+
}
|
|
871
|
+
if (!initializing)
|
|
872
|
+
return null;
|
|
873
|
+
// While `value` is unbound, `valueArray()` is `defaultValue` reshaped by mode.
|
|
874
|
+
const defaultValue = this.valueArray();
|
|
875
|
+
return defaultValue.length ? defaultValue : null;
|
|
876
|
+
}
|
|
877
|
+
/** The values of the items that are currently expanded. */
|
|
878
|
+
expandedValues() {
|
|
879
|
+
return this.items()
|
|
794
880
|
.filter((item) => item.expanded)
|
|
795
881
|
.map((item) => item.value());
|
|
882
|
+
}
|
|
883
|
+
/** The current expanded value(s) derived from the live item state. */
|
|
884
|
+
getCurrentValue() {
|
|
885
|
+
const expandedValues = this.expandedValues();
|
|
796
886
|
return this.isMultiple ? expandedValues : (expandedValues[0] ?? '');
|
|
797
887
|
}
|
|
798
|
-
/**
|
|
799
|
-
|
|
800
|
-
|
|
888
|
+
/**
|
|
889
|
+
* Notifies the items of the whole expanded set.
|
|
890
|
+
*
|
|
891
|
+
* `UniqueSelectionDispatcher` types its payload as a `string`, which only an individual item toggle
|
|
892
|
+
* ever is — the accordion always sends the full set, the only shape that also closes the items
|
|
893
|
+
* outside it. The cast lives here alone so the rest of the component keeps working with the real type.
|
|
894
|
+
*/
|
|
895
|
+
notifySelection(values) {
|
|
896
|
+
this.selectionDispatcher.notify(values, this.id);
|
|
801
897
|
}
|
|
802
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
803
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
898
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordion, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
899
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.25", type: KbqAccordion, isStandalone: true, selector: "kbq-accordion, [kbq-accordion]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, defaultValue: { classPropertyName: "defaultValue", publicName: "defaultValue", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, valueInput: { classPropertyName: "valueInput", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, host: { properties: { "attr.data-orientation": "orientation()" }, classAttribute: "kbq-accordion" }, providers: [
|
|
804
900
|
{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }
|
|
805
|
-
], queries: [{ propertyName: "allItems", predicate: i0.forwardRef(() => KbqAccordionItem), descendants: true, isSignal: true }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["
|
|
901
|
+
], queries: [{ propertyName: "allItems", predicate: i0.forwardRef(() => KbqAccordionItem), descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.KbqStateSaving, inputs: ["useStateSaving", "useStateSaving", "stateSavingKey", "stateSavingKey"] }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["@charset \"UTF-8\";.kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:var(--kbq-accordion-size-item-border-width);border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height);overflow:hidden}.kbq-accordion-header>.kbq-accordion-header__actions{display:flex;align-items:center;gap:var(--kbq-accordion-size-item-header-actions-gap);flex-shrink:0;padding-right:var(--kbq-accordion-size-item-header-actions-padding-right)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>.kbq-accordion-content__body{--kbq-accordion-content-height: initial;margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:height .3s ease-out;height:var(--kbq-accordion-content-height, auto)}.kbq-accordion-content[data-state=open].kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-content[data-state=open]{animation:none;transition:none}}.kbq-accordion-content[data-state=closed]{transition:height .3s ease-out;height:0}.kbq-accordion-content[data-state=closed].kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-content[data-state=closed]{animation:none;transition:none}}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:has(>.kbq-accordion-trigger:focus),.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:has(>.kbq-accordion-header .kbq-accordion-trigger:focus){border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-border-width: 2px;--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-size-item-header-actions-gap: var(--kbq-size-3xs);--kbq-accordion-size-item-header-actions-padding-right: var(--kbq-size-s);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
806
902
|
}
|
|
807
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
903
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordion, decorators: [{
|
|
808
904
|
type: Component,
|
|
809
905
|
args: [{ selector: 'kbq-accordion, [kbq-accordion]', template: '<ng-content />', providers: [
|
|
810
906
|
{ provide: UniqueSelectionDispatcher, useClass: UniqueSelectionDispatcher }
|
|
811
907
|
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
812
908
|
class: 'kbq-accordion',
|
|
813
909
|
'[attr.data-orientation]': 'orientation()'
|
|
814
|
-
},
|
|
815
|
-
|
|
910
|
+
}, hostDirectives: [
|
|
911
|
+
{ directive: KbqStateSaving, inputs: ['useStateSaving', 'stateSavingKey'] }
|
|
912
|
+
], styles: ["@charset \"UTF-8\";.kbq-accordion{display:block}.kbq-accordion-item{box-sizing:border-box;display:block;border-width:var(--kbq-accordion-size-item-border-width);border-style:solid;border-color:transparent}.kbq-accordion-header{display:flex;height:var(--kbq-accordion-size-item-header-height);overflow:hidden}.kbq-accordion-header>.kbq-accordion-header__actions{display:flex;align-items:center;gap:var(--kbq-accordion-size-item-header-actions-gap);flex-shrink:0;padding-right:var(--kbq-accordion-size-item-header-actions-padding-right)}.kbq-accordion-content{display:block;overflow:hidden}.kbq-accordion-content>.kbq-accordion-content__body{--kbq-accordion-content-height: initial;margin:unset;padding:var(--kbq-accordion-size-item-content-padding)}.kbq-accordion-content[data-state=open]{transition:height .3s ease-out;height:var(--kbq-accordion-content-height, auto)}.kbq-accordion-content[data-state=open].kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-content[data-state=open]{animation:none;transition:none}}.kbq-accordion-content[data-state=closed]{transition:height .3s ease-out;height:0}.kbq-accordion-content[data-state=closed].kbq-animations-disabled{animation:none;transition:none}@media(prefers-reduced-motion:reduce){.kbq-accordion-content[data-state=closed]{animation:none;transition:none}}.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:has(>.kbq-accordion-trigger:focus),.kbq-accordion.cdk-keyboard-focused .kbq-accordion-item:has(>.kbq-accordion-header .kbq-accordion-trigger:focus){border-color:var(--kbq-accordion-item-states-focus-border-color)}.kbq-accordion-item{background:var(--kbq-accordion-item-default-background);color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-item .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-default-icon-color)}.kbq-accordion-trigger{width:100%;background:transparent;border:none;outline:none;color:var(--kbq-accordion-item-default-text-color)}.kbq-accordion-trigger:hover:not([data-disabled=true]){cursor:pointer}.kbq-accordion-trigger:hover:not([data-disabled=true]) .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-hover-icon-color)}.kbq-accordion-trigger[data-disabled=true]{color:var(--kbq-accordion-item-states-disabled-text-color)}.kbq-accordion-trigger[data-disabled=true] .kbq-accordion-trigger__icon{color:var(--kbq-accordion-item-states-disabled-icon-color)}.kbq-accordion-header,.kbq-accordion-trigger{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-accordion-trigger__caption{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-accordion-content{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-accordion{--kbq-accordion-size-item-border-width: 2px;--kbq-accordion-size-item-header-height: 36px;--kbq-accordion-size-item-header-variant-fill-padding: var(--kbq-size-xs) var(--kbq-size-s);--kbq-accordion-size-item-header-variant-hug-padding: var(--kbq-size-xs) var(--kbq-size-s) var(--kbq-size-xs) var(--kbq-size-m);--kbq-accordion-size-item-content-padding: 0px var(--kbq-size-m) var(--kbq-size-s) var(--kbq-size-m);--kbq-accordion-size-item-header-actions-gap: var(--kbq-size-3xs);--kbq-accordion-size-item-header-actions-padding-right: var(--kbq-size-s);--kbq-accordion-item-default-background: transparent;--kbq-accordion-item-default-text-color: var(--kbq-foreground-contrast);--kbq-accordion-item-default-icon-color: var(--kbq-icon-contrast-fade);--kbq-accordion-item-states-hover-icon-color: var(--kbq-icon-contrast);--kbq-accordion-item-states-focus-border-color: var(--kbq-line-theme);--kbq-accordion-item-states-disabled-text-color: var(--kbq-foreground-contrast-secondary);--kbq-accordion-item-states-disabled-icon-color: var(--kbq-states-icon-disabled)}\n"] }]
|
|
913
|
+
}], ctorParameters: () => [], propDecorators: { allItems: [{ type: i0.ContentChildren, args: [forwardRef(() => KbqAccordionItem), { ...{ descendants: true }, isSignal: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], level: [{ type: i0.Input, args: [{ isSignal: true, alias: "level", required: false }] }], defaultValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultValue", required: false }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], valueInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }] } });
|
|
816
914
|
|
|
817
915
|
class KbqAccordionContent {
|
|
818
|
-
|
|
819
|
-
|
|
916
|
+
constructor() {
|
|
917
|
+
/**
|
|
918
|
+
* Whether the content expands and collapses without motion.
|
|
919
|
+
*
|
|
920
|
+
* @docs-private
|
|
921
|
+
*/
|
|
922
|
+
this.animationsDisabled = kbqAnimationsDisabled();
|
|
923
|
+
}
|
|
924
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
925
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.25", type: KbqAccordionContent, isStandalone: true, selector: "kbq-accordion-content, [kbq-accordion-content]", host: { properties: { "class.kbq-animations-disabled": "animationsDisabled" }, classAttribute: "kbq-accordion-content" }, hostDirectives: [{ directive: KbqAccordionContentDirective }], ngImport: i0, template: '<div class="kbq-accordion-content__body"><ng-content /></div>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
820
926
|
}
|
|
821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionContent, decorators: [{
|
|
822
928
|
type: Component,
|
|
823
929
|
args: [{
|
|
824
930
|
selector: 'kbq-accordion-content, [kbq-accordion-content]',
|
|
@@ -826,8 +932,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
826
932
|
// block content (a `<div>` would auto-close it), and keeping padding off the animated
|
|
827
933
|
// `.kbq-accordion-content` host lets it collapse cleanly to `height: 0`.
|
|
828
934
|
template: '<div class="kbq-accordion-content__body"><ng-content /></div>',
|
|
935
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
829
936
|
host: {
|
|
830
|
-
class: 'kbq-accordion-content'
|
|
937
|
+
class: 'kbq-accordion-content',
|
|
938
|
+
'[class.kbq-animations-disabled]': 'animationsDisabled'
|
|
831
939
|
},
|
|
832
940
|
hostDirectives: [KbqAccordionContentDirective]
|
|
833
941
|
}]
|
|
@@ -839,6 +947,12 @@ class KbqAccordionHeader {
|
|
|
839
947
|
this.item = inject(KbqAccordionItem);
|
|
840
948
|
/** @docs-private */
|
|
841
949
|
this.accordion = inject(KbqAccordion);
|
|
950
|
+
/**
|
|
951
|
+
* Value of `data-state`.
|
|
952
|
+
*
|
|
953
|
+
* @internal
|
|
954
|
+
*/
|
|
955
|
+
this.dataState = computed(() => this.item.dataState, ...(ngDevMode ? [{ debugName: "dataState" }] : /* istanbul ignore next */ []));
|
|
842
956
|
}
|
|
843
957
|
/**
|
|
844
958
|
* Names the heading after the trigger alone.
|
|
@@ -848,15 +962,16 @@ class KbqAccordionHeader {
|
|
|
848
962
|
* announced as "Profile Run More" when navigating by heading. Pointing at the trigger yields the
|
|
849
963
|
* announcement the WAI-ARIA APG gets by keeping the button the only element in the heading,
|
|
850
964
|
* which this component cannot do because the header is also the row that lays the actions out.
|
|
965
|
+
*
|
|
851
966
|
* @docs-private
|
|
852
967
|
*/
|
|
853
968
|
get labelledBy() {
|
|
854
969
|
return this.item.trigger()?.triggerId ?? null;
|
|
855
970
|
}
|
|
856
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
857
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
971
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
972
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.25", type: KbqAccordionHeader, isStandalone: true, selector: "kbq-accordion-header, [kbq-accordion-header]", host: { properties: { "attr.role": "\"heading\"", "attr.aria-level": "accordion.level()", "attr.aria-labelledby": "labelledBy", "attr.data-state": "dataState()", "attr.data-disabled": "item.disabled", "attr.data-orientation": "item.orientation" }, classAttribute: "kbq-accordion-header" }, ngImport: i0 }); }
|
|
858
973
|
}
|
|
859
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
974
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionHeader, decorators: [{
|
|
860
975
|
type: Directive,
|
|
861
976
|
args: [{
|
|
862
977
|
selector: 'kbq-accordion-header, [kbq-accordion-header]',
|
|
@@ -865,7 +980,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
865
980
|
'[attr.role]': '"heading"',
|
|
866
981
|
'[attr.aria-level]': 'accordion.level()',
|
|
867
982
|
'[attr.aria-labelledby]': 'labelledBy',
|
|
868
|
-
'
|
|
983
|
+
// Signals of this directive's own: the item and its other parts read the same state, and the host bindings of
|
|
984
|
+
// every item in a view run in that view's reactive consumer, where a signal read again after others costs a
|
|
985
|
+
// scan of all it has read so far.
|
|
986
|
+
'[attr.data-state]': 'dataState()',
|
|
869
987
|
'[attr.data-disabled]': 'item.disabled',
|
|
870
988
|
'[attr.data-orientation]': 'item.orientation'
|
|
871
989
|
}
|
|
@@ -873,8 +991,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
873
991
|
}] });
|
|
874
992
|
|
|
875
993
|
class KbqAccordionModule {
|
|
876
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
877
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
994
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
995
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionModule, imports: [KbqIcon,
|
|
878
996
|
KbqAccordion,
|
|
879
997
|
KbqAccordionContent,
|
|
880
998
|
KbqAccordionHeader,
|
|
@@ -884,10 +1002,10 @@ class KbqAccordionModule {
|
|
|
884
1002
|
KbqAccordionHeader,
|
|
885
1003
|
KbqAccordionItem,
|
|
886
1004
|
KbqAccordionTrigger] }); }
|
|
887
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
1005
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionModule, imports: [KbqIcon,
|
|
888
1006
|
KbqAccordionTrigger] }); }
|
|
889
1007
|
}
|
|
890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqAccordionModule, decorators: [{
|
|
891
1009
|
type: NgModule,
|
|
892
1010
|
args: [{
|
|
893
1011
|
imports: [
|
|
@@ -912,5 +1030,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
912
1030
|
* Generated bundle index. Do not edit.
|
|
913
1031
|
*/
|
|
914
1032
|
|
|
915
|
-
export {
|
|
1033
|
+
export { KbqAccordion, KbqAccordionContent, KbqAccordionContentDirective, KbqAccordionHeader, KbqAccordionItem, KbqAccordionModule, KbqAccordionTrigger, KbqAccordionTriggerDirective };
|
|
916
1034
|
//# sourceMappingURL=koobiq-components-accordion.mjs.map
|