@koobiq/components 20.4.2 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +791 -609
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2871 -2595
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +400 -149
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +463 -143
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +734 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1700 -617
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +415 -18
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.cjs +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/{data.js → data.cjs} +3 -0
- package/schematics/migrations/alert-signals/index.cjs +221 -0
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.cjs +136 -0
- package/schematics/migrations/app-switcher-signals/index.cjs +366 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
- package/schematics/migrations/autocomplete-signals/index.cjs +707 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.cjs +109 -0
- package/schematics/migrations/badge-signals/index.cjs +694 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.cjs +136 -0
- package/schematics/migrations/button-state-and-styles/index.cjs +221 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.cjs +106 -0
- package/schematics/migrations/button-supported-colors/index.cjs +261 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.cjs +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.cjs +88 -0
- package/schematics/migrations/button-truncation/index.cjs +270 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.cjs +114 -0
- package/schematics/migrations/checkbox-signals/index.cjs +635 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.cjs +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.cjs +121 -0
- package/schematics/migrations/code-block-signals/index.cjs +701 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.cjs +131 -0
- package/schematics/migrations/color-signals/index.cjs +20 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.cjs +49 -0
- package/schematics/migrations/datepicker-signals/index.cjs +18 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
- package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.cjs +152 -0
- package/schematics/migrations/dropdown-signals/index.cjs +20 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
- package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
- package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.cjs +58 -0
- package/schematics/migrations/flag-inner-html/index.cjs +62 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.cjs +288 -0
- package/schematics/migrations/form-field-signals/index.cjs +383 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.cjs +135 -0
- package/schematics/migrations/input-number-surface/index.cjs +293 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.cjs +30 -0
- package/schematics/migrations/input-signals/index.cjs +18 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.cjs +116 -0
- package/schematics/migrations/link-signals/index.cjs +416 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.cjs +35 -0
- package/schematics/migrations/list-signals/index.cjs +18 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
- package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
- package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.cjs +79 -0
- package/schematics/migrations/markdown-signals/index.cjs +640 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.cjs +132 -0
- package/schematics/migrations/modal-signals/index.cjs +20 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.cjs +66 -0
- package/schematics/migrations/notification-center-signals/index.cjs +62 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.cjs +86 -0
- package/schematics/migrations/option-signals/index.cjs +20 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
- package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
- package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.cjs +70 -0
- package/schematics/migrations/query-list-signals/index.cjs +18 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
- package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.cjs +88 -0
- package/schematics/migrations/state-saving-default/index.cjs +63 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.cjs +66 -0
- package/schematics/migrations/table-cell-content/index.cjs +67 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
- package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.cjs +191 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.cjs +103 -0
- package/schematics/migrations/tags-signals/index.cjs +674 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.cjs +121 -0
- package/schematics/migrations/textarea-signals/index.cjs +380 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.cjs +139 -0
- package/schematics/migrations/time-range-title-for/index.cjs +164 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.cjs +82 -0
- package/schematics/migrations/timepicker-signals/index.cjs +710 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.cjs +69 -0
- package/schematics/migrations/title-encapsulation/index.cjs +58 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.cjs +106 -0
- package/schematics/migrations/tree-select-signals/index.cjs +59 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.cjs +123 -0
- package/schematics/migrations/tree-signals/index.cjs +55 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
- package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
- package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
- package/schematics/migrations/v21-upgrade/index.cjs +95 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +401 -6
- package/schematics/ng-add/index.cjs +266 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/deprecated-path-migration.cjs +62 -0
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +670 -0
- package/types/koobiq-components-tree.d.ts +1339 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/schematics/migrations/alert-signals/index.js +0 -353
- package/schematics/migrations/filter-bar-signals/index.js +0 -319
- package/schematics/migrations/v20-upgrade/index.js +0 -225
- package/schematics/ng-add/index.js +0 -39
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -178
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
- /package/schematics/utils/{messages.js → messages.cjs} +0 -0
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# list-tree-multiple-input
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
|
|
4
|
+
|
|
5
|
+
## Background
|
|
6
|
+
|
|
7
|
+
`multiple` on `kbq-list-selection` and `kbq-tree-selection` used to be a static host attribute read once in
|
|
8
|
+
the constructor:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
const multiple = inject(new HostAttributeToken('multiple'), { optional: true });
|
|
12
|
+
|
|
13
|
+
if (multiple === MultipleMode.CHECKBOX || multiple === MultipleMode.KEYBOARD) {
|
|
14
|
+
this.multipleMode = multiple;
|
|
15
|
+
} else if (multiple !== null) {
|
|
16
|
+
this.multipleMode = MultipleMode.CHECKBOX; // every other value
|
|
17
|
+
}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
So the attribute could not be bound, the mode was frozen for the lifetime of the component, and **every**
|
|
21
|
+
value other than `checkbox` and `keyboard` fell through to multiple selection with checkboxes —
|
|
22
|
+
`multiple="false"` meant _multiple_.
|
|
23
|
+
|
|
24
|
+
It is now a real input with a closed set of values, resolved by `resolveMultipleMode` in
|
|
25
|
+
`@koobiq/components/core`, and the mode can be changed at any time.
|
|
26
|
+
|
|
27
|
+
## Behaviour change
|
|
28
|
+
|
|
29
|
+
| value | before | after |
|
|
30
|
+
| ------------------------------------------------------ | ------------ | ---------------- |
|
|
31
|
+
| `multiple="checkbox"`, `multiple="keyboard"` | that mode | unchanged |
|
|
32
|
+
| `multiple`, `multiple=""`, `multiple="true"` | checkbox | unchanged |
|
|
33
|
+
| no attribute | single | unchanged |
|
|
34
|
+
| `multiple="false"`, `multiple="single"`, anything else | **checkbox** | single selection |
|
|
35
|
+
|
|
36
|
+
Single selection is the default, so the way to ask for it is to leave the attribute off entirely.
|
|
37
|
+
`multiple="single"` is not an accepted spelling.
|
|
38
|
+
|
|
39
|
+
## What it does
|
|
40
|
+
|
|
41
|
+
| case | rewrite | preserves behaviour? |
|
|
42
|
+
| -------------------------------------------------------------- | --------------------------- | ------------------------- |
|
|
43
|
+
| `multiple="false"`, `multiple="single"` | attribute removed | **no** — reported as such |
|
|
44
|
+
| any other unrecognized value (`"multiple"`, `"yes"`, `"1"`, …) | → `multiple="checkbox"` | yes |
|
|
45
|
+
| `[multiple]="'yes'"` (quoted literal) | → `[multiple]="'checkbox'"` | yes |
|
|
46
|
+
|
|
47
|
+
Both external `.html` files and inline `@Component({ template })` literals are covered. The two spellings
|
|
48
|
+
that are deleted are the ones whose author meant single selection but got multiple; every rewrite is logged
|
|
49
|
+
with the value it replaced, and the deletions are called out as a behaviour change so they can be reviewed
|
|
50
|
+
in the diff.
|
|
51
|
+
|
|
52
|
+
## What it does _not_ do (warn-only)
|
|
53
|
+
|
|
54
|
+
| case | why |
|
|
55
|
+
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
56
|
+
| `[multiple]="expr"` | a runtime expression cannot be resolved at migration time |
|
|
57
|
+
| `[multiple]="true \| false \| null \| undefined"` | unambiguous under the new API and impossible before it, so it is left alone silently |
|
|
58
|
+
| `multipleMode = …` | now an accessor: it rebuilds the `SelectionModel`, and inside a `kbq-tree-select` it throws, because the select owns the model |
|
|
59
|
+
| `selectionModel.changed.subscribe(…)` | a mode change replaces the model instance, stranding the subscription; use the `(selectionChange)` output |
|
|
60
|
+
|
|
61
|
+
[Params](schema.ts)
|
|
62
|
+
|
|
63
|
+
Usage for Angular Cli:
|
|
64
|
+
|
|
65
|
+
```shell
|
|
66
|
+
ng g @koobiq/components:list-tree-multiple-input --project "<your project>"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Usage for Nx:
|
|
70
|
+
|
|
71
|
+
```shell
|
|
72
|
+
nx g @koobiq/components:list-tree-multiple-input --project "<your project>"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Run locally
|
|
76
|
+
|
|
77
|
+
Build package
|
|
78
|
+
|
|
79
|
+
```shell
|
|
80
|
+
yarn run build:schematics
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Run command (for example, for `koobiq-docs` project)
|
|
84
|
+
|
|
85
|
+
```shell
|
|
86
|
+
ng g ./dist/components/schematics/collection.json:list-tree-multiple-input --project koobiq-docs
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Result
|
|
90
|
+
|
|
91
|
+
#### Before
|
|
92
|
+
|
|
93
|
+
```html
|
|
94
|
+
<kbq-list-selection multiple="false">…</kbq-list-selection>
|
|
95
|
+
<kbq-list-selection multiple="single">…</kbq-list-selection>
|
|
96
|
+
<kbq-tree-selection multiple="multiple">…</kbq-tree-selection>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
#### After
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<kbq-list-selection>…</kbq-list-selection>
|
|
103
|
+
<kbq-list-selection>…</kbq-list-selection>
|
|
104
|
+
<kbq-tree-selection multiple="checkbox">…</kbq-tree-selection>
|
|
105
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/** The input this migration rewrites. Matched against the parsed template AST, not against raw text. */
|
|
4
|
+
const MULTIPLE_ATTRIBUTE = 'multiple';
|
|
5
|
+
/** The two components whose `multiple` changed meaning. `kbq-tree-select` has its own, unrelated input. */
|
|
6
|
+
const TARGET_ELEMENTS = ['kbq-list-selection', 'kbq-tree-selection'];
|
|
7
|
+
/**
|
|
8
|
+
* The mode the migration writes when it has to preserve multiple selection.
|
|
9
|
+
*
|
|
10
|
+
* Spelled out rather than imported from `@koobiq/components`: a schematic describes a past state of the
|
|
11
|
+
* API, so it must keep working after the enum it migrates away from has moved on.
|
|
12
|
+
*/
|
|
13
|
+
const CHECKBOX_MODE = 'checkbox';
|
|
14
|
+
/** Values whose meaning did not change, so a template using one is already correct. */
|
|
15
|
+
const UNCHANGED_VALUES = ['', 'true', CHECKBOX_MODE, 'keyboard'];
|
|
16
|
+
/**
|
|
17
|
+
* Values that asked for single selection in the author's head but enabled multiple selection in the
|
|
18
|
+
* browser. The attribute is deleted rather than rewritten: single selection is what an absent `multiple`
|
|
19
|
+
* already means, and `multiple="single"` is no longer an accepted spelling.
|
|
20
|
+
*/
|
|
21
|
+
const SINGLE_INTENT_VALUES = ['false', 'single'];
|
|
22
|
+
/**
|
|
23
|
+
* Expression literals a binding may hold that are unambiguous under the new API. They cannot appear in
|
|
24
|
+
* code written before this release — `multiple` was not an input then — so they are left alone silently.
|
|
25
|
+
*/
|
|
26
|
+
const SAFE_BINDING_LITERALS = ['true', 'false', 'null', 'undefined'];
|
|
27
|
+
const removedAttributeMessage = (filePath, value) => [
|
|
28
|
+
` removed ${MULTIPLE_ATTRIBUTE}="${value}" — single selection is the default, so the attribute is gone.`,
|
|
29
|
+
' BEHAVIOUR CHANGE: this element used to allow multiple selection with checkboxes. If that is what you',
|
|
30
|
+
` wanted, put ${MULTIPLE_ATTRIBUTE}="${CHECKBOX_MODE}" back. File: ${filePath}`
|
|
31
|
+
];
|
|
32
|
+
const rewrittenAttributeMessage = (filePath, value) => [
|
|
33
|
+
` ${MULTIPLE_ATTRIBUTE}="${value}" → ${MULTIPLE_ATTRIBUTE}="${CHECKBOX_MODE}", which preserves the`,
|
|
34
|
+
` behaviour: every unrecognized value used to enable multiple selection. File: ${filePath}`
|
|
35
|
+
];
|
|
36
|
+
const dynamicBindingMessage = (filePath, value) => [
|
|
37
|
+
` [${MULTIPLE_ATTRIBUTE}]="${value}" is a runtime expression and cannot be resolved here. Make sure it`,
|
|
38
|
+
` evaluates to "${CHECKBOX_MODE}", "keyboard", a boolean or null. File: ${filePath}`
|
|
39
|
+
];
|
|
40
|
+
const UNPARSEABLE_TEMPLATE_MESSAGE = 'Template could not be parsed, so it was left untouched. Check its `multiple` attributes by hand.';
|
|
41
|
+
const tsWarnPatterns = [
|
|
42
|
+
{
|
|
43
|
+
pattern: '\\.multipleMode\\s*=',
|
|
44
|
+
message: 'KbqListSelection.multipleMode / KbqTreeSelection.multipleMode is now an accessor. Assigning to it ' +
|
|
45
|
+
'rebuilds the SelectionModel instead of only relabelling the mode, and on a kbq-tree-selection ' +
|
|
46
|
+
'rendered inside a kbq-tree-select it throws, because the select owns the model. Bind `multiple` ' +
|
|
47
|
+
'on the select instead.'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
pattern: 'selectionModel\\s*\\.\\s*changed',
|
|
51
|
+
message: 'Changing the mode replaces the SelectionModel instance, so a subscription taken on ' +
|
|
52
|
+
'selectionModel.changed is left behind on the discarded one. Subscribe to the ' +
|
|
53
|
+
'(selectionChange) output instead.'
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
const BEHAVIOUR_NOTE = [
|
|
57
|
+
'Note: `multiple` on kbq-list-selection and kbq-tree-selection is now a real input with a closed set of',
|
|
58
|
+
'values. `checkbox`, `keyboard`, a bare attribute and `true` enable multiple selection; an absent',
|
|
59
|
+
'attribute, `false` and `null` mean single selection. Every other value now falls back to single',
|
|
60
|
+
'selection and is reported in dev mode, where it used to enable multiple selection with checkboxes.'
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
exports.BEHAVIOUR_NOTE = BEHAVIOUR_NOTE;
|
|
64
|
+
exports.CHECKBOX_MODE = CHECKBOX_MODE;
|
|
65
|
+
exports.MULTIPLE_ATTRIBUTE = MULTIPLE_ATTRIBUTE;
|
|
66
|
+
exports.SAFE_BINDING_LITERALS = SAFE_BINDING_LITERALS;
|
|
67
|
+
exports.SINGLE_INTENT_VALUES = SINGLE_INTENT_VALUES;
|
|
68
|
+
exports.TARGET_ELEMENTS = TARGET_ELEMENTS;
|
|
69
|
+
exports.UNCHANGED_VALUES = UNCHANGED_VALUES;
|
|
70
|
+
exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
|
|
71
|
+
exports.dynamicBindingMessage = dynamicBindingMessage;
|
|
72
|
+
exports.removedAttributeMessage = removedAttributeMessage;
|
|
73
|
+
exports.rewrittenAttributeMessage = rewrittenAttributeMessage;
|
|
74
|
+
exports.tsWarnPatterns = tsWarnPatterns;
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var ts = require('typescript');
|
|
6
|
+
var utils_ast = require('../../utils/ast.cjs');
|
|
7
|
+
var utils_messages = require('../../utils/messages.cjs');
|
|
8
|
+
var utils_packageConfig = require('../../utils/package-config.cjs');
|
|
9
|
+
var utils_projectFiles = require('../../utils/project-files.cjs');
|
|
10
|
+
var utils_typescript = require('../../utils/typescript.cjs');
|
|
11
|
+
var migrations_listTreeMultipleInput_data = require('./data.cjs');
|
|
12
|
+
require('@angular-devkit/schematics');
|
|
13
|
+
require('@schematics/angular/utility');
|
|
14
|
+
|
|
15
|
+
const TS_EXT = '.ts';
|
|
16
|
+
const HTML_EXT = '.html';
|
|
17
|
+
const LABEL = '[list-tree-multiple-input]';
|
|
18
|
+
/** `multiple`, `[multiple]` and `bind-multiple` all name the same input. */
|
|
19
|
+
function attributeName(name) {
|
|
20
|
+
return utils_ast.getSimpleAttributeName(name).replace(/^bind-/, '');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The value an attribute carries, when it is knowable without running the app.
|
|
24
|
+
*
|
|
25
|
+
* A plain attribute holds its value verbatim. A binding holds an expression, which is only resolvable
|
|
26
|
+
* here when it is a quoted string literal; anything else is a genuine runtime value.
|
|
27
|
+
*/
|
|
28
|
+
function resolveValue(attr) {
|
|
29
|
+
const raw = typeof attr.value === 'string' ? attr.value : '';
|
|
30
|
+
const binding = attributeName(attr.name) !== attr.name;
|
|
31
|
+
if (!binding)
|
|
32
|
+
return { value: raw, binding };
|
|
33
|
+
const quoted = /^\s*'([^']*)'\s*$/.exec(raw) ?? /^\s*"([^"]*)"\s*$/.exec(raw);
|
|
34
|
+
return quoted ? { value: quoted[1], binding } : null;
|
|
35
|
+
}
|
|
36
|
+
/** Renders the attribute back, keeping the binding syntax the author used. */
|
|
37
|
+
function render(binding, value) {
|
|
38
|
+
return binding ? `[${migrations_listTreeMultipleInput_data.MULTIPLE_ATTRIBUTE}]="'${value}'"` : `${migrations_listTreeMultipleInput_data.MULTIPLE_ATTRIBUTE}="${value}"`;
|
|
39
|
+
}
|
|
40
|
+
function decide(attr) {
|
|
41
|
+
const span = { start: attr.sourceSpan.start.offset, end: attr.sourceSpan.end.offset };
|
|
42
|
+
const resolved = resolveValue(attr);
|
|
43
|
+
if (!resolved) {
|
|
44
|
+
// An unresolvable expression. The literals below are unambiguous under the new API and cannot
|
|
45
|
+
// predate it, so reporting them would be noise.
|
|
46
|
+
if (migrations_listTreeMultipleInput_data.SAFE_BINDING_LITERALS.includes(String(attr.value).trim()))
|
|
47
|
+
return null;
|
|
48
|
+
return { edit: null, report: (filePath) => migrations_listTreeMultipleInput_data.dynamicBindingMessage(filePath, String(attr.value).trim()) };
|
|
49
|
+
}
|
|
50
|
+
const { value, binding } = resolved;
|
|
51
|
+
if (migrations_listTreeMultipleInput_data.UNCHANGED_VALUES.includes(value))
|
|
52
|
+
return null;
|
|
53
|
+
if (migrations_listTreeMultipleInput_data.SINGLE_INTENT_VALUES.includes(value)) {
|
|
54
|
+
return { edit: { ...span, text: '' }, report: (filePath) => migrations_listTreeMultipleInput_data.removedAttributeMessage(filePath, value) };
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
edit: { ...span, text: render(binding, migrations_listTreeMultipleInput_data.CHECKBOX_MODE) },
|
|
58
|
+
report: (filePath) => migrations_listTreeMultipleInput_data.rewrittenAttributeMessage(filePath, value)
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** Collects a finding for every `multiple` attribute on a target element. */
|
|
62
|
+
class MultipleAttributeCollector {
|
|
63
|
+
constructor() {
|
|
64
|
+
this.findings = [];
|
|
65
|
+
}
|
|
66
|
+
visitElement(element) {
|
|
67
|
+
if (migrations_listTreeMultipleInput_data.TARGET_ELEMENTS.includes(element.name)) {
|
|
68
|
+
for (const attr of element.attrs ?? []) {
|
|
69
|
+
if (typeof attr.name !== 'string' || attributeName(attr.name) !== migrations_listTreeMultipleInput_data.MULTIPLE_ATTRIBUTE)
|
|
70
|
+
continue;
|
|
71
|
+
const finding = decide(attr);
|
|
72
|
+
if (finding)
|
|
73
|
+
this.findings.push(finding);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.visitChildren(element);
|
|
77
|
+
}
|
|
78
|
+
visitBlock(block) {
|
|
79
|
+
this.visitChildren(block);
|
|
80
|
+
}
|
|
81
|
+
visitChildren(node) {
|
|
82
|
+
for (const child of node.children ?? []) {
|
|
83
|
+
child.visit(this);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
visitAttribute() { }
|
|
87
|
+
visitText() { }
|
|
88
|
+
visitComment() { }
|
|
89
|
+
visitExpansion() { }
|
|
90
|
+
visitExpansionCase() { }
|
|
91
|
+
visitBlockParameter() { }
|
|
92
|
+
visitLetDeclaration() { }
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Applies the edits. A deletion also takes the whitespace that separated the attribute from the previous
|
|
96
|
+
* one: an inline attribute takes its leading spaces, one written on its own line takes the line break and
|
|
97
|
+
* the indent as well, so the tag is not left with a blank line.
|
|
98
|
+
*/
|
|
99
|
+
function applyEdits(content, edits) {
|
|
100
|
+
let result = content;
|
|
101
|
+
// Right-to-left, so earlier offsets stay valid.
|
|
102
|
+
for (const { start, end, text } of [...edits].sort((a, b) => b.start - a.start)) {
|
|
103
|
+
let from = start;
|
|
104
|
+
if (text === '') {
|
|
105
|
+
while (from > 0 && (result[from - 1] === ' ' || result[from - 1] === '\t'))
|
|
106
|
+
from--;
|
|
107
|
+
if (result[from - 1] === '\n') {
|
|
108
|
+
from--;
|
|
109
|
+
if (result[from - 1] === '\r')
|
|
110
|
+
from--;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
result = result.slice(0, from) + text + result.slice(end);
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Migrates every `multiple` attribute of a template. Returns `null` when the template could not be
|
|
119
|
+
* parsed — editing it blind is how a regex-based migration corrupts binding expressions, so the caller
|
|
120
|
+
* warns instead.
|
|
121
|
+
*/
|
|
122
|
+
async function migrateTemplate(template, onFinding) {
|
|
123
|
+
if (!template.includes(migrations_listTreeMultipleInput_data.MULTIPLE_ATTRIBUTE))
|
|
124
|
+
return template;
|
|
125
|
+
const parsed = await utils_typescript.parseTemplate(template);
|
|
126
|
+
if (!parsed.tree)
|
|
127
|
+
return null;
|
|
128
|
+
const collector = new MultipleAttributeCollector();
|
|
129
|
+
utils_ast.visitAll(collector, parsed.tree.rootNodes);
|
|
130
|
+
collector.findings.forEach(onFinding);
|
|
131
|
+
return applyEdits(template, collector.findings.map(({ edit }) => edit).filter((edit) => edit !== null));
|
|
132
|
+
}
|
|
133
|
+
/** Applies the template migration to every inline `@Component({ template })` literal of a `.ts` source. */
|
|
134
|
+
async function migrateInlineTemplates(content, sourceFile, onFinding, onParseError) {
|
|
135
|
+
let result = content;
|
|
136
|
+
// Splice right-to-left so earlier offsets stay valid.
|
|
137
|
+
for (const { start, end } of utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start)) {
|
|
138
|
+
const migrated = await migrateTemplate(result.slice(start, end), onFinding);
|
|
139
|
+
if (migrated === null) {
|
|
140
|
+
onParseError();
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
result = result.slice(0, start) + migrated + result.slice(end);
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
function logWarnings(context, filePath, content, patterns) {
|
|
148
|
+
for (const { pattern, message } of patterns) {
|
|
149
|
+
if (new RegExp(pattern).test(content)) {
|
|
150
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function listTreeMultipleInput(options) {
|
|
155
|
+
return async (tree, context) => {
|
|
156
|
+
const { project } = options;
|
|
157
|
+
// `ng update` invokes migrations with no options at all, and migrations.json declares no schema,
|
|
158
|
+
// so the schema default never reaches us — applying the fix is the intended behaviour there.
|
|
159
|
+
const fix = options.fix ?? true;
|
|
160
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
161
|
+
const root = projectDefinition?.root ?? '';
|
|
162
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
163
|
+
const filePaths = [];
|
|
164
|
+
utils_projectFiles.visitProjectFiles(rootDir, (filePath) => {
|
|
165
|
+
if (!filePath.endsWith(TS_EXT) && !filePath.endsWith(HTML_EXT))
|
|
166
|
+
return;
|
|
167
|
+
filePaths.push(filePath);
|
|
168
|
+
});
|
|
169
|
+
let touched = 0;
|
|
170
|
+
for (const filePath of filePaths) {
|
|
171
|
+
const originalContent = tree.read(filePath)?.toString();
|
|
172
|
+
if (!originalContent)
|
|
173
|
+
continue;
|
|
174
|
+
let content = originalContent;
|
|
175
|
+
let unparseable = false;
|
|
176
|
+
const reports = [];
|
|
177
|
+
const onFinding = (finding) => reports.push(finding.report(filePath));
|
|
178
|
+
// Parsing every `.ts` of the project is not free, and nothing can change in a file that
|
|
179
|
+
// mentions neither of the two elements.
|
|
180
|
+
const mentionsTarget = migrations_listTreeMultipleInput_data.TARGET_ELEMENTS.some((element) => content.includes(element));
|
|
181
|
+
if (filePath.endsWith(TS_EXT) && mentionsTarget) {
|
|
182
|
+
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
183
|
+
content = await migrateInlineTemplates(content, sourceFile, onFinding, () => (unparseable = true));
|
|
184
|
+
}
|
|
185
|
+
else if (filePath.endsWith(HTML_EXT) && mentionsTarget) {
|
|
186
|
+
const migrated = await migrateTemplate(content, onFinding);
|
|
187
|
+
if (migrated === null)
|
|
188
|
+
unparseable = true;
|
|
189
|
+
else
|
|
190
|
+
content = migrated;
|
|
191
|
+
}
|
|
192
|
+
for (const report of reports) {
|
|
193
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ...report]);
|
|
194
|
+
}
|
|
195
|
+
// Warn on what is left over, so an auto-fixed usage does not also produce a "manual migration
|
|
196
|
+
// required" note. In dry-run mode the fix is not written, so report against the original.
|
|
197
|
+
if (filePath.endsWith(TS_EXT)) {
|
|
198
|
+
logWarnings(context, filePath, fix ? content : originalContent, migrations_listTreeMultipleInput_data.tsWarnPatterns);
|
|
199
|
+
}
|
|
200
|
+
if (unparseable) {
|
|
201
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_listTreeMultipleInput_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
|
|
202
|
+
}
|
|
203
|
+
if (content === originalContent)
|
|
204
|
+
continue;
|
|
205
|
+
touched++;
|
|
206
|
+
if (fix) {
|
|
207
|
+
tree.overwrite(filePath, content);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
utils_messages.logMessage(context.logger, [
|
|
214
|
+
`${LABEL} processed tree under "${root || '<workspace root>'}", ` +
|
|
215
|
+
`${fix ? 'updated' : 'would update'} ${touched} file(s).`,
|
|
216
|
+
'',
|
|
217
|
+
...migrations_listTreeMultipleInput_data.BEHAVIOUR_NOTE
|
|
218
|
+
]);
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
exports.default = listTreeMultipleInput;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-list-tree-multiple-input",
|
|
4
|
+
"title": "Koobiq components list and tree multiple input",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to migrate. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"fix": {
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": true,
|
|
17
|
+
"description": "When true, applies all auto-fix replacements. When false, prints what would change without writing."
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# loader-overlay-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for
|
|
4
|
+
`21.0.0-0`). Migrates `KbqLoaderOverlay` consumers to its finished signal-based API and reports the
|
|
5
|
+
members the review closed.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`text` and `caption` were the two inputs the automated signal migration skipped — it saw them read
|
|
10
|
+
inside `@if` blocks and would not risk the narrowing. They are `input()` now, and honest about being
|
|
11
|
+
optional:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
@Input() text: string; // no initializer — an unbound overlay reported undefined
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
They report `string | undefined`, which is what they always held.
|
|
18
|
+
|
|
19
|
+
Everything the template uses to decide between a projected slot and an input — `isExternalIndicator`,
|
|
20
|
+
`isExternalText`, `isExternalCaption`, `isEmpty`, `spinnerSize` and the three content queries — left
|
|
21
|
+
the public surface in the same review.
|
|
22
|
+
|
|
23
|
+
## What it rewrites
|
|
24
|
+
|
|
25
|
+
| Before | After |
|
|
26
|
+
| ----------------- | ------------------- |
|
|
27
|
+
| `overlay.text` | `overlay.text()` |
|
|
28
|
+
| `overlay.caption` | `overlay.caption()` |
|
|
29
|
+
|
|
30
|
+
Both on receivers explicitly typed `KbqLoaderOverlay` and through template reference variables on
|
|
31
|
+
`<kbq-loader-overlay>`, in external and inline templates. Already-migrated reads are left alone, so
|
|
32
|
+
the schematic is idempotent.
|
|
33
|
+
|
|
34
|
+
`size`, `transparent` and `card` were already signals in 20.2.0 and are not touched.
|
|
35
|
+
|
|
36
|
+
## What it does _not_ do
|
|
37
|
+
|
|
38
|
+
| Pattern | Manual migration |
|
|
39
|
+
| ----------------------------------------------------------- | --------------------------------------------------------- |
|
|
40
|
+
| `overlay.text = …` | Bind `[text]` in the template — the input is read-only |
|
|
41
|
+
| `.isEmpty` / `.isExternal*` / `.spinnerSize` | Now `protected`; what the overlay renders is the contract |
|
|
42
|
+
| `.externalIndicator` / `.externalText` / `.externalCaption` | Now `private` signal queries |
|
|
43
|
+
| `viewChild(KbqLoaderOverlay)` | The query is a signal too, so a read needs two calls |
|
|
44
|
+
|
|
45
|
+
## Notes with no call site to point at
|
|
46
|
+
|
|
47
|
+
- `text` and `caption` report `string | undefined`. The call sites that were already wrong now fail
|
|
48
|
+
to compile.
|
|
49
|
+
- **`transparent` is a `booleanAttribute` input, and it flips in both directions.**
|
|
50
|
+
`<kbq-loader-overlay transparent>` used to pass the empty string, which is falsy, so the valueless
|
|
51
|
+
attribute rendered the _filled_ background — the opposite of how it reads; `[transparent]="0"` and
|
|
52
|
+
`NaN` read as false the same way, and all of them mean `true` now. Conversely
|
|
53
|
+
`[transparent]="'false'"` was a non-empty string, so it used to mean `true`. This is the one change
|
|
54
|
+
with no compile error behind it, so every file carrying the valueless attribute is reported.
|
|
55
|
+
|
|
56
|
+
## Running it manually
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
ng generate @koobiq/components:loader-overlay-signals --project my-app
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Pass `--fix=false` to see what it would change without writing.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `loader-overlay-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* `text` and `caption` were the two inputs the automated signal migration skipped, because they are read
|
|
7
|
+
* inside `@if` blocks and it would not risk the narrowing. They are `input()` now, and honest about being
|
|
8
|
+
* optional: both were declared `string` over a field with no initializer, so an overlay that bound neither
|
|
9
|
+
* reported `undefined` from a non-nullable type.
|
|
10
|
+
*
|
|
11
|
+
* - `overlay.text` / `overlay.caption` → calls (value unchanged — auto-fixed)
|
|
12
|
+
* - the template helpers and the content queries → `protected` / `private` (warn)
|
|
13
|
+
*
|
|
14
|
+
* `size`, `transparent` and `card` were already signals in 20.2.0 and need no rewrite; `transparent` only
|
|
15
|
+
* gained a `booleanAttribute` transform, which is reported rather than rewritten.
|
|
16
|
+
*/
|
|
17
|
+
/** Members of `KbqLoaderOverlay` whose value is unchanged; a read must become a call. Auto-fixed. */
|
|
18
|
+
const SIGNAL_MEMBERS = ['text', 'caption'];
|
|
19
|
+
/** Signal-API methods reachable on a signal; a read followed by one is already migrated. */
|
|
20
|
+
const SIGNAL_API_METHODS = new Set(['set', 'update', 'asReadonly', 'subscribe']);
|
|
21
|
+
/** Reported for a programmatic write, which has no mechanical translation: every member is an `input()`. */
|
|
22
|
+
const writeMessage = (members) => `These are \`input()\`s now, so a programmatic write no longer compiles: ${[...members].join(', ')}. ` +
|
|
23
|
+
'Bind them in the template instead. The write is left untouched so the error points at your call site.';
|
|
24
|
+
/** TypeScript type annotation that marks a receiver as a loader overlay. */
|
|
25
|
+
const OVERLAY_TYPE = 'KbqLoaderOverlay';
|
|
26
|
+
/** Element selector whose template reference variables (`#ref`) point at a loader overlay. */
|
|
27
|
+
const OVERLAY_ELEMENT = 'kbq-loader-overlay';
|
|
28
|
+
/** Import specifier that marks a file as a loader overlay consumer. */
|
|
29
|
+
const OVERLAY_PACKAGE = '@koobiq/components/loader-overlay';
|
|
30
|
+
/** Template helpers that became `protected`: a subclass still sees them, nothing outside does. */
|
|
31
|
+
const PROTECTED_MEMBERS = [
|
|
32
|
+
'isExternalIndicator',
|
|
33
|
+
'isExternalText',
|
|
34
|
+
'isExternalCaption',
|
|
35
|
+
'isEmpty',
|
|
36
|
+
'spinnerSize'
|
|
37
|
+
];
|
|
38
|
+
/** Content queries that became `private`: not even a subclass can name them. */
|
|
39
|
+
const PRIVATE_MEMBERS = ['externalIndicator', 'externalText', 'externalCaption'];
|
|
40
|
+
/** Every member a consumer can no longer read, whichever visibility it landed on. */
|
|
41
|
+
const HIDDEN_MEMBERS = [...PROTECTED_MEMBERS, ...PRIVATE_MEMBERS];
|
|
42
|
+
const protectedMessage = (members) => `These KbqLoaderOverlay members are \`protected\` now: ${[...members].join(', ')}. They are the ` +
|
|
43
|
+
'template helpers behind the projection slots: what the overlay renders is the contract, not how it ' +
|
|
44
|
+
'decides. Read the DOM, or track the projected content yourself.';
|
|
45
|
+
const privateMessage = (members) => `These KbqLoaderOverlay content queries are \`private\` now, so a subclass cannot name them either: ` +
|
|
46
|
+
`${[...members].join(', ')}. Project the content and read the DOM, or track it yourself.`;
|
|
47
|
+
/**
|
|
48
|
+
* Reported for a read through a signal query, which is a signal holding the component: the read needs two
|
|
49
|
+
* calls rather than one. Emitted from the AST pass rather than a regex, so it follows the same receiver
|
|
50
|
+
* resolution as the rewrite - the decorator form is a plain annotated field that the rewrite handles, and
|
|
51
|
+
* telling the reader it needs two calls there would break working code.
|
|
52
|
+
*
|
|
53
|
+
* `viewChild()` without `.required` is typed `Signal<KbqLoaderOverlay | undefined>`, so the safe spelling
|
|
54
|
+
* differs between the two forms.
|
|
55
|
+
*/
|
|
56
|
+
const signalQueryMessage = (member, required) => `A signal query holds the component behind a call of its own, so reading \`${member}\` through it needs ` +
|
|
57
|
+
`two calls: \`this.overlay()${required ? '' : '?'}.${member}()\`.` +
|
|
58
|
+
(required ? '' : ' The query is optional, so keep the `?.`.') +
|
|
59
|
+
' Those reads are left untouched - migrate them by hand.';
|
|
60
|
+
/** Reported when a template renders the overlay but cannot be parsed, so nothing in it was inspected. */
|
|
61
|
+
const UNPARSEABLE_TEMPLATE_MESSAGE = 'This template renders <kbq-loader-overlay> but could not be parsed, so it was left untouched. Migrate ' +
|
|
62
|
+
'reads through its template reference variables by hand. If every template is reported this way, ' +
|
|
63
|
+
'`@angular/compiler` could not be loaded from this install.';
|
|
64
|
+
/**
|
|
65
|
+
* Reported when a file names `KbqLoaderOverlay` in a type position the receiver pass cannot scope to a
|
|
66
|
+
* single identifier - a union, an array, a `QueryList<…>`, a cast, a return type - or reads a member in a
|
|
67
|
+
* shape the access pass cannot reach.
|
|
68
|
+
*/
|
|
69
|
+
const UNRESOLVED_RECEIVER_MESSAGE = 'KbqLoaderOverlay is used here in a way this migration cannot resolve to a single receiver, so any ' +
|
|
70
|
+
'signal read through it was left untouched. Check these lines by hand:';
|
|
71
|
+
/** Reported per file for the one change that produces no compile error anywhere. */
|
|
72
|
+
const TRANSPARENT_ATTRIBUTE_MESSAGE = '`<kbq-loader-overlay transparent>` renders the transparent background now. The valueless attribute used ' +
|
|
73
|
+
'to pass the empty string, which is falsy, so it rendered the *filled* background - the opposite of what ' +
|
|
74
|
+
'it reads as. Nothing here fails to compile: check what this markup was relying on.';
|
|
75
|
+
/** Printed once per project, after the per-file reports. */
|
|
76
|
+
const SUMMARY = [
|
|
77
|
+
' `text` and `caption` report `string | undefined` instead of `string`. Both were declared non-nullable ' +
|
|
78
|
+
'over a field with no initializer, so an overlay that bound neither always handed back `undefined` — ' +
|
|
79
|
+
'the call sites that were already wrong now fail to compile.',
|
|
80
|
+
' `transparent` is a `booleanAttribute` input, and it flips in both directions. A valueless attribute, ' +
|
|
81
|
+
'`0` and `NaN` used to read as false, so <kbq-loader-overlay transparent> rendered the *filled* ' +
|
|
82
|
+
'background - the opposite of what it reads as - and they all mean true now. Conversely ' +
|
|
83
|
+
'[transparent]="\'false\'" was a non-empty string, so it used to mean true, and now means false.'
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
exports.HIDDEN_MEMBERS = HIDDEN_MEMBERS;
|
|
87
|
+
exports.OVERLAY_ELEMENT = OVERLAY_ELEMENT;
|
|
88
|
+
exports.OVERLAY_PACKAGE = OVERLAY_PACKAGE;
|
|
89
|
+
exports.OVERLAY_TYPE = OVERLAY_TYPE;
|
|
90
|
+
exports.PRIVATE_MEMBERS = PRIVATE_MEMBERS;
|
|
91
|
+
exports.PROTECTED_MEMBERS = PROTECTED_MEMBERS;
|
|
92
|
+
exports.SIGNAL_API_METHODS = SIGNAL_API_METHODS;
|
|
93
|
+
exports.SIGNAL_MEMBERS = SIGNAL_MEMBERS;
|
|
94
|
+
exports.SUMMARY = SUMMARY;
|
|
95
|
+
exports.TRANSPARENT_ATTRIBUTE_MESSAGE = TRANSPARENT_ATTRIBUTE_MESSAGE;
|
|
96
|
+
exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
|
|
97
|
+
exports.UNRESOLVED_RECEIVER_MESSAGE = UNRESOLVED_RECEIVER_MESSAGE;
|
|
98
|
+
exports.privateMessage = privateMessage;
|
|
99
|
+
exports.protectedMessage = protectedMessage;
|
|
100
|
+
exports.signalQueryMessage = signalQueryMessage;
|
|
101
|
+
exports.writeMessage = writeMessage;
|