@koobiq/components 18.28.0 → 18.30.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 (410) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-container.scss +4 -1
  3. package/actions-panel/actions-panel-tokens.scss +2 -1
  4. package/breadcrumbs/breadcrumbs.d.ts +1 -1
  5. package/checkbox/checkbox.scss +2 -0
  6. package/code-block/_code-block-theme.scss +4 -12
  7. package/code-block/code-block-tokens.scss +3 -2
  8. package/code-block/code-block.scss +41 -10
  9. package/core/common-behaviors/clipboard.d.ts +12 -0
  10. package/core/common-behaviors/index.d.ts +1 -0
  11. package/core/formatters/filesize/config.d.ts +66 -0
  12. package/core/formatters/filesize/formatter.d.ts +17 -0
  13. package/core/{utils/data-size → formatters/filesize}/index.d.ts +1 -1
  14. package/core/formatters/filesize/size.d.ts +52 -0
  15. package/core/formatters/index.d.ts +3 -1
  16. package/core/formatters/number/formatter.d.ts +13 -4
  17. package/core/forms/validators.d.ts +13 -0
  18. package/core/locales/formatters.d.ts +9 -1
  19. package/core/locales/locale-service.d.ts +9 -1
  20. package/core/locales/types.d.ts +14 -0
  21. package/core/pop-up/pop-up-trigger.d.ts +3 -4
  22. package/core/pop-up/pop-up.d.ts +2 -1
  23. package/core/select/common.d.ts +3 -3
  24. package/core/utils/public-api.d.ts +0 -1
  25. package/datepicker/calendar.scss +2 -0
  26. package/datepicker/datepicker-tokens.scss +1 -1
  27. package/dropdown/dropdown-item.component.d.ts +3 -1
  28. package/ellipsis-center/ellipsis-center.directive.d.ts +8 -2
  29. package/esm2022/accordion/accordion-content.mjs +4 -4
  30. package/esm2022/accordion/accordion-header.mjs +4 -4
  31. package/esm2022/accordion/accordion-item.mjs +4 -4
  32. package/esm2022/accordion/accordion-trigger.component.mjs +6 -6
  33. package/esm2022/accordion/accordion.component.mjs +4 -4
  34. package/esm2022/accordion/accordion.module.mjs +5 -5
  35. package/esm2022/actions-panel/actions-panel-container.mjs +6 -6
  36. package/esm2022/actions-panel/actions-panel.mjs +13 -13
  37. package/esm2022/actions-panel/module.mjs +5 -5
  38. package/esm2022/alert/alert.component.mjs +13 -13
  39. package/esm2022/alert/alert.module.mjs +5 -5
  40. package/esm2022/autocomplete/autocomplete-origin.directive.mjs +4 -4
  41. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +4 -4
  42. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  43. package/esm2022/autocomplete/autocomplete.module.mjs +5 -5
  44. package/esm2022/badge/badge.component.mjs +10 -10
  45. package/esm2022/badge/badge.module.mjs +5 -5
  46. package/esm2022/breadcrumbs/breadcrumbs.mjs +17 -17
  47. package/esm2022/breadcrumbs/breadcrumbs.module.mjs +5 -5
  48. package/esm2022/button/button.component.mjs +7 -7
  49. package/esm2022/button/button.dropdown-trigger.directive.mjs +4 -4
  50. package/esm2022/button/button.module.mjs +5 -5
  51. package/esm2022/button-toggle/button-toggle.component.mjs +7 -7
  52. package/esm2022/button-toggle/button-toggle.module.mjs +5 -5
  53. package/esm2022/checkbox/checkbox-module.mjs +5 -5
  54. package/esm2022/checkbox/checkbox-required-validator.mjs +4 -4
  55. package/esm2022/checkbox/checkbox.mjs +5 -5
  56. package/esm2022/code-block/code-block-highlight.mjs +4 -4
  57. package/esm2022/code-block/code-block.mjs +8 -5
  58. package/esm2022/code-block/code-block.module.mjs +5 -5
  59. package/esm2022/core/common-behaviors/clipboard.mjs +31 -0
  60. package/esm2022/core/common-behaviors/color.mjs +4 -4
  61. package/esm2022/core/common-behaviors/common-module.mjs +5 -5
  62. package/esm2022/core/common-behaviors/index.mjs +2 -1
  63. package/esm2022/core/error/error-state-matcher.mjs +10 -10
  64. package/esm2022/core/formatters/date/formatter.mjs +4 -4
  65. package/esm2022/core/formatters/date/formatter.pipe.mjs +79 -79
  66. package/esm2022/core/formatters/filesize/config.mjs +32 -0
  67. package/esm2022/core/formatters/filesize/formatter.mjs +43 -0
  68. package/esm2022/core/formatters/filesize/index.mjs +4 -0
  69. package/esm2022/core/formatters/filesize/size.mjs +65 -0
  70. package/esm2022/core/formatters/index.mjs +15 -9
  71. package/esm2022/core/formatters/number/formatter.mjs +38 -36
  72. package/esm2022/core/forms/forms-module.mjs +5 -5
  73. package/esm2022/core/forms/forms.directive.mjs +7 -7
  74. package/esm2022/core/forms/validators.mjs +22 -1
  75. package/esm2022/core/highlight/highlight.pipe.mjs +4 -4
  76. package/esm2022/core/highlight/index.mjs +5 -5
  77. package/esm2022/core/line/line.mjs +8 -8
  78. package/esm2022/core/locales/formatters.mjs +21 -13
  79. package/esm2022/core/locales/locale-service.mjs +4 -4
  80. package/esm2022/core/locales/locale-service.module.mjs +5 -5
  81. package/esm2022/core/locales/types.mjs +1 -1
  82. package/esm2022/core/option/action.mjs +4 -4
  83. package/esm2022/core/option/optgroup.mjs +4 -4
  84. package/esm2022/core/option/option-module.mjs +5 -5
  85. package/esm2022/core/option/option.mjs +4 -4
  86. package/esm2022/core/pop-up/pop-up-trigger.mjs +22 -13
  87. package/esm2022/core/pop-up/pop-up.mjs +9 -5
  88. package/esm2022/core/select/common.mjs +21 -19
  89. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
  90. package/esm2022/core/selection/pseudo-checkbox/pseudo-checkbox.module.mjs +5 -5
  91. package/esm2022/core/services/measure-scrollbar.service.mjs +4 -4
  92. package/esm2022/core/services/theme.service.mjs +4 -4
  93. package/esm2022/core/utils/public-api.mjs +1 -2
  94. package/esm2022/core/version.mjs +2 -2
  95. package/esm2022/datepicker/calendar-body.component.mjs +4 -4
  96. package/esm2022/datepicker/calendar-header.component.mjs +4 -4
  97. package/esm2022/datepicker/calendar.component.mjs +5 -5
  98. package/esm2022/datepicker/datepicker-input.directive.mjs +4 -4
  99. package/esm2022/datepicker/datepicker-intl.mjs +4 -4
  100. package/esm2022/datepicker/datepicker-module.mjs +5 -5
  101. package/esm2022/datepicker/datepicker-toggle.component.mjs +7 -7
  102. package/esm2022/datepicker/datepicker.component.mjs +8 -8
  103. package/esm2022/datepicker/month-view.component.mjs +4 -4
  104. package/esm2022/divider/divider.component.mjs +4 -4
  105. package/esm2022/divider/divider.module.mjs +5 -5
  106. package/esm2022/dl/dl.component.mjs +10 -10
  107. package/esm2022/dl/dl.module.mjs +5 -5
  108. package/esm2022/dropdown/dropdown-content.directive.mjs +4 -4
  109. package/esm2022/dropdown/dropdown-item.component.mjs +9 -7
  110. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -4
  111. package/esm2022/dropdown/dropdown.component.mjs +4 -4
  112. package/esm2022/dropdown/dropdown.module.mjs +5 -5
  113. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +20 -10
  114. package/esm2022/empty-state/empty-state.component.mjs +16 -16
  115. package/esm2022/empty-state/empty-state.module.mjs +5 -5
  116. package/esm2022/file-upload/file-drop.mjs +4 -4
  117. package/esm2022/file-upload/file-upload.mjs +2 -1
  118. package/esm2022/file-upload/file-upload.module.mjs +5 -5
  119. package/esm2022/file-upload/multiple-file-upload.component.mjs +23 -9
  120. package/esm2022/file-upload/single-file-upload.component.mjs +18 -9
  121. package/esm2022/filter-bar/filter-bar-button.mjs +4 -4
  122. package/esm2022/filter-bar/filter-bar.mjs +4 -4
  123. package/esm2022/filter-bar/filter-bar.module.mjs +5 -5
  124. package/esm2022/filter-bar/filter-bar.types.mjs +32 -1
  125. package/esm2022/filter-bar/filter-refresher.mjs +4 -4
  126. package/esm2022/filter-bar/filter-reset.mjs +4 -4
  127. package/esm2022/filter-bar/filter-search.mjs +5 -5
  128. package/esm2022/filter-bar/filters.mjs +27 -20
  129. package/esm2022/filter-bar/pipe-add.mjs +5 -5
  130. package/esm2022/filter-bar/pipe.directive.mjs +4 -4
  131. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -7
  132. package/esm2022/filter-bar/pipes/pipe-button.mjs +5 -5
  133. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -6
  134. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -6
  135. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +29 -11
  136. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +234 -0
  137. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +6 -6
  138. package/esm2022/filter-bar/pipes/pipe-select.mjs +6 -6
  139. package/esm2022/filter-bar/pipes/pipe-state.mjs +4 -4
  140. package/esm2022/filter-bar/pipes/pipe-text.mjs +6 -6
  141. package/esm2022/filter-bar/pipes/pipe-title.mjs +4 -4
  142. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +136 -0
  143. package/esm2022/filter-bar/public-api.mjs +2 -1
  144. package/esm2022/form-field/cleaner.mjs +4 -4
  145. package/esm2022/form-field/form-field.mjs +16 -16
  146. package/esm2022/form-field/form-field.module.mjs +5 -5
  147. package/esm2022/form-field/hint.mjs +4 -4
  148. package/esm2022/form-field/password-hint.mjs +9 -7
  149. package/esm2022/form-field/password-toggle.mjs +4 -4
  150. package/esm2022/form-field/prefix.mjs +4 -4
  151. package/esm2022/form-field/stepper.mjs +23 -7
  152. package/esm2022/form-field/suffix.mjs +4 -4
  153. package/esm2022/form-field/validate.directive.mjs +4 -4
  154. package/esm2022/icon/icon-button.component.mjs +4 -4
  155. package/esm2022/icon/icon-item.component.mjs +4 -4
  156. package/esm2022/icon/icon.component.mjs +4 -4
  157. package/esm2022/icon/icon.module.mjs +5 -5
  158. package/esm2022/input/input-number-validators.mjs +7 -7
  159. package/esm2022/input/input-number.mjs +13 -12
  160. package/esm2022/input/input-password.mjs +4 -4
  161. package/esm2022/input/input.mjs +7 -7
  162. package/esm2022/input/input.module.mjs +5 -5
  163. package/esm2022/link/link.component.mjs +4 -4
  164. package/esm2022/link/link.module.mjs +5 -5
  165. package/esm2022/list/list-selection.component.mjs +10 -10
  166. package/esm2022/list/list.component.mjs +7 -7
  167. package/esm2022/list/list.module.mjs +5 -5
  168. package/esm2022/loader-overlay/loader-overlay.component.mjs +13 -13
  169. package/esm2022/loader-overlay/loader-overlay.module.mjs +5 -5
  170. package/esm2022/markdown/markdown.component.mjs +4 -4
  171. package/esm2022/markdown/markdown.module.mjs +5 -5
  172. package/esm2022/markdown/markdown.service.mjs +4 -4
  173. package/esm2022/modal/css-unit.pipe.mjs +4 -4
  174. package/esm2022/modal/modal-control.service.mjs +4 -4
  175. package/esm2022/modal/modal.component.mjs +4 -4
  176. package/esm2022/modal/modal.directive.mjs +13 -13
  177. package/esm2022/modal/modal.module.mjs +5 -5
  178. package/esm2022/modal/modal.service.mjs +4 -4
  179. package/esm2022/modal/modal.type.mjs +1 -1
  180. package/esm2022/navbar/navbar-item.component.mjs +28 -28
  181. package/esm2022/navbar/navbar.component.mjs +10 -10
  182. package/esm2022/navbar/navbar.module.mjs +5 -5
  183. package/esm2022/navbar/vertical-navbar.component.mjs +4 -4
  184. package/esm2022/overflow-items/module.mjs +5 -5
  185. package/esm2022/overflow-items/overflow-items.mjs +56 -83
  186. package/esm2022/popover/popover-confirm.component.mjs +7 -7
  187. package/esm2022/popover/popover.component.mjs +15 -9
  188. package/esm2022/popover/popover.module.mjs +5 -5
  189. package/esm2022/progress-bar/progress-bar.component.mjs +10 -10
  190. package/esm2022/progress-bar/progress-bar.module.mjs +5 -5
  191. package/esm2022/progress-spinner/progress-spinner.component.mjs +10 -10
  192. package/esm2022/progress-spinner/progress-spinner.module.mjs +5 -5
  193. package/esm2022/radio/radio.component.mjs +7 -7
  194. package/esm2022/radio/radio.module.mjs +5 -5
  195. package/esm2022/risk-level/risk-level.component.mjs +4 -4
  196. package/esm2022/risk-level/risk-level.module.mjs +5 -5
  197. package/esm2022/scrollbar/scrollbar.component.mjs +4 -4
  198. package/esm2022/scrollbar/scrollbar.directive.mjs +4 -4
  199. package/esm2022/scrollbar/scrollbar.module.mjs +5 -5
  200. package/esm2022/select/select-option.directive.mjs +4 -4
  201. package/esm2022/select/select.component.mjs +10 -11
  202. package/esm2022/select/select.module.mjs +5 -5
  203. package/esm2022/sidebar/sidebar.component.mjs +18 -12
  204. package/esm2022/sidebar/sidebar.module.mjs +5 -5
  205. package/esm2022/sidepanel/sidepanel-container.component.mjs +4 -4
  206. package/esm2022/sidepanel/sidepanel-directives.mjs +16 -16
  207. package/esm2022/sidepanel/sidepanel.module.mjs +5 -5
  208. package/esm2022/sidepanel/sidepanel.service.mjs +4 -4
  209. package/esm2022/splitter/splitter.component.mjs +13 -13
  210. package/esm2022/splitter/splitter.module.mjs +5 -5
  211. package/esm2022/table/table.component.mjs +7 -7
  212. package/esm2022/table/table.module.mjs +5 -5
  213. package/esm2022/tabs/paginated-tab-header.mjs +4 -4
  214. package/esm2022/tabs/tab-body.component.mjs +7 -7
  215. package/esm2022/tabs/tab-content.directive.mjs +4 -4
  216. package/esm2022/tabs/tab-group.component.mjs +16 -16
  217. package/esm2022/tabs/tab-header.component.mjs +4 -4
  218. package/esm2022/tabs/tab-label-wrapper.directive.mjs +4 -4
  219. package/esm2022/tabs/tab-label.directive.mjs +4 -4
  220. package/esm2022/tabs/tab-nav-bar.mjs +10 -10
  221. package/esm2022/tabs/tab.component.mjs +4 -4
  222. package/esm2022/tabs/tabs.module.mjs +5 -5
  223. package/esm2022/tags/tag-input.mjs +4 -4
  224. package/esm2022/tags/tag-list.component.mjs +5 -5
  225. package/esm2022/tags/tag.component.mjs +13 -13
  226. package/esm2022/tags/tag.module.mjs +5 -5
  227. package/esm2022/textarea/textarea.component.mjs +4 -4
  228. package/esm2022/textarea/textarea.module.mjs +5 -5
  229. package/esm2022/timepicker/timepicker.directive.mjs +4 -4
  230. package/esm2022/timepicker/timepicker.module.mjs +5 -5
  231. package/esm2022/timezone/cities-by-filter.pipe.mjs +4 -4
  232. package/esm2022/timezone/timezone-option.component.mjs +4 -4
  233. package/esm2022/timezone/timezone-option.directive.mjs +4 -4
  234. package/esm2022/timezone/timezone-select.component.mjs +9 -9
  235. package/esm2022/timezone/timezone.module.mjs +5 -5
  236. package/esm2022/timezone/utc-offset.pipe.mjs +4 -4
  237. package/esm2022/title/title.directive.mjs +4 -4
  238. package/esm2022/title/title.module.mjs +5 -5
  239. package/esm2022/toast/toast-container.component.mjs +4 -4
  240. package/esm2022/toast/toast.component.mjs +7 -7
  241. package/esm2022/toast/toast.module.mjs +5 -5
  242. package/esm2022/toast/toast.service.mjs +4 -4
  243. package/esm2022/toggle/toggle.component.mjs +4 -4
  244. package/esm2022/toggle/toggle.module.mjs +5 -5
  245. package/esm2022/tooltip/tooltip.component.mjs +23 -14
  246. package/esm2022/tooltip/tooltip.module.mjs +5 -5
  247. package/esm2022/top-bar/module.mjs +5 -5
  248. package/esm2022/top-bar/top-bar.mjs +12 -12
  249. package/esm2022/tree/control/flat-tree-control.filters.mjs +10 -2
  250. package/esm2022/tree/node.mjs +4 -4
  251. package/esm2022/tree/outlet.mjs +4 -4
  252. package/esm2022/tree/padding.directive.mjs +4 -4
  253. package/esm2022/tree/toggle.mjs +10 -10
  254. package/esm2022/tree/tree-base.mjs +7 -7
  255. package/esm2022/tree/tree-option.component.mjs +11 -7
  256. package/esm2022/tree/tree-selection.component.mjs +6 -4
  257. package/esm2022/tree/tree.mjs +4 -4
  258. package/esm2022/tree/tree.module.mjs +5 -5
  259. package/esm2022/tree-select/tree-select.component.mjs +5 -5
  260. package/esm2022/tree-select/tree-select.module.mjs +5 -5
  261. package/fesm2022/koobiq-components-accordion.mjs +21 -21
  262. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  263. package/fesm2022/koobiq-components-actions-panel.mjs +21 -21
  264. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  265. package/fesm2022/koobiq-components-alert.mjs +16 -16
  266. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  267. package/fesm2022/koobiq-components-autocomplete.mjs +13 -13
  268. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  269. package/fesm2022/koobiq-components-badge.mjs +13 -13
  270. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  271. package/fesm2022/koobiq-components-breadcrumbs.mjs +20 -20
  272. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  273. package/fesm2022/koobiq-components-button-toggle.mjs +10 -10
  274. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  275. package/fesm2022/koobiq-components-button.mjs +13 -13
  276. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  277. package/fesm2022/koobiq-components-checkbox.mjs +11 -11
  278. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  279. package/fesm2022/koobiq-components-code-block.mjs +14 -11
  280. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  281. package/fesm2022/koobiq-components-core.mjs +452 -333
  282. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  283. package/fesm2022/koobiq-components-datepicker.mjs +36 -36
  284. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  285. package/fesm2022/koobiq-components-divider.mjs +7 -7
  286. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  287. package/fesm2022/koobiq-components-dl.mjs +13 -13
  288. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  289. package/fesm2022/koobiq-components-dropdown.mjs +21 -19
  290. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  291. package/fesm2022/koobiq-components-ellipsis-center.mjs +19 -9
  292. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  293. package/fesm2022/koobiq-components-empty-state.mjs +19 -19
  294. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  295. package/fesm2022/koobiq-components-file-upload.mjs +43 -21
  296. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  297. package/fesm2022/koobiq-components-filter-bar.mjs +481 -108
  298. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  299. package/fesm2022/koobiq-components-form-field.mjs +66 -49
  300. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  301. package/fesm2022/koobiq-components-icon.mjs +13 -13
  302. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  303. package/fesm2022/koobiq-components-input.mjs +32 -31
  304. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  305. package/fesm2022/koobiq-components-link.mjs +7 -7
  306. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  307. package/fesm2022/koobiq-components-list.mjs +19 -19
  308. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  309. package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
  310. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  311. package/fesm2022/koobiq-components-markdown.mjs +10 -10
  312. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  313. package/fesm2022/koobiq-components-modal.mjs +28 -28
  314. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  315. package/fesm2022/koobiq-components-navbar.mjs +43 -43
  316. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  317. package/fesm2022/koobiq-components-overflow-items.mjs +59 -86
  318. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  319. package/fesm2022/koobiq-components-popover.mjs +24 -18
  320. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  321. package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
  322. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  323. package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
  324. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  325. package/fesm2022/koobiq-components-radio.mjs +10 -10
  326. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  327. package/fesm2022/koobiq-components-risk-level.mjs +7 -7
  328. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  329. package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
  330. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  331. package/fesm2022/koobiq-components-select.mjs +16 -17
  332. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  333. package/fesm2022/koobiq-components-sidebar.mjs +21 -15
  334. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  335. package/fesm2022/koobiq-components-sidepanel.mjs +25 -25
  336. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  337. package/fesm2022/koobiq-components-splitter.mjs +16 -16
  338. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  339. package/fesm2022/koobiq-components-table.mjs +10 -10
  340. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  341. package/fesm2022/koobiq-components-tabs.mjs +52 -52
  342. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  343. package/fesm2022/koobiq-components-tags.mjs +23 -23
  344. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  345. package/fesm2022/koobiq-components-textarea.mjs +7 -7
  346. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  347. package/fesm2022/koobiq-components-timepicker.mjs +7 -7
  348. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  349. package/fesm2022/koobiq-components-timezone.mjs +24 -24
  350. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  351. package/fesm2022/koobiq-components-title.mjs +7 -7
  352. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  353. package/fesm2022/koobiq-components-toast.mjs +16 -16
  354. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  355. package/fesm2022/koobiq-components-toggle.mjs +7 -7
  356. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  357. package/fesm2022/koobiq-components-tooltip.mjs +26 -17
  358. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  359. package/fesm2022/koobiq-components-top-bar.mjs +15 -15
  360. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  361. package/fesm2022/koobiq-components-tree-select.mjs +8 -8
  362. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  363. package/fesm2022/koobiq-components-tree.mjs +54 -40
  364. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  365. package/file-upload/_file-upload-theme.scss +125 -32
  366. package/file-upload/file-upload-tokens.scss +42 -14
  367. package/file-upload/file-upload.d.ts +1 -0
  368. package/file-upload/multiple-file-upload.component.d.ts +12 -5
  369. package/file-upload/multiple-file-upload.component.scss +66 -69
  370. package/file-upload/single-file-upload.component.d.ts +7 -1
  371. package/file-upload/single-file-upload.component.scss +9 -0
  372. package/filter-bar/filter-bar.types.d.ts +28 -1
  373. package/filter-bar/filters.d.ts +3 -2
  374. package/filter-bar/filters.scss +4 -0
  375. package/filter-bar/pipes/base-pipe.scss +1 -0
  376. package/filter-bar/pipes/pipe-multi-select.d.ts +6 -1
  377. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +57 -0
  378. package/filter-bar/pipes/pipe-multi-tree-select.scss +19 -0
  379. package/filter-bar/pipes/pipe-tree-select.d.ts +41 -0
  380. package/filter-bar/pipes/pipe-tree-select.scss +9 -0
  381. package/filter-bar/public-api.d.ts +1 -0
  382. package/form-field/_form-field-theme.scss +12 -12
  383. package/form-field/form-field.d.ts +3 -1
  384. package/form-field/form-field.scss +58 -61
  385. package/form-field/stepper.d.ts +15 -1
  386. package/input/_input-theme.scss +6 -0
  387. package/input/input-number.d.ts +1 -0
  388. package/modal/modal.type.d.ts +1 -1
  389. package/overflow-items/overflow-items.d.ts +17 -26
  390. package/package.json +5 -5
  391. package/popover/popover.component.d.ts +4 -2
  392. package/prebuilt-themes/dark-theme.css +1 -1
  393. package/prebuilt-themes/light-theme.css +1 -1
  394. package/prebuilt-themes/theme.css +1 -1
  395. package/schematics/ng-add/index.js +5 -5
  396. package/select/_select-theme.scss +1 -1
  397. package/select/select.scss +2 -0
  398. package/tags/_tag-theme.scss +5 -0
  399. package/tags/tag-tokens.scss +17 -0
  400. package/tooltip/tooltip.component.d.ts +8 -1
  401. package/top-bar/top-bar.scss +1 -0
  402. package/tree/control/flat-tree-control.filters.d.ts +1 -0
  403. package/tree/tree-option.component.d.ts +3 -1
  404. package/core/utils/data-size/config.d.ts +0 -38
  405. package/core/utils/data-size/data-size.pipe.d.ts +0 -14
  406. package/core/utils/data-size/size.d.ts +0 -15
  407. package/esm2022/core/utils/data-size/config.mjs +0 -10
  408. package/esm2022/core/utils/data-size/data-size.pipe.mjs +0 -45
  409. package/esm2022/core/utils/data-size/index.mjs +0 -4
  410. package/esm2022/core/utils/data-size/size.mjs +0 -43
@@ -55,7 +55,9 @@ export declare enum KbqPipeTypes {
55
55
  ReadOnly = "readonly",
56
56
  Text = "text",
57
57
  Select = "select",
58
+ TreeSelect = "tree-select",
58
59
  MultiSelect = "multiselect",
60
+ MultiTreeSelect = "multi-tree-select",
59
61
  Date = "date",
60
62
  Datetime = "datetime"
61
63
  }
@@ -105,7 +107,32 @@ export interface KbqSaveFilterError {
105
107
  text?: string;
106
108
  nameAlreadyExists?: boolean;
107
109
  }
110
+ /** saving statuses for KbqSaveFilterEvent */
111
+ export declare enum KbqSaveFilterStatuses {
112
+ OnlyChanges = "onlyChanges",
113
+ NewName = "newName",
114
+ NewFilter = "newFilter"
115
+ }
108
116
  export interface KbqSaveFilterEvent {
109
- filter: KbqFilter | null;
117
+ filter: KbqFilter;
110
118
  filterBar: KbqFilterBar;
119
+ status?: KbqSaveFilterStatuses;
120
+ }
121
+ /** Flattened node */
122
+ export declare class KbqTreeSelectFlatNode {
123
+ name: string;
124
+ value: unknown;
125
+ level: number;
126
+ expandable: boolean;
127
+ parent?: KbqTreeSelectFlatNode;
128
+ }
129
+ export interface KbqTreeSelectNode {
130
+ children: KbqTreeSelectNode[] | null;
131
+ name: string;
132
+ value: unknown;
111
133
  }
134
+ /**
135
+ * Build the file structure tree. The `value` is the Json object, or a sub-tree of a Json object.
136
+ * The return value is the list of extends `KbqTreeSelectNode`.
137
+ */
138
+ export declare function kbqBuildTree<T extends KbqTreeSelectNode>(value: any, level: number): T[];
@@ -41,7 +41,8 @@ export declare class KbqFilters implements OnInit {
41
41
  readonly onSave: EventEmitter<KbqSaveFilterEvent>;
42
42
  /** Event that is generated whenever the user change a filter. */
43
43
  readonly onChangeFilter: EventEmitter<KbqSaveFilterEvent>;
44
- /** Event that is generated whenever the user saves a filter as new. */
44
+ /** Event that is generated whenever the user saves a filter as new.
45
+ * @deprecated use onSave with status = newFilter. */
45
46
  readonly onSaveAsNew: EventEmitter<KbqSaveFilterEvent>;
46
47
  /** Event that is generated whenever the user remove a filter. */
47
48
  readonly onRemoveFilter: EventEmitter<KbqFilter>;
@@ -62,7 +63,7 @@ export declare class KbqFilters implements OnInit {
62
63
  ngOnInit(): void;
63
64
  selectFilter(filter: KbqFilter): void;
64
65
  saveChanges(): void;
65
- saveAsNew(): void;
66
+ saveAsNew(event?: Event): void;
66
67
  showError(error?: KbqSaveFilterError): void;
67
68
  restoreFocus(): void;
68
69
  preparePopover(): void;
@@ -18,6 +18,10 @@
18
18
 
19
19
  & .kbq-filters__filter-name {
20
20
  @include common.kbq-truncate-line();
21
+
22
+ & .kbq-icon {
23
+ margin-bottom: var(--kbq-size-3xs);
24
+ }
21
25
  }
22
26
 
23
27
  & .kbq-filter-bar__separator {
@@ -47,6 +47,7 @@
47
47
  }
48
48
 
49
49
  .kbq-select:not(:hover, .kbq-active),
50
+ .kbq-tree-select:not(:hover, .kbq-active),
50
51
  .kbq-button:not(:hover, .kbq-active, [disabled]) {
51
52
  & + .kbq-pipe-button:not(:hover, .kbq-active)::after {
52
53
  content: '';
@@ -21,8 +21,12 @@ export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectVa
21
21
  get isEmpty(): boolean;
22
22
  /** state for checkbox 'select all'. */
23
23
  get checkboxState(): KbqPseudoCheckboxState;
24
+ /** true if all visible options selected */
25
+ get allVisibleOptionsSelected(): boolean;
26
+ /** true if all options selected */
27
+ get allOptionsSelected(): boolean;
24
28
  private get visibleOptions();
25
- private get allOptionsSelected();
29
+ private selectionAllInProgress;
26
30
  /** @docs-private */
27
31
  ngOnInit(): void;
28
32
  /** @docs-private */
@@ -37,6 +41,7 @@ export declare class KbqPipeMultiSelectComponent extends KbqBasePipe<KbqSelectVa
37
41
  toggleSelectionAll(): void;
38
42
  /** Comparator of selected options */
39
43
  compareByValue: (o1: any, o2: any) => boolean;
44
+ onClose(): void;
40
45
  /** opens select */
41
46
  open(): void;
42
47
  private getFilteredOptions;
@@ -0,0 +1,57 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UntypedFormControl } from '@angular/forms';
3
+ import { KbqPseudoCheckboxState } from '@koobiq/components/core';
4
+ import { FlatTreeControl, KbqTreeFlatDataSource, KbqTreeFlattener, KbqTreeSelection } from '@koobiq/components/tree';
5
+ import { KbqTreeSelect } from '@koobiq/components/tree-select';
6
+ import { Observable } from 'rxjs';
7
+ import { KbqPipeTemplate, KbqSelectValue, KbqTreeSelectFlatNode, KbqTreeSelectNode } from '../filter-bar.types';
8
+ import { KbqBasePipe } from './base-pipe';
9
+ import * as i0 from "@angular/core";
10
+ export declare class KbqPipeMultiTreeSelectComponent extends KbqBasePipe<KbqSelectValue[]> implements OnInit {
11
+ /** control for search options */
12
+ searchControl: UntypedFormControl;
13
+ /** filtered by search options */
14
+ filteredOptions: Observable<any[]>;
15
+ treeControl: FlatTreeControl<KbqTreeSelectFlatNode>;
16
+ treeFlattener: KbqTreeFlattener<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
17
+ dataSource: KbqTreeFlatDataSource<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
18
+ template: any;
19
+ /** @docs-private */
20
+ select: KbqTreeSelect;
21
+ /** @docs-private */
22
+ tree: KbqTreeSelection;
23
+ /** selected value */
24
+ get selected(): KbqSelectValue[] | null;
25
+ /** Whether the current pipe is empty. */
26
+ get isEmpty(): boolean;
27
+ get selectAllCheckboxState(): KbqPseudoCheckboxState;
28
+ get numberOfSelectedLeaves(): number;
29
+ /** true if all options selected */
30
+ get allOptionsSelected(): boolean;
31
+ /** true if all visible options selected */
32
+ get allVisibleOptionsSelected(): boolean;
33
+ constructor();
34
+ ngOnInit(): void;
35
+ isNodeHasChild(_: number, nodeData: any): any;
36
+ isNodeSelectAll(_: number, nodeData: any): boolean;
37
+ onSelect({ value: option }: {
38
+ value: any;
39
+ }): void;
40
+ searchKeydownHandler(): void;
41
+ toggleSelectAllNode(): void;
42
+ /** updates values for selection and value template */
43
+ updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
44
+ /** opens select */
45
+ open(): void;
46
+ onOpen(): void;
47
+ onClose(): void;
48
+ private toggleParents;
49
+ private transformer;
50
+ private getLevel;
51
+ private isExpandable;
52
+ private getChildren;
53
+ private getValue;
54
+ private getViewValue;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeMultiTreeSelectComponent, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeMultiTreeSelectComponent, "kbq-pipe-multi-tree-select", never, {}, {}, never, never, true, never>;
57
+ }
@@ -0,0 +1,19 @@
1
+ .kbq-pipe__multi-tree-select {
2
+ .kbq-pipe__value {
3
+ margin-left: var(--kbq-size-xxs);
4
+ }
5
+
6
+ .kbq-badge {
7
+ align-self: center;
8
+
9
+ margin-left: var(--kbq-size-xs);
10
+ }
11
+
12
+ & .kbq-tree-select .kbq-select__trigger {
13
+ height: unset;
14
+ }
15
+ }
16
+
17
+ .kbq-pipe-multi-tree-select__panel .kbq-select__content {
18
+ max-height: 404px;
19
+ }
@@ -0,0 +1,41 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UntypedFormControl } from '@angular/forms';
3
+ import { FlatTreeControl, KbqTreeFlatDataSource, KbqTreeFlattener, KbqTreeOption } from '@koobiq/components/tree';
4
+ import { KbqTreeSelect } from '@koobiq/components/tree-select';
5
+ import { Observable } from 'rxjs';
6
+ import { KbqPipeTemplate, KbqSelectValue, KbqTreeSelectFlatNode, KbqTreeSelectNode } from '../filter-bar.types';
7
+ import { KbqBasePipe } from './base-pipe';
8
+ import * as i0 from "@angular/core";
9
+ export declare class KbqPipeTreeSelectComponent extends KbqBasePipe<KbqSelectValue> implements OnInit {
10
+ /** control for search options */
11
+ searchControl: UntypedFormControl;
12
+ /** filtered by search options */
13
+ filteredOptions: Observable<any[]>;
14
+ treeControl: FlatTreeControl<KbqTreeSelectFlatNode>;
15
+ treeFlattener: KbqTreeFlattener<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
16
+ dataSource: KbqTreeFlatDataSource<KbqTreeSelectNode, KbqTreeSelectFlatNode>;
17
+ template: any;
18
+ /** @docs-private */
19
+ select: KbqTreeSelect;
20
+ /** selected value */
21
+ get selected(): KbqSelectValue | null;
22
+ /** Whether the current pipe is empty. */
23
+ get isEmpty(): boolean;
24
+ constructor();
25
+ ngOnInit(): void;
26
+ hasChild(_: number, nodeData: any): any;
27
+ onSelect(item: KbqTreeOption): void;
28
+ /** updates values for selection and value template */
29
+ updateTemplates: (templates: KbqPipeTemplate[] | null) => void;
30
+ /** opens select */
31
+ open(): void;
32
+ onOpen(): void;
33
+ private transformer;
34
+ private getLevel;
35
+ private isExpandable;
36
+ private getChildren;
37
+ private getValue;
38
+ private getViewValue;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqPipeTreeSelectComponent, never>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqPipeTreeSelectComponent, "kbq-pipe-tree-select", never, {}, {}, never, never, true, never>;
41
+ }
@@ -0,0 +1,9 @@
1
+ .kbq-pipe-tree-select__panel .kbq-tree-select__content {
2
+ max-height: 404px;
3
+ }
4
+
5
+ .kbq-pipe__tree-select {
6
+ .kbq-select__trigger {
7
+ height: unset;
8
+ }
9
+ }
@@ -18,3 +18,4 @@ export * from './pipes/pipe-select';
18
18
  export * from './pipes/pipe-state';
19
19
  export * from './pipes/pipe-text';
20
20
  export * from './pipes/pipe-title';
21
+ export * from './pipes/pipe-tree-select';
@@ -82,18 +82,18 @@
82
82
  -webkit-text-fill-color: var(--kbq-form-field-states-disabled-text);
83
83
  }
84
84
  }
85
- }
86
85
 
87
- .kbq-form-field__prefix,
88
- .kbq-form-field__suffix {
89
- .kbq-icon.kbq-empty {
90
- color: var(--kbq-icon-contrast-fade);
86
+ .kbq-form-field__prefix,
87
+ .kbq-form-field__suffix {
88
+ .kbq-icon.kbq-empty {
89
+ color: var(--kbq-icon-contrast-fade);
90
+ }
91
91
  }
92
- }
93
92
 
94
- .kbq-form-field__hint {
95
- & > .kbq-hint:not(.kbq-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning, .kbq-error) {
96
- color: var(--kbq-form-field-hint-text);
93
+ .kbq-form-field__hint {
94
+ & > .kbq-hint:not(.kbq-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning, .kbq-error) {
95
+ color: var(--kbq-form-field-hint-text);
96
+ }
97
97
  }
98
98
  }
99
99
  }
@@ -101,9 +101,9 @@
101
101
  @mixin kbq-form-field-typography() {
102
102
  .kbq-form-field {
103
103
  @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
104
- }
105
104
 
106
- .kbq-form-field__hint > .kbq-hint:not(.kbq-password-hint) .kbq-hint__text {
107
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
105
+ .kbq-form-field__hint > .kbq-hint:not(.kbq-password-hint) .kbq-hint__text {
106
+ @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
107
+ }
108
108
  }
109
109
  }
@@ -38,7 +38,9 @@ export declare class KbqFormField extends KbqColorDirective implements AfterCont
38
38
  get hasPasswordToggle(): boolean;
39
39
  get canShowCleaner(): boolean;
40
40
  get disabled(): boolean;
41
- get canShowStepper(): boolean;
41
+ /** @deprecated stepper should be always visible when provided, so this parameter is redundant,
42
+ * use `hasStepper` instead */
43
+ canShowStepper: boolean;
42
44
  constructor(changeDetectorRef: ChangeDetectorRef, focusMonitor: FocusMonitor);
43
45
  ngAfterContentInit(): void;
44
46
  ngAfterContentChecked(): void;
@@ -13,6 +13,11 @@
13
13
 
14
14
  .kbq-form-field__container {
15
15
  box-sizing: border-box;
16
+ position: relative;
17
+ border-width: var(--kbq-form-field-size-border-width);
18
+ border-style: solid;
19
+ border-color: transparent;
20
+ border-radius: var(--kbq-form-field-size-border-radius);
16
21
  }
17
22
 
18
23
  .kbq-form-field:not(.kbq-form-field-type-textarea) {
@@ -61,82 +66,74 @@
61
66
  & + .kbq-password-hint {
62
67
  margin-top: var(--kbq-size-m);
63
68
  }
64
- }
65
-
66
- .kbq-form-field__container {
67
- position: relative;
68
- border-width: var(--kbq-form-field-size-border-width);
69
- border-style: solid;
70
- border-color: transparent;
71
- border-radius: var(--kbq-form-field-size-border-radius);
72
- }
73
69
 
74
- .kbq-form-field__prefix,
75
- .kbq-form-field__suffix {
76
- position: absolute;
77
- top: 0;
78
- bottom: 0;
70
+ .kbq-form-field__prefix,
71
+ .kbq-form-field__suffix {
72
+ position: absolute;
73
+ top: 0;
74
+ bottom: 0;
79
75
 
80
- display: flex;
81
- flex-direction: row;
82
- justify-content: center;
83
- align-items: center;
84
- }
85
-
86
- .kbq-form-field__prefix {
87
- left: 0;
88
- padding-left: var(--kbq-size-m);
89
- padding-right: var(--kbq-size-s);
90
- }
76
+ display: flex;
77
+ flex-direction: row;
78
+ justify-content: center;
79
+ align-items: center;
80
+ }
91
81
 
92
- .kbq-form-field__suffix {
93
- right: 0;
94
- padding-right: var(--kbq-size-m);
95
- padding-left: var(--kbq-size-s);
96
- }
82
+ .kbq-form-field__prefix {
83
+ left: 0;
84
+ padding-left: var(--kbq-size-m);
85
+ padding-right: var(--kbq-size-s);
86
+ }
97
87
 
98
- .kbq-form-field__cleaner,
99
- .kbq-password-toggle,
100
- .kbq-stepper {
101
- position: absolute;
88
+ .kbq-form-field__suffix {
89
+ right: 0;
90
+ padding-right: var(--kbq-size-m);
91
+ padding-left: var(--kbq-size-s);
92
+ }
102
93
 
103
- top: 0;
104
- bottom: 0;
105
- right: 0;
106
- }
94
+ .kbq-form-field__cleaner,
95
+ .kbq-password-toggle,
96
+ .kbq-stepper {
97
+ position: absolute;
107
98
 
108
- .kbq-stepper {
109
- display: flex;
110
- flex-direction: column;
111
- justify-content: center;
112
- align-items: center;
99
+ top: 0;
100
+ bottom: 0;
101
+ right: 0;
102
+ }
113
103
 
114
- width: var(--kbq-form-field-size-icon-button-size);
104
+ .kbq-stepper {
105
+ display: flex;
106
+ flex-direction: column;
107
+ justify-content: center;
108
+ align-items: center;
115
109
 
116
- .kbq-stepper-step-up,
117
- .kbq-stepper-step-down {
118
- cursor: pointer;
119
110
  width: var(--kbq-form-field-size-icon-button-size);
120
- text-align: center;
121
- }
122
111
 
123
- .kbq-stepper-step-up {
124
- transform: scaleY(-1);
112
+ .kbq-stepper-step-up,
113
+ .kbq-stepper-step-down {
114
+ cursor: pointer;
115
+ width: var(--kbq-form-field-size-icon-button-size);
116
+ text-align: center;
117
+ }
118
+
119
+ .kbq-stepper-step-up {
120
+ transform: scaleY(-1);
121
+ }
125
122
  }
126
- }
127
123
 
128
- .kbq-form-field__hint {
129
- display: flex;
130
- flex-direction: column;
131
- margin-top: var(--kbq-form-field-hint-size-margin-top);
124
+ .kbq-form-field__hint {
125
+ display: flex;
126
+ flex-direction: column;
127
+ margin-top: var(--kbq-form-field-hint-size-margin-top);
132
128
 
133
- & .kbq-password-hint:first-child {
134
- margin-top: var(--kbq-size-s);
129
+ & .kbq-password-hint:first-child {
130
+ margin-top: var(--kbq-size-s);
131
+ }
135
132
  }
136
- }
137
133
 
138
- .kbq-password-hint {
139
- margin-top: var(--kbq-form-field-hint-size-gap);
134
+ .kbq-password-hint {
135
+ margin-top: var(--kbq-form-field-hint-size-gap);
136
+ }
140
137
  }
141
138
 
142
139
  @include kbq-form-field-theme();
@@ -1,11 +1,25 @@
1
1
  import { EventEmitter } from '@angular/core';
2
+ import { KbqFormFieldControl } from './form-field-control';
2
3
  import * as i0 from "@angular/core";
4
+ /**
5
+ * Used as temporary solution to resolve circular dependency.
6
+ * Moving `KbqStepper` to standalone will resolve the issue
7
+ */
8
+ type KbqNumberInput = KbqFormFieldControl<unknown> & {
9
+ stepUp: (val: number) => void;
10
+ stepDown: (val: number) => void;
11
+ step: number;
12
+ };
3
13
  export declare class KbqStepper {
14
+ private readonly formField;
4
15
  readonly stepUp: EventEmitter<void>;
5
16
  readonly stepDown: EventEmitter<void>;
6
- connectTo(numberInput: any): void;
17
+ /** Form field number control. */
18
+ protected get control(): KbqNumberInput;
19
+ connectTo(numberInput: KbqNumberInput): void;
7
20
  onStepUp($event: MouseEvent): void;
8
21
  onStepDown($event: MouseEvent): void;
9
22
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqStepper, never>;
10
23
  static ɵcmp: i0.ɵɵComponentDeclaration<KbqStepper, "kbq-stepper", never, {}, { "stepUp": "stepUp"; "stepDown": "stepDown"; }, never, never, false, never>;
11
24
  }
25
+ export {};
@@ -8,5 +8,11 @@
8
8
 
9
9
  .kbq-input.kbq-input-password {
10
10
  @include kbq-typography-level-to-styles-css-variables(typography, mono-normal);
11
+ // disable font-specific symbols replacements
12
+ font-variant-ligatures: none;
13
+ font-feature-settings:
14
+ 'liga' 0,
15
+ 'clig' 0,
16
+ 'calt' 0;
11
17
  }
12
18
  }
@@ -8,6 +8,7 @@ export declare const KBQ_INPUT_NUMBER_DEFAULT_CONFIGURATION: {
8
8
  groupSeparator: string[];
9
9
  fractionSeparator: string;
10
10
  startFormattingFrom: number;
11
+ viewGroupSeparator: string;
11
12
  };
12
13
  export declare const BIG_STEP = 10;
13
14
  export declare const SMALL_STEP = 1;
@@ -19,7 +19,7 @@ export interface ModalOptions<C = any, R = any> {
19
19
  kbqTitle?: string | TemplateRef<{}>;
20
20
  kbqContent?: string | TemplateRef<{}> | Type<C>;
21
21
  kbqComponent?: Type<C>;
22
- /** deprecated. Use field data and KBQ_MODAL_DATA */
22
+ /** @deprecated. Use field data and KBQ_MODAL_DATA */
23
23
  kbqComponentParams?: any;
24
24
  kbqClosable?: boolean;
25
25
  kbqMask?: boolean;
@@ -1,4 +1,3 @@
1
- import { ElementRef } from '@angular/core';
2
1
  import * as i0 from "@angular/core";
3
2
  /**
4
3
  * Manages the visibility of the element.
@@ -7,18 +6,14 @@ import * as i0 from "@angular/core";
7
6
  */
8
7
  export declare class ElementVisibilityManager {
9
8
  private readonly renderer;
10
- /**
11
- * Reference to the element.
12
- *
13
- * @docs-private
14
- */
15
- readonly elementRef: ElementRef<any>;
9
+ private readonly elementRef;
10
+ private readonly hiddenState;
16
11
  /**
17
12
  * Whether the element is hidden.
18
13
  *
19
14
  * @docs-private
20
15
  */
21
- readonly hidden: import("@angular/core").WritableSignal<boolean>;
16
+ readonly hidden: import("@angular/core").Signal<boolean>;
22
17
  /**
23
18
  * Hides the element.
24
19
  *
@@ -59,6 +54,10 @@ export declare class KbqOverflowItem extends ElementVisibilityManager {
59
54
  * @default false
60
55
  */
61
56
  readonly alwaysVisible: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
57
+ /**
58
+ * @docs-private
59
+ */
60
+ hide(): void;
62
61
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqOverflowItem, never>;
63
62
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOverflowItem, "[kbqOverflowItem]", ["kbqOverflowItem"], { "id": { "alias": "kbqOverflowItem"; "required": true; "isSignal": true; }; "order": { "alias": "order"; "required": false; "isSignal": true; }; "alwaysVisible": { "alias": "alwaysVisible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
64
63
  }
@@ -68,14 +67,10 @@ export declare class KbqOverflowItem extends ElementVisibilityManager {
68
67
  export declare class KbqOverflowItems {
69
68
  /**
70
69
  * `KbqOverflowItem` directive references.
71
- *
72
- * @docs-private
73
70
  */
74
71
  private readonly items;
75
72
  /**
76
73
  * `KbqOverflowItemsResult` directive reference.
77
- *
78
- * @docs-private
79
74
  */
80
75
  private readonly result;
81
76
  /**
@@ -87,7 +82,7 @@ export declare class KbqOverflowItems {
87
82
  /**
88
83
  * Debounce time for recalculating items visibility.
89
84
  *
90
- * @default 100
85
+ * @default 0
91
86
  */
92
87
  readonly debounceTime: import("@angular/core").InputSignalWithTransform<number, unknown>;
93
88
  /**
@@ -104,31 +99,27 @@ export declare class KbqOverflowItems {
104
99
  private readonly document;
105
100
  constructor();
106
101
  /**
107
- * Returns a list of items sorted by their specified `order` value.
102
+ * Sort items by their `order` attribute.
108
103
  * If an item does not have an `order` defined, its index is used as a fallback.
109
- * This ensures a stable order while allowing custom positioning.
110
104
  */
111
- private getSortedItemsByOrder;
105
+ private sortItemsByOrder;
112
106
  /**
113
- * Calculates the visibility of items, based on the container width and `reverseOverflowOrder` property.
107
+ * Excludes items that have the `alwaysVisible` attribute.
114
108
  */
115
- private calculateItemsVisibility;
109
+ private excludeAlwaysVisibleItems;
116
110
  /**
117
- * Returns the width of the element including margins.
111
+ * Manages the visibility of items based on the available space in the container and returns the hidden items.
112
+ * Direction of hiding is determined by the `reverseOverflowOrder` attribute.
118
113
  */
119
- private getElementWidthWithMargins;
114
+ private getHiddenItems;
120
115
  /**
121
116
  * This method sets the necessary styles for the directive.
122
117
  */
123
118
  private setStyles;
124
119
  /**
125
- * Determines if the given item is hidden.
126
- */
127
- private isHiddenItem;
128
- /**
129
- * Returns the window object.
120
+ * Determines if the given element has a scrollbar.
130
121
  */
131
- private getWindow;
122
+ private readonly hasScrollbar;
132
123
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqOverflowItems, never>;
133
124
  static ɵdir: i0.ɵɵDirectiveDeclaration<KbqOverflowItems, "[kbqOverflowItems]", ["kbqOverflowItems"], { "reverseOverflowOrder": { "alias": "reverseOverflowOrder"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "changes": "changes"; }, ["items", "result"], never, true, never>;
134
125
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koobiq/components",
3
- "version": "18.28.0",
3
+ "version": "18.30.0",
4
4
  "description": "koobiq",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,11 +24,11 @@
24
24
  "@angular/cdk": "^18.0.0",
25
25
  "@angular/core": "^18.0.0",
26
26
  "@angular/forms": "^18.0.0",
27
- "@koobiq/cdk": "18.28.0",
28
- "@koobiq/angular-moment-adapter": "18.28.0",
29
- "@koobiq/angular-luxon-adapter": "18.28.0",
27
+ "@koobiq/cdk": "18.30.0",
28
+ "@koobiq/angular-moment-adapter": "18.30.0",
29
+ "@koobiq/angular-luxon-adapter": "18.30.0",
30
30
  "@koobiq/date-formatter": "^3.2.3",
31
- "@koobiq/icons": "^9.4.0",
31
+ "@koobiq/icons": "^10.1.0",
32
32
  "@koobiq/tokens-builder": "3.11.0",
33
33
  "@koobiq/design-tokens": "3.13.2",
34
34
  "@radix-ng/primitives": "^0.23.0"
@@ -14,7 +14,6 @@ export declare class KbqPopoverComponent extends KbqPopUp implements AfterViewIn
14
14
  elementRef: ElementRef;
15
15
  cdkTrapFocus: CdkTrapFocus;
16
16
  private debounceTime;
17
- private readonly destroyRef;
18
17
  isContentTopOverflow: boolean;
19
18
  isContentBottomOverflow: boolean;
20
19
  ngAfterViewInit(): void;
@@ -82,6 +81,8 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
82
81
  backdropClass: string;
83
82
  arrow: boolean;
84
83
  offset: number | null;
84
+ /** Delay before closing in milliseconds. The default value for kbqTrigger=PopUpTriggers.Hover is 500 ms. */
85
+ leaveDelay: number;
85
86
  placementChange: EventEmitter<any>;
86
87
  visibleChange: EventEmitter<boolean>;
87
88
  protected originSelector: string;
@@ -98,7 +99,8 @@ export declare class KbqPopoverTrigger extends KbqPopUpTrigger<KbqPopoverCompone
98
99
  closingActions(): import("rxjs").Observable<void | CdkScrollable | MouseEvent>;
99
100
  private hideIfNotInViewPort;
100
101
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqPopoverTrigger, never>;
101
- static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "popoverVisible": { "alias": "kbqPopoverVisible"; "required": false; }; "popoverPlacement": { "alias": "kbqPopoverPlacement"; "required": false; }; "popoverPlacementPriority": { "alias": "kbqPopoverPlacementPriority"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "header": { "alias": "kbqPopoverHeader"; "required": false; }; "content": { "alias": "kbqPopoverContent"; "required": false; }; "footer": { "alias": "kbqPopoverFooter"; "required": false; }; "disabled": { "alias": "kbqPopoverDisabled"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "size": { "alias": "kbqPopoverSize"; "required": false; }; "customClass": { "alias": "kbqPopoverClass"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
102
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqPopoverTrigger, "[kbqPopover]", ["kbqPopover"], { "popoverVisible": { "alias": "kbqPopoverVisible"; "required": false; }; "popoverPlacement": { "alias": "kbqPopoverPlacement"; "required": false; }; "popoverPlacementPriority": { "alias": "kbqPopoverPlacementPriority"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "header": { "alias": "kbqPopoverHeader"; "required": false; }; "content": { "alias": "kbqPopoverContent"; "required": false; }; "footer": { "alias": "kbqPopoverFooter"; "required": false; }; "disabled": { "alias": "kbqPopoverDisabled"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "size": { "alias": "kbqPopoverSize"; "required": false; }; "customClass": { "alias": "kbqPopoverClass"; "required": false; }; "hasCloseButton": { "alias": "hasCloseButton"; "required": false; }; "closeOnScroll": { "alias": "closeOnScroll"; "required": false; }; "backdropClass": { "alias": "backdropClass"; "required": false; }; "arrow": { "alias": "kbqPopoverArrow"; "required": false; }; "offset": { "alias": "kbqPopoverOffset"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; }, { "placementChange": "kbqPopoverPlacementChange"; "visibleChange": "kbqPopoverVisibleChange"; }, never, never, false, never>;
102
103
  static ngAcceptInputType_arrow: unknown;
103
104
  static ngAcceptInputType_offset: unknown;
105
+ static ngAcceptInputType_leaveDelay: unknown;
104
106
  }