@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,62 @@
|
|
|
1
|
+
# clamped-text-disclosure
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Reports the call sites the clamped-text review breaks. It never writes
|
|
5
|
+
to the tree.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
The review moved the disclosure semantics onto the control that is actually operated, and returned
|
|
10
|
+
the trigger's styling to its owner:
|
|
11
|
+
|
|
12
|
+
| What | Before | After |
|
|
13
|
+
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------- |
|
|
14
|
+
| `aria-expanded` | on the `<kbq-clamped-text>` / `[kbqClampedList]` host | on the `[kbqClampedListTrigger]` element |
|
|
15
|
+
| `role`, `tabindex`, `aria-controls` | nowhere, or hand-written per call site | supplied by `KbqClampedListTrigger` |
|
|
16
|
+
| `kbq-clamped-text__toggle` on the trigger | applied to every trigger | applied only by the clamped-text template |
|
|
17
|
+
| `KbqClampedText.isCollapsed` | `input()` + `output()` pair | `model()` |
|
|
18
|
+
| `isCollapsedChange` | fired on measurement and echoed parent writes | user intent only |
|
|
19
|
+
| `KbqClampedText.hasToggle` | `WritableSignal<boolean>` | `Signal<boolean>` |
|
|
20
|
+
| `KbqClampedText.text`, `KbqClampedText.textContainer` | public view queries | `protected` |
|
|
21
|
+
|
|
22
|
+
Both containers are role-less wrappers, so `aria-expanded` on them conveyed nothing to assistive
|
|
23
|
+
technology and sat on an element the user cannot operate. The trigger — the element that takes the
|
|
24
|
+
click and the Enter/Space keys — carried no semantics at all, which is why the library's own
|
|
25
|
+
examples disagreed with each other about what to write on it.
|
|
26
|
+
|
|
27
|
+
`kbq-clamped-text__toggle` has one rule, in the clamped-text stylesheet, injected only once a
|
|
28
|
+
`KbqClampedText` exists. A `kbqClampedList` trigger therefore had spacing or not depending on
|
|
29
|
+
whether an unrelated component happened to be on the page, and both in-repo examples cancelled it
|
|
30
|
+
independently.
|
|
31
|
+
|
|
32
|
+
## What it does _not_ do
|
|
33
|
+
|
|
34
|
+
Nothing is rewritten. Where `aria-expanded` should be read from, what replaces a cancelled margin
|
|
35
|
+
and whether an `isCollapsedChange` handler wanted the mount-time value are all decisions.
|
|
36
|
+
|
|
37
|
+
| Pattern | Manual migration |
|
|
38
|
+
| ------------------------------------------- | ---------------------------------------------------------------------- |
|
|
39
|
+
| `aria-expanded` on the container | Read it off the `[kbqClampedListTrigger]` element |
|
|
40
|
+
| `.kbq-clamped-text__toggle` override | Drop it; the list trigger has no spacing of its own now |
|
|
41
|
+
| `role="button"` on the trigger | Remove it — the directive supplies it, and an explicit role still wins |
|
|
42
|
+
| `(isCollapsedChange)` for the initial state | Read the state from `[(isCollapsed)]`; the output is user intent only |
|
|
43
|
+
| `.hasToggle.set(…)` | Read-only; it is written by the measurement |
|
|
44
|
+
| `.text()` / `.textContainer()` | Protected; query the element from your own template |
|
|
45
|
+
|
|
46
|
+
## Notes with no call site to point at
|
|
47
|
+
|
|
48
|
+
- Collapsing scrolls with `{ block: 'nearest', inline: 'nearest' }` instead of centering on both
|
|
49
|
+
axes, so it no longer pans an ancestor horizontally. `[scrollOnCollapse]="false"` turns it off.
|
|
50
|
+
- Space and Enter on the trigger call `preventDefault()`. Space no longer scrolls the page while
|
|
51
|
+
expanding, and a native `<button>` host no longer toggles twice from the synthetic click.
|
|
52
|
+
- `rows` takes a string attribute now, so `rows="3"` compiles under `strictTemplates`.
|
|
53
|
+
- `[debounceTime]` is re-read on every resize instead of once in `ngAfterViewInit`.
|
|
54
|
+
- Nothing renders before the first measurement: the toggle appears once the content is known to
|
|
55
|
+
overflow, and the text stays clamped until then rather than flashing in full — including in
|
|
56
|
+
server-rendered and prerendered output.
|
|
57
|
+
|
|
58
|
+
## Running it manually
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
ng generate @koobiq/components:clamped-text-disclosure --project my-app
|
|
62
|
+
```
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `clamped-text-disclosure` migration.
|
|
5
|
+
*
|
|
6
|
+
* The clamped-text review moved the disclosure semantics onto the control that is actually
|
|
7
|
+
* operated and tightened the surface around the measurement:
|
|
8
|
+
*
|
|
9
|
+
* - `aria-expanded` is no longer rendered on the `<kbq-clamped-text>` host or on the
|
|
10
|
+
* `[kbqClampedList]` container. Both are role-less wrappers; `KbqClampedListTrigger` publishes
|
|
11
|
+
* `role`, `tabindex`, `aria-expanded` and `aria-controls` on itself now.
|
|
12
|
+
* - `KbqClampedListTrigger` no longer puts `kbq-clamped-text__toggle` on its host, so a
|
|
13
|
+
* `kbqClampedList` trigger no longer inherits the clamped-text margin — which only applied when
|
|
14
|
+
* an unrelated `kbq-clamped-text` happened to be on the page.
|
|
15
|
+
* - `KbqClampedText.isCollapsed` is a `model()`. `isCollapsedChange` reports user intent only: it
|
|
16
|
+
* no longer fires for the component's first measurement nor echoes a value the parent wrote.
|
|
17
|
+
* - `KbqClampedText.hasToggle` is read-only, and `text` / `textContainer` are `protected`.
|
|
18
|
+
* - Collapsing scrolls with `{ block: 'nearest', inline: 'nearest' }` and can be turned off with
|
|
19
|
+
* `[scrollOnCollapse]="false"`.
|
|
20
|
+
*
|
|
21
|
+
* Warn-only. Where `aria-expanded` has to be read from, what replaces a removed class and whether
|
|
22
|
+
* an `isCollapsedChange` handler wanted the initial value are all decisions an automatic rewrite cannot make.
|
|
23
|
+
*/
|
|
24
|
+
/** Import specifier that marks a file as a clamped-text consumer. */
|
|
25
|
+
const CLAMPED_TEXT_PACKAGE = '@koobiq/components/clamped-text';
|
|
26
|
+
/** Identifier, element, attribute and class shapes that mark a consumer without an import. */
|
|
27
|
+
const CLAMPED_TEXT_TYPE = '\\bKbqClamped\\w*\\b|\\bkbq-clamped-\\w+|\\bkbqClampedList\\w*\\b';
|
|
28
|
+
/** Files that render one of the two containers, as opposed to naming any symbol of the package. */
|
|
29
|
+
const CLAMPED_CONTAINER = '\\bKbqClampedText\\b|\\bkbq-clamped-text\\b|\\bkbqClampedList\\b|\\bKbqClampedList\\b';
|
|
30
|
+
/** Files that place the trigger themselves. */
|
|
31
|
+
const CLAMPED_TRIGGER = '\\bkbqClampedListTrigger\\b|\\bKbqClampedListTrigger\\b';
|
|
32
|
+
/** Files that render the clamped text, whose two-way channel changed semantics. */
|
|
33
|
+
const CLAMPED_TEXT_ONLY = '\\bKbqClampedText\\b|\\bkbq-clamped-text\\b';
|
|
34
|
+
const warnPatterns = [
|
|
35
|
+
{
|
|
36
|
+
anchor: CLAMPED_CONTAINER,
|
|
37
|
+
pattern: '\\baria-expanded\\b',
|
|
38
|
+
message: 'aria-expanded is no longer rendered on the <kbq-clamped-text> host or on the [kbqClampedList] ' +
|
|
39
|
+
'container — both are role-less wrappers, where the attribute conveyed nothing. The trigger ' +
|
|
40
|
+
'publishes it now, together with role="button", tabindex and aria-controls. A selector or ' +
|
|
41
|
+
'assertion that reads the state off the container has to read it off the ' +
|
|
42
|
+
'[kbqClampedListTrigger] element instead.'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
anchor: CLAMPED_TEXT_TYPE,
|
|
46
|
+
pattern: '\\bkbq-clamped-text__toggle\\b',
|
|
47
|
+
message: 'KbqClampedListTrigger no longer carries the kbq-clamped-text__toggle class: the margin it ' +
|
|
48
|
+
'brought came from the clamped-text stylesheet and only applied when a kbq-clamped-text ' +
|
|
49
|
+
'happened to be rendered somewhere on the page. A kbqClampedList trigger now has no spacing ' +
|
|
50
|
+
'of its own — lay it out with the list, and drop any margin-top override written against it. ' +
|
|
51
|
+
'The clamped-text toggle keeps the class and is adjustable through ' +
|
|
52
|
+
'--kbq-clamped-text-size-toggle-margin.'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
anchor: CLAMPED_TRIGGER,
|
|
56
|
+
pattern: '\\brole\\s*=\\s*["\'`]button["\'`]',
|
|
57
|
+
message: 'kbqClampedListTrigger supplies role="button" and tabindex="0" itself. A hand-written role on ' +
|
|
58
|
+
'the trigger element is now a duplicate; remove it unless you deliberately want a different ' +
|
|
59
|
+
'role, which still wins over the directive default.'
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
anchor: CLAMPED_TEXT_ONLY,
|
|
63
|
+
pattern: '\\bisCollapsedChange\\b',
|
|
64
|
+
message: 'KbqClampedText.isCollapsed is a model() and isCollapsedChange reports user intent only: it no ' +
|
|
65
|
+
"longer fires for the component's own first measurement, and no longer echoes a value the " +
|
|
66
|
+
'parent wrote into [isCollapsed]. A handler that relied on the mount-time emission to learn ' +
|
|
67
|
+
'the initial state has to read it from [(isCollapsed)] instead.'
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
anchor: CLAMPED_TEXT_ONLY,
|
|
71
|
+
pattern: '\\.\\s*hasToggle\\s*\\.\\s*(?:set|update)\\s*\\(',
|
|
72
|
+
message: 'KbqClampedText.hasToggle is a read-only Signal now, matching the KbqClamped contract. It is ' +
|
|
73
|
+
'written by the measurement; setting it from outside desynchronized the component from its ' +
|
|
74
|
+
'own layout.'
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
anchor: CLAMPED_TEXT_ONLY,
|
|
78
|
+
pattern: '\\.\\s*(?:textContainer|text)\\s*\\(\\s*\\)\\s*\\.\\s*nativeElement',
|
|
79
|
+
message: 'KbqClampedText.text and KbqClampedText.textContainer are protected: they were view queries ' +
|
|
80
|
+
"into the component's own DOM. Query the rendered element from the host template instead."
|
|
81
|
+
}
|
|
82
|
+
];
|
|
83
|
+
/** Printed once per project, after the per-file reports. */
|
|
84
|
+
const SUMMARY = [
|
|
85
|
+
' Collapsing scrolls with { block: "nearest", inline: "nearest" } instead of centering on both ' +
|
|
86
|
+
'axes, so it no longer pans an ancestor horizontally, and [scrollOnCollapse]="false" turns it ' +
|
|
87
|
+
'off entirely.',
|
|
88
|
+
' Space and Enter on the trigger call preventDefault(): Space no longer scrolls the page while ' +
|
|
89
|
+
'expanding, and a native <button> host no longer toggles twice from the synthetic click.',
|
|
90
|
+
' rows takes a string attribute now (numberAttribute), so rows="3" compiles under strictTemplates ' +
|
|
91
|
+
'the way debounceTime="300" already did.',
|
|
92
|
+
' [debounceTime] is re-read on every resize instead of once at ngAfterViewInit, so a bound value ' +
|
|
93
|
+
'that changes now applies.',
|
|
94
|
+
' Nothing renders before the first measurement any more: the toggle appears once the content is ' +
|
|
95
|
+
'known to overflow, and the text is clamped until then rather than flashing in full.'
|
|
96
|
+
];
|
|
97
|
+
|
|
98
|
+
exports.CLAMPED_TEXT_PACKAGE = CLAMPED_TEXT_PACKAGE;
|
|
99
|
+
exports.CLAMPED_TEXT_TYPE = CLAMPED_TEXT_TYPE;
|
|
100
|
+
exports.SUMMARY = SUMMARY;
|
|
101
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.js');
|
|
6
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
7
|
+
var migrations_clampedTextDisclosure_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[clamped-text-disclosure]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html', '.scss', '.css'];
|
|
13
|
+
/** A file is a clamped-text consumer if it imports the package, names a symbol, or renders one. */
|
|
14
|
+
function referencesClampedText(content) {
|
|
15
|
+
return content.includes(migrations_clampedTextDisclosure_data.CLAMPED_TEXT_PACKAGE) || new RegExp(migrations_clampedTextDisclosure_data.CLAMPED_TEXT_TYPE).test(content);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reports the call sites the clamped-text review breaks: the `aria-expanded` that moved from the
|
|
19
|
+
* containers to the trigger, the borrowed toggle class the trigger stopped applying, the
|
|
20
|
+
* `isCollapsedChange` that no longer fires for the component's own measurement, and the members
|
|
21
|
+
* that became read-only or protected. Never writes: each of those is a decision, not a rename.
|
|
22
|
+
*
|
|
23
|
+
* `.scss` and `.css` are visited as well, because the borrowed class is most often overridden from
|
|
24
|
+
* a stylesheet rather than from a template.
|
|
25
|
+
*/
|
|
26
|
+
function clampedTextDisclosure(options) {
|
|
27
|
+
return async (tree, context) => {
|
|
28
|
+
const { project } = options;
|
|
29
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
30
|
+
const root = projectDefinition?.root ?? '';
|
|
31
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
32
|
+
let consumers = 0;
|
|
33
|
+
let reported = 0;
|
|
34
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
35
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
36
|
+
return;
|
|
37
|
+
const content = entry?.content.toString();
|
|
38
|
+
if (!content || !referencesClampedText(content))
|
|
39
|
+
return;
|
|
40
|
+
consumers++;
|
|
41
|
+
for (const { anchor, pattern, message } of migrations_clampedTextDisclosure_data.warnPatterns) {
|
|
42
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
43
|
+
continue;
|
|
44
|
+
reported++;
|
|
45
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
// Nothing here renders a clamped text or list, so the summary would only be noise.
|
|
49
|
+
if (consumers === 0)
|
|
50
|
+
return;
|
|
51
|
+
utils_messages.logMessage(context.logger, [
|
|
52
|
+
`${LABEL} processed @koobiq/components/clamped-text under "${root || '<workspace root>'}", ` +
|
|
53
|
+
`${consumers} file(s) reference the package, ${reported} call site(s) reported.`,
|
|
54
|
+
...migrations_clampedTextDisclosure_data.SUMMARY
|
|
55
|
+
]);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
exports.default = clampedTextDisclosure;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-clamped-text-disclosure",
|
|
4
|
+
"title": "Koobiq components clamped-text review migration",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Name of the project to inspect. If omitted, the migration runs over the whole tree.",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "projectName"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# code-block-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21` (registered for
|
|
4
|
+
`21.0.0-0`). Moves `KbqCodeBlock` consumers onto its finished signal-based API and reports what has no
|
|
5
|
+
mechanical translation.
|
|
6
|
+
|
|
7
|
+
## Background
|
|
8
|
+
|
|
9
|
+
`maxHeight` was published as `InputSignal<number>` over an `undefined!` default, so a code block with
|
|
10
|
+
no `[maxHeight]` binding reported `undefined` from a non-nullable type:
|
|
11
|
+
|
|
12
|
+
```ts
|
|
13
|
+
const height: number = codeBlock.maxHeight(); // held undefined
|
|
14
|
+
if (codeBlock.maxHeight() > 0) { … } // NaN comparison, never true
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
It reports `number | undefined` now, and a value that is not cleanly numeric — a valueless
|
|
18
|
+
`maxHeight` attribute, `'200px'` — reports `undefined` rather than `NaN`. `[maxHeight]="undefined"`
|
|
19
|
+
used to hand back `NaN`; that is the one runtime change. The call sites that were quietly wrong now
|
|
20
|
+
fail to compile.
|
|
21
|
+
|
|
22
|
+
`KbqCodeBlockHighlight.file` was a write-only required input: a setter with no getter that kicked off
|
|
23
|
+
highlighting as a side effect. It is `input.required()` driven by an effect now, so it can finally be
|
|
24
|
+
read — and a programmatic write no longer compiles.
|
|
25
|
+
|
|
26
|
+
## What it rewrites
|
|
27
|
+
|
|
28
|
+
`KbqCodeBlock` has no decorator inputs left. `softWrap`, `viewAll`, `canDownload`, `files`,
|
|
29
|
+
`activeFileIndex` and `hideTabs` are `WritableSignal`s over a backing `input()`, so both directions
|
|
30
|
+
are mechanical:
|
|
31
|
+
|
|
32
|
+
| Before | After |
|
|
33
|
+
| --------------------------- | ------------------------------ |
|
|
34
|
+
| `block.softWrap` | `block.softWrap()` |
|
|
35
|
+
| `block.activeFileIndex = 2` | `block.activeFileIndex.set(2)` |
|
|
36
|
+
|
|
37
|
+
On receivers explicitly typed `KbqCodeBlock`, on the `inject()` / `viewChild()` initializer forms, and
|
|
38
|
+
through template reference variables on `<kbq-code-block>` in external and inline templates. Reads that
|
|
39
|
+
are already calls are left alone, so the schematic is idempotent.
|
|
40
|
+
|
|
41
|
+
A `model()` would have been the obvious shape for the six, but `ModelOptions` carries no `transform`,
|
|
42
|
+
and every one of them needs `booleanAttribute` or `numberAttribute` to keep a valueless attribute such
|
|
43
|
+
as `<kbq-code-block softWrap>` working.
|
|
44
|
+
|
|
45
|
+
## What it does _not_ do
|
|
46
|
+
|
|
47
|
+
Narrowing `number | undefined` back to `number` is a decision — `?? 0`, a non-null assertion, or
|
|
48
|
+
handling the unset state — and turning a `file` write into a `[file]` binding is a template edit. A
|
|
49
|
+
compound assignment (`||=`, `+=`) or an increment would need the receiver spelled twice, so it is
|
|
50
|
+
reported rather than rewritten, and the backing inputs — `softWrapInput` and friends — cannot be
|
|
51
|
+
written at all any more. The removed `canLoad` and `codeFiles` aliases are migrated by `v21-upgrade`.
|
|
52
|
+
|
|
53
|
+
| Pattern | Manual migration |
|
|
54
|
+
| ---------------------------------------- | ------------------------------------------------------------------- |
|
|
55
|
+
| `.maxHeight()` on a `KbqCodeBlock` | `?? 0` for the common reading, or handle the unset state explicitly |
|
|
56
|
+
| `.file = …` on a `KbqCodeBlockHighlight` | Bind `[file]`; the value is readable as `file()` now |
|
|
57
|
+
|
|
58
|
+
## Notes with no call site to point at
|
|
59
|
+
|
|
60
|
+
- The `max-height` the code block applies while `viewAll` is off is a `computed`. It was a getter read
|
|
61
|
+
from a `[style.max-height.px]` binding, so it only re-evaluated when something else marked the view
|
|
62
|
+
dirty; it follows `maxHeight` and `viewAll` directly now.
|
|
63
|
+
- `softWrap`, `viewAll`, `canDownload`, `activeFileIndex` and `files` are backed by signals. They are
|
|
64
|
+
accessor inputs with the same types and the same two-way outputs — they are written by the component
|
|
65
|
+
as well as by the binding, and a `model()` cannot carry the `booleanAttribute` /
|
|
66
|
+
`numberAttribute` transform they need. Four of the five were plain public fields before, so they are
|
|
67
|
+
no longer own properties: they do not appear in `Object.keys`, a spread or `JSON.stringify`, and a
|
|
68
|
+
subclass field of the same name shadows the accessor under `useDefineForClassFields`.
|
|
69
|
+
- **`hideTabs` is derived rather than written.** A single file with no filename still hides the tab
|
|
70
|
+
bar, but the component no longer writes `true` into its own input to do it: the write latched the
|
|
71
|
+
bar off for good and re-emitted `hideTabsChange` on every `files` assignment. `[hideTabs]="false"`
|
|
72
|
+
no longer shows the bar for a lone unnamed file.
|
|
73
|
+
- **An `activeFileIndex` outside `files` renders the first file, and an empty `files` renders no code
|
|
74
|
+
at all.** Both used to reach `files[activeFileIndex]` and throw on the undefined result. The index
|
|
75
|
+
itself is left as bound: resetting it wrote back into a `[(activeFileIndex)]` while the parent was
|
|
76
|
+
still updating.
|
|
77
|
+
- A failed `highlight.js` load no longer latches `pending` on, and the line-numbers plugin installs
|
|
78
|
+
its `<style>` and its `copy` listener once instead of once per code block.
|
|
79
|
+
|
|
80
|
+
## Running it manually
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
ng generate @koobiq/components:code-block-signals --project my-app
|
|
84
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `code-block-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqCodeBlock` finished its move to signals: nothing on it is a decorator input any more.
|
|
7
|
+
*
|
|
8
|
+
* - `softWrap`, `viewAll`, `canDownload`, `files`, `activeFileIndex`, `hideTabs` → `WritableSignal`s over
|
|
9
|
+
* a backing `input()`, so a read becomes a call and a plain write becomes `.set(…)` (auto-fixed)
|
|
10
|
+
* - `maxHeight` was already a signal input; only its type changed (warn)
|
|
11
|
+
*
|
|
12
|
+
* A `model()` would have been the obvious shape for the six, but `ModelOptions` carries no `transform`,
|
|
13
|
+
* and every one of them needs `booleanAttribute` or `numberAttribute` to keep a valueless attribute
|
|
14
|
+
* (`<kbq-code-block softWrap>`) working. Hence the backing input plus a `linkedSignal` over it.
|
|
15
|
+
*/
|
|
16
|
+
/** Members whose value is unchanged; a read must become a call, a write must become `.set(…)`. */
|
|
17
|
+
const SIGNAL_MEMBERS = [
|
|
18
|
+
'softWrap',
|
|
19
|
+
'viewAll',
|
|
20
|
+
'canDownload',
|
|
21
|
+
'files',
|
|
22
|
+
'activeFileIndex',
|
|
23
|
+
'hideTabs'
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Members the migration reports rather than rewrites: `maxHeight` was already a signal input and only
|
|
27
|
+
* changed its type, and `KbqCodeBlockHighlight.file` turned from a write-only setter into a required
|
|
28
|
+
* input. Both are reported per file, because a summary line names no call site.
|
|
29
|
+
*/
|
|
30
|
+
const REPORTED_MEMBERS = ['maxHeight', 'file'];
|
|
31
|
+
/** Signal-API methods reachable on a signal; a read followed by one is already migrated. */
|
|
32
|
+
const SIGNAL_API_METHODS = new Set(['set', 'update', 'asReadonly', 'subscribe']);
|
|
33
|
+
/** `exportAs` name a template reference has to carry to be the code block rather than some other directive. */
|
|
34
|
+
const CODE_BLOCK_EXPORT_AS = 'kbqCodeBlock';
|
|
35
|
+
/** TypeScript type annotation that marks a receiver as a code block. */
|
|
36
|
+
const CODE_BLOCK_TYPE = 'KbqCodeBlock';
|
|
37
|
+
/** Type annotation that marks a receiver as the highlight directive, whose `file` input also changed. */
|
|
38
|
+
const HIGHLIGHT_TYPE = 'KbqCodeBlockHighlight';
|
|
39
|
+
/** Element selector whose template reference variables (`#ref`) point at a code block. */
|
|
40
|
+
const CODE_BLOCK_ELEMENT = 'kbq-code-block';
|
|
41
|
+
/** Import specifier that marks a file as a code block consumer. */
|
|
42
|
+
const CODE_BLOCK_PACKAGE = '@koobiq/components/code-block';
|
|
43
|
+
/**
|
|
44
|
+
* The backing inputs behind the six signals. Public, because a `protected` input cannot be bound from a
|
|
45
|
+
* consumer's template, but they are `@docs-private` plumbing: read the signal that carries the attribute's
|
|
46
|
+
* own name instead. The removed `canLoadInput` and `codeFilesInput` are reported by `v21-upgrade`.
|
|
47
|
+
*/
|
|
48
|
+
const PLUMBING_MEMBERS = [
|
|
49
|
+
'softWrapInput',
|
|
50
|
+
'viewAllInput',
|
|
51
|
+
'canDownloadInput',
|
|
52
|
+
'filesInput',
|
|
53
|
+
'activeFileIndexInput',
|
|
54
|
+
'hideTabsInput'
|
|
55
|
+
];
|
|
56
|
+
/** Reported for a write the rewrite cannot translate on its own. */
|
|
57
|
+
const writeMessage = (members) => `These writes were left untouched: ${[...members].join(', ')}. A plain \`x.softWrap = value\` is ` +
|
|
58
|
+
'rewritten to `x.softWrap.set(value)`, but a compound assignment (`||=`, `+=`) or an increment would ' +
|
|
59
|
+
'need the receiver spelled twice.';
|
|
60
|
+
const reportedMessage = (members) => `These KbqCodeBlock members changed shape without changing name: ${[...members].join(', ')}. ` +
|
|
61
|
+
'`maxHeight` reports `number | undefined` instead of `number` and never NaN, so decide per call site ' +
|
|
62
|
+
'between `?? 0` and handling the unset state. `KbqCodeBlockHighlight.file` was a write-only setter ' +
|
|
63
|
+
'and is a required input now: bind `[file]`, and read it as `file()`.';
|
|
64
|
+
const plumbingMessage = (members) => `These KbqCodeBlock members are backing inputs: ${[...members].join(', ')}. They exist to carry the ` +
|
|
65
|
+
'attribute and its transform, they are read-only, and they report what was bound rather than what the ' +
|
|
66
|
+
'component currently holds. Bind the attribute they alias - `softWrap`, `viewAll`, `canDownload`, ' +
|
|
67
|
+
"`files`, `activeFileIndex`, `hideTabs` - and read the signal that carries the attribute's own name.";
|
|
68
|
+
/**
|
|
69
|
+
* Reported for a read through a signal query, which is a signal holding the component: the read needs two
|
|
70
|
+
* calls rather than one. Emitted from the AST pass rather than a regex, so it follows the same receiver
|
|
71
|
+
* resolution as the rewrite.
|
|
72
|
+
*/
|
|
73
|
+
const signalQueryMessage = (member, required) => `A signal query holds the component behind a call of its own, so reading \`${member}\` through it ` +
|
|
74
|
+
`needs two calls: \`this.codeBlock()${required ? '' : '?'}.${member}()\`.` +
|
|
75
|
+
(required ? '' : ' The query is optional, so keep the `?.`.') +
|
|
76
|
+
' Those reads are left untouched - migrate them by hand.';
|
|
77
|
+
/** Reported when a template renders the code block but cannot be parsed, so nothing in it was inspected. */
|
|
78
|
+
const UNPARSEABLE_TEMPLATE_MESSAGE = 'This template renders <kbq-code-block> but could not be parsed, so it was left untouched. Migrate ' +
|
|
79
|
+
'reads through its template reference variables by hand. If every template is reported this way, ' +
|
|
80
|
+
'`@angular/compiler` could not be loaded from this install.';
|
|
81
|
+
/**
|
|
82
|
+
* Reported when a file names `KbqCodeBlock` in a type position the receiver pass cannot scope to a single
|
|
83
|
+
* identifier - a union, an array, a `QueryList<…>`, a cast, a return type - or reads a member in a shape
|
|
84
|
+
* the access pass cannot reach.
|
|
85
|
+
*/
|
|
86
|
+
const UNRESOLVED_RECEIVER_MESSAGE = 'KbqCodeBlock is used here in a way this migration cannot resolve to a single receiver, so any signal ' +
|
|
87
|
+
'read through it was left untouched. Check these lines by hand:';
|
|
88
|
+
/** Printed once per project, after the per-file reports. */
|
|
89
|
+
const SUMMARY = [
|
|
90
|
+
' `maxHeight` reports `number | undefined` instead of `number`, and a value that is not cleanly ' +
|
|
91
|
+
"numeric - a valueless `maxHeight` attribute, `'200px'` - reports `undefined` rather than NaN. " +
|
|
92
|
+
'It was declared non-nullable over an `undefined!` default, so a block with no binding always ' +
|
|
93
|
+
'handed back `undefined` behind a `number` type.',
|
|
94
|
+
' `KbqCodeBlockHighlight.file` was a write-only required input that started highlighting as a side ' +
|
|
95
|
+
'effect. It is a required signal input driven by an effect now, so it can finally be read - and a ' +
|
|
96
|
+
'programmatic write no longer compiles.',
|
|
97
|
+
' Reading `hideTabs` reports what was bound. What the header actually does is `tabsHidden()`, which ' +
|
|
98
|
+
'adds the rule that a single file with no filename hides the bar; the component used to write that ' +
|
|
99
|
+
'rule into `hideTabs` itself, which latched the bar off for good.',
|
|
100
|
+
' An `activeFileIndex` outside `files` renders the first file instead of the indexed one, and an ' +
|
|
101
|
+
'empty `files` renders no code at all. Both used to reach `files[activeFileIndex]` and throw on ' +
|
|
102
|
+
'the undefined result. The index itself is left alone: resetting it wrote back into ' +
|
|
103
|
+
'`[(activeFileIndex)]` while the parent was still updating.'
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
exports.CODE_BLOCK_ELEMENT = CODE_BLOCK_ELEMENT;
|
|
107
|
+
exports.CODE_BLOCK_EXPORT_AS = CODE_BLOCK_EXPORT_AS;
|
|
108
|
+
exports.CODE_BLOCK_PACKAGE = CODE_BLOCK_PACKAGE;
|
|
109
|
+
exports.CODE_BLOCK_TYPE = CODE_BLOCK_TYPE;
|
|
110
|
+
exports.HIGHLIGHT_TYPE = HIGHLIGHT_TYPE;
|
|
111
|
+
exports.PLUMBING_MEMBERS = PLUMBING_MEMBERS;
|
|
112
|
+
exports.REPORTED_MEMBERS = REPORTED_MEMBERS;
|
|
113
|
+
exports.SIGNAL_API_METHODS = SIGNAL_API_METHODS;
|
|
114
|
+
exports.SIGNAL_MEMBERS = SIGNAL_MEMBERS;
|
|
115
|
+
exports.SUMMARY = SUMMARY;
|
|
116
|
+
exports.UNPARSEABLE_TEMPLATE_MESSAGE = UNPARSEABLE_TEMPLATE_MESSAGE;
|
|
117
|
+
exports.UNRESOLVED_RECEIVER_MESSAGE = UNRESOLVED_RECEIVER_MESSAGE;
|
|
118
|
+
exports.plumbingMessage = plumbingMessage;
|
|
119
|
+
exports.reportedMessage = reportedMessage;
|
|
120
|
+
exports.signalQueryMessage = signalQueryMessage;
|
|
121
|
+
exports.writeMessage = writeMessage;
|