@public-ui/components 4.5.0-rc.6 → 4.5.0-rc.8

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 (580) hide show
  1. package/assets/kolicons/kolicons.eot +0 -0
  2. package/assets/kolicons/kolicons.ttf +0 -0
  3. package/assets/kolicons/kolicons.woff +0 -0
  4. package/assets/kolicons/kolicons.woff2 +0 -0
  5. package/assets/kolicons/style.css +6 -6
  6. package/custom-elements.json +1 -2
  7. package/dist/cjs/{Heading-Bck3PFpH.js → Heading-yiwXjRrz.js} +3 -3
  8. package/dist/cjs/{Heading-Bck3PFpH.js.map → Heading-yiwXjRrz.js.map} +1 -1
  9. package/dist/cjs/{api-BcNl2vZm.js → api-BDT5xkx5.js} +8 -8
  10. package/dist/cjs/{api-BcNl2vZm.js.map → api-BDT5xkx5.js.map} +1 -1
  11. package/dist/cjs/{api-LP3gnw7U.js → api-BI1qXrGa.js} +12 -12
  12. package/dist/cjs/{api-LP3gnw7U.js.map → api-BI1qXrGa.js.map} +1 -1
  13. package/dist/cjs/{app-globals-oR-jEiju.js → app-globals-DPVGNVgE.js} +4 -4
  14. package/dist/cjs/{app-globals-oR-jEiju.js.map → app-globals-DPVGNVgE.js.map} +1 -1
  15. package/dist/cjs/{base-DbfvhKRa.js → base-B_M9Y7nD.js} +4 -4
  16. package/dist/cjs/{base-DbfvhKRa.js.map → base-B_M9Y7nD.js.map} +1 -1
  17. package/dist/cjs/{base-BDGmLWVj.js → base-CaQNXZrN.js} +5 -5
  18. package/dist/cjs/{base-BDGmLWVj.js.map → base-CaQNXZrN.js.map} +1 -1
  19. package/dist/cjs/{base-CwXJywKD.js → base-DlsemYqM.js} +4 -4
  20. package/dist/cjs/{base-CwXJywKD.js.map → base-DlsemYqM.js.map} +1 -1
  21. package/dist/cjs/{base-DaK2F3pq.js → base-FZ2Hemhr.js} +16 -16
  22. package/dist/cjs/{base-DaK2F3pq.js.map → base-FZ2Hemhr.js.map} +1 -1
  23. package/dist/cjs/{base-web-component-C8MLLGxi.js → base-web-component-BK8X1O8C.js} +16 -9
  24. package/dist/cjs/base-web-component-BK8X1O8C.js.map +1 -0
  25. package/dist/cjs/{base-web-component-mmgXJMg0.js → base-web-component-GLk66TOu.js} +7 -7
  26. package/dist/cjs/{base-web-component-mmgXJMg0.js.map → base-web-component-GLk66TOu.js.map} +1 -1
  27. package/dist/cjs/{behavior-DWqrO2yi.js → behavior-BEaXHesG.js} +3 -3
  28. package/dist/cjs/{behavior-DWqrO2yi.js.map → behavior-BEaXHesG.js.map} +1 -1
  29. package/dist/cjs/{color-C9UZwMvC.js → color-CZiNkZFM.js} +3 -3
  30. package/dist/cjs/{color-C9UZwMvC.js.map → color-CZiNkZFM.js.map} +1 -1
  31. package/dist/cjs/{component-ZPvcKmPR.js → component-3EZdZbDH.js} +3 -3
  32. package/dist/cjs/{component-ZPvcKmPR.js.map → component-3EZdZbDH.js.map} +1 -1
  33. package/dist/cjs/{component-DuPEYx7z.js → component-B96XYPtn.js} +4 -4
  34. package/dist/cjs/{component-DuPEYx7z.js.map → component-B96XYPtn.js.map} +1 -1
  35. package/dist/cjs/{component-uHDfV5D8.js → component-BUCx7i5o.js} +7 -7
  36. package/dist/cjs/{component-uHDfV5D8.js.map → component-BUCx7i5o.js.map} +1 -1
  37. package/dist/cjs/{component-DNDfYzXZ.js → component-Bc8fDajy.js} +5 -5
  38. package/dist/cjs/{component-DNDfYzXZ.js.map → component-Bc8fDajy.js.map} +1 -1
  39. package/dist/cjs/{component-CmvG-auD.js → component-Be3QHUyC.js} +3 -3
  40. package/dist/cjs/{component-CmvG-auD.js.map → component-Be3QHUyC.js.map} +1 -1
  41. package/dist/cjs/{component-BT86Nj6R.js → component-Bj4QdlXm.js} +5 -5
  42. package/dist/cjs/{component-BT86Nj6R.js.map → component-Bj4QdlXm.js.map} +1 -1
  43. package/dist/cjs/{component-xIM903qi.js → component-CAkixzEQ.js} +3 -3
  44. package/dist/cjs/{component-xIM903qi.js.map → component-CAkixzEQ.js.map} +1 -1
  45. package/dist/cjs/{component-1NrcvQzp.js → component-CPVFCnaN.js} +7 -7
  46. package/dist/cjs/{component-1NrcvQzp.js.map → component-CPVFCnaN.js.map} +1 -1
  47. package/dist/cjs/{component-o3s7XplI.js → component-Dd-PS3jp.js} +4 -4
  48. package/dist/cjs/{component-o3s7XplI.js.map → component-Dd-PS3jp.js.map} +1 -1
  49. package/dist/cjs/{component-CtNPdMS0.js → component-DjDOgcWW.js} +5 -5
  50. package/dist/cjs/{component-CtNPdMS0.js.map → component-DjDOgcWW.js.map} +1 -1
  51. package/dist/cjs/{component-X_thXnkE.js → component-Du98sklA.js} +3 -3
  52. package/dist/cjs/{component-X_thXnkE.js.map → component-Du98sklA.js.map} +1 -1
  53. package/dist/cjs/{component-GfDUM7Um.js → component-Dw6Tq7Wb.js} +4 -4
  54. package/dist/cjs/{component-GfDUM7Um.js.map → component-Dw6Tq7Wb.js.map} +1 -1
  55. package/dist/cjs/{contrast-kLMuDQLl.js → contrast-CrL_sMV6.js} +3 -12
  56. package/dist/cjs/contrast-CrL_sMV6.js.map +1 -0
  57. package/dist/cjs/{dev.utils-BjrG4FNf.js → dev.utils-DybQ4euF.js} +3 -3
  58. package/dist/cjs/{dev.utils-BjrG4FNf.js.map → dev.utils-DybQ4euF.js.map} +1 -1
  59. package/dist/cjs/{devtools-D_afWgpU.js → devtools-Bw5sQJOl.js} +4 -4
  60. package/dist/cjs/{devtools-D_afWgpU.js.map → devtools-Bw5sQJOl.js.map} +1 -1
  61. package/dist/cjs/{field-control-DAHkvYr4.js → field-control-4CnbMR0i.js} +8 -8
  62. package/dist/cjs/{field-control-DAHkvYr4.js.map → field-control-4CnbMR0i.js.map} +1 -1
  63. package/dist/cjs/{group-DHYxVn2x.js → group-BCkxYeMA.js} +5 -5
  64. package/dist/cjs/{group-DHYxVn2x.js.map → group-BCkxYeMA.js.map} +1 -1
  65. package/dist/cjs/{index-BnEus4Y9.js → index-RAfZF5x0.js} +3 -3
  66. package/dist/cjs/{index-BnEus4Y9.js.map → index-RAfZF5x0.js.map} +1 -1
  67. package/dist/cjs/{input-eDaEE80n.js → input-7t7ZvgAy.js} +5 -5
  68. package/dist/cjs/{input-eDaEE80n.js.map → input-7t7ZvgAy.js.map} +1 -1
  69. package/dist/cjs/{input-container-Cye4qL9S.js → input-container-BUK2Fp_t.js} +7 -7
  70. package/dist/cjs/{input-container-Cye4qL9S.js.map → input-container-BUK2Fp_t.js.map} +1 -1
  71. package/dist/cjs/{item-Dflr47KV.js → item-BInO5rWQ.js} +8 -8
  72. package/dist/cjs/{item-Dflr47KV.js.map → item-BInO5rWQ.js.map} +1 -1
  73. package/dist/cjs/{item-BSdQbEav.js → item-D8Zz2ROC.js} +3 -3
  74. package/dist/cjs/{item-BSdQbEav.js.map → item-D8Zz2ROC.js.map} +1 -1
  75. package/dist/cjs/{item-C0yzJQUg.js → item-DO176juh.js} +4 -4
  76. package/dist/cjs/{item-C0yzJQUg.js.map → item-DO176juh.js.map} +1 -1
  77. package/dist/cjs/{item-wz0gBnmK.js → item-K1SS6pAu.js} +4 -4
  78. package/dist/cjs/{item-wz0gBnmK.js.map → item-K1SS6pAu.js.map} +1 -1
  79. package/dist/cjs/kol-abbr.cjs.entry.js +2 -2
  80. package/dist/cjs/kol-accordion.cjs.entry.js +7 -7
  81. package/dist/cjs/kol-alert.cjs.entry.js +11 -11
  82. package/dist/cjs/kol-avatar.cjs.entry.js +3 -3
  83. package/dist/cjs/kol-badge.cjs.entry.js +12 -12
  84. package/dist/cjs/kol-breadcrumb.cjs.entry.js +9 -9
  85. package/dist/cjs/kol-button-link.cjs.entry.js +10 -10
  86. package/dist/cjs/kol-button.cjs.entry.js +10 -10
  87. package/dist/cjs/kol-card.cjs.entry.js +11 -11
  88. package/dist/cjs/kol-click-button.cjs.entry.js +2 -2
  89. package/dist/cjs/kol-combobox.cjs.entry.js +18 -18
  90. package/dist/cjs/kol-details.cjs.entry.js +7 -7
  91. package/dist/cjs/kol-dialog.cjs.entry.js +13 -13
  92. package/dist/cjs/kol-drawer.cjs.entry.js +12 -12
  93. package/dist/cjs/kol-form.cjs.entry.js +12 -12
  94. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  95. package/dist/cjs/kol-icon.cjs.entry.js +3 -3
  96. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  97. package/dist/cjs/kol-input-checkbox.cjs.entry.js +17 -17
  98. package/dist/cjs/kol-input-color.cjs.entry.js +18 -18
  99. package/dist/cjs/kol-input-date.cjs.entry.js +18 -18
  100. package/dist/cjs/kol-input-email.cjs.entry.js +20 -20
  101. package/dist/cjs/kol-input-file.cjs.entry.js +17 -17
  102. package/dist/cjs/kol-input-number.cjs.entry.js +18 -18
  103. package/dist/cjs/kol-input-password.cjs.entry.js +22 -22
  104. package/dist/cjs/kol-input-password.entry.cjs.js.map +1 -1
  105. package/dist/cjs/kol-input-radio.cjs.entry.js +17 -17
  106. package/dist/cjs/kol-input-range.cjs.entry.js +18 -18
  107. package/dist/cjs/kol-input-text.cjs.entry.js +20 -20
  108. package/dist/cjs/kol-kolibri.cjs.entry.js +2 -2
  109. package/dist/cjs/kol-link-button.cjs.entry.js +10 -10
  110. package/dist/cjs/kol-link.cjs.entry.js +10 -10
  111. package/dist/cjs/kol-meter.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-modal.cjs.entry.js +13 -13
  113. package/dist/cjs/kol-nav.cjs.entry.js +13 -13
  114. package/dist/cjs/kol-pagination.cjs.entry.js +18 -18
  115. package/dist/cjs/kol-popover-button.cjs.entry.js +12 -13
  116. package/dist/cjs/kol-popover-button.entry.cjs.js.map +1 -1
  117. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  118. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  119. package/dist/cjs/kol-select.cjs.entry.js +17 -17
  120. package/dist/cjs/kol-single-select.cjs.entry.js +18 -18
  121. package/dist/cjs/kol-skeleton.cjs.entry.js +2 -2
  122. package/dist/cjs/kol-skip-nav.cjs.entry.js +9 -9
  123. package/dist/cjs/kol-spin.cjs.entry.js +3 -3
  124. package/dist/cjs/kol-split-button.cjs.entry.js +12 -12
  125. package/dist/cjs/kol-table-stateful.cjs.entry.js +25 -25
  126. package/dist/cjs/kol-table-stateless.cjs.entry.js +19 -19
  127. package/dist/cjs/kol-tabs.cjs.entry.js +9 -9
  128. package/dist/cjs/kol-textarea.cjs.entry.js +20 -20
  129. package/dist/cjs/kol-textarea.entry.cjs.js.map +1 -1
  130. package/dist/cjs/kol-toast-container.cjs.entry.js +11 -11
  131. package/dist/cjs/kol-toolbar.cjs.entry.js +33 -14
  132. package/dist/cjs/kol-toolbar.entry.cjs.js.map +1 -1
  133. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +4 -4
  134. package/dist/cjs/kol-tree-item.cjs.entry.js +9 -9
  135. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  136. package/dist/cjs/kol-version.cjs.entry.js +10 -10
  137. package/dist/cjs/kolibri.cjs.js +2 -2
  138. package/dist/cjs/loader.cjs.js +2 -2
  139. package/dist/cjs/{resolve-props-DOU1VJNL.js → resolve-props-BBVQo_N5.js} +3 -3
  140. package/dist/cjs/{resolve-props-DOU1VJNL.js.map → resolve-props-BBVQo_N5.js.map} +1 -1
  141. package/dist/cjs/{scroll-lock-C6dUw4on.js → scroll-lock-zJbOf1Xr.js} +3 -3
  142. package/dist/cjs/{scroll-lock-C6dUw4on.js.map → scroll-lock-zJbOf1Xr.js.map} +1 -1
  143. package/dist/cjs/{suggestions-0hcm13gT.js → suggestions-quLXODgi.js} +4 -4
  144. package/dist/cjs/{suggestions-0hcm13gT.js.map → suggestions-quLXODgi.js.map} +1 -1
  145. package/dist/cjs/test-component.cjs.entry.js +1 -1
  146. package/dist/cjs/{toggle-handler-kOflG5om.js → toggle-handler-CENFGRWT.js} +5 -5
  147. package/dist/cjs/{toggle-handler-kOflG5om.js.map → toggle-handler-CENFGRWT.js.map} +1 -1
  148. package/dist/collection/components/accordion/style.css +2 -2
  149. package/dist/collection/components/alert/style.css +2 -2
  150. package/dist/collection/components/badge/style.css +2 -2
  151. package/dist/collection/components/breadcrumb/style.css +2 -2
  152. package/dist/collection/components/button/style.css +2 -2
  153. package/dist/collection/components/button-link/style.css +2 -2
  154. package/dist/collection/components/card/style.css +2 -2
  155. package/dist/collection/components/combobox/style.css +2 -2
  156. package/dist/collection/components/details/style.css +2 -2
  157. package/dist/collection/components/dialog/style.css +2 -2
  158. package/dist/collection/components/drawer/style.css +2 -2
  159. package/dist/collection/components/form/style.css +2 -2
  160. package/dist/collection/components/icon/style.css +2 -2
  161. package/dist/collection/components/input-checkbox/style.css +2 -2
  162. package/dist/collection/components/input-color/style.css +2 -2
  163. package/dist/collection/components/input-date/style.css +2 -2
  164. package/dist/collection/components/input-email/style.css +2 -2
  165. package/dist/collection/components/input-file/style.css +2 -2
  166. package/dist/collection/components/input-number/style.css +2 -2
  167. package/dist/collection/components/input-password/component.js +2 -2
  168. package/dist/collection/components/input-password/component.js.map +1 -1
  169. package/dist/collection/components/input-password/style.css +2 -2
  170. package/dist/collection/components/input-radio/style.css +2 -2
  171. package/dist/collection/components/input-range/style.css +2 -2
  172. package/dist/collection/components/input-text/style.css +2 -2
  173. package/dist/collection/components/link/style.css +2 -2
  174. package/dist/collection/components/link-button/style.css +2 -2
  175. package/dist/collection/components/modal/style.css +2 -2
  176. package/dist/collection/components/nav/style.css +2 -2
  177. package/dist/collection/components/pagination/style.css +2 -2
  178. package/dist/collection/components/popover-button/component.js +2 -4
  179. package/dist/collection/components/popover-button/component.js.map +1 -1
  180. package/dist/collection/components/popover-button/style.css +2 -2
  181. package/dist/collection/components/select/style.css +2 -2
  182. package/dist/collection/components/single-select/style.css +2 -2
  183. package/dist/collection/components/skip-nav/style.css +2 -2
  184. package/dist/collection/components/split-button/style.css +2 -2
  185. package/dist/collection/components/table-stateful/style.css +2 -2
  186. package/dist/collection/components/table-stateless/style.css +2 -2
  187. package/dist/collection/components/tabs/style.css +2 -2
  188. package/dist/collection/components/textarea/component.js +3 -3
  189. package/dist/collection/components/textarea/component.js.map +1 -1
  190. package/dist/collection/components/textarea/style.css +2 -2
  191. package/dist/collection/components/toaster/style.css +2 -2
  192. package/dist/collection/components/toolbar/component.js +1 -1
  193. package/dist/collection/components/toolbar/component.js.map +1 -1
  194. package/dist/collection/components/toolbar/style.css +9 -3
  195. package/dist/collection/components/tree-item/style.css +2 -2
  196. package/dist/collection/components/version/style.css +2 -2
  197. package/dist/collection/internal/functional-components/form-field/select-value.js +3 -1
  198. package/dist/collection/internal/functional-components/form-field/select-value.js.map +1 -1
  199. package/dist/collection/internal/functional-components/form-field/select.js +8 -3
  200. package/dist/collection/internal/functional-components/form-field/select.js.map +1 -1
  201. package/dist/collection/internal/functional-components/form-field/select.test.js +88 -0
  202. package/dist/collection/internal/functional-components/form-field/select.test.js.map +1 -1
  203. package/dist/collection/internal/functional-components/form-field/textarea.js.map +1 -1
  204. package/dist/collection/internal/functional-components/toolbar/api.js.map +1 -1
  205. package/dist/collection/internal/functional-components/toolbar/component.js +1 -1
  206. package/dist/collection/internal/functional-components/toolbar/component.js.map +1 -1
  207. package/dist/collection/internal/functional-components/toolbar/item.js +20 -1
  208. package/dist/collection/internal/functional-components/toolbar/item.js.map +1 -1
  209. package/dist/collection/schema/props/toolbar-items.js.map +1 -1
  210. package/dist/collection/schema/utils/contrast.js +2 -10
  211. package/dist/collection/schema/utils/contrast.js.map +1 -1
  212. package/dist/components/base-web-component4.js +11 -4
  213. package/dist/components/base-web-component4.js.map +1 -1
  214. package/dist/components/contrast.js +1 -10
  215. package/dist/components/contrast.js.map +1 -1
  216. package/dist/components/kol-accordion.js +1 -1
  217. package/dist/components/kol-alert.js +1 -1
  218. package/dist/components/kol-badge.js +1 -1
  219. package/dist/components/kol-breadcrumb.js +1 -1
  220. package/dist/components/kol-button-link.js +1 -1
  221. package/dist/components/kol-button.js +1 -1
  222. package/dist/components/kol-card.js +1 -1
  223. package/dist/components/kol-combobox.js +1 -1
  224. package/dist/components/kol-details.js +1 -1
  225. package/dist/components/kol-dialog.js +1 -1
  226. package/dist/components/kol-drawer.js +1 -1
  227. package/dist/components/kol-form.js +1 -1
  228. package/dist/components/kol-icon.js +1 -1
  229. package/dist/components/kol-input-checkbox.js +1 -1
  230. package/dist/components/kol-input-color.js +1 -1
  231. package/dist/components/kol-input-date.js +1 -1
  232. package/dist/components/kol-input-email.js +1 -1
  233. package/dist/components/kol-input-file.js +1 -1
  234. package/dist/components/kol-input-number.js +1 -1
  235. package/dist/components/kol-input-password.js +3 -3
  236. package/dist/components/kol-input-password.js.map +1 -1
  237. package/dist/components/kol-input-radio.js +1 -1
  238. package/dist/components/kol-input-range.js +1 -1
  239. package/dist/components/kol-input-text.js +1 -1
  240. package/dist/components/kol-link-button.js +1 -1
  241. package/dist/components/kol-link.js +1 -1
  242. package/dist/components/kol-modal.js +1 -1
  243. package/dist/components/kol-nav.js +1 -1
  244. package/dist/components/kol-pagination.js +1 -1
  245. package/dist/components/kol-popover-button.js +2 -3
  246. package/dist/components/kol-popover-button.js.map +1 -1
  247. package/dist/components/kol-select.js +1 -1
  248. package/dist/components/kol-single-select.js +1 -1
  249. package/dist/components/kol-skip-nav.js +1 -1
  250. package/dist/components/kol-split-button.js +1 -1
  251. package/dist/components/kol-table-stateful.js +1 -1
  252. package/dist/components/kol-table-stateless.js +1 -1
  253. package/dist/components/kol-tabs.js +1 -1
  254. package/dist/components/kol-textarea.js +4 -4
  255. package/dist/components/kol-textarea.js.map +1 -1
  256. package/dist/components/kol-toast-container.js +1 -1
  257. package/dist/components/kol-toolbar.js +23 -4
  258. package/dist/components/kol-toolbar.js.map +1 -1
  259. package/dist/components/kol-tree-item.js +1 -1
  260. package/dist/components/kol-version.js +1 -1
  261. package/dist/esm/{Heading-DXl16qig.js → Heading-BctDgC7M.js} +3 -3
  262. package/dist/esm/{Heading-DXl16qig.js.map → Heading-BctDgC7M.js.map} +1 -1
  263. package/dist/esm/{api-C8TfIYlY.js → api-B6fEjFVl.js} +12 -12
  264. package/dist/{kolibri/api-C8TfIYlY.js.map → esm/api-B6fEjFVl.js.map} +1 -1
  265. package/dist/esm/{api-BA-AFr5H.js → api-T-JuZMlj.js} +8 -8
  266. package/dist/esm/{api-BA-AFr5H.js.map → api-T-JuZMlj.js.map} +1 -1
  267. package/dist/esm/{app-globals-lFdBwFG2.js → app-globals-CvvWI2x9.js} +4 -4
  268. package/dist/esm/{app-globals-lFdBwFG2.js.map → app-globals-CvvWI2x9.js.map} +1 -1
  269. package/dist/esm/{base-DiSQvfGU.js → base-BARjFMg1.js} +5 -5
  270. package/dist/esm/{base-DiSQvfGU.js.map → base-BARjFMg1.js.map} +1 -1
  271. package/dist/esm/{base-D8GcFhvD.js → base-BbVXW6YI.js} +4 -4
  272. package/dist/{kolibri/base-D8GcFhvD.js.map → esm/base-BbVXW6YI.js.map} +1 -1
  273. package/dist/esm/{base-B5F8ROuQ.js → base-D8yYjJsn.js} +4 -4
  274. package/dist/esm/{base-B5F8ROuQ.js.map → base-D8yYjJsn.js.map} +1 -1
  275. package/dist/esm/{base-BpqjfzG1.js → base-Dvr4F_Pr.js} +16 -16
  276. package/dist/{kolibri/base-BpqjfzG1.js.map → esm/base-Dvr4F_Pr.js.map} +1 -1
  277. package/dist/esm/{base-web-component-CkaKv7O0.js → base-web-component-BzB5tP9s.js} +16 -9
  278. package/dist/esm/base-web-component-BzB5tP9s.js.map +1 -0
  279. package/dist/esm/{base-web-component-BozlJoj7.js → base-web-component-DU3hnIWD.js} +7 -7
  280. package/dist/esm/{base-web-component-BozlJoj7.js.map → base-web-component-DU3hnIWD.js.map} +1 -1
  281. package/dist/esm/{behavior-BuNqmjz8.js → behavior-CbqCHL6O.js} +3 -3
  282. package/dist/esm/{behavior-BuNqmjz8.js.map → behavior-CbqCHL6O.js.map} +1 -1
  283. package/dist/esm/{color-Du3Ft0XV.js → color-QYuhlVFz.js} +3 -3
  284. package/dist/esm/{color-Du3Ft0XV.js.map → color-QYuhlVFz.js.map} +1 -1
  285. package/dist/esm/{component-Da5dJMKj.js → component-BaD1OTyv.js} +5 -5
  286. package/dist/{kolibri/component-Da5dJMKj.js.map → esm/component-BaD1OTyv.js.map} +1 -1
  287. package/dist/esm/{component-DD5QqT5m.js → component-BjWF1SyZ.js} +7 -7
  288. package/dist/esm/{component-DD5QqT5m.js.map → component-BjWF1SyZ.js.map} +1 -1
  289. package/dist/esm/{component-Bd7PXqOG.js → component-Ch6fss2f.js} +5 -5
  290. package/dist/esm/{component-Bd7PXqOG.js.map → component-Ch6fss2f.js.map} +1 -1
  291. package/dist/esm/{component-C3aqLFK2.js → component-CmBM-Y1C.js} +7 -7
  292. package/dist/esm/{component-C3aqLFK2.js.map → component-CmBM-Y1C.js.map} +1 -1
  293. package/dist/esm/{component-xrrwVuiI.js → component-CvhmYY4a.js} +4 -4
  294. package/dist/esm/{component-xrrwVuiI.js.map → component-CvhmYY4a.js.map} +1 -1
  295. package/dist/esm/{component-De6Do_gt.js → component-D0iTurA_.js} +3 -3
  296. package/dist/esm/{component-De6Do_gt.js.map → component-D0iTurA_.js.map} +1 -1
  297. package/dist/esm/{component-BjH8s4-t.js → component-DKS73hKY.js} +3 -3
  298. package/dist/{kolibri/component-BjH8s4-t.js.map → esm/component-DKS73hKY.js.map} +1 -1
  299. package/dist/esm/{component-BxKN0JbT.js → component-DhBTawyT.js} +3 -3
  300. package/dist/esm/{component-BxKN0JbT.js.map → component-DhBTawyT.js.map} +1 -1
  301. package/dist/esm/{component-CWGVLsSH.js → component-G9vQ1mQA.js} +4 -4
  302. package/dist/{kolibri/component-CWGVLsSH.js.map → esm/component-G9vQ1mQA.js.map} +1 -1
  303. package/dist/esm/{component-D_58mw87.js → component-QCFfSS76.js} +4 -4
  304. package/dist/{kolibri/component-D_58mw87.js.map → esm/component-QCFfSS76.js.map} +1 -1
  305. package/dist/esm/{component-BKOep2WQ.js → component-d1d-AIsY.js} +5 -5
  306. package/dist/{kolibri/component-BKOep2WQ.js.map → esm/component-d1d-AIsY.js.map} +1 -1
  307. package/dist/esm/{component-C9DexidK.js → component-sf_0WjJF.js} +3 -3
  308. package/dist/esm/{component-C9DexidK.js.map → component-sf_0WjJF.js.map} +1 -1
  309. package/dist/esm/{contrast-BKAJJL2K.js → contrast-DMN9saXP.js} +3 -12
  310. package/dist/esm/contrast-DMN9saXP.js.map +1 -0
  311. package/dist/esm/{dev.utils-CYtV9X0K.js → dev.utils-BGy8dbtQ.js} +3 -3
  312. package/dist/esm/{dev.utils-CYtV9X0K.js.map → dev.utils-BGy8dbtQ.js.map} +1 -1
  313. package/dist/esm/{devtools-B0qRaQdp.js → devtools-CZ8Mnmwl.js} +4 -4
  314. package/dist/{kolibri/devtools-B0qRaQdp.js.map → esm/devtools-CZ8Mnmwl.js.map} +1 -1
  315. package/dist/esm/{field-control-C5hjw2Rb.js → field-control-CLnFuMmy.js} +8 -8
  316. package/dist/{kolibri/field-control-C5hjw2Rb.js.map → esm/field-control-CLnFuMmy.js.map} +1 -1
  317. package/dist/esm/{group-2hP8qbvk.js → group-BAOmF5Ok.js} +5 -5
  318. package/dist/esm/{group-2hP8qbvk.js.map → group-BAOmF5Ok.js.map} +1 -1
  319. package/dist/esm/{index-DsCeQ9Ys.js → index-DAKQV03B.js} +3 -3
  320. package/dist/{kolibri/index-DsCeQ9Ys.js.map → esm/index-DAKQV03B.js.map} +1 -1
  321. package/dist/esm/{input-Dp5NBocQ.js → input-D2i1QEbL.js} +5 -5
  322. package/dist/esm/{input-Dp5NBocQ.js.map → input-D2i1QEbL.js.map} +1 -1
  323. package/dist/esm/{input-container-QA8-0_0p.js → input-container-wQm8-W3s.js} +7 -7
  324. package/dist/esm/{input-container-QA8-0_0p.js.map → input-container-wQm8-W3s.js.map} +1 -1
  325. package/dist/esm/{item-BIjqEkyy.js → item-DJ8LXOMv.js} +8 -8
  326. package/dist/{kolibri/item-BIjqEkyy.js.map → esm/item-DJ8LXOMv.js.map} +1 -1
  327. package/dist/esm/{item-CXyolUj2.js → item-DbLIGnc9.js} +4 -4
  328. package/dist/{kolibri/item-CXyolUj2.js.map → esm/item-DbLIGnc9.js.map} +1 -1
  329. package/dist/esm/{item-CaxJw3ad.js → item-Dkm57tce.js} +4 -4
  330. package/dist/esm/{item-CaxJw3ad.js.map → item-Dkm57tce.js.map} +1 -1
  331. package/dist/esm/{item-DY0fVVnj.js → item-DuBSR8BS.js} +3 -3
  332. package/dist/esm/{item-DY0fVVnj.js.map → item-DuBSR8BS.js.map} +1 -1
  333. package/dist/esm/kol-abbr.entry.js +2 -2
  334. package/dist/esm/kol-accordion.entry.js +7 -7
  335. package/dist/esm/kol-alert.entry.js +11 -11
  336. package/dist/esm/kol-avatar.entry.js +3 -3
  337. package/dist/esm/kol-badge.entry.js +12 -12
  338. package/dist/esm/kol-breadcrumb.entry.js +9 -9
  339. package/dist/esm/kol-button-link.entry.js +10 -10
  340. package/dist/esm/kol-button.entry.js +10 -10
  341. package/dist/esm/kol-card.entry.js +11 -11
  342. package/dist/esm/kol-click-button.entry.js +2 -2
  343. package/dist/esm/kol-combobox.entry.js +18 -18
  344. package/dist/esm/kol-details.entry.js +7 -7
  345. package/dist/esm/kol-dialog.entry.js +13 -13
  346. package/dist/esm/kol-drawer.entry.js +12 -12
  347. package/dist/esm/kol-form.entry.js +12 -12
  348. package/dist/esm/kol-heading.entry.js +1 -1
  349. package/dist/esm/kol-icon.entry.js +3 -3
  350. package/dist/esm/kol-image.entry.js +1 -1
  351. package/dist/esm/kol-input-checkbox.entry.js +17 -17
  352. package/dist/esm/kol-input-color.entry.js +18 -18
  353. package/dist/esm/kol-input-date.entry.js +18 -18
  354. package/dist/esm/kol-input-email.entry.js +20 -20
  355. package/dist/esm/kol-input-file.entry.js +17 -17
  356. package/dist/esm/kol-input-number.entry.js +18 -18
  357. package/dist/esm/kol-input-password.entry.js +22 -22
  358. package/dist/esm/kol-input-password.entry.js.map +1 -1
  359. package/dist/esm/kol-input-radio.entry.js +17 -17
  360. package/dist/esm/kol-input-range.entry.js +18 -18
  361. package/dist/esm/kol-input-text.entry.js +20 -20
  362. package/dist/esm/kol-kolibri.entry.js +2 -2
  363. package/dist/esm/kol-link-button.entry.js +10 -10
  364. package/dist/esm/kol-link.entry.js +10 -10
  365. package/dist/esm/kol-meter.entry.js +1 -1
  366. package/dist/esm/kol-modal.entry.js +13 -13
  367. package/dist/esm/kol-nav.entry.js +13 -13
  368. package/dist/esm/kol-pagination.entry.js +18 -18
  369. package/dist/esm/kol-popover-button.entry.js +12 -13
  370. package/dist/esm/kol-popover-button.entry.js.map +1 -1
  371. package/dist/esm/kol-progress.entry.js +1 -1
  372. package/dist/esm/kol-quote.entry.js +1 -1
  373. package/dist/esm/kol-select.entry.js +17 -17
  374. package/dist/esm/kol-single-select.entry.js +18 -18
  375. package/dist/esm/kol-skeleton.entry.js +2 -2
  376. package/dist/esm/kol-skip-nav.entry.js +9 -9
  377. package/dist/esm/kol-spin.entry.js +3 -3
  378. package/dist/esm/kol-split-button.entry.js +12 -12
  379. package/dist/esm/kol-table-stateful.entry.js +25 -25
  380. package/dist/esm/kol-table-stateless.entry.js +19 -19
  381. package/dist/esm/kol-tabs.entry.js +9 -9
  382. package/dist/esm/kol-textarea.entry.js +20 -20
  383. package/dist/esm/kol-textarea.entry.js.map +1 -1
  384. package/dist/esm/kol-toast-container.entry.js +11 -11
  385. package/dist/esm/kol-toolbar.entry.js +33 -14
  386. package/dist/esm/kol-toolbar.entry.js.map +1 -1
  387. package/dist/esm/kol-tooltip-wc.entry.js +4 -4
  388. package/dist/esm/kol-tree-item.entry.js +9 -9
  389. package/dist/esm/kol-tree.entry.js +1 -1
  390. package/dist/esm/kol-version.entry.js +10 -10
  391. package/dist/esm/kolibri.js +3 -3
  392. package/dist/esm/loader.js +3 -3
  393. package/dist/esm/{resolve-props-DJxTzf-G.js → resolve-props-BTiKxg-8.js} +3 -3
  394. package/dist/{kolibri/resolve-props-DJxTzf-G.js.map → esm/resolve-props-BTiKxg-8.js.map} +1 -1
  395. package/dist/esm/{scroll-lock-BN6ZnBdc.js → scroll-lock-DRNyw9qH.js} +3 -3
  396. package/dist/{kolibri/scroll-lock-BN6ZnBdc.js.map → esm/scroll-lock-DRNyw9qH.js.map} +1 -1
  397. package/dist/esm/{suggestions-DlpHvEGv.js → suggestions-CG-TuGC4.js} +4 -4
  398. package/dist/esm/{suggestions-DlpHvEGv.js.map → suggestions-CG-TuGC4.js.map} +1 -1
  399. package/dist/esm/test-component.entry.js +1 -1
  400. package/dist/esm/{toggle-handler-Xex3lIll.js → toggle-handler-aTxO0Wem.js} +5 -5
  401. package/dist/{kolibri/toggle-handler-Xex3lIll.js.map → esm/toggle-handler-aTxO0Wem.js.map} +1 -1
  402. package/dist/kolibri/{Heading-DXl16qig.js → Heading-BctDgC7M.js} +2 -2
  403. package/dist/kolibri/{Heading-DXl16qig.js.map → Heading-BctDgC7M.js.map} +1 -1
  404. package/dist/kolibri/api-B6fEjFVl.js +5 -0
  405. package/dist/{esm/api-C8TfIYlY.js.map → kolibri/api-B6fEjFVl.js.map} +1 -1
  406. package/dist/kolibri/api-T-JuZMlj.js +5 -0
  407. package/dist/kolibri/{api-BA-AFr5H.js.map → api-T-JuZMlj.js.map} +1 -1
  408. package/dist/kolibri/app-globals-CvvWI2x9.js +5 -0
  409. package/dist/kolibri/{app-globals-lFdBwFG2.js.map → app-globals-CvvWI2x9.js.map} +1 -1
  410. package/dist/kolibri/base-BARjFMg1.js +5 -0
  411. package/dist/kolibri/{base-DiSQvfGU.js.map → base-BARjFMg1.js.map} +1 -1
  412. package/dist/kolibri/{base-D8GcFhvD.js → base-BbVXW6YI.js} +2 -2
  413. package/dist/{esm/base-D8GcFhvD.js.map → kolibri/base-BbVXW6YI.js.map} +1 -1
  414. package/dist/kolibri/{base-B5F8ROuQ.js → base-D8yYjJsn.js} +2 -2
  415. package/dist/kolibri/{base-B5F8ROuQ.js.map → base-D8yYjJsn.js.map} +1 -1
  416. package/dist/kolibri/base-Dvr4F_Pr.js +5 -0
  417. package/dist/{esm/base-BpqjfzG1.js.map → kolibri/base-Dvr4F_Pr.js.map} +1 -1
  418. package/dist/kolibri/base-web-component-BzB5tP9s.js +5 -0
  419. package/dist/kolibri/base-web-component-BzB5tP9s.js.map +1 -0
  420. package/dist/kolibri/{base-web-component-BozlJoj7.js → base-web-component-DU3hnIWD.js} +2 -2
  421. package/dist/kolibri/{base-web-component-BozlJoj7.js.map → base-web-component-DU3hnIWD.js.map} +1 -1
  422. package/dist/kolibri/{behavior-BuNqmjz8.js → behavior-CbqCHL6O.js} +2 -2
  423. package/dist/kolibri/{behavior-BuNqmjz8.js.map → behavior-CbqCHL6O.js.map} +1 -1
  424. package/dist/kolibri/{color-Du3Ft0XV.js → color-QYuhlVFz.js} +2 -2
  425. package/dist/kolibri/{color-Du3Ft0XV.js.map → color-QYuhlVFz.js.map} +1 -1
  426. package/dist/kolibri/component-BaD1OTyv.js +5 -0
  427. package/dist/{esm/component-Da5dJMKj.js.map → kolibri/component-BaD1OTyv.js.map} +1 -1
  428. package/dist/kolibri/{component-DD5QqT5m.js → component-BjWF1SyZ.js} +2 -2
  429. package/dist/kolibri/{component-DD5QqT5m.js.map → component-BjWF1SyZ.js.map} +1 -1
  430. package/dist/kolibri/{component-Bd7PXqOG.js → component-Ch6fss2f.js} +2 -2
  431. package/dist/kolibri/{component-Bd7PXqOG.js.map → component-Ch6fss2f.js.map} +1 -1
  432. package/dist/kolibri/component-CmBM-Y1C.js +5 -0
  433. package/dist/kolibri/{component-C3aqLFK2.js.map → component-CmBM-Y1C.js.map} +1 -1
  434. package/dist/kolibri/component-CvhmYY4a.js +5 -0
  435. package/dist/kolibri/{component-xrrwVuiI.js.map → component-CvhmYY4a.js.map} +1 -1
  436. package/dist/kolibri/component-D0iTurA_.js +5 -0
  437. package/dist/kolibri/{component-De6Do_gt.js.map → component-D0iTurA_.js.map} +1 -1
  438. package/dist/kolibri/{component-BjH8s4-t.js → component-DKS73hKY.js} +2 -2
  439. package/dist/{esm/component-BjH8s4-t.js.map → kolibri/component-DKS73hKY.js.map} +1 -1
  440. package/dist/kolibri/component-DhBTawyT.js +5 -0
  441. package/dist/kolibri/{component-BxKN0JbT.js.map → component-DhBTawyT.js.map} +1 -1
  442. package/dist/kolibri/{component-CWGVLsSH.js → component-G9vQ1mQA.js} +2 -2
  443. package/dist/{esm/component-CWGVLsSH.js.map → kolibri/component-G9vQ1mQA.js.map} +1 -1
  444. package/dist/kolibri/{component-D_58mw87.js → component-QCFfSS76.js} +2 -2
  445. package/dist/{esm/component-D_58mw87.js.map → kolibri/component-QCFfSS76.js.map} +1 -1
  446. package/dist/kolibri/{component-BKOep2WQ.js → component-d1d-AIsY.js} +2 -2
  447. package/dist/{esm/component-BKOep2WQ.js.map → kolibri/component-d1d-AIsY.js.map} +1 -1
  448. package/dist/kolibri/{component-C9DexidK.js → component-sf_0WjJF.js} +2 -2
  449. package/dist/kolibri/{component-C9DexidK.js.map → component-sf_0WjJF.js.map} +1 -1
  450. package/dist/kolibri/contrast-DMN9saXP.js +5 -0
  451. package/dist/kolibri/contrast-DMN9saXP.js.map +1 -0
  452. package/dist/kolibri/{dev.utils-CYtV9X0K.js → dev.utils-BGy8dbtQ.js} +2 -2
  453. package/dist/kolibri/{dev.utils-CYtV9X0K.js.map → dev.utils-BGy8dbtQ.js.map} +1 -1
  454. package/dist/kolibri/devtools-CZ8Mnmwl.js +5 -0
  455. package/dist/{esm/devtools-B0qRaQdp.js.map → kolibri/devtools-CZ8Mnmwl.js.map} +1 -1
  456. package/dist/kolibri/field-control-CLnFuMmy.js +5 -0
  457. package/dist/{esm/field-control-C5hjw2Rb.js.map → kolibri/field-control-CLnFuMmy.js.map} +1 -1
  458. package/dist/kolibri/{group-2hP8qbvk.js → group-BAOmF5Ok.js} +2 -2
  459. package/dist/kolibri/{group-2hP8qbvk.js.map → group-BAOmF5Ok.js.map} +1 -1
  460. package/dist/kolibri/{index-DsCeQ9Ys.js → index-DAKQV03B.js} +2 -2
  461. package/dist/{esm/index-DsCeQ9Ys.js.map → kolibri/index-DAKQV03B.js.map} +1 -1
  462. package/dist/kolibri/input-D2i1QEbL.js +5 -0
  463. package/dist/kolibri/{input-Dp5NBocQ.js.map → input-D2i1QEbL.js.map} +1 -1
  464. package/dist/kolibri/{input-container-QA8-0_0p.js → input-container-wQm8-W3s.js} +2 -2
  465. package/dist/kolibri/{input-container-QA8-0_0p.js.map → input-container-wQm8-W3s.js.map} +1 -1
  466. package/dist/kolibri/{item-BIjqEkyy.js → item-DJ8LXOMv.js} +2 -2
  467. package/dist/{esm/item-BIjqEkyy.js.map → kolibri/item-DJ8LXOMv.js.map} +1 -1
  468. package/dist/kolibri/item-DbLIGnc9.js +5 -0
  469. package/dist/{esm/item-CXyolUj2.js.map → kolibri/item-DbLIGnc9.js.map} +1 -1
  470. package/dist/kolibri/{item-CaxJw3ad.js → item-Dkm57tce.js} +2 -2
  471. package/dist/kolibri/{item-CaxJw3ad.js.map → item-Dkm57tce.js.map} +1 -1
  472. package/dist/kolibri/{item-DY0fVVnj.js → item-DuBSR8BS.js} +2 -2
  473. package/dist/kolibri/{item-DY0fVVnj.js.map → item-DuBSR8BS.js.map} +1 -1
  474. package/dist/kolibri/kol-abbr.entry.js +1 -1
  475. package/dist/kolibri/kol-accordion.entry.js +1 -1
  476. package/dist/kolibri/kol-alert.entry.js +1 -1
  477. package/dist/kolibri/kol-avatar.entry.js +1 -1
  478. package/dist/kolibri/kol-badge.entry.js +1 -1
  479. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  480. package/dist/kolibri/kol-button-link.entry.js +1 -1
  481. package/dist/kolibri/kol-button.entry.js +1 -1
  482. package/dist/kolibri/kol-card.entry.js +1 -1
  483. package/dist/kolibri/kol-click-button.entry.js +1 -1
  484. package/dist/kolibri/kol-combobox.entry.js +1 -1
  485. package/dist/kolibri/kol-combobox.entry.js.map +1 -1
  486. package/dist/kolibri/kol-details.entry.js +1 -1
  487. package/dist/kolibri/kol-dialog.entry.js +1 -1
  488. package/dist/kolibri/kol-drawer.entry.js +1 -1
  489. package/dist/kolibri/kol-form.entry.js +1 -1
  490. package/dist/kolibri/kol-heading.entry.js +1 -1
  491. package/dist/kolibri/kol-icon.entry.js +1 -1
  492. package/dist/kolibri/kol-image.entry.js +1 -1
  493. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  494. package/dist/kolibri/kol-input-color.entry.js +1 -1
  495. package/dist/kolibri/kol-input-date.entry.js +1 -1
  496. package/dist/kolibri/kol-input-email.entry.js +1 -1
  497. package/dist/kolibri/kol-input-file.entry.js +1 -1
  498. package/dist/kolibri/kol-input-number.entry.js +1 -1
  499. package/dist/kolibri/kol-input-password.entry.esm.js.map +1 -1
  500. package/dist/kolibri/kol-input-password.entry.js +1 -1
  501. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  502. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  503. package/dist/kolibri/kol-input-range.entry.js +1 -1
  504. package/dist/kolibri/kol-input-text.entry.js +1 -1
  505. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  506. package/dist/kolibri/kol-link-button.entry.js +1 -1
  507. package/dist/kolibri/kol-link.entry.js +1 -1
  508. package/dist/kolibri/kol-meter.entry.js +1 -1
  509. package/dist/kolibri/kol-modal.entry.js +1 -1
  510. package/dist/kolibri/kol-nav.entry.js +1 -1
  511. package/dist/kolibri/kol-pagination.entry.js +1 -1
  512. package/dist/kolibri/kol-popover-button.entry.esm.js.map +1 -1
  513. package/dist/kolibri/kol-popover-button.entry.js +1 -1
  514. package/dist/kolibri/kol-popover-button.entry.js.map +1 -1
  515. package/dist/kolibri/kol-progress.entry.js +1 -1
  516. package/dist/kolibri/kol-quote.entry.js +1 -1
  517. package/dist/kolibri/kol-select.entry.js +1 -1
  518. package/dist/kolibri/kol-single-select.entry.js +1 -1
  519. package/dist/kolibri/kol-skeleton.entry.js +1 -1
  520. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  521. package/dist/kolibri/kol-spin.entry.js +1 -1
  522. package/dist/kolibri/kol-split-button.entry.js +1 -1
  523. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  524. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  525. package/dist/kolibri/kol-tabs.entry.js +1 -1
  526. package/dist/kolibri/kol-textarea.entry.esm.js.map +1 -1
  527. package/dist/kolibri/kol-textarea.entry.js +1 -1
  528. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  529. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  530. package/dist/kolibri/kol-toolbar.entry.esm.js.map +1 -1
  531. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  532. package/dist/kolibri/kol-toolbar.entry.js.map +1 -1
  533. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  534. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  535. package/dist/kolibri/kol-tree.entry.js +1 -1
  536. package/dist/kolibri/kol-version.entry.js +1 -1
  537. package/dist/kolibri/kol-version.entry.js.map +1 -1
  538. package/dist/kolibri/kolibri.esm.js +1 -1
  539. package/dist/kolibri/resolve-props-BTiKxg-8.js +5 -0
  540. package/dist/{esm/resolve-props-DJxTzf-G.js.map → kolibri/resolve-props-BTiKxg-8.js.map} +1 -1
  541. package/dist/kolibri/{scroll-lock-BN6ZnBdc.js → scroll-lock-DRNyw9qH.js} +2 -2
  542. package/dist/{esm/scroll-lock-BN6ZnBdc.js.map → kolibri/scroll-lock-DRNyw9qH.js.map} +1 -1
  543. package/dist/kolibri/suggestions-CG-TuGC4.js +5 -0
  544. package/dist/kolibri/{suggestions-DlpHvEGv.js.map → suggestions-CG-TuGC4.js.map} +1 -1
  545. package/dist/kolibri/test-component.entry.js +1 -1
  546. package/dist/kolibri/toggle-handler-aTxO0Wem.js +5 -0
  547. package/dist/{esm/toggle-handler-Xex3lIll.js.map → kolibri/toggle-handler-aTxO0Wem.js.map} +1 -1
  548. package/dist/types/components/toolbar/component.d.ts +2 -2
  549. package/dist/types/components.d.ts +0 -2
  550. package/dist/types/internal/functional-components/form-field/textarea.d.ts +1 -0
  551. package/dist/types/internal/functional-components/toolbar/api.d.ts +2 -2
  552. package/dist/types/internal/functional-components/toolbar/item.d.ts +5 -2
  553. package/dist/types/schema/props/toolbar-items.d.ts +3 -1
  554. package/doc/popover-button.md +1 -1
  555. package/package.json +1 -1
  556. package/dist/cjs/base-web-component-C8MLLGxi.js.map +0 -1
  557. package/dist/cjs/contrast-kLMuDQLl.js.map +0 -1
  558. package/dist/esm/base-web-component-CkaKv7O0.js.map +0 -1
  559. package/dist/esm/contrast-BKAJJL2K.js.map +0 -1
  560. package/dist/kolibri/api-BA-AFr5H.js +0 -5
  561. package/dist/kolibri/api-C8TfIYlY.js +0 -5
  562. package/dist/kolibri/app-globals-lFdBwFG2.js +0 -5
  563. package/dist/kolibri/base-BpqjfzG1.js +0 -5
  564. package/dist/kolibri/base-DiSQvfGU.js +0 -5
  565. package/dist/kolibri/base-web-component-CkaKv7O0.js +0 -5
  566. package/dist/kolibri/base-web-component-CkaKv7O0.js.map +0 -1
  567. package/dist/kolibri/component-BxKN0JbT.js +0 -5
  568. package/dist/kolibri/component-C3aqLFK2.js +0 -5
  569. package/dist/kolibri/component-Da5dJMKj.js +0 -5
  570. package/dist/kolibri/component-De6Do_gt.js +0 -5
  571. package/dist/kolibri/component-xrrwVuiI.js +0 -5
  572. package/dist/kolibri/contrast-BKAJJL2K.js +0 -5
  573. package/dist/kolibri/contrast-BKAJJL2K.js.map +0 -1
  574. package/dist/kolibri/devtools-B0qRaQdp.js +0 -5
  575. package/dist/kolibri/field-control-C5hjw2Rb.js +0 -5
  576. package/dist/kolibri/input-Dp5NBocQ.js +0 -5
  577. package/dist/kolibri/item-CXyolUj2.js +0 -5
  578. package/dist/kolibri/resolve-props-DJxTzf-G.js +0 -5
  579. package/dist/kolibri/suggestions-DlpHvEGv.js +0 -5
  580. package/dist/kolibri/toggle-handler-Xex3lIll.js +0 -5
Binary file
Binary file
Binary file
Binary file
@@ -1,11 +1,11 @@
1
1
  @font-face {
2
2
  font-family: "kolicons";
3
- src: url('kolicons.eot?t=1791360508850'); /* IE9*/
4
- src: url('kolicons.eot?t=1791360508850#iefix') format('embedded-opentype'), /* IE6-IE8 */
5
- url("kolicons.woff2?t=1791360508850") format("woff2"),
6
- url("kolicons.woff?t=1791360508850") format("woff"),
7
- url('kolicons.ttf?t=1791360508850') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
8
- url('kolicons.svg?t=1791360508850#kolicons') format('svg'); /* iOS 4.1- */
3
+ src: url('kolicons.eot?t=1791539188494'); /* IE9*/
4
+ src: url('kolicons.eot?t=1791539188494#iefix') format('embedded-opentype'), /* IE6-IE8 */
5
+ url("kolicons.woff2?t=1791539188494") format("woff2"),
6
+ url("kolicons.woff?t=1791539188494") format("woff"),
7
+ url('kolicons.ttf?t=1791539188494') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
8
+ url('kolicons.svg?t=1791539188494#kolicons') format('svg'); /* iOS 4.1- */
9
9
  }
10
10
 
11
11
  @layer kol-component {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.5.0-rc.6",
2
+ "version": "4.5.0-rc.8",
3
3
  "tags": [
4
4
  {
5
5
  "name": "kol-abbr",
@@ -3476,7 +3476,6 @@
3476
3476
  "name": "_variant",
3477
3477
  "type": "string | string[] | undefined",
3478
3478
  "description": "Defines which variant should be used for presentation.",
3479
- "defaultValue": "'normal'",
3480
3479
  "required": false
3481
3480
  }
3482
3481
  ],
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
7
- var index = require('./index-BnEus4Y9.js');
7
+ var index = require('./index-RAfZF5x0.js');
8
8
  var clsx = require('./clsx-Bm_HQUnh.js');
9
9
 
10
10
  const MIN_HEADING_LEVEL = 1;
@@ -37,6 +37,6 @@ const KolHeadingFc = (_a, children) => {
37
37
 
38
38
  exports.KolHeadingFc = KolHeadingFc;
39
39
  exports.getHeadlineTag = getHeadlineTag;
40
- //# sourceMappingURL=Heading-Bck3PFpH.js.map
40
+ //# sourceMappingURL=Heading-yiwXjRrz.js.map
41
41
 
42
- //# sourceMappingURL=Heading-Bck3PFpH.js.map
42
+ //# sourceMappingURL=Heading-yiwXjRrz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Heading-Bck3PFpH.js","sources":["src/functional-components/Heading/Heading.tsx"],"sourcesContent":["import { type FunctionalComponent as FC, h } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { HeadingLevel } from '../../schema';\nimport clsx from '../../utils/clsx';\n\ntype HGroupProps = JSXBase.HTMLAttributes<HTMLElement>;\n\n// Define a base type for common props\ntype BaseProps = JSXBase.HTMLAttributes<HTMLHeadingElement | HTMLElement> & {\n\tlevel?: HeadingLevel;\n};\n\n// Define a type for the main headline props\ntype HeadlineProps = BaseProps;\n\n// Define a type for the secondary headline props\ntype SecondaryHeadlineProps = JSXBase.HTMLAttributes<HTMLParagraphElement>;\n\n// Define a type for the main Heading component props\nexport type HeadingProps = HeadlineProps & {\n\tsecondaryHeadline?: string;\n\tHeadingGroupProps?: HGroupProps;\n\tSecondaryHeadlineProps?: SecondaryHeadlineProps;\n};\n\nconst MIN_HEADING_LEVEL = 1;\nconst MAX_HEADING_LEVEL = 6;\n\n// Define a union type for valid headline tags\ntype HeadlineTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'strong';\n\n/**\n * Checks if the given level is a valid heading level.\n * @param level - The heading level to check.\n * @returns True if the level is valid, false otherwise.\n */\nfunction isValidHeadingLevel(level: number): boolean {\n\treturn level >= MIN_HEADING_LEVEL && level <= MAX_HEADING_LEVEL;\n}\n\n/**\n * Returns the appropriate headline tag based on the level.\n * If the level is invalid, returns 'strong'.\n * @param level - The heading level.\n * @returns The corresponding headline tag.\n */\nexport function getHeadlineTag(level: HeadingLevel | number): HeadlineTag {\n\treturn isValidHeadingLevel(level) ? (`h${level}` as HeadlineTag) : 'strong';\n}\n\n/**\n * Functional component for rendering a headline.\n * @param props - The properties for the headline component.\n * @param children - The children to render inside the headline.\n * @returns A VNode representing the headline.\n */\nconst KolHeadlineFc: FC<HeadlineProps> = ({ class: classNames, level = MIN_HEADING_LEVEL, ...other }, children) => {\n\tconst HeadlineTag = getHeadlineTag(level);\n\n\treturn (\n\t\t<HeadlineTag class={clsx('kol-headline', `kol-headline--${HeadlineTag}`, classNames)} {...other}>\n\t\t\t{children}\n\t\t</HeadlineTag>\n\t);\n};\n\n/**\n * Functional component for rendering a secondary headline.\n * The secondary text is rendered as a `<p>` because according to the HTML `hgroup`\n * specification the subheading does not create its own outline level.\n * @param props - The properties for the secondary headline component.\n * @param children - The children to render inside the secondary headline.\n * @returns A VNode representing the secondary headline.\n */\nconst KolSecondaryHeadlineFc: FC<SecondaryHeadlineProps> = ({ class: classNames, ...other }, children) => {\n\treturn (\n\t\t<p class={clsx('kol-headline kol-headline--group kol-headline--secondary', classNames)} {...other}>\n\t\t\t{children}\n\t\t</p>\n\t);\n};\n\n/**\n * Functional component for rendering a heading with an optional secondary headline.\n * @param props - The properties for the heading component.\n * @param children - The children to render inside the heading.\n * @returns A VNode representing the heading.\n */\nconst KolHeadingFc: FC<HeadingProps> = (\n\t{ secondaryHeadline, level = MIN_HEADING_LEVEL, class: classNames, HeadingGroupProps = {}, SecondaryHeadlineProps = {}, ...other },\n\tchildren,\n) => {\n\tconst headlineProps: HeadlineProps = {\n\t\tlevel,\n\t\t...other,\n\t};\n\n\tif (!secondaryHeadline) {\n\t\treturn (\n\t\t\t<KolHeadlineFc class={clsx(classNames, 'kol-headline--single')} {...headlineProps}>\n\t\t\t\t{children}\n\t\t\t</KolHeadlineFc>\n\t\t);\n\t}\n\n\tconst { class: groupClassNames, ...groupOthers } = HeadingGroupProps;\n\tconst headlineGroupProps: HGroupProps = {\n\t\tclass: clsx('kol-heading-group', groupClassNames),\n\t\t...groupOthers,\n\t};\n\n\treturn (\n\t\t<hgroup {...headlineGroupProps}>\n\t\t\t<KolHeadlineFc class={clsx(classNames, 'kol-headline--group', 'kol-headline--primary')} {...headlineProps}>\n\t\t\t\t{children}\n\t\t\t</KolHeadlineFc>\n\t\t\t<KolSecondaryHeadlineFc {...SecondaryHeadlineProps}>{secondaryHeadline}</KolSecondaryHeadlineFc>\n\t\t</hgroup>\n\t);\n};\n\nexport default KolHeadingFc;\n"],"names":["__rest","h","clsx"],"mappings":";;;;;;;;;AAyBA,MAAM,iBAAiB,GAAG,CAAC;AAC3B,MAAM,iBAAiB,GAAG,CAAC;AAU3B,SAAS,mBAAmB,CAAC,KAAa,EAAA;AACzC,IAAA,OAAO,KAAK,IAAI,iBAAiB,IAAI,KAAK,IAAI,iBAAiB;AAChE;AAQM,SAAU,cAAc,CAAC,KAA4B,EAAA;AAC1D,IAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAI,CAAI,CAAA,EAAA,KAAK,CAAkB,CAAA,GAAG,QAAQ;AAC5E;AAQA,MAAM,aAAa,GAAsB,CAAC,EAA0D,EAAE,QAAQ,KAAI;IAAxE,IAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,iBAAiB,EAAA,GAAA,EAAY,EAAP,KAAK,GAAxDA,gBAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAA0D,CAAF;AACjG,IAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;AAEzC,IAAA,QACCC,QAAC,WAAW,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,KAAK,EAAEC,SAAI,CAAC,cAAc,EAAE,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAE,EAAE,UAAU,CAAC,EAAA,EAAM,KAAK,CAC7F,EAAA,QAAQ,CACI;AAEhB,CAAC;AAUD,MAAM,sBAAsB,GAA+B,CAAC,EAA+B,EAAE,QAAQ,KAAI;QAA7C,EAAE,KAAK,EAAE,UAAU,EAAA,GAAA,EAAY,EAAP,KAAK,GAAAF,gBAAA,CAAA,EAAA,EAA7B,SAA+B,CAAF;IACxF,QACCC,OAAG,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EAAEC,SAAI,CAAC,0DAA0D,EAAE,UAAU,CAAC,IAAM,KAAK,CAAA,EAC/F,QAAQ,CACN;AAEN,CAAC;AAQD,MAAM,YAAY,GAAqB,CACtC,EAAkI,EAClI,QAAQ,KACL;QAFH,EAAE,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,GAAG,EAAE,EAAE,sBAAsB,GAAG,EAAE,OAAY,EAAP,KAAK,GAAhIF,gBAAA,CAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,wBAAA,CAAkI,CAAF;AAGhI,IAAA,MAAM,aAAa,GAClB,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EACF,EAAA,KAAK,CACR;IAED,IAAI,CAAC,iBAAiB,EAAE;QACvB,QACCC,OAAC,CAAA,aAAa,kBAAC,KAAK,EAAEC,SAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAM,EAAA,aAAa,GAC/E,QAAQ,CACM;;AAIlB,IAAA,MAAM,EAAE,KAAK,EAAE,eAAe,EAAqB,GAAA,iBAAiB,EAAjC,WAAW,GAAKF,gBAAA,CAAA,iBAAiB,EAA9D,CAAA,OAAA,CAA0C,CAAoB;AACpE,IAAA,MAAM,kBAAkB,GAAA,MAAA,CAAA,MAAA,CAAA,EACvB,KAAK,EAAEE,SAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAC9C,EAAA,WAAW,CACd;IAED,QACCD,oCAAY,kBAAkB,CAAA,EAC7BA,OAAA,CAAC,aAAa,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EAAEC,SAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,CAAC,EAAA,EAAM,aAAa,CAAA,EACvG,QAAQ,CACM,EAChBD,OAAC,CAAA,sBAAsB,oBAAK,sBAAsB,CAAA,EAAG,iBAAiB,CAA0B,CACxF;AAEX;;;;;"}
1
+ {"version":3,"file":"Heading-yiwXjRrz.js","sources":["src/functional-components/Heading/Heading.tsx"],"sourcesContent":["import { type FunctionalComponent as FC, h } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { HeadingLevel } from '../../schema';\nimport clsx from '../../utils/clsx';\n\ntype HGroupProps = JSXBase.HTMLAttributes<HTMLElement>;\n\n// Define a base type for common props\ntype BaseProps = JSXBase.HTMLAttributes<HTMLHeadingElement | HTMLElement> & {\n\tlevel?: HeadingLevel;\n};\n\n// Define a type for the main headline props\ntype HeadlineProps = BaseProps;\n\n// Define a type for the secondary headline props\ntype SecondaryHeadlineProps = JSXBase.HTMLAttributes<HTMLParagraphElement>;\n\n// Define a type for the main Heading component props\nexport type HeadingProps = HeadlineProps & {\n\tsecondaryHeadline?: string;\n\tHeadingGroupProps?: HGroupProps;\n\tSecondaryHeadlineProps?: SecondaryHeadlineProps;\n};\n\nconst MIN_HEADING_LEVEL = 1;\nconst MAX_HEADING_LEVEL = 6;\n\n// Define a union type for valid headline tags\ntype HeadlineTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'strong';\n\n/**\n * Checks if the given level is a valid heading level.\n * @param level - The heading level to check.\n * @returns True if the level is valid, false otherwise.\n */\nfunction isValidHeadingLevel(level: number): boolean {\n\treturn level >= MIN_HEADING_LEVEL && level <= MAX_HEADING_LEVEL;\n}\n\n/**\n * Returns the appropriate headline tag based on the level.\n * If the level is invalid, returns 'strong'.\n * @param level - The heading level.\n * @returns The corresponding headline tag.\n */\nexport function getHeadlineTag(level: HeadingLevel | number): HeadlineTag {\n\treturn isValidHeadingLevel(level) ? (`h${level}` as HeadlineTag) : 'strong';\n}\n\n/**\n * Functional component for rendering a headline.\n * @param props - The properties for the headline component.\n * @param children - The children to render inside the headline.\n * @returns A VNode representing the headline.\n */\nconst KolHeadlineFc: FC<HeadlineProps> = ({ class: classNames, level = MIN_HEADING_LEVEL, ...other }, children) => {\n\tconst HeadlineTag = getHeadlineTag(level);\n\n\treturn (\n\t\t<HeadlineTag class={clsx('kol-headline', `kol-headline--${HeadlineTag}`, classNames)} {...other}>\n\t\t\t{children}\n\t\t</HeadlineTag>\n\t);\n};\n\n/**\n * Functional component for rendering a secondary headline.\n * The secondary text is rendered as a `<p>` because according to the HTML `hgroup`\n * specification the subheading does not create its own outline level.\n * @param props - The properties for the secondary headline component.\n * @param children - The children to render inside the secondary headline.\n * @returns A VNode representing the secondary headline.\n */\nconst KolSecondaryHeadlineFc: FC<SecondaryHeadlineProps> = ({ class: classNames, ...other }, children) => {\n\treturn (\n\t\t<p class={clsx('kol-headline kol-headline--group kol-headline--secondary', classNames)} {...other}>\n\t\t\t{children}\n\t\t</p>\n\t);\n};\n\n/**\n * Functional component for rendering a heading with an optional secondary headline.\n * @param props - The properties for the heading component.\n * @param children - The children to render inside the heading.\n * @returns A VNode representing the heading.\n */\nconst KolHeadingFc: FC<HeadingProps> = (\n\t{ secondaryHeadline, level = MIN_HEADING_LEVEL, class: classNames, HeadingGroupProps = {}, SecondaryHeadlineProps = {}, ...other },\n\tchildren,\n) => {\n\tconst headlineProps: HeadlineProps = {\n\t\tlevel,\n\t\t...other,\n\t};\n\n\tif (!secondaryHeadline) {\n\t\treturn (\n\t\t\t<KolHeadlineFc class={clsx(classNames, 'kol-headline--single')} {...headlineProps}>\n\t\t\t\t{children}\n\t\t\t</KolHeadlineFc>\n\t\t);\n\t}\n\n\tconst { class: groupClassNames, ...groupOthers } = HeadingGroupProps;\n\tconst headlineGroupProps: HGroupProps = {\n\t\tclass: clsx('kol-heading-group', groupClassNames),\n\t\t...groupOthers,\n\t};\n\n\treturn (\n\t\t<hgroup {...headlineGroupProps}>\n\t\t\t<KolHeadlineFc class={clsx(classNames, 'kol-headline--group', 'kol-headline--primary')} {...headlineProps}>\n\t\t\t\t{children}\n\t\t\t</KolHeadlineFc>\n\t\t\t<KolSecondaryHeadlineFc {...SecondaryHeadlineProps}>{secondaryHeadline}</KolSecondaryHeadlineFc>\n\t\t</hgroup>\n\t);\n};\n\nexport default KolHeadingFc;\n"],"names":["__rest","h","clsx"],"mappings":";;;;;;;;;AAyBA,MAAM,iBAAiB,GAAG,CAAC;AAC3B,MAAM,iBAAiB,GAAG,CAAC;AAU3B,SAAS,mBAAmB,CAAC,KAAa,EAAA;AACzC,IAAA,OAAO,KAAK,IAAI,iBAAiB,IAAI,KAAK,IAAI,iBAAiB;AAChE;AAQM,SAAU,cAAc,CAAC,KAA4B,EAAA;AAC1D,IAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC,GAAI,CAAI,CAAA,EAAA,KAAK,CAAkB,CAAA,GAAG,QAAQ;AAC5E;AAQA,MAAM,aAAa,GAAsB,CAAC,EAA0D,EAAE,QAAQ,KAAI;IAAxE,IAAA,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,iBAAiB,EAAA,GAAA,EAAY,EAAP,KAAK,GAAxDA,gBAAA,CAAA,EAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAA0D,CAAF;AACjG,IAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;AAEzC,IAAA,QACCC,QAAC,WAAW,EAAA,MAAA,CAAA,MAAA,CAAA,EAAC,KAAK,EAAEC,SAAI,CAAC,cAAc,EAAE,CAAA,cAAA,EAAiB,WAAW,CAAA,CAAE,EAAE,UAAU,CAAC,EAAA,EAAM,KAAK,CAC7F,EAAA,QAAQ,CACI;AAEhB,CAAC;AAUD,MAAM,sBAAsB,GAA+B,CAAC,EAA+B,EAAE,QAAQ,KAAI;QAA7C,EAAE,KAAK,EAAE,UAAU,EAAA,GAAA,EAAY,EAAP,KAAK,GAAAF,gBAAA,CAAA,EAAA,EAA7B,SAA+B,CAAF;IACxF,QACCC,OAAG,CAAA,GAAA,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EAAEC,SAAI,CAAC,0DAA0D,EAAE,UAAU,CAAC,IAAM,KAAK,CAAA,EAC/F,QAAQ,CACN;AAEN,CAAC;AAQD,MAAM,YAAY,GAAqB,CACtC,EAAkI,EAClI,QAAQ,KACL;QAFH,EAAE,iBAAiB,EAAE,KAAK,GAAG,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,GAAG,EAAE,EAAE,sBAAsB,GAAG,EAAE,OAAY,EAAP,KAAK,GAAhIF,gBAAA,CAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,wBAAA,CAAkI,CAAF;AAGhI,IAAA,MAAM,aAAa,GAClB,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EACF,EAAA,KAAK,CACR;IAED,IAAI,CAAC,iBAAiB,EAAE;QACvB,QACCC,OAAC,CAAA,aAAa,kBAAC,KAAK,EAAEC,SAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAM,EAAA,aAAa,GAC/E,QAAQ,CACM;;AAIlB,IAAA,MAAM,EAAE,KAAK,EAAE,eAAe,EAAqB,GAAA,iBAAiB,EAAjC,WAAW,GAAKF,gBAAA,CAAA,iBAAiB,EAA9D,CAAA,OAAA,CAA0C,CAAoB;AACpE,IAAA,MAAM,kBAAkB,GAAA,MAAA,CAAA,MAAA,CAAA,EACvB,KAAK,EAAEE,SAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,EAC9C,EAAA,WAAW,CACd;IAED,QACCD,oCAAY,kBAAkB,CAAA,EAC7BA,OAAA,CAAC,aAAa,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EAAEC,SAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,uBAAuB,CAAC,EAAA,EAAM,aAAa,CAAA,EACvG,QAAQ,CACM,EAChBD,OAAC,CAAA,sBAAsB,oBAAK,sBAAsB,CAAA,EAAG,iBAAiB,CAA0B,CACxF;AAEX;;;;;"}
@@ -3,17 +3,17 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-BnEus4Y9.js');
6
+ var index = require('./index-RAfZF5x0.js');
7
7
  var i18n = require('./i18n-UGaB-Dwg.js');
8
8
  var common = require('./common-B9-LvLNa.js');
9
- var component = require('./component-xIM903qi.js');
9
+ var component = require('./component-CAkixzEQ.js');
10
10
  var bemRegistry = require('./bem-registry-BDVdt6ar.js');
11
11
  var clsx = require('./clsx-Bm_HQUnh.js');
12
12
  var elementInteraction = require('./element-interaction-7FI_z19L.js');
13
- var component$4 = require('./component-X_thXnkE.js');
14
- var component$3 = require('./component-ZPvcKmPR.js');
15
- var component$2 = require('./component-o3s7XplI.js');
16
- var component$1 = require('./component-GfDUM7Um.js');
13
+ var component$4 = require('./component-Du98sklA.js');
14
+ var component$3 = require('./component-3EZdZbDH.js');
15
+ var component$2 = require('./component-Dd-PS3jp.js');
16
+ var component$1 = require('./component-Dw6Tq7Wb.js');
17
17
  var variant = require('./variant-wdbSxe--.js');
18
18
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
19
19
  var disabled = require('./disabled-B8tOrtj_.js');
@@ -94,6 +94,6 @@ exports.ariaOwnsProp = ariaOwnsProp;
94
94
  exports.downloadProp = downloadProp;
95
95
  exports.linkCallbacksProp = linkCallbacksProp;
96
96
  exports.linkPropsConfig = linkPropsConfig;
97
- //# sourceMappingURL=api-BcNl2vZm.js.map
97
+ //# sourceMappingURL=api-BDT5xkx5.js.map
98
98
 
99
- //# sourceMappingURL=api-BcNl2vZm.js.map
99
+ //# sourceMappingURL=api-BDT5xkx5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-BcNl2vZm.js","sources":["src/internal/props/aria-current-value.ts","src/internal/props/aria-owns.ts","src/internal/props/download.ts","src/internal/props/link-callbacks.ts","src/internal/functional-components/link/component.tsx","src/internal/functional-components/link/api.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * The allowed values for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n */\nexport const ARIA_CURRENT_VALUE_OPTIONS = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ARIA_CURRENT_VALUE_OPTIONS)[number];\n\nexport type AriaCurrentValueProp = SimpleProp<'ariaCurrentValue', AriaCurrentValuePropType>;\n\n/**\n * Normalizes the value to a valid aria-current value.\n *\n * Graceful degradation: when the (already normalized, non-null) string is not one of the\n * allowed options, falls back to the default `'page'` instead of throwing. The factory's\n * `apply` handles undefined/null before this is reached.\n */\nfunction normalizeAriaCurrentValue(value: unknown): AriaCurrentValuePropType {\n\tconst str = normalizeString(value);\n\treturn (ARIA_CURRENT_VALUE_OPTIONS as readonly string[]).includes(str) ? (str as AriaCurrentValuePropType) : 'page';\n}\n\nexport const ariaCurrentValueProp = createPropDefinition<AriaCurrentValueProp>('ariaCurrentValue', 'page', normalizeAriaCurrentValue);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type AriaOwnsProp = SimpleProp<'ariaOwns', string>;\nexport const ariaOwnsProp = createPropDefinition<AriaOwnsProp>('ariaOwns', '', normalizeString);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type DownloadProp = SimpleProp<'download', string>;\n// The default is `undefined` (not `''` like other string props) to keep \"not set\" distinguishable\n// from \"explicitly empty\": `download` is a presence attribute, so `_download=\"\"` must render as\n// `download=\"\"` (download without a suggested filename) while an unset `_download` must not\n// render the attribute at all.\nexport const downloadProp = createPropDefinition<DownloadProp>('download', undefined as unknown as string, normalizeString);\n","import type { LinkOnCallbacksPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\nexport type LinkCallbacksProp = SimpleProp<'on', LinkOnCallbacksPropType>;\n\nexport const linkCallbacksProp = createCallbacksPropDefinition<LinkOnCallbacksPropType>();\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport { devHint } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { classNameFromVariant } from '../../../schema/props/variant-class-name';\nimport clsx from '../../../utils/clsx';\nimport { preventFocus } from '../../../utils/element-interaction';\nimport { AriaDescriptionSpanFC } from '../aria-description-span/component';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { IconFC } from '../icon/component';\nimport { SpanFC } from '../span/component';\nimport { TooltipFC } from '../tooltip/component';\nimport type { LinkApi } from './api';\n\nconst linkBem = bem.forBlock('kol-link');\n\nexport type LinkFCProps = FunctionalComponentProps<LinkApi> & {\n\t/** Ref of the `.kol-link` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Children replace the expert `<slot>`: a consumer that renders `LinkFC` inside its own shadow\n * root passes the expert content directly (e.g. the tree item's chevron and label), since a slot\n * there would only project that consumer's light DOM.\n */\nexport const LinkFC: FC<LinkFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaControls,\n\t\tariaCurrent,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaExpanded,\n\t\tariaOwns,\n\t\tclass: hostClass,\n\t\tcustomClass,\n\t\tdisabled,\n\t\tdownload,\n\t\thandleAnchorClick,\n\t\thideLabel,\n\t\thref,\n\t\ticons,\n\t\tinline,\n\t\tlabel,\n\t\ton,\n\t\tref,\n\t\trefAnchor,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttarget,\n\t\tvariant,\n\t\texpertSlot,\n\t} = props;\n\n\tconst translateOpenLinkInTab = translate('kol-open-link-in-tab');\n\n\tconst isExternal = typeof target === 'string' && target.length > 0 && target !== '_self';\n\n\tconst tagAttrs = {\n\t\thref: typeof href === 'string' && href.length > 0 ? href : 'javascript:void(0);',\n\t\ttarget: typeof target === 'string' && target.length > 0 ? target : undefined,\n\t\trel: isExternal ? 'noopener' : undefined,\n\t\t// `download` is a presence attribute: an explicitly empty string means \"download without a\n\t\t// suggested filename\" and must render as `download=\"\"`, unlike an unset download.\n\t\tdownload: typeof download === 'string' ? download : undefined,\n\t};\n\n\tif (hideLabel === true && !label) {\n\t\tdevHint(`[KolLink] An aria-label must be set when _hide-label is set.`);\n\t}\n\n\tconst trimmedAriaDescription = ariaDescription?.trim();\n\tconst roleValue = role || undefined;\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-link\"\n\t\t\tref={ref}\n\t\t\tclass={clsx(hostClass, {\n\t\t\t\t[customClass]: variant.includes('custom') && customClass.length > 0,\n\t\t\t\t[classNameFromVariant(variant, 'link')]: variant.length > 0,\n\t\t\t})}\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: disabled === true,\n\t\t\t\t'external-link': isExternal,\n\t\t\t\t'hide-label': hideLabel === true,\n\t\t\t\tinline: inline === true,\n\t\t\t\tstandalone: inline === false,\n\t\t\t}}\n\t\t>\n\t\t\t{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events -- <a href> is natively keyboard-accessible (Enter triggers click); onKeyPress would cause a double-dispatch bug. */}\n\t\t\t<a\n\t\t\t\tref={refAnchor}\n\t\t\t\t{...tagAttrs}\n\t\t\t\taccessKey={accessKey || undefined}\n\t\t\t\taria-current={ariaCurrent || undefined}\n\t\t\t\taria-controls={ariaControls || undefined}\n\t\t\t\taria-describedby={trimmedAriaDescription ? ariaDescriptionId : undefined}\n\t\t\t\taria-disabled={disabled ? 'true' : undefined}\n\t\t\t\taria-expanded={ariaExpanded === '' ? undefined : ariaExpanded}\n\t\t\t\taria-owns={ariaOwns || undefined}\n\t\t\t\taria-label={hideLabel && typeof label === 'string' && label.trim() !== '' ? `${label}${isExternal ? ` (${translateOpenLinkInTab})` : ''}` : undefined}\n\t\t\t\taria-keyshortcuts={shortKey || undefined}\n\t\t\t\tclass={linkBem('interactive-element')}\n\t\t\t\t{...on}\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\tonMouseDown={disabled ? preventFocus : undefined}\n\t\t\t\trole={roleValue}\n\t\t\t\ttabIndex={disabled ? -1 : tabIndex}\n\t\t\t>\n\t\t\t\t<SpanFC class=\"kol-link__text\" badgeText={accessKey || shortKey} icons={icons} hideLabel={hideLabel} label={expertSlot ? '' : label || href}>\n\t\t\t\t\t{children.length > 0 ? children : <slot name=\"expert\" slot=\"expert\"></slot>}\n\t\t\t\t</SpanFC>\n\t\t\t\t{isExternal && (\n\t\t\t\t\t<IconFC class=\"kol-link__icon\" label={hideLabel ? '' : translateOpenLinkInTab} icons={'kolicon-link-external'} aria-hidden={hideLabel} />\n\t\t\t\t)}\n\t\t\t</a>\n\t\t\t{hideLabel === true && !expertSlot && (\n\t\t\t\t<div class=\"kol-link__tooltip\">\n\t\t\t\t\t<TooltipFC\n\t\t\t\t\t\tbadgeText={accessKey || shortKey || ''}\n\t\t\t\t\t\tlabel={typeof label === 'string' ? label : typeof href === 'string' ? href : ''}\n\t\t\t\t\t\trefFloating={refTooltip}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{trimmedAriaDescription && <AriaDescriptionSpanFC description={trimmedAriaDescription} descriptionId={ariaDescriptionId} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the link component.\n *\n * `href` is the only required prop. All others are optional.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp` (not `labelProp`): no min/max length restriction, matching the\n * original `validateLabelWithExpertSlot`. The empty string enables the expert slot; this is\n * tracked separately via the `expertSlot` state because the factory collapses undefined → ''\n * (the default), which would wrongly enable the expert slot when no label was passed.\n * - `spanIconsProp` (not `iconsProp`): icons are `KoliBriIconsProp` (object), not a plain string.\n * - `tooltipAlignProp`: same valid values as `alignProp` but defaults to `'right'` (matching the\n * legacy `_tooltipAlign` default).\n */\nexport const linkPropsConfig = {\n\trequired: [hrefProp],\n\toptional: [\n\t\taccessKeyProp,\n\t\tariaControlsProp,\n\t\tariaCurrentValueProp,\n\t\tariaDescriptionProp,\n\t\tariaExpandedProp,\n\t\tariaOwnsProp,\n\t\tcustomClassProp,\n\t\tdisabledProp,\n\t\tdownloadProp,\n\t\thideLabelProp,\n\t\tspanIconsProp,\n\t\tinlineProp,\n\t\tlabelWithExpertSlotProp,\n\t\tlinkCallbacksProp,\n\t\tlinkRoleProp,\n\t\tlinkTargetProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\ttooltipAlignProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type LinkApi = ApiFromConfig<\n\ttypeof linkPropsConfig,\n\t{\n\t\tCallbacks: {\n\t\t\t/**\n\t\t\t * Click handler bound to the anchor element. Implemented by the web component\n\t\t\t * (`handleAnchorClick`), which also dispatches the custom `KolEvent.click` event\n\t\t\t * on the host element.\n\t\t\t */\n\t\t\tanchorClick: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tfocus: (options?: FocusOptions) => void;\n\t\t\tclick: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tanchor: HTMLAnchorElement;\n\t\t\ttooltip: HTMLDivElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Derived aria-current value: one of the aria-current tokens when the link's href\n\t\t\t * matches the current location, otherwise an empty string (rendered as undefined →\n\t\t\t * no aria-current attribute). Managed via setState for reactivity.\n\t\t\t */\n\t\t\tariaCurrent: string;\n\t\t\t/**\n\t\t\t * DOM id of the visually-hidden span that carries the aria description. Generated\n\t\t\t * once per web component instance and referenced by the anchor's aria-describedby\n\t\t\t * attribute, since aria-description lacks screen reader support.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * Whether the expert slot should be rendered. True only when the consumer explicitly\n\t\t\t * passed an empty-string label. When the label is undefined (default ''), the expert\n\t\t\t * slot stays off and the href is used as the fallback label text.\n\t\t\t */\n\t\t\texpertSlot: boolean;\n\t\t};\n\t}\n>;\n"],"names":["normalizeString","createPropDefinition","createCallbacksPropDefinition","bem","translate","devHint","h","BemRootNodeFC","clsx","classNameFromVariant","preventFocus","SpanFC","IconFC","TooltipFC","AriaDescriptionSpanFC","hrefProp","accessKeyProp","ariaControlsProp","ariaDescriptionProp","ariaExpandedProp","customClassProp","disabledProp","hideLabelProp","spanIconsProp","inlineProp","labelWithExpertSlotProp","linkRoleProp","linkTargetProp","shortKeyProp","tabIndexProp","tooltipAlignProp","variantProp"],"mappings":"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"}
1
+ {"version":3,"file":"api-BDT5xkx5.js","sources":["src/internal/props/aria-current-value.ts","src/internal/props/aria-owns.ts","src/internal/props/download.ts","src/internal/props/link-callbacks.ts","src/internal/functional-components/link/component.tsx","src/internal/functional-components/link/api.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * The allowed values for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n */\nexport const ARIA_CURRENT_VALUE_OPTIONS = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ARIA_CURRENT_VALUE_OPTIONS)[number];\n\nexport type AriaCurrentValueProp = SimpleProp<'ariaCurrentValue', AriaCurrentValuePropType>;\n\n/**\n * Normalizes the value to a valid aria-current value.\n *\n * Graceful degradation: when the (already normalized, non-null) string is not one of the\n * allowed options, falls back to the default `'page'` instead of throwing. The factory's\n * `apply` handles undefined/null before this is reached.\n */\nfunction normalizeAriaCurrentValue(value: unknown): AriaCurrentValuePropType {\n\tconst str = normalizeString(value);\n\treturn (ARIA_CURRENT_VALUE_OPTIONS as readonly string[]).includes(str) ? (str as AriaCurrentValuePropType) : 'page';\n}\n\nexport const ariaCurrentValueProp = createPropDefinition<AriaCurrentValueProp>('ariaCurrentValue', 'page', normalizeAriaCurrentValue);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type AriaOwnsProp = SimpleProp<'ariaOwns', string>;\nexport const ariaOwnsProp = createPropDefinition<AriaOwnsProp>('ariaOwns', '', normalizeString);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\nexport type DownloadProp = SimpleProp<'download', string>;\n// The default is `undefined` (not `''` like other string props) to keep \"not set\" distinguishable\n// from \"explicitly empty\": `download` is a presence attribute, so `_download=\"\"` must render as\n// `download=\"\"` (download without a suggested filename) while an unset `_download` must not\n// render the attribute at all.\nexport const downloadProp = createPropDefinition<DownloadProp>('download', undefined as unknown as string, normalizeString);\n","import type { LinkOnCallbacksPropType } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\nexport type LinkCallbacksProp = SimpleProp<'on', LinkOnCallbacksPropType>;\n\nexport const linkCallbacksProp = createCallbacksPropDefinition<LinkOnCallbacksPropType>();\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { translate } from '../../../i18n';\nimport { devHint } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { classNameFromVariant } from '../../../schema/props/variant-class-name';\nimport clsx from '../../../utils/clsx';\nimport { preventFocus } from '../../../utils/element-interaction';\nimport { AriaDescriptionSpanFC } from '../aria-description-span/component';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { IconFC } from '../icon/component';\nimport { SpanFC } from '../span/component';\nimport { TooltipFC } from '../tooltip/component';\nimport type { LinkApi } from './api';\n\nconst linkBem = bem.forBlock('kol-link');\n\nexport type LinkFCProps = FunctionalComponentProps<LinkApi> & {\n\t/** Ref of the `.kol-link` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Children replace the expert `<slot>`: a consumer that renders `LinkFC` inside its own shadow\n * root passes the expert content directly (e.g. the tree item's chevron and label), since a slot\n * there would only project that consumer's light DOM.\n */\nexport const LinkFC: FC<LinkFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaControls,\n\t\tariaCurrent,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaExpanded,\n\t\tariaOwns,\n\t\tclass: hostClass,\n\t\tcustomClass,\n\t\tdisabled,\n\t\tdownload,\n\t\thandleAnchorClick,\n\t\thideLabel,\n\t\thref,\n\t\ticons,\n\t\tinline,\n\t\tlabel,\n\t\ton,\n\t\tref,\n\t\trefAnchor,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttarget,\n\t\tvariant,\n\t\texpertSlot,\n\t} = props;\n\n\tconst translateOpenLinkInTab = translate('kol-open-link-in-tab');\n\n\tconst isExternal = typeof target === 'string' && target.length > 0 && target !== '_self';\n\n\tconst tagAttrs = {\n\t\thref: typeof href === 'string' && href.length > 0 ? href : 'javascript:void(0);',\n\t\ttarget: typeof target === 'string' && target.length > 0 ? target : undefined,\n\t\trel: isExternal ? 'noopener' : undefined,\n\t\t// `download` is a presence attribute: an explicitly empty string means \"download without a\n\t\t// suggested filename\" and must render as `download=\"\"`, unlike an unset download.\n\t\tdownload: typeof download === 'string' ? download : undefined,\n\t};\n\n\tif (hideLabel === true && !label) {\n\t\tdevHint(`[KolLink] An aria-label must be set when _hide-label is set.`);\n\t}\n\n\tconst trimmedAriaDescription = ariaDescription?.trim();\n\tconst roleValue = role || undefined;\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-link\"\n\t\t\tref={ref}\n\t\t\tclass={clsx(hostClass, {\n\t\t\t\t[customClass]: variant.includes('custom') && customClass.length > 0,\n\t\t\t\t[classNameFromVariant(variant, 'link')]: variant.length > 0,\n\t\t\t})}\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: disabled === true,\n\t\t\t\t'external-link': isExternal,\n\t\t\t\t'hide-label': hideLabel === true,\n\t\t\t\tinline: inline === true,\n\t\t\t\tstandalone: inline === false,\n\t\t\t}}\n\t\t>\n\t\t\t{/* eslint-disable-next-line jsx-a11y/click-events-have-key-events -- <a href> is natively keyboard-accessible (Enter triggers click); onKeyPress would cause a double-dispatch bug. */}\n\t\t\t<a\n\t\t\t\tref={refAnchor}\n\t\t\t\t{...tagAttrs}\n\t\t\t\taccessKey={accessKey || undefined}\n\t\t\t\taria-current={ariaCurrent || undefined}\n\t\t\t\taria-controls={ariaControls || undefined}\n\t\t\t\taria-describedby={trimmedAriaDescription ? ariaDescriptionId : undefined}\n\t\t\t\taria-disabled={disabled ? 'true' : undefined}\n\t\t\t\taria-expanded={ariaExpanded === '' ? undefined : ariaExpanded}\n\t\t\t\taria-owns={ariaOwns || undefined}\n\t\t\t\taria-label={hideLabel && typeof label === 'string' && label.trim() !== '' ? `${label}${isExternal ? ` (${translateOpenLinkInTab})` : ''}` : undefined}\n\t\t\t\taria-keyshortcuts={shortKey || undefined}\n\t\t\t\tclass={linkBem('interactive-element')}\n\t\t\t\t{...on}\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\tonMouseDown={disabled ? preventFocus : undefined}\n\t\t\t\trole={roleValue}\n\t\t\t\ttabIndex={disabled ? -1 : tabIndex}\n\t\t\t>\n\t\t\t\t<SpanFC class=\"kol-link__text\" badgeText={accessKey || shortKey} icons={icons} hideLabel={hideLabel} label={expertSlot ? '' : label || href}>\n\t\t\t\t\t{children.length > 0 ? children : <slot name=\"expert\" slot=\"expert\"></slot>}\n\t\t\t\t</SpanFC>\n\t\t\t\t{isExternal && (\n\t\t\t\t\t<IconFC class=\"kol-link__icon\" label={hideLabel ? '' : translateOpenLinkInTab} icons={'kolicon-link-external'} aria-hidden={hideLabel} />\n\t\t\t\t)}\n\t\t\t</a>\n\t\t\t{hideLabel === true && !expertSlot && (\n\t\t\t\t<div class=\"kol-link__tooltip\">\n\t\t\t\t\t<TooltipFC\n\t\t\t\t\t\tbadgeText={accessKey || shortKey || ''}\n\t\t\t\t\t\tlabel={typeof label === 'string' ? label : typeof href === 'string' ? href : ''}\n\t\t\t\t\t\trefFloating={refTooltip}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{trimmedAriaDescription && <AriaDescriptionSpanFC description={trimmedAriaDescription} descriptionId={ariaDescriptionId} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import {\n\taccessKeyProp,\n\tariaControlsProp,\n\tariaCurrentValueProp,\n\tariaDescriptionProp,\n\tariaExpandedProp,\n\tariaOwnsProp,\n\tcustomClassProp,\n\tdisabledProp,\n\tdownloadProp,\n\thideLabelProp,\n\threfProp,\n\tinlineProp,\n\tlabelWithExpertSlotProp,\n\tlinkCallbacksProp,\n\tlinkRoleProp,\n\tlinkTargetProp,\n\tshortKeyProp,\n\tspanIconsProp,\n\ttabIndexProp,\n\ttooltipAlignProp,\n\tvariantProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the link component.\n *\n * `href` is the only required prop. All others are optional.\n *\n * Notes on prop choices:\n * - `labelWithExpertSlotProp` (not `labelProp`): no min/max length restriction, matching the\n * original `validateLabelWithExpertSlot`. The empty string enables the expert slot; this is\n * tracked separately via the `expertSlot` state because the factory collapses undefined → ''\n * (the default), which would wrongly enable the expert slot when no label was passed.\n * - `spanIconsProp` (not `iconsProp`): icons are `KoliBriIconsProp` (object), not a plain string.\n * - `tooltipAlignProp`: same valid values as `alignProp` but defaults to `'right'` (matching the\n * legacy `_tooltipAlign` default).\n */\nexport const linkPropsConfig = {\n\trequired: [hrefProp],\n\toptional: [\n\t\taccessKeyProp,\n\t\tariaControlsProp,\n\t\tariaCurrentValueProp,\n\t\tariaDescriptionProp,\n\t\tariaExpandedProp,\n\t\tariaOwnsProp,\n\t\tcustomClassProp,\n\t\tdisabledProp,\n\t\tdownloadProp,\n\t\thideLabelProp,\n\t\tspanIconsProp,\n\t\tinlineProp,\n\t\tlabelWithExpertSlotProp,\n\t\tlinkCallbacksProp,\n\t\tlinkRoleProp,\n\t\tlinkTargetProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\ttooltipAlignProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type LinkApi = ApiFromConfig<\n\ttypeof linkPropsConfig,\n\t{\n\t\tCallbacks: {\n\t\t\t/**\n\t\t\t * Click handler bound to the anchor element. Implemented by the web component\n\t\t\t * (`handleAnchorClick`), which also dispatches the custom `KolEvent.click` event\n\t\t\t * on the host element.\n\t\t\t */\n\t\t\tanchorClick: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tfocus: (options?: FocusOptions) => void;\n\t\t\tclick: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tanchor: HTMLAnchorElement;\n\t\t\ttooltip: HTMLDivElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * Derived aria-current value: one of the aria-current tokens when the link's href\n\t\t\t * matches the current location, otherwise an empty string (rendered as undefined →\n\t\t\t * no aria-current attribute). Managed via setState for reactivity.\n\t\t\t */\n\t\t\tariaCurrent: string;\n\t\t\t/**\n\t\t\t * DOM id of the visually-hidden span that carries the aria description. Generated\n\t\t\t * once per web component instance and referenced by the anchor's aria-describedby\n\t\t\t * attribute, since aria-description lacks screen reader support.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * Whether the expert slot should be rendered. True only when the consumer explicitly\n\t\t\t * passed an empty-string label. When the label is undefined (default ''), the expert\n\t\t\t * slot stays off and the href is used as the fallback label text.\n\t\t\t */\n\t\t\texpertSlot: boolean;\n\t\t};\n\t}\n>;\n"],"names":["normalizeString","createPropDefinition","createCallbacksPropDefinition","bem","translate","devHint","h","BemRootNodeFC","clsx","classNameFromVariant","preventFocus","SpanFC","IconFC","TooltipFC","AriaDescriptionSpanFC","hrefProp","accessKeyProp","ariaControlsProp","ariaDescriptionProp","ariaExpandedProp","customClassProp","disabledProp","hideLabelProp","spanIconsProp","inlineProp","labelWithExpertSlotProp","linkRoleProp","linkTargetProp","shortKeyProp","tabIndexProp","tooltipAlignProp","variantProp"],"mappings":"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"}
@@ -5,8 +5,8 @@
5
5
 
6
6
  var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
7
7
  var common = require('./common-B9-LvLNa.js');
8
- var component$1 = require('./component-o3s7XplI.js');
9
- var dev_utils = require('./dev.utils-BjrG4FNf.js');
8
+ var component$1 = require('./component-Dd-PS3jp.js');
9
+ var dev_utils = require('./dev.utils-DybQ4euF.js');
10
10
  var events = require('./events-PISRnO5c.js');
11
11
  var behavior$1 = require('./behavior-Bmn6D2FN.js');
12
12
  var disabled = require('./disabled-B8tOrtj_.js');
@@ -14,18 +14,18 @@ var variant = require('./variant-wdbSxe--.js');
14
14
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
15
15
  var labelWithExpertSlot = require('./label-with-expert-slot-BE6OwnkL.js');
16
16
  var name = require('./name-Cyu3yG1t.js');
17
- var item = require('./item-BSdQbEav.js');
18
- var item$1 = require('./item-wz0gBnmK.js');
17
+ var item = require('./item-D8Zz2ROC.js');
18
+ var item$1 = require('./item-K1SS6pAu.js');
19
19
  var behavior = require('./behavior-DMhnAIvG.js');
20
- var index = require('./index-BnEus4Y9.js');
20
+ var index = require('./index-RAfZF5x0.js');
21
21
  var i18n = require('./i18n-UGaB-Dwg.js');
22
- var component$4 = require('./component-xIM903qi.js');
22
+ var component$4 = require('./component-CAkixzEQ.js');
23
23
  var bemRegistry = require('./bem-registry-BDVdt6ar.js');
24
24
  var clsx = require('./clsx-Bm_HQUnh.js');
25
- var component$5 = require('./component-X_thXnkE.js');
26
- var component$3 = require('./component-GfDUM7Um.js');
27
- var component = require('./component-CtNPdMS0.js');
28
- var component$2 = require('./component-uHDfV5D8.js');
25
+ var component$5 = require('./component-Du98sklA.js');
26
+ var component$3 = require('./component-Dw6Tq7Wb.js');
27
+ var component = require('./component-DjDOgcWW.js');
28
+ var component$2 = require('./component-BUCx7i5o.js');
29
29
 
30
30
  function isMsgDefinedAndInputTouched(msg, touched) {
31
31
  return Boolean(msg) && touched === true;
@@ -407,6 +407,6 @@ exports.formFieldBasePropsConfig = formFieldBasePropsConfig;
407
407
  exports.getDefaultInputProps = getDefaultInputProps;
408
408
  exports.getMsgType = getMsgType;
409
409
  exports.isMsgDefinedAndInputTouched = isMsgDefinedAndInputTouched;
410
- //# sourceMappingURL=api-LP3gnw7U.js.map
410
+ //# sourceMappingURL=api-BI1qXrGa.js.map
411
411
 
412
- //# sourceMappingURL=api-LP3gnw7U.js.map
412
+ //# sourceMappingURL=api-BI1qXrGa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-LP3gnw7U.js","sources":["src/schema/props/msg.ts","src/internal/props/hide-msg.ts","src/internal/props/hint.ts","src/internal/props/info-popover.ts","src/internal/props/input-callbacks.ts","src/internal/props/msg.ts","src/internal/props/touched.ts","src/internal/functional-components/form-field/aria.ts","src/internal/functional-components/form-field/hint.tsx","src/internal/functional-components/form-field/label.tsx","src/internal/functional-components/form-field/msg.tsx","src/internal/functional-components/form-field/component.tsx","src/internal/functional-components/form-field/base-web-component.tsx","src/internal/functional-components/form-field/default-input-props.ts","src/internal/functional-components/form-field/api.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\nimport type { AlertProps } from '../components';\nimport type { Stringified } from '../types';\nimport { objectObjectHandler, parseJson, watchValidator } from '../utils';\nimport { isObject, isString } from '../validators';\n\n/* types */\nexport type MsgPropType = Omit<AlertProps, '_level' | '_on' | '_label' | '_hasCloser' | '_variant'> & { _description: string };\n\n/**\n * Defines the properties for a message rendered as Alert component.\n */\nexport type PropMsg = {\n\tmsg: Stringified<MsgPropType>;\n};\n\n/* validator */\nexport const validateMsg = (component: Generic.Element.Component, value?: Stringified<MsgPropType>): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<MsgPropType>(value);\n\t\t} catch {\n\t\t\t// value keeps original value\n\t\t}\n\t\twatchValidator<Stringified<MsgPropType>>(\n\t\t\tcomponent,\n\t\t\t`_msg`,\n\t\t\t(value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && value.length > 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (isObject(value) && value !== null) {\n\t\t\t\t\tconst desc = (value as { _description?: unknown })._description;\n\t\t\t\t\treturn isString(desc, 1);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tnew Set(['MsgPropType', 'string']),\n\t\t\tvalue as Stringified<MsgPropType>,\n\t\t);\n\t});\n};\n\nexport function isMsgDefinedAndInputTouched(msg?: Stringified<MsgPropType>, touched?: boolean): boolean {\n\t/**\n\t * We support 5 types of messages:\n\t * - default\n\t * - info\n\t * - success\n\t * - warning\n\t * - error\n\t *\n\t * Messages on inputs are only rendered after the field has been touched,\n\t * regardless of the message type.\n\t */\n\treturn Boolean(msg) && touched === true;\n}\n\nexport const checkHasMsg = isMsgDefinedAndInputTouched;\n\nexport function normalizeMsg(msg?: Stringified<MsgPropType>): MsgPropType | undefined {\n\tif (typeof msg === 'string') {\n\t\ttry {\n\t\t\treturn parseJson<MsgPropType>(msg);\n\t\t} catch {\n\t\t\treturn { _description: msg, _type: 'error' };\n\t\t}\n\t}\n\tif (msg && typeof msg === 'object' && !('_type' in msg)) {\n\t\treturn { ...msg, _type: 'error' };\n\t}\n\treturn msg;\n}\n\nexport function getMsgType(msg?: Stringified<MsgPropType>): MsgPropType['_type'] | 'error' {\n\tif (typeof msg === 'string') {\n\t\treturn 'error';\n\t}\n\n\treturn msg?._type ?? 'error';\n}\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Hide message prop for form fields\n *\n * Description:\n * Hides the validation message of a form field visually. The field still marks itself invalid.\n */\nexport type HideMsgProp = SimpleProp<'hideMsg', boolean>;\nexport const hideMsgProp = createPropDefinition<HideMsgProp>('hideMsg', false, normalizeBoolean);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * Hint prop for form fields\n *\n * Description:\n * A short help text below the field. It is referenced by `aria-describedby`, so assistive\n * technology announces it together with the field (WCAG 3.3.2 Labels or Instructions).\n * The empty string renders no hint.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html\n */\nexport type HintProp = SimpleProp<'hint', string>;\nexport const hintProp = createPropDefinition<HintProp>('hint', '', normalizeString);\n","import type { FormFieldLabelInfoPopoverProps } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Info popover prop for form fields\n *\n * Description:\n * The props of a popover button that the field renders next to its label, for additional\n * information on the field. The object is passed on to the popover button as it is.\n */\nexport type InfoPopoverProp = SimpleProp<'infoPopover', FormFieldLabelInfoPopoverProps>;\n\nfunction normalizeInfoPopover(value: unknown): FormFieldLabelInfoPopoverProps | never {\n\tif (typeof value === 'object' && value !== null) {\n\t\treturn value as FormFieldLabelInfoPopoverProps;\n\t}\n\tthrow new Error(`Invalid info popover: ${typeof value}`);\n}\n\n// The default is `undefined`: without an info popover the label renders no popover button.\nexport const infoPopoverProp = createPropDefinition<InfoPopoverProp>(\n\t'infoPopover',\n\tundefined as unknown as FormFieldLabelInfoPopoverProps,\n\tnormalizeInfoPopover,\n);\n","import type { InputTypeOnDefault } from '../../schema';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\n/**\n * Callbacks prop (`_on`) shared by all form fields. Every field declares the same\n * `InputTypeOnDefault`; the value passed to `onChange` and `onInput` differs per field at runtime.\n */\nexport const inputCallbacksProp = createCallbacksPropDefinition<InputTypeOnDefault>();\n","import type { MsgPropType, Stringified } from '../../schema';\nimport { isObject, isString, parseJson } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Message prop for form fields\n *\n * Description:\n * The validation message of a form field, as an object or as a JSON string when it is passed\n * through an HTML attribute. A plain string that is no JSON is kept as it is and rendered as an\n * error message. The message is only rendered once the field is touched.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/error-identification.html\n */\nexport type MsgProp = SimpleProp<'msg', Stringified<MsgPropType>>;\n\nfunction normalizeMsg(value: unknown): Stringified<MsgPropType> {\n\tif (typeof value === 'string') {\n\t\ttry {\n\t\t\treturn parseJson<MsgPropType>(value);\n\t\t} catch {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn value as Stringified<MsgPropType>;\n}\n\nfunction validateMsg(value: Stringified<MsgPropType>): boolean {\n\tif (value === undefined) {\n\t\treturn true;\n\t}\n\tif (typeof value === 'string') {\n\t\treturn value.length > 0;\n\t}\n\treturn isObject(value) && isString((value as { _description?: unknown })._description, 1);\n}\n\n// The default is `undefined`: a field without a message renders neither the message nor its\n// `aria-describedby` reference, and every reader checks the message for truthiness.\nexport const msgProp = createPropDefinition<MsgProp>('msg', undefined as unknown as Stringified<MsgPropType>, normalizeMsg, validateMsg);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Touched prop for form fields\n *\n * Description:\n * Whether the user has already visited the field. Validation messages are only rendered for a\n * touched field; the field sets the prop itself once the focus leaves it.\n */\nexport type TouchedProp = SimpleProp<'touched', boolean>;\nexport const touchedProp = createPropDefinition<TouchedProp>('touched', false, normalizeBoolean);\n","import type { MsgPropType, Stringified } from '../../../schema';\nimport { getMsgType } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\n\ntype FormFieldAriaInput = {\n\tid: string;\n\tmsg?: Stringified<MsgPropType>;\n\thint?: string;\n\ttouched?: boolean;\n\thideMsg?: boolean;\n};\n\ntype FormFieldAria = {\n\t/** Whether the field is invalid: an error message is set and the field is touched. */\n\thasError: boolean;\n\thasHint: boolean;\n\t/** IDs of the message and the hint, referenced by the input's `aria-describedby`. */\n\tariaDescribedBy: string[];\n};\n\n/**\n * Derives `aria-invalid` and `aria-describedby` of a form field input.\n *\n * Known quirks, pinned by the snapshots (#11035): the message is referenced as soon as it is set,\n * although it is only rendered once the field is touched, and `hasError` ignores `hideMsg`.\n */\nexport const getFormFieldAria = ({ id, msg, hint, touched, hideMsg }: FormFieldAriaInput): FormFieldAria => {\n\tconst description = typeof msg === 'string' ? msg : msg?._description;\n\tconst hasMessage = Boolean(description && description.length > 0);\n\tconst hasError = getMsgType(msg) === 'error' && hasMessage && touched === true;\n\tconst hasHint = typeof hint === 'string' && hint.length > 0;\n\n\tconst ariaDescribedBy: string[] = [];\n\tif (hasMessage && !hideMsg) {\n\t\tariaDescribedBy.push(createRelatedUniqueId(id, 'msg'));\n\t}\n\tif (hasHint) {\n\t\tariaDescribedBy.push(createRelatedUniqueId(id, 'hint'));\n\t}\n\treturn { hasError, hasHint, ariaDescribedBy };\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\n\nexport type FormFieldHintFCProps = JSXBase.HTMLAttributes<HTMLSpanElement> & {\n\thint?: string;\n\t/** Block of the surrounding field, `kol-form-field` or `kol-field-control`. */\n\tbaseClassName?: string;\n};\n\n/** Hint below a form field; renders nothing for an empty hint. */\nexport const FormFieldHintFC: FC<FormFieldHintFCProps> = ({ id, class: classNames, hint, baseClassName = 'kol-form-field', ...other }) => {\n\tif (!hint) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span class={clsx(`${baseClassName}__hint`, classNames)} id={createRelatedUniqueId(id || '', 'hint')} {...other}>\n\t\t\t{hint}\n\t\t</span>\n\t);\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport { translate } from '../../../i18n';\nimport { buildBadgeTextString } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport type { PopoverButtonFCProps } from '../popover-button/component';\nimport { PopoverButtonFC } from '../popover-button/component';\nimport { SpanFC } from '../span/component';\n\n/** The info popover of a form field label: the resolved popover button and the popover text. */\nexport type FormFieldInfoPopover = {\n\tpopoverButton: PopoverButtonFCProps;\n\tcontent: string;\n};\n\nexport type FormFieldLabelFCProps = JSXBase.HTMLAttributes<Omit<HTMLLabelElement | HTMLLegendElement, 'id' | 'hidden' | 'htmlFor'>> & {\n\t/** `legend` labels the fieldset of a radio group. */\n\tcomponent?: 'label' | 'legend';\n\tid: string;\n\tlabel?: string;\n\taccessKey?: string;\n\tshortKey?: string;\n\thasExpertSlot?: boolean;\n\thideLabel?: boolean;\n\t/** Block of the surrounding field, `kol-form-field` or `kol-field-control`. */\n\tbaseClassName?: string;\n\t/** Leaves the ID off the label, because the label tooltip of the control carries it. */\n\tomitId?: boolean;\n\tshowBadge?: boolean;\n\treadOnly?: boolean;\n\tinfoPopover?: FormFieldInfoPopover;\n};\n\n/**\n * Label of a form field with the access key badge, the read-only marker and the info popover. With\n * `hideLabel` the label stays in the DOM, hidden, and the field shows it as a tooltip instead.\n */\nexport const FormFieldLabelFC: FC<FormFieldLabelFCProps> = ({\n\tcomponent: Component = 'label',\n\tid,\n\tbaseClassName = 'kol-form-field',\n\tclass: classNames,\n\taccessKey,\n\tshortKey,\n\tlabel,\n\thideLabel,\n\thasExpertSlot,\n\tomitId,\n\tshowBadge = true,\n\treadOnly,\n\tinfoPopover,\n\t...other\n}) => {\n\tconst useTooltipInsteadOfLabel = !hasExpertSlot && hideLabel;\n\tconst badgeText = showBadge === false ? undefined : buildBadgeTextString(accessKey, shortKey);\n\n\treturn (\n\t\t<Component\n\t\t\t{...other}\n\t\t\tclass={clsx(`${baseClassName}__label`, classNames)}\n\t\t\tid={!useTooltipInsteadOfLabel && !omitId ? createRelatedUniqueId(id, 'label') : undefined}\n\t\t\thidden={useTooltipInsteadOfLabel}\n\t\t\thtmlFor={Component === 'legend' ? undefined : id}\n\t\t>\n\t\t\t<SpanFC class={`${baseClassName}__label-text`} label={hasExpertSlot ? '' : (label ?? '')} badgeText={badgeText}>\n\t\t\t\t<slot name=\"expert\"></slot>\n\t\t\t</SpanFC>\n\t\t\t{!hasExpertSlot && readOnly && (\n\t\t\t\t<span class={`${baseClassName}__label__read-only`} aria-hidden=\"true\">\n\t\t\t\t\t({translate('kol-readonly')})\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t{!hasExpertSlot && infoPopover && (\n\t\t\t\t/* The span is the flex item of the label: it holds the inline-block popover button in a\n\t\t\t\t line box, which sets the height of the label row. */\n\t\t\t\t<span>\n\t\t\t\t\t<PopoverButtonFC {...infoPopover.popoverButton}>\n\t\t\t\t\t\t<div class=\"kol-popover-button__popover--styled\">{infoPopover.content}</div>\n\t\t\t\t\t</PopoverButtonFC>\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</Component>\n\t);\n};\n","import { type FunctionalComponent as FC, h } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { AlertPropType, IdPropType, MsgPropType, Stringified } from '../../../schema';\nimport { normalizeMsg } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId, createUniqueId, nonce } from '../../../utils/dev.utils';\nimport { AlertFC } from '../alert/component';\n\nexport type FormFieldMsgFCProps = JSXBase.HTMLAttributes<HTMLElement> & {\n\talert?: AlertPropType;\n\tmsg?: Stringified<MsgPropType>;\n\tid: IdPropType;\n};\n\n/** Validation message of a form field, rendered as an inline alert. */\nexport const FormFieldMsgFC: FC<FormFieldMsgFCProps> = ({ alert, msg, id, class: classNames, ...other }) => {\n\tconst message = normalizeMsg(msg);\n\n\treturn (\n\t\t<AlertFC\n\t\t\talert={message?._alert ?? alert === true}\n\t\t\tclass={clsx('kol-form-field__msg', classNames)}\n\t\t\tcloserAriaDescriptionId={nonce()}\n\t\t\thandleCloserClick={() => undefined}\n\t\t\thasCloser={false}\n\t\t\theadingId={createUniqueId('alert-heading')}\n\t\t\tid={createRelatedUniqueId(id, 'msg')}\n\t\t\tlabel=\"\"\n\t\t\tlevel={0}\n\t\t\trefCloserButton={() => undefined}\n\t\t\trefCloserTooltip={() => undefined}\n\t\t\ttype={message?._type ?? 'error'}\n\t\t\tvariant=\"msg\"\n\t\t\t{...other}\n\t\t>\n\t\t\t{message?._description || undefined}\n\t\t</AlertFC>\n\t);\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport { translate } from '../../../i18n';\nimport type { MaxLengthBehaviorPropType, MsgPropType, Stringified, TooltipAlignPropType, VariantClassNamePropType } from '../../../schema';\nimport { buildBadgeTextString, classNameFromVariant, getMsgType, isMsgDefinedAndInputTouched, showExpertSlot } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { TooltipFC } from '../tooltip/component';\nimport { FormFieldHintFC } from './hint';\nimport type { FormFieldInfoPopover } from './label';\nimport { FormFieldLabelFC } from './label';\nimport { FormFieldMsgFC } from './msg';\n\nconst formFieldBem = bem.forBlock('kol-form-field');\n\nexport type FormFieldFCProps = Omit<JSXBase.HTMLAttributes<HTMLDivElement>, 'ref'> & {\n\tid: string;\n\talert?: boolean;\n\tdisabled?: boolean;\n\tmsg?: Stringified<MsgPropType>;\n\thint?: string;\n\tlabel: string;\n\thideLabel?: boolean;\n\thideMsg?: boolean;\n\tinfoPopover?: FormFieldInfoPopover;\n\taccessKey?: string;\n\tshortKey?: string;\n\tcounter?: {\n\t\tmaxLengthBehavior: MaxLengthBehaviorPropType;\n\t\tmaxLength?: number;\n\t\tvisualRef?: (el?: HTMLSpanElement) => void;\n\t\tariaRef?: (el?: HTMLSpanElement) => void;\n\t};\n\treadOnly?: boolean;\n\ttouched?: boolean;\n\trequired?: boolean;\n\trenderNoLabel?: boolean;\n\trenderNoTooltip?: boolean;\n\trenderNoHint?: boolean;\n\tmaxLength?: number;\n\tshowBadge?: boolean;\n\ttooltipAlign?: TooltipAlignPropType;\n\tvariant?: VariantClassNamePropType;\n\t/** `fieldset` groups the options of a radio group; its label is then a `legend` and `disabled` disables the `fieldset`. */\n\tcomponent?: 'div' | 'fieldset';\n\t/** Arranges the options of a group among each other or side by side. */\n\torientation?: 'horizontal' | 'vertical';\n\t/** Receives the `__input` wrapper, the reference element of the label tooltip. */\n\trefInput?: (el?: HTMLDivElement) => void;\n\t/** Receives the floating element of the label tooltip. */\n\trefTooltip: (el?: HTMLDivElement) => void;\n};\n\n/**\n * Whether the field shows its label as a tooltip instead of a visible label: with `hideLabel`,\n * unless the tooltip is disabled or the label is given through the expert slot.\n */\nexport const isLabelShownAsTooltip = ({ hideLabel, label, renderNoTooltip }: Pick<FormFieldFCProps, 'hideLabel' | 'label' | 'renderNoTooltip'>): boolean =>\n\t!renderNoTooltip && !showExpertSlot(label) && hideLabel === true;\n\ntype MsgTypeModifiers = Partial<\n\tRecord<\n\t\t'default' | 'error' | 'info' | 'success' | 'warning' | 'msg-type-default' | 'msg-type-error' | 'msg-type-info' | 'msg-type-success' | 'msg-type-warning',\n\t\tboolean\n\t>\n>;\n\nconst getMsgTypeModifiers = (msg?: Stringified<MsgPropType>): MsgTypeModifiers => {\n\tconst msgType = getMsgType(msg) as string;\n\treturn { [msgType]: true, [`msg-type-${msgType}`]: true };\n};\n\n/**\n * Stateless shell of a form field: label, the input wrapper with the label tooltip, the character\n * counter, the validation message, the hint and the hidden character limit hint. The web component\n * owns the tooltip behavior and connects it through `refInput` and `refTooltip`.\n */\nexport const FormFieldFC: FC<FormFieldFCProps> = (props, children) => {\n\tconst {\n\t\trenderNoLabel,\n\t\trenderNoTooltip,\n\t\trenderNoHint,\n\t\tid,\n\t\trequired,\n\t\talert,\n\t\tdisabled,\n\t\tclass: classNames,\n\t\tmsg,\n\t\thideMsg,\n\t\thideLabel,\n\t\tlabel,\n\t\tinfoPopover,\n\t\thint,\n\t\taccessKey,\n\t\tshortKey,\n\t\tcounter,\n\t\treadOnly,\n\t\ttouched,\n\t\tmaxLength,\n\t\tariaDescribedBy,\n\t\tshowBadge,\n\t\ttooltipAlign,\n\t\tvariant,\n\t\tcomponent = 'div',\n\t\torientation,\n\t\trefInput,\n\t\trefTooltip,\n\t\t...other\n\t} = props;\n\n\tconst hasExpertSlot = showExpertSlot(label);\n\tconst showMsg = isMsgDefinedAndInputTouched(msg, touched);\n\tconst badgeText = buildBadgeTextString(accessKey, shortKey);\n\tconst showTooltip = isLabelShownAsTooltip({ hideLabel, label, renderNoTooltip });\n\tconst isFieldset = component === 'fieldset';\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tcomponent={component}\n\t\t\tblock=\"kol-form-field\"\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: Boolean(disabled),\n\t\t\t\trequired: Boolean(required),\n\t\t\t\ttouched: Boolean(touched),\n\t\t\t\t'hide-label': Boolean(hideLabel),\n\t\t\t\t'read-only': Boolean(readOnly),\n\t\t\t\t'hidden-msg': Boolean(hideMsg),\n\t\t\t\t...(showMsg ? getMsgTypeModifiers(msg) : {}),\n\t\t\t}}\n\t\t\tclass={clsx(variant && classNameFromVariant(variant, 'form-field'), classNames)}\n\t\t\t// A disabled `fieldset` marks the whole group, legend included, as an inactive control (WCAG 1.4.3).\n\t\t\tdisabled={isFieldset && disabled ? true : undefined}\n\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t{...other}\n\t\t>\n\t\t\t{!renderNoLabel && (\n\t\t\t\t<FormFieldLabelFC\n\t\t\t\t\tcomponent={isFieldset ? 'legend' : 'label'}\n\t\t\t\t\t// `FormFieldLabelFC` renders the `__label` element itself, so only the modifier is added here.\n\t\t\t\t\tclass={isFieldset ? 'kol-form-field__label--legend' : undefined}\n\t\t\t\t\tid={id}\n\t\t\t\t\thasExpertSlot={hasExpertSlot}\n\t\t\t\t\thideLabel={hideLabel}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\taccessKey={accessKey}\n\t\t\t\t\tshortKey={shortKey}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tshowBadge={showBadge}\n\t\t\t\t\tinfoPopover={infoPopover}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclass={formFieldBem('input', {\n\t\t\t\t\t'orientation-horizontal': orientation === 'horizontal',\n\t\t\t\t\t'orientation-vertical': orientation === 'vertical',\n\t\t\t\t})}\n\t\t\t\tref={refInput}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showTooltip && (\n\t\t\t\t\t<div class={formFieldBem('tooltip')}>\n\t\t\t\t\t\t<TooltipFC badgeText={badgeText || ''} label={label} align={tooltipAlign} id={createRelatedUniqueId(id, 'label')} refFloating={refTooltip} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{counter && !(counter.maxLengthBehavior === 'soft' && typeof counter.maxLength !== 'number') && (\n\t\t\t\t<div class={formFieldBem('counter')}>\n\t\t\t\t\t<span data-testid=\"input-counter\" aria-hidden=\"true\" class={formFieldBem('counter')} ref={counter.visualRef} />\n\t\t\t\t\t<span aria-live=\"polite\" class=\"visually-hidden\" data-testid=\"input-counter-aria\" id={createRelatedUniqueId(id, 'counter')} ref={counter.ariaRef} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{showMsg && !hideMsg && <FormFieldMsgFC id={id} alert={alert} msg={msg} />}\n\t\t\t{!renderNoHint && <FormFieldHintFC id={id} hint={hint} />}\n\t\t\t{typeof maxLength === 'number' && !counter && (\n\t\t\t\t// The hidden character limit hint is only rendered without a counter: the counter spans\n\t\t\t\t// already announce the maximum.\n\t\t\t\t<span id={createRelatedUniqueId(id, 'character-limit-hint')} class=\"visually-hidden\">\n\t\t\t\t\t{translate('kol-character-limit-hint', { placeholders: { limit: String(maxLength) } })}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import type {\n\tFormFieldLabelInfoPopoverProps,\n\tInputTypeOnDefault,\n\tInternalButtonProps,\n\tLabelWithExpertSlotPropType,\n\tMsgPropType,\n\tStencilUnknown,\n\tStringified,\n\tTooltipAlignPropType,\n} from '../../../schema';\nimport { buildBadgeTextString } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { dispatchDomEvent, KolEvent } from '../../../utils/events';\nimport {\n\tariaDetailsProp,\n\tdisabledProp,\n\thideLabelProp,\n\thideMsgProp,\n\thintProp,\n\tinfoPopoverProp,\n\tinputCallbacksProp,\n\tlabelWithExpertSlotProp,\n\tmsgProp,\n\tnameProp,\n\ttooltipAlignProp,\n\ttouchedProp,\n} from '../../props';\nimport { BaseWebComponent } from '../base-web-component';\nimport type { ButtonItemFcProps } from '../button/item';\nimport { createButtonItem } from '../button/item';\nimport type { FormAssociationType } from '../form-association/api';\nimport { FormAssociationBehavior } from '../form-association/behavior';\nimport { createPopoverButtonItem } from '../popover-button/item';\nimport { TooltipBehavior } from '../tooltip/behavior';\nimport type { FormFieldBaseApi } from './api';\nimport { getFormFieldAria } from './aria';\nimport { type FormFieldFCProps, isLabelShownAsTooltip } from './component';\nimport type { FormFieldInfoPopover } from './label';\n\ntype FormFieldExtras = Pick<FormFieldFCProps, 'counter' | 'maxLength' | 'readOnly' | 'renderNoLabel' | 'renderNoTooltip' | 'required'> & {\n\t/** Class of the field, e.g. `kol-input-color`, added to the `kol-form-field` root. */\n\tclass: string;\n\taccessKey?: string;\n\tshortKey?: string;\n\tvariant?: string[];\n};\n\n/**\n * Shared orchestrator implementation of the form fields: it applies the props every field has,\n * owns the form association and the label tooltip, and handles the events of the native control.\n *\n * The concrete element keeps what Stencil has to see in the component class itself (DD16):\n * `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its `@Watch`, whose body calls\n * the matching `apply*` method, and the lifecycle methods.\n */\nexport abstract class BaseFormFieldWebComponent<Api extends FormFieldBaseApi> extends BaseWebComponent<Api> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/** Read at event time, like the native `disabled` state. */\n\tpublic abstract _disabled?: boolean;\n\t/** Read at event time, so a callback replaced after the last render is still called. */\n\tpublic abstract _on?: InputTypeOnDefault;\n\t/** Set to `true` once the focus leaves the field. */\n\tpublic abstract _touched?: boolean;\n\n\tprotected formAssociation!: FormAssociationBehavior;\n\n\tprivate readonly tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\n\tprivate readonly smartButton = createButtonItem(() => this.host);\n\n\t/**\n\t * The concrete element owns `infoPopoverOpen` as a `@State()` field, so toggling the popover\n\t * re-renders the field; the base API does not carry it, so access goes through a cast.\n\t */\n\tprivate readonly infoPopover = createPopoverButtonItem({\n\t\tgetFlagHost: () => this.host,\n\t\tgetOpen: () => (this as unknown as { infoPopoverOpen?: boolean }).infoPopoverOpen === true,\n\t\tsetOpen: (open) => {\n\t\t\t(this as unknown as { infoPopoverOpen: boolean }).infoPopoverOpen = open;\n\t\t},\n\t});\n\n\t/**\n\t * Whether the focus event of the current visit has been sent. It is reset only when the focus\n\t * leaves the host of an enabled field; `inputHasFocus` is reset on every blur.\n\t */\n\tprivate focusEventSent = false;\n\n\t/**\n\t * `ResolvedProps<Api>` cannot be resolved for a generic `Api`, so `setRenderProp('label', …)` does\n\t * not type-check here. The base props exist in every field API (`Api extends FormFieldBaseApi`),\n\t * so this view on the same instance is typed with the base API instead.\n\t */\n\tprivate get shared(): BaseFormFieldWebComponent<FormFieldBaseApi> {\n\t\treturn this as unknown as BaseFormFieldWebComponent<FormFieldBaseApi>;\n\t}\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`): Stencil populates `@Element()` there, and the hidden form element depends on the\n\t * name known at that point.\n\t */\n\tprotected initFormAssociation(type: FormAssociationType, name?: string): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type, name });\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncFormField(): void {\n\t\tthis.smartButton.syncListeners();\n\t\tthis.infoPopover.syncListeners();\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyFormField(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t\tthis.smartButton.destroy();\n\t\tthis.infoPopover.destroy();\n\t}\n\n\t/**\n\t * The info popover of the label, `undefined` without `_infoPopover`. Its toggle button is a ghost\n\t * button by default; it always hides its label and renders inline.\n\t */\n\tprotected getInfoPopover(): FormFieldInfoPopover | undefined {\n\t\tconst infoPopover = this.shared.getRenderProp('infoPopover');\n\t\tif (!infoPopover) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst { _content, ...popoverButton } = infoPopover;\n\t\treturn {\n\t\t\tpopoverButton: this.infoPopover.getFcProps({ _variant: 'ghost', ...popoverButton, _hideLabel: true, _inline: true }),\n\t\t\tcontent: _content,\n\t\t};\n\t}\n\n\t/**\n\t * `ButtonFC` props of the `_smartButton`, `undefined` without one. The smart button hides its\n\t * label and takes the disabled state of the field; its own `_hideLabel` and `_disabled` win.\n\t */\n\tprotected getSmartButtonFcProps(smartButton: InternalButtonProps | undefined, disabled?: boolean): ButtonItemFcProps | undefined {\n\t\tif (typeof smartButton !== 'object' || smartButton === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.smartButton.getFcProps({ _hideLabel: true, _disabled: disabled, ...smartButton }, { class: 'kol-input-container__smart-button' });\n\t}\n\n\t// --- Prop application (the concrete element's watchers delegate here) ---\n\n\tprotected applyAriaDetails(value?: string): void {\n\t\tariaDetailsProp.apply(value, (v) => this.shared.setRenderProp('ariaDetails', v));\n\t\tthis.formAssociation.watchAriaDetails(value);\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.shared.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.shared.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHideMsg(value?: boolean): void {\n\t\thideMsgProp.apply(value, (v) => this.shared.setRenderProp('hideMsg', v));\n\t}\n\n\tprotected applyHint(value?: string): void {\n\t\thintProp.apply(value, (v) => this.shared.setRenderProp('hint', v));\n\t}\n\n\tprotected applyInfoPopover(value?: FormFieldLabelInfoPopoverProps): void {\n\t\tinfoPopoverProp.apply(value, (v) => this.shared.setRenderProp('infoPopover', v));\n\t}\n\n\t/** `false` enables the expert slot, which the field renders for an empty label. */\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tconst label: unknown = value;\n\t\tlabelWithExpertSlotProp.apply(label === false ? '' : value, (v) => this.shared.setRenderProp('label', v));\n\t}\n\n\tprotected applyMsg(value?: Stringified<MsgPropType>): void {\n\t\tmsgProp.apply(value, (v) => this.shared.setRenderProp('msg', v));\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.shared.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: InputTypeOnDefault): void {\n\t\tinputCallbacksProp.apply(value, (v) => this.shared.setRenderProp('on', v));\n\t}\n\n\tprotected applySyncValueBySelector(value?: string): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\t/** Form fields show the tooltip on top by default; the shared prop defaults to `'right'`. */\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value ?? 'top', (v) => this.shared.setRenderProp('tooltipAlign', v));\n\t}\n\n\tprotected applyTouched(value?: boolean): void {\n\t\ttouchedProp.apply(value, (v) => this.shared.setRenderProp('touched', v));\n\t}\n\n\t// --- Event handling of the native control ---\n\n\t/**\n\t * The element that receives the KoliBri events and frames the focus of the field: the nearest host\n\t * with a shadow root, as resolved by the form association. It is the field itself, unless the field\n\t * renders into the shadow root of another component (`PageSizeSelect` in `kol-pagination`).\n\t */\n\tprivate get eventHost(): Element | undefined {\n\t\treturn this.formAssociation?.host ?? this.host;\n\t}\n\n\tprivate emit(type: KolEvent, value?: unknown): void {\n\t\tif (this.eventHost) {\n\t\t\tdispatchDomEvent(this.eventHost as HTMLElement, type, value);\n\t\t}\n\t}\n\n\t/** Dispatches the KoliBri event before the `_on` callback is called. */\n\tprotected readonly handleChange = (event: Event, value?: unknown): void => {\n\t\tevent.stopPropagation();\n\t\tif (typeof value === 'undefined') {\n\t\t\tvalue = (event.target as HTMLInputElement).value;\n\t\t}\n\t\tthis.emit(KolEvent.change, value);\n\t\tthis._on?.onChange?.(event, value);\n\t};\n\n\tprotected readonly handleInput = (event: Event, value?: unknown): void => {\n\t\tevent.stopPropagation();\n\t\tif (typeof value === 'undefined') {\n\t\t\tvalue = (event.target as HTMLInputElement).value;\n\t\t}\n\t\tthis.emit(KolEvent.input, value);\n\t\tthis.formAssociation.setFormAssociatedValue(value as StencilUnknown);\n\t\tthis._on?.onInput?.(event, value);\n\t};\n\n\tprotected readonly handleClick = (event: Event): void => {\n\t\tthis.emit(KolEvent.click);\n\t\tthis._on?.onClick?.(event);\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tif (!this.focusEventSent) {\n\t\t\tthis.emit(KolEvent.focus);\n\t\t\tthis._on?.onFocus?.(event);\n\t\t\tthis.focusEventSent = true;\n\t\t}\n\t\tthis.shared.setState('inputHasFocus', true);\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.handleFocusLeave(event);\n\t\tthis.shared.setState('inputHasFocus', false);\n\t};\n\n\t/**\n\t * Sends the blur when the focus leaves the field; focus moving to another element inside the field,\n\t * e.g. the smart button, is no blur of the field. `handleBlur` also resets `inputHasFocus`.\n\t */\n\tprotected handleFocusLeave(event: FocusEvent): void {\n\t\tif (this._disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst host = this.eventHost;\n\t\tconst root = host?.shadowRoot || host;\n\t\tconst isFocusInside = root?.contains(event.relatedTarget as Node) || host === event.relatedTarget;\n\t\tif (this.focusEventSent && !isFocusInside) {\n\t\t\tthis._touched = true;\n\t\t\tthis.emit(KolEvent.blur);\n\t\t\tthis._on?.onBlur?.(event);\n\t\t\tthis.focusEventSent = false;\n\t\t}\n\t}\n\n\tprotected readonly handleKeyDown = (event: KeyboardEvent): void => {\n\t\tthis.emit(KolEvent.keydown);\n\t\tthis._on?.onKeyDown?.(event);\n\t};\n\n\t// --- Render ---\n\n\t/** `aria-invalid` and `aria-describedby` of the native control. */\n\tprotected getAria(): ReturnType<typeof getFormFieldAria> {\n\t\tconst shared = this.shared;\n\t\treturn getFormFieldAria({\n\t\t\tid: shared.getState('id'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\thint: shared.getRenderProp('hint'),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\thideMsg: shared.getRenderProp('hideMsg'),\n\t\t});\n\t}\n\n\t/** A touched message is announced as alert only while the control does not have the focus. */\n\tprivate showAsAlert(): boolean {\n\t\treturn Boolean(this.shared.getRenderProp('touched')) && !this.shared.getState('inputHasFocus');\n\t}\n\n\tprivate readonly setInputRef = (el?: HTMLDivElement): void => {\n\t\tif (el && this.isTooltipShown()) {\n\t\t\tthis.tooltipBehavior.initContext(el);\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, el, true);\n\t\t}\n\t};\n\n\tprivate readonly setTooltipRef = (el?: HTMLDivElement): void => {\n\t\tthis.tooltipBehavior.setTooltipElementRef(el);\n\t};\n\n\tprivate isTooltipShown(): boolean {\n\t\tconst shared = this.shared;\n\t\treturn isLabelShownAsTooltip({ hideLabel: shared.getRenderProp('hideLabel'), label: shared.getRenderProp('label') });\n\t}\n\n\t/**\n\t * Refs of the label tooltip for a field that renders it in its `FieldControlFC` instead of the\n\t * form field shell, together with `renderNoTooltip` for `getFormFieldProps`.\n\t */\n\tprotected getLabelTooltipRefs(): { refInput: (el?: HTMLDivElement) => void; refTooltip: (el?: HTMLDivElement) => void } {\n\t\treturn { refInput: this.setInputRef, refTooltip: this.setTooltipRef };\n\t}\n\n\t/**\n\t * Props of the form field shell around the native control. Call once per render: it also hands\n\t * label, alignment and badge to the label tooltip, or tears it down while the label is visible.\n\t * With `renderNoTooltip` the shell does not connect the tooltip; see `getLabelTooltipRefs`.\n\t */\n\tprotected getFormFieldProps({\n\t\tclass: classNames,\n\t\taccessKey,\n\t\tshortKey,\n\t\tvariant,\n\t\tcounter,\n\t\tmaxLength,\n\t\treadOnly,\n\t\trenderNoLabel,\n\t\trenderNoTooltip,\n\t\trequired,\n\t}: FormFieldExtras): FormFieldFCProps {\n\t\tconst shared = this.shared;\n\t\tconst id = shared.getState('id');\n\t\tconst label = shared.getRenderProp('label');\n\t\tconst tooltipAlign = shared.getRenderProp('tooltipAlign');\n\n\t\tif (this.isTooltipShown()) {\n\t\t\tthis.tooltipBehavior.watchAlign(tooltipAlign);\n\t\t\tthis.tooltipBehavior.watchBadgeText(buildBadgeTextString(accessKey, shortKey) || '');\n\t\t\tthis.tooltipBehavior.watchId(createRelatedUniqueId(id, 'label'));\n\t\t\tthis.tooltipBehavior.watchLabel(label);\n\t\t} else {\n\t\t\tthis.tooltipBehavior.destroy();\n\t\t}\n\n\t\treturn {\n\t\t\tid,\n\t\t\tdisabled: shared.getRenderProp('disabled'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\thint: shared.getRenderProp('hint'),\n\t\t\tlabel,\n\t\t\thideLabel: shared.getRenderProp('hideLabel'),\n\t\t\thideMsg: shared.getRenderProp('hideMsg'),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\tshowBadge: Boolean(accessKey) || Boolean(shortKey),\n\t\t\trequired,\n\t\t\treadOnly,\n\t\t\taccessKey,\n\t\t\tshortKey,\n\t\t\tmaxLength,\n\t\t\tcounter,\n\t\t\tvariant,\n\t\t\tclass: classNames,\n\t\t\ttooltipAlign,\n\t\t\talert: this.showAsAlert(),\n\t\t\tinfoPopover: this.getInfoPopover(),\n\t\t\trenderNoLabel,\n\t\t\trenderNoTooltip,\n\t\t\trefInput: renderNoTooltip ? undefined : this.setInputRef,\n\t\t\trefTooltip: this.setTooltipRef,\n\t\t};\n\t}\n}\n","/**\n * Attributes every native form control of a field gets: no title tooltip, no autocapitalization or\n * autocorrection, the `aria-describedby` references and, with a hidden label, the label as\n * `aria-label`.\n */\nexport function getDefaultInputProps({ ariaDescribedBy, hideLabel, label }: { ariaDescribedBy?: string[]; hideLabel?: boolean; label?: string }): {\n\ttitle: string;\n\tautoCapitalize: string;\n\tautoCorrect: string;\n\t'aria-describedby'?: string;\n\t'aria-label'?: string;\n} {\n\treturn {\n\t\ttitle: '',\n\t\tautoCapitalize: 'off',\n\t\tautoCorrect: 'off',\n\t\t'aria-describedby': ariaDescribedBy?.length ? ariaDescribedBy.join(' ') : undefined,\n\t\t'aria-label': hideLabel && label ? label : undefined,\n\t};\n}\n\n/** Props of a native form control FC: the native attributes plus the field's label and descriptions. */\nexport type DefaultInputProps<T> = Omit<\n\t{\n\t\t// `aria${string}` is declared in the Stencil HTML types and collides with these props.\n\t\t[K in keyof T as K extends `aria${string}` ? never : K]: T[K];\n\t},\n\t'title' | 'autoCapitalize' | 'autoCorrect' | 'spellcheck'\n> & {\n\t/** Omitted by a secondary control the label does not reference, e.g. the range input of `kol-input-range`. */\n\tid?: string;\n\tariaDescribedBy?: string[];\n\thideLabel?: boolean;\n\tlabel?: string;\n};\n","import {\n\tariaDetailsProp,\n\tdisabledProp,\n\thideLabelProp,\n\thideMsgProp,\n\thintProp,\n\tinfoPopoverProp,\n\tinputCallbacksProp,\n\tlabelWithExpertSlotProp,\n\tmsgProp,\n\tnameProp,\n\ttooltipAlignProp,\n\ttouchedProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props every form field has, with the same type and default. A field's own config spreads these\n * in; props only some fields have (e.g. `accessKey`, `required`) stay in the field's config, because\n * `WebComponentInterface` requires a watcher for every config prop.\n */\nexport const formFieldBasePropsConfig = {\n\trequired: [labelWithExpertSlotProp],\n\toptional: [\n\t\tariaDetailsProp,\n\t\tdisabledProp,\n\t\thideLabelProp,\n\t\thideMsgProp,\n\t\thintProp,\n\t\tinfoPopoverProp,\n\t\tinputCallbacksProp,\n\t\tmsgProp,\n\t\tnameProp,\n\t\ttooltipAlignProp,\n\t\ttouchedProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type FormFieldBaseStates = {\n\t/** Base ID of the field; the IDs of label, hint, message and datalist derive from it. */\n\tid: string;\n\t/** Whether the native control has the focus; a touched message is announced as alert only without it. */\n\tinputHasFocus: boolean;\n};\n\nexport type FormFieldBaseApi = ApiFromConfig<typeof formFieldBasePropsConfig, { States: FormFieldBaseStates }>;\n"],"names":["normalizeMsg","parseJson","createPropDefinition","normalizeBoolean","normalizeString","createCallbacksPropDefinition","isObject","isString","createRelatedUniqueId","__rest","h","clsx","buildBadgeTextString","SpanFC","translate","PopoverButtonFC","AlertFC","nonce","createUniqueId","bem","showExpertSlot","BemRootNodeFC","classNameFromVariant","TooltipFC","BaseWebComponent","TooltipBehavior","createButtonItem","createPopoverButtonItem","KolEvent","FormAssociationBehavior","ariaDetailsProp","disabledProp","hideLabelProp","labelWithExpertSlotProp","nameProp","tooltipAlignProp","dispatchDomEvent"],"mappings":"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"}
1
+ {"version":3,"file":"api-BI1qXrGa.js","sources":["src/schema/props/msg.ts","src/internal/props/hide-msg.ts","src/internal/props/hint.ts","src/internal/props/info-popover.ts","src/internal/props/input-callbacks.ts","src/internal/props/msg.ts","src/internal/props/touched.ts","src/internal/functional-components/form-field/aria.ts","src/internal/functional-components/form-field/hint.tsx","src/internal/functional-components/form-field/label.tsx","src/internal/functional-components/form-field/msg.tsx","src/internal/functional-components/form-field/component.tsx","src/internal/functional-components/form-field/base-web-component.tsx","src/internal/functional-components/form-field/default-input-props.ts","src/internal/functional-components/form-field/api.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\nimport type { AlertProps } from '../components';\nimport type { Stringified } from '../types';\nimport { objectObjectHandler, parseJson, watchValidator } from '../utils';\nimport { isObject, isString } from '../validators';\n\n/* types */\nexport type MsgPropType = Omit<AlertProps, '_level' | '_on' | '_label' | '_hasCloser' | '_variant'> & { _description: string };\n\n/**\n * Defines the properties for a message rendered as Alert component.\n */\nexport type PropMsg = {\n\tmsg: Stringified<MsgPropType>;\n};\n\n/* validator */\nexport const validateMsg = (component: Generic.Element.Component, value?: Stringified<MsgPropType>): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<MsgPropType>(value);\n\t\t} catch {\n\t\t\t// value keeps original value\n\t\t}\n\t\twatchValidator<Stringified<MsgPropType>>(\n\t\t\tcomponent,\n\t\t\t`_msg`,\n\t\t\t(value) => {\n\t\t\t\tif (value === undefined) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && value.length > 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (isObject(value) && value !== null) {\n\t\t\t\t\tconst desc = (value as { _description?: unknown })._description;\n\t\t\t\t\treturn isString(desc, 1);\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tnew Set(['MsgPropType', 'string']),\n\t\t\tvalue as Stringified<MsgPropType>,\n\t\t);\n\t});\n};\n\nexport function isMsgDefinedAndInputTouched(msg?: Stringified<MsgPropType>, touched?: boolean): boolean {\n\t/**\n\t * We support 5 types of messages:\n\t * - default\n\t * - info\n\t * - success\n\t * - warning\n\t * - error\n\t *\n\t * Messages on inputs are only rendered after the field has been touched,\n\t * regardless of the message type.\n\t */\n\treturn Boolean(msg) && touched === true;\n}\n\nexport const checkHasMsg = isMsgDefinedAndInputTouched;\n\nexport function normalizeMsg(msg?: Stringified<MsgPropType>): MsgPropType | undefined {\n\tif (typeof msg === 'string') {\n\t\ttry {\n\t\t\treturn parseJson<MsgPropType>(msg);\n\t\t} catch {\n\t\t\treturn { _description: msg, _type: 'error' };\n\t\t}\n\t}\n\tif (msg && typeof msg === 'object' && !('_type' in msg)) {\n\t\treturn { ...msg, _type: 'error' };\n\t}\n\treturn msg;\n}\n\nexport function getMsgType(msg?: Stringified<MsgPropType>): MsgPropType['_type'] | 'error' {\n\tif (typeof msg === 'string') {\n\t\treturn 'error';\n\t}\n\n\treturn msg?._type ?? 'error';\n}\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Hide message prop for form fields\n *\n * Description:\n * Hides the validation message of a form field visually. The field still marks itself invalid.\n */\nexport type HideMsgProp = SimpleProp<'hideMsg', boolean>;\nexport const hideMsgProp = createPropDefinition<HideMsgProp>('hideMsg', false, normalizeBoolean);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * Hint prop for form fields\n *\n * Description:\n * A short help text below the field. It is referenced by `aria-describedby`, so assistive\n * technology announces it together with the field (WCAG 3.3.2 Labels or Instructions).\n * The empty string renders no hint.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html\n */\nexport type HintProp = SimpleProp<'hint', string>;\nexport const hintProp = createPropDefinition<HintProp>('hint', '', normalizeString);\n","import type { FormFieldLabelInfoPopoverProps } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Info popover prop for form fields\n *\n * Description:\n * The props of a popover button that the field renders next to its label, for additional\n * information on the field. The object is passed on to the popover button as it is.\n */\nexport type InfoPopoverProp = SimpleProp<'infoPopover', FormFieldLabelInfoPopoverProps>;\n\nfunction normalizeInfoPopover(value: unknown): FormFieldLabelInfoPopoverProps | never {\n\tif (typeof value === 'object' && value !== null) {\n\t\treturn value as FormFieldLabelInfoPopoverProps;\n\t}\n\tthrow new Error(`Invalid info popover: ${typeof value}`);\n}\n\n// The default is `undefined`: without an info popover the label renders no popover button.\nexport const infoPopoverProp = createPropDefinition<InfoPopoverProp>(\n\t'infoPopover',\n\tundefined as unknown as FormFieldLabelInfoPopoverProps,\n\tnormalizeInfoPopover,\n);\n","import type { InputTypeOnDefault } from '../../schema';\nimport { createCallbacksPropDefinition } from './helpers/factory';\n\n/**\n * Callbacks prop (`_on`) shared by all form fields. Every field declares the same\n * `InputTypeOnDefault`; the value passed to `onChange` and `onInput` differs per field at runtime.\n */\nexport const inputCallbacksProp = createCallbacksPropDefinition<InputTypeOnDefault>();\n","import type { MsgPropType, Stringified } from '../../schema';\nimport { isObject, isString, parseJson } from '../../schema';\nimport type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Message prop for form fields\n *\n * Description:\n * The validation message of a form field, as an object or as a JSON string when it is passed\n * through an HTML attribute. A plain string that is no JSON is kept as it is and rendered as an\n * error message. The message is only rendered once the field is touched.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/error-identification.html\n */\nexport type MsgProp = SimpleProp<'msg', Stringified<MsgPropType>>;\n\nfunction normalizeMsg(value: unknown): Stringified<MsgPropType> {\n\tif (typeof value === 'string') {\n\t\ttry {\n\t\t\treturn parseJson<MsgPropType>(value);\n\t\t} catch {\n\t\t\treturn value;\n\t\t}\n\t}\n\treturn value as Stringified<MsgPropType>;\n}\n\nfunction validateMsg(value: Stringified<MsgPropType>): boolean {\n\tif (value === undefined) {\n\t\treturn true;\n\t}\n\tif (typeof value === 'string') {\n\t\treturn value.length > 0;\n\t}\n\treturn isObject(value) && isString((value as { _description?: unknown })._description, 1);\n}\n\n// The default is `undefined`: a field without a message renders neither the message nor its\n// `aria-describedby` reference, and every reader checks the message for truthiness.\nexport const msgProp = createPropDefinition<MsgProp>('msg', undefined as unknown as Stringified<MsgPropType>, normalizeMsg, validateMsg);\n","import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Touched prop for form fields\n *\n * Description:\n * Whether the user has already visited the field. Validation messages are only rendered for a\n * touched field; the field sets the prop itself once the focus leaves it.\n */\nexport type TouchedProp = SimpleProp<'touched', boolean>;\nexport const touchedProp = createPropDefinition<TouchedProp>('touched', false, normalizeBoolean);\n","import type { MsgPropType, Stringified } from '../../../schema';\nimport { getMsgType } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\n\ntype FormFieldAriaInput = {\n\tid: string;\n\tmsg?: Stringified<MsgPropType>;\n\thint?: string;\n\ttouched?: boolean;\n\thideMsg?: boolean;\n};\n\ntype FormFieldAria = {\n\t/** Whether the field is invalid: an error message is set and the field is touched. */\n\thasError: boolean;\n\thasHint: boolean;\n\t/** IDs of the message and the hint, referenced by the input's `aria-describedby`. */\n\tariaDescribedBy: string[];\n};\n\n/**\n * Derives `aria-invalid` and `aria-describedby` of a form field input.\n *\n * Known quirks, pinned by the snapshots (#11035): the message is referenced as soon as it is set,\n * although it is only rendered once the field is touched, and `hasError` ignores `hideMsg`.\n */\nexport const getFormFieldAria = ({ id, msg, hint, touched, hideMsg }: FormFieldAriaInput): FormFieldAria => {\n\tconst description = typeof msg === 'string' ? msg : msg?._description;\n\tconst hasMessage = Boolean(description && description.length > 0);\n\tconst hasError = getMsgType(msg) === 'error' && hasMessage && touched === true;\n\tconst hasHint = typeof hint === 'string' && hint.length > 0;\n\n\tconst ariaDescribedBy: string[] = [];\n\tif (hasMessage && !hideMsg) {\n\t\tariaDescribedBy.push(createRelatedUniqueId(id, 'msg'));\n\t}\n\tif (hasHint) {\n\t\tariaDescribedBy.push(createRelatedUniqueId(id, 'hint'));\n\t}\n\treturn { hasError, hasHint, ariaDescribedBy };\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\n\nexport type FormFieldHintFCProps = JSXBase.HTMLAttributes<HTMLSpanElement> & {\n\thint?: string;\n\t/** Block of the surrounding field, `kol-form-field` or `kol-field-control`. */\n\tbaseClassName?: string;\n};\n\n/** Hint below a form field; renders nothing for an empty hint. */\nexport const FormFieldHintFC: FC<FormFieldHintFCProps> = ({ id, class: classNames, hint, baseClassName = 'kol-form-field', ...other }) => {\n\tif (!hint) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<span class={clsx(`${baseClassName}__hint`, classNames)} id={createRelatedUniqueId(id || '', 'hint')} {...other}>\n\t\t\t{hint}\n\t\t</span>\n\t);\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport { translate } from '../../../i18n';\nimport { buildBadgeTextString } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport type { PopoverButtonFCProps } from '../popover-button/component';\nimport { PopoverButtonFC } from '../popover-button/component';\nimport { SpanFC } from '../span/component';\n\n/** The info popover of a form field label: the resolved popover button and the popover text. */\nexport type FormFieldInfoPopover = {\n\tpopoverButton: PopoverButtonFCProps;\n\tcontent: string;\n};\n\nexport type FormFieldLabelFCProps = JSXBase.HTMLAttributes<Omit<HTMLLabelElement | HTMLLegendElement, 'id' | 'hidden' | 'htmlFor'>> & {\n\t/** `legend` labels the fieldset of a radio group. */\n\tcomponent?: 'label' | 'legend';\n\tid: string;\n\tlabel?: string;\n\taccessKey?: string;\n\tshortKey?: string;\n\thasExpertSlot?: boolean;\n\thideLabel?: boolean;\n\t/** Block of the surrounding field, `kol-form-field` or `kol-field-control`. */\n\tbaseClassName?: string;\n\t/** Leaves the ID off the label, because the label tooltip of the control carries it. */\n\tomitId?: boolean;\n\tshowBadge?: boolean;\n\treadOnly?: boolean;\n\tinfoPopover?: FormFieldInfoPopover;\n};\n\n/**\n * Label of a form field with the access key badge, the read-only marker and the info popover. With\n * `hideLabel` the label stays in the DOM, hidden, and the field shows it as a tooltip instead.\n */\nexport const FormFieldLabelFC: FC<FormFieldLabelFCProps> = ({\n\tcomponent: Component = 'label',\n\tid,\n\tbaseClassName = 'kol-form-field',\n\tclass: classNames,\n\taccessKey,\n\tshortKey,\n\tlabel,\n\thideLabel,\n\thasExpertSlot,\n\tomitId,\n\tshowBadge = true,\n\treadOnly,\n\tinfoPopover,\n\t...other\n}) => {\n\tconst useTooltipInsteadOfLabel = !hasExpertSlot && hideLabel;\n\tconst badgeText = showBadge === false ? undefined : buildBadgeTextString(accessKey, shortKey);\n\n\treturn (\n\t\t<Component\n\t\t\t{...other}\n\t\t\tclass={clsx(`${baseClassName}__label`, classNames)}\n\t\t\tid={!useTooltipInsteadOfLabel && !omitId ? createRelatedUniqueId(id, 'label') : undefined}\n\t\t\thidden={useTooltipInsteadOfLabel}\n\t\t\thtmlFor={Component === 'legend' ? undefined : id}\n\t\t>\n\t\t\t<SpanFC class={`${baseClassName}__label-text`} label={hasExpertSlot ? '' : (label ?? '')} badgeText={badgeText}>\n\t\t\t\t<slot name=\"expert\"></slot>\n\t\t\t</SpanFC>\n\t\t\t{!hasExpertSlot && readOnly && (\n\t\t\t\t<span class={`${baseClassName}__label__read-only`} aria-hidden=\"true\">\n\t\t\t\t\t({translate('kol-readonly')})\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t{!hasExpertSlot && infoPopover && (\n\t\t\t\t/* The span is the flex item of the label: it holds the inline-block popover button in a\n\t\t\t\t line box, which sets the height of the label row. */\n\t\t\t\t<span>\n\t\t\t\t\t<PopoverButtonFC {...infoPopover.popoverButton}>\n\t\t\t\t\t\t<div class=\"kol-popover-button__popover--styled\">{infoPopover.content}</div>\n\t\t\t\t\t</PopoverButtonFC>\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</Component>\n\t);\n};\n","import { type FunctionalComponent as FC, h } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { AlertPropType, IdPropType, MsgPropType, Stringified } from '../../../schema';\nimport { normalizeMsg } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId, createUniqueId, nonce } from '../../../utils/dev.utils';\nimport { AlertFC } from '../alert/component';\n\nexport type FormFieldMsgFCProps = JSXBase.HTMLAttributes<HTMLElement> & {\n\talert?: AlertPropType;\n\tmsg?: Stringified<MsgPropType>;\n\tid: IdPropType;\n};\n\n/** Validation message of a form field, rendered as an inline alert. */\nexport const FormFieldMsgFC: FC<FormFieldMsgFCProps> = ({ alert, msg, id, class: classNames, ...other }) => {\n\tconst message = normalizeMsg(msg);\n\n\treturn (\n\t\t<AlertFC\n\t\t\talert={message?._alert ?? alert === true}\n\t\t\tclass={clsx('kol-form-field__msg', classNames)}\n\t\t\tcloserAriaDescriptionId={nonce()}\n\t\t\thandleCloserClick={() => undefined}\n\t\t\thasCloser={false}\n\t\t\theadingId={createUniqueId('alert-heading')}\n\t\t\tid={createRelatedUniqueId(id, 'msg')}\n\t\t\tlabel=\"\"\n\t\t\tlevel={0}\n\t\t\trefCloserButton={() => undefined}\n\t\t\trefCloserTooltip={() => undefined}\n\t\t\ttype={message?._type ?? 'error'}\n\t\t\tvariant=\"msg\"\n\t\t\t{...other}\n\t\t>\n\t\t\t{message?._description || undefined}\n\t\t</AlertFC>\n\t);\n};\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport { translate } from '../../../i18n';\nimport type { MaxLengthBehaviorPropType, MsgPropType, Stringified, TooltipAlignPropType, VariantClassNamePropType } from '../../../schema';\nimport { buildBadgeTextString, classNameFromVariant, getMsgType, isMsgDefinedAndInputTouched, showExpertSlot } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport clsx from '../../../utils/clsx';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { TooltipFC } from '../tooltip/component';\nimport { FormFieldHintFC } from './hint';\nimport type { FormFieldInfoPopover } from './label';\nimport { FormFieldLabelFC } from './label';\nimport { FormFieldMsgFC } from './msg';\n\nconst formFieldBem = bem.forBlock('kol-form-field');\n\nexport type FormFieldFCProps = Omit<JSXBase.HTMLAttributes<HTMLDivElement>, 'ref'> & {\n\tid: string;\n\talert?: boolean;\n\tdisabled?: boolean;\n\tmsg?: Stringified<MsgPropType>;\n\thint?: string;\n\tlabel: string;\n\thideLabel?: boolean;\n\thideMsg?: boolean;\n\tinfoPopover?: FormFieldInfoPopover;\n\taccessKey?: string;\n\tshortKey?: string;\n\tcounter?: {\n\t\tmaxLengthBehavior: MaxLengthBehaviorPropType;\n\t\tmaxLength?: number;\n\t\tvisualRef?: (el?: HTMLSpanElement) => void;\n\t\tariaRef?: (el?: HTMLSpanElement) => void;\n\t};\n\treadOnly?: boolean;\n\ttouched?: boolean;\n\trequired?: boolean;\n\trenderNoLabel?: boolean;\n\trenderNoTooltip?: boolean;\n\trenderNoHint?: boolean;\n\tmaxLength?: number;\n\tshowBadge?: boolean;\n\ttooltipAlign?: TooltipAlignPropType;\n\tvariant?: VariantClassNamePropType;\n\t/** `fieldset` groups the options of a radio group; its label is then a `legend` and `disabled` disables the `fieldset`. */\n\tcomponent?: 'div' | 'fieldset';\n\t/** Arranges the options of a group among each other or side by side. */\n\torientation?: 'horizontal' | 'vertical';\n\t/** Receives the `__input` wrapper, the reference element of the label tooltip. */\n\trefInput?: (el?: HTMLDivElement) => void;\n\t/** Receives the floating element of the label tooltip. */\n\trefTooltip: (el?: HTMLDivElement) => void;\n};\n\n/**\n * Whether the field shows its label as a tooltip instead of a visible label: with `hideLabel`,\n * unless the tooltip is disabled or the label is given through the expert slot.\n */\nexport const isLabelShownAsTooltip = ({ hideLabel, label, renderNoTooltip }: Pick<FormFieldFCProps, 'hideLabel' | 'label' | 'renderNoTooltip'>): boolean =>\n\t!renderNoTooltip && !showExpertSlot(label) && hideLabel === true;\n\ntype MsgTypeModifiers = Partial<\n\tRecord<\n\t\t'default' | 'error' | 'info' | 'success' | 'warning' | 'msg-type-default' | 'msg-type-error' | 'msg-type-info' | 'msg-type-success' | 'msg-type-warning',\n\t\tboolean\n\t>\n>;\n\nconst getMsgTypeModifiers = (msg?: Stringified<MsgPropType>): MsgTypeModifiers => {\n\tconst msgType = getMsgType(msg) as string;\n\treturn { [msgType]: true, [`msg-type-${msgType}`]: true };\n};\n\n/**\n * Stateless shell of a form field: label, the input wrapper with the label tooltip, the character\n * counter, the validation message, the hint and the hidden character limit hint. The web component\n * owns the tooltip behavior and connects it through `refInput` and `refTooltip`.\n */\nexport const FormFieldFC: FC<FormFieldFCProps> = (props, children) => {\n\tconst {\n\t\trenderNoLabel,\n\t\trenderNoTooltip,\n\t\trenderNoHint,\n\t\tid,\n\t\trequired,\n\t\talert,\n\t\tdisabled,\n\t\tclass: classNames,\n\t\tmsg,\n\t\thideMsg,\n\t\thideLabel,\n\t\tlabel,\n\t\tinfoPopover,\n\t\thint,\n\t\taccessKey,\n\t\tshortKey,\n\t\tcounter,\n\t\treadOnly,\n\t\ttouched,\n\t\tmaxLength,\n\t\tariaDescribedBy,\n\t\tshowBadge,\n\t\ttooltipAlign,\n\t\tvariant,\n\t\tcomponent = 'div',\n\t\torientation,\n\t\trefInput,\n\t\trefTooltip,\n\t\t...other\n\t} = props;\n\n\tconst hasExpertSlot = showExpertSlot(label);\n\tconst showMsg = isMsgDefinedAndInputTouched(msg, touched);\n\tconst badgeText = buildBadgeTextString(accessKey, shortKey);\n\tconst showTooltip = isLabelShownAsTooltip({ hideLabel, label, renderNoTooltip });\n\tconst isFieldset = component === 'fieldset';\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tcomponent={component}\n\t\t\tblock=\"kol-form-field\"\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: Boolean(disabled),\n\t\t\t\trequired: Boolean(required),\n\t\t\t\ttouched: Boolean(touched),\n\t\t\t\t'hide-label': Boolean(hideLabel),\n\t\t\t\t'read-only': Boolean(readOnly),\n\t\t\t\t'hidden-msg': Boolean(hideMsg),\n\t\t\t\t...(showMsg ? getMsgTypeModifiers(msg) : {}),\n\t\t\t}}\n\t\t\tclass={clsx(variant && classNameFromVariant(variant, 'form-field'), classNames)}\n\t\t\t// A disabled `fieldset` marks the whole group, legend included, as an inactive control (WCAG 1.4.3).\n\t\t\tdisabled={isFieldset && disabled ? true : undefined}\n\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t{...other}\n\t\t>\n\t\t\t{!renderNoLabel && (\n\t\t\t\t<FormFieldLabelFC\n\t\t\t\t\tcomponent={isFieldset ? 'legend' : 'label'}\n\t\t\t\t\t// `FormFieldLabelFC` renders the `__label` element itself, so only the modifier is added here.\n\t\t\t\t\tclass={isFieldset ? 'kol-form-field__label--legend' : undefined}\n\t\t\t\t\tid={id}\n\t\t\t\t\thasExpertSlot={hasExpertSlot}\n\t\t\t\t\thideLabel={hideLabel}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\taccessKey={accessKey}\n\t\t\t\t\tshortKey={shortKey}\n\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\tshowBadge={showBadge}\n\t\t\t\t\tinfoPopover={infoPopover}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<div\n\t\t\t\tclass={formFieldBem('input', {\n\t\t\t\t\t'orientation-horizontal': orientation === 'horizontal',\n\t\t\t\t\t'orientation-vertical': orientation === 'vertical',\n\t\t\t\t})}\n\t\t\t\tref={refInput}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t{showTooltip && (\n\t\t\t\t\t<div class={formFieldBem('tooltip')}>\n\t\t\t\t\t\t<TooltipFC badgeText={badgeText || ''} label={label} align={tooltipAlign} id={createRelatedUniqueId(id, 'label')} refFloating={refTooltip} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{counter && !(counter.maxLengthBehavior === 'soft' && typeof counter.maxLength !== 'number') && (\n\t\t\t\t<div class={formFieldBem('counter')}>\n\t\t\t\t\t<span data-testid=\"input-counter\" aria-hidden=\"true\" class={formFieldBem('counter')} ref={counter.visualRef} />\n\t\t\t\t\t<span aria-live=\"polite\" class=\"visually-hidden\" data-testid=\"input-counter-aria\" id={createRelatedUniqueId(id, 'counter')} ref={counter.ariaRef} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{showMsg && !hideMsg && <FormFieldMsgFC id={id} alert={alert} msg={msg} />}\n\t\t\t{!renderNoHint && <FormFieldHintFC id={id} hint={hint} />}\n\t\t\t{typeof maxLength === 'number' && !counter && (\n\t\t\t\t// The hidden character limit hint is only rendered without a counter: the counter spans\n\t\t\t\t// already announce the maximum.\n\t\t\t\t<span id={createRelatedUniqueId(id, 'character-limit-hint')} class=\"visually-hidden\">\n\t\t\t\t\t{translate('kol-character-limit-hint', { placeholders: { limit: String(maxLength) } })}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</BemRootNodeFC>\n\t);\n};\n","import type {\n\tFormFieldLabelInfoPopoverProps,\n\tInputTypeOnDefault,\n\tInternalButtonProps,\n\tLabelWithExpertSlotPropType,\n\tMsgPropType,\n\tStencilUnknown,\n\tStringified,\n\tTooltipAlignPropType,\n} from '../../../schema';\nimport { buildBadgeTextString } from '../../../schema';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { dispatchDomEvent, KolEvent } from '../../../utils/events';\nimport {\n\tariaDetailsProp,\n\tdisabledProp,\n\thideLabelProp,\n\thideMsgProp,\n\thintProp,\n\tinfoPopoverProp,\n\tinputCallbacksProp,\n\tlabelWithExpertSlotProp,\n\tmsgProp,\n\tnameProp,\n\ttooltipAlignProp,\n\ttouchedProp,\n} from '../../props';\nimport { BaseWebComponent } from '../base-web-component';\nimport type { ButtonItemFcProps } from '../button/item';\nimport { createButtonItem } from '../button/item';\nimport type { FormAssociationType } from '../form-association/api';\nimport { FormAssociationBehavior } from '../form-association/behavior';\nimport { createPopoverButtonItem } from '../popover-button/item';\nimport { TooltipBehavior } from '../tooltip/behavior';\nimport type { FormFieldBaseApi } from './api';\nimport { getFormFieldAria } from './aria';\nimport { type FormFieldFCProps, isLabelShownAsTooltip } from './component';\nimport type { FormFieldInfoPopover } from './label';\n\ntype FormFieldExtras = Pick<FormFieldFCProps, 'counter' | 'maxLength' | 'readOnly' | 'renderNoLabel' | 'renderNoTooltip' | 'required'> & {\n\t/** Class of the field, e.g. `kol-input-color`, added to the `kol-form-field` root. */\n\tclass: string;\n\taccessKey?: string;\n\tshortKey?: string;\n\tvariant?: string[];\n};\n\n/**\n * Shared orchestrator implementation of the form fields: it applies the props every field has,\n * owns the form association and the label tooltip, and handles the events of the native control.\n *\n * The concrete element keeps what Stencil has to see in the component class itself (DD16):\n * `@Component`, `@Element`, `@State`, `@Method`, every `@Prop` with its `@Watch`, whose body calls\n * the matching `apply*` method, and the lifecycle methods.\n */\nexport abstract class BaseFormFieldWebComponent<Api extends FormFieldBaseApi> extends BaseWebComponent<Api> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/** Read at event time, like the native `disabled` state. */\n\tpublic abstract _disabled?: boolean;\n\t/** Read at event time, so a callback replaced after the last render is still called. */\n\tpublic abstract _on?: InputTypeOnDefault;\n\t/** Set to `true` once the focus leaves the field. */\n\tpublic abstract _touched?: boolean;\n\n\tprotected formAssociation!: FormAssociationBehavior;\n\n\tprivate readonly tooltipBehavior = new TooltipBehavior(BaseWebComponent.stateLess);\n\n\tprivate readonly smartButton = createButtonItem(() => this.host);\n\n\t/**\n\t * The concrete element owns `infoPopoverOpen` as a `@State()` field, so toggling the popover\n\t * re-renders the field; the base API does not carry it, so access goes through a cast.\n\t */\n\tprivate readonly infoPopover = createPopoverButtonItem({\n\t\tgetFlagHost: () => this.host,\n\t\tgetOpen: () => (this as unknown as { infoPopoverOpen?: boolean }).infoPopoverOpen === true,\n\t\tsetOpen: (open) => {\n\t\t\t(this as unknown as { infoPopoverOpen: boolean }).infoPopoverOpen = open;\n\t\t},\n\t});\n\n\t/**\n\t * Whether the focus event of the current visit has been sent. It is reset only when the focus\n\t * leaves the host of an enabled field; `inputHasFocus` is reset on every blur.\n\t */\n\tprivate focusEventSent = false;\n\n\t/**\n\t * `ResolvedProps<Api>` cannot be resolved for a generic `Api`, so `setRenderProp('label', …)` does\n\t * not type-check here. The base props exist in every field API (`Api extends FormFieldBaseApi`),\n\t * so this view on the same instance is typed with the base API instead.\n\t */\n\tprivate get shared(): BaseFormFieldWebComponent<FormFieldBaseApi> {\n\t\treturn this as unknown as BaseFormFieldWebComponent<FormFieldBaseApi>;\n\t}\n\n\t/**\n\t * Creates the form association. Must be called from the concrete element's constructor (after\n\t * `super()`): Stencil populates `@Element()` there, and the hidden form element depends on the\n\t * name known at that point.\n\t */\n\tprotected initFormAssociation(type: FormAssociationType, name?: string): void {\n\t\tthis.formAssociation = new FormAssociationBehavior(BaseWebComponent.stateLess, { host: this.host, type, name });\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncFormField(): void {\n\t\tthis.smartButton.syncListeners();\n\t\tthis.infoPopover.syncListeners();\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyFormField(): void {\n\t\tthis.tooltipBehavior.destroy();\n\t\tthis.smartButton.destroy();\n\t\tthis.infoPopover.destroy();\n\t}\n\n\t/**\n\t * The info popover of the label, `undefined` without `_infoPopover`. Its toggle button is a ghost\n\t * button by default; it always hides its label and renders inline.\n\t */\n\tprotected getInfoPopover(): FormFieldInfoPopover | undefined {\n\t\tconst infoPopover = this.shared.getRenderProp('infoPopover');\n\t\tif (!infoPopover) {\n\t\t\treturn undefined;\n\t\t}\n\t\tconst { _content, ...popoverButton } = infoPopover;\n\t\treturn {\n\t\t\tpopoverButton: this.infoPopover.getFcProps({ _variant: 'ghost', ...popoverButton, _hideLabel: true, _inline: true }),\n\t\t\tcontent: _content,\n\t\t};\n\t}\n\n\t/**\n\t * `ButtonFC` props of the `_smartButton`, `undefined` without one. The smart button hides its\n\t * label and takes the disabled state of the field; its own `_hideLabel` and `_disabled` win.\n\t */\n\tprotected getSmartButtonFcProps(smartButton: InternalButtonProps | undefined, disabled?: boolean): ButtonItemFcProps | undefined {\n\t\tif (typeof smartButton !== 'object' || smartButton === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this.smartButton.getFcProps({ _hideLabel: true, _disabled: disabled, ...smartButton }, { class: 'kol-input-container__smart-button' });\n\t}\n\n\t// --- Prop application (the concrete element's watchers delegate here) ---\n\n\tprotected applyAriaDetails(value?: string): void {\n\t\tariaDetailsProp.apply(value, (v) => this.shared.setRenderProp('ariaDetails', v));\n\t\tthis.formAssociation.watchAriaDetails(value);\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.shared.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.shared.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHideMsg(value?: boolean): void {\n\t\thideMsgProp.apply(value, (v) => this.shared.setRenderProp('hideMsg', v));\n\t}\n\n\tprotected applyHint(value?: string): void {\n\t\thintProp.apply(value, (v) => this.shared.setRenderProp('hint', v));\n\t}\n\n\tprotected applyInfoPopover(value?: FormFieldLabelInfoPopoverProps): void {\n\t\tinfoPopoverProp.apply(value, (v) => this.shared.setRenderProp('infoPopover', v));\n\t}\n\n\t/** `false` enables the expert slot, which the field renders for an empty label. */\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tconst label: unknown = value;\n\t\tlabelWithExpertSlotProp.apply(label === false ? '' : value, (v) => this.shared.setRenderProp('label', v));\n\t}\n\n\tprotected applyMsg(value?: Stringified<MsgPropType>): void {\n\t\tmsgProp.apply(value, (v) => this.shared.setRenderProp('msg', v));\n\t}\n\n\tprotected applyName(value?: string): void {\n\t\tnameProp.apply(value, (v) => this.shared.setRenderProp('name', v));\n\t\tthis.formAssociation.watchName(value);\n\t}\n\n\tprotected applyOn(value?: InputTypeOnDefault): void {\n\t\tinputCallbacksProp.apply(value, (v) => this.shared.setRenderProp('on', v));\n\t}\n\n\tprotected applySyncValueBySelector(value?: string): void {\n\t\tthis.formAssociation.watchSyncValueBySelector(value);\n\t}\n\n\t/** Form fields show the tooltip on top by default; the shared prop defaults to `'right'`. */\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value ?? 'top', (v) => this.shared.setRenderProp('tooltipAlign', v));\n\t}\n\n\tprotected applyTouched(value?: boolean): void {\n\t\ttouchedProp.apply(value, (v) => this.shared.setRenderProp('touched', v));\n\t}\n\n\t// --- Event handling of the native control ---\n\n\t/**\n\t * The element that receives the KoliBri events and frames the focus of the field: the nearest host\n\t * with a shadow root, as resolved by the form association. It is the field itself, unless the field\n\t * renders into the shadow root of another component (`PageSizeSelect` in `kol-pagination`).\n\t */\n\tprivate get eventHost(): Element | undefined {\n\t\treturn this.formAssociation?.host ?? this.host;\n\t}\n\n\tprivate emit(type: KolEvent, value?: unknown): void {\n\t\tif (this.eventHost) {\n\t\t\tdispatchDomEvent(this.eventHost as HTMLElement, type, value);\n\t\t}\n\t}\n\n\t/** Dispatches the KoliBri event before the `_on` callback is called. */\n\tprotected readonly handleChange = (event: Event, value?: unknown): void => {\n\t\tevent.stopPropagation();\n\t\tif (typeof value === 'undefined') {\n\t\t\tvalue = (event.target as HTMLInputElement).value;\n\t\t}\n\t\tthis.emit(KolEvent.change, value);\n\t\tthis._on?.onChange?.(event, value);\n\t};\n\n\tprotected readonly handleInput = (event: Event, value?: unknown): void => {\n\t\tevent.stopPropagation();\n\t\tif (typeof value === 'undefined') {\n\t\t\tvalue = (event.target as HTMLInputElement).value;\n\t\t}\n\t\tthis.emit(KolEvent.input, value);\n\t\tthis.formAssociation.setFormAssociatedValue(value as StencilUnknown);\n\t\tthis._on?.onInput?.(event, value);\n\t};\n\n\tprotected readonly handleClick = (event: Event): void => {\n\t\tthis.emit(KolEvent.click);\n\t\tthis._on?.onClick?.(event);\n\t};\n\n\tprotected readonly handleFocus = (event: FocusEvent): void => {\n\t\tif (!this.focusEventSent) {\n\t\t\tthis.emit(KolEvent.focus);\n\t\t\tthis._on?.onFocus?.(event);\n\t\t\tthis.focusEventSent = true;\n\t\t}\n\t\tthis.shared.setState('inputHasFocus', true);\n\t};\n\n\tprotected readonly handleBlur = (event: FocusEvent): void => {\n\t\tthis.handleFocusLeave(event);\n\t\tthis.shared.setState('inputHasFocus', false);\n\t};\n\n\t/**\n\t * Sends the blur when the focus leaves the field; focus moving to another element inside the field,\n\t * e.g. the smart button, is no blur of the field. `handleBlur` also resets `inputHasFocus`.\n\t */\n\tprotected handleFocusLeave(event: FocusEvent): void {\n\t\tif (this._disabled) {\n\t\t\treturn;\n\t\t}\n\t\tconst host = this.eventHost;\n\t\tconst root = host?.shadowRoot || host;\n\t\tconst isFocusInside = root?.contains(event.relatedTarget as Node) || host === event.relatedTarget;\n\t\tif (this.focusEventSent && !isFocusInside) {\n\t\t\tthis._touched = true;\n\t\t\tthis.emit(KolEvent.blur);\n\t\t\tthis._on?.onBlur?.(event);\n\t\t\tthis.focusEventSent = false;\n\t\t}\n\t}\n\n\tprotected readonly handleKeyDown = (event: KeyboardEvent): void => {\n\t\tthis.emit(KolEvent.keydown);\n\t\tthis._on?.onKeyDown?.(event);\n\t};\n\n\t// --- Render ---\n\n\t/** `aria-invalid` and `aria-describedby` of the native control. */\n\tprotected getAria(): ReturnType<typeof getFormFieldAria> {\n\t\tconst shared = this.shared;\n\t\treturn getFormFieldAria({\n\t\t\tid: shared.getState('id'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\thint: shared.getRenderProp('hint'),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\thideMsg: shared.getRenderProp('hideMsg'),\n\t\t});\n\t}\n\n\t/** A touched message is announced as alert only while the control does not have the focus. */\n\tprivate showAsAlert(): boolean {\n\t\treturn Boolean(this.shared.getRenderProp('touched')) && !this.shared.getState('inputHasFocus');\n\t}\n\n\tprivate readonly setInputRef = (el?: HTMLDivElement): void => {\n\t\tif (el && this.isTooltipShown()) {\n\t\t\tthis.tooltipBehavior.initContext(el);\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, el, true);\n\t\t}\n\t};\n\n\tprivate readonly setTooltipRef = (el?: HTMLDivElement): void => {\n\t\tthis.tooltipBehavior.setTooltipElementRef(el);\n\t};\n\n\tprivate isTooltipShown(): boolean {\n\t\tconst shared = this.shared;\n\t\treturn isLabelShownAsTooltip({ hideLabel: shared.getRenderProp('hideLabel'), label: shared.getRenderProp('label') });\n\t}\n\n\t/**\n\t * Refs of the label tooltip for a field that renders it in its `FieldControlFC` instead of the\n\t * form field shell, together with `renderNoTooltip` for `getFormFieldProps`.\n\t */\n\tprotected getLabelTooltipRefs(): { refInput: (el?: HTMLDivElement) => void; refTooltip: (el?: HTMLDivElement) => void } {\n\t\treturn { refInput: this.setInputRef, refTooltip: this.setTooltipRef };\n\t}\n\n\t/**\n\t * Props of the form field shell around the native control. Call once per render: it also hands\n\t * label, alignment and badge to the label tooltip, or tears it down while the label is visible.\n\t * With `renderNoTooltip` the shell does not connect the tooltip; see `getLabelTooltipRefs`.\n\t */\n\tprotected getFormFieldProps({\n\t\tclass: classNames,\n\t\taccessKey,\n\t\tshortKey,\n\t\tvariant,\n\t\tcounter,\n\t\tmaxLength,\n\t\treadOnly,\n\t\trenderNoLabel,\n\t\trenderNoTooltip,\n\t\trequired,\n\t}: FormFieldExtras): FormFieldFCProps {\n\t\tconst shared = this.shared;\n\t\tconst id = shared.getState('id');\n\t\tconst label = shared.getRenderProp('label');\n\t\tconst tooltipAlign = shared.getRenderProp('tooltipAlign');\n\n\t\tif (this.isTooltipShown()) {\n\t\t\tthis.tooltipBehavior.watchAlign(tooltipAlign);\n\t\t\tthis.tooltipBehavior.watchBadgeText(buildBadgeTextString(accessKey, shortKey) || '');\n\t\t\tthis.tooltipBehavior.watchId(createRelatedUniqueId(id, 'label'));\n\t\t\tthis.tooltipBehavior.watchLabel(label);\n\t\t} else {\n\t\t\tthis.tooltipBehavior.destroy();\n\t\t}\n\n\t\treturn {\n\t\t\tid,\n\t\t\tdisabled: shared.getRenderProp('disabled'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\thint: shared.getRenderProp('hint'),\n\t\t\tlabel,\n\t\t\thideLabel: shared.getRenderProp('hideLabel'),\n\t\t\thideMsg: shared.getRenderProp('hideMsg'),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\tshowBadge: Boolean(accessKey) || Boolean(shortKey),\n\t\t\trequired,\n\t\t\treadOnly,\n\t\t\taccessKey,\n\t\t\tshortKey,\n\t\t\tmaxLength,\n\t\t\tcounter,\n\t\t\tvariant,\n\t\t\tclass: classNames,\n\t\t\ttooltipAlign,\n\t\t\talert: this.showAsAlert(),\n\t\t\tinfoPopover: this.getInfoPopover(),\n\t\t\trenderNoLabel,\n\t\t\trenderNoTooltip,\n\t\t\trefInput: renderNoTooltip ? undefined : this.setInputRef,\n\t\t\trefTooltip: this.setTooltipRef,\n\t\t};\n\t}\n}\n","/**\n * Attributes every native form control of a field gets: no title tooltip, no autocapitalization or\n * autocorrection, the `aria-describedby` references and, with a hidden label, the label as\n * `aria-label`.\n */\nexport function getDefaultInputProps({ ariaDescribedBy, hideLabel, label }: { ariaDescribedBy?: string[]; hideLabel?: boolean; label?: string }): {\n\ttitle: string;\n\tautoCapitalize: string;\n\tautoCorrect: string;\n\t'aria-describedby'?: string;\n\t'aria-label'?: string;\n} {\n\treturn {\n\t\ttitle: '',\n\t\tautoCapitalize: 'off',\n\t\tautoCorrect: 'off',\n\t\t'aria-describedby': ariaDescribedBy?.length ? ariaDescribedBy.join(' ') : undefined,\n\t\t'aria-label': hideLabel && label ? label : undefined,\n\t};\n}\n\n/** Props of a native form control FC: the native attributes plus the field's label and descriptions. */\nexport type DefaultInputProps<T> = Omit<\n\t{\n\t\t// `aria${string}` is declared in the Stencil HTML types and collides with these props.\n\t\t[K in keyof T as K extends `aria${string}` ? never : K]: T[K];\n\t},\n\t'title' | 'autoCapitalize' | 'autoCorrect' | 'spellcheck'\n> & {\n\t/** Omitted by a secondary control the label does not reference, e.g. the range input of `kol-input-range`. */\n\tid?: string;\n\tariaDescribedBy?: string[];\n\thideLabel?: boolean;\n\tlabel?: string;\n};\n","import {\n\tariaDetailsProp,\n\tdisabledProp,\n\thideLabelProp,\n\thideMsgProp,\n\thintProp,\n\tinfoPopoverProp,\n\tinputCallbacksProp,\n\tlabelWithExpertSlotProp,\n\tmsgProp,\n\tnameProp,\n\ttooltipAlignProp,\n\ttouchedProp,\n} from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props every form field has, with the same type and default. A field's own config spreads these\n * in; props only some fields have (e.g. `accessKey`, `required`) stay in the field's config, because\n * `WebComponentInterface` requires a watcher for every config prop.\n */\nexport const formFieldBasePropsConfig = {\n\trequired: [labelWithExpertSlotProp],\n\toptional: [\n\t\tariaDetailsProp,\n\t\tdisabledProp,\n\t\thideLabelProp,\n\t\thideMsgProp,\n\t\thintProp,\n\t\tinfoPopoverProp,\n\t\tinputCallbacksProp,\n\t\tmsgProp,\n\t\tnameProp,\n\t\ttooltipAlignProp,\n\t\ttouchedProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type FormFieldBaseStates = {\n\t/** Base ID of the field; the IDs of label, hint, message and datalist derive from it. */\n\tid: string;\n\t/** Whether the native control has the focus; a touched message is announced as alert only without it. */\n\tinputHasFocus: boolean;\n};\n\nexport type FormFieldBaseApi = ApiFromConfig<typeof formFieldBasePropsConfig, { States: FormFieldBaseStates }>;\n"],"names":["normalizeMsg","parseJson","createPropDefinition","normalizeBoolean","normalizeString","createCallbacksPropDefinition","isObject","isString","createRelatedUniqueId","__rest","h","clsx","buildBadgeTextString","SpanFC","translate","PopoverButtonFC","AlertFC","nonce","createUniqueId","bem","showExpertSlot","BemRootNodeFC","classNameFromVariant","TooltipFC","BaseWebComponent","TooltipBehavior","createButtonItem","createPopoverButtonItem","KolEvent","FormAssociationBehavior","ariaDetailsProp","disabledProp","hideLabelProp","labelWithExpertSlotProp","nameProp","tooltipAlignProp","dispatchDomEvent"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var common = require('./common-B9-LvLNa.js');
7
- var index = require('./index-BnEus4Y9.js');
7
+ var index = require('./index-RAfZF5x0.js');
8
8
 
9
9
  var appGlobalScript = () => {
10
10
  index.setMode((elm) => {
@@ -17,7 +17,7 @@ var appGlobalScript = () => {
17
17
  }
18
18
  return 'default';
19
19
  });
20
- Promise.resolve().then(function () { return require('./devtools-D_afWgpU.js'); })
20
+ Promise.resolve().then(function () { return require('./devtools-Bw5sQJOl.js'); })
21
21
  .then((devTools) => {
22
22
  if (typeof devTools === 'object' && devTools !== null && typeof devTools.initialize === 'function') {
23
23
  devTools.initialize();
@@ -31,6 +31,6 @@ var appGlobalScript = () => {
31
31
  const globalScripts = appGlobalScript;
32
32
 
33
33
  exports.globalScripts = globalScripts;
34
- //# sourceMappingURL=app-globals-oR-jEiju.js.map
34
+ //# sourceMappingURL=app-globals-DPVGNVgE.js.map
35
35
 
36
- //# sourceMappingURL=app-globals-oR-jEiju.js.map
36
+ //# sourceMappingURL=app-globals-DPVGNVgE.js.map