@koobiq/components 18.31.0 → 18.33.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 (305) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-config.d.ts +2 -0
  3. package/actions-panel/actions-panel.d.ts +3 -57
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  5. package/autocomplete/autocomplete.component.d.ts +1 -0
  6. package/autocomplete/autocomplete.module.d.ts +1 -1
  7. package/button-toggle/button-toggle.module.d.ts +3 -4
  8. package/code-block/code-block-highlight.d.ts +1 -2
  9. package/code-block/code-block.d.ts +57 -10
  10. package/core/common-behaviors/color.d.ts +3 -0
  11. package/core/common-behaviors/common-module.d.ts +16 -3
  12. package/core/form-field/form-field-ref.d.ts +5 -3
  13. package/core/option/action-container.d.ts +5 -0
  14. package/core/option/action-container.scss +45 -0
  15. package/core/option/action.d.ts +1 -4
  16. package/core/option/action.scss +13 -12
  17. package/core/option/index.d.ts +1 -0
  18. package/core/option/option.d.ts +6 -5
  19. package/core/public-api.d.ts +1 -0
  20. package/core/styles/common/_select.scss +60 -37
  21. package/core/styles/common/_tokens.scss +2 -0
  22. package/core/styles/theming/_theming.scss +0 -4
  23. package/core/tokens/index.d.ts +1 -0
  24. package/core/tokens/window.d.ts +5 -0
  25. package/core/validation/validation.d.ts +23 -2
  26. package/datepicker/datepicker-input.scss +1 -5
  27. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  28. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  29. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  30. package/esm2022/accordion/accordion.component.mjs +2 -2
  31. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  32. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  33. package/esm2022/alert/alert.component.mjs +2 -2
  34. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  35. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  36. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  37. package/esm2022/badge/badge.component.mjs +2 -2
  38. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
  39. package/esm2022/button/button.component.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  41. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  42. package/esm2022/checkbox/checkbox.mjs +2 -2
  43. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  44. package/esm2022/code-block/code-block.mjs +60 -18
  45. package/esm2022/core/common-behaviors/color.mjs +4 -1
  46. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  47. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  48. package/esm2022/core/option/action-container.mjs +23 -0
  49. package/esm2022/core/option/action.mjs +16 -30
  50. package/esm2022/core/option/index.mjs +2 -1
  51. package/esm2022/core/option/optgroup.mjs +2 -2
  52. package/esm2022/core/option/option.mjs +10 -8
  53. package/esm2022/core/public-api.mjs +2 -1
  54. package/esm2022/core/tokens/index.mjs +2 -0
  55. package/esm2022/core/tokens/window.mjs +19 -0
  56. package/esm2022/core/utils/utils.mjs +2 -1
  57. package/esm2022/core/validation/validation.mjs +21 -2
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  60. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  61. package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
  62. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  63. package/esm2022/dl/dl.component.mjs +2 -2
  64. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  65. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  66. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  67. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  68. package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
  69. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  70. package/esm2022/filter-bar/filter-bar.mjs +21 -5
  71. package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
  72. package/esm2022/filter-bar/filter-reset.mjs +2 -1
  73. package/esm2022/filter-bar/filter-search.mjs +2 -2
  74. package/esm2022/filter-bar/filters.mjs +4 -3
  75. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  76. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
  77. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
  78. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
  79. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  80. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  81. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  82. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  83. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  84. package/esm2022/form-field/cleaner.mjs +11 -6
  85. package/esm2022/form-field/error.mjs +20 -0
  86. package/esm2022/form-field/fieldset.mjs +84 -0
  87. package/esm2022/form-field/form-field-control.mjs +2 -2
  88. package/esm2022/form-field/form-field.mjs +247 -74
  89. package/esm2022/form-field/form-field.module.mjs +59 -47
  90. package/esm2022/form-field/hint.mjs +10 -18
  91. package/esm2022/form-field/label.mjs +19 -0
  92. package/esm2022/form-field/password-hint.mjs +7 -6
  93. package/esm2022/form-field/password-toggle.mjs +52 -27
  94. package/esm2022/form-field/prefix.mjs +9 -3
  95. package/esm2022/form-field/public-api.mjs +5 -2
  96. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  97. package/esm2022/form-field/stepper.mjs +34 -16
  98. package/esm2022/form-field/suffix.mjs +8 -3
  99. package/esm2022/form-field/validate.directive.mjs +16 -19
  100. package/esm2022/input/input-number.mjs +7 -2
  101. package/esm2022/input/input-password.mjs +2 -2
  102. package/esm2022/input/input.module.mjs +1 -5
  103. package/esm2022/list/list-selection.component.mjs +5 -5
  104. package/esm2022/list/list.component.mjs +2 -2
  105. package/esm2022/list/list.module.mjs +12 -5
  106. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  107. package/esm2022/modal/modal-util.mjs +2 -1
  108. package/esm2022/modal/modal.component.mjs +2 -2
  109. package/esm2022/navbar/navbar-item.component.mjs +12 -13
  110. package/esm2022/navbar/navbar.component.mjs +2 -2
  111. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  112. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  113. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  114. package/esm2022/popover/popover.component.mjs +3 -3
  115. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  116. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  117. package/esm2022/radio/radio.component.mjs +2 -2
  118. package/esm2022/radio/radio.module.mjs +4 -5
  119. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  120. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  121. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  122. package/esm2022/select/select.component.mjs +42 -22
  123. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  124. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  125. package/esm2022/splitter/splitter.component.mjs +5 -3
  126. package/esm2022/table/table.component.mjs +2 -2
  127. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  128. package/esm2022/tabs/tabs.module.mjs +1 -5
  129. package/esm2022/tags/tag-list.component.mjs +2 -2
  130. package/esm2022/textarea/textarea.component.mjs +7 -6
  131. package/esm2022/textarea/textarea.module.mjs +4 -5
  132. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  133. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  134. package/esm2022/toast/toast-animations.mjs +2 -2
  135. package/esm2022/toast/toast.component.mjs +3 -3
  136. package/esm2022/toggle/toggle.component.mjs +3 -3
  137. package/esm2022/toggle/toggle.module.mjs +4 -5
  138. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  139. package/esm2022/top-bar/top-bar.mjs +2 -2
  140. package/esm2022/tree/padding.directive.mjs +8 -6
  141. package/esm2022/tree/toggle.mjs +2 -2
  142. package/esm2022/tree/tree-option.component.mjs +3 -3
  143. package/esm2022/tree/tree-selection.component.mjs +2 -2
  144. package/esm2022/tree/tree.mjs +2 -2
  145. package/esm2022/tree/tree.module.mjs +8 -5
  146. package/esm2022/tree-select/tree-select.component.mjs +50 -31
  147. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  148. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  150. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-alert.mjs +2 -2
  152. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  154. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-badge.mjs +2 -2
  156. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
  158. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
  160. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-button.mjs +3 -2
  162. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  164. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  166. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-core.mjs +109 -69
  168. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-datepicker.mjs +10 -6
  170. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-dl.mjs +2 -2
  172. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-dropdown.mjs +5 -4
  174. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  176. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  178. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-file-upload.mjs +5 -5
  180. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
  182. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-form-field.mjs +611 -220
  184. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-input.mjs +8 -6
  186. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-list.mjs +17 -10
  188. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  190. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-modal.mjs +3 -2
  192. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-navbar.mjs +15 -16
  194. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  196. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-popover.mjs +4 -4
  198. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  200. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  202. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-radio.mjs +6 -6
  204. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  206. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  208. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-select.mjs +42 -22
  210. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
  212. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  214. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-table.mjs +2 -2
  216. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  218. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-tags.mjs +2 -2
  220. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  222. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  224. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-toast.mjs +3 -3
  226. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  228. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  230. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  232. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-tree-select.mjs +50 -31
  234. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-tree.mjs +22 -17
  236. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  237. package/file-upload/_file-upload-theme.scss +9 -0
  238. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  239. package/filter-bar/filter-bar.d.ts +2 -0
  240. package/filter-bar/filter-bar.types.d.ts +2 -2
  241. package/form-field/_fiedset-theme.scss +13 -0
  242. package/form-field/_form-field-theme.scss +29 -13
  243. package/form-field/_hint-theme.scss +21 -22
  244. package/form-field/cleaner.d.ts +5 -1
  245. package/form-field/cleaner.scss +1 -4
  246. package/form-field/error.d.ts +8 -0
  247. package/form-field/fieldset-tokens.scss +5 -0
  248. package/form-field/fieldset.d.ts +27 -0
  249. package/form-field/fieldset.scss +93 -0
  250. package/form-field/form-field-control.d.ts +1 -1
  251. package/form-field/form-field-tokens.scss +13 -3
  252. package/form-field/form-field.d.ts +210 -22
  253. package/form-field/form-field.module.d.ts +14 -12
  254. package/form-field/form-field.scss +58 -78
  255. package/form-field/hint.d.ts +5 -1
  256. package/form-field/hint.scss +3 -5
  257. package/form-field/label.d.ts +6 -0
  258. package/form-field/password-hint.d.ts +1 -1
  259. package/form-field/password-toggle.d.ts +25 -11
  260. package/form-field/password-toggle.scss +1 -2
  261. package/form-field/prefix.d.ts +2 -1
  262. package/form-field/public-api.d.ts +4 -1
  263. package/form-field/reactive-password-hint.d.ts +19 -0
  264. package/form-field/stepper.d.ts +20 -8
  265. package/form-field/stepper.scss +12 -11
  266. package/form-field/suffix.d.ts +2 -1
  267. package/form-field/validate.directive.d.ts +10 -12
  268. package/input/input-tokens.scss +2 -2
  269. package/input/input.module.d.ts +3 -4
  270. package/input/input.scss +1 -2
  271. package/list/_list-theme.scss +4 -1
  272. package/list/list.module.d.ts +2 -1
  273. package/list/list.scss +6 -12
  274. package/navbar/navbar-item.component.d.ts +3 -1
  275. package/overflow-items/overflow-items.d.ts +12 -5
  276. package/package.json +4 -4
  277. package/prebuilt-themes/dark-theme.css +1 -1
  278. package/prebuilt-themes/light-theme.css +1 -1
  279. package/prebuilt-themes/theme.css +1 -1
  280. package/radio/radio.module.d.ts +1 -2
  281. package/schematics/ng-add/index.js +3 -3
  282. package/scrollbar/scrollbar.component.d.ts +1 -0
  283. package/select/select-tokens.scss +5 -4
  284. package/select/select.component.d.ts +12 -3
  285. package/sidepanel/sidepanel.module.d.ts +5 -6
  286. package/splitter/splitter.component.d.ts +1 -0
  287. package/tabs/paginated-tab-header.d.ts +1 -0
  288. package/tabs/tabs.module.d.ts +5 -6
  289. package/tags/tag-list.scss +8 -4
  290. package/textarea/textarea.component.d.ts +1 -0
  291. package/textarea/textarea.module.d.ts +2 -3
  292. package/timepicker/timepicker.scss +1 -1
  293. package/toast/toast.component.scss +2 -0
  294. package/toggle/_toggle-theme.scss +10 -2
  295. package/toggle/toggle-tokens.scss +7 -1
  296. package/toggle/toggle.module.d.ts +1 -2
  297. package/toggle/toggle.scss +6 -6
  298. package/top-bar/top-bar.scss +48 -32
  299. package/tree/_tree-theme.scss +13 -2
  300. package/tree/padding.directive.d.ts +1 -1
  301. package/tree/tree-option.scss +12 -17
  302. package/tree/tree.module.d.ts +1 -1
  303. package/tree-select/tree-select.component.d.ts +10 -1
  304. package/esm2022/form-field/form-field-errors.mjs +0 -7
  305. package/form-field/form-field-errors.d.ts +0 -2
@@ -2,7 +2,7 @@ import { Directionality } from '@angular/cdk/bidi';
2
2
  import { SelectionModel } from '@angular/cdk/collections';
3
3
  import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition, OverlayContainer } from '@angular/cdk/overlay';
4
4
  import { CdkVirtualForOf } from '@angular/cdk/scrolling';
5
- import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, OnInit, Provider, QueryList, Renderer2, TemplateRef } from '@angular/core';
5
+ import { AfterContentInit, AfterViewInit, ChangeDetectorRef, DestroyRef, DoCheck, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy, OnInit, Provider, QueryList, Renderer2, TemplateRef } from '@angular/core';
6
6
  import { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';
7
7
  import { ActiveDescendantKeyManager } from '@koobiq/cdk/a11y';
8
8
  import { CanUpdateErrorState, ErrorStateMatcher, KbqAbstractSelect, KbqComponentColors, KbqLocaleService, KbqOptgroup, KbqOption, KbqOptionBase, KbqOptionSelectionChange, KbqSelectMatcher, KbqSelectSearch, KbqSelectTrigger } from '@koobiq/components/core';
@@ -50,6 +50,8 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
50
50
  ngControl: NgControl;
51
51
  private readonly scrollStrategyFactory;
52
52
  protected localeService?: KbqLocaleService | undefined;
53
+ /** @docs-private */
54
+ protected readonly destroyRef: DestroyRef;
53
55
  protected readonly isBrowser: boolean;
54
56
  protected readonly defaultOptions: Partial<{
55
57
  /**
@@ -58,6 +60,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
58
60
  */
59
61
  panelWidth: KbqSelectPanelWidth;
60
62
  }> | null;
63
+ private readonly window;
61
64
  /** Whether the component is in an error state. */
62
65
  errorState: boolean;
63
66
  /**
@@ -130,6 +133,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
130
133
  * Follows the same logic as `Array.prototype.sort`.
131
134
  */
132
135
  sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;
136
+ /**
137
+ * Whether to use a multiline matcher or not. Default is false
138
+ */
139
+ multiline: boolean;
133
140
  /** Combined stream of all of the child options' change events. */
134
141
  readonly optionSelectionChanges: Observable<KbqOptionSelectionChange>;
135
142
  /** Event emitted when the select panel has been toggled. */
@@ -209,6 +216,8 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
209
216
  get firstFiltered(): boolean;
210
217
  /** @docs-private */
211
218
  get colorForState(): KbqComponentColors;
219
+ /** Whether multiple choice is enabled or not. True if multiple or multiline */
220
+ get multiSelection(): boolean;
212
221
  private closeSubscription;
213
222
  /** The scroll position of the overlay panel, calculated to center the selected option. */
214
223
  private scrollTop;
@@ -221,7 +230,6 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
221
230
  protected overlayMinWidth: string | number;
222
231
  /** Origin for the overlay panel. */
223
232
  protected overlayOrigin?: CdkOverlayOrigin | ElementRef;
224
- private readonly destroyRef;
225
233
  constructor(_changeDetectorRef: ChangeDetectorRef, _ngZone: NgZone, _renderer: Renderer2, defaultErrorStateMatcher: ErrorStateMatcher, elementRef: ElementRef, overlayContainer: OverlayContainer, _dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormField: KbqFormField, ngControl: NgControl, scrollStrategyFactory: any, localeService?: KbqLocaleService | undefined);
226
234
  ngOnInit(): void;
227
235
  ngAfterContentInit(): void;
@@ -349,7 +357,8 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
349
357
  private getTotalVisibleItems;
350
358
  private buildTriggerClone;
351
359
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; host: true; }, { optional: true; self: true; }, null, { optional: true; }]>;
352
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
360
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqSelect, "kbq-select", ["kbqSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "compareWith": { "alias": "compareWith"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; }; "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["footer", "cdkVirtualForOf", "customTrigger", "customMatcher", "customTagTemplateRef", "cleaner", "search", "options", "optionGroups"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "*", "kbq-select-footer,[kbq-select-footer]"], false, never>;
361
+ static ngAcceptInputType_multiline: unknown;
353
362
  static ngAcceptInputType_multiple: unknown;
354
363
  static ngAcceptInputType_panelMinWidth: unknown;
355
364
  static ngAcceptInputType_tabIndex: unknown;
@@ -3,13 +3,12 @@ import * as i1 from "./sidepanel-container.component";
3
3
  import * as i2 from "./sidepanel-directives";
4
4
  import * as i3 from "@angular/cdk/overlay";
5
5
  import * as i4 from "@angular/cdk/portal";
6
- import * as i5 from "@koobiq/components/core";
7
- import * as i6 from "@koobiq/components/button";
8
- import * as i7 from "@koobiq/components/icon";
9
- import * as i8 from "@koobiq/components/title";
10
- import * as i9 from "@angular/cdk/a11y";
6
+ import * as i5 from "@koobiq/components/button";
7
+ import * as i6 from "@koobiq/components/icon";
8
+ import * as i7 from "@koobiq/components/title";
9
+ import * as i8 from "@angular/cdk/a11y";
11
10
  export declare class KbqSidepanelModule {
12
11
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidepanelModule, never>;
13
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSidepanelModule, [typeof i1.KbqSidepanelContainerComponent, typeof i2.KbqSidepanelClose, typeof i2.KbqSidepanelHeader, typeof i2.KbqSidepanelBody, typeof i2.KbqSidepanelFooter, typeof i2.KbqSidepanelActions], [typeof i3.OverlayModule, typeof i4.PortalModule, typeof i5.KbqCommonModule, typeof i6.KbqButtonModule, typeof i7.KbqIconModule, typeof i8.KbqTitleModule, typeof i9.A11yModule], [typeof i1.KbqSidepanelContainerComponent, typeof i2.KbqSidepanelClose, typeof i2.KbqSidepanelHeader, typeof i2.KbqSidepanelBody, typeof i2.KbqSidepanelFooter, typeof i2.KbqSidepanelActions]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqSidepanelModule, [typeof i1.KbqSidepanelContainerComponent, typeof i2.KbqSidepanelClose, typeof i2.KbqSidepanelHeader, typeof i2.KbqSidepanelBody, typeof i2.KbqSidepanelFooter, typeof i2.KbqSidepanelActions], [typeof i3.OverlayModule, typeof i4.PortalModule, typeof i5.KbqButtonModule, typeof i6.KbqIconModule, typeof i7.KbqTitleModule, typeof i8.A11yModule], [typeof i1.KbqSidepanelContainerComponent, typeof i2.KbqSidepanelClose, typeof i2.KbqSidepanelHeader, typeof i2.KbqSidepanelBody, typeof i2.KbqSidepanelFooter, typeof i2.KbqSidepanelActions]>;
14
13
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqSidepanelModule>;
15
14
  }
@@ -112,6 +112,7 @@ export declare class KbqSplitterAreaDirective implements AfterViewInit, OnDestro
112
112
  private renderer;
113
113
  private splitter;
114
114
  sizeChange: EventEmitter<number>;
115
+ private readonly window;
115
116
  constructor(elementRef: ElementRef, renderer: Renderer2, splitter: KbqSplitterComponent);
116
117
  isResizing(): boolean;
117
118
  disableFlex(): void;
@@ -76,6 +76,7 @@ export declare abstract class KbqPaginatedTabHeader implements AfterContentCheck
76
76
  private readonly ngZone;
77
77
  private readonly platform;
78
78
  private readonly dir;
79
+ private readonly window;
79
80
  constructor();
80
81
  /** Called when the user has selected an item via the keyboard. */
81
82
  ngAfterViewInit(): void;
@@ -9,13 +9,12 @@ import * as i7 from "./tab-content.directive";
9
9
  import * as i8 from "@angular/cdk/portal";
10
10
  import * as i9 from "@angular/cdk/a11y";
11
11
  import * as i10 from "@angular/cdk/scrolling";
12
- import * as i11 from "@koobiq/components/core";
13
- import * as i12 from "@koobiq/components/icon";
14
- import * as i13 from "@koobiq/components/tooltip";
15
- import * as i14 from "@angular/cdk/observers";
16
- import * as i15 from "./tab-nav-bar";
12
+ import * as i11 from "@koobiq/components/icon";
13
+ import * as i12 from "@koobiq/components/tooltip";
14
+ import * as i13 from "@angular/cdk/observers";
15
+ import * as i14 from "./tab-nav-bar";
17
16
  export declare class KbqTabsModule {
18
17
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTabsModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTabsModule, [typeof i1.KbqTabGroup, typeof i2.KbqTabLabel, typeof i3.KbqTab, typeof i4.KbqTabLabelWrapper, typeof i5.KbqTabBody, typeof i5.KbqTabBodyPortal, typeof i6.KbqTabHeader, typeof i7.KbqTabContent, typeof i1.KbqAlignTabsCenterCssStyler, typeof i1.KbqAlignTabsEndCssStyler, typeof i1.KbqStretchTabsCssStyler, typeof i1.KbqVerticalTabsCssStyler], [typeof i8.PortalModule, typeof i9.A11yModule, typeof i10.CdkScrollableModule, typeof i11.KbqCommonModule, typeof i12.KbqIconModule, typeof i13.KbqToolTipModule, typeof i14.CdkObserveContent, typeof i15.KbqTabNavBar, typeof i15.KbqTabLink, typeof i15.KbqTabNavPanel], [typeof i1.KbqTabGroup, typeof i2.KbqTabLabel, typeof i3.KbqTab, typeof i4.KbqTabLabelWrapper, typeof i5.KbqTabBody, typeof i5.KbqTabBodyPortal, typeof i6.KbqTabHeader, typeof i7.KbqTabContent, typeof i1.KbqAlignTabsCenterCssStyler, typeof i1.KbqAlignTabsEndCssStyler, typeof i1.KbqStretchTabsCssStyler, typeof i1.KbqVerticalTabsCssStyler, typeof i15.KbqTabNavBar, typeof i15.KbqTabLink, typeof i15.KbqTabNavPanel]>;
18
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTabsModule, [typeof i1.KbqTabGroup, typeof i2.KbqTabLabel, typeof i3.KbqTab, typeof i4.KbqTabLabelWrapper, typeof i5.KbqTabBody, typeof i5.KbqTabBodyPortal, typeof i6.KbqTabHeader, typeof i7.KbqTabContent, typeof i1.KbqAlignTabsCenterCssStyler, typeof i1.KbqAlignTabsEndCssStyler, typeof i1.KbqStretchTabsCssStyler, typeof i1.KbqVerticalTabsCssStyler], [typeof i8.PortalModule, typeof i9.A11yModule, typeof i10.CdkScrollableModule, typeof i11.KbqIconModule, typeof i12.KbqToolTipModule, typeof i13.CdkObserveContent, typeof i14.KbqTabNavBar, typeof i14.KbqTabLink, typeof i14.KbqTabNavPanel], [typeof i1.KbqTabGroup, typeof i2.KbqTabLabel, typeof i3.KbqTab, typeof i4.KbqTabLabelWrapper, typeof i5.KbqTabBody, typeof i5.KbqTabBodyPortal, typeof i6.KbqTabHeader, typeof i7.KbqTabContent, typeof i1.KbqAlignTabsCenterCssStyler, typeof i1.KbqAlignTabsEndCssStyler, typeof i1.KbqStretchTabsCssStyler, typeof i1.KbqVerticalTabsCssStyler, typeof i14.KbqTabNavBar, typeof i14.KbqTabLink, typeof i14.KbqTabNavPanel]>;
20
19
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqTabsModule>;
21
20
  }
@@ -57,9 +57,13 @@
57
57
 
58
58
  .kbq-form-field-type-tag-list {
59
59
  & .kbq-form-field__container {
60
- padding: kbq-difference-series-css-variables([tag-input-size-padding-vertical, form-field-size-border-width])
61
- var(--kbq-tag-input-size-padding-right)
62
- kbq-difference-series-css-variables([tag-input-size-padding-vertical, form-field-size-border-width])
63
- var(--kbq-tag-input-size-padding-left);
60
+ padding-top: kbq-difference-series-css-variables(
61
+ [tag-input-size-padding-vertical,
62
+ form-field-size-border-width]
63
+ );
64
+ padding-bottom: kbq-difference-series-css-variables(
65
+ [tag-input-size-padding-vertical,
66
+ form-field-size-border-width]
67
+ );
64
68
  }
65
69
  }
@@ -23,6 +23,7 @@ export declare class KbqTextarea implements KbqFormFieldControl<any>, OnInit, On
23
23
  set canGrow(value: boolean);
24
24
  protected readonly isBrowser: boolean;
25
25
  protected readonly renderer: Renderer2;
26
+ private readonly window;
26
27
  private _canGrow;
27
28
  /** Maximum number of lines to which the textarea will grow. Default unlimited */
28
29
  maxRows: number;
@@ -1,10 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./textarea.component";
3
3
  import * as i2 from "@angular/cdk/a11y";
4
- import * as i3 from "@koobiq/components/core";
5
- import * as i4 from "@angular/forms";
4
+ import * as i3 from "@angular/forms";
6
5
  export declare class KbqTextareaModule {
7
6
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTextareaModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTextareaModule, [typeof i1.KbqTextarea], [typeof i2.A11yModule, typeof i3.KbqCommonModule, typeof i4.FormsModule], [typeof i1.KbqTextarea]>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTextareaModule, [typeof i1.KbqTextarea], [typeof i2.A11yModule, typeof i3.FormsModule], [typeof i1.KbqTextarea]>;
9
8
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqTextareaModule>;
10
9
  }
@@ -6,5 +6,5 @@
6
6
  }
7
7
 
8
8
  .kbq-form-field-type-timepicker {
9
- width: auto;
9
+ width: 136px;
10
10
  }
@@ -70,6 +70,8 @@
70
70
  .kbq-toast__content {
71
71
  display: flex;
72
72
  flex-direction: column;
73
+
74
+ white-space: pre-wrap;
73
75
  }
74
76
 
75
77
  .kbq-toast__actions {
@@ -49,10 +49,18 @@
49
49
  }
50
50
  }
51
51
 
52
- &.kbq-disabled,
53
- &.kbq-active.kbq-disabled {
52
+ &.kbq-disabled {
54
53
  @include _kbq-toggle-state($type, states-disabled);
55
54
  }
55
+
56
+ &.kbq-active.kbq-disabled,
57
+ &.kbq-indeterminate.kbq-disabled {
58
+ @include _kbq-toggle-state($type, states-active-disabled);
59
+
60
+ .kbq-toggle-bar {
61
+ opacity: var(--kbq-opacity-disabled);
62
+ }
63
+ }
56
64
  }
57
65
 
58
66
  @mixin kbq-toggle-theme() {
@@ -30,13 +30,16 @@
30
30
  --kbq-toggle-theme-states-disabled-border: var(--kbq-states-line-disabled);
31
31
  --kbq-toggle-theme-states-disabled-background: var(--kbq-states-background-disabled);
32
32
  --kbq-toggle-theme-states-disabled-circle-background: var(--kbq-states-icon-disabled);
33
+ --kbq-toggle-theme-states-active-disabled-border: var(--kbq-background-theme);
34
+ --kbq-toggle-theme-states-active-disabled-background: var(--kbq-background-theme);
35
+ --kbq-toggle-theme-states-active-disabled-circle-background: var(--kbq-icon-white);
33
36
  --kbq-toggle-error-default-border: var(--kbq-line-error);
34
37
  --kbq-toggle-error-default-background: var(--kbq-background-error-less);
35
38
  --kbq-toggle-error-default-circle-background: var(--kbq-icon-error);
36
39
  --kbq-toggle-error-states-hover-border: var(--kbq-line-error);
37
40
  --kbq-toggle-error-states-hover-background: var(--kbq-states-background-error-fade-hover);
38
41
  --kbq-toggle-error-states-hover-circle-background: var(--kbq-icon-error);
39
- --kbq-toggle-error-states-checked-border: var(--kbq-line-error);
42
+ --kbq-toggle-error-states-checked-border: var(--kbq-background-error);
40
43
  --kbq-toggle-error-states-checked-background: var(--kbq-background-error);
41
44
  --kbq-toggle-error-states-checked-circle-background: var(--kbq-icon-white);
42
45
  --kbq-toggle-error-states-checked-hover-border: var(--kbq-line-error);
@@ -53,4 +56,7 @@
53
56
  --kbq-toggle-error-states-disabled-border: var(--kbq-states-line-disabled);
54
57
  --kbq-toggle-error-states-disabled-background: var(--kbq-states-background-disabled);
55
58
  --kbq-toggle-error-states-disabled-circle-background: var(--kbq-states-icon-disabled);
59
+ --kbq-toggle-error-states-active-disabled-border: var(--kbq-background-error);
60
+ --kbq-toggle-error-states-active-disabled-background: var(--kbq-background-error);
61
+ --kbq-toggle-error-states-active-disabled-circle-background: var(--kbq-icon-white);
56
62
  }
@@ -1,9 +1,8 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./toggle.component";
3
3
  import * as i2 from "@angular/cdk/a11y";
4
- import * as i3 from "@koobiq/components/core";
5
4
  export declare class KbqToggleModule {
6
5
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqToggleModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqToggleModule, [typeof i1.KbqToggleComponent], [typeof i2.A11yModule, typeof i3.KbqCommonModule], [typeof i1.KbqToggleComponent]>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqToggleModule, [typeof i1.KbqToggleComponent], [typeof i2.A11yModule], [typeof i1.KbqToggleComponent]>;
8
7
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqToggleModule>;
9
8
  }
@@ -84,15 +84,15 @@ $toggle-thumb-offset: 8px;
84
84
  }
85
85
  }
86
86
 
87
- .kbq-toggle-bar {
87
+ &:not(.kbq-disabled) .kbq-toggle-bar:hover {
88
88
  .kbq-toggle__thumb {
89
- display: block;
89
+ left: $toggle-thumb-offset + 2px;
90
90
  }
91
+ }
91
92
 
92
- &:hover {
93
- .kbq-toggle__thumb {
94
- left: $toggle-thumb-offset + 2px;
95
- }
93
+ .kbq-toggle-bar {
94
+ .kbq-toggle__thumb {
95
+ display: block;
96
96
  }
97
97
  }
98
98
  }
@@ -1,5 +1,24 @@
1
1
  @use '../core/styles/common/tokens';
2
2
 
3
+ @mixin _overflow-items-margins {
4
+ padding: var(--kbq-size-border-width);
5
+
6
+ > .kbq-overflow-item {
7
+ &:not(:last-of-type) {
8
+ margin-right: var(--kbq-top-bar-container-end-gap);
9
+ }
10
+
11
+ // apply margin if the last item needs to be alwaysVisible
12
+ &:last-of-type:is(.kbq-overflow-item_always-visible) + .kbq-overflow-items-result {
13
+ margin-left: var(--kbq-top-bar-container-end-gap);
14
+ }
15
+ }
16
+
17
+ .kbq-overflow-items-result:first-child {
18
+ margin-right: var(--kbq-top-bar-container-end-gap);
19
+ }
20
+ }
21
+
3
22
  .kbq-top-bar {
4
23
  display: flex;
5
24
  align-items: center;
@@ -12,49 +31,46 @@
12
31
  padding: var(--kbq-top-bar-padding-vertical) var(--kbq-top-bar-padding-horizontal);
13
32
  border-radius: var(--kbq-top-bar-border-radius);
14
33
 
34
+ &.kbq-top-bar_with-shadow {
35
+ box-shadow: var(--kbq-top-bar-shadow-bottom);
36
+ transition: box-shadow var(--kbq-top-bar-shadow-transition);
37
+ }
38
+
15
39
  .kbq-top-bar-spacer {
16
40
  height: 100%;
17
41
  flex: 0 0 var(--kbq-top-bar-spacer-min-width);
18
42
  }
19
43
 
20
- .kbq-top-bar-container__start {
21
- display: flex;
22
- gap: var(--kbq-top-bar-container-start-gap);
23
- flex: 1 0 var(--kbq-top-bar-container-start-basis);
24
- justify-content: flex-start;
25
- min-width: 0;
26
- }
27
-
28
- .kbq-top-bar-container__end {
29
- display: flex;
30
- gap: var(--kbq-top-bar-container-end-gap);
31
- justify-content: end;
32
- }
33
-
34
- .kbq-top-bar-container__with-overflow-items {
35
- gap: unset;
36
- justify-content: unset;
37
- padding: 1px;
44
+ .kbq-top-bar-container {
45
+ &:has(> .kbq-overflow-items) {
46
+ gap: unset;
47
+ overflow: hidden;
48
+ }
38
49
 
39
- > .kbq-overflow-item {
40
- &:not(:last-of-type) {
41
- margin-right: var(--kbq-top-bar-container-end-gap);
42
- }
50
+ .kbq-overflow-items {
51
+ @include _overflow-items-margins;
52
+ }
43
53
 
44
- // apply margin if the last item needs to be alwaysVisible
45
- &:last-of-type:is([aria-hidden='false']) + .kbq-overflow-items-result {
46
- margin-left: var(--kbq-top-bar-container-end-gap);
47
- }
54
+ &.kbq-top-bar-container__start {
55
+ display: flex;
56
+ gap: var(--kbq-top-bar-container-start-gap);
57
+ flex: 1 0 var(--kbq-top-bar-container-start-basis);
58
+ justify-content: flex-start;
59
+ min-width: 0;
48
60
  }
49
61
 
50
- .kbq-overflow-items-result:first-child {
51
- margin-right: var(--kbq-top-bar-container-end-gap);
62
+ &.kbq-top-bar-container__end {
63
+ display: flex;
64
+ gap: var(--kbq-top-bar-container-end-gap);
65
+ justify-content: end;
52
66
  }
53
- }
54
67
 
55
- &.kbq-top-bar_with-shadow {
56
- box-shadow: var(--kbq-top-bar-shadow-bottom);
57
- transition: box-shadow var(--kbq-top-bar-shadow-transition);
68
+ &.kbq-top-bar-container__with-overflow-items {
69
+ gap: unset;
70
+ justify-content: unset;
71
+
72
+ @include _overflow-items-margins;
73
+ }
58
74
  }
59
75
 
60
76
  @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
@@ -3,6 +3,8 @@
3
3
  @use '../core/styles/common/tokens' as *;
4
4
 
5
5
  @mixin kbq-tree-option($state-name) {
6
+ --kbq-option-background: var(--kbq-tree-#{$state-name}-container-background);
7
+
6
8
  background: var(--kbq-tree-#{$state-name}-container-background);
7
9
 
8
10
  .kbq-option-text {
@@ -34,11 +36,14 @@
34
36
  @include kbq-tree-option(default);
35
37
 
36
38
  &:not(.kbq-disabled) {
37
- &:hover {
39
+ &:hover,
40
+ &.kbq-action-button-focused {
38
41
  @include kbq-tree-option(states-hover);
39
42
  }
40
43
 
41
44
  &:active {
45
+ --kbq-option-background: var(--kbq-tree-states-active-container-background);
46
+
42
47
  background: var(--kbq-tree-states-active-container-background);
43
48
  }
44
49
 
@@ -50,6 +55,8 @@
50
55
  }
51
56
 
52
57
  &:active {
58
+ --kbq-option-background: var(--kbq-tree-states-selected-active-container-background);
59
+
53
60
  background: var(--kbq-tree-states-selected-active-container-background);
54
61
  }
55
62
  }
@@ -78,8 +85,12 @@
78
85
  }
79
86
 
80
87
  .cdk-keyboard-focused {
81
- & .kbq-tree-option.kbq-focused {
88
+ & .kbq-tree-option.kbq-focused:not(.kbq-action-button-focused) {
82
89
  border-color: var(--kbq-tree-states-focused-focus-outline-color);
90
+
91
+ & .kbq-action-container {
92
+ display: flex;
93
+ }
83
94
  }
84
95
  }
85
96
  }
@@ -17,9 +17,9 @@ export declare class KbqTreeNodePadding<T> implements AfterViewInit {
17
17
  set indent(indent: number | string);
18
18
  private _indent;
19
19
  get leftPadding(): number;
20
+ get leftPaddingForFirstLevel(): number;
20
21
  /** CSS units used for the indentation value. */
21
22
  indentUnits: string;
22
- baseLeftPadding: number;
23
23
  withIcon: boolean;
24
24
  iconWidth: number;
25
25
  constructor(treeNode: KbqTreeNode<T>, tree: KbqTreeBase<T>, renderer: Renderer2, element: ElementRef<HTMLElement>, option: KbqTreeOption, dir: Directionality);
@@ -5,6 +5,8 @@
5
5
  .kbq-tree-option {
6
6
  @include vendor-prefixes.user-select(none);
7
7
 
8
+ position: relative;
9
+
8
10
  box-sizing: border-box;
9
11
 
10
12
  display: flex;
@@ -20,15 +22,15 @@
20
22
  border-radius: var(--kbq-tree-option-border-radius);
21
23
 
22
24
  padding-top: kbq-difference-series-css-variables(
23
- [ tree-size-container-padding-vertical,
25
+ [tree-size-container-padding-vertical,
24
26
  tree-size-container-focus-outline-width]
25
27
  );
26
28
  padding-right: kbq-difference-series-css-variables(
27
- [ tree-size-container-padding-right,
29
+ [tree-size-container-padding-right,
28
30
  tree-size-container-focus-outline-width]
29
31
  );
30
32
  padding-bottom: kbq-difference-series-css-variables(
31
- [ tree-size-container-padding-vertical,
33
+ [tree-size-container-padding-vertical,
32
34
  tree-size-container-focus-outline-width]
33
35
  );
34
36
 
@@ -48,25 +50,18 @@
48
50
  outline: none;
49
51
  }
50
52
 
51
- &.kbq-disabled {
52
- .kbq-icon {
53
- cursor: default;
54
- }
53
+ &.kbq-disabled .kbq-icon {
54
+ cursor: default;
55
55
  }
56
56
 
57
57
  &:not(.kbq-disabled) {
58
58
  cursor: pointer;
59
- }
60
-
61
- & .kbq-option-action {
62
- display: none;
63
- }
64
59
 
65
- &:not(.kbq-disabled):hover,
66
- &:not(.kbq-disabled).kbq-focused,
67
- &:not(.kbq-disabled).kbq-action-button-focused {
68
- & .kbq-option-action {
69
- display: flex;
60
+ &:hover,
61
+ &.kbq-action-button-focused {
62
+ & .kbq-action-container {
63
+ display: flex;
64
+ }
70
65
  }
71
66
  }
72
67
 
@@ -11,6 +11,6 @@ import * as i9 from "@koobiq/components/core";
11
11
  import * as i10 from "@koobiq/components/icon";
12
12
  export declare class KbqTreeModule {
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTreeModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTreeModule, [typeof i1.KbqTreeNodeOutlet, typeof i2.KbqTreeNodeDef, typeof i3.KbqTreeNode, typeof i4.KbqTreeNodePadding, typeof i5.KbqTree, typeof i6.KbqTreeSelection, typeof i7.KbqTreeOption, typeof i8.KbqTreeNodeToggleComponent, typeof i8.KbqTreeNodeToggleDirective], [typeof i9.KbqPseudoCheckboxModule, typeof i10.KbqIconModule], [typeof i1.KbqTreeNodeOutlet, typeof i2.KbqTreeNodeDef, typeof i3.KbqTreeNode, typeof i4.KbqTreeNodePadding, typeof i5.KbqTree, typeof i6.KbqTreeSelection, typeof i7.KbqTreeOption, typeof i8.KbqTreeNodeToggleComponent, typeof i8.KbqTreeNodeToggleDirective]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqTreeModule, [typeof i1.KbqTreeNodeOutlet, typeof i2.KbqTreeNodeDef, typeof i3.KbqTreeNode, typeof i4.KbqTreeNodePadding, typeof i5.KbqTree, typeof i6.KbqTreeSelection, typeof i7.KbqTreeOption, typeof i8.KbqTreeNodeToggleComponent, typeof i8.KbqTreeNodeToggleDirective], [typeof i9.KbqPseudoCheckboxModule, typeof i10.KbqIconModule, typeof i9.KbqActionContainer], [typeof i1.KbqTreeNodeOutlet, typeof i2.KbqTreeNodeDef, typeof i3.KbqTreeNode, typeof i4.KbqTreeNodePadding, typeof i5.KbqTree, typeof i6.KbqTreeSelection, typeof i7.KbqTreeOption, typeof i8.KbqTreeNodeToggleComponent, typeof i8.KbqTreeNodeToggleDirective]>;
15
15
  static ɵinj: i0.ɵɵInjectorDeclaration<KbqTreeModule>;
16
16
  }
@@ -135,6 +135,10 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
135
135
  * Follows the same logic as `Array.prototype.sort`.
136
136
  */
137
137
  sortComparator: (a: KbqTreeOption, b: KbqTreeOption, options: KbqTreeOption[]) => number;
138
+ /**
139
+ * Whether to use a multiline matcher or not. Default is false
140
+ */
141
+ multiline: boolean;
138
142
  /** Combined stream of all of the child options' change events. */
139
143
  readonly optionSelectionChanges: Observable<KbqTreeSelectChange>;
140
144
  /** Combined stream of all of the child options userInteraction events. */
@@ -174,6 +178,8 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
174
178
  /** Whether the select is focused. */
175
179
  get focused(): boolean;
176
180
  set focused(value: boolean);
181
+ /** Whether multiple choice is enabled or not. True if multiple or multiline */
182
+ get multiSelection(): boolean;
177
183
  private _focused;
178
184
  /** Width of the overlay panel. */
179
185
  protected overlayWidth: string | number;
@@ -201,6 +207,7 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
201
207
  private readonly uid;
202
208
  private tempValues;
203
209
  private readonly destroyRef;
210
+ private readonly window;
204
211
  constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone, renderer: Renderer2, defaultErrorStateMatcher: ErrorStateMatcher, scrollStrategyFactory: any, dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, parentFormField: KbqFormField, ngControl: NgControl, localeService?: KbqLocaleService | undefined);
205
212
  ngOnInit(): void;
206
213
  ngAfterContentInit(): void;
@@ -302,7 +309,9 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
302
309
  private scrollActiveOptionIntoView;
303
310
  private subscribeOnSearchChanges;
304
311
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqTreeSelect, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; host: true; }, { optional: true; self: true; }, { optional: true; }]>;
305
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqTreeSelect, "kbq-tree-select", ["kbqTreeSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "customMatcher", "customTagTemplateRef", "tree", "search"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "kbq-tree-selection", "kbq-select-footer,[kbq-tree-select-footer]"], false, never>;
312
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqTreeSelect, "kbq-tree-select", ["kbqTreeSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; }; "multiline": { "alias": "multiline"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "customMatcher", "customTagTemplateRef", "tree", "search"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "kbq-tree-selection", "kbq-select-footer,[kbq-tree-select-footer]"], false, never>;
313
+ static ngAcceptInputType_multiline: unknown;
314
+ static ngAcceptInputType_multiple: unknown;
306
315
  static ngAcceptInputType_tabIndex: unknown;
307
316
  static ngAcceptInputType_disabled: unknown;
308
317
  }
@@ -1,7 +0,0 @@
1
- export function getKbqFormFieldMissingControlError() {
2
- return Error('kbq-form-field must contain a KbqFormFieldControl.');
3
- }
4
- export function getKbqFormFieldYouCanNotUseCleanerInNumberInputError() {
5
- return Error(`You can't use kbq-cleaner with input that have type="number"`);
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGtDQUFrQztJQUM5QyxPQUFPLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLFVBQVUsb0RBQW9EO0lBQ2hFLE9BQU8sS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRLYnFGb3JtRmllbGRNaXNzaW5nQ29udHJvbEVycm9yKCk6IEVycm9yIHtcbiAgICByZXR1cm4gRXJyb3IoJ2ticS1mb3JtLWZpZWxkIG11c3QgY29udGFpbiBhIEticUZvcm1GaWVsZENvbnRyb2wuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLYnFGb3JtRmllbGRZb3VDYW5Ob3RVc2VDbGVhbmVySW5OdW1iZXJJbnB1dEVycm9yKCk6IEVycm9yIHtcbiAgICByZXR1cm4gRXJyb3IoYFlvdSBjYW4ndCB1c2Uga2JxLWNsZWFuZXIgd2l0aCBpbnB1dCB0aGF0IGhhdmUgdHlwZT1cIm51bWJlclwiYCk7XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export declare function getKbqFormFieldMissingControlError(): Error;
2
- export declare function getKbqFormFieldYouCanNotUseCleanerInNumberInputError(): Error;