@koobiq/components 20.4.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +486 -165
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -187
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -23,18 +23,26 @@ The schematic walks every `.ts` and `.html` file in the project (skipping
|
|
|
23
23
|
|
|
24
24
|
- **TypeScript reads/writes.** For a receiver whose static type is annotated
|
|
25
25
|
`KbqFilterBar` / `KbqFilterBarHost` (method/function params, class fields —
|
|
26
|
-
including `@ViewChild(KbqFilterBar) x: KbqFilterBar
|
|
27
|
-
parameter-properties — and typed locals), a read of
|
|
28
|
-
call and a `filter
|
|
26
|
+
including `@ViewChild(KbqFilterBar) x: KbqFilterBar`, constructor
|
|
27
|
+
parameter-properties and `inject(KbqFilterBar)` — and typed locals), a read of
|
|
28
|
+
a signal member becomes a call and a plain `filter = …` write becomes
|
|
29
|
+
`.set(...)`:
|
|
29
30
|
- `filterBar.filter` → `filterBar.filter()` (incl. optional chain `filterBar.filter?.name` → `filterBar.filter()?.name`)
|
|
30
31
|
- `filterBar.filter = next` → `filterBar.filter.set(next)`
|
|
31
32
|
- `this.filterBar.isChanged` → `this.filterBar.isChanged()`
|
|
32
|
-
- **Template
|
|
33
|
+
- **Template references.** For a bare `#ref` on `<kbq-filter-bar>`, reads
|
|
33
34
|
of signal members through that ref are rewritten in the same template
|
|
34
35
|
(external `.html` and inline `template:` strings): `ref.isChanged` →
|
|
35
|
-
`ref.isChanged()
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
`ref.isChanged()`, and in an event binding `ref.filter = saved` →
|
|
37
|
+
`ref.filter.set(saved)`. `KbqFilterBar` has no `exportAs`, so a ref with a
|
|
38
|
+
value (`#ref="ngModel"`) names another directive and is left alone, and so
|
|
39
|
+
is a property chain that only ends in the ref's name
|
|
40
|
+
(`page.filterBar.filter`). Only the expressions of the view that declares
|
|
41
|
+
the ref are looked at — prose, comments and plain attributes are not — and a
|
|
42
|
+
ref whose name a `@for`, `let-`, `*ngFor` or `@let` variable or another
|
|
43
|
+
`#ref` shares is left alone.
|
|
44
|
+
- **Rename.** `KbqFilterBarRefresher` → `KbqFilterRefresher` (the old name
|
|
45
|
+
stayed an alias until 21.0.0).
|
|
38
46
|
|
|
39
47
|
All rewrites are idempotent — running twice does not double the call.
|
|
40
48
|
|
|
@@ -43,12 +51,14 @@ All rewrites are idempotent — running twice does not double the call.
|
|
|
43
51
|
Some changes require code restructuring and are surfaced as warnings without
|
|
44
52
|
auto-fixing:
|
|
45
53
|
|
|
46
|
-
| Pattern | Manual migration
|
|
47
|
-
| -------------------------------- |
|
|
48
|
-
| `.changes` (KbqFilterBar) | Deprecated no-op; read `filterBar.filter()` inside an `effect(...)`, or listen to `(filterChange)`
|
|
49
|
-
| `.preparePopover()` (KbqFilters) | Removed; use `openSaveAsNewFilterPopover()` / `openChangeFilterNamePopover()`
|
|
50
|
-
| `viewChild(KbqFilterBar)` query | Returns the instance, so reads are a double call: `this.filterBar().filter()` — verify manually
|
|
51
|
-
| `KBQ_FILTER_BAR_PIPES` | Now typed `Map<KbqPipeType, Type<KbqBasePipe>>`; wrap direct providers in `new Map([...])`
|
|
54
|
+
| Pattern | Manual migration |
|
|
55
|
+
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
56
|
+
| `.changes` (KbqFilterBar) | Deprecated no-op; read `filterBar.filter()` inside an `effect(...)`, or listen to `(filterChange)` |
|
|
57
|
+
| `.preparePopover()` (KbqFilters) | Removed; use `openSaveAsNewFilterPopover()` / `openChangeFilterNamePopover()` |
|
|
58
|
+
| `viewChild(KbqFilterBar)` query | Returns the instance, so reads are a double call: `this.filterBar().filter()` — verify manually |
|
|
59
|
+
| `KBQ_FILTER_BAR_PIPES` | Now typed `Map<KbqPipeType, Type<KbqBasePipe>>`; wrap direct providers in `new Map([...])` |
|
|
60
|
+
| `filterBar.pipeTemplates = …` | Read-only input, also when written through a template ref; bind `[pipeTemplates]` instead |
|
|
61
|
+
| `filterBar.filter ??= …` | Only a plain `=` becomes `.set()`, in code or through a template ref; write the rest with `.set()` / `.update()` |
|
|
52
62
|
|
|
53
63
|
## Running it manually
|
|
54
64
|
|
|
@@ -60,7 +70,8 @@ Pass `--fix=false` to see what would change without writing files.
|
|
|
60
70
|
|
|
61
71
|
## Limitations
|
|
62
72
|
|
|
63
|
-
Receivers are matched by explicit `KbqFilterBar` type annotation
|
|
64
|
-
|
|
73
|
+
Receivers are matched by an explicit `KbqFilterBar` type annotation or an
|
|
74
|
+
`inject()` initializer (no type inference), so inferred receivers
|
|
65
75
|
(`const fb = this.filterBar; fb.filter`) are left untouched and covered by the
|
|
66
|
-
warnings above.
|
|
76
|
+
warnings above. A nested declaration that reuses the receiver's name, and
|
|
77
|
+
`this.<field>` inside a `function` that rebinds `this`, are left alone too. After running, **always inspect the diff** before committing.
|
|
@@ -31,8 +31,7 @@ const FILTER_BAR_HOST_TYPE = 'KbqFilterBarHost';
|
|
|
31
31
|
const FILTER_BAR_ELEMENT = 'kbq-filter-bar';
|
|
32
32
|
/**
|
|
33
33
|
* Safe, idempotent identifier renames applied to `.ts` files. The `\b…\b` boundaries make each rule
|
|
34
|
-
* idempotent. `KbqFilterBarRefresher`
|
|
35
|
-
* is optional cleanup that can never break a consumer build.
|
|
34
|
+
* idempotent. The `KbqFilterBarRefresher` alias was removed in 21.0.0.
|
|
36
35
|
*/
|
|
37
36
|
const tsRenameReplacements = [{ from: '\\bKbqFilterBarRefresher\\b', to: 'KbqFilterRefresher' }];
|
|
38
37
|
/**
|
|
@@ -3,19 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var ts = require('typescript');
|
|
6
|
-
var utils_ast = require('../../utils/ast.js');
|
|
7
6
|
var utils_messages = require('../../utils/messages.js');
|
|
8
|
-
var utils_packageConfig = require('../../
|
|
7
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
8
|
+
var signalMembersMigration = require('../../signal-members-migration-BoAJKutT.js');
|
|
9
|
+
var templateRefAccess = require('../../template-ref-access-DLNoxmmG.js');
|
|
9
10
|
var utils_typescript = require('../../utils/typescript.js');
|
|
10
11
|
var migrations_filterBarSignals_data = require('./data.js');
|
|
11
12
|
require('@angular-devkit/schematics');
|
|
12
13
|
require('@schematics/angular/utility');
|
|
14
|
+
require('../../utils/ast.js');
|
|
13
15
|
|
|
14
16
|
const TS_EXT = '.ts';
|
|
15
17
|
const HTML_EXT = '.html';
|
|
16
|
-
function escapeRegExp(value) {
|
|
17
|
-
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
18
|
-
}
|
|
19
18
|
/** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
|
|
20
19
|
function applyEdits(content, edits) {
|
|
21
20
|
const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
|
|
@@ -25,221 +24,103 @@ function applyEdits(content, edits) {
|
|
|
25
24
|
}
|
|
26
25
|
return result;
|
|
27
26
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
ts.isSetAccessorDeclaration(node);
|
|
35
|
-
/** Walks up from `node` to the nearest ancestor matching `predicate`. */
|
|
36
|
-
function findAncestor(node, predicate) {
|
|
37
|
-
let current = node.parent;
|
|
38
|
-
while (current) {
|
|
39
|
-
if (predicate(current))
|
|
40
|
-
return current;
|
|
41
|
-
current = current.parent;
|
|
42
|
-
}
|
|
43
|
-
return undefined;
|
|
44
|
-
}
|
|
45
|
-
/** Whether a type annotation refers to the filter bar (`KbqFilterBar` / `KbqFilterBarHost`). */
|
|
46
|
-
function isFilterBarType(type) {
|
|
47
|
-
return (!!type &&
|
|
48
|
-
ts.isTypeReferenceNode(type) &&
|
|
49
|
-
ts.isIdentifier(type.typeName) &&
|
|
50
|
-
(type.typeName.text === migrations_filterBarSignals_data.FILTER_BAR_TYPE || type.typeName.text === migrations_filterBarSignals_data.FILTER_BAR_HOST_TYPE));
|
|
27
|
+
/** The `KbqFilterBar` / `KbqFilterBarHost` receivers of a file, typed by annotation or `inject()`. */
|
|
28
|
+
function collectFileReceivers(sourceFile) {
|
|
29
|
+
return {
|
|
30
|
+
receivers: signalMembersMigration.collectAllReceivers(sourceFile, [migrations_filterBarSignals_data.FILTER_BAR_TYPE, migrations_filterBarSignals_data.FILTER_BAR_HOST_TYPE]),
|
|
31
|
+
bindings: signalMembersMigration.collectBindings(sourceFile)
|
|
32
|
+
};
|
|
51
33
|
}
|
|
52
|
-
const FIELD_MODIFIERS = new Set([
|
|
53
|
-
ts.SyntaxKind.PrivateKeyword,
|
|
54
|
-
ts.SyntaxKind.PublicKeyword,
|
|
55
|
-
ts.SyntaxKind.ProtectedKeyword,
|
|
56
|
-
ts.SyntaxKind.ReadonlyKeyword
|
|
57
|
-
]);
|
|
58
34
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
35
|
+
* Whether `node` accesses a signal member on a filter-bar receiver. The shared engine resolves the receiver at
|
|
36
|
+
* this exact position, so a nested declaration that shadows its name or a `function` that rebinds `this` is
|
|
37
|
+
* not followed. A signal query holds the instance behind a call of its own, which this pass does not reach.
|
|
62
38
|
*/
|
|
63
|
-
function
|
|
64
|
-
|
|
65
|
-
|
|
39
|
+
function isSignalMemberAccess(node, sourceFile, scope) {
|
|
40
|
+
if (!ts.isPropertyAccessExpression(node) ||
|
|
41
|
+
!ts.isIdentifier(node.name) ||
|
|
42
|
+
!migrations_filterBarSignals_data.SIGNAL_MEMBERS.includes(node.name.text)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const receiver = signalMembersMigration.resolveReceiver(node.expression, node, sourceFile, scope.receivers, scope.bindings);
|
|
46
|
+
return !!receiver && !receiver.signalQuery;
|
|
47
|
+
}
|
|
48
|
+
/** Collects edits for every read/write of a signal member on a known filter-bar receiver. */
|
|
49
|
+
function collectAccessEdits(sourceFile, scope) {
|
|
50
|
+
const edits = [];
|
|
66
51
|
const visit = (node) => {
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
// A constructor parameter-property is also a class field, reachable as `this.<name>`.
|
|
70
|
-
if (node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
|
|
71
|
-
const owner = findAncestor(node, ts.isClassDeclaration);
|
|
72
|
-
if (owner)
|
|
73
|
-
add(`this.${node.name.text}`, owner);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else if (ts.isPropertyDeclaration(node) && ts.isIdentifier(node.name) && isFilterBarType(node.type)) {
|
|
77
|
-
const owner = findAncestor(node, ts.isClassDeclaration);
|
|
78
|
-
if (owner)
|
|
79
|
-
add(`this.${node.name.text}`, owner);
|
|
80
|
-
}
|
|
81
|
-
else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && isFilterBarType(node.type)) {
|
|
82
|
-
add(node.name.text, findAncestor(node, isFunctionLike) ?? sourceFile);
|
|
83
|
-
}
|
|
52
|
+
if (isSignalMemberAccess(node, sourceFile, scope))
|
|
53
|
+
signalMembersMigration.classifyAccess(node, sourceFile, migrations_filterBarSignals_data.WRITABLE_MEMBERS, edits);
|
|
84
54
|
node.forEachChild(visit);
|
|
85
55
|
};
|
|
86
56
|
visit(sourceFile);
|
|
87
|
-
return
|
|
88
|
-
}
|
|
89
|
-
/** Classifies a matched property access and appends the resulting edit(s). */
|
|
90
|
-
function classifyAccess(node, sourceFile, edits) {
|
|
91
|
-
const parent = node.parent;
|
|
92
|
-
// Already migrated: `x.filter()` (call) or `x.filter.set(...)` — leave alone (idempotent).
|
|
93
|
-
if (ts.isCallExpression(parent) && parent.expression === node)
|
|
94
|
-
return;
|
|
95
|
-
if (ts.isPropertyAccessExpression(parent) && parent.expression === node && parent.name.text === 'set')
|
|
96
|
-
return;
|
|
97
|
-
// Write target: `x.filter = RHS` → `x.filter.set(RHS)` (writable members only).
|
|
98
|
-
if (ts.isBinaryExpression(parent) &&
|
|
99
|
-
parent.left === node &&
|
|
100
|
-
parent.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
101
|
-
if (migrations_filterBarSignals_data.WRITABLE_MEMBERS.has(node.name.text)) {
|
|
102
|
-
const rhs = parent.right;
|
|
103
|
-
// Replace ` = ` with `.set(` and close after the right-hand side; keeping the RHS span intact
|
|
104
|
-
// lets any nested read edits inside it still apply.
|
|
105
|
-
edits.push({ start: node.getEnd(), end: rhs.getStart(sourceFile), text: '.set(' });
|
|
106
|
-
edits.push({ start: rhs.getEnd(), end: rhs.getEnd(), text: ')' });
|
|
107
|
-
}
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
// Read (incl. optional chain `x?.filter`): append `()`.
|
|
111
|
-
edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
|
|
57
|
+
return edits;
|
|
112
58
|
}
|
|
113
|
-
/**
|
|
114
|
-
function
|
|
115
|
-
const
|
|
59
|
+
/** Signal members written on a filter-bar receiver in a form the rewrite leaves for the consumer. */
|
|
60
|
+
function collectWrites(sourceFile, scope) {
|
|
61
|
+
const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
|
|
116
62
|
const visit = (node) => {
|
|
117
|
-
if (
|
|
118
|
-
|
|
119
|
-
migrations_filterBarSignals_data.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
const inScope = receivers.some((r) => r.text === receiverText && start >= r.start && end <= r.end);
|
|
124
|
-
if (inScope)
|
|
125
|
-
classifyAccess(node, sourceFile, edits);
|
|
63
|
+
if (isSignalMemberAccess(node, sourceFile, scope) && signalMembersMigration.isWriteTarget(node)) {
|
|
64
|
+
const name = node.name.text;
|
|
65
|
+
if (!migrations_filterBarSignals_data.WRITABLE_MEMBERS.has(name))
|
|
66
|
+
writes.readOnlyWrites.add(name);
|
|
67
|
+
else if (!signalMembersMigration.isPlainAssignment(node))
|
|
68
|
+
writes.compoundWrites.add(name);
|
|
126
69
|
}
|
|
127
70
|
node.forEachChild(visit);
|
|
128
71
|
};
|
|
129
72
|
visit(sourceFile);
|
|
130
|
-
return
|
|
73
|
+
return writes;
|
|
131
74
|
}
|
|
132
75
|
/** Pass A — rewrite programmatic reads/writes of filter-bar signal members in TypeScript code. */
|
|
133
76
|
function migrateTsExpressions(content, fileName) {
|
|
134
77
|
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
135
|
-
const
|
|
136
|
-
if (receivers.length === 0)
|
|
78
|
+
const scope = collectFileReceivers(sourceFile);
|
|
79
|
+
if (scope.receivers.length === 0)
|
|
137
80
|
return content;
|
|
138
|
-
const edits = collectAccessEdits(sourceFile,
|
|
81
|
+
const edits = collectAccessEdits(sourceFile, scope);
|
|
139
82
|
return edits.length > 0 ? applyEdits(content, edits) : content;
|
|
140
83
|
}
|
|
141
|
-
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
}
|
|
146
|
-
visitElement(element) {
|
|
147
|
-
if (element.name === migrations_filterBarSignals_data.FILTER_BAR_ELEMENT) {
|
|
148
|
-
for (const attr of element.attrs ?? []) {
|
|
149
|
-
if (typeof attr.name !== 'string')
|
|
150
|
-
continue;
|
|
151
|
-
if (attr.name.startsWith('#'))
|
|
152
|
-
this.refs.add(attr.name.slice(1));
|
|
153
|
-
else if (attr.name.startsWith('ref-'))
|
|
154
|
-
this.refs.add(attr.name.slice(4));
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
this.visitChildren(element);
|
|
158
|
-
}
|
|
159
|
-
visitBlock(block) {
|
|
160
|
-
this.visitChildren(block);
|
|
161
|
-
}
|
|
162
|
-
visitChildren(node) {
|
|
163
|
-
for (const child of node.children ?? []) {
|
|
164
|
-
child.visit(this);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
visitAttribute() { }
|
|
168
|
-
visitText() { }
|
|
169
|
-
visitComment() { }
|
|
170
|
-
visitExpansion() { }
|
|
171
|
-
visitExpansionCase() { }
|
|
172
|
-
visitBlockParameter() { }
|
|
173
|
-
visitLetDeclaration() { }
|
|
174
|
-
}
|
|
175
|
-
/** Rewrites `ref.member` reads to `ref.member()` for the given refs, scoped to those exact identifiers. */
|
|
176
|
-
function rewriteRefReads(template, refs) {
|
|
177
|
-
const members = migrations_filterBarSignals_data.SIGNAL_MEMBERS.join('|');
|
|
178
|
-
let content = template;
|
|
179
|
-
let changed = false;
|
|
180
|
-
for (const ref of refs) {
|
|
181
|
-
// `\bref\.(member)\b(?!\s*\()` — skip anything already invoked, so the rewrite is idempotent.
|
|
182
|
-
const pattern = new RegExp(`\\b(${escapeRegExp(ref)})\\.(${members})\\b(?!\\s*\\()`, 'g');
|
|
183
|
-
const next = content.replace(pattern, '$1.$2()');
|
|
184
|
-
if (next !== content) {
|
|
185
|
-
content = next;
|
|
186
|
-
changed = true;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return { content, changed };
|
|
84
|
+
/** Merges the writes in `from` into `into`. */
|
|
85
|
+
function mergeWrites(into, from) {
|
|
86
|
+
from.readOnlyWrites.forEach((member) => into.readOnlyWrites.add(member));
|
|
87
|
+
from.compoundWrites.forEach((member) => into.compoundWrites.add(member));
|
|
190
88
|
}
|
|
191
|
-
/**
|
|
89
|
+
/** What a reference variable on `<kbq-filter-bar>` reaches. */
|
|
90
|
+
const REF_POLICY = { members: migrations_filterBarSignals_data.SIGNAL_MEMBERS, writable: migrations_filterBarSignals_data.WRITABLE_MEMBERS };
|
|
91
|
+
/** Pass B (core) — parse a template, discover filter-bar refs, rewrite their signal reads and `filter` writes. */
|
|
192
92
|
async function migrateTemplate(template) {
|
|
93
|
+
const untouched = {
|
|
94
|
+
content: template,
|
|
95
|
+
changed: false,
|
|
96
|
+
readOnlyWrites: new Set(),
|
|
97
|
+
compoundWrites: new Set()
|
|
98
|
+
};
|
|
193
99
|
if (!template.includes(migrations_filterBarSignals_data.FILTER_BAR_ELEMENT))
|
|
194
|
-
return
|
|
100
|
+
return untouched;
|
|
195
101
|
const parsed = await utils_typescript.parseTemplate(template);
|
|
196
102
|
if (!parsed.tree)
|
|
197
|
-
return
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
return
|
|
203
|
-
}
|
|
204
|
-
/** Interior `[start, end]` ranges of inline `@Component({ template: '…' })` string literals. */
|
|
205
|
-
function collectInlineTemplateRanges(sourceFile) {
|
|
206
|
-
const ranges = [];
|
|
207
|
-
utils_typescript.forEachClass(sourceFile, (node) => {
|
|
208
|
-
const decorator = ts
|
|
209
|
-
.getDecorators(node)
|
|
210
|
-
?.find((dec) => ts.isCallExpression(dec.expression) &&
|
|
211
|
-
ts.isIdentifier(dec.expression.expression) &&
|
|
212
|
-
dec.expression.expression.text === 'Component');
|
|
213
|
-
if (!decorator || !ts.isCallExpression(decorator.expression))
|
|
214
|
-
return;
|
|
215
|
-
const [arg] = decorator.expression.arguments;
|
|
216
|
-
if (!arg || !ts.isObjectLiteralExpression(arg))
|
|
217
|
-
return;
|
|
218
|
-
for (const prop of arg.properties) {
|
|
219
|
-
if (ts.isPropertyAssignment(prop) &&
|
|
220
|
-
(ts.isIdentifier(prop.name) || ts.isStringLiteralLike(prop.name)) &&
|
|
221
|
-
prop.name.text === 'template' &&
|
|
222
|
-
ts.isStringLiteralLike(prop.initializer) &&
|
|
223
|
-
prop.initializer.text) {
|
|
224
|
-
// +1 / -1 to exclude the opening/closing quote characters.
|
|
225
|
-
ranges.push({ start: prop.initializer.getStart(sourceFile) + 1, end: prop.initializer.getEnd() - 1 });
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
return ranges;
|
|
103
|
+
return untouched;
|
|
104
|
+
const { rootNodes } = parsed.tree;
|
|
105
|
+
// `KbqFilterBar` has no `exportAs`, so only a bare `#ref` is the filter bar; `#ref="ngModel"` names another
|
|
106
|
+
// directive.
|
|
107
|
+
const { content, readOnlyWrites, compoundWrites } = templateRefAccess.rewriteRefAccesses(template, rootNodes, (element, value) => element.name === migrations_filterBarSignals_data.FILTER_BAR_ELEMENT && !value ? REF_POLICY : undefined);
|
|
108
|
+
return { content, changed: content !== template, readOnlyWrites, compoundWrites };
|
|
230
109
|
}
|
|
231
110
|
/** Pass B (inline) — rewrite filter-bar ref reads inside inline component templates. */
|
|
232
111
|
async function migrateInlineTemplates(content, fileName) {
|
|
233
112
|
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
234
|
-
const ranges = collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
|
|
113
|
+
const ranges = utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start);
|
|
114
|
+
const writes = { readOnlyWrites: new Set(), compoundWrites: new Set() };
|
|
235
115
|
let result = content;
|
|
236
116
|
for (const { start, end } of ranges) {
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
117
|
+
const outcome = await migrateTemplate(result.slice(start, end));
|
|
118
|
+
mergeWrites(writes, outcome);
|
|
119
|
+
if (outcome.changed) {
|
|
120
|
+
result = result.slice(0, start) + outcome.content + result.slice(end);
|
|
240
121
|
}
|
|
241
122
|
}
|
|
242
|
-
return result;
|
|
123
|
+
return { content: result, ...writes };
|
|
243
124
|
}
|
|
244
125
|
/** Pass C — safe identifier renames. */
|
|
245
126
|
function applyRenames(content) {
|
|
@@ -256,6 +137,27 @@ function logWarnings(context, filePath, content) {
|
|
|
256
137
|
}
|
|
257
138
|
}
|
|
258
139
|
}
|
|
140
|
+
/** Reports writes to signal members that are read-only now, made in code or through a template reference. */
|
|
141
|
+
function warnReadOnlyWrites(context, filePath, members) {
|
|
142
|
+
if (members.size === 0)
|
|
143
|
+
return;
|
|
144
|
+
utils_messages.logMessage(context.logger, [
|
|
145
|
+
`[filter-bar-signals] ${filePath}`,
|
|
146
|
+
` \`${[...members].join('`, `')}\` can no longer be assigned: they are read-only signals now. Bind`,
|
|
147
|
+
` \`[pipeTemplates]\` in the template instead; the \`is*\` state follows \`filter\`.`
|
|
148
|
+
]);
|
|
149
|
+
}
|
|
150
|
+
/** Reports writes to `filter` that have no `.set()` form, made in code or through a template reference. */
|
|
151
|
+
function warnCompoundWrites(context, filePath, members) {
|
|
152
|
+
if (members.size === 0)
|
|
153
|
+
return;
|
|
154
|
+
utils_messages.logMessage(context.logger, [
|
|
155
|
+
`[filter-bar-signals] ${filePath}`,
|
|
156
|
+
` \`${[...members].join('`, `')}\` is a writable signal now, but only a plain \`=\` is rewritten to`,
|
|
157
|
+
` \`.set()\`: a compound assignment, an increment, \`delete\` or a destructuring target was left as it`,
|
|
158
|
+
` is. Write it with \`.set()\` or \`.update()\`.`
|
|
159
|
+
]);
|
|
160
|
+
}
|
|
259
161
|
/** A `.ts` file is a filter-bar consumer if it names the type or imports the package. */
|
|
260
162
|
function referencesFilterBar(content) {
|
|
261
163
|
return /\bKbqFilterBar\b/.test(content) || content.includes('@koobiq/components/filter-bar');
|
|
@@ -271,9 +173,7 @@ function filterBarSignals(options) {
|
|
|
271
173
|
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
272
174
|
const tsPaths = [];
|
|
273
175
|
const htmlPaths = [];
|
|
274
|
-
|
|
275
|
-
if (filePath.includes('node_modules') || filePath.includes('/dist/'))
|
|
276
|
-
return;
|
|
176
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
|
|
277
177
|
if (filePath.endsWith(TS_EXT))
|
|
278
178
|
tsPaths.push(filePath);
|
|
279
179
|
else if (filePath.endsWith(HTML_EXT))
|
|
@@ -296,16 +196,21 @@ function filterBarSignals(options) {
|
|
|
296
196
|
if (!original || !referencesFilterBar(original))
|
|
297
197
|
continue;
|
|
298
198
|
logWarnings(context, filePath, original);
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
199
|
+
const sourceFile = ts.createSourceFile(filePath, original, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
200
|
+
const writes = collectWrites(sourceFile, collectFileReceivers(sourceFile));
|
|
201
|
+
const inline = await migrateInlineTemplates(migrateTsExpressions(original, filePath), filePath);
|
|
202
|
+
mergeWrites(writes, inline);
|
|
203
|
+
warnReadOnlyWrites(context, filePath, writes.readOnlyWrites);
|
|
204
|
+
warnCompoundWrites(context, filePath, writes.compoundWrites);
|
|
205
|
+
commit(filePath, original, applyRenames(inline.content));
|
|
303
206
|
}
|
|
304
207
|
for (const filePath of htmlPaths) {
|
|
305
208
|
const original = tree.read(filePath)?.toString();
|
|
306
209
|
if (!original)
|
|
307
210
|
continue;
|
|
308
|
-
const { content, changed } = await migrateTemplate(original);
|
|
211
|
+
const { content, changed, readOnlyWrites, compoundWrites } = await migrateTemplate(original);
|
|
212
|
+
warnReadOnlyWrites(context, filePath, readOnlyWrites);
|
|
213
|
+
warnCompoundWrites(context, filePath, compoundWrites);
|
|
309
214
|
if (changed)
|
|
310
215
|
commit(filePath, original, content);
|
|
311
216
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# filter-bar-state-saving-default
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@20`
|
|
4
|
+
(registered for `21.0.0-0`). Reports the consequences of `kbq-filter-bar` remembering which filter is
|
|
5
|
+
selected and the edits made to it, with `useStateSaving` defaulting to `true`. It never writes to the
|
|
6
|
+
tree.
|
|
7
|
+
|
|
8
|
+
## Background
|
|
9
|
+
|
|
10
|
+
The filter bar gained the same state saving the accordion, the tree, the tab group, the sidebar and the
|
|
11
|
+
content panel already have, applied through the `KbqStateSaving` host directive, and it is on by default.
|
|
12
|
+
With no `stateSavingKey` the key is derived from where the bar sits in the document — the chain of tag
|
|
13
|
+
names up to `<body>`, cut short by the first author-written `id`, which becomes the anchor.
|
|
14
|
+
|
|
15
|
+
One thing is different here. The components that shipped before it leave a controlled input alone: a
|
|
16
|
+
sidebar with a bound `opened` persists nothing at all. The filter bar restores over the value a
|
|
17
|
+
`[filter]` binding supplied at initialization, because `filter` is a `model()` — the restore writes
|
|
18
|
+
through it, `filterChange` fires, and the application loads data for the restored filter exactly as it
|
|
19
|
+
would for one the user had just picked. Only a change made after that wins.
|
|
20
|
+
|
|
21
|
+
## What is stored
|
|
22
|
+
|
|
23
|
+
The filter's `name`, whether it carried unsaved changes, and one entry per pipe: its `id` (or its `name`
|
|
24
|
+
when it has none) and its value. Nothing else. A pipe built from a template keeps that template's
|
|
25
|
+
`compareWith` and date bounds, and those do not survive being written to storage — so the rest of each
|
|
26
|
+
pipe is rebuilt from `filters` and `pipeTemplates` while restoring, and a pipe whose template is gone is
|
|
27
|
+
left out.
|
|
28
|
+
|
|
29
|
+
`KbqFilter` has no id, so a filter is identified by its `name`: renaming a saved filter loses what was
|
|
30
|
+
stored for it, and a name no longer in the list restores nothing. A list that arrives from a server is
|
|
31
|
+
waited for — the restore applies as soon as the named filter appears, and is abandoned as soon as
|
|
32
|
+
anything else changes the filter.
|
|
33
|
+
|
|
34
|
+
## What it reports
|
|
35
|
+
|
|
36
|
+
| Pattern | Reported unless |
|
|
37
|
+
| -------------------------------------------- | ----------------------------- |
|
|
38
|
+
| `<kbq-filter-bar>` / `[kbq-filter-bar]` | `useStateSaving` is mentioned |
|
|
39
|
+
| `[filter]` / `[(filter)]` on the bar | `useStateSaving` is mentioned |
|
|
40
|
+
| `<kbq-filters>` inside the bar | `useStateSaving` is mentioned |
|
|
41
|
+
| `compareWith` in a consumer file | always |
|
|
42
|
+
| `saveFilterState()` / `restoreFilterState()` | always |
|
|
43
|
+
|
|
44
|
+
The last one is a reassurance rather than a warning: those two are unchanged, and are unrelated to
|
|
45
|
+
`clearSavedState()` / `hasSavedState`.
|
|
46
|
+
|
|
47
|
+
## Running it manually
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
ng generate @koobiq/components:filter-bar-state-saving-default --project my-app
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Omit `--project` to inspect the whole workspace.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `filter-bar-state-saving-default` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqFilterBar` remembers which filter is selected and the edits made to it now, and `useStateSaving`
|
|
7
|
+
* defaults to `true`. Unlike the components that shipped before it, the bar restores over the value a
|
|
8
|
+
* `[filter]` binding supplied at initialization — it writes through the `filter` model, so `filterChange`
|
|
9
|
+
* fires and the application loads data for the restored filter. That is the part a consumer has to act
|
|
10
|
+
* on, and it is exactly the markup that says nothing about the input.
|
|
11
|
+
*
|
|
12
|
+
* Warn-only. Rewriting the markup to `[useStateSaving]="false"` would withhold the feature this release
|
|
13
|
+
* is shipping.
|
|
14
|
+
*/
|
|
15
|
+
/** Import specifiers that mark a file as a consumer of the filter bar. */
|
|
16
|
+
const PACKAGES = ['@koobiq/components/filter-bar'];
|
|
17
|
+
/** Identifier and element shapes that mark a consumer without an import. */
|
|
18
|
+
const CONSUMER_TYPE = '\\bKbqFilterBar\\b|\\bkbq-filter-bar\\b';
|
|
19
|
+
const FILTER_BAR = '<kbq-filter-bar\\b|\\[kbq-filter-bar\\]';
|
|
20
|
+
/**
|
|
21
|
+
* Anything that makes a file a consumer, for the reports that key off a call site rather than off the
|
|
22
|
+
* rendered element — pipe templates are routinely declared in a `.ts` whose markup lives elsewhere.
|
|
23
|
+
*/
|
|
24
|
+
const CONSUMER = `${CONSUMER_TYPE}|\\bKbqPipeTemplate\\b|@koobiq/components/filter-bar`;
|
|
25
|
+
const warnPatterns = [
|
|
26
|
+
{
|
|
27
|
+
anchor: FILTER_BAR,
|
|
28
|
+
pattern: FILTER_BAR,
|
|
29
|
+
unless: '\\buseStateSaving\\b',
|
|
30
|
+
message: 'Filter bars remember the selected filter and the edits made to it by default now: ' +
|
|
31
|
+
'useStateSaving defaults to true. Pass [useStateSaving]="false" to keep the previous ' +
|
|
32
|
+
'behaviour. What is stored is the filter name, whether it carried unsaved changes, and one ' +
|
|
33
|
+
'entry per pipe — its id (or name) and its value.'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
anchor: FILTER_BAR,
|
|
37
|
+
pattern: '\\[\\(?filter\\)?\\]',
|
|
38
|
+
unless: '\\buseStateSaving\\b',
|
|
39
|
+
message: 'A restored filter overrides the value this [filter] binding supplies at initialization, and ' +
|
|
40
|
+
'writes through the model, so filterChange fires and the application fetches for it as it ' +
|
|
41
|
+
'would for one the user had picked. Only a later change wins — this is the one place the bar ' +
|
|
42
|
+
'differs from the components that persist a controlled input by leaving it alone.'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
anchor: FILTER_BAR,
|
|
46
|
+
pattern: '<kbq-filters\\b',
|
|
47
|
+
unless: '\\buseStateSaving\\b',
|
|
48
|
+
message: 'A filter is identified by its name, the only identity KbqFilter has. Renaming a saved filter ' +
|
|
49
|
+
'therefore loses what was stored for it, and a name that is no longer in the filters list ' +
|
|
50
|
+
'restores nothing. Applications that load their filters from a server are waited for: the ' +
|
|
51
|
+
'restore applies as soon as the named filter appears.'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
anchor: CONSUMER,
|
|
55
|
+
pattern: '\\bcompareWith\\b',
|
|
56
|
+
message: 'Restored pipe values come back as new objects, never the option instances in the templates. ' +
|
|
57
|
+
'This compareWith is what matches them again — keep it in step with what is stored, which is ' +
|
|
58
|
+
'the value alone.'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
// Programmatic access names the class, which the markup-only anchor does not cover.
|
|
62
|
+
anchor: CONSUMER,
|
|
63
|
+
pattern: '\\.\\s*(saveFilterState|restoreFilterState)\\s*\\(',
|
|
64
|
+
message: 'saveFilterState()/restoreFilterState() are unchanged: they snapshot the filter in memory ' +
|
|
65
|
+
'within one session. Persistence is separate — clearSavedState() and hasSavedState are the ' +
|
|
66
|
+
'members that reach it, and the bar writes on every change by itself.'
|
|
67
|
+
}
|
|
68
|
+
];
|
|
69
|
+
/** Printed once, after the per-file reports. */
|
|
70
|
+
const SUMMARY = [
|
|
71
|
+
' A filter bar rendered inside an overlay does not persist: it is not in the document when it',
|
|
72
|
+
' initializes and so has no stable key. The key otherwise comes from stateSavingKey, or is derived',
|
|
73
|
+
' from the position in the document when none is given.',
|
|
74
|
+
' Pipes are stored as a projection — id and value — and everything else is rebuilt from filters and',
|
|
75
|
+
' pipeTemplates, because a pipe built from a template keeps that template compareWith and date',
|
|
76
|
+
' bounds, which do not survive being written to storage. A pipe whose template is gone is left out.',
|
|
77
|
+
' Storage format: entries are written under a "kbq.state." prefix and carry a timestamp, so an',
|
|
78
|
+
' entry stranded by a markup change is collected once it outlives KBQ_STATE_SAVING_TTL (90 days by',
|
|
79
|
+
' default).',
|
|
80
|
+
' Provide KBQ_STATE_STORE to persist somewhere else (KbqSessionStorageStateStore is bundled), and',
|
|
81
|
+
' KBQ_STATE_SAVING_KEY_RESOLVER to derive the key from something other than the document position.'
|
|
82
|
+
];
|
|
83
|
+
|
|
84
|
+
exports.CONSUMER_TYPE = CONSUMER_TYPE;
|
|
85
|
+
exports.PACKAGES = PACKAGES;
|
|
86
|
+
exports.SUMMARY = SUMMARY;
|
|
87
|
+
exports.warnPatterns = warnPatterns;
|