@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,57 @@
|
|
|
1
|
+
# sidepanel-non-modal-behavior
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@20`
|
|
4
|
+
(registered for `21.0.0-0`). Reports what the sidepanel review changed about the panel's effect on the
|
|
5
|
+
page around it. It never writes to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
The non-modal mode is documented as "without page blocking", but every sidepanel got CDK's
|
|
10
|
+
`BlockScrollStrategy`, which pins the document with `position: fixed`. The strategy follows the
|
|
11
|
+
modality now, and `KbqSidepanelConfig` gained a `scrollStrategy` factory for the cases that want
|
|
12
|
+
something else.
|
|
13
|
+
|
|
14
|
+
| Change | Before | After |
|
|
15
|
+
| ------------------------------------------------ | ------------------------------- | ------------------------------------------------- |
|
|
16
|
+
| Scroll strategy | `block()` for every panel | `block()` with a backdrop, `reposition()` without |
|
|
17
|
+
| `trapFocusAutoCapture` default | `!!hasBackdrop` | `true` |
|
|
18
|
+
| Container ARIA | none | `role="dialog"`, `aria-modal`, `aria-labelledby` |
|
|
19
|
+
| Rest of the page while a modal sidepanel is open | reachable by the virtual cursor | `aria-hidden="true"` |
|
|
20
|
+
| `FocusTrapFactory` override | on `KbqSidepanelModule` | scoped to `KbqSidepanelContainerComponent` |
|
|
21
|
+
| `kbq-sidepanel-overlay` on the overlay host | added, styled by nothing | not added |
|
|
22
|
+
| Click inside a sidepanel at another edge | closed this one | only the same-position stack closes |
|
|
23
|
+
|
|
24
|
+
The `FocusTrapFactory` entry is the one with the widest reach. It was an unscoped override of a
|
|
25
|
+
`providedIn: 'root'` CDK service, so importing the sidepanel module changed the focus-trap
|
|
26
|
+
implementation used by every trapping component in the application — modal, dropdown, popover — not
|
|
27
|
+
just sidepanels. The sidepanel container keeps the override for itself, because
|
|
28
|
+
`ConfigurableFocusTrapFactory` brings the inert strategy that pulls escaping focus back; nothing else
|
|
29
|
+
in the package asked for it.
|
|
30
|
+
|
|
31
|
+
## What it does _not_ do
|
|
32
|
+
|
|
33
|
+
Nothing is rewritten. Whether a given non-modal panel wanted the page frozen, and whether an
|
|
34
|
+
application had come to depend on the leaked focus-trap implementation, are decisions the schematic
|
|
35
|
+
cannot make.
|
|
36
|
+
|
|
37
|
+
| Pattern | Manual migration |
|
|
38
|
+
| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| `{ hasBackdrop: false }` | Pass `scrollStrategy` to keep the page frozen, `trapFocusAutoCapture: false` to keep focus outside |
|
|
40
|
+
| `config.hasBackdrop = …` after open | Decide the backdrop when opening; only `disableClose` is re-read |
|
|
41
|
+
| `overlayRef.backdropElement` | `null` for a panel opened without a backdrop — the `!` only silenced the compiler |
|
|
42
|
+
| `.kbq-sidepanel-overlay` in a stylesheet | Tag the overlay pane with `overlayPanelClass` instead |
|
|
43
|
+
| `host: { class: 'layout-column flex' }` on sidepanel content | Delete it; the package styles the portal host |
|
|
44
|
+
|
|
45
|
+
## Notes with no call site to point at
|
|
46
|
+
|
|
47
|
+
- `KbqSidepanelService` is `providedIn: 'root'`. `KbqSidepanelModule` still provides it, so existing
|
|
48
|
+
per-module instances are unchanged, and a component-provided service now closes the sidepanels it
|
|
49
|
+
opened when it is destroyed instead of leaking them.
|
|
50
|
+
- `KbqSidepanelClose` injects `KbqSidepanelRef` non-optionally; the `setTimeout` fallback that looked
|
|
51
|
+
the ref up by container id is gone.
|
|
52
|
+
|
|
53
|
+
## Running it manually
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
ng generate @koobiq/components:sidepanel-non-modal-behavior --project my-app
|
|
57
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `sidepanel-non-modal-behavior` migration.
|
|
5
|
+
*
|
|
6
|
+
* The sidepanel review changed what a sidepanel does to the page around it:
|
|
7
|
+
*
|
|
8
|
+
* - A sidepanel without a backdrop no longer applies CDK's `BlockScrollStrategy`. The non-modal mode
|
|
9
|
+
* is documented as "without page blocking", but every panel got `block()`, which pins the document
|
|
10
|
+
* with `position: fixed`.
|
|
11
|
+
* - `trapFocusAutoCapture` defaults to `true` in both modalities instead of following `hasBackdrop`,
|
|
12
|
+
* so a non-modal sidepanel moves focus into itself on open and returns it to the trigger on close.
|
|
13
|
+
* - The container is a `role="dialog"` with `aria-modal` and a name taken from `kbq-sidepanel-header`,
|
|
14
|
+
* and a modal sidepanel hides the rest of the page from assistive technology while it is open.
|
|
15
|
+
* - `KbqSidepanelModule` no longer swaps `FocusTrapFactory` for `ConfigurableFocusTrapFactory`
|
|
16
|
+
* application-wide; the override is scoped to the sidepanel container.
|
|
17
|
+
* - The overlay host element no longer gets the unstyled `kbq-sidepanel-overlay` class.
|
|
18
|
+
*
|
|
19
|
+
* Warn-only. Whether a given non-modal panel wanted the page frozen, and whether an application was
|
|
20
|
+
* relying on the leaked focus-trap implementation, are decisions this migration cannot make.
|
|
21
|
+
*/
|
|
22
|
+
/** Import specifier that marks a file as a sidepanel consumer. */
|
|
23
|
+
const SIDEPANEL_PACKAGE = '@koobiq/components/sidepanel';
|
|
24
|
+
/**
|
|
25
|
+
* Identifier and element shapes that mark a consumer without an import.
|
|
26
|
+
*
|
|
27
|
+
* The lookbehind keeps the `--kbq-sidepanel-*` design tokens out: a custom property always carries the
|
|
28
|
+
* leading `--`, and a stylesheet that merely reads one is not a consumer of anything this migration
|
|
29
|
+
* changed. A selector or an element — `.kbq-sidepanel-overlay`, `<kbq-sidepanel-header>` — is preceded
|
|
30
|
+
* by something else and still matches.
|
|
31
|
+
*/
|
|
32
|
+
const SIDEPANEL_TYPE = '\\bKbqSidepanel\\w*\\b|(?<!-)\\bkbq-sidepanel\\b';
|
|
33
|
+
const warnPatterns = [
|
|
34
|
+
{
|
|
35
|
+
anchor: SIDEPANEL_TYPE,
|
|
36
|
+
pattern: 'hasBackdrop\\s*:\\s*false',
|
|
37
|
+
message: 'A sidepanel opened with hasBackdrop: false no longer blocks the page scroll. Every panel used ' +
|
|
38
|
+
"to get CDK's BlockScrollStrategy, which pins the document with `position: fixed` — the exact " +
|
|
39
|
+
'opposite of what the non-modal mode documents. Pass scrollStrategy: () => ' +
|
|
40
|
+
'overlay.scrollStrategies.block() in KbqSidepanelConfig if a particular panel wants the page ' +
|
|
41
|
+
'frozen. The same panel now captures focus on open and returns it to the trigger on close: ' +
|
|
42
|
+
'trapFocusAutoCapture defaults to true in both modalities instead of following hasBackdrop, ' +
|
|
43
|
+
'because CdkTrapFocus only restores focus it captured itself. Pass trapFocusAutoCapture: false to ' +
|
|
44
|
+
'leave focus where it was. The focus trap itself still follows hasBackdrop — set trapFocus: true ' +
|
|
45
|
+
'to keep Tab inside a non-modal panel, which also hides the rest of the page from assistive ' +
|
|
46
|
+
'technology.'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
anchor: SIDEPANEL_TYPE,
|
|
50
|
+
pattern: '\\.\\s*config\\s*\\.\\s*hasBackdrop\\s*=(?!=)',
|
|
51
|
+
message: 'Assigning KbqSidepanelRef.config.hasBackdrop on an open sidepanel has never done anything — the ' +
|
|
52
|
+
'value is read once, when the overlay is built — and the docs that said otherwise are corrected. ' +
|
|
53
|
+
'disableClose is the one config property that is re-read after open.'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
anchor: SIDEPANEL_TYPE,
|
|
57
|
+
// Matched as a property access: `sidepanelResult` is an ordinary enough name for a host to own one.
|
|
58
|
+
pattern: '\\.\\s*sidepanelResult\\b',
|
|
59
|
+
message: 'KbqSidepanelClose.sidepanelResult is an input signal now, aliased kbq-sidepanel-close as before. ' +
|
|
60
|
+
'Reading it takes a call — sidepanelResult() — and it can no longer be assigned: bind the value in ' +
|
|
61
|
+
'the template, <button kbq-sidepanel-close="value"> or [kbqSidepanelClose]="value". The directive ' +
|
|
62
|
+
'no longer implements OnChanges, and the two spellings are read through one computed, with the ' +
|
|
63
|
+
'camel-case one winning if a template binds both.'
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
anchor: SIDEPANEL_TYPE,
|
|
67
|
+
pattern: '\\boverlayRef\\s*\\.\\s*backdropElement\\b',
|
|
68
|
+
message: 'Reaching for KbqSidepanelRef.overlayRef.backdropElement to hide a backdrop throws on any panel ' +
|
|
69
|
+
'opened with hasBackdrop: false, where the element is null. Decide the backdrop when you open the ' +
|
|
70
|
+
'sidepanel.'
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
anchor: SIDEPANEL_TYPE,
|
|
74
|
+
// Bounded on both sides so the `--kbq-sidepanel-overlay-background` token does not read as the class:
|
|
75
|
+
// the token is preceded by `-` and continues with `-background`, the class does neither.
|
|
76
|
+
pattern: '(?<!-)\\bkbq-sidepanel-overlay\\b(?!-)',
|
|
77
|
+
message: 'The kbq-sidepanel-overlay class is no longer added to the overlay host element. Nothing in the ' +
|
|
78
|
+
'library ever styled it. Use overlayPanelClass in KbqSidepanelConfig to tag the overlay pane.'
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
anchor: SIDEPANEL_TYPE,
|
|
82
|
+
pattern: '\\b(?:layout-column\\s+flex|flex\\s+layout-column)\\b|:host\\s*\\{[^}]*display\\s*:\\s*flex',
|
|
83
|
+
message: 'The package styles the host element of a component-based sidepanel itself now ' +
|
|
84
|
+
'(.kbq-sidepanel-content-host: a flex column with min-height: 0). If the component you open in a ' +
|
|
85
|
+
"sidepanel carries `host: { class: 'layout-column flex' }` or a `:host { display: flex; … }` " +
|
|
86
|
+
'block only to make the body scroll and the footer stick, that workaround can go.'
|
|
87
|
+
}
|
|
88
|
+
];
|
|
89
|
+
/** Printed once per project, after the per-file reports. */
|
|
90
|
+
const SUMMARY = [
|
|
91
|
+
' KbqSidepanelModule no longer provides { provide: FocusTrapFactory, useClass: ' +
|
|
92
|
+
'ConfigurableFocusTrapFactory }. That was an unscoped override of a providedIn: "root" CDK service, ' +
|
|
93
|
+
'so importing the sidepanel module changed the focus-trap implementation of every trapping component ' +
|
|
94
|
+
'in the application — modal, dropdown, popover. The override is scoped to the sidepanel container ' +
|
|
95
|
+
'now; add the provider to your own application config if you were depending on it.',
|
|
96
|
+
' The sidepanel container renders role="dialog", aria-modal for a modal panel and an aria-labelledby ' +
|
|
97
|
+
'pointing at the kbq-sidepanel-header title, and a modal sidepanel marks the rest of the page ' +
|
|
98
|
+
'aria-hidden while it is open. Pass ariaLabel or ariaLabelledBy in KbqSidepanelConfig for a panel ' +
|
|
99
|
+
'with no header, and drop any role or aria-* you were stamping on the container yourself.',
|
|
100
|
+
' KbqSidepanelService is providedIn: "root", so KbqSidepanelModule is no longer the only way to get ' +
|
|
101
|
+
'one. The module still provides it, which keeps the existing per-module instances.',
|
|
102
|
+
' A click inside a sidepanel at a different edge no longer closes this one: the outside-click filter ' +
|
|
103
|
+
'consults the position, so only the panels of the same stack close each other.',
|
|
104
|
+
' KbqSidepanelClose injects KbqSidepanelRef non-optionally. The setTimeout fallback that looked the ref ' +
|
|
105
|
+
'up by container id is gone — the ref reaches template portals through the portal injector.'
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
exports.SIDEPANEL_PACKAGE = SIDEPANEL_PACKAGE;
|
|
109
|
+
exports.SIDEPANEL_TYPE = SIDEPANEL_TYPE;
|
|
110
|
+
exports.SUMMARY = SUMMARY;
|
|
111
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.cjs');
|
|
6
|
+
var utils_packageConfig = require('../../utils/package-config.cjs');
|
|
7
|
+
var utils_projectFiles = require('../../utils/project-files.cjs');
|
|
8
|
+
var migrations_sidepanelNonModalBehavior_data = require('./data.cjs');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
|
|
12
|
+
const LABEL = '[sidepanel-non-modal-behavior]';
|
|
13
|
+
// Stylesheets are visited too: two of the patterns are about CSS the sidepanel no longer backs.
|
|
14
|
+
const EXTENSIONS = ['.ts', '.html', '.scss', '.css'];
|
|
15
|
+
/** A file is a sidepanel consumer if it imports the package, names the service or renders one of the parts. */
|
|
16
|
+
function referencesSidepanel(content) {
|
|
17
|
+
return content.includes(migrations_sidepanelNonModalBehavior_data.SIDEPANEL_PACKAGE) || new RegExp(migrations_sidepanelNonModalBehavior_data.SIDEPANEL_TYPE).test(content);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Reports what the sidepanel review changed about the panel's effect on the page around it: the scroll
|
|
21
|
+
* block that no longer applies to non-modal panels, the focus that is captured and restored in both
|
|
22
|
+
* modalities, the dialog semantics on the container, and the application-wide `FocusTrapFactory`
|
|
23
|
+
* override that is gone. It never writes to the tree.
|
|
24
|
+
*/
|
|
25
|
+
function sidepanelNonModalBehavior(options) {
|
|
26
|
+
return async (tree, context) => {
|
|
27
|
+
const { project } = options;
|
|
28
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
29
|
+
const root = projectDefinition?.root ?? '';
|
|
30
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
31
|
+
let consumers = 0;
|
|
32
|
+
let reported = 0;
|
|
33
|
+
utils_projectFiles.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
34
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
35
|
+
return;
|
|
36
|
+
const content = entry?.content.toString();
|
|
37
|
+
if (!content || !referencesSidepanel(content))
|
|
38
|
+
return;
|
|
39
|
+
consumers++;
|
|
40
|
+
for (const { anchor, pattern, message } of migrations_sidepanelNonModalBehavior_data.warnPatterns) {
|
|
41
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
42
|
+
continue;
|
|
43
|
+
reported++;
|
|
44
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Nothing here opens a sidepanel, so the summary would only be noise.
|
|
48
|
+
if (consumers === 0)
|
|
49
|
+
return;
|
|
50
|
+
utils_messages.logMessage(context.logger, [
|
|
51
|
+
`${LABEL} processed kbq-sidepanel under "${root || '<workspace root>'}", ` +
|
|
52
|
+
`${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
|
|
53
|
+
...migrations_sidepanelNonModalBehavior_data.SUMMARY
|
|
54
|
+
]);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.default = sidepanelNonModalBehavior;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-sidepanel-non-modal-behavior",
|
|
4
|
+
"title": "Koobiq components sidepanel review migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# signal-inputs-subclasses
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
|
|
4
|
+
Reports subclasses of the components whose decorator inputs became signal inputs. It never writes to the tree.
|
|
5
|
+
|
|
6
|
+
## Background
|
|
7
|
+
|
|
8
|
+
The inputs of `KbqCheckbox`, `KbqToggleComponent`, `KbqRadioGroup`, `KbqRadioButton`, `KbqButtonToggleGroup`,
|
|
9
|
+
`KbqButtonToggle`, `KbqButton`, `KbqButtonGroupRoot`, `KbqSplitButton`, `KbqIcon`, `KbqIconButton`, `KbqIconItem` and
|
|
10
|
+
`KbqSearchExpandable`, and of the pop-up triggers — tooltip, popover, popover confirm, app switcher, notification
|
|
11
|
+
center, password toggle and ellipsis center — and of the tags, file uploads, accordion item, navbar item, notification
|
|
12
|
+
item and sidebar are signal inputs named `<member>Input`, which `ngOnChanges` hands to the unchanged member.
|
|
13
|
+
Reading and writing the members works as before. A member another migration moved to a signal, such as `color`
|
|
14
|
+
(`color-signals`) or the `KbqFormFieldControl` members of the tag list (`form-field-signals`), is migrated there.
|
|
15
|
+
|
|
16
|
+
| Pattern | Manual migration |
|
|
17
|
+
| ---------------------------------------- | ------------------------------------------------------------------------------ |
|
|
18
|
+
| A subclass that implements `ngOnChanges` | Call `super.ngOnChanges(changes)` |
|
|
19
|
+
| A subclass that redeclares an `@Input()` | Override the `<member>Input` signal input with its alias, e.g. `iconNameInput` |
|
|
20
|
+
| A panel that redeclares `elementRef` | Override the protected `elementRef` getter over a `viewChild()` |
|
|
21
|
+
|
|
22
|
+
A boolean input accepts `boolean | string | null | undefined` in a template now, rather than anything.
|
|
23
|
+
|
|
24
|
+
## Running it manually
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ng g @koobiq/components:signal-inputs-subclasses --project "<your project>"
|
|
28
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `signal-inputs-subclasses` migration.
|
|
5
|
+
*
|
|
6
|
+
* The decorator inputs of the checkbox, toggle, radio, button toggle, buttons, icons, search-expandable and the
|
|
7
|
+
* pop-up triggers are signal inputs named `<member>Input` now, handed to the unchanged member from `ngOnChanges`.
|
|
8
|
+
* Reads and writes of the members are unchanged; a subclass is not. Warn-only. A member another migration moved to
|
|
9
|
+
* a signal, such as `color` or the `KbqFormFieldControl` members of the tag list, is migrated there.
|
|
10
|
+
*/
|
|
11
|
+
const COMPONENTS = [
|
|
12
|
+
'KbqCheckbox',
|
|
13
|
+
'KbqToggleComponent',
|
|
14
|
+
'KbqRadioGroup',
|
|
15
|
+
'KbqRadioButton',
|
|
16
|
+
'KbqButtonToggleGroup',
|
|
17
|
+
'KbqButtonToggle',
|
|
18
|
+
'KbqButton',
|
|
19
|
+
'KbqButtonGroupRoot',
|
|
20
|
+
'KbqSplitButton',
|
|
21
|
+
'KbqIcon',
|
|
22
|
+
'KbqIconButton',
|
|
23
|
+
'KbqIconItem',
|
|
24
|
+
'KbqSearchExpandable',
|
|
25
|
+
'KbqTooltipTrigger',
|
|
26
|
+
'KbqPopoverTrigger',
|
|
27
|
+
'KbqPopoverConfirmTrigger',
|
|
28
|
+
'KbqAppSwitcherTrigger',
|
|
29
|
+
'KbqAppSwitcherComponent',
|
|
30
|
+
'KbqNotificationCenterTrigger',
|
|
31
|
+
'KbqPasswordToggle',
|
|
32
|
+
'KbqEllipsisCenterDirective',
|
|
33
|
+
'KbqTagInput',
|
|
34
|
+
'KbqTagList',
|
|
35
|
+
'KbqTag',
|
|
36
|
+
'KbqSingleFileUploadComponent',
|
|
37
|
+
'KbqMultipleFileUploadComponent',
|
|
38
|
+
'KbqAccordionItem',
|
|
39
|
+
'KbqNavbarFocusableItem',
|
|
40
|
+
'KbqNavbarItem',
|
|
41
|
+
'KbqNotificationItemComponent',
|
|
42
|
+
'KbqSidebar'
|
|
43
|
+
].join('|');
|
|
44
|
+
const PANELS = ['KbqPopUp', 'KbqTooltipComponent', 'KbqPopoverComponent', 'KbqPopoverConfirmComponent'].join('|');
|
|
45
|
+
const warnPatterns = [
|
|
46
|
+
{
|
|
47
|
+
anchor: `\\bextends\\s+(?:${COMPONENTS})\\b`,
|
|
48
|
+
pattern: `\\bextends\\s+(?:${COMPONENTS})\\b`,
|
|
49
|
+
message: 'A subclass of a Koobiq component whose inputs became signal inputs. The bound value reaches the member ' +
|
|
50
|
+
'from ngOnChanges now, so an ngOnChanges of the subclass has to call super.ngOnChanges(changes). An input ' +
|
|
51
|
+
'the subclass redeclared with @Input() is overridden through the `<member>Input` signal input instead, ' +
|
|
52
|
+
"e.g. `override readonly iconNameInput = input<string | undefined>(undefined, { alias: 'my-icon' })`."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
anchor: `\\bextends\\s+(?:${PANELS})\\b`,
|
|
56
|
+
pattern: '@ViewChild\\([^)]*\\)\\s*(?:override\\s+)?elementRef\\b',
|
|
57
|
+
message: 'KbqPopUp.elementRef is a protected getter now, the element the pop-up measures and decorates. A panel ' +
|
|
58
|
+
'that renders an element of its own overrides the getter over a viewChild() instead of re-declaring the ' +
|
|
59
|
+
'field with @ViewChild.'
|
|
60
|
+
}
|
|
61
|
+
];
|
|
62
|
+
const SUMMARY = [
|
|
63
|
+
'Reads and writes of the members of these components are unchanged. A member another migration moved to a',
|
|
64
|
+
'signal, such as color or the KbqFormFieldControl members of the tag list, is migrated there. A boolean input',
|
|
65
|
+
'accepts boolean | string | null | undefined in a template now, rather than anything.'
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
exports.SUMMARY = SUMMARY;
|
|
69
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_warnOnlyMigration = require('../../utils/warn-only-migration.cjs');
|
|
6
|
+
var migrations_signalInputsSubclasses_data = require('./data.cjs');
|
|
7
|
+
require('../../utils/messages.cjs');
|
|
8
|
+
require('../../utils/package-config.cjs');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
require('../../utils/project-files.cjs');
|
|
12
|
+
|
|
13
|
+
/** Reports subclasses of the components whose inputs became signal inputs feeding writable members. Never writes. */
|
|
14
|
+
function signalInputsSubclasses(options) {
|
|
15
|
+
return utils_warnOnlyMigration.warnOnlyRule({ label: '[signal-inputs-subclasses]', warnPatterns: migrations_signalInputsSubclasses_data.warnPatterns, summary: migrations_signalInputsSubclasses_data.SUMMARY }, options);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
exports.default = signalInputsSubclasses;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-signal-inputs-subclasses",
|
|
4
|
+
"title": "Koobiq components signal inputs subclasses migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# split-button-optional-disabled
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Reports the `KbqSplitButton` members whose type changed in the
|
|
5
|
+
split-button review. It never writes to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`disabled` was published as `boolean`, but the backing field is declared without an initializer and
|
|
10
|
+
the setter returns early for `undefined`. A `<kbq-split-button>` with no `[disabled]` binding
|
|
11
|
+
therefore reported `undefined` from a non-nullable type:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
const flag: boolean = splitButton.disabled; // held undefined
|
|
15
|
+
if (splitButton.disabled === false) { … } // never ran
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
The getter now reports `boolean | undefined`, which is what the sibling `KbqButtonGroupRoot` has
|
|
19
|
+
always reported. Nothing about the runtime value changed — the call sites that were quietly wrong
|
|
20
|
+
now fail to compile.
|
|
21
|
+
|
|
22
|
+
The `buttons` content query moved from `QueryList<KbqButton>` to a signal query in the same review.
|
|
23
|
+
It is `protected`, so only a subclass sees it.
|
|
24
|
+
|
|
25
|
+
## What it does _not_ do
|
|
26
|
+
|
|
27
|
+
Nothing is rewritten. Narrowing `boolean | undefined` back to `boolean` is a decision — `?? false`,
|
|
28
|
+
a non-null assertion, or handling the third state — and which one is right depends on what the call
|
|
29
|
+
site does with the value.
|
|
30
|
+
|
|
31
|
+
| Pattern | Manual migration |
|
|
32
|
+
| --------------------------------- | -------------------------------------------------------------------------- |
|
|
33
|
+
| `.disabled` on a `KbqSplitButton` | `?? false` for the common reading, or handle the unset state explicitly |
|
|
34
|
+
| `buttons.*` in a subclass | Read `buttons()` and use array methods; `buttons.changes` no longer exists |
|
|
35
|
+
|
|
36
|
+
## Notes with no call site to point at
|
|
37
|
+
|
|
38
|
+
- A `<kbq-split-button>` with no projected button no longer throws outside dev mode. The guard sits
|
|
39
|
+
behind `isDevMode()`, so production renders an empty control instead of aborting the change
|
|
40
|
+
detection pass of whoever rendered it. A host that used the throw as a runtime assertion needs its
|
|
41
|
+
own check.
|
|
42
|
+
|
|
43
|
+
## Running it manually
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
ng generate @koobiq/components:split-button-optional-disabled --project my-app
|
|
47
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `split-button-optional-disabled` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqSplitButton.disabled` was declared `boolean` over a field with no initializer, so an unbound
|
|
7
|
+
* control reported `undefined` through a non-nullable type: `const flag: boolean = sb.disabled` held
|
|
8
|
+
* `undefined`, and `if (sb.disabled === false)` never ran for a control nobody had disabled. The
|
|
9
|
+
* getter now reports `boolean | undefined`, matching the sibling `KbqButtonGroupRoot`, so those call
|
|
10
|
+
* sites finally fail to compile instead of lying at runtime.
|
|
11
|
+
*
|
|
12
|
+
* The content query moved from `QueryList<KbqButton>` to a signal query in the same review. It is
|
|
13
|
+
* `protected`, so only a subclass can see it.
|
|
14
|
+
*
|
|
15
|
+
* Warn-only. Narrowing `boolean | undefined` back to `boolean` is a decision — `?? false`, a
|
|
16
|
+
* non-null assertion, or handling the third state — and which one is right depends on what the call
|
|
17
|
+
* site does with it.
|
|
18
|
+
*/
|
|
19
|
+
/** Import specifier that marks a file as a split-button consumer. */
|
|
20
|
+
const SPLIT_BUTTON_PACKAGE = '@koobiq/components/split-button';
|
|
21
|
+
/** Identifier shape that marks a consumer without an import (e.g. a re-export or a subclass). */
|
|
22
|
+
const SPLIT_BUTTON_TYPE = '\\bKbqSplitButton\\b';
|
|
23
|
+
const SUBCLASS_ANCHOR = 'extends\\s+KbqSplitButton\\b';
|
|
24
|
+
const warnPatterns = [
|
|
25
|
+
{
|
|
26
|
+
anchor: SPLIT_BUTTON_TYPE,
|
|
27
|
+
pattern: '\\.\\s*disabled\\b',
|
|
28
|
+
message: 'KbqSplitButton.disabled reports `boolean | undefined` instead of `boolean`. The backing field has ' +
|
|
29
|
+
'no initializer, so a control with no [disabled] binding always returned `undefined` behind a ' +
|
|
30
|
+
'non-nullable type — an assignment to a `boolean` held `undefined`, and `=== false` never matched. ' +
|
|
31
|
+
'Decide per call site: `?? false` for the common reading, or handle the unset state explicitly.'
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
anchor: SUBCLASS_ANCHOR,
|
|
35
|
+
pattern: '\\bbuttons\\s*\\.\\s*(?:changes|first|last|toArray|notifyOnChanges|reset|length|forEach|map|filter)\\b',
|
|
36
|
+
message: 'KbqSplitButton.buttons is a signal query — `Signal<readonly KbqButton[]>` instead of ' +
|
|
37
|
+
'`QueryList<KbqButton>`. Read it as `buttons()` and use array methods on the result; ' +
|
|
38
|
+
'`buttons.changes` is gone, and `buttons.length` is the arity of the signal function, not the ' +
|
|
39
|
+
'number of buttons.'
|
|
40
|
+
}
|
|
41
|
+
];
|
|
42
|
+
/** Printed once per project, after the per-file reports. */
|
|
43
|
+
const SUMMARY = [
|
|
44
|
+
' A <kbq-split-button> with no projected button no longer throws outside dev mode: the guard is ' +
|
|
45
|
+
'behind isDevMode(), so production renders an empty control instead of aborting the change ' +
|
|
46
|
+
'detection pass of whoever rendered it. A host that relied on the throw as a runtime assertion ' +
|
|
47
|
+
'needs its own check.'
|
|
48
|
+
];
|
|
49
|
+
|
|
50
|
+
exports.SPLIT_BUTTON_PACKAGE = SPLIT_BUTTON_PACKAGE;
|
|
51
|
+
exports.SPLIT_BUTTON_TYPE = SPLIT_BUTTON_TYPE;
|
|
52
|
+
exports.SUMMARY = SUMMARY;
|
|
53
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.cjs');
|
|
6
|
+
var utils_packageConfig = require('../../utils/package-config.cjs');
|
|
7
|
+
var utils_projectFiles = require('../../utils/project-files.cjs');
|
|
8
|
+
var migrations_splitButtonOptionalDisabled_data = require('./data.cjs');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
|
|
12
|
+
const LABEL = '[split-button-optional-disabled]';
|
|
13
|
+
const EXTENSIONS = ['.ts'];
|
|
14
|
+
/** A file is a split-button consumer if it imports the package or names the component. */
|
|
15
|
+
function referencesSplitButton(content) {
|
|
16
|
+
return content.includes(migrations_splitButtonOptionalDisabled_data.SPLIT_BUTTON_PACKAGE) || new RegExp(migrations_splitButtonOptionalDisabled_data.SPLIT_BUTTON_TYPE).test(content);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Reports the `KbqSplitButton` members whose type changed. Never writes: narrowing
|
|
20
|
+
* `boolean | undefined` back to `boolean` is a decision the call site owns.
|
|
21
|
+
*
|
|
22
|
+
* Only `.ts` is visited — the component's template surface did not change, and the `disabled`
|
|
23
|
+
* binding accepts exactly what it did before.
|
|
24
|
+
*/
|
|
25
|
+
function splitButtonOptionalDisabled(options) {
|
|
26
|
+
return async (tree, context) => {
|
|
27
|
+
const { project } = options;
|
|
28
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
29
|
+
const root = projectDefinition?.root ?? '';
|
|
30
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
31
|
+
let consumers = 0;
|
|
32
|
+
let reported = 0;
|
|
33
|
+
utils_projectFiles.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
34
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
35
|
+
return;
|
|
36
|
+
const content = entry?.content.toString();
|
|
37
|
+
if (!content || !referencesSplitButton(content))
|
|
38
|
+
return;
|
|
39
|
+
consumers++;
|
|
40
|
+
for (const { anchor, pattern, message } of migrations_splitButtonOptionalDisabled_data.warnPatterns) {
|
|
41
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
42
|
+
continue;
|
|
43
|
+
reported++;
|
|
44
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Nothing here uses the split button, so the summary would only be noise.
|
|
48
|
+
if (consumers === 0)
|
|
49
|
+
return;
|
|
50
|
+
utils_messages.logMessage(context.logger, [
|
|
51
|
+
`${LABEL} processed kbq-split-button under "${root || '<workspace root>'}", ` +
|
|
52
|
+
`${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
|
|
53
|
+
...migrations_splitButtonOptionalDisabled_data.SUMMARY
|
|
54
|
+
]);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.default = splitButtonOptionalDisabled;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-split-button-optional-disabled",
|
|
4
|
+
"title": "Koobiq components split-button review migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|