@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
|
+
# tree-select-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Reports the `KbqTreeSelect` members that became signal-backed, protected
|
|
5
|
+
or disappeared in the tree-select review. It never writes to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
The review typed the surface and dropped the members that only existed to feed the template:
|
|
10
|
+
|
|
11
|
+
| Member | Before | After |
|
|
12
|
+
| ----------------------------------------------------------------------------------------------- | ----------------- | --------------------------- |
|
|
13
|
+
| `valueChange` | declared output | removed |
|
|
14
|
+
| `getPanelClasses()`, `getPanelTheme()`, `isRtl()`, `transformOrigin` | public | removed |
|
|
15
|
+
| `hiddenItemsText`, `hiddenItemsTextFormatter` | accessor / method | signal inputs |
|
|
16
|
+
| `hasBackdrop`, `searchMinOptionsThreshold` | accessor / input | signals |
|
|
17
|
+
| `hiddenItems`, `colorForState` | plain members | `WritableSignal` / `Signal` |
|
|
18
|
+
| `options`, `tags`, `overlayDir`, `triggerRect`, `panelDoneAnimatingStream`, `changeDetectorRef` | public | `protected` |
|
|
19
|
+
| `KbqTreeSelectChange` | `value: any` | generic, typed `value` |
|
|
20
|
+
|
|
21
|
+
`valueChange` deserves a note. It was declared and documented as the other half of a two-way binding
|
|
22
|
+
on a `value` input that does not exist, and nothing ever emitted it — so `(valueChange)` never fired.
|
|
23
|
+
Removing it changes nothing at runtime: Angular treats an unmatched `(x)` as a DOM event listener,
|
|
24
|
+
which stays just as silent. Listen to `(selectionChange)`.
|
|
25
|
+
|
|
26
|
+
## What it does _not_ do
|
|
27
|
+
|
|
28
|
+
Nothing is rewritten. A read of a signal member becomes a call, a write becomes a template binding,
|
|
29
|
+
and a removed member has no replacement expression at all.
|
|
30
|
+
|
|
31
|
+
| Pattern | Manual migration |
|
|
32
|
+
| --------------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
33
|
+
| `valueChange` | Listen to `(selectionChange)` |
|
|
34
|
+
| `.getPanelClasses()` / `.getPanelTheme()` / `.isRtl()` / `.transformOrigin` | Bind `[panelClass]` if the panel needs styling |
|
|
35
|
+
| `.hiddenItemsText = …` and friends | Bind the input — a signal member takes no assignment |
|
|
36
|
+
| `.hiddenItemsText` and friends | Read them as calls |
|
|
37
|
+
| `.options` / `.tags` / `.overlayDir` / … | Protected; use the open/close API, the inputs and `(selectionChange)` |
|
|
38
|
+
| `sortComparator` | Its third argument is the tree's data nodes in panel order |
|
|
39
|
+
|
|
40
|
+
## Notes with no call site to point at
|
|
41
|
+
|
|
42
|
+
- `KbqTreeSelectChange` is generic and its `value` is no longer `any`. A handler that relied on the
|
|
43
|
+
implicit widening needs the type argument.
|
|
44
|
+
- The embedded tree is set up through `KbqTreeSelection.initializeForEmbedding()` instead of a
|
|
45
|
+
second manual `ngAfterContentInit()`. The old path left duplicate subscriptions on query lists that
|
|
46
|
+
are never re-created, so every options change was handled several times — on the search-filtering
|
|
47
|
+
hot path.
|
|
48
|
+
- The dead `{ provide: KbqTree, useExisting: KbqTreeSelect }` provider is gone. `KbqTreeSelect` never
|
|
49
|
+
satisfied `KbqTree` structurally, so anything injecting `KbqTree` from inside a tree-select was
|
|
50
|
+
getting an object that only looked right.
|
|
51
|
+
- A `multiple` value is ordered by the panel, collapsed branches included, instead of the order it
|
|
52
|
+
was written in. `[sortComparator]` gets two selected data nodes and every data node of the tree in
|
|
53
|
+
panel order; `() => 0` keeps the write order.
|
|
54
|
+
- The component renders a host `id` and carries combobox ARIA, so the form field label's `[attr.for]`
|
|
55
|
+
resolves instead of dangling.
|
|
56
|
+
|
|
57
|
+
## Running it manually
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
ng generate @koobiq/components:tree-select-signals --project my-app
|
|
61
|
+
```
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `tree-select-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* The tree-select review typed the surface and removed the members that only existed to serve the
|
|
7
|
+
* template:
|
|
8
|
+
*
|
|
9
|
+
* - `getPanelClasses()`, `getPanelTheme()`, `isRtl()`, `transformOrigin` — removed. The panel classes
|
|
10
|
+
* are a `protected` computed (`panelClasses`) the template reads directly.
|
|
11
|
+
* - `valueChange` — removed. It was declared and documented as the other half of a two-way binding on
|
|
12
|
+
* a `value` input that does not exist, and nothing ever emitted it.
|
|
13
|
+
* - `hiddenItemsText`, `hiddenItemsTextFormatter` — accessor pair / method → signal inputs.
|
|
14
|
+
* - `hiddenItems` → `WritableSignal<number>`, `colorForState` → `Signal<KbqComponentColors>`.
|
|
15
|
+
* - `hasBackdrop` — accessor pair → signal input.
|
|
16
|
+
* - `options`, `tags`, `overlayDir`, `triggerRect`, `panelDoneAnimatingStream`, `changeDetectorRef` —
|
|
17
|
+
* public → `protected`.
|
|
18
|
+
* - `KbqTreeSelectChange` is generic and its `value` is no longer `any`.
|
|
19
|
+
*
|
|
20
|
+
* Warn-only. A read of a signal member becomes a call, a write becomes the binding, and a removed
|
|
21
|
+
* member has no replacement expression at all.
|
|
22
|
+
*/
|
|
23
|
+
/** Import specifier that marks a file as a tree-select consumer. */
|
|
24
|
+
const TREE_SELECT_PACKAGE = '@koobiq/components/tree-select';
|
|
25
|
+
/** Identifier and attribute shapes that mark a consumer without an import. */
|
|
26
|
+
const TREE_SELECT_TYPE = '\\bKbqTreeSelect\\w*\\b|\\bkbq-tree-select\\b';
|
|
27
|
+
const warnPatterns = [
|
|
28
|
+
{
|
|
29
|
+
anchor: TREE_SELECT_TYPE,
|
|
30
|
+
pattern: '\\bvalueChange\\b',
|
|
31
|
+
message: 'KbqTreeSelect.valueChange was removed. It was declared as the other half of a two-way binding ' +
|
|
32
|
+
'on a `value` input that does not exist, and nothing ever emitted it — a `(valueChange)` binding ' +
|
|
33
|
+
'never fired, and Angular treats it as a DOM event listener now, so it stays silent either way. ' +
|
|
34
|
+
'Listen to (selectionChange) instead.'
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
anchor: TREE_SELECT_TYPE,
|
|
38
|
+
pattern: '\\.\\s*(?:getPanelClasses|getPanelTheme|isRtl|transformOrigin)\\b',
|
|
39
|
+
message: 'KbqTreeSelect.getPanelClasses() / getPanelTheme() / isRtl() / transformOrigin were removed. They ' +
|
|
40
|
+
'existed to feed the template, which now reads a protected `panelClasses` computed; a host that ' +
|
|
41
|
+
'needs the panel styled differently should bind [panelClass].'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
anchor: TREE_SELECT_TYPE,
|
|
45
|
+
pattern: '\\.\\s*(?:hiddenItemsText|hiddenItemsTextFormatter|hiddenItems|colorForState)\\s*=(?!=)',
|
|
46
|
+
message: 'hiddenItemsText and hiddenItemsTextFormatter are signal inputs, hiddenItems is a WritableSignal ' +
|
|
47
|
+
'and colorForState is a computed — none of them takes an assignment. Bind the inputs in the ' +
|
|
48
|
+
'template; hiddenItems is written by the measurement, not by the host.'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
anchor: TREE_SELECT_TYPE,
|
|
52
|
+
pattern: '\\.\\s*(?:hiddenItemsText|hiddenItemsTextFormatter|hiddenItems|colorForState)\\b(?!\\s*[=(])',
|
|
53
|
+
message: 'hiddenItemsText, hiddenItemsTextFormatter, hiddenItems and colorForState are signal-backed: read ' +
|
|
54
|
+
'them as calls. `hiddenItemsTextFormatter()(template, count)` for the formatter, which is an ' +
|
|
55
|
+
'input holding the function rather than a method.'
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
anchor: TREE_SELECT_TYPE,
|
|
59
|
+
pattern: '\\.\\s*(?:options|tags|overlayDir|triggerRect|panelDoneAnimatingStream|changeDetectorRef)\\b',
|
|
60
|
+
message: 'KbqTreeSelect.options / tags / overlayDir / triggerRect / panelDoneAnimatingStream / ' +
|
|
61
|
+
'changeDetectorRef are protected. They were the panel and trigger plumbing; the supported ' +
|
|
62
|
+
'surface is the open/close API, the inputs and (selectionChange).'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
anchor: TREE_SELECT_TYPE,
|
|
66
|
+
pattern: '\\.\\s*(?:hasBackdrop|searchMinOptionsThreshold)\\b(?!\\s*[=(])',
|
|
67
|
+
message: 'KbqTreeSelect.hasBackdrop and .searchMinOptionsThreshold are signals now: read them as calls, ' +
|
|
68
|
+
'`hasBackdrop()` and `searchMinOptionsThreshold()`. searchMinOptionsThreshold() still reports the ' +
|
|
69
|
+
'resolved number.'
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
anchor: TREE_SELECT_TYPE,
|
|
73
|
+
pattern: '\\.\\s*(?:multiple|autoSelect|tabIndex|selectAllHandler|hasBackdrop|searchMinOptionsThreshold)\\s*=(?!=)',
|
|
74
|
+
message: 'multiple, autoSelect, tabIndex, selectAllHandler, hasBackdrop and searchMinOptionsThreshold of ' +
|
|
75
|
+
'KbqTreeSelect are signal inputs, so an assignment no longer compiles. Bind them in the template. This ' +
|
|
76
|
+
'pattern also matches a write to an unrelated object in the same file — check before changing it.'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
anchor: TREE_SELECT_TYPE,
|
|
80
|
+
pattern: '\\bsortComparator\\b',
|
|
81
|
+
message: 'The sortComparator of KbqTreeSelect gets the selected data nodes, as it always did, and its third ' +
|
|
82
|
+
'argument is every data node of the tree in panel order (treeControl.dataNodes) instead of the ' +
|
|
83
|
+
'rendered KbqTreeOption[]. A comparator that looks its arguments up among the options, or types ' +
|
|
84
|
+
'them as KbqTreeOption, has to take your node type. Without a comparator a multiple value is ' +
|
|
85
|
+
'ordered by the panel now; `() => 0` keeps the order the values were written in.'
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
/** Printed once per project, after the per-file reports. */
|
|
89
|
+
const SUMMARY = [
|
|
90
|
+
' KbqTreeSelectChange is generic — KbqTreeSelectChange<T> — and its `value` is no longer `any`. A ' +
|
|
91
|
+
'handler that relied on the implicit widening needs the type argument.',
|
|
92
|
+
' The embedded tree is set up through KbqTreeSelection.initializeForEmbedding() instead of a ' +
|
|
93
|
+
'second manual ngAfterContentInit(). The old path left duplicate subscriptions on query lists ' +
|
|
94
|
+
'that are never re-created, so every options change was handled several times on the ' +
|
|
95
|
+
'search-filtering hot path.',
|
|
96
|
+
' The dead { provide: KbqTree, useExisting: KbqTreeSelect } provider is gone: KbqTreeSelect never ' +
|
|
97
|
+
'satisfied KbqTree structurally, so anything injecting KbqTree from inside a tree-select was ' +
|
|
98
|
+
'getting an object that only looked right.',
|
|
99
|
+
' The component renders a host id and carries combobox ARIA, so the [attr.for] on the form field ' +
|
|
100
|
+
'label resolves instead of dangling, and hand-rolled role or aria-* attributes are duplicates.'
|
|
101
|
+
];
|
|
102
|
+
|
|
103
|
+
exports.SUMMARY = SUMMARY;
|
|
104
|
+
exports.TREE_SELECT_PACKAGE = TREE_SELECT_PACKAGE;
|
|
105
|
+
exports.TREE_SELECT_TYPE = TREE_SELECT_TYPE;
|
|
106
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.js');
|
|
6
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
7
|
+
var migrations_treeSelectSignals_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[tree-select-signals]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html'];
|
|
13
|
+
/** A file is a tree-select consumer if it imports the package, names the component, or renders one. */
|
|
14
|
+
function referencesTreeSelect(content) {
|
|
15
|
+
return content.includes(migrations_treeSelectSignals_data.TREE_SELECT_PACKAGE) || new RegExp(migrations_treeSelectSignals_data.TREE_SELECT_TYPE).test(content);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reports the `KbqTreeSelect` members that became signal-backed, protected, or disappeared. Never
|
|
19
|
+
* writes: a read becomes a call, a write becomes a binding, and a removed member has no replacement
|
|
20
|
+
* expression at all.
|
|
21
|
+
*
|
|
22
|
+
* `.html` is visited as well as `.ts`, because `(valueChange)` is a template binding that Angular
|
|
23
|
+
* now silently treats as a DOM event listener.
|
|
24
|
+
*/
|
|
25
|
+
function treeSelectSignals(options) {
|
|
26
|
+
return async (tree, context) => {
|
|
27
|
+
const { project } = options;
|
|
28
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
29
|
+
const root = projectDefinition?.root ?? '';
|
|
30
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
31
|
+
let consumers = 0;
|
|
32
|
+
let reported = 0;
|
|
33
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
34
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
35
|
+
return;
|
|
36
|
+
const content = entry?.content.toString();
|
|
37
|
+
if (!content || !referencesTreeSelect(content))
|
|
38
|
+
return;
|
|
39
|
+
consumers++;
|
|
40
|
+
for (const { anchor, pattern, message } of migrations_treeSelectSignals_data.warnPatterns) {
|
|
41
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
42
|
+
continue;
|
|
43
|
+
reported++;
|
|
44
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Nothing here renders a tree-select, so the summary would only be noise.
|
|
48
|
+
if (consumers === 0)
|
|
49
|
+
return;
|
|
50
|
+
utils_messages.logMessage(context.logger, [
|
|
51
|
+
`${LABEL} processed kbq-tree-select under "${root || '<workspace root>'}", ` +
|
|
52
|
+
`${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
|
|
53
|
+
...migrations_treeSelectSignals_data.SUMMARY
|
|
54
|
+
]);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.default = treeSelectSignals;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-tree-select-signals",
|
|
4
|
+
"title": "Koobiq components tree-select 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,82 @@
|
|
|
1
|
+
# tree-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Reports the public members of `@koobiq/components/tree` that
|
|
5
|
+
became read-only when the tree moved to signals, and the node type the tree takes. It never writes to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
The tree moved its inputs and its query members to signals. Members that used to be writable
|
|
10
|
+
are now getters — over a `computed()`, over an `InputSignal`, or over an `asObservable()` view of a
|
|
11
|
+
`Subject`. Assigning to a getter-only property throws `TypeError: Cannot set property … which has
|
|
12
|
+
only a getter` in strict mode, and an ES module is always strict, so an unmigrated write does not
|
|
13
|
+
merely stop compiling: it throws at runtime in any build that skips type checking.
|
|
14
|
+
|
|
15
|
+
| Member | Was | Is |
|
|
16
|
+
| ------------------------------------------------------------- | ------------------------------ | ---------------------------------------------- |
|
|
17
|
+
| `KbqTreeNodeToggle.disabled` | `@Input()` accessor pair | getter over a `computed()` |
|
|
18
|
+
| `KbqTreeBase.nodeDefs` | `QueryList<KbqTreeNodeDef<T>>` | `Signal<readonly KbqTreeNodeDef<T>[]>` |
|
|
19
|
+
| `KbqTreeNodePadding.indent` | accessor pair | `InputSignal<number \| string>` |
|
|
20
|
+
| `KbqTreeNodePadding.indentUnits` | writable field | getter derived from `indent` |
|
|
21
|
+
| `KbqTreeNodeToggleBaseDirective.recursive` | accessor pair | `InputSignalWithTransform<boolean, …>` |
|
|
22
|
+
| `KbqTreeOption.onFocus` / `onBlur` | `Subject<KbqTreeOptionEvent>` | `Observable<KbqTreeOptionEvent>` |
|
|
23
|
+
| `KbqTreeBase.treeControl` | field | getter over an `InputSignal` |
|
|
24
|
+
| `KbqTreeBase.dataSource` | accessor pair | getter; the input switches it from an `effect` |
|
|
25
|
+
| `KbqTreeSelection.disabled` / `tabIndex` / `selectAllHandler` | accessor pairs | getters over signal inputs |
|
|
26
|
+
| `KbqTreeOption.disabled` / `showCheckbox` | accessor pairs | getters over signal inputs |
|
|
27
|
+
|
|
28
|
+
`KbqTree` and `KbqTreeSelection` inherit `treeControl` and `dataSource`. Every input keeps its alias,
|
|
29
|
+
so template bindings keep working. `KbqTreeSelection.multiple` is not listed: it has never had a
|
|
30
|
+
setter, and `multipleMode` stays writable.
|
|
31
|
+
|
|
32
|
+
Two of them are silent rather than loud:
|
|
33
|
+
|
|
34
|
+
- `KbqTreeBase` is exported and is the documented extension point for a custom tree. A subclass
|
|
35
|
+
reading `this.nodeDefs.length` now gets `0` — the arity of the signal function — instead of the
|
|
36
|
+
number of node definitions, and `this.nodeDefs.changes.subscribe(…)` throws.
|
|
37
|
+
- `KbqTreeNodeToggle` kept `disabled` as the input alias (the input is declared as `disabledInput`),
|
|
38
|
+
so every template binding keeps working. Only imperative writes break, and the class itself
|
|
39
|
+
performed one before the review: the filter state is now OR-ed in by the computed instead.
|
|
40
|
+
|
|
41
|
+
## Node type
|
|
42
|
+
|
|
43
|
+
`KbqTreeSelection`, `KbqTreeOption` and `KbqTreeSelect` take the type of the data node, `T`, `any` by
|
|
44
|
+
default, and `selectionModel` is `SelectionModel<T>`. A template infers `T` of `kbq-tree-selection` from
|
|
45
|
+
`[treeControl]`, `[dataSource]`, `[trackBy]` and `[selectAllHandler]`, so with `strictTemplates`
|
|
46
|
+
bindings that name different node types no longer compile. Only the compiler sees such a mismatch, so
|
|
47
|
+
the summary names it rather than a pattern: give the bindings the same node type. A query names it as
|
|
48
|
+
`viewChild.required<KbqTreeSelection<Node>>(KbqTreeSelection)`.
|
|
49
|
+
|
|
50
|
+
## What it does
|
|
51
|
+
|
|
52
|
+
Walks every `.ts` and `.html` file under the project root — the whole workspace when `--project` is
|
|
53
|
+
omitted, which is how `ng update` invokes it — skipping `node_modules` and `dist`, and logs the
|
|
54
|
+
files that hold a call site one of the narrowings breaks:
|
|
55
|
+
|
|
56
|
+
| Reported | Manual migration |
|
|
57
|
+
| -------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
|
58
|
+
| `<toggle>.disabled = …` | Bind the `disabled` attribute; it still reaches the toggle through `disabledInput` |
|
|
59
|
+
| `<toggle>.recursive` | Read `recursive()`; bind `kbqTreeNodeToggleRecursive` |
|
|
60
|
+
| `nodeDefs.changes` / `.length` / `.toArray()` / … | Read `nodeDefs()`; replace the subscription with an `effect` |
|
|
61
|
+
| `<padding>.indent` / `.indentUnits` | Read `indent()`; bind `kbqTreeNodePaddingIndent` |
|
|
62
|
+
| `<option>.onFocus.next(…)` / `onBlur.next(…)` | Subscribe instead — the option emits on both streams itself |
|
|
63
|
+
| `<tree>.treeControl / dataSource = …` | Bind it, on `kbq-tree` and `kbq-tree-selection` alike |
|
|
64
|
+
| `<selection>.disabled / tabIndex / selectAllHandler = …` | Bind it; disable the tree through its form control |
|
|
65
|
+
| `<option>.disabled / showCheckbox = …` | Bind it, or disable the node through the tree control's `isDisabled` |
|
|
66
|
+
|
|
67
|
+
Each pattern is scoped to files that also name its owner, so a `.disabled =` write in a file that
|
|
68
|
+
never mentions a tree toggle stays quiet. A project that renders a tree at all also gets a summary
|
|
69
|
+
of every member, because not every narrowing breaks the build: `nodeDefs.length` still compiles and
|
|
70
|
+
returns `0`, and a read of `indent` or `recursive` passed on loosely gets a signal instead of its
|
|
71
|
+
value — through a receiver no pattern recognizes, with no diagnostic at all.
|
|
72
|
+
|
|
73
|
+
## What it does _not_ do (manual)
|
|
74
|
+
|
|
75
|
+
Nothing is rewritten. What replaces a write is a template binding or a different member, neither of
|
|
76
|
+
which can be derived from the assignment, and a read cannot be mechanically suffixed with `()`
|
|
77
|
+
either: `nodeDefs` returns a plain array rather than a `QueryList`, and `indentUnits` is derived
|
|
78
|
+
from `indent` rather than stored. The report is the migration.
|
|
79
|
+
|
|
80
|
+
Receivers are matched by the identifiers in the file rather than by resolved types, so a member
|
|
81
|
+
reached through an `any`-typed or structurally-typed receiver in a file that names no tree type is
|
|
82
|
+
not reported.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `tree-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* These public members of `@koobiq/components/tree` became read-only when the tree moved to signals:
|
|
7
|
+
*
|
|
8
|
+
* - `KbqTreeNodeToggle.disabled` — accessor pair → getter over a `computed()` (the input is
|
|
9
|
+
* declared as `disabledInput` and still aliased `disabled`, so templates are unaffected)
|
|
10
|
+
* - `KbqTreeBase.nodeDefs` — `QueryList<KbqTreeNodeDef<T>>` → `Signal<readonly KbqTreeNodeDef<T>[]>`
|
|
11
|
+
* - `KbqTreeNodePadding.indent` — accessor pair → `InputSignal<number | string>`
|
|
12
|
+
* - `KbqTreeNodePadding.indentUnits` — writable field → getter derived from `indent`
|
|
13
|
+
* - `KbqTreeNodeToggleBaseDirective.recursive` — accessor pair → `InputSignalWithTransform`
|
|
14
|
+
* - `KbqTreeOption.onFocus` / `onBlur` — `Subject` → `Observable` via `asObservable()`
|
|
15
|
+
* - `KbqTreeBase.treeControl` / `dataSource` (of `KbqTree` and `KbqTreeSelection`), `KbqTreeSelection.disabled` /
|
|
16
|
+
* `tabIndex` / `selectAllHandler`, `KbqTreeOption.disabled` / `showCheckbox` — field or accessor pair → getter
|
|
17
|
+
* over a signal input that keeps the alias, so templates are unaffected
|
|
18
|
+
*
|
|
19
|
+
* `KbqTreeSelection`, `KbqTreeOption` and `KbqTreeSelect` also took the type of the data node, `T`. A template
|
|
20
|
+
* infers it from the bindings of the tree, so bindings that name different node types stop compiling under
|
|
21
|
+
* `strictTemplates`; only the compiler sees that, so the summary names it.
|
|
22
|
+
*
|
|
23
|
+
* Nothing is rewritten. What replaces a write is a template binding or a different member, and
|
|
24
|
+
* neither can be derived from the assignment; a read of a signal-backed member has to be checked
|
|
25
|
+
* against its new value rather than mechanically suffixed with `()`.
|
|
26
|
+
*/
|
|
27
|
+
/** Import specifier that marks a file as a tree consumer. */
|
|
28
|
+
const TREE_PACKAGE = '@koobiq/components/tree';
|
|
29
|
+
/** Identifier shape that marks a file as a tree consumer without an import (e.g. a re-export). */
|
|
30
|
+
const TREE_TYPE = '\\bKbqTree\\w*\\b';
|
|
31
|
+
const TOGGLE_ANCHOR = '\\bKbqTreeNodeToggle\\w*\\b';
|
|
32
|
+
/**
|
|
33
|
+
* Reported with the file they were found in, in every mode — the migration only ever warns.
|
|
34
|
+
* Scoped by `anchor` so a plain `.disabled =` in a file that never mentions a toggle stays quiet.
|
|
35
|
+
*/
|
|
36
|
+
const warnPatterns = [
|
|
37
|
+
{
|
|
38
|
+
anchor: TOGGLE_ANCHOR,
|
|
39
|
+
pattern: '\\.disabled\\s*=(?!=)',
|
|
40
|
+
message: 'KbqTreeNodeToggle.disabled is a read-only getter over a computed (the `disabled` input OR-ed with ' +
|
|
41
|
+
'the filter state), so an assignment throws `TypeError: Cannot set property disabled`. Bind the ' +
|
|
42
|
+
'`disabled` attribute instead — it still reaches the toggle, through the `disabledInput` input.'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
anchor: TOGGLE_ANCHOR,
|
|
46
|
+
pattern: '\\.recursive\\b',
|
|
47
|
+
message: 'KbqTreeNodeToggleBaseDirective.recursive is an InputSignalWithTransform: read it as `recursive()`, ' +
|
|
48
|
+
'and set it through the `kbqTreeNodeToggleRecursive` binding — assigning to it throws.'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
anchor: TREE_TYPE,
|
|
52
|
+
pattern: '\\bnodeDefs\\s*\\.\\s*(?:changes|first|last|toArray|notifyOnChanges|reset|length)\\b',
|
|
53
|
+
message: 'KbqTreeBase.nodeDefs is a Signal<readonly KbqTreeNodeDef<T>[]> instead of a QueryList. ' +
|
|
54
|
+
'`nodeDefs.changes` no longer exists, and `nodeDefs.length` is the arity of the signal function — ' +
|
|
55
|
+
'always 0. Read the array as `nodeDefs()` and use `toSignal`/`effect` where you subscribed.'
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
anchor: '\\bKbqTreeNodePadding\\b',
|
|
59
|
+
pattern: '\\.indent(?:Units)?\\b',
|
|
60
|
+
message: 'KbqTreeNodePadding.indent is an InputSignal — read it as `indent()` and set it through the ' +
|
|
61
|
+
'`kbqTreeNodePaddingIndent` binding — and `indentUnits` is a read-only getter derived from it. ' +
|
|
62
|
+
'Assigning to either throws.'
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
anchor: '\\bKbqTreeOption\\b',
|
|
66
|
+
pattern: '\\.(?:onFocus|onBlur)\\s*\\.\\s*(?:next|complete|error)\\b',
|
|
67
|
+
message: 'KbqTreeOption.onFocus and onBlur are Observables now (`asObservable()`), so `.next()` is gone at ' +
|
|
68
|
+
'runtime as well as in the types. Subscribe to them; the option emits on them itself.'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
// KbqTree and KbqTreeSelection inherit both from KbqTreeBase; KbqTreeSelect, KbqTreeOption and the rest do not.
|
|
72
|
+
anchor: '\\bKbqTree(?:Base|Selection)?\\b',
|
|
73
|
+
pattern: '\\.\\s*(?:treeControl|dataSource)\\s*=[^=]',
|
|
74
|
+
message: 'treeControl and dataSource of KbqTreeBase, so of KbqTree and KbqTreeSelection, are signal inputs ' +
|
|
75
|
+
'read through a getter now, so a programmatic write no longer compiles. Bind them. This pattern also ' +
|
|
76
|
+
'matches a write to an unrelated object in the same file — check before changing it.'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
// `multiple` is left out: it has never had a setter, `multipleMode` is what a write changes.
|
|
80
|
+
anchor: '\\bKbqTreeSelection\\b',
|
|
81
|
+
pattern: '\\.\\s*(?:disabled|tabIndex|selectAllHandler)\\s*=[^=]',
|
|
82
|
+
message: 'disabled, tabIndex and selectAllHandler of KbqTreeSelection are signal inputs read through a getter ' +
|
|
83
|
+
'now, so a programmatic write no longer compiles. Bind them, and disable the tree through its form ' +
|
|
84
|
+
'control. autoSelect, noUnselectLast, typeAhead, selectAll and multipleMode stay writable. This ' +
|
|
85
|
+
'pattern also matches a write to an unrelated object in the same file — check before changing it.'
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
anchor: '\\bKbqTreeOption\\b',
|
|
89
|
+
pattern: '\\.\\s*(?:disabled|showCheckbox)\\s*=[^=]',
|
|
90
|
+
message: 'KbqTreeOption.disabled and .showCheckbox are signal inputs read through a getter now, so a ' +
|
|
91
|
+
'programmatic write no longer compiles. Bind them, or disable the node through the isDisabled ' +
|
|
92
|
+
'predicate of the tree control. This pattern also matches a write to an unrelated object in the ' +
|
|
93
|
+
'same file — check before changing it.'
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
/**
|
|
97
|
+
* Printed once for every project that renders a tree, because not every narrowing breaks the build:
|
|
98
|
+
* `nodeDefs.length` still compiles and returns 0, and a read of `indent` or `recursive` passed on
|
|
99
|
+
* loosely gets a signal instead of its value — through a receiver no pattern recognizes, with no
|
|
100
|
+
* diagnostic at all.
|
|
101
|
+
*/
|
|
102
|
+
const SUMMARY = [
|
|
103
|
+
'',
|
|
104
|
+
'These members of @koobiq/components/tree became read-only and cannot be assigned:',
|
|
105
|
+
' - KbqTreeNodeToggle.disabled (bind `disabled`; the input is declared as `disabledInput`)',
|
|
106
|
+
' - KbqTreeBase.nodeDefs (Signal<readonly KbqTreeNodeDef<T>[]>, no longer a QueryList)',
|
|
107
|
+
' - KbqTreeNodePadding.indent (InputSignal) and KbqTreeNodePadding.indentUnits (getter)',
|
|
108
|
+
' - KbqTreeNodeToggleBaseDirective.recursive (InputSignalWithTransform)',
|
|
109
|
+
' - KbqTreeOption.onFocus and KbqTreeOption.onBlur (Observable, not Subject)',
|
|
110
|
+
' - KbqTree and KbqTreeSelection treeControl, dataSource; KbqTreeSelection disabled, tabIndex,',
|
|
111
|
+
' selectAllHandler; KbqTreeOption disabled, showCheckbox (signal inputs read through a getter; bind them)',
|
|
112
|
+
'',
|
|
113
|
+
'KbqTreeSelection, KbqTreeOption and KbqTreeSelect take the type of the data node, T (`any` by default):',
|
|
114
|
+
' - a template infers T of kbq-tree-selection from [treeControl], [dataSource], [trackBy] and',
|
|
115
|
+
' [selectAllHandler]; with strictTemplates, bindings that name different node types no longer compile.',
|
|
116
|
+
' Give them the same node type.',
|
|
117
|
+
' - a query names T: viewChild.required<KbqTreeSelection<Node>>(KbqTreeSelection).'
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
exports.SUMMARY = SUMMARY;
|
|
121
|
+
exports.TREE_PACKAGE = TREE_PACKAGE;
|
|
122
|
+
exports.TREE_TYPE = TREE_TYPE;
|
|
123
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,54 @@
|
|
|
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_treeSignals_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[tree-signals]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html'];
|
|
13
|
+
/** A file is a tree consumer if it imports the package, names one of its types, or renders one. */
|
|
14
|
+
function referencesTree(content) {
|
|
15
|
+
return content.includes(migrations_treeSignals_data.TREE_PACKAGE) || new RegExp(migrations_treeSignals_data.TREE_TYPE).test(content) || content.includes('kbq-tree');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reports the members of `@koobiq/components/tree` that became read-only, with the files that
|
|
19
|
+
* write or read them. Never writes: see `data.ts` for why none of them can be rewritten mechanically.
|
|
20
|
+
*/
|
|
21
|
+
function treeSignals(options) {
|
|
22
|
+
return async (tree, context) => {
|
|
23
|
+
const { project } = options;
|
|
24
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
25
|
+
const root = projectDefinition?.root ?? '';
|
|
26
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
27
|
+
let consumers = 0;
|
|
28
|
+
let reported = 0;
|
|
29
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
30
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
31
|
+
return;
|
|
32
|
+
const content = entry?.content.toString();
|
|
33
|
+
if (!content || !referencesTree(content))
|
|
34
|
+
return;
|
|
35
|
+
consumers++;
|
|
36
|
+
for (const { anchor, pattern, message } of migrations_treeSignals_data.warnPatterns) {
|
|
37
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
38
|
+
continue;
|
|
39
|
+
reported++;
|
|
40
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// Nothing here renders a tree, so the summary would only be noise.
|
|
44
|
+
if (consumers === 0)
|
|
45
|
+
return;
|
|
46
|
+
utils_messages.logMessage(context.logger, [
|
|
47
|
+
`${LABEL} processed tree under "${root || '<workspace root>'}", ` +
|
|
48
|
+
`${consumers} file(s) reference the tree, ${reported} call site(s) reported.`,
|
|
49
|
+
...migrations_treeSignals_data.SUMMARY
|
|
50
|
+
]);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
exports.default = treeSignals;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-tree-signals",
|
|
4
|
+
"title": "Koobiq components tree 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,66 @@
|
|
|
1
|
+
# tree-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 the tree persisting its expanded nodes, with
|
|
5
|
+
`useStateSaving` defaulting to `true`. It never writes to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`KbqTreeSelection` and `KbqTree` gained the same state saving the accordion has, applied through the
|
|
10
|
+
`KbqStateSaving` host directive, and it is on by default. A tree with no `stateSavingKey` derives its key
|
|
11
|
+
from where it sits in the document — the chain of tag names up to `<body>`, cut short by the first
|
|
12
|
+
author-written `id`, which becomes the anchor. So a tree inside `<section id="catalog">` persists under
|
|
13
|
+
`#catalog/kbq-tree-selection`, and everything above that `id` can be restructured without moving the key.
|
|
14
|
+
|
|
15
|
+
Only expansion is persisted. Selection belongs to the form control the tree is bound to, and restoring it
|
|
16
|
+
from storage would overwrite the value the application supplied.
|
|
17
|
+
|
|
18
|
+
## What it reports
|
|
19
|
+
|
|
20
|
+
- **The default flip.** A file that renders `kbq-tree-selection` or `kbq-tree` and never writes
|
|
21
|
+
`useStateSaving`.
|
|
22
|
+
- **How a node is identified.** Expansion is persisted by the value `getValue` returns — the third
|
|
23
|
+
argument of the `FlatTreeControl` constructor. It must be a string, stable across reloads, and unique
|
|
24
|
+
within the tree; a node object is re-created whenever the data is replaced, so it cannot serve as the
|
|
25
|
+
key. Where two nodes share a value, the first of them is expanded.
|
|
26
|
+
- **Programmatic expansion.** `expandAll()`, `collapseAll()`, `expandDescendants()`,
|
|
27
|
+
`collapseDescendants()` and direct writes to `expansionModel` are not persisted on their own — only
|
|
28
|
+
what a user expands or collapses is. Call `saveState()` afterwards to record them.
|
|
29
|
+
- **`NestedTreeControl`.** It has no `getValue`, so a tree built on one persists nothing and logs a
|
|
30
|
+
dev-mode warning.
|
|
31
|
+
|
|
32
|
+
Each check is evaluated against the whole file, matching the other warn-only migrations in this
|
|
33
|
+
collection. A file holding two trees where only one opts out is not reported — inspect it by hand.
|
|
34
|
+
|
|
35
|
+
## What it does _not_ do
|
|
36
|
+
|
|
37
|
+
It does not insert `[useStateSaving]="false"`. The markup whose behaviour changed is exactly the markup
|
|
38
|
+
that says nothing about the input, so opting every tree out would be a rewrite of every consumer template
|
|
39
|
+
that also withholds the feature this release is shipping. Opting out stays a decision the application
|
|
40
|
+
makes.
|
|
41
|
+
|
|
42
|
+
## Behaviour worth knowing without a report
|
|
43
|
+
|
|
44
|
+
- **Nodes that arrive late are waited for.** A value whose node is not loaded yet is applied as soon as
|
|
45
|
+
it appears, so a lazily loaded tree is restored as its branches load. Until then the value is kept, so
|
|
46
|
+
persisting a change made in the meantime does not drop the branches still loading.
|
|
47
|
+
- **Nothing is persisted while a filter is active.** `filterNodes()` rewrites the expansion set to every
|
|
48
|
+
expandable node that matched and puts the real one back afterwards, so what is expanded during a search
|
|
49
|
+
is a view of the results rather than a state.
|
|
50
|
+
- **A tree inside an overlay does not persist.** `kbq-tree-select` renders one into its panel, where the
|
|
51
|
+
tree is not in the document when it initializes and so has no stable key.
|
|
52
|
+
- **Trees sharing one `treeControl` share one expansion model** while persisting under a key each: the
|
|
53
|
+
last one to initialize decides what is restored.
|
|
54
|
+
|
|
55
|
+
## Storage format
|
|
56
|
+
|
|
57
|
+
Entries are written under a `kbq.state.` prefix and carry a `savedAt` timestamp, so an entry stranded by a
|
|
58
|
+
markup change is collected once it outlives `KBQ_STATE_SAVING_TTL` (90 days by default). Reading an entry
|
|
59
|
+
refreshes it, so state that is visited but never changed does not expire under an active user.
|
|
60
|
+
|
|
61
|
+
## Related tokens
|
|
62
|
+
|
|
63
|
+
- `KBQ_STATE_STORE` — where state is persisted. `KbqSessionStorageStateStore` is bundled for state that
|
|
64
|
+
should live no longer than the tab session.
|
|
65
|
+
- `KBQ_STATE_SAVING_KEY_RESOLVER` — how the key is derived when no `stateSavingKey` is given.
|
|
66
|
+
- `KBQ_STATE_SAVING_TTL` — how long an entry survives without being written or read.
|