@koobiq/components 18.31.0 → 18.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/accordion/accordion-trigger.component.scss +2 -0
  2. package/actions-panel/actions-panel-config.d.ts +2 -0
  3. package/actions-panel/actions-panel.d.ts +3 -57
  4. package/autocomplete/autocomplete-trigger.directive.d.ts +3 -4
  5. package/autocomplete/autocomplete.component.d.ts +1 -0
  6. package/autocomplete/autocomplete.module.d.ts +1 -1
  7. package/button-toggle/button-toggle.module.d.ts +3 -4
  8. package/code-block/code-block-highlight.d.ts +1 -2
  9. package/code-block/code-block.d.ts +57 -10
  10. package/core/common-behaviors/color.d.ts +3 -0
  11. package/core/common-behaviors/common-module.d.ts +16 -3
  12. package/core/form-field/form-field-ref.d.ts +5 -3
  13. package/core/option/action-container.d.ts +5 -0
  14. package/core/option/action-container.scss +45 -0
  15. package/core/option/action.d.ts +1 -4
  16. package/core/option/action.scss +13 -12
  17. package/core/option/index.d.ts +1 -0
  18. package/core/option/option.d.ts +6 -5
  19. package/core/public-api.d.ts +1 -0
  20. package/core/styles/common/_select.scss +60 -37
  21. package/core/styles/common/_tokens.scss +2 -0
  22. package/core/styles/theming/_theming.scss +0 -4
  23. package/core/tokens/index.d.ts +1 -0
  24. package/core/tokens/window.d.ts +5 -0
  25. package/core/validation/validation.d.ts +23 -2
  26. package/datepicker/datepicker-input.scss +1 -5
  27. package/dropdown/dropdown-trigger.directive.d.ts +1 -0
  28. package/ellipsis-center/ellipsis-center.directive.d.ts +7 -1
  29. package/esm2022/accordion/accordion-trigger.component.mjs +2 -2
  30. package/esm2022/accordion/accordion.component.mjs +2 -2
  31. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  32. package/esm2022/actions-panel/actions-panel.mjs +16 -113
  33. package/esm2022/alert/alert.component.mjs +2 -2
  34. package/esm2022/autocomplete/autocomplete-trigger.directive.mjs +9 -13
  35. package/esm2022/autocomplete/autocomplete.component.mjs +10 -2
  36. package/esm2022/autocomplete/autocomplete.module.mjs +5 -11
  37. package/esm2022/badge/badge.component.mjs +2 -2
  38. package/esm2022/breadcrumbs/breadcrumbs.mjs +3 -6
  39. package/esm2022/button/button.component.mjs +4 -3
  40. package/esm2022/button-toggle/button-toggle.component.mjs +2 -2
  41. package/esm2022/button-toggle/button-toggle.module.mjs +5 -6
  42. package/esm2022/checkbox/checkbox.mjs +2 -2
  43. package/esm2022/code-block/code-block-highlight.mjs +8 -12
  44. package/esm2022/code-block/code-block.mjs +60 -18
  45. package/esm2022/core/common-behaviors/color.mjs +4 -1
  46. package/esm2022/core/common-behaviors/common-module.mjs +19 -26
  47. package/esm2022/core/form-field/form-field-ref.mjs +3 -4
  48. package/esm2022/core/option/action-container.mjs +23 -0
  49. package/esm2022/core/option/action.mjs +16 -30
  50. package/esm2022/core/option/index.mjs +2 -1
  51. package/esm2022/core/option/optgroup.mjs +2 -2
  52. package/esm2022/core/option/option.mjs +10 -8
  53. package/esm2022/core/public-api.mjs +2 -1
  54. package/esm2022/core/tokens/index.mjs +2 -0
  55. package/esm2022/core/tokens/window.mjs +19 -0
  56. package/esm2022/core/utils/utils.mjs +2 -1
  57. package/esm2022/core/validation/validation.mjs +21 -2
  58. package/esm2022/core/version.mjs +2 -2
  59. package/esm2022/datepicker/calendar-body.component.mjs +3 -3
  60. package/esm2022/datepicker/calendar-header.component.mjs +3 -3
  61. package/esm2022/datepicker/datepicker-input.directive.mjs +5 -1
  62. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  63. package/esm2022/dl/dl.component.mjs +2 -2
  64. package/esm2022/dropdown/dropdown-trigger.directive.mjs +4 -3
  65. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  66. package/esm2022/ellipsis-center/ellipsis-center.directive.mjs +8 -1
  67. package/esm2022/empty-state/empty-state.component.mjs +2 -2
  68. package/esm2022/file-upload/multiple-file-upload.component.mjs +4 -4
  69. package/esm2022/file-upload/single-file-upload.component.mjs +2 -2
  70. package/esm2022/filter-bar/filter-bar.mjs +21 -5
  71. package/esm2022/filter-bar/filter-bar.types.mjs +1 -1
  72. package/esm2022/filter-bar/filter-reset.mjs +2 -1
  73. package/esm2022/filter-bar/filter-search.mjs +2 -2
  74. package/esm2022/filter-bar/filters.mjs +4 -3
  75. package/esm2022/filter-bar/pipe-add.mjs +2 -2
  76. package/esm2022/filter-bar/pipes/base-pipe.mjs +7 -2
  77. package/esm2022/filter-bar/pipes/pipe-date.mjs +6 -12
  78. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +6 -12
  79. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +2 -2
  80. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +2 -2
  81. package/esm2022/filter-bar/pipes/pipe-select.mjs +2 -2
  82. package/esm2022/filter-bar/pipes/pipe-text.mjs +2 -2
  83. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +2 -2
  84. package/esm2022/form-field/cleaner.mjs +11 -6
  85. package/esm2022/form-field/error.mjs +20 -0
  86. package/esm2022/form-field/fieldset.mjs +84 -0
  87. package/esm2022/form-field/form-field-control.mjs +2 -2
  88. package/esm2022/form-field/form-field.mjs +247 -74
  89. package/esm2022/form-field/form-field.module.mjs +59 -47
  90. package/esm2022/form-field/hint.mjs +10 -18
  91. package/esm2022/form-field/label.mjs +19 -0
  92. package/esm2022/form-field/password-hint.mjs +7 -6
  93. package/esm2022/form-field/password-toggle.mjs +52 -27
  94. package/esm2022/form-field/prefix.mjs +9 -3
  95. package/esm2022/form-field/public-api.mjs +5 -2
  96. package/esm2022/form-field/reactive-password-hint.mjs +65 -0
  97. package/esm2022/form-field/stepper.mjs +34 -16
  98. package/esm2022/form-field/suffix.mjs +8 -3
  99. package/esm2022/form-field/validate.directive.mjs +16 -19
  100. package/esm2022/input/input-number.mjs +7 -2
  101. package/esm2022/input/input-password.mjs +2 -2
  102. package/esm2022/input/input.module.mjs +1 -5
  103. package/esm2022/list/list-selection.component.mjs +5 -5
  104. package/esm2022/list/list.component.mjs +2 -2
  105. package/esm2022/list/list.module.mjs +12 -5
  106. package/esm2022/loader-overlay/loader-overlay.component.mjs +2 -2
  107. package/esm2022/modal/modal-util.mjs +2 -1
  108. package/esm2022/modal/modal.component.mjs +2 -2
  109. package/esm2022/navbar/navbar-item.component.mjs +12 -13
  110. package/esm2022/navbar/navbar.component.mjs +2 -2
  111. package/esm2022/navbar/vertical-navbar.component.mjs +2 -2
  112. package/esm2022/overflow-items/overflow-items.mjs +27 -10
  113. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  114. package/esm2022/popover/popover.component.mjs +3 -3
  115. package/esm2022/progress-bar/progress-bar.component.mjs +2 -2
  116. package/esm2022/progress-spinner/progress-spinner.component.mjs +2 -2
  117. package/esm2022/radio/radio.component.mjs +2 -2
  118. package/esm2022/radio/radio.module.mjs +4 -5
  119. package/esm2022/risk-level/risk-level.component.mjs +2 -2
  120. package/esm2022/scrollbar/scrollbar.component.mjs +14 -11
  121. package/esm2022/scrollbar/scrollbar.directive.mjs +2 -1
  122. package/esm2022/select/select.component.mjs +42 -22
  123. package/esm2022/sidepanel/sidepanel-container.component.mjs +3 -3
  124. package/esm2022/sidepanel/sidepanel.module.mjs +1 -5
  125. package/esm2022/splitter/splitter.component.mjs +5 -3
  126. package/esm2022/table/table.component.mjs +2 -2
  127. package/esm2022/tabs/paginated-tab-header.mjs +6 -2
  128. package/esm2022/tabs/tabs.module.mjs +1 -5
  129. package/esm2022/tags/tag-list.component.mjs +2 -2
  130. package/esm2022/textarea/textarea.component.mjs +7 -6
  131. package/esm2022/textarea/textarea.module.mjs +4 -5
  132. package/esm2022/timezone/timezone-option.component.mjs +2 -2
  133. package/esm2022/timezone/timezone-select.component.mjs +6 -4
  134. package/esm2022/toast/toast-animations.mjs +2 -2
  135. package/esm2022/toast/toast.component.mjs +3 -3
  136. package/esm2022/toggle/toggle.component.mjs +3 -3
  137. package/esm2022/toggle/toggle.module.mjs +4 -5
  138. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  139. package/esm2022/top-bar/top-bar.mjs +2 -2
  140. package/esm2022/tree/padding.directive.mjs +8 -6
  141. package/esm2022/tree/toggle.mjs +2 -2
  142. package/esm2022/tree/tree-option.component.mjs +3 -3
  143. package/esm2022/tree/tree-selection.component.mjs +2 -2
  144. package/esm2022/tree/tree.mjs +2 -2
  145. package/esm2022/tree/tree.module.mjs +8 -5
  146. package/esm2022/tree-select/tree-select.component.mjs +50 -31
  147. package/fesm2022/koobiq-components-accordion.mjs +4 -4
  148. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  149. package/fesm2022/koobiq-components-actions-panel.mjs +16 -112
  150. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  151. package/fesm2022/koobiq-components-alert.mjs +2 -2
  152. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  153. package/fesm2022/koobiq-components-autocomplete.mjs +21 -24
  154. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  155. package/fesm2022/koobiq-components-badge.mjs +2 -2
  156. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  157. package/fesm2022/koobiq-components-breadcrumbs.mjs +2 -5
  158. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  159. package/fesm2022/koobiq-components-button-toggle.mjs +7 -7
  160. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  161. package/fesm2022/koobiq-components-button.mjs +3 -2
  162. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  163. package/fesm2022/koobiq-components-checkbox.mjs +2 -2
  164. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  165. package/fesm2022/koobiq-components-code-block.mjs +65 -28
  166. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  167. package/fesm2022/koobiq-components-core.mjs +109 -69
  168. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  169. package/fesm2022/koobiq-components-datepicker.mjs +10 -6
  170. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-dl.mjs +2 -2
  172. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-dropdown.mjs +5 -4
  174. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -0
  176. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-empty-state.mjs +2 -2
  178. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  179. package/fesm2022/koobiq-components-file-upload.mjs +5 -5
  180. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  181. package/fesm2022/koobiq-components-filter-bar.mjs +45 -35
  182. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-form-field.mjs +611 -220
  184. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-input.mjs +8 -6
  186. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-list.mjs +17 -10
  188. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  189. package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
  190. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-modal.mjs +3 -2
  192. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-navbar.mjs +15 -16
  194. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-overflow-items.mjs +26 -9
  196. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-popover.mjs +4 -4
  198. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
  200. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
  202. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-radio.mjs +6 -6
  204. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  205. package/fesm2022/koobiq-components-risk-level.mjs +2 -2
  206. package/fesm2022/koobiq-components-risk-level.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-scrollbar.mjs +14 -10
  208. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-select.mjs +42 -22
  210. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-sidepanel.mjs +3 -6
  212. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-splitter.mjs +4 -2
  214. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-table.mjs +2 -2
  216. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-tabs.mjs +5 -5
  218. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  219. package/fesm2022/koobiq-components-tags.mjs +2 -2
  220. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  221. package/fesm2022/koobiq-components-textarea.mjs +9 -8
  222. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  223. package/fesm2022/koobiq-components-timezone.mjs +7 -5
  224. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-toast.mjs +3 -3
  226. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-toggle.mjs +6 -6
  228. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  230. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-top-bar.mjs +2 -2
  232. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-tree-select.mjs +50 -31
  234. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  235. package/fesm2022/koobiq-components-tree.mjs +22 -17
  236. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  237. package/file-upload/_file-upload-theme.scss +9 -0
  238. package/file-upload/multiple-file-upload.component.d.ts +1 -1
  239. package/filter-bar/filter-bar.d.ts +2 -0
  240. package/filter-bar/filter-bar.types.d.ts +2 -2
  241. package/form-field/_fiedset-theme.scss +13 -0
  242. package/form-field/_form-field-theme.scss +29 -13
  243. package/form-field/_hint-theme.scss +21 -22
  244. package/form-field/cleaner.d.ts +5 -1
  245. package/form-field/cleaner.scss +1 -4
  246. package/form-field/error.d.ts +8 -0
  247. package/form-field/fieldset-tokens.scss +5 -0
  248. package/form-field/fieldset.d.ts +27 -0
  249. package/form-field/fieldset.scss +93 -0
  250. package/form-field/form-field-control.d.ts +1 -1
  251. package/form-field/form-field-tokens.scss +13 -3
  252. package/form-field/form-field.d.ts +210 -22
  253. package/form-field/form-field.module.d.ts +14 -12
  254. package/form-field/form-field.scss +58 -78
  255. package/form-field/hint.d.ts +5 -1
  256. package/form-field/hint.scss +3 -5
  257. package/form-field/label.d.ts +6 -0
  258. package/form-field/password-hint.d.ts +1 -1
  259. package/form-field/password-toggle.d.ts +25 -11
  260. package/form-field/password-toggle.scss +1 -2
  261. package/form-field/prefix.d.ts +2 -1
  262. package/form-field/public-api.d.ts +4 -1
  263. package/form-field/reactive-password-hint.d.ts +19 -0
  264. package/form-field/stepper.d.ts +20 -8
  265. package/form-field/stepper.scss +12 -11
  266. package/form-field/suffix.d.ts +2 -1
  267. package/form-field/validate.directive.d.ts +10 -12
  268. package/input/input-tokens.scss +2 -2
  269. package/input/input.module.d.ts +3 -4
  270. package/input/input.scss +1 -2
  271. package/list/_list-theme.scss +4 -1
  272. package/list/list.module.d.ts +2 -1
  273. package/list/list.scss +6 -12
  274. package/navbar/navbar-item.component.d.ts +3 -1
  275. package/overflow-items/overflow-items.d.ts +12 -5
  276. package/package.json +4 -4
  277. package/prebuilt-themes/dark-theme.css +1 -1
  278. package/prebuilt-themes/light-theme.css +1 -1
  279. package/prebuilt-themes/theme.css +1 -1
  280. package/radio/radio.module.d.ts +1 -2
  281. package/schematics/ng-add/index.js +3 -3
  282. package/scrollbar/scrollbar.component.d.ts +1 -0
  283. package/select/select-tokens.scss +5 -4
  284. package/select/select.component.d.ts +12 -3
  285. package/sidepanel/sidepanel.module.d.ts +5 -6
  286. package/splitter/splitter.component.d.ts +1 -0
  287. package/tabs/paginated-tab-header.d.ts +1 -0
  288. package/tabs/tabs.module.d.ts +5 -6
  289. package/tags/tag-list.scss +8 -4
  290. package/textarea/textarea.component.d.ts +1 -0
  291. package/textarea/textarea.module.d.ts +2 -3
  292. package/timepicker/timepicker.scss +1 -1
  293. package/toast/toast.component.scss +2 -0
  294. package/toggle/_toggle-theme.scss +10 -2
  295. package/toggle/toggle-tokens.scss +7 -1
  296. package/toggle/toggle.module.d.ts +1 -2
  297. package/toggle/toggle.scss +6 -6
  298. package/top-bar/top-bar.scss +48 -32
  299. package/tree/_tree-theme.scss +13 -2
  300. package/tree/padding.directive.d.ts +1 -1
  301. package/tree/tree-option.scss +12 -17
  302. package/tree/tree.module.d.ts +1 -1
  303. package/tree-select/tree-select.component.d.ts +10 -1
  304. package/esm2022/form-field/form-field-errors.mjs +0 -7
  305. package/form-field/form-field-errors.d.ts +0 -2
@@ -227,6 +227,11 @@
227
227
  }
228
228
 
229
229
  @mixin kbq-file-upload-typography() {
230
+ .kbq-file-upload {
231
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
232
+ }
233
+
234
+ // @TODO: remove when redesign applied, use default font (#DS-3858)
230
235
  .kbq-single-file-upload {
231
236
  & .file-item__text-wrapper,
232
237
  & .dropzone__text {
@@ -239,6 +244,7 @@
239
244
  @include tokens.kbq-typography-level-to-styles-css-variables(typography, subheading);
240
245
  }
241
246
 
247
+ // @TODO: remove when redesign applied, use default font (#DS-3858)
242
248
  .multiple__caption {
243
249
  &,
244
250
  .kbq-link {
@@ -246,14 +252,17 @@
246
252
  }
247
253
  }
248
254
 
255
+ // @TODO: remove when redesign applied, use default font (#DS-3858)
249
256
  .kbq-file-multiple-uploaded__header {
250
257
  @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
251
258
  }
252
259
 
260
+ // @TODO: remove when redesign applied, use default font (#DS-3858)
253
261
  .multiple__uploaded-item {
254
262
  @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
255
263
  }
256
264
 
265
+ // @TODO: remove when redesign applied, use default font (#DS-3858)
257
266
  .kbq-file-upload {
258
267
  .kbq-list-item,
259
268
  .kbq-list-option {
@@ -57,7 +57,7 @@ export declare class KbqMultipleFileUploadComponent extends KbqFileUploadBase im
57
57
  protected readonly customFileIcon: TemplateRef<HTMLElement>;
58
58
  /** @docs-private */
59
59
  readonly input: ElementRef<HTMLInputElement>;
60
- private readonly listSelection;
60
+ private readonly listSelection?;
61
61
  private readonly fileSizeHeaderCell;
62
62
  /** @docs-private */
63
63
  protected readonly hint: QueryList<TemplateRef<any>>;
@@ -51,6 +51,8 @@ export declare class KbqFilterBar {
51
51
  /** Whether the current filter is disabled */
52
52
  get isDisabled(): boolean;
53
53
  private savedFilter;
54
+ /** Event that emits whenever the filter is reset. */
55
+ readonly onResetFilter: BehaviorSubject<boolean>;
54
56
  /** all changes */
55
57
  readonly changes: BehaviorSubject<void>;
56
58
  /** internal filter changes */
@@ -88,6 +88,8 @@ export interface KbqPipe {
88
88
  value: unknown | null;
89
89
  search?: boolean;
90
90
  selectAll?: boolean;
91
+ openOnAdd?: boolean;
92
+ openOnReset?: boolean;
91
93
  /**
92
94
  * This is special logic that unselect all items when all selected because "all selected = nothing selected".
93
95
  * Default is true
@@ -101,8 +103,6 @@ export interface KbqPipe {
101
103
  }
102
104
  export interface KbqPipeData<V> extends KbqPipe {
103
105
  value: V | null;
104
- search?: boolean;
105
- openOnAdd?: boolean;
106
106
  }
107
107
  export interface KbqPipeTemplate extends Omit<KbqPipe, 'value'> {
108
108
  values?: unknown[];
@@ -0,0 +1,13 @@
1
+ @use './form-field-theme';
2
+ @use './form-field';
3
+
4
+ @mixin kbq-fieldset-theme {
5
+ .kbq-form-field__hint {
6
+ @include form-field-theme.kbq-form-field-hint-theme();
7
+ @include form-field-theme.kbq-form-field-hint-typography();
8
+
9
+ &:empty {
10
+ margin-top: 0;
11
+ }
12
+ }
13
+ }
@@ -1,6 +1,19 @@
1
- @use '../core/styles/common/tokens' as *;
1
+ @use '../core/styles/common/tokens';
2
2
 
3
- @mixin kbq-form-field-state($state-name) {
3
+ @mixin kbq-form-field-hint-theme {
4
+ > .kbq-hint:not(.kbq-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning, .kbq-error) {
5
+ color: var(--kbq-form-field-hint-text);
6
+ }
7
+ }
8
+
9
+ @mixin kbq-form-field-hint-typography {
10
+ > .kbq-hint:not(.kbq-password-hint, .kbq-reactive-password-hint, .kbq-contrast-fade, .kbq-success, .kbq-warning)
11
+ .kbq-hint__text {
12
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
13
+ }
14
+ }
15
+
16
+ @mixin _kbq-form-field-state($state-name) {
4
17
  .kbq-form-field__container {
5
18
  border-color: var(--kbq-form-field-#{$state-name}-border-color);
6
19
  background-color: var(--kbq-form-field-#{$state-name}-background);
@@ -27,7 +40,7 @@
27
40
 
28
41
  @mixin kbq-form-field-theme() {
29
42
  .kbq-form-field {
30
- @include kbq-form-field-state(default);
43
+ @include _kbq-form-field-state(default);
31
44
 
32
45
  & .kbq-input {
33
46
  //https://css-tricks.com/almanac/selectors/a/autofill/
@@ -44,7 +57,7 @@
44
57
  &.kbq-form-field_invalid,
45
58
  // Invalid by `KbqValidateDirective`
46
59
  &.kbq-form-field_has-validate-directive.ng-invalid {
47
- @include kbq-form-field-state(states-error);
60
+ @include _kbq-form-field-state(states-error);
48
61
  }
49
62
 
50
63
  &.kbq-form-field-type-input,
@@ -55,7 +68,7 @@
55
68
  &.kbq-form-field-type-tag-list,
56
69
  &.kbq-form-field-type-select.cdk-keyboard-focused {
57
70
  &.cdk-focused {
58
- @include kbq-form-field-state(states-focused);
71
+ @include _kbq-form-field-state(states-focused);
59
72
 
60
73
  & .kbq-form-field__container {
61
74
  box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-focused-focus-outline);
@@ -66,16 +79,21 @@
66
79
  &.kbq-form-field_invalid,
67
80
  // Invalid by `KbqValidateDirective`
68
81
  &.kbq-form-field_has-validate-directive.ng-invalid {
69
- @include kbq-form-field-state(states-error);
82
+ @include _kbq-form-field-state(states-error);
70
83
 
71
84
  &.cdk-focused .kbq-form-field__container {
72
85
  box-shadow: 0 0 0.1px 1px var(--kbq-form-field-states-error-focused-focus-outline);
73
86
  }
87
+
88
+ & .kbq-icon.kbq-empty {
89
+ color: var(--kbq-form-field-states-error-text);
90
+ -webkit-text-fill-color: var(--kbq-form-field-states-error-text);
91
+ }
74
92
  }
75
93
  }
76
94
 
77
95
  &.kbq-disabled {
78
- @include kbq-form-field-state(states-disabled);
96
+ @include _kbq-form-field-state(states-disabled);
79
97
 
80
98
  .kbq-icon.kbq-empty {
81
99
  color: var(--kbq-form-field-states-disabled-text);
@@ -91,19 +109,17 @@
91
109
  }
92
110
 
93
111
  .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
- }
112
+ @include kbq-form-field-hint-theme();
97
113
  }
98
114
  }
99
115
  }
100
116
 
101
117
  @mixin kbq-form-field-typography() {
102
118
  .kbq-form-field {
103
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
119
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
104
120
 
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);
121
+ .kbq-form-field__hint {
122
+ @include kbq-form-field-hint-typography();
107
123
  }
108
124
  }
109
125
  }
@@ -1,7 +1,6 @@
1
- @use '../core/styles/theming/theming' as *;
2
- @use '../core/styles/common/tokens' as *;
1
+ @use '../core/styles/common/tokens';
3
2
 
4
- @mixin kbq-hint-color($type, $style-name) {
3
+ @mixin _kbq-hint-color($type, $style-name) {
5
4
  color: var(--kbq-hint-#{$type}-#{$style-name}-text);
6
5
 
7
6
  & .kbq-icon.kbq-empty {
@@ -12,47 +11,47 @@
12
11
  @mixin kbq-hint-theme() {
13
12
  .kbq-hint {
14
13
  &.kbq-contrast-fade {
15
- @include kbq-hint-color(fill-text-on, fade-contrast);
14
+ @include _kbq-hint-color(fill-text-on, fade-contrast);
16
15
  }
17
16
 
18
17
  &.kbq-success {
19
- @include kbq-hint-color(fill-text-on, success);
18
+ @include _kbq-hint-color(fill-text-on, success);
20
19
  }
21
20
 
22
21
  &.kbq-warning {
23
- @include kbq-hint-color(fill-text-on, warning);
22
+ @include _kbq-hint-color(fill-text-on, warning);
24
23
  }
25
24
 
26
25
  &.kbq-error {
27
- @include kbq-hint-color(fill-text-on, error);
26
+ @include _kbq-hint-color(fill-text-on, error);
28
27
  }
29
- }
30
28
 
31
- .kbq-hint.kbq-hint_fill-text-off {
32
- &.kbq-contrast-fade {
33
- @include kbq-hint-color(fill-text-off, fade-contrast);
34
- }
29
+ &.kbq-hint_fill-text-off {
30
+ &.kbq-contrast-fade {
31
+ @include _kbq-hint-color(fill-text-off, fade-contrast);
32
+ }
35
33
 
36
- &.kbq-success {
37
- @include kbq-hint-color(fill-text-off, success);
38
- }
34
+ &.kbq-success {
35
+ @include _kbq-hint-color(fill-text-off, success);
36
+ }
39
37
 
40
- &.kbq-warning {
41
- @include kbq-hint-color(fill-text-off, warning);
42
- }
38
+ &.kbq-warning {
39
+ @include _kbq-hint-color(fill-text-off, warning);
40
+ }
43
41
 
44
- &.kbq-error {
45
- @include kbq-hint-color(fill-text-off, error);
42
+ &.kbq-error {
43
+ @include _kbq-hint-color(fill-text-off, error);
44
+ }
46
45
  }
47
46
  }
48
47
  }
49
48
 
50
49
  @mixin kbq-hint-typography() {
51
50
  .kbq-hint .kbq-hint__text {
52
- @include kbq-typography-level-to-styles-css-variables(typography, text-normal);
51
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-normal);
53
52
  }
54
53
 
55
54
  .kbq-hint.kbq-hint_compact .kbq-hint__text {
56
- @include kbq-typography-level-to-styles-css-variables(typography, text-compact);
55
+ @include tokens.kbq-typography-level-to-styles-css-variables(typography, text-compact);
57
56
  }
58
57
  }
@@ -1,5 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
+ /**
3
+ * Element to be placed in end of the form field.
4
+ * Resets form control by click.
5
+ */
2
6
  export declare class KbqCleaner {
3
7
  static ɵfac: i0.ɵɵFactoryDeclaration<KbqCleaner, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, never, false, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqCleaner, "kbq-cleaner", ["kbqCleaner"], {}, {}, never, never, true, never>;
5
9
  }
@@ -3,9 +3,6 @@
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
 
6
- width: var(--kbq-form-field-size-icon-button-size);
7
- margin-right: var(--kbq-form-field-size-icon-button-margin-right);
6
+ width: var(--kbq-form-field-size-addon-width);
8
7
  height: 100%;
9
-
10
- cursor: pointer;
11
8
  }
@@ -0,0 +1,8 @@
1
+ import { KbqHint } from './hint';
2
+ import * as i0 from "@angular/core";
3
+ /** Error text to be shown below the form field control. */
4
+ export declare class KbqError extends KbqHint {
5
+ constructor();
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqError, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqError, "kbq-error", ["kbqError"], {}, {}, never, ["[kbq-icon]", "*"], true, never>;
8
+ }
@@ -0,0 +1,5 @@
1
+ .kbq-fieldset {
2
+ --kbq-fieldset-legend-margin: var(--kbq-size-s);
3
+ --kbq-form-field-hint-size-margin-top: var(--kbq-size-xs);
4
+ --kbq-form-field-hint-text: var(--kbq-foreground-contrast-secondary);
5
+ }
@@ -0,0 +1,27 @@
1
+ import { Signal } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** Directive for marking an element as legend of `KbqFieldset` */
4
+ export declare class KbqLegend {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqLegend, never>;
6
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqLegend, "[kbqLegend]", never, {}, {}, never, never, true, never>;
7
+ }
8
+ /** Directive for marking elements as items inside `KbqFieldset` */
9
+ export declare class KbqFieldsetItem {
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqFieldsetItem, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<KbqFieldsetItem, "[kbqFieldsetItem]", never, {}, {}, never, never, true, never>;
12
+ }
13
+ /**
14
+ * A group of form-fields and related controls.
15
+ * Container component emulating the native `fieldset` element.
16
+ */
17
+ export declare class KbqFieldset {
18
+ private readonly legend;
19
+ /**
20
+ * Computes the aria-label from the inner text of the legend element.
21
+ * Used to enhance accessibility by labeling the group.
22
+ * @docs-private
23
+ */
24
+ protected readonly ariaLabel: Signal<string | undefined>;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<KbqFieldset, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<KbqFieldset, "kbq-fieldset", never, {}, {}, ["legend"], ["[kbqLegend]", "*", "kbq-error", "kbq-hint, kbq-password-hint, kbq-reactive-password-hint"], true, never>;
27
+ }
@@ -0,0 +1,93 @@
1
+ @use './form-field-theme';
2
+ @use './form-field';
3
+ @use './fiedset-theme';
4
+
5
+ .kbq-fieldset {
6
+ display: flex;
7
+ flex-direction: column;
8
+
9
+ .kbq-legend {
10
+ margin-bottom: var(--kbq-fieldset-legend-margin);
11
+ }
12
+
13
+ .kbq-form-field__hint {
14
+ @include form-field.kbq-form-field-hint-geometry();
15
+
16
+ &:empty {
17
+ margin-top: 0;
18
+ }
19
+ }
20
+
21
+ .kbq-form-field {
22
+ // set selector specifity to 0 , so focused state will override z-index
23
+ :where(&.kbq-form-field_invalid, &.kbq-form-field_has-validate-directive.ng-invalid) {
24
+ z-index: 2;
25
+ }
26
+
27
+ // Keep form-field__container and parent heights in sync (zoom-safe)
28
+ .kbq-form-field__container {
29
+ height: 100%;
30
+ }
31
+
32
+ &:first-child:not(:last-child) {
33
+ .kbq-form-field__container,
34
+ .kbq-form-field__container .kbq-input {
35
+ border-top-right-radius: 0;
36
+ border-bottom-right-radius: 0;
37
+ }
38
+ }
39
+
40
+ &:not(:first-child):not(:last-child) {
41
+ --kbq-form-field-size-border-radius: 0;
42
+
43
+ .kbq-form-field__container {
44
+ border-radius: 0;
45
+ }
46
+ }
47
+
48
+ &:last-child:not(:first-child) {
49
+ .kbq-form-field__container,
50
+ .kbq-form-field__container .kbq-input {
51
+ border-top-left-radius: 0;
52
+ border-bottom-left-radius: 0;
53
+ }
54
+ }
55
+
56
+ &:not(:first-child) {
57
+ margin-left: calc(var(--kbq-size-border-width) * -1);
58
+ }
59
+ }
60
+
61
+ @include fiedset-theme.kbq-fieldset-theme();
62
+ }
63
+
64
+ .kbq-fieldset__container {
65
+ display: flex;
66
+ flex-direction: row;
67
+ position: relative;
68
+
69
+ > .kbq-fieldset-item {
70
+ &.cdk-focused,
71
+ &.kbq-focused {
72
+ z-index: 3;
73
+ }
74
+
75
+ &:first-child:not(:last-child) {
76
+ border-top-right-radius: 0;
77
+ border-bottom-right-radius: 0;
78
+ }
79
+
80
+ &:not(:first-child):not(:last-child) {
81
+ border-radius: 0;
82
+ }
83
+
84
+ &:last-child:not(:first-child) {
85
+ border-top-left-radius: 0;
86
+ border-bottom-left-radius: 0;
87
+ }
88
+
89
+ &:not(:first-child) {
90
+ margin-left: calc(var(--kbq-size-border-width) * -1);
91
+ }
92
+ }
93
+ }
@@ -1,6 +1,6 @@
1
1
  import { NgControl } from '@angular/forms';
2
2
  import { Observable } from 'rxjs';
3
- /** An interface which allows a control to work inside of a `MсFormField`. */
3
+ /** An interface which allows a control to work inside of a `KbqFormField`. */
4
4
  export declare abstract class KbqFormFieldControl<T> {
5
5
  /** The value of the control. */
6
6
  value: T | null;
@@ -1,15 +1,25 @@
1
1
  .kbq-form-field {
2
2
  --kbq-form-field-size-height: var(--kbq-size-3xl);
3
- --kbq-form-field-size-border-width: 1px;
3
+
4
+ --kbq-form-field-size-border-width: var(--kbq-size-border-width);
4
5
  --kbq-form-field-size-border-radius: var(--kbq-size-border-radius);
6
+
5
7
  --kbq-form-field-size-icon-size: var(--kbq-size-l);
6
8
  --kbq-form-field-size-icon-margin-left: var(--kbq-size-s);
7
9
  --kbq-form-field-size-icon-margin-right: var(--kbq-size-s);
8
10
  --kbq-form-field-size-icon-button-size: var(--kbq-size-xxl);
9
- --kbq-form-field-size-icon-button-margin-right: var(--kbq-size-xxs);
10
11
  --kbq-form-field-size-icon-button-margin-left: var(--kbq-size-xxs);
11
- --kbq-form-field-hint-size-margin-top: var(--kbq-size-xxs);
12
+
13
+ --kbq-form-field-hint-size-margin-top: var(--kbq-size-xs);
12
14
  --kbq-form-field-hint-size-gap: var(--kbq-size-s);
15
+
16
+ --kbq-form-field-size-container-vertical-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
17
+ --kbq-form-field-size-container-left-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
18
+ --kbq-form-field-size-container-right-padding: calc(var(--kbq-size-xs) - var(--kbq-size-border-width));
19
+ --kbq-form-field-size-infix-left-padding: var(--kbq-size-xs);
20
+ --kbq-form-field-size-infix-right-padding: var(--kbq-size-xxs);
21
+
22
+ --kbq-form-field-size-addon-width: 28px;
13
23
  /* THEME TOKENS */
14
24
  --kbq-form-field-default-border-color: var(--kbq-line-contrast-fade);
15
25
  --kbq-form-field-default-background: var(--kbq-background-bg);