@koobiq/components 20.4.1 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +486 -165
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -187
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-icon.mjs","sources":["../../../packages/components/icon/icon-error-state-context.ts","../../../packages/components/icon/icon-registry-providers.ts","../../../packages/components/icon/icon-registry.ts","../../../packages/components/icon/icon.component.ts","../../../packages/components/icon/icon-button.component.ts","../../../packages/components/icon/icon-item.component.ts","../../../packages/components/icon/icon.module.ts","../../../packages/components/icon/koobiq-components-icon.ts"],"sourcesContent":["import { InjectionToken, Provider } from '@angular/core';\nimport type { Observable } from 'rxjs';\n\n/**\n * Narrow contract that lets `KbqIcon` react to a host's error state (e.g. `autoColor`) without\n * depending on the host's concrete class.\n * @docs-private\n */\nexport interface KbqIconErrorStateContext {\n /** Whether the host is currently in an error state. */\n readonly errorState: boolean;\n /** Emits whenever the host's state changes, prompting `KbqIcon` to re-check `errorState`. */\n readonly stateChanges: Observable<void>;\n}\n\n/**\n * Injection token used by `KbqIcon` to look up its `KbqIconErrorStateContext`.\n * @docs-private\n */\nexport const KBQ_ICON_ERROR_STATE_CONTEXT = new InjectionToken<KbqIconErrorStateContext>('KbqIconErrorStateContext');\n\n/**\n * Utility provider for `KBQ_ICON_ERROR_STATE_CONTEXT`, built from a factory that resolves the current host's `KbqIconErrorStateContext`.\n * @docs-private\n */\nexport const kbqIconErrorStateContextFactoryProvider = (factory: () => KbqIconErrorStateContext): Provider => ({\n provide: KBQ_ICON_ERROR_STATE_CONTEXT,\n useFactory: factory\n});\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport interface KbqIconsConfig {\n /** URL to the SVG sprite file. Must be served as a static asset. */\n spriteUrl: string;\n /** Optional namespace to register the sprite under. */\n namespace?: string;\n}\n\nexport const KBQ_ICONS_CONFIG = new InjectionToken<KbqIconsConfig[]>('KBQ_ICONS_CONFIG');\n\n/**\n * A function that resolves an icon name to either an inline SVG string or a URL string.\n * Return `null` to indicate this resolver does not handle the given name.\n */\nexport type KbqIconResolver = (name: string) => string | null;\n\n/**\n * Multi-valued injection token for icon resolver functions.\n * Resolvers are tried in registration order; the first non-null result wins.\n */\nexport const KBQ_ICON_RESOLVER = new InjectionToken<KbqIconResolver[]>('KBQ_ICON_RESOLVER');\n\n/** Configures the icon registry to load icons from one or more SVG sprite assets. */\nexport function kbqIconsProvider(...sprites: KbqIconsConfig[]): Provider {\n return { provide: KBQ_ICONS_CONFIG, useValue: sprites };\n}\n\n/**\n * Registers a resolver function that maps icon names to SVG strings or URLs.\n * Multiple resolvers can be registered; they are tried in registration order.\n */\nexport function kbqIconsResolverProvider(resolver: KbqIconResolver): Provider {\n return { provide: KBQ_ICON_RESOLVER, useValue: resolver, multi: true };\n}\n\n/**\n * Registers a name→SVG/URL dictionary as an icon resolver.\n * Values starting with `<` are treated as inline SVG (no HTTP request).\n * All other values are treated as URLs and fetched at runtime.\n *\n * @example\n * kbqIconsDictProvider({ 'chevron-down-s_16': '<svg>...</svg>' })\n */\nexport function kbqIconsDictProvider(dict: Record<string, string>): Provider {\n return kbqIconsResolverProvider((name) => dict[name] ?? null);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, share } from 'rxjs/operators';\nimport { KBQ_ICON_RESOLVER, KBQ_ICONS_CONFIG } from './icon-registry-providers';\n\nexport interface KbqIconOptions {\n viewBox?: string;\n withCredentials?: boolean;\n}\n\ninterface KbqSvgIconConfig {\n svgText: SafeHtml | null;\n url: SafeResourceUrl | null;\n options: KbqIconOptions | undefined;\n /** Cached parsed element (for literal icons or already-fetched URLs). */\n svgElement: SVGElement | null;\n}\n\nfunction iconKey(namespace: string, name: string): string {\n return namespace ? `${namespace}:${name}` : name;\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class KbqIconRegistry {\n private readonly sanitizer = inject(DomSanitizer);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly httpClient = inject(HttpClient, { optional: true });\n private readonly iconsConfig = inject(KBQ_ICONS_CONFIG, { optional: true });\n private readonly resolvers = inject(KBQ_ICON_RESOLVER, { optional: true }) ?? [];\n\n /** Individual icon configs, keyed by \"namespace:name\". */\n private readonly iconConfigs = new Map<string, KbqSvgIconConfig>();\n\n /** Icon-set configs per namespace. */\n private readonly iconSetConfigs = new Map<string, KbqSvgIconConfig[]>();\n\n /** In-progress URL fetches to dedupe concurrent requests. */\n private readonly inProgressUrlFetches = new Map<string, Observable<string>>();\n\n /** Cached parsed SVG sets, keyed by URL string. */\n private readonly cachedIconSets = new Map<string, SVGElement>();\n\n constructor() {\n this.registerIconSet();\n }\n\n /** Registers an SVG icon by URL in the default namespace. */\n addSvgIcon(name: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.addSvgIconInNamespace('', name, url, options);\n }\n\n /** Registers an SVG icon from an inline HTML string in the default namespace. */\n addSvgIconLiteral(name: string, literal: SafeHtml, options?: KbqIconOptions): void {\n this.addSvgIconLiteralInNamespace('', name, literal, options);\n }\n\n /** Registers an SVG icon by URL under the given namespace. */\n addSvgIconInNamespace(namespace: string, name: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.cacheIcon(namespace, name, { url, svgText: null, options, svgElement: null });\n }\n\n /** Registers an SVG icon from an inline HTML string under the given namespace. */\n addSvgIconLiteralInNamespace(namespace: string, name: string, literal: SafeHtml, options?: KbqIconOptions): void {\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitized) {\n throw Error(`KbqIconRegistry: literal for icon \"${iconKey(namespace, name)}\" sanitized to empty string.`);\n }\n\n this.cacheIcon(namespace, name, {\n url: null,\n svgText: this.sanitizer.bypassSecurityTrustHtml(sanitized),\n options,\n svgElement: null\n });\n }\n\n /** Registers an SVG sprite file in the default namespace. Icons are looked up by their `symbol id`. */\n addSvgIconSet(url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.addSvgIconSetInNamespace('', url, options);\n }\n\n /** Registers an SVG sprite file under the given namespace. Duplicate URLs are silently ignored. */\n addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url) ?? '';\n const sets = this.iconSetConfigs.get(namespace) ?? [];\n const alreadyRegistered = sets.some(\n (set) => this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, set.url!) === urlStr\n );\n\n if (alreadyRegistered) return;\n\n const config: KbqSvgIconConfig = { url, svgText: null, options, svgElement: null };\n\n sets.push(config);\n this.iconSetConfigs.set(namespace, sets);\n }\n\n /**\n * Emits a cloned SVGElement for the given name.\n * Accepts \"namespace:name\" syntax.\n */\n getNamedSvgIcon(name: string, namespace = ''): Observable<SVGElement> {\n let resolvedNs = namespace;\n let resolvedName = name;\n\n if (resolvedName.trimStart().startsWith('<')) {\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, resolvedName) ?? '';\n\n return of(this.svgElementFromText(sanitized));\n }\n\n const colonIndex = name.indexOf(':');\n\n if (colonIndex !== -1) {\n resolvedNs = name.slice(0, colonIndex);\n resolvedName = name.slice(colonIndex + 1);\n }\n\n const key = iconKey(resolvedNs, resolvedName);\n\n const iconConfig = this.iconConfigs.get(key);\n\n if (iconConfig) {\n return this.loadIcon(iconConfig, resolvedName);\n }\n\n for (const resolver of this.resolvers) {\n const result = resolver(resolvedName);\n\n if (result == null) continue;\n\n const config: KbqSvgIconConfig = {\n url: null,\n svgText: null,\n svgElement: null,\n options: undefined\n };\n\n if (result.trimStart().startsWith('<')) {\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, result) ?? '';\n\n config.svgText = this.sanitizer.bypassSecurityTrustHtml(sanitized);\n } else {\n config.url = this.sanitizer.bypassSecurityTrustResourceUrl(result);\n }\n\n this.iconConfigs.set(key, config);\n\n return this.loadIcon(config, resolvedName);\n }\n\n const sets = this.iconSetConfigs.get(resolvedNs);\n\n if (sets?.length) {\n return this.loadIconFromSets(resolvedName, sets);\n }\n\n return throwError(() => Error(`KbqIconRegistry: no icon registered for \"${key}\".`));\n }\n\n private cacheIcon(namespace: string, name: string, config: KbqSvgIconConfig): this {\n this.iconConfigs.set(iconKey(namespace, name), config);\n\n return this;\n }\n\n private loadIcon(config: KbqSvgIconConfig, name: string): Observable<SVGElement> {\n if (config.svgElement) {\n return of(cloneSvg(config.svgElement));\n }\n\n if (config.svgText) {\n const svg = this.svgElementFromText(config.svgText as string, config.options);\n\n config.svgElement = svg;\n\n return of(cloneSvg(svg));\n }\n\n if (config.url) {\n return this.fetchUrl(config.url, config.options?.withCredentials).pipe(\n map((text) => {\n const svg = this.svgElementFromText(text, config.options);\n\n config.svgElement = svg;\n\n return cloneSvg(svg);\n })\n );\n }\n\n return throwError(() => Error(`KbqIconRegistry: icon \"${name}\" has neither URL nor literal.`));\n }\n\n private registerIconSet(): void {\n if (!this.iconsConfig) return;\n\n for (const config of this.iconsConfig) {\n const url = this.sanitizer.bypassSecurityTrustResourceUrl(config.spriteUrl);\n\n if (config.namespace) {\n this.addSvgIconSetInNamespace(config.namespace, url);\n } else {\n this.addSvgIconSet(url);\n }\n }\n }\n\n private loadIconFromSets(name: string, sets: KbqSvgIconConfig[]): Observable<SVGElement> {\n const sources = sets\n .slice()\n .reverse()\n .map((set) => this.loadIconSet(set));\n\n const tryNext = (index: number): Observable<SVGElement> => {\n if (index >= sources.length) {\n return throwError(() => Error(`KbqIconRegistry: icon \"${name}\" not found in any registered icon set.`));\n }\n\n return sources[index].pipe(\n map((setElement) => {\n const icon = this.extractIconFromSet(name, setElement);\n\n if (!icon) {\n throw Error(`KbqIconRegistry: icon \"${name}\" not found in set.`);\n }\n\n return icon;\n }),\n catchError(() => tryNext(index + 1))\n );\n };\n\n return tryNext(0);\n }\n\n private loadIconSet(config: KbqSvgIconConfig): Observable<SVGElement> {\n if (config.svgElement) {\n return of(config.svgElement);\n }\n\n if (!config.url) {\n return throwError(() => Error('KbqIconRegistry: icon set has no URL.'));\n }\n\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, config.url);\n\n if (!urlStr) {\n return throwError(() => Error('KbqIconRegistry: icon set URL failed sanitization.'));\n }\n\n if (this.cachedIconSets.has(urlStr)) {\n config.svgElement = this.cachedIconSets.get(urlStr)!;\n\n return of(config.svgElement);\n }\n\n return this.fetchUrl(config.url, config.options?.withCredentials).pipe(\n map((text) => {\n const svg = this.svgElementFromText(text, config.options);\n\n config.svgElement = svg;\n this.cachedIconSets.set(urlStr, svg);\n\n return svg;\n })\n );\n }\n\n private extractIconFromSet(name: string, setElement: SVGElement): SVGElement | null {\n const symbol = setElement.querySelector(`#${name}`);\n\n if (!symbol) return null;\n\n const svg = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const viewBox = symbol.getAttribute('viewBox') || setElement.getAttribute('viewBox') || '0 0 24 24';\n\n svg.setAttribute('viewBox', viewBox);\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('focusable', 'false');\n\n for (const child of Array.from(symbol.childNodes)) {\n svg.appendChild(child.cloneNode(true));\n }\n\n return svg;\n }\n\n private svgElementFromText(text: string, options?: KbqIconOptions): SVGElement {\n const div = this.document.createElement('div');\n\n div.innerHTML = text;\n\n const svg = div.querySelector('svg') as SVGElement | null;\n\n if (!svg) {\n throw Error('KbqIconRegistry: could not find <svg> element in icon markup.');\n }\n\n if (options?.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('focusable', 'false');\n\n return svg;\n }\n\n private fetchUrl(url: SafeResourceUrl, withCredentials = false): Observable<string> {\n if (!this.httpClient) {\n throw Error(\n 'KbqIconRegistry: HttpClient is required for loading icons from URLs. ' +\n 'Provide it via provideHttpClient() or HttpClientModule.'\n );\n }\n\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url);\n\n if (!urlStr) {\n return throwError(() => Error('KbqIconRegistry: URL failed security sanitization.'));\n }\n\n const inProgress = this.inProgressUrlFetches.get(urlStr);\n\n if (inProgress) return inProgress;\n\n const fetch = this.httpClient.get(urlStr, { responseType: 'text', withCredentials }).pipe(\n share(),\n finalize(() => this.inProgressUrlFetches.delete(urlStr))\n );\n\n this.inProgressUrlFetches.set(urlStr, fetch);\n\n return fetch;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n input,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqColorDirective } from '@koobiq/components/core';\nimport { EMPTY, ReplaySubject } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { KBQ_ICON_ERROR_STATE_CONTEXT } from './icon-error-state-context';\nimport { KbqIconRegistry } from './icon-registry';\n\n@Component({\n selector: '[kbq-icon]',\n template: '<ng-content />',\n styleUrls: ['icon.scss', 'icon-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon',\n '[class]': 'svgIcon ? null : iconName',\n '[class.kbq-error]': 'color === \"error\" || hasError'\n }\n})\nexport class KbqIcon extends KbqColorDirective implements AfterContentInit, OnChanges {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Host providing error state for `autoColor`, when the icon sits inside one (e.g. a form field).\n * @docs-private\n */\n protected readonly errorStateContext = inject(KBQ_ICON_ERROR_STATE_CONTEXT, { optional: true });\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n protected readonly registry = inject(KbqIconRegistry, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n\n readonly small = input(false);\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() autoColor = false;\n\n hasError: boolean = false;\n\n /** Name of an icon within a @koobiq/icons. Accepts \"namespace:name\" syntax. */\n // TODO: Skipped for migration because:\n // Subclass KbqIconButton overrides this input with `@Input({ alias: 'kbq-icon-button' })`\n // using a plain string, which is incompatible with InputSignal<string>.\n // Migrate KbqIconButton.iconName together as a follow-up.\n @Input({ alias: 'kbq-icon' }) iconName: string;\n\n protected name = 'KbqIcon';\n\n /**\n * True when icon is being rendered as inline SVG.\n * @docs-private\n */\n protected svgIcon = false;\n\n /** @docs-private */\n protected readonly svgIconName = new ReplaySubject<string | undefined>(1);\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n updateMaxHeight() {\n if (this.name !== 'KbqIcon') {\n return;\n }\n\n const size = this.parseIconSize();\n\n if (size) {\n this.getHostElement().style.maxHeight = `${size}px`;\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.iconName) {\n this.svgIconName.next(changes['iconName'].currentValue);\n }\n }\n\n ngAfterContentInit(): void {\n if (this.autoColor) {\n this.errorStateContext?.stateChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(this.updateState);\n this.updateState();\n }\n\n this.updateMaxHeight();\n\n this.svgIconName\n .pipe(\n switchMap((name) => {\n if (!this.registry || !name) {\n this.svgIcon = false;\n\n return EMPTY;\n }\n\n return this.registry.getNamedSvgIcon(name);\n }),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe({\n next: (svg) => {\n this.svgIcon = true;\n const host = this.getHostElement();\n\n // Remove any previously injected SVG.\n const existing = host.querySelector('svg');\n\n if (existing) {\n host.removeChild(existing);\n }\n\n const size = this.parseIconSize();\n\n if (size) {\n svg.setAttribute('width', `${size}`);\n svg.setAttribute('height', `${size}`);\n }\n\n host.insertBefore(svg, host.firstChild);\n this.changeDetectorRef.markForCheck();\n },\n error: () => {\n // Icon not registered — fall through to font-class path.\n this.svgIcon = false;\n this.updateMaxHeight();\n this.changeDetectorRef.markForCheck();\n }\n });\n }\n\n private updateState = () => {\n this.hasError = !!this.errorStateContext?.errorState;\n\n this.changeDetectorRef.markForCheck();\n };\n\n private parseIconSize(): number {\n const iconName = this.iconName;\n const baseName = iconName?.includes(':') ? iconName.split(':')[1] : iconName;\n\n return parseInt(baseName?.split('_').pop() ?? '');\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n Input,\n input,\n OnDestroy,\n signal,\n ViewEncapsulation\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { KbqIcon } from './icon.component';\n\n/**\n * Size options for `KbqIconButton`.\n * - `compact`: 16px icon with padding, 24×24px container.\n * - `normal`: 24px icon, no padding.\n */\nexport type KbqIconButtonSize = 'compact' | 'normal';\n\n@Component({\n selector: `[kbq-icon-button]`,\n template: '<ng-content />',\n styleUrls: ['icon-button.scss', 'icon-button-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon-button',\n\n '[attr.tabindex]': 'tabindex',\n '[attr.disabled]': 'disabled || null',\n\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-icon-button_compact]': 'isCompact()',\n // @deprcated Will be removed in the next major release (#DS-5338)\n '[class.kbq-icon-button_small]': 'isCompact()'\n }\n})\nexport class KbqIconButton extends KbqIcon implements AfterViewInit, OnDestroy {\n protected readonly focusMonitor = inject(FocusMonitor);\n /** Size of the icon button. */\n readonly size = input<KbqIconButtonSize>('normal');\n /**\n * @deprecated Use `size` input instead. Will be removed in the next major release (#DS-5338).\n */\n readonly small = input(false);\n\n /** @docs-private */\n protected readonly isCompact = computed(() => this.size() === 'compact' || this.small());\n\n /** Name of an icon within a @koobiq/icons. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ alias: 'kbq-icon-button' }) iconName: string;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get tabindex() {\n return this.disabled ? null : this._tabindex;\n }\n\n set tabindex(value: any) {\n this._tabindex = value;\n }\n\n private _tabindex = 0;\n\n // @todo 20 In the next major release this feature will be replaced on the input signal.\n /** Whether the button is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n\n // @todo 20 In the next major release this line will be deleted.\n private _disabled: boolean;\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n override name = 'KbqIconButton';\n\n constructor() {\n super();\n\n // @todo 20 In the next major release this line will be deleted.\n toObservable(this.disabledSignal).subscribe((value) => (this._disabled = value));\n\n effect(() => (this.disabledSignal() ? this.stopFocusMonitor() : this.runFocusMonitor()));\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.getHostElement(), true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.getHostElement());\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, input } from '@angular/core';\nimport { KbqIcon } from './icon.component';\n\n@Component({\n selector: `[kbq-icon-item]`,\n template: '<ng-content />',\n styleUrls: ['icon-item.scss', 'icon-item-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon-item kbq-icon-item_filled',\n '[class.kbq-icon-item_normal]': '!big()',\n '[class.kbq-icon-item_big]': 'big()',\n '[class.kbq-icon-item_fade-off]': '!fade()',\n '[class.kbq-icon-item_fade-on]': 'fade()'\n }\n})\nexport class KbqIconItem extends KbqIcon {\n override name = 'KbqIconItem';\n\n /** Name of an icon within a @koobiq/icons. */\n // Kept as @Input() to stay compatible with KbqIcon.iconName (also @Input()).\n // Migrate together with the rest of the KbqIcon hierarchy in a follow-up.\n @Input({ alias: 'kbq-icon-item' }) override iconName: string;\n\n readonly fade = input<boolean>(false);\n readonly big = input<boolean>(false);\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIconButton } from './icon-button.component';\nimport { KbqIconItem } from './icon-item.component';\nimport { KbqIcon } from './icon.component';\n\nconst COMPONENTS = [\n KbqIcon,\n KbqIconButton,\n KbqIconItem\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"koobiq-components-icon.mjs","sources":["../../../packages/components/icon/icon-error-state-context.ts","../../../packages/components/icon/icon-registry-providers.ts","../../../packages/components/icon/icon-registry.ts","../../../packages/components/icon/icon.component.ts","../../../packages/components/icon/icon-button.component.ts","../../../packages/components/icon/icon-item.component.ts","../../../packages/components/icon/icon.module.ts","../../../packages/components/icon/koobiq-components-icon.ts"],"sourcesContent":["import { InjectionToken, Provider, Signal } from '@angular/core';\n\n/**\n * Narrow contract that lets `KbqIcon` react to a host's error state (e.g. `autoColor`) without\n * depending on the host's concrete class.\n *\n * @docs-private\n */\nexport interface KbqIconErrorStateContext {\n /** Whether the host is currently in an error state. */\n readonly errorState: Signal<boolean>;\n}\n\n/**\n * Injection token used by `KbqIcon` to look up its `KbqIconErrorStateContext`.\n *\n * @docs-private\n */\nexport const KBQ_ICON_ERROR_STATE_CONTEXT = new InjectionToken<KbqIconErrorStateContext>('KbqIconErrorStateContext');\n\n/**\n * Utility provider for `KBQ_ICON_ERROR_STATE_CONTEXT`, built from a factory that resolves the current host's `KbqIconErrorStateContext`.\n *\n * @docs-private\n */\nexport const kbqIconErrorStateContextFactoryProvider = (factory: () => KbqIconErrorStateContext): Provider => ({\n provide: KBQ_ICON_ERROR_STATE_CONTEXT,\n useFactory: factory\n});\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport interface KbqIconsConfig {\n /** URL to the SVG sprite file. Must be served as a static asset. */\n spriteUrl: string;\n /** Optional namespace to register the sprite under. */\n namespace?: string;\n}\n\nexport const KBQ_ICONS_CONFIG = new InjectionToken<KbqIconsConfig[]>('KBQ_ICONS_CONFIG');\n\n/**\n * A function that resolves an icon name to either an inline SVG string or a URL string.\n * Return `null` to indicate this resolver does not handle the given name.\n */\nexport type KbqIconResolver = (name: string) => string | null;\n\n/**\n * Multi-valued injection token for icon resolver functions.\n * Resolvers are tried in registration order; the first non-null result wins.\n */\nexport const KBQ_ICON_RESOLVER = new InjectionToken<KbqIconResolver[]>('KBQ_ICON_RESOLVER');\n\n/** Configures the icon registry to load icons from one or more SVG sprite assets. */\nexport function kbqIconsProvider(...sprites: KbqIconsConfig[]): Provider {\n return { provide: KBQ_ICONS_CONFIG, useValue: sprites };\n}\n\n/**\n * Registers a resolver function that maps icon names to SVG strings or URLs.\n * Multiple resolvers can be registered; they are tried in registration order.\n */\nexport function kbqIconsResolverProvider(resolver: KbqIconResolver): Provider {\n return { provide: KBQ_ICON_RESOLVER, useValue: resolver, multi: true };\n}\n\n/**\n * Registers a name→URL dictionary as an icon resolver. Values are fetched at runtime through `HttpClient`.\n *\n * A value starting with `<` is taken as inline markup and passed through Angular's HTML sanitizer,\n * which drops `<svg>` wholesale — register inline icons with\n * `KbqIconRegistry.addSvgIconLiteral(name, sanitizer.bypassSecurityTrustHtml(svg))` instead, where the\n * markup is a `SafeHtml` the application has explicitly vouched for.\n *\n * @example\n * ```ts\n * kbqIconsDictProvider({ 'chevron-down-s_16': '/assets/icons/chevron-down-s_16.svg' })\n * ```\n */\nexport function kbqIconsDictProvider(dict: Record<string, string>): Provider {\n return kbqIconsResolverProvider((name) => dict[name] ?? null);\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, SecurityContext } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser';\nimport { defer, Observable, of, throwError } from 'rxjs';\nimport { catchError, finalize, map, share } from 'rxjs/operators';\nimport { KBQ_ICON_RESOLVER, KBQ_ICONS_CONFIG } from './icon-registry-providers';\n\nexport interface KbqIconOptions {\n viewBox?: string;\n withCredentials?: boolean;\n}\n\ninterface KbqSvgIconConfig {\n svgText: SafeHtml | null;\n url: SafeResourceUrl | null;\n options: KbqIconOptions | undefined;\n /** Cached parsed element (for literal icons or already-fetched URLs). */\n svgElement: SVGElement | null;\n}\n\nfunction iconKey(namespace: string, name: string): string {\n return namespace ? `${namespace}:${name}` : name;\n}\n\nfunction cloneSvg(svg: SVGElement): SVGElement {\n return svg.cloneNode(true) as SVGElement;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class KbqIconRegistry {\n private readonly sanitizer = inject(DomSanitizer);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly httpClient = inject(HttpClient, { optional: true });\n private readonly iconsConfig = inject(KBQ_ICONS_CONFIG, { optional: true });\n private readonly resolvers = inject(KBQ_ICON_RESOLVER, { optional: true }) ?? [];\n\n /** Individual icon configs, keyed by \"namespace:name\". */\n private readonly iconConfigs = new Map<string, KbqSvgIconConfig>();\n\n /** Icon-set configs per namespace. */\n private readonly iconSetConfigs = new Map<string, KbqSvgIconConfig[]>();\n\n /** In-progress URL fetches to dedupe concurrent requests. */\n private readonly inProgressUrlFetches = new Map<string, Observable<string>>();\n\n /** Cached parsed SVG sets, keyed by URL string. */\n private readonly cachedIconSets = new Map<string, SVGElement>();\n\n constructor() {\n this.registerIconSet();\n }\n\n /** Registers an SVG icon by URL in the default namespace. */\n addSvgIcon(name: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.addSvgIconInNamespace('', name, url, options);\n }\n\n /** Registers an SVG icon from an inline HTML string in the default namespace. */\n addSvgIconLiteral(name: string, literal: SafeHtml, options?: KbqIconOptions): void {\n this.addSvgIconLiteralInNamespace('', name, literal, options);\n }\n\n /** Registers an SVG icon by URL under the given namespace. */\n addSvgIconInNamespace(namespace: string, name: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.cacheIcon(namespace, name, { url, svgText: null, options, svgElement: null });\n }\n\n /** Registers an SVG icon from an inline HTML string under the given namespace. */\n addSvgIconLiteralInNamespace(namespace: string, name: string, literal: SafeHtml, options?: KbqIconOptions): void {\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, literal);\n\n if (!sanitized) {\n throw Error(`KbqIconRegistry: literal for icon \"${iconKey(namespace, name)}\" sanitized to empty string.`);\n }\n\n this.cacheIcon(namespace, name, {\n url: null,\n svgText: this.sanitizer.bypassSecurityTrustHtml(sanitized),\n options,\n svgElement: null\n });\n }\n\n /** Registers an SVG sprite file in the default namespace. Icons are looked up by their `symbol id`. */\n addSvgIconSet(url: SafeResourceUrl, options?: KbqIconOptions): void {\n this.addSvgIconSetInNamespace('', url, options);\n }\n\n /** Registers an SVG sprite file under the given namespace. Duplicate URLs are silently ignored. */\n addSvgIconSetInNamespace(namespace: string, url: SafeResourceUrl, options?: KbqIconOptions): void {\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url) ?? '';\n const sets = this.iconSetConfigs.get(namespace) ?? [];\n const alreadyRegistered = sets.some(\n (set) => this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, set.url!) === urlStr\n );\n\n if (alreadyRegistered) return;\n\n const config: KbqSvgIconConfig = { url, svgText: null, options, svgElement: null };\n\n sets.push(config);\n this.iconSetConfigs.set(namespace, sets);\n }\n\n /**\n * Emits a cloned SVGElement for the given name.\n * Accepts \"namespace:name\" syntax.\n */\n getNamedSvgIcon(name: string, namespace = ''): Observable<SVGElement> {\n let resolvedNs = namespace;\n let resolvedName = name;\n\n if (resolvedName.trimStart().startsWith('<')) {\n // `defer` so that unparsable markup arrives as an error notification: every failure of this\n // class has to reach the caller through the same channel.\n return defer(() =>\n of(this.svgElementFromText(this.sanitizer.sanitize(SecurityContext.HTML, resolvedName) ?? ''))\n );\n }\n\n const colonIndex = name.indexOf(':');\n\n if (colonIndex !== -1) {\n resolvedNs = name.slice(0, colonIndex);\n resolvedName = name.slice(colonIndex + 1);\n }\n\n const key = iconKey(resolvedNs, resolvedName);\n\n const iconConfig = this.iconConfigs.get(key);\n\n if (iconConfig) {\n return this.loadIcon(iconConfig, resolvedName);\n }\n\n for (const resolver of this.resolvers) {\n const result = resolver(resolvedName);\n\n if (result == null) continue;\n\n const config: KbqSvgIconConfig = {\n url: null,\n svgText: null,\n svgElement: null,\n options: undefined\n };\n\n if (result.trimStart().startsWith('<')) {\n const sanitized = this.sanitizer.sanitize(SecurityContext.HTML, result) ?? '';\n\n config.svgText = this.sanitizer.bypassSecurityTrustHtml(sanitized);\n } else {\n config.url = this.sanitizer.bypassSecurityTrustResourceUrl(result);\n }\n\n this.iconConfigs.set(key, config);\n\n return this.loadIcon(config, resolvedName);\n }\n\n const sets = this.iconSetConfigs.get(resolvedNs);\n\n if (sets?.length) {\n return this.loadIconFromSets(resolvedName, sets);\n }\n\n return throwError(() => Error(`KbqIconRegistry: no icon registered for \"${key}\".`));\n }\n\n private cacheIcon(namespace: string, name: string, config: KbqSvgIconConfig): this {\n this.iconConfigs.set(iconKey(namespace, name), config);\n\n return this;\n }\n\n private loadIcon(config: KbqSvgIconConfig, name: string): Observable<SVGElement> {\n if (config.svgElement) {\n return of(cloneSvg(config.svgElement));\n }\n\n if (config.svgText) {\n return defer(() => {\n const svg = this.svgElementFromText(config.svgText as string, config.options);\n\n config.svgElement = svg;\n\n return of(cloneSvg(svg));\n });\n }\n\n if (config.url) {\n return this.fetchUrl(config.url, config.options?.withCredentials).pipe(\n map((text) => {\n const svg = this.svgElementFromText(text, config.options);\n\n config.svgElement = svg;\n\n return cloneSvg(svg);\n })\n );\n }\n\n return throwError(() => Error(`KbqIconRegistry: icon \"${name}\" has neither URL nor literal.`));\n }\n\n private registerIconSet(): void {\n if (!this.iconsConfig) return;\n\n for (const config of this.iconsConfig) {\n const url = this.sanitizer.bypassSecurityTrustResourceUrl(config.spriteUrl);\n\n if (config.namespace) {\n this.addSvgIconSetInNamespace(config.namespace, url);\n } else {\n this.addSvgIconSet(url);\n }\n }\n }\n\n private loadIconFromSets(name: string, sets: KbqSvgIconConfig[]): Observable<SVGElement> {\n const sources = sets\n .slice()\n .reverse()\n .map((set) => this.loadIconSet(set));\n\n const tryNext = (index: number): Observable<SVGElement> => {\n if (index >= sources.length) {\n return throwError(() => Error(`KbqIconRegistry: icon \"${name}\" not found in any registered icon set.`));\n }\n\n return sources[index].pipe(\n map((setElement) => {\n const icon = this.extractIconFromSet(name, setElement);\n\n if (!icon) {\n throw Error(`KbqIconRegistry: icon \"${name}\" not found in set.`);\n }\n\n return icon;\n }),\n catchError(() => tryNext(index + 1))\n );\n };\n\n return tryNext(0);\n }\n\n private loadIconSet(config: KbqSvgIconConfig): Observable<SVGElement> {\n if (config.svgElement) {\n return of(config.svgElement);\n }\n\n if (!config.url) {\n return throwError(() => Error('KbqIconRegistry: icon set has no URL.'));\n }\n\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, config.url);\n\n if (!urlStr) {\n return throwError(() => Error('KbqIconRegistry: icon set URL failed sanitization.'));\n }\n\n if (this.cachedIconSets.has(urlStr)) {\n config.svgElement = this.cachedIconSets.get(urlStr)!;\n\n return of(config.svgElement);\n }\n\n return this.fetchUrl(config.url, config.options?.withCredentials).pipe(\n map((text) => {\n const svg = this.svgElementFromText(text, config.options);\n\n config.svgElement = svg;\n this.cachedIconSets.set(urlStr, svg);\n\n return svg;\n })\n );\n }\n\n private extractIconFromSet(name: string, setElement: SVGElement): SVGElement | null {\n // Symbol ids come from the consumer's sprite, so they are not guaranteed to be valid CSS\n // identifiers — `3d-view_16` alone would make `#${name}` throw. Matching on the id avoids escaping.\n const symbol = Array.from(setElement.querySelectorAll('symbol')).find((element) => element.id === name);\n\n if (!symbol) return null;\n\n const svg = this.document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n const viewBox = symbol.getAttribute('viewBox') || setElement.getAttribute('viewBox') || '0 0 24 24';\n\n svg.setAttribute('viewBox', viewBox);\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('focusable', 'false');\n\n for (const child of Array.from(symbol.childNodes)) {\n svg.appendChild(child.cloneNode(true));\n }\n\n return svg;\n }\n\n private svgElementFromText(text: string, options?: KbqIconOptions): SVGElement {\n const div = this.document.createElement('div');\n\n div.innerHTML = text;\n\n const svg = div.querySelector('svg') as SVGElement | null;\n\n if (!svg) {\n throw Error('KbqIconRegistry: could not find <svg> element in icon markup.');\n }\n\n if (options?.viewBox) {\n svg.setAttribute('viewBox', options.viewBox);\n }\n\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('focusable', 'false');\n\n return svg;\n }\n\n private fetchUrl(url: SafeResourceUrl, withCredentials = false): Observable<string> {\n // Every other failure in this class is an error notification; a synchronous throw here would\n // escape `getNamedSvgIcon` at the call site, where no `catchError` can reach it.\n if (!this.httpClient) {\n return throwError(() =>\n Error(\n 'KbqIconRegistry: HttpClient is required for loading icons from URLs. ' +\n 'Provide it via provideHttpClient() or HttpClientModule.'\n )\n );\n }\n\n const urlStr = this.sanitizer.sanitize(SecurityContext.RESOURCE_URL, url);\n\n if (!urlStr) {\n return throwError(() => Error('KbqIconRegistry: URL failed security sanitization.'));\n }\n\n const inProgress = this.inProgressUrlFetches.get(urlStr);\n\n if (inProgress) return inProgress;\n\n const fetch = this.httpClient.get(urlStr, { responseType: 'text', withCredentials }).pipe(\n share(),\n finalize(() => this.inProgressUrlFetches.delete(urlStr))\n );\n\n this.inProgressUrlFetches.set(urlStr, fetch);\n\n return fetch;\n }\n}\n","import {\n AfterContentInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n numberAttribute,\n OnChanges,\n Renderer2,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqColorDirective, KbqComponentColors } from '@koobiq/components/core';\nimport { defer, Subscription } from 'rxjs';\nimport { KBQ_ICON_ERROR_STATE_CONTEXT } from './icon-error-state-context';\nimport { KbqIconRegistry } from './icon-registry';\n\n/** Marks an injected `<svg>` with the name it renders, so hydration can recognize and adopt it. */\nconst ICON_NAME_ATTRIBUTE = 'data-kbq-icon-name';\n\n/**\n * Renders an icon on the element it is applied to: a `@koobiq/icons` font glyph by default, or an inline\n * `<svg>` when the name resolves through a configured `KbqIconRegistry`. A name that does not resolve\n * falls back to the font class, and every later name is resolved again.\n *\n * The host is `aria-hidden` by default: an icon carries no text of its own, and in nearly every place the\n * library and its consumers use one it repeats a label that is already there. A meaningful icon opts out\n * with `aria-hidden=\"false\"`, and then has to supply its own `role=\"img\"` and `aria-label`.\n */\n@Component({\n selector: '[kbq-icon]',\n template: '<ng-content />',\n styleUrls: ['icon.scss', 'icon-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon',\n '[class]': 'svgIcon() ? null : iconName',\n '[class.kbq-error]': 'colorIsError() || hasError || autoColorError',\n '[attr.aria-hidden]': 'resolvedAriaHidden()'\n }\n})\nexport class KbqIcon extends KbqColorDirective implements AfterContentInit, OnChanges {\n /**\n * Host providing error state for `autoColor`, when the icon sits inside one (e.g. a form field).\n *\n * @docs-private\n */\n protected readonly errorStateContext = inject(KBQ_ICON_ERROR_STATE_CONTEXT, { optional: true });\n protected readonly registry = inject(KbqIconRegistry, { optional: true });\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly renderer = inject(Renderer2);\n\n /**\n * Whether the icon is hidden from assistive technology. Left unbound, it falls back to\n * `defaultAriaHidden`, which is `true` for a decorative icon and `false` for an interactive one.\n */\n readonly ariaHidden = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'aria-hidden',\n // `null` is how a template says \"leave it unset\" (`cond ? true : null`), so it means the default\n // rather than `false` — `booleanAttribute(null)` would turn it into an explicit opt-out.\n transform: (value) => (value == null ? undefined : booleanAttribute(value))\n });\n\n /** Whether an icon of this kind is decorative when the caller says nothing. Overridden by subclasses. */\n protected readonly defaultAriaHidden: boolean = true;\n\n /** @docs-private */\n protected readonly resolvedAriaHidden = computed(() => {\n const explicit = this.ariaHidden();\n\n // An explicit value is the caller's, including \"false\" — reflecting it keeps the documented\n // opt-out visible in the DOM. Only an unbound input falls back to the kind's default.\n if (explicit !== undefined) return String(explicit);\n\n return this.defaultAriaHidden ? 'true' : null;\n });\n\n /**\n * Rendered size of the icon in pixels. Left unset, the size is read from the `_<px>` suffix of the\n * icon name (`kbq-plus_16` → 16), which is the `@koobiq/icons` convention; a name without one is\n * rendered at whatever size the surrounding styles give it.\n */\n readonly iconSize = input<number | undefined, number | string | null | undefined>(undefined, {\n transform: (value) => {\n const size = numberAttribute(value);\n\n return Number.isNaN(size) ? undefined : size;\n }\n });\n\n /**\n * Whether the icon follows the error state of the host it sits in (a form field, for one), painting\n * itself red while that host reports an error.\n */\n autoColor = false;\n\n /**\n * Whether the icon takes the error color whatever its `color` is. Set by a host that tints the icons\n * it holds, such as `KbqEmptyState`.\n */\n hasError: boolean = false;\n\n /**\n * Whether `autoColor` takes the error color from the host's error state.\n *\n * @docs-private\n */\n protected get autoColorError(): boolean {\n return this.autoColor && this.hostErrorState();\n }\n\n // The host's error state through a signal of the icon's own: the host's control reads it in its host bindings, in\n // the same reactive consumer as the icon's, where a signal read again after others costs a scan of all it has read\n // so far.\n private readonly hostErrorState = computed(() => !!this.errorStateContext?.errorState());\n\n /**\n * Whether `color` is the error color. A signal of its own because the color class binding already reads\n * `color`: the host bindings of every icon in a view run in that view's reactive consumer, which finds a\n * signal read a second time by scanning all it has read so far, O(N²) per check across N icons.\n *\n * @internal\n */\n protected readonly colorIsError = computed(() => this.color() === KbqComponentColors.Error);\n\n /** Name of an icon within a `@koobiq/icons`. Accepts \"namespace:name\" syntax. */\n iconName: string | undefined;\n\n /** @docs-private */\n readonly autoColorInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'autoColor',\n transform: booleanAttribute\n });\n\n /** @docs-private */\n readonly iconNameInput = input<string | undefined>(undefined, { alias: 'kbq-icon' });\n\n /**\n * Whether the host gets an inline `max-height` matching the icon size. Only the bare icon does: the\n * button and the item size themselves through their own padding.\n */\n protected readonly appliesMaxHeight: boolean = true;\n\n /**\n * True when icon is being rendered as inline SVG.\n *\n * @docs-private\n */\n // Starts from the DOM, not `false`: on a hydrated page the svg is already there, and `false`\n // would show the font class until the async resolution catches up.\n protected readonly svgIcon = signal(!!this.findTaggedSvg());\n\n /**\n * Name the inline SVG is resolved for, which is `iconName` however that was set.\n *\n * @docs-private\n */\n protected get svgIconName(): string | undefined {\n return this.iconName;\n }\n\n /** Resolution of the inline SVG, replaced whenever the name changes. */\n private svgIconSubscription = Subscription.EMPTY;\n\n /** The `<svg>` injected for the resolved name — or already on the host, tagged, from SSR. */\n private injectedSvg: SVGElement | null = this.findTaggedSvg();\n\n /** Whether the content is initialized, which is when the inline SVG is first resolved. */\n private contentInitialized = false;\n\n constructor() {\n super();\n\n this.destroyRef.onDestroy(() => this.svgIconSubscription.unsubscribe());\n }\n\n getHostElement() {\n return this.elementRef.nativeElement;\n }\n\n /** An `<svg>` already on the host, tagged with the name it renders — e.g. one SSR left behind. */\n private findTaggedSvg(): SVGElement | null {\n return this.getHostElement().querySelector(`svg[${ICON_NAME_ATTRIBUTE}]`);\n }\n\n /**\n * Sets the icon name from code and resolves its inline SVG again. Before the content is initialized,\n * assigning `iconName` does the same.\n *\n * @docs-private\n */\n protected setIconName(name: string): void {\n this.iconName = name;\n\n if (this.contentInitialized) this.resolveSvgIcon();\n }\n\n /** @docs-private */\n updateMaxHeight() {\n if (!this.appliesMaxHeight) {\n return;\n }\n\n const size = this.resolveIconSize();\n const host = this.getHostElement();\n\n if (size !== undefined) {\n this.renderer.setStyle(host, 'max-height', `${size}px`);\n } else {\n // Without this the ceiling written for the previous name keeps clipping the new glyph.\n this.renderer.removeStyle(host, 'max-height');\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n // A bound `undefined` is a value as well: auto color turns off and the icon is removed.\n if (changes['autoColorInput']) this.autoColor = this.autoColorInput() ?? false;\n\n // A name change reaches the size through the resolution; an explicit size resolves nothing.\n if (changes['iconSize'] && this.contentInitialized) this.applyIconSize();\n\n if (changes['iconNameInput']) this.setIconName(this.iconNameInput() ?? '');\n }\n\n ngAfterContentInit(): void {\n this.updateMaxHeight();\n\n this.contentInitialized = true;\n this.resolveSvgIcon();\n }\n\n /** Renders `svgIconName` as inline SVG when the registry knows it, dropping a resolution still pending. */\n private resolveSvgIcon(): void {\n const name = this.svgIconName;\n\n this.svgIconSubscription.unsubscribe();\n\n if (!this.registry || !name) {\n this.renderSvgIcon(null);\n\n return;\n }\n\n const registry = this.registry;\n\n // Deferred so that a resolver or a literal that throws falls back to the font class as well, and the\n // next name is resolved again.\n this.svgIconSubscription = defer(() => registry.getNamedSvgIcon(name)).subscribe({\n next: (svg) => this.renderSvgIcon(svg),\n error: () => this.renderSvgIcon(null)\n });\n }\n\n /** Injects the resolved `<svg>`, or drops back to the font class when the name did not resolve. */\n private renderSvgIcon(svg: SVGElement | null): void {\n const host = this.getHostElement();\n const previous = this.injectedSvg;\n\n // A matching svg is already there (SSR's, most likely) — leave it rather than replace it,\n // which would duplicate it if the replacement raced the DOM it's reusing.\n if (previous && svg && previous.getAttribute(ICON_NAME_ATTRIBUTE) === this.iconName) {\n this.svgIcon.set(true);\n this.applyIconSize();\n\n return;\n }\n\n // Only the element injected here (or adopted above): an `<svg>` projected into the host is\n // the consumer's content.\n if (previous) {\n this.renderer.removeChild(host, previous);\n }\n\n this.injectedSvg = svg;\n this.svgIcon.set(!!svg);\n\n if (svg) {\n if (this.iconName) {\n this.renderer.setAttribute(svg, ICON_NAME_ATTRIBUTE, this.iconName);\n }\n\n this.renderer.insertBefore(host, svg, host.firstChild);\n }\n\n this.applyIconSize();\n }\n\n /** Sizes the injected `<svg>` and the host's `max-height` to the resolved icon size. */\n private applyIconSize(): void {\n const size = this.resolveIconSize();\n const svg = this.injectedSvg;\n\n if (svg && size !== undefined) {\n this.renderer.setAttribute(svg, 'width', `${size}`);\n this.renderer.setAttribute(svg, 'height', `${size}`);\n }\n\n this.updateMaxHeight();\n }\n\n private resolveIconSize(): number | undefined {\n return this.iconSize() ?? this.parseIconSize();\n }\n\n private parseIconSize(): number | undefined {\n const iconName = this.iconName;\n const baseName = iconName?.includes(':') ? iconName.split(':')[1] : iconName;\n const size = parseInt(baseName?.split('_').pop() ?? '');\n\n return Number.isNaN(size) ? undefined : size;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n effect,\n inject,\n input,\n isDevMode,\n numberAttribute,\n OnDestroy,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { KbqIcon } from './icon.component';\n\n/**\n * Size options for `KbqIconButton`.\n * - `compact`: 16px icon with padding, 24×24px container.\n * - `normal`: 24px icon, no padding.\n */\nexport type KbqIconButtonSize = 'compact' | 'normal';\n\n/** Host elements that are already buttons, or already activated from the keyboard by the browser. */\nconst NATIVELY_ACTIVATED_NODES = ['BUTTON', 'INPUT'];\n\n/**\n * An icon that acts as a button. Applied to a native `<button>` it only adds the styling; applied to any\n * other element — `<i>` is what the library itself mostly uses — it also supplies the semantics the\n * element does not have: `role=\"button\"` and `aria-disabled`. It does not synthesize Enter/Space\n * activation itself — attach a `(keydown.enter)`/`(keydown.space)` listener where it is used.\n *\n * It has no text of its own, so give it an `aria-label` (or an `aria-labelledby`); in dev mode it warns\n * when it has neither.\n *\n * It extends `KbqIcon` for the rendering, but deliberately does not register under that DI token: a\n * `contentChild(KbqIcon)` is looking for a decorative icon to position or tint, and an interactive\n * control is not one. See the note on `KbqIconItem`.\n */\n@Component({\n selector: `[kbq-icon-button]`,\n template: '<ng-content />',\n styleUrls: ['icon-button.scss', 'icon-button-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon-button',\n\n '[attr.tabindex]': 'tabindex',\n '[attr.disabled]': 'disabled || null',\n '[attr.aria-disabled]': 'disabled || null',\n\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-icon-button_compact]': \"size() === 'compact'\"\n }\n})\nexport class KbqIconButton extends KbqIcon implements AfterViewInit, OnDestroy {\n /** An icon button is interactive and exposes its own name, so it is not decorative by default. */\n protected override readonly defaultAriaHidden: boolean = false;\n\n protected readonly focusMonitor = inject(FocusMonitor);\n /** Size of the icon button. */\n readonly size = input<KbqIconButtonSize>('normal');\n\n /** @docs-private */\n override readonly iconNameInput = input<string | undefined>(undefined, { alias: 'kbq-icon-button' });\n\n /** Position of the button in the tab order. A disabled button is taken out of it entirely. */\n get tabindex(): number | null {\n return this.disabled ? null : this._tabindex;\n }\n\n set tabindex(value: number | null) {\n this._tabindex = value;\n }\n\n private _tabindex: number | null = 0;\n\n /** Whether the button is disabled. */\n get disabled(): boolean {\n return this.disabledSignal();\n }\n\n set disabled(value: boolean) {\n this.disabledSignal.set(value);\n }\n\n /** @docs-private */\n readonly disabledSignal = signal(false);\n\n /** The button sizes itself through its own padding, so it never gets the bare icon's `max-height`. */\n protected override readonly appliesMaxHeight: boolean = false;\n\n /** @docs-private */\n readonly tabindexInput = input<number | null | undefined, number | string | null | undefined>(undefined, {\n alias: 'tabindex',\n // `numberAttribute` gives NaN for what it cannot parse, and `tabindex=\"NaN\"` is an invalid attribute the\n // browser ignores, so an unparsable value renders no tabindex at all.\n transform: (value) => {\n if (value == null) return undefined;\n\n const tabindex = numberAttribute(value);\n\n return Number.isNaN(tabindex) ? null : tabindex;\n }\n });\n\n /** @docs-private */\n readonly disabledInput = input<boolean | undefined, boolean | string | null | undefined>(undefined, {\n alias: 'disabled',\n transform: booleanAttribute\n });\n\n override ngOnChanges(changes: SimpleChanges): void {\n super.ngOnChanges(changes);\n\n // A bound input is handed to its member; unbound, it leaves what code wrote.\n // A bound `undefined` or `null` restores the default tabindex instead of dropping the button out of the tab order.\n if (changes['tabindexInput']) {\n const tabindex = this.tabindexInput();\n\n this.tabindex = tabindex === undefined ? 0 : tabindex;\n }\n\n if (changes['disabledInput']) {\n const disabled = this.disabledInput();\n\n if (disabled !== undefined) this.disabled = disabled;\n }\n }\n\n constructor() {\n super();\n\n effect(() => (this.disabledSignal() ? this.stopFocusMonitor() : this.runFocusMonitor()));\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n this.applyButtonRole();\n this.warnIfMissingAccessibleName();\n }\n\n ngOnDestroy() {\n this.stopFocusMonitor();\n }\n\n /**\n * Whether the host already behaves like a button, so the browser activates it from the keyboard and\n * announces it without help.\n *\n * Read on demand rather than captured in the constructor: `routerLink` and a bound `[attr.href]` both\n * write the attribute during the update pass, so an anchor that navigates carries no `href` at all\n * while directive constructors run.\n */\n private isNativelyActivated(): boolean {\n const host = this.getHostElement();\n\n return NATIVELY_ACTIVATED_NODES.includes(host.nodeName) || (host.nodeName === 'A' && host.hasAttribute('href'));\n }\n\n /**\n * A link that navigates keeps its own role; anything else is a button only because this component\n * says so, and has to be announced as one.\n *\n * Written through the renderer instead of a host binding, because the binding is evaluated in the\n * parent's update pass — before `routerLink` has set its `href` — and on an `OnPush` component it may\n * never be evaluated again to correct itself.\n */\n private applyButtonRole(): void {\n const host = this.getHostElement();\n\n if (this.isNativelyActivated() || host.hasAttribute('role')) return;\n\n this.renderer.setAttribute(host, 'role', 'button');\n }\n\n /**\n * `KbqIcon` renders a decorative glyph, so an icon button carries no text. Without an\n * `aria-label`/`aria-labelledby`/`title` it has no accessible name at all (AXE `button-name`).\n *\n * A host that opted into `aria-hidden=\"true\"` is exempt: assistive technology never reaches it, so it\n * has nothing to be named for. `KbqStepper` and the datepicker toggle are both built that way — a\n * mouse-only affordance beside a control that already carries the keyboard interaction.\n */\n private warnIfMissingAccessibleName(): void {\n if (!isDevMode()) return;\n\n const host = this.getHostElement();\n\n if (host.getAttribute('aria-hidden') === 'true') return;\n\n const hasAccessibleName =\n !!host.textContent?.trim() ||\n host.hasAttribute('aria-label') ||\n host.hasAttribute('aria-labelledby') ||\n host.hasAttribute('title');\n\n if (hasAccessibleName) return;\n\n // eslint-disable-next-line no-console\n console.warn('KbqIconButton has no accessible name. Add [aria-label] or [aria-labelledby] to it.', host);\n }\n\n private runFocusMonitor() {\n this.focusMonitor.monitor(this.getHostElement(), true);\n }\n\n private stopFocusMonitor() {\n this.focusMonitor.stopMonitoring(this.getHostElement());\n }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input } from '@angular/core';\nimport { KbqIcon } from './icon.component';\n\n/**\n * An icon on a filled round background — the status badge of an alert or an empty state. Decorative like\n * `KbqIcon`, and hidden from assistive technology by the same default.\n *\n * Host metadata is inherited from `KbqIcon` through `ɵɵInheritDefinitionFeature`; DI tokens are not, so a\n * `contentChild(KbqIcon)` does not match an icon item. That is deliberate — a host that wants both asks\n * for both, the way `KbqAlert` does, and telling them apart is what lets it report two projected icons.\n */\n@Component({\n selector: `[kbq-icon-item]`,\n template: '<ng-content />',\n styleUrls: ['icon-item.scss', 'icon-item-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq kbq-icon-item kbq-icon-item_filled',\n '[class.kbq-icon-item_normal]': '!big()',\n '[class.kbq-icon-item_big]': 'big()',\n '[class.kbq-icon-item_fade-off]': '!fade()',\n '[class.kbq-icon-item_fade-on]': 'fade()'\n }\n})\nexport class KbqIconItem extends KbqIcon {\n /** The item sizes itself through its own padding, so it never gets the bare icon's `max-height`. */\n protected override readonly appliesMaxHeight: boolean = false;\n\n /** @docs-private */\n override readonly iconNameInput = input<string | undefined>(undefined, { alias: 'kbq-icon-item' });\n\n /** Whether the background is the translucent \"fade\" variant of the color rather than the solid one. */\n readonly fade = input<boolean>(false);\n /** Whether the item is rendered at the larger of its two sizes. */\n readonly big = input<boolean>(false);\n}\n","import { NgModule } from '@angular/core';\nimport { KbqIconButton } from './icon-button.component';\nimport { KbqIconItem } from './icon-item.component';\nimport { KbqIcon } from './icon.component';\n\nconst COMPONENTS = [\n KbqIcon,\n KbqIconButton,\n KbqIconItem\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqIconModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|