@koobiq/components 20.4.2 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +791 -609
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2871 -2595
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +400 -149
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +463 -143
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +734 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1700 -617
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +415 -18
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.cjs +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/{data.js → data.cjs} +3 -0
- package/schematics/migrations/alert-signals/index.cjs +221 -0
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.cjs +136 -0
- package/schematics/migrations/app-switcher-signals/index.cjs +366 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
- package/schematics/migrations/autocomplete-signals/index.cjs +707 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.cjs +109 -0
- package/schematics/migrations/badge-signals/index.cjs +694 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.cjs +136 -0
- package/schematics/migrations/button-state-and-styles/index.cjs +221 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.cjs +106 -0
- package/schematics/migrations/button-supported-colors/index.cjs +261 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.cjs +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.cjs +88 -0
- package/schematics/migrations/button-truncation/index.cjs +270 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.cjs +114 -0
- package/schematics/migrations/checkbox-signals/index.cjs +635 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.cjs +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.cjs +121 -0
- package/schematics/migrations/code-block-signals/index.cjs +701 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.cjs +131 -0
- package/schematics/migrations/color-signals/index.cjs +20 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.cjs +49 -0
- package/schematics/migrations/datepicker-signals/index.cjs +18 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
- package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.cjs +152 -0
- package/schematics/migrations/dropdown-signals/index.cjs +20 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
- package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
- package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.cjs +58 -0
- package/schematics/migrations/flag-inner-html/index.cjs +62 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.cjs +288 -0
- package/schematics/migrations/form-field-signals/index.cjs +383 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.cjs +135 -0
- package/schematics/migrations/input-number-surface/index.cjs +293 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.cjs +30 -0
- package/schematics/migrations/input-signals/index.cjs +18 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.cjs +116 -0
- package/schematics/migrations/link-signals/index.cjs +416 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.cjs +35 -0
- package/schematics/migrations/list-signals/index.cjs +18 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
- package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
- package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.cjs +79 -0
- package/schematics/migrations/markdown-signals/index.cjs +640 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.cjs +132 -0
- package/schematics/migrations/modal-signals/index.cjs +20 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.cjs +66 -0
- package/schematics/migrations/notification-center-signals/index.cjs +62 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.cjs +86 -0
- package/schematics/migrations/option-signals/index.cjs +20 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
- package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
- package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.cjs +70 -0
- package/schematics/migrations/query-list-signals/index.cjs +18 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
- package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.cjs +88 -0
- package/schematics/migrations/state-saving-default/index.cjs +63 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.cjs +66 -0
- package/schematics/migrations/table-cell-content/index.cjs +67 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
- package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.cjs +191 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.cjs +103 -0
- package/schematics/migrations/tags-signals/index.cjs +674 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.cjs +121 -0
- package/schematics/migrations/textarea-signals/index.cjs +380 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.cjs +139 -0
- package/schematics/migrations/time-range-title-for/index.cjs +164 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.cjs +82 -0
- package/schematics/migrations/timepicker-signals/index.cjs +710 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.cjs +69 -0
- package/schematics/migrations/title-encapsulation/index.cjs +58 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.cjs +106 -0
- package/schematics/migrations/tree-select-signals/index.cjs +59 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.cjs +123 -0
- package/schematics/migrations/tree-signals/index.cjs +55 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
- package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
- package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
- package/schematics/migrations/v21-upgrade/index.cjs +95 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +401 -6
- package/schematics/ng-add/index.cjs +266 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/deprecated-path-migration.cjs +62 -0
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +670 -0
- package/types/koobiq-components-tree.d.ts +1339 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/schematics/migrations/alert-signals/index.js +0 -353
- package/schematics/migrations/filter-bar-signals/index.js +0 -319
- package/schematics/migrations/v20-upgrade/index.js +0 -225
- package/schematics/ng-add/index.js +0 -39
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -178
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
- /package/schematics/utils/{messages.js → messages.cjs} +0 -0
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-badge-signals",
|
|
4
|
+
"title": "Koobiq components badge signals migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"fix": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": true,
|
|
17
|
+
"description": "When true, applies all auto-fix replacements. When false, prints what would change without writing."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# button-state-and-styles
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Migrates consumers of the v21.0.0 button review.
|
|
5
|
+
|
|
6
|
+
## Background
|
|
7
|
+
|
|
8
|
+
The review of `[kbq-button]` changed three unrelated things at once, which is why
|
|
9
|
+
one schematic covers all of them:
|
|
10
|
+
|
|
11
|
+
1. **Host attributes.** `disabled` and `aria-disabled` are now chosen by host
|
|
12
|
+
tag instead of being applied to both; `tabindex` is omitted when it would be
|
|
13
|
+
redundant; an `<a kbq-button>` without `href` is announced as a button.
|
|
14
|
+
2. **Button group ownership.** `KbqButtonGroupRoot` used to overwrite every
|
|
15
|
+
nested button's `kbqStyle` and `color` on each update. It now treats a button
|
|
16
|
+
that sets them itself as the owner, and its `disabled` became additive.
|
|
17
|
+
3. **Styles.** Four physical border-radius mixins were replaced by logical ones,
|
|
18
|
+
the `.kbq-progress` utility moved into `kbq-core()`, and two custom properties
|
|
19
|
+
that nothing read were dropped.
|
|
20
|
+
|
|
21
|
+
## What it does
|
|
22
|
+
|
|
23
|
+
The schematic walks every `.ts`, `.html`, `.scss` and `.css` file in the project
|
|
24
|
+
(skipping `node_modules` and `dist`).
|
|
25
|
+
|
|
26
|
+
| Auto-fix | Where |
|
|
27
|
+
| --------------------------------------------------------------------------- | ---------------- |
|
|
28
|
+
| `@include border-right-radius(…)` → `@include border-inline-end-radius(…)` | `.scss` / `.css` |
|
|
29
|
+
| `@include border-left-radius(…)` → `@include border-inline-start-radius(…)` | `.scss` / `.css` |
|
|
30
|
+
| `@include border-top-radius(…)` → `@include border-block-start-radius(…)` | `.scss` / `.css` |
|
|
31
|
+
| `@include border-bottom-radius(…)` → `@include border-block-end-radius(…)` | `.scss` / `.css` |
|
|
32
|
+
|
|
33
|
+
This is the only mandatory mechanical change in the release: the four mixins were
|
|
34
|
+
removed from `core/styles/common/_groups-mixins.scss` and
|
|
35
|
+
`core/styles/common/_groups.scss` (the latter re-exported through
|
|
36
|
+
`core/styles/common/_index.scss`), so an unmigrated stylesheet no longer compiles.
|
|
37
|
+
|
|
38
|
+
The rewrite is anchored on `@include`, because these identifiers only ever appear
|
|
39
|
+
as Sass mixin calls. A CSS declaration (`border-top-left-radius`), a custom
|
|
40
|
+
property (`--border-top-radius`) or a comment mentioning the old name is never
|
|
41
|
+
touched.
|
|
42
|
+
|
|
43
|
+
> **The replacement is not a pure rename.** `border-inline-end-radius` follows
|
|
44
|
+
> `dir`, so under `dir="rtl"` it rounds the corners `border-right-radius` did
|
|
45
|
+
> not. That is the intent — the library moved its own group styling the same way
|
|
46
|
+
> — but a physically-designed RTL layout will change.
|
|
47
|
+
|
|
48
|
+
## Group ownership findings
|
|
49
|
+
|
|
50
|
+
Templates are **parsed**, and a button is reported only when it sits inside a
|
|
51
|
+
group (`kbqButtonGroupRoot`, `<kbq-button-group>` or `[kbq-button-group]`) **and**
|
|
52
|
+
declares a `kbqStyle`, `color` or `disabled` of its own — in any binding form
|
|
53
|
+
(`color="…"`, `[color]="…"`, `bind-color="…"`). A standalone button is
|
|
54
|
+
unaffected by the ownership rule, so reporting it would be noise.
|
|
55
|
+
|
|
56
|
+
```html
|
|
57
|
+
<div kbqButtonGroupRoot [kbqStyle]="groupStyle">
|
|
58
|
+
<button kbq-button [kbqStyle]="ownStyle">Reported — the group no longer wins</button>
|
|
59
|
+
<button kbq-button>Not reported — still inherits from the group</button>
|
|
60
|
+
</div>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Nesting is tracked through the traversal, so a button inside an `@if` block, or a
|
|
64
|
+
group nested in another group, is found once. Findings carry a line number; for
|
|
65
|
+
an inline `@Component({ template })` it is offset to point into the `.ts` file.
|
|
66
|
+
|
|
67
|
+
Template rules are applied to `.ts` files **only inside inline
|
|
68
|
+
`@Component({ template })` literals**, located through the TypeScript AST — a
|
|
69
|
+
`template` property of some other object is not a component template.
|
|
70
|
+
|
|
71
|
+
## What it warns about
|
|
72
|
+
|
|
73
|
+
Nothing below is auto-fixed: each needs a decision, and rewriting it blind would
|
|
74
|
+
be wrong more often than right.
|
|
75
|
+
|
|
76
|
+
**`.ts`**
|
|
77
|
+
|
|
78
|
+
| Trigger | Why |
|
|
79
|
+
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
80
|
+
| `KbqButtonGroupRoot` | `disabled` is now `boolean \| undefined` and additive — re-enabling the group no longer enables a button disabled through its own input |
|
|
81
|
+
| `KbqButtonCssStyler` | `nativeElement` became `readonly`; `icons` is typed `Signal<readonly KbqIcon[]>` instead of `readonly any[]` |
|
|
82
|
+
| `getAttribute('disabled')` / `hasAttribute` | `<a kbq-button>` no longer renders `disabled`; `<button kbq-button>` no longer renders `aria-disabled` |
|
|
83
|
+
| `KBQ_LOCALE_DATA` / `.addLocale(` | locale data gained an `a11y` section; custom data without it falls back to the ru-RU accessible names |
|
|
84
|
+
|
|
85
|
+
**`.scss` / `.css`**
|
|
86
|
+
|
|
87
|
+
| Trigger | Why |
|
|
88
|
+
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
|
89
|
+
| `--kbq-button-icon-size-vertical-padding` | removed — nothing read it even before 21.0.0, so the override was already inert |
|
|
90
|
+
| `--kbq-button-icon-size-content-padding` | same |
|
|
91
|
+
| `[disabled]` in a file mentioning `kbq-button` | `a[kbq-button][disabled]` never matches now — use `.kbq-disabled` or `[aria-disabled="true"]` |
|
|
92
|
+
| `@use '…/core/styles/common[/animation]'` | the import no longer emits `.kbq-progress` or its keyframes; they moved into the `kbq-progress()` mixin |
|
|
93
|
+
|
|
94
|
+
A template that mentions a group but fails to parse is reported rather than
|
|
95
|
+
guessed at, because a regex cannot tell which buttons are inside the group.
|
|
96
|
+
|
|
97
|
+
## Behaviour note
|
|
98
|
+
|
|
99
|
+
Printed once per run, since none of it needs a code change but all of it is
|
|
100
|
+
visible in tests and screenshots:
|
|
101
|
+
|
|
102
|
+
- `<a kbq-button [disabled]>` drops `disabled`, keeps `aria-disabled="true"`, `tabindex="-1"` and `.kbq-disabled`
|
|
103
|
+
- `<button kbq-button [disabled]>` drops `aria-disabled`, keeps the native `disabled`
|
|
104
|
+
- `<button kbq-button>` no longer renders `tabindex="0"` (anchors still do)
|
|
105
|
+
- `<a kbq-button>` without `href` is announced as `role="button"`
|
|
106
|
+
- every `[kbqDropdownTriggerFor]` renders `aria-expanded`
|
|
107
|
+
- the built-in icon-only buttons render a localized `aria-label`
|
|
108
|
+
- icon gaps and group corner radii follow `dir`
|
|
109
|
+
- `.kbq-progress` is emitted by `kbq-core()` only
|
|
110
|
+
|
|
111
|
+
## Usage
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# automatically, as part of the update
|
|
115
|
+
ng update @koobiq/components@21
|
|
116
|
+
|
|
117
|
+
# or manually
|
|
118
|
+
ng g @koobiq/components:button-state-and-styles --project "<your project>"
|
|
119
|
+
|
|
120
|
+
# dry run — report without writing
|
|
121
|
+
ng g @koobiq/components:button-state-and-styles --project "<your project>" --fix false
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Options
|
|
125
|
+
|
|
126
|
+
| Option | Default | Description |
|
|
127
|
+
| ----------- | ------- | -------------------------------------------------------------- |
|
|
128
|
+
| `--project` | — | Project to migrate. Omitted, the migration runs over the tree. |
|
|
129
|
+
| `--fix` | `true` | When `false`, prints what would change without writing. |
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Replacement data for the v21.0.0 button review.
|
|
5
|
+
*
|
|
6
|
+
* Three unrelated clusters landed together and are migrated by one schematic
|
|
7
|
+
* because they all originate from the same release:
|
|
8
|
+
*
|
|
9
|
+
* 1. Host attributes of `[kbq-button]` — `disabled` / `aria-disabled` are now
|
|
10
|
+
* chosen by host tag, `tabindex` is omitted when redundant, and an `<a>`
|
|
11
|
+
* without `href` is announced as a button.
|
|
12
|
+
* 2. `KbqButtonGroupRoot` no longer overwrites a `kbqStyle` / `color` the button
|
|
13
|
+
* sets itself, and its `disabled` became additive.
|
|
14
|
+
* 3. Styles — four physical border-radius mixins were replaced by logical ones,
|
|
15
|
+
* the `.kbq-progress` utility moved into `kbq-core()`, and two dead custom
|
|
16
|
+
* properties were dropped.
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Physical border-radius mixins removed from `core/styles/common/_groups-mixins.scss`
|
|
20
|
+
* and `core/styles/common/_groups.scss` (the latter re-exported through
|
|
21
|
+
* `core/styles/common/_index.scss`), mapped to the logical mixins that replaced them.
|
|
22
|
+
*
|
|
23
|
+
* The replacement is not a rename: `border-inline-end-radius` follows `dir`, so
|
|
24
|
+
* under `dir="rtl"` it rounds the corners the old `border-right-radius` did not.
|
|
25
|
+
* That is the point of the change — the library moved its own group styling the
|
|
26
|
+
* same way — but it is a behaviour change for a physically-designed RTL layout.
|
|
27
|
+
*/
|
|
28
|
+
const REMOVED_MIXINS = {
|
|
29
|
+
'border-right-radius': 'border-inline-end-radius',
|
|
30
|
+
'border-left-radius': 'border-inline-start-radius',
|
|
31
|
+
'border-top-radius': 'border-block-start-radius',
|
|
32
|
+
'border-bottom-radius': 'border-block-end-radius'
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Matches a mixin call, optionally namespaced (`@include groups-mixins.border-right-radius(0)`).
|
|
36
|
+
*
|
|
37
|
+
* Anchored on `@include` on purpose: these identifiers only ever appear as Sass
|
|
38
|
+
* mixin calls, so a CSS declaration, a custom property name or a comment that
|
|
39
|
+
* happens to contain the same text is never rewritten.
|
|
40
|
+
*/
|
|
41
|
+
const MIXIN_INCLUDE_PATTERN = /(@include\s+(?:[\w$-]+\.)?)(border-(?:right|left|top|bottom)-radius)\b/g;
|
|
42
|
+
/** Attribute / element names identifying a button group in a template. */
|
|
43
|
+
const GROUP_ATTRIBUTES = ['kbqButtonGroupRoot', 'kbq-button-group'];
|
|
44
|
+
const GROUP_ELEMENT = 'kbq-button-group';
|
|
45
|
+
/** The button attribute marking a host as `KbqButton`. */
|
|
46
|
+
const BUTTON_ATTRIBUTE = 'kbq-button';
|
|
47
|
+
/**
|
|
48
|
+
* Inputs a nested button may now own. A group used to overwrite these on every
|
|
49
|
+
* update; it now leaves them alone once the button sets them itself.
|
|
50
|
+
*/
|
|
51
|
+
const OWNED_INPUTS = ['kbqStyle', 'color', 'disabled'];
|
|
52
|
+
/** Reported for a nested button that declares one of {@link OWNED_INPUTS}. */
|
|
53
|
+
const groupOverrideMessage = (inputs) => `This button sets ${inputs.map((input) => `\`${input}\``).join(' / ')} inside a button group. ` +
|
|
54
|
+
'Until 21.0.0 the group overwrote that value on every update; it now treats the button as the owner ' +
|
|
55
|
+
'and leaves it alone. Drop the binding if you wanted the group value, or keep it if you wanted the override.';
|
|
56
|
+
/** Warnings for `.ts` files. */
|
|
57
|
+
const tsWarnPatterns = [
|
|
58
|
+
{
|
|
59
|
+
pattern: '\\bKbqButtonGroupRoot\\b',
|
|
60
|
+
message: 'KbqButtonGroupRoot changed: `disabled` now reads `boolean | undefined` (it stays undefined while ' +
|
|
61
|
+
'the input is unbound) and is additive — re-enabling the group no longer enables a button disabled ' +
|
|
62
|
+
'through its own input. Style and color are no longer propagated to a button that sets them itself.'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
pattern: '\\bKbqButtonCssStyler\\b',
|
|
66
|
+
message: 'KbqButtonCssStyler.nativeElement is now readonly and `icons` is typed Signal<readonly KbqIcon[]> ' +
|
|
67
|
+
'instead of readonly any[]. Assignments and untyped member access no longer compile.'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
pattern: '(get|has)Attribute\\(\\s*[\'"]disabled[\'"]',
|
|
71
|
+
message: 'The disabled attribute moved: `<a kbq-button>` no longer renders `disabled` (it renders ' +
|
|
72
|
+
'aria-disabled="true", tabindex="-1" and .kbq-disabled), and `<button kbq-button>` no longer renders ' +
|
|
73
|
+
'aria-disabled (only the native disabled attribute). Assertions and queries need updating.'
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
pattern: '\\bKBQ_LOCALE_DATA\\b|\\.addLocale\\(',
|
|
77
|
+
message: 'Locale data gained an `a11y` section holding the accessible names of the built-in icon-only buttons ' +
|
|
78
|
+
'(modal / popover / sidepanel close, calendar navigation, inline-edit save and cancel, and others). ' +
|
|
79
|
+
'Custom locale data without it falls back to the ru-RU strings — add the section, or provide ' +
|
|
80
|
+
'kbqA11yLocaleConfigurationProvider(...).'
|
|
81
|
+
}
|
|
82
|
+
];
|
|
83
|
+
/** Warnings for `.scss` / `.css` files. */
|
|
84
|
+
const styleWarnPatterns = [
|
|
85
|
+
{
|
|
86
|
+
pattern: '--kbq-button-icon-size-(vertical-padding|content-padding)\\b',
|
|
87
|
+
message: 'The --kbq-button-icon-size-vertical-padding and --kbq-button-icon-size-content-padding custom ' +
|
|
88
|
+
'properties were removed. Nothing read them even before 21.0.0, so an override was already inert — ' +
|
|
89
|
+
'delete it. Icon buttons use --kbq-button-icon-size-horizontal-padding and ' +
|
|
90
|
+
'--kbq-button-size-content-padding.'
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
pattern: '^(?=[\\s\\S]*kbq-button)(?=[\\s\\S]*\\[disabled\\])',
|
|
94
|
+
message: 'This stylesheet mentions kbq-button and a [disabled] selector. A disabled `<a kbq-button>` no ' +
|
|
95
|
+
'longer carries the disabled attribute, so `a[kbq-button][disabled]` never matches now — use ' +
|
|
96
|
+
'.kbq-disabled or [aria-disabled="true"]. Selectors targeting `<button kbq-button>` still work.'
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
pattern: '@use\\s+[\'"][^\'"]*core/styles/common(/animation)?[\'"]',
|
|
100
|
+
message: 'Importing core/styles/common/animation no longer emits the `.kbq-progress` rule or its keyframes — ' +
|
|
101
|
+
'they moved into the `kbq-progress()` mixin, emitted once by `kbq-core()`. If you relied on the ' +
|
|
102
|
+
'import to ship that CSS, include the prebuilt theme (which calls kbq-core()) or add ' +
|
|
103
|
+
'`@include animation.kbq-progress();` yourself.'
|
|
104
|
+
}
|
|
105
|
+
];
|
|
106
|
+
/** Reported when a template mentions a button group but cannot be parsed, so nothing was inspected in it. */
|
|
107
|
+
const UNPARSEABLE_TEMPLATE_MESSAGE = 'This template mentions a button group but could not be parsed, so it was not inspected. ' +
|
|
108
|
+
'Check by hand whether a nested button sets its own kbqStyle / color / disabled.';
|
|
109
|
+
/**
|
|
110
|
+
* Behaviour note printed once per run. Nothing here needs a code change, but all
|
|
111
|
+
* of it is observable in tests, stylesheets and screenshots.
|
|
112
|
+
*/
|
|
113
|
+
const BEHAVIOUR_NOTE = [
|
|
114
|
+
'Rendered attributes changed for [kbq-button]:',
|
|
115
|
+
' - <a kbq-button [disabled]> drops `disabled`, keeps aria-disabled="true" + tabindex="-1" + .kbq-disabled',
|
|
116
|
+
' - <button kbq-button [disabled]> drops `aria-disabled`, keeps the native `disabled`',
|
|
117
|
+
' - <button kbq-button> no longer renders tabindex="0" (anchors still do)',
|
|
118
|
+
' - <a kbq-button> without href is announced as role="button"',
|
|
119
|
+
' - every [kbqDropdownTriggerFor] now renders aria-expanded',
|
|
120
|
+
' - the built-in icon-only buttons now render a localized aria-label',
|
|
121
|
+
'Icon gaps and group corner radii follow `dir` now, so an RTL layout mirrors instead of staying physical.',
|
|
122
|
+
'The .kbq-progress utility is emitted by kbq-core() only — it is no longer part of button.css / toggle.css.',
|
|
123
|
+
'Snapshot and DOM-query tests covering any of the above need updating.'
|
|
124
|
+
];
|
|
125
|
+
|
|
126
|
+
exports.BEHAVIOUR_NOTE = BEHAVIOUR_NOTE;
|
|
127
|
+
exports.BUTTON_ATTRIBUTE = BUTTON_ATTRIBUTE;
|
|
128
|
+
exports.GROUP_ATTRIBUTES = GROUP_ATTRIBUTES;
|
|
129
|
+
exports.GROUP_ELEMENT = GROUP_ELEMENT;
|
|
130
|
+
exports.MIXIN_INCLUDE_PATTERN = MIXIN_INCLUDE_PATTERN;
|
|
131
|
+
exports.OWNED_INPUTS = OWNED_INPUTS;
|
|
132
|
+
exports.REMOVED_MIXINS = REMOVED_MIXINS;
|
|
133
|
+
exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
|
|
134
|
+
exports.groupOverrideMessage = groupOverrideMessage;
|
|
135
|
+
exports.styleWarnPatterns = styleWarnPatterns;
|
|
136
|
+
exports.tsWarnPatterns = tsWarnPatterns;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var ts = require('typescript');
|
|
6
|
+
var utils_ast = require('../../utils/ast.cjs');
|
|
7
|
+
var utils_messages = require('../../utils/messages.cjs');
|
|
8
|
+
var utils_packageConfig = require('../../utils/package-config.cjs');
|
|
9
|
+
var utils_projectFiles = require('../../utils/project-files.cjs');
|
|
10
|
+
var utils_typescript = require('../../utils/typescript.cjs');
|
|
11
|
+
var migrations_buttonStateAndStyles_data = require('./data.cjs');
|
|
12
|
+
require('@angular-devkit/schematics');
|
|
13
|
+
require('@schematics/angular/utility');
|
|
14
|
+
|
|
15
|
+
const TS_EXT = '.ts';
|
|
16
|
+
const HTML_EXT = '.html';
|
|
17
|
+
const SCSS_EXT = '.scss';
|
|
18
|
+
const CSS_EXT = '.css';
|
|
19
|
+
const LABEL = '[button-state-and-styles]';
|
|
20
|
+
/** `kbqStyle`, `[kbqStyle]` and `bind-kbqStyle` all name the same input. */
|
|
21
|
+
function attributeName(name) {
|
|
22
|
+
return utils_ast.getSimpleAttributeName(name).replace(/^bind-/, '');
|
|
23
|
+
}
|
|
24
|
+
function hasAttribute(element, name) {
|
|
25
|
+
return (element.attrs ?? []).some((attr) => typeof attr.name === 'string' && attributeName(attr.name) === name);
|
|
26
|
+
}
|
|
27
|
+
function isGroup(element) {
|
|
28
|
+
return element.name === migrations_buttonStateAndStyles_data.GROUP_ELEMENT || migrations_buttonStateAndStyles_data.GROUP_ATTRIBUTES.some((name) => hasAttribute(element, name));
|
|
29
|
+
}
|
|
30
|
+
/** The owned inputs a `[kbq-button]` element declares, in template order. */
|
|
31
|
+
function ownedInputs(element) {
|
|
32
|
+
if (!hasAttribute(element, migrations_buttonStateAndStyles_data.BUTTON_ATTRIBUTE))
|
|
33
|
+
return [];
|
|
34
|
+
return migrations_buttonStateAndStyles_data.OWNED_INPUTS.filter((input) => hasAttribute(element, input));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Collects nested buttons that declare a `kbqStyle` / `color` / `disabled` of
|
|
38
|
+
* their own.
|
|
39
|
+
*
|
|
40
|
+
* Only buttons *inside* a group are reported: the ownership rule exists solely
|
|
41
|
+
* to decide who wins between a group and its child, so a standalone button is
|
|
42
|
+
* unaffected and reporting it would be noise. Nesting is tracked through the
|
|
43
|
+
* traversal rather than by matching the whole subtree at once, so a group nested
|
|
44
|
+
* in another group still reports its children once.
|
|
45
|
+
*/
|
|
46
|
+
class GroupOverrideCollector {
|
|
47
|
+
constructor() {
|
|
48
|
+
this.overrides = [];
|
|
49
|
+
this.groupDepth = 0;
|
|
50
|
+
}
|
|
51
|
+
visitElement(element) {
|
|
52
|
+
const entered = isGroup(element);
|
|
53
|
+
if (entered)
|
|
54
|
+
this.groupDepth++;
|
|
55
|
+
if (this.groupDepth > 0) {
|
|
56
|
+
const inputs = ownedInputs(element);
|
|
57
|
+
if (inputs.length) {
|
|
58
|
+
this.overrides.push({ line: element.sourceSpan.start.line + 1, inputs });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
this.visitChildren(element);
|
|
62
|
+
if (entered)
|
|
63
|
+
this.groupDepth--;
|
|
64
|
+
}
|
|
65
|
+
visitBlock(block) {
|
|
66
|
+
this.visitChildren(block);
|
|
67
|
+
}
|
|
68
|
+
visitChildren(node) {
|
|
69
|
+
for (const child of node.children ?? []) {
|
|
70
|
+
child.visit(this);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
visitAttribute() { }
|
|
74
|
+
visitText() { }
|
|
75
|
+
visitComment() { }
|
|
76
|
+
visitExpansion() { }
|
|
77
|
+
visitExpansionCase() { }
|
|
78
|
+
visitBlockParameter() { }
|
|
79
|
+
visitLetDeclaration() { }
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Reports nested buttons owning a group-propagated input.
|
|
83
|
+
*
|
|
84
|
+
* Returns `null` when the template could not be parsed — guessing at the
|
|
85
|
+
* structure with a regex would report buttons that are not in a group at all.
|
|
86
|
+
*/
|
|
87
|
+
async function inspectTemplate(template) {
|
|
88
|
+
// Parsing every template of the project is not free, and a template with no
|
|
89
|
+
// group in it cannot produce a finding.
|
|
90
|
+
if (!migrations_buttonStateAndStyles_data.GROUP_ATTRIBUTES.some((name) => template.includes(name)))
|
|
91
|
+
return [];
|
|
92
|
+
const parsed = await utils_typescript.parseTemplate(template);
|
|
93
|
+
if (!parsed.tree)
|
|
94
|
+
return null;
|
|
95
|
+
const collector = new GroupOverrideCollector();
|
|
96
|
+
utils_ast.visitAll(collector, parsed.tree.rootNodes);
|
|
97
|
+
return collector.overrides;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Applies the template inspection to every inline `@Component({ template })`
|
|
101
|
+
* literal of a `.ts` source. Line numbers are reported relative to the template,
|
|
102
|
+
* which is what a reader of an inline template needs.
|
|
103
|
+
*/
|
|
104
|
+
async function inspectInlineTemplates(content, sourceFile, onParseError) {
|
|
105
|
+
const overrides = [];
|
|
106
|
+
for (const { start, end } of utils_typescript.collectInlineTemplateRanges(sourceFile)) {
|
|
107
|
+
const found = await inspectTemplate(content.slice(start, end));
|
|
108
|
+
if (found === null) {
|
|
109
|
+
onParseError();
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
// Offset by where the literal starts, so the number points into the file.
|
|
113
|
+
const lineOffset = content.slice(0, start).split('\n').length - 1;
|
|
114
|
+
overrides.push(...found.map(({ line, inputs }) => ({ line: line + lineOffset, inputs })));
|
|
115
|
+
}
|
|
116
|
+
return overrides;
|
|
117
|
+
}
|
|
118
|
+
const createSourceFile = (fileName, content) => ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
119
|
+
/**
|
|
120
|
+
* Rewrites `@include border-<side>-radius(…)` to its logical counterpart.
|
|
121
|
+
*
|
|
122
|
+
* The mixins were removed outright, so an unmigrated stylesheet fails to compile
|
|
123
|
+
* — this is the one change in the release that is both mechanical and mandatory.
|
|
124
|
+
*/
|
|
125
|
+
function migrateMixinIncludes(content) {
|
|
126
|
+
return content.replace(migrations_buttonStateAndStyles_data.MIXIN_INCLUDE_PATTERN, (full, prefix, name) => {
|
|
127
|
+
const replacement = migrations_buttonStateAndStyles_data.REMOVED_MIXINS[name];
|
|
128
|
+
return replacement ? `${prefix}${replacement}` : full;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
function logWarnings(context, filePath, content, patterns) {
|
|
132
|
+
for (const { pattern, message } of patterns) {
|
|
133
|
+
if (new RegExp(pattern).test(content)) {
|
|
134
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function logGroupOverrides(context, filePath, overrides) {
|
|
139
|
+
for (const { line, inputs } of overrides) {
|
|
140
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}:${line}`, ` ${migrations_buttonStateAndStyles_data.groupOverrideMessage(inputs)}`]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function pickWarnPatterns(filePath) {
|
|
144
|
+
if (filePath.endsWith(TS_EXT))
|
|
145
|
+
return migrations_buttonStateAndStyles_data.tsWarnPatterns;
|
|
146
|
+
if (filePath.endsWith(HTML_EXT))
|
|
147
|
+
return [];
|
|
148
|
+
return migrations_buttonStateAndStyles_data.styleWarnPatterns;
|
|
149
|
+
}
|
|
150
|
+
function isMigratableFile(filePath) {
|
|
151
|
+
return (filePath.endsWith(TS_EXT) ||
|
|
152
|
+
filePath.endsWith(HTML_EXT) ||
|
|
153
|
+
filePath.endsWith(SCSS_EXT) ||
|
|
154
|
+
filePath.endsWith(CSS_EXT));
|
|
155
|
+
}
|
|
156
|
+
function buttonStateAndStyles(options) {
|
|
157
|
+
return async (tree, context) => {
|
|
158
|
+
const { project } = options;
|
|
159
|
+
// `ng update` invokes migrations with no options at all, and migrations.json
|
|
160
|
+
// declares no schema, so the schema default never reaches us — applying the
|
|
161
|
+
// fix is the intended behaviour there.
|
|
162
|
+
const fix = options.fix ?? true;
|
|
163
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
164
|
+
const root = projectDefinition?.root ?? '';
|
|
165
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
166
|
+
const filePaths = [];
|
|
167
|
+
utils_projectFiles.visitProjectFiles(rootDir, (filePath) => {
|
|
168
|
+
if (!isMigratableFile(filePath))
|
|
169
|
+
return;
|
|
170
|
+
filePaths.push(filePath);
|
|
171
|
+
});
|
|
172
|
+
let touched = 0;
|
|
173
|
+
for (const filePath of filePaths) {
|
|
174
|
+
const originalContent = tree.read(filePath)?.toString();
|
|
175
|
+
if (!originalContent)
|
|
176
|
+
continue;
|
|
177
|
+
let content = originalContent;
|
|
178
|
+
let unparseable = false;
|
|
179
|
+
const reportParseError = () => (unparseable = true);
|
|
180
|
+
let overrides = [];
|
|
181
|
+
if (filePath.endsWith(TS_EXT)) {
|
|
182
|
+
overrides = await inspectInlineTemplates(content, createSourceFile(filePath, content), reportParseError);
|
|
183
|
+
}
|
|
184
|
+
else if (filePath.endsWith(HTML_EXT)) {
|
|
185
|
+
const found = await inspectTemplate(content);
|
|
186
|
+
if (found === null)
|
|
187
|
+
reportParseError();
|
|
188
|
+
else
|
|
189
|
+
overrides = found;
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
content = migrateMixinIncludes(content);
|
|
193
|
+
}
|
|
194
|
+
// Warn on what is left over, so an auto-fixed usage does not also produce
|
|
195
|
+
// a "manual migration required" note. In dry-run mode the fix is not
|
|
196
|
+
// written, so report against the original content.
|
|
197
|
+
logWarnings(context, filePath, fix ? content : originalContent, pickWarnPatterns(filePath));
|
|
198
|
+
logGroupOverrides(context, filePath, overrides);
|
|
199
|
+
if (unparseable) {
|
|
200
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_buttonStateAndStyles_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
|
|
201
|
+
}
|
|
202
|
+
if (content === originalContent)
|
|
203
|
+
continue;
|
|
204
|
+
touched++;
|
|
205
|
+
if (fix) {
|
|
206
|
+
tree.overwrite(filePath, content);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
utils_messages.logMessage(context.logger, [
|
|
213
|
+
`${LABEL} processed tree under "${root || '<workspace root>'}", ` +
|
|
214
|
+
`${fix ? 'updated' : 'would update'} ${touched} file(s).`,
|
|
215
|
+
'',
|
|
216
|
+
...migrations_buttonStateAndStyles_data.BEHAVIOUR_NOTE
|
|
217
|
+
]);
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
exports.default = buttonStateAndStyles;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-button-state-and-styles",
|
|
4
|
+
"title": "Koobiq components button state and styles upgrade",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"fix": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": true,
|
|
17
|
+
"description": "When true, applies all auto-fix replacements. When false, prints what would change without writing."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
### Button Supported Colors schematics
|
|
2
|
+
|
|
3
|
+
This schematic migrates consumers to the narrowed button color set. It includes:
|
|
4
|
+
|
|
5
|
+
- Removing a `color` written as a literal outside the supported set from `[kbq-button]`, `kbq-button-group`,
|
|
6
|
+
`[kbqButtonGroupRoot]` and `kbq-split-button` hosts
|
|
7
|
+
- Reporting the `color` bindings it cannot resolve, and the members still typed `KbqComponentColors` /
|
|
8
|
+
`ThemePalette`
|
|
9
|
+
- Reporting stylesheets that target the old default color of a transparent button
|
|
10
|
+
- A note about the behaviour changes that have no textual signature to search for
|
|
11
|
+
|
|
12
|
+
#### Why
|
|
13
|
+
|
|
14
|
+
`color` used to accept any `KbqComponentColors` / `ThemePalette` value, but `kbq-button-theme()` only ever
|
|
15
|
+
styled the pairs the design system defines:
|
|
16
|
+
|
|
17
|
+
| `kbqStyle` | supported colors |
|
|
18
|
+
| ------------- | ----------------------------- |
|
|
19
|
+
| `filled` | `contrast`, `contrast-fade` |
|
|
20
|
+
| `outline` | `theme-fade`, `contrast-fade` |
|
|
21
|
+
| `transparent` | `theme`, `contrast` |
|
|
22
|
+
|
|
23
|
+
Every other combination matched no rule at all, so the button fell through to the user-agent appearance — a
|
|
24
|
+
grey OS button. The most visible case was `transparent` with no explicit color: the shared default was
|
|
25
|
+
`contrast-fade`, which is not one of the two colors the transparent block styled.
|
|
26
|
+
|
|
27
|
+
Each style now carries its own default color, every style gained an unqualified fallback rule, and `color` was
|
|
28
|
+
narrowed to the four colors a button supports.
|
|
29
|
+
|
|
30
|
+
#### What is fixed
|
|
31
|
+
|
|
32
|
+
A `color` written as a literal — `color="error"`, `[color]="'error'"`, `bind-color="'error'"` — and holding one
|
|
33
|
+
of `error`, `warning`, `success`, `empty`, `primary`, `secondary`, `info` is removed.
|
|
34
|
+
|
|
35
|
+
This is appearance-preserving. The button already rendered in its style's default color: an unsupported color
|
|
36
|
+
matched no theme rule, and the fallback rule added by this release resolves to exactly the tokens the style's
|
|
37
|
+
default color branch resolves to. Removing the binding only drops a value that never had an effect, and fixes
|
|
38
|
+
the type error.
|
|
39
|
+
|
|
40
|
+
#### What is reported, not fixed
|
|
41
|
+
|
|
42
|
+
| Case | Why |
|
|
43
|
+
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `[color]="colors.Error"` | the expression is not resolved, so the member name alone does not prove which enum it comes from — deleting it blind could change colors |
|
|
45
|
+
| `button.color = KbqComponentColors.Error` | same, on the programmatic path |
|
|
46
|
+
| `kbqOkType` | narrowed from `string` to `KbqButtonColor` on `KbqModalComponent` and `ModalOptions` |
|
|
47
|
+
| a member typed `KbqComponentColors` / `ThemePalette` | the wide type no longer assigns to a button `color` binding |
|
|
48
|
+
| `.kbq-button_transparent.kbq-contrast-fade` | no longer matches — a transparent button defaults to `contrast` now |
|
|
49
|
+
|
|
50
|
+
Watch for values built inside `Array.from` / `map` callbacks: without a return-type annotation an enum member
|
|
51
|
+
widens to the whole enum and stops assigning even when every value is supported. Annotate the callback:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
Array.from({ length: 3 }, (_, i): ExampleAction => ({ color: KbqComponentColors.ContrastFade, ... }))
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Behaviour changes with no textual signature
|
|
58
|
+
|
|
59
|
+
- A transparent button with no explicit color renders in `contrast` instead of `contrast-fade`. It used to
|
|
60
|
+
match no theme rule and rendered as a native button, so this is the fix — but a stylesheet or a `color`
|
|
61
|
+
getter read that expected `contrast-fade` needs updating.
|
|
62
|
+
- A style paired with a color the design system does not define now renders in the style default instead of
|
|
63
|
+
unstyled.
|
|
64
|
+
- `KbqButtonGroupRoot` no longer propagates a color it was never given, so each nested button follows the
|
|
65
|
+
default color of its own style. A color bound on the group still wins over that default.
|
|
66
|
+
|
|
67
|
+
#### Usage
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ng generate @koobiq/components/schematics:button-supported-colors
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Pass `--fix=false` to print what would change without writing.
|