@koobiq/components 20.4.1 → 21.0.0
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 +755 -601
- 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 +2810 -2538
- 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 +366 -136
- 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 +486 -165
- 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 +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- 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 +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -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.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -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 +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -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.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -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 +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -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.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -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.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -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.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -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.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -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.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -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.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -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.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -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.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -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.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -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 +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -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 +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -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.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -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.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -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.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -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.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -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.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -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.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -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 +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -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.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -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.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -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 +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -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.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -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.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -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.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -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 +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -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.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -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.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -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.js +19 -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.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -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.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -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.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -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.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -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 +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -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.js +42 -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.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -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.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -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.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -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.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -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 +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -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.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -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.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -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.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -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.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -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.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -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.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -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.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -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.js +20 -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.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -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.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -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.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -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.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -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.js +20 -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.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -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.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -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.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -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.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -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.js +190 -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.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -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.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -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.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -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.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -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.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -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.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -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.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -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.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -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.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -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.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -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.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -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.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -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.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -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 +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -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.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- 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} +114 -79
- 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 +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -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/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 -187
- 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/{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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button-group.ts","../../../packages/components/button/button-slots.ts","../../../packages/components/button/button.dropdown-trigger.directive.ts","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Input,\n isDevMode,\n numberAttribute,\n OnDestroy,\n Renderer2,\n signal,\n untracked,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n DOWN_ARROW,\n ENTER,\n getNodesWithoutComments,\n KBQ_TITLE_TEXT_REF,\n KbqColorDirective,\n KbqComponentColors,\n KbqTitleTextRef,\n LEFT_ARROW,\n leftIconClassName,\n RIGHT_ARROW,\n rightIconClassName,\n SPACE\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\n/** A button containing more icons than this keeps regular (non icon-button) styling. */\nconst maxIconsForIconButton = 2;\n\n/**\n * Applies the `kbq-button`/`kbq-button-icon` host class and the left/right icon modifier classes.\n *\n * A button is treated as an icon button when its projected content consists only of `KbqIcon`s\n * and there are at most 2 of them. When icons are mixed with other content, only the outermost\n * icons receive the left/right classes.\n *\n * Must be used together with `KbqButton` (both match `[kbq-button]`): icon detection relies on\n * the `.kbq-button-wrapper` element rendered by the component's template.\n */\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n private renderer = inject(Renderer2);\n\n readonly icons = contentChildren(forwardRef(() => KbqIcon));\n\n nativeElement: HTMLElement;\n\n /** Whether the button contains only icons (at most 2). */\n get isIconButton(): boolean {\n return this._isIconButton();\n }\n\n private readonly _isIconButton = signal(false);\n\n private leftIcon: HTMLElement | null = null;\n private rightIcon: HTMLElement | null = null;\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n this.nativeElement = elementRef.nativeElement;\n\n // The contentChildren query tracks only KbqIcon instances, while icon placement also\n // depends on sibling text nodes that are invisible to the query — those are covered by\n // the MutationObserver in the component template. This effect covers icon creation and\n // removal (e.g. via @if) while the observer is disabled for icon-less buttons.\n effect(() => {\n this.icons();\n\n untracked(() => this.updateClassModifierForIcons());\n });\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n const wrapper = this.nativeElement.querySelector('.kbq-button-wrapper');\n\n if (!wrapper) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('KbqButtonCssStyler should be imported together with KbqButton.');\n }\n\n return;\n }\n\n const icons = this.icons();\n const textElement = wrapper.querySelector('.kbq-button-text');\n\n // Build an ordered list of \"effective\" content nodes: the left-slot content, then the\n // default-slot content flattened out of `.kbq-button-text`, then the right-slot content.\n // Flattening the text span keeps legacy `<i kbq-icon> Text` markup (projected into the\n // default slot) working: those icons live inside `.kbq-button-text`, but for placement\n // they must be treated as direct siblings of the text, exactly as before the text span\n // existed. With no marker slots this list equals the old wrapper children.\n const effectiveNodes: Node[] = [];\n\n for (const node of getNodesWithoutComments(wrapper.childNodes)) {\n if (node === textElement) {\n effectiveNodes.push(...getNodesWithoutComments((node as HTMLElement).childNodes));\n } else {\n effectiveNodes.push(node);\n }\n }\n\n this._isIconButton.set(\n !!icons.length && icons.length === effectiveNodes.length && icons.length <= maxIconsForIconButton\n );\n\n let leftIcon: HTMLElement | null = null;\n let rightIcon: HTMLElement | null = null;\n\n if (icons.length && effectiveNodes.length > 1) {\n for (const icon of icons) {\n const iconHostElement = icon.getHostElement();\n const iconIndex = effectiveNodes.indexOf(iconHostElement);\n\n if (iconIndex === 0) leftIcon = iconHostElement;\n\n if (iconIndex === effectiveNodes.length - 1) rightIcon = iconHostElement;\n }\n }\n\n this.updateIconClass(this.leftIcon, leftIcon, leftIconClassName, buttonLeftIconClassName);\n this.updateIconClass(this.rightIcon, rightIcon, rightIconClassName, buttonRightIconClassName);\n\n this.leftIcon = leftIcon;\n this.rightIcon = rightIcon;\n }\n\n private updateIconClass(\n previous: HTMLElement | null,\n current: HTMLElement | null,\n iconClassName: string,\n buttonClassName: string\n ) {\n if (previous === current) return;\n\n if (previous) {\n this.renderer.removeClass(previous, iconClassName);\n }\n\n if (current) {\n this.renderer.addClass(current, iconClassName);\n this.renderer.addClass(this.nativeElement, buttonClassName);\n } else {\n this.renderer.removeClass(this.nativeElement, buttonClassName);\n }\n }\n}\n\n@Component({\n selector: '[kbq-button]',\n imports: [\n CdkObserveContent\n ],\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss', './button-tokens.scss'],\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqButton }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled || null',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class]': 'kbqStyle',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton extends KbqColorDirective implements OnDestroy, AfterViewInit, KbqTitleTextRef {\n private focusMonitor = inject(FocusMonitor);\n protected styler = inject(KbqButtonCssStyler);\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n hasFocus: boolean = false;\n\n @ViewChild('kbqTitleText') textElement: ElementRef<HTMLElement>;\n\n /** The flex row that lays out the icons and text, used as the overflow width constraint. */\n @ViewChild('parentTextElement') parentTextElement: ElementRef<HTMLElement>;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get kbqStyle(): string {\n return `kbq-button_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: string | KbqButtonStyles) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n\n this.changeDetectorRef.markForCheck();\n }\n\n private _kbqStyle: string | KbqButtonStyles = KbqButtonStyles.Filled;\n\n // @todo 20 In the next major release this feature will be replaced on the input signal.\n /** Whether the button is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this.disabledSignal();\n }\n\n set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n constructor() {\n super();\n\n this.color = KbqComponentColors.ContrastFade;\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n\n // Native capture-phase listeners instead of host listeners: Angular coalesces listeners\n // for the same event on the same element, so stopImmediatePropagation from a host listener\n // would not stop consumer-bound handlers. Matters for <a kbq-button> hosts only —\n // a disabled native <button> does not emit these events at all. The keydown guard covers\n // directives that activate on keydown directly (e.g. KbqDropdownTrigger, which opens on\n // ENTER/SPACE and on DOWN/LEFT/RIGHT arrows).\n this.getHostElement().addEventListener('click', this.haltDisabledEvents, true);\n this.getHostElement().addEventListener('keydown', this.haltDisabledKeydownEvents, true);\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.getHostElement().removeEventListener('click', this.haltDisabledEvents, true);\n this.getHostElement().removeEventListener('keydown', this.haltDisabledKeydownEvents, true);\n this.stopFocusMonitor();\n }\n\n onFocus() {\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n if (this.disabled) return;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n if (this.disabled) return;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents = (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n };\n\n private haltDisabledKeydownEvents = (event: KeyboardEvent) => {\n // Keys that activate sibling host directives on the same host (e.g. KbqDropdownTrigger opens\n // on ENTER/SPACE and on DOWN/LEFT/RIGHT arrows). Tab/Escape are intentionally left untouched\n // so focus can still move away from a disabled — but still focusable — <a kbq-button> host.\n if ([ENTER, SPACE, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW].includes(event.keyCode)) {\n this.haltDisabledEvents(event);\n }\n };\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<span\n #parentTextElement\n class=\"kbq-button-wrapper\"\n [cdkObserveContentDisabled]=\"!styler.icons().length\"\n (cdkObserveContent)=\"projectContentChanged()\"\n>\n <ng-content select=\"[kbqButtonPrefix]\" />\n <span #kbqTitleText class=\"kbq-button-text\">\n <ng-content />\n </span>\n <ng-content select=\"[kbqButtonSuffix]\" />\n</span>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n Directive,\n effect,\n Input,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqColorDirective, KbqComponentColors, KbqOrientation, ThemePalette } from '@koobiq/components/core';\nimport { KbqButton, KbqButtonStyles } from './button.component';\n\n/**\n * Root directive that groups related buttons,\n * propagating a shared style, color, and disabled state to every nested button\n */\n@Directive({\n selector: '[kbqButtonGroupRoot]',\n host: {\n '[class]': 'kbqStyle'\n }\n})\nexport class KbqButtonGroupRoot extends KbqColorDirective {\n private readonly buttons = contentChildren(KbqButton);\n /**\n * Style applied to the group and propagated to every nested button.\n * individual button's style preserved but updated when group input changed.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get kbqStyle(): string {\n return this._kbqStyle && `kbq-button-group-root_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: KbqButtonStyles | string) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n\n this.updateStyle(this._kbqStyle, this.buttons?.());\n }\n\n private _kbqStyle: string | KbqButtonStyles = '';\n\n /**\n * Color applied to the group and propagated to every nested button.\n * individual button's color preserved but updated when group input changed.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get color(): KbqComponentColors | ThemePalette | string {\n return this._color;\n }\n\n set color(value: KbqComponentColors | ThemePalette | string) {\n if (!value) return;\n\n super.color = value;\n\n this.updateColor(this.color, this.buttons?.());\n }\n\n /** Whether the root is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n this.updateDisabledState(this._disabled, this.buttons?.());\n }\n\n /** @docs-private */\n protected _disabled: boolean;\n\n constructor() {\n super();\n\n this.color = KbqComponentColors.ContrastFade;\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n\n effect(() => {\n const buttons = this.buttons();\n\n this.updateColor(this.color, buttons);\n this.updateStyle(this._kbqStyle, buttons);\n this.updateDisabledState(this.disabled, buttons);\n });\n }\n\n private updateColor(color: KbqComponentColors | ThemePalette | string, buttons?: readonly KbqButton[]) {\n buttons?.forEach((button: KbqButton) => (button.color = color));\n }\n\n private updateStyle(style: KbqButtonStyles | string, buttons?: readonly KbqButton[]) {\n buttons?.forEach((button: KbqButton) => (button.kbqStyle = style));\n }\n\n private updateDisabledState(state: boolean, buttons?: readonly KbqButton[]) {\n if (state === undefined) return;\n\n buttons?.forEach((button: KbqButton) => (button.disabled = state));\n }\n}\n\n/** Groups and styling related `KbqButton`s into a single visual unit. */\n@Component({\n selector: 'kbq-button-group, [kbq-button-group]',\n template: `\n <ng-content />\n `,\n styleUrls: ['./button-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n class: 'kbq-button-group',\n '[class]': '\"kbq-button-group_\" + orientation()',\n '[attr.aria-orientation]': 'orientation()'\n },\n hostDirectives: [\n { directive: KbqButtonGroupRoot, inputs: ['color', 'kbqStyle', 'disabled'] }\n ]\n})\nexport class KbqButtonGroup {\n /**\n * Layout direction: `'horizontal'` or `'vertical'`\n * @default 'horizontal'\n */\n readonly orientation = input<KbqOrientation>('horizontal');\n}\n","import { Directive } from '@angular/core';\n\n/** Marks content to be projected into the prefix (leading) slot of a button. */\n@Directive({\n selector: '[kbqButtonPrefix]',\n host: {\n class: 'kbq-button-prefix'\n }\n})\nexport class KbqButtonPrefix {}\n\n/** Marks content to be projected into the suffix (trailing) slot of a button. */\n@Directive({\n selector: '[kbqButtonSuffix]',\n host: {\n class: 'kbq-button-suffix'\n }\n})\nexport class KbqButtonSuffix {}\n","import { Directive, inject } from '@angular/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\n\n/**\n * This directive enhances `kbq-button` elements acting as dropdown triggers,\n * visually indicating the active state with the `kbq-active` class,\n * following Koobiq Design System.\n *\n * The directive relies on a separate `KbqDropdownTrigger` directive to get dropdown's state.\n */\n@Directive({\n selector: `[kbq-button][kbqDropdownTriggerFor]`,\n host: {\n '[class.kbq-active]': 'dropdownTrigger.opened'\n }\n})\nexport class KbqButtonDropdownTrigger {\n dropdownTrigger = inject(KbqDropdownTrigger);\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonGroup, KbqButtonGroupRoot } from './button-group';\nimport { KbqButtonPrefix, KbqButtonSuffix } from './button-slots';\nimport { KbqButton, KbqButtonCssStyler } from './button.component';\nimport { KbqButtonDropdownTrigger } from './button.dropdown-trigger.directive';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n ObserversModule,\n KbqButtonDropdownTrigger,\n KbqButton,\n KbqButtonCssStyler,\n KbqButtonPrefix,\n KbqButtonSuffix,\n KbqButtonGroup,\n KbqButtonGroupRoot\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler,\n KbqButtonPrefix,\n KbqButtonSuffix,\n KbqButtonDropdownTrigger,\n KbqButtonGroup,\n KbqButtonGroupRoot\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-button.mjs","sources":["../../../packages/components/button/button.component.ts","../../../packages/components/button/button.component.html","../../../packages/components/button/button-group.ts","../../../packages/components/button/button-slots.ts","../../../packages/components/button/button.dropdown-trigger.directive.ts","../../../packages/components/button/button.module.ts","../../../packages/components/button/koobiq-components-button.ts"],"sourcesContent":["import { FocusMonitor } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n AfterContentInit,\n afterNextRender,\n AfterViewChecked,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Injector,\n input,\n isDevMode,\n OnChanges,\n OnDestroy,\n Renderer2,\n signal,\n SimpleChanges,\n untracked,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n DOWN_ARROW,\n ENTER,\n getContentNodes,\n KBQ_TITLE_TEXT_REF,\n KbqColorDirective,\n KbqComponentColors,\n KbqEnumValues,\n kbqOptionalNumberAttribute,\n KbqTitleTextRef,\n LEFT_ARROW,\n leftIconClassName,\n RIGHT_ARROW,\n rightIconClassName,\n SPACE,\n supportsNativeDisabled\n} from '@koobiq/components/core';\nimport { KbqIcon } from '@koobiq/components/icon';\n\n/** Visual style of a button. */\nexport enum KbqButtonStyles {\n Filled = 'filled',\n Outline = 'outline',\n Transparent = 'transparent'\n}\n\n/** Visual style of a button, as an enum member or its plain string form. */\nexport type KbqButtonStyle = KbqEnumValues<KbqButtonStyles>;\n\n/**\n * Value accepted by the `kbqStyle` input: one of the built-in styles, or a custom string that is\n * applied verbatim as the `kbq-button_<value>` host class and themed by whoever sets it —\n * `kbq-filter-bar` defines its `changed-filter` style that way. A custom style is not covered by\n * `kbq-button-theme()` and takes the `filled` default color.\n */\nexport type KbqButtonStyleInput = KbqButtonStyle | (string & {});\n\n/**\n * Colors a button can be rendered in, as an enum member or its plain string form.\n *\n * A narrower set than `KbqComponentColors`: the design system pairs each color with a subset of\n * the styles (`filled` with `contrast`/`contrast-fade`, `outline` with `theme-fade`/`contrast-fade`,\n * `transparent` with `theme`/`contrast`), and defines no button appearance for the status colors.\n * A pair the design system does not define falls back to the style's default color rather than\n * leaving the button unstyled.\n */\nexport type KbqButtonColor = KbqEnumValues<\n | KbqComponentColors.Theme\n | KbqComponentColors.ThemeFade\n | KbqComponentColors.Contrast\n | KbqComponentColors.ContrastFade\n>;\n\n/**\n * Default color of each visual style.\n *\n * `transparent` differs from the other two on purpose: it paints neither a fill nor a border, so\n * its color only picks the foreground, and the design system has no faded variant for it — the\n * neutral transparent button is `contrast`, not `contrast-fade`.\n */\nconst defaultColorForStyle: Record<KbqButtonStyle, KbqButtonColor> = {\n [KbqButtonStyles.Filled]: KbqComponentColors.ContrastFade,\n [KbqButtonStyles.Outline]: KbqComponentColors.ContrastFade,\n [KbqButtonStyles.Transparent]: KbqComponentColors.Contrast\n};\n\n/** Default color of a style. A custom style has no entry and falls back to the `filled` default. */\nconst getDefaultColorForStyle = (style: KbqButtonStyleInput): KbqButtonColor =>\n defaultColorForStyle[style as KbqButtonStyle] ?? defaultColorForStyle[KbqButtonStyles.Filled];\n\n/**\n * Class set on a button host whose first visible child is an icon.\n *\n * Public CSS hook: consumed by `dropdown.scss` to detect an icon-only dropdown trigger.\n */\nexport const buttonLeftIconClassName = 'kbq-button-icon_left';\n\n/**\n * Class set on a button host whose last visible child is an icon.\n *\n * Public CSS hook: consumed by `dropdown.scss` to detect an icon-only dropdown trigger.\n */\nexport const buttonRightIconClassName = 'kbq-button-icon_right';\n\n/** A button containing more icons than this keeps regular (non icon-button) styling. */\nconst maxIconsForIconButton = 2;\n\n/**\n * Applies the `kbq-button`/`kbq-button-icon` host class and the left/right icon modifier classes.\n *\n * A button is treated as an icon button when its projected content consists only of `KbqIcon`s\n * and there are at most 2 of them. When icons are mixed with other content, only the outermost\n * icons receive the left/right classes.\n *\n * Must be used together with `KbqButton` (both match `[kbq-button]`): icon detection relies on\n * the `.kbq-button-wrapper` element rendered by the component's template.\n */\n@Directive({\n selector: '[kbq-button]',\n host: {\n '[class.kbq-button]': '!isIconButton',\n '[class.kbq-button-icon]': 'isIconButton',\n '[class.kbq-button_no-label]': 'hasNoLabel'\n }\n})\nexport class KbqButtonCssStyler implements AfterContentInit {\n private renderer = inject(Renderer2);\n private readonly injector = inject(Injector);\n\n readonly icons = contentChildren<KbqIcon>(forwardRef(() => KbqIcon));\n\n readonly nativeElement: HTMLElement;\n\n /** Whether the button contains only icons (at most 2). */\n get isIconButton(): boolean {\n return this._isIconButton();\n }\n\n /** Whether the projected label holds no text at all, e.g. an icon-only button. */\n get hasNoLabel(): boolean {\n return this._hasNoLabel();\n }\n\n private readonly _isIconButton = signal(false);\n\n private readonly _hasNoLabel = signal(false);\n\n private leftIcon: HTMLElement | null = null;\n private rightIcon: HTMLElement | null = null;\n\n /** Memoized `.kbq-button-wrapper`; stable for the lifetime of the host component. */\n private wrapperElement: HTMLElement | null = null;\n\n /** Whether the missing-accessible-name warning has already been emitted for this host. */\n private accessibleNameWarned = false;\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n this.nativeElement = elementRef.nativeElement;\n\n // The contentChildren query tracks only KbqIcon instances, and only direct ones, while icon\n // placement and `hasNoLabel` also depend on text nodes and on content a consumer nested in\n // its own element — all invisible to the query. Those are covered by the MutationObserver in\n // the component template, which is why it stays enabled even for icon-less buttons. This\n // effect covers icon creation and removal (e.g. via @if) without waiting for the observer.\n effect(() => {\n this.icons();\n\n untracked(() => this.updateClassModifierForIcons());\n });\n }\n\n ngAfterContentInit() {\n this.updateClassModifierForIcons();\n }\n\n updateClassModifierForIcons() {\n const wrapper = this.getWrapperElement();\n\n if (!wrapper) {\n if (isDevMode()) {\n // eslint-disable-next-line no-console\n console.warn('KbqButtonCssStyler should be imported together with KbqButton.');\n }\n\n return;\n }\n\n const icons = this.icons();\n const textElement = wrapper.querySelector('.kbq-button-text');\n\n // CSS cannot see text nodes, so it can never tell an icon-only label from a text label that\n // happens to contain an icon — the label box has to be told. `textContent` walks nested\n // elements, which also covers content a consumer wrapped in its own element before\n // projecting it (e.g. KbqButtonToggle), where the icon is not a direct child at all.\n this._hasNoLabel.set(!textElement?.textContent?.trim());\n\n // Build an ordered list of \"effective\" content nodes: the left-slot content, then the\n // default-slot content flattened out of `.kbq-button-text`, then the right-slot content.\n // Flattening the text span keeps legacy `<i kbq-icon> Text` markup (projected into the\n // default slot) working: those icons live inside `.kbq-button-text`, but for placement\n // they must be treated as direct siblings of the text, exactly as before the text span\n // existed. With no marker slots this list equals the old wrapper children.\n const effectiveNodes: Node[] = [];\n\n for (const node of getContentNodes(wrapper)) {\n if (node === textElement) {\n effectiveNodes.push(...getContentNodes(node));\n } else {\n effectiveNodes.push(node);\n }\n }\n\n this._isIconButton.set(\n !!icons.length && icons.length === effectiveNodes.length && icons.length <= maxIconsForIconButton\n );\n\n let leftIcon: HTMLElement | null = null;\n let rightIcon: HTMLElement | null = null;\n\n if (icons.length && effectiveNodes.length > 1) {\n for (const icon of icons) {\n const iconHostElement = icon.getHostElement();\n const iconIndex = effectiveNodes.indexOf(iconHostElement);\n\n if (iconIndex === 0) leftIcon = iconHostElement;\n\n if (iconIndex === effectiveNodes.length - 1) rightIcon = iconHostElement;\n }\n }\n\n this.updateIconClass(this.leftIcon, leftIcon, leftIconClassName, buttonLeftIconClassName);\n this.updateIconClass(this.rightIcon, rightIcon, rightIconClassName, buttonRightIconClassName);\n\n this.leftIcon = leftIcon;\n this.rightIcon = rightIcon;\n\n // A label bound inside an @if block is still an empty text node here, so the button would look\n // icon-only; judge the name once the content has rendered.\n afterNextRender(() => this.warnIfIconButtonHasNoAccessibleName(), { injector: this.injector });\n }\n\n private updateIconClass(\n previous: HTMLElement | null,\n current: HTMLElement | null,\n iconClassName: string,\n buttonClassName: string\n ) {\n if (previous === current) return;\n\n if (previous) {\n this.renderer.removeClass(previous, iconClassName);\n }\n\n if (current) {\n this.renderer.addClass(current, iconClassName);\n this.renderer.addClass(this.nativeElement, buttonClassName);\n } else {\n this.renderer.removeClass(this.nativeElement, buttonClassName);\n }\n }\n\n private getWrapperElement(): HTMLElement | null {\n return (this.wrapperElement ??= this.nativeElement.querySelector('.kbq-button-wrapper'));\n }\n\n /**\n * `KbqIcon` renders a decorative glyph, so an icon-only button carries no text. Without an\n * `aria-label`/`aria-labelledby`/`title` it has no accessible name at all (AXE `button-name`).\n */\n private warnIfIconButtonHasNoAccessibleName(): void {\n if (!isDevMode() || this.accessibleNameWarned || !this.isIconButton) return;\n\n const host = this.nativeElement;\n const hasAccessibleName =\n !!host.textContent?.trim() ||\n host.hasAttribute('aria-label') ||\n host.hasAttribute('aria-labelledby') ||\n host.hasAttribute('title');\n\n if (hasAccessibleName) return;\n\n this.accessibleNameWarned = true;\n\n // eslint-disable-next-line no-console\n console.warn(\n 'KbqButton: icon-only button has no accessible name. Add [aria-label] or [aria-labelledby] to it.',\n host\n );\n }\n}\n\n@Component({\n selector: '[kbq-button]',\n imports: [\n CdkObserveContent\n ],\n templateUrl: './button.component.html',\n styleUrls: ['./button.scss', './button-tokens.scss'],\n providers: [\n { provide: KBQ_TITLE_TEXT_REF, useExisting: KbqButton }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.disabled]': 'nativeDisabledAttribute',\n '[attr.aria-disabled]': 'ariaDisabledAttribute',\n '[class.kbq-disabled]': 'disabled',\n '[attr.tabindex]': 'tabIndexAttribute',\n '[class]': 'kbqStyle',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()'\n }\n})\nexport class KbqButton\n extends KbqColorDirective<KbqButtonColor>\n implements OnChanges, OnDestroy, AfterViewInit, AfterViewChecked, KbqTitleTextRef\n{\n private focusMonitor = inject(FocusMonitor);\n protected styler = inject(KbqButtonCssStyler);\n\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly renderer = inject(Renderer2);\n\n /** Lower-cased tag name of the host element. */\n private readonly hostTagName = this.elementRef.nativeElement.nodeName.toLowerCase();\n\n /** Whether the host element supports the native `disabled` attribute. */\n private readonly hostSupportsNativeDisabled = supportsNativeDisabled(this.elementRef.nativeElement);\n\n hasFocus: boolean = false;\n\n private readonly titleText = viewChild<ElementRef<HTMLElement>>('kbqTitleText');\n private readonly parentText = viewChild<ElementRef<HTMLElement>>('parentTextElement');\n\n /** The text box of the button, measured by `kbq-title`. Always rendered by the template. */\n get textElement(): ElementRef<HTMLElement> {\n return this.titleText()!;\n }\n\n /** The flex row that lays out the icons and text, used as the overflow width constraint. */\n get parentTextElement(): ElementRef<HTMLElement> {\n return this.parentText()!;\n }\n\n /**\n * Visual style of the button. Setting it to a value marks that value as owned by the button, so\n * a surrounding `KbqButtonGroupRoot` no longer overrides it.\n *\n * Reads back as the resulting host class rather than the value that was set, because the host\n * `[class]` binding is what consumes it.\n */\n get kbqStyle(): string {\n return this._kbqStyleClassName;\n }\n\n set kbqStyle(value: KbqButtonStyleInput | null | undefined) {\n this.kbqStyleSetExplicitly = !!value;\n\n this.applyKbqStyle(value);\n }\n\n private _kbqStyle: KbqButtonStyleInput = KbqButtonStyles.Filled;\n private _kbqStyleClassName = `kbq-button_${KbqButtonStyles.Filled}`;\n\n /** Color propagated by a surrounding `KbqButtonGroupRoot`. */\n private groupColor: KbqButtonColor | null | undefined;\n\n /**\n * Whether the button is disabled. A surrounding `KbqButtonGroupRoot` can disable the button in\n * addition to this input, but never re-enables a button disabled through it.\n */\n get disabled(): boolean {\n return this.disabledSignal();\n }\n\n set disabled(value: boolean) {\n this.ownDisabled = value;\n\n this.applyDisabledState();\n }\n\n /** Whether `kbqStyle` was set from the outside rather than propagated by a button group. */\n private kbqStyleSetExplicitly = false;\n\n /** Disabled state requested through the `disabled` input. */\n private ownDisabled = false;\n\n /** Disabled state propagated by a surrounding `KbqButtonGroupRoot`. */\n private groupDisabled = false;\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n // Code may write NaN, which would render `tabindex=\"NaN\"`.\n this._tabIndex = Number.isNaN(value) ? 0 : value;\n }\n\n private _tabIndex = 0;\n\n /** Value rendered into the native `disabled` attribute; invalid HTML on hosts such as `<a>`. */\n protected get nativeDisabledAttribute(): true | null {\n return this.disabled && this.hostSupportsNativeDisabled ? true : null;\n }\n\n /** Disabled state exposed to assistive tech for hosts without native `disabled` support. */\n protected get ariaDisabledAttribute(): true | null {\n return this.disabled && !this.hostSupportsNativeDisabled ? true : null;\n }\n\n /**\n * Value rendered into the `tabindex` attribute. A native `<button>`/`<input>` is already in the\n * tab order, so the default needs no attribute at all. Anchors keep it: one without `href` is\n * not focusable otherwise, and whether an `href` is present cannot be decided here — directives\n * such as `RouterLink` apply theirs after this host binding runs.\n */\n protected get tabIndexAttribute(): number | null {\n if (this.disabled) return -1;\n\n return this.hostSupportsNativeDisabled && this._tabIndex === 0 ? null : this._tabIndex;\n }\n\n /** @docs-private */\n readonly kbqStyleInput = input<KbqButtonStyleInput | null | undefined>(undefined, { alias: 'kbqStyle' });\n\n /** @docs-private */\n readonly disabledInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n /** @docs-private */\n readonly tabIndexInput = input<number | undefined, number | string | null | undefined>(undefined, {\n alias: 'tabIndex',\n transform: kbqOptionalNumberAttribute\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n if (changes['kbqStyleInput']) {\n this.kbqStyle = this.kbqStyleInput();\n }\n\n if (changes['disabledInput']) {\n const disabled = this.disabledInput();\n\n if (disabled !== undefined) this.disabled = disabled;\n }\n\n if (changes['tabIndexInput']) this.tabIndex = this.tabIndexInput() ?? 0;\n }\n\n constructor() {\n super();\n\n this.applyDefaultColor();\n\n // Native capture-phase listeners instead of host listeners: Angular coalesces listeners\n // for the same event on the same element, so stopImmediatePropagation from a host listener\n // would not stop consumer-bound handlers. Matters for <a kbq-button> hosts only —\n // a disabled native <button> does not emit these events at all. The keydown guard covers\n // directives that activate on keydown directly (e.g. KbqDropdownTrigger, which opens on\n // ENTER/SPACE and on DOWN/LEFT/RIGHT arrows).\n this.getHostElement().addEventListener('click', this.haltDisabledEvents, true);\n this.getHostElement().addEventListener('keydown', this.haltDisabledKeydownEvents, true);\n }\n\n /**\n * Applies the color propagated by a surrounding `KbqButtonGroupRoot`, unless the button defines\n * its own. A falsy value — the group's `color` input is unbound — releases the button back to\n * the default color of its style.\n *\n * @docs-private\n */\n setColorFromGroup(value: KbqButtonColor | null | undefined): void {\n this.groupColor = value;\n this.applyDefaultColor();\n }\n\n /**\n * Applies the style propagated by a surrounding `KbqButtonGroupRoot`, unless the button defines\n * its own.\n *\n * @docs-private\n */\n setKbqStyleFromGroup(value: KbqButtonStyleInput): void {\n if (this.kbqStyleSetExplicitly) return;\n\n this.applyKbqStyle(value);\n }\n\n /**\n * Applies the disabled state propagated by a surrounding `KbqButtonGroupRoot`. It is additive:\n * a button disabled through its own input stays disabled when the group is re-enabled.\n *\n * @docs-private\n */\n setDisabledFromGroup(value: boolean): void {\n this.groupDisabled = value;\n\n this.applyDisabledState();\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n this.updateRole();\n }\n\n ngAfterViewChecked(): void {\n // `href` can appear or disappear long after the first check — `[attr.href]` bound to a value\n // that resolves later, or a `RouterLink` whose target becomes `null`. Running on every pass\n // costs nothing: `updateRole` leaves a host that is not an anchor alone, and writes nothing\n // while the role it would write is already there.\n this.updateRole();\n }\n\n /**\n * Re-evaluates the role announced to assistive tech. Only anchors can change role, so the guard\n * lives here rather than at the call sites: this is public, and a `<button>` host must not have\n * a role stamped onto it from the outside.\n *\n * An `<a kbq-button>` without `href` does not navigate and has no implicit role, so it is\n * announced as a button. Anchors that do navigate (`href`, `routerLink`) keep their link role.\n *\n * Every other host already has an implicit role and is left exactly as it was authored — a host\n * binding would instead have to write `null` for it, which removes a `role` the consumer set\n * itself. `KbqButtonToggle` relies on that: it renders `role=\"radio\"` on its inner button.\n *\n * @docs-private\n */\n updateRole(): void {\n if (this.hostTagName !== 'a') return;\n\n const host = this.getHostElement();\n const role = host.hasAttribute('href') ? null : 'button';\n\n // Called from every `ngAfterViewChecked`, so the write is worth skipping while the attribute\n // already reads the way it would be rewritten.\n if (host.getAttribute('role') === role) return;\n\n if (role) {\n this.renderer.setAttribute(host, 'role', role);\n } else {\n this.renderer.removeAttribute(host, 'role');\n }\n }\n\n ngOnDestroy() {\n this.getHostElement().removeEventListener('click', this.haltDisabledEvents, true);\n this.getHostElement().removeEventListener('keydown', this.haltDisabledKeydownEvents, true);\n this.stopFocusMonitor();\n }\n\n onFocus() {\n this.hasFocus = true;\n }\n\n onBlur() {\n this.hasFocus = false;\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n focus(): void {\n if (this.disabled) return;\n\n this.getHostElement().focus();\n }\n\n focusViaKeyboard(): void {\n if (this.disabled) return;\n\n this.focusMonitor.focusVia(this.getHostElement(), 'keyboard');\n }\n\n haltDisabledEvents = (event: Event) => {\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n };\n\n private haltDisabledKeydownEvents = (event: KeyboardEvent) => {\n // Keys that activate sibling host directives on the same host (e.g. KbqDropdownTrigger opens\n // on ENTER/SPACE and on DOWN/LEFT/RIGHT arrows). Tab/Escape are intentionally left untouched\n // so focus can still move away from a disabled — but still focusable — <a kbq-button> host.\n if ([ENTER, SPACE, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW].includes(event.keyCode)) {\n this.haltDisabledEvents(event);\n }\n };\n\n projectContentChanged() {\n this.styler.updateClassModifierForIcons();\n }\n\n private applyKbqStyle(value: KbqButtonStyleInput | null | undefined): void {\n const kbqStyle = value || KbqButtonStyles.Filled;\n\n if (kbqStyle === this._kbqStyle) return;\n\n this._kbqStyle = kbqStyle;\n this._kbqStyleClassName = `kbq-button_${kbqStyle}`;\n\n this.applyDefaultColor();\n\n this.changeDetectorRef.markForCheck();\n }\n\n /**\n * The color of a surrounding `KbqButtonGroupRoot` wins over the default color of the current `kbqStyle`:\n * the design system defines a different neutral color per style, which a button without a color of its own\n * or of its group keeps following.\n */\n private applyDefaultColor(): void {\n this.setDefaultColor(this.groupColor || getDefaultColorForStyle(this._kbqStyle));\n }\n\n private applyDisabledState(): void {\n this.disabledSignal.set(this.ownDisabled || this.groupDisabled);\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.elementRef.nativeElement, true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n}\n","<span #parentTextElement class=\"kbq-button-wrapper\" (cdkObserveContent)=\"projectContentChanged()\">\n <ng-content select=\"[kbqButtonPrefix]\" />\n <span #kbqTitleText class=\"kbq-button-text\">\n <ng-content />\n </span>\n <ng-content select=\"[kbqButtonSuffix]\" />\n</span>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChildren,\n Directive,\n effect,\n input,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqColorDirective, KbqComponentColors, KbqOrientation } from '@koobiq/components/core';\nimport { KbqButton, KbqButtonColor, KbqButtonStyleInput, KbqButtonStyles } from './button.component';\n\n/**\n * Root directive that groups related buttons,\n * propagating a shared style, color, and disabled state to every nested button\n */\n@Directive({\n selector: '[kbqButtonGroupRoot]',\n host: {\n '[class]': 'kbqStyle'\n }\n})\nexport class KbqButtonGroupRoot extends KbqColorDirective<KbqButtonColor> implements OnChanges {\n private readonly buttons = contentChildren(KbqButton);\n\n /**\n * Style applied to the group and propagated to every nested button.\n * A button that sets its own `kbqStyle` keeps it.\n */\n get kbqStyle(): string {\n return this._kbqStyle && `kbq-button-group-root_${this._kbqStyle}`;\n }\n\n set kbqStyle(value: KbqButtonStyleInput | null | undefined) {\n this._kbqStyle = value || KbqButtonStyles.Filled;\n\n this.updateStyle(this._kbqStyle, this.buttons?.());\n }\n\n /** Empty until the input is bound, so that an unstyled group emits no root style class. */\n private _kbqStyle: KbqButtonStyleInput | '' = '';\n\n /**\n * Color propagated to every nested button: a bound `color`, or one set in code other than the\n * group's own default. Nothing is propagated otherwise, and every nested button follows the\n * default color of its style. A button that sets its own `color` keeps it.\n */\n private readonly propagatedColor = computed(() => {\n const color = this.color();\n\n return this.colorInput() || color !== this.defaultColor() ? color : undefined;\n });\n\n /**\n * Whether the root is disabled. Disabling the group disables every nested button; re-enabling it\n * leaves buttons that are disabled through their own input untouched.\n *\n * Stays `undefined` while the input is unbound so that nested buttons are not force-enabled.\n */\n get disabled(): boolean | undefined {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this._disabled = value;\n\n this.updateDisabledState(this._disabled, this.buttons?.());\n }\n\n /** @docs-private */\n protected _disabled: boolean | undefined;\n\n /** @docs-private */\n readonly kbqStyleInput = input<KbqButtonStyleInput | null | undefined>(undefined, { alias: 'kbqStyle' });\n\n /** @docs-private */\n readonly disabledInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n ngOnChanges(changes: SimpleChanges): void {\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n if (changes['kbqStyleInput']) {\n this.kbqStyle = this.kbqStyleInput();\n }\n\n if (changes['disabledInput']) {\n const disabled = this.disabledInput();\n\n if (disabled !== undefined) this.disabled = disabled;\n }\n }\n\n constructor() {\n super();\n\n // The group's own default styles the root element (see `button-group.scss`) but is not\n // propagated, so every nested button is free to follow the default color of its own style.\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n\n effect(() => {\n const color = this.propagatedColor();\n\n this.buttons().forEach((button: KbqButton) => button.setColorFromGroup(color));\n });\n\n effect(() => {\n const buttons = this.buttons();\n\n this.updateStyle(this._kbqStyle, buttons);\n this.updateDisabledState(this._disabled, buttons);\n });\n }\n\n private updateStyle(style: KbqButtonStyleInput | '', buttons?: readonly KbqButton[]) {\n // Empty only while the input is unbound, and a button already defaults to `filled` on its\n // own, so there is nothing to propagate.\n if (!style) return;\n\n buttons?.forEach((button: KbqButton) => button.setKbqStyleFromGroup(style));\n }\n\n private updateDisabledState(state: boolean | undefined, buttons?: readonly KbqButton[]) {\n if (state === undefined) return;\n\n buttons?.forEach((button: KbqButton) => button.setDisabledFromGroup(state));\n }\n}\n\n/** Groups and styling related `KbqButton`s into a single visual unit. */\n@Component({\n selector: 'kbq-button-group, [kbq-button-group]',\n template: `\n <ng-content />\n `,\n styleUrls: ['./button-group.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'group',\n class: 'kbq-button-group',\n '[class]': '\"kbq-button-group_\" + orientation()'\n },\n hostDirectives: [\n { directive: KbqButtonGroupRoot, inputs: ['color', 'kbqStyle', 'disabled'] }\n ]\n})\nexport class KbqButtonGroup {\n /**\n * Layout direction: `'horizontal'` or `'vertical'`. Defaults to `'horizontal'`.\n */\n readonly orientation = input<KbqOrientation>('horizontal');\n}\n","import { Directive } from '@angular/core';\n\n/** Marks content to be projected into the prefix (leading) slot of a button. */\n@Directive({\n selector: '[kbqButtonPrefix]',\n host: {\n class: 'kbq-button-prefix'\n }\n})\nexport class KbqButtonPrefix {}\n\n/** Marks content to be projected into the suffix (trailing) slot of a button. */\n@Directive({\n selector: '[kbqButtonSuffix]',\n host: {\n class: 'kbq-button-suffix'\n }\n})\nexport class KbqButtonSuffix {}\n","import { Directive, inject } from '@angular/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\n\n/**\n * This directive enhances `kbq-button` elements acting as dropdown triggers,\n * visually indicating the active state with the `kbq-active` class,\n * following Koobiq Design System.\n *\n * The directive relies on a separate `KbqDropdownTrigger` directive to get dropdown's state.\n */\n@Directive({\n selector: `[kbq-button][kbqDropdownTriggerFor]`,\n host: {\n '[class.kbq-active]': 'dropdownTrigger.opened'\n }\n})\nexport class KbqButtonDropdownTrigger {\n dropdownTrigger = inject(KbqDropdownTrigger);\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqButtonGroup, KbqButtonGroupRoot } from './button-group';\nimport { KbqButtonPrefix, KbqButtonSuffix } from './button-slots';\nimport { KbqButton, KbqButtonCssStyler } from './button.component';\nimport { KbqButtonDropdownTrigger } from './button.dropdown-trigger.directive';\n\n@NgModule({\n imports: [\n A11yModule,\n PlatformModule,\n ObserversModule,\n KbqButtonDropdownTrigger,\n KbqButton,\n KbqButtonCssStyler,\n KbqButtonPrefix,\n KbqButtonSuffix,\n KbqButtonGroup,\n KbqButtonGroupRoot\n ],\n exports: [\n KbqButton,\n KbqButtonCssStyler,\n KbqButtonPrefix,\n KbqButtonSuffix,\n KbqButtonDropdownTrigger,\n KbqButtonGroup,\n KbqButtonGroupRoot\n ]\n})\nexport class KbqButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|