@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,568 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var ts = require('typescript');
|
|
6
|
+
var utils_ast = require('../../utils/ast.js');
|
|
7
|
+
var utils_messages = require('../../utils/messages.js');
|
|
8
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
9
|
+
var utils_typescript = require('../../utils/typescript.js');
|
|
10
|
+
var migrations_navbarSignalsAndAria_data = require('./data.js');
|
|
11
|
+
require('@angular-devkit/schematics');
|
|
12
|
+
require('@schematics/angular/utility');
|
|
13
|
+
|
|
14
|
+
const TS_EXT = '.ts';
|
|
15
|
+
const HTML_EXT = '.html';
|
|
16
|
+
const STYLE_EXTS = ['.scss', '.css'];
|
|
17
|
+
const LABEL = '[navbar-signals-and-aria]';
|
|
18
|
+
function escapeRegExp(value) {
|
|
19
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
20
|
+
}
|
|
21
|
+
/** Applies text-span edits to `content`, right-to-left, so earlier edits don't shift later offsets. */
|
|
22
|
+
function applyEdits(content, edits) {
|
|
23
|
+
const sorted = [...edits].sort((a, b) => b.start - a.start || b.end - a.end);
|
|
24
|
+
let result = content;
|
|
25
|
+
for (const { start, end, text } of sorted) {
|
|
26
|
+
result = result.slice(0, start) + text + result.slice(end);
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
const isFunctionLike = (node) => ts.isFunctionDeclaration(node) ||
|
|
31
|
+
ts.isMethodDeclaration(node) ||
|
|
32
|
+
ts.isConstructorDeclaration(node) ||
|
|
33
|
+
ts.isArrowFunction(node) ||
|
|
34
|
+
ts.isFunctionExpression(node) ||
|
|
35
|
+
ts.isGetAccessorDeclaration(node) ||
|
|
36
|
+
ts.isSetAccessorDeclaration(node);
|
|
37
|
+
/** Walks up from `node` to the nearest ancestor matching `predicate`. */
|
|
38
|
+
function findAncestor(node, predicate) {
|
|
39
|
+
let current = node.parent;
|
|
40
|
+
while (current) {
|
|
41
|
+
if (predicate(current))
|
|
42
|
+
return current;
|
|
43
|
+
current = current.parent;
|
|
44
|
+
}
|
|
45
|
+
return undefined;
|
|
46
|
+
}
|
|
47
|
+
const RECEIVER_TYPE_NAMES = new Set([...migrations_navbarSignalsAndAria_data.RECEIVER_TYPES.map(({ type }) => type), migrations_navbarSignalsAndAria_data.RECTANGLE_TYPE]);
|
|
48
|
+
const receiverTypeOf = (typeName) => migrations_navbarSignalsAndAria_data.RECEIVER_TYPES.find(({ type }) => type === typeName);
|
|
49
|
+
/** The navbar class a type annotation refers to, if any. */
|
|
50
|
+
function navbarTypeName(type) {
|
|
51
|
+
if (!type || !ts.isTypeReferenceNode(type) || !ts.isIdentifier(type.typeName))
|
|
52
|
+
return undefined;
|
|
53
|
+
return RECEIVER_TYPE_NAMES.has(type.typeName.text) ? type.typeName.text : undefined;
|
|
54
|
+
}
|
|
55
|
+
const FIELD_MODIFIERS = new Set([
|
|
56
|
+
ts.SyntaxKind.PrivateKeyword,
|
|
57
|
+
ts.SyntaxKind.PublicKeyword,
|
|
58
|
+
ts.SyntaxKind.ProtectedKeyword,
|
|
59
|
+
ts.SyntaxKind.ReadonlyKeyword
|
|
60
|
+
]);
|
|
61
|
+
/** Nodes that confine a `let`/`const` declared inside them. */
|
|
62
|
+
const isBlockScopeContainer = (node) => ts.isBlock(node) ||
|
|
63
|
+
ts.isSourceFile(node) ||
|
|
64
|
+
ts.isModuleBlock(node) ||
|
|
65
|
+
ts.isCaseBlock(node) ||
|
|
66
|
+
ts.isForStatement(node) ||
|
|
67
|
+
ts.isForInStatement(node) ||
|
|
68
|
+
ts.isForOfStatement(node);
|
|
69
|
+
/**
|
|
70
|
+
* Scope a local is visible in: a `let`/`const` is confined to its nearest block, a `var` to the whole function.
|
|
71
|
+
*
|
|
72
|
+
* Giving a block-scoped local the whole function would let an access elsewhere in that function match it even
|
|
73
|
+
* where the name refers to a different, shadowing declaration — and be rewritten as if it were the navbar one.
|
|
74
|
+
*/
|
|
75
|
+
function variableScope(node, sourceFile) {
|
|
76
|
+
const blockScoped = !!(node.parent.flags & ts.NodeFlags.BlockScoped);
|
|
77
|
+
return findAncestor(node, blockScoped ? isBlockScopeContainer : isFunctionLike) ?? sourceFile;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Collects the receivers whose static type is one of the navbar classes, by explicit annotation only (no
|
|
81
|
+
* cross-package type resolution): method/function params, class fields (incl. `@ViewChild(KbqVerticalNavbar) x:
|
|
82
|
+
* KbqVerticalNavbar` and constructor parameter-properties) and typed locals.
|
|
83
|
+
*
|
|
84
|
+
* Params and locals of any other type are collected as well, with no `typeName`. They never trigger a rewrite
|
|
85
|
+
* themselves; they exist so that a nested declaration reusing a navbar receiver's name is seen as shadowing it.
|
|
86
|
+
*/
|
|
87
|
+
function collectReceivers(sourceFile) {
|
|
88
|
+
const receivers = [];
|
|
89
|
+
const add = (text, scope, typeName) => receivers.push({ text, start: scope.getStart(sourceFile), end: scope.getEnd(), typeName });
|
|
90
|
+
const visit = (node) => {
|
|
91
|
+
if (ts.isParameter(node) && ts.isIdentifier(node.name)) {
|
|
92
|
+
const typeName = navbarTypeName(node.type);
|
|
93
|
+
add(node.name.text, findAncestor(node, isFunctionLike) ?? sourceFile, typeName);
|
|
94
|
+
// A constructor parameter-property is also a class field, reachable as `this.<name>`.
|
|
95
|
+
if (typeName && node.modifiers?.some((modifier) => FIELD_MODIFIERS.has(modifier.kind))) {
|
|
96
|
+
const owner = findAncestor(node, ts.isClassDeclaration);
|
|
97
|
+
if (owner)
|
|
98
|
+
add(`this.${node.name.text}`, owner, typeName);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (ts.isPropertyDeclaration(node) && ts.isIdentifier(node.name)) {
|
|
102
|
+
const typeName = navbarTypeName(node.type);
|
|
103
|
+
const owner = typeName && findAncestor(node, ts.isClassDeclaration);
|
|
104
|
+
if (typeName && owner)
|
|
105
|
+
add(`this.${node.name.text}`, owner, typeName);
|
|
106
|
+
}
|
|
107
|
+
else if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name)) {
|
|
108
|
+
add(node.name.text, variableScope(node, sourceFile), navbarTypeName(node.type));
|
|
109
|
+
}
|
|
110
|
+
node.forEachChild(visit);
|
|
111
|
+
};
|
|
112
|
+
visit(sourceFile);
|
|
113
|
+
return receivers;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* The declaration a property access resolves to, if the access sits inside that declaration's scope.
|
|
117
|
+
*
|
|
118
|
+
* The innermost enclosing scope wins: a nested param or local shadows an outer one of the same name, and only
|
|
119
|
+
* the declaration actually in effect at the access site decides whether this is a navbar receiver at all.
|
|
120
|
+
*/
|
|
121
|
+
function receiverOf(node, sourceFile, receivers) {
|
|
122
|
+
const receiverText = node.expression.getText(sourceFile);
|
|
123
|
+
const start = node.getStart(sourceFile);
|
|
124
|
+
const end = node.getEnd();
|
|
125
|
+
let innermost;
|
|
126
|
+
for (const receiver of receivers) {
|
|
127
|
+
if (receiver.text !== receiverText || start < receiver.start || end > receiver.end)
|
|
128
|
+
continue;
|
|
129
|
+
if (!innermost || receiver.start > innermost.start)
|
|
130
|
+
innermost = receiver;
|
|
131
|
+
}
|
|
132
|
+
return innermost;
|
|
133
|
+
}
|
|
134
|
+
/** The navbar receiver a property access resolves to, ignoring declarations of any other type. */
|
|
135
|
+
const navbarReceiverOf = (node, sourceFile, receivers) => {
|
|
136
|
+
const receiver = receiverOf(node, sourceFile, receivers);
|
|
137
|
+
return receiver?.typeName ? receiver : undefined;
|
|
138
|
+
};
|
|
139
|
+
/** Whether any collected declaration is actually a navbar receiver. */
|
|
140
|
+
const hasNavbarReceiver = (receivers) => receivers.some(({ typeName }) => !!typeName);
|
|
141
|
+
/** The signal/model method a member access is immediately followed by, if any (`x.expanded.set`). */
|
|
142
|
+
function followedByMethod(node) {
|
|
143
|
+
const parent = node.parent;
|
|
144
|
+
return ts.isPropertyAccessExpression(parent) && parent.expression === node ? parent.name.text : undefined;
|
|
145
|
+
}
|
|
146
|
+
/** Whether a property access is the left-hand side of a plain assignment. */
|
|
147
|
+
const assignmentOf = (node) => {
|
|
148
|
+
const parent = node.parent;
|
|
149
|
+
return ts.isBinaryExpression(parent) &&
|
|
150
|
+
parent.left === node &&
|
|
151
|
+
parent.operatorToken.kind === ts.SyntaxKind.EqualsToken
|
|
152
|
+
? parent
|
|
153
|
+
: undefined;
|
|
154
|
+
};
|
|
155
|
+
/** Classifies a matched property access of a value-safe signal member and appends the resulting edit(s). */
|
|
156
|
+
function classifySignalAccess(node, sourceFile, receiverType, edits) {
|
|
157
|
+
// Already migrated: `x.expanded()` (call) or `x.expanded.set(…)` — leave alone.
|
|
158
|
+
if (ts.isCallExpression(node.parent) && node.parent.expression === node)
|
|
159
|
+
return;
|
|
160
|
+
const method = followedByMethod(node);
|
|
161
|
+
if (method && migrations_navbarSignalsAndAria_data.SIGNAL_API_METHODS.has(method))
|
|
162
|
+
return;
|
|
163
|
+
const assignment = assignmentOf(node);
|
|
164
|
+
if (assignment) {
|
|
165
|
+
// Write target: `x.expanded = RHS` → `x.expanded.set(RHS)`. Only a `model()` can take a write; a plain
|
|
166
|
+
// `input()` has to be driven by its binding, which the compiler will point out.
|
|
167
|
+
if (receiverType.writableMembers.includes(node.name.text)) {
|
|
168
|
+
const rhs = assignment.right;
|
|
169
|
+
edits.push({ start: node.getEnd(), end: rhs.getStart(sourceFile), text: '.set(' });
|
|
170
|
+
edits.push({ start: rhs.getEnd(), end: rhs.getEnd(), text: ')' });
|
|
171
|
+
}
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
// Read (incl. optional chain `x?.expanded`): append `()`.
|
|
175
|
+
edits.push({ start: node.getEnd(), end: node.getEnd(), text: '()' });
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Rewrites the two orientation booleans of `KbqNavbarRectangleElement`: `x.horizontal = true` becomes
|
|
179
|
+
* `x.orientation = 'horizontal'` and a read becomes `x.isHorizontal()`.
|
|
180
|
+
*
|
|
181
|
+
* An assignment of anything other than the literal `true` is left alone — `x.horizontal = flag` has no
|
|
182
|
+
* single-expression equivalent, and the compiler will point at it.
|
|
183
|
+
*/
|
|
184
|
+
function classifyOrientationAccess(node, sourceFile, edits) {
|
|
185
|
+
const member = node.name.text;
|
|
186
|
+
const assignment = assignmentOf(node);
|
|
187
|
+
if (assignment) {
|
|
188
|
+
const orientation = migrations_navbarSignalsAndAria_data.ORIENTATION_WRITES.get(member);
|
|
189
|
+
if (!orientation || assignment.right.kind !== ts.SyntaxKind.TrueKeyword)
|
|
190
|
+
return;
|
|
191
|
+
edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), text: 'orientation' });
|
|
192
|
+
edits.push({
|
|
193
|
+
start: assignment.right.getStart(sourceFile),
|
|
194
|
+
end: assignment.right.getEnd(),
|
|
195
|
+
text: `'${orientation}'`
|
|
196
|
+
});
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (ts.isCallExpression(node.parent) && node.parent.expression === node)
|
|
200
|
+
return;
|
|
201
|
+
const read = migrations_navbarSignalsAndAria_data.ORIENTATION_READS.get(member);
|
|
202
|
+
if (!read)
|
|
203
|
+
return;
|
|
204
|
+
edits.push({ start: node.name.getStart(sourceFile), end: node.name.getEnd(), text: `${read}()` });
|
|
205
|
+
}
|
|
206
|
+
/** Collects edits for every access of a migratable member on a known navbar receiver. */
|
|
207
|
+
function collectAccessEdits(sourceFile, receivers) {
|
|
208
|
+
const edits = [];
|
|
209
|
+
const visit = (node) => {
|
|
210
|
+
if (ts.isPropertyAccessExpression(node) && ts.isIdentifier(node.name)) {
|
|
211
|
+
const receiver = navbarReceiverOf(node, sourceFile, receivers);
|
|
212
|
+
if (receiver?.typeName === migrations_navbarSignalsAndAria_data.RECTANGLE_TYPE) {
|
|
213
|
+
classifyOrientationAccess(node, sourceFile, edits);
|
|
214
|
+
}
|
|
215
|
+
else if (receiver?.typeName) {
|
|
216
|
+
const receiverType = receiverTypeOf(receiver.typeName);
|
|
217
|
+
if (receiverType?.signalMembers.includes(node.name.text)) {
|
|
218
|
+
classifySignalAccess(node, sourceFile, receiverType, edits);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
node.forEachChild(visit);
|
|
223
|
+
};
|
|
224
|
+
visit(sourceFile);
|
|
225
|
+
return edits;
|
|
226
|
+
}
|
|
227
|
+
/** Pass A — rewrite value-safe programmatic accesses of navbar signal members in TypeScript code. */
|
|
228
|
+
function migrateTsExpressions(content, fileName) {
|
|
229
|
+
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
230
|
+
const receivers = collectReceivers(sourceFile);
|
|
231
|
+
if (!hasNavbarReceiver(receivers))
|
|
232
|
+
return content;
|
|
233
|
+
const edits = collectAccessEdits(sourceFile, receivers);
|
|
234
|
+
return edits.length > 0 ? applyEdits(content, edits) : content;
|
|
235
|
+
}
|
|
236
|
+
/** Members needing manual migration, found on a navbar receiver in TypeScript code. */
|
|
237
|
+
function collectManualMembers(content, fileName) {
|
|
238
|
+
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
239
|
+
const receivers = collectReceivers(sourceFile);
|
|
240
|
+
const found = new Set();
|
|
241
|
+
if (!hasNavbarReceiver(receivers))
|
|
242
|
+
return found;
|
|
243
|
+
const visit = (node) => {
|
|
244
|
+
if (ts.isPropertyAccessExpression(node) &&
|
|
245
|
+
ts.isIdentifier(node.name) &&
|
|
246
|
+
migrations_navbarSignalsAndAria_data.MANUAL_MEMBERS.has(node.name.text) &&
|
|
247
|
+
navbarReceiverOf(node, sourceFile, receivers)) {
|
|
248
|
+
found.add(node.name.text);
|
|
249
|
+
}
|
|
250
|
+
node.forEachChild(visit);
|
|
251
|
+
};
|
|
252
|
+
visit(sourceFile);
|
|
253
|
+
return found;
|
|
254
|
+
}
|
|
255
|
+
/** All `exportAs` values a template reference variable can point a navbar at. */
|
|
256
|
+
const EXPORT_AS_TO_TYPE = new Map(migrations_navbarSignalsAndAria_data.RECEIVER_TYPES.filter(({ exportAs }) => !!exportAs).map(({ exportAs, type }) => [exportAs, type]));
|
|
257
|
+
/** Collects template reference variables exported as one of the navbar directives. */
|
|
258
|
+
class NavbarRefCollector {
|
|
259
|
+
constructor() {
|
|
260
|
+
/** Reference variable name → the navbar class it points at. */
|
|
261
|
+
this.refs = new Map();
|
|
262
|
+
}
|
|
263
|
+
visitElement(element) {
|
|
264
|
+
for (const attr of element.attrs ?? []) {
|
|
265
|
+
if (typeof attr.name !== 'string')
|
|
266
|
+
continue;
|
|
267
|
+
const type = EXPORT_AS_TO_TYPE.get(attr.value);
|
|
268
|
+
if (!type)
|
|
269
|
+
continue;
|
|
270
|
+
if (attr.name.startsWith('#'))
|
|
271
|
+
this.refs.set(attr.name.slice(1), type);
|
|
272
|
+
else if (attr.name.startsWith('ref-'))
|
|
273
|
+
this.refs.set(attr.name.slice(4), type);
|
|
274
|
+
}
|
|
275
|
+
this.visitChildren(element);
|
|
276
|
+
}
|
|
277
|
+
visitBlock(block) {
|
|
278
|
+
this.visitChildren(block);
|
|
279
|
+
}
|
|
280
|
+
visitChildren(node) {
|
|
281
|
+
for (const child of node.children ?? []) {
|
|
282
|
+
child.visit(this);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
visitAttribute() { }
|
|
286
|
+
visitText() { }
|
|
287
|
+
visitComment() { }
|
|
288
|
+
visitExpansion() { }
|
|
289
|
+
visitExpansionCase() { }
|
|
290
|
+
visitBlockParameter() { }
|
|
291
|
+
visitLetDeclaration() { }
|
|
292
|
+
}
|
|
293
|
+
/** `x`, `[x]`, `bind-x` and `i18n-x` all name the same attribute. */
|
|
294
|
+
function attributeName(name) {
|
|
295
|
+
return utils_ast.getSimpleAttributeName(name).replace(/^(?:bind|i18n)-/, '');
|
|
296
|
+
}
|
|
297
|
+
const isTooltipTextHost = (element) => migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_HOSTS.includes(element.name) ||
|
|
298
|
+
(element.attrs ?? []).some((attr) => typeof attr.name === 'string' && migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_HOSTS.includes(attributeName(attr.name)));
|
|
299
|
+
/** Collects the renames of `kbqTooltip` to `tooltipText` on navbar items and brands, keeping the binding syntax. */
|
|
300
|
+
class TooltipTextRenameCollector {
|
|
301
|
+
constructor() {
|
|
302
|
+
this.edits = [];
|
|
303
|
+
}
|
|
304
|
+
visitElement(element) {
|
|
305
|
+
if (isTooltipTextHost(element)) {
|
|
306
|
+
for (const attr of element.attrs ?? []) {
|
|
307
|
+
if (typeof attr.name !== 'string' || attributeName(attr.name) !== migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_RENAME.from)
|
|
308
|
+
continue;
|
|
309
|
+
const { start, end } = attr.keySpan ?? {};
|
|
310
|
+
// The key span covers the name exactly as written; any other length would splice the wrong text.
|
|
311
|
+
if (!start || !end || end.offset - start.offset !== attr.name.length)
|
|
312
|
+
continue;
|
|
313
|
+
this.edits.push({
|
|
314
|
+
start: start.offset,
|
|
315
|
+
end: end.offset,
|
|
316
|
+
text: attr.name.replace(migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_RENAME.from, migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_RENAME.to)
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
this.visitChildren(element);
|
|
321
|
+
}
|
|
322
|
+
visitBlock(block) {
|
|
323
|
+
this.visitChildren(block);
|
|
324
|
+
}
|
|
325
|
+
visitChildren(node) {
|
|
326
|
+
for (const child of node.children ?? []) {
|
|
327
|
+
child.visit(this);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
visitAttribute() { }
|
|
331
|
+
visitText() { }
|
|
332
|
+
visitComment() { }
|
|
333
|
+
visitExpansion() { }
|
|
334
|
+
visitExpansionCase() { }
|
|
335
|
+
visitBlockParameter() { }
|
|
336
|
+
visitLetDeclaration() { }
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Matches `<ref>.<member>` where the access is neither already a call, a signal-API call, nor the left-hand
|
|
340
|
+
* side of an assignment (`\b` after the member keeps `expanded` from matching inside `expandedChange`).
|
|
341
|
+
*
|
|
342
|
+
* A template can only *read* a signal member this way — rewriting `ref.expanded = value` blindly into
|
|
343
|
+
* `ref.expanded() = value` would replace a valid assignment with invalid syntax, since a call expression is
|
|
344
|
+
* not assignable. Such assignments are reported separately (see `collectRefWriteWarnings`) instead of touched.
|
|
345
|
+
*/
|
|
346
|
+
function memberAccessPattern(ref, members) {
|
|
347
|
+
const methods = [...migrations_navbarSignalsAndAria_data.SIGNAL_API_METHODS].join('|');
|
|
348
|
+
return new RegExp(`\\b(${escapeRegExp(ref)})\\.(${members.join('|')})\\b(?!\\s*\\()(?!\\s*\\.\\s*(?:${methods})\\b)(?!\\s*=(?!=))`, 'g');
|
|
349
|
+
}
|
|
350
|
+
/** Matches a plain assignment `<ref>.<member> =` (not `==`/`===`) to one of the ref's writable members. */
|
|
351
|
+
function refAssignmentPattern(ref, members) {
|
|
352
|
+
return new RegExp(`\\b${escapeRegExp(ref)}\\.(${members.join('|')})\\b\\s*=(?!=)`, 'g');
|
|
353
|
+
}
|
|
354
|
+
/** Rewrites `ref.expanded` reads to `ref.expanded()` for every navbar reference variable. */
|
|
355
|
+
function rewriteRefReads(template, refs) {
|
|
356
|
+
let content = template;
|
|
357
|
+
let changed = false;
|
|
358
|
+
for (const [ref, typeName] of refs) {
|
|
359
|
+
const members = receiverTypeOf(typeName)?.signalMembers;
|
|
360
|
+
if (!members?.length)
|
|
361
|
+
continue;
|
|
362
|
+
const next = content.replace(memberAccessPattern(ref, members), '$1.$2()');
|
|
363
|
+
if (next !== content) {
|
|
364
|
+
content = next;
|
|
365
|
+
changed = true;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return { content, changed };
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Writable-member assignments made through a template reference variable: `ref.expanded = value`. Unlike a
|
|
372
|
+
* programmatic write (rewritten to `.set(…)` by `classifySignalAccess`), a template can only bind or read
|
|
373
|
+
* through a ref — there is no single-expression rewrite of an assignment target into a call — so these are
|
|
374
|
+
* left untouched and reported for manual migration instead.
|
|
375
|
+
*/
|
|
376
|
+
function collectRefWriteWarnings(template, refs) {
|
|
377
|
+
const found = new Set();
|
|
378
|
+
for (const [ref, typeName] of refs) {
|
|
379
|
+
const writable = receiverTypeOf(typeName)?.writableMembers;
|
|
380
|
+
if (!writable?.length)
|
|
381
|
+
continue;
|
|
382
|
+
for (const match of template.matchAll(refAssignmentPattern(ref, writable))) {
|
|
383
|
+
found.add(match[1]);
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return found;
|
|
387
|
+
}
|
|
388
|
+
/** Members needing manual migration, read through a navbar reference variable in a template. */
|
|
389
|
+
function collectRefManualMembers(template, refs) {
|
|
390
|
+
const members = [...migrations_navbarSignalsAndAria_data.MANUAL_MEMBERS.keys()];
|
|
391
|
+
const found = new Set();
|
|
392
|
+
for (const ref of refs.keys()) {
|
|
393
|
+
// `\bref\.(member)\b` — a template can only read these, so no call/method exclusions are needed.
|
|
394
|
+
const pattern = new RegExp(`\\b${escapeRegExp(ref)}\\.(${members.join('|')})\\b`, 'g');
|
|
395
|
+
for (const match of template.matchAll(pattern)) {
|
|
396
|
+
found.add(match[1]);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
return found;
|
|
400
|
+
}
|
|
401
|
+
const untouched = (template) => ({
|
|
402
|
+
content: template,
|
|
403
|
+
changed: false,
|
|
404
|
+
manual: new Set(),
|
|
405
|
+
writeWarnings: new Set(),
|
|
406
|
+
unparseable: false
|
|
407
|
+
});
|
|
408
|
+
const namesNavbarExportAs = (template) => [...EXPORT_AS_TO_TYPE.keys()].some((exportAs) => template.includes(exportAs));
|
|
409
|
+
const namesTooltipTextHost = (template) => template.includes(migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_RENAME.from) && migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_HOSTS.some((host) => template.includes(host));
|
|
410
|
+
/**
|
|
411
|
+
* Pass B (core) — parse a template, rename `kbqTooltip` on navbar hosts, discover navbar refs and rewrite their
|
|
412
|
+
* value-safe reads.
|
|
413
|
+
*/
|
|
414
|
+
async function migrateTemplate(template) {
|
|
415
|
+
if (!namesNavbarExportAs(template) && !namesTooltipTextHost(template))
|
|
416
|
+
return untouched(template);
|
|
417
|
+
const parsed = await utils_typescript.parseTemplate(template);
|
|
418
|
+
if (!parsed.tree)
|
|
419
|
+
return { ...untouched(template), unparseable: true };
|
|
420
|
+
const rootNodes = parsed.tree.rootNodes;
|
|
421
|
+
const renames = new TooltipTextRenameCollector();
|
|
422
|
+
const collector = new NavbarRefCollector();
|
|
423
|
+
utils_ast.visitAll(renames, rootNodes);
|
|
424
|
+
utils_ast.visitAll(collector, rootNodes);
|
|
425
|
+
// A rename touches only an attribute name, never a reference variable or an expression, so the reads below
|
|
426
|
+
// are found in the renamed text exactly as in the original.
|
|
427
|
+
const renamed = applyEdits(template, renames.edits);
|
|
428
|
+
const isRenamed = renamed !== template;
|
|
429
|
+
if (collector.refs.size === 0)
|
|
430
|
+
return { ...untouched(renamed), changed: isRenamed };
|
|
431
|
+
const reads = rewriteRefReads(renamed, collector.refs);
|
|
432
|
+
return {
|
|
433
|
+
content: reads.content,
|
|
434
|
+
changed: reads.changed || isRenamed,
|
|
435
|
+
manual: collectRefManualMembers(renamed, collector.refs),
|
|
436
|
+
writeWarnings: collectRefWriteWarnings(renamed, collector.refs),
|
|
437
|
+
unparseable: false
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
/** Pass B (inline) — the same rewrites inside inline component templates. */
|
|
441
|
+
async function migrateInlineTemplates(content, fileName) {
|
|
442
|
+
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
443
|
+
const manual = new Set();
|
|
444
|
+
const writeWarnings = new Set();
|
|
445
|
+
let result = content;
|
|
446
|
+
let unparseable = false;
|
|
447
|
+
// Splice right-to-left so earlier offsets stay valid.
|
|
448
|
+
for (const { start, end } of utils_typescript.collectInlineTemplateRanges(sourceFile).sort((a, b) => b.start - a.start)) {
|
|
449
|
+
const migrated = await migrateTemplate(result.slice(start, end));
|
|
450
|
+
migrated.manual.forEach((member) => manual.add(member));
|
|
451
|
+
migrated.writeWarnings.forEach((member) => writeWarnings.add(member));
|
|
452
|
+
unparseable ||= migrated.unparseable;
|
|
453
|
+
if (migrated.changed) {
|
|
454
|
+
result = result.slice(0, start) + migrated.content + result.slice(end);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
return { content: result, manual, writeWarnings, unparseable };
|
|
458
|
+
}
|
|
459
|
+
function logPatternWarnings(context, filePath, content, patterns) {
|
|
460
|
+
for (const { pattern, message } of patterns) {
|
|
461
|
+
if (new RegExp(pattern).test(content)) {
|
|
462
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
function logManualMembers(context, filePath, members) {
|
|
467
|
+
for (const member of members) {
|
|
468
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_navbarSignalsAndAria_data.MANUAL_MEMBERS.get(member)}`]);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
function logRefWriteWarnings(context, filePath, members) {
|
|
472
|
+
for (const member of members) {
|
|
473
|
+
utils_messages.logMessage(context.logger, [
|
|
474
|
+
`${LABEL} ${filePath}`,
|
|
475
|
+
` Assigning to \`${member}\` through a template reference variable was left untouched — a template ` +
|
|
476
|
+
`can only rewrite a read this way. Change \`ref.${member} = value\` to \`ref.${member}.set(value)\`.`
|
|
477
|
+
]);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* A `.ts` file is a navbar consumer if it names one of its symbols, imports the package or has an item or brand in
|
|
482
|
+
* an inline template — a component declared in an NgModule gets the navbar without naming it.
|
|
483
|
+
*/
|
|
484
|
+
function referencesNavbar(content) {
|
|
485
|
+
return (/\bKbq(?:Vertical)?Navbar\w*\b/.test(content) ||
|
|
486
|
+
content.includes('@koobiq/components/navbar') ||
|
|
487
|
+
migrations_navbarSignalsAndAria_data.TOOLTIP_TEXT_HOSTS.some((host) => content.includes(host)));
|
|
488
|
+
}
|
|
489
|
+
function navbarSignalsAndAria(options) {
|
|
490
|
+
return async (tree, context) => {
|
|
491
|
+
const { project } = options;
|
|
492
|
+
// `ng update` invokes migrations with no options at all, and migrations.json declares no schema, so the
|
|
493
|
+
// schema default never reaches us — applying the fix is the intended behaviour there.
|
|
494
|
+
const fix = options.fix ?? true;
|
|
495
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
496
|
+
const root = projectDefinition?.root ?? '';
|
|
497
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
498
|
+
const tsPaths = [];
|
|
499
|
+
const htmlPaths = [];
|
|
500
|
+
const stylePaths = [];
|
|
501
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath) => {
|
|
502
|
+
if (filePath.endsWith(TS_EXT))
|
|
503
|
+
tsPaths.push(filePath);
|
|
504
|
+
else if (filePath.endsWith(HTML_EXT))
|
|
505
|
+
htmlPaths.push(filePath);
|
|
506
|
+
else if (STYLE_EXTS.some((ext) => filePath.endsWith(ext)))
|
|
507
|
+
stylePaths.push(filePath);
|
|
508
|
+
});
|
|
509
|
+
let touched = 0;
|
|
510
|
+
const commit = (filePath, original, updated) => {
|
|
511
|
+
if (updated === original)
|
|
512
|
+
return;
|
|
513
|
+
touched++;
|
|
514
|
+
if (fix) {
|
|
515
|
+
tree.overwrite(filePath, updated);
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
utils_messages.logMessage(context.logger, [`${LABEL} would update ${filePath} (run with --fix to apply)`]);
|
|
519
|
+
}
|
|
520
|
+
};
|
|
521
|
+
for (const filePath of tsPaths) {
|
|
522
|
+
const original = tree.read(filePath)?.toString();
|
|
523
|
+
if (!original || !referencesNavbar(original))
|
|
524
|
+
continue;
|
|
525
|
+
const withExpressions = migrateTsExpressions(original, filePath);
|
|
526
|
+
const inline = await migrateInlineTemplates(withExpressions, filePath);
|
|
527
|
+
const content = inline.content;
|
|
528
|
+
// Warn on what is left over, so an auto-fixed usage does not also produce a "manual migration
|
|
529
|
+
// required" note. In dry-run mode the fix is not written, so report against the original.
|
|
530
|
+
const reported = fix ? content : original;
|
|
531
|
+
logPatternWarnings(context, filePath, reported, migrations_navbarSignalsAndAria_data.tsWarnPatterns);
|
|
532
|
+
logManualMembers(context, filePath, collectManualMembers(reported, filePath));
|
|
533
|
+
logManualMembers(context, filePath, inline.manual);
|
|
534
|
+
logRefWriteWarnings(context, filePath, inline.writeWarnings);
|
|
535
|
+
if (inline.unparseable) {
|
|
536
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_navbarSignalsAndAria_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
|
|
537
|
+
}
|
|
538
|
+
commit(filePath, original, content);
|
|
539
|
+
}
|
|
540
|
+
for (const filePath of htmlPaths) {
|
|
541
|
+
const original = tree.read(filePath)?.toString();
|
|
542
|
+
if (!original)
|
|
543
|
+
continue;
|
|
544
|
+
const migrated = await migrateTemplate(original);
|
|
545
|
+
logManualMembers(context, filePath, migrated.manual);
|
|
546
|
+
logRefWriteWarnings(context, filePath, migrated.writeWarnings);
|
|
547
|
+
if (migrated.unparseable) {
|
|
548
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${migrations_navbarSignalsAndAria_data.UNPARSEABLE_TEMPLATE_MESSAGE}`]);
|
|
549
|
+
}
|
|
550
|
+
if (migrated.changed)
|
|
551
|
+
commit(filePath, original, migrated.content);
|
|
552
|
+
}
|
|
553
|
+
for (const filePath of stylePaths) {
|
|
554
|
+
const original = tree.read(filePath)?.toString();
|
|
555
|
+
if (!original)
|
|
556
|
+
continue;
|
|
557
|
+
logPatternWarnings(context, filePath, original, migrations_navbarSignalsAndAria_data.styleWarnPatterns);
|
|
558
|
+
}
|
|
559
|
+
utils_messages.logMessage(context.logger, [
|
|
560
|
+
`${LABEL} processed tree under "${root || '<workspace root>'}", ` +
|
|
561
|
+
`${fix ? 'updated' : 'would update'} ${touched} file(s).`,
|
|
562
|
+
'',
|
|
563
|
+
...migrations_navbarSignalsAndAria_data.BEHAVIOUR_NOTE
|
|
564
|
+
]);
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
exports.default = navbarSignalsAndAria;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-navbar-signals-and-aria",
|
|
4
|
+
"title": "Koobiq components navbar signals and aria migration",
|
|
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
|
+
}
|
|
@@ -70,17 +70,17 @@ The schema definition can be found in [`schema.ts`](schema.ts).
|
|
|
70
70
|
#### Angular CLI
|
|
71
71
|
|
|
72
72
|
```shell
|
|
73
|
-
ng g @koobiq/components:new-icons-pack --fix=true --project <your project>
|
|
73
|
+
ng g @koobiq/components:new-icons-pack --fix=true --project "<your project>"
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
#### Angular CLI with custom data
|
|
77
77
|
|
|
78
78
|
```shell
|
|
79
79
|
ng g @koobiq/components:new-icons-pack \
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
--custom-data-path migration.json \
|
|
81
|
+
--custom-icon-replacement-path my-replacement.json \
|
|
82
|
+
--fix=true \
|
|
83
|
+
--project "<your-project>"
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
`migration.json` is the shipped icon-name mapping and can be used as-is. `my-replacement.json` is a file you
|
|
@@ -90,15 +90,15 @@ write yourself, in the new bare scope-word-pair shape described above — **not*
|
|
|
90
90
|
#### Nx
|
|
91
91
|
|
|
92
92
|
```shell
|
|
93
|
-
nx g @koobiq/components:new-icons-pack --fix=true --project <your project>
|
|
93
|
+
nx g @koobiq/components:new-icons-pack --fix=true --project "<your project>"
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
#### Nx with custom data
|
|
97
97
|
|
|
98
98
|
```shell
|
|
99
99
|
nx g @koobiq/components:new-icons-pack \
|
|
100
|
-
--custom-data-path migration.json \
|
|
101
|
-
--custom-icon-replacement-path my-replacement.json \
|
|
102
|
-
--fix=true \
|
|
103
|
-
--project <your-project>
|
|
100
|
+
--custom-data-path migration.json \
|
|
101
|
+
--custom-icon-replacement-path my-replacement.json \
|
|
102
|
+
--fix=true \
|
|
103
|
+
--project "<your-project>"
|
|
104
104
|
```
|
|
@@ -7,7 +7,7 @@ var path = require('path');
|
|
|
7
7
|
var utils_angularParsing = require('../../utils/angular-parsing.js');
|
|
8
8
|
var utils_iconMigration = require('../../utils/icon-migration.js');
|
|
9
9
|
var utils_messages = require('../../utils/messages.js');
|
|
10
|
-
var utils_packageConfig = require('../../
|
|
10
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
11
11
|
var migrations_newIconsPack_data = require('./data.js');
|
|
12
12
|
require('typescript');
|
|
13
13
|
require('../../utils/ast.js');
|