@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,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-progress-spinner-signals",
|
|
4
|
+
"title": "Koobiq components progress spinner signals 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
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# query-list-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for `21.0.0-0`).
|
|
4
|
+
Reports subclasses that redeclare the query members turned into getters, and writes to those members. It never writes
|
|
5
|
+
to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
The remaining decorator queries are signal queries. The members over them are getters that keep their types, so a
|
|
10
|
+
read and a subscription to `changes` work as before. Before the content is initialized a `QueryList` is empty rather
|
|
11
|
+
than `undefined`.
|
|
12
|
+
|
|
13
|
+
| Member | Type |
|
|
14
|
+
| ------------------------------------------------------------------------------------------------------- | ------------ |
|
|
15
|
+
| `options` of `KbqSelect`, `KbqAutocomplete` and `KbqListSelection` | `QueryList` |
|
|
16
|
+
| `tags` of `KbqSelect`, `KbqTreeSelect` (protected) and `KbqTagList` | `QueryList` |
|
|
17
|
+
| `KbqRadioGroup.radios`, `KbqTreeSelection.unorderedOptions` | `QueryList` |
|
|
18
|
+
| `focusableItems` of `KbqNavbar` and `KbqVerticalNavbar`, `KbqAppSwitcherComponent.allItems` (protected) | `QueryList` |
|
|
19
|
+
| `textElement` of `KbqTag` and `KbqDropdownItem` | `ElementRef` |
|
|
20
|
+
| `KbqCodeBlock.tabLinkTemplate` (protected) | Signal |
|
|
21
|
+
|
|
22
|
+
| Use | What to do |
|
|
23
|
+
| ------------------------------------- | ------------------------------------------------ |
|
|
24
|
+
| A subclass that redeclared the member | Remove the redeclaration, or override the getter |
|
|
25
|
+
| A write to the member | Render the items in the template instead |
|
|
26
|
+
| A subclass reading `tabLinkTemplate` | Call it: `this.tabLinkTemplate()` |
|
|
27
|
+
|
|
28
|
+
## Running it manually
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
ng g @koobiq/components:query-list-signals --project "<your project>"
|
|
32
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `query-list-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* The remaining decorator queries are signal queries now. The public members over them are getters that keep their
|
|
7
|
+
* types — a `QueryList` whose `changes` emit as before, or an `ElementRef` — so reads are unchanged. A subclass that
|
|
8
|
+
* redeclares one of them, and a write to one, no longer compile. `KbqCodeBlock.tabLinkTemplate`, which is protected,
|
|
9
|
+
* is a signal. Warn-only.
|
|
10
|
+
*/
|
|
11
|
+
const OWNERS = [
|
|
12
|
+
'KbqSelect',
|
|
13
|
+
'KbqTimezoneSelect',
|
|
14
|
+
'KbqTreeSelect',
|
|
15
|
+
'KbqAutocomplete',
|
|
16
|
+
'KbqListSelection',
|
|
17
|
+
'KbqFocusableComponent',
|
|
18
|
+
'KbqNavbar',
|
|
19
|
+
'KbqVerticalNavbar',
|
|
20
|
+
'KbqRadioGroup',
|
|
21
|
+
'KbqTagList',
|
|
22
|
+
'KbqTag',
|
|
23
|
+
'KbqDropdownItem',
|
|
24
|
+
'KbqTreeSelection',
|
|
25
|
+
'KbqAppSwitcherComponent',
|
|
26
|
+
'KbqCodeBlock'
|
|
27
|
+
].join('|');
|
|
28
|
+
const MEMBERS = [
|
|
29
|
+
'options',
|
|
30
|
+
'tags',
|
|
31
|
+
'focusableItems',
|
|
32
|
+
'radios',
|
|
33
|
+
'unorderedOptions',
|
|
34
|
+
'allItems',
|
|
35
|
+
'textElement',
|
|
36
|
+
'tabLinkTemplate'
|
|
37
|
+
].join('|');
|
|
38
|
+
const SUBCLASS = `\\bextends\\s+(?:${OWNERS})\\b`;
|
|
39
|
+
const warnPatterns = [
|
|
40
|
+
{
|
|
41
|
+
anchor: SUBCLASS,
|
|
42
|
+
pattern: `@(?:ViewChild|ViewChildren|ContentChild|ContentChildren)\\s*\\(|\\b(?:override|declare)\\s+(?:readonly\\s+)?(?:${MEMBERS})\\s*[!?]?\\s*:`,
|
|
43
|
+
message: 'A subclass of a Koobiq component whose query members are getters over signal queries now: options of ' +
|
|
44
|
+
'KbqSelect, KbqAutocomplete and KbqListSelection, tags of KbqSelect, KbqTreeSelect and KbqTagList, ' +
|
|
45
|
+
'focusableItems of KbqNavbar and KbqVerticalNavbar, KbqRadioGroup.radios, ' +
|
|
46
|
+
'KbqTreeSelection.unorderedOptions, KbqAppSwitcherComponent.allItems and textElement of KbqTag and ' +
|
|
47
|
+
'KbqDropdownItem. A subclass can no longer redeclare them as fields: remove the redeclaration, or override ' +
|
|
48
|
+
'the getter. This pattern also matches a query of the subclass itself — check before changing it.'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
anchor: `\\b(?:${OWNERS})\\b`,
|
|
52
|
+
pattern: '\\.\\s*(?:options|tags|focusableItems|radios|unorderedOptions|textElement)\\s*=[^=]',
|
|
53
|
+
message: 'The query members of KbqSelect, KbqAutocomplete, KbqListSelection, the navbar, ' +
|
|
54
|
+
'KbqRadioGroup, KbqTagList, KbqTag, KbqDropdownItem and KbqTreeSelection are read-only getters now, so a ' +
|
|
55
|
+
'write no longer compiles. Render the items in the template instead. This pattern also matches a write ' +
|
|
56
|
+
'to an unrelated object in the same file — check before changing it.'
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
anchor: '\\bextends\\s+KbqCodeBlock\\b',
|
|
60
|
+
pattern: '\\btabLinkTemplate\\b(?!\\s*\\()',
|
|
61
|
+
message: 'KbqCodeBlock.tabLinkTemplate is a protected signal now: a subclass reads it as this.tabLinkTemplate().'
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
const SUMMARY = [
|
|
65
|
+
'Reading these members and subscribing to the changes of a QueryList work as before. Before the content is',
|
|
66
|
+
'initialized a QueryList is empty rather than undefined.'
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
exports.SUMMARY = SUMMARY;
|
|
70
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var warnOnlyMigration = require('../../warn-only-migration-BISJBODk.js');
|
|
6
|
+
var migrations_queryListSignals_data = require('./data.js');
|
|
7
|
+
require('../../utils/messages.js');
|
|
8
|
+
require('../../package-config-BhU2TfC8.js');
|
|
9
|
+
require('@angular-devkit/schematics');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
|
|
12
|
+
/** Reports subclasses that redeclare the query members now behind getters, and writes to them. Never writes. */
|
|
13
|
+
function queryListSignals(options) {
|
|
14
|
+
return warnOnlyMigration.warnOnlyRule({ label: '[query-list-signals]', warnPatterns: migrations_queryListSignals_data.warnPatterns, summary: migrations_queryListSignals_data.SUMMARY }, options);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.default = queryListSignals;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-query-list-signals",
|
|
4
|
+
"title": "Koobiq components query list signals migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# radio-signals-and-aria
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@20`
|
|
4
|
+
(registered for `21.0.0-0`). Moves the radio's one-way inputs to the signal API and reports what has
|
|
5
|
+
no mechanical translation.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`name` is the load-bearing contract in the radio: the app-global `UniqueSelectionDispatcher` fans a
|
|
10
|
+
notification out to every listener in the application, and the name comparison inside each listener is
|
|
11
|
+
the only isolation there is. A button used outside a group never assigned one, so `undefined ===
|
|
12
|
+
undefined` made every group-less radio in the application one selection group — checking one
|
|
13
|
+
un-checked the others, in unrelated routes, overlays and dialogs. In the other direction, `ngOnInit`
|
|
14
|
+
overwrote an explicitly bound `[name]` with the group's, so the documented input did nothing.
|
|
15
|
+
|
|
16
|
+
## What it rewrites
|
|
17
|
+
|
|
18
|
+
A read of one of these becomes a call. The rewrite is **scoped by receiver type**, which matters here
|
|
19
|
+
more than in any other component of the campaign: `name`, `labelPosition` and `required` exist on both
|
|
20
|
+
classes, and only the group's became signals.
|
|
21
|
+
|
|
22
|
+
| Type | Members |
|
|
23
|
+
| ---------------- | ----------------------------------- |
|
|
24
|
+
| `KbqRadioGroup` | `name`, `labelPosition`, `required` |
|
|
25
|
+
| `KbqRadioButton` | `id`, `inputId` |
|
|
26
|
+
|
|
27
|
+
So `group.required` becomes `group.required()`, while `button.required` is left exactly as it was.
|
|
28
|
+
|
|
29
|
+
## What stays an accessor input, and why
|
|
30
|
+
|
|
31
|
+
| Member | Why |
|
|
32
|
+
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
33
|
+
| `KbqRadioGroup.value` | `writeValue` writes it, and has to resolve the checked button synchronously before the first render; a `model()` would also publish a `valueChange` output duplicating `change` |
|
|
34
|
+
| `KbqRadioGroup.selected` | the buttons write their selection back onto the group |
|
|
35
|
+
| `KbqRadioGroup.disabled` | `setDisabledState` writes it, and it coerces with `booleanAttribute` — a `model()` carries no `transform` |
|
|
36
|
+
| `KbqRadioButton.checked` | two-way state the component and the form both write, with a `booleanAttribute` transform |
|
|
37
|
+
| `KbqRadioButton.value` | writing it re-resolves the checked state against the group |
|
|
38
|
+
| `disabled`, `required`, `labelPosition`, `name`, `tabIndex` on the button | each folds in the group's value — a button inside a disabled group is disabled — so the read is derived, not stored |
|
|
39
|
+
|
|
40
|
+
Reads and writes of those are unchanged.
|
|
41
|
+
|
|
42
|
+
## What it only reports
|
|
43
|
+
|
|
44
|
+
| Pattern | Manual migration |
|
|
45
|
+
| --------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
46
|
+
| `[isFocused]` / `.isFocused` | Read the `cdk-*-focused` classes, or call `focus(origin)` |
|
|
47
|
+
| `.radioGroup` | Guard the access — the button may not be in a group |
|
|
48
|
+
| `.id = …` | Bind `[id]` instead; `id` is read-only now |
|
|
49
|
+
| `--kbq-radio-size-*-top` | Delete the override; no rule read it |
|
|
50
|
+
| `hostDirectives: [KbqRadioGroup]` | Render a `<kbq-radio-group>` element; a component cannot be a host directive |
|
|
51
|
+
| `extends KbqRadioGroup` | Decorate the subclass with `@Component` and repeat `<ng-content />` and the `kbq-error` slot, or wrap the group |
|
|
52
|
+
|
|
53
|
+
`KbqRadioButton.isFocused` was removed outright: a published input that nothing read. `radioGroup` is
|
|
54
|
+
typed `KbqRadioGroup | null` — it was always injected with `{ optional: true }` and the non-null
|
|
55
|
+
assertion only hid it.
|
|
56
|
+
|
|
57
|
+
## Notes with no call site to point at
|
|
58
|
+
|
|
59
|
+
- Two `<kbq-radio-button>`s used outside a group are independent now. Markup that relied on the old
|
|
60
|
+
mutual exclusion has to say so: put them in a group, or give them the same explicit `[name]`.
|
|
61
|
+
- `[name]` on a button inside a group is honoured, so a button bound to its own name forms its own
|
|
62
|
+
selection group instead of silently inheriting the group's.
|
|
63
|
+
- `<kbq-radio-group>` is a `radiogroup`, which takes no name from its content. Name it with a plain
|
|
64
|
+
`aria-label` / `aria-labelledby` attribute on the element — a detached label sibling leaves the
|
|
65
|
+
group unnamed for assistive technology.
|
|
66
|
+
- A `kbq-hint` projected into a button is exposed through `aria-describedby` instead of being folded
|
|
67
|
+
into the button's accessible name.
|
|
68
|
+
- `KbqRadioGroup` is a component: a `kbq-error` put inside it is rendered under the options only
|
|
69
|
+
while the group is in the error state, and the group references it from its `aria-describedby`.
|
|
70
|
+
- `[color]` on the group colors every button in it, `[required]` reaches the group as
|
|
71
|
+
`aria-required`, and an error color as `aria-invalid`.
|
|
72
|
+
- The native input carries its option value, so a group inside a plain `<form>` submits that value
|
|
73
|
+
instead of the literal `"on"`. Only string-like values round-trip, and a group meant for native
|
|
74
|
+
submission still needs an explicit `[name]`.
|
|
75
|
+
|
|
76
|
+
## Running it manually
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
ng generate @koobiq/components:radio-signals-and-aria --project my-app
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Pass `--fix=false` to see what would change without writing.
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `radio-signals-and-aria` migration.
|
|
5
|
+
*
|
|
6
|
+
* The review closed the `name` contract, gave the group something to say about itself, and moved the
|
|
7
|
+
* one-way inputs to the signal API.
|
|
8
|
+
*
|
|
9
|
+
* Only the members listed in `MEMBERS_BY_TYPE` became signals, and the split matters: `name`,
|
|
10
|
+
* `labelPosition` and `required` exist on **both** `KbqRadioGroup` and `KbqRadioButton`, and only the
|
|
11
|
+
* group's are signals. The button's stay accessors, because each folds in the group's value — a button
|
|
12
|
+
* inside a disabled group is disabled, one inside a required group is required. That is why the rewrite
|
|
13
|
+
* is scoped by receiver type rather than by member name: `group.required` becomes `group.required()`,
|
|
14
|
+
* `button.required` is left alone.
|
|
15
|
+
*
|
|
16
|
+
* `value`, `selected` and `disabled` on the group stay accessor inputs. `writeValue` and
|
|
17
|
+
* `setDisabledState` write them from outside the template, `disabled` coerces with `booleanAttribute`
|
|
18
|
+
* and a `model()` carries no `transform`, and `writeValue` has to resolve the checked button
|
|
19
|
+
* synchronously before the first render. Reads and writes of those three are unchanged.
|
|
20
|
+
*
|
|
21
|
+
* Nothing here is writable: every migrated member is a read-only `input()` or a `computed()`, so a
|
|
22
|
+
* programmatic write has no mechanical translation and is reported instead.
|
|
23
|
+
*/
|
|
24
|
+
/** Identifier shape that marks a file as a radio consumer without an import. */
|
|
25
|
+
const RADIO_ANCHOR = '\\bKbqRadio\\w*\\b|\\bkbq-radio\\b';
|
|
26
|
+
/** Import specifier that marks a file as a radio consumer. */
|
|
27
|
+
const RADIO_PACKAGE = '@koobiq/components/radio';
|
|
28
|
+
/** Which members each type owns. A receiver resolves to one type, so the rewrite is scoped by it. */
|
|
29
|
+
const MEMBERS_BY_TYPE = {
|
|
30
|
+
KbqRadioGroup: ['name', 'labelPosition', 'required'],
|
|
31
|
+
KbqRadioButton: ['id', 'inputId']
|
|
32
|
+
};
|
|
33
|
+
/** `exportAs` names a template reference can be bound to. */
|
|
34
|
+
const EXPORT_AS_TO_TYPE = {
|
|
35
|
+
kbqRadioGroup: 'KbqRadioGroup',
|
|
36
|
+
kbqRadioButton: 'KbqRadioButton'
|
|
37
|
+
};
|
|
38
|
+
/** Element selectors whose bare `#ref` points at one of the migrated types. */
|
|
39
|
+
const ELEMENT_TO_TYPE = {
|
|
40
|
+
'kbq-radio-group': 'KbqRadioGroup',
|
|
41
|
+
'kbq-radio-button': 'KbqRadioButton'
|
|
42
|
+
};
|
|
43
|
+
/** None: every migrated member is a read-only `input()` or a `computed()`. */
|
|
44
|
+
const WRITABLE_MEMBERS = new Set();
|
|
45
|
+
/** The two custom properties the review removed. Also reported in stylesheets, which the engine skips. */
|
|
46
|
+
const REMOVED_TOKENS_PATTERN = '--kbq-radio-size-(?:big|normal)-top\\b';
|
|
47
|
+
const REMOVED_TOKENS_MESSAGE = 'The --kbq-radio-size-big-top and --kbq-radio-size-normal-top custom properties were removed. ' +
|
|
48
|
+
'Neither was referenced by any rule in the package, so overriding them never changed anything; ' +
|
|
49
|
+
'the vertical offset follows the line height through kbq-css-half-difference().';
|
|
50
|
+
const warnPatterns = [
|
|
51
|
+
{
|
|
52
|
+
anchor: RADIO_ANCHOR,
|
|
53
|
+
pattern: '\\bisFocused\\b',
|
|
54
|
+
message: 'KbqRadioButton.isFocused was removed. It was a published input that nothing in the component ' +
|
|
55
|
+
'read — no host binding, no template reference — so binding it never had an effect. Focus state ' +
|
|
56
|
+
'is carried by the FocusMonitor classes on the host (cdk-keyboard-focused / cdk-program-focused); ' +
|
|
57
|
+
'read those, or call focus(origin).'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
anchor: RADIO_ANCHOR,
|
|
61
|
+
pattern: '\\.\\s*radioGroup\\b',
|
|
62
|
+
message: 'KbqRadioButton.radioGroup is typed KbqRadioGroup | null. It was always injected with ' +
|
|
63
|
+
'{ optional: true } and the non-null assertion only hid it, so a button used outside a group ' +
|
|
64
|
+
'already returned null behind a non-nullable type. Guard the access instead of asserting it. ' +
|
|
65
|
+
'Note that the group members reached through it are signals now: radioGroup?.name() rather ' +
|
|
66
|
+
'than radioGroup.name.'
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
anchor: RADIO_ANCHOR,
|
|
70
|
+
pattern: '\\.\\s*id\\s*=[^=]',
|
|
71
|
+
message: 'KbqRadioButton.id is a read-only input() now, so a programmatic write no longer compiles. Bind ' +
|
|
72
|
+
'[id] in the template instead. Binding it to null or an empty string keeps the generated id, so ' +
|
|
73
|
+
'a read always yields the id the element actually carries. This pattern also matches a plain ' +
|
|
74
|
+
'element.id assignment in a file that happens to name the radio — check before changing it.'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
anchor: RADIO_ANCHOR,
|
|
78
|
+
pattern: REMOVED_TOKENS_PATTERN,
|
|
79
|
+
message: REMOVED_TOKENS_MESSAGE
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
anchor: RADIO_ANCHOR,
|
|
83
|
+
pattern: 'hostDirectives[^\\]]*\\bKbqRadioGroup\\b|\\bdirective\\s*:\\s*KbqRadioGroup\\b',
|
|
84
|
+
message: 'KbqRadioGroup is a component now, so it can no longer be applied through hostDirectives: a ' +
|
|
85
|
+
'component cannot be a host directive. Render a <kbq-radio-group> element in the template instead.'
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
anchor: RADIO_ANCHOR,
|
|
89
|
+
pattern: '\\bextends\\s+KbqRadioGroup\\b',
|
|
90
|
+
message: 'KbqRadioGroup is a component now. A subclass decorated with @Directive fails at runtime with NG0903 ' +
|
|
91
|
+
'(directives cannot inherit components), so decorate it with @Component instead. Its template ' +
|
|
92
|
+
"replaces the group's, so repeat <ng-content /> in it and, to keep the validation error, the " +
|
|
93
|
+
'kbq-error slot. Wrapping the group rather than extending it avoids both.'
|
|
94
|
+
}
|
|
95
|
+
];
|
|
96
|
+
const UNPARSEABLE_TEMPLATE_MESSAGE = 'This template renders a radio but could not be parsed, so it was left untouched. Migrate reads ' +
|
|
97
|
+
'through its template reference variables by hand.';
|
|
98
|
+
const UNRESOLVED_RECEIVER_MESSAGE = 'A radio type is used here in a way this migration cannot resolve to a single receiver, so any ' +
|
|
99
|
+
'signal read through it was left untouched. Check these lines by hand:';
|
|
100
|
+
const SUMMARY = [
|
|
101
|
+
' KbqRadioGroup.name, .labelPosition and .required are signal inputs now, so a read is a call. A read ' +
|
|
102
|
+
'left un-called is silent in a template: {{ group.name }} prints the function source, and ' +
|
|
103
|
+
'@if (group.required) is always true. The same three members on KbqRadioButton are unchanged — each ' +
|
|
104
|
+
"folds in the group's value, so they stay accessors — which is why this rewrite is scoped by type.",
|
|
105
|
+
' KbqRadioButton.id and .inputId are signals too. id is read-only now: bind [id] rather than assigning ' +
|
|
106
|
+
'to it, and bind null or an empty string to keep the generated one.',
|
|
107
|
+
' KbqRadioGroup.value, .selected and .disabled are deliberately unchanged. ControlValueAccessor writes ' +
|
|
108
|
+
'the first and last, the buttons write selected, and writeValue has to resolve the checked button ' +
|
|
109
|
+
'before the first render — none of which a read-only input() or a transform-less model() supports.',
|
|
110
|
+
' A <kbq-radio-button> used outside a <kbq-radio-group> is independent now. It used to resolve its ' +
|
|
111
|
+
'name to undefined, and the application-global UniqueSelectionDispatcher isolates its listeners by ' +
|
|
112
|
+
'name alone, so checking one un-checked every other group-less radio in the application. Markup ' +
|
|
113
|
+
'that relied on that mutual exclusion has to say so: put the buttons in a group, or give them the ' +
|
|
114
|
+
'same explicit [name].',
|
|
115
|
+
' [name] on a <kbq-radio-button> inside a group is honoured. ngOnInit used to overwrite it with the ' +
|
|
116
|
+
"group's name unconditionally, so a bound name was discarded; a button bound to its own name now " +
|
|
117
|
+
'forms its own selection group.',
|
|
118
|
+
' <kbq-radio-group> is a radiogroup, which takes no name from its content. Name it with a plain ' +
|
|
119
|
+
'aria-label / aria-labelledby attribute on the element — a detached label sibling leaves the group ' +
|
|
120
|
+
'unnamed for assistive technology.',
|
|
121
|
+
' A kbq-hint projected into a button is exposed through aria-describedby instead of being folded into ' +
|
|
122
|
+
"the button's accessible name, so an option is announced by its own text.",
|
|
123
|
+
' KbqRadioGroup accepts [color]: one binding colors every button in the group, so the error palette ' +
|
|
124
|
+
'no longer has to be repeated per option. The error color is also mirrored as aria-invalid, and ' +
|
|
125
|
+
'[required] as aria-required, on the group element.',
|
|
126
|
+
' KbqRadioGroup is a component now. A kbq-error put inside the group is rendered under the options only ' +
|
|
127
|
+
'while the group is in the error state, a kbq-hint put directly inside it is moved under the options ' +
|
|
128
|
+
'after the error, and both are referenced from its aria-describedby. A component cannot be a host ' +
|
|
129
|
+
'directive, and a @Directive cannot extend it.',
|
|
130
|
+
" KbqRadioButton.focus() takes a FocusOrigin and routes through the FocusMonitor, so focus('keyboard') " +
|
|
131
|
+
'leaves the visible ring the theme paints off .cdk-keyboard-focused. KbqRadioGroup has a focus() of ' +
|
|
132
|
+
'its own that forwards to the checked option, or to the first enabled one.',
|
|
133
|
+
' The native input carries its option value now, so a group inside a plain <form> submits that value ' +
|
|
134
|
+
'instead of the literal "on". Only string-like values round-trip, and a group meant for native ' +
|
|
135
|
+
'submission still needs an explicit [name] — the generated one changes between application loads.'
|
|
136
|
+
];
|
|
137
|
+
const config = {
|
|
138
|
+
label: '[radio-signals-and-aria]',
|
|
139
|
+
package: RADIO_PACKAGE,
|
|
140
|
+
membersByType: MEMBERS_BY_TYPE,
|
|
141
|
+
exportAsToType: EXPORT_AS_TO_TYPE,
|
|
142
|
+
elementToType: ELEMENT_TO_TYPE,
|
|
143
|
+
writableMembers: WRITABLE_MEMBERS,
|
|
144
|
+
warnPatterns,
|
|
145
|
+
messages: {
|
|
146
|
+
unparseableTemplate: UNPARSEABLE_TEMPLATE_MESSAGE,
|
|
147
|
+
unresolvedReceiver: UNRESOLVED_RECEIVER_MESSAGE,
|
|
148
|
+
summary: SUMMARY
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
exports.ELEMENT_TO_TYPE = ELEMENT_TO_TYPE;
|
|
153
|
+
exports.EXPORT_AS_TO_TYPE = EXPORT_AS_TO_TYPE;
|
|
154
|
+
exports.MEMBERS_BY_TYPE = MEMBERS_BY_TYPE;
|
|
155
|
+
exports.RADIO_PACKAGE = RADIO_PACKAGE;
|
|
156
|
+
exports.REMOVED_TOKENS_MESSAGE = REMOVED_TOKENS_MESSAGE;
|
|
157
|
+
exports.REMOVED_TOKENS_PATTERN = REMOVED_TOKENS_PATTERN;
|
|
158
|
+
exports.SUMMARY = SUMMARY;
|
|
159
|
+
exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
|
|
160
|
+
exports.UNRESOLVED_RECEIVER_MESSAGE = UNRESOLVED_RECEIVER_MESSAGE;
|
|
161
|
+
exports.WRITABLE_MEMBERS = WRITABLE_MEMBERS;
|
|
162
|
+
exports.config = config;
|
|
163
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var schematics = require('@angular-devkit/schematics');
|
|
6
|
+
var utils_messages = require('../../utils/messages.js');
|
|
7
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
8
|
+
var signalMembersMigration = require('../../signal-members-migration-BoAJKutT.js');
|
|
9
|
+
var migrations_radioSignalsAndAria_data = require('./data.js');
|
|
10
|
+
require('@schematics/angular/utility');
|
|
11
|
+
require('typescript');
|
|
12
|
+
require('../../utils/ast.js');
|
|
13
|
+
require('../../utils/typescript.js');
|
|
14
|
+
|
|
15
|
+
const STYLE_EXTENSIONS = ['.scss', '.css'];
|
|
16
|
+
/**
|
|
17
|
+
* The two removed custom properties are a stylesheet concern, and the shared engine visits only `.ts`
|
|
18
|
+
* and `.html`. Reports an override of either; never writes, because the declaration has no replacement.
|
|
19
|
+
*/
|
|
20
|
+
function removedTokensRule(options) {
|
|
21
|
+
return async (tree, context) => {
|
|
22
|
+
const projectDefinition = await utils_packageConfig.setupOptions(options.project, tree);
|
|
23
|
+
const root = projectDefinition?.root ?? '';
|
|
24
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
25
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
26
|
+
if (!STYLE_EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
27
|
+
return;
|
|
28
|
+
const content = entry?.content.toString();
|
|
29
|
+
if (!content || !new RegExp(migrations_radioSignalsAndAria_data.REMOVED_TOKENS_PATTERN).test(content))
|
|
30
|
+
return;
|
|
31
|
+
utils_messages.logMessage(context.logger, [`${migrations_radioSignalsAndAria_data.config.label} ${filePath}`, ` ${migrations_radioSignalsAndAria_data.REMOVED_TOKENS_MESSAGE}`]);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
function radioSignalsAndAria(options) {
|
|
36
|
+
return schematics.chain([removedTokensRule(options), signalMembersMigration.signalMembersRule(migrations_radioSignalsAndAria_data.config, options)]);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.default = radioSignalsAndAria;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-radio-signals-and-aria",
|
|
4
|
+
"title": "Koobiq components radio 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
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# read-state-dwell-handlers
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Renames the `KbqReadStateDirective` dwell handlers and reports the two
|
|
5
|
+
changes a rename cannot cover.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`KbqReadStateDirective` marks its host as read once the user has dwelled on it long enough. It used
|
|
10
|
+
to measure the pointer only, so its two handlers were named after the events that called them. It now
|
|
11
|
+
measures a keyboard dwell as well, so they are named after what they measure:
|
|
12
|
+
|
|
13
|
+
| Before | After |
|
|
14
|
+
| --------------------- | -------------- |
|
|
15
|
+
| `mouseenterHandler()` | `startDwell()` |
|
|
16
|
+
| `mouseleaveHandler()` | `endDwell()` |
|
|
17
|
+
|
|
18
|
+
Both new names take an optional channel argument that defaults to the pointer, so a renamed call keeps
|
|
19
|
+
compiling and keeps meaning exactly what it did.
|
|
20
|
+
|
|
21
|
+
## What it does
|
|
22
|
+
|
|
23
|
+
The schematic walks every `.ts` file under the project root — the whole workspace when `--project` is
|
|
24
|
+
omitted, which is how `ng update` invokes it — skipping `node_modules` and `dist`, and visits only the
|
|
25
|
+
files that name `KbqReadStateDirective`. The directive has no selector: a consumer reaches it through
|
|
26
|
+
`hostDirectives` and `inject()`, so it is always named.
|
|
27
|
+
|
|
28
|
+
Within such a file the rename is applied to receivers whose static type is the directive, discovered
|
|
29
|
+
by explicit annotation (parameters, class fields, constructor parameter-properties, typed locals) or
|
|
30
|
+
by an `inject(KbqReadStateDirective, …)` / `inject<KbqReadStateDirective>(…)` initializer — the shape
|
|
31
|
+
a host normally writes, which usually carries no annotation. A method of the same name on an
|
|
32
|
+
unrelated receiver is left alone, and a call that already uses the new name is untouched, so the
|
|
33
|
+
migration is idempotent.
|
|
34
|
+
|
|
35
|
+
## What it does _not_ do (manual)
|
|
36
|
+
|
|
37
|
+
| Pattern | Manual migration |
|
|
38
|
+
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| `readState.timestamp` | Reported. It is a read-only getter now, and `number \| undefined`: it reports the start of the earliest dwell still in progress, and is `undefined` while the host is idle |
|
|
40
|
+
| `hostDirectives: [KbqReadStateDirective]` | Reported once per file. Nothing to change — it is the behaviour note below |
|
|
41
|
+
|
|
42
|
+
### Behaviour change
|
|
43
|
+
|
|
44
|
+
The pointer and the keyboard channel are tracked independently and the dwell ends only once both have
|
|
45
|
+
left the host. Two consequences no call site can point at:
|
|
46
|
+
|
|
47
|
+
- A host that keeps focus for longer than `timeToRead` is marked read without a pointer ever touching
|
|
48
|
+
it.
|
|
49
|
+
- A pointer leaving no longer ends a dwell that focus is still holding open, so the host is reported
|
|
50
|
+
read later than it used to be when both were in play.
|
|
51
|
+
|
|
52
|
+
`fix` defaults to `true`. `ng update` invokes migrations with no options at all, and `migrations.json`
|
|
53
|
+
declares no schema, so the rule applies that default itself. With `--fix false` every file that would
|
|
54
|
+
change is logged instead of written, followed by the same count either way. The reports are printed
|
|
55
|
+
in both modes.
|
|
56
|
+
|
|
57
|
+
[Params](schema.ts)
|
|
58
|
+
|
|
59
|
+
Usage for Angular Cli:
|
|
60
|
+
|
|
61
|
+
```shell
|
|
62
|
+
ng g @koobiq/components:read-state-dwell-handlers --project "<your project>"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Usage for Nx:
|
|
66
|
+
|
|
67
|
+
```shell
|
|
68
|
+
nx g @koobiq/components:read-state-dwell-handlers --project "<your project>"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Run locally
|
|
72
|
+
|
|
73
|
+
Build package
|
|
74
|
+
|
|
75
|
+
```shell
|
|
76
|
+
yarn run build:schematics
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Run command (for example, for `koobiq-docs` project)
|
|
80
|
+
|
|
81
|
+
```shell
|
|
82
|
+
ng g ./dist/components/schematics/collection.json:read-state-dwell-handlers --project koobiq-docs
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Result
|
|
86
|
+
|
|
87
|
+
#### Before
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
import { Component, inject } from '@angular/core';
|
|
91
|
+
import { KbqReadStateDirective } from '@koobiq/components/core';
|
|
92
|
+
|
|
93
|
+
@Component({
|
|
94
|
+
selector: 'my-card',
|
|
95
|
+
template: '...',
|
|
96
|
+
hostDirectives: [KbqReadStateDirective]
|
|
97
|
+
})
|
|
98
|
+
export class MyCard {
|
|
99
|
+
protected readonly readState = inject(KbqReadStateDirective, { host: true });
|
|
100
|
+
|
|
101
|
+
reveal() {
|
|
102
|
+
this.readState.mouseenterHandler();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### After
|
|
108
|
+
|
|
109
|
+
```ts
|
|
110
|
+
import { Component, inject } from '@angular/core';
|
|
111
|
+
import { KbqReadStateDirective } from '@koobiq/components/core';
|
|
112
|
+
|
|
113
|
+
@Component({
|
|
114
|
+
selector: 'my-card',
|
|
115
|
+
template: '...',
|
|
116
|
+
hostDirectives: [KbqReadStateDirective]
|
|
117
|
+
})
|
|
118
|
+
export class MyCard {
|
|
119
|
+
protected readonly readState = inject(KbqReadStateDirective, { host: true });
|
|
120
|
+
|
|
121
|
+
reveal() {
|
|
122
|
+
this.readState.startDwell();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `read-state-dwell-handlers` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqReadStateDirective` no longer tracks the pointer only, so its handlers are named after what they
|
|
7
|
+
* measure rather than after the event that used to call them. Both new names keep working with no
|
|
8
|
+
* argument — the pointer channel is their default — so the rename is a safe, value-preserving rewrite.
|
|
9
|
+
*
|
|
10
|
+
* - `readState.mouseenterHandler()` → `readState.startDwell()`
|
|
11
|
+
* - `readState.mouseleaveHandler()` → `readState.endDwell()`
|
|
12
|
+
* - `readState.timestamp` → still there, but read-only and `number | undefined` (warn)
|
|
13
|
+
*/
|
|
14
|
+
/** TypeScript type annotation, and `inject()` argument, that marks a receiver as the directive. */
|
|
15
|
+
const DIRECTIVE_TYPE = 'KbqReadStateDirective';
|
|
16
|
+
/** Renamed methods, old name → new name. Both are callable with no argument, as before. */
|
|
17
|
+
const RENAMES = new Map([
|
|
18
|
+
['mouseenterHandler', 'startDwell'],
|
|
19
|
+
['mouseleaveHandler', 'endDwell']
|
|
20
|
+
]);
|
|
21
|
+
/** Members that changed shape rather than name, so they are reported instead of rewritten. */
|
|
22
|
+
const WARN_MEMBERS = ['timestamp'];
|
|
23
|
+
/** Message emitted for a receiver-scoped read of one of {@link WARN_MEMBERS}. */
|
|
24
|
+
const TIMESTAMP_MESSAGE = 'KbqReadStateDirective.timestamp is a read-only getter now, and `number | undefined` rather than `number`: it ' +
|
|
25
|
+
'reports the start of the earliest dwell still in progress and is `undefined` while the host is neither ' +
|
|
26
|
+
'hovered nor focused. Writing to it is no longer possible — call startDwell()/endDwell() instead.';
|
|
27
|
+
/**
|
|
28
|
+
* File-scoped patterns for the change no call site can point at. Only evaluated for files that name
|
|
29
|
+
* the directive.
|
|
30
|
+
*/
|
|
31
|
+
const warnPatterns = [
|
|
32
|
+
{
|
|
33
|
+
pattern: 'hostDirectives[^\\]]*\\bKbqReadStateDirective\\b',
|
|
34
|
+
message: 'KbqReadStateDirective now measures a keyboard dwell (`focusin`/`focusout`) alongside the pointer one, ' +
|
|
35
|
+
'and reports the host as read once both channels have left it. A host that keeps focus for longer than ' +
|
|
36
|
+
'`timeToRead` is therefore marked read without a pointer ever touching it, and a pointer leaving no ' +
|
|
37
|
+
'longer ends a dwell that focus is still holding open.'
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
|
|
41
|
+
exports.DIRECTIVE_TYPE = DIRECTIVE_TYPE;
|
|
42
|
+
exports.RENAMES = RENAMES;
|
|
43
|
+
exports.TIMESTAMP_MESSAGE = TIMESTAMP_MESSAGE;
|
|
44
|
+
exports.WARN_MEMBERS = WARN_MEMBERS;
|
|
45
|
+
exports.warnPatterns = warnPatterns;
|