@koobiq/components 20.4.1 → 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 +486 -165
- 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 -187
- 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,106 @@
|
|
|
1
|
+
# modal-dialog-semantics
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Reports what the modal review changed for consumers: the members that
|
|
5
|
+
disappeared or became protected, and the close controls that stopped being inert on the
|
|
6
|
+
declarative path. It never writes to the tree.
|
|
7
|
+
|
|
8
|
+
## Background
|
|
9
|
+
|
|
10
|
+
The dialog is a real dialog now, and its two entry paths behave the same.
|
|
11
|
+
|
|
12
|
+
| Member | Before | After |
|
|
13
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | ----------- |
|
|
14
|
+
| `transformOrigin`, `getKbqFooter()`, `getContainerClasses()`, `autoFocusedButtons` | public | removed |
|
|
15
|
+
| `ModalUtil`, `modalUtilObject`, `IClickPosition` | public | removed |
|
|
16
|
+
| `handleCloseResult`, `getButtonCallableProp`, `isModalType`, `isTemplateRef`, `isNonEmptyString`, `isComponent`, `isModalButtons`, `onClickMask`, `onClickOkCancel`, `onButtonClick`, `onKeyDown` | public | `protected` |
|
|
17
|
+
| `maskAnimationClassMap`, `modalAnimationClassMap` | public | `protected` |
|
|
18
|
+
|
|
19
|
+
`transformOrigin` deserves a note. It was recomputed on every open from the last document click
|
|
20
|
+
position, which starts at `{x: -1, y: -1}` and was never reset, and it was applied against keyframes
|
|
21
|
+
that end at `transform: scale(1)` — against which `transform-origin` is a no-op. Nothing it produced
|
|
22
|
+
was ever visible, and the document-wide click listener feeding it was registered at module load and
|
|
23
|
+
never removed.
|
|
24
|
+
|
|
25
|
+
## The behaviour changes
|
|
26
|
+
|
|
27
|
+
**`(kbqOnOk)` / `(kbqOnCancel)` close the dialog now.** `handleCloseResult` branched on the runtime
|
|
28
|
+
type of the trigger: an `EventEmitter` was emitted and the method returned. Both default to
|
|
29
|
+
emitters, and only `KbqModalService.create()` replaced them with closures — so on a declarative
|
|
30
|
+
`<kbq-modal [(kbqVisible)]>` the ×, the dim layer and the predefined OK/Cancel buttons emitted and
|
|
31
|
+
did nothing at all. The emitter form is a notification now; the veto lives on the callable form,
|
|
32
|
+
which keeps the dialog open by returning `false`.
|
|
33
|
+
|
|
34
|
+
**<kbd>Escape</kbd> has one implementation.** It honours `kbqCloseByESC` on both paths — a
|
|
35
|
+
declarative `[kbqCloseByESC]="false"` used to close anyway — and it routes through `kbqOnCancel`, so
|
|
36
|
+
a callback returning `false` vetoes it, which it could not do on the service path either.
|
|
37
|
+
|
|
38
|
+
**A service-created dialog is destroyed with its opener.** Its lifetime is bound to
|
|
39
|
+
`options.injector`, or to the root environment injector when none is passed. Destroying the opener
|
|
40
|
+
used to leave the dialog painted over the next view, with `afterClose` never emitting and the page
|
|
41
|
+
scroll still locked.
|
|
42
|
+
|
|
43
|
+
## What it does _not_ do
|
|
44
|
+
|
|
45
|
+
Nothing is rewritten. A removed member has no replacement expression, and whether a dialog should
|
|
46
|
+
still close where it used to stay open is a decision the schematic cannot make.
|
|
47
|
+
|
|
48
|
+
| Pattern | Manual migration |
|
|
49
|
+
| --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
50
|
+
| `(kbqOnOk)` / `(kbqOnCancel)` | Nothing, unless you relied on the dialog staying open — then pass a function that returns `false` |
|
|
51
|
+
| `.transformOrigin` / `.getKbqFooter()` / … | Delete the call; none of them produced anything a host could use |
|
|
52
|
+
| `.handleCloseResult()` / `.isTemplateRef()` / … | Protected; use `open()`/`close()`/`destroy()`, `triggerOk()`, `triggerCancel()` |
|
|
53
|
+
| `ModalUtil` / `modalUtilObject` | Delete the import |
|
|
54
|
+
| `.kbq-modal-open` / `--kbq-modal-size-close-button-margin-left` | Delete the rule; neither had a reader |
|
|
55
|
+
|
|
56
|
+
## Why the inputs are still decorators
|
|
57
|
+
|
|
58
|
+
Every other component in this review series ended on `input()`/`model()`. `KbqModalComponent` did
|
|
59
|
+
not, deliberately, and no consumer read needs an added `()`.
|
|
60
|
+
|
|
61
|
+
`ModalBuilderForService.changeProps` applies the whole options object with
|
|
62
|
+
`Object.assign(this.modalRef.instance, inputs)`. A signal input is a function held on the instance,
|
|
63
|
+
so a bulk assignment overwrites the `InputSignal` itself rather than writing through it — the
|
|
64
|
+
imperative path would have to be rewritten to a per-key `componentRef.setInput()`, with a runtime
|
|
65
|
+
allow-list standing in for the type checking `Object.assign` currently gets for free.
|
|
66
|
+
|
|
67
|
+
`kbqOnOk` and `kbqOnCancel` are the harder half: each is declared `@Input() @Output()` on one
|
|
68
|
+
property, holding either an `EventEmitter` or a callback, and branched on at runtime. There is no
|
|
69
|
+
signal shape for a member that is an input and an output at once, so splitting them is a second
|
|
70
|
+
breaking change to an API this migration has already changed the semantics of. Doing both at once
|
|
71
|
+
would leave consumers no working intermediate state.
|
|
72
|
+
|
|
73
|
+
`kbqVisible` is the one member that would collapse cleanly into `model()` — it is an accessor pair
|
|
74
|
+
with a matching `kbqVisibleChange` output — but it is written from `changeProps` like the rest, and
|
|
75
|
+
`ngOnChanges` on it is what drives `handleVisibleStateChange`. It moves when the two above do.
|
|
76
|
+
|
|
77
|
+
## Notes with no call site to point at
|
|
78
|
+
|
|
79
|
+
- The dialog carries `role="dialog"`, `aria-modal="true"` and an accessible name — `kbqTitle`, or
|
|
80
|
+
the new `kbqAriaLabel` option when there is no title. A confirm or header-less dialog opened
|
|
81
|
+
without `kbqAriaLabel` is announced unnamed.
|
|
82
|
+
- A manually composed dialog is named and described by its own `kbq-modal-title` and
|
|
83
|
+
`kbq-modal-caption`, on the same `aria-labelledby`/`aria-describedby` attributes the service path
|
|
84
|
+
uses, so the two entry paths announce alike.
|
|
85
|
+
- `kbq-modal-title` projects a `[kbqModalTitleActions]` slot, rendered beside the heading and
|
|
86
|
+
outside its two-line clamp, for controls that belong next to the title rather than in the footer.
|
|
87
|
+
- While a dialog is shown, every body child that does not contain an overlay is marked `inert`, and
|
|
88
|
+
so is every dialog below the topmost one. Code that reaches into the page behind an open dialog no
|
|
89
|
+
longer takes effect.
|
|
90
|
+
- Initial focus follows the new `kbqAutoFocus` option (`'first-tabbable'` by default, plus
|
|
91
|
+
`'dialog'`, `'first-heading'` and `false`), with `[cdkFocusInitial]`/`autofocus` winning over it.
|
|
92
|
+
- `kbqAfterOpen`/`kbqAfterClose` passed in the options are mirrored onto the dialog instead of
|
|
93
|
+
replacing its own emitters, and a declarative modal no longer emits `kbqBeforeClose`/`kbqAfterClose`
|
|
94
|
+
once on creation.
|
|
95
|
+
- The dialog is a flex column capped at the viewport minus `--kbq-modal-size-viewport-inset`, so only
|
|
96
|
+
the body scrolls. A host that overrode the old `max-height: calc(100vh - 260px)` on
|
|
97
|
+
`.kbq-modal-body` can drop that override. One that used `kbqBodyStyle: { maxHeight: 'none' }` to let
|
|
98
|
+
the dialog outgrow the viewport has to move the override onto the dialog element —
|
|
99
|
+
`kbqStyle: { maxHeight: 'none' }` — because the cap lives there now; lifting it on the body only
|
|
100
|
+
makes the body scroll.
|
|
101
|
+
|
|
102
|
+
## Running it manually
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
ng generate @koobiq/components:modal-dialog-semantics --project my-app
|
|
106
|
+
```
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `modal-dialog-semantics` migration.
|
|
5
|
+
*
|
|
6
|
+
* The modal review made the dialog a real dialog and closed the seam between its two entry paths:
|
|
7
|
+
*
|
|
8
|
+
* - `.kbq-modal-container` carries `role="dialog"`, `aria-modal`, `aria-labelledby`/`aria-label`
|
|
9
|
+
* and the focus trap; the page behind an open dialog is marked `inert`.
|
|
10
|
+
* - The `EventEmitter` form of `kbqOnOk`/`kbqOnCancel` closes the dialog now, so `×`, the dim
|
|
11
|
+
* layer and the predefined buttons work on a declarative `<kbq-modal [(kbqVisible)]>`.
|
|
12
|
+
* - <kbd>Escape</kbd> has one implementation for both paths: it honours `kbqCloseByESC` and runs
|
|
13
|
+
* through `kbqOnCancel`, veto included.
|
|
14
|
+
* - A service-created dialog is destroyed with the injector that opened it.
|
|
15
|
+
* - `transformOrigin`, `getKbqFooter()`, `getContainerClasses()` and `autoFocusedButtons` are gone;
|
|
16
|
+
* the template-only helpers became `protected`.
|
|
17
|
+
*
|
|
18
|
+
* Warn-only. A removed member has no replacement expression, and what a closing dialog should do
|
|
19
|
+
* instead is a decision the schematic cannot make.
|
|
20
|
+
*/
|
|
21
|
+
/** Import specifier that marks a file as a modal consumer. */
|
|
22
|
+
const MODAL_PACKAGE = '@koobiq/components/modal';
|
|
23
|
+
/** Identifier and attribute shapes that mark a consumer without an import. */
|
|
24
|
+
const MODAL_TYPE = '\\bKbqModal\\w*\\b|\\bkbq-modal\\b';
|
|
25
|
+
const warnPatterns = [
|
|
26
|
+
{
|
|
27
|
+
anchor: MODAL_TYPE,
|
|
28
|
+
pattern: '\\((?:kbqOnOk|kbqOnCancel)\\)',
|
|
29
|
+
message: 'A (kbqOnOk)/(kbqOnCancel) binding no longer keeps the dialog open. The EventEmitter form ' +
|
|
30
|
+
'used to emit and return, so on a declarative <kbq-modal [(kbqVisible)]> the ×, the dim ' +
|
|
31
|
+
'layer and the predefined buttons emitted and did nothing; it is a notification now and ' +
|
|
32
|
+
'the dialog closes. To keep a close under your control, pass kbqOnOk/kbqOnCancel as a ' +
|
|
33
|
+
'function and return false from it.'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
anchor: MODAL_TYPE,
|
|
37
|
+
pattern: '\\.\\s*(?:transformOrigin|getKbqFooter|getContainerClasses|autoFocusedButtons)\\b',
|
|
38
|
+
message: 'KbqModalComponent.transformOrigin / getKbqFooter() / getContainerClasses() / ' +
|
|
39
|
+
'autoFocusedButtons were removed. transformOrigin was computed from a click position ' +
|
|
40
|
+
'set to {x: -1, y: -1} and applied against keyframes that end at scale(1), so it ' +
|
|
41
|
+
'never rendered anything; autoFocusedButtons queried a template reference that does not ' +
|
|
42
|
+
'exist. The class list is an internal field the template reads directly.'
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
anchor: MODAL_TYPE,
|
|
46
|
+
pattern: '\\.\\s*(?:handleCloseResult|getButtonCallableProp|isModalType|isTemplateRef|isNonEmptyString|' +
|
|
47
|
+
'isComponent|isModalButtons|onClickMask|onClickOkCancel|onButtonClick|onKeyDown|' +
|
|
48
|
+
'maskAnimationClassMap|modalAnimationClassMap)\\b',
|
|
49
|
+
message: 'The KbqModalComponent members that only ever fed its own template are protected now: ' +
|
|
50
|
+
'handleCloseResult, getButtonCallableProp, isModalType, isTemplateRef, isNonEmptyString, ' +
|
|
51
|
+
'isComponent, isModalButtons, onClickMask, onClickOkCancel, onButtonClick, onKeyDown and the ' +
|
|
52
|
+
'two animation class maps. The supported surface is open()/close()/destroy(), triggerOk(), ' +
|
|
53
|
+
'triggerCancel() and the inputs.'
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
anchor: MODAL_TYPE,
|
|
57
|
+
pattern: '\\bmodalUtilObject\\b|\\bModalUtil\\b|\\bIClickPosition\\b',
|
|
58
|
+
message: 'ModalUtil, modalUtilObject and IClickPosition were removed together with the ' +
|
|
59
|
+
'transform-origin machinery they fed, including the document-wide click listener they ' +
|
|
60
|
+
'registered at module load and never removed.'
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
anchor: MODAL_TYPE,
|
|
64
|
+
pattern: '\\bkbq-modal-open\\b|--kbq-modal-size-close-button-margin-left',
|
|
65
|
+
message: 'The .kbq-modal-open class and the --kbq-modal-size-close-button-margin-left token were ' +
|
|
66
|
+
'removed: neither had a single reader. The body scroll lock is an inline style, and the ' +
|
|
67
|
+
'close button is positioned absolutely. The dialog now reads a new ' +
|
|
68
|
+
'--kbq-modal-size-viewport-inset token (48px) for the gap it keeps to each viewport edge.'
|
|
69
|
+
}
|
|
70
|
+
];
|
|
71
|
+
/** Printed once per project, after the per-file reports. */
|
|
72
|
+
const SUMMARY = [
|
|
73
|
+
' The dialog element carries role="dialog", aria-modal="true" and an accessible name — the ' +
|
|
74
|
+
'kbqTitle by default, the new kbqAriaLabel option when there is none. A confirm or ' +
|
|
75
|
+
'header-less dialog opened without kbqAriaLabel is announced unnamed. Hand-rolled role or ' +
|
|
76
|
+
'aria-* attributes on the dialog are duplicates now.',
|
|
77
|
+
' While a dialog is shown, every body child that does not contain an overlay is marked inert, ' +
|
|
78
|
+
'and every dialog below the topmost one is too. Code that reaches into the page behind an ' +
|
|
79
|
+
'open dialog — a click, a focus() — no longer takes effect.',
|
|
80
|
+
' Initial focus follows kbqAutoFocus (first-tabbable by default, plus dialog, first-heading and ' +
|
|
81
|
+
'false), with [cdkFocusInitial]/autofocus winning over it. A dialog with no focusable ' +
|
|
82
|
+
'control focuses itself instead of leaving focus on the trigger behind it.',
|
|
83
|
+
' Escape honours kbqCloseByESC on both entry paths and runs through kbqOnCancel, so a callback ' +
|
|
84
|
+
'returning false vetoes it. It used to close a declarative dialog unconditionally and to ' +
|
|
85
|
+
'ignore the veto on the service path.',
|
|
86
|
+
' A dialog opened through KbqModalService is destroyed with the injector that opened it — ' +
|
|
87
|
+
'options.injector, or the root environment injector. Destroying the opener used to leave the ' +
|
|
88
|
+
'dialog painted over the next view with the page scroll still locked.',
|
|
89
|
+
' The kbqAfterOpen/kbqAfterClose options are mirrored onto the dialog instead of replacing its ' +
|
|
90
|
+
'own emitters, so afterOpen/afterClose on the returned ref keep emitting; and a declarative ' +
|
|
91
|
+
'modal no longer emits kbqBeforeClose/kbqAfterClose once on creation.',
|
|
92
|
+
' The dialog is a flex column capped at the viewport minus its inset, so only the body scrolls ' +
|
|
93
|
+
'and the header and the footer stay on screen. A modal that overrode the old ' +
|
|
94
|
+
'max-height: calc(100vh - 260px) on .kbq-modal-body can drop that override; one that used ' +
|
|
95
|
+
'kbqBodyStyle: { maxHeight: none } to let the dialog outgrow the viewport has to move that ' +
|
|
96
|
+
'override onto the dialog element, kbqStyle: { maxHeight: none }, because the cap lives there now.',
|
|
97
|
+
' A manually composed dialog is named and described by its own kbq-modal-title and ' +
|
|
98
|
+
'kbq-modal-caption, on the same aria-labelledby/aria-describedby the service path uses, so ' +
|
|
99
|
+
'both entry paths are announced alike. kbq-modal-title also projects a [kbqModalTitleActions] ' +
|
|
100
|
+
'slot, rendered beside the heading and outside its two-line clamp.',
|
|
101
|
+
' The inputs of KbqModalComponent are still decorators: KbqModalService applies its options ' +
|
|
102
|
+
'with Object.assign, which would overwrite an InputSignal rather than write through it, and ' +
|
|
103
|
+
'kbqOnOk/kbqOnCancel are @Input() and @Output() on one property. No consumer read needs an ' +
|
|
104
|
+
'added ().'
|
|
105
|
+
];
|
|
106
|
+
|
|
107
|
+
exports.MODAL_PACKAGE = MODAL_PACKAGE;
|
|
108
|
+
exports.MODAL_TYPE = MODAL_TYPE;
|
|
109
|
+
exports.SUMMARY = SUMMARY;
|
|
110
|
+
exports.warnPatterns = warnPatterns;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var utils_messages = require('../../utils/messages.js');
|
|
6
|
+
var utils_packageConfig = require('../../package-config-BhU2TfC8.js');
|
|
7
|
+
var migrations_modalDialogSemantics_data = require('./data.js');
|
|
8
|
+
require('@angular-devkit/schematics');
|
|
9
|
+
require('@schematics/angular/utility');
|
|
10
|
+
|
|
11
|
+
const LABEL = '[modal-dialog-semantics]';
|
|
12
|
+
const EXTENSIONS = ['.ts', '.html', '.scss'];
|
|
13
|
+
/** A file is a modal consumer if it imports the package, names the component, or renders one. */
|
|
14
|
+
function referencesModal(content) {
|
|
15
|
+
return content.includes(migrations_modalDialogSemantics_data.MODAL_PACKAGE) || new RegExp(migrations_modalDialogSemantics_data.MODAL_TYPE).test(content);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reports what the modal review changed for consumers: the members that disappeared or became
|
|
19
|
+
* protected, and the close controls that stopped being inert on the declarative path. Never
|
|
20
|
+
* writes — whether a dialog should still close is a decision, not a rewrite.
|
|
21
|
+
*
|
|
22
|
+
* `.html` is visited because `(kbqOnOk)`/`(kbqOnCancel)` are template bindings, and `.scss` because
|
|
23
|
+
* two of the removals are a class and a design token.
|
|
24
|
+
*/
|
|
25
|
+
function modalDialogSemantics(options) {
|
|
26
|
+
return async (tree, context) => {
|
|
27
|
+
const { project } = options;
|
|
28
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
29
|
+
const root = projectDefinition?.root ?? '';
|
|
30
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
31
|
+
let consumers = 0;
|
|
32
|
+
let reported = 0;
|
|
33
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
34
|
+
if (!EXTENSIONS.some((extension) => filePath.endsWith(extension)))
|
|
35
|
+
return;
|
|
36
|
+
const content = entry?.content.toString();
|
|
37
|
+
if (!content || !referencesModal(content))
|
|
38
|
+
return;
|
|
39
|
+
consumers++;
|
|
40
|
+
for (const { anchor, pattern, message } of migrations_modalDialogSemantics_data.warnPatterns) {
|
|
41
|
+
if (!new RegExp(anchor).test(content) || !new RegExp(pattern).test(content))
|
|
42
|
+
continue;
|
|
43
|
+
reported++;
|
|
44
|
+
utils_messages.logMessage(context.logger, [`${LABEL} ${filePath}`, ` ${message}`]);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// Nothing here opens a modal, so the summary would only be noise.
|
|
48
|
+
if (consumers === 0)
|
|
49
|
+
return;
|
|
50
|
+
utils_messages.logMessage(context.logger, [
|
|
51
|
+
`${LABEL} processed kbq-modal under "${root || '<workspace root>'}", ` +
|
|
52
|
+
`${consumers} file(s) reference the component, ${reported} call site(s) reported.`,
|
|
53
|
+
...migrations_modalDialogSemantics_data.SUMMARY
|
|
54
|
+
]);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
exports.default = modalDialogSemantics;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-modal-dialog-semantics",
|
|
4
|
+
"title": "Koobiq components modal 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,88 @@
|
|
|
1
|
+
# modal-signals
|
|
2
|
+
|
|
3
|
+
Migration schematic invoked automatically by `ng update @koobiq/components@21`
|
|
4
|
+
(registered for `21.0.0-0`). Rewrites reads of the `KbqModalComponent` members that became signals
|
|
5
|
+
into calls, and reports the two renames and the reads it cannot resolve.
|
|
6
|
+
|
|
7
|
+
Runs alongside [`modal-dialog-semantics`](../modal-dialog-semantics/README.md), which covers the
|
|
8
|
+
behaviour and visibility changes of the same review. This one covers only the move to signals.
|
|
9
|
+
|
|
10
|
+
## Background
|
|
11
|
+
|
|
12
|
+
Two things kept the dialog on decorator inputs while the rest of the review series moved to
|
|
13
|
+
`input()`.
|
|
14
|
+
|
|
15
|
+
`ModalBuilderForService` applied the whole options object with
|
|
16
|
+
`Object.assign(this.modalRef.instance, inputs)`. A bulk assignment overwrites an `InputSignal`
|
|
17
|
+
instead of writing through it, so every option would have broken at once. The options are provided
|
|
18
|
+
as `KBQ_MODAL_OPTIONS` now, and the dialog reads them as the **initial values** of its inputs: a
|
|
19
|
+
dialog created by the service carries no template bindings, so an input it does not bind keeps that
|
|
20
|
+
initial value for life. That also removed the four `if (!('x' in options))` blocks in
|
|
21
|
+
`KbqModalService.create()`, which only existed to make `Object.assign` overwrite a default.
|
|
22
|
+
|
|
23
|
+
`kbqOnOk` and `kbqOnCancel` were each `@Input()` **and** `@Output()` on one property. A signal input
|
|
24
|
+
and an output cannot share a name, so the pair had to be split first — see
|
|
25
|
+
[`modal-dialog-semantics`](../modal-dialog-semantics/README.md) for that half.
|
|
26
|
+
|
|
27
|
+
## What it rewrites
|
|
28
|
+
|
|
29
|
+
A read of a migrated member becomes a call, on receivers the engine can resolve: a variable or
|
|
30
|
+
field annotated `KbqModalComponent`, an `inject()`/`viewChild()`/`contentChild()` of it, and a
|
|
31
|
+
`#ref` on a `<kbq-modal>` element in an external or inline template. A write to `kbqVisible` becomes
|
|
32
|
+
`kbqVisible.set(...)`, because it is the one `model()`.
|
|
33
|
+
|
|
34
|
+
| Call site | Becomes |
|
|
35
|
+
| ------------------------------ | --------------------------------------------------- |
|
|
36
|
+
| `modal.kbqVisible` | `modal.kbqVisible()` |
|
|
37
|
+
| `modal.kbqVisible = true` | `modal.kbqVisible.set(true)` |
|
|
38
|
+
| `modal.kbqTitle`, `kbqSize`, … | `modal.kbqTitle()`, `modal.kbqSize()`, … |
|
|
39
|
+
| `modal.kbqTitle = 'x'` | Reported — bind `[kbqTitle]`; the input is readonly |
|
|
40
|
+
|
|
41
|
+
## What it reports instead
|
|
42
|
+
|
|
43
|
+
- **`kbqOnOk:` / `kbqOnCancel:` as a key.** The decision handler is `kbqOkClick`/`kbqCancelClick`
|
|
44
|
+
now, but `kbqOnOk` survives as an output under the same name, so the key has to be judged in
|
|
45
|
+
context: an options object and an `[kbqOnOk]` input binding move, a `(kbqOnOk)` listener does not.
|
|
46
|
+
`ModalOptions.kbqOnOk` is an `EventEmitter` now, so a function left under the old key is a compile
|
|
47
|
+
error rather than a silent change of meaning.
|
|
48
|
+
- **`[kbqOnOk]` / `[kbqOnCancel]` input bindings.** The old names are outputs only, so Angular would
|
|
49
|
+
drop the binding silently.
|
|
50
|
+
- **Reads through `KbqModalRef.getInstance()`.** The ref is what `KbqModalService` returns and its
|
|
51
|
+
static type carries none of these members, so the engine has nothing to resolve the receiver to.
|
|
52
|
+
- **`okText` / `cancelText`.** Removed. They were getters returning `kbqOkText`/`kbqCancelText`
|
|
53
|
+
unchanged and existed only to feed the template.
|
|
54
|
+
- **The four template type guards** — `isTemplateRef`, `isNonEmptyString`, `isComponent`,
|
|
55
|
+
`isModalButtons`. Removed; the template classifies each slot once instead. They were already
|
|
56
|
+
`protected` and `@docs-private`, so only a subclass is affected.
|
|
57
|
+
|
|
58
|
+
## Notes with no call site to point at
|
|
59
|
+
|
|
60
|
+
- `kbqOkLoading`, `kbqCancelLoading` and `kbqMask` keep a private writable shadow inside the dialog,
|
|
61
|
+
because something other than the binding drives them: a pending promise returned by a handler, and
|
|
62
|
+
a dialog that covers this one. The inputs keep reporting what was bound, so re-binding one still
|
|
63
|
+
takes effect.
|
|
64
|
+
- The predefined OK and Cancel buttons finally render the progress state `kbqOkLoading` and
|
|
65
|
+
`kbqCancelLoading` always described. The template never read them before, so a promise-returning
|
|
66
|
+
handler showed nothing.
|
|
67
|
+
- `kbqFooter` is no longer overwritten with its own formatted copy on init, so it reports exactly
|
|
68
|
+
what was bound; the button defaults are filled in on the way to the template.
|
|
69
|
+
- `KbqModalComponent` no longer declares `implements ModalOptions`. That interface is the service's
|
|
70
|
+
contract, and the component's inputs are signals, so the two no longer match structurally.
|
|
71
|
+
- `KbqModalControlService` still turns the dim layer of covered dialogs off and back on from
|
|
72
|
+
outside, through `animateMaskTo()` and the new `setMaskEnabled()`. That orchestration belongs in
|
|
73
|
+
the dialog, keyed on `topVisibleModal()` the way `inert` already is, and has not moved yet.
|
|
74
|
+
- `kbqAfterOpen`, `kbqAfterClose` and `kbqBeforeClose` are still `@Output() EventEmitter`. They back
|
|
75
|
+
the public `afterOpen`/`beforeClose`/`afterClose` observables, and `output()` is not a drop-in:
|
|
76
|
+
`OutputEmitterRef` has no `asObservable()`, and `outputToObservable()` completes the stream when
|
|
77
|
+
the component is destroyed — which happens inside the emit itself, because
|
|
78
|
+
`ModalBuilderForService` subscribes first to dispose the overlay, so the value is dropped before
|
|
79
|
+
it reaches a consumer's `afterClose`. Converting them means moving the source of truth to a
|
|
80
|
+
`Subject` the dialog owns and taking the overlay teardown off that emitter.
|
|
81
|
+
|
|
82
|
+
## Running it manually
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
ng generate @koobiq/components:modal-signals --project my-app
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Pass `--fix=false` to see what would change without writing.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Data for the `modal-signals` migration.
|
|
5
|
+
*
|
|
6
|
+
* `KbqModalComponent` finished its move to signals:
|
|
7
|
+
*
|
|
8
|
+
* - every option is an `input()` now, `kbqVisible` is a `model()`, and the hand-written
|
|
9
|
+
* `kbqVisibleChange` output is the one the model generates;
|
|
10
|
+
* - `kbqOnOk`/`kbqOnCancel` are an output each, and the decision handler they used to double as
|
|
11
|
+
* is a separate input: `kbqOkClick`/`kbqCancelClick`;
|
|
12
|
+
* - `KbqModalService` stopped applying the options with `Object.assign` — they reach the dialog
|
|
13
|
+
* through `KBQ_MODAL_OPTIONS` as the initial values of its inputs;
|
|
14
|
+
* - the `okText`/`cancelText` getters and the four template type guards are gone.
|
|
15
|
+
*
|
|
16
|
+
* Reads are rewritten to calls by the shared engine. The two renames are reported rather than
|
|
17
|
+
* rewritten: `kbqOnOk` survives as an output under the same name, so the key has to be judged in
|
|
18
|
+
* context — an option object and an `[kbqOnOk]` input binding move, a `(kbqOnOk)` listener does not.
|
|
19
|
+
*/
|
|
20
|
+
/** Import specifier that marks a file as a modal consumer. */
|
|
21
|
+
const MODAL_PACKAGE = '@koobiq/components/modal';
|
|
22
|
+
/** Identifier and attribute shapes that mark a consumer without an import. */
|
|
23
|
+
const MODAL_TYPE = '\\bKbqModal\\w*\\b|\\bkbq-modal\\b';
|
|
24
|
+
/** Every input that became a signal. `kbqVisible` is the `model()`; the rest are read-only. */
|
|
25
|
+
const MODAL_MEMBERS = [
|
|
26
|
+
'kbqModalType',
|
|
27
|
+
'kbqComponent',
|
|
28
|
+
'kbqContent',
|
|
29
|
+
'kbqFooter',
|
|
30
|
+
'kbqVisible',
|
|
31
|
+
'kbqWidth',
|
|
32
|
+
'kbqSize',
|
|
33
|
+
'kbqWrapClassName',
|
|
34
|
+
'kbqClassName',
|
|
35
|
+
'kbqStyle',
|
|
36
|
+
'kbqTitle',
|
|
37
|
+
'kbqCaption',
|
|
38
|
+
'kbqCloseByESC',
|
|
39
|
+
'kbqAutoFocus',
|
|
40
|
+
'kbqAriaLabel',
|
|
41
|
+
'kbqClosable',
|
|
42
|
+
'kbqMask',
|
|
43
|
+
'kbqMaskClosable',
|
|
44
|
+
'kbqMaskStyle',
|
|
45
|
+
'kbqBodyStyle',
|
|
46
|
+
'kbqOkText',
|
|
47
|
+
'kbqOkType',
|
|
48
|
+
'kbqRestoreFocus',
|
|
49
|
+
'kbqOkLoading',
|
|
50
|
+
'kbqOkClick',
|
|
51
|
+
'kbqCancelText',
|
|
52
|
+
'kbqCancelLoading',
|
|
53
|
+
'kbqCancelClick',
|
|
54
|
+
'kbqGetContainer'
|
|
55
|
+
];
|
|
56
|
+
const config = {
|
|
57
|
+
label: '[modal-signals]',
|
|
58
|
+
package: MODAL_PACKAGE,
|
|
59
|
+
membersByType: { KbqModalComponent: MODAL_MEMBERS },
|
|
60
|
+
// The dialog is a component with no `exportAs`, so a template names it by its own element.
|
|
61
|
+
exportAsToType: {},
|
|
62
|
+
elementToType: { 'kbq-modal': 'KbqModalComponent' },
|
|
63
|
+
writableMembers: new Set(['kbqVisible']),
|
|
64
|
+
warnPatterns: [
|
|
65
|
+
{
|
|
66
|
+
anchor: MODAL_TYPE,
|
|
67
|
+
pattern: '\\bkbqOnOk\\s*:|\\bkbqOnCancel\\s*:',
|
|
68
|
+
message: 'The decision handler moved off kbqOnOk/kbqOnCancel. In an options object or an ' +
|
|
69
|
+
'[kbqOnOk] input binding, rename the key to kbqOkClick/kbqCancelClick: ' +
|
|
70
|
+
'modalService.create({ kbqOnOk: fn }) becomes create({ kbqOkClick: fn }). kbqOnOk and ' +
|
|
71
|
+
'kbqOnCancel survive as outputs under the same names, so a (kbqOnOk) listener in a ' +
|
|
72
|
+
'template is unaffected — and ModalOptions.kbqOnOk is an EventEmitter now, so a ' +
|
|
73
|
+
'function left under the old key is a compile error rather than a silent change.'
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
anchor: MODAL_TYPE,
|
|
77
|
+
pattern: '\\[\\s*(?:kbqOnOk|kbqOnCancel)\\s*\\]',
|
|
78
|
+
message: 'An [kbqOnOk]/[kbqOnCancel] input binding is now [kbqOkClick]/[kbqCancelClick]. The old ' +
|
|
79
|
+
'names are outputs only, so the binding would be dropped silently.'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
anchor: MODAL_TYPE,
|
|
83
|
+
pattern: '\\.\\s*getInstance\\(\\)\\s*\\.\\s*kbq[A-Z]',
|
|
84
|
+
message: 'Reads through KbqModalRef.getInstance() are not rewritten, because the ref is what ' +
|
|
85
|
+
'KbqModalService returns and its static type carries none of these members. Every input ' +
|
|
86
|
+
'read behind getInstance() needs a call now — getInstance().kbqVisible() — and a write ' +
|
|
87
|
+
'needs a binding, except kbqVisible, which is a model(): getInstance().kbqVisible.set(v), ' +
|
|
88
|
+
'or just open()/close().'
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
anchor: MODAL_TYPE,
|
|
92
|
+
pattern: '\\.\\s*(?:okText|cancelText)\\b',
|
|
93
|
+
message: 'KbqModalComponent.okText / cancelText were removed. They were getters that returned ' +
|
|
94
|
+
'kbqOkText / kbqCancelText unchanged and existed only to feed the template; read the ' +
|
|
95
|
+
'inputs instead — kbqOkText().'
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
anchor: MODAL_TYPE,
|
|
99
|
+
pattern: '\\.\\s*(?:isTemplateRef|isNonEmptyString|isComponent|isModalButtons)\\b',
|
|
100
|
+
message: 'The four template type guards of KbqModalComponent were removed — isTemplateRef, ' +
|
|
101
|
+
'isNonEmptyString, isComponent and isModalButtons. The template classifies each slot ' +
|
|
102
|
+
'once instead. They were already protected and @docs-private, so only a subclass is ' +
|
|
103
|
+
'affected.'
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
messages: {
|
|
107
|
+
unparseableTemplate: 'This template renders a kbq-modal but could not be parsed, so reads through a template ' +
|
|
108
|
+
'reference variable were left alone. Check them by hand.',
|
|
109
|
+
unresolvedReceiver: 'KbqModalComponent is named here, but these reads could not be tied to one receiver, so ' +
|
|
110
|
+
'they were left alone:',
|
|
111
|
+
summary: [
|
|
112
|
+
' Every option of KbqModalComponent is a signal input now, and kbqVisible is a model(). ' +
|
|
113
|
+
'Template bindings are unchanged, including [(kbqVisible)]; what breaks is programmatic ' +
|
|
114
|
+
'access — a read takes a call and a write takes a binding.',
|
|
115
|
+
' KbqModalService no longer applies the options with Object.assign. They are provided as ' +
|
|
116
|
+
'KBQ_MODAL_OPTIONS and become the initial values of the inputs, so a dialog created by ' +
|
|
117
|
+
'the service keeps them for life.',
|
|
118
|
+
' kbqOkLoading, kbqCancelLoading and kbqMask keep a private writable shadow inside the ' +
|
|
119
|
+
'dialog, because a pending promise and a covering dialog drive them. The inputs keep ' +
|
|
120
|
+
'reporting what was bound, so re-binding one still takes effect.',
|
|
121
|
+
' kbqFooter is no longer overwritten with its own formatted copy on init, and the ' +
|
|
122
|
+
'predefined OK/Cancel buttons finally render the progress state kbqOkLoading and ' +
|
|
123
|
+
'kbqCancelLoading always described.',
|
|
124
|
+
' KbqModalComponent no longer declares `implements ModalOptions`: that interface is the ' +
|
|
125
|
+
"service's contract, and the component's inputs are signals, so the two no longer match."
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
exports.MODAL_PACKAGE = MODAL_PACKAGE;
|
|
131
|
+
exports.MODAL_TYPE = MODAL_TYPE;
|
|
132
|
+
exports.config = config;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var signalMembersMigration = require('../../signal-members-migration-BoAJKutT.js');
|
|
6
|
+
var migrations_modalSignals_data = require('./data.js');
|
|
7
|
+
require('typescript');
|
|
8
|
+
require('../../utils/ast.js');
|
|
9
|
+
require('../../utils/messages.js');
|
|
10
|
+
require('../../package-config-BhU2TfC8.js');
|
|
11
|
+
require('@angular-devkit/schematics');
|
|
12
|
+
require('@schematics/angular/utility');
|
|
13
|
+
require('../../utils/typescript.js');
|
|
14
|
+
|
|
15
|
+
function modalSignals(options) {
|
|
16
|
+
return signalMembersMigration.signalMembersRule(migrations_modalSignals_data.config, options);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
exports.default = modalSignals;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "koobiq-components-modal-signals",
|
|
4
|
+
"title": "Koobiq components modal 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
|
+
}
|