@koobiq/components 20.4.2 → 21.0.1

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 (798) hide show
  1. package/accordion/accordion-trigger.scss +3 -10
  2. package/accordion/accordion.scss +4 -6
  3. package/actions-panel/actions-panel-container.scss +45 -1
  4. package/alert/alert.component.scss +3 -2
  5. package/app-switcher/_app-switcher-theme.scss +0 -4
  6. package/app-switcher/app-switcher-dropdown-app.scss +3 -2
  7. package/app-switcher/app-switcher-dropdown-site.scss +2 -1
  8. package/app-switcher/{kbq-app-switcher-list-item.scss → app-switcher-list-item.scss} +18 -4
  9. package/app-switcher/app-switcher-tokens.scss +15 -0
  10. package/app-switcher/app-switcher.scss +14 -4
  11. package/autocomplete/autocomplete.scss +7 -6
  12. package/badge/badge.component.scss +5 -8
  13. package/breadcrumbs/breadcrumbs.scss +25 -10
  14. package/button/_button-base.scss +30 -7
  15. package/button/_button-theme.scss +16 -0
  16. package/button/button-group.scss +7 -0
  17. package/button/button-tokens.scss +0 -2
  18. package/button/button.scss +34 -2
  19. package/button-toggle/_button-toggle-theme.scss +7 -2
  20. package/button-toggle/button-toggle.scss +65 -15
  21. package/checkbox/_checkbox-theme.scss +4 -3
  22. package/checkbox/checkbox.scss +3 -6
  23. package/clamped-text/clamped-text.scss +6 -2
  24. package/code-block/code-block-tokens.scss +0 -224
  25. package/code-block/code-block.scss +20 -9
  26. package/content-panel/content-panel-aside.scss +3 -2
  27. package/content-panel/content-panel-container.scss +37 -0
  28. package/content-panel/content-panel.scss +4 -3
  29. package/core/highlight/_highlight-theme.scss +3 -1
  30. package/core/option/action-container.scss +2 -2
  31. package/core/option/action.scss +2 -1
  32. package/core/option/option.scss +2 -1
  33. package/core/pop-up/_pop-up.scss +0 -37
  34. package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +5 -10
  35. package/core/styles/_core.scss +3 -0
  36. package/core/styles/_koobiq-theme.scss +5 -6
  37. package/core/styles/common/_animation.scss +44 -16
  38. package/core/styles/common/_groups-mixins.scss +21 -19
  39. package/core/styles/common/_groups.scss +4 -32
  40. package/core/styles/common/_index.scss +0 -2
  41. package/core/styles/common/_link.scss +117 -0
  42. package/core/styles/common/_list.scss +0 -26
  43. package/core/styles/common/_overlay.scss +8 -10
  44. package/core/styles/common/_rtl.scss +0 -14
  45. package/core/styles/common/_select.scss +33 -15
  46. package/core/styles/common/_squircle.scss +63 -0
  47. package/core/styles/common/_tokens.scss +0 -11
  48. package/core/styles/common/_vendor-prefixes.scss +0 -20
  49. package/core/styles/functions/_timing.scss +0 -22
  50. package/core/styles/theming/_scrollbar-theme.scss +6 -1
  51. package/core/styles/theming/_theming.scss +13 -65
  52. package/core/styles/typography/_index.scss +0 -1
  53. package/core/styles/typography/_typography.scss +0 -143
  54. package/core/styles/visual/_body.scss +1 -6
  55. package/core/styles/visual/_layout.scss +0 -12
  56. package/datepicker/calendar-body.scss +3 -1
  57. package/datepicker/calendar-header.scss +0 -1
  58. package/datepicker/datepicker-content.scss +33 -1
  59. package/datepicker/datepicker-toggle.scss +0 -38
  60. package/dl/dl-tokens.scss +10 -0
  61. package/dl/dl.scss +113 -13
  62. package/dropdown/_dropdown-theme.scss +4 -16
  63. package/dropdown/dropdown-item.scss +4 -10
  64. package/dropdown/dropdown.scss +2 -1
  65. package/empty-state/_empty-state-theme.scss +10 -4
  66. package/empty-state/empty-state-tokens.scss +4 -4
  67. package/empty-state/empty-state.scss +4 -0
  68. package/fesm2022/koobiq-components-accordion.mjs +347 -229
  69. package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
  70. package/fesm2022/koobiq-components-actions-panel.mjs +302 -187
  71. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  72. package/fesm2022/koobiq-components-alert.mjs +39 -39
  73. package/fesm2022/koobiq-components-alert.mjs.map +1 -1
  74. package/fesm2022/koobiq-components-app-switcher.mjs +677 -367
  75. package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
  76. package/fesm2022/koobiq-components-autocomplete.mjs +620 -253
  77. package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
  78. package/fesm2022/koobiq-components-badge.mjs +46 -48
  79. package/fesm2022/koobiq-components-badge.mjs.map +1 -1
  80. package/fesm2022/koobiq-components-breadcrumbs.mjs +221 -169
  81. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  82. package/fesm2022/koobiq-components-button-toggle.mjs +565 -196
  83. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  84. package/fesm2022/koobiq-components-button.mjs +332 -116
  85. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  86. package/fesm2022/koobiq-components-checkbox.mjs +172 -132
  87. package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
  88. package/fesm2022/koobiq-components-clamped-text.mjs +165 -158
  89. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
  90. package/fesm2022/koobiq-components-code-block.mjs +791 -609
  91. package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
  92. package/fesm2022/koobiq-components-content-panel.mjs +260 -143
  93. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -1
  94. package/fesm2022/koobiq-components-core.mjs +4342 -1595
  95. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  96. package/fesm2022/koobiq-components-datepicker.mjs +1713 -1606
  97. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  98. package/fesm2022/koobiq-components-divider.mjs +73 -36
  99. package/fesm2022/koobiq-components-divider.mjs.map +1 -1
  100. package/fesm2022/koobiq-components-dl.mjs +447 -89
  101. package/fesm2022/koobiq-components-dl.mjs.map +1 -1
  102. package/fesm2022/koobiq-components-dropdown.mjs +703 -599
  103. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  104. package/fesm2022/koobiq-components-dynamic-translation.mjs +20 -20
  105. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -1
  106. package/fesm2022/koobiq-components-ellipsis-center.mjs +46 -31
  107. package/fesm2022/koobiq-components-ellipsis-center.mjs.map +1 -1
  108. package/fesm2022/koobiq-components-empty-state.mjs +116 -60
  109. package/fesm2022/koobiq-components-empty-state.mjs.map +1 -1
  110. package/fesm2022/koobiq-components-file-upload.mjs +550 -290
  111. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  112. package/fesm2022/koobiq-components-filter-bar.mjs +2871 -2595
  113. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  114. package/fesm2022/koobiq-components-flag.mjs +79 -24
  115. package/fesm2022/koobiq-components-flag.mjs.map +1 -1
  116. package/fesm2022/koobiq-components-form-field.mjs +389 -525
  117. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  118. package/fesm2022/koobiq-components-icon.mjs +400 -149
  119. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  120. package/fesm2022/koobiq-components-inline-edit.mjs +429 -212
  121. package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
  122. package/fesm2022/koobiq-components-input.mjs +601 -459
  123. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  124. package/fesm2022/koobiq-components-link-deprecated.mjs +196 -0
  125. package/fesm2022/koobiq-components-link-deprecated.mjs.map +1 -0
  126. package/fesm2022/koobiq-components-link.mjs +328 -125
  127. package/fesm2022/koobiq-components-link.mjs.map +1 -1
  128. package/fesm2022/koobiq-components-list.mjs +583 -433
  129. package/fesm2022/koobiq-components-list.mjs.map +1 -1
  130. package/fesm2022/koobiq-components-loader-overlay.mjs +167 -68
  131. package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
  132. package/fesm2022/koobiq-components-markdown.mjs +55 -78
  133. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  134. package/fesm2022/koobiq-components-modal.mjs +853 -475
  135. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  136. package/fesm2022/koobiq-components-navbar.mjs +895 -556
  137. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  138. package/fesm2022/koobiq-components-notification-center.mjs +680 -310
  139. package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
  140. package/fesm2022/koobiq-components-overflow-items.mjs +46 -64
  141. package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
  142. package/fesm2022/koobiq-components-popover.mjs +684 -285
  143. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  144. package/fesm2022/koobiq-components-progress-bar.mjs +87 -33
  145. package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
  146. package/fesm2022/koobiq-components-progress-spinner.mjs +52 -43
  147. package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
  148. package/fesm2022/koobiq-components-radio.mjs +450 -231
  149. package/fesm2022/koobiq-components-radio.mjs.map +1 -1
  150. package/fesm2022/koobiq-components-resizer.mjs +127 -21
  151. package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
  152. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs +299 -0
  153. package/fesm2022/koobiq-components-scrollbar-deprecated.mjs.map +1 -0
  154. package/fesm2022/koobiq-components-scrollbar.mjs +745 -222
  155. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  156. package/fesm2022/koobiq-components-search-expandable.mjs +288 -126
  157. package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
  158. package/fesm2022/koobiq-components-select.mjs +883 -693
  159. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  160. package/fesm2022/koobiq-components-sidebar.mjs +207 -88
  161. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  162. package/fesm2022/koobiq-components-sidepanel.mjs +689 -296
  163. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  164. package/fesm2022/koobiq-components-skeleton.mjs +815 -41
  165. package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
  166. package/fesm2022/koobiq-components-split-button.mjs +109 -88
  167. package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
  168. package/fesm2022/koobiq-components-splitter-deprecated.mjs +591 -0
  169. package/fesm2022/koobiq-components-splitter-deprecated.mjs.map +1 -0
  170. package/fesm2022/koobiq-components-splitter.mjs +890 -501
  171. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  172. package/fesm2022/koobiq-components-table.mjs +63 -49
  173. package/fesm2022/koobiq-components-table.mjs.map +1 -1
  174. package/fesm2022/koobiq-components-tabs.mjs +1062 -603
  175. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  176. package/fesm2022/koobiq-components-tags.mjs +886 -733
  177. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  178. package/fesm2022/koobiq-components-textarea.mjs +213 -185
  179. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  180. package/fesm2022/koobiq-components-time-range.mjs +299 -147
  181. package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
  182. package/fesm2022/koobiq-components-timepicker.mjs +233 -245
  183. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  184. package/fesm2022/koobiq-components-timezone.mjs +344 -142
  185. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  186. package/fesm2022/koobiq-components-title.mjs +229 -145
  187. package/fesm2022/koobiq-components-title.mjs.map +1 -1
  188. package/fesm2022/koobiq-components-toast.mjs +463 -143
  189. package/fesm2022/koobiq-components-toast.mjs.map +1 -1
  190. package/fesm2022/koobiq-components-toggle.mjs +177 -130
  191. package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
  192. package/fesm2022/koobiq-components-tooltip.mjs +657 -214
  193. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  194. package/fesm2022/koobiq-components-top-bar.mjs +61 -32
  195. package/fesm2022/koobiq-components-top-bar.mjs.map +1 -1
  196. package/fesm2022/koobiq-components-tree-select.mjs +734 -488
  197. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  198. package/fesm2022/koobiq-components-tree.mjs +1700 -617
  199. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  200. package/fesm2022/koobiq-components-username.mjs +290 -135
  201. package/fesm2022/koobiq-components-username.mjs.map +1 -1
  202. package/file-upload/dropzone.scss +31 -3
  203. package/file-upload/file-upload-tokens.scss +2 -22
  204. package/file-upload/file-upload.scss +6 -0
  205. package/file-upload/multiple-file-upload.component.scss +14 -12
  206. package/file-upload/single-file-upload.component.scss +3 -2
  207. package/filter-bar/filters.scss +7 -0
  208. package/filter-bar/pipes/base-pipe.scss +3 -3
  209. package/filter-bar/pipes/pipe-date.scss +8 -1
  210. package/flag/flag-tokens.scss +22 -0
  211. package/flag/flag.scss +34 -21
  212. package/form-field/{_fiedset-theme.scss → _fieldset-theme.scss} +1 -5
  213. package/form-field/_form-field-theme.scss +4 -9
  214. package/form-field/cleaner.scss +3 -1
  215. package/form-field/fieldset.scss +3 -4
  216. package/form-field/form-field.scss +26 -21
  217. package/form-field/password-toggle.scss +3 -1
  218. package/icon/_icon-button-theme.scss +7 -0
  219. package/icon/_icon-theme.scss +10 -7
  220. package/icon/icon-button.scss +0 -2
  221. package/icon/icon-tokens.scss +12 -9
  222. package/inline-edit/inline-edit.scss +40 -54
  223. package/input/input.scss +4 -0
  224. package/link/{_link-theme.scss → deprecated/_link-theme.scss} +11 -6
  225. package/link/deprecated/link-tokens.scss +27 -0
  226. package/link/link-tokens.scss +6 -25
  227. package/link/link.scss +137 -0
  228. package/list/list.scss +3 -2
  229. package/loader-overlay/_loader-overlay-theme.scss +19 -10
  230. package/loader-overlay/loader-overlay-tokens.scss +0 -2
  231. package/loader-overlay/loader-overlay.scss +7 -1
  232. package/markdown/_markdown-theme.scss +16 -0
  233. package/markdown/markdown-tokens.scss +5 -0
  234. package/markdown/markdown.scss +2 -1
  235. package/modal/_modal-animation.scss +23 -14
  236. package/modal/modal-tokens.scss +2 -1
  237. package/modal/modal.scss +35 -31
  238. package/navbar/_navbar-item_horizontal.scss +8 -6
  239. package/navbar/_navbar-item_vertical.scss +18 -6
  240. package/navbar/_navbar-theme.scss +9 -1
  241. package/navbar/navbar-brand.scss +8 -6
  242. package/navbar/navbar-divider.scss +1 -1
  243. package/navbar/navbar-item.scss +8 -9
  244. package/navbar/navbar-toggle.scss +3 -3
  245. package/navbar/navbar-tokens.scss +14 -0
  246. package/navbar/navbar.scss +1 -2
  247. package/navbar/vertical-navbar.scss +2 -2
  248. package/notification-center/_notification-center-theme.scss +11 -6
  249. package/notification-center/notification-center-tokens.scss +33 -0
  250. package/notification-center/notification-center.scss +58 -20
  251. package/notification-center/notification-item.scss +15 -6
  252. package/package.json +112 -81
  253. package/popover/popover-tokens.scss +0 -2
  254. package/popover/popover.scss +41 -19
  255. package/prebuilt-themes/theme.css +1 -1
  256. package/progress-bar/_progress-bar-theme.scss +20 -3
  257. package/progress-bar/progress-bar-tokens.scss +3 -0
  258. package/progress-bar/progress-bar.scss +36 -8
  259. package/progress-spinner/progress-spinner.scss +4 -3
  260. package/radio/_radio-theme.scss +21 -4
  261. package/radio/radio-tokens.scss +7 -3
  262. package/radio/radio.scss +55 -8
  263. package/schematics/collection.json +415 -18
  264. package/schematics/migrations/accordion-state-saving-default/README.md +60 -0
  265. package/schematics/migrations/accordion-state-saving-default/data.cjs +75 -0
  266. package/schematics/migrations/accordion-state-saving-default/index.cjs +61 -0
  267. package/schematics/migrations/accordion-state-saving-default/schema.json +15 -0
  268. package/schematics/migrations/actions-panel-overlay-container/README.md +35 -0
  269. package/schematics/migrations/actions-panel-overlay-container/data.cjs +47 -0
  270. package/schematics/migrations/actions-panel-overlay-container/index.cjs +55 -0
  271. package/schematics/migrations/actions-panel-overlay-container/schema.json +15 -0
  272. package/schematics/migrations/alert-signals/README.md +13 -7
  273. package/schematics/migrations/alert-signals/{data.js → data.cjs} +3 -0
  274. package/schematics/migrations/alert-signals/index.cjs +221 -0
  275. package/schematics/migrations/angular-animations-removal/README.md +46 -0
  276. package/schematics/migrations/angular-animations-removal/data.cjs +150 -0
  277. package/schematics/migrations/angular-animations-removal/index.cjs +21 -0
  278. package/schematics/migrations/angular-animations-removal/schema.json +15 -0
  279. package/schematics/migrations/app-switcher-signals/README.md +88 -0
  280. package/schematics/migrations/app-switcher-signals/data.cjs +136 -0
  281. package/schematics/migrations/app-switcher-signals/index.cjs +366 -0
  282. package/schematics/migrations/app-switcher-signals/schema.json +20 -0
  283. package/schematics/migrations/autocomplete-panel-width-auto/README.md +2 -2
  284. package/schematics/migrations/autocomplete-panel-width-auto/{index.js → index.cjs} +6 -5
  285. package/schematics/migrations/autocomplete-signals/README.md +92 -0
  286. package/schematics/migrations/autocomplete-signals/data.cjs +149 -0
  287. package/schematics/migrations/autocomplete-signals/index.cjs +707 -0
  288. package/schematics/migrations/autocomplete-signals/schema.json +20 -0
  289. package/schematics/migrations/badge-signals/README.md +77 -0
  290. package/schematics/migrations/badge-signals/data.cjs +109 -0
  291. package/schematics/migrations/badge-signals/index.cjs +694 -0
  292. package/schematics/migrations/badge-signals/schema.json +20 -0
  293. package/schematics/migrations/button-state-and-styles/README.md +129 -0
  294. package/schematics/migrations/button-state-and-styles/data.cjs +136 -0
  295. package/schematics/migrations/button-state-and-styles/index.cjs +221 -0
  296. package/schematics/migrations/button-state-and-styles/schema.json +20 -0
  297. package/schematics/migrations/button-supported-colors/README.md +73 -0
  298. package/schematics/migrations/button-supported-colors/data.cjs +106 -0
  299. package/schematics/migrations/button-supported-colors/index.cjs +261 -0
  300. package/schematics/migrations/button-supported-colors/schema.json +20 -0
  301. package/schematics/migrations/button-toggle-signals-and-aria/README.md +137 -0
  302. package/schematics/migrations/button-toggle-signals-and-aria/data.cjs +200 -0
  303. package/schematics/migrations/button-toggle-signals-and-aria/index.cjs +497 -0
  304. package/schematics/migrations/button-toggle-signals-and-aria/schema.json +20 -0
  305. package/schematics/migrations/button-truncation/README.md +110 -0
  306. package/schematics/migrations/button-truncation/data.cjs +88 -0
  307. package/schematics/migrations/button-truncation/index.cjs +270 -0
  308. package/schematics/migrations/button-truncation/schema.json +20 -0
  309. package/schematics/migrations/checkbox-signals/README.md +76 -0
  310. package/schematics/migrations/checkbox-signals/data.cjs +114 -0
  311. package/schematics/migrations/checkbox-signals/index.cjs +635 -0
  312. package/schematics/migrations/checkbox-signals/schema.json +20 -0
  313. package/schematics/migrations/clamped-text-disclosure/README.md +62 -0
  314. package/schematics/migrations/clamped-text-disclosure/data.cjs +101 -0
  315. package/schematics/migrations/clamped-text-disclosure/index.cjs +60 -0
  316. package/schematics/migrations/clamped-text-disclosure/schema.json +15 -0
  317. package/schematics/migrations/code-block-highlight-js-core/README.md +53 -0
  318. package/schematics/migrations/code-block-highlight-js-core/data.cjs +64 -0
  319. package/schematics/migrations/code-block-highlight-js-core/index.cjs +319 -0
  320. package/schematics/migrations/code-block-highlight-js-core/schema.json +20 -0
  321. package/schematics/migrations/code-block-signals/README.md +84 -0
  322. package/schematics/migrations/code-block-signals/data.cjs +121 -0
  323. package/schematics/migrations/code-block-signals/index.cjs +701 -0
  324. package/schematics/migrations/code-block-signals/schema.json +20 -0
  325. package/schematics/migrations/color-signals/README.md +46 -0
  326. package/schematics/migrations/color-signals/data.cjs +131 -0
  327. package/schematics/migrations/color-signals/index.cjs +20 -0
  328. package/schematics/migrations/color-signals/schema.json +20 -0
  329. package/schematics/migrations/core-mixins-removal/README.md +20 -0
  330. package/schematics/migrations/core-mixins-removal/data.cjs +27 -0
  331. package/schematics/migrations/core-mixins-removal/index.cjs +18 -0
  332. package/schematics/migrations/core-mixins-removal/schema.json +15 -0
  333. package/schematics/migrations/css-selectors/README.md +2 -2
  334. package/schematics/migrations/css-selectors/{index.js → index.cjs} +4 -3
  335. package/schematics/migrations/datepicker-signals/README.md +24 -0
  336. package/schematics/migrations/datepicker-signals/data.cjs +49 -0
  337. package/schematics/migrations/datepicker-signals/index.cjs +18 -0
  338. package/schematics/migrations/datepicker-signals/schema.json +15 -0
  339. package/schematics/migrations/deprecated-icons/README.md +2 -2
  340. package/schematics/migrations/deprecated-icons/{index.js → index.cjs} +8 -7
  341. package/schematics/migrations/design-tokens-v4/README.md +75 -0
  342. package/schematics/migrations/design-tokens-v4/index.cjs +60 -0
  343. package/schematics/migrations/design-tokens-v4/schema.json +15 -0
  344. package/schematics/migrations/divider-signals-and-aria/README.md +47 -0
  345. package/schematics/migrations/divider-signals-and-aria/data.cjs +62 -0
  346. package/schematics/migrations/divider-signals-and-aria/index.cjs +212 -0
  347. package/schematics/migrations/divider-signals-and-aria/schema.json +15 -0
  348. package/schematics/migrations/dl-attribute-coercion/README.md +59 -0
  349. package/schematics/migrations/dl-attribute-coercion/data.cjs +85 -0
  350. package/schematics/migrations/dl-attribute-coercion/index.cjs +162 -0
  351. package/schematics/migrations/dl-attribute-coercion/schema.json +15 -0
  352. package/schematics/migrations/dl-standalone-names/README.md +49 -0
  353. package/schematics/migrations/dl-standalone-names/data.cjs +44 -0
  354. package/schematics/migrations/dl-standalone-names/index.cjs +322 -0
  355. package/schematics/migrations/dl-standalone-names/schema.json +20 -0
  356. package/schematics/migrations/dropdown-demote-overlay/README.md +137 -0
  357. package/schematics/migrations/dropdown-demote-overlay/data.cjs +84 -0
  358. package/schematics/migrations/dropdown-demote-overlay/index.cjs +289 -0
  359. package/schematics/migrations/dropdown-demote-overlay/schema.json +20 -0
  360. package/schematics/migrations/dropdown-signals/README.md +83 -0
  361. package/schematics/migrations/dropdown-signals/data.cjs +152 -0
  362. package/schematics/migrations/dropdown-signals/index.cjs +20 -0
  363. package/schematics/migrations/dropdown-signals/schema.json +20 -0
  364. package/schematics/migrations/empty-state-error-color/README.md +84 -0
  365. package/schematics/migrations/empty-state-error-color/data.cjs +85 -0
  366. package/schematics/migrations/empty-state-error-color/index.cjs +72 -0
  367. package/schematics/migrations/empty-state-error-color/schema.json +15 -0
  368. package/schematics/migrations/empty-state-size-attr/README.md +2 -2
  369. package/schematics/migrations/empty-state-size-attr/{index.js → index.cjs} +6 -5
  370. package/schematics/migrations/file-upload-cva-and-primitives/README.md +70 -0
  371. package/schematics/migrations/file-upload-cva-and-primitives/data.cjs +97 -0
  372. package/schematics/migrations/file-upload-cva-and-primitives/index.cjs +61 -0
  373. package/schematics/migrations/file-upload-cva-and-primitives/schema.json +15 -0
  374. package/schematics/migrations/file-upload-deprecated-outputs/README.md +90 -0
  375. package/schematics/migrations/file-upload-deprecated-outputs/data.cjs +20 -0
  376. package/schematics/migrations/file-upload-deprecated-outputs/index.cjs +71 -0
  377. package/schematics/migrations/file-upload-deprecated-outputs/schema.json +20 -0
  378. package/schematics/migrations/filter-bar-rename-action/README.md +183 -0
  379. package/schematics/migrations/filter-bar-rename-action/data.cjs +151 -0
  380. package/schematics/migrations/filter-bar-rename-action/index.cjs +178 -0
  381. package/schematics/migrations/filter-bar-rename-action/schema.json +20 -0
  382. package/schematics/migrations/filter-bar-signals/README.md +27 -16
  383. package/schematics/migrations/filter-bar-signals/{data.js → data.cjs} +1 -2
  384. package/schematics/migrations/filter-bar-signals/index.cjs +225 -0
  385. package/schematics/migrations/filter-bar-state-saving-default/README.md +53 -0
  386. package/schematics/migrations/filter-bar-state-saving-default/data.cjs +87 -0
  387. package/schematics/migrations/filter-bar-state-saving-default/index.cjs +62 -0
  388. package/schematics/migrations/filter-bar-state-saving-default/schema.json +15 -0
  389. package/schematics/migrations/flag-inner-html/README.md +67 -0
  390. package/schematics/migrations/flag-inner-html/data.cjs +58 -0
  391. package/schematics/migrations/flag-inner-html/index.cjs +62 -0
  392. package/schematics/migrations/flag-inner-html/schema.json +15 -0
  393. package/schematics/migrations/form-field-signals/README.md +125 -0
  394. package/schematics/migrations/form-field-signals/data.cjs +288 -0
  395. package/schematics/migrations/form-field-signals/index.cjs +383 -0
  396. package/schematics/migrations/form-field-signals/schema.json +20 -0
  397. package/schematics/migrations/icon-semantics-and-api/README.md +65 -0
  398. package/schematics/migrations/icon-semantics-and-api/data.cjs +97 -0
  399. package/schematics/migrations/icon-semantics-and-api/index.cjs +65 -0
  400. package/schematics/migrations/icon-semantics-and-api/schema.json +15 -0
  401. package/schematics/migrations/icons-replacement/README.md +5 -5
  402. package/schematics/migrations/icons-replacement/{index.js → index.cjs} +4 -3
  403. package/schematics/migrations/inline-edit-a11y-and-types/README.md +82 -0
  404. package/schematics/migrations/inline-edit-a11y-and-types/data.cjs +117 -0
  405. package/schematics/migrations/inline-edit-a11y-and-types/index.cjs +98 -0
  406. package/schematics/migrations/inline-edit-a11y-and-types/schema.json +20 -0
  407. package/schematics/migrations/input-number-surface/README.md +140 -0
  408. package/schematics/migrations/input-number-surface/data.cjs +135 -0
  409. package/schematics/migrations/input-number-surface/index.cjs +293 -0
  410. package/schematics/migrations/input-number-surface/schema.json +20 -0
  411. package/schematics/migrations/input-signals/README.md +20 -0
  412. package/schematics/migrations/input-signals/data.cjs +30 -0
  413. package/schematics/migrations/input-signals/index.cjs +18 -0
  414. package/schematics/migrations/input-signals/schema.json +15 -0
  415. package/schematics/migrations/link-deprecated-path/README.md +144 -0
  416. package/schematics/migrations/link-deprecated-path/index.cjs +20 -0
  417. package/schematics/migrations/link-deprecated-path/schema.json +20 -0
  418. package/schematics/migrations/link-signals/README.md +71 -0
  419. package/schematics/migrations/link-signals/data.cjs +116 -0
  420. package/schematics/migrations/link-signals/index.cjs +416 -0
  421. package/schematics/migrations/link-signals/schema.json +20 -0
  422. package/schematics/migrations/list-signals/README.md +22 -0
  423. package/schematics/migrations/list-signals/data.cjs +35 -0
  424. package/schematics/migrations/list-signals/index.cjs +18 -0
  425. package/schematics/migrations/list-signals/schema.json +15 -0
  426. package/schematics/migrations/list-tree-multiple-input/README.md +105 -0
  427. package/schematics/migrations/list-tree-multiple-input/data.cjs +74 -0
  428. package/schematics/migrations/list-tree-multiple-input/index.cjs +222 -0
  429. package/schematics/migrations/list-tree-multiple-input/schema.json +20 -0
  430. package/schematics/migrations/loader-overlay-signals/README.md +62 -0
  431. package/schematics/migrations/loader-overlay-signals/data.cjs +101 -0
  432. package/schematics/migrations/loader-overlay-signals/index.cjs +698 -0
  433. package/schematics/migrations/loader-overlay-signals/schema.json +20 -0
  434. package/schematics/migrations/loader-overlay-size-attr/README.md +2 -2
  435. package/schematics/migrations/loader-overlay-size-attr/{index.js → index.cjs} +6 -5
  436. package/schematics/migrations/locale-configuration-providers/README.md +163 -0
  437. package/schematics/migrations/locale-configuration-providers/data.cjs +257 -0
  438. package/schematics/migrations/locale-configuration-providers/index.cjs +295 -0
  439. package/schematics/migrations/locale-configuration-providers/schema.json +20 -0
  440. package/schematics/migrations/mandatory-peer-dependencies/README.md +70 -0
  441. package/schematics/migrations/mandatory-peer-dependencies/index.cjs +43 -0
  442. package/schematics/migrations/mandatory-peer-dependencies/schema.json +15 -0
  443. package/schematics/migrations/markdown-signals/README.md +58 -0
  444. package/schematics/migrations/markdown-signals/data.cjs +79 -0
  445. package/schematics/migrations/markdown-signals/index.cjs +640 -0
  446. package/schematics/migrations/markdown-signals/schema.json +20 -0
  447. package/schematics/migrations/modal-dialog-semantics/README.md +106 -0
  448. package/schematics/migrations/modal-dialog-semantics/data.cjs +110 -0
  449. package/schematics/migrations/modal-dialog-semantics/index.cjs +59 -0
  450. package/schematics/migrations/modal-dialog-semantics/schema.json +15 -0
  451. package/schematics/migrations/modal-signals/README.md +88 -0
  452. package/schematics/migrations/modal-signals/data.cjs +132 -0
  453. package/schematics/migrations/modal-signals/index.cjs +20 -0
  454. package/schematics/migrations/modal-signals/schema.json +20 -0
  455. package/schematics/migrations/navbar-signals-and-aria/README.md +111 -0
  456. package/schematics/migrations/navbar-signals-and-aria/data.cjs +198 -0
  457. package/schematics/migrations/navbar-signals-and-aria/index.cjs +569 -0
  458. package/schematics/migrations/navbar-signals-and-aria/schema.json +20 -0
  459. package/schematics/migrations/new-icons-pack/README.md +10 -10
  460. package/schematics/migrations/new-icons-pack/{index.js → index.cjs} +8 -7
  461. package/schematics/migrations/notification-center-signals/README.md +67 -0
  462. package/schematics/migrations/notification-center-signals/data.cjs +66 -0
  463. package/schematics/migrations/notification-center-signals/index.cjs +62 -0
  464. package/schematics/migrations/notification-center-signals/schema.json +15 -0
  465. package/schematics/migrations/option-signals/README.md +37 -0
  466. package/schematics/migrations/option-signals/data.cjs +86 -0
  467. package/schematics/migrations/option-signals/index.cjs +20 -0
  468. package/schematics/migrations/option-signals/schema.json +20 -0
  469. package/schematics/migrations/popover-leave-delay/README.md +51 -0
  470. package/schematics/migrations/popover-leave-delay/data.cjs +61 -0
  471. package/schematics/migrations/popover-leave-delay/index.cjs +55 -0
  472. package/schematics/migrations/popover-leave-delay/schema.json +15 -0
  473. package/schematics/migrations/progress-bar-percentage-and-aria/README.md +54 -0
  474. package/schematics/migrations/progress-bar-percentage-and-aria/data.cjs +76 -0
  475. package/schematics/migrations/progress-bar-percentage-and-aria/index.cjs +59 -0
  476. package/schematics/migrations/progress-bar-percentage-and-aria/schema.json +15 -0
  477. package/schematics/migrations/progress-spinner-signals/README.md +72 -0
  478. package/schematics/migrations/progress-spinner-signals/data.cjs +83 -0
  479. package/schematics/migrations/progress-spinner-signals/index.cjs +695 -0
  480. package/schematics/migrations/progress-spinner-signals/schema.json +20 -0
  481. package/schematics/migrations/query-list-signals/README.md +32 -0
  482. package/schematics/migrations/query-list-signals/data.cjs +70 -0
  483. package/schematics/migrations/query-list-signals/index.cjs +18 -0
  484. package/schematics/migrations/query-list-signals/schema.json +15 -0
  485. package/schematics/migrations/radio-signals-and-aria/README.md +82 -0
  486. package/schematics/migrations/radio-signals-and-aria/data.cjs +163 -0
  487. package/schematics/migrations/radio-signals-and-aria/index.cjs +40 -0
  488. package/schematics/migrations/radio-signals-and-aria/schema.json +20 -0
  489. package/schematics/migrations/read-state-dwell-handlers/README.md +125 -0
  490. package/schematics/migrations/read-state-dwell-handlers/data.cjs +45 -0
  491. package/schematics/migrations/read-state-dwell-handlers/index.cjs +216 -0
  492. package/schematics/migrations/read-state-dwell-handlers/schema.json +20 -0
  493. package/schematics/migrations/scrollbar-deprecated-path/README.md +128 -0
  494. package/schematics/migrations/scrollbar-deprecated-path/index.cjs +21 -0
  495. package/schematics/migrations/scrollbar-deprecated-path/schema.json +20 -0
  496. package/schematics/migrations/select-signal-inputs/README.md +61 -0
  497. package/schematics/migrations/select-signal-inputs/data.cjs +99 -0
  498. package/schematics/migrations/select-signal-inputs/index.cjs +58 -0
  499. package/schematics/migrations/select-signal-inputs/schema.json +15 -0
  500. package/schematics/migrations/sidepanel-non-modal-behavior/README.md +57 -0
  501. package/schematics/migrations/sidepanel-non-modal-behavior/data.cjs +111 -0
  502. package/schematics/migrations/sidepanel-non-modal-behavior/index.cjs +58 -0
  503. package/schematics/migrations/sidepanel-non-modal-behavior/schema.json +15 -0
  504. package/schematics/migrations/signal-inputs-subclasses/README.md +28 -0
  505. package/schematics/migrations/signal-inputs-subclasses/data.cjs +69 -0
  506. package/schematics/migrations/signal-inputs-subclasses/index.cjs +18 -0
  507. package/schematics/migrations/signal-inputs-subclasses/schema.json +15 -0
  508. package/schematics/migrations/split-button-optional-disabled/README.md +47 -0
  509. package/schematics/migrations/split-button-optional-disabled/data.cjs +53 -0
  510. package/schematics/migrations/split-button-optional-disabled/index.cjs +58 -0
  511. package/schematics/migrations/split-button-optional-disabled/schema.json +15 -0
  512. package/schematics/migrations/splitter-deprecated-path/README.md +136 -0
  513. package/schematics/migrations/splitter-deprecated-path/index.cjs +21 -0
  514. package/schematics/migrations/splitter-deprecated-path/schema.json +20 -0
  515. package/schematics/migrations/state-saving-default/README.md +67 -0
  516. package/schematics/migrations/state-saving-default/data.cjs +88 -0
  517. package/schematics/migrations/state-saving-default/index.cjs +63 -0
  518. package/schematics/migrations/state-saving-default/schema.json +15 -0
  519. package/schematics/migrations/table-cell-content/README.md +55 -0
  520. package/schematics/migrations/table-cell-content/data.cjs +66 -0
  521. package/schematics/migrations/table-cell-content/index.cjs +67 -0
  522. package/schematics/migrations/table-cell-content/schema.json +15 -0
  523. package/schematics/migrations/tabs-signals-and-aria/README.md +93 -0
  524. package/schematics/migrations/tabs-signals-and-aria/data.cjs +139 -0
  525. package/schematics/migrations/tabs-signals-and-aria/index.cjs +66 -0
  526. package/schematics/migrations/tabs-signals-and-aria/schema.json +15 -0
  527. package/schematics/migrations/tag-list-cleaner/README.md +58 -0
  528. package/schematics/migrations/tag-list-cleaner/data.cjs +42 -0
  529. package/schematics/migrations/tag-list-cleaner/index.cjs +197 -0
  530. package/schematics/migrations/tag-list-cleaner/schema.json +20 -0
  531. package/schematics/migrations/tag-slots/README.md +41 -0
  532. package/schematics/migrations/tag-slots/index.cjs +191 -0
  533. package/schematics/migrations/tag-slots/schema.json +20 -0
  534. package/schematics/migrations/tags-signals/README.md +85 -0
  535. package/schematics/migrations/tags-signals/data.cjs +103 -0
  536. package/schematics/migrations/tags-signals/index.cjs +674 -0
  537. package/schematics/migrations/tags-signals/schema.json +20 -0
  538. package/schematics/migrations/textarea-signals/README.md +72 -0
  539. package/schematics/migrations/textarea-signals/data.cjs +121 -0
  540. package/schematics/migrations/textarea-signals/index.cjs +380 -0
  541. package/schematics/migrations/textarea-signals/schema.json +20 -0
  542. package/schematics/migrations/time-range-title-for/README.md +164 -0
  543. package/schematics/migrations/time-range-title-for/data.cjs +139 -0
  544. package/schematics/migrations/time-range-title-for/index.cjs +164 -0
  545. package/schematics/migrations/time-range-title-for/schema.json +20 -0
  546. package/schematics/migrations/timepicker-signals/README.md +78 -0
  547. package/schematics/migrations/timepicker-signals/data.cjs +82 -0
  548. package/schematics/migrations/timepicker-signals/index.cjs +710 -0
  549. package/schematics/migrations/timepicker-signals/schema.json +20 -0
  550. package/schematics/migrations/timezone-grouping-utils/README.md +73 -0
  551. package/schematics/migrations/timezone-grouping-utils/data.cjs +101 -0
  552. package/schematics/migrations/timezone-grouping-utils/index.cjs +65 -0
  553. package/schematics/migrations/timezone-grouping-utils/schema.json +15 -0
  554. package/schematics/migrations/title-encapsulation/README.md +49 -0
  555. package/schematics/migrations/title-encapsulation/data.cjs +69 -0
  556. package/schematics/migrations/title-encapsulation/index.cjs +58 -0
  557. package/schematics/migrations/title-encapsulation/schema.json +15 -0
  558. package/schematics/migrations/toast-stack-and-defaults/README.md +102 -0
  559. package/schematics/migrations/toast-stack-and-defaults/data.cjs +79 -0
  560. package/schematics/migrations/toast-stack-and-defaults/index.cjs +54 -0
  561. package/schematics/migrations/toast-stack-and-defaults/schema.json +15 -0
  562. package/schematics/migrations/tooltip-pointer-events-and-types/README.md +53 -0
  563. package/schematics/migrations/tooltip-pointer-events-and-types/data.cjs +89 -0
  564. package/schematics/migrations/tooltip-pointer-events-and-types/index.cjs +61 -0
  565. package/schematics/migrations/tooltip-pointer-events-and-types/schema.json +15 -0
  566. package/schematics/migrations/top-bar-container-selectors/README.md +111 -0
  567. package/schematics/migrations/top-bar-container-selectors/data.cjs +56 -0
  568. package/schematics/migrations/top-bar-container-selectors/index.cjs +85 -0
  569. package/schematics/migrations/top-bar-container-selectors/schema.json +20 -0
  570. package/schematics/migrations/tree-select-signals/README.md +61 -0
  571. package/schematics/migrations/tree-select-signals/data.cjs +106 -0
  572. package/schematics/migrations/tree-select-signals/index.cjs +59 -0
  573. package/schematics/migrations/tree-select-signals/schema.json +15 -0
  574. package/schematics/migrations/tree-signals/README.md +82 -0
  575. package/schematics/migrations/tree-signals/data.cjs +123 -0
  576. package/schematics/migrations/tree-signals/index.cjs +55 -0
  577. package/schematics/migrations/tree-signals/schema.json +15 -0
  578. package/schematics/migrations/tree-state-saving-default/README.md +66 -0
  579. package/schematics/migrations/tree-state-saving-default/data.cjs +78 -0
  580. package/schematics/migrations/tree-state-saving-default/index.cjs +61 -0
  581. package/schematics/migrations/tree-state-saving-default/schema.json +15 -0
  582. package/schematics/migrations/username-pipe-injection/README.md +59 -0
  583. package/schematics/migrations/username-pipe-injection/data.cjs +78 -0
  584. package/schematics/migrations/username-pipe-injection/index.cjs +59 -0
  585. package/schematics/migrations/username-pipe-injection/schema.json +15 -0
  586. package/schematics/migrations/v20-upgrade/README.md +36 -16
  587. package/schematics/migrations/v20-upgrade/{data.js → data.cjs} +124 -77
  588. package/schematics/migrations/v20-upgrade/index.cjs +19 -0
  589. package/schematics/migrations/v21-upgrade/README.md +271 -0
  590. package/schematics/migrations/v21-upgrade/data.cjs +1371 -0
  591. package/schematics/migrations/v21-upgrade/index.cjs +95 -0
  592. package/schematics/migrations/v21-upgrade/schema.json +20 -0
  593. package/schematics/migrations/zoneless-change-detection/README.md +30 -0
  594. package/schematics/migrations/zoneless-change-detection/data.cjs +29 -0
  595. package/schematics/migrations/zoneless-change-detection/index.cjs +21 -0
  596. package/schematics/migrations/zoneless-change-detection/schema.json +15 -0
  597. package/schematics/migrations.json +401 -6
  598. package/schematics/ng-add/index.cjs +266 -0
  599. package/schematics/ng-add/schema.json +15 -0
  600. package/schematics/utils/{angular-parsing.js → angular-parsing.cjs} +2 -2
  601. package/schematics/utils/deprecated-path-migration.cjs +62 -0
  602. package/schematics/utils/html-config.cjs +148 -0
  603. package/schematics/utils/{icon-migration.js → icon-migration.cjs} +2 -2
  604. package/schematics/utils/list-item-pattern.cjs +16 -0
  605. package/schematics/utils/{package-config.js → package-config.cjs} +3 -32
  606. package/schematics/utils/project-files.cjs +25 -0
  607. package/schematics/utils/replacement-driver.cjs +337 -0
  608. package/schematics/utils/safe-rule.cjs +23 -0
  609. package/schematics/utils/signal-members-migration.cjs +779 -0
  610. package/schematics/utils/tag-patterns.cjs +21 -0
  611. package/schematics/utils/template-ref-access.cjs +155 -0
  612. package/schematics/utils/{typescript.js → typescript.cjs} +1 -1
  613. package/schematics/utils/warn-only-migration.cjs +52 -0
  614. package/schematics/utils/workspace-styles.cjs +123 -0
  615. package/scrollbar/{_scrollbar-component-theme.scss → deprecated/_scrollbar-component-theme.scss} +1 -1
  616. package/scrollbar/{scrollbar.component.scss → deprecated/scrollbar.component.scss} +1 -1
  617. package/scrollbar/native-scrollbar.scss +68 -0
  618. package/scrollbar/scrollbar-tokens.scss +13 -22
  619. package/scrollbar/scrollbar-track.scss +94 -0
  620. package/scrollbar/scrollbar-viewport.scss +33 -0
  621. package/scrollbar/scrollbar.scss +24 -0
  622. package/search-expandable/search-expandable-tokens.scss +4 -0
  623. package/search-expandable/search-expandable.scss +4 -2
  624. package/select/_select-theme.scss +3 -16
  625. package/select/select.scss +0 -6
  626. package/sidebar/sidebar.scss +20 -0
  627. package/sidepanel/_sidepanel-theme.scss +1 -1
  628. package/sidepanel/sidepanel-tokens.scss +7 -1
  629. package/sidepanel/sidepanel.scss +41 -5
  630. package/skeleton/skeleton-presets.scss +350 -0
  631. package/skeleton/skeleton-tokens.scss +127 -0
  632. package/skeleton/skeleton.scss +53 -45
  633. package/split-button/_split-button-theme.scss +4 -4
  634. package/split-button/split-button.scss +2 -6
  635. package/splitter/{_splitter-theme.scss → deprecated/_splitter-theme.scss} +1 -1
  636. package/splitter/deprecated/splitter.scss +51 -0
  637. package/splitter/splitter-tokens.scss +19 -0
  638. package/splitter/splitter.scss +148 -28
  639. package/table/_table-theme.scss +13 -12
  640. package/table/table-tokens.scss +8 -0
  641. package/table/table.scss +47 -22
  642. package/tabs/_tabs-common.scss +14 -14
  643. package/tabs/_tabs-theme.scss +4 -5
  644. package/tabs/tab-body.scss +49 -1
  645. package/tabs/tab-header.scss +2 -1
  646. package/tags/tag-list.scss +4 -0
  647. package/tags/tag.scss +19 -1
  648. package/time-range/time-range.scss +9 -0
  649. package/timezone/timezone-option.component.scss +4 -7
  650. package/timezone/timezone-select.component.scss +3 -0
  651. package/toast/_toast-theme.scss +1 -4
  652. package/toast/toast-container.component.scss +19 -13
  653. package/toast/toast-tokens.scss +12 -6
  654. package/toast/toast.component.scss +42 -19
  655. package/toggle/_toggle-theme.scss +4 -10
  656. package/toggle/toggle.scss +67 -26
  657. package/tooltip/_tooltip-theme.scss +7 -1
  658. package/tooltip/tooltip-tokens.scss +1 -2
  659. package/tooltip/tooltip.scss +55 -9
  660. package/top-bar/top-bar-tokens.scss +13 -2
  661. package/top-bar/top-bar.scss +24 -19
  662. package/tree/_tree-theme.scss +0 -1
  663. package/tree/toggle.scss +5 -9
  664. package/tree/tree-option.scss +2 -4
  665. package/tree/tree-tokens.scss +2 -1
  666. package/tree/tree.scss +3 -5
  667. package/tree-select/_tree-select-theme.scss +4 -15
  668. package/tree-select/tree-select-tokens.scss +16 -0
  669. package/tree-select/tree-select.scss +0 -6
  670. package/{accordion/index.d.ts → types/koobiq-components-accordion.d.ts} +102 -84
  671. package/{actions-panel/index.d.ts → types/koobiq-components-actions-panel.d.ts} +44 -59
  672. package/{alert/index.d.ts → types/koobiq-components-alert.d.ts} +8 -3
  673. package/types/koobiq-components-app-switcher.d.ts +406 -0
  674. package/types/koobiq-components-autocomplete.d.ts +443 -0
  675. package/{badge/index.d.ts → types/koobiq-components-badge.d.ts} +25 -20
  676. package/{breadcrumbs/index.d.ts → types/koobiq-components-breadcrumbs.d.ts} +97 -46
  677. package/types/koobiq-components-button-toggle.d.ts +340 -0
  678. package/types/koobiq-components-button.d.ts +296 -0
  679. package/types/koobiq-components-checkbox.d.ts +172 -0
  680. package/types/koobiq-components-clamped-text.d.ts +184 -0
  681. package/{code-block/index.d.ts → types/koobiq-components-code-block.d.ts} +150 -88
  682. package/{content-panel/index.d.ts → types/koobiq-components-content-panel.d.ts} +81 -25
  683. package/{core/index.d.ts → types/koobiq-components-core.d.ts} +2827 -865
  684. package/{datepicker/index.d.ts → types/koobiq-components-datepicker.d.ts} +161 -116
  685. package/types/koobiq-components-divider.d.ts +43 -0
  686. package/types/koobiq-components-dl.d.ts +235 -0
  687. package/{dropdown/index.d.ts → types/koobiq-components-dropdown.d.ts} +245 -239
  688. package/types/koobiq-components-ellipsis-center.d.ts +85 -0
  689. package/types/koobiq-components-empty-state.d.ts +106 -0
  690. package/{file-upload/index.d.ts → types/koobiq-components-file-upload.d.ts} +214 -107
  691. package/{filter-bar/index.d.ts → types/koobiq-components-filter-bar.d.ts} +410 -495
  692. package/types/koobiq-components-flag.d.ts +68 -0
  693. package/{form-field/index.d.ts → types/koobiq-components-form-field.d.ts} +167 -191
  694. package/types/koobiq-components-icon.d.ts +333 -0
  695. package/{inline-edit/index.d.ts → types/koobiq-components-inline-edit.d.ts} +109 -46
  696. package/types/koobiq-components-input.d.ts +477 -0
  697. package/types/koobiq-components-link-deprecated.d.ts +101 -0
  698. package/types/koobiq-components-link.d.ts +176 -0
  699. package/{list/index.d.ts → types/koobiq-components-list.d.ts} +162 -99
  700. package/types/koobiq-components-loader-overlay.d.ts +101 -0
  701. package/{markdown/index.d.ts → types/koobiq-components-markdown.d.ts} +16 -24
  702. package/types/koobiq-components-modal.d.ts +666 -0
  703. package/types/koobiq-components-navbar.d.ts +569 -0
  704. package/types/koobiq-components-notification-center.d.ts +500 -0
  705. package/{overflow-items/index.d.ts → types/koobiq-components-overflow-items.d.ts} +8 -22
  706. package/types/koobiq-components-popover.d.ts +468 -0
  707. package/types/koobiq-components-progress-bar.d.ts +67 -0
  708. package/{progress-spinner/index.d.ts → types/koobiq-components-progress-spinner.d.ts} +33 -10
  709. package/types/koobiq-components-radio.d.ts +294 -0
  710. package/{resizer/index.d.ts → types/koobiq-components-resizer.d.ts} +37 -2
  711. package/{scrollbar/index.d.ts → types/koobiq-components-scrollbar-deprecated.d.ts} +18 -1
  712. package/types/koobiq-components-scrollbar.d.ts +154 -0
  713. package/types/koobiq-components-search-expandable.d.ts +164 -0
  714. package/{select/index.d.ts → types/koobiq-components-select.d.ts} +360 -167
  715. package/types/koobiq-components-sidebar.d.ts +152 -0
  716. package/types/koobiq-components-sidepanel.d.ts +436 -0
  717. package/types/koobiq-components-skeleton.d.ts +234 -0
  718. package/types/koobiq-components-split-button.d.ts +65 -0
  719. package/{splitter/index.d.ts → types/koobiq-components-splitter-deprecated.d.ts} +44 -1
  720. package/types/koobiq-components-splitter.d.ts +406 -0
  721. package/types/koobiq-components-table.d.ts +44 -0
  722. package/types/koobiq-components-tabs.d.ts +888 -0
  723. package/{tags/index.d.ts → types/koobiq-components-tags.d.ts} +249 -133
  724. package/types/koobiq-components-textarea.d.ts +178 -0
  725. package/{time-range/index.d.ts → types/koobiq-components-time-range.d.ts} +135 -62
  726. package/types/koobiq-components-timepicker.d.ts +223 -0
  727. package/types/koobiq-components-timezone.d.ts +266 -0
  728. package/types/koobiq-components-title.d.ts +184 -0
  729. package/types/koobiq-components-toast.d.ts +289 -0
  730. package/types/koobiq-components-toggle.d.ts +121 -0
  731. package/types/koobiq-components-tooltip.d.ts +610 -0
  732. package/types/koobiq-components-top-bar.d.ts +61 -0
  733. package/types/koobiq-components-tree-select.d.ts +670 -0
  734. package/types/koobiq-components-tree.d.ts +1339 -0
  735. package/types/koobiq-components-username.d.ts +340 -0
  736. package/username/_username-theme.scss +35 -0
  737. package/username/username.scss +10 -34
  738. package/app-switcher/index.d.ts +0 -276
  739. package/autocomplete/index.d.ts +0 -286
  740. package/button/index.d.ts +0 -153
  741. package/button-toggle/index.d.ts +0 -162
  742. package/checkbox/index.d.ts +0 -163
  743. package/clamped-text/index.d.ts +0 -146
  744. package/core/styles/_tokens.scss +0 -7
  745. package/core/styles/common/_clearfix.scss +0 -13
  746. package/core/styles/common/_popup.scss +0 -6
  747. package/core/styles/functions/_index.scss +0 -3
  748. package/core/styles/functions/_number.scss +0 -60
  749. package/core/styles/functions/_string.scss +0 -18
  750. package/core/styles/theming/scrollbar-tokens.scss +0 -25
  751. package/core/styles/typography/_typography-utils.scss +0 -84
  752. package/divider/index.d.ts +0 -20
  753. package/dl/index.d.ts +0 -45
  754. package/ellipsis-center/index.d.ts +0 -71
  755. package/empty-state/index.d.ts +0 -45
  756. package/flag/index.d.ts +0 -44
  757. package/icon/index.d.ts +0 -200
  758. package/input/index.d.ts +0 -354
  759. package/link/index.d.ts +0 -56
  760. package/loader-overlay/index.d.ts +0 -57
  761. package/modal/index.d.ts +0 -339
  762. package/navbar/index.d.ts +0 -372
  763. package/notification-center/index.d.ts +0 -323
  764. package/popover/index.d.ts +0 -182
  765. package/prebuilt-themes/dark-theme.css +0 -1
  766. package/prebuilt-themes/light-theme.css +0 -1
  767. package/progress-bar/index.d.ts +0 -31
  768. package/radio/index.d.ts +0 -203
  769. package/schematics/migrations/alert-signals/index.js +0 -353
  770. package/schematics/migrations/filter-bar-signals/index.js +0 -319
  771. package/schematics/migrations/v20-upgrade/index.js +0 -225
  772. package/schematics/ng-add/index.js +0 -39
  773. package/search-expandable/index.d.ts +0 -101
  774. package/sidebar/index.d.ts +0 -94
  775. package/sidepanel/index.d.ts +0 -272
  776. package/skeleton/index.d.ts +0 -26
  777. package/split-button/index.d.ts +0 -46
  778. package/table/index.d.ts +0 -25
  779. package/tabs/index.d.ts +0 -677
  780. package/textarea/index.d.ts +0 -138
  781. package/timepicker/index.d.ts +0 -197
  782. package/timezone/index.d.ts +0 -125
  783. package/title/index.d.ts +0 -139
  784. package/toast/index.d.ts +0 -178
  785. package/toggle/index.d.ts +0 -104
  786. package/tooltip/index.d.ts +0 -335
  787. package/top-bar/index.d.ts +0 -33
  788. package/tree/index.d.ts +0 -802
  789. package/tree-select/index.d.ts +0 -475
  790. package/username/index.d.ts +0 -194
  791. /package/schematics/migrations/css-selectors/{data.js → data.cjs} +0 -0
  792. /package/schematics/migrations/deprecated-icons/{data.js → data.cjs} +0 -0
  793. /package/schematics/migrations/icons-replacement/{data.js → data.cjs} +0 -0
  794. /package/schematics/migrations/new-icons-pack/{data.js → data.cjs} +0 -0
  795. /package/schematics/utils/{ast.js → ast.cjs} +0 -0
  796. /package/schematics/utils/{messages.js → messages.cjs} +0 -0
  797. /package/{dynamic-translation/index.d.ts → types/koobiq-components-dynamic-translation.d.ts} +0 -0
  798. /package/{index.d.ts → types/koobiq-components.d.ts} +0 -0
@@ -1,73 +1,122 @@
1
1
  import { FocusMonitor } from '@angular/cdk/a11y';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, DestroyRef, ChangeDetectorRef, ElementRef, viewChild, input, numberAttribute, output, booleanAttribute, Input, ViewChildren, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { InjectionToken, untracked, inject, DestroyRef, ElementRef, viewChild, signal, input, booleanAttribute, numberAttribute, output, effect, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import * as i5 from '@angular/forms';
6
- import { NgControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import * as i1 from '@koobiq/components/button';
8
- import { KbqButtonModule, KbqButton } from '@koobiq/components/button';
9
- import { ruRULocaleData, KBQ_LOCALE_SERVICE } from '@koobiq/components/core';
10
- import * as i2 from '@koobiq/components/icon';
5
+ import * as i6 from '@angular/forms';
6
+ import { NgControl, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import * as i2 from '@koobiq/components/button';
8
+ import { KbqButton, KbqButtonModule } from '@koobiq/components/button';
9
+ import * as i1 from '@koobiq/components/core';
10
+ import { ruRULocaleData, kbqLocaleConfigurationOverrideProvider, KbqLocaleOverridesDirective, KBQ_A11Y_LOCALE_CONFIGURATION, ErrorStateMatcher, kbqOptionalNumberAttribute } from '@koobiq/components/core';
11
+ import * as i3 from '@koobiq/components/icon';
11
12
  import { KbqIconModule } from '@koobiq/components/icon';
12
- import * as i3 from '@koobiq/components/input';
13
- import { KbqInputModule, KbqInput } from '@koobiq/components/input';
14
- import * as i6 from '@koobiq/components/tooltip';
13
+ import * as i4 from '@koobiq/components/input';
14
+ import { KbqInput, KbqInputModule } from '@koobiq/components/input';
15
+ import * as i7 from '@koobiq/components/tooltip';
15
16
  import { KbqTooltipTrigger, KbqToolTipModule } from '@koobiq/components/tooltip';
16
- import { BehaviorSubject, distinctUntilChanged, filter, debounceTime } from 'rxjs';
17
- import { map } from 'rxjs/operators';
18
- import * as i4 from '@koobiq/components/form-field';
17
+ import { Subject, filter, timer } from 'rxjs';
18
+ import { switchMap, map, takeUntil } from 'rxjs/operators';
19
+ import * as i5 from '@koobiq/components/form-field';
19
20
 
20
21
  /** default configuration of search-expandable */
21
- const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION = ruRULocaleData.searchExpandable;
22
+ const KBQ_SEARCH_EXPANDABLE_DEFAULT_LOCALE_CONFIGURATION = ruRULocaleData.searchExpandable;
22
23
  /** Injection Token for providing configuration of search-expandable */
23
- const KBQ_SEARCH_EXPANDABLE_CONFIGURATION = new InjectionToken('KbqSearchExpandableConfiguration');
24
+ const KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION = new InjectionToken('KbqSearchExpandableLocaleConfiguration', { factory: () => KBQ_SEARCH_EXPANDABLE_DEFAULT_LOCALE_CONFIGURATION });
25
+ /**
26
+ * Utility provider for `KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION`. Only the strings you pass are overridden; the
27
+ * rest keep following the active locale.
28
+ */
29
+ const kbqSearchExpandableLocaleConfigurationProvider = (configuration) => kbqLocaleConfigurationOverrideProvider('searchExpandable', configuration);
30
+ /** @deprecated Use {@link KBQ_SEARCH_EXPANDABLE_DEFAULT_LOCALE_CONFIGURATION}. Will be removed in 22.0.0. */
31
+ const KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION = KBQ_SEARCH_EXPANDABLE_DEFAULT_LOCALE_CONFIGURATION;
32
+ /** @deprecated Use {@link KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION}. Will be removed in 22.0.0. */
33
+ const KBQ_SEARCH_EXPANDABLE_CONFIGURATION = KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION;
24
34
  const defaultValue = '';
25
35
  const defaultEmitValueTimeout = 200;
36
+ /**
37
+ * Resolves the error state of the rendered field against the control the consumer bound, not against
38
+ * the component's own validator-free control the input is wired to. Delegates to the ambient matcher so
39
+ * a consumer-provided `ErrorStateMatcher` keeps deciding *when* the errors are shown.
40
+ */
41
+ class BoundControlErrorStateMatcher {
42
+ constructor(matcher, boundControl) {
43
+ this.matcher = matcher;
44
+ this.boundControl = boundControl;
45
+ }
46
+ isErrorState(_control, form) {
47
+ return this.matcher.isErrorState(this.boundControl(), form);
48
+ }
49
+ }
26
50
  class KbqSearchExpandable {
27
- /** Tooltip text for the search button. When set, overrides localeData.tooltip */
28
- // TODO: Skipped for migration because:
29
- // Accessor inputs cannot be migrated as they are too complex.
51
+ /** state of component. */
52
+ get isOpened() {
53
+ return this.openedState();
54
+ }
55
+ set isOpened(value) {
56
+ this.openedState.set(value);
57
+ }
58
+ /** Tooltip text for the search button. When set, overrides the locale tooltip */
30
59
  get tooltipText() {
31
- return this._tooltipText ?? this.localeData?.tooltip;
60
+ return this._tooltipText ?? this.localeConfiguration().tooltip;
32
61
  }
33
62
  set tooltipText(value) {
34
63
  this._tooltipText = value;
35
64
  }
36
65
  /** Placeholder for input when expanded */
37
- // TODO: Skipped for migration because:
38
- // Accessor inputs cannot be migrated as they are too complex.
39
66
  get placeholder() {
40
- return this._placeholder ?? this.localeData?.placeholder;
67
+ return this._placeholder ?? this.localeConfiguration().placeholder;
41
68
  }
42
69
  set placeholder(value) {
43
70
  this._placeholder = value;
44
71
  }
45
- // TODO: Skipped for migration because:
46
- // Accessor inputs cannot be migrated as they are too complex.
72
+ /** Whether the component is disabled. Also set by the bound control through `setDisabledState`. */
47
73
  get disabled() {
48
- return this._disabled;
74
+ return this.disabledState();
49
75
  }
50
76
  set disabled(value) {
51
- this._disabled = value;
52
- if (this._disabled) {
77
+ this.disabledState.set(value);
78
+ // `emitEvent: false`: `disable()`/`enable()` re-emit the current value, which would restart the
79
+ // debounce and emit a value the user never typed.
80
+ if (value) {
81
+ this.control.disable({ emitEvent: false });
53
82
  this.stopFocusMonitor();
54
83
  }
55
84
  else {
56
- this.runFocusMonitor();
85
+ this.control.enable({ emitEvent: false });
86
+ untracked(() => this.runFocusMonitor());
57
87
  }
58
88
  }
59
- // TODO: Skipped for migration because:
60
- // Accessor inputs cannot be migrated as they are too complex.
89
+ /** Tab index of the collapsed button and of the expanded input. Always `-1` while disabled. */
61
90
  get tabIndex() {
62
91
  return this.disabled ? -1 : this._tabIndex;
63
92
  }
64
93
  set tabIndex(value) {
65
94
  this._tabIndex = value;
66
95
  }
67
- /** localized data
68
- * @docs-private */
69
- get localeData() {
70
- return this.configuration;
96
+ ngOnChanges(changes) {
97
+ // A bound input is handed to its member, a bound `undefined` as the member's default; unbound, it leaves
98
+ // what code wrote.
99
+ if (changes['isOpenedInput']) {
100
+ const isOpened = this.isOpenedInput();
101
+ // A form directive on the element writes its value before this hook runs, and expands the field when the
102
+ // value is not empty: a first binding of `false` must not collapse it again.
103
+ if (isOpened !== undefined && (isOpened || !changes['isOpenedInput'].firstChange)) {
104
+ this.isOpened = isOpened;
105
+ }
106
+ }
107
+ if (changes['tooltipTextInput']) {
108
+ this.tooltipText = this.tooltipTextInput() ?? null;
109
+ }
110
+ if (changes['placeholderInput']) {
111
+ this.placeholder = this.placeholderInput() ?? null;
112
+ }
113
+ if (changes['disabledInput']) {
114
+ const disabled = this.disabledInput();
115
+ if (disabled !== undefined)
116
+ this.disabled = disabled;
117
+ }
118
+ if (changes['tabIndexInput'])
119
+ this.tabIndex = this.tabIndexInput() ?? 0;
71
120
  }
72
121
  constructor() {
73
122
  /** @docs-private */
@@ -75,40 +124,80 @@ class KbqSearchExpandable {
75
124
  /** @docs-private */
76
125
  this.focusMonitor = inject(FocusMonitor);
77
126
  /** @docs-private */
78
- this.localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });
79
- /** @docs-private */
80
127
  this.destroyRef = inject(DestroyRef);
81
128
  /** @docs-private */
82
- this.changeDetectorRef = inject(ChangeDetectorRef);
83
- /** @docs-private */
84
129
  this.nativeElement = inject(ElementRef).nativeElement;
85
- this.externalConfiguration = inject(KBQ_SEARCH_EXPANDABLE_CONFIGURATION, { optional: true });
86
- this.tooltip = viewChild(KbqTooltipTrigger, ...(ngDevMode ? [{ debugName: "tooltip" }] : []));
87
- /** Current value in input. */
88
- this.value = new BehaviorSubject(defaultValue);
130
+ this.carrier = inject(KbqLocaleOverridesDirective, { self: true });
131
+ /**
132
+ * Accessible names of the icon-only controls this component renders itself.
133
+ *
134
+ * @docs-private
135
+ */
136
+ this.a11yLocaleConfiguration = this.carrier.read('a11y', KBQ_A11Y_LOCALE_CONFIGURATION);
137
+ /** Strings currently rendered by the component. */
138
+ this.localeConfiguration = this.carrier.read('searchExpandable', KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION);
139
+ this.input = viewChild(KbqInput, ...(ngDevMode ? [{ debugName: "input" }] : /* istanbul ignore next */ []));
140
+ this.button = viewChild(KbqButton, ...(ngDevMode ? [{ debugName: "button" }] : /* istanbul ignore next */ []));
141
+ this.tooltip = viewChild(KbqTooltipTrigger, ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
142
+ /** @docs-private */
143
+ /**
144
+ * Control backing the expanded input. Owning it — rather than binding the consumer's own control to
145
+ * the input — keeps every write to the consumer's model going through the debounced pipeline below,
146
+ * and keeps a programmatic write from being echoed back as a user edit.
147
+ *
148
+ * @docs-private
149
+ */
150
+ this.control = new FormControl(defaultValue, { nonNullable: true });
151
+ /**
152
+ * Keeps the field's invalid state — and the `aria-invalid` derived from it — following the bound
153
+ * control, which is the only one the consumer's validators run on.
154
+ *
155
+ * @docs-private
156
+ */
157
+ this.errorStateMatcher = new BoundControlErrorStateMatcher(inject(ErrorStateMatcher), () => this.ngControl?.control ?? null);
158
+ /** Icon of the collapsed button and of the expanded field's prefix. */
159
+ this.searchIconName = 'kbq-magnifying-glass_16';
160
+ /** Current value in input. A write reaches the field, and the bound control once `emitValueTimeout` passes. */
161
+ this.value = signal(defaultValue, ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
89
162
  this.lastFocusOrigin = null;
90
163
  /** Suppress the automatic input focus once — set when the component auto-opens from a model value. */
91
164
  this.suppressInputFocus = false;
92
- /** state of component. */
93
- // TODO: Skipped for migration because:
94
- // Your application code writes to the input. This prevents migration.
95
- this.isOpened = false;
165
+ /** Whether the expanded input was rendered on the previous change detection pass. */
166
+ this.inputRendered = false;
167
+ /** Whether the collapsed button was rendered on the previous change detection pass. */
168
+ this.buttonRendered = false;
169
+ /** Cancels a pending debounced emission once the value has been emitted (or reset) through another path. */
170
+ this.cancelPendingEmit = new Subject();
171
+ this.focusMonitorSubscription = null;
172
+ this.openedState = signal(false, ...(ngDevMode ? [{ debugName: "openedState" }] : /* istanbul ignore next */ []));
96
173
  /** Emit event by enter or not. Default is false */
97
- this.isEmitValueByEnterEnabled = input(false, ...(ngDevMode ? [{ debugName: "isEmitValueByEnterEnabled" }] : []));
174
+ this.isEmitValueByEnterEnabled = input(false, { ...(ngDevMode ? { debugName: "isEmitValueByEnterEnabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
98
175
  /** Timeout in milliseconds for emit event. The default value is taken from defaultEmitValueTimeout */
99
- this.emitValueTimeout = input(defaultEmitValueTimeout, ...(ngDevMode ? [{ debugName: "emitValueTimeout", transform: numberAttribute }] : [{ transform: numberAttribute }]));
100
- this._placeholder = this.localeData?.placeholder;
101
- this._disabled = false;
176
+ this.emitValueTimeout = input(defaultEmitValueTimeout, { ...(ngDevMode ? { debugName: "emitValueTimeout" } : /* istanbul ignore next */ {}), transform: numberAttribute });
177
+ this._placeholder = null;
178
+ // A signal: `setDisabledState` reaches the setter from the forms API, outside any binding of this view.
179
+ this.disabledState = signal(false, ...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
102
180
  this._tabIndex = 0;
103
181
  /** Event emitted when the search has been toggled. */
104
182
  this.isOpenedChange = output();
105
183
  this.lastEmittedValue = defaultValue;
106
184
  /** @docs-private */
185
+ this.isOpenedInput = input(undefined, { ...(ngDevMode ? { debugName: "isOpenedInput" } : /* istanbul ignore next */ {}), alias: 'isOpened',
186
+ transform: booleanAttribute });
187
+ /** @docs-private */
188
+ this.tooltipTextInput = input(undefined, { ...(ngDevMode ? { debugName: "tooltipTextInput" } : /* istanbul ignore next */ {}), alias: 'tooltipText' });
189
+ /** @docs-private */
190
+ this.placeholderInput = input(undefined, { ...(ngDevMode ? { debugName: "placeholderInput" } : /* istanbul ignore next */ {}), alias: 'placeholder' });
191
+ /** @docs-private */
192
+ this.disabledInput = input(undefined, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled',
193
+ transform: booleanAttribute });
194
+ /** @docs-private */
195
+ this.tabIndexInput = input(undefined, { ...(ngDevMode ? { debugName: "tabIndexInput" } : /* istanbul ignore next */ {}), alias: 'tabIndex',
196
+ transform: kbqOptionalNumberAttribute });
197
+ /** @docs-private */
198
+ this.onChange = () => { };
199
+ /** @docs-private */
107
200
  this.onTouch = () => { };
108
- this.updateLocaleParams = () => {
109
- this.configuration = this.externalConfiguration || this.localeService?.getParams('searchExpandable');
110
- this.changeDetectorRef.markForCheck();
111
- };
112
201
  this.emitValue = (value, forced = false) => {
113
202
  if (value !== this.lastEmittedValue || forced) {
114
203
  this.onChange(value);
@@ -119,45 +208,70 @@ class KbqSearchExpandable {
119
208
  throw Error(`kbq-search-expandable must be used with the [formControl], [formControlName] or [(ngModel)].`);
120
209
  }
121
210
  this.ngControl.valueAccessor = this;
122
- this.ngControl.valueChanges?.pipe(takeUntilDestroyed()).subscribe((value) => this.value.next(value));
123
- this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);
124
- if (!this.localeService) {
125
- this.initDefaultParams();
126
- }
127
- this.value
128
- .pipe(distinctUntilChanged(), filter(() => !this.isEmitValueByEnterEnabled()), debounceTime(this.emitValueTimeout()), takeUntilDestroyed(this.destroyRef))
129
- .subscribe(this.emitValue);
211
+ // `value` predates the internal control and stays part of the public API: writes into it must
212
+ // still reach the field, and reads must still observe the current value. Both directions are
213
+ // guarded on the current value, so the pair cannot loop.
214
+ effect(() => {
215
+ const value = this.value();
216
+ untracked(() => {
217
+ if (this.control.value !== value) {
218
+ this.control.setValue(value);
219
+ }
220
+ });
221
+ });
222
+ this.control.valueChanges.pipe(takeUntilDestroyed()).subscribe((value) => this.value.set(value));
223
+ this.control.valueChanges
224
+ .pipe(filter(() => !this.isEmitValueByEnterEnabled()),
225
+ // No `distinctUntilChanged()` here: it remembers what the *field* last held, which a
226
+ // programmatic write (`emitEvent: false`) and a close silently invalidate — retyping the
227
+ // value the model was just reset from would then be swallowed forever. `emitValue` guards
228
+ // on the last value actually handed to the consumer, which every path keeps in sync.
229
+ //
230
+ // `switchMap` over a `timer` rather than `debounceTime`: the timeout is read per value, so
231
+ // `[emitValueTimeout]` keeps working after Angular has set the inputs, and `takeUntil` lets
232
+ // an explicit emission (Enter, close) drop a pending one that would otherwise land
233
+ // afterwards and overwrite the value that was just emitted.
234
+ switchMap((value) => timer(this.emitValueTimeout()).pipe(map(() => value), takeUntil(this.cancelPendingEmit))), takeUntilDestroyed(this.destroyRef))
235
+ .subscribe((value) => this.emitValue(value));
130
236
  }
131
237
  ngAfterViewInit() {
132
238
  this.runFocusMonitor();
133
- this.button.changes
134
- .pipe(filter((queryList) => queryList.length), map((queryList) => queryList.first), takeUntilDestroyed(this.destroyRef))
135
- .subscribe((button) => {
136
- const tooltip = this.tooltip();
137
- if (tooltip) {
138
- tooltip.disabled = true;
139
- }
140
- this.focusMonitor.focusVia(button.elementRef.nativeElement, this.lastFocusOrigin);
141
- if (tooltip) {
142
- // Back to what the template binds, not `false`.
143
- tooltip.disabled = this.disabled;
144
- }
145
- });
146
- this.input.changes
147
- .pipe(filter((queryList) => queryList.length), map((queryList) => queryList.first), takeUntilDestroyed(this.destroyRef))
148
- .subscribe((input) => {
239
+ // The first render is a page load rather than an expand or a collapse, so it only seeds what
240
+ // the focus handoffs below compare against.
241
+ this.inputRendered = !!this.input();
242
+ this.buttonRendered = !!this.button();
243
+ // When the component starts opened (e.g. a seeded formControl value), the input is present on
244
+ // first render and no expand follows to consume the flag — clear it so later user-initiated
245
+ // opens focus the input as usual.
246
+ this.suppressInputFocus = false;
247
+ }
248
+ /**
249
+ * Focus handoffs: the input takes focus when the field expands, the collapsed button takes it back
250
+ * when the field closes.
251
+ *
252
+ * This runs from `ngAfterViewChecked` rather than from an `effect()` on the queries, because view
253
+ * effects are flushed *before* view queries are refreshed within a change detection pass — an
254
+ * effect would always move focus one pass late.
255
+ *
256
+ * @docs-private
257
+ */
258
+ ngAfterViewChecked() {
259
+ const inputControl = this.input();
260
+ const toggleButton = this.button();
261
+ const inputWasRendered = this.inputRendered;
262
+ const buttonWasRendered = this.buttonRendered;
263
+ this.inputRendered = !!inputControl;
264
+ this.buttonRendered = !!toggleButton;
265
+ if (toggleButton && !buttonWasRendered) {
266
+ this.restoreFocusToButton(toggleButton);
267
+ }
268
+ if (inputControl && !inputWasRendered) {
149
269
  if (this.suppressInputFocus) {
150
270
  this.suppressInputFocus = false;
151
271
  }
152
272
  else {
153
- input.focus();
273
+ inputControl.focus();
154
274
  }
155
- });
156
- // When the component starts opened (e.g. a seeded formControl value), the input is present on
157
- // first render and `input.changes` never fires to consume the flag — clear it so later
158
- // user-initiated opens focus the input as usual.
159
- if (this.input.length) {
160
- this.suppressInputFocus = false;
161
275
  }
162
276
  }
163
277
  ngOnDestroy() {
@@ -173,7 +287,22 @@ class KbqSearchExpandable {
173
287
  }
174
288
  /** Implemented as part of ControlValueAccessor. */
175
289
  writeValue(value) {
176
- this.value.next(value || defaultValue);
290
+ untracked(() => this.applyValue(value));
291
+ }
292
+ /** Body of `writeValue()`. */
293
+ applyValue(value) {
294
+ const nextValue = value || defaultValue;
295
+ // The model supersedes whatever the user was typing: without this, an emission scheduled by the
296
+ // keystrokes that preceded the write lands afterwards and puts the replaced query back.
297
+ this.cancelPendingEmit.next();
298
+ // The consumer's model is the source of truth on this path: recording it keeps `emitValue` from
299
+ // re-emitting a value the model already holds, and lets it emit a value the user retypes after
300
+ // the model was changed from the outside.
301
+ this.lastEmittedValue = nextValue;
302
+ // `emitEvent: false` keeps a programmatic write out of the debounced pipeline — feeding it back
303
+ // through `onChange` would mark the consumer's control dirty and double-fire its `valueChanges`.
304
+ this.control.setValue(nextValue, { emitEvent: false });
305
+ this.value.set(nextValue);
177
306
  // Expand automatically when the model already holds a value, without stealing focus —
178
307
  // unless focus is already inside the component (e.g. on the collapsed toggle button
179
308
  // that's about to be removed from the DOM), in which case let it move to the input.
@@ -187,10 +316,41 @@ class KbqSearchExpandable {
187
316
  this.disabled = isDisabled;
188
317
  }
189
318
  toggle() {
190
- if (this.disabled)
319
+ // Untracked, as `writeValue()` and the `disabled` setter: called from a consumer's `effect()`, the state read
320
+ // on the way — `isOpened`, `disabled`, the tooltip — would make the effect run again on every open and close.
321
+ untracked(() => {
322
+ if (this.disabled)
323
+ return;
324
+ this.tooltip()?.hide();
325
+ this.setOpened(!this.isOpened);
326
+ });
327
+ }
328
+ /**
329
+ * Emits the typed value straight away when `isEmitValueByEnterEnabled` is set — the only path that
330
+ * emits in that mode, since the debounced pipeline is filtered out.
331
+ *
332
+ * @docs-private
333
+ */
334
+ onEnter(event) {
335
+ if (!this.isEmitValueByEnterEnabled())
191
336
  return;
192
- this.tooltip()?.hide();
193
- this.setOpened(!this.isOpened);
337
+ // Angular calls `preventDefault()` only for a handler that returns literal `false`, so without this
338
+ // an Enter inside a native `<form>` would submit it on top of the emission it has just made.
339
+ event.preventDefault();
340
+ this.cancelPendingEmit.next();
341
+ this.emitValue(this.control.value);
342
+ }
343
+ /**
344
+ * Collapses the field on `Escape`. On `keydown` and spent, so that a container closing on the key, such as a
345
+ * modal, stays open.
346
+ *
347
+ * @internal
348
+ */
349
+ onEscape(event) {
350
+ if (this.disabled || !this.isOpened)
351
+ return;
352
+ event.preventDefault();
353
+ this.toggle();
194
354
  }
195
355
  setOpened(open) {
196
356
  if (this.disabled || this.isOpened === open)
@@ -199,31 +359,50 @@ class KbqSearchExpandable {
199
359
  if (!open) {
200
360
  // Never let a stale suppress-flag survive a close.
201
361
  this.suppressInputFocus = false;
202
- this.value.next(defaultValue);
362
+ // An emission scheduled by the keystrokes that preceded the close would put the discarded
363
+ // query back into the bound control right after the reset.
364
+ this.cancelPendingEmit.next();
365
+ // `emitEvent: false`: the reset reaches the consumer through the forced emit below, so
366
+ // routing it through the debounce as well would only schedule a redundant no-op emission.
367
+ this.control.setValue(defaultValue, { emitEvent: false });
368
+ this.value.set(defaultValue);
203
369
  // Force the emit — closing must always synchronize the bound control to the reset
204
370
  // value, rather than relying on the debounce to eventually settle (it can be raced
205
371
  // by a value pushed just before close, silently leaving the control at a stale value).
206
372
  this.emitValue(defaultValue, true);
207
373
  }
208
374
  this.isOpenedChange.emit(this.isOpened);
209
- // Ensure the OnPush view re-renders for callers that mutate isOpened from outside this
210
- // component's own template (e.g. a parent-owned button), whose click marks the parent —
211
- // not this component — dirty.
212
- this.changeDetectorRef.markForCheck();
213
375
  }
214
- initDefaultParams() {
215
- this.configuration = KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION;
376
+ /** Moves focus back onto the collapsed button, keeping its tooltip from opening on the way. */
377
+ restoreFocusToButton(button) {
378
+ const tooltip = this.tooltip();
379
+ if (tooltip) {
380
+ tooltip.disabled = true;
381
+ }
382
+ this.focusMonitor.focusVia(button.elementRef.nativeElement, this.lastFocusOrigin);
383
+ if (tooltip) {
384
+ // Back to what the template binds, not `false`.
385
+ tooltip.disabled = this.disabled;
386
+ }
216
387
  }
217
388
  runFocusMonitor() {
218
- this.focusMonitor.monitor(this.nativeElement, true).subscribe((origin) => (this.lastFocusOrigin = origin));
389
+ // `FocusMonitor.monitor()` hands back the same subject for an already-monitored element, so a
390
+ // second subscription would double every notification; a disabled component is not monitored.
391
+ if (this.disabled || this.focusMonitorSubscription)
392
+ return;
393
+ this.focusMonitorSubscription = this.focusMonitor
394
+ .monitor(this.nativeElement, true)
395
+ .subscribe((origin) => (this.lastFocusOrigin = origin));
219
396
  }
220
397
  stopFocusMonitor() {
398
+ this.focusMonitorSubscription?.unsubscribe();
399
+ this.focusMonitorSubscription = null;
221
400
  this.focusMonitor.stopMonitoring(this.nativeElement);
222
401
  }
223
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
224
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.30", type: KbqSearchExpandable, isStandalone: true, selector: "kbq-search-expandable", inputs: { isOpened: { classPropertyName: "isOpened", publicName: "isOpened", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isEmitValueByEnterEnabled: { classPropertyName: "isEmitValueByEnterEnabled", publicName: "isEmitValueByEnterEnabled", isSignal: true, isRequired: false, transformFunction: null }, emitValueTimeout: { classPropertyName: "emitValueTimeout", publicName: "emitValueTimeout", isSignal: true, isRequired: false, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, tabIndex: { classPropertyName: "tabIndex", publicName: "tabIndex", isSignal: false, isRequired: false, transformFunction: numberAttribute } }, outputs: { isOpenedChange: "isOpenedChange" }, host: { properties: { "class.kbq-search-expandable_opened": "isOpened" }, classAttribute: "kbq-search-expandable" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }, { propertyName: "input", predicate: KbqInput, descendants: true }, { propertyName: "button", predicate: KbqButton, descendants: true }], ngImport: i0, template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-size-xxs);height:var(--kbq-size-xxl)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i1.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i1.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i2.KbqIcon, selector: "[kbq-icon]", inputs: ["small", "autoColor", "kbq-icon"] }, { kind: "component", type: i2.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["size", "small", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i4.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i4.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i4.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i4.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i6.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqTooltipScrollStrategy", "forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "hideWithTimeout", "kbqVisible", "kbqPlacement", "kbqRelativeToPointer", "kbqPlacementPriority", "kbqTooltip", "kbqTooltipDisabled", "kbqEnterDelay", "kbqLeaveDelay", "kbqTrigger", "kbqTooltipClass", "kbqTooltipContext", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipModifier", "kbqTooltipHeader"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
402
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
403
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: KbqSearchExpandable, isStandalone: true, selector: "kbq-search-expandable", inputs: { isEmitValueByEnterEnabled: { classPropertyName: "isEmitValueByEnterEnabled", publicName: "isEmitValueByEnterEnabled", isSignal: true, isRequired: false, transformFunction: null }, emitValueTimeout: { classPropertyName: "emitValueTimeout", publicName: "emitValueTimeout", isSignal: true, isRequired: false, transformFunction: null }, isOpenedInput: { classPropertyName: "isOpenedInput", publicName: "isOpened", isSignal: true, isRequired: false, transformFunction: null }, tooltipTextInput: { classPropertyName: "tooltipTextInput", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, placeholderInput: { classPropertyName: "placeholderInput", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabIndexInput: { classPropertyName: "tabIndexInput", publicName: "tabIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpenedChange: "isOpenedChange" }, host: { properties: { "class.kbq-search-expandable_opened": "isOpened" }, classAttribute: "kbq-search-expandable" }, viewQueries: [{ propertyName: "input", first: true, predicate: KbqInput, descendants: true, isSignal: true }, { propertyName: "button", first: true, predicate: KbqButton, descendants: true, isSignal: true }, { propertyName: "tooltip", first: true, predicate: KbqTooltipTrigger, descendants: true, isSignal: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.KbqLocaleOverridesDirective, inputs: ["kbqLocaleOverrides", "localeOverrides"] }], ngImport: i0, template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [attr.aria-label]=\"tooltipText\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i [kbq-icon]=\"searchIconName\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix [kbq-icon]=\"searchIconName\"></i>\n\n <input\n kbqInput\n type=\"text\"\n autocomplete=\"off\"\n [attr.aria-label]=\"placeholder\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [errorStateMatcher]=\"errorStateMatcher\"\n (blur)=\"onTouch()\"\n (keydown.escape)=\"onEscape($event)\"\n (keydown.enter)=\"onEnter($event)\"\n />\n\n <button\n type=\"button\"\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [attr.aria-label]=\"a11yLocaleConfiguration().close\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n ></button>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-search-expandable-close-button-border-radius)}@supports (corner-shape: squircle){.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{corner-shape:squircle;border-radius:clamp(var(--kbq-search-expandable-close-button-border-radius) * 1.85,var(--kbq-search-expandable-close-button-border-radius) * 2.3 - 3.6px,var(--kbq-search-expandable-close-button-border-radius) * 2)}}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{height:var(--kbq-search-expandable-close-button-size)}\n", ":where(.kbq-search-expandable){--kbq-search-expandable-close-button-size: var(--kbq-size-xxl);--kbq-search-expandable-close-button-border-radius: var(--kbq-size-xxs)}\n"], dependencies: [{ kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["kbqStyle", "disabled", "tabIndex"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqIconModule }, { kind: "component", type: i3.KbqIcon, selector: "[kbq-icon]", inputs: ["aria-hidden", "iconSize", "autoColor", "kbq-icon"] }, { kind: "component", type: i3.KbqIconButton, selector: "[kbq-icon-button]", inputs: ["size", "kbq-icon-button", "tabindex", "disabled"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i4.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "component", type: i5.KbqFormField, selector: "kbq-form-field", inputs: ["noBorders", "inOverlay", "horizontal", "labelClass", "contentClass"], outputs: ["inOverlayChange"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i5.KbqPrefix, selector: "[kbqPrefix]", exportAs: ["kbqPrefix"] }, { kind: "directive", type: i5.KbqSuffix, selector: "[kbqSuffix]", exportAs: ["kbqSuffix"] }, { kind: "directive", type: i5.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqToolTipModule }, { kind: "directive", type: i7.KbqTooltipTrigger, selector: "[kbqTooltip]", inputs: ["kbqTooltipScrollStrategy", "forDisabledComponent", "ignoreTooltipPointerEvents", "kbqTooltipSingleInstance", "kbqTrigger", "hideWithTimeout", "kbqEnterDelay", "kbqLeaveDelay", "kbqRelativeToPointer", "kbqRelativeToCaret", "kbqRelativeToCaretVertical", "kbqTooltip", "kbqTooltipHeader", "kbqTooltipModifier", "kbqTooltipContext", "kbqTooltipClass", "kbqTooltipColor", "kbqTooltipArrow", "kbqTooltipOffset", "kbqTooltipDisabled", "kbqPlacementPriority", "kbqPlacement", "kbqVisible"], outputs: ["kbqPlacementChange", "kbqVisibleChange"], exportAs: ["kbqTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
225
404
  }
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandable, decorators: [{
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandable, decorators: [{
227
406
  type: Component,
228
407
  args: [{ selector: 'kbq-search-expandable', imports: [
229
408
  KbqButtonModule,
@@ -235,34 +414,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
235
414
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
236
415
  class: 'kbq-search-expandable',
237
416
  '[class.kbq-search-expandable_opened]': 'isOpened'
238
- }, template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i kbq-icon=\"kbq-magnifying-glass_16\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n\n <input\n kbqInput\n name=\"value\"\n type=\"text\"\n autocomplete=\"off\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"$any(ngControl?.control)\"\n (blur)=\"onTouch()\"\n (keyup.escape)=\"toggle()\"\n />\n\n <i\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n (keyup.enter)=\"toggle()\"\n ></i>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-size-xxs);height:var(--kbq-size-xxl)}\n"] }]
239
- }], ctorParameters: () => [], propDecorators: { input: [{
240
- type: ViewChildren,
241
- args: [KbqInput]
242
- }], button: [{
243
- type: ViewChildren,
244
- args: [KbqButton]
245
- }], tooltip: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqTooltipTrigger), { isSignal: true }] }], isOpened: [{
246
- type: Input,
247
- args: [{ transform: booleanAttribute }]
248
- }], isEmitValueByEnterEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isEmitValueByEnterEnabled", required: false }] }], emitValueTimeout: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitValueTimeout", required: false }] }], tooltipText: [{
249
- type: Input
250
- }], placeholder: [{
251
- type: Input
252
- }], disabled: [{
253
- type: Input,
254
- args: [{ transform: booleanAttribute }]
255
- }], tabIndex: [{
256
- type: Input,
257
- args: [{ transform: numberAttribute }]
258
- }], isOpenedChange: [{ type: i0.Output, args: ["isOpenedChange"] }] } });
417
+ }, hostDirectives: [
418
+ { directive: KbqLocaleOverridesDirective, inputs: ['kbqLocaleOverrides: localeOverrides'] }
419
+ ], template: "@if (!isOpened) {\n <button\n type=\"button\"\n kbq-button\n class=\"kbq-search-expandable__button\"\n [attr.aria-label]=\"tooltipText\"\n [kbqTooltip]=\"tooltipText\"\n [color]=\"'contrast'\"\n [kbqStyle]=\"'transparent'\"\n [kbqTooltipDisabled]=\"disabled\"\n [tabIndex]=\"tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n >\n <i [kbq-icon]=\"searchIconName\"></i>\n </button>\n} @else {\n <kbq-form-field class=\"kbq-search-expandable__search\">\n <i kbqPrefix [kbq-icon]=\"searchIconName\"></i>\n\n <input\n kbqInput\n type=\"text\"\n autocomplete=\"off\"\n [attr.aria-label]=\"placeholder\"\n [tabIndex]=\"tabIndex\"\n [placeholder]=\"placeholder\"\n [formControl]=\"control\"\n [errorStateMatcher]=\"errorStateMatcher\"\n (blur)=\"onTouch()\"\n (keydown.escape)=\"onEscape($event)\"\n (keydown.enter)=\"onEnter($event)\"\n />\n\n <button\n type=\"button\"\n kbqSuffix\n kbq-icon-button=\"kbq-circle-xmark_16\"\n [attr.aria-label]=\"a11yLocaleConfiguration().close\"\n [disabled]=\"disabled\"\n (click)=\"toggle()\"\n ></button>\n </kbq-form-field>\n}\n", styles: [".kbq-search-expandable{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start;min-width:0;min-height:0}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{display:flex;align-items:center;justify-content:center;border-radius:var(--kbq-search-expandable-close-button-border-radius)}@supports (corner-shape: squircle){.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{corner-shape:squircle;border-radius:clamp(var(--kbq-search-expandable-close-button-border-radius) * 1.85,var(--kbq-search-expandable-close-button-border-radius) * 2.3 - 3.6px,var(--kbq-search-expandable-close-button-border-radius) * 2)}}.kbq-search-expandable__search .kbq-icon-button.kbq-suffix{height:var(--kbq-search-expandable-close-button-size)}\n", ":where(.kbq-search-expandable){--kbq-search-expandable-close-button-size: var(--kbq-size-xxl);--kbq-search-expandable-close-button-border-radius: var(--kbq-size-xxs)}\n"] }]
420
+ }], ctorParameters: () => [], propDecorators: { input: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqInput), { isSignal: true }] }], button: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqButton), { isSignal: true }] }], tooltip: [{ type: i0.ViewChild, args: [i0.forwardRef(() => KbqTooltipTrigger), { isSignal: true }] }], isEmitValueByEnterEnabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "isEmitValueByEnterEnabled", required: false }] }], emitValueTimeout: [{ type: i0.Input, args: [{ isSignal: true, alias: "emitValueTimeout", required: false }] }], isOpenedChange: [{ type: i0.Output, args: ["isOpenedChange"] }], isOpenedInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "isOpened", required: false }] }], tooltipTextInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltipText", required: false }] }], placeholderInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], disabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabIndexInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabIndex", required: false }] }] } });
259
421
 
260
422
  class KbqSearchExpandableModule {
261
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
262
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandableModule, imports: [KbqSearchExpandable], exports: [KbqSearchExpandable] }); }
263
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandableModule, imports: [KbqSearchExpandable] }); }
423
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
424
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandableModule, imports: [KbqSearchExpandable], exports: [KbqSearchExpandable] }); }
425
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandableModule, imports: [KbqSearchExpandable] }); }
264
426
  }
265
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImport: i0, type: KbqSearchExpandableModule, decorators: [{
427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: KbqSearchExpandableModule, decorators: [{
266
428
  type: NgModule,
267
429
  args: [{
268
430
  imports: [
@@ -276,5 +438,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.30", ngImpo
276
438
  * Generated bundle index. Do not edit.
277
439
  */
278
440
 
279
- export { KBQ_SEARCH_EXPANDABLE_CONFIGURATION, KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION, KbqSearchExpandable, KbqSearchExpandableModule, defaultEmitValueTimeout, defaultValue };
441
+ export { KBQ_SEARCH_EXPANDABLE_CONFIGURATION, KBQ_SEARCH_EXPANDABLE_DEFAULT_CONFIGURATION, KBQ_SEARCH_EXPANDABLE_DEFAULT_LOCALE_CONFIGURATION, KBQ_SEARCH_EXPANDABLE_LOCALE_CONFIGURATION, KbqSearchExpandable, KbqSearchExpandableModule, defaultEmitValueTimeout, defaultValue, kbqSearchExpandableLocaleConfigurationProvider };
280
442
  //# sourceMappingURL=koobiq-components-search-expandable.mjs.map