@koobiq/components 20.4.2 → 21.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.scss +3 -10
- package/accordion/accordion.scss +4 -6
- package/actions-panel/actions-panel-container.scss +45 -1
- package/alert/alert.component.scss +3 -2
- package/app-switcher/_app-switcher-theme.scss +0 -4
- package/app-switcher/app-switcher-dropdown-app.scss +3 -2
- package/app-switcher/app-switcher-dropdown-site.scss +2 -1
- package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
- package/app-switcher/app-switcher-tokens.scss +15 -0
- package/app-switcher/app-switcher.scss +14 -4
- package/autocomplete/autocomplete.scss +7 -6
- package/badge/badge.component.scss +5 -8
- package/breadcrumbs/breadcrumbs.scss +25 -10
- package/button/_button-base.scss +30 -7
- package/button/_button-theme.scss +16 -0
- package/button/button-group.scss +7 -0
- package/button/button-tokens.scss +0 -2
- package/button/button.scss +34 -2
- package/button-toggle/_button-toggle-theme.scss +7 -2
- package/button-toggle/button-toggle.scss +65 -15
- package/checkbox/_checkbox-theme.scss +4 -3
- package/checkbox/checkbox.scss +3 -6
- package/clamped-text/clamped-text.scss +6 -2
- package/code-block/code-block-tokens.scss +0 -224
- package/code-block/code-block.scss +20 -9
- package/content-panel/content-panel-aside.scss +3 -2
- package/content-panel/content-panel-container.scss +37 -0
- package/content-panel/content-panel.scss +4 -3
- package/core/highlight/_highlight-theme.scss +3 -1
- package/core/option/action-container.scss +2 -2
- package/core/option/action.scss +2 -1
- package/core/option/option.scss +2 -1
- package/core/pop-up/_pop-up.scss +0 -37
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
- package/core/styles/_core.scss +3 -0
- package/core/styles/_koobiq-theme.scss +5 -6
- package/core/styles/common/_animation.scss +44 -16
- package/core/styles/common/_groups-mixins.scss +21 -19
- package/core/styles/common/_groups.scss +4 -32
- package/core/styles/common/_index.scss +0 -2
- package/core/styles/common/_link.scss +117 -0
- package/core/styles/common/_list.scss +0 -26
- package/core/styles/common/_overlay.scss +8 -10
- package/core/styles/common/_rtl.scss +0 -14
- package/core/styles/common/_select.scss +33 -15
- package/core/styles/common/_squircle.scss +63 -0
- package/core/styles/common/_tokens.scss +0 -11
- package/core/styles/common/_vendor-prefixes.scss +0 -20
- package/core/styles/functions/_timing.scss +0 -22
- package/core/styles/theming/_scrollbar-theme.scss +6 -1
- package/core/styles/theming/_theming.scss +13 -65
- package/core/styles/typography/_index.scss +0 -1
- package/core/styles/typography/_typography.scss +0 -143
- package/core/styles/visual/_body.scss +1 -6
- package/core/styles/visual/_layout.scss +0 -12
- package/datepicker/calendar-body.scss +3 -1
- package/datepicker/calendar-header.scss +0 -1
- package/datepicker/datepicker-content.scss +33 -1
- package/datepicker/datepicker-toggle.scss +0 -38
- package/dl/dl-tokens.scss +10 -0
- package/dl/dl.scss +113 -13
- package/dropdown/_dropdown-theme.scss +4 -16
- package/dropdown/dropdown-item.scss +4 -10
- package/dropdown/dropdown.scss +2 -1
- package/empty-state/_empty-state-theme.scss +10 -4
- package/empty-state/empty-state-tokens.scss +4 -4
- package/empty-state/empty-state.scss +4 -0
- package/fesm2022/koobiq-components-accordion.mjs +347 -229
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +39 -39
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +46 -48
- package/fesm2022/koobiq-components-badge.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +332 -116
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +172 -132
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +755 -601
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +260 -143
- package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +4342 -1595
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +73 -36
- package/fesm2022/koobiq-components-divider.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +447 -89
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +703 -599
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
- package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
- package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
- package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-empty-state.mjs +116 -60
- package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +550 -290
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +2810 -2538
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +79 -24
- package/fesm2022/koobiq-components-flag.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +389 -525
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +366 -136
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +601 -459
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
- package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-link.mjs +328 -125
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +583 -433
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-markdown.mjs +55 -78
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +853 -475
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +895 -556
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +680 -310
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +684 -285
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +450 -231
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-resizer.mjs +127 -21
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
- package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
- package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +883 -693
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +207 -88
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +815 -41
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +109 -88
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
- package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
- package/fesm2022/koobiq-components-splitter.mjs +890 -501
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +63 -49
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +1062 -603
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +886 -733
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +213 -185
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +299 -147
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +233 -245
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +344 -142
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +229 -145
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +463 -143
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +177 -130
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +657 -214
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +61 -32
- package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +719 -488
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +1506 -558
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +290 -135
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/dropzone.scss +31 -3
- package/file-upload/file-upload-tokens.scss +2 -22
- package/file-upload/file-upload.scss +6 -0
- package/file-upload/multiple-file-upload.component.scss +14 -12
- package/file-upload/single-file-upload.component.scss +3 -2
- package/filter-bar/filters.scss +7 -0
- package/filter-bar/pipes/base-pipe.scss +3 -3
- package/filter-bar/pipes/pipe-date.scss +8 -1
- package/flag/flag-tokens.scss +22 -0
- package/flag/flag.scss +34 -21
- package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
- package/form-field/_form-field-theme.scss +4 -9
- package/form-field/cleaner.scss +3 -1
- package/form-field/fieldset.scss +3 -4
- package/form-field/form-field.scss +26 -21
- package/form-field/password-toggle.scss +3 -1
- package/icon/_icon-button-theme.scss +7 -0
- package/icon/_icon-theme.scss +10 -7
- package/icon/icon-button.scss +0 -2
- package/icon/icon-tokens.scss +12 -9
- package/inline-edit/inline-edit.scss +40 -54
- package/input/input.scss +4 -0
- package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
- package/link/deprecated/link-tokens.scss +27 -0
- package/link/link-tokens.scss +6 -25
- package/link/link.scss +137 -0
- package/list/list.scss +3 -2
- package/loader-overlay/_loader-overlay-theme.scss +19 -10
- package/loader-overlay/loader-overlay-tokens.scss +0 -2
- package/loader-overlay/loader-overlay.scss +7 -1
- package/markdown/_markdown-theme.scss +16 -0
- package/markdown/markdown-tokens.scss +5 -0
- package/markdown/markdown.scss +2 -1
- package/modal/_modal-animation.scss +23 -14
- package/modal/modal-tokens.scss +2 -1
- package/modal/modal.scss +35 -31
- package/navbar/_navbar-item_horizontal.scss +8 -6
- package/navbar/_navbar-item_vertical.scss +18 -6
- package/navbar/_navbar-theme.scss +9 -1
- package/navbar/navbar-brand.scss +8 -6
- package/navbar/navbar-divider.scss +1 -1
- package/navbar/navbar-item.scss +8 -9
- package/navbar/navbar-toggle.scss +3 -3
- package/navbar/navbar-tokens.scss +14 -0
- package/navbar/navbar.scss +1 -2
- package/navbar/vertical-navbar.scss +2 -2
- package/notification-center/_notification-center-theme.scss +11 -6
- package/notification-center/notification-center-tokens.scss +33 -0
- package/notification-center/notification-center.scss +58 -20
- package/notification-center/notification-item.scss +15 -6
- package/package.json +112 -81
- package/popover/popover-tokens.scss +0 -2
- package/popover/popover.scss +41 -19
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/_progress-bar-theme.scss +20 -3
- package/progress-bar/progress-bar-tokens.scss +3 -0
- package/progress-bar/progress-bar.scss +36 -8
- package/progress-spinner/progress-spinner.scss +4 -3
- package/radio/_radio-theme.scss +21 -4
- package/radio/radio-tokens.scss +7 -3
- package/radio/radio.scss +55 -8
- package/schematics/collection.json +399 -7
- package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
- package/schematics/migrations/accordion-state-saving-default/data.js +75 -0
- package/schematics/migrations/accordion-state-saving-default/index.js +60 -0
- package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
- package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
- package/schematics/migrations/actions-panel-overlay-container/data.js +47 -0
- package/schematics/migrations/actions-panel-overlay-container/index.js +54 -0
- package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
- package/schematics/migrations/alert-signals/README.md +13 -7
- package/schematics/migrations/alert-signals/data.js +3 -0
- package/schematics/migrations/alert-signals/index.js +70 -203
- package/schematics/migrations/angular-animations-removal/README.md +46 -0
- package/schematics/migrations/angular-animations-removal/data.js +150 -0
- package/schematics/migrations/angular-animations-removal/index.js +20 -0
- package/schematics/migrations/angular-animations-removal/schema.json +15 -0
- package/schematics/migrations/app-switcher-signals/README.md +88 -0
- package/schematics/migrations/app-switcher-signals/data.js +136 -0
- package/schematics/migrations/app-switcher-signals/index.js +365 -0
- package/schematics/migrations/app-switcher-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +1 -1
- package/schematics/migrations/autocomplete-signals/README.md +92 -0
- package/schematics/migrations/autocomplete-signals/data.js +149 -0
- package/schematics/migrations/autocomplete-signals/index.js +706 -0
- package/schematics/migrations/autocomplete-signals/schema.json +20 -0
- package/schematics/migrations/badge-signals/README.md +77 -0
- package/schematics/migrations/badge-signals/data.js +109 -0
- package/schematics/migrations/badge-signals/index.js +693 -0
- package/schematics/migrations/badge-signals/schema.json +20 -0
- package/schematics/migrations/button-state-and-styles/README.md +129 -0
- package/schematics/migrations/button-state-and-styles/data.js +136 -0
- package/schematics/migrations/button-state-and-styles/index.js +220 -0
- package/schematics/migrations/button-state-and-styles/schema.json +20 -0
- package/schematics/migrations/button-supported-colors/README.md +73 -0
- package/schematics/migrations/button-supported-colors/data.js +106 -0
- package/schematics/migrations/button-supported-colors/index.js +260 -0
- package/schematics/migrations/button-supported-colors/schema.json +20 -0
- package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
- package/schematics/migrations/button-toggle-signals-and-aria/data.js +200 -0
- package/schematics/migrations/button-toggle-signals-and-aria/index.js +496 -0
- package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/button-truncation/README.md +110 -0
- package/schematics/migrations/button-truncation/data.js +88 -0
- package/schematics/migrations/button-truncation/index.js +269 -0
- package/schematics/migrations/button-truncation/schema.json +20 -0
- package/schematics/migrations/checkbox-signals/README.md +76 -0
- package/schematics/migrations/checkbox-signals/data.js +114 -0
- package/schematics/migrations/checkbox-signals/index.js +634 -0
- package/schematics/migrations/checkbox-signals/schema.json +20 -0
- package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
- package/schematics/migrations/clamped-text-disclosure/data.js +101 -0
- package/schematics/migrations/clamped-text-disclosure/index.js +59 -0
- package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
- package/schematics/migrations/code-block-signals/README.md +84 -0
- package/schematics/migrations/code-block-signals/data.js +121 -0
- package/schematics/migrations/code-block-signals/index.js +700 -0
- package/schematics/migrations/code-block-signals/schema.json +20 -0
- package/schematics/migrations/color-signals/README.md +46 -0
- package/schematics/migrations/color-signals/data.js +131 -0
- package/schematics/migrations/color-signals/index.js +19 -0
- package/schematics/migrations/color-signals/schema.json +20 -0
- package/schematics/migrations/core-mixins-removal/README.md +20 -0
- package/schematics/migrations/core-mixins-removal/data.js +27 -0
- package/schematics/migrations/core-mixins-removal/index.js +17 -0
- package/schematics/migrations/core-mixins-removal/schema.json +15 -0
- package/schematics/migrations/css-selectors/README.md +2 -2
- package/schematics/migrations/css-selectors/index.js +1 -1
- package/schematics/migrations/datepicker-signals/README.md +24 -0
- package/schematics/migrations/datepicker-signals/data.js +49 -0
- package/schematics/migrations/datepicker-signals/index.js +17 -0
- package/schematics/migrations/datepicker-signals/schema.json +15 -0
- package/schematics/migrations/deprecated-icons/README.md +2 -2
- package/schematics/migrations/deprecated-icons/index.js +1 -1
- package/schematics/migrations/design-tokens-v4/README.md +75 -0
- package/schematics/migrations/design-tokens-v4/index.js +59 -0
- package/schematics/migrations/design-tokens-v4/schema.json +15 -0
- package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
- package/schematics/migrations/divider-signals-and-aria/data.js +62 -0
- package/schematics/migrations/divider-signals-and-aria/index.js +211 -0
- package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
- package/schematics/migrations/dl-attribute-coercion/data.js +85 -0
- package/schematics/migrations/dl-attribute-coercion/index.js +161 -0
- package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
- package/schematics/migrations/dl-standalone-names/README.md +49 -0
- package/schematics/migrations/dl-standalone-names/data.js +44 -0
- package/schematics/migrations/dl-standalone-names/index.js +321 -0
- package/schematics/migrations/dl-standalone-names/schema.json +20 -0
- package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
- package/schematics/migrations/dropdown-demote-overlay/data.js +84 -0
- package/schematics/migrations/dropdown-demote-overlay/index.js +288 -0
- package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
- package/schematics/migrations/dropdown-signals/README.md +83 -0
- package/schematics/migrations/dropdown-signals/data.js +152 -0
- package/schematics/migrations/dropdown-signals/index.js +19 -0
- package/schematics/migrations/dropdown-signals/schema.json +20 -0
- package/schematics/migrations/empty-state-error-color/README.md +84 -0
- package/schematics/migrations/empty-state-error-color/data.js +85 -0
- package/schematics/migrations/empty-state-error-color/index.js +71 -0
- package/schematics/migrations/empty-state-error-color/schema.json +15 -0
- package/schematics/migrations/empty-state-size-attr/README.md +2 -2
- package/schematics/migrations/empty-state-size-attr/index.js +1 -1
- package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
- package/schematics/migrations/file-upload-cva-and-primitives/data.js +97 -0
- package/schematics/migrations/file-upload-cva-and-primitives/index.js +60 -0
- package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
- package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
- package/schematics/migrations/file-upload-deprecated-outputs/data.js +20 -0
- package/schematics/migrations/file-upload-deprecated-outputs/index.js +70 -0
- package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
- package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
- package/schematics/migrations/filter-bar-rename-action/data.js +151 -0
- package/schematics/migrations/filter-bar-rename-action/index.js +177 -0
- package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
- package/schematics/migrations/filter-bar-signals/README.md +27 -16
- package/schematics/migrations/filter-bar-signals/data.js +1 -2
- package/schematics/migrations/filter-bar-signals/index.js +100 -195
- package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
- package/schematics/migrations/filter-bar-state-saving-default/data.js +87 -0
- package/schematics/migrations/filter-bar-state-saving-default/index.js +61 -0
- package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
- package/schematics/migrations/flag-inner-html/README.md +67 -0
- package/schematics/migrations/flag-inner-html/data.js +58 -0
- package/schematics/migrations/flag-inner-html/index.js +61 -0
- package/schematics/migrations/flag-inner-html/schema.json +15 -0
- package/schematics/migrations/form-field-signals/README.md +125 -0
- package/schematics/migrations/form-field-signals/data.js +288 -0
- package/schematics/migrations/form-field-signals/index.js +382 -0
- package/schematics/migrations/form-field-signals/schema.json +20 -0
- package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
- package/schematics/migrations/icon-semantics-and-api/data.js +97 -0
- package/schematics/migrations/icon-semantics-and-api/index.js +64 -0
- package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
- package/schematics/migrations/icons-replacement/README.md +5 -5
- package/schematics/migrations/icons-replacement/index.js +1 -1
- package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
- package/schematics/migrations/inline-edit-a11y-and-types/data.js +117 -0
- package/schematics/migrations/inline-edit-a11y-and-types/index.js +97 -0
- package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
- package/schematics/migrations/input-number-surface/README.md +140 -0
- package/schematics/migrations/input-number-surface/data.js +135 -0
- package/schematics/migrations/input-number-surface/index.js +292 -0
- package/schematics/migrations/input-number-surface/schema.json +20 -0
- package/schematics/migrations/input-signals/README.md +20 -0
- package/schematics/migrations/input-signals/data.js +30 -0
- package/schematics/migrations/input-signals/index.js +17 -0
- package/schematics/migrations/input-signals/schema.json +15 -0
- package/schematics/migrations/link-deprecated-path/README.md +144 -0
- package/schematics/migrations/link-deprecated-path/index.js +19 -0
- package/schematics/migrations/link-deprecated-path/schema.json +20 -0
- package/schematics/migrations/link-signals/README.md +71 -0
- package/schematics/migrations/link-signals/data.js +116 -0
- package/schematics/migrations/link-signals/index.js +415 -0
- package/schematics/migrations/link-signals/schema.json +20 -0
- package/schematics/migrations/list-signals/README.md +22 -0
- package/schematics/migrations/list-signals/data.js +35 -0
- package/schematics/migrations/list-signals/index.js +17 -0
- package/schematics/migrations/list-signals/schema.json +15 -0
- package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
- package/schematics/migrations/list-tree-multiple-input/data.js +74 -0
- package/schematics/migrations/list-tree-multiple-input/index.js +221 -0
- package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
- package/schematics/migrations/loader-overlay-signals/README.md +62 -0
- package/schematics/migrations/loader-overlay-signals/data.js +101 -0
- package/schematics/migrations/loader-overlay-signals/index.js +697 -0
- package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
- package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
- package/schematics/migrations/loader-overlay-size-attr/index.js +1 -1
- package/schematics/migrations/locale-configuration-providers/README.md +163 -0
- package/schematics/migrations/locale-configuration-providers/data.js +257 -0
- package/schematics/migrations/locale-configuration-providers/index.js +294 -0
- package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
- package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
- package/schematics/migrations/mandatory-peer-dependencies/index.js +42 -0
- package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
- package/schematics/migrations/markdown-signals/README.md +58 -0
- package/schematics/migrations/markdown-signals/data.js +79 -0
- package/schematics/migrations/markdown-signals/index.js +639 -0
- package/schematics/migrations/markdown-signals/schema.json +20 -0
- package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
- package/schematics/migrations/modal-dialog-semantics/data.js +110 -0
- package/schematics/migrations/modal-dialog-semantics/index.js +58 -0
- package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
- package/schematics/migrations/modal-signals/README.md +88 -0
- package/schematics/migrations/modal-signals/data.js +132 -0
- package/schematics/migrations/modal-signals/index.js +19 -0
- package/schematics/migrations/modal-signals/schema.json +20 -0
- package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
- package/schematics/migrations/navbar-signals-and-aria/data.js +198 -0
- package/schematics/migrations/navbar-signals-and-aria/index.js +568 -0
- package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/new-icons-pack/README.md +10 -10
- package/schematics/migrations/new-icons-pack/index.js +1 -1
- package/schematics/migrations/notification-center-signals/README.md +67 -0
- package/schematics/migrations/notification-center-signals/data.js +66 -0
- package/schematics/migrations/notification-center-signals/index.js +61 -0
- package/schematics/migrations/notification-center-signals/schema.json +15 -0
- package/schematics/migrations/option-signals/README.md +37 -0
- package/schematics/migrations/option-signals/data.js +86 -0
- package/schematics/migrations/option-signals/index.js +19 -0
- package/schematics/migrations/option-signals/schema.json +20 -0
- package/schematics/migrations/popover-leave-delay/README.md +51 -0
- package/schematics/migrations/popover-leave-delay/data.js +61 -0
- package/schematics/migrations/popover-leave-delay/index.js +54 -0
- package/schematics/migrations/popover-leave-delay/schema.json +15 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/data.js +76 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/index.js +58 -0
- package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
- package/schematics/migrations/progress-spinner-signals/README.md +72 -0
- package/schematics/migrations/progress-spinner-signals/data.js +83 -0
- package/schematics/migrations/progress-spinner-signals/index.js +694 -0
- package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
- package/schematics/migrations/query-list-signals/README.md +32 -0
- package/schematics/migrations/query-list-signals/data.js +70 -0
- package/schematics/migrations/query-list-signals/index.js +17 -0
- package/schematics/migrations/query-list-signals/schema.json +15 -0
- package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
- package/schematics/migrations/radio-signals-and-aria/data.js +163 -0
- package/schematics/migrations/radio-signals-and-aria/index.js +39 -0
- package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
- package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
- package/schematics/migrations/read-state-dwell-handlers/data.js +45 -0
- package/schematics/migrations/read-state-dwell-handlers/index.js +215 -0
- package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
- package/schematics/migrations/scrollbar-deprecated-path/index.js +20 -0
- package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
- package/schematics/migrations/select-signal-inputs/README.md +61 -0
- package/schematics/migrations/select-signal-inputs/data.js +99 -0
- package/schematics/migrations/select-signal-inputs/index.js +57 -0
- package/schematics/migrations/select-signal-inputs/schema.json +15 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/data.js +111 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/index.js +57 -0
- package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
- package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
- package/schematics/migrations/signal-inputs-subclasses/data.js +69 -0
- package/schematics/migrations/signal-inputs-subclasses/index.js +17 -0
- package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
- package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
- package/schematics/migrations/split-button-optional-disabled/data.js +53 -0
- package/schematics/migrations/split-button-optional-disabled/index.js +57 -0
- package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
- package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
- package/schematics/migrations/splitter-deprecated-path/index.js +20 -0
- package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
- package/schematics/migrations/state-saving-default/README.md +67 -0
- package/schematics/migrations/state-saving-default/data.js +88 -0
- package/schematics/migrations/state-saving-default/index.js +62 -0
- package/schematics/migrations/state-saving-default/schema.json +15 -0
- package/schematics/migrations/table-cell-content/README.md +55 -0
- package/schematics/migrations/table-cell-content/data.js +66 -0
- package/schematics/migrations/table-cell-content/index.js +66 -0
- package/schematics/migrations/table-cell-content/schema.json +15 -0
- package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
- package/schematics/migrations/tabs-signals-and-aria/data.js +139 -0
- package/schematics/migrations/tabs-signals-and-aria/index.js +65 -0
- package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
- package/schematics/migrations/tag-list-cleaner/README.md +58 -0
- package/schematics/migrations/tag-list-cleaner/data.js +42 -0
- package/schematics/migrations/tag-list-cleaner/index.js +196 -0
- package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
- package/schematics/migrations/tag-slots/README.md +41 -0
- package/schematics/migrations/tag-slots/index.js +190 -0
- package/schematics/migrations/tag-slots/schema.json +20 -0
- package/schematics/migrations/tags-signals/README.md +85 -0
- package/schematics/migrations/tags-signals/data.js +103 -0
- package/schematics/migrations/tags-signals/index.js +673 -0
- package/schematics/migrations/tags-signals/schema.json +20 -0
- package/schematics/migrations/textarea-signals/README.md +72 -0
- package/schematics/migrations/textarea-signals/data.js +121 -0
- package/schematics/migrations/textarea-signals/index.js +379 -0
- package/schematics/migrations/textarea-signals/schema.json +20 -0
- package/schematics/migrations/time-range-title-for/README.md +164 -0
- package/schematics/migrations/time-range-title-for/data.js +139 -0
- package/schematics/migrations/time-range-title-for/index.js +163 -0
- package/schematics/migrations/time-range-title-for/schema.json +20 -0
- package/schematics/migrations/timepicker-signals/README.md +78 -0
- package/schematics/migrations/timepicker-signals/data.js +82 -0
- package/schematics/migrations/timepicker-signals/index.js +709 -0
- package/schematics/migrations/timepicker-signals/schema.json +20 -0
- package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
- package/schematics/migrations/timezone-grouping-utils/data.js +101 -0
- package/schematics/migrations/timezone-grouping-utils/index.js +64 -0
- package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
- package/schematics/migrations/title-encapsulation/README.md +49 -0
- package/schematics/migrations/title-encapsulation/data.js +69 -0
- package/schematics/migrations/title-encapsulation/index.js +57 -0
- package/schematics/migrations/title-encapsulation/schema.json +15 -0
- package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
- package/schematics/migrations/toast-stack-and-defaults/data.js +79 -0
- package/schematics/migrations/toast-stack-and-defaults/index.js +53 -0
- package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/data.js +89 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/index.js +60 -0
- package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
- package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
- package/schematics/migrations/top-bar-container-selectors/data.js +56 -0
- package/schematics/migrations/top-bar-container-selectors/index.js +84 -0
- package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
- package/schematics/migrations/tree-select-signals/README.md +61 -0
- package/schematics/migrations/tree-select-signals/data.js +106 -0
- package/schematics/migrations/tree-select-signals/index.js +58 -0
- package/schematics/migrations/tree-select-signals/schema.json +15 -0
- package/schematics/migrations/tree-signals/README.md +82 -0
- package/schematics/migrations/tree-signals/data.js +123 -0
- package/schematics/migrations/tree-signals/index.js +54 -0
- package/schematics/migrations/tree-signals/schema.json +15 -0
- package/schematics/migrations/tree-state-saving-default/README.md +66 -0
- package/schematics/migrations/tree-state-saving-default/data.js +78 -0
- package/schematics/migrations/tree-state-saving-default/index.js +60 -0
- package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
- package/schematics/migrations/username-pipe-injection/README.md +59 -0
- package/schematics/migrations/username-pipe-injection/data.js +78 -0
- package/schematics/migrations/username-pipe-injection/index.js +58 -0
- package/schematics/migrations/username-pipe-injection/schema.json +15 -0
- package/schematics/migrations/v20-upgrade/README.md +36 -16
- package/schematics/migrations/v20-upgrade/data.js +124 -77
- package/schematics/migrations/v20-upgrade/index.js +6 -213
- package/schematics/migrations/v21-upgrade/README.md +271 -0
- package/schematics/migrations/v21-upgrade/data.js +1371 -0
- package/schematics/migrations/v21-upgrade/index.js +94 -0
- package/schematics/migrations/v21-upgrade/schema.json +20 -0
- package/schematics/migrations/zoneless-change-detection/README.md +30 -0
- package/schematics/migrations/zoneless-change-detection/data.js +29 -0
- package/schematics/migrations/zoneless-change-detection/index.js +20 -0
- package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
- package/schematics/migrations.json +392 -2
- package/schematics/ng-add/index.js +515 -14
- package/schematics/ng-add/schema.json +15 -0
- package/schematics/utils/deprecated-path-migration.js +61 -0
- package/schematics/utils/package-config.js +9 -105
- package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
- package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
- package/scrollbar/native-scrollbar.scss +68 -0
- package/scrollbar/scrollbar-tokens.scss +13 -22
- package/scrollbar/scrollbar-track.scss +94 -0
- package/scrollbar/scrollbar-viewport.scss +33 -0
- package/scrollbar/scrollbar.scss +24 -0
- package/search-expandable/search-expandable-tokens.scss +4 -0
- package/search-expandable/search-expandable.scss +4 -2
- package/select/_select-theme.scss +3 -16
- package/select/select.scss +0 -6
- package/sidebar/sidebar.scss +20 -0
- package/sidepanel/_sidepanel-theme.scss +1 -1
- package/sidepanel/sidepanel-tokens.scss +7 -1
- package/sidepanel/sidepanel.scss +41 -5
- package/skeleton/skeleton-presets.scss +350 -0
- package/skeleton/skeleton-tokens.scss +127 -0
- package/skeleton/skeleton.scss +53 -45
- package/split-button/_split-button-theme.scss +4 -4
- package/split-button/split-button.scss +2 -6
- package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
- package/splitter/deprecated/splitter.scss +51 -0
- package/splitter/splitter-tokens.scss +19 -0
- package/splitter/splitter.scss +148 -28
- package/table/_table-theme.scss +13 -12
- package/table/table-tokens.scss +8 -0
- package/table/table.scss +47 -22
- package/tabs/_tabs-common.scss +14 -14
- package/tabs/_tabs-theme.scss +4 -5
- package/tabs/tab-body.scss +49 -1
- package/tabs/tab-header.scss +2 -1
- package/tags/tag-list.scss +4 -0
- package/tags/tag.scss +19 -1
- package/time-range/time-range.scss +9 -0
- package/timezone/timezone-option.component.scss +4 -7
- package/timezone/timezone-select.component.scss +3 -0
- package/toast/_toast-theme.scss +1 -4
- package/toast/toast-container.component.scss +19 -13
- package/toast/toast-tokens.scss +12 -6
- package/toast/toast.component.scss +42 -19
- package/toggle/_toggle-theme.scss +4 -10
- package/toggle/toggle.scss +67 -26
- package/tooltip/_tooltip-theme.scss +7 -1
- package/tooltip/tooltip-tokens.scss +1 -2
- package/tooltip/tooltip.scss +55 -9
- package/top-bar/top-bar-tokens.scss +13 -2
- package/top-bar/top-bar.scss +24 -19
- package/tree/_tree-theme.scss +0 -1
- package/tree/toggle.scss +5 -9
- package/tree/tree-option.scss +2 -4
- package/tree/tree-tokens.scss +2 -1
- package/tree/tree.scss +3 -5
- package/tree-select/_tree-select-theme.scss +4 -15
- package/tree-select/tree-select-tokens.scss +16 -0
- package/tree-select/tree-select.scss +0 -6
- package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
- package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
- package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
- package/types/koobiq-components-app-switcher.d.ts +406 -0
- package/types/koobiq-components-autocomplete.d.ts +443 -0
- package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
- package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
- package/types/koobiq-components-button-toggle.d.ts +340 -0
- package/types/koobiq-components-button.d.ts +296 -0
- package/types/koobiq-components-checkbox.d.ts +172 -0
- package/types/koobiq-components-clamped-text.d.ts +184 -0
- package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +114 -79
- package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
- package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
- package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
- package/types/koobiq-components-divider.d.ts +43 -0
- package/types/koobiq-components-dl.d.ts +235 -0
- package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
- package/types/koobiq-components-ellipsis-center.d.ts +85 -0
- package/types/koobiq-components-empty-state.d.ts +106 -0
- package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
- package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
- package/types/koobiq-components-flag.d.ts +68 -0
- package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
- package/types/koobiq-components-icon.d.ts +333 -0
- package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
- package/types/koobiq-components-input.d.ts +477 -0
- package/types/koobiq-components-link-deprecated.d.ts +101 -0
- package/types/koobiq-components-link.d.ts +176 -0
- package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
- package/types/koobiq-components-loader-overlay.d.ts +101 -0
- package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
- package/types/koobiq-components-modal.d.ts +666 -0
- package/types/koobiq-components-navbar.d.ts +569 -0
- package/types/koobiq-components-notification-center.d.ts +500 -0
- package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
- package/types/koobiq-components-popover.d.ts +468 -0
- package/types/koobiq-components-progress-bar.d.ts +67 -0
- package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
- package/types/koobiq-components-radio.d.ts +294 -0
- package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
- package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
- package/types/koobiq-components-scrollbar.d.ts +154 -0
- package/types/koobiq-components-search-expandable.d.ts +164 -0
- package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
- package/types/koobiq-components-sidebar.d.ts +152 -0
- package/types/koobiq-components-sidepanel.d.ts +436 -0
- package/types/koobiq-components-skeleton.d.ts +234 -0
- package/types/koobiq-components-split-button.d.ts +65 -0
- package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
- package/types/koobiq-components-splitter.d.ts +406 -0
- package/types/koobiq-components-table.d.ts +44 -0
- package/types/koobiq-components-tabs.d.ts +888 -0
- package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
- package/types/koobiq-components-textarea.d.ts +178 -0
- package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
- package/types/koobiq-components-timepicker.d.ts +223 -0
- package/types/koobiq-components-timezone.d.ts +266 -0
- package/types/koobiq-components-title.d.ts +184 -0
- package/types/koobiq-components-toast.d.ts +289 -0
- package/types/koobiq-components-toggle.d.ts +121 -0
- package/types/koobiq-components-tooltip.d.ts +610 -0
- package/types/koobiq-components-top-bar.d.ts +61 -0
- package/types/koobiq-components-tree-select.d.ts +667 -0
- package/types/koobiq-components-tree.d.ts +1290 -0
- package/types/koobiq-components-username.d.ts +340 -0
- package/username/_username-theme.scss +35 -0
- package/username/username.scss +10 -34
- package/app-switcher/index.d.ts +0 -276
- package/autocomplete/index.d.ts +0 -286
- package/button/index.d.ts +0 -153
- package/button-toggle/index.d.ts +0 -162
- package/checkbox/index.d.ts +0 -163
- package/clamped-text/index.d.ts +0 -146
- package/core/styles/_tokens.scss +0 -7
- package/core/styles/common/_clearfix.scss +0 -13
- package/core/styles/common/_popup.scss +0 -6
- package/core/styles/functions/_index.scss +0 -3
- package/core/styles/functions/_number.scss +0 -60
- package/core/styles/functions/_string.scss +0 -18
- package/core/styles/theming/scrollbar-tokens.scss +0 -25
- package/core/styles/typography/_typography-utils.scss +0 -84
- package/divider/index.d.ts +0 -20
- package/dl/index.d.ts +0 -45
- package/ellipsis-center/index.d.ts +0 -71
- package/empty-state/index.d.ts +0 -45
- package/flag/index.d.ts +0 -44
- package/icon/index.d.ts +0 -200
- package/input/index.d.ts +0 -354
- package/link/index.d.ts +0 -56
- package/loader-overlay/index.d.ts +0 -57
- package/modal/index.d.ts +0 -339
- package/navbar/index.d.ts +0 -372
- package/notification-center/index.d.ts +0 -323
- package/popover/index.d.ts +0 -182
- package/prebuilt-themes/dark-theme.css +0 -1
- package/prebuilt-themes/light-theme.css +0 -1
- package/progress-bar/index.d.ts +0 -31
- package/radio/index.d.ts +0 -203
- package/search-expandable/index.d.ts +0 -101
- package/sidebar/index.d.ts +0 -94
- package/sidepanel/index.d.ts +0 -272
- package/skeleton/index.d.ts +0 -26
- package/split-button/index.d.ts +0 -46
- package/table/index.d.ts +0 -25
- package/tabs/index.d.ts +0 -677
- package/textarea/index.d.ts +0 -138
- package/timepicker/index.d.ts +0 -197
- package/timezone/index.d.ts +0 -125
- package/title/index.d.ts +0 -139
- package/toast/index.d.ts +0 -178
- package/toggle/index.d.ts +0 -104
- package/tooltip/index.d.ts +0 -335
- package/top-bar/index.d.ts +0 -33
- package/tree/index.d.ts +0 -802
- package/tree-select/index.d.ts +0 -475
- package/username/index.d.ts +0 -194
- /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
- /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"koobiq-components-form-field.mjs","sources":["../../../packages/components/form-field/cleaner.ts","../../../packages/components/form-field/hint.ts","../../../packages/components/form-field/hint.html","../../../packages/components/form-field/error.ts","../../../packages/components/form-field/fieldset.ts","../../../packages/components/form-field/form-field-control.ts","../../../packages/components/form-field/label.ts","../../../packages/components/form-field/password-hint.ts","../../../packages/components/form-field/password-toggle.ts","../../../packages/components/form-field/prefix.ts","../../../packages/components/form-field/reactive-password-hint.ts","../../../packages/components/form-field/stepper.ts","../../../packages/components/form-field/suffix.ts","../../../packages/components/form-field/form-field.ts","../../../packages/components/form-field/form-field.html","../../../packages/components/form-field/form-field.module.ts","../../../packages/components/form-field/koobiq-components-form-field.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ESCAPE, KbqComponentColors, kbqInjectA11yLocaleConfiguration } from '@koobiq/components/core';\nimport { KbqIconButton } from '@koobiq/components/icon';\nimport { fromEvent } from 'rxjs';\nimport { KbqFormFieldControl } from './form-field-control';\n\n/** @docs-private */\nexport interface KbqCleanerContext {\n readonly control: KbqFormFieldControl<unknown>;\n readonly keydownTarget: HTMLElement;\n readonly clearByEscape: boolean;\n /** Overrides the default `cleanerControl.ngControl?.reset()` behavior when the cleaner is activated. */\n clear?(): void;\n}\n\n/** @docs-private */\nexport const KBQ_CLEANER_CONTEXT = new InjectionToken<KbqCleanerContext | null>('KbqCleanerContext');\n\n/**\n * Utility provider for `KBQ_CLEANER_CONTEXT`, built from a factory that resolves the current host's `KbqCleanerContext`.\n * @docs-private\n */\nexport const kbqCleanerFactoryProvider = (factory: () => KbqCleanerContext): Provider => ({\n provide: KBQ_CLEANER_CONTEXT,\n useFactory: factory\n});\n\n/** @docs-private */\nexport function getKbqFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\n return Error(`You can't use kbq-cleaner with input that have type=\"number\"`);\n}\n\n/**\n * Element to be placed in end of the form field.\n * Resets form control by click.\n */\n@Component({\n selector: 'kbq-cleaner',\n template: `\n <ng-content />\n `,\n styleUrls: ['cleaner.scss', '../icon/icon-button.scss', '../icon/icon-button-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-cleaner',\n // The cleaner is an icon-only control: without a role and an accessible name it is announced as an\n // unlabeled focusable graphic.\n role: 'button',\n '[attr.aria-label]': 'accessibleName()',\n '(click)': 'clear($event)',\n '(keydown.enter)': 'clear($event)',\n '(keydown.space)': 'clear($event)'\n },\n exportAs: 'kbqCleaner'\n})\nexport class KbqCleaner extends KbqIconButton implements AfterContentInit {\n private readonly context = inject(KBQ_CLEANER_CONTEXT, { optional: true });\n\n /**\n * Whether the cleaner can be displayed for the current control state.\n * @docs-private\n */\n get canShow(): boolean {\n const control = this.context?.control;\n\n return control ? !control.disabled && !control.empty : true;\n }\n\n private readonly a11yLocaleConfiguration = kbqInjectA11yLocaleConfiguration();\n\n /** Accessible name of the cleaner. Defaults to the localized \"Clear\". */\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n /** @docs-private */\n protected readonly accessibleName = computed(() => this.ariaLabel() || this.a11yLocaleConfiguration().clear);\n\n constructor() {\n super();\n\n const initialIcon = 'kbq-circle-xmark_16';\n\n this.iconName = initialIcon;\n this.svgIconName.next(initialIcon);\n this.color = KbqComponentColors.ContrastFade;\n this.autoColor = true;\n }\n\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n if (this.context?.control?.controlType === 'input-number') {\n throw getKbqFormFieldYouCanNotUseCleanerInNumberInputError();\n }\n\n const keydownTarget = this.context?.keydownTarget;\n\n if (keydownTarget) {\n fromEvent<KeyboardEvent>(keydownTarget, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.onKeyDown(event));\n }\n }\n\n /**\n * Clears the owning control in response to pointer or keyboard activation.\n * @docs-private\n */\n clear(event: Event): void {\n if (!this.context || !this.canShow) return;\n\n event.stopPropagation();\n event.preventDefault();\n\n if (this.context.clear) {\n this.context.clear();\n } else {\n this.context.control.ngControl?.reset();\n }\n\n this.context.control.focus();\n }\n\n /**\n * Clears the focused control when Escape handling is enabled.\n */\n private onKeyDown(event: KeyboardEvent): void {\n if (event.keyCode === ESCAPE && this.context?.clearByEscape && this.context.control.focused && this.canShow) {\n this.clear(event);\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, Input, input, ViewEncapsulation } from '@angular/core';\nimport { KbqColorDirective } from '@koobiq/components/core';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown below the form field control. */\n@Component({\n selector: 'kbq-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss', './hint-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-hint',\n '[attr.id]': 'id()',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff',\n '[class.kbq-hint_compact]': 'compact'\n },\n exportAs: 'kbqHint'\n})\nexport class KbqHint extends KbqColorDirective {\n /** Unique ID for the hint. */\n readonly id = input<string>(`kbq-hint-${nextUniqueId++}`);\n\n /** Disables `color` for the hint text. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ transform: booleanAttribute }) fillTextOff: boolean = false;\n\n /** Makes the hint size smaller. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input({ transform: booleanAttribute }) compact: boolean = false;\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n<span class=\"kbq-hint__text\">\n <ng-content />\n</span>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { KbqHint } from './hint';\n\n/** Error text to be shown below the form field control. */\n@Component({\n selector: 'kbq-error',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-error'\n },\n exportAs: 'kbqError'\n})\nexport class KbqError extends KbqHint {\n constructor() {\n super();\n\n this.color = KbqComponentColors.Error;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n Directive,\n ElementRef,\n Signal,\n ViewEncapsulation\n} from '@angular/core';\n\n/** Directive for marking an element as legend of `KbqFieldset` */\n@Directive({\n selector: '[kbqLegend]',\n host: {\n class: 'kbq-legend'\n }\n})\nexport class KbqLegend {}\n\n/** Directive for marking elements as items inside `KbqFieldset` */\n@Directive({\n selector: '[kbqFieldsetItem]',\n host: {\n class: 'kbq-fieldset-item'\n }\n})\nexport class KbqFieldsetItem {}\n\n/**\n * A group of form-fields and related controls.\n * Container component emulating the native `fieldset` element.\n */\n@Component({\n selector: 'kbq-fieldset',\n template: `\n <ng-content select=\"[kbqLegend]\" />\n\n <div class=\"kbq-fieldset__container\">\n <ng-content />\n </div>\n\n <div class=\"kbq-form-field__hint\">\n <ng-content select=\"kbq-error\" />\n\n <ng-content select=\"kbq-hint, kbq-password-hint, kbq-reactive-password-hint\" />\n </div>\n `,\n styleUrls: ['./fieldset.scss', './fieldset-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-fieldset',\n role: 'group',\n '[attr.aria-label]': 'ariaLabel()'\n }\n})\nexport class KbqFieldset {\n private readonly legend: Signal<ElementRef<HTMLElement> | undefined> = contentChild(KbqLegend, {\n read: ElementRef\n });\n\n /**\n * Computes the aria-label from the inner text of the legend element.\n * Used to enhance accessibility by labeling the group.\n * @docs-private\n */\n protected readonly ariaLabel = computed(() => this.legend()?.nativeElement?.innerText);\n}\n","import { Signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `KbqFormField`. */\nexport abstract class KbqFormFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `KbqFormField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /**\n * Whether the control's value was filled in by the browser.\n *\n * Implement it only where autofill is reachable: on a control that is itself a text input or a\n * textarea, or — like `KbqTagList` — on a wrapper that forwards the state of the input it hosts.\n * Leave it out on controls the browser never fills.\n *\n * A signal rather than a plain property because the form field reads it from a host binding and\n * runs `OnPush`: a signal read there marks the form field dirty on its own.\n */\n readonly autofilled?: Signal<boolean>;\n\n /**\n * An optional name for the control type that can be used to distinguish `kbq-form-field` elements\n * based on their control type. The form field will add a class,\n * `kbq-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n /** Focuses the control. */\n abstract focus(options?: FocusOptions): void;\n\n /** Opens control's overlay. */\n abstract open?(): void;\n}\n","import { Directive } from '@angular/core';\n\n/** Label for the form field. */\n@Directive({\n selector: 'kbq-label',\n host: {\n class: 'kbq-label'\n },\n exportAs: 'kbqLabel'\n})\nexport class KbqLabel {}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n input,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { KBQ_FORM_FIELD_REF, KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { Subject } from 'rxjs';\nimport { KbqFormField } from './form-field';\nimport { KbqHint } from './hint';\n\nlet nextPasswordHintUniqueId = 0;\n\nexport enum PasswordRules {\n Length,\n UpperLatin,\n LowerLatin,\n Digit,\n LatinAndSpecialSymbols,\n Custom\n}\n\nexport const regExpPasswordValidator = {\n [PasswordRules.LowerLatin]: RegExp(/^(?=.*?[a-z])/),\n [PasswordRules.UpperLatin]: RegExp(/^(?=.*?[A-Z])/),\n [PasswordRules.Digit]: RegExp(/^(?=.*?[0-9])/),\n [PasswordRules.LatinAndSpecialSymbols]: RegExp(/[^ !`\"'#№$%&()*+,-./\\\\:;<=>?@[\\]^_{|}~A-Za-z0-9]/)\n};\n\nexport const hasPasswordStrengthError = (\n passwordHints: QueryList<KbqPasswordHint> | readonly KbqPasswordHint[]\n): boolean => {\n return passwordHints.some((hint: KbqPasswordHint) => hint.hasError);\n};\n\n@Component({\n selector: 'kbq-password-hint',\n imports: [KbqIconModule],\n template: `\n <i class=\"kbq-password-hint__icon\" [kbq-icon]=\"icon\" [color]=\"iconColor\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n styleUrls: ['hint.scss', 'hint-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[attr.id]': 'id()',\n class: 'kbq-hint kbq-password-hint',\n '[class.kbq-success]': 'checked',\n '[class.kbq-error]': 'hasError',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff',\n '[class.kbq-hint_compact]': 'compact'\n }\n})\nexport class KbqPasswordHint extends KbqHint implements AfterContentInit {\n private changeDetectorRef = inject(ChangeDetectorRef);\n private formField = inject(KBQ_FORM_FIELD_REF, { optional: true })!;\n\n readonly id = input<string>(`kbq-hint-${nextPasswordHintUniqueId++}`);\n\n readonly rule = input<PasswordRules | any>();\n\n readonly min = input<number>(undefined!);\n readonly max = input<number>(undefined!);\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() regex: RegExp | null;\n readonly customCheckRule = input<(value: string) => boolean>(undefined!, { alias: 'checkRule' });\n\n readonly viewFormField = input<KbqFormField>();\n\n // TODO: Skipped for migration because:\n // This input is inherited from a superclass, but the parent cannot be migrated.\n @Input() fillTextOff: boolean = true;\n\n hasError: boolean = false;\n checked: boolean = false;\n\n get icon(): string {\n return this.checked ? 'kbq-check-s_16' : 'kbq-xmark-s_16';\n }\n\n /**\n * The form field hint icon color.\n *\n * @docs-private\n */\n protected get iconColor(): KbqComponentColors {\n if (this.control?.ngControl.untouched && this.control?.ngControl.pristine) {\n return KbqComponentColors.ContrastFade;\n }\n\n return this.checked ? KbqComponentColors.Success : KbqComponentColors.Error;\n }\n\n private checkRule: (value: string) => boolean;\n\n private get control() {\n return this.formField.control();\n }\n\n private lastControlValue: string;\n\n constructor() {\n super();\n this.color = KbqComponentColors.ContrastFade;\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n }\n\n ngAfterContentInit(): void {\n this.formField = this.formField || this.viewFormField();\n\n const rule = this.rule();\n const customCheckRule = this.customCheckRule();\n\n if (rule === PasswordRules.Custom && this.regex === undefined && customCheckRule === undefined) {\n throw Error('You should set [regex] or [checkRule] for PasswordRules.Custom');\n }\n\n if (rule === PasswordRules.Length && (this.min() || this.max()) === null) {\n throw Error('For [rule] \"Length\" need set [min] and [max]');\n }\n\n if (rule === PasswordRules.Length) {\n this.checkRule = this.checkLengthRule;\n } else if ([PasswordRules.UpperLatin, PasswordRules.LowerLatin, PasswordRules.Digit].includes(rule)) {\n this.regex = regExpPasswordValidator[rule];\n this.checkRule = this.checkRegexRule;\n } else if (rule === PasswordRules.LatinAndSpecialSymbols) {\n this.regex = regExpPasswordValidator[rule];\n this.checkRule = this.checkSpecialSymbolsRegexRule;\n } else if (rule === PasswordRules.Custom) {\n this.checkRule = this.regex === undefined ? customCheckRule : this.checkRegexRule;\n } else {\n throw Error(`Unknown [rule]=${rule}`);\n }\n\n // prevent error when formField.control is undefined\n setTimeout(() => {\n this.formField.control().stateChanges.subscribe(this.checkValue);\n\n (this.formField.control() as unknown as { checkRule: Subject<any> }).checkRule.subscribe(() => {\n this.checked = this.checkRule(this.control.value);\n this.hasError = !this.checkRule(this.control.value);\n });\n });\n }\n\n private checkValue = () => {\n if (this.control.focused && this.isValueChanged()) {\n this.hasError = false;\n\n this.checked = this.checkRule(this.control.value);\n } else if (!this.control.focused && !this.isValueChanged()) {\n this.hasError = !this.checkRule(this.control.value);\n }\n\n if (!this.control.required && !this.control.value) {\n this.checked = this.hasError = false;\n }\n\n this.lastControlValue = this.control.value;\n this.changeDetectorRef.markForCheck();\n };\n\n private checkLengthRule(value: string): boolean {\n return value.length >= this.min() && value.length <= this.max();\n }\n\n private checkRegexRule = (value: string): boolean => {\n return !!this.regex?.test(value);\n };\n\n private checkSpecialSymbolsRegexRule(value: string): boolean {\n return !!value && !this.regex?.test(value);\n }\n\n private isValueChanged(): boolean {\n return this.lastControlValue !== this.formField.control().value;\n }\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\n\nimport { F8 } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n afterNextRender,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n inject,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n TemplateRef,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { kbqInjectA11yLocaleConfiguration, kbqInjectNativeElement, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqIconButton, KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { EMPTY, fromEvent } from 'rxjs';\nimport { KBQ_FORM_FIELD } from './form-field';\nimport { KbqFormFieldControl } from './form-field-control';\n\n/**\n * Narrow structural contract for `kbqInputPassword`, duck-typed here to avoid a circular\n * dependency between `@koobiq/components/form-field` and `@koobiq/components/input`.\n */\ntype KbqPasswordToggleControl = KbqFormFieldControl<unknown> & {\n readonly controlType: 'input-password';\n elementType: 'text' | 'password';\n toggleType: () => void;\n};\n\n/**\n * Checks whether the given control structurally matches `KbqPasswordToggleControl`.\n */\nconst isPasswordToggleControl = (control: unknown): control is KbqPasswordToggleControl => {\n return (\n !!control &&\n typeof control === 'object' &&\n 'controlType' in control &&\n control.controlType === 'input-password' &&\n 'elementType' in control &&\n 'toggleType' in control &&\n typeof control.toggleType === 'function'\n );\n};\n\nconst getKbqPasswordToggleMissingControlError = (): Error => {\n return Error('You should use kbq-password-toggle with kbqInputPassword');\n};\n\n/** Component which changes password visibility. */\n@Component({\n selector: `kbq-password-toggle`,\n imports: [KbqIconModule, KbqToolTipModule],\n template: `\n <ng-content>\n <i\n role=\"button\"\n [attr.aria-label]=\"accessibleName\"\n [attr.aria-pressed]=\"!hidden\"\n [color]=\"hasError ? 'error' : 'contrast-fade'\"\n [kbq-icon-button]=\"iconClass\"\n [tabindex]=\"tabindex()\"\n ></i>\n </ng-content>\n `,\n styleUrls: ['password-toggle.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-password-toggle',\n // `visibility` is what takes the disabled toggle out of the tab order and the accessibility tree;\n // `cdk-visually-hidden` and `aria-hidden` are kept for backward compatibility with consumer styles.\n '[style.visibility]': 'visibility',\n '[class.cdk-visually-hidden]': 'visibility === \"hidden\"',\n '[attr.aria-hidden]': 'visibility === \"hidden\"',\n '(click)': 'toggle($event)',\n '(keydown.ENTER)': 'toggle($event)',\n '(keydown.SPACE)': 'toggle($event)'\n },\n exportAs: 'kbqPasswordToggle'\n})\nexport class KbqPasswordToggle extends KbqTooltipTrigger implements AfterViewInit, OnDestroy, AfterContentInit {\n protected readonly nativeElement = kbqInjectNativeElement();\n protected readonly focusMonitor = inject(FocusMonitor);\n protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n private readonly a11yLocaleConfiguration = kbqInjectA11yLocaleConfiguration();\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n\n readonly tabindex = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * @docs-private\n */\n readonly icon = viewChild.required(KbqIconButton);\n\n /**\n * Tooltip shown while the password is visible. Reading it resolves to the tooltip matching the current\n * visibility, so that the base trigger renders the right one.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input('kbqTooltipNotHidden')\n get content(): string | TemplateRef<any> {\n return this.control.elementType === 'password' ? this.kbqTooltipHidden() : this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n this.updateData();\n }\n\n /** Tooltip shown while the password is hidden. */\n readonly kbqTooltipHidden = input<string | TemplateRef<any>>(undefined!);\n\n protected hasError: boolean = false;\n\n /** Form field password control. */\n private get control(): KbqPasswordToggleControl {\n const control = this.formField?.control();\n\n if (!isPasswordToggleControl(control)) {\n throw getKbqPasswordToggleMissingControlError();\n }\n\n return control;\n }\n\n /**\n * @docs-private\n */\n get hidden(): boolean {\n return this.control.elementType === 'password';\n }\n\n /**\n * @docs-private\n */\n get iconClass(): string {\n return this.hidden ? 'kbq-eye_16' : 'kbq-eye-slash_16';\n }\n\n /**\n * @docs-private\n */\n get visibility(): 'hidden' | 'visible' {\n return this.control.disabled ? 'hidden' : 'visible';\n }\n\n /**\n * Accessible name of the icon-only toggle, describing the action it performs.\n *\n * @docs-private\n */\n protected get accessibleName(): string {\n const { showPassword, hidePassword } = this.a11yLocaleConfiguration();\n\n return this.hidden ? showPassword : hidePassword;\n }\n\n constructor() {\n super();\n\n this.trigger = `${PopUpTriggers.Hover}`;\n\n const keydownTarget = this.formField?.elementRef.nativeElement;\n\n if (keydownTarget) {\n fromEvent<KeyboardEvent>(keydownTarget, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.onFormFieldKeyDown(event));\n }\n\n // `stateChanges` is owned by the control and outlives the toggle, so the subscription has to be torn\n // down explicitly. Subscribing after render also keeps it off the server, matching KbqReactivePasswordHint.\n afterNextRender(() => {\n (this.formField?.control()?.stateChanges || EMPTY)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(this.updateState);\n });\n }\n\n ngAfterContentInit(): void {\n this.updateState();\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n\n /**\n * @docs-private\n */\n toggle(event: Event): void {\n if (this.control.disabled) return;\n\n this.hide();\n\n this.control.toggleType();\n\n this.updateData();\n\n event.preventDefault();\n }\n\n /**\n * Toggles password visibility for the Alt+F8 shortcut.\n */\n private onFormFieldKeyDown(event: KeyboardEvent): void {\n if (event.altKey && event.keyCode === F8) {\n this.toggle(event);\n }\n }\n\n private updateState = () => {\n this.hasError = !!this.control.errorState;\n\n this.changeDetectorRef.markForCheck();\n };\n}\n","import { Directive } from '@angular/core';\n\n/** Element to be placed in front of the form field. */\n@Directive({\n selector: '[kbqPrefix]',\n host: {\n class: 'kbq-prefix'\n },\n exportAs: 'kbqPrefix'\n})\nexport class KbqPrefix {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n DestroyRef,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { EMPTY } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { KBQ_FORM_FIELD } from './form-field';\nimport { KbqHint } from './hint';\n\n/** Password hint to be shown below the password form field control. */\n@Component({\n selector: 'kbq-reactive-password-hint',\n imports: [KbqIconModule],\n template: `\n <i [kbq-icon]=\"icon()\" [color]=\"color\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-reactive-password-hint'\n },\n exportAs: 'kbqReactivePasswordHint'\n})\nexport class KbqReactivePasswordHint extends KbqHint {\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n /** Whether the form field control has an error. */\n readonly hasError = input(false, { transform: booleanAttribute });\n\n /**\n * The form field hint icon.\n *\n * @docs-private\n */\n protected readonly icon = computed(() => (this.hasError() ? 'kbq-xmark-s_16' : 'kbq-check-s_16'));\n\n constructor() {\n super();\n\n this.fillTextOff = true;\n this.compact = false;\n this.color = KbqComponentColors.ContrastFade;\n\n afterNextRender(() => {\n (this.formField?.control()?.stateChanges || EMPTY)\n .pipe(delay(0), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.color = this.makeColor();\n\n this.changeDetectorRef.markForCheck();\n });\n });\n }\n\n private makeColor(): KbqComponentColors {\n const control = this.formField?.control();\n\n if (control?.ngControl?.untouched && control.ngControl.pristine) {\n return KbqComponentColors.ContrastFade;\n }\n\n return this.hasError() ? KbqComponentColors.Error : KbqComponentColors.Success;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n output,\n OutputEmitterRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { concatMap, fromEvent, interval, Subject, timer } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { KBQ_FORM_FIELD } from './form-field';\nimport type { KbqFormFieldControl } from './form-field-control';\n\n/**\n * Narrow structural contract for the control hosted by `kbqNumberInput`, duck-typed here to avoid\n * a circular dependency between `@koobiq/components/form-field` and `@koobiq/components/input`.\n */\ntype KbqStepperControl = KbqFormFieldControl<unknown> & {\n readonly controlType: 'input-number';\n readonly step: number;\n stepUp: (step: number) => void;\n /** Decreases the value by `step`. */\n stepDown: (step: number) => void;\n};\n\n/**\n * Checks whether the given value structurally matches `KbqStepperControl`.\n */\nconst isStepperControl = (control: unknown): control is KbqStepperControl => {\n return (\n !!control &&\n typeof control === 'object' &&\n 'controlType' in control &&\n control.controlType === 'input-number' &&\n 'stepUp' in control &&\n typeof control.stepUp === 'function' &&\n 'stepDown' in control &&\n typeof control.stepDown === 'function'\n );\n};\n\nconst getKbqStepperToggleMissingControlError = (): Error => {\n return Error('You should use kbq-stepper with kbqNumberInput');\n};\n\n/**\n * Timeout duration when clicking the up/down arrow\n * @docs-private\n */\nexport const KBQ_STEPPER_INITIAL_TIMEOUT = 300;\n\n/**\n * Interval delay when clicking the up/down arrow\n * @docs-private\n */\nexport const KBQ_STEPPER_INTERVAL_DELAY = 75;\n\n/** Component which allow to increment or decrement number value. */\n@Component({\n selector: 'kbq-stepper',\n imports: [KbqIconModule],\n template: `\n <i\n aria-hidden=\"true\"\n class=\"kbq-stepper-step-up\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-up-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control().disabled\"\n (mousedown)=\"onStepUp($event)\"\n ></i>\n <i\n aria-hidden=\"true\"\n class=\"kbq-stepper-step-down\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control().disabled\"\n (mousedown)=\"onStepDown($event)\"\n ></i>\n `,\n styleUrls: ['stepper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-stepper'\n },\n exportAs: 'kbqStepper'\n})\nexport class KbqStepper {\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n /** Emitted when the stepper is incremented. */\n readonly stepUp = output<void>();\n\n /** Emitted when the stepper is decremented. */\n readonly stepDown = output<void>();\n\n /** @docs-private */\n protected readonly mouseUp = new Subject<void>();\n\n /**\n * Timing observable simulating long press in native input-number.\n * - Value increases/decreases by step immediately.\n * - Brief pause (`300ms`)\n * - Numbers start running upward/downward with selected speed\n * (controlled by interval period)\n * @see KBQ_STEPPER_INTERVAL_DELAY\n * @see KBQ_STEPPER_INITIAL_TIMEOUT\n * @docs-private\n */\n private readonly longPress = timer(KBQ_STEPPER_INITIAL_TIMEOUT).pipe(\n concatMap(() => interval(KBQ_STEPPER_INTERVAL_DELAY)),\n takeUntilDestroyed(),\n takeUntil(this.mouseUp)\n );\n\n /**\n * Form field number control. Resolved once per control change instead of on every template read.\n *\n * @docs-private\n */\n protected readonly control = computed<KbqStepperControl>(() => {\n const control = this.formField?.control();\n // `formFieldControl` here is `KbqInput` (it owns the `KbqFormFieldControl` provider on\n // `<input kbqNumberInput>`), not the number-input itself: `stepUp`/`stepDown`/`step`\n // live on the sibling `KbqNumberInput` directive, reachable only via `KbqInput.numberInput`.\n const inputNumberControl =\n control?.controlType === 'input-number' && 'numberInput' in control ? control.numberInput : null;\n\n if (!isStepperControl(inputNumberControl)) {\n throw getKbqStepperToggleMissingControlError();\n }\n\n return inputNumberControl;\n });\n\n constructor() {\n this.destroyRef.onDestroy(() => this.mouseUp.complete());\n }\n\n /**\n * @deprecated No longer required — `KbqStepper` resolves its control automatically via DI.\n * @docs-private\n */\n connectTo(_: any): void {}\n\n /** @docs-private */\n onStepUp(event: MouseEvent): void {\n this.handleStep(event, (control) => control.stepUp(control.step), this.stepUp);\n }\n\n /** @docs-private */\n onStepDown(event: MouseEvent): void {\n this.handleStep(event, (control) => control.stepDown(control.step), this.stepDown);\n }\n\n private handleStep(\n event: MouseEvent,\n step: (control: KbqStepperControl) => void,\n emitter: OutputEmitterRef<void>\n ): void {\n const control = this.control();\n\n if (control.disabled) return;\n\n const performStep = () => {\n step(control);\n emitter.emit();\n };\n\n performStep();\n // handle case when cursor is out of viewport.\n fromEvent(this.document, 'mouseup')\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.mouseUp.next());\n this.longPress.subscribe(performStep);\n event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n/** Element to be placed at the end of the form field. */\n@Directive({\n selector: '[kbqSuffix]',\n host: {\n class: 'kbq-suffix'\n }\n})\nexport class KbqSuffix {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n contentChild,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n input,\n model,\n OnDestroy,\n Provider,\n QueryList,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { KBQ_CONNECTED_OVERLAY_ORIGIN, KBQ_FORM_FIELD_REF, KbqColorDirective } from '@koobiq/components/core';\nimport { kbqIconErrorStateContextFactoryProvider } from '@koobiq/components/icon';\nimport { EMPTY, merge } from 'rxjs';\nimport { delay, startWith } from 'rxjs/operators';\nimport { KbqCleaner, kbqCleanerFactoryProvider } from './cleaner';\nimport { KbqError } from './error';\nimport { KbqFormFieldControl } from './form-field-control';\nimport { KbqHint } from './hint';\nimport { KbqLabel } from './label';\nimport { hasPasswordStrengthError, KbqPasswordHint } from './password-hint';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqReactivePasswordHint } from './reactive-password-hint';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\n/** @docs-private */\nexport function getKbqFormFieldMissingControlError(): Error {\n return Error('kbq-form-field must contain a KbqFormFieldControl');\n}\n\n/**\n * Injection token used to access the owning `KbqFormField`.\n * @docs-private\n */\nexport const KBQ_FORM_FIELD = new InjectionToken<KbqFormField>('KbqFormField');\n\n/**\n * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS`\n * injection token.\n */\nexport type KbqFormFieldDefaultOptions = Partial<{\n /** Disables form field borders and shadows. */\n noBorders: boolean;\n /** Use when KbqFormField is in an overlay container. */\n inOverlay: boolean;\n /** Whether the form field is displayed horizontally. */\n horizontal: boolean;\n /** Additional CSS classes applied to the label element. */\n labelClass: string | string[] | Set<string>;\n /** Additional CSS classes applied to the content wrapper element. */\n contentClass: string | string[] | Set<string>;\n}>;\n\n/**\n * Injection token that can be used to configure the default options for all kbq-form-field's.\n * @docs-private\n */\nexport const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<KbqFormFieldDefaultOptions>(\n 'KBQ_FORM_FIELD_DEFAULT_OPTIONS'\n);\n\n/** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */\nexport const kbqFormFieldDefaultOptionsProvider = (options: KbqFormFieldDefaultOptions): Provider => ({\n provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: options\n});\n\n/** Container for form controls that applies styling and behavior. */\n@Component({\n selector: 'kbq-form-field',\n imports: [],\n templateUrl: 'form-field.html',\n styleUrls: [\n 'form-field.scss',\n 'form-field-tokens.scss',\n // KbqInput is a directive and can't have styles, so we need to include its styles here.\n // The KbqInput styles are fairly minimal so it shouldn't be a big deal for people who aren't using KbqInput.\n '../input/input.scss',\n '../input/input-tokens.scss',\n '../timepicker/timepicker.scss',\n '../datepicker/datepicker-input.scss',\n '../textarea/textarea.scss',\n '../tags/tag-input-tokens.scss'\n ],\n providers: [\n // Kept for consumers that cannot depend on the form-field entry point.\n { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField },\n { provide: KBQ_FORM_FIELD, useExisting: KbqFormField },\n kbqCleanerFactoryProvider(() => {\n const formField = inject(KBQ_FORM_FIELD);\n\n return {\n get control() {\n return formField.control();\n },\n get keydownTarget() {\n return formField.elementRef.nativeElement;\n },\n clearByEscape: true\n };\n }),\n kbqIconErrorStateContextFactoryProvider(() => {\n const formField = inject(KBQ_FORM_FIELD);\n\n return {\n get errorState() {\n return formField.control().errorState;\n },\n get stateChanges() {\n return formField.control().stateChanges;\n }\n };\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-form-field',\n\n '[class.kbq-form-field_invalid]': 'invalid',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-form-field_autofilled]': 'autofilled',\n '[class.kbq-form-field_no-borders]': 'noBorders()',\n '[class.kbq-form-field_in-overlay]': 'inOverlay()',\n '[class.kbq-form-field_horizontal]': 'horizontal()',\n\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\n '[class.ng-touched]': 'shouldForward(\"touched\")',\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\n '[class.ng-valid]': 'shouldForward(\"valid\")',\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\n '[class.ng-pending]': 'shouldForward(\"pending\")',\n\n '(keydown)': 'onKeyDown($event)',\n '(mouseenter)': 'onHoverChanged(true)',\n '(mouseleave)': 'onHoverChanged(false)'\n },\n exportAs: 'kbqFormField'\n})\nexport class KbqFormField\n extends KbqColorDirective\n implements AfterContentInit, AfterViewInit, OnDestroy, AfterContentChecked\n{\n private readonly destroyRef = inject(DestroyRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });\n private readonly customOverlayOrigin = inject(KBQ_CONNECTED_OVERLAY_ORIGIN, { optional: true });\n /**\n * @docs-private\n */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Disables form field borders and shadows. */\n readonly noBorders = input(this.defaultOptions?.noBorders, { transform: booleanAttribute });\n\n /** Use when KbqFormField is in an overlay container. */\n readonly inOverlay = model(this.defaultOptions?.inOverlay);\n\n /** Whether the form field is displayed horizontally. */\n readonly horizontal = input(this.defaultOptions?.horizontal, { transform: booleanAttribute });\n\n /** Additional CSS classes applied to the label element. */\n readonly labelClass = input(this.defaultOptions?.labelClass);\n\n /** Additional CSS classes applied to the content wrapper element. */\n readonly contentClass = input(this.defaultOptions?.contentClass);\n\n /**\n * The form field control.\n *\n * @docs-private\n */\n readonly control = contentChild.required(KbqFormFieldControl);\n /**\n * @docs-private\n */\n readonly stepper = contentChild(KbqStepper);\n /**\n * @docs-private\n *\n * @TODO Should be readonly (#DS-3883)\n */\n @ContentChild(KbqCleaner, { descendants: false }) cleaner: KbqCleaner | null;\n /**\n * @docs-private\n */\n @ContentChild(KbqPasswordToggle) passwordToggle: KbqPasswordToggle | null;\n /**\n * @docs-private\n */\n @ContentChildren(KbqHint) hint: QueryList<KbqHint>;\n /**\n * @docs-private\n */\n @ContentChildren(KbqPasswordHint) passwordHints: QueryList<KbqPasswordHint>;\n /**\n * @docs-private\n */\n @ContentChildren(KbqSuffix) suffix: QueryList<KbqSuffix>;\n /**\n * @docs-private\n */\n @ContentChildren(KbqPrefix) prefix: QueryList<KbqPrefix>;\n /**\n * @docs-private\n */\n readonly connectionContainerRef = viewChild.required<ElementRef>('connectionContainer');\n\n @ContentChildren(KbqReactivePasswordHint) private readonly reactivePasswordHint: QueryList<KbqReactivePasswordHint>;\n @ContentChildren(KbqError) private readonly error: QueryList<KbqError>;\n @ContentChild(KbqLabel) private readonly label: KbqLabel | null;\n\n /**\n * @docs-private\n */\n hovered: boolean = false;\n\n /**\n * @docs-private\n * @deprecated Unused. This property is no longer used by the form field and will be removed in a future version.\n */\n canCleanerClearByEsc: boolean = true;\n\n /** Whether the form field is invalid. */\n get invalid(): boolean {\n return !!this.control()?.errorState;\n }\n\n /**\n * Whether the form field control has an reactive password hint.\n *\n * @docs-private\n */\n protected get hasReactivePasswordHint(): boolean {\n return this.reactivePasswordHint.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-error.\n *\n * @docs-private\n */\n protected get hasError(): boolean {\n return this.error.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-label.\n *\n * @docs-private\n */\n protected get hasLabel(): boolean {\n return !!this.label;\n }\n\n /**\n * Whether the form-field contains kbq-password-hint.\n *\n * @docs-private\n */\n get hasPasswordHint(): boolean {\n return this.passwordHints?.length > 0;\n }\n\n /**\n * Current focus origin state.\n *\n * @docs-private\n */\n get focusOrigin(): FocusOrigin {\n return this._focusOrigin;\n }\n\n private _focusOrigin: FocusOrigin;\n\n /**\n * @docs-private\n */\n get hasFocus(): boolean {\n return this.control()?.focused;\n }\n\n /**\n * Whether the form-field contains kbq-hint.\n *\n * @docs-private\n */\n get hasHint(): boolean {\n return this.hint?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbqSuffix.\n *\n * @docs-private\n */\n get hasSuffix(): boolean {\n return this.suffix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbqPrefix.\n *\n * @docs-private\n */\n get hasPrefix(): boolean {\n return this.prefix?.length > 0;\n }\n\n /**\n * Whether the form-field contains kbq-cleaner.\n *\n * @docs-private\n */\n get hasCleaner(): boolean {\n return !!this.cleaner;\n }\n\n /**\n * Whether the form-field contains kbq-stepper.\n *\n * @docs-private\n */\n get hasStepper(): boolean {\n return !!this.stepper();\n }\n\n /**\n * Whether the form-field contains kbq-password-toggle.\n *\n * @docs-private\n */\n get hasPasswordToggle(): boolean {\n return !!this.passwordToggle;\n }\n\n /**\n * @docs-private\n */\n get canShowCleaner(): boolean {\n return !!this.cleaner?.canShow;\n }\n\n /** Whether the form field is disabled. */\n get disabled(): boolean {\n return this.control()?.disabled;\n }\n\n /**\n * Whether the form field control's value was filled in by the browser. Controls that cannot be\n * autofilled do not implement `autofilled`, and report `false` here.\n *\n * Reflected as `kbq-form-field_autofilled` for application code to key on. The autofill styling\n * does not use it: CSS matches `:autofill` directly, in the same style pass the browser fills\n * the field, where this arrives a frame or two later. Keeping the paint on one source also means\n * a class left behind by a detached or re-attached control cannot tint a field the browser no\n * longer considers autofilled.\n */\n get autofilled(): boolean {\n return !!this.control()?.autofilled?.();\n }\n ngAfterContentInit(): void {\n this.validateControlChild();\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n this.control()\n .stateChanges.pipe(startWith(), delay(0))\n .subscribe((state: any) => {\n if (this.passwordHints.length && !state?.focused && hasPasswordStrengthError(this.passwordHints)) {\n this.control().ngControl?.control?.setErrors({ passwordStrength: true });\n }\n });\n\n this.initializeControl();\n this.initializePrefixAndSuffix();\n this.initializeHint();\n }\n\n ngAfterContentChecked(): void {\n this.validateControlChild();\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n\n // Because the above changes a value used in the template after it was checked, we need\n // to trigger CD or the change might not be reflected if there is no other CD scheduled.\n this.changeDetectorRef.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.stopFocusMonitor();\n }\n\n /** Focuses the control. */\n focus(options?: FocusOptions): void {\n this.control().focus(options);\n }\n\n /**\n * @docs-private\n */\n clearValue(event: Event): void {\n this.cleaner?.clear(event);\n }\n\n /**\n * Handles a click on the control's container.\n *\n * @docs-private\n */\n onContainerClick(event: MouseEvent): void {\n const control = this.control();\n\n if (control?.onContainerClick) {\n control.onContainerClick(event);\n }\n }\n\n /**\n * Handles keydown events.\n * @deprecated Unused. This method is no longer called by the form field and will be removed in a future version.\n * @docs-private\n */\n onKeyDown(_event: KeyboardEvent): void {}\n\n /**\n * @docs-private\n */\n onHoverChanged(isHovered: boolean): void {\n if (isHovered !== this.hovered) {\n this.hovered = isHovered;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return (\n this.customOverlayOrigin?.getConnectedOverlayOrigin() ?? this.connectionContainerRef() ?? this.elementRef\n );\n }\n\n /**\n * Determines whether a class from the NgControl should be forwarded to the host element.\n *\n * @docs-private\n */\n shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this.control()?.ngControl;\n\n return ngControl && ngControl[prop];\n }\n\n /**\n * Runs the focus monitor for the form field.\n *\n * @docs-private\n */\n runFocusMonitor = () => {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((origin) => (this._focusOrigin = origin));\n };\n\n /**\n * Stops the focus monitor for the form field.\n *\n * @docs-private\n */\n stopFocusMonitor(): void {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n /**\n * Throws an error if the form-field control is missing.\n *\n * @docs-private\n */\n protected validateControlChild() {\n let control: KbqFormFieldControl<unknown> | undefined;\n\n try {\n control = this.control();\n } catch {\n throw getKbqFormFieldMissingControlError();\n }\n\n if (!control) {\n throw getKbqFormFieldMissingControlError();\n }\n }\n\n /** Initializes the form field control. */\n private initializeControl(): void {\n const control = this.control();\n\n if (control.controlType) {\n this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${control.controlType}`);\n }\n\n merge(control.stateChanges, control.ngControl?.valueChanges || EMPTY)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n /** Initializes the kbqPrefix and kbqSuffix containers. */\n private initializePrefixAndSuffix(): void {\n // Mark the form field as dirty whenever the prefix or suffix children change. This is necessary because we\n // conditionally display the prefix/suffix containers based on whether there is projected content.\n merge(this.prefix.changes, this.suffix.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n /** Initializes the KbqHint, KbqPasswordHint, KbqReactivePasswordHint and KbqError containers. */\n private initializeHint(): void {\n merge(this.hint.changes, this.passwordHints.changes, this.reactivePasswordHint.changes, this.error.changes)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n}\n\n/**\n * @docs-private\n */\n@Directive({\n selector: '[kbqInput], [kbqTextarea]',\n host: { class: 'kbq-trim' },\n exportAs: 'KbqTrim'\n})\nexport class KbqTrim {\n private readonly noTrim = coerceBooleanProperty(inject(new HostAttributeToken('no-trim'), { optional: true }));\n private readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n constructor() {\n if (this.noTrim || !this.ngControl) {\n return;\n }\n\n // Wrapped through the declared accessors rather than through `NgControl.valueAccessor`, which\n // Angular 22 leaves null until the form directive's first `ngOnChanges` — after this\n // constructor. Resolved here rather than in a field initializer so that an element without a\n // form control neither patches nor eagerly constructs its accessors. An accessor the form\n // does not select is patched too, but Angular never registers on it. An accessor installed by\n // assigning `NgControl.valueAccessor` directly is not covered.\n const valueAccessors = inject(NG_VALUE_ACCESSOR, { optional: true, self: true });\n\n for (const valueAccessor of valueAccessors ?? []) {\n const original = valueAccessor.registerOnChange.bind(valueAccessor);\n\n valueAccessor.registerOnChange = (fn: (value: unknown) => void) =>\n original((value: unknown) => fn(this.trim(value)));\n }\n }\n\n trim(value) {\n if (this.noTrim) {\n return value;\n }\n\n return typeof value === 'string' ? value.trim() : value;\n }\n}\n","@if (hasLabel) {\n <label class=\"kbq-form-field__label\" [class]=\"labelClass()\" [attr.for]=\"control().id\">\n <ng-content select=\"kbq-label\" />\n </label>\n}\n\n<div class=\"kbq-form-field__content\" [class]=\"contentClass()\">\n <div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix || hasCleaner || hasPasswordToggle || hasStepper) {\n <div class=\"kbq-form-field__suffix\">\n @if (canShowCleaner) {\n <div class=\"kbq-form-field__cleaner\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle, kbq-stepper, [kbqSuffix]\" />\n </div>\n }\n </div>\n\n @if (hasHint || hasPasswordHint || hasError || hasReactivePasswordHint) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-password-hint, kbq-reactive-password-hint\" />\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqCleaner } from './cleaner';\nimport { KbqError } from './error';\nimport { KbqFieldset, KbqFieldsetItem, KbqLegend } from './fieldset';\nimport { KbqFormField, KbqTrim } from './form-field';\nimport { KbqHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordHint } from './password-hint';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqReactivePasswordHint } from './reactive-password-hint';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\nconst COMPONENTS = [\n KbqCleaner,\n KbqFormField,\n KbqPrefix,\n KbqSuffix,\n KbqPasswordToggle,\n KbqStepper,\n KbqLabel,\n KbqHint,\n KbqError,\n KbqReactivePasswordHint,\n KbqLegend,\n KbqFieldset,\n KbqFieldsetItem,\n\n // Legacy components\n KbqPasswordHint,\n KbqTrim\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqFormFieldModule {}\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-form-field.mjs","sources":["../../../packages/components/form-field/cleaner.ts","../../../packages/components/form-field/hint.ts","../../../packages/components/form-field/hint.html","../../../packages/components/form-field/error.ts","../../../packages/components/form-field/fieldset.ts","../../../packages/components/form-field/form-field-control.ts","../../../packages/components/form-field/label.ts","../../../packages/components/form-field/password-toggle.ts","../../../packages/components/form-field/prefix.ts","../../../packages/components/form-field/reactive-password-hint.ts","../../../packages/components/form-field/stepper.ts","../../../packages/components/form-field/suffix.ts","../../../packages/components/form-field/form-field.ts","../../../packages/components/form-field/form-field.html","../../../packages/components/form-field/form-field.module.ts","../../../packages/components/form-field/koobiq-components-form-field.ts"],"sourcesContent":["import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n InjectionToken,\n input,\n Provider,\n untracked,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ESCAPE,\n KBQ_A11Y_LOCALE_CONFIGURATION,\n KbqComponentColors,\n KbqLocaleOverridesDirective\n} from '@koobiq/components/core';\nimport { KbqIconButton } from '@koobiq/components/icon';\nimport { fromEvent } from 'rxjs';\nimport { KbqFormFieldControl } from './form-field-control';\n\n/** @docs-private */\nexport interface KbqCleanerContextBase {\n readonly control: KbqFormFieldControl<unknown>;\n /** Overrides the default `cleanerControl.ngControl?.reset()` behavior when the cleaner is activated. */\n clear?(): void;\n\n /**\n * Whether the control still holds something the cleaner would remove — a host that keeps part of\n * its value back reports `false` once only that part is left. Defaults to `true`.\n */\n canClear?(): boolean;\n}\n\n/**\n * `keydownTarget` is where `Escape` presses are listened for, so it is required by `clearByEscape` and\n * refused without it — a host that asks for `Escape` clearing but names no target would silently never clear.\n *\n * @docs-private\n */\nexport type KbqCleanerContext = KbqCleanerContextBase &\n (\n | { readonly clearByEscape: true; readonly keydownTarget: HTMLElement }\n | { readonly clearByEscape: false; readonly keydownTarget?: never }\n );\n\n/** @docs-private */\nexport const KBQ_CLEANER_CONTEXT = new InjectionToken<KbqCleanerContext | null>('KbqCleanerContext');\n\n/**\n * Utility provider for `KBQ_CLEANER_CONTEXT`, built from a factory that resolves the current host's `KbqCleanerContext`.\n *\n * @docs-private\n */\nexport const kbqCleanerFactoryProvider = (factory: () => KbqCleanerContext): Provider => ({\n provide: KBQ_CLEANER_CONTEXT,\n useFactory: factory\n});\n\n/** @internal */\nexport function getKbqFormFieldYouCanNotUseCleanerInNumberInputError(): Error {\n return Error(`You can't use kbq-cleaner with input that have type=\"number\"`);\n}\n\n/**\n * Element to be placed in end of the form field.\n * Resets form control by click.\n */\n@Component({\n selector: 'kbq-cleaner',\n template: `\n <ng-content />\n `,\n styleUrls: ['cleaner.scss', '../icon/icon-button.scss', '../icon/icon-button-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-cleaner',\n // The cleaner is an icon-only control: without a role and an accessible name it is announced as an\n // unlabeled focusable graphic.\n role: 'button',\n '[attr.aria-label]': 'accessibleName()',\n '(click)': 'clear($event)',\n '(keydown.enter)': 'clear($event)',\n '(keydown.space)': 'clear($event)'\n },\n hostDirectives: [\n { directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }\n ],\n exportAs: 'kbqCleaner'\n})\nexport class KbqCleaner extends KbqIconButton implements AfterContentInit {\n private readonly context = inject(KBQ_CLEANER_CONTEXT, { optional: true });\n\n /**\n * Whether the cleaner can be displayed for the current control state.\n *\n * @docs-private\n */\n get canShow(): boolean {\n const context = this.context;\n\n if (!context?.control) return true;\n\n const { control } = context;\n\n return !control.disabled() && !control.empty() && (context.canClear?.() ?? true);\n }\n\n private readonly a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read(\n 'a11y',\n KBQ_A11Y_LOCALE_CONFIGURATION\n );\n\n /** Accessible name of the cleaner. Defaults to the localized \"Clear\". */\n readonly ariaLabel = input<string | undefined>(undefined, { alias: 'aria-label' });\n\n /** @docs-private */\n protected readonly accessibleName = computed(() => this.ariaLabel() || this.a11yLocaleConfiguration().clear);\n\n constructor() {\n super();\n\n this.setIconName('kbq-circle-xmark_16');\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n this.autoColor = true;\n }\n\n ngAfterContentInit(): void {\n super.ngAfterContentInit();\n\n if (this.context?.control?.controlType === 'input-number') {\n throw getKbqFormFieldYouCanNotUseCleanerInNumberInputError();\n }\n\n const keydownTarget = this.context?.keydownTarget;\n\n if (keydownTarget) {\n fromEvent<KeyboardEvent>(keydownTarget, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.onKeyDown(event));\n }\n }\n\n /**\n * Clears the owning control in response to pointer or keyboard activation.\n *\n * @docs-private\n */\n clear(event: Event): void {\n // Untracked: called from a consumer's `effect()`, the state of the control read on the way — `disabled`,\n // `empty` — would make the effect run again as soon as something is typed, and clear it.\n untracked(() => {\n if (!this.context || !this.canShow) return;\n\n event.stopPropagation();\n event.preventDefault();\n\n if (this.context.clear) {\n this.context.clear();\n } else {\n this.context.control.ngControl?.reset();\n }\n\n this.context.control.focus();\n });\n }\n\n /**\n * Clears the focused control when Escape handling is enabled.\n */\n private onKeyDown(event: KeyboardEvent): void {\n if (event.keyCode === ESCAPE && this.context?.clearByEscape && this.context.control.focused() && this.canShow) {\n this.clear(event);\n }\n }\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { KbqColorDirective } from '@koobiq/components/core';\n\nlet nextUniqueId = 0;\n\n/** Hint text to be shown below the form field control. */\n@Component({\n selector: 'kbq-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss', './hint-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-hint',\n '[attr.id]': 'id()',\n '[class.kbq-hint_fill-text-off]': 'fillTextOff()',\n '[class.kbq-hint_compact]': 'compact()'\n },\n exportAs: 'kbqHint'\n})\nexport class KbqHint extends KbqColorDirective {\n /** Unique ID for the hint. Referenced by the `aria-describedby` of the form field control. */\n readonly id = input<string>(`kbq-hint-${nextUniqueId++}`);\n\n /** Disables `color` for the hint text. */\n readonly fillTextOff = input(false, { transform: booleanAttribute });\n\n /** Makes the hint size smaller. */\n readonly compact = input(false, { transform: booleanAttribute });\n}\n","<ng-content select=\"[kbq-icon]\" />\n\n<span class=\"kbq-hint__text\">\n <ng-content />\n</span>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { KbqHint } from './hint';\n\n/** Error text to be shown below the form field control. */\n@Component({\n selector: 'kbq-error',\n templateUrl: './hint.html',\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-error',\n // The form field mounts the error only while the control is invalid, so the element itself has to be\n // the live region: screen readers announce a node inserted with `role=\"alert\"`, while an `aria-live`\n // wrapper has to be in the accessibility tree before its content changes.\n role: 'alert',\n 'aria-atomic': 'true'\n },\n exportAs: 'kbqError'\n})\nexport class KbqError extends KbqHint {\n constructor() {\n super();\n\n this.setDefaultColor(KbqComponentColors.Error);\n }\n}\n","import { ChangeDetectionStrategy, Component, contentChild, Directive, input, ViewEncapsulation } from '@angular/core';\n\nlet nextLegendUniqueId = 0;\n\n/** Directive for marking an element as legend of `KbqFieldset` */\n@Directive({\n selector: '[kbqLegend]',\n host: {\n class: 'kbq-legend',\n '[attr.id]': 'id()'\n },\n exportAs: 'kbqLegend'\n})\nexport class KbqLegend {\n /** Unique ID for the legend, referenced by the `aria-labelledby` of the fieldset. */\n readonly id = input<string>(`kbq-legend-${nextLegendUniqueId++}`);\n}\n\n/** Directive for marking elements as items inside `KbqFieldset` */\n@Directive({\n selector: '[kbqFieldsetItem]',\n host: {\n class: 'kbq-fieldset-item'\n },\n exportAs: 'kbqFieldsetItem'\n})\nexport class KbqFieldsetItem {}\n\n/**\n * A group of form-fields and related controls.\n * Container component emulating the native `fieldset` element.\n */\n@Component({\n selector: 'kbq-fieldset',\n template: `\n <ng-content select=\"[kbqLegend]\" />\n\n <div class=\"kbq-fieldset__container\">\n <ng-content />\n </div>\n\n <!--\n Mirrors the hint area of KbqFormField. Unlike the form field, the fieldset owns no control, so it has\n no error state to guard the projected kbq-error with — showing it is up to the consumer.\n -->\n <div class=\"kbq-form-field__hint\">\n <ng-content select=\"kbq-error\" />\n\n <ng-content select=\"kbq-hint, kbq-reactive-password-hint\" />\n </div>\n `,\n styleUrls: ['./fieldset.scss', './fieldset-tokens.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-fieldset',\n role: 'group',\n '[attr.aria-labelledby]': 'legend()?.id()'\n },\n exportAs: 'kbqFieldset'\n})\nexport class KbqFieldset {\n /**\n * Labels the group with the projected legend. Referencing the element keeps the accessible name in sync\n * with the visible text, including after a locale change.\n */\n protected readonly legend = contentChild(KbqLegend);\n}\n","import { Signal } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n/**\n * An interface which allows a control to work inside of a `KbqFormField`.\n *\n * Every state member is a signal: the form field derives its own state from them and runs `OnPush`, so a\n * change of the control reaches it without any notification of the control's own.\n */\nexport abstract class KbqFormFieldControl<T> {\n /** The value of the control. */\n readonly value: Signal<T | null>;\n\n /** The element ID for this control. */\n readonly id: Signal<string>;\n\n /** The placeholder for this control. */\n readonly placeholder: Signal<string | null | undefined>;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: Signal<boolean>;\n\n /** Whether the control is empty. */\n readonly empty: Signal<boolean>;\n\n /** Whether the control is required. */\n readonly required: Signal<boolean>;\n\n /** Whether the control is disabled. */\n readonly disabled: Signal<boolean>;\n\n /** Whether the control is in an error state. */\n readonly errorState: Signal<boolean>;\n\n /**\n * Whether the control's value was filled in by the browser.\n *\n * Implement it only where autofill is reachable: on a control that is itself a text input or a\n * textarea, or — like `KbqTagList` — on a wrapper that forwards the state of the input it hosts.\n * Leave it out on controls the browser never fills.\n */\n readonly autofilled?: Signal<boolean>;\n\n /**\n * An optional name for the control type that can be used to distinguish `kbq-form-field` elements\n * based on their control type. The form field will add a class,\n * `kbq-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the control is a native labelable element, so that the `<label for>` a wrapping\n * `kbq-form-field` renders associates with it.\n *\n * Defaults to `true`. A control rendered as a custom element (`kbq-select`, for one) sets it to\n * `false`: a `<label>` with neither a `for` matching a labelable element nor a nested one is\n * invalid, so the form field renders the caption as a `<span>` instead and the control is named\n * through `aria-labelledby`.\n */\n readonly isNativeLabelSupported?: boolean;\n\n /**\n * Sets the ids of the elements (hints, errors) that describe the control.\n *\n * Implement it only when `aria-describedby` has to be placed on an element other than the one\n * the control is declared on: `KbqFormField` writes the attribute on the control's host element\n * by default.\n */\n setDescribedByIds?: (ids: string[]) => void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n /** Focuses the control. */\n abstract focus(options?: FocusOptions): void;\n\n /** Opens control's overlay. */\n open?: () => void;\n}\n\n/** Ids written by `kbqSetDescribedByIds` for a given element, so consumer-provided ids survive updates. */\nconst ownDescribedByIds = new WeakMap<HTMLElement, string[]>();\n\n/**\n * Writes `aria-describedby` on the control's element, preserving the ids the consumer set themselves.\n *\n * @internal\n */\nexport function kbqSetDescribedByIds(element: HTMLElement, ids: string[]): void {\n const previouslyOwned = ownDescribedByIds.get(element) || [];\n const current = (element.getAttribute('aria-describedby') || '').split(/\\s+/).filter(Boolean);\n const next = [...current.filter((id) => !previouslyOwned.includes(id)), ...ids];\n\n ownDescribedByIds.set(element, ids);\n\n if (next.length) {\n element.setAttribute('aria-describedby', next.join(' '));\n } else {\n element.removeAttribute('aria-describedby');\n }\n}\n","import { Directive } from '@angular/core';\n\n/** Label for the form field. */\n@Directive({\n selector: 'kbq-label',\n host: {\n class: 'kbq-label'\n },\n exportAs: 'kbqLabel'\n})\nexport class KbqLabel {}\n","import { FocusMonitor } from '@angular/cdk/a11y';\n\nimport { F8 } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n InputSignal,\n numberAttribute,\n OnDestroy,\n Signal,\n TemplateRef,\n untracked,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KBQ_A11Y_LOCALE_CONFIGURATION,\n kbqInjectNativeElement,\n KbqLocaleOverridesDirective,\n PopUpTriggers\n} from '@koobiq/components/core';\nimport { KbqIconButton, KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule, KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { fromEvent } from 'rxjs';\nimport { KBQ_FORM_FIELD } from './form-field';\nimport { KbqFormFieldControl } from './form-field-control';\n\n/**\n * Narrow structural contract for `kbqInputPassword`, duck-typed here to avoid a circular\n * dependency between `@koobiq/components/form-field` and `@koobiq/components/input`.\n */\ntype KbqPasswordToggleControl = KbqFormFieldControl<unknown> & {\n readonly controlType: 'input-password';\n readonly elementType: Signal<'text' | 'password'>;\n toggleType: () => void;\n};\n\n/**\n * Checks whether the given control structurally matches `KbqPasswordToggleControl`.\n */\nconst isPasswordToggleControl = (control: unknown): control is KbqPasswordToggleControl => {\n return (\n !!control &&\n typeof control === 'object' &&\n 'controlType' in control &&\n control.controlType === 'input-password' &&\n 'elementType' in control &&\n 'toggleType' in control &&\n typeof control.toggleType === 'function'\n );\n};\n\nconst getKbqPasswordToggleMissingControlError = (): Error => {\n return Error('You should use kbq-password-toggle with kbqInputPassword');\n};\n\n/** Component which changes password visibility. */\n@Component({\n selector: `kbq-password-toggle`,\n imports: [KbqIconModule, KbqToolTipModule],\n template: `\n <ng-content>\n <i\n role=\"button\"\n [attr.aria-label]=\"accessibleName\"\n [attr.aria-pressed]=\"!hidden\"\n [color]=\"hasError() ? 'error' : 'contrast-fade'\"\n [kbq-icon-button]=\"iconClass\"\n [tabindex]=\"tabindex()\"\n ></i>\n </ng-content>\n `,\n styleUrls: ['password-toggle.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-password-toggle',\n // `visibility` is what takes the disabled toggle out of the tab order and the accessibility tree;\n // `cdk-visually-hidden` and `aria-hidden` are kept for backward compatibility with consumer styles.\n // The three bindings read one signal of the toggle's own, back to back: the host bindings of every toggle in a\n // view run in that view's reactive consumer, where a signal read again after others costs a scan of all it has\n // read so far, and the form field and the input read the control's signals there too.\n '[style.visibility]': 'visibility',\n '[class.cdk-visually-hidden]': 'visibility === \"hidden\"',\n '[attr.aria-hidden]': 'visibility === \"hidden\"',\n '(click)': 'toggle($event)',\n '(keydown.ENTER)': 'toggle($event)',\n '(keydown.SPACE)': 'toggle($event)'\n },\n hostDirectives: [\n { directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }\n ],\n exportAs: 'kbqPasswordToggle'\n})\nexport class KbqPasswordToggle extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {\n protected readonly nativeElement = kbqInjectNativeElement();\n protected readonly focusMonitor = inject(FocusMonitor);\n\n private readonly a11yLocaleConfiguration = inject(KbqLocaleOverridesDirective, { self: true }).read(\n 'a11y',\n KBQ_A11Y_LOCALE_CONFIGURATION\n );\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n\n readonly tabindex = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * @docs-private\n */\n readonly icon = viewChild.required(KbqIconButton);\n\n /** @docs-private */\n override readonly contentInput: InputSignal<KbqTooltipTrigger['content'] | undefined> = input<\n KbqTooltipTrigger['content'] | undefined\n >(undefined, {\n alias: 'kbqTooltipNotHidden'\n });\n\n /**\n * Tooltip shown while the password is visible. Reading it resolves to the tooltip matching the current\n * visibility, so that the base trigger renders the right one.\n */\n get content(): string | TemplateRef<any> {\n return this.control.elementType() === 'password' ? this.kbqTooltipHidden() : this._content;\n }\n\n set content(content: string | TemplateRef<any>) {\n this._content = content;\n\n untracked(() => this.updateData());\n }\n\n /** Tooltip shown while the password is hidden. */\n readonly kbqTooltipHidden = input<string | TemplateRef<any>>(undefined!);\n\n protected readonly hasError = computed(() => !!this.formField?.control().errorState());\n\n /** Form field password control. */\n private get control(): KbqPasswordToggleControl {\n const control = this.formField?.control();\n\n if (!isPasswordToggleControl(control)) {\n throw getKbqPasswordToggleMissingControlError();\n }\n\n return control;\n }\n\n /**\n * @docs-private\n */\n get hidden(): boolean {\n return this.control.elementType() === 'password';\n }\n\n /**\n * @docs-private\n */\n get iconClass(): string {\n return this.hidden ? 'kbq-eye_16' : 'kbq-eye-slash_16';\n }\n\n /**\n * @docs-private\n */\n get visibility(): 'hidden' | 'visible' {\n return this.visibilityState();\n }\n\n private readonly visibilityState = computed<'hidden' | 'visible'>(() =>\n this.control.disabled() ? 'hidden' : 'visible'\n );\n\n /**\n * Accessible name of the icon-only toggle, describing the action it performs.\n *\n * @docs-private\n */\n protected get accessibleName(): string {\n const { showPassword, hidePassword } = this.a11yLocaleConfiguration();\n\n return this.hidden ? showPassword : hidePassword;\n }\n\n constructor() {\n super();\n\n this.trigger = `${PopUpTriggers.Hover}`;\n\n const keydownTarget = this.formField?.elementRef.nativeElement;\n\n if (keydownTarget) {\n fromEvent<KeyboardEvent>(keydownTarget, 'keydown')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => this.onFormFieldKeyDown(event));\n }\n }\n\n ngAfterViewInit(): void {\n this.focusMonitor.monitor(this.nativeElement, true);\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.nativeElement);\n }\n\n /**\n * @docs-private\n */\n toggle(event: Event): void {\n // Untracked, as the `content` setter: called from a consumer's `effect()`, the state read on the way — the\n // control's `disabled` and type, the tooltip's inputs — would make the effect run again on every toggle.\n untracked(() => {\n if (this.control.disabled()) return;\n\n this.hide();\n\n this.control.toggleType();\n\n this.updateData();\n\n event.preventDefault();\n });\n }\n\n /**\n * Toggles password visibility for the Alt+F8 shortcut.\n */\n private onFormFieldKeyDown(event: KeyboardEvent): void {\n if (event.altKey && event.keyCode === F8) {\n this.toggle(event);\n }\n }\n}\n","import { Directive } from '@angular/core';\n\n/** Element to be placed in front of the form field. */\n@Directive({\n selector: '[kbqPrefix]',\n host: {\n class: 'kbq-prefix'\n },\n exportAs: 'kbqPrefix'\n})\nexport class KbqPrefix {}\n","import {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { PristineChangeEvent, TouchedChangeEvent } from '@angular/forms';\nimport { KbqComponentColors } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { filter } from 'rxjs/operators';\nimport { KBQ_FORM_FIELD } from './form-field';\nimport { KbqHint } from './hint';\n\n/** Password hint to be shown below the password form field control. */\n@Component({\n selector: 'kbq-reactive-password-hint',\n imports: [KbqIconModule],\n template: `\n <i [kbq-icon]=\"icon()\" [color]=\"color()\"></i>\n\n <span class=\"kbq-hint__text\">\n <ng-content />\n </span>\n `,\n styleUrls: [\n './hint.scss',\n './hint-tokens.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-reactive-password-hint'\n },\n exportAs: 'kbqReactivePasswordHint'\n})\nexport class KbqReactivePasswordHint extends KbqHint {\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n\n /** Whether the form field control has an error. */\n readonly hasError = input(false, { transform: booleanAttribute });\n\n /** Disables `color` for the hint text. */\n override readonly fillTextOff = input(true, { transform: booleanAttribute });\n\n /**\n * The form field hint icon.\n *\n * @docs-private\n */\n protected readonly icon = computed(() => (this.hasError() ? 'kbq-xmark-s_16' : 'kbq-check-s_16'));\n\n constructor() {\n super();\n\n this.setDefaultColor(KbqComponentColors.ContrastFade);\n\n // `hasError` also drives `icon`, so the color has to follow it in the same pass, otherwise the icon and\n // its color disagree for a tick.\n effect(() => {\n this.hasError();\n\n this.updateColor();\n });\n\n // `touched` and `pristine` are not signals and can change on their own (`markAllAsTouched()` on submit,\n // `reset()` to the same value), so the color follows their events.\n afterNextRender(() => {\n this.formField\n ?.control()\n ?.ngControl?.control?.events.pipe(\n filter((event) => event instanceof TouchedChangeEvent || event instanceof PristineChangeEvent),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.updateColor());\n });\n }\n\n private updateColor(): void {\n this.color.set(this.makeColor());\n }\n\n private makeColor(): KbqComponentColors {\n const control = this.formField?.control();\n\n if (control?.ngControl?.untouched && control.ngControl.pristine) {\n return KbqComponentColors.ContrastFade;\n }\n\n return this.hasError() ? KbqComponentColors.Error : KbqComponentColors.Success;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n inject,\n output,\n OutputEmitterRef,\n Signal,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { concatMap, fromEvent, interval, Subject, timer } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\nimport { KBQ_FORM_FIELD } from './form-field';\n\n/**\n * Narrow structural contract for `KbqNumberInput`, duck-typed here to avoid a circular dependency between\n * `@koobiq/components/form-field` and `@koobiq/components/input`. It is not the form field control: that is\n * `KbqInput` on the same element.\n */\ntype KbqStepperControl = {\n readonly controlType: 'input-number';\n /** Read by the template, so it has to be backed by a signal for the stepper to follow it. */\n readonly disabled: boolean;\n /** A signal since the input review: `step` is an `input()` on `KbqNumberInput`. */\n readonly step: Signal<number>;\n stepUp: (step: number) => void;\n /** Decreases the value by `step`. */\n stepDown: (step: number) => void;\n};\n\n/**\n * Checks whether the given value structurally matches `KbqStepperControl`.\n */\nconst isStepperControl = (control: unknown): control is KbqStepperControl => {\n return (\n !!control &&\n typeof control === 'object' &&\n 'controlType' in control &&\n control.controlType === 'input-number' &&\n 'stepUp' in control &&\n typeof control.stepUp === 'function' &&\n 'stepDown' in control &&\n typeof control.stepDown === 'function'\n );\n};\n\nconst getKbqStepperToggleMissingControlError = (): Error => {\n return Error('You should use kbq-stepper with kbqNumberInput');\n};\n\n/**\n * Timeout duration when clicking the up/down arrow\n *\n * @internal\n */\nexport const KBQ_STEPPER_INITIAL_TIMEOUT = 300;\n\n/**\n * Interval delay when clicking the up/down arrow\n *\n * @internal\n */\nexport const KBQ_STEPPER_INTERVAL_DELAY = 75;\n\n/** Component which allow to increment or decrement number value. */\n@Component({\n selector: 'kbq-stepper',\n imports: [KbqIconModule],\n template: `\n <i\n aria-hidden=\"true\"\n class=\"kbq-stepper-step-up\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-up-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control().disabled\"\n (mousedown)=\"onStepUp($event)\"\n ></i>\n <i\n aria-hidden=\"true\"\n class=\"kbq-stepper-step-down\"\n color=\"contrast-fade\"\n kbq-icon-button=\"kbq-chevron-down-s_16\"\n [tabindex]=\"-1\"\n [autoColor]=\"true\"\n [disabled]=\"control().disabled\"\n (mousedown)=\"onStepDown($event)\"\n ></i>\n `,\n styleUrls: ['stepper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-stepper'\n },\n exportAs: 'kbqStepper'\n})\nexport class KbqStepper {\n private readonly formField = inject(KBQ_FORM_FIELD, { optional: true });\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n\n /** Emitted when the stepper is incremented. */\n readonly stepUp = output<void>();\n\n /** Emitted when the stepper is decremented. */\n readonly stepDown = output<void>();\n\n /** @docs-private */\n protected readonly mouseUp = new Subject<void>();\n\n /**\n * Timing observable simulating long press in native input-number.\n * - Value increases/decreases by step immediately.\n * - Brief pause (`300ms`, {@link KBQ_STEPPER_INITIAL_TIMEOUT})\n * - Numbers start running upward/downward with selected speed\n * (controlled by interval period, {@link KBQ_STEPPER_INTERVAL_DELAY})\n */\n private readonly longPress = timer(KBQ_STEPPER_INITIAL_TIMEOUT).pipe(\n concatMap(() => interval(KBQ_STEPPER_INTERVAL_DELAY)),\n takeUntilDestroyed(),\n takeUntil(this.mouseUp)\n );\n\n /**\n * Form field number control. Resolved once per control change instead of on every template read.\n *\n * @docs-private\n */\n protected readonly control = computed<KbqStepperControl>(() => {\n const control = this.formField?.control();\n // `formFieldControl` here is `KbqInput` (it owns the `KbqFormFieldControl` provider on\n // `<input kbqNumberInput>`), not the number-input itself: `stepUp`/`stepDown`/`step`\n // live on the sibling `KbqNumberInput` directive, reachable only via `KbqInput.numberInput`.\n const inputNumberControl =\n control?.controlType === 'input-number' && 'numberInput' in control ? control.numberInput : null;\n\n if (!isStepperControl(inputNumberControl)) {\n throw getKbqStepperToggleMissingControlError();\n }\n\n return inputNumberControl;\n });\n\n constructor() {\n this.destroyRef.onDestroy(() => this.mouseUp.complete());\n }\n\n /** @docs-private */\n onStepUp(event: MouseEvent): void {\n this.handleStep(event, (control) => control.stepUp(control.step()), this.stepUp);\n }\n\n /** @docs-private */\n onStepDown(event: MouseEvent): void {\n this.handleStep(event, (control) => control.stepDown(control.step()), this.stepDown);\n }\n\n private handleStep(\n event: MouseEvent,\n step: (control: KbqStepperControl) => void,\n emitter: OutputEmitterRef<void>\n ): void {\n const control = this.control();\n\n if (control.disabled) return;\n\n const performStep = () => {\n step(control);\n emitter.emit();\n };\n\n performStep();\n // handle case when cursor is out of viewport.\n fromEvent(this.document, 'mouseup')\n .pipe(take(1), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.mouseUp.next());\n this.longPress.subscribe(performStep);\n event.preventDefault();\n }\n}\n","import { Directive } from '@angular/core';\n\n/** Element to be placed at the end of the form field. */\n@Directive({\n selector: '[kbqSuffix]',\n host: {\n class: 'kbq-suffix'\n },\n exportAs: 'kbqSuffix'\n})\nexport class KbqSuffix {}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentChecked,\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n contentChild,\n contentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n HostAttributeToken,\n inject,\n InjectionToken,\n input,\n model,\n OnDestroy,\n Provider,\n Signal,\n untracked,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport { KBQ_CONNECTED_OVERLAY_ORIGIN, KBQ_FORM_FIELD_REF, KbqColorDirective } from '@koobiq/components/core';\nimport { kbqIconErrorStateContextFactoryProvider } from '@koobiq/components/icon';\nimport { KbqCleaner, kbqCleanerFactoryProvider } from './cleaner';\nimport { KbqError } from './error';\nimport { KbqFormFieldControl, kbqSetDescribedByIds } from './form-field-control';\nimport { KbqHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqReactivePasswordHint } from './reactive-password-hint';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\n/** @internal */\nexport function getKbqFormFieldMissingControlError(): Error {\n return Error('kbq-form-field must contain a KbqFormFieldControl');\n}\n\n/**\n * Injection token used to access the owning `KbqFormField`.\n *\n * @docs-private\n */\nexport const KBQ_FORM_FIELD = new InjectionToken<KbqFormField>('KbqFormField');\n\n/**\n * Default options for the kbq-form-field that can be configured using the `KBQ_FORM_FIELD_DEFAULT_OPTIONS`\n * injection token.\n */\nexport type KbqFormFieldDefaultOptions = Partial<{\n /** Disables form field borders and shadows. */\n noBorders: boolean;\n /** Use when KbqFormField is in an overlay container. */\n inOverlay: boolean;\n /** Whether the form field is displayed horizontally. */\n horizontal: boolean;\n /** Additional CSS classes applied to the label element. */\n labelClass: string | string[] | Set<string>;\n /** Additional CSS classes applied to the content wrapper element. */\n contentClass: string | string[] | Set<string>;\n}>;\n\n/**\n * Injection token that can be used to configure the default options for all kbq-form-field's.\n *\n * @docs-private\n */\nexport const KBQ_FORM_FIELD_DEFAULT_OPTIONS = new InjectionToken<KbqFormFieldDefaultOptions>(\n 'KBQ_FORM_FIELD_DEFAULT_OPTIONS'\n);\n\n/** Utility provider for `KBQ_FORM_FIELD_DEFAULT_OPTIONS`. */\nexport const kbqFormFieldDefaultOptionsProvider = (options: KbqFormFieldDefaultOptions): Provider => ({\n provide: KBQ_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: options\n});\n\n/** Container for form controls that applies styling and behavior. */\n@Component({\n selector: 'kbq-form-field',\n imports: [NgTemplateOutlet],\n templateUrl: 'form-field.html',\n styleUrls: [\n 'form-field.scss',\n 'form-field-tokens.scss',\n // The controls below are directives, and directives can't declare styles. The form field is the only\n // component they are always rendered inside of, so it carries their styles on their behalf.\n // Keep every entry paired with the control that owns it; removing one silently unstyles that control.\n // KbqInput\n '../input/input.scss',\n '../input/input-tokens.scss',\n // KbqTimepicker\n '../timepicker/timepicker.scss',\n // KbqDatepickerInput\n '../datepicker/datepicker-input.scss',\n // KbqTextarea\n '../textarea/textarea.scss',\n // KbqTagInput\n '../tags/tag-input-tokens.scss'\n ],\n providers: [\n // Kept for consumers that cannot depend on the form-field entry point.\n { provide: KBQ_FORM_FIELD_REF, useExisting: KbqFormField },\n { provide: KBQ_FORM_FIELD, useExisting: KbqFormField },\n kbqCleanerFactoryProvider(() => {\n const formField = inject(KBQ_FORM_FIELD);\n\n return {\n get control() {\n return formField.control();\n },\n get keydownTarget() {\n return formField.elementRef.nativeElement;\n },\n clearByEscape: true\n };\n }),\n kbqIconErrorStateContextFactoryProvider(() => {\n const formField = inject(KBQ_FORM_FIELD);\n\n return {\n get errorState() {\n return formField.control().errorState;\n }\n };\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n // Every component of this package renders unencapsulated, on purpose: the `kbq-form-field__*` and\n // `kbq-hint*` classes are a public contract that themes, the controls projected into the field and\n // consumer stylesheets all target. Renaming or nesting them is a breaking change.\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-form-field',\n\n '[class.kbq-form-field_invalid]': 'invalid',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-form-field_autofilled]': 'autofilled',\n '[class.kbq-form-field_no-borders]': 'noBorders()',\n '[class.kbq-form-field_in-overlay]': 'inOverlay()',\n '[class.kbq-form-field_horizontal]': 'horizontal()',\n\n '[class.ng-untouched]': 'shouldForward(\"untouched\")',\n '[class.ng-touched]': 'shouldForward(\"touched\")',\n '[class.ng-pristine]': 'shouldForward(\"pristine\")',\n '[class.ng-dirty]': 'shouldForward(\"dirty\")',\n '[class.ng-valid]': 'shouldForward(\"valid\")',\n '[class.ng-invalid]': 'shouldForward(\"invalid\")',\n '[class.ng-pending]': 'shouldForward(\"pending\")'\n },\n exportAs: 'kbqFormField'\n})\nexport class KbqFormField\n extends KbqColorDirective\n implements AfterContentInit, AfterViewInit, OnDestroy, AfterContentChecked\n{\n private readonly destroyRef = inject(DestroyRef);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly focusMonitor = inject(FocusMonitor);\n private readonly defaultOptions = inject(KBQ_FORM_FIELD_DEFAULT_OPTIONS, { optional: true });\n private readonly customOverlayOrigin = inject(KBQ_CONNECTED_OVERLAY_ORIGIN, { optional: true });\n\n /**\n * @docs-private\n */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** Disables form field borders and shadows. */\n readonly noBorders = input(this.defaultOptions?.noBorders, { transform: booleanAttribute });\n\n /** Use when KbqFormField is in an overlay container. */\n readonly inOverlay = model(this.defaultOptions?.inOverlay);\n\n /** Whether the form field is displayed horizontally. */\n readonly horizontal = input(this.defaultOptions?.horizontal, { transform: booleanAttribute });\n\n /** Additional CSS classes applied to the label element. */\n readonly labelClass = input(this.defaultOptions?.labelClass);\n\n /** Additional CSS classes applied to the content wrapper element. */\n readonly contentClass = input(this.defaultOptions?.contentClass);\n\n /**\n * The form field control.\n *\n * @docs-private\n */\n readonly control = contentChild.required(KbqFormFieldControl);\n\n /**\n * @docs-private\n */\n readonly stepper = contentChild(KbqStepper);\n\n /**\n * @docs-private\n */\n readonly cleaner = contentChild(KbqCleaner, { descendants: false });\n\n /**\n * @docs-private\n */\n readonly passwordToggle = contentChild(KbqPasswordToggle);\n\n /**\n * @docs-private\n */\n readonly hint = contentChildren(KbqHint);\n\n /**\n * @docs-private\n */\n readonly suffix = contentChildren(KbqSuffix);\n\n /**\n * @docs-private\n */\n readonly prefix = contentChildren(KbqPrefix);\n\n /**\n * @docs-private\n */\n readonly connectionContainerRef = viewChild.required<ElementRef>('connectionContainer');\n\n /** Host element of the control, used as the `aria-describedby` target. */\n private readonly controlElementRef: Signal<ElementRef<HTMLElement>> = contentChild.required(KbqFormFieldControl, {\n read: ElementRef\n });\n\n private readonly reactivePasswordHint = contentChildren(KbqReactivePasswordHint);\n private readonly error = contentChildren(KbqError);\n private readonly label = contentChild(KbqLabel);\n\n // One signal per host value. The host bindings of every form field in a view run in that view's reactive\n // consumer, where a signal read again by another binding costs a scan of everything the view has read.\n private readonly invalidState = computed(() => !!this.control()?.errorState());\n private readonly disabledState = computed(() => !!this.control()?.disabled());\n private readonly autofilledState = computed(() => !!this.control()?.autofilled?.());\n\n /** Whether the form field is invalid. */\n get invalid(): boolean {\n return this.invalidState();\n }\n\n /**\n * Whether the form field control has an reactive password hint.\n *\n * @docs-private\n */\n protected readonly hasReactivePasswordHint = computed(() => this.reactivePasswordHint().length > 0);\n\n /**\n * Whether the form-field contains kbq-error.\n *\n * @docs-private\n */\n protected readonly hasError = computed(() => this.error().length > 0);\n\n /**\n * Whether the form-field contains kbq-label.\n *\n * @docs-private\n */\n protected readonly hasLabel = computed(() => !!this.label());\n\n /**\n * Id of the rendered label, or `null` when the form field has no label.\n *\n * `for` only associates a label with a native form control, so a control that is a custom element\n * (`kbq-select`, for one) has to point back at the label through `aria-labelledby` instead.\n */\n readonly labelId = computed(() => (this.hasLabel() ? `${this.control().id()}-label` : null));\n\n /**\n * Whether the control is a native labelable element, so that a `<label>` can associate with it.\n *\n * A custom control (`kbq-select`, for one) reports `isNativeLabelSupported: false`; the caption is then rendered\n * as a `<span>` instead of a `<label>`, because a label that neither has a `for` matching a labelable\n * element nor wraps one is invalid, and the control is named through `aria-labelledby` instead.\n */\n readonly isNativeLabelSupported = computed(() => this.control().isNativeLabelSupported !== false);\n\n /**\n * Whether the form-field contains kbq-hint.\n *\n * @docs-private\n */\n readonly hasHint = computed(() => this.hint().length > 0);\n\n /**\n * Whether the form-field contains kbqSuffix.\n *\n * @docs-private\n */\n readonly hasSuffix = computed(() => this.suffix().length > 0);\n\n /**\n * Whether the form-field contains kbqPrefix.\n *\n * @docs-private\n */\n readonly hasPrefix = computed(() => this.prefix().length > 0);\n\n /**\n * Whether the form-field contains kbq-cleaner.\n *\n * @docs-private\n */\n readonly hasCleaner = computed(() => !!this.cleaner());\n\n /**\n * Whether the form-field contains kbq-stepper.\n *\n * @docs-private\n */\n readonly hasStepper = computed(() => !!this.stepper());\n\n /**\n * Whether the form-field contains kbq-password-toggle.\n *\n * @docs-private\n */\n readonly hasPasswordToggle = computed(() => !!this.passwordToggle());\n\n /**\n * Current focus origin state.\n *\n * @docs-private\n */\n get focusOrigin(): FocusOrigin {\n return this._focusOrigin;\n }\n\n private _focusOrigin: FocusOrigin;\n\n /**\n * @docs-private\n */\n get hasFocus(): boolean {\n return !!this.control()?.focused();\n }\n\n /**\n * Whether the cleaner can be displayed: it requires a projected `kbq-cleaner`, an enabled control\n * and a value that is not empty.\n *\n * @docs-private\n */\n get canShowCleaner(): boolean {\n return !!this.cleaner()?.canShow;\n }\n\n /** Whether the form field is disabled. */\n get disabled(): boolean {\n return this.disabledState();\n }\n\n /**\n * Whether the form field control's value was filled in by the browser. Controls that cannot be\n * autofilled do not implement `autofilled`, and report `false` here.\n *\n * Reflected as `kbq-form-field_autofilled` for application code to key on. The autofill styling\n * does not use it: CSS matches `:autofill` directly, in the same style pass the browser fills\n * the field, where this arrives a frame or two later. Keeping the paint on one source also means\n * a class left behind by a detached or re-attached control cannot tint a field the browser no\n * longer considers autofilled.\n */\n get autofilled(): boolean {\n return this.autofilledState();\n }\n\n /** Ids last written to the control's `aria-describedby`, to skip redundant DOM writes. */\n private appliedDescribedByIds: string = '';\n\n ngAfterContentInit(): void {\n this.validateControlChild();\n\n this.initializeControl();\n }\n\n ngAfterContentChecked(): void {\n this.validateControlChild();\n this.updateDescribedByIds();\n }\n\n ngAfterViewInit(): void {\n this.runFocusMonitor();\n }\n\n ngOnDestroy(): void {\n this.stopFocusMonitor();\n }\n\n /** Focuses the control. */\n focus(options?: FocusOptions): void {\n this.control().focus(options);\n }\n\n /**\n * @docs-private\n */\n clearValue(event: Event): void {\n this.cleaner()?.clear(event);\n }\n\n /**\n * Handles a click on the control's container.\n *\n * @docs-private\n */\n onContainerClick(event: MouseEvent): void {\n const control = this.control();\n\n if (control?.onContainerClick) {\n control.onContainerClick(event);\n }\n }\n\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return (\n this.customOverlayOrigin?.getConnectedOverlayOrigin() ?? this.connectionContainerRef() ?? this.elementRef\n );\n }\n\n /**\n * Determines whether a class from the NgControl should be forwarded to the host element.\n *\n * @docs-private\n */\n shouldForward(prop: keyof NgControl): boolean {\n // Untracked: the `ng-*` state is no signal, and the computeds above already refresh the host bindings when\n // the control is replaced.\n return !!untracked(this.control)?.ngControl?.[prop];\n }\n\n /**\n * Runs the focus monitor for the form field.\n *\n * @docs-private\n */\n runFocusMonitor = () => {\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((origin) => (this._focusOrigin = origin));\n };\n\n /**\n * Stops the focus monitor for the form field.\n *\n * @docs-private\n */\n stopFocusMonitor(): void {\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n /**\n * Throws an error if the form-field control is missing.\n *\n * @docs-private\n */\n protected validateControlChild() {\n let control: KbqFormFieldControl<unknown> | undefined;\n\n try {\n control = this.control();\n } catch {\n throw getKbqFormFieldMissingControlError();\n }\n\n if (!control) {\n throw getKbqFormFieldMissingControlError();\n }\n }\n\n /**\n * Links the hints and the error rendered by the form field to the control via `aria-describedby`,\n * so assistive technology announces them when the control gets focused.\n */\n private updateDescribedByIds(): void {\n const ids = [\n // The error is rendered only while the control is invalid, and `aria-describedby` must not\n // reference elements that are not in the DOM.\n ...(this.invalid ? this.error() : []),\n ...this.hint(),\n ...this.reactivePasswordHint()\n ].map((hint) => hint.id());\n const joinedIds = ids.join(' ');\n\n if (joinedIds === this.appliedDescribedByIds) {\n return;\n }\n\n this.appliedDescribedByIds = joinedIds;\n\n const control = this.control();\n\n if (control.setDescribedByIds) {\n control.setDescribedByIds(ids);\n } else {\n kbqSetDescribedByIds(this.controlElementRef().nativeElement, ids);\n }\n }\n\n /** Initializes the form field control. */\n private initializeControl(): void {\n const control = this.control();\n\n if (control.controlType) {\n this.elementRef.nativeElement.classList.add(`kbq-form-field-type-${control.controlType}`);\n }\n\n // The `ng-*` classes forwarded from the form control are not signals.\n control.ngControl?.valueChanges\n ?.pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n}\n\n/**\n * Trims the value of `kbqInput` and `kbqTextarea` before it reaches the model.\n *\n * The value displayed in the control is left untouched, so trimming never fights the user while they\n * are typing. Add the `no-trim` attribute to the control to keep the value as is. `kbqInputPassword`\n * is not matched by this directive, so passwords keep their leading and trailing whitespace.\n *\n * @docs-private\n */\n@Directive({\n selector: '[kbqInput], [kbqTextarea]',\n host: { class: 'kbq-trim' },\n exportAs: 'KbqTrim'\n})\nexport class KbqTrim {\n private readonly noTrim = coerceBooleanProperty(inject(new HostAttributeToken('no-trim'), { optional: true }));\n private readonly ngControl = inject(NgControl, { optional: true, self: true });\n\n constructor() {\n if (this.noTrim || !this.ngControl) {\n return;\n }\n\n // Wrapped through the declared accessors rather than through `NgControl.valueAccessor`, which\n // Angular 22 leaves null until the form directive's first `ngOnChanges` — after this\n // constructor. Resolved here rather than in a field initializer so that an element without a\n // form control neither patches nor eagerly constructs its accessors. An accessor the form\n // does not select is patched too, but Angular never registers on it. An accessor installed by\n // assigning `NgControl.valueAccessor` directly is not covered.\n const valueAccessors = inject(NG_VALUE_ACCESSOR, { optional: true, self: true });\n\n for (const valueAccessor of valueAccessors ?? []) {\n const original = valueAccessor.registerOnChange.bind(valueAccessor);\n\n valueAccessor.registerOnChange = (fn: (value: unknown) => void) =>\n original((value: unknown) => fn(this.trim(value)));\n }\n }\n\n /**\n * Trims the value when it is a string, other values are passed through as is.\n *\n * @docs-private\n */\n trim(value: unknown): unknown {\n if (this.noTrim) {\n return value;\n }\n\n return typeof value === 'string' ? value.trim() : value;\n }\n}\n","@if (hasLabel()) {\n @if (isNativeLabelSupported()) {\n <label class=\"kbq-form-field__label\" [attr.id]=\"labelId()\" [class]=\"labelClass()\" [attr.for]=\"control().id()\">\n <ng-container [ngTemplateOutlet]=\"labelContent\" />\n </label>\n } @else {\n <span class=\"kbq-form-field__label\" [attr.id]=\"labelId()\" [class]=\"labelClass()\">\n <ng-container [ngTemplateOutlet]=\"labelContent\" />\n </span>\n }\n}\n\n<ng-template #labelContent><ng-content select=\"kbq-label\" /></ng-template>\n\n<div class=\"kbq-form-field__content\" [class]=\"contentClass()\">\n <div #connectionContainer class=\"kbq-form-field__container\" (click)=\"onContainerClick($event)\">\n @if (hasPrefix()) {\n <div class=\"kbq-form-field__prefix\">\n <ng-content select=\"[kbqPrefix]\" />\n </div>\n }\n\n <div class=\"kbq-form-field__infix\">\n <ng-content />\n </div>\n\n @if (hasSuffix() || hasCleaner() || hasPasswordToggle() || hasStepper()) {\n <div class=\"kbq-form-field__suffix\">\n @if (canShowCleaner) {\n <div class=\"kbq-form-field__cleaner\">\n <ng-content select=\"kbq-cleaner\" />\n </div>\n }\n\n <ng-content select=\"kbq-password-toggle, kbq-stepper, [kbqSuffix]\" />\n </div>\n }\n </div>\n\n @if (hasHint() || hasError() || hasReactivePasswordHint()) {\n <div class=\"kbq-form-field__hint\">\n @if (invalid) {\n <ng-content select=\"kbq-error\" />\n }\n\n <ng-content select=\"kbq-hint, kbq-reactive-password-hint\" />\n </div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { KbqCleaner } from './cleaner';\nimport { KbqError } from './error';\nimport { KbqFieldset, KbqFieldsetItem, KbqLegend } from './fieldset';\nimport { KbqFormField, KbqTrim } from './form-field';\nimport { KbqHint } from './hint';\nimport { KbqLabel } from './label';\nimport { KbqPasswordToggle } from './password-toggle';\nimport { KbqPrefix } from './prefix';\nimport { KbqReactivePasswordHint } from './reactive-password-hint';\nimport { KbqStepper } from './stepper';\nimport { KbqSuffix } from './suffix';\n\nconst COMPONENTS = [\n KbqCleaner,\n KbqFormField,\n KbqPrefix,\n KbqSuffix,\n KbqPasswordToggle,\n KbqStepper,\n KbqLabel,\n KbqHint,\n KbqError,\n KbqReactivePasswordHint,\n KbqLegend,\n KbqFieldset,\n KbqFieldsetItem,\n\n // Legacy components\n KbqTrim\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|