@koobiq/components 18.32.0 → 18.34.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 (331) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-config.d.ts +4 -3
  3. package/actions-panel/actions-panel-container.scss +0 -6
  4. package/actions-panel/actions-panel-ref.d.ts +13 -0
  5. package/actions-panel/actions-panel.d.ts +1 -7
  6. package/clamped-text/clamped-text.d.ts +61 -0
  7. package/clamped-text/clamped-text.scss +17 -0
  8. package/clamped-text/constants.d.ts +14 -0
  9. package/clamped-text/index.d.ts +3 -0
  10. package/clamped-text/module.d.ts +7 -0
  11. package/content-panel/content-panel-aside.scss +9 -0
  12. package/content-panel/content-panel-body.scss +9 -0
  13. package/content-panel/content-panel-container.scss +32 -0
  14. package/content-panel/content-panel-footer.scss +5 -0
  15. package/content-panel/content-panel-header.scss +30 -0
  16. package/content-panel/content-panel-tokens.scss +9 -0
  17. package/content-panel/content-panel.d.ts +149 -0
  18. package/content-panel/content-panel.scss +25 -0
  19. package/content-panel/index.d.ts +3 -0
  20. package/content-panel/module.d.ts +7 -0
  21. package/content-panel/resizable.d.ts +70 -0
  22. package/core/locales/en-US.d.ts +4 -0
  23. package/core/locales/es-LA.d.ts +4 -0
  24. package/core/locales/fa-IR.d.ts +4 -0
  25. package/core/locales/locale-service.d.ts +28 -0
  26. package/core/locales/pt-BR.d.ts +4 -0
  27. package/core/locales/ru-RU.d.ts +4 -0
  28. package/core/locales/tk-TM.d.ts +4 -0
  29. package/core/locales/types.d.ts +5 -0
  30. package/core/locales/zh-CN.d.ts +4 -0
  31. package/core/option/action-container.d.ts +5 -0
  32. package/core/option/action-container.scss +45 -0
  33. package/core/option/action.d.ts +1 -4
  34. package/core/option/action.scss +13 -12
  35. package/core/option/index.d.ts +1 -0
  36. package/core/option/option.d.ts +4 -3
  37. package/core/styles/common/_select.scss +55 -15
  38. package/core/styles/common/_tokens.scss +2 -0
  39. package/datepicker/calendar.component.d.ts +1 -1
  40. package/datepicker/datepicker-input.directive.d.ts +1 -1
  41. package/datepicker/datepicker-toggle.component.d.ts +1 -1
  42. package/datepicker/datepicker.component.d.ts +2 -2
  43. package/dynamic-translation/dynamic-translation.d.ts +72 -0
  44. package/dynamic-translation/index.d.ts +2 -0
  45. package/dynamic-translation/module.d.ts +7 -0
  46. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  47. package/esm2022/accordion/accordion.component.mjs +2 -2
  48. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  49. package/esm2022/actions-panel/actions-panel-container.mjs +7 -7
  50. package/esm2022/actions-panel/actions-panel-ref.mjs +17 -1
  51. package/esm2022/actions-panel/actions-panel.mjs +34 -24
  52. package/esm2022/alert/alert.component.mjs +2 -2
  53. package/esm2022/badge/badge.component.mjs +2 -2
  54. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
  55. package/esm2022/button/button.component.mjs +4 -3
  56. package/esm2022/button-toggle/button-toggle.component.mjs +11 -11
  57. package/esm2022/checkbox/checkbox.mjs +2 -2
  58. package/esm2022/clamped-text/clamped-text.mjs +202 -0
  59. package/esm2022/clamped-text/constants.mjs +20 -0
  60. package/esm2022/clamped-text/index.mjs +4 -0
  61. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +5 -0
  62. package/esm2022/clamped-text/module.mjs +19 -0
  63. package/esm2022/code-block/code-block.mjs +3 -3
  64. package/esm2022/content-panel/content-panel.mjs +432 -0
  65. package/esm2022/content-panel/index.mjs +4 -0
  66. package/esm2022/content-panel/koobiq-components-content-panel.mjs +5 -0
  67. package/esm2022/content-panel/module.mjs +42 -0
  68. package/esm2022/content-panel/resizable.mjs +138 -0
  69. package/esm2022/core/locales/en-US.mjs +5 -1
  70. package/esm2022/core/locales/es-LA.mjs +5 -1
  71. package/esm2022/core/locales/fa-IR.mjs +5 -1
  72. package/esm2022/core/locales/pt-BR.mjs +5 -1
  73. package/esm2022/core/locales/ru-RU.mjs +5 -1
  74. package/esm2022/core/locales/tk-TM.mjs +5 -1
  75. package/esm2022/core/locales/types.mjs +1 -1
  76. package/esm2022/core/locales/zh-CN.mjs +5 -1
  77. package/esm2022/core/option/action-container.mjs +23 -0
  78. package/esm2022/core/option/action.mjs +16 -30
  79. package/esm2022/core/option/index.mjs +2 -1
  80. package/esm2022/core/option/optgroup.mjs +2 -2
  81. package/esm2022/core/option/option.mjs +4 -4
  82. package/esm2022/core/version.mjs +2 -2
  83. package/esm2022/datepicker/calendar-header.component.mjs +6 -3
  84. package/esm2022/datepicker/calendar.component.mjs +9 -9
  85. package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
  86. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  87. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  88. package/esm2022/dl/dl.component.mjs +2 -2
  89. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  90. package/esm2022/dynamic-translation/dynamic-translation.mjs +175 -0
  91. package/esm2022/dynamic-translation/index.mjs +3 -0
  92. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +5 -0
  93. package/esm2022/dynamic-translation/module.mjs +25 -0
  94. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  95. package/esm2022/file-upload/file-drop.mjs +1 -1
  96. package/esm2022/file-upload/multiple-file-upload.component.mjs +11 -11
  97. package/esm2022/file-upload/single-file-upload.component.mjs +11 -11
  98. package/esm2022/filter-bar/filter-bar.mjs +5 -3
  99. package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
  100. package/esm2022/filter-bar/filter-refresher.mjs +5 -5
  101. package/esm2022/filter-bar/filter-reset.mjs +4 -3
  102. package/esm2022/filter-bar/filter-search.mjs +11 -11
  103. package/esm2022/filter-bar/filters.mjs +4 -3
  104. package/esm2022/filter-bar/pipe-add.mjs +6 -6
  105. package/esm2022/filter-bar/pipes/base-pipe.mjs +8 -3
  106. package/esm2022/filter-bar/pipes/pipe-button.mjs +7 -7
  107. package/esm2022/filter-bar/pipes/pipe-date.mjs +11 -3
  108. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +11 -3
  109. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +4 -10
  110. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +10 -9
  111. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +7 -7
  112. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -4
  113. package/esm2022/filter-bar/pipes/pipe-text.mjs +8 -2
  114. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +9 -3
  115. package/esm2022/form-field/cleaner.mjs +16 -11
  116. package/esm2022/form-field/error.mjs +2 -2
  117. package/esm2022/form-field/fieldset.mjs +2 -2
  118. package/esm2022/form-field/form-field.mjs +5 -5
  119. package/esm2022/form-field/hint.mjs +2 -2
  120. package/esm2022/form-field/password-hint.mjs +16 -5
  121. package/esm2022/form-field/password-toggle.mjs +45 -10
  122. package/esm2022/form-field/reactive-password-hint.mjs +20 -19
  123. package/esm2022/form-field/stepper.mjs +9 -9
  124. package/esm2022/icon/icon-button.component.mjs +2 -2
  125. package/esm2022/input/input-number.mjs +15 -10
  126. package/esm2022/input/input-password.mjs +2 -2
  127. package/esm2022/list/list-selection.component.mjs +5 -5
  128. package/esm2022/list/list.component.mjs +2 -2
  129. package/esm2022/list/list.module.mjs +12 -5
  130. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  131. package/esm2022/markdown/markdown.component.mjs +3 -3
  132. package/esm2022/modal/modal.component.mjs +14 -14
  133. package/esm2022/modal/modal.directive.mjs +7 -5
  134. package/esm2022/navbar/navbar-item.component.mjs +5 -5
  135. package/esm2022/navbar/navbar.component.mjs +2 -2
  136. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  137. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  138. package/esm2022/popover/popover.component.mjs +3 -3
  139. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  140. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  141. package/esm2022/radio/radio.component.mjs +2 -2
  142. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  143. package/esm2022/scrollbar/scrollbar.component.mjs +5 -5
  144. package/esm2022/select/select.component.mjs +56 -26
  145. package/esm2022/sidebar/sidebar.component.mjs +46 -27
  146. package/esm2022/sidepanel/sidepanel-container.component.mjs +15 -4
  147. package/esm2022/sidepanel/sidepanel-directives.mjs +5 -5
  148. package/esm2022/sidepanel/sidepanel-ref.mjs +8 -6
  149. package/esm2022/splitter/splitter.component.mjs +1 -1
  150. package/esm2022/table/table.component.mjs +2 -2
  151. package/esm2022/tabs/tab-body.component.mjs +3 -3
  152. package/esm2022/tabs/tab-group.component.mjs +27 -27
  153. package/esm2022/tabs/tab.component.mjs +4 -4
  154. package/esm2022/tags/tag-input.mjs +2 -2
  155. package/esm2022/tags/tag-list.component.mjs +13 -13
  156. package/esm2022/textarea/textarea.component.mjs +6 -4
  157. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  158. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  159. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  160. package/esm2022/toast/toast.component.mjs +3 -3
  161. package/esm2022/toggle/toggle.component.mjs +3 -3
  162. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  163. package/esm2022/top-bar/top-bar.mjs +2 -2
  164. package/esm2022/tree/toggle.mjs +2 -2
  165. package/esm2022/tree/tree-option.component.mjs +3 -3
  166. package/esm2022/tree/tree-selection.component.mjs +6 -6
  167. package/esm2022/tree/tree.mjs +2 -2
  168. package/esm2022/tree/tree.module.mjs +8 -5
  169. package/esm2022/tree-select/tree-select.component.mjs +44 -28
  170. package/esm2022/username/constants.mjs +25 -0
  171. package/esm2022/username/index.mjs +6 -0
  172. package/esm2022/username/koobiq-components-username.mjs +5 -0
  173. package/esm2022/username/module.mjs +35 -0
  174. package/esm2022/username/types.mjs +32 -0
  175. package/esm2022/username/username.mjs +129 -0
  176. package/esm2022/username/username.pipe.mjs +92 -0
  177. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  178. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-actions-panel.mjs +56 -31
  180. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-alert.mjs +2 -2
  182. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-badge.mjs +2 -2
  184. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
  186. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  188. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-button.mjs +3 -2
  190. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  192. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-clamped-text.mjs +242 -0
  194. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -0
  195. package/fesm2022/koobiq-components-code-block.mjs +2 -2
  196. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-content-panel.mjs +612 -0
  198. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -0
  199. package/fesm2022/koobiq-components-core.mjs +71 -36
  200. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-datepicker.mjs +26 -19
  202. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-dl.mjs +2 -2
  204. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-dropdown.mjs +2 -2
  206. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-dynamic-translation.mjs +204 -0
  208. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -0
  209. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  210. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-file-upload.mjs +20 -20
  212. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-filter-bar.mjs +92 -66
  214. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-form-field.mjs +108 -57
  216. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-icon.mjs +2 -2
  218. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-input.mjs +15 -10
  220. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-list.mjs +17 -10
  222. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  224. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  226. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-modal.mjs +19 -17
  228. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-navbar.mjs +8 -8
  230. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-popover.mjs +4 -4
  232. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  234. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  236. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  237. package/fesm2022/koobiq-components-radio.mjs +2 -2
  238. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  239. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  240. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  241. package/fesm2022/koobiq-components-scrollbar.mjs +4 -4
  242. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  243. package/fesm2022/koobiq-components-select.mjs +55 -25
  244. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  245. package/fesm2022/koobiq-components-sidebar.mjs +45 -26
  246. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  247. package/fesm2022/koobiq-components-sidepanel.mjs +24 -12
  248. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  249. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  250. package/fesm2022/koobiq-components-table.mjs +2 -2
  251. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  252. package/fesm2022/koobiq-components-tabs.mjs +31 -31
  253. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  254. package/fesm2022/koobiq-components-tags.mjs +13 -13
  255. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  256. package/fesm2022/koobiq-components-textarea.mjs +5 -3
  257. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  258. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  259. package/fesm2022/koobiq-components-timezone.mjs +4 -4
  260. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  261. package/fesm2022/koobiq-components-toast.mjs +2 -2
  262. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  263. package/fesm2022/koobiq-components-toggle.mjs +2 -2
  264. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  265. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  266. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  267. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  268. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  269. package/fesm2022/koobiq-components-tree-select.mjs +43 -27
  270. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  271. package/fesm2022/koobiq-components-tree.mjs +18 -15
  272. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  273. package/fesm2022/koobiq-components-username.mjs +308 -0
  274. package/fesm2022/koobiq-components-username.mjs.map +1 -0
  275. package/file-upload/_file-upload-theme.scss +10 -1
  276. package/file-upload/file-drop.d.ts +1 -1
  277. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  278. package/file-upload/single-file-upload.component.d.ts +2 -2
  279. package/filter-bar/filter-bar.d.ts +2 -0
  280. package/filter-bar/filter-bar.types.d.ts +2 -2
  281. package/filter-bar/pipes/pipe-date.d.ts +3 -1
  282. package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
  283. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -1
  284. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +3 -2
  285. package/filter-bar/pipes/pipe-select.d.ts +0 -1
  286. package/filter-bar/pipes/pipe-tree-select.d.ts +3 -2
  287. package/form-field/_form-field-theme.scss +27 -18
  288. package/form-field/cleaner.d.ts +4 -2
  289. package/form-field/cleaner.scss +6 -2
  290. package/form-field/form-field.scss +6 -2
  291. package/form-field/password-hint.d.ts +7 -0
  292. package/form-field/password-toggle.d.ts +23 -3
  293. package/form-field/password-toggle.scss +4 -8
  294. package/form-field/reactive-password-hint.d.ts +1 -0
  295. package/icon/_icon-button-theme.scss +8 -2
  296. package/list/_list-theme.scss +4 -1
  297. package/list/list.module.d.ts +2 -1
  298. package/list/list.scss +6 -12
  299. package/modal/modal.component.d.ts +6 -6
  300. package/package.json +28 -4
  301. package/popover/popover-confirm.component.d.ts +1 -1
  302. package/popover/popover.component.d.ts +2 -2
  303. package/prebuilt-themes/dark-theme.css +1 -1
  304. package/prebuilt-themes/light-theme.css +1 -1
  305. package/prebuilt-themes/theme.css +1 -1
  306. package/schematics/ng-add/index.js +3 -3
  307. package/scrollbar/scrollbar.component.d.ts +4 -4
  308. package/select/select.component.d.ts +22 -3
  309. package/sidebar/sidebar.component.d.ts +31 -5
  310. package/sidepanel/sidepanel-container.component.d.ts +9 -0
  311. package/sidepanel/sidepanel-ref.d.ts +3 -3
  312. package/splitter/splitter.component.d.ts +2 -2
  313. package/tabs/tab-group.component.d.ts +1 -1
  314. package/tabs/tab.component.d.ts +1 -1
  315. package/tags/tag-input.d.ts +1 -1
  316. package/tags/tag-list.component.d.ts +1 -1
  317. package/timepicker/timepicker.directive.d.ts +1 -1
  318. package/tooltip/tooltip.component.d.ts +2 -2
  319. package/tree/_tree-theme.scss +13 -2
  320. package/tree/tree-option.scss +12 -17
  321. package/tree/tree-selection.component.d.ts +1 -1
  322. package/tree/tree.module.d.ts +1 -1
  323. package/tree-select/tree-select.component.d.ts +9 -2
  324. package/username/constants.d.ts +15 -0
  325. package/username/index.d.ts +5 -0
  326. package/username/module.d.ts +8 -0
  327. package/username/types.d.ts +62 -0
  328. package/username/username-tokens.scss +6 -0
  329. package/username/username.d.ts +68 -0
  330. package/username/username.pipe.d.ts +23 -0
  331. package/username/username.scss +107 -0
@@ -25,6 +25,10 @@ export type KbqSelectOptions = Partial<{
25
25
  * If set to null or an empty string, the panel will grow to match the longest option's text.
26
26
  */
27
27
  panelWidth: KbqSelectPanelWidth;
28
+ /**
29
+ * Minimum width of the panel. If minWidth is larger than window width or property set to null, it will be ignored.
30
+ */
31
+ panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;
28
32
  }>;
29
33
  /** Injection token that can be used to provide the default options for the `kbq-select`. */
30
34
  export declare const KBQ_SELECT_OPTIONS: InjectionToken<Partial<{
@@ -33,6 +37,10 @@ export declare const KBQ_SELECT_OPTIONS: InjectionToken<Partial<{
33
37
  * If set to null or an empty string, the panel will grow to match the longest option's text.
34
38
  */
35
39
  panelWidth: KbqSelectPanelWidth;
40
+ /**
41
+ * Minimum width of the panel. If minWidth is larger than window width or property set to null, it will be ignored.
42
+ */
43
+ panelMinWidth: Exclude<KbqSelectPanelWidth, "auto">;
36
44
  }>>;
37
45
  /** Utility provider for `KBQ_SELECT_OPTIONS`. */
38
46
  export declare const kbqSelectOptionsProvider: (options: KbqSelectOptions) => Provider;
@@ -59,6 +67,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
59
67
  * If set to null or an empty string, the panel will grow to match the longest option's text.
60
68
  */
61
69
  panelWidth: KbqSelectPanelWidth;
70
+ /**
71
+ * Minimum width of the panel. If minWidth is larger than window width or property set to null, it will be ignored.
72
+ */
73
+ panelMinWidth: Exclude<KbqSelectPanelWidth, "auto">;
62
74
  }> | null;
63
75
  private readonly window;
64
76
  /** Whether the component is in an error state. */
@@ -133,6 +145,10 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
133
145
  * Follows the same logic as `Array.prototype.sort`.
134
146
  */
135
147
  sortComparator: (a: KbqOptionBase, b: KbqOptionBase, options: KbqOptionBase[]) => number;
148
+ /**
149
+ * Whether to use a multiline matcher or not. Default is false
150
+ */
151
+ multiline: boolean;
136
152
  /** Combined stream of all of the child options' change events. */
137
153
  readonly optionSelectionChanges: Observable<KbqOptionSelectionChange>;
138
154
  /** Event emitted when the select panel has been toggled. */
@@ -182,7 +198,7 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
182
198
  * Minimum width of the panel.
183
199
  * If minWidth is larger than window width, it will be ignored.
184
200
  */
185
- panelMinWidth: number;
201
+ panelMinWidth: Exclude<KbqSelectPanelWidth, 'auto'>;
186
202
  /** Value of the select control. */
187
203
  get value(): any;
188
204
  set value(newValue: any);
@@ -212,6 +228,8 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
212
228
  get firstFiltered(): boolean;
213
229
  /** @docs-private */
214
230
  get colorForState(): KbqComponentColors;
231
+ /** Whether multiple choice is enabled or not. True if multiple or multiline */
232
+ get multiSelection(): boolean;
215
233
  private closeSubscription;
216
234
  /** The scroll position of the overlay panel, calculated to center the selected option. */
217
235
  private scrollTop;
@@ -226,9 +244,9 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
226
244
  protected overlayOrigin?: CdkOverlayOrigin | ElementRef;
227
245
  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);
228
246
  ngOnInit(): void;
247
+ ngDoCheck(): void;
229
248
  ngAfterContentInit(): void;
230
249
  ngAfterViewInit(): void;
231
- ngDoCheck(): void;
232
250
  ngOnDestroy(): void;
233
251
  updateErrorState(): void;
234
252
  hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string;
@@ -351,7 +369,8 @@ export declare class KbqSelect extends KbqAbstractSelect implements AfterContent
351
369
  private getTotalVisibleItems;
352
370
  private buildTriggerClone;
353
371
  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; }]>;
354
- 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>;
372
+ 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>;
373
+ static ngAcceptInputType_multiline: unknown;
355
374
  static ngAcceptInputType_multiple: unknown;
356
375
  static ngAcceptInputType_panelMinWidth: unknown;
357
376
  static ngAcceptInputType_tabIndex: unknown;
@@ -1,4 +1,4 @@
1
- import { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterContentInit, ElementRef, EventEmitter, NgZone, OnDestroy } from '@angular/core';
2
2
  import { KbqSidebarAnimationState } from './sidebar-animations';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare enum SidebarPositions {
@@ -23,30 +23,56 @@ export declare class KbqSidebarClosed {
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidebarClosed, never>;
24
24
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqSidebarClosed, "[kbq-sidebar-closed]", ["kbqSidebarClosed"], { "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, never>;
25
25
  }
26
- export declare class KbqSidebar implements OnDestroy, OnInit, AfterContentInit {
26
+ export declare class KbqSidebar implements OnDestroy, AfterContentInit {
27
27
  private ngZone;
28
28
  private elementRef;
29
+ /**
30
+ * @docs-private
31
+ */
29
32
  protected readonly document: Document;
33
+ private readonly renderer;
34
+ private readonly changeDetectorRef;
30
35
  get opened(): boolean;
31
36
  set opened(value: boolean);
32
37
  private _opened;
33
38
  position: SidebarPositions;
39
+ /**
40
+ * @docs-private
41
+ */
34
42
  params: KbqSidebarParams;
35
43
  readonly stateChanged: EventEmitter<boolean>;
44
+ /**
45
+ * @docs-private
46
+ */
36
47
  openedContent: KbqSidebarOpened;
48
+ /**
49
+ * @docs-private
50
+ */
37
51
  closedContent: KbqSidebarClosed;
52
+ /**
53
+ * @docs-private
54
+ */
38
55
  get animationState(): KbqSidebarAnimationState;
56
+ /**
57
+ * @docs-private
58
+ */
39
59
  internalState: boolean;
40
- private documentKeydownListener;
60
+ private unbindKeydownListener;
41
61
  constructor(ngZone: NgZone, elementRef: ElementRef);
42
- ngOnInit(): void;
62
+ ngAfterContentInit(): void;
43
63
  ngOnDestroy(): void;
44
64
  toggle(): void;
65
+ /**
66
+ * @docs-private
67
+ */
45
68
  onAnimationStart(): void;
69
+ /**
70
+ * @docs-private
71
+ */
46
72
  onAnimationDone(): void;
47
- ngAfterContentInit(): void;
48
73
  private registerKeydownListener;
49
74
  private unRegisterKeydownListener;
75
+ private handleKeydown;
50
76
  private saveWidth;
51
77
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqSidebar, never>;
52
78
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqSidebar, "kbq-sidebar", ["kbqSidebar"], { "opened": { "alias": "opened"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, { "stateChanged": "stateChanged"; }, ["openedContent", "closedContent"], ["[kbq-sidebar-opened]", "[kbq-sidebar-closed]"], false, never>;
@@ -1,6 +1,7 @@
1
1
  import { AnimationEvent } from '@angular/animations';
2
2
  import { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal';
3
3
  import { ChangeDetectorRef, ComponentRef, ElementRef, EmbeddedViewRef, EventEmitter, InjectionToken, OnDestroy } from '@angular/core';
4
+ import { Observable, Subject } from 'rxjs';
4
5
  import { KbqSidepanelAnimationState } from './sidepanel-animations';
5
6
  import { KbqSidepanelConfig } from './sidepanel-config';
6
7
  import * as i0 from "@angular/core";
@@ -27,10 +28,18 @@ export declare class KbqSidepanelContainerComponent extends BasePortalOutlet imp
27
28
  get size(): string;
28
29
  get trapFocusAutoCapture(): boolean;
29
30
  get trapFocus(): boolean;
31
+ /** @docs-private */
32
+ protected readonly indentClickEmitter: Subject<MouseEvent>;
30
33
  /** Whether the component has been destroyed. */
31
34
  private destroyed;
32
35
  constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, sidepanelConfig: KbqSidepanelConfig, withIndent: boolean, withShadow: boolean);
33
36
  ngOnDestroy(): void;
37
+ /**
38
+ * Gets an observable that emits when the indent has been clicked.
39
+ *
40
+ * @docs-private
41
+ */
42
+ indentClick(): Observable<MouseEvent>;
34
43
  /** Attach a component portal as content to this sidepanel container. */
35
44
  attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
36
45
  /** Attach a template portal as content to this sidepanel container. */
@@ -3,9 +3,9 @@ import { Observable } from 'rxjs';
3
3
  import { KbqSidepanelConfig } from './sidepanel-config';
4
4
  import { KbqSidepanelContainerComponent } from './sidepanel-container.component';
5
5
  export declare class KbqSidepanelRef<T = any, R = any> {
6
- containerInstance: KbqSidepanelContainerComponent;
7
- private overlayRef;
8
- config: KbqSidepanelConfig;
6
+ readonly containerInstance: KbqSidepanelContainerComponent;
7
+ readonly overlayRef: OverlayRef;
8
+ readonly config: KbqSidepanelConfig;
9
9
  readonly id: string;
10
10
  /** Instance of the component making up the content of the sidepanel. */
11
11
  instance: T;
@@ -63,7 +63,7 @@ export declare class KbqSplitterComponent implements OnInit, AfterContentInit, O
63
63
  changeDetectorRef: ChangeDetectorRef;
64
64
  private ngZone;
65
65
  private renderer;
66
- gutterPositionChange: EventEmitter<void>;
66
+ readonly gutterPositionChange: EventEmitter<void>;
67
67
  areas: IArea[];
68
68
  gutters: QueryList<KbqGutterDirective>;
69
69
  ghost: KbqGutterGhostDirective;
@@ -111,7 +111,7 @@ export declare class KbqSplitterAreaDirective implements AfterViewInit, OnDestro
111
111
  private elementRef;
112
112
  private renderer;
113
113
  private splitter;
114
- sizeChange: EventEmitter<number>;
114
+ readonly sizeChange: EventEmitter<number>;
115
115
  private readonly window;
116
116
  constructor(elementRef: ElementRef, renderer: Renderer2, splitter: KbqSplitterComponent);
117
117
  isResizing(): boolean;
@@ -85,6 +85,7 @@ export declare class KbqTabGroup implements AfterContentInit, AfterViewInit, Aft
85
85
  private readonly groupId;
86
86
  private readonly resizeDebounceInterval;
87
87
  constructor(changeDetectorRef: ChangeDetectorRef, defaultConfig?: KbqTabsConfig);
88
+ ngAfterContentInit(): void;
88
89
  /**
89
90
  * After the content is checked, this component knows what tabs have been defined
90
91
  * and what the selected index should be. This is where we can know exactly what position
@@ -92,7 +93,6 @@ export declare class KbqTabGroup implements AfterContentInit, AfterViewInit, Aft
92
93
  * a new selected tab should transition in (from the left or right).
93
94
  */
94
95
  ngAfterContentChecked(): void;
95
- ngAfterContentInit(): void;
96
96
  ngAfterViewInit(): void;
97
97
  ngOnDestroy(): void;
98
98
  focusChanged(index: number): void;
@@ -52,8 +52,8 @@ export declare class KbqTab implements OnInit, OnChanges, OnDestroy {
52
52
  private contentPortal;
53
53
  constructor(viewContainerRef: ViewContainerRef);
54
54
  ngOnChanges(changes: SimpleChanges): void;
55
- ngOnDestroy(): void;
56
55
  ngOnInit(): void;
56
+ ngOnDestroy(): void;
57
57
  /**
58
58
  * This has been extracted to a util because of TS 4 and VE.
59
59
  * View Engine doesn't support property rename inheritance.
@@ -40,7 +40,7 @@ export declare class KbqTagInput implements KbqTagTextControl, OnChanges {
40
40
  get separators(): KbqTagSeparator[];
41
41
  private _separators;
42
42
  /** Emitted when a tag is to be added. */
43
- tagEnd: EventEmitter<KbqTagInputEvent>;
43
+ readonly tagEnd: EventEmitter<KbqTagInputEvent>;
44
44
  /** A value indicating whether allow/prevent tags duplication */
45
45
  distinct: boolean;
46
46
  /** The input's placeholder text. */
@@ -151,9 +151,9 @@ export declare class KbqTagList implements KbqFormFieldControl<any>, ControlValu
151
151
  private tagRemoveSubscription;
152
152
  private readonly destroyRef;
153
153
  constructor(elementRef: ElementRef<HTMLElement>, changeDetectorRef: ChangeDetectorRef, defaultErrorStateMatcher: ErrorStateMatcher, dir: Directionality, parentForm: NgForm, parentFormGroup: FormGroupDirective, ngControl: NgControl);
154
- ngAfterContentInit(): void;
155
154
  ngOnInit(): void;
156
155
  ngDoCheck(): void;
156
+ ngAfterContentInit(): void;
157
157
  ngOnDestroy(): void;
158
158
  updateErrorState(): void;
159
159
  onTouched: () => void;
@@ -64,7 +64,7 @@ export declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, Control
64
64
  set value(value: D | null);
65
65
  private _value;
66
66
  set kbqValidationTooltip(tooltip: KbqWarningTooltipTrigger);
67
- incorrectInput: EventEmitter<void>;
67
+ readonly incorrectInput: EventEmitter<void>;
68
68
  get hasSelection(): boolean;
69
69
  get isFullFormat(): boolean;
70
70
  get isShortFormat(): boolean;
@@ -78,8 +78,8 @@ export declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipCompone
78
78
  private _color;
79
79
  arrow: boolean;
80
80
  offset: number | null;
81
- placementChange: EventEmitter<any>;
82
- visibleChange: EventEmitter<boolean>;
81
+ readonly placementChange: EventEmitter<any>;
82
+ readonly visibleChange: EventEmitter<boolean>;
83
83
  private get hasClickInTrigger();
84
84
  protected originSelector: string;
85
85
  protected overlayConfig: OverlayConfig;
@@ -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
  }
@@ -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
 
@@ -77,8 +77,8 @@ export declare class KbqTreeSelection extends KbqTreeBase<any> implements Contro
77
77
  private optionFocusSubscription;
78
78
  private optionBlurSubscription;
79
79
  constructor(elementRef: ElementRef, scheduler: AsyncScheduler, differs: IterableDiffers, changeDetectorRef: ChangeDetectorRef, multiple: MultipleMode, clipboard: Clipboard);
80
- ngAfterViewInit(): void;
81
80
  ngAfterContentInit(): void;
81
+ ngAfterViewInit(): void;
82
82
  ngOnDestroy(): void;
83
83
  focus($event: any): void;
84
84
  highlightSelectedOption(): void;
@@ -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;
@@ -204,9 +210,9 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
204
210
  private readonly window;
205
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);
206
212
  ngOnInit(): void;
213
+ ngDoCheck(): void;
207
214
  ngAfterContentInit(): void;
208
215
  ngAfterViewInit(): void;
209
- ngDoCheck(): void;
210
216
  ngOnDestroy(): void;
211
217
  updateErrorState(): void;
212
218
  hiddenItemsTextFormatter(hiddenItemsText: string, hiddenItems: number): string;
@@ -303,7 +309,8 @@ export declare class KbqTreeSelect extends KbqAbstractSelect implements AfterCon
303
309
  private scrollActiveOptionIntoView;
304
310
  private subscribeOnSearchChanges;
305
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; }]>;
306
- 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;
307
314
  static ngAcceptInputType_multiple: unknown;
308
315
  static ngAcceptInputType_tabIndex: unknown;
309
316
  static ngAcceptInputType_disabled: unknown;
@@ -0,0 +1,15 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended } from './types';
3
+ /** Default name format: Last name full, first and middle as initials. */
4
+ export declare const kbqDefaultFullNameFormatCustom = "L f. m.";
5
+ /** Default name format: Last name full, first and middle as initials. */
6
+ export declare const kbqDefaultFullNameFormat = "lf.m.";
7
+ /**
8
+ * Throws an error when no profile field mapping is provided to the username pipe.
9
+ * @docs-private
10
+ */
11
+ export declare function KbqMappingMissingError(): Error;
12
+ /**
13
+ * Injection token for providing a global username format-to-profile mapping.
14
+ */
15
+ export declare const KBQ_PROFILE_MAPPING: InjectionToken<KbqFormatKeyToProfileMapping | KbqFormatKeyToProfileMappingExtended>;
@@ -0,0 +1,5 @@
1
+ export * from './constants';
2
+ export * from './module';
3
+ export * from './types';
4
+ export * from './username';
5
+ export * from './username.pipe';
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./username";
3
+ import * as i2 from "./username.pipe";
4
+ export declare class KbqUsernameModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<KbqUsernameModule, never, [typeof i1.KbqUsername, typeof i1.KbqUsernameCustomView, typeof i1.KbqUsernamePrimary, typeof i1.KbqUsernameSecondary, typeof i2.KbqUsernameCustomPipe, typeof i2.KbqUsernamePipe], [typeof i1.KbqUsername, typeof i1.KbqUsernameCustomView, typeof i1.KbqUsernamePrimary, typeof i1.KbqUsernameSecondary, typeof i2.KbqUsernameCustomPipe, typeof i2.KbqUsernamePipe]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<KbqUsernameModule>;
8
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Keys for formatting username parts in short (initial) or full form.
3
+ */
4
+ export declare enum KbqUsernameFormatKey {
5
+ /**
6
+ * Short form of the first name (e.g., "John" → "J")
7
+ */
8
+ FirstNameShort = "f",
9
+ /**
10
+ * Full form of the first name (e.g., "John")
11
+ */
12
+ FirstNameFull = "F",
13
+ /**
14
+ * Short form of the middle name (e.g., "Henry" → "H")
15
+ */
16
+ MiddleNameShort = "m",
17
+ /**
18
+ * Full form of the middle name (e.g., "Henry")
19
+ */
20
+ MiddleNameFull = "M",
21
+ /**
22
+ * Short form of the last name (e.g., "Doe" → "D")
23
+ */
24
+ LastNameShort = "l",
25
+ /**
26
+ * Full form of the last name (e.g., "Doe")
27
+ */
28
+ LastNameFull = "L",
29
+ Dot = "."
30
+ }
31
+ /**
32
+ * Maps each format key to a property name in the user profile object.
33
+ * Allows flexible formatting regardless of profile field names.
34
+ */
35
+ export type KbqFormatKeyToProfileMapping<T = any> = {
36
+ [key in Exclude<KbqUsernameFormatKey, KbqUsernameFormatKey.FirstNameFull | KbqUsernameFormatKey.MiddleNameFull | KbqUsernameFormatKey.LastNameFull>]: keyof T | undefined;
37
+ };
38
+ /**
39
+ * Maps each format key to a property name in the user profile object.
40
+ * Allows flexible formatting regardless of profile field names.
41
+ * @see KbqUsernameCustomPipe
42
+ */
43
+ export type KbqFormatKeyToProfileMappingExtended<T = any> = {
44
+ [key in KbqUsernameFormatKey]: keyof T | undefined;
45
+ };
46
+ /**
47
+ * Layout mode for displaying a username and applying text-ellipsis.
48
+ *
49
+ * - `stacked`: Elements shown vertically.
50
+ * - `inline`: Elements shown in one line. Text ellipsis is applied to both parts.
51
+ * - `text`: Plain text, no layout styling. No text-ellipsis.
52
+ */
53
+ export type KbqUsernameMode = 'stacked' | 'inline' | 'text';
54
+ /**
55
+ * Visual style of the username.
56
+ *
57
+ * - `default`: standard styling with primary and secondary colors.
58
+ * - `error`: error colors (e.g., red).
59
+ * - `accented`: no color theming; emphasizes via typography only.
60
+ * - `inherit`: inherits parent styles, no theming. For example, useful when using inside links.
61
+ */
62
+ export type KbqUsernameStyle = 'default' | 'error' | 'accented' | 'inherit';
@@ -0,0 +1,6 @@
1
+ :where(.kbq-username) {
2
+ --kbq-username-primary-color: var(--kbq-foreground-contrast);
3
+ --kbq-username-secondary-color: inherit;
4
+ --kbq-username-vertical-gap: var(--kbq-size-xxs);
5
+ --kbq-username-horizontal-gap: var(--kbq-size-xxs);
6
+ }
@@ -0,0 +1,68 @@
1
+ import { KbqUsernameMode, KbqUsernameStyle } from './types';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Basic user info
5
+ * @docs-private
6
+ */
7
+ export type KbqUserInfo = {
8
+ firstName?: string;
9
+ lastName?: string;
10
+ middleName?: string;
11
+ login?: string;
12
+ site?: string;
13
+ };
14
+ /** Styles the primary part of the username (e.g. full name). */
15
+ export declare class KbqUsernamePrimary {
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernamePrimary, never>;
17
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqUsernamePrimary, "[kbqUsernamePrimary]", ["kbqUsernamePrimary"], {}, {}, never, never, true, never>;
18
+ }
19
+ /** Styles the secondary part. */
20
+ export declare class KbqUsernameSecondary {
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameSecondary, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqUsernameSecondary, "[kbqUsernameSecondary]", ["kbqUsernameSecondary"], {}, {}, never, never, true, never>;
23
+ }
24
+ /** Styles a secondary hint. */
25
+ export declare class KbqUsernameSecondaryHint {
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameSecondaryHint, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqUsernameSecondaryHint, "[kbqUsernameSecondaryHint]", ["kbqUsernameSecondaryHint"], {}, {}, never, never, true, never>;
28
+ }
29
+ /** Custom content for `KbqUsername`, overrides default view. */
30
+ export declare class KbqUsernameCustomView {
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameCustomView, never>;
32
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqUsernameCustomView, "kbq-username-custom-view, [kbq-username-custom-view]", ["kbqUsernameCustomView"], {}, {}, never, never, true, never>;
33
+ }
34
+ /**
35
+ * Displays a user's name based on profile data.
36
+ * Supports different display modes and visual styles.
37
+ * A custom view can be provided via `<kbq-username-custom-view>` for full control over the output.
38
+ * Accepts input profile data and optional formatting options.
39
+ */
40
+ export declare class KbqUsername {
41
+ /** User profile data used for display. */
42
+ readonly userInfo: import("@angular/core").InputSignal<KbqUserInfo | undefined>;
43
+ /** Enables compact display mode */
44
+ readonly isCompact: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
45
+ /** Format string for rendering the user's full name. */
46
+ readonly fullNameFormat: import("@angular/core").InputSignal<string>;
47
+ /**
48
+ * Display mode of the username.
49
+ * @default inline
50
+ */
51
+ readonly mode: import("@angular/core").InputSignal<KbqUsernameMode>;
52
+ /**
53
+ * Visual style of the username.
54
+ * @default default
55
+ */
56
+ readonly type: import("@angular/core").InputSignal<KbqUsernameStyle>;
57
+ /**
58
+ * Custom projected view for username rendering.
59
+ * @docs-private
60
+ */
61
+ protected readonly customView: import("@angular/core").Signal<KbqUsernameCustomView | undefined>;
62
+ /** @docs-private */
63
+ protected readonly hasFullName: import("@angular/core").Signal<string | false | undefined>;
64
+ /** @docs-private */
65
+ protected readonly class: import("@angular/core").Signal<string>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsername, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqUsername, "kbq-username", ["kbqUsername"], { "userInfo": { "alias": "userInfo"; "required": false; "isSignal": true; }; "isCompact": { "alias": "isCompact"; "required": false; "isSignal": true; }; "fullNameFormat": { "alias": "fullNameFormat"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; }, {}, ["customView"], ["kbq-username-custom-view,[kbq-username-custom-view]"], true, never>;
68
+ }