@koobiq/components 20.4.2 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +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 +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -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/{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,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.js');
|
|
6
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
7
|
+
var migrations_filterBarStateSavingDefault_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[filter-bar-state-saving-default]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html'];
|
|
13
|
+
/** A file is a consumer if it imports the package, names the component, or renders one. */
|
|
14
|
+
function referencesConsumer(content) {
|
|
15
|
+
return migrations_filterBarStateSavingDefault_data.PACKAGES.some((name) => content.includes(name)) || new RegExp(migrations_filterBarStateSavingDefault_data.CONSUMER_TYPE).test(content);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reports the consequences of the filter bar persisting the selected filter and the edits made to it,
|
|
19
|
+
* with `useStateSaving` defaulting to `true`. Never writes: the markup whose behaviour changed is exactly
|
|
20
|
+
* the markup that does not mention the input, and rewriting it to opt out would withhold the feature the
|
|
21
|
+
* release is shipping.
|
|
22
|
+
*
|
|
23
|
+
* `.html` is visited as well as `.ts`, because most reports key off the rendered element rather than off
|
|
24
|
+
* an import.
|
|
25
|
+
*/
|
|
26
|
+
function filterBarStateSavingDefault(options) {
|
|
27
|
+
return async (tree, context) => {
|
|
28
|
+
const { project } = options;
|
|
29
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
30
|
+
const root = projectDefinition?.root ?? '';
|
|
31
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
32
|
+
let consumers = 0;
|
|
33
|
+
let reported = 0;
|
|
34
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
35
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
36
|
+
return;
|
|
37
|
+
const content = entry?.content.toString();
|
|
38
|
+
if (!content || !referencesConsumer(content))
|
|
39
|
+
return;
|
|
40
|
+
consumers++;
|
|
41
|
+
for (const { anchor, pattern, unless, message } of migrations_filterBarStateSavingDefault_data.warnPatterns) {
|
|
42
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
43
|
+
continue;
|
|
44
|
+
if (unless && new RegExp(unless).test(content))
|
|
45
|
+
continue;
|
|
46
|
+
reported++;
|
|
47
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
// Nothing here renders a filter bar, so the summary would only be noise.
|
|
51
|
+
if (consumers === 0)
|
|
52
|
+
return;
|
|
53
|
+
utils_messages.logMessage(context.logger, [
|
|
54
|
+
`${LABEL} processed kbq-filter-bar under "${root || '<workspace root>'}", ` +
|
|
55
|
+
`${consumers} file(s) reference it, ${reported} report(s) raised.`,
|
|
56
|
+
...migrations_filterBarStateSavingDefault_data.SUMMARY
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
exports.default = filterBarStateSavingDefault;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-filter-bar-state-saving-default",
|
|
4
|
+
"title": "Koobiq filter-bar state saving default 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,67 @@
|
|
|
1
|
+
# flag-inner-html
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@20`
|
|
4
|
+
(registered for `21.0.0-0`). Moves `[innerHTML]` bindings off the `<kbq-flag>` host element onto the
|
|
5
|
+
`svg` input the flag review added, and reports the behavior changes that have no call site to point
|
|
6
|
+
at.
|
|
7
|
+
|
|
8
|
+
## Background
|
|
9
|
+
|
|
10
|
+
`KbqFlag` renders `<ng-content />`, so the host element is where projected nodes land. A parent
|
|
11
|
+
binding `[innerHTML]` on `<kbq-flag>` compiles to a write of `hostElement.innerHTML` during the
|
|
12
|
+
parent's update pass — the same element. The two only coexisted because the component's own view
|
|
13
|
+
contributed no DOM: with nothing projected there was nothing for the write to destroy, which is why
|
|
14
|
+
every published example got away with it.
|
|
15
|
+
|
|
16
|
+
The review gave the string form a slot of its own:
|
|
17
|
+
|
|
18
|
+
```html
|
|
19
|
+
<!-- before -->
|
|
20
|
+
<kbq-flag decorative [innerHTML]="flag" />
|
|
21
|
+
|
|
22
|
+
<!-- after -->
|
|
23
|
+
<kbq-flag decorative [svg]="flag" />
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The `svg` input renders into a `<span>` inside the component's view, so projected content and string
|
|
27
|
+
content no longer compete for the host element. The value is unchanged — Angular's sanitizer still
|
|
28
|
+
strips an `<svg>` that has not been bypassed, so a flag coming from a package as a string still has to go through
|
|
29
|
+
`DomSanitizer.bypassSecurityTrustHtml`, and only ever for markup known at build time.
|
|
30
|
+
|
|
31
|
+
## What it rewrites
|
|
32
|
+
|
|
33
|
+
`[innerHTML]` → `[svg]`, inside `<kbq-flag …>` opening tags only, in `.ts` and `.html` files that
|
|
34
|
+
reference the flag. A binding on any other element — including one on a wrapper projected _into_ a
|
|
35
|
+
flag — is left alone, because there the write targets an element the component does not own.
|
|
36
|
+
|
|
37
|
+
## What it does not reach
|
|
38
|
+
|
|
39
|
+
The rewrite is textual, so it only sees a literal `[innerHTML]=` inside a literal `<kbq-flag …>`
|
|
40
|
+
opening tag. Two forms are invisible to it and have to be moved by hand:
|
|
41
|
+
|
|
42
|
+
- an `innerHTML` write made from TypeScript against a flag element, through `Renderer2.setProperty`
|
|
43
|
+
or an assignment to a queried element's `innerHTML`;
|
|
44
|
+
- a wrapper component of your own that publishes an `innerHTML`-named input and forwards it. The
|
|
45
|
+
`<kbq-flag [innerHTML]="…">` inside its template is rewritten, but the input it exposes to its own
|
|
46
|
+
callers keeps the old name.
|
|
47
|
+
|
|
48
|
+
## Notes with no call site to point at
|
|
49
|
+
|
|
50
|
+
- **A flag with no `label` is now `aria-hidden`.** The unlabelled, non-decorative flag reached the
|
|
51
|
+
accessibility tree as a nameless graphic, which the guide already called out as the one case that
|
|
52
|
+
must not happen. Give a meaningful flag a `label` — including one whose only name came from the
|
|
53
|
+
projected image (`alt`, an SVG `<title>`), which the default now hides.
|
|
54
|
+
- **An inline `<svg>` is cropped instead of letterboxed.** `object-fit: cover` is inert on an inline
|
|
55
|
+
`<svg>` — it is not a replaced element — so a source whose ratio differed from the shape rendered
|
|
56
|
+
with transparent bands; `square` and `circle` were the visible cases. The same flag passed as an
|
|
57
|
+
`<img>` always cropped, and the two now match.
|
|
58
|
+
- **`--kbq-flag-empty-background` resolves to an opaque neutral** instead of the translucent disabled
|
|
59
|
+
state, so the `empty` placeholder no longer takes on the hue of the surface behind it.
|
|
60
|
+
- **The flag tokens are declared at zero specificity.** An override that used to lose to `.kbq-flag`
|
|
61
|
+
on source order now wins, so a redundant `!important` or an extra selector can be dropped.
|
|
62
|
+
|
|
63
|
+
## Running it on its own
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
ng g @koobiq/components:flag-inner-html --project <your project>
|
|
67
|
+
```
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `flag-inner-html` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqFlag` renders `<ng-content />`, so the host element is where projected nodes land. A parent
|
|
7
|
+
* binding `[innerHTML]` on `<kbq-flag>` writes that same element, and the two only coexisted because
|
|
8
|
+
* the component's own view contributed no DOM. The review gave the string form a slot of its own —
|
|
9
|
+
* the `svg` input — and the template now creates a node inside the host, so a host-level
|
|
10
|
+
* `[innerHTML]` write removes it along with anything projected.
|
|
11
|
+
*
|
|
12
|
+
* The rename is mechanical, so this migration rewrites it. Everything else in the review is a
|
|
13
|
+
* behavior change with no call site to point at, and is reported once per project.
|
|
14
|
+
*/
|
|
15
|
+
/** Import specifier that marks a file as a flag consumer. */
|
|
16
|
+
const FLAG_PACKAGE = '@koobiq/components/flag';
|
|
17
|
+
/** Identifier and element shapes that mark a consumer without an import. */
|
|
18
|
+
const FLAG_TYPE = '\\bKbqFlag\\w*\\b|\\bkbq-flag\\b';
|
|
19
|
+
/**
|
|
20
|
+
* Opening `<kbq-flag …>` tag, including the self-closing form. Closing tags do not match.
|
|
21
|
+
*
|
|
22
|
+
* Attribute values are matched as opaque quoted strings, so a `>` inside an attribute expression
|
|
23
|
+
* (e.g. `[class.a]="x > y"`) does not end the match early and strand a later `[innerHTML]` binding
|
|
24
|
+
* on the same tag outside it. The third alternative excludes both quote characters so that only one
|
|
25
|
+
* branch can consume a quote: an unterminated tag would otherwise backtrack exponentially.
|
|
26
|
+
*/
|
|
27
|
+
const FLAG_OPEN_TAG = /<kbq-flag\b(?:"[^"]*"|'[^']*'|[^>"'])*>/g;
|
|
28
|
+
/** The binding this migration moves off the host element. */
|
|
29
|
+
const INNER_HTML_BINDING = /\[innerHTML\]\s*=/g;
|
|
30
|
+
const REWRITE_MESSAGE = '[innerHTML] on <kbq-flag> was rewritten to [svg]. The host element is where projected content ' +
|
|
31
|
+
'lands, so an innerHTML write replaces it; the svg input renders into a slot of its own. Pass it ' +
|
|
32
|
+
'the same SafeHtml — Angular still strips an <svg> that has not been bypassed.';
|
|
33
|
+
/** Printed once per project, after the per-file reports. */
|
|
34
|
+
const SUMMARY = [
|
|
35
|
+
' The rewrite is textual and only sees a literal [innerHTML]= inside a literal <kbq-flag …> ' +
|
|
36
|
+
'opening tag. An innerHTML write made from TypeScript against a flag element, and an ' +
|
|
37
|
+
'innerHTML-named input that a wrapper component of yours forwards to a flag, are both ' +
|
|
38
|
+
'invisible to it and have to be moved by hand.',
|
|
39
|
+
' A flag with no `label` is now aria-hidden. The unlabelled, non-decorative flag reached the ' +
|
|
40
|
+
'accessibility tree as a nameless graphic, which the guide already called out as the one case ' +
|
|
41
|
+
'that must not happen. Give a meaningful flag a `label` — including one whose only name came ' +
|
|
42
|
+
'from the projected image (`alt`, an SVG `<title>`), which the default now hides.',
|
|
43
|
+
' An inline <svg> is cropped instead of letterboxed. `object-fit: cover` is inert on an inline ' +
|
|
44
|
+
'<svg> — it is not a replaced element — so a source whose ratio differed from the shape used to ' +
|
|
45
|
+
'render with transparent bands; `square` and `circle` are the visible cases. The same flag ' +
|
|
46
|
+
'passed as an <img> always cropped, and the two now match.',
|
|
47
|
+
' --kbq-flag-empty-background resolves to an opaque neutral instead of the translucent disabled ' +
|
|
48
|
+
'state, so the `empty` placeholder no longer takes on the hue of the surface behind it.',
|
|
49
|
+
' The flag tokens are declared at zero specificity. An override that used to lose to .kbq-flag ' +
|
|
50
|
+
'on source order now wins, so a redundant `!important` or an extra selector can be dropped.'
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
exports.FLAG_OPEN_TAG = FLAG_OPEN_TAG;
|
|
54
|
+
exports.FLAG_PACKAGE = FLAG_PACKAGE;
|
|
55
|
+
exports.FLAG_TYPE = FLAG_TYPE;
|
|
56
|
+
exports.INNER_HTML_BINDING = INNER_HTML_BINDING;
|
|
57
|
+
exports.REWRITE_MESSAGE = REWRITE_MESSAGE;
|
|
58
|
+
exports.SUMMARY = SUMMARY;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.js');
|
|
6
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
7
|
+
var migrations_flagInnerHtml_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[flag-inner-html]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html'];
|
|
13
|
+
/** A file is a flag consumer if it imports the package, names the component, or renders one. */
|
|
14
|
+
function referencesFlag(content) {
|
|
15
|
+
return content.includes(migrations_flagInnerHtml_data.FLAG_PACKAGE) || new RegExp(migrations_flagInnerHtml_data.FLAG_TYPE).test(content);
|
|
16
|
+
}
|
|
17
|
+
/** Renames `[innerHTML]` to `[svg]` inside every `<kbq-flag …>` opening tag, and leaves the rest alone. */
|
|
18
|
+
function rewriteInnerHtmlBindings(content) {
|
|
19
|
+
return content.replace(migrations_flagInnerHtml_data.FLAG_OPEN_TAG, (tag) => tag.replace(migrations_flagInnerHtml_data.INNER_HTML_BINDING, '[svg]='));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Moves `[innerHTML]` bindings off the `<kbq-flag>` host element onto the `svg` input the flag review
|
|
23
|
+
* added, and reports the behavior changes that have no call site to point at.
|
|
24
|
+
*
|
|
25
|
+
* `.html` is visited as well as `.ts`, because the binding lives in a template either way.
|
|
26
|
+
*/
|
|
27
|
+
function flagInnerHtml(options) {
|
|
28
|
+
return async (tree, context) => {
|
|
29
|
+
const { project } = options;
|
|
30
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
31
|
+
const root = projectDefinition?.root ?? '';
|
|
32
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
33
|
+
let consumers = 0;
|
|
34
|
+
let rewritten = 0;
|
|
35
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
36
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
37
|
+
return;
|
|
38
|
+
const content = entry?.content.toString();
|
|
39
|
+
if (!content || !referencesFlag(content))
|
|
40
|
+
return;
|
|
41
|
+
consumers++;
|
|
42
|
+
const migrated = rewriteInnerHtmlBindings(content);
|
|
43
|
+
if (migrated === content)
|
|
44
|
+
return;
|
|
45
|
+
rewritten++;
|
|
46
|
+
tree.overwrite(filePath, migrated);
|
|
47
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_flagInnerHtml_data.REWRITE_MESSAGE}`]);
|
|
48
|
+
});
|
|
49
|
+
// Nothing here renders a flag, so the summary would only be noise.
|
|
50
|
+
if (consumers === 0)
|
|
51
|
+
return;
|
|
52
|
+
utils_messages.logMessage(context.logger, [
|
|
53
|
+
`${LABEL} processed kbq-flag under "${root || '<workspace root>'}", ` +
|
|
54
|
+
`${consumers} file(s) reference the component, ${rewritten} file(s) rewritten.`,
|
|
55
|
+
...migrations_flagInnerHtml_data.SUMMARY
|
|
56
|
+
]);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
exports.default = flagInnerHtml;
|
|
61
|
+
exports.rewriteInnerHtmlBindings = rewriteInnerHtmlBindings;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-flag-inner-html",
|
|
4
|
+
"title": "Koobiq components flag 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,125 @@
|
|
|
1
|
+
# form-field-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components`.
|
|
4
|
+
Migrates consumers of the full `@koobiq/components/form-field` review: the signal-based `KbqFormField` /
|
|
5
|
+
`KbqHint` API, the new accessibility semantics of the cleaner and the password toggle, and the removal of the
|
|
6
|
+
deprecated `mixinColor`.
|
|
7
|
+
|
|
8
|
+
## Why
|
|
9
|
+
|
|
10
|
+
`KbqFormField` finished its migration to signal queries and `KbqHint` to signal inputs, so every programmatic
|
|
11
|
+
read of those members needs a call. The icon-only cleaner and password toggle became real buttons with a
|
|
12
|
+
localized accessible name, which means the component now owns the `aria-label` a consumer used to set by hand.
|
|
13
|
+
`KbqFormFieldControl` followed: the state of every control is a signal, and `stateChanges` is gone.
|
|
14
|
+
Template _bindings_ (`[fillTextOff]`, `[compact]`, …) keep working — only programmatic reads/writes
|
|
15
|
+
and template-reference reads break.
|
|
16
|
+
|
|
17
|
+
| Member | Before | After | Auto-fix |
|
|
18
|
+
| ------------------------------------------------------------------------------------------------------------- | ----------------------- | ---------------------------------------- | -------------------------------- |
|
|
19
|
+
| `KbqFormField.cleaner` / `passwordToggle` | `T \| null` | `Signal<T \| undefined>` | ✅ read → call |
|
|
20
|
+
| `KbqFormField.hint` / `prefix` / `suffix` | `QueryList<T>` | `Signal<readonly T[]>` | ✅ read → call |
|
|
21
|
+
| `KbqFormField.hasCleaner` / `hasHint` / `hasPasswordToggle` / `hasPrefix` / `hasStepper` / `hasSuffix` | getter | `Signal<boolean>` | ✅ read → call |
|
|
22
|
+
| `KbqHint.fillTextOff` / `compact` (also on `KbqError`, `KbqReactivePasswordHint`) | `boolean` input | `InputSignalWithTransform` | ✅ read → call |
|
|
23
|
+
| `<kbq-cleaner [attr.aria-label]>` | plain attribute binding | `[aria-label]` input | ✅ rewritten |
|
|
24
|
+
| `fiedset-theme` stylesheet | misspelled filename | `fieldset-theme` | ✅ renamed |
|
|
25
|
+
| `mixinColor` / `CanColorCtor` | exported from `core` | removed | ⚠️ warn |
|
|
26
|
+
| `KbqA11yLocaleConfiguration` | 8 keys | +`clear`, `showPassword`, `hidePassword` | ⚠️ warn |
|
|
27
|
+
| `KbqFormFieldRef.control` | `any` | `Signal<KbqFormFieldControlRef>` | ⚠️ warn |
|
|
28
|
+
| `value` / `id` / `placeholder` / `focused` / `empty` / `required` / `disabled` / `errorState` of the controls | property or getter | `Signal` | ✅ read → call, write → `.set()` |
|
|
29
|
+
| `KbqTagInput.id` / `placeholder` / `focused` / `empty` | input, field or getter | read-only `Signal` | ✅ read → call |
|
|
30
|
+
| `KbqInputPassword.elementType` | writable `string` | read-only `Signal<'text' \| 'password'>` | ✅ read → call, ⚠️ write warned |
|
|
31
|
+
| `KbqFormFieldControl.stateChanges` | `Observable<void>` | removed | ⚠️ warn |
|
|
32
|
+
| `KbqFormField.hovered` / `onHoverChanged()` | `boolean` / method | removed | ⚠️ warn |
|
|
33
|
+
|
|
34
|
+
`control`, `stepper` and `connectionContainerRef` were already signals before this release and are deliberately
|
|
35
|
+
left alone — appending `()` to them would be a double call.
|
|
36
|
+
|
|
37
|
+
## What it does (auto-fix)
|
|
38
|
+
|
|
39
|
+
The schematic walks every `.ts`, `.html`, `.scss` and `.css` file in the project (skipping `node_modules` and
|
|
40
|
+
`dist`) and, for files that reference the form field:
|
|
41
|
+
|
|
42
|
+
- **TypeScript reads.** For a receiver whose static type is annotated `KbqFormField`, `KbqHint`, `KbqError` or
|
|
43
|
+
`KbqReactivePasswordHint` (method/function params, class fields — including
|
|
44
|
+
`@ContentChild(KbqFormField) x: KbqFormField`, constructor parameter-properties and `inject(KbqFormField)` — and
|
|
45
|
+
typed locals), a read of a migrated member becomes a call: `formField.hasHint` → `formField.hasHint()` (incl.
|
|
46
|
+
optional chain `formField?.hint` → `formField?.hint()`). A nested declaration that reuses the receiver's name,
|
|
47
|
+
and `this.<field>` inside a `function` that rebinds `this`, are left alone.
|
|
48
|
+
- **Control state.** On a receiver typed `KbqSelect`, `KbqTreeSelect`, `KbqTimezoneSelect`, `KbqTagList`,
|
|
49
|
+
`KbqTimepicker`, `KbqDatepickerInput`, `KbqInput`, `KbqInputPassword`, `KbqTextarea` or `KbqFormFieldControl`,
|
|
50
|
+
a read of `value`, `id`, `placeholder`, `focused`, `empty`, `required`, `disabled` or `errorState` becomes a
|
|
51
|
+
call. A plain `=` write becomes `.set()` where the member stays writable — `disabled` on the selects, the tag
|
|
52
|
+
list, the timepicker and the datepicker input, `value` on the select, the timezone select, the tag list and the
|
|
53
|
+
native-element controls, `placeholder` on the native-element controls. The tree select, the timepicker and the
|
|
54
|
+
datepicker input own their `value`, so a write to it is reported. The same reads of `id`, `placeholder`,
|
|
55
|
+
`focused` and `empty` on a receiver typed `KbqTagInput` become calls too, and so do reads of `elementType` on
|
|
56
|
+
a receiver typed `KbqInputPassword`, whose writes are reported.
|
|
57
|
+
- **Template references.** For a `#ref` bound to `<kbq-form-field>`, `<kbq-hint>`, `<kbq-error>`,
|
|
58
|
+
`<kbq-reactive-password-hint>`, `<kbq-select>`, `<kbq-tree-select>`, `<kbq-timezone-select>` or
|
|
59
|
+
`<kbq-tag-list>`, reads through that ref are rewritten in the same template (external `.html` and inline
|
|
60
|
+
`template:` strings). The ref has to be bare or name the component's own `exportAs` (`#s="kbqSelect"`): one
|
|
61
|
+
that names another directive (`#s="ngModel"`) is left alone. The input, the password input, the textarea, the
|
|
62
|
+
timepicker, the datepicker input and the tag input are directives on a native element, where a bare ref is the
|
|
63
|
+
element, so only a ref naming their `exportAs` is followed: `#i="kbqInput"`, `kbqInputPassword`,
|
|
64
|
+
`kbqTextarea`, `kbqTimepicker`, `kbqDatepickerInput`, `kbqTagInput` or `kbqTagInputFor`.
|
|
65
|
+
Only the ref itself is matched — `form.controls.country.value` stays as it is. Only the expressions of the view
|
|
66
|
+
that declares the ref are looked at — prose, comments and plain attributes are not — and a ref whose name a
|
|
67
|
+
`@for`, `let-`, `*ngFor` or `@let` variable or another `#ref` shares is left alone. In an event binding, a
|
|
68
|
+
write
|
|
69
|
+
to a writable member becomes `.set()`: `(click)="s.disabled = true"` → `(click)="s.disabled.set(true)"`;
|
|
70
|
+
`[(ngModel)]="tags.value"` keeps working on the signal unchanged.
|
|
71
|
+
- **Cleaner accessible name.** `<kbq-cleaner [attr.aria-label]="…">` → `<kbq-cleaner [aria-label]="…">`. The
|
|
72
|
+
component now writes `aria-label` from a host binding, so an `attr.` binding is silently overwritten by the
|
|
73
|
+
localized default.
|
|
74
|
+
- **Stylesheet import.** `fiedset-theme` → `fieldset-theme`.
|
|
75
|
+
|
|
76
|
+
All rewrites are idempotent — running twice does not double the call.
|
|
77
|
+
|
|
78
|
+
## What it does _not_ do (warn-only)
|
|
79
|
+
|
|
80
|
+
These changes can't be rewritten safely and are surfaced as warnings (in both `fix` and dry-run mode):
|
|
81
|
+
|
|
82
|
+
| Change | Manual migration |
|
|
83
|
+
| ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
84
|
+
| `formField.hint.changes` / `.first` / `.last` / `.toArray()` / `.get(i)` | The content queries are signals over a readonly array. React with `computed()` / `effect()` instead of `.changes`, and index the array instead of the `QueryList` helpers. |
|
|
85
|
+
| `formField.cleaner === null` | `cleaner` / `passwordToggle` now return `undefined` when absent. Use a truthiness check or `== null`. |
|
|
86
|
+
| `hint.fillTextOff = …` / `hint.compact = …` | Read-only signal inputs now. Drive them with a template binding (`[fillTextOff]="…"`), not an assignment. |
|
|
87
|
+
| `formField.cleaner = …` / `hint` / `prefix` / `suffix` / `passwordToggle` | Read-only signal content queries now. Project the content instead — code that assigned a query result (usually a test faking it) has to render the real component. |
|
|
88
|
+
| `mixinColor(...)` / `CanColorCtor` | Removed, and `CanColor` with them. Extend `KbqColorDirective`, which exposes the same `color` input and `colorClassName` getter, or type a member `Signal<KbqComponentColors \| string>`. |
|
|
89
|
+
| A custom `KbqA11yLocaleConfiguration` | Add the three new keys — `clear`, `showPassword`, `hidePassword` — used for the accessible names of the cleaner and the password toggle. |
|
|
90
|
+
| `inject(KBQ_FORM_FIELD_REF)` + `formField.control.<member>` | `control` is typed now. The read was silently `undefined` and has to become `formField.control().<member>`. |
|
|
91
|
+
| `KbqTrim.trim(...)` | Typed `(value: unknown) => unknown`. Narrow or cast the result. |
|
|
92
|
+
| `<kbq-error role="…">` / `<kbq-cleaner role="button">` | `kbq-error` renders `role="alert"` + `aria-atomic` and `kbq-cleaner` renders `role="button"` themselves. Drop the hand-rolled attributes. |
|
|
93
|
+
| `implements KbqFormFieldControl` | Expose the state as signals and drop `stateChanges`: the form field derives its state from the signals. |
|
|
94
|
+
| `formField.control().stateChanges` | Removed. Read the state signals in `computed()` / `effect()`, or turn one into a stream with `toObservable()`. |
|
|
95
|
+
| `formField.hovered` / `.onHoverChanged(…)`, also through a `#ref` | Removed: nothing read them; their pointer listeners ran change detection on every hover. Bind `(mouseenter)` / `(mouseleave)` on `<kbq-form-field>` yourself, or style with `:hover`. |
|
|
96
|
+
| A write to a read-only control member (`select.placeholder = …`) | Bind it in the template, or set the value through a form control. Also reported for `+=`, `++`, `delete` and a destructuring target, and through a template ref, in an event or a two-way binding. |
|
|
97
|
+
| `input.value += …` / `++` / `delete` / destructuring on a writable member | Only a plain `=` becomes `.set()`. Write the rest with `.set()` / `.update()`. Also reported for `+=`, `??=`, `++` and the rest through a template ref in an event binding. |
|
|
98
|
+
| `password.elementType = …`, also through a `#ref` | `KbqInputPassword.elementType` is a read-only signal now. Call `toggleType()` to show or hide the password. |
|
|
99
|
+
| `KbqErrorStateTracker` / `CanUpdateErrorState` | The tracker takes no `stateChanges` subject; `errorState` is a `Signal<boolean>`; the interface no longer declares `errorStateMatcher`. |
|
|
100
|
+
| `mixinErrorState(...)` / `CanUpdateErrorStateCtor` | Removed. Track the error state with `KbqErrorStateTracker`. |
|
|
101
|
+
| `KbqIconErrorStateContext` | Its `errorState` is a `Signal<boolean>`, and `stateChanges` was removed. |
|
|
102
|
+
|
|
103
|
+
## Behaviour changes without a code fix
|
|
104
|
+
|
|
105
|
+
- The form field now writes `aria-describedby` on the control, referencing every rendered hint and — while the
|
|
106
|
+
control is invalid — the error. Tests that assert on the control's attributes will see the new value.
|
|
107
|
+
- `KbqInput`, `KbqInputPassword` and `KbqSelect` render `aria-invalid`; `KbqSelect` also renders `aria-required`.
|
|
108
|
+
- `.kbq-form-field_no-borders` and `.kbq-form-field_in-overlay` no longer use `!important`: they override the
|
|
109
|
+
`--kbq-form-field-*` tokens instead. A stylesheet that fought the old `!important` can be simplified.
|
|
110
|
+
- `KbqDatepicker` is no longer provided as a `KbqFormFieldControl`; the form field always finds the
|
|
111
|
+
`kbqDatepicker` input, which now renders its `id` for the label.
|
|
112
|
+
|
|
113
|
+
## Running it manually
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
ng generate @koobiq/components:form-field-signals --project my-app
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Pass `--fix=false` to see what would change without writing files.
|
|
120
|
+
|
|
121
|
+
## Limitations
|
|
122
|
+
|
|
123
|
+
Receivers are matched by explicit type annotation or an `inject()` initializer (no type inference), so inferred
|
|
124
|
+
receivers (`const f = this.formField; f.hasHint`) and signal queries (`viewChild(KbqSelect)`) are left untouched. After running, **always inspect the diff**
|
|
125
|
+
and act on the warnings before committing.
|