@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
|
@@ -3,36 +3,537 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var schematics = require('@angular-devkit/schematics');
|
|
6
|
+
var tasks = require('@angular-devkit/schematics/tasks');
|
|
6
7
|
var utility = require('@schematics/angular/utility');
|
|
7
|
-
var
|
|
8
|
-
require('
|
|
8
|
+
var app_config = require('@schematics/angular/utility/standalone/app_config');
|
|
9
|
+
var util = require('@schematics/angular/utility/standalone/util');
|
|
10
|
+
var rxjs = require('rxjs');
|
|
11
|
+
var ts = require('@schematics/angular/third_party/github.com/Microsoft/TypeScript/lib/typescript');
|
|
12
|
+
var utils_messages = require('../utils/messages.js');
|
|
13
|
+
var utils_packageConfig = require('../package-config-BhU2TfC8.js');
|
|
14
|
+
|
|
15
|
+
const KNOWN_THEME_CLASSES = ['kbq-app-background', 'kbq-light', 'kbq-dark'];
|
|
16
|
+
const COMMENT_START = '<!--';
|
|
17
|
+
const COMMENT_END = '-->';
|
|
18
|
+
/**
|
|
19
|
+
* Index of the `<` starting a real `<body` tag — one that isn't inside an HTML comment (e.g. a
|
|
20
|
+
* pasted Google Tag Manager snippet mentioning `<body>` in its install instructions) — or `-1`.
|
|
21
|
+
* Walks the string once rather than matching `<body` with a regex, so a comment can't be mistaken
|
|
22
|
+
* for the element.
|
|
23
|
+
*/
|
|
24
|
+
function findBodyTagStart(html) {
|
|
25
|
+
const lower = html.toLowerCase();
|
|
26
|
+
let i = 0;
|
|
27
|
+
while (i < html.length) {
|
|
28
|
+
if (lower.startsWith(COMMENT_START, i)) {
|
|
29
|
+
const end = lower.indexOf(COMMENT_END, i + COMMENT_START.length);
|
|
30
|
+
i = end === -1 ? html.length : end + COMMENT_END.length;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (lower.startsWith('<body', i) && (html[i + 5] === undefined || /[\s/>]/.test(html[i + 5]))) {
|
|
34
|
+
return i;
|
|
35
|
+
}
|
|
36
|
+
i++;
|
|
37
|
+
}
|
|
38
|
+
return -1;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Index of the `>` that closes the tag starting at `tagStart`, tracking open quotes so a `>`
|
|
42
|
+
* inside a quoted attribute value (`<body data-x="a>b">`) doesn't end the tag early. `-1` if the
|
|
43
|
+
* tag is never closed.
|
|
44
|
+
*/
|
|
45
|
+
function findTagEnd(html, tagStart) {
|
|
46
|
+
let quote = null;
|
|
47
|
+
for (let i = tagStart + 1; i < html.length; i++) {
|
|
48
|
+
const char = html[i];
|
|
49
|
+
if (quote) {
|
|
50
|
+
if (char === quote)
|
|
51
|
+
quote = null;
|
|
52
|
+
}
|
|
53
|
+
else if (char === '"' || char === "'") {
|
|
54
|
+
quote = char;
|
|
55
|
+
}
|
|
56
|
+
else if (char === '>') {
|
|
57
|
+
return i;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return -1;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parses the attributes of the tag whose content spans `[start, end)` (between `<body` and the
|
|
64
|
+
* closing `>`), handling double-quoted, single-quoted and unquoted values — so a single-quoted
|
|
65
|
+
* `class` attribute is found exactly like a double-quoted one, instead of only the latter matching.
|
|
66
|
+
*/
|
|
67
|
+
function parseAttrs(html, start, end) {
|
|
68
|
+
const attrs = [];
|
|
69
|
+
const isSpace = (char) => /\s/.test(char);
|
|
70
|
+
let i = start;
|
|
71
|
+
while (i < end) {
|
|
72
|
+
while (i < end && (isSpace(html[i]) || html[i] === '/'))
|
|
73
|
+
i++;
|
|
74
|
+
if (i >= end)
|
|
75
|
+
break;
|
|
76
|
+
const nameStart = i;
|
|
77
|
+
while (i < end && !isSpace(html[i]) && html[i] !== '=' && html[i] !== '/' && html[i] !== '>')
|
|
78
|
+
i++;
|
|
79
|
+
if (i === nameStart) {
|
|
80
|
+
i++;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
const name = html.slice(nameStart, i);
|
|
84
|
+
while (i < end && isSpace(html[i]))
|
|
85
|
+
i++;
|
|
86
|
+
let value = '';
|
|
87
|
+
let attrEnd = i;
|
|
88
|
+
if (html[i] === '=') {
|
|
89
|
+
i++;
|
|
90
|
+
while (i < end && isSpace(html[i]))
|
|
91
|
+
i++;
|
|
92
|
+
const quote = html[i] === '"' || html[i] === "'" ? html[i] : null;
|
|
93
|
+
if (quote) {
|
|
94
|
+
i++;
|
|
95
|
+
const valueStart = i;
|
|
96
|
+
while (i < end && html[i] !== quote)
|
|
97
|
+
i++;
|
|
98
|
+
value = html.slice(valueStart, i);
|
|
99
|
+
if (i < end)
|
|
100
|
+
i++;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
const valueStart = i;
|
|
104
|
+
while (i < end && !isSpace(html[i]) && html[i] !== '>')
|
|
105
|
+
i++;
|
|
106
|
+
value = html.slice(valueStart, i);
|
|
107
|
+
}
|
|
108
|
+
attrEnd = i;
|
|
109
|
+
}
|
|
110
|
+
attrs.push({ name, start: nameStart, end: attrEnd, value });
|
|
111
|
+
}
|
|
112
|
+
return attrs;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Sets the Koobiq theme classes on the app's `<body>` tag.
|
|
116
|
+
*
|
|
117
|
+
* `'light'`/`'dark'` get the full `kbq-app-background kbq-{theme}` pair from the theming guide —
|
|
118
|
+
* `kbq-app-background` paints the page's own background/text color, `kbq-{theme}` picks the theme.
|
|
119
|
+
* `'auto'` only gets `kbq-app-background`: `KbqThemeService` applies `kbq-light`/`kbq-dark` to
|
|
120
|
+
* `document.body` itself at runtime, so a static class here would just go stale before the app
|
|
121
|
+
* bootstraps, or fight the service once it does.
|
|
122
|
+
*
|
|
123
|
+
* Re-running is idempotent: any class this function manages is stripped from the existing `class`
|
|
124
|
+
* value first, so switching `theme` between runs doesn't leave a stale `kbq-light` sitting next to
|
|
125
|
+
* a newly added `kbq-dark`. Any other existing classes, and their relative order, are preserved.
|
|
126
|
+
*
|
|
127
|
+
* Locates the `<body>` tag and its `class` attribute with a small hand-written scanner rather than
|
|
128
|
+
* a `<body>`/`class` regex-and-`String.replace`, so quoting style (`'`, `"`, or none), a `>` inside
|
|
129
|
+
* an unrelated attribute's value, an attribute merely named `data-class`, a `<body` mentioned inside
|
|
130
|
+
* a comment, and `$`-containing values already on the tag can't corrupt the result. Deliberately
|
|
131
|
+
* doesn't pull in a full HTML parser (e.g. `parse5`) for this: it's the only thing in this package
|
|
132
|
+
* that would need one, and this package is distributed as a dependency of `@koobiq/components`,
|
|
133
|
+
* where an extra runtime `dependencies` entry isn't worth it for one small, well-tested edit.
|
|
134
|
+
*/
|
|
135
|
+
function setKoobiqThemeBodyClass(html, theme) {
|
|
136
|
+
const tagStart = findBodyTagStart(html);
|
|
137
|
+
if (tagStart === -1)
|
|
138
|
+
return { content: html, changed: false };
|
|
139
|
+
const tagEnd = findTagEnd(html, tagStart);
|
|
140
|
+
if (tagEnd === -1)
|
|
141
|
+
return { content: html, changed: false };
|
|
142
|
+
const attrs = parseAttrs(html, tagStart + '<body'.length, tagEnd);
|
|
143
|
+
const classAttr = attrs.find((attr) => attr.name.toLowerCase() === 'class');
|
|
144
|
+
const existingClasses = classAttr ? classAttr.value.split(/\s+/).filter(Boolean) : [];
|
|
145
|
+
const keptClasses = existingClasses.filter((cls) => !KNOWN_THEME_CLASSES.includes(cls));
|
|
146
|
+
const newClasses = theme === 'auto'
|
|
147
|
+
? [...keptClasses, 'kbq-app-background']
|
|
148
|
+
: [...keptClasses, 'kbq-app-background', `kbq-${theme}`];
|
|
149
|
+
const newClassValue = newClasses.join(' ');
|
|
150
|
+
if (classAttr) {
|
|
151
|
+
if (classAttr.value === newClassValue)
|
|
152
|
+
return { content: html, changed: false };
|
|
153
|
+
const updated = html.slice(0, classAttr.start) + `class="${newClassValue}"` + html.slice(classAttr.end);
|
|
154
|
+
return { content: updated, changed: true };
|
|
155
|
+
}
|
|
156
|
+
const updated = html.slice(0, tagEnd) + ` class="${newClassValue}"` + html.slice(tagEnd);
|
|
157
|
+
return { content: updated, changed: true };
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Whether `project` is an application (as opposed to a library) — the same check
|
|
162
|
+
* `@schematics/angular` itself uses (see `utility/workspace.js`'s `createDefaultPath`), rather than
|
|
163
|
+
* an allowlist of builder names. A project can sit on any builder — a custom webpack wrapper, an Nx
|
|
164
|
+
* executor, one this schematic has never heard of — and still be a perfectly good application; only
|
|
165
|
+
* `projectType` reliably says so.
|
|
166
|
+
*/
|
|
167
|
+
function isApplicationProject(project) {
|
|
168
|
+
return project.extensions['projectType'] === 'application';
|
|
169
|
+
}
|
|
170
|
+
const KOOBIQ_STATIC_STYLE_ENTRIES = [
|
|
171
|
+
'node_modules/@koobiq/icons/fonts/kbq-icons.css',
|
|
172
|
+
'node_modules/@koobiq/design-tokens/web/css-tokens.css',
|
|
173
|
+
'node_modules/@koobiq/components/prebuilt-themes/theme.css'
|
|
174
|
+
];
|
|
175
|
+
const THEME_TOKENS_PATTERN = /^node_modules\/@koobiq\/design-tokens\/web\/css-tokens-(light|dark)\.css$/;
|
|
176
|
+
/**
|
|
177
|
+
* The style entries documented in the installation guide, in the order they must be loaded.
|
|
178
|
+
* `'auto'` includes both token files, since `KbqThemeService` switches between them at runtime —
|
|
179
|
+
* a static `'light'`/`'dark'` choice only needs its own.
|
|
180
|
+
*
|
|
181
|
+
* `@koobiq/design-tokens` ships code-block, scrollbar and skeleton's tokens as opt-in
|
|
182
|
+
* `component-tokens*.css` files, but `prebuilt-themes/theme.css` already carries their values,
|
|
183
|
+
* baked in at `@koobiq/components`' own build time — nothing extra to wire here for them.
|
|
184
|
+
*/
|
|
185
|
+
function getKoobiqStyleEntries(theme) {
|
|
186
|
+
const [icons, tokens, prebuiltTheme] = KOOBIQ_STATIC_STYLE_ENTRIES;
|
|
187
|
+
const themeTokens = theme === 'auto' ? [
|
|
188
|
+
'node_modules/@koobiq/design-tokens/web/css-tokens-light.css',
|
|
189
|
+
'node_modules/@koobiq/design-tokens/web/css-tokens-dark.css'
|
|
190
|
+
] : [`node_modules/@koobiq/design-tokens/web/css-tokens-${theme}.css`];
|
|
191
|
+
return [icons, tokens, ...themeTokens, prebuiltTheme];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Prepends the Koobiq style entries ahead of whatever is already in `existingStyles`, matching the
|
|
195
|
+
* order documented in installation.md, where the app's own stylesheet comes last. Re-running with
|
|
196
|
+
* the same theme is a no-op; re-running with a different theme swaps the `css-tokens-*.css`
|
|
197
|
+
* entries instead of accumulating duplicates. Non-string entries (style-budget objects) and any
|
|
198
|
+
* unrelated entries are preserved, untouched, in their original order.
|
|
199
|
+
*/
|
|
200
|
+
function mergeKoobiqStyles(existingStyles, theme) {
|
|
201
|
+
const desired = getKoobiqStyleEntries(theme);
|
|
202
|
+
const rest = existingStyles.filter((entry) => {
|
|
203
|
+
if (typeof entry !== 'string')
|
|
204
|
+
return true;
|
|
205
|
+
return (!desired.includes(entry) &&
|
|
206
|
+
!KOOBIQ_STATIC_STYLE_ENTRIES.includes(entry) &&
|
|
207
|
+
!THEME_TOKENS_PATTERN.test(entry));
|
|
208
|
+
});
|
|
209
|
+
return [...desired, ...rest];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Resolves the workspace-root-relative path of a project's index.html, mirroring the
|
|
213
|
+
* `@angular/build:application` builder's own default (`<sourceRoot>/index.html`) when the
|
|
214
|
+
* `index` option isn't set explicitly. `buildTarget` is `undefined` for a project with no `build`
|
|
215
|
+
* target at all, in which case the default is the only option available.
|
|
216
|
+
*/
|
|
217
|
+
function getIndexHtmlPath(project, buildTarget) {
|
|
218
|
+
const indexOption = buildTarget?.options?.index;
|
|
219
|
+
if (typeof indexOption === 'string') {
|
|
220
|
+
return indexOption;
|
|
221
|
+
}
|
|
222
|
+
if (indexOption && typeof indexOption === 'object' && !Array.isArray(indexOption)) {
|
|
223
|
+
const input = indexOption.input;
|
|
224
|
+
if (typeof input === 'string') {
|
|
225
|
+
return input;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
const sourceRoot = project.sourceRoot ?? `${project.root}/src`;
|
|
229
|
+
return `${sourceRoot}/index.html`;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Whether a `build` target's `server`/`ssr` options indicate the project renders on the server —
|
|
233
|
+
* `KbqThemeCookieStore` matters there, where `KbqThemeLocalStorageStore`'s default doesn't reach
|
|
234
|
+
* the server render.
|
|
235
|
+
*/
|
|
236
|
+
function isSsrBuildTarget(buildTarget) {
|
|
237
|
+
const { server, ssr } = buildTarget.options ?? {};
|
|
238
|
+
return Boolean((typeof server === 'string' && server) || ssr === true || (ssr && typeof ssr === 'object'));
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Mutates `workspace` in place: for every application project (optionally scoped to
|
|
242
|
+
* `projectName`), merges the Koobiq style entries for `theme` into its `build` target's `styles`
|
|
243
|
+
* array, when it has one. Returns per-project wiring info the caller uses to edit index.html and
|
|
244
|
+
* the project's bootstrap file afterward — for every application project, regardless of whether it
|
|
245
|
+
* had a `build` target to wire styles into, since the bootstrap file (and thus the theme providers)
|
|
246
|
+
* is resolved independently of it.
|
|
247
|
+
*
|
|
248
|
+
* Only the target literally named `build` is touched — not `test` (Karma) or `serve` — keeping the
|
|
249
|
+
* change's blast radius minimal.
|
|
250
|
+
*/
|
|
251
|
+
function applyKoobiqWorkspaceStyles(workspace, theme, projectName) {
|
|
252
|
+
const wired = [];
|
|
253
|
+
for (const [name, project] of workspace.projects) {
|
|
254
|
+
if (projectName && name !== projectName)
|
|
255
|
+
continue;
|
|
256
|
+
if (!isApplicationProject(project))
|
|
257
|
+
continue;
|
|
258
|
+
const buildTarget = project.targets.get('build');
|
|
259
|
+
let stylesWired = false;
|
|
260
|
+
if (buildTarget) {
|
|
261
|
+
const options = buildTarget.options ?? (buildTarget.options = {});
|
|
262
|
+
const existingStyles = Array.isArray(options.styles) ? options.styles : [];
|
|
263
|
+
options.styles = mergeKoobiqStyles(existingStyles, theme);
|
|
264
|
+
stylesWired = true;
|
|
265
|
+
}
|
|
266
|
+
wired.push({
|
|
267
|
+
projectName: name,
|
|
268
|
+
projectRoot: project.root,
|
|
269
|
+
indexHtmlPath: getIndexHtmlPath(project, buildTarget),
|
|
270
|
+
isSsr: buildTarget ? isSsrBuildTarget(buildTarget) : false,
|
|
271
|
+
stylesWired
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
return wired;
|
|
275
|
+
}
|
|
9
276
|
|
|
10
277
|
function noProject(project) {
|
|
11
278
|
return `Unable to find project '${project}' in the workspace`;
|
|
12
279
|
}
|
|
280
|
+
function workspaceReadFailed() {
|
|
281
|
+
return "Could not read the workspace configuration ('angular.json').";
|
|
282
|
+
}
|
|
283
|
+
function noWiredProjects() {
|
|
284
|
+
return [
|
|
285
|
+
'No application project was found — styles, the theme class and the root providers were',
|
|
286
|
+
'not configured automatically. Follow the installation guide to add them by hand:',
|
|
287
|
+
'https://koobiq.io/en/main/installation'
|
|
288
|
+
];
|
|
289
|
+
}
|
|
290
|
+
function noStylesTarget(projectName) {
|
|
291
|
+
return [
|
|
292
|
+
`Project '${projectName}' has no 'build' target — its styles and index.html theme class`,
|
|
293
|
+
'were not configured automatically. Follow the installation guide to add them by hand:',
|
|
294
|
+
'https://koobiq.io/en/main/installation'
|
|
295
|
+
];
|
|
296
|
+
}
|
|
297
|
+
function themeProviderFallback(projectName, theme) {
|
|
298
|
+
return [
|
|
299
|
+
`Could not automatically register 'kbqThemeProvider({ mode: '${theme}' })' for project '${projectName}'.`,
|
|
300
|
+
"Add it to that project's providers yourself — see the theming guide:",
|
|
301
|
+
'https://koobiq.io/en/main/theming'
|
|
302
|
+
];
|
|
303
|
+
}
|
|
304
|
+
function themeServiceFallback(projectName) {
|
|
305
|
+
return [
|
|
306
|
+
`Could not automatically start 'KbqThemeService' for project '${projectName}'.`,
|
|
307
|
+
'Inject it once yourself (e.g. `inject(KbqThemeService)` in a root provider or component) —',
|
|
308
|
+
"otherwise the 'auto' theme is configured but never applied. See the theming guide:",
|
|
309
|
+
'https://koobiq.io/en/main/theming'
|
|
310
|
+
];
|
|
311
|
+
}
|
|
312
|
+
function ssrSuggestion() {
|
|
313
|
+
return [
|
|
314
|
+
'This project renders on the server — the default `KbqThemeLocalStorageStore` only',
|
|
315
|
+
"persists in the browser, so the server's first render can briefly use the wrong",
|
|
316
|
+
'theme. Consider providing `KbqThemeCookieStore` through `KBQ_THEME_STORE` instead.',
|
|
317
|
+
'See the theming guide: https://koobiq.io/en/main/theming'
|
|
318
|
+
];
|
|
319
|
+
}
|
|
320
|
+
function fontsSuggestion() {
|
|
321
|
+
return [
|
|
322
|
+
'Koobiq recommends the Inter and JetBrains Mono fonts.',
|
|
323
|
+
'See https://koobiq.io/en/main/typography for installation options (Fontsource or Google Fonts CDN).'
|
|
324
|
+
];
|
|
325
|
+
}
|
|
13
326
|
|
|
327
|
+
/**
|
|
328
|
+
* Resolves `ResolvedProviders` for `projectName`, or `null` when the project's bootstrap can't be
|
|
329
|
+
* statically analyzed (a non-standalone/custom bootstrap, a missing `build` target, a `providers`
|
|
330
|
+
* array that isn't a plain array literal, ...). `null` is also what tells the caller that
|
|
331
|
+
* `addRootProvider` is expected to fail the same way, and should be run through `safeRule` instead
|
|
332
|
+
* of directly.
|
|
333
|
+
*/
|
|
334
|
+
async function resolveProviders(tree, projectName) {
|
|
335
|
+
try {
|
|
336
|
+
const mainFilePath = await util.getMainFilePath(tree, projectName);
|
|
337
|
+
const bootstrapCall = util.findBootstrapApplicationCall(tree, mainFilePath);
|
|
338
|
+
const appConfig = app_config.findAppConfig(bootstrapCall, tree, mainFilePath);
|
|
339
|
+
if (!appConfig)
|
|
340
|
+
return null;
|
|
341
|
+
const literal = util.findProvidersLiteral(appConfig.node);
|
|
342
|
+
if (!literal)
|
|
343
|
+
return null;
|
|
344
|
+
return { filePath: appConfig.filePath, sourceFile: appConfig.node.getSourceFile(), literal };
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/** The callee name of a `providers` array element, e.g. `'kbqThemeProvider'` for `kbqThemeProvider({ ... })`. */
|
|
351
|
+
function calleeName(node) {
|
|
352
|
+
if (ts.isIdentifier(node))
|
|
353
|
+
return node.text;
|
|
354
|
+
if (ts.isPropertyAccessExpression(node))
|
|
355
|
+
return node.name.text;
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
function findProviderCall(providers, name) {
|
|
359
|
+
return providers.literal.elements.find((element) => ts.isCallExpression(element) && calleeName(element.expression) === name);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Whether `providers` already has a `provideAppInitializer(...)` call that mentions
|
|
363
|
+
* `KbqThemeService` — narrowed to text inside that one call, not the whole file, so an unrelated
|
|
364
|
+
* initializer elsewhere in the same providers array doesn't get mistaken for ours, and a mention of
|
|
365
|
+
* `KbqThemeService` in a comment or spec elsewhere in the project never does.
|
|
366
|
+
*/
|
|
367
|
+
function hasThemeServiceInitializer(providers) {
|
|
368
|
+
return providers.literal.elements.some((element) => ts.isCallExpression(element) &&
|
|
369
|
+
calleeName(element.expression) === 'provideAppInitializer' &&
|
|
370
|
+
element.getText(providers.sourceFile).includes('KbqThemeService'));
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* The `kbqThemeProvider({ ... })` call this schematic generates for `theme`. `'light'`/`'dark'`
|
|
374
|
+
* additionally pin `themes` to just that one entry — without it, `KBQ_THEME_CONFIG` keeps its
|
|
375
|
+
* default `themes: KBQ_DEFAULT_THEMES` (both registered), so a stale `localStorage` value from a
|
|
376
|
+
* previous session, or a call to `KbqThemeService.toggle()`, can switch the app to the theme whose
|
|
377
|
+
* token file was never added to `angular.json`, and every `--kbq-*` colour resolves to nothing.
|
|
378
|
+
*/
|
|
379
|
+
function themeProviderCallText(theme) {
|
|
380
|
+
if (theme === 'auto')
|
|
381
|
+
return `kbqThemeProvider({ mode: 'auto' })`;
|
|
382
|
+
return `kbqThemeProvider({ mode: '${theme}', themes: [{ name: '${theme}', className: 'kbq-${theme}', colorScheme: '${theme}' }] })`;
|
|
383
|
+
}
|
|
384
|
+
/** Replaces the exact source range of `node` in `filePath` with `text`, leaving everything else untouched. */
|
|
385
|
+
function replaceNode(tree, providers, node, text) {
|
|
386
|
+
const content = tree.readText(providers.filePath);
|
|
387
|
+
const start = node.getStart(providers.sourceFile);
|
|
388
|
+
const end = node.getEnd();
|
|
389
|
+
tree.overwrite(providers.filePath, content.slice(0, start) + text + content.slice(end));
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Runs `rule` against `tree` and swallows any error it throws, logging `fallbackMessage` instead.
|
|
393
|
+
* Only ever used for the case `resolveProviders` has already told us to expect: a bootstrap it
|
|
394
|
+
* couldn't statically analyze, where `addRootProvider` is expected to fail the same way. Any other,
|
|
395
|
+
* genuinely unexpected error is left to propagate instead of being silently turned into a warning.
|
|
396
|
+
*/
|
|
397
|
+
function safeRule(rule, fallbackMessage) {
|
|
398
|
+
return async (tree, context) => {
|
|
399
|
+
try {
|
|
400
|
+
await rxjs.firstValueFrom(schematics.callRule(rule, tree, context));
|
|
401
|
+
}
|
|
402
|
+
catch {
|
|
403
|
+
utils_messages.logMessage(context.logger, fallbackMessage);
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
}
|
|
407
|
+
/** `addRootProvider` rule inserting the `kbqThemeProvider({ ... })` call built by `themeProviderCallText`. */
|
|
408
|
+
function themeProviderRule(projectName, theme) {
|
|
409
|
+
return utility.addRootProvider(projectName, ({ code, external }) => {
|
|
410
|
+
const kbqThemeProvider = external('kbqThemeProvider', '@koobiq/components/core');
|
|
411
|
+
return theme === 'auto'
|
|
412
|
+
? code `${kbqThemeProvider}({ mode: 'auto' })`
|
|
413
|
+
: code `${kbqThemeProvider}({ mode: '${theme}', themes: [{ name: '${theme}', className: 'kbq-${theme}', colorScheme: '${theme}' }] })`;
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* `addRootProvider` rule forcing the first injection of `KbqThemeService` so the `'auto'` theme's
|
|
418
|
+
* OS-color-scheme listener actually starts. Guarded by `isPlatformBrowser`: an SSR project runs
|
|
419
|
+
* this same initializer on the server too (via `app.config.server.ts`'s `mergeApplicationConfig`),
|
|
420
|
+
* and `KbqThemeService` constructs `window.matchMedia` unconditionally in a field initializer —
|
|
421
|
+
* without the guard, injecting it eagerly here turns a latent, opt-in limitation into a guaranteed
|
|
422
|
+
* `ng build` failure for every SSR project.
|
|
423
|
+
*/
|
|
424
|
+
function themeServiceInitializerRule(projectName) {
|
|
425
|
+
return utility.addRootProvider(projectName, ({ code, external }) => {
|
|
426
|
+
const provideAppInitializer = external('provideAppInitializer', '@angular/core');
|
|
427
|
+
const inject = external('inject', '@angular/core');
|
|
428
|
+
const isPlatformBrowser = external('isPlatformBrowser', '@angular/common');
|
|
429
|
+
const platformId = external('PLATFORM_ID', '@angular/core');
|
|
430
|
+
const kbqThemeService = external('KbqThemeService', '@koobiq/components/core');
|
|
431
|
+
return code `${provideAppInitializer}(() => { if (${isPlatformBrowser}(${inject}(${platformId}))) ${inject}(${kbqThemeService}); })`;
|
|
432
|
+
});
|
|
433
|
+
}
|
|
14
434
|
/**
|
|
15
435
|
* This is executed when `ng add @koobiq/components` is run.
|
|
16
|
-
* It
|
|
436
|
+
* It adds all dependencies to the 'package.json' and schedules their installation, wires the
|
|
437
|
+
* library's styles and theme into `angular.json`/`index.html`, and registers the corresponding
|
|
438
|
+
* root providers.
|
|
17
439
|
*/
|
|
18
440
|
function ngAdd(options) {
|
|
19
|
-
return async (tree) => {
|
|
441
|
+
return async (tree, context) => {
|
|
20
442
|
const { project } = options;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
443
|
+
const theme = options.theme ?? 'auto';
|
|
444
|
+
// `readWorkspace` only ever looks at `/angular.json`, even though the Angular CLI itself
|
|
445
|
+
// also accepts `/.angular.json` — a real, if rare, workspace shape. Reading it once, up
|
|
446
|
+
// front, both avoids that second read further down doing nothing useful with its result,
|
|
447
|
+
// and turns an unreadable workspace into the same clear, immediate failure as an unknown
|
|
448
|
+
// `--project`, before any dependency has been written to `package.json`.
|
|
449
|
+
let workspace;
|
|
450
|
+
try {
|
|
451
|
+
workspace = await utility.readWorkspace(tree);
|
|
452
|
+
}
|
|
453
|
+
catch {
|
|
454
|
+
throw new schematics.SchematicsException(workspaceReadFailed());
|
|
455
|
+
}
|
|
456
|
+
if (project && !workspace.projects.get(project)) {
|
|
457
|
+
throw new schematics.SchematicsException(noProject(project));
|
|
27
458
|
}
|
|
28
459
|
// Installing dependencies
|
|
29
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^
|
|
30
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^
|
|
460
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@angular/cdk', "^21.2.14");
|
|
461
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/angular-luxon-adapter', "^21.0.0");
|
|
462
|
+
// `@koobiq/angular-luxon-adapter` is a wrapper: it extends `LuxonDateAdapter` from the base
|
|
463
|
+
// package and re-exports its formats, both as value imports. That makes the base a mandatory
|
|
464
|
+
// peer of the wrapper, and installing a package without its mandatory peers only works on
|
|
465
|
+
// npm — Yarn leaves them out, so the application ends up unable to resolve the adapter.
|
|
466
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/luxon-date-adapter', "^3.5.1");
|
|
31
467
|
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-formatter', "^3.5.1");
|
|
32
468
|
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/date-adapter', "^3.5.1");
|
|
33
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.
|
|
34
|
-
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/design-tokens', "^
|
|
469
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/icons', "^12.4.0");
|
|
470
|
+
utils_packageConfig.addPackageToPackageJson(tree, '@koobiq/design-tokens', "^4.1.0");
|
|
35
471
|
utils_packageConfig.addPackageToPackageJson(tree, 'luxon', "^3.7.2");
|
|
472
|
+
// `overlayscrollbars` is a mandatory peer too: `@koobiq/components/scrollbar` imports it
|
|
473
|
+
// unconditionally, and content-panel, notification-center and app-switcher all pull that in.
|
|
474
|
+
utils_packageConfig.addPackageToPackageJson(tree, 'overlayscrollbars', "2.7.3");
|
|
475
|
+
// `addPackageToPackageJson` only edits the manifest — nothing in the Angular CLI installs
|
|
476
|
+
// what a schematic adds there, so without this task the application is left with
|
|
477
|
+
// dependencies it has not actually got, and the instruction below cannot be followed.
|
|
478
|
+
context.addTask(new tasks.NodePackageInstallTask());
|
|
479
|
+
// Wiring styles: prepend the documented style entries to every application project's
|
|
480
|
+
// `build` target (or just `project`, when given), then apply the theme class to each
|
|
481
|
+
// project's index.html.
|
|
482
|
+
const wiredProjects = applyKoobiqWorkspaceStyles(workspace, theme, project);
|
|
483
|
+
await utility.writeWorkspace(tree, workspace);
|
|
484
|
+
if (wiredProjects.length === 0) {
|
|
485
|
+
utils_messages.logMessage(context.logger, noWiredProjects());
|
|
486
|
+
}
|
|
487
|
+
const providerRules = [];
|
|
488
|
+
let sawSsrProject = false;
|
|
489
|
+
for (const wired of wiredProjects) {
|
|
490
|
+
if (tree.exists(wired.indexHtmlPath)) {
|
|
491
|
+
const { content, changed } = setKoobiqThemeBodyClass(tree.read(wired.indexHtmlPath).toString('utf-8'), theme);
|
|
492
|
+
if (changed)
|
|
493
|
+
tree.overwrite(wired.indexHtmlPath, content);
|
|
494
|
+
}
|
|
495
|
+
if (!wired.stylesWired) {
|
|
496
|
+
utils_messages.logMessage(context.logger, noStylesTarget(wired.projectName));
|
|
497
|
+
}
|
|
498
|
+
if (wired.isSsr)
|
|
499
|
+
sawSsrProject = true;
|
|
500
|
+
const resolved = await resolveProviders(tree, wired.projectName);
|
|
501
|
+
if (resolved) {
|
|
502
|
+
const existingThemeCall = findProviderCall(resolved, 'kbqThemeProvider');
|
|
503
|
+
const newThemeCallText = themeProviderCallText(theme);
|
|
504
|
+
if (existingThemeCall) {
|
|
505
|
+
if (existingThemeCall.getText(resolved.sourceFile) !== newThemeCallText) {
|
|
506
|
+
replaceNode(tree, resolved, existingThemeCall, newThemeCallText);
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
providerRules.push(themeProviderRule(wired.projectName, theme));
|
|
511
|
+
}
|
|
512
|
+
// `kbqThemeProvider({ mode: 'auto' })` only configures `KbqThemeService` — the
|
|
513
|
+
// service is `providedIn: 'root'` and nothing in the library injects it eagerly, so
|
|
514
|
+
// without an initializer forcing that first injection, the OS color scheme is never
|
|
515
|
+
// actually applied until something else (e.g. a theme-toggle button) happens to
|
|
516
|
+
// inject it.
|
|
517
|
+
if (theme === 'auto' && !hasThemeServiceInitializer(resolved)) {
|
|
518
|
+
providerRules.push(themeServiceInitializerRule(wired.projectName));
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
// The bootstrap couldn't be statically analyzed (a non-standalone/custom
|
|
523
|
+
// bootstrap, a missing `build` target, ...) — `addRootProvider` is expected to fail
|
|
524
|
+
// for the same reason, so route it through `safeRule` and tell the user to wire the
|
|
525
|
+
// provider up by hand instead.
|
|
526
|
+
providerRules.push(safeRule(themeProviderRule(wired.projectName, theme), themeProviderFallback(wired.projectName, theme)));
|
|
527
|
+
if (theme === 'auto') {
|
|
528
|
+
providerRules.push(safeRule(themeServiceInitializerRule(wired.projectName), themeServiceFallback(wired.projectName)));
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
if (sawSsrProject) {
|
|
533
|
+
utils_messages.logMessage(context.logger, ssrSuggestion());
|
|
534
|
+
}
|
|
535
|
+
utils_messages.logMessage(context.logger, fontsSuggestion());
|
|
536
|
+
return schematics.chain(providerRules);
|
|
36
537
|
};
|
|
37
538
|
}
|
|
38
539
|
|
|
@@ -10,6 +10,21 @@
|
|
|
10
10
|
"$default": {
|
|
11
11
|
"$source": "projectName"
|
|
12
12
|
}
|
|
13
|
+
},
|
|
14
|
+
"theme": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"enum": ["auto", "light", "dark"],
|
|
17
|
+
"default": "auto",
|
|
18
|
+
"description": "The prebuilt Koobiq theme to install into angular.json and index.html.",
|
|
19
|
+
"x-prompt": {
|
|
20
|
+
"message": "Choose a theme to install:",
|
|
21
|
+
"type": "list",
|
|
22
|
+
"items": [
|
|
23
|
+
{ "value": "auto", "label": "Auto — follow the OS color scheme via KbqThemeService" },
|
|
24
|
+
{ "value": "light", "label": "Light" },
|
|
25
|
+
{ "value": "dark", "label": "Dark" }
|
|
26
|
+
]
|
|
27
|
+
}
|
|
13
28
|
}
|
|
14
29
|
}
|
|
15
30
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var utils_messages = require('./messages.js');
|
|
4
|
+
var utils_packageConfig = require('../package-config-BhU2TfC8.js');
|
|
5
|
+
require('@angular-devkit/schematics');
|
|
6
|
+
require('@schematics/angular/utility');
|
|
7
|
+
|
|
8
|
+
const TS_EXT = '.ts';
|
|
9
|
+
/**
|
|
10
|
+
* Builds the migration for an entry point whose previous implementation moved to `/deprecated` when a
|
|
11
|
+
* rewrite took over `@koobiq/components/<entryPoint>`. It rewrites the import specifier only; the API
|
|
12
|
+
* itself is unchanged at its new path.
|
|
13
|
+
*
|
|
14
|
+
* Quote-anchored (`(['"])@koobiq/components/<entryPoint>\1`) so it matches only the exact, bare module
|
|
15
|
+
* specifier — never a prefix of an already-migrated `/deprecated` import, nor an unrelated sibling
|
|
16
|
+
* package whose name merely starts with the same word.
|
|
17
|
+
*/
|
|
18
|
+
function deprecatedPathMigration(entryPoint) {
|
|
19
|
+
const specifier = `@koobiq/components/${entryPoint}`;
|
|
20
|
+
const label = `[${entryPoint}-deprecated-path]`;
|
|
21
|
+
const from = `(['"])${specifier}\\1`;
|
|
22
|
+
const to = `$1${specifier}/deprecated$1`;
|
|
23
|
+
const migrate = (content) => {
|
|
24
|
+
const migrated = content.replace(new RegExp(from, 'g'), to);
|
|
25
|
+
return { content: migrated, changed: migrated !== content };
|
|
26
|
+
};
|
|
27
|
+
return (options) => async (tree, context) => {
|
|
28
|
+
const { project } = options;
|
|
29
|
+
// `ng update` invokes migrations with no options at all, and migrations.json
|
|
30
|
+
// declares no schema, so the schema default never reaches us — applying the
|
|
31
|
+
// fix is the intended behaviour there.
|
|
32
|
+
const fix = options.fix ?? true;
|
|
33
|
+
const projectDefinition = await utils_packageConfig.setupOptions(project, tree);
|
|
34
|
+
const root = projectDefinition?.root ?? '';
|
|
35
|
+
const rootDir = root ? tree.getDir(root) : tree.root;
|
|
36
|
+
let touched = 0;
|
|
37
|
+
utils_packageConfig.visitProjectFiles(rootDir, (filePath, entry) => {
|
|
38
|
+
if (!filePath.endsWith(TS_EXT))
|
|
39
|
+
return;
|
|
40
|
+
const originalContent = entry?.content.toString();
|
|
41
|
+
if (!originalContent || !originalContent.includes(specifier))
|
|
42
|
+
return;
|
|
43
|
+
const { content, changed } = migrate(originalContent);
|
|
44
|
+
if (!changed)
|
|
45
|
+
return;
|
|
46
|
+
touched++;
|
|
47
|
+
if (fix) {
|
|
48
|
+
tree.overwrite(filePath, content);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
utils_messages.logMessage(context.logger, [`${label} would update ${filePath} (run with --fix to apply)`]);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
utils_messages.logMessage(context.logger, [
|
|
55
|
+
`${label} processed tree under "${root || '<workspace root>'}", ` +
|
|
56
|
+
`${fix ? 'updated' : 'would update'} ${touched} file(s).`
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
exports.deprecatedPathMigration = deprecatedPathMigration;
|