@koobiq/components 20.4.2 → 21.0.1
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 +791 -609
- 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 +2871 -2595
- 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 +400 -149
- 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 +734 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1700 -617
- 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 +415 -18
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -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.cjs +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -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 → data.cjs} +3 -0
- package/schematics/migrations/alert-signals/index.cjs +221 -0
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
- package/schematics/migrations/angular-animations-removal/index.cjs +21 -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.cjs +136 -0
- package/schematics/migrations/app-switcher-signals/index.cjs +366 -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 → index.cjs} +6 -5
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
- package/schematics/migrations/autocomplete-signals/index.cjs +707 -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.cjs +109 -0
- package/schematics/migrations/badge-signals/index.cjs +694 -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.cjs +136 -0
- package/schematics/migrations/button-state-and-styles/index.cjs +221 -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.cjs +106 -0
- package/schematics/migrations/button-supported-colors/index.cjs +261 -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.cjs +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -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.cjs +88 -0
- package/schematics/migrations/button-truncation/index.cjs +270 -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.cjs +114 -0
- package/schematics/migrations/checkbox-signals/index.cjs +635 -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.cjs +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
- package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
- package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
- package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.cjs +121 -0
- package/schematics/migrations/code-block-signals/index.cjs +701 -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.cjs +131 -0
- package/schematics/migrations/color-signals/index.cjs +20 -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.cjs +27 -0
- package/schematics/migrations/core-mixins-removal/index.cjs +18 -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 → index.cjs} +4 -3
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.cjs +49 -0
- package/schematics/migrations/datepicker-signals/index.cjs +18 -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 → index.cjs} +8 -7
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.cjs +60 -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.cjs +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -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.cjs +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -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.cjs +44 -0
- package/schematics/migrations/dl-standalone-names/index.cjs +322 -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.cjs +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -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.cjs +152 -0
- package/schematics/migrations/dropdown-signals/index.cjs +20 -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.cjs +85 -0
- package/schematics/migrations/empty-state-error-color/index.cjs +72 -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 → index.cjs} +6 -5
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -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.cjs +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -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.cjs +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -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 → data.cjs} +1 -2
- package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -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.cjs +58 -0
- package/schematics/migrations/flag-inner-html/index.cjs +62 -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.cjs +288 -0
- package/schematics/migrations/form-field-signals/index.cjs +383 -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.cjs +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -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 → index.cjs} +4 -3
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -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.cjs +135 -0
- package/schematics/migrations/input-number-surface/index.cjs +293 -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.cjs +30 -0
- package/schematics/migrations/input-signals/index.cjs +18 -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.cjs +20 -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.cjs +116 -0
- package/schematics/migrations/link-signals/index.cjs +416 -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.cjs +35 -0
- package/schematics/migrations/list-signals/index.cjs +18 -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.cjs +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -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.cjs +101 -0
- package/schematics/migrations/loader-overlay-signals/index.cjs +698 -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 → index.cjs} +6 -5
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
- package/schematics/migrations/locale-configuration-providers/index.cjs +295 -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.cjs +43 -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.cjs +79 -0
- package/schematics/migrations/markdown-signals/index.cjs +640 -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.cjs +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -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.cjs +132 -0
- package/schematics/migrations/modal-signals/index.cjs +20 -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.cjs +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -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 → index.cjs} +8 -7
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.cjs +66 -0
- package/schematics/migrations/notification-center-signals/index.cjs +62 -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.cjs +86 -0
- package/schematics/migrations/option-signals/index.cjs +20 -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.cjs +61 -0
- package/schematics/migrations/popover-leave-delay/index.cjs +55 -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.cjs +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -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.cjs +83 -0
- package/schematics/migrations/progress-spinner-signals/index.cjs +695 -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.cjs +70 -0
- package/schematics/migrations/query-list-signals/index.cjs +18 -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.cjs +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -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.cjs +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -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.cjs +21 -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.cjs +99 -0
- package/schematics/migrations/select-signal-inputs/index.cjs +58 -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.cjs +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -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.cjs +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -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.cjs +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -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.cjs +21 -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.cjs +88 -0
- package/schematics/migrations/state-saving-default/index.cjs +63 -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.cjs +66 -0
- package/schematics/migrations/table-cell-content/index.cjs +67 -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.cjs +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -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.cjs +42 -0
- package/schematics/migrations/tag-list-cleaner/index.cjs +197 -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.cjs +191 -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.cjs +103 -0
- package/schematics/migrations/tags-signals/index.cjs +674 -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.cjs +121 -0
- package/schematics/migrations/textarea-signals/index.cjs +380 -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.cjs +139 -0
- package/schematics/migrations/time-range-title-for/index.cjs +164 -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.cjs +82 -0
- package/schematics/migrations/timepicker-signals/index.cjs +710 -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.cjs +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -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.cjs +69 -0
- package/schematics/migrations/title-encapsulation/index.cjs +58 -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.cjs +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -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.cjs +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -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.cjs +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -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.cjs +106 -0
- package/schematics/migrations/tree-select-signals/index.cjs +59 -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.cjs +123 -0
- package/schematics/migrations/tree-signals/index.cjs +55 -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.cjs +78 -0
- package/schematics/migrations/tree-state-saving-default/index.cjs +61 -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.cjs +78 -0
- package/schematics/migrations/username-pipe-injection/index.cjs +59 -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 → data.cjs} +124 -77
- package/schematics/migrations/v20-upgrade/index.cjs +19 -0
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
- package/schematics/migrations/v21-upgrade/index.cjs +95 -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.cjs +29 -0
- package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +401 -6
- package/schematics/ng-add/index.cjs +266 -0
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
- package/schematics/utils/deprecated-path-migration.cjs +62 -0
- package/schematics/utils/html-config.cjs +148 -0
- package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
- package/schematics/utils/list-item-pattern.cjs +16 -0
- package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
- package/schematics/utils/project-files.cjs +25 -0
- package/schematics/utils/replacement-driver.cjs +337 -0
- package/schematics/utils/safe-rule.cjs +23 -0
- package/schematics/utils/signal-members-migration.cjs +779 -0
- package/schematics/utils/tag-patterns.cjs +21 -0
- package/schematics/utils/template-ref-access.cjs +155 -0
- package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
- package/schematics/utils/warn-only-migration.cjs +52 -0
- package/schematics/utils/workspace-styles.cjs +123 -0
- 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} +150 -88
- 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 +670 -0
- package/types/koobiq-components-tree.d.ts +1339 -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/schematics/migrations/alert-signals/index.js +0 -353
- package/schematics/migrations/filter-bar-signals/index.js +0 -319
- package/schematics/migrations/v20-upgrade/index.js +0 -225
- package/schematics/ng-add/index.js +0 -39
- 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/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
- /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
- /package/schematics/utils/{ast.js → ast.cjs} +0 -0
- /package/schematics/utils/{messages.js → messages.cjs} +0 -0
- /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
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { InjectionToken, inject, SecurityContext, Injectable,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { of, throwError, ReplaySubject, EMPTY } from 'rxjs';
|
|
7
|
-
import { map, catchError, share, finalize, switchMap } from 'rxjs/operators';
|
|
3
|
+
import { InjectionToken, inject, SecurityContext, Injectable, DestroyRef, Renderer2, input, booleanAttribute, computed, numberAttribute, signal, ViewEncapsulation, ChangeDetectionStrategy, Component, effect, isDevMode, NgModule } from '@angular/core';
|
|
4
|
+
import { KbqColorDirective, KbqComponentColors } from '@koobiq/components/core';
|
|
5
|
+
import { throwError, defer, of, Subscription } from 'rxjs';
|
|
8
6
|
import { DOCUMENT } from '@angular/common';
|
|
9
7
|
import { HttpClient } from '@angular/common/http';
|
|
10
8
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
9
|
+
import { map, catchError, share, finalize } from 'rxjs/operators';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Injection token used by `KbqIcon` to look up its `KbqIconErrorStateContext`.
|
|
13
|
+
*
|
|
14
14
|
* @docs-private
|
|
15
15
|
*/
|
|
16
16
|
const KBQ_ICON_ERROR_STATE_CONTEXT = new InjectionToken('KbqIconErrorStateContext');
|
|
17
17
|
/**
|
|
18
18
|
* Utility provider for `KBQ_ICON_ERROR_STATE_CONTEXT`, built from a factory that resolves the current host's `KbqIconErrorStateContext`.
|
|
19
|
+
*
|
|
19
20
|
* @docs-private
|
|
20
21
|
*/
|
|
21
22
|
const kbqIconErrorStateContextFactoryProvider = (factory) => ({
|
|
@@ -41,12 +42,17 @@ function kbqIconsResolverProvider(resolver) {
|
|
|
41
42
|
return { provide: KBQ_ICON_RESOLVER, useValue: resolver, multi: true };
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
|
-
* Registers a name→
|
|
45
|
-
*
|
|
46
|
-
*
|
|
45
|
+
* Registers a name→URL dictionary as an icon resolver. Values are fetched at runtime through `HttpClient`.
|
|
46
|
+
*
|
|
47
|
+
* A value starting with `<` is taken as inline markup and passed through Angular's HTML sanitizer,
|
|
48
|
+
* which drops `<svg>` wholesale — register inline icons with
|
|
49
|
+
* `KbqIconRegistry.addSvgIconLiteral(name, sanitizer.bypassSecurityTrustHtml(svg))` instead, where the
|
|
50
|
+
* markup is a `SafeHtml` the application has explicitly vouched for.
|
|
47
51
|
*
|
|
48
52
|
* @example
|
|
49
|
-
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* kbqIconsDictProvider({ 'chevron-down-s_16': '/assets/icons/chevron-down-s_16.svg' })
|
|
55
|
+
* ```
|
|
50
56
|
*/
|
|
51
57
|
function kbqIconsDictProvider(dict) {
|
|
52
58
|
return kbqIconsResolverProvider((name) => dict[name] ?? null);
|
|
@@ -55,6 +61,18 @@ function kbqIconsDictProvider(dict) {
|
|
|
55
61
|
function iconKey(namespace, name) {
|
|
56
62
|
return namespace ? `${namespace}:${name}` : name;
|
|
57
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Splits "namespace:name" at the first colon; a name without one stays in the given namespace.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
function parseIconName(name, namespace = '') {
|
|
70
|
+
const colonIndex = name.indexOf(':');
|
|
71
|
+
return colonIndex === -1 ? [namespace, name] : [name.slice(0, colonIndex), name.slice(colonIndex + 1)];
|
|
72
|
+
}
|
|
73
|
+
function isSvgMarkup(text) {
|
|
74
|
+
return text.trimStart().startsWith('<');
|
|
75
|
+
}
|
|
58
76
|
function cloneSvg(svg) {
|
|
59
77
|
return svg.cloneNode(true);
|
|
60
78
|
}
|
|
@@ -120,17 +138,25 @@ class KbqIconRegistry {
|
|
|
120
138
|
* Accepts "namespace:name" syntax.
|
|
121
139
|
*/
|
|
122
140
|
getNamedSvgIcon(name, namespace = '') {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
141
|
+
const icon = this.findSvgIcon(name, namespace);
|
|
142
|
+
if (icon)
|
|
143
|
+
return icon;
|
|
144
|
+
const key = iconKey(...parseIconName(name, namespace));
|
|
145
|
+
return throwError(() => Error(`KbqIconRegistry: no icon registered for "${key}".`));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* `getNamedSvgIcon` without the error for a miss: `null` when nothing registered can resolve the name. Every font
|
|
149
|
+
* icon is looked up, and an error per miss would cost a stack trace each.
|
|
150
|
+
*
|
|
151
|
+
* @internal
|
|
152
|
+
*/
|
|
153
|
+
findSvgIcon(name, namespace = '') {
|
|
154
|
+
if (isSvgMarkup(name)) {
|
|
155
|
+
// `defer` so that unparsable markup arrives as an error notification: every failure of this
|
|
156
|
+
// class has to reach the caller through the same channel.
|
|
157
|
+
return defer(() => of(this.svgElementFromText(this.sanitizer.sanitize(SecurityContext.HTML, name) ?? '')));
|
|
133
158
|
}
|
|
159
|
+
const [resolvedNs, resolvedName] = parseIconName(name, namespace);
|
|
134
160
|
const key = iconKey(resolvedNs, resolvedName);
|
|
135
161
|
const iconConfig = this.iconConfigs.get(key);
|
|
136
162
|
if (iconConfig) {
|
|
@@ -146,7 +172,7 @@ class KbqIconRegistry {
|
|
|
146
172
|
svgElement: null,
|
|
147
173
|
options: undefined
|
|
148
174
|
};
|
|
149
|
-
if (result
|
|
175
|
+
if (isSvgMarkup(result)) {
|
|
150
176
|
const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, result) ?? '';
|
|
151
177
|
config.svgText = this.sanitizer.bypassSecurityTrustHtml(sanitized);
|
|
152
178
|
}
|
|
@@ -160,7 +186,7 @@ class KbqIconRegistry {
|
|
|
160
186
|
if (sets?.length) {
|
|
161
187
|
return this.loadIconFromSets(resolvedName, sets);
|
|
162
188
|
}
|
|
163
|
-
return
|
|
189
|
+
return null;
|
|
164
190
|
}
|
|
165
191
|
cacheIcon(namespace, name, config) {
|
|
166
192
|
this.iconConfigs.set(iconKey(namespace, name), config);
|
|
@@ -171,9 +197,11 @@ class KbqIconRegistry {
|
|
|
171
197
|
return of(cloneSvg(config.svgElement));
|
|
172
198
|
}
|
|
173
199
|
if (config.svgText) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
200
|
+
return defer(() => {
|
|
201
|
+
const svg = this.svgElementFromText(config.svgText, config.options);
|
|
202
|
+
config.svgElement = svg;
|
|
203
|
+
return of(cloneSvg(svg));
|
|
204
|
+
});
|
|
177
205
|
}
|
|
178
206
|
if (config.url) {
|
|
179
207
|
return this.fetchUrl(config.url, config.options?.withCredentials).pipe(map((text) => {
|
|
@@ -239,7 +267,9 @@ class KbqIconRegistry {
|
|
|
239
267
|
}));
|
|
240
268
|
}
|
|
241
269
|
extractIconFromSet(name, setElement) {
|
|
242
|
-
|
|
270
|
+
// Symbol ids come from the consumer's sprite, so they are not guaranteed to be valid CSS
|
|
271
|
+
// identifiers — `3d-view_16` alone would make `#${name}` throw. Matching on the id avoids escaping.
|
|
272
|
+
const symbol = Array.from(setElement.querySelectorAll('symbol')).find((element) => element.id === name);
|
|
243
273
|
if (!symbol)
|
|
244
274
|
return null;
|
|
245
275
|
const svg = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
@@ -267,9 +297,11 @@ class KbqIconRegistry {
|
|
|
267
297
|
return svg;
|
|
268
298
|
}
|
|
269
299
|
fetchUrl(url, withCredentials = false) {
|
|
300
|
+
// Every other failure in this class is an error notification; a synchronous throw here would
|
|
301
|
+
// escape `getNamedSvgIcon` at the call site, where no `catchError` can reach it.
|
|
270
302
|
if (!this.httpClient) {
|
|
271
|
-
|
|
272
|
-
'Provide it via provideHttpClient() or HttpClientModule.');
|
|
303
|
+
return throwError(() => Error('KbqIconRegistry: HttpClient is required for loading icons from URLs. ' +
|
|
304
|
+
'Provide it via provideHttpClient() or HttpClientModule.'));
|
|
273
305
|
}
|
|
274
306
|
const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url);
|
|
275
307
|
if (!urlStr) {
|
|
@@ -282,207 +314,429 @@ class KbqIconRegistry {
|
|
|
282
314
|
this.inProgressUrlFetches.set(urlStr, fetch);
|
|
283
315
|
return fetch;
|
|
284
316
|
}
|
|
285
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
286
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
317
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
318
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconRegistry, providedIn: 'root' }); }
|
|
287
319
|
}
|
|
288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
320
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconRegistry, decorators: [{
|
|
289
321
|
type: Injectable,
|
|
290
322
|
args: [{ providedIn: 'root' }]
|
|
291
323
|
}], ctorParameters: () => [] });
|
|
292
324
|
|
|
325
|
+
/** Marks an injected `<svg>` with the name it renders, so hydration can recognize and adopt it. */
|
|
326
|
+
const ICON_NAME_ATTRIBUTE = 'data-kbq-icon-name';
|
|
327
|
+
/**
|
|
328
|
+
* Renders an icon on the element it is applied to: a `@koobiq/icons` font glyph by default, or an inline
|
|
329
|
+
* `<svg>` when the name resolves through a configured `KbqIconRegistry`. A name that does not resolve
|
|
330
|
+
* falls back to the font class, and every later name is resolved again.
|
|
331
|
+
*
|
|
332
|
+
* The host is `aria-hidden` by default: an icon carries no text of its own, and in nearly every place the
|
|
333
|
+
* library and its consumers use one it repeats a label that is already there. A meaningful icon opts out
|
|
334
|
+
* with `aria-hidden="false"`, and then has to supply its own `role="img"` and `aria-label`.
|
|
335
|
+
*/
|
|
293
336
|
class KbqIcon extends KbqColorDirective {
|
|
337
|
+
/**
|
|
338
|
+
* Whether `autoColor` takes the error color from the host's error state.
|
|
339
|
+
*
|
|
340
|
+
* @docs-private
|
|
341
|
+
*/
|
|
342
|
+
get autoColorError() {
|
|
343
|
+
return this.autoColor && this.hostErrorState();
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Name the inline SVG is resolved for, which is `iconName` however that was set.
|
|
347
|
+
*
|
|
348
|
+
* @docs-private
|
|
349
|
+
*/
|
|
350
|
+
get svgIconName() {
|
|
351
|
+
return this.iconName;
|
|
352
|
+
}
|
|
294
353
|
constructor() {
|
|
295
|
-
super(
|
|
296
|
-
this.elementRef = inject(ElementRef);
|
|
354
|
+
super();
|
|
297
355
|
/**
|
|
298
356
|
* Host providing error state for `autoColor`, when the icon sits inside one (e.g. a form field).
|
|
357
|
+
*
|
|
299
358
|
* @docs-private
|
|
300
359
|
*/
|
|
301
360
|
this.errorStateContext = inject(KBQ_ICON_ERROR_STATE_CONTEXT, { optional: true });
|
|
302
|
-
this.changeDetectorRef = inject(ChangeDetectorRef);
|
|
303
361
|
this.registry = inject(KbqIconRegistry, { optional: true });
|
|
304
362
|
this.destroyRef = inject(DestroyRef);
|
|
305
|
-
this.
|
|
306
|
-
|
|
307
|
-
|
|
363
|
+
this.renderer = inject(Renderer2);
|
|
364
|
+
/**
|
|
365
|
+
* Whether the icon is hidden from assistive technology. Left unbound, it falls back to
|
|
366
|
+
* `defaultAriaHidden`, which is `true` for a decorative icon and `false` for an interactive one.
|
|
367
|
+
*/
|
|
368
|
+
this.ariaHidden = input(undefined, { ...(ngDevMode ? { debugName: "ariaHidden" } : /* istanbul ignore next */ {}), alias: 'aria-hidden',
|
|
369
|
+
// `null` is how a template says "leave it unset" (`cond ? true : null`), so it means the default
|
|
370
|
+
// rather than `false` — `booleanAttribute(null)` would turn it into an explicit opt-out.
|
|
371
|
+
transform: (value) => (value == null ? undefined : booleanAttribute(value)) });
|
|
372
|
+
/** Whether an icon of this kind is decorative when the caller says nothing. Overridden by subclasses. */
|
|
373
|
+
this.defaultAriaHidden = true;
|
|
374
|
+
/** @docs-private */
|
|
375
|
+
this.resolvedAriaHidden = computed(() => {
|
|
376
|
+
const explicit = this.ariaHidden();
|
|
377
|
+
// An explicit value is the caller's, including "false" — reflecting it keeps the documented
|
|
378
|
+
// opt-out visible in the DOM. Only an unbound input falls back to the kind's default.
|
|
379
|
+
if (explicit !== undefined)
|
|
380
|
+
return String(explicit);
|
|
381
|
+
return this.defaultAriaHidden ? 'true' : null;
|
|
382
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedAriaHidden" }] : /* istanbul ignore next */ []));
|
|
383
|
+
/**
|
|
384
|
+
* Rendered size of the icon in pixels. Left unset, the size is read from the `_<px>` suffix of the
|
|
385
|
+
* icon name (`kbq-plus_16` → 16), which is the `@koobiq/icons` convention; a name without one is
|
|
386
|
+
* rendered at whatever size the surrounding styles give it.
|
|
387
|
+
*/
|
|
388
|
+
this.iconSize = input(undefined, { ...(ngDevMode ? { debugName: "iconSize" } : /* istanbul ignore next */ {}), transform: (value) => {
|
|
389
|
+
const size = numberAttribute(value);
|
|
390
|
+
return Number.isNaN(size) ? undefined : size;
|
|
391
|
+
} });
|
|
392
|
+
/**
|
|
393
|
+
* Whether the icon follows the error state of the host it sits in (a form field, for one), painting
|
|
394
|
+
* itself red while that host reports an error.
|
|
395
|
+
*/
|
|
308
396
|
this.autoColor = false;
|
|
397
|
+
/**
|
|
398
|
+
* Whether the icon takes the error color whatever its `color` is. Set by a host that tints the icons
|
|
399
|
+
* it holds, such as `KbqEmptyState`.
|
|
400
|
+
*/
|
|
309
401
|
this.hasError = false;
|
|
310
|
-
|
|
402
|
+
// The host's error state through a signal of the icon's own: the host's control reads it in its host bindings, in
|
|
403
|
+
// the same reactive consumer as the icon's, where a signal read again after others costs a scan of all it has read
|
|
404
|
+
// so far.
|
|
405
|
+
this.hostErrorState = computed(() => !!this.errorStateContext?.errorState(), ...(ngDevMode ? [{ debugName: "hostErrorState" }] : /* istanbul ignore next */ []));
|
|
406
|
+
/**
|
|
407
|
+
* Whether `color` is the error color. A signal of its own because the color class binding already reads
|
|
408
|
+
* `color`: the host bindings of every icon in a view run in that view's reactive consumer, which finds a
|
|
409
|
+
* signal read a second time by scanning all it has read so far, O(N²) per check across N icons.
|
|
410
|
+
*
|
|
411
|
+
* @internal
|
|
412
|
+
*/
|
|
413
|
+
this.colorIsError = computed(() => this.color() === KbqComponentColors.Error, ...(ngDevMode ? [{ debugName: "colorIsError" }] : /* istanbul ignore next */ []));
|
|
414
|
+
/** @docs-private */
|
|
415
|
+
this.autoColorInput = input(undefined, { ...(ngDevMode ? { debugName: "autoColorInput" } : /* istanbul ignore next */ {}), alias: 'autoColor',
|
|
416
|
+
transform: booleanAttribute });
|
|
417
|
+
/** @docs-private */
|
|
418
|
+
this.iconNameInput = input(undefined, { ...(ngDevMode ? { debugName: "iconNameInput" } : /* istanbul ignore next */ {}), alias: 'kbq-icon' });
|
|
419
|
+
/**
|
|
420
|
+
* Whether the host gets an inline `max-height` matching the icon size. Only the bare icon does: the
|
|
421
|
+
* button and the item size themselves through their own padding.
|
|
422
|
+
*/
|
|
423
|
+
this.appliesMaxHeight = true;
|
|
311
424
|
/**
|
|
312
425
|
* True when icon is being rendered as inline SVG.
|
|
426
|
+
*
|
|
313
427
|
* @docs-private
|
|
314
428
|
*/
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
this.
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
429
|
+
// Starts from the DOM, not `false`: on a hydrated page the svg is already there, and `false`
|
|
430
|
+
// would show the font class until the async resolution catches up.
|
|
431
|
+
this.svgIcon = signal(!!this.findTaggedSvg(), ...(ngDevMode ? [{ debugName: "svgIcon" }] : /* istanbul ignore next */ []));
|
|
432
|
+
/** Resolution of the inline SVG, replaced whenever the name changes. */
|
|
433
|
+
this.svgIconSubscription = Subscription.EMPTY;
|
|
434
|
+
/** The `<svg>` injected for the resolved name — or already on the host, tagged, from SSR. */
|
|
435
|
+
this.injectedSvg = this.findTaggedSvg();
|
|
436
|
+
/** Whether the content is initialized, which is when the inline SVG is first resolved. */
|
|
437
|
+
this.contentInitialized = false;
|
|
438
|
+
this.destroyRef.onDestroy(() => this.svgIconSubscription.unsubscribe());
|
|
322
439
|
}
|
|
323
440
|
getHostElement() {
|
|
324
441
|
return this.elementRef.nativeElement;
|
|
325
442
|
}
|
|
443
|
+
/** An `<svg>` already on the host, tagged with the name it renders — e.g. one SSR left behind. */
|
|
444
|
+
findTaggedSvg() {
|
|
445
|
+
return this.getHostElement().querySelector(`svg[${ICON_NAME_ATTRIBUTE}]`);
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Sets the icon name from code and resolves its inline SVG again. Before the content is initialized,
|
|
449
|
+
* assigning `iconName` does the same.
|
|
450
|
+
*
|
|
451
|
+
* @docs-private
|
|
452
|
+
*/
|
|
453
|
+
setIconName(name) {
|
|
454
|
+
this.iconName = name;
|
|
455
|
+
if (this.contentInitialized)
|
|
456
|
+
this.resolveSvgIcon();
|
|
457
|
+
}
|
|
458
|
+
/** @docs-private */
|
|
326
459
|
updateMaxHeight() {
|
|
327
|
-
if (this.
|
|
460
|
+
if (!this.appliesMaxHeight) {
|
|
328
461
|
return;
|
|
329
462
|
}
|
|
330
|
-
const size = this.
|
|
331
|
-
|
|
332
|
-
|
|
463
|
+
const size = this.resolveIconSize();
|
|
464
|
+
const host = this.getHostElement();
|
|
465
|
+
if (size !== undefined) {
|
|
466
|
+
this.renderer.setStyle(host, 'max-height', `${size}px`);
|
|
467
|
+
}
|
|
468
|
+
else {
|
|
469
|
+
// Without this the ceiling written for the previous name keeps clipping the new glyph.
|
|
470
|
+
this.renderer.removeStyle(host, 'max-height');
|
|
333
471
|
}
|
|
334
472
|
}
|
|
335
473
|
ngOnChanges(changes) {
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
474
|
+
// A bound input is handed to its member; unbound, it leaves what code wrote.
|
|
475
|
+
// A bound `undefined` is a value as well: auto color turns off and the icon is removed.
|
|
476
|
+
if (changes['autoColorInput'])
|
|
477
|
+
this.autoColor = this.autoColorInput() ?? false;
|
|
478
|
+
// A name change reaches the size through the resolution; an explicit size resolves nothing.
|
|
479
|
+
if (changes['iconSize'] && this.contentInitialized)
|
|
480
|
+
this.applyIconSize();
|
|
481
|
+
if (changes['iconNameInput'])
|
|
482
|
+
this.setIconName(this.iconNameInput() ?? '');
|
|
339
483
|
}
|
|
340
484
|
ngAfterContentInit() {
|
|
341
|
-
if (this.autoColor) {
|
|
342
|
-
this.errorStateContext?.stateChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.updateState);
|
|
343
|
-
this.updateState();
|
|
344
|
-
}
|
|
345
485
|
this.updateMaxHeight();
|
|
346
|
-
this.
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
svg.setAttribute('height', `${size}`);
|
|
367
|
-
}
|
|
368
|
-
host.insertBefore(svg, host.firstChild);
|
|
369
|
-
this.changeDetectorRef.markForCheck();
|
|
370
|
-
},
|
|
371
|
-
error: () => {
|
|
372
|
-
// Icon not registered — fall through to font-class path.
|
|
373
|
-
this.svgIcon = false;
|
|
374
|
-
this.updateMaxHeight();
|
|
375
|
-
this.changeDetectorRef.markForCheck();
|
|
376
|
-
}
|
|
486
|
+
this.contentInitialized = true;
|
|
487
|
+
this.resolveSvgIcon();
|
|
488
|
+
}
|
|
489
|
+
/** Renders `svgIconName` as inline SVG when the registry knows it, dropping a resolution still pending. */
|
|
490
|
+
resolveSvgIcon() {
|
|
491
|
+
const name = this.svgIconName;
|
|
492
|
+
this.svgIconSubscription.unsubscribe();
|
|
493
|
+
if (!this.registry || !name) {
|
|
494
|
+
this.renderSvgIcon(null);
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
const registry = this.registry;
|
|
498
|
+
// A registry that replaces the lookup, such as a subclass overriding `getNamedSvgIcon` or a test double, is
|
|
499
|
+
// asked through it: only the library's own lookup can report a miss without building an error.
|
|
500
|
+
const ownLookup = registry.getNamedSvgIcon === KbqIconRegistry.prototype.getNamedSvgIcon;
|
|
501
|
+
// Deferred so that a resolver or a literal that throws falls back to the font class as well, and the
|
|
502
|
+
// next name is resolved again.
|
|
503
|
+
this.svgIconSubscription = defer(() => (ownLookup ? registry.findSvgIcon(name) : registry.getNamedSvgIcon(name)) ?? of(null)).subscribe({
|
|
504
|
+
next: (svg) => this.renderSvgIcon(svg),
|
|
505
|
+
error: () => this.renderSvgIcon(null)
|
|
377
506
|
});
|
|
378
507
|
}
|
|
508
|
+
/** Injects the resolved `<svg>`, or drops back to the font class when the name did not resolve. */
|
|
509
|
+
renderSvgIcon(svg) {
|
|
510
|
+
const host = this.getHostElement();
|
|
511
|
+
const previous = this.injectedSvg;
|
|
512
|
+
// A matching svg is already there (SSR's, most likely) — leave it rather than replace it,
|
|
513
|
+
// which would duplicate it if the replacement raced the DOM it's reusing.
|
|
514
|
+
if (previous && svg && previous.getAttribute(ICON_NAME_ATTRIBUTE) === this.iconName) {
|
|
515
|
+
this.svgIcon.set(true);
|
|
516
|
+
this.applyIconSize();
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
// Only the element injected here (or adopted above): an `<svg>` projected into the host is
|
|
520
|
+
// the consumer's content.
|
|
521
|
+
if (previous) {
|
|
522
|
+
this.renderer.removeChild(host, previous);
|
|
523
|
+
}
|
|
524
|
+
this.injectedSvg = svg;
|
|
525
|
+
this.svgIcon.set(!!svg);
|
|
526
|
+
if (svg) {
|
|
527
|
+
if (this.iconName) {
|
|
528
|
+
this.renderer.setAttribute(svg, ICON_NAME_ATTRIBUTE, this.iconName);
|
|
529
|
+
}
|
|
530
|
+
this.renderer.insertBefore(host, svg, host.firstChild);
|
|
531
|
+
}
|
|
532
|
+
this.applyIconSize();
|
|
533
|
+
}
|
|
534
|
+
/** Sizes the injected `<svg>` and the host's `max-height` to the resolved icon size. */
|
|
535
|
+
applyIconSize() {
|
|
536
|
+
const size = this.resolveIconSize();
|
|
537
|
+
const svg = this.injectedSvg;
|
|
538
|
+
if (svg && size !== undefined) {
|
|
539
|
+
this.renderer.setAttribute(svg, 'width', `${size}`);
|
|
540
|
+
this.renderer.setAttribute(svg, 'height', `${size}`);
|
|
541
|
+
}
|
|
542
|
+
this.updateMaxHeight();
|
|
543
|
+
}
|
|
544
|
+
resolveIconSize() {
|
|
545
|
+
return this.iconSize() ?? this.parseIconSize();
|
|
546
|
+
}
|
|
379
547
|
parseIconSize() {
|
|
380
|
-
const
|
|
381
|
-
const
|
|
382
|
-
return
|
|
548
|
+
const baseName = this.iconName && parseIconName(this.iconName)[1];
|
|
549
|
+
const size = parseInt(baseName?.split('_').pop() ?? '');
|
|
550
|
+
return Number.isNaN(size) ? undefined : size;
|
|
383
551
|
}
|
|
384
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
385
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
552
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
553
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.25", type: KbqIcon, isStandalone: true, selector: "[kbq-icon]", inputs: { ariaHidden: { classPropertyName: "ariaHidden", publicName: "aria-hidden", isSignal: true, isRequired: false, transformFunction: null }, iconSize: { classPropertyName: "iconSize", publicName: "iconSize", isSignal: true, isRequired: false, transformFunction: null }, autoColorInput: { classPropertyName: "autoColorInput", publicName: "autoColor", isSignal: true, isRequired: false, transformFunction: null }, iconNameInput: { classPropertyName: "iconNameInput", publicName: "kbq-icon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "svgIcon() ? null : iconName", "class.kbq-error": "colorIsError() || hasError || autoColorError", "attr.aria-hidden": "resolvedAriaHidden()" }, classAttribute: "kbq kbq-icon" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color, var(--kbq-icon-contrast))}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color, var(--kbq-icon-theme))}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color, var(--kbq-icon-contrast))}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color, var(--kbq-icon-contrast-fade))}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color, var(--kbq-icon-error))}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color, var(--kbq-icon-warning))}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color, var(--kbq-icon-success))}\n", "@charset \"UTF-8\";\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
386
554
|
}
|
|
387
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIcon, decorators: [{
|
|
388
556
|
type: Component,
|
|
389
557
|
args: [{ selector: '[kbq-icon]', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
390
558
|
class: 'kbq kbq-icon',
|
|
391
|
-
'[class]': 'svgIcon ? null : iconName',
|
|
392
|
-
'[class.kbq-error]': '
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}], iconName: [{
|
|
397
|
-
type: Input,
|
|
398
|
-
args: [{ alias: 'kbq-icon' }]
|
|
399
|
-
}] } });
|
|
559
|
+
'[class]': 'svgIcon() ? null : iconName',
|
|
560
|
+
'[class.kbq-error]': 'colorIsError() || hasError || autoColorError',
|
|
561
|
+
'[attr.aria-hidden]': 'resolvedAriaHidden()'
|
|
562
|
+
}, styles: [".kbq-icon>svg{fill:currentColor;vertical-align:middle}.kbq-icon-rotate_90{transform:rotate(90deg)}.kbq-icon-rotate_180{transform:rotate(180deg)}.kbq-icon-rotate_270{transform:rotate(270deg)}.kbq-icon-flip-h{transform:scaleY(-1)}.kbq-icon-flip-v{transform:scaleX(-1)}.kbq-icon-flip-vh{transform:scale(-1)}.kbq-icon{color:var(--kbq-icon-contrast-color, var(--kbq-icon-contrast))}.kbq-icon.kbq-theme{color:var(--kbq-icon-theme-color, var(--kbq-icon-theme))}.kbq-icon.kbq-contrast{color:var(--kbq-icon-contrast-color, var(--kbq-icon-contrast))}.kbq-icon.kbq-contrast-fade{color:var(--kbq-icon-fade-contrast-color, var(--kbq-icon-contrast-fade))}.kbq-icon.kbq-error{color:var(--kbq-icon-error-color, var(--kbq-icon-error))}.kbq-icon.kbq-warning{color:var(--kbq-icon-warning-color, var(--kbq-icon-warning))}.kbq-icon.kbq-success{color:var(--kbq-icon-success-color, var(--kbq-icon-success))}\n", "@charset \"UTF-8\";\n"] }]
|
|
563
|
+
}], ctorParameters: () => [], propDecorators: { ariaHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-hidden", required: false }] }], iconSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconSize", required: false }] }], autoColorInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoColor", required: false }] }], iconNameInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbq-icon", required: false }] }] } });
|
|
400
564
|
|
|
565
|
+
/** Host elements that are already buttons, or already activated from the keyboard by the browser. */
|
|
566
|
+
const NATIVELY_ACTIVATED_NODES = ['BUTTON', 'INPUT'];
|
|
567
|
+
/**
|
|
568
|
+
* An icon that acts as a button. Applied to a native `<button>` it only adds the styling; applied to any
|
|
569
|
+
* other element — `<i>` is what the library itself mostly uses — it also supplies the semantics the
|
|
570
|
+
* element does not have: `role="button"` and `aria-disabled`. It does not synthesize Enter/Space
|
|
571
|
+
* activation itself — attach a `(keydown.enter)`/`(keydown.space)` listener where it is used.
|
|
572
|
+
*
|
|
573
|
+
* It has no text of its own, so give it an `aria-label` (or an `aria-labelledby`); in dev mode it warns
|
|
574
|
+
* when it has neither.
|
|
575
|
+
*
|
|
576
|
+
* It extends `KbqIcon` for the rendering, but deliberately does not register under that DI token: a
|
|
577
|
+
* `contentChild(KbqIcon)` is looking for a decorative icon to position or tint, and an interactive
|
|
578
|
+
* control is not one. See the note on `KbqIconItem`.
|
|
579
|
+
*/
|
|
401
580
|
class KbqIconButton extends KbqIcon {
|
|
402
|
-
|
|
403
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
581
|
+
/** Position of the button in the tab order. A disabled button is taken out of it entirely. */
|
|
404
582
|
get tabindex() {
|
|
405
583
|
return this.disabled ? null : this._tabindex;
|
|
406
584
|
}
|
|
407
585
|
set tabindex(value) {
|
|
408
586
|
this._tabindex = value;
|
|
409
587
|
}
|
|
410
|
-
// @todo 20 In the next major release this feature will be replaced on the input signal.
|
|
411
588
|
/** Whether the button is disabled. */
|
|
412
|
-
// TODO: Skipped for migration because:
|
|
413
|
-
// Accessor inputs cannot be migrated as they are too complex.
|
|
414
589
|
get disabled() {
|
|
415
|
-
return this.
|
|
590
|
+
return this.disabledSignal();
|
|
416
591
|
}
|
|
417
592
|
set disabled(value) {
|
|
418
593
|
this.disabledSignal.set(value);
|
|
419
594
|
}
|
|
595
|
+
ngOnChanges(changes) {
|
|
596
|
+
super.ngOnChanges(changes);
|
|
597
|
+
// A bound input is handed to its member; unbound, it leaves what code wrote.
|
|
598
|
+
// A bound `undefined` or `null` restores the default tabindex instead of dropping the button out of the tab order.
|
|
599
|
+
if (changes['tabindexInput']) {
|
|
600
|
+
const tabindex = this.tabindexInput();
|
|
601
|
+
this.tabindex = tabindex === undefined ? 0 : tabindex;
|
|
602
|
+
}
|
|
603
|
+
if (changes['disabledInput']) {
|
|
604
|
+
const disabled = this.disabledInput();
|
|
605
|
+
if (disabled !== undefined)
|
|
606
|
+
this.disabled = disabled;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
420
609
|
constructor() {
|
|
421
610
|
super();
|
|
611
|
+
/** An icon button is interactive and exposes its own name, so it is not decorative by default. */
|
|
612
|
+
this.defaultAriaHidden = false;
|
|
422
613
|
this.focusMonitor = inject(FocusMonitor);
|
|
423
614
|
/** Size of the icon button. */
|
|
424
|
-
this.size = input('normal', ...(ngDevMode ? [{ debugName: "size" }] : []));
|
|
425
|
-
/**
|
|
426
|
-
* @deprecated Use `size` input instead. Will be removed in the next major release (#DS-5338).
|
|
427
|
-
*/
|
|
428
|
-
this.small = input(false, ...(ngDevMode ? [{ debugName: "small" }] : []));
|
|
615
|
+
this.size = input('normal', ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
429
616
|
/** @docs-private */
|
|
430
|
-
this.
|
|
617
|
+
this.iconNameInput = input(undefined, { ...(ngDevMode ? { debugName: "iconNameInput" } : /* istanbul ignore next */ {}), alias: 'kbq-icon-button' });
|
|
431
618
|
this._tabindex = 0;
|
|
432
619
|
/** @docs-private */
|
|
433
|
-
this.disabledSignal = signal(false, ...(ngDevMode ? [{ debugName: "disabledSignal" }] : []));
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
620
|
+
this.disabledSignal = signal(false, ...(ngDevMode ? [{ debugName: "disabledSignal" }] : /* istanbul ignore next */ []));
|
|
621
|
+
/** The button sizes itself through its own padding, so it never gets the bare icon's `max-height`. */
|
|
622
|
+
this.appliesMaxHeight = false;
|
|
623
|
+
/** @docs-private */
|
|
624
|
+
this.tabindexInput = input(undefined, { ...(ngDevMode ? { debugName: "tabindexInput" } : /* istanbul ignore next */ {}), alias: 'tabindex',
|
|
625
|
+
// `numberAttribute` gives NaN for what it cannot parse, and `tabindex="NaN"` is an invalid attribute the
|
|
626
|
+
// browser ignores, so an unparsable value renders no tabindex at all.
|
|
627
|
+
transform: (value) => {
|
|
628
|
+
if (value == null)
|
|
629
|
+
return undefined;
|
|
630
|
+
const tabindex = numberAttribute(value);
|
|
631
|
+
return Number.isNaN(tabindex) ? null : tabindex;
|
|
632
|
+
} });
|
|
633
|
+
/** @docs-private */
|
|
634
|
+
this.disabledInput = input(undefined, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled',
|
|
635
|
+
transform: booleanAttribute });
|
|
437
636
|
effect(() => (this.disabledSignal() ? this.stopFocusMonitor() : this.runFocusMonitor()));
|
|
438
637
|
}
|
|
439
638
|
ngAfterViewInit() {
|
|
440
639
|
this.runFocusMonitor();
|
|
640
|
+
this.applyButtonRole();
|
|
641
|
+
this.warnIfMissingAccessibleName();
|
|
441
642
|
}
|
|
442
643
|
ngOnDestroy() {
|
|
443
644
|
this.stopFocusMonitor();
|
|
444
645
|
}
|
|
646
|
+
/**
|
|
647
|
+
* Whether the host already behaves like a button, so the browser activates it from the keyboard and
|
|
648
|
+
* announces it without help.
|
|
649
|
+
*
|
|
650
|
+
* Read on demand rather than captured in the constructor: `routerLink` and a bound `[attr.href]` both
|
|
651
|
+
* write the attribute during the update pass, so an anchor that navigates carries no `href` at all
|
|
652
|
+
* while directive constructors run.
|
|
653
|
+
*/
|
|
654
|
+
isNativelyActivated() {
|
|
655
|
+
const host = this.getHostElement();
|
|
656
|
+
return NATIVELY_ACTIVATED_NODES.includes(host.nodeName) || (host.nodeName === 'A' && host.hasAttribute('href'));
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* A link that navigates keeps its own role; anything else is a button only because this component
|
|
660
|
+
* says so, and has to be announced as one.
|
|
661
|
+
*
|
|
662
|
+
* Written through the renderer instead of a host binding, because the binding is evaluated in the
|
|
663
|
+
* parent's update pass — before `routerLink` has set its `href` — and on an `OnPush` component it may
|
|
664
|
+
* never be evaluated again to correct itself.
|
|
665
|
+
*/
|
|
666
|
+
applyButtonRole() {
|
|
667
|
+
const host = this.getHostElement();
|
|
668
|
+
if (this.isNativelyActivated() || host.hasAttribute('role'))
|
|
669
|
+
return;
|
|
670
|
+
this.renderer.setAttribute(host, 'role', 'button');
|
|
671
|
+
}
|
|
672
|
+
/**
|
|
673
|
+
* `KbqIcon` renders a decorative glyph, so an icon button carries no text. Without an
|
|
674
|
+
* `aria-label`/`aria-labelledby`/`title` it has no accessible name at all (AXE `button-name`).
|
|
675
|
+
*
|
|
676
|
+
* A host that opted into `aria-hidden="true"` is exempt: assistive technology never reaches it, so it
|
|
677
|
+
* has nothing to be named for. `KbqStepper` and the datepicker toggle are both built that way — a
|
|
678
|
+
* mouse-only affordance beside a control that already carries the keyboard interaction.
|
|
679
|
+
*/
|
|
680
|
+
warnIfMissingAccessibleName() {
|
|
681
|
+
if (!isDevMode())
|
|
682
|
+
return;
|
|
683
|
+
const host = this.getHostElement();
|
|
684
|
+
if (host.getAttribute('aria-hidden') === 'true')
|
|
685
|
+
return;
|
|
686
|
+
const hasAccessibleName = !!host.textContent?.trim() ||
|
|
687
|
+
host.hasAttribute('aria-label') ||
|
|
688
|
+
host.hasAttribute('aria-labelledby') ||
|
|
689
|
+
host.hasAttribute('title');
|
|
690
|
+
if (hasAccessibleName)
|
|
691
|
+
return;
|
|
692
|
+
// eslint-disable-next-line no-console
|
|
693
|
+
console.warn('KbqIconButton has no accessible name. Add [aria-label] or [aria-labelledby] to it.', host);
|
|
694
|
+
}
|
|
445
695
|
runFocusMonitor() {
|
|
446
696
|
this.focusMonitor.monitor(this.getHostElement(), true);
|
|
447
697
|
}
|
|
448
698
|
stopFocusMonitor() {
|
|
449
699
|
this.focusMonitor.stopMonitoring(this.getHostElement());
|
|
450
700
|
}
|
|
451
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
452
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
701
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
702
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.25", type: KbqIconButton, isStandalone: true, selector: "[kbq-icon-button]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, iconNameInput: { classPropertyName: "iconNameInput", publicName: "kbq-icon-button", isSignal: true, isRequired: false, transformFunction: null }, tabindexInput: { classPropertyName: "tabindexInput", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.tabindex": "tabindex", "attr.disabled": "disabled || null", "attr.aria-disabled": "disabled || null", "class.kbq-disabled": "disabled", "class.kbq-icon-button_compact": "size() === 'compact'" }, classAttribute: "kbq kbq-icon-button" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_compact{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}@media(forced-colors:active){.kbq-icon-button.cdk-keyboard-focused{outline:1px solid;outline-offset:1px}}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
453
703
|
}
|
|
454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconButton, decorators: [{
|
|
455
705
|
type: Component,
|
|
456
706
|
args: [{ selector: `[kbq-icon-button]`, template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
457
707
|
class: 'kbq kbq-icon-button',
|
|
458
708
|
'[attr.tabindex]': 'tabindex',
|
|
459
709
|
'[attr.disabled]': 'disabled || null',
|
|
710
|
+
'[attr.aria-disabled]': 'disabled || null',
|
|
460
711
|
'[class.kbq-disabled]': 'disabled',
|
|
461
|
-
'[class.kbq-icon-button_compact]':
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
}, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_small,.kbq-icon-button.kbq-icon-button_compact{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
465
|
-
}], ctorParameters: () => [], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], small: [{ type: i0.Input, args: [{ isSignal: true, alias: "small", required: false }] }], iconName: [{
|
|
466
|
-
type: Input,
|
|
467
|
-
args: [{ alias: 'kbq-icon-button' }]
|
|
468
|
-
}], tabindex: [{
|
|
469
|
-
type: Input
|
|
470
|
-
}], disabled: [{
|
|
471
|
-
type: Input,
|
|
472
|
-
args: [{ transform: booleanAttribute }]
|
|
473
|
-
}] } });
|
|
712
|
+
'[class.kbq-icon-button_compact]': "size() === 'compact'"
|
|
713
|
+
}, styles: [".kbq-icon-button:not(.kbq-disabled){cursor:pointer}.kbq-icon-button{padding:var(--kbq-icon-button-size-normal-vertical-padding) var(--kbq-icon-button-size-normal-horizontal-padding)}.kbq-icon-button.kbq-icon-button_compact{padding:var(--kbq-icon-button-size-small-vertical-padding) var(--kbq-icon-button-size-small-horizontal-padding)}.kbq-icon-button.kbq-disabled{pointer-events:none}.kbq-icon-button>svg{fill:currentColor;vertical-align:middle}button.kbq-icon-button{border:none;background-color:unset}.kbq-icon-button:focus{outline:none}.kbq-icon-button.kbq-theme{color:var(--kbq-icon-button-theme-default)}.kbq-icon-button.kbq-theme:hover,.kbq-icon-button.kbq-theme.kbq-hovered{color:var(--kbq-icon-button-theme-states-hover)}.kbq-icon-button.kbq-theme:active,.kbq-icon-button.kbq-theme.kbq-active{color:var(--kbq-icon-button-theme-states-active)}.kbq-icon-button.kbq-theme.kbq-disabled{color:var(--kbq-icon-button-theme-states-disabled)}.kbq-icon-button.kbq-contrast{color:var(--kbq-icon-button-contrast-default)}.kbq-icon-button.kbq-contrast:hover,.kbq-icon-button.kbq-contrast.kbq-hovered{color:var(--kbq-icon-button-contrast-states-hover)}.kbq-icon-button.kbq-contrast:active,.kbq-icon-button.kbq-contrast.kbq-active{color:var(--kbq-icon-button-contrast-states-active)}.kbq-icon-button.kbq-contrast.kbq-disabled{color:var(--kbq-icon-button-contrast-states-disabled)}.kbq-icon-button.kbq-contrast-fade{color:var(--kbq-icon-button-fade-contrast-default)}.kbq-icon-button.kbq-contrast-fade:hover,.kbq-icon-button.kbq-contrast-fade.kbq-hovered{color:var(--kbq-icon-button-fade-contrast-states-hover)}.kbq-icon-button.kbq-contrast-fade:active,.kbq-icon-button.kbq-contrast-fade.kbq-active{color:var(--kbq-icon-button-fade-contrast-states-active)}.kbq-icon-button.kbq-contrast-fade.kbq-disabled{color:var(--kbq-icon-button-fade-contrast-states-disabled)}.kbq-icon-button.kbq-error{color:var(--kbq-icon-button-error-default)}.kbq-icon-button.kbq-error:hover,.kbq-icon-button.kbq-error.kbq-hovered{color:var(--kbq-icon-button-error-states-hover)}.kbq-icon-button.kbq-error:active,.kbq-icon-button.kbq-error.kbq-active{color:var(--kbq-icon-button-error-states-active)}.kbq-icon-button.kbq-error.kbq-disabled{color:var(--kbq-icon-button-error-states-disabled)}.kbq-icon-button.kbq-success{color:var(--kbq-icon-button-success-default)}.kbq-icon-button.kbq-success:hover,.kbq-icon-button.kbq-success.kbq-hovered{color:var(--kbq-icon-button-success-states-hover)}.kbq-icon-button.kbq-success:active,.kbq-icon-button.kbq-success.kbq-active{color:var(--kbq-icon-button-success-states-active)}.kbq-icon-button.kbq-success.kbq-disabled{color:var(--kbq-icon-button-success-states-disabled)}.kbq-icon-button.kbq-warning{color:var(--kbq-icon-button-warning-default)}.kbq-icon-button.kbq-warning:hover,.kbq-icon-button.kbq-warning.kbq-hovered{color:var(--kbq-icon-button-warning-states-hover)}.kbq-icon-button.kbq-warning:active,.kbq-icon-button.kbq-warning.kbq-active{color:var(--kbq-icon-button-warning-states-active)}.kbq-icon-button.kbq-warning.kbq-disabled{color:var(--kbq-icon-button-warning-states-disabled)}.kbq-icon-button.cdk-keyboard-focused{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-theme),0 0 0 1px var(--kbq-states-line-focus-theme)}.kbq-icon-button.cdk-keyboard-focused.kbq-error{box-shadow:inset 0 0 0 1px var(--kbq-states-line-focus-error),0 0 0 1px var(--kbq-states-line-focus-error)}@media(forced-colors:active){.kbq-icon-button.cdk-keyboard-focused{outline:1px solid;outline-offset:1px}}\n", ".kbq-icon-button{--kbq-icon-button-size-horizontal-padding: var(--kbq-size-s);--kbq-icon-button-size-left-icon-padding: var(--kbq-size-xs);--kbq-icon-button-size-normal-horizontal-padding: 0;--kbq-icon-button-size-normal-vertical-padding: 0;--kbq-icon-button-size-small-horizontal-padding: var(--kbq-size-xxs);--kbq-icon-button-size-small-vertical-padding: var(--kbq-size-xxs);--kbq-icon-button-theme-default: var(--kbq-icon-theme);--kbq-icon-button-theme-states-hover: var(--kbq-states-icon-theme-hover);--kbq-icon-button-theme-states-active: var(--kbq-states-icon-theme-active);--kbq-icon-button-theme-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-contrast-default: var(--kbq-icon-contrast);--kbq-icon-button-contrast-states-hover: var(--kbq-states-icon-contrast-hover);--kbq-icon-button-contrast-states-active: var(--kbq-states-icon-contrast-active);--kbq-icon-button-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-fade-contrast-default: var(--kbq-icon-contrast-fade);--kbq-icon-button-fade-contrast-states-hover: var(--kbq-states-icon-contrast-fade-hover);--kbq-icon-button-fade-contrast-states-active: var(--kbq-states-icon-contrast-fade-active);--kbq-icon-button-fade-contrast-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-error-default: var(--kbq-icon-error);--kbq-icon-button-error-states-hover: var(--kbq-states-icon-error-hover);--kbq-icon-button-error-states-active: var(--kbq-states-icon-error-active);--kbq-icon-button-error-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-success-default: var(--kbq-icon-success);--kbq-icon-button-success-states-hover: var(--kbq-states-icon-success-hover);--kbq-icon-button-success-states-active: var(--kbq-states-icon-success-active);--kbq-icon-button-success-states-disabled: var(--kbq-states-icon-disabled);--kbq-icon-button-warning-default: var(--kbq-icon-warning);--kbq-icon-button-warning-states-hover: var(--kbq-states-icon-warning-hover);--kbq-icon-button-warning-states-active: var(--kbq-states-icon-warning-active);--kbq-icon-button-warning-states-disabled: var(--kbq-states-icon-disabled)}\n"] }]
|
|
714
|
+
}], ctorParameters: () => [], propDecorators: { size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], iconNameInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbq-icon-button", required: false }] }], tabindexInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
|
|
474
715
|
|
|
716
|
+
/**
|
|
717
|
+
* An icon on a filled round background — the status badge of an alert or an empty state. Decorative like
|
|
718
|
+
* `KbqIcon`, and hidden from assistive technology by the same default.
|
|
719
|
+
*
|
|
720
|
+
* Host metadata is inherited from `KbqIcon` through `ɵɵInheritDefinitionFeature`; DI tokens are not, so a
|
|
721
|
+
* `contentChild(KbqIcon)` does not match an icon item. That is deliberate — a host that wants both asks
|
|
722
|
+
* for both, the way `KbqAlert` does, and telling them apart is what lets it report two projected icons.
|
|
723
|
+
*/
|
|
475
724
|
class KbqIconItem extends KbqIcon {
|
|
476
725
|
constructor() {
|
|
477
726
|
super(...arguments);
|
|
478
|
-
|
|
479
|
-
this.
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
727
|
+
/** The item sizes itself through its own padding, so it never gets the bare icon's `max-height`. */
|
|
728
|
+
this.appliesMaxHeight = false;
|
|
729
|
+
/** @docs-private */
|
|
730
|
+
this.iconNameInput = input(undefined, { ...(ngDevMode ? { debugName: "iconNameInput" } : /* istanbul ignore next */ {}), alias: 'kbq-icon-item' });
|
|
731
|
+
/** Whether the background is the translucent "fade" variant of the color rather than the solid one. */
|
|
732
|
+
this.fade = input(false, ...(ngDevMode ? [{ debugName: "fade" }] : /* istanbul ignore next */ []));
|
|
733
|
+
/** Whether the item is rendered at the larger of its two sizes. */
|
|
734
|
+
this.big = input(false, ...(ngDevMode ? [{ debugName: "big" }] : /* istanbul ignore next */ []));
|
|
735
|
+
}
|
|
736
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconItem, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
737
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.25", type: KbqIconItem, isStandalone: true, selector: "[kbq-icon-item]", inputs: { iconNameInput: { classPropertyName: "iconNameInput", publicName: "kbq-icon-item", isSignal: true, isRequired: false, transformFunction: null }, fade: { classPropertyName: "fade", publicName: "fade", isSignal: true, isRequired: false, transformFunction: null }, big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.kbq-icon-item_normal": "!big()", "class.kbq-icon-item_big": "big()", "class.kbq-icon-item_fade-off": "!fade()", "class.kbq-icon-item_fade-on": "fade()" }, classAttribute: "kbq kbq-icon-item kbq-icon-item_filled" }, usesInheritance: true, ngImport: i0, template: '<ng-content />', isInline: true, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
484
738
|
}
|
|
485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconItem, decorators: [{
|
|
486
740
|
type: Component,
|
|
487
741
|
args: [{ selector: `[kbq-icon-item]`, template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
488
742
|
class: 'kbq kbq-icon-item kbq-icon-item_filled',
|
|
@@ -491,10 +745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
491
745
|
'[class.kbq-icon-item_fade-off]': '!fade()',
|
|
492
746
|
'[class.kbq-icon-item_fade-on]': 'fade()'
|
|
493
747
|
}, styles: [".kbq-icon-item{box-sizing:border-box;border-radius:50%}.kbq-icon-item.kbq-icon-item_normal{padding:var(--kbq-icon-item-size-normal-vertical-padding) var(--kbq-icon-item-size-normal-horizontal-padding)}.kbq-icon-item.kbq-icon-item_big{padding:var(--kbq-icon-item-size-big-vertical-padding) var(--kbq-icon-item-size-big-horizontal-padding)}.kbq-icon-item>svg{fill:currentColor;vertical-align:middle}.kbq-icon-item.kbq-icon-item_filled{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-theme{color:var(--kbq-icon-item-filled-fade-off-theme-color);background:var(--kbq-icon-item-filled-fade-off-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-contrast{color:var(--kbq-icon-item-filled-fade-off-contrast-color);background:var(--kbq-icon-item-filled-fade-off-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-error{color:var(--kbq-icon-item-filled-fade-off-error-color);background:var(--kbq-icon-item-filled-fade-off-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-warning{color:var(--kbq-icon-item-filled-fade-off-warning-color);background:var(--kbq-icon-item-filled-fade-off-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-off.kbq-success{color:var(--kbq-icon-item-filled-fade-off-success-color);background:var(--kbq-icon-item-filled-fade-off-success-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-theme{color:var(--kbq-icon-item-filled-fade-on-theme-color);background:var(--kbq-icon-item-filled-fade-on-theme-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-contrast{color:var(--kbq-icon-item-filled-fade-on-contrast-color);background:var(--kbq-icon-item-filled-fade-on-contrast-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-error{color:var(--kbq-icon-item-filled-fade-on-error-color);background:var(--kbq-icon-item-filled-fade-on-error-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-warning{color:var(--kbq-icon-item-filled-fade-on-warning-color);background:var(--kbq-icon-item-filled-fade-on-warning-background)}.kbq-icon-item.kbq-icon-item_filled.kbq-icon-item_fade-on.kbq-success{color:var(--kbq-icon-item-filled-fade-on-success-color);background:var(--kbq-icon-item-filled-fade-on-success-background)}\n", ".kbq-icon-item{--kbq-icon-item-size-normal-horizontal-padding: var(--kbq-size-s);--kbq-icon-item-size-normal-vertical-padding: var(--kbq-size-s);--kbq-icon-item-size-big-horizontal-padding: var(--kbq-size-l);--kbq-icon-item-size-big-vertical-padding: var(--kbq-size-l);--kbq-icon-item-filled-fade-off-theme-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-theme-background: var(--kbq-background-theme);--kbq-icon-item-filled-fade-off-contrast-color: var(--kbq-icon-on-contrast);--kbq-icon-item-filled-fade-off-contrast-background: var(--kbq-background-contrast);--kbq-icon-item-filled-fade-off-error-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-error-background: var(--kbq-background-error);--kbq-icon-item-filled-fade-off-warning-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-off-warning-background: var(--kbq-background-warning);--kbq-icon-item-filled-fade-off-success-color: var(--kbq-icon-white);--kbq-icon-item-filled-fade-off-success-background: var(--kbq-background-success);--kbq-icon-item-filled-fade-on-theme-color: var(--kbq-icon-theme);--kbq-icon-item-filled-fade-on-theme-background: var(--kbq-background-theme-fade);--kbq-icon-item-filled-fade-on-contrast-color: var(--kbq-icon-contrast);--kbq-icon-item-filled-fade-on-contrast-background: var(--kbq-background-contrast-fade);--kbq-icon-item-filled-fade-on-error-color: var(--kbq-icon-error);--kbq-icon-item-filled-fade-on-error-background: var(--kbq-background-error-fade);--kbq-icon-item-filled-fade-on-warning-color: var(--kbq-icon-warning);--kbq-icon-item-filled-fade-on-warning-background: var(--kbq-background-warning-fade);--kbq-icon-item-filled-fade-on-success-color: var(--kbq-icon-success);--kbq-icon-item-filled-fade-on-success-background: var(--kbq-background-success-fade)}\n"] }]
|
|
494
|
-
}], propDecorators: {
|
|
495
|
-
type: Input,
|
|
496
|
-
args: [{ alias: 'kbq-icon-item' }]
|
|
497
|
-
}], fade: [{ type: i0.Input, args: [{ isSignal: true, alias: "fade", required: false }] }], big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }] } });
|
|
748
|
+
}], propDecorators: { iconNameInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "kbq-icon-item", required: false }] }], fade: [{ type: i0.Input, args: [{ isSignal: true, alias: "fade", required: false }] }], big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }] } });
|
|
498
749
|
|
|
499
750
|
const COMPONENTS = [
|
|
500
751
|
KbqIcon,
|
|
@@ -502,15 +753,15 @@ const COMPONENTS = [
|
|
|
502
753
|
KbqIconItem
|
|
503
754
|
];
|
|
504
755
|
class KbqIconModule {
|
|
505
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
506
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
756
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
757
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqIconModule, imports: [KbqIcon,
|
|
507
758
|
KbqIconButton,
|
|
508
759
|
KbqIconItem], exports: [KbqIcon,
|
|
509
760
|
KbqIconButton,
|
|
510
761
|
KbqIconItem] }); }
|
|
511
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
762
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconModule }); }
|
|
512
763
|
}
|
|
513
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
764
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqIconModule, decorators: [{
|
|
514
765
|
type: NgModule,
|
|
515
766
|
args: [{
|
|
516
767
|
imports: COMPONENTS,
|
|
@@ -522,5 +773,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
|
|
|
522
773
|
* Generated bundle index. Do not edit.
|
|
523
774
|
*/
|
|
524
775
|
|
|
525
|
-
export { KBQ_ICONS_CONFIG, KBQ_ICON_ERROR_STATE_CONTEXT, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconErrorStateContextFactoryProvider, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider };
|
|
776
|
+
export { KBQ_ICONS_CONFIG, KBQ_ICON_ERROR_STATE_CONTEXT, KBQ_ICON_RESOLVER, KbqIcon, KbqIconButton, KbqIconItem, KbqIconModule, KbqIconRegistry, kbqIconErrorStateContextFactoryProvider, kbqIconsDictProvider, kbqIconsProvider, kbqIconsResolverProvider, parseIconName };
|
|
526
777
|
//# sourceMappingURL=koobiq-components-icon.mjs.map
|