@koobiq/components 20.0.0 → 20.1.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.
Files changed (192) hide show
  1. package/accordion/accordion-trigger.component.scss +0 -18
  2. package/accordion/accordion.component.scss +9 -2
  3. package/actions-panel/index.d.ts +1 -0
  4. package/alert/_alert-theme.scss +0 -4
  5. package/alert/alert-tokens.scss +4 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +2 -0
  7. package/breadcrumbs/breadcrumbs.scss +4 -0
  8. package/breadcrumbs/index.d.ts +2 -1
  9. package/button/button-group.scss +42 -2
  10. package/button-toggle/button-toggle.scss +23 -0
  11. package/button-toggle/index.d.ts +3 -1
  12. package/checkbox/checkbox.scss +5 -4
  13. package/clamped-text/index.d.ts +1 -0
  14. package/core/index.d.ts +402 -13
  15. package/core/styles/common/_animation.scss +4 -0
  16. package/core/styles/theming/_components-theming.scss +1 -1
  17. package/core/styles/theming/_scrollbar-theme.scss +4 -0
  18. package/datepicker/_datepicker-theme.scss +1 -1
  19. package/datepicker/datepicker-toggle.scss +3 -3
  20. package/dl/index.d.ts +1 -0
  21. package/dropdown/dropdown.scss +2 -2
  22. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  23. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  24. package/fesm2022/koobiq-components-actions-panel.mjs +14 -5
  25. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  26. package/fesm2022/koobiq-components-alert.mjs +2 -2
  27. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  28. package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
  29. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  30. package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
  31. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  32. package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
  33. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  34. package/fesm2022/koobiq-components-button.mjs +4 -4
  35. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  36. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  37. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  38. package/fesm2022/koobiq-components-clamped-text.mjs +4 -0
  39. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  40. package/fesm2022/koobiq-components-code-block.mjs +4 -0
  41. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  42. package/fesm2022/koobiq-components-core.mjs +449 -112
  43. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  44. package/fesm2022/koobiq-components-datepicker.mjs +5 -5
  45. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  46. package/fesm2022/koobiq-components-dl.mjs +3 -2
  47. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  48. package/fesm2022/koobiq-components-dropdown.mjs +8 -13
  49. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  50. package/fesm2022/koobiq-components-file-upload.mjs +33 -22
  51. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  52. package/fesm2022/koobiq-components-filter-bar.mjs +974 -758
  53. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  54. package/fesm2022/koobiq-components-flag.mjs +66 -0
  55. package/fesm2022/koobiq-components-flag.mjs.map +1 -0
  56. package/fesm2022/koobiq-components-form-field.mjs +2 -2
  57. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  58. package/fesm2022/koobiq-components-icon.mjs +2 -2
  59. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  60. package/fesm2022/koobiq-components-inline-edit.mjs +27 -6
  61. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  62. package/fesm2022/koobiq-components-list.mjs +39 -20
  63. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  64. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  65. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  66. package/fesm2022/koobiq-components-modal.mjs +9 -5
  67. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  68. package/fesm2022/koobiq-components-navbar.mjs +10 -9
  69. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-notification-center.mjs +178 -19
  71. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
  73. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-popover.mjs +4 -4
  75. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  77. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  79. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-radio.mjs +3 -7
  81. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-select.mjs +38 -16
  83. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-sidebar.mjs +4 -0
  85. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
  87. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-skeleton.mjs +2 -2
  89. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-split-button.mjs +2 -2
  91. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-splitter.mjs +6 -2
  93. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-table.mjs +8 -6
  95. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-tabs.mjs +19 -7
  97. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-tags.mjs +7 -0
  99. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-textarea.mjs +7 -14
  101. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-time-range.mjs +4 -4
  103. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-timezone.mjs +6 -0
  105. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-title.mjs +132 -14
  107. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-toast.mjs +1 -1
  109. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  111. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-tooltip.mjs +50 -2
  113. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-tree-select.mjs +44 -11
  115. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-tree.mjs +67 -41
  117. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-username.mjs +16 -3
  119. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  120. package/file-upload/file-upload-tokens.scss +1 -0
  121. package/file-upload/index.d.ts +10 -7
  122. package/filter-bar/_filter-bar-theme.scss +86 -0
  123. package/filter-bar/filter-bar-tokens.scss +6 -0
  124. package/filter-bar/filter-bar.scss +10 -4
  125. package/filter-bar/filter-refresher.scss +1 -1
  126. package/filter-bar/filters.scss +23 -19
  127. package/filter-bar/index.d.ts +707 -338
  128. package/filter-bar/pipes/base-pipe.scss +14 -35
  129. package/filter-bar/pipes/pipe-date.scss +20 -14
  130. package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
  131. package/filter-bar/pipes/pipe-multiselect.scss +5 -3
  132. package/filter-bar/pipes/pipe-readonly.scss +4 -13
  133. package/filter-bar/pipes/pipe-select.scss +3 -1
  134. package/filter-bar/pipes/pipe-tree-select.scss +3 -1
  135. package/flag/flag.scss +53 -0
  136. package/flag/index.d.ts +44 -0
  137. package/icon/icon-item-tokens.scss +1 -1
  138. package/inline-edit/index.d.ts +5 -0
  139. package/inline-edit/inline-edit.scss +7 -7
  140. package/link/link-tokens.scss +2 -2
  141. package/list/index.d.ts +11 -2
  142. package/loader-overlay/loader-overlay-tokens.scss +1 -1
  143. package/modal/_modal-animation.scss +6 -6
  144. package/modal/_modal-theme.scss +5 -0
  145. package/modal/index.d.ts +3 -1
  146. package/modal/modal.scss +15 -0
  147. package/navbar/index.d.ts +1 -0
  148. package/navbar/navbar-item.scss +9 -0
  149. package/notification-center/_notification-center-theme.scss +2 -1
  150. package/notification-center/index.d.ts +88 -3
  151. package/notification-center/notification-center.scss +42 -4
  152. package/notification-center/notification-item.scss +3 -2
  153. package/overflow-items/index.d.ts +1 -0
  154. package/package.json +7 -3
  155. package/prebuilt-themes/dark-theme.css +1 -1
  156. package/prebuilt-themes/light-theme.css +1 -1
  157. package/prebuilt-themes/theme.css +1 -1
  158. package/progress-bar/progress-bar.scss +4 -0
  159. package/progress-spinner/progress-spinner.scss +5 -1
  160. package/radio/index.d.ts +1 -5
  161. package/radio/radio.scss +18 -4
  162. package/schematics/collection.json +5 -0
  163. package/schematics/migrations/filter-bar-signals/README.md +66 -0
  164. package/schematics/migrations/filter-bar-signals/data.js +72 -0
  165. package/schematics/migrations/filter-bar-signals/index.js +316 -0
  166. package/schematics/migrations/filter-bar-signals/schema.json +20 -0
  167. package/schematics/migrations.json +5 -0
  168. package/schematics/ng-add/index.js +1 -1
  169. package/select/index.d.ts +10 -2
  170. package/sidebar/index.d.ts +1 -0
  171. package/skeleton/skeleton.scss +4 -0
  172. package/split-button/_split-button-theme.scss +2 -2
  173. package/splitter/_splitter-theme.scss +2 -2
  174. package/splitter/index.d.ts +1 -0
  175. package/table/_table-theme.scss +4 -0
  176. package/table/index.d.ts +3 -2
  177. package/tabs/index.d.ts +2 -0
  178. package/tabs/tab-header.scss +1 -0
  179. package/tabs/tabs-tokens.scss +1 -1
  180. package/textarea/index.d.ts +0 -1
  181. package/time-range/time-range.scss +0 -8
  182. package/timepicker/timepicker.scss +2 -2
  183. package/timezone/index.d.ts +1 -0
  184. package/title/index.d.ts +92 -2
  185. package/tooltip/index.d.ts +51 -3
  186. package/tree/_tree-theme.scss +2 -7
  187. package/tree/index.d.ts +19 -4
  188. package/tree/toggle.scss +5 -0
  189. package/tree/tree-option.scss +0 -4
  190. package/tree-select/_tree-select-theme.scss +1 -1
  191. package/tree-select/index.d.ts +9 -2
  192. package/username/index.d.ts +20 -2
@@ -264,7 +264,7 @@ class KbqCheckbox extends KbqColorDirective {
264
264
  }
265
265
  }
266
266
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqCheckbox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
267
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.25", type: KbqCheckbox, isStandalone: true, selector: "kbq-checkbox", inputs: { big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, clickAction: { classPropertyName: "clickAction", publicName: "clickAction", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.kbq-checkbox_big": "big()", "class.kbq-indeterminate": "indeterminate", "class.kbq-checked": "checked", "class.kbq-disabled": "disabled", "class.kbq-checkbox_label-before": "labelPosition() == \"before\"" }, classAttribute: "kbq-checkbox" }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], exportAs: ["kbqCheckbox"], usesInheritance: true, ngImport: i0, template: "<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n", styles: [".kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;height:var(--kbq-checkbox-size-normal-width);width:var(--kbq-checkbox-size-normal-width)}.kbq-checkbox__layout{--padding: calc(var(--kbq-checkbox-size-normal-width) + var(--kbq-checkbox-size-normal-horizontal-content-padding));box-sizing:initial;position:relative;display:inline-flex;max-width:calc(100% - var(--padding));cursor:inherit;padding-top:var(--kbq-checkbox-size-normal-padding-top);padding-bottom:var(--kbq-checkbox-size-normal-padding-bottom);padding-left:var(--padding);vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:var(--kbq-checkbox-size-normal-top);left:0}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent;max-width:100%}.kbq-checkbox .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding)}.kbq-checkbox.kbq-checkbox_big{--padding: calc(var(--kbq-checkbox-size-big-width) + var(--kbq-checkbox-size-big-horizontal-content-padding))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:var(--kbq-checkbox-size-big-top);height:var(--kbq-checkbox-size-big-width);width:var(--kbq-checkbox-size-big-width)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding)}.kbq-checkbox__text-container{display:flex;flex-direction:column;max-width:100%}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:var(--padding)}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}.kbq-checkbox .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-default-border);background-color:var(--kbq-checkbox-theme-default-background)}.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-checkbox .kbq-checkbox-label{color:var(--kbq-checkbox-theme-default-text)}.kbq-checkbox .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-default-caption)}.kbq-checkbox:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-hover-border);background-color:var(--kbq-checkbox-theme-states-hover-background)}.kbq-checkbox.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-border);background-color:var(--kbq-checkbox-theme-states-checked-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-hover-border);background-color:var(--kbq-checkbox-theme-states-checked-hover-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-focused-border);background-color:var(--kbq-checkbox-theme-states-checked-focused-background);outline:var(--kbq-checkbox-theme-states-checked-focused-outline)}.kbq-checkbox .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-focused-border);background-color:var(--kbq-checkbox-theme-states-focused-background);outline:var(--kbq-checkbox-theme-states-focused-outline)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-disabled-border);background-color:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-checkbox.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-states-disabled-caption)}.kbq-checkbox.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-theme-states-disabled-text)}.kbq-checkbox.kbq-error .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-default-border);background-color:var(--kbq-checkbox-error-default-background)}.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-checkbox.kbq-error .kbq-checkbox-label{color:var(--kbq-checkbox-error-default-text)}.kbq-checkbox.kbq-error .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-default-caption)}.kbq-checkbox.kbq-error:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-hover-border);background-color:var(--kbq-checkbox-error-states-hover-background)}.kbq-checkbox.kbq-error.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-border);background-color:var(--kbq-checkbox-error-states-checked-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-hover-border);background-color:var(--kbq-checkbox-error-states-checked-hover-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-focused-border);background-color:var(--kbq-checkbox-error-states-checked-focused-background);outline:var(--kbq-checkbox-error-states-checked-focused-outline)}.kbq-checkbox.kbq-error .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-focused-border);background-color:var(--kbq-checkbox-error-states-focused-background);outline:var(--kbq-checkbox-error-states-focused-outline)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-disabled-border);background-color:var(--kbq-checkbox-error-states-disabled-background)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-states-disabled-caption)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-error-states-disabled-text)}.kbq-checkbox{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-checkbox .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-checkbox.kbq-checkbox_big{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-checkbox.kbq-checkbox_big .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "directive", type: CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
267
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.25", type: KbqCheckbox, isStandalone: true, selector: "kbq-checkbox", inputs: { big: { classPropertyName: "big", publicName: "big", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, clickAction: { classPropertyName: "clickAction", publicName: "clickAction", isSignal: false, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "id": "id", "attr.id": "id", "attr.disabled": "disabled", "class.kbq-checkbox_big": "big()", "class.kbq-indeterminate": "indeterminate", "class.kbq-checked": "checked", "class.kbq-disabled": "disabled", "class.kbq-checkbox_label-before": "labelPosition() == \"before\"" }, classAttribute: "kbq-checkbox" }, providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], exportAs: ["kbqCheckbox"], usesInheritance: true, ngImport: i0, template: "<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n", styles: [".kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;height:var(--kbq-checkbox-size-normal-width);width:var(--kbq-checkbox-size-normal-width)}.kbq-checkbox__layout{--padding: calc(var(--kbq-checkbox-size-normal-width) + var(--kbq-checkbox-size-normal-horizontal-content-padding));box-sizing:initial;position:relative;display:inline-flex;max-width:calc(100% - var(--padding));cursor:pointer;padding-top:var(--kbq-checkbox-size-normal-padding-top);padding-bottom:var(--kbq-checkbox-size-normal-padding-bottom);padding-left:var(--padding);vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:var(--kbq-checkbox-size-normal-top);left:0}.kbq-checkbox{display:inline-block;-webkit-tap-highlight-color:transparent;max-width:100%}.kbq-checkbox .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled,.kbq-checkbox.kbq-disabled .kbq-checkbox__layout{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding)}.kbq-checkbox.kbq-checkbox_big{--padding: calc(var(--kbq-checkbox-size-big-width) + var(--kbq-checkbox-size-big-horizontal-content-padding))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:var(--kbq-checkbox-size-big-top);height:var(--kbq-checkbox-size-big-width);width:var(--kbq-checkbox-size-big-width)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding)}.kbq-checkbox__text-container{display:flex;flex-direction:column;max-width:100%}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:var(--padding)}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}.kbq-checkbox .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-default-border);background-color:var(--kbq-checkbox-theme-default-background)}.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-checkbox .kbq-checkbox-label{color:var(--kbq-checkbox-theme-default-text)}.kbq-checkbox .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-default-caption)}.kbq-checkbox:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-hover-border);background-color:var(--kbq-checkbox-theme-states-hover-background)}.kbq-checkbox.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-border);background-color:var(--kbq-checkbox-theme-states-checked-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-hover-border);background-color:var(--kbq-checkbox-theme-states-checked-hover-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-focused-border);background-color:var(--kbq-checkbox-theme-states-checked-focused-background);outline:var(--kbq-checkbox-theme-states-checked-focused-outline)}.kbq-checkbox .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-focused-border);background-color:var(--kbq-checkbox-theme-states-focused-background);outline:var(--kbq-checkbox-theme-states-focused-outline)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-disabled-border);background-color:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-checkbox.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-states-disabled-caption)}.kbq-checkbox.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-theme-states-disabled-text)}.kbq-checkbox.kbq-error .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-default-border);background-color:var(--kbq-checkbox-error-default-background)}.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-checkbox.kbq-error .kbq-checkbox-label{color:var(--kbq-checkbox-error-default-text)}.kbq-checkbox.kbq-error .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-default-caption)}.kbq-checkbox.kbq-error:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-hover-border);background-color:var(--kbq-checkbox-error-states-hover-background)}.kbq-checkbox.kbq-error.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-border);background-color:var(--kbq-checkbox-error-states-checked-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-hover-border);background-color:var(--kbq-checkbox-error-states-checked-hover-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-focused-border);background-color:var(--kbq-checkbox-error-states-checked-focused-background);outline:var(--kbq-checkbox-error-states-checked-focused-outline)}.kbq-checkbox.kbq-error .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-focused-border);background-color:var(--kbq-checkbox-error-states-focused-background);outline:var(--kbq-checkbox-error-states-focused-outline)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-disabled-border);background-color:var(--kbq-checkbox-error-states-disabled-background)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-states-disabled-caption)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-error-states-disabled-text)}.kbq-checkbox{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-checkbox .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-checkbox.kbq-checkbox_big{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-checkbox.kbq-checkbox_big .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"], dependencies: [{ kind: "directive", type: CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
268
268
  }
269
269
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: KbqCheckbox, decorators: [{
270
270
  type: Component,
@@ -280,7 +280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
280
280
  '[class.kbq-checked]': 'checked',
281
281
  '[class.kbq-disabled]': 'disabled',
282
282
  '[class.kbq-checkbox_label-before]': 'labelPosition() == "before"'
283
- }, exportAs: 'kbqCheckbox', template: "<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n", styles: [".kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;height:var(--kbq-checkbox-size-normal-width);width:var(--kbq-checkbox-size-normal-width)}.kbq-checkbox__layout{--padding: calc(var(--kbq-checkbox-size-normal-width) + var(--kbq-checkbox-size-normal-horizontal-content-padding));box-sizing:initial;position:relative;display:inline-flex;max-width:calc(100% - var(--padding));cursor:inherit;padding-top:var(--kbq-checkbox-size-normal-padding-top);padding-bottom:var(--kbq-checkbox-size-normal-padding-bottom);padding-left:var(--padding);vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:var(--kbq-checkbox-size-normal-top);left:0}.kbq-checkbox{display:inline-block;cursor:pointer;-webkit-tap-highlight-color:transparent;max-width:100%}.kbq-checkbox .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding)}.kbq-checkbox.kbq-checkbox_big{--padding: calc(var(--kbq-checkbox-size-big-width) + var(--kbq-checkbox-size-big-horizontal-content-padding))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:var(--kbq-checkbox-size-big-top);height:var(--kbq-checkbox-size-big-width);width:var(--kbq-checkbox-size-big-width)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding)}.kbq-checkbox__text-container{display:flex;flex-direction:column;max-width:100%}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:var(--padding)}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}.kbq-checkbox .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-default-border);background-color:var(--kbq-checkbox-theme-default-background)}.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-checkbox .kbq-checkbox-label{color:var(--kbq-checkbox-theme-default-text)}.kbq-checkbox .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-default-caption)}.kbq-checkbox:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-hover-border);background-color:var(--kbq-checkbox-theme-states-hover-background)}.kbq-checkbox.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-border);background-color:var(--kbq-checkbox-theme-states-checked-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-hover-border);background-color:var(--kbq-checkbox-theme-states-checked-hover-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-focused-border);background-color:var(--kbq-checkbox-theme-states-checked-focused-background);outline:var(--kbq-checkbox-theme-states-checked-focused-outline)}.kbq-checkbox .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-focused-border);background-color:var(--kbq-checkbox-theme-states-focused-background);outline:var(--kbq-checkbox-theme-states-focused-outline)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-disabled-border);background-color:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-checkbox.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-states-disabled-caption)}.kbq-checkbox.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-theme-states-disabled-text)}.kbq-checkbox.kbq-error .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-default-border);background-color:var(--kbq-checkbox-error-default-background)}.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-checkbox.kbq-error .kbq-checkbox-label{color:var(--kbq-checkbox-error-default-text)}.kbq-checkbox.kbq-error .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-default-caption)}.kbq-checkbox.kbq-error:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-hover-border);background-color:var(--kbq-checkbox-error-states-hover-background)}.kbq-checkbox.kbq-error.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-border);background-color:var(--kbq-checkbox-error-states-checked-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-hover-border);background-color:var(--kbq-checkbox-error-states-checked-hover-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-focused-border);background-color:var(--kbq-checkbox-error-states-checked-focused-background);outline:var(--kbq-checkbox-error-states-checked-focused-outline)}.kbq-checkbox.kbq-error .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-focused-border);background-color:var(--kbq-checkbox-error-states-focused-background);outline:var(--kbq-checkbox-error-states-focused-outline)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-disabled-border);background-color:var(--kbq-checkbox-error-states-disabled-background)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-states-disabled-caption)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-error-states-disabled-text)}.kbq-checkbox{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-checkbox .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-checkbox.kbq-checkbox_big{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-checkbox.kbq-checkbox_big .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"] }]
283
+ }, exportAs: 'kbqCheckbox', template: "<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n", styles: [".kbq-checkbox__frame{display:flex;align-items:center;justify-content:center;box-sizing:border-box;pointer-events:none;background-color:transparent;border-radius:var(--kbq-checkbox-size-normal-border-radius);border-width:var(--kbq-checkbox-size-normal-border-width);border-style:solid;height:var(--kbq-checkbox-size-normal-width);width:var(--kbq-checkbox-size-normal-width)}.kbq-checkbox__layout{--padding: calc(var(--kbq-checkbox-size-normal-width) + var(--kbq-checkbox-size-normal-horizontal-content-padding));box-sizing:initial;position:relative;display:inline-flex;max-width:calc(100% - var(--padding));cursor:pointer;padding-top:var(--kbq-checkbox-size-normal-padding-top);padding-bottom:var(--kbq-checkbox-size-normal-padding-bottom);padding-left:var(--padding);vertical-align:top}.kbq-checkbox__inner-container{display:inline-block;position:absolute;top:var(--kbq-checkbox-size-normal-top);left:0}.kbq-checkbox{display:inline-block;-webkit-tap-highlight-color:transparent;max-width:100%}.kbq-checkbox .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox-mixedmark{display:none}.kbq-checkbox.kbq-checked .kbq-checkbox-checkmark{display:block}.kbq-checkbox.kbq-checked .kbq-checkbox-mixedmark,.kbq-checkbox.kbq-indeterminate .kbq-checkbox-checkmark{display:none}.kbq-checkbox.kbq-indeterminate .kbq-checkbox-mixedmark{display:block}.kbq-checkbox.kbq-disabled,.kbq-checkbox.kbq-disabled .kbq-checkbox__layout{cursor:default}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{box-shadow:none}.kbq-checkbox .kbq-hint{margin-top:var(--kbq-checkbox-size-normal-vertical-content-padding)}.kbq-checkbox.kbq-checkbox_big{--padding: calc(var(--kbq-checkbox-size-big-width) + var(--kbq-checkbox-size-big-horizontal-content-padding))}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__inner-container{top:var(--kbq-checkbox-size-big-top);height:var(--kbq-checkbox-size-big-width);width:var(--kbq-checkbox-size-big-width)}.kbq-checkbox.kbq-checkbox_big .kbq-checkbox__frame{border-radius:var(--kbq-checkbox-size-big-border-radius);border-width:var(--kbq-checkbox-size-big-border-width);border-style:solid}.kbq-checkbox.kbq-checkbox_big .kbq-hint{margin-top:var(--kbq-checkbox-size-big-vertical-content-padding)}.kbq-checkbox__text-container{display:flex;flex-direction:column;max-width:100%}.kbq-checkbox__inner-container_no-side-margin{margin-left:0;margin-right:0}.kbq-checkbox_label-before .kbq-checkbox__layout{padding-left:0;padding-right:var(--padding)}.kbq-checkbox_label-before .kbq-checkbox__inner-container{right:0;left:unset}.kbq-checkbox .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-default-border);background-color:var(--kbq-checkbox-theme-default-background)}.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-default-color)}.kbq-checkbox .kbq-checkbox-label{color:var(--kbq-checkbox-theme-default-text)}.kbq-checkbox .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-default-caption)}.kbq-checkbox:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-hover-border);background-color:var(--kbq-checkbox-theme-states-hover-background)}.kbq-checkbox.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-border);background-color:var(--kbq-checkbox-theme-states-checked-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-hover-border);background-color:var(--kbq-checkbox-theme-states-checked-hover-background)}.kbq-checkbox.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-checked-focused-border);background-color:var(--kbq-checkbox-theme-states-checked-focused-background);outline:var(--kbq-checkbox-theme-states-checked-focused-outline)}.kbq-checkbox .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-focused-border);background-color:var(--kbq-checkbox-theme-states-focused-background);outline:var(--kbq-checkbox-theme-states-focused-outline)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-theme-states-disabled-border);background-color:var(--kbq-checkbox-theme-states-disabled-background)}.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-theme-states-disabled-color)}.kbq-checkbox.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-theme-states-disabled-caption)}.kbq-checkbox.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-theme-states-disabled-text)}.kbq-checkbox.kbq-error .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-default-border);background-color:var(--kbq-checkbox-error-default-background)}.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-default-color)}.kbq-checkbox.kbq-error .kbq-checkbox-label{color:var(--kbq-checkbox-error-default-text)}.kbq-checkbox.kbq-error .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-default-caption)}.kbq-checkbox.kbq-error:hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-hover-border);background-color:var(--kbq-checkbox-error-states-hover-background)}.kbq-checkbox.kbq-error.kbq-checked .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-border);background-color:var(--kbq-checkbox-error-states-checked-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled):hover .kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled).kbq-hover .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-hover-border);background-color:var(--kbq-checkbox-error-states-checked-hover-background)}.kbq-checkbox.kbq-error.kbq-checked:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame,.kbq-checkbox.kbq-error.kbq-indeterminate:not(.kbq-disabled) .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-checked-focused-border);background-color:var(--kbq-checkbox-error-states-checked-focused-background);outline:var(--kbq-checkbox-error-states-checked-focused-outline)}.kbq-checkbox.kbq-error .kbq-checkbox-input.cdk-keyboard-focused+.kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-focused-border);background-color:var(--kbq-checkbox-error-states-focused-background);outline:var(--kbq-checkbox-error-states-focused-outline)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame{border-color:var(--kbq-checkbox-error-states-disabled-border);background-color:var(--kbq-checkbox-error-states-disabled-background)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-checkmark,.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox__frame .kbq-checkbox-mixedmark{color:var(--kbq-checkbox-error-states-disabled-color)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-hint .kbq-hint__text{color:var(--kbq-checkbox-error-states-disabled-caption)}.kbq-checkbox.kbq-error.kbq-disabled .kbq-checkbox-label{color:var(--kbq-checkbox-error-states-disabled-text)}.kbq-checkbox{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}.kbq-checkbox .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-compact-font-size);font-style:var(--kbq-typography-text-compact-font-style);font-weight:var(--kbq-typography-text-compact-font-weight);line-height:var(--kbq-typography-text-compact-line-height);font-family:var(--kbq-typography-text-compact-font-family);text-transform:var(--kbq-typography-text-compact-text-transform);font-feature-settings:var(--kbq-typography-text-compact-font-feature-settings);letter-spacing:var(--kbq-typography-text-compact-letter-spacing)}.kbq-checkbox.kbq-checkbox_big{font-size:var(--kbq-typography-text-big-font-size);font-style:var(--kbq-typography-text-big-font-style);font-weight:var(--kbq-typography-text-big-font-weight);line-height:var(--kbq-typography-text-big-line-height);font-family:var(--kbq-typography-text-big-font-family);text-transform:var(--kbq-typography-text-big-text-transform);font-feature-settings:var(--kbq-typography-text-big-font-feature-settings);letter-spacing:var(--kbq-typography-text-big-letter-spacing)}.kbq-checkbox.kbq-checkbox_big .kbq-hint .kbq-hint__text{font-size:var(--kbq-typography-text-normal-font-size);font-style:var(--kbq-typography-text-normal-font-style);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n", ".kbq-checkbox{--kbq-checkbox-size-normal-width: var(--kbq-size-l);--kbq-checkbox-size-normal-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-normal-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-normal-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-normal-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-normal-top: var(--kbq-size-3xs);--kbq-checkbox-size-big-width: var(--kbq-size-l);--kbq-checkbox-size-big-border-width: var(--kbq-size-border-width);--kbq-checkbox-size-big-border-radius: var(--kbq-size-xxs);--kbq-checkbox-size-big-horizontal-content-padding: var(--kbq-size-s);--kbq-checkbox-size-big-vertical-content-padding: var(--kbq-size-3xs);--kbq-checkbox-size-big-top: var(--kbq-size-xxs);--kbq-checkbox-theme-default-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-default-color: var(--kbq-icon-white);--kbq-checkbox-theme-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-theme-default-background: var(--kbq-background-bg);--kbq-checkbox-theme-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-theme-states-hover-border: var(--kbq-line-contrast-fade);--kbq-checkbox-theme-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-checkbox-theme-states-checked-border: transparent;--kbq-checkbox-theme-states-checked-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-hover-border: transparent;--kbq-checkbox-theme-states-checked-hover-background: var(--kbq-states-background-theme-hover);--kbq-checkbox-theme-states-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-focused-background: var(--kbq-background-bg);--kbq-checkbox-theme-states-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-border: var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-checked-focused-background: var(--kbq-background-theme);--kbq-checkbox-theme-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-theme);--kbq-checkbox-theme-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-theme-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-theme-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-theme-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-theme-states-disabled-caption: var(--kbq-states-icon-disabled);--kbq-checkbox-error-default-border: var(--kbq-line-error);--kbq-checkbox-error-default-color: var(--kbq-icon-white);--kbq-checkbox-error-default-text: var(--kbq-foreground-contrast);--kbq-checkbox-error-default-background: var(--kbq-background-error-less);--kbq-checkbox-error-default-caption: var(--kbq-foreground-contrast-secondary);--kbq-checkbox-error-states-hover-border: var(--kbq-line-error);--kbq-checkbox-error-states-hover-background: var(--kbq-states-background-error-fade-hover);--kbq-checkbox-error-states-checked-border: transparent;--kbq-checkbox-error-states-checked-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-hover-border: transparent;--kbq-checkbox-error-states-checked-hover-background: var(--kbq-states-background-error-hover);--kbq-checkbox-error-states-focused-border: var(--kbq-line-error);--kbq-checkbox-error-states-focused-background: var(--kbq-background-error-less);--kbq-checkbox-error-states-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-border: var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-checked-focused-background: var(--kbq-background-error);--kbq-checkbox-error-states-checked-focused-outline: 1px solid var(--kbq-states-line-focus-error);--kbq-checkbox-error-states-disabled-border: var(--kbq-states-line-disabled);--kbq-checkbox-error-states-disabled-color: var(--kbq-states-icon-disabled);--kbq-checkbox-error-states-disabled-text: var(--kbq-states-foreground-disabled);--kbq-checkbox-error-states-disabled-background: var(--kbq-states-background-disabled);--kbq-checkbox-error-states-disabled-caption: var(--kbq-states-icon-disabled)}\n"] }]
284
284
  }], ctorParameters: () => [], propDecorators: { big: [{ type: i0.Input, args: [{ isSignal: true, alias: "big", required: false }] }], id: [{
285
285
  type: Input
286
286
  }], labelPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelPosition", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], change: [{ type: i0.Output, args: ["change"] }], indeterminateChange: [{ type: i0.Output, args: ["indeterminateChange"] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], clickAction: [{
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION = new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init = 'init',\n /** The state representing the component when it's becoming checked. */\n Checked = 'checked',\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 'unchecked',\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 'indeterminate'\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n imports: [\n CdkObserveContent\n ],\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss', 'checkbox-tokens.scss'],\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big()',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition() == \"before\"'\n },\n exportAs: 'kbqCheckbox'\n})\nexport class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n private changeDetectorRef = inject(ChangeDetectorRef);\n private focusMonitor = inject(FocusMonitor);\n\n readonly big = input<boolean>(false);\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n readonly labelPosition = input<'before' | 'after'>('after');\n\n /** Name value will be applied to the input element if present */\n readonly name = input<string | null>(null);\n\n /** Event emitted when the checkbox's `checked` value changes. */\n readonly change = output<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n readonly indeterminateChange = output<boolean>();\n\n /** The value attribute of the native input element */\n readonly value = input<string>(undefined!);\n\n /** Defines the behavior when a user clicks on the checkbox. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() clickAction: KbqCheckboxClickAction = inject(KBQ_CHECKBOX_CLICK_ACTION, { optional: true }) || undefined;\n\n /** The native `<input type=\"checkbox\">` element */\n readonly inputElement = viewChild.required<ElementRef>('input');\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n readonly required = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Whether the checkbox is checked.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /** Whether the checkbox is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor() {\n super();\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement().nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement().nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): KbqCheckedState {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n const inputElement = this.inputElement();\n\n inputElement.nativeElement.checked = this.checked;\n inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement().nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) {\n return;\n }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { Directive, forwardRef, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n@NgModule({\n imports: [KbqCheckbox, KbqCheckboxRequiredValidator],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {}\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-checkbox.mjs","sources":["../../../packages/components/checkbox/checkbox-config.ts","../../../packages/components/checkbox/checkbox.ts","../../../packages/components/checkbox/checkbox.html","../../../packages/components/checkbox/checkbox-required-validator.ts","../../../packages/components/checkbox/checkbox-module.ts","../../../packages/components/checkbox/koobiq-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Checkbox click action when user click on input element.\n * noop: Do not toggle checked or indeterminate.\n * check: Only toggle checked status, ignore indeterminate.\n * check-indeterminate: Toggle checked status, set indeterminate to false. Default behavior.\n * undefined: Same as `check-indeterminate`.\n */\nexport type KbqCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\n\n/**\n * Injection token that can be used to specify the checkbox click behavior.\n */\nexport const KBQ_CHECKBOX_CLICK_ACTION = new InjectionToken<KbqCheckboxClickAction>('kbq-checkbox-click-action');\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { CdkObserveContent } from '@angular/cdk/observers';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n numberAttribute,\n OnDestroy,\n output,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqCheckedState, KbqColorDirective } from '@koobiq/components/core';\nimport { KBQ_CHECKBOX_CLICK_ACTION, KbqCheckboxClickAction } from './checkbox-config';\n\n// Increasing integer for generating unique ids for checkbox components.\nlet nextUniqueId = 0;\n\n/**\n * Provider Expression that allows kbq-checkbox to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * @docs-private\n */\nexport const KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KbqCheckbox),\n multi: true\n};\n\n/**\n * Represents the different states that require custom transitions between them.\n * @docs-private\n */\nexport enum TransitionCheckState {\n /** The initial state of the component before any user interaction. */\n Init = 'init',\n /** The state representing the component when it's becoming checked. */\n Checked = 'checked',\n /** The state representing the component when it's becoming unchecked. */\n Unchecked = 'unchecked',\n /** The state representing the component when it's becoming indeterminate. */\n Indeterminate = 'indeterminate'\n}\n\n/** Change event object emitted by KbqCheckbox. */\nexport class KbqCheckboxChange {\n /** The source KbqCheckbox of the event. */\n source: KbqCheckbox;\n /** The new `checked` value of the checkbox. */\n checked: boolean;\n}\n\n/**\n * A Koobiq checkbox component. Supports all of the functionality of an HTML5 checkbox,\n * and exposes a similar API. A KbqCheckbox can be either checked, unchecked, indeterminate, or\n * disabled. Note that all additional accessibility attributes are taken care of by the component,\n * so there is no need to provide them yourself. However, if you want to omit a label and still\n * have the checkbox be accessible, you may supply an [aria-label] input.\n */\n@Component({\n selector: 'kbq-checkbox',\n imports: [\n CdkObserveContent\n ],\n templateUrl: 'checkbox.html',\n styleUrls: ['checkbox.scss', 'checkbox-tokens.scss'],\n providers: [KBQ_CHECKBOX_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-checkbox',\n '[id]': 'id',\n '[attr.id]': 'id',\n '[attr.disabled]': 'disabled',\n '[class.kbq-checkbox_big]': 'big()',\n '[class.kbq-indeterminate]': 'indeterminate',\n '[class.kbq-checked]': 'checked',\n '[class.kbq-disabled]': 'disabled',\n '[class.kbq-checkbox_label-before]': 'labelPosition() == \"before\"'\n },\n exportAs: 'kbqCheckbox'\n})\nexport class KbqCheckbox extends KbqColorDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n private changeDetectorRef = inject(ChangeDetectorRef);\n private focusMonitor = inject(FocusMonitor);\n\n readonly big = input<boolean>(false);\n\n /** A unique id for the checkbox input. If none is supplied, it will be auto-generated. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() id: string;\n\n /** Whether the label should appear after or before the checkbox. Defaults to 'after' */\n readonly labelPosition = input<'before' | 'after'>('after');\n\n /** Name value will be applied to the input element if present */\n readonly name = input<string | null>(null);\n\n /** Event emitted when the checkbox's `checked` value changes. */\n readonly change = output<KbqCheckboxChange>();\n\n /** Event emitted when the checkbox's `indeterminate` value changes. */\n readonly indeterminateChange = output<boolean>();\n\n /** The value attribute of the native input element */\n readonly value = input<string>(undefined!);\n\n /** Defines the behavior when a user clicks on the checkbox. */\n // TODO: Skipped for migration because:\n // Your application code writes to the input. This prevents migration.\n @Input() clickAction: KbqCheckboxClickAction = inject(KBQ_CHECKBOX_CLICK_ACTION, { optional: true }) || undefined;\n\n /** The native `<input type=\"checkbox\">` element */\n readonly inputElement = viewChild.required<ElementRef>('input');\n\n /** Returns the unique id for the visual hidden input. */\n get inputId(): string {\n return `${this.id || this.uniqueId}-input`;\n }\n\n /** Whether the checkbox is required. */\n readonly required = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Whether the checkbox is checked.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get checked(): boolean {\n return this._checked;\n }\n\n set checked(value: boolean) {\n if (value !== this.checked) {\n this._checked = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _checked: boolean = false;\n\n /** Whether the checkbox is disabled. */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: booleanAttribute })\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(value: boolean) {\n if (value !== this.disabled) {\n this._disabled = value;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private _disabled: boolean = false;\n\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input({ transform: numberAttribute })\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n\n set tabIndex(value: number) {\n this._tabIndex = value;\n }\n\n private _tabIndex = 0;\n\n /**\n * Whether the checkbox is indeterminate. This is also known as \"mixed\" mode and can be used to\n * represent a checkbox with three states, e.g. a checkbox that represents a nested list of\n * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately\n * set to false.\n */\n // TODO: Skipped for migration because:\n // Accessor inputs cannot be migrated as they are too complex.\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n const changed = value !== this._indeterminate;\n\n this._indeterminate = value;\n\n if (changed) {\n if (this._indeterminate) {\n this.transitionCheckState(TransitionCheckState.Indeterminate);\n } else {\n this.transitionCheckState(this.checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n }\n\n this.indeterminateChange.emit(this._indeterminate);\n }\n }\n\n private _indeterminate: boolean = false;\n\n private uniqueId: string = `kbq-checkbox-${++nextUniqueId}`;\n\n private currentAnimationClass: string = '';\n\n private currentCheckState: TransitionCheckState = TransitionCheckState.Init;\n\n constructor() {\n super();\n\n this.id = this.uniqueId;\n }\n\n /**\n * Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor.\n * @docs-private\n */\n onTouched: () => any = () => {};\n\n ngAfterViewInit() {\n this.focusMonitor\n .monitor(this.inputElement().nativeElement)\n .subscribe((focusOrigin) => this.onInputFocusChange(focusOrigin));\n }\n\n ngOnDestroy() {\n this.focusMonitor.stopMonitoring(this.inputElement().nativeElement);\n }\n\n /** Method being called whenever the label text changes. */\n onLabelTextChange() {\n // This method is getting called whenever the label of the checkbox changes.\n // Since the checkbox uses the OnPush strategy we need to notify it about the change\n // that has been recognized by the cdkObserveContent directive.\n this.changeDetectorRef.markForCheck();\n }\n\n // Implemented as part of ControlValueAccessor.\n writeValue(value: any) {\n this.checked = !!value;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnChange(fn: (value: any) => void) {\n this.controlValueAccessorChangeFn = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n // Implemented as part of ControlValueAccessor.\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n getAriaChecked(): KbqCheckedState {\n return this.checked ? 'true' : this.indeterminate ? 'mixed' : 'false';\n }\n\n /** Toggles the `checked` state of the checkbox. */\n toggle(): void {\n this.checked = !this.checked;\n }\n\n /**\n * Event handler for checkbox input element.\n * Toggles checked state if element is not disabled.\n * Do not toggle on (change) event since IE doesn't fire change event when\n * indeterminate checkbox is clicked.\n * @param event Input click event\n */\n onInputClick(event: Event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `checkbox` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n\n // If resetIndeterminate is false, and the current state is indeterminate, do nothing on click\n if (!this.disabled && this.clickAction !== 'noop') {\n // When user manually click on the checkbox, `indeterminate` is set to false.\n if (this.indeterminate && this.clickAction !== 'check') {\n Promise.resolve().then(() => {\n this._indeterminate = false;\n this.indeterminateChange.emit(this._indeterminate);\n });\n }\n\n this.toggle();\n this.transitionCheckState(this._checked ? TransitionCheckState.Checked : TransitionCheckState.Unchecked);\n\n // Emit our custom change event if the native input emitted one.\n // It is important to only emit it, if the native input triggered one, because\n // we don't want to trigger a change event, when the `checked` variable changes for example.\n this.emitChangeEvent();\n } else if (!this.disabled && this.clickAction === 'noop') {\n // Reset native input when clicked with noop. The native checkbox becomes checked after\n // click, reset it to be align with `checked` value of `kbq-checkbox`.\n const inputElement = this.inputElement();\n\n inputElement.nativeElement.checked = this.checked;\n inputElement.nativeElement.indeterminate = this.indeterminate;\n }\n }\n\n /** Focuses the checkbox. */\n focus(): void {\n this.focusMonitor.focusVia(this.inputElement().nativeElement, 'keyboard');\n }\n\n onInteractionEvent(event: Event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n }\n private controlValueAccessorChangeFn: (value: any) => void = () => {};\n\n private transitionCheckState(newState: TransitionCheckState) {\n const oldState = this.currentCheckState;\n const element: HTMLElement = this.elementRef.nativeElement;\n\n if (oldState === newState) {\n return;\n }\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.remove(this.currentAnimationClass);\n }\n\n this.currentCheckState = newState;\n\n if (this.currentAnimationClass.length > 0) {\n element.classList.add(this.currentAnimationClass);\n }\n }\n\n private emitChangeEvent() {\n const event = new KbqCheckboxChange();\n\n event.source = this;\n event.checked = this.checked;\n\n this.controlValueAccessorChangeFn(this.checked);\n this.change.emit(event);\n }\n\n /** Function is called whenever the focus changes for the input element. */\n private onInputFocusChange(focusOrigin: FocusOrigin) {\n if (focusOrigin) {\n this.onTouched();\n }\n }\n}\n","<label #label class=\"kbq-checkbox__layout\" [attr.for]=\"inputId\">\n <div\n class=\"kbq-checkbox__inner-container\"\n [class.kbq-checkbox__inner-container_no-side-margin]=\"\n !checkboxLabel.textContent || !checkboxLabel.textContent.trim()\n \"\n >\n <input\n #input\n type=\"checkbox\"\n class=\"kbq-checkbox-input cdk-visually-hidden\"\n [attr.aria-checked]=\"getAriaChecked()\"\n [attr.name]=\"name()\"\n [attr.value]=\"value()\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [indeterminate]=\"indeterminate\"\n [required]=\"required()\"\n [tabIndex]=\"tabIndex\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n />\n <div class=\"kbq-checkbox__frame\">\n <i class=\"kbq-checkbox-checkmark kbq kbq-check-s_16\"></i>\n <i class=\"kbq-checkbox-mixedmark kbq kbq-minus-s_16\"></i>\n </div>\n </div>\n\n <div class=\"kbq-checkbox__text-container\">\n <span #checkboxLabel class=\"kbq-checkbox-label\" (cdkObserveContent)=\"onLabelTextChange()\">\n <ng-content />\n </span>\n\n <ng-content select=\"kbq-hint\" />\n </div>\n</label>\n","import { Directive, forwardRef, Provider } from '@angular/core';\nimport { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';\n\nexport const KBQ_CHECKBOX_REQUIRED_VALIDATOR: Provider = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => KbqCheckboxRequiredValidator),\n multi: true\n};\n\n/**\n * Validator for koobiq checkbox's required attribute in template-driven checkbox.\n * Current CheckboxRequiredValidator only work with `input type=checkbox` and does not\n * work with `kbq-checkbox`.\n */\n@Directive({\n selector: `kbq-checkbox[required][formControlName],\n kbq-checkbox[required][formControl], kbq-checkbox[required][ngModel]`,\n providers: [KBQ_CHECKBOX_REQUIRED_VALIDATOR],\n host: { '[attr.required]': 'required ? \"\" : null' }\n})\nexport class KbqCheckboxRequiredValidator extends CheckboxRequiredValidator {}\n","import { NgModule } from '@angular/core';\nimport { KbqCheckbox } from './checkbox';\nimport { KbqCheckboxRequiredValidator } from './checkbox-required-validator';\n\n@NgModule({\n imports: [KbqCheckbox, KbqCheckboxRequiredValidator],\n exports: [KbqCheckbox, KbqCheckboxRequiredValidator]\n})\nexport class KbqCheckboxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-i
4
4
  import { ruRULocaleData, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
5
5
  import { map, of, pairwise, skip, debounceTime } from 'rxjs';
6
6
  import { SharedResizeObserver } from '@angular/cdk/observers/private';
7
+ import { Platform } from '@angular/cdk/platform';
7
8
  import { KbqButtonModule } from '@koobiq/components/button';
8
9
  import { KbqIcon } from '@koobiq/components/icon';
9
10
  import * as i1 from '@koobiq/components/link';
@@ -151,6 +152,7 @@ class KbqClampedText {
151
152
  this.destroyRef = inject(DestroyRef);
152
153
  this.elementRef = inject(ElementRef);
153
154
  this.resizeObserver = inject(SharedResizeObserver);
155
+ this.platform = inject(Platform);
154
156
  /**
155
157
  * Clamped text locale configuration.
156
158
  * @docs-private
@@ -187,6 +189,8 @@ class KbqClampedText {
187
189
  .subscribe((rows) => this.lineClamp.set(rows));
188
190
  }
189
191
  ngAfterViewInit() {
192
+ if (!this.platform.isBrowser)
193
+ return;
190
194
  const textContainer = this.textContainer().nativeElement;
191
195
  this.resizeObserver
192
196
  .observe(textContainer)
@@ -1 +1 @@
1
- {"version":3,"file":"koobiq-components-clamped-text.mjs","sources":["../../../packages/components/clamped-text/constants.ts","../../../packages/components/clamped-text/clamped-list.ts","../../../packages/components/clamped-text/clamped-text.ts","../../../packages/components/clamped-text/module.ts","../../../packages/components/clamped-text/koobiq-components-clamped-text.ts"],"sourcesContent":["import { inject, InjectionToken, Provider, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KBQ_LOCALE_SERVICE, KbqClampedTextLocaleConfig, ruRULocaleData } from '@koobiq/components/core';\nimport { map, of } from 'rxjs';\n\n/**\n * Default maximum number of visible rows for the clamped text component\n * before truncation and the \"collapse/expand\" toggle is shown.\n */\nexport const kbqClampedTextDefaultMaxRows = 5;\n\n/** Localization configuration provider. */\nexport const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION = new InjectionToken<KbqClampedTextLocaleConfig>(\n 'KbqClampedTextLocaleConfig',\n {\n factory: () => ruRULocaleData.clampedText\n }\n);\n\n/**\n * Utility provider.\n * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION\n */\nexport const kbqClampedTextLocaleConfigurationProvider = (configuration: KbqClampedTextLocaleConfig): Provider => ({\n provide: KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\nexport const KbqClampedRoot = new InjectionToken<KbqClamped>('KbqClampedRoot');\n\nexport interface KbqClamped {\n /**\n * Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto.\n * Behavior for auto may vary according to clamped-list/clamped-text\n */\n isCollapsed: Signal<boolean | undefined>;\n /** Whether the toggle trigger should be shown. */\n hasToggle: Signal<boolean>;\n /** Reactive locale strings for open/close labels. */\n localeConfiguration: Signal<KbqClampedTextLocaleConfig>;\n /** Toggles the collapsed state of the list. Stops event propagation. */\n toggle(event: Event): void;\n}\n\n/**\n * Injection function that creates a reactive locale configuration signal.\n * @see {KbqClampedText, KbqClampedList}\n * @docs-private\n */\nexport function kbqInjectKbqClampedLocaleConfiguration(): Signal<KbqClampedTextLocaleConfig> {\n const localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n const initialValue = inject(KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION);\n const config = localeService\n ? localeService.changes.pipe(\n map<string, KbqClampedTextLocaleConfig>(\n () => localeService.getParams('clampedText') satisfies KbqClampedTextLocaleConfig\n )\n )\n : of(initialValue);\n\n return toSignal(config, { initialValue });\n}\n","import { computed, Directive, inject, input, model, numberAttribute } from '@angular/core';\nimport { KbqClamped, KbqClampedRoot, kbqInjectKbqClampedLocaleConfiguration } from './constants';\n\n@Directive({\n selector: '[kbqClampedList]',\n providers: [\n { provide: KbqClampedRoot, useExisting: KbqClampedList }\n ],\n host: {\n class: 'kbq-clamped-list',\n '[attr.aria-expanded]': 'isCollapsed() && hasToggle() ? \"false\" : \"true\"'\n },\n exportAs: 'kbqClampedList'\n})\nexport class KbqClampedList<T> implements KbqClamped {\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = expanded. */\n readonly isCollapsed = model<boolean>(true);\n /** The list of items to display. */\n readonly items = input<T[]>([]);\n /**\n * Maximum number of items visible in collapsed state.\n * @default 10\n */\n readonly collapsedVisibleCount = input(10, { transform: numberAttribute });\n /**\n * Minimum number of hidden items required to show the toggle trigger.\n * @default 6\n */\n readonly hiddenThreshold = input(6, { transform: numberAttribute });\n\n /** Number of items hidden when the list is collapsed. */\n readonly exceededItemCount = computed(() => this.items().length - this.collapsedVisibleCount());\n /** Whether the number of hidden items meets the threshold to render the toggle trigger. */\n readonly hasToggle = computed(() => this.exceededItemCount() >= this.hiddenThreshold());\n /** Slice of items currently rendered — truncated to `minVisibleCount` when collapsed, a full list otherwise. */\n readonly visibleItems = computed(() =>\n this.isCollapsed() && this.hasToggle() ? this.items().slice(0, this.collapsedVisibleCount()) : this.items()\n );\n /** Localized \"show more\" label with the exceeded item count interpolated into the `{exceededItemCount}` placeholder. */\n readonly showMoreCountText = computed(() =>\n this.localeConfiguration().showMoreText.replace('{exceededItemCount}', this.exceededItemCount().toString(10))\n );\n\n /** Clamped text locale configuration. */\n readonly localeConfiguration = kbqInjectKbqClampedLocaleConfiguration();\n\n /** Toggles the collapsed state of the list. Stops event propagation. */\n toggle(event: Event) {\n event.stopPropagation();\n this.isCollapsed.update((state) => !state);\n }\n}\n\n/**\n * Clamped list trigger.\n * Used for calling toggle collapsed state on click events\n */\n@Directive({\n selector: '[kbqClampedListTrigger]',\n host: {\n class: 'kbq-clamped-list__trigger kbq-clamped-text__toggle',\n '(click)': 'root?.toggle($event)',\n '(keydown.enter)': 'root?.toggle($event)',\n '(keydown.space)': 'root?.toggle($event)'\n },\n exportAs: 'kbqClampedListTrigger'\n})\nexport class KbqClampedListTrigger {\n protected readonly root = inject(KbqClampedRoot, { optional: true });\n}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqLinkModule } from '@koobiq/components/link';\nimport { debounceTime, pairwise, skip } from 'rxjs';\nimport { KbqClampedListTrigger } from './clamped-list';\nimport {\n KbqClamped,\n KbqClampedRoot,\n kbqClampedTextDefaultMaxRows,\n kbqInjectKbqClampedLocaleConfiguration\n} from './constants';\n\n@Component({\n selector: 'kbq-clamped-text',\n imports: [\n KbqIcon,\n KbqButtonModule,\n KbqLinkModule,\n KbqClampedListTrigger\n ],\n template: `\n <div\n #textContainer\n class=\"kbq-clamped-text__content\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.line-clamp]=\"lineClamp()\"\n [class.kbq-clamped-text__content_collapsed]=\"collapsedState()\"\n >\n <span #text>\n <ng-content />\n </span>\n </div>\n\n @if (hasToggle()) {\n <span kbq-link noUnderline pseudo role=\"button\" kbqClampedListTrigger>\n @let config = localeConfiguration();\n\n @if (collapsedState()) {\n <i kbq-icon=\"kbq-chevron-down_16\"></i>\n <span class=\"kbq-link__text\">{{ config.openText }}</span>\n } @else {\n <i kbq-icon=\"kbq-chevron-up_16\"></i>\n <span class=\"kbq-link__text\">{{ config.closeText }}</span>\n }\n </span>\n }\n `,\n styleUrls: ['./clamped-text.scss'],\n providers: [\n { provide: KbqClampedRoot, useExisting: KbqClampedText }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-clamped-text',\n '[attr.aria-expanded]': 'collapsedState() ? \"false\" : \"true\"'\n },\n exportAs: 'kbqClampedText'\n})\nexport class KbqClampedText implements KbqClamped, AfterViewInit {\n /**\n * Max rows before text is clamped.\n * @default kbqClampedTextDefaultMaxRows\n */\n readonly rows = input<number>(kbqClampedTextDefaultMaxRows);\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */\n readonly isCollapsed = input<boolean>();\n /**\n * Debounce time on resize observer when recalculating toggle and text visibility.\n * @default 0\n */\n readonly debounceTime = input(0, { transform: numberAttribute });\n /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */\n readonly isCollapsedChange = output<boolean>();\n\n /** @docs-private */\n readonly text = viewChild.required<ElementRef<HTMLSpanElement>>('text');\n /** @docs-private */\n readonly textContainer = viewChild.required<ElementRef<HTMLDivElement>>('textContainer');\n\n /**\n * This flag controls event emission, aria/css-class calculation\n * @docs-private\n */\n protected readonly collapsedState = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly isToggleCollapsed = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly lineClamp = signal<number | null>(null);\n /** @docs-private */\n readonly hasToggle = signal(true);\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n\n /**\n * Clamped text locale configuration.\n * @docs-private\n */\n readonly localeConfiguration = kbqInjectKbqClampedLocaleConfiguration();\n\n /**\n * This flag is used to prevent trigger resize observer on toggle click.\n */\n private isEventFromToggle = false;\n\n constructor() {\n toObservable(this.isCollapsed)\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([previous, current]) => {\n this.collapsedState.set(current);\n // store previous collapsed value to reduce unnecessary changes\n this.isToggleCollapsed.set(!this.hasToggle() ? previous : current);\n });\n\n toObservable(this.collapsedState)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((collapsed) => {\n if (collapsed === undefined) return;\n this.isCollapsedChange.emit(collapsed);\n });\n\n toObservable(this.rows)\n .pipe(takeUntilDestroyed())\n .subscribe((rows) => this.lineClamp.set(rows));\n }\n\n ngAfterViewInit(): void {\n const textContainer = this.textContainer().nativeElement;\n\n this.resizeObserver\n .observe(textContainer)\n .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateToggleVisibilityState();\n this.updateCollapsedState();\n });\n }\n\n /** @docs-private */\n toggle(event: Event): void {\n event.stopPropagation();\n\n this.collapsedState.update((state) => this.toggleCollapseState(this.isToggleCollapsed() ?? state));\n this.isToggleCollapsed.update(this.toggleCollapseState);\n\n this.isEventFromToggle = true;\n\n if (this.collapsedState()) {\n setTimeout(() => this.elementRef.nativeElement.scrollIntoView({ block: 'center', inline: 'center' }));\n }\n }\n\n private updateToggleVisibilityState(): void {\n this.hasToggle.set(this.getRowsCount() > this.rows() + 1);\n }\n\n private updateCollapsedState(): void {\n if (this.isEventFromToggle) {\n this.isEventFromToggle = false;\n\n return;\n }\n\n this.collapsedState.set(this.hasToggle() && (this.isToggleCollapsed() ?? true));\n }\n\n /**\n * Calculates next collapsed state according to previous one.\n * `undefined` is treated as collapsed and not touched stated.\n */\n private toggleCollapseState = (state: boolean | undefined): boolean => {\n const isCollapsed = state ?? true;\n\n return !isCollapsed;\n };\n\n private getRowsCount(): number {\n const rects = Array.from(this.text().nativeElement.getClientRects());\n\n return [...new Set(rects.map(({ top }) => top))].length;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqClampedList, KbqClampedListTrigger } from './clamped-list';\nimport { KbqClampedText } from './clamped-text';\n\nconst COMPONENTS = [\n KbqClampedText,\n KbqClampedList,\n KbqClampedListTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqClampedTextModule {}\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-clamped-text.mjs","sources":["../../../packages/components/clamped-text/constants.ts","../../../packages/components/clamped-text/clamped-list.ts","../../../packages/components/clamped-text/clamped-text.ts","../../../packages/components/clamped-text/module.ts","../../../packages/components/clamped-text/koobiq-components-clamped-text.ts"],"sourcesContent":["import { inject, InjectionToken, Provider, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KBQ_LOCALE_SERVICE, KbqClampedTextLocaleConfig, ruRULocaleData } from '@koobiq/components/core';\nimport { map, of } from 'rxjs';\n\n/**\n * Default maximum number of visible rows for the clamped text component\n * before truncation and the \"collapse/expand\" toggle is shown.\n */\nexport const kbqClampedTextDefaultMaxRows = 5;\n\n/** Localization configuration provider. */\nexport const KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION = new InjectionToken<KbqClampedTextLocaleConfig>(\n 'KbqClampedTextLocaleConfig',\n {\n factory: () => ruRULocaleData.clampedText\n }\n);\n\n/**\n * Utility provider.\n * @see KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION\n */\nexport const kbqClampedTextLocaleConfigurationProvider = (configuration: KbqClampedTextLocaleConfig): Provider => ({\n provide: KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION,\n useValue: configuration\n});\n\nexport const KbqClampedRoot = new InjectionToken<KbqClamped>('KbqClampedRoot');\n\nexport interface KbqClamped {\n /**\n * Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto.\n * Behavior for auto may vary according to clamped-list/clamped-text\n */\n isCollapsed: Signal<boolean | undefined>;\n /** Whether the toggle trigger should be shown. */\n hasToggle: Signal<boolean>;\n /** Reactive locale strings for open/close labels. */\n localeConfiguration: Signal<KbqClampedTextLocaleConfig>;\n /** Toggles the collapsed state of the list. Stops event propagation. */\n toggle(event: Event): void;\n}\n\n/**\n * Injection function that creates a reactive locale configuration signal.\n * @see {KbqClampedText, KbqClampedList}\n * @docs-private\n */\nexport function kbqInjectKbqClampedLocaleConfiguration(): Signal<KbqClampedTextLocaleConfig> {\n const localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n const initialValue = inject(KBQ_CLAMPED_TEXT_LOCALE_CONFIGURATION);\n const config = localeService\n ? localeService.changes.pipe(\n map<string, KbqClampedTextLocaleConfig>(\n () => localeService.getParams('clampedText') satisfies KbqClampedTextLocaleConfig\n )\n )\n : of(initialValue);\n\n return toSignal(config, { initialValue });\n}\n","import { computed, Directive, inject, input, model, numberAttribute } from '@angular/core';\nimport { KbqClamped, KbqClampedRoot, kbqInjectKbqClampedLocaleConfiguration } from './constants';\n\n@Directive({\n selector: '[kbqClampedList]',\n providers: [\n { provide: KbqClampedRoot, useExisting: KbqClampedList }\n ],\n host: {\n class: 'kbq-clamped-list',\n '[attr.aria-expanded]': 'isCollapsed() && hasToggle() ? \"false\" : \"true\"'\n },\n exportAs: 'kbqClampedList'\n})\nexport class KbqClampedList<T> implements KbqClamped {\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = expanded. */\n readonly isCollapsed = model<boolean>(true);\n /** The list of items to display. */\n readonly items = input<T[]>([]);\n /**\n * Maximum number of items visible in collapsed state.\n * @default 10\n */\n readonly collapsedVisibleCount = input(10, { transform: numberAttribute });\n /**\n * Minimum number of hidden items required to show the toggle trigger.\n * @default 6\n */\n readonly hiddenThreshold = input(6, { transform: numberAttribute });\n\n /** Number of items hidden when the list is collapsed. */\n readonly exceededItemCount = computed(() => this.items().length - this.collapsedVisibleCount());\n /** Whether the number of hidden items meets the threshold to render the toggle trigger. */\n readonly hasToggle = computed(() => this.exceededItemCount() >= this.hiddenThreshold());\n /** Slice of items currently rendered — truncated to `minVisibleCount` when collapsed, a full list otherwise. */\n readonly visibleItems = computed(() =>\n this.isCollapsed() && this.hasToggle() ? this.items().slice(0, this.collapsedVisibleCount()) : this.items()\n );\n /** Localized \"show more\" label with the exceeded item count interpolated into the `{exceededItemCount}` placeholder. */\n readonly showMoreCountText = computed(() =>\n this.localeConfiguration().showMoreText.replace('{exceededItemCount}', this.exceededItemCount().toString(10))\n );\n\n /** Clamped text locale configuration. */\n readonly localeConfiguration = kbqInjectKbqClampedLocaleConfiguration();\n\n /** Toggles the collapsed state of the list. Stops event propagation. */\n toggle(event: Event) {\n event.stopPropagation();\n this.isCollapsed.update((state) => !state);\n }\n}\n\n/**\n * Clamped list trigger.\n * Used for calling toggle collapsed state on click events\n */\n@Directive({\n selector: '[kbqClampedListTrigger]',\n host: {\n class: 'kbq-clamped-list__trigger kbq-clamped-text__toggle',\n '(click)': 'root?.toggle($event)',\n '(keydown.enter)': 'root?.toggle($event)',\n '(keydown.space)': 'root?.toggle($event)'\n },\n exportAs: 'kbqClampedListTrigger'\n})\nexport class KbqClampedListTrigger {\n protected readonly root = inject(KbqClampedRoot, { optional: true });\n}\n","import { SharedResizeObserver } from '@angular/cdk/observers/private';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { KbqButtonModule } from '@koobiq/components/button';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqLinkModule } from '@koobiq/components/link';\nimport { debounceTime, pairwise, skip } from 'rxjs';\nimport { KbqClampedListTrigger } from './clamped-list';\nimport {\n KbqClamped,\n KbqClampedRoot,\n kbqClampedTextDefaultMaxRows,\n kbqInjectKbqClampedLocaleConfiguration\n} from './constants';\n\n@Component({\n selector: 'kbq-clamped-text',\n imports: [\n KbqIcon,\n KbqButtonModule,\n KbqLinkModule,\n KbqClampedListTrigger\n ],\n template: `\n <div\n #textContainer\n class=\"kbq-clamped-text__content\"\n [style.-webkit-line-clamp]=\"lineClamp()\"\n [style.line-clamp]=\"lineClamp()\"\n [class.kbq-clamped-text__content_collapsed]=\"collapsedState()\"\n >\n <span #text>\n <ng-content />\n </span>\n </div>\n\n @if (hasToggle()) {\n <span kbq-link noUnderline pseudo role=\"button\" kbqClampedListTrigger>\n @let config = localeConfiguration();\n\n @if (collapsedState()) {\n <i kbq-icon=\"kbq-chevron-down_16\"></i>\n <span class=\"kbq-link__text\">{{ config.openText }}</span>\n } @else {\n <i kbq-icon=\"kbq-chevron-up_16\"></i>\n <span class=\"kbq-link__text\">{{ config.closeText }}</span>\n }\n </span>\n }\n `,\n styleUrls: ['./clamped-text.scss'],\n providers: [\n { provide: KbqClampedRoot, useExisting: KbqClampedText }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'kbq-clamped-text',\n '[attr.aria-expanded]': 'collapsedState() ? \"false\" : \"true\"'\n },\n exportAs: 'kbqClampedText'\n})\nexport class KbqClampedText implements KbqClamped, AfterViewInit {\n /**\n * Max rows before text is clamped.\n * @default kbqClampedTextDefaultMaxRows\n */\n readonly rows = input<number>(kbqClampedTextDefaultMaxRows);\n /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */\n readonly isCollapsed = input<boolean>();\n /**\n * Debounce time on resize observer when recalculating toggle and text visibility.\n * @default 0\n */\n readonly debounceTime = input(0, { transform: numberAttribute });\n /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */\n readonly isCollapsedChange = output<boolean>();\n\n /** @docs-private */\n readonly text = viewChild.required<ElementRef<HTMLSpanElement>>('text');\n /** @docs-private */\n readonly textContainer = viewChild.required<ElementRef<HTMLDivElement>>('textContainer');\n\n /**\n * This flag controls event emission, aria/css-class calculation\n * @docs-private\n */\n protected readonly collapsedState = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly isToggleCollapsed = signal<boolean | undefined>(undefined);\n /** @docs-private */\n protected readonly lineClamp = signal<number | null>(null);\n /** @docs-private */\n readonly hasToggle = signal(true);\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly resizeObserver = inject(SharedResizeObserver);\n private readonly platform = inject(Platform);\n\n /**\n * Clamped text locale configuration.\n * @docs-private\n */\n readonly localeConfiguration = kbqInjectKbqClampedLocaleConfiguration();\n\n /**\n * This flag is used to prevent trigger resize observer on toggle click.\n */\n private isEventFromToggle = false;\n\n constructor() {\n toObservable(this.isCollapsed)\n .pipe(pairwise(), takeUntilDestroyed())\n .subscribe(([previous, current]) => {\n this.collapsedState.set(current);\n // store previous collapsed value to reduce unnecessary changes\n this.isToggleCollapsed.set(!this.hasToggle() ? previous : current);\n });\n\n toObservable(this.collapsedState)\n .pipe(skip(1), takeUntilDestroyed())\n .subscribe((collapsed) => {\n if (collapsed === undefined) return;\n this.isCollapsedChange.emit(collapsed);\n });\n\n toObservable(this.rows)\n .pipe(takeUntilDestroyed())\n .subscribe((rows) => this.lineClamp.set(rows));\n }\n\n ngAfterViewInit(): void {\n if (!this.platform.isBrowser) return;\n\n const textContainer = this.textContainer().nativeElement;\n\n this.resizeObserver\n .observe(textContainer)\n .pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.updateToggleVisibilityState();\n this.updateCollapsedState();\n });\n }\n\n /** @docs-private */\n toggle(event: Event): void {\n event.stopPropagation();\n\n this.collapsedState.update((state) => this.toggleCollapseState(this.isToggleCollapsed() ?? state));\n this.isToggleCollapsed.update(this.toggleCollapseState);\n\n this.isEventFromToggle = true;\n\n if (this.collapsedState()) {\n setTimeout(() => this.elementRef.nativeElement.scrollIntoView({ block: 'center', inline: 'center' }));\n }\n }\n\n private updateToggleVisibilityState(): void {\n this.hasToggle.set(this.getRowsCount() > this.rows() + 1);\n }\n\n private updateCollapsedState(): void {\n if (this.isEventFromToggle) {\n this.isEventFromToggle = false;\n\n return;\n }\n\n this.collapsedState.set(this.hasToggle() && (this.isToggleCollapsed() ?? true));\n }\n\n /**\n * Calculates next collapsed state according to previous one.\n * `undefined` is treated as collapsed and not touched stated.\n */\n private toggleCollapseState = (state: boolean | undefined): boolean => {\n const isCollapsed = state ?? true;\n\n return !isCollapsed;\n };\n\n private getRowsCount(): number {\n const rects = Array.from(this.text().nativeElement.getClientRects());\n\n return [...new Set(rects.map(({ top }) => top))].length;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { KbqClampedList, KbqClampedListTrigger } from './clamped-list';\nimport { KbqClampedText } from './clamped-text';\n\nconst COMPONENTS = [\n KbqClampedText,\n KbqClampedList,\n KbqClampedListTrigger\n];\n\n@NgModule({\n imports: COMPONENTS,\n exports: COMPONENTS\n})\nexport class KbqClampedTextModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -601,6 +601,8 @@ class KbqCodeBlock {
601
601
  * has a scroll, and the calculated maximum height is not set.
602
602
  */
603
603
  get canCodeContentBeFocused() {
604
+ if (!this.platform.isBrowser)
605
+ return false;
604
606
  const element = this.scrollableCodeContent()?.getElementRef().nativeElement;
605
607
  return element && this.hasScroll(element) && !this.calculatedMaxHeight;
606
608
  }
@@ -791,6 +793,8 @@ class KbqCodeBlock {
791
793
  });
792
794
  }
793
795
  setupContentOverflowDetection() {
796
+ if (!this.platform.isBrowser)
797
+ return;
794
798
  if (!this.maxHeight())
795
799
  return;
796
800
  const checkOverflow = () => {