@public-ui/components 4.5.0-rc.4 → 4.5.0-rc.5

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 (516) 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 -1
  7. package/dist/cjs/{Heading-CmJwWzTx.js → Heading-DG2wWECB.js} +3 -3
  8. package/dist/cjs/{Heading-CmJwWzTx.js.map → Heading-DG2wWECB.js.map} +1 -1
  9. package/dist/cjs/{api-CimiLGvb.js → api-8kjgnnU3.js} +8 -8
  10. package/dist/cjs/{api-CimiLGvb.js.map → api-8kjgnnU3.js.map} +1 -1
  11. package/dist/cjs/{api-CGIOreYK.js → api-C2rTkOz2.js} +12 -12
  12. package/dist/cjs/{api-CGIOreYK.js.map → api-C2rTkOz2.js.map} +1 -1
  13. package/dist/cjs/{app-globals-DXKl7Bxk.js → app-globals-B1xqi4rZ.js} +4 -4
  14. package/dist/cjs/{app-globals-DXKl7Bxk.js.map → app-globals-B1xqi4rZ.js.map} +1 -1
  15. package/dist/cjs/{base-3S-emPWZ.js → base-BMrlvKIO.js} +16 -16
  16. package/dist/cjs/{base-3S-emPWZ.js.map → base-BMrlvKIO.js.map} +1 -1
  17. package/dist/cjs/{base-BCEIzc57.js → base-Cea-xkFy.js} +5 -5
  18. package/dist/cjs/{base-BCEIzc57.js.map → base-Cea-xkFy.js.map} +1 -1
  19. package/dist/cjs/{base-DD2zVHk7.js → base-OMJLjz5u.js} +4 -4
  20. package/dist/cjs/{base-DD2zVHk7.js.map → base-OMJLjz5u.js.map} +1 -1
  21. package/dist/cjs/{base-web-component-8qVyDl6W.js → base-web-component-BCEKzbV3.js} +7 -7
  22. package/dist/cjs/{base-web-component-8qVyDl6W.js.map → base-web-component-BCEKzbV3.js.map} +1 -1
  23. package/dist/cjs/{base-web-component-CtQdH3PJ.js → base-web-component-CpH4iN97.js} +5 -5
  24. package/dist/cjs/{base-web-component-CtQdH3PJ.js.map → base-web-component-CpH4iN97.js.map} +1 -1
  25. package/dist/cjs/{base-CVLHbu6O.js → base-xR4eDUJg.js} +4 -4
  26. package/dist/cjs/{base-CVLHbu6O.js.map → base-xR4eDUJg.js.map} +1 -1
  27. package/dist/cjs/{behavior-B9JuvM3I.js → behavior-XywM4z8h.js} +3 -3
  28. package/dist/cjs/{behavior-B9JuvM3I.js.map → behavior-XywM4z8h.js.map} +1 -1
  29. package/dist/cjs/{component-CCZ7pXRv.js → component-04gQVLQ1.js} +4 -4
  30. package/dist/cjs/{component-CCZ7pXRv.js.map → component-04gQVLQ1.js.map} +1 -1
  31. package/dist/cjs/{component-B18PknAn.js → component-BB3YHW86.js} +3 -3
  32. package/dist/cjs/{component-B18PknAn.js.map → component-BB3YHW86.js.map} +1 -1
  33. package/dist/cjs/{component-GzpJi_tI.js → component-BLnwCgKh.js} +7 -7
  34. package/dist/cjs/{component-GzpJi_tI.js.map → component-BLnwCgKh.js.map} +1 -1
  35. package/dist/cjs/{component-BT9bnLTG.js → component-Bprn2Dws.js} +4 -4
  36. package/dist/cjs/{component-BT9bnLTG.js.map → component-Bprn2Dws.js.map} +1 -1
  37. package/dist/cjs/{component-B368JCB7.js → component-CJDDp8K2.js} +3 -3
  38. package/dist/cjs/{component-B368JCB7.js.map → component-CJDDp8K2.js.map} +1 -1
  39. package/dist/cjs/{component-D0N2WBmH.js → component-ClYrtAkb.js} +5 -5
  40. package/dist/cjs/{component-D0N2WBmH.js.map → component-ClYrtAkb.js.map} +1 -1
  41. package/dist/cjs/{component-BzMxgoHU.js → component-DAfsN5m4.js} +5 -5
  42. package/dist/cjs/{component-BzMxgoHU.js.map → component-DAfsN5m4.js.map} +1 -1
  43. package/dist/cjs/{component-BCFL2G_g.js → component-DDlbarYZ.js} +4 -4
  44. package/dist/cjs/{component-BCFL2G_g.js.map → component-DDlbarYZ.js.map} +1 -1
  45. package/dist/cjs/{component-DXv0HPeN.js → component-DlN2bfiT.js} +5 -5
  46. package/dist/cjs/{component-DXv0HPeN.js.map → component-DlN2bfiT.js.map} +1 -1
  47. package/dist/cjs/{component-DlgM4oEf.js → component-KIiCY2eY.js} +7 -7
  48. package/dist/cjs/{component-DlgM4oEf.js.map → component-KIiCY2eY.js.map} +1 -1
  49. package/dist/cjs/{component-CH432A4c.js → component-i9zUYU8M.js} +3 -3
  50. package/dist/cjs/{component-CH432A4c.js.map → component-i9zUYU8M.js.map} +1 -1
  51. package/dist/cjs/{component-C7NI5Iy5.js → component-sZUV7dBr.js} +3 -3
  52. package/dist/cjs/{component-C7NI5Iy5.js.map → component-sZUV7dBr.js.map} +1 -1
  53. package/dist/cjs/{dev.utils-BoFqqn8Y.js → dev.utils-BVqwixuA.js} +3 -3
  54. package/dist/cjs/{dev.utils-BoFqqn8Y.js.map → dev.utils-BVqwixuA.js.map} +1 -1
  55. package/dist/cjs/{devtools-C-m9X0nz.js → devtools-DxqqXOxW.js} +4 -4
  56. package/dist/cjs/{devtools-C-m9X0nz.js.map → devtools-DxqqXOxW.js.map} +1 -1
  57. package/dist/cjs/{field-control-MhWSen3X.js → field-control-CTOjt7vn.js} +8 -8
  58. package/dist/cjs/{field-control-MhWSen3X.js.map → field-control-CTOjt7vn.js.map} +1 -1
  59. package/dist/cjs/{group-7951SxEA.js → group-VoBXFtaB.js} +5 -5
  60. package/dist/cjs/{group-7951SxEA.js.map → group-VoBXFtaB.js.map} +1 -1
  61. package/dist/cjs/{index-DO9lYEcH.js → index-Dv7OF9AY.js} +3 -3
  62. package/dist/cjs/{index-DO9lYEcH.js.map → index-Dv7OF9AY.js.map} +1 -1
  63. package/dist/cjs/{input-DCNSFlzf.js → input-BeQNLD9x.js} +5 -5
  64. package/dist/cjs/{input-DCNSFlzf.js.map → input-BeQNLD9x.js.map} +1 -1
  65. package/dist/cjs/{input-container-AUYMUXlO.js → input-container-BXz_irj1.js} +7 -7
  66. package/dist/cjs/{input-container-AUYMUXlO.js.map → input-container-BXz_irj1.js.map} +1 -1
  67. package/dist/cjs/{item-C63M9WqZ.js → item-C_mVKQHN.js} +4 -4
  68. package/dist/cjs/{item-C63M9WqZ.js.map → item-C_mVKQHN.js.map} +1 -1
  69. package/dist/cjs/{item-CAtWa-Nr.js → item-Caz7PzHo.js} +4 -4
  70. package/dist/cjs/{item-CAtWa-Nr.js.map → item-Caz7PzHo.js.map} +1 -1
  71. package/dist/cjs/{item-CXS6hLg9.js → item-DksElMyT.js} +8 -8
  72. package/dist/cjs/{item-CXS6hLg9.js.map → item-DksElMyT.js.map} +1 -1
  73. package/dist/cjs/{item-BPM40Vsi.js → item-P6pvO7ia.js} +3 -3
  74. package/dist/cjs/{item-BPM40Vsi.js.map → item-P6pvO7ia.js.map} +1 -1
  75. package/dist/cjs/kol-abbr.cjs.entry.js +2 -2
  76. package/dist/cjs/kol-accordion.cjs.entry.js +7 -7
  77. package/dist/cjs/kol-alert.cjs.entry.js +11 -11
  78. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-badge.cjs.entry.js +10 -10
  80. package/dist/cjs/kol-breadcrumb.cjs.entry.js +9 -9
  81. package/dist/cjs/kol-button-link.cjs.entry.js +10 -10
  82. package/dist/cjs/kol-button.cjs.entry.js +10 -10
  83. package/dist/cjs/kol-card.cjs.entry.js +11 -11
  84. package/dist/cjs/kol-click-button.cjs.entry.js +2 -2
  85. package/dist/cjs/kol-combobox.cjs.entry.js +18 -18
  86. package/dist/cjs/kol-details.cjs.entry.js +7 -7
  87. package/dist/cjs/kol-dialog.cjs.entry.js +13 -13
  88. package/dist/cjs/kol-drawer.cjs.entry.js +12 -12
  89. package/dist/cjs/kol-form.cjs.entry.js +12 -12
  90. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  91. package/dist/cjs/kol-icon.cjs.entry.js +3 -3
  92. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  93. package/dist/cjs/kol-input-checkbox.cjs.entry.js +17 -17
  94. package/dist/cjs/kol-input-color.cjs.entry.js +18 -18
  95. package/dist/cjs/kol-input-date.cjs.entry.js +18 -18
  96. package/dist/cjs/kol-input-email.cjs.entry.js +20 -20
  97. package/dist/cjs/kol-input-file.cjs.entry.js +17 -17
  98. package/dist/cjs/kol-input-number.cjs.entry.js +18 -18
  99. package/dist/cjs/kol-input-password.cjs.entry.js +20 -20
  100. package/dist/cjs/kol-input-radio.cjs.entry.js +17 -17
  101. package/dist/cjs/kol-input-range.cjs.entry.js +18 -18
  102. package/dist/cjs/kol-input-text.cjs.entry.js +20 -20
  103. package/dist/cjs/kol-kolibri.cjs.entry.js +2 -2
  104. package/dist/cjs/kol-link-button.cjs.entry.js +10 -10
  105. package/dist/cjs/kol-link.cjs.entry.js +10 -10
  106. package/dist/cjs/kol-meter.cjs.entry.js +1 -1
  107. package/dist/cjs/kol-modal.cjs.entry.js +13 -13
  108. package/dist/cjs/kol-nav.cjs.entry.js +13 -13
  109. package/dist/cjs/kol-pagination.cjs.entry.js +18 -18
  110. package/dist/cjs/kol-popover-button.cjs.entry.js +11 -11
  111. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  113. package/dist/cjs/kol-select.cjs.entry.js +17 -17
  114. package/dist/cjs/kol-single-select.cjs.entry.js +18 -18
  115. package/dist/cjs/kol-skeleton.cjs.entry.js +2 -2
  116. package/dist/cjs/kol-skip-nav.cjs.entry.js +9 -9
  117. package/dist/cjs/kol-spin.cjs.entry.js +3 -3
  118. package/dist/cjs/kol-split-button.cjs.entry.js +12 -12
  119. package/dist/cjs/kol-table-stateful.cjs.entry.js +25 -25
  120. package/dist/cjs/kol-table-stateless.cjs.entry.js +19 -19
  121. package/dist/cjs/kol-tabs.cjs.entry.js +14 -26
  122. package/dist/cjs/kol-tabs.entry.cjs.js.map +1 -1
  123. package/dist/cjs/kol-textarea.cjs.entry.js +17 -17
  124. package/dist/cjs/kol-toast-container.cjs.entry.js +11 -11
  125. package/dist/cjs/kol-toolbar.cjs.entry.js +11 -11
  126. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +4 -4
  127. package/dist/cjs/kol-tree-item.cjs.entry.js +9 -9
  128. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  129. package/dist/cjs/kol-version.cjs.entry.js +9 -9
  130. package/dist/cjs/kolibri.cjs.js +2 -2
  131. package/dist/cjs/loader.cjs.js +2 -2
  132. package/dist/cjs/{resolve-props-DrG_HqJv.js → resolve-props-DS3EE-fd.js} +3 -3
  133. package/dist/cjs/{resolve-props-DrG_HqJv.js.map → resolve-props-DS3EE-fd.js.map} +1 -1
  134. package/dist/cjs/{scroll-lock-oNylqons.js → scroll-lock-B8N6TEH3.js} +3 -3
  135. package/dist/cjs/{scroll-lock-oNylqons.js.map → scroll-lock-B8N6TEH3.js.map} +1 -1
  136. package/dist/cjs/{suggestions-Dtu6i-Ff.js → suggestions-CC1tzlom.js} +4 -4
  137. package/dist/cjs/{suggestions-Dtu6i-Ff.js.map → suggestions-CC1tzlom.js.map} +1 -1
  138. package/dist/cjs/test-component.cjs.entry.js +1 -1
  139. package/dist/cjs/{toggle-handler-CE-IOVjQ.js → toggle-handler-BzdKX5H6.js} +5 -5
  140. package/dist/cjs/{toggle-handler-CE-IOVjQ.js.map → toggle-handler-BzdKX5H6.js.map} +1 -1
  141. package/dist/collection/components/accordion/style.css +2 -2
  142. package/dist/collection/components/alert/style.css +2 -2
  143. package/dist/collection/components/badge/style.css +2 -2
  144. package/dist/collection/components/breadcrumb/style.css +2 -2
  145. package/dist/collection/components/button/style.css +2 -2
  146. package/dist/collection/components/button-link/style.css +2 -2
  147. package/dist/collection/components/card/style.css +2 -2
  148. package/dist/collection/components/combobox/style.css +2 -2
  149. package/dist/collection/components/details/style.css +2 -2
  150. package/dist/collection/components/dialog/style.css +2 -2
  151. package/dist/collection/components/drawer/style.css +2 -2
  152. package/dist/collection/components/form/style.css +2 -2
  153. package/dist/collection/components/icon/style.css +2 -2
  154. package/dist/collection/components/input-checkbox/style.css +2 -2
  155. package/dist/collection/components/input-color/style.css +2 -2
  156. package/dist/collection/components/input-date/style.css +2 -2
  157. package/dist/collection/components/input-email/style.css +2 -2
  158. package/dist/collection/components/input-file/style.css +2 -2
  159. package/dist/collection/components/input-number/style.css +2 -2
  160. package/dist/collection/components/input-password/style.css +2 -2
  161. package/dist/collection/components/input-radio/style.css +2 -2
  162. package/dist/collection/components/input-range/style.css +2 -2
  163. package/dist/collection/components/input-text/style.css +2 -2
  164. package/dist/collection/components/link/style.css +2 -2
  165. package/dist/collection/components/link-button/style.css +2 -2
  166. package/dist/collection/components/modal/style.css +2 -2
  167. package/dist/collection/components/nav/style.css +2 -2
  168. package/dist/collection/components/pagination/style.css +2 -2
  169. package/dist/collection/components/popover-button/style.css +2 -2
  170. package/dist/collection/components/select/style.css +2 -2
  171. package/dist/collection/components/single-select/style.css +2 -2
  172. package/dist/collection/components/skip-nav/style.css +2 -2
  173. package/dist/collection/components/split-button/style.css +2 -2
  174. package/dist/collection/components/table-stateful/style.css +2 -2
  175. package/dist/collection/components/table-stateless/style.css +2 -2
  176. package/dist/collection/components/tabs/component.js +5 -17
  177. package/dist/collection/components/tabs/component.js.map +1 -1
  178. package/dist/collection/components/tabs/style.css +2 -2
  179. package/dist/collection/components/textarea/style.css +2 -2
  180. package/dist/collection/components/toaster/style.css +2 -2
  181. package/dist/collection/components/toolbar/style.css +2 -2
  182. package/dist/collection/components/tree-item/style.css +2 -2
  183. package/dist/collection/components/version/style.css +2 -2
  184. package/dist/components/kol-accordion.js +1 -1
  185. package/dist/components/kol-alert.js +1 -1
  186. package/dist/components/kol-badge.js +1 -1
  187. package/dist/components/kol-breadcrumb.js +1 -1
  188. package/dist/components/kol-button-link.js +1 -1
  189. package/dist/components/kol-button.js +1 -1
  190. package/dist/components/kol-card.js +1 -1
  191. package/dist/components/kol-combobox.js +1 -1
  192. package/dist/components/kol-details.js +1 -1
  193. package/dist/components/kol-dialog.js +1 -1
  194. package/dist/components/kol-drawer.js +1 -1
  195. package/dist/components/kol-form.js +1 -1
  196. package/dist/components/kol-icon.js +1 -1
  197. package/dist/components/kol-input-checkbox.js +1 -1
  198. package/dist/components/kol-input-color.js +1 -1
  199. package/dist/components/kol-input-date.js +1 -1
  200. package/dist/components/kol-input-email.js +1 -1
  201. package/dist/components/kol-input-file.js +1 -1
  202. package/dist/components/kol-input-number.js +1 -1
  203. package/dist/components/kol-input-password.js +1 -1
  204. package/dist/components/kol-input-radio.js +1 -1
  205. package/dist/components/kol-input-range.js +1 -1
  206. package/dist/components/kol-input-text.js +1 -1
  207. package/dist/components/kol-link-button.js +1 -1
  208. package/dist/components/kol-link.js +1 -1
  209. package/dist/components/kol-modal.js +1 -1
  210. package/dist/components/kol-nav.js +1 -1
  211. package/dist/components/kol-pagination.js +1 -1
  212. package/dist/components/kol-popover-button.js +1 -1
  213. package/dist/components/kol-select.js +1 -1
  214. package/dist/components/kol-single-select.js +1 -1
  215. package/dist/components/kol-skip-nav.js +1 -1
  216. package/dist/components/kol-split-button.js +1 -1
  217. package/dist/components/kol-table-stateful.js +1 -1
  218. package/dist/components/kol-table-stateless.js +1 -1
  219. package/dist/components/kol-tabs.js +6 -18
  220. package/dist/components/kol-tabs.js.map +1 -1
  221. package/dist/components/kol-textarea.js +1 -1
  222. package/dist/components/kol-toast-container.js +1 -1
  223. package/dist/components/kol-toolbar.js +1 -1
  224. package/dist/components/kol-tree-item.js +1 -1
  225. package/dist/components/kol-version.js +1 -1
  226. package/dist/esm/{Heading-D2EH5Vz9.js → Heading-DAPZwXCt.js} +3 -3
  227. package/dist/esm/{Heading-D2EH5Vz9.js.map → Heading-DAPZwXCt.js.map} +1 -1
  228. package/dist/esm/{api-DScxu3ou.js → api-DueenSkb.js} +12 -12
  229. package/dist/{kolibri/api-DScxu3ou.js.map → esm/api-DueenSkb.js.map} +1 -1
  230. package/dist/esm/{api-CN_pBHgH.js → api-zFp24D1x.js} +8 -8
  231. package/dist/esm/{api-CN_pBHgH.js.map → api-zFp24D1x.js.map} +1 -1
  232. package/dist/esm/{app-globals-CddJRb3M.js → app-globals-CYRfyhVc.js} +4 -4
  233. package/dist/esm/{app-globals-CddJRb3M.js.map → app-globals-CYRfyhVc.js.map} +1 -1
  234. package/dist/esm/{base-DHBpPWDW.js → base-AvIGo8Mp.js} +16 -16
  235. package/dist/{kolibri/base-DHBpPWDW.js.map → esm/base-AvIGo8Mp.js.map} +1 -1
  236. package/dist/esm/{base-B4XSDJBd.js → base-BU2iT3jv.js} +5 -5
  237. package/dist/{kolibri/base-B4XSDJBd.js.map → esm/base-BU2iT3jv.js.map} +1 -1
  238. package/dist/esm/{base-DFtj5G32.js → base-BUu1gNpy.js} +4 -4
  239. package/dist/{kolibri/base-DFtj5G32.js.map → esm/base-BUu1gNpy.js.map} +1 -1
  240. package/dist/esm/{base-Jvi_AWqL.js → base-CjlYs5Fb.js} +4 -4
  241. package/dist/{kolibri/base-Jvi_AWqL.js.map → esm/base-CjlYs5Fb.js.map} +1 -1
  242. package/dist/esm/{base-web-component-D_VU8SGY.js → base-web-component-BEf83bnu.js} +7 -7
  243. package/dist/esm/{base-web-component-D_VU8SGY.js.map → base-web-component-BEf83bnu.js.map} +1 -1
  244. package/dist/esm/{base-web-component-t9oDjRt3.js → base-web-component-C2q-dSOg.js} +5 -5
  245. package/dist/esm/{base-web-component-t9oDjRt3.js.map → base-web-component-C2q-dSOg.js.map} +1 -1
  246. package/dist/esm/{behavior-Dpui_R-v.js → behavior-DCpLHoHs.js} +3 -3
  247. package/dist/{kolibri/behavior-Dpui_R-v.js.map → esm/behavior-DCpLHoHs.js.map} +1 -1
  248. package/dist/esm/{component-DSKwp72M.js → component-9XV7ykPK.js} +4 -4
  249. package/dist/{kolibri/component-DSKwp72M.js.map → esm/component-9XV7ykPK.js.map} +1 -1
  250. package/dist/esm/{component-BauANlCU.js → component-B5MUeex-.js} +3 -3
  251. package/dist/{kolibri/component-BauANlCU.js.map → esm/component-B5MUeex-.js.map} +1 -1
  252. package/dist/esm/{component-B5OmtChm.js → component-BR-6tKab.js} +3 -3
  253. package/dist/esm/{component-B5OmtChm.js.map → component-BR-6tKab.js.map} +1 -1
  254. package/dist/esm/{component-ArZwqu6c.js → component-Bj13sPTL.js} +4 -4
  255. package/dist/esm/{component-ArZwqu6c.js.map → component-Bj13sPTL.js.map} +1 -1
  256. package/dist/esm/{component-DWiKUdpa.js → component-BrOA7gRZ.js} +7 -7
  257. package/dist/esm/{component-DWiKUdpa.js.map → component-BrOA7gRZ.js.map} +1 -1
  258. package/dist/esm/{component-CoN6ZwTo.js → component-CQJ_jIZm.js} +7 -7
  259. package/dist/esm/{component-CoN6ZwTo.js.map → component-CQJ_jIZm.js.map} +1 -1
  260. package/dist/esm/{component-D6Z14V5i.js → component-Cqcw7JSO.js} +5 -5
  261. package/dist/{kolibri/component-D6Z14V5i.js.map → esm/component-Cqcw7JSO.js.map} +1 -1
  262. package/dist/esm/{component-GqGXpjMZ.js → component-Cy_xOMLd.js} +3 -3
  263. package/dist/esm/{component-GqGXpjMZ.js.map → component-Cy_xOMLd.js.map} +1 -1
  264. package/dist/esm/{component-6cLprNJZ.js → component-DCK-2RQ3.js} +3 -3
  265. package/dist/esm/{component-6cLprNJZ.js.map → component-DCK-2RQ3.js.map} +1 -1
  266. package/dist/esm/{component-D0Coq_zE.js → component-DRUoRfdO.js} +5 -5
  267. package/dist/{kolibri/component-D0Coq_zE.js.map → esm/component-DRUoRfdO.js.map} +1 -1
  268. package/dist/esm/{component-DbsunX7x.js → component-D_xOkOl6.js} +4 -4
  269. package/dist/{kolibri/component-DbsunX7x.js.map → esm/component-D_xOkOl6.js.map} +1 -1
  270. package/dist/esm/{component-CChFD3b2.js → component-Droc76Vh.js} +5 -5
  271. package/dist/{kolibri/component-CChFD3b2.js.map → esm/component-Droc76Vh.js.map} +1 -1
  272. package/dist/esm/{dev.utils-DVPKJwhh.js → dev.utils-CWEYl26B.js} +3 -3
  273. package/dist/{kolibri/dev.utils-DVPKJwhh.js.map → esm/dev.utils-CWEYl26B.js.map} +1 -1
  274. package/dist/esm/{devtools-Ctvg6SnM.js → devtools-BfiT_Mej.js} +4 -4
  275. package/dist/{kolibri/devtools-Ctvg6SnM.js.map → esm/devtools-BfiT_Mej.js.map} +1 -1
  276. package/dist/esm/{field-control-CJ-9C7AK.js → field-control-BvFIxA5C.js} +8 -8
  277. package/dist/{kolibri/field-control-CJ-9C7AK.js.map → esm/field-control-BvFIxA5C.js.map} +1 -1
  278. package/dist/esm/{group-6LOQ2Eed.js → group-DzNZiu3R.js} +5 -5
  279. package/dist/esm/{group-6LOQ2Eed.js.map → group-DzNZiu3R.js.map} +1 -1
  280. package/dist/esm/{index-BtYjJomD.js → index-CyLMYdnq.js} +3 -3
  281. package/dist/{kolibri/index-BtYjJomD.js.map → esm/index-CyLMYdnq.js.map} +1 -1
  282. package/dist/esm/{input-DispvARh.js → input-C55z9I-y.js} +5 -5
  283. package/dist/esm/{input-DispvARh.js.map → input-C55z9I-y.js.map} +1 -1
  284. package/dist/esm/{input-container-CVU5Y0-o.js → input-container-28E-ib9E.js} +7 -7
  285. package/dist/{kolibri/input-container-CVU5Y0-o.js.map → esm/input-container-28E-ib9E.js.map} +1 -1
  286. package/dist/esm/{item-BShglo-p.js → item-Bwz4OUrI.js} +4 -4
  287. package/dist/esm/{item-BShglo-p.js.map → item-Bwz4OUrI.js.map} +1 -1
  288. package/dist/esm/{item-CD8r4zxe.js → item-CuhPkC8A.js} +4 -4
  289. package/dist/esm/{item-CD8r4zxe.js.map → item-CuhPkC8A.js.map} +1 -1
  290. package/dist/esm/{item-Cj7w26xK.js → item-HQBfKHr0.js} +3 -3
  291. package/dist/esm/{item-Cj7w26xK.js.map → item-HQBfKHr0.js.map} +1 -1
  292. package/dist/esm/{item-CIIV_ncI.js → item-aP2OcbwT.js} +8 -8
  293. package/dist/esm/{item-CIIV_ncI.js.map → item-aP2OcbwT.js.map} +1 -1
  294. package/dist/esm/kol-abbr.entry.js +2 -2
  295. package/dist/esm/kol-accordion.entry.js +7 -7
  296. package/dist/esm/kol-alert.entry.js +11 -11
  297. package/dist/esm/kol-avatar.entry.js +1 -1
  298. package/dist/esm/kol-badge.entry.js +10 -10
  299. package/dist/esm/kol-breadcrumb.entry.js +9 -9
  300. package/dist/esm/kol-button-link.entry.js +10 -10
  301. package/dist/esm/kol-button.entry.js +10 -10
  302. package/dist/esm/kol-card.entry.js +11 -11
  303. package/dist/esm/kol-click-button.entry.js +2 -2
  304. package/dist/esm/kol-combobox.entry.js +18 -18
  305. package/dist/esm/kol-details.entry.js +7 -7
  306. package/dist/esm/kol-dialog.entry.js +13 -13
  307. package/dist/esm/kol-drawer.entry.js +12 -12
  308. package/dist/esm/kol-form.entry.js +12 -12
  309. package/dist/esm/kol-heading.entry.js +1 -1
  310. package/dist/esm/kol-icon.entry.js +3 -3
  311. package/dist/esm/kol-image.entry.js +1 -1
  312. package/dist/esm/kol-input-checkbox.entry.js +17 -17
  313. package/dist/esm/kol-input-color.entry.js +18 -18
  314. package/dist/esm/kol-input-date.entry.js +18 -18
  315. package/dist/esm/kol-input-email.entry.js +20 -20
  316. package/dist/esm/kol-input-file.entry.js +17 -17
  317. package/dist/esm/kol-input-number.entry.js +18 -18
  318. package/dist/esm/kol-input-password.entry.js +20 -20
  319. package/dist/esm/kol-input-radio.entry.js +17 -17
  320. package/dist/esm/kol-input-range.entry.js +18 -18
  321. package/dist/esm/kol-input-text.entry.js +20 -20
  322. package/dist/esm/kol-kolibri.entry.js +2 -2
  323. package/dist/esm/kol-link-button.entry.js +10 -10
  324. package/dist/esm/kol-link.entry.js +10 -10
  325. package/dist/esm/kol-meter.entry.js +1 -1
  326. package/dist/esm/kol-modal.entry.js +13 -13
  327. package/dist/esm/kol-nav.entry.js +13 -13
  328. package/dist/esm/kol-pagination.entry.js +18 -18
  329. package/dist/esm/kol-popover-button.entry.js +11 -11
  330. package/dist/esm/kol-progress.entry.js +1 -1
  331. package/dist/esm/kol-quote.entry.js +1 -1
  332. package/dist/esm/kol-select.entry.js +17 -17
  333. package/dist/esm/kol-single-select.entry.js +18 -18
  334. package/dist/esm/kol-skeleton.entry.js +2 -2
  335. package/dist/esm/kol-skip-nav.entry.js +9 -9
  336. package/dist/esm/kol-spin.entry.js +3 -3
  337. package/dist/esm/kol-split-button.entry.js +12 -12
  338. package/dist/esm/kol-table-stateful.entry.js +25 -25
  339. package/dist/esm/kol-table-stateless.entry.js +19 -19
  340. package/dist/esm/kol-tabs.entry.js +14 -26
  341. package/dist/esm/kol-tabs.entry.js.map +1 -1
  342. package/dist/esm/kol-textarea.entry.js +17 -17
  343. package/dist/esm/kol-toast-container.entry.js +11 -11
  344. package/dist/esm/kol-toolbar.entry.js +11 -11
  345. package/dist/esm/kol-tooltip-wc.entry.js +4 -4
  346. package/dist/esm/kol-tree-item.entry.js +9 -9
  347. package/dist/esm/kol-tree.entry.js +1 -1
  348. package/dist/esm/kol-version.entry.js +9 -9
  349. package/dist/esm/kolibri.js +3 -3
  350. package/dist/esm/loader.js +3 -3
  351. package/dist/esm/{resolve-props-USwvESw_.js → resolve-props-D0-62io3.js} +3 -3
  352. package/dist/{kolibri/resolve-props-USwvESw_.js.map → esm/resolve-props-D0-62io3.js.map} +1 -1
  353. package/dist/esm/{scroll-lock-CKJqGGmP.js → scroll-lock-DYMGa60u.js} +3 -3
  354. package/dist/{kolibri/scroll-lock-CKJqGGmP.js.map → esm/scroll-lock-DYMGa60u.js.map} +1 -1
  355. package/dist/esm/{suggestions-PclKnJ2U.js → suggestions-Cm-RWrWm.js} +4 -4
  356. package/dist/esm/{suggestions-PclKnJ2U.js.map → suggestions-Cm-RWrWm.js.map} +1 -1
  357. package/dist/esm/test-component.entry.js +1 -1
  358. package/dist/esm/{toggle-handler-BIUmTJk5.js → toggle-handler-D5L4pnQ5.js} +5 -5
  359. package/dist/esm/{toggle-handler-BIUmTJk5.js.map → toggle-handler-D5L4pnQ5.js.map} +1 -1
  360. package/dist/kolibri/Heading-DAPZwXCt.js +5 -0
  361. package/dist/kolibri/{Heading-D2EH5Vz9.js.map → Heading-DAPZwXCt.js.map} +1 -1
  362. package/dist/kolibri/api-DueenSkb.js +5 -0
  363. package/dist/{esm/api-DScxu3ou.js.map → kolibri/api-DueenSkb.js.map} +1 -1
  364. package/dist/kolibri/api-zFp24D1x.js +5 -0
  365. package/dist/kolibri/{api-CN_pBHgH.js.map → api-zFp24D1x.js.map} +1 -1
  366. package/dist/kolibri/app-globals-CYRfyhVc.js +5 -0
  367. package/dist/kolibri/{app-globals-CddJRb3M.js.map → app-globals-CYRfyhVc.js.map} +1 -1
  368. package/dist/kolibri/{base-DHBpPWDW.js → base-AvIGo8Mp.js} +2 -2
  369. package/dist/{esm/base-DHBpPWDW.js.map → kolibri/base-AvIGo8Mp.js.map} +1 -1
  370. package/dist/kolibri/{base-B4XSDJBd.js → base-BU2iT3jv.js} +2 -2
  371. package/dist/{esm/base-B4XSDJBd.js.map → kolibri/base-BU2iT3jv.js.map} +1 -1
  372. package/dist/kolibri/{base-DFtj5G32.js → base-BUu1gNpy.js} +2 -2
  373. package/dist/{esm/base-DFtj5G32.js.map → kolibri/base-BUu1gNpy.js.map} +1 -1
  374. package/dist/kolibri/base-CjlYs5Fb.js +5 -0
  375. package/dist/{esm/base-Jvi_AWqL.js.map → kolibri/base-CjlYs5Fb.js.map} +1 -1
  376. package/dist/kolibri/{base-web-component-D_VU8SGY.js → base-web-component-BEf83bnu.js} +2 -2
  377. package/dist/kolibri/{base-web-component-D_VU8SGY.js.map → base-web-component-BEf83bnu.js.map} +1 -1
  378. package/dist/kolibri/{base-web-component-t9oDjRt3.js → base-web-component-C2q-dSOg.js} +2 -2
  379. package/dist/kolibri/{base-web-component-t9oDjRt3.js.map → base-web-component-C2q-dSOg.js.map} +1 -1
  380. package/dist/kolibri/{behavior-Dpui_R-v.js → behavior-DCpLHoHs.js} +2 -2
  381. package/dist/{esm/behavior-Dpui_R-v.js.map → kolibri/behavior-DCpLHoHs.js.map} +1 -1
  382. package/dist/kolibri/{component-DSKwp72M.js → component-9XV7ykPK.js} +2 -2
  383. package/dist/{esm/component-DSKwp72M.js.map → kolibri/component-9XV7ykPK.js.map} +1 -1
  384. package/dist/kolibri/{component-BauANlCU.js → component-B5MUeex-.js} +2 -2
  385. package/dist/{esm/component-BauANlCU.js.map → kolibri/component-B5MUeex-.js.map} +1 -1
  386. package/dist/kolibri/component-BR-6tKab.js +5 -0
  387. package/dist/kolibri/{component-B5OmtChm.js.map → component-BR-6tKab.js.map} +1 -1
  388. package/dist/kolibri/{component-ArZwqu6c.js → component-Bj13sPTL.js} +2 -2
  389. package/dist/kolibri/{component-ArZwqu6c.js.map → component-Bj13sPTL.js.map} +1 -1
  390. package/dist/kolibri/component-BrOA7gRZ.js +5 -0
  391. package/dist/kolibri/{component-DWiKUdpa.js.map → component-BrOA7gRZ.js.map} +1 -1
  392. package/dist/kolibri/component-CQJ_jIZm.js +5 -0
  393. package/dist/kolibri/{component-CoN6ZwTo.js.map → component-CQJ_jIZm.js.map} +1 -1
  394. package/dist/kolibri/component-Cqcw7JSO.js +5 -0
  395. package/dist/{esm/component-D6Z14V5i.js.map → kolibri/component-Cqcw7JSO.js.map} +1 -1
  396. package/dist/kolibri/component-Cy_xOMLd.js +5 -0
  397. package/dist/kolibri/{component-GqGXpjMZ.js.map → component-Cy_xOMLd.js.map} +1 -1
  398. package/dist/kolibri/component-DCK-2RQ3.js +5 -0
  399. package/dist/kolibri/{component-6cLprNJZ.js.map → component-DCK-2RQ3.js.map} +1 -1
  400. package/dist/kolibri/{component-D0Coq_zE.js → component-DRUoRfdO.js} +2 -2
  401. package/dist/{esm/component-D0Coq_zE.js.map → kolibri/component-DRUoRfdO.js.map} +1 -1
  402. package/dist/kolibri/{component-DbsunX7x.js → component-D_xOkOl6.js} +2 -2
  403. package/dist/{esm/component-DbsunX7x.js.map → kolibri/component-D_xOkOl6.js.map} +1 -1
  404. package/dist/kolibri/{component-CChFD3b2.js → component-Droc76Vh.js} +2 -2
  405. package/dist/{esm/component-CChFD3b2.js.map → kolibri/component-Droc76Vh.js.map} +1 -1
  406. package/dist/kolibri/dev.utils-CWEYl26B.js +5 -0
  407. package/dist/{esm/dev.utils-DVPKJwhh.js.map → kolibri/dev.utils-CWEYl26B.js.map} +1 -1
  408. package/dist/kolibri/{devtools-Ctvg6SnM.js → devtools-BfiT_Mej.js} +2 -2
  409. package/dist/{esm/devtools-Ctvg6SnM.js.map → kolibri/devtools-BfiT_Mej.js.map} +1 -1
  410. package/dist/kolibri/field-control-BvFIxA5C.js +5 -0
  411. package/dist/{esm/field-control-CJ-9C7AK.js.map → kolibri/field-control-BvFIxA5C.js.map} +1 -1
  412. package/dist/kolibri/{group-6LOQ2Eed.js → group-DzNZiu3R.js} +2 -2
  413. package/dist/kolibri/{group-6LOQ2Eed.js.map → group-DzNZiu3R.js.map} +1 -1
  414. package/dist/kolibri/{index-BtYjJomD.js → index-CyLMYdnq.js} +2 -2
  415. package/dist/{esm/index-BtYjJomD.js.map → kolibri/index-CyLMYdnq.js.map} +1 -1
  416. package/dist/kolibri/input-C55z9I-y.js +5 -0
  417. package/dist/kolibri/{input-DispvARh.js.map → input-C55z9I-y.js.map} +1 -1
  418. package/dist/kolibri/{input-container-CVU5Y0-o.js → input-container-28E-ib9E.js} +2 -2
  419. package/dist/{esm/input-container-CVU5Y0-o.js.map → kolibri/input-container-28E-ib9E.js.map} +1 -1
  420. package/dist/kolibri/item-Bwz4OUrI.js +5 -0
  421. package/dist/kolibri/{item-BShglo-p.js.map → item-Bwz4OUrI.js.map} +1 -1
  422. package/dist/kolibri/item-CuhPkC8A.js +5 -0
  423. package/dist/kolibri/{item-CD8r4zxe.js.map → item-CuhPkC8A.js.map} +1 -1
  424. package/dist/kolibri/{item-Cj7w26xK.js → item-HQBfKHr0.js} +2 -2
  425. package/dist/kolibri/{item-Cj7w26xK.js.map → item-HQBfKHr0.js.map} +1 -1
  426. package/dist/kolibri/item-aP2OcbwT.js +5 -0
  427. package/dist/kolibri/{item-CIIV_ncI.js.map → item-aP2OcbwT.js.map} +1 -1
  428. package/dist/kolibri/kol-abbr.entry.js +1 -1
  429. package/dist/kolibri/kol-accordion.entry.js +1 -1
  430. package/dist/kolibri/kol-alert.entry.js +1 -1
  431. package/dist/kolibri/kol-avatar.entry.js +1 -1
  432. package/dist/kolibri/kol-badge.entry.js +1 -1
  433. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  434. package/dist/kolibri/kol-button-link.entry.js +1 -1
  435. package/dist/kolibri/kol-button.entry.js +1 -1
  436. package/dist/kolibri/kol-card.entry.js +1 -1
  437. package/dist/kolibri/kol-click-button.entry.js +1 -1
  438. package/dist/kolibri/kol-combobox.entry.js +1 -1
  439. package/dist/kolibri/kol-combobox.entry.js.map +1 -1
  440. package/dist/kolibri/kol-details.entry.js +1 -1
  441. package/dist/kolibri/kol-dialog.entry.js +1 -1
  442. package/dist/kolibri/kol-drawer.entry.js +1 -1
  443. package/dist/kolibri/kol-form.entry.js +1 -1
  444. package/dist/kolibri/kol-heading.entry.js +1 -1
  445. package/dist/kolibri/kol-icon.entry.js +1 -1
  446. package/dist/kolibri/kol-image.entry.js +1 -1
  447. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  448. package/dist/kolibri/kol-input-color.entry.js +1 -1
  449. package/dist/kolibri/kol-input-date.entry.js +1 -1
  450. package/dist/kolibri/kol-input-email.entry.js +1 -1
  451. package/dist/kolibri/kol-input-file.entry.js +1 -1
  452. package/dist/kolibri/kol-input-number.entry.js +1 -1
  453. package/dist/kolibri/kol-input-password.entry.js +1 -1
  454. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  455. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  456. package/dist/kolibri/kol-input-range.entry.js +1 -1
  457. package/dist/kolibri/kol-input-text.entry.js +1 -1
  458. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  459. package/dist/kolibri/kol-link-button.entry.js +1 -1
  460. package/dist/kolibri/kol-link.entry.js +1 -1
  461. package/dist/kolibri/kol-meter.entry.js +1 -1
  462. package/dist/kolibri/kol-modal.entry.js +1 -1
  463. package/dist/kolibri/kol-nav.entry.js +1 -1
  464. package/dist/kolibri/kol-pagination.entry.js +1 -1
  465. package/dist/kolibri/kol-popover-button.entry.js +1 -1
  466. package/dist/kolibri/kol-progress.entry.js +1 -1
  467. package/dist/kolibri/kol-quote.entry.js +1 -1
  468. package/dist/kolibri/kol-select.entry.js +1 -1
  469. package/dist/kolibri/kol-single-select.entry.js +1 -1
  470. package/dist/kolibri/kol-single-select.entry.js.map +1 -1
  471. package/dist/kolibri/kol-skeleton.entry.js +1 -1
  472. package/dist/kolibri/kol-skeleton.entry.js.map +1 -1
  473. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  474. package/dist/kolibri/kol-spin.entry.js +1 -1
  475. package/dist/kolibri/kol-split-button.entry.js +1 -1
  476. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  477. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  478. package/dist/kolibri/kol-tabs.entry.esm.js.map +1 -1
  479. package/dist/kolibri/kol-tabs.entry.js +1 -1
  480. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  481. package/dist/kolibri/kol-textarea.entry.js +1 -1
  482. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  483. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  484. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  485. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  486. package/dist/kolibri/kol-tree.entry.js +1 -1
  487. package/dist/kolibri/kol-version.entry.js +1 -1
  488. package/dist/kolibri/kolibri.esm.js +1 -1
  489. package/dist/kolibri/resolve-props-D0-62io3.js +5 -0
  490. package/dist/{esm/resolve-props-USwvESw_.js.map → kolibri/resolve-props-D0-62io3.js.map} +1 -1
  491. package/dist/kolibri/{scroll-lock-CKJqGGmP.js → scroll-lock-DYMGa60u.js} +2 -2
  492. package/dist/{esm/scroll-lock-CKJqGGmP.js.map → kolibri/scroll-lock-DYMGa60u.js.map} +1 -1
  493. package/dist/kolibri/{suggestions-PclKnJ2U.js → suggestions-Cm-RWrWm.js} +2 -2
  494. package/dist/kolibri/{suggestions-PclKnJ2U.js.map → suggestions-Cm-RWrWm.js.map} +1 -1
  495. package/dist/kolibri/test-component.entry.js +1 -1
  496. package/dist/kolibri/{toggle-handler-BIUmTJk5.js → toggle-handler-D5L4pnQ5.js} +2 -2
  497. package/dist/kolibri/{toggle-handler-BIUmTJk5.js.map → toggle-handler-D5L4pnQ5.js.map} +1 -1
  498. package/package.json +4 -4
  499. package/dist/kolibri/Heading-D2EH5Vz9.js +0 -5
  500. package/dist/kolibri/api-CN_pBHgH.js +0 -5
  501. package/dist/kolibri/api-DScxu3ou.js +0 -5
  502. package/dist/kolibri/app-globals-CddJRb3M.js +0 -5
  503. package/dist/kolibri/base-Jvi_AWqL.js +0 -5
  504. package/dist/kolibri/component-6cLprNJZ.js +0 -5
  505. package/dist/kolibri/component-B5OmtChm.js +0 -5
  506. package/dist/kolibri/component-CoN6ZwTo.js +0 -5
  507. package/dist/kolibri/component-D6Z14V5i.js +0 -5
  508. package/dist/kolibri/component-DWiKUdpa.js +0 -5
  509. package/dist/kolibri/component-GqGXpjMZ.js +0 -5
  510. package/dist/kolibri/dev.utils-DVPKJwhh.js +0 -5
  511. package/dist/kolibri/field-control-CJ-9C7AK.js +0 -5
  512. package/dist/kolibri/input-DispvARh.js +0 -5
  513. package/dist/kolibri/item-BShglo-p.js +0 -5
  514. package/dist/kolibri/item-CD8r4zxe.js +0 -5
  515. package/dist/kolibri/item-CIIV_ncI.js +0 -5
  516. package/dist/kolibri/resolve-props-USwvESw_.js +0 -5
@@ -3,14 +3,14 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DO9lYEcH.js');
6
+ var index = require('./index-Dv7OF9AY.js');
7
7
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
8
- var component = require('./component-BzMxgoHU.js');
8
+ var component = require('./component-DAfsN5m4.js');
9
9
  require('./common-B9-LvLNa.js');
10
10
  var level = require('./level-CiJPVEp4.js');
11
11
  var width = require('./width-BHSOwJYo.js');
12
12
  var label = require('./label-DVnpZWVb.js');
13
- var scrollLock = require('./scroll-lock-oNylqons.js');
13
+ var scrollLock = require('./scroll-lock-B8N6TEH3.js');
14
14
  var behavior = require('./behavior-V1mhEBZ2.js');
15
15
  var elementInteraction = require('./element-interaction-7FI_z19L.js');
16
16
  var events = require('./events-PISRnO5c.js');
@@ -140,6 +140,6 @@ class BaseDialogWebComponent extends baseWebComponent.BaseWebComponent {
140
140
  }
141
141
 
142
142
  exports.BaseDialogWebComponent = BaseDialogWebComponent;
143
- //# sourceMappingURL=base-BCEIzc57.js.map
143
+ //# sourceMappingURL=base-Cea-xkFy.js.map
144
144
 
145
- //# sourceMappingURL=base-BCEIzc57.js.map
145
+ //# sourceMappingURL=base-Cea-xkFy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-BCEIzc57.js","sources":["src/internal/functional-components/dialog/api.tsx","src/components/dialog/base.tsx"],"sourcesContent":["import { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the dialog component.\n *\n * Notes on prop choices:\n * - `labelProp`, not `labelWithExpertSlotProp`: the label is either the `aria-label` of the blank\n * variant or the card's heading text — neither has an expert slot.\n * - `levelProp` only reaches the card variant's heading; the blank variant renders no heading.\n */\nexport const dialogPropsConfig = {\n\trequired: [labelProp],\n\toptional: [dialogCallbacksProp, levelProp, variantDialogProp, widthProp],\n} as const satisfies PropsConfigShape;\n\nexport type DialogApi = ApiFromConfig<\n\ttypeof dialogPropsConfig,\n\t{\n\t\t/** Both callbacks handle the native events of the `<dialog>` element. */\n\t\tCallbacks: {\n\t\t\tcancel: (event: Event) => void;\n\t\t\tclose: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tclose: () => void;\n\t\t\tcloseModal: () => void;\n\t\t\topenModal: () => void;\n\t\t\tshow: (modal?: boolean) => void;\n\t\t\tshowModal: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tdialog: HTMLDialogElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * DOM id of the close button's visually-hidden description span, required by the card\n\t\t\t * variant's `ButtonFC`. Unused while that button carries no aria description.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * DOM id of the card variant's heading, referenced by the `<dialog>`'s\n\t\t\t * `aria-labelledby`. Generated per instance.\n\t\t\t */\n\t\t\theadingId: string;\n\t\t\t/**\n\t\t\t * Whether the dialog is currently shown modally. Drives `aria-modal` and is set by\n\t\t\t * `show()`/`showModal()`.\n\t\t\t */\n\t\t\tmodal: boolean;\n\t\t};\n\t}\n>;\n","import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ResolvedButtonProps } from '../../internal/functional-components/button/resolve-props';\nimport { resolveCardCloseButtonProps } from '../../internal/functional-components/card/close-button';\nimport type { CardFCProps } from '../../internal/functional-components/card/component';\nimport { CardFC } from '../../internal/functional-components/card/component';\nimport type { DialogApi } from '../../internal/functional-components/dialog/api';\nimport { dialogPropsConfig } from '../../internal/functional-components/dialog/api';\nimport { dialogBlockClass, DialogFC } from '../../internal/functional-components/dialog/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../internal/props';\nimport type { HeadingLevel, KoliBriDialogEventCallbacks, LabelPropType } from '../../schema';\nimport type { ModalVariantPropType } from '../../schema/props/variant/modal';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { lockScroll, unlockScroll } from '../../utils/scroll-lock';\nimport { handleCancelOverlay } from '../../utils/tooltip-open-tracking';\n\n/**\n * The card variant renders no link, so its anchor never exists: the card's own `_on` callbacks\n * describe that anchor, and its ref is never called.\n */\nconst NOOP = (): void => {};\n\n/**\n * Orchestrator shared by `kol-dialog` and the deprecated `kol-modal`. Both render the same\n * `DialogFC`; the concrete element only declares the Stencil members and delegates from its\n * watchers, methods and lifecycle hooks.\n *\n * The card variant renders `CardFC` directly, so this class also owns the close button's resolved\n * props, its tooltip behavior and its ref.\n */\nexport abstract class BaseDialogWebComponent extends BaseWebComponent<DialogApi> {\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly dialogRef = createCtaRef<HTMLDialogElement>();\n\tprivate readonly cardCloseButtonRef = createCtaRef<HTMLButtonElement>();\n\n\t/** Drives the card close button's tooltip — it renders with `hideLabel`, so its label lives there. */\n\tprivate readonly cardCloseTooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\t/** Resolved once in `componentWillLoad`: the close button's configuration never changes. */\n\tprivate cardCloseButtonProps!: ResolvedButtonProps;\n\n\t// --- Lifecycle ---\n\n\tprotected initDialogRenderProps(): void {\n\t\tthis.initRenderProps(dialogPropsConfig);\n\n\t\tthis.cardCloseButtonProps = resolveCardCloseButtonProps(this.host);\n\t\tthis.cardCloseTooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.cardCloseButtonProps.label,\n\t\t\talign: this.cardCloseButtonProps.tooltipAlign,\n\t\t});\n\t}\n\n\tprotected syncCardCloseTooltipListeners(): void {\n\t\tif (this.cardCloseButtonRef.el) {\n\t\t\tthis.cardCloseTooltipBehavior.syncListeners(undefined, this.cardCloseButtonRef.el, true);\n\t\t}\n\t}\n\n\tprotected teardownDialog(): void {\n\t\tthis.closeDialog();\n\t\tunlockScroll(this);\n\t\tthis.cardCloseTooltipBehavior.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyLabel(value?: LabelPropType): void {\n\t\tlabelProp.apply(value, (v) => this.setRenderProp('label', v));\n\t}\n\n\tprotected applyLevel(value?: HeadingLevel): void {\n\t\tlevelProp.apply(value, (v) => this.setRenderProp('level', v));\n\t}\n\n\tprotected applyOn(value?: KoliBriDialogEventCallbacks): void {\n\t\tdialogCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyVariant(value?: ModalVariantPropType): void {\n\t\tvariantDialogProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\tprotected applyWidth(value?: string): void {\n\t\twidthProp.apply(value, (v) => this.setRenderProp('width', v));\n\t}\n\n\t// --- Dialog control ---\n\n\t/*\n\t * The optional chaining on the native methods is a workaround for HTMLDialogElement not being\n\t * implemented in jsdom, which would otherwise fail the Jest tests.\n\t */\n\n\tprotected showDialog(modal: boolean): void {\n\t\tconst dialog = this.dialogRef.el;\n\t\tif (dialog?.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState('modal', modal);\n\t\tif (modal) {\n\t\t\tdialog?.showModal?.();\n\t\t\tif (dialog) {\n\t\t\t\tlockScroll(this);\n\t\t\t}\n\t\t} else {\n\t\t\tdialog?.show?.();\n\t\t}\n\t}\n\n\tprotected closeDialog(): void {\n\t\tthis.dialogRef.el?.close?.();\n\t}\n\n\t// --- Event handling ---\n\n\tprivate readonly handleCancel = (event: Event): void => {\n\t\thandleCancelOverlay(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tthis.getRenderProp('on').onCancel?.(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tif (this.host && !dispatchDomEvent(this.host, KolEvent.cancel)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tprivate readonly handleClose = (event: Event): void => {\n\t\t// Ignore close events that bubble up from child components (e.g. KolAlert).\n\t\t// Only react when the dialog element itself is the event origin.\n\t\tif (event.target !== this.dialogRef.el) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlockScroll(this);\n\t\tthis.getRenderProp('on').onClose?.();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t/** The card's close button closes the dialog, which then fires its own native close event. */\n\tprivate readonly handleCardClose = (): void => {\n\t\tthis.cardCloseTooltipBehavior.hideTooltip();\n\t\tthis.closeDialog();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/**\n\t * Stencil derives light-DOM slot relocation from the `<slot />` it finds in the element file,\n\t * so each element supplies its own through `renderSlot`.\n\t */\n\tprotected abstract renderSlot(): JSX.Element;\n\n\tprivate buildCardProps(): CardFCProps {\n\t\treturn {\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tcloseButtonProps: this.cardCloseButtonProps,\n\t\t\thandleBlur: NOOP,\n\t\t\thandleClose: this.handleCardClose,\n\t\t\thandleFocus: NOOP,\n\t\t\thasCloser: true,\n\t\t\theadingId: this.getState('headingId'),\n\t\t\thref: '',\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tlevel: this.getRenderProp('level'),\n\t\t\ton: {},\n\t\t\trefCloseButton: this.cardCloseButtonRef,\n\t\t\trefCta: NOOP,\n\t\t\trefTooltip: this.cardCloseTooltipBehavior.setTooltipElementRef,\n\t\t\ttarget: '',\n\t\t};\n\t}\n\n\tprotected renderDialogFC(): JSX.Element {\n\t\tconst variant = this.getRenderProp('variant');\n\t\tconst isCard = variant === 'card';\n\n\t\treturn (\n\t\t\t<DialogFC\n\t\t\t\tblockClass={dialogBlockClass(variant)}\n\t\t\t\thandleCancel={this.handleCancel}\n\t\t\t\thandleClose={this.handleClose}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\tlabelledBy={isCard ? this.getState('headingId') : undefined}\n\t\t\t\tmodal={this.getState('modal')}\n\t\t\t\trefDialog={this.dialogRef}\n\t\t\t\twidth={this.getRenderProp('width')}\n\t\t\t>\n\t\t\t\t{isCard ? <CardFC {...this.buildCardProps()}>{this.renderSlot()}</CardFC> : this.renderSlot()}\n\t\t\t</DialogFC>\n\t\t);\n\t}\n}\n"],"names":["labelProp","dialogCallbacksProp","levelProp","variantDialogProp","widthProp","BaseWebComponent","createCtaRef","TooltipBehavior","handleCancelOverlay","dispatchDomEvent","KolEvent","unlockScroll","resolveCardCloseButtonProps","lockScroll","h","DialogFC","dialogBlockClass","CardFC"],"mappings":"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"}
1
+ {"version":3,"file":"base-Cea-xkFy.js","sources":["src/internal/functional-components/dialog/api.tsx","src/components/dialog/base.tsx"],"sourcesContent":["import { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props configuration for the dialog component.\n *\n * Notes on prop choices:\n * - `labelProp`, not `labelWithExpertSlotProp`: the label is either the `aria-label` of the blank\n * variant or the card's heading text — neither has an expert slot.\n * - `levelProp` only reaches the card variant's heading; the blank variant renders no heading.\n */\nexport const dialogPropsConfig = {\n\trequired: [labelProp],\n\toptional: [dialogCallbacksProp, levelProp, variantDialogProp, widthProp],\n} as const satisfies PropsConfigShape;\n\nexport type DialogApi = ApiFromConfig<\n\ttypeof dialogPropsConfig,\n\t{\n\t\t/** Both callbacks handle the native events of the `<dialog>` element. */\n\t\tCallbacks: {\n\t\t\tcancel: (event: Event) => void;\n\t\t\tclose: (event: Event) => void;\n\t\t};\n\t\tMethods: {\n\t\t\tclose: () => void;\n\t\t\tcloseModal: () => void;\n\t\t\topenModal: () => void;\n\t\t\tshow: (modal?: boolean) => void;\n\t\t\tshowModal: () => void;\n\t\t};\n\t\tRefs: {\n\t\t\tdialog: HTMLDialogElement;\n\t\t};\n\t\tStates: {\n\t\t\t/**\n\t\t\t * DOM id of the close button's visually-hidden description span, required by the card\n\t\t\t * variant's `ButtonFC`. Unused while that button carries no aria description.\n\t\t\t */\n\t\t\tariaDescriptionId: string;\n\t\t\t/**\n\t\t\t * DOM id of the card variant's heading, referenced by the `<dialog>`'s\n\t\t\t * `aria-labelledby`. Generated per instance.\n\t\t\t */\n\t\t\theadingId: string;\n\t\t\t/**\n\t\t\t * Whether the dialog is currently shown modally. Drives `aria-modal` and is set by\n\t\t\t * `show()`/`showModal()`.\n\t\t\t */\n\t\t\tmodal: boolean;\n\t\t};\n\t}\n>;\n","import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { ResolvedButtonProps } from '../../internal/functional-components/button/resolve-props';\nimport { resolveCardCloseButtonProps } from '../../internal/functional-components/card/close-button';\nimport type { CardFCProps } from '../../internal/functional-components/card/component';\nimport { CardFC } from '../../internal/functional-components/card/component';\nimport type { DialogApi } from '../../internal/functional-components/dialog/api';\nimport { dialogPropsConfig } from '../../internal/functional-components/dialog/api';\nimport { dialogBlockClass, DialogFC } from '../../internal/functional-components/dialog/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport { dialogCallbacksProp, labelProp, levelProp, variantDialogProp, widthProp } from '../../internal/props';\nimport type { HeadingLevel, KoliBriDialogEventCallbacks, LabelPropType } from '../../schema';\nimport type { ModalVariantPropType } from '../../schema/props/variant/modal';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport { lockScroll, unlockScroll } from '../../utils/scroll-lock';\nimport { handleCancelOverlay } from '../../utils/tooltip-open-tracking';\n\n/**\n * The card variant renders no link, so its anchor never exists: the card's own `_on` callbacks\n * describe that anchor, and its ref is never called.\n */\nconst NOOP = (): void => {};\n\n/**\n * Orchestrator shared by `kol-dialog` and the deprecated `kol-modal`. Both render the same\n * `DialogFC`; the concrete element only declares the Stencil members and delegates from its\n * watchers, methods and lifecycle hooks.\n *\n * The card variant renders `CardFC` directly, so this class also owns the close button's resolved\n * props, its tooltip behavior and its ref.\n */\nexport abstract class BaseDialogWebComponent extends BaseWebComponent<DialogApi> {\n\tprotected abstract readonly host?: HTMLElement;\n\n\tprotected readonly dialogRef = createCtaRef<HTMLDialogElement>();\n\tprivate readonly cardCloseButtonRef = createCtaRef<HTMLButtonElement>();\n\n\t/** Drives the card close button's tooltip — it renders with `hideLabel`, so its label lives there. */\n\tprivate readonly cardCloseTooltipBehavior = new TooltipBehavior(this.stateAccess);\n\n\t/** Resolved once in `componentWillLoad`: the close button's configuration never changes. */\n\tprivate cardCloseButtonProps!: ResolvedButtonProps;\n\n\t// --- Lifecycle ---\n\n\tprotected initDialogRenderProps(): void {\n\t\tthis.initRenderProps(dialogPropsConfig);\n\n\t\tthis.cardCloseButtonProps = resolveCardCloseButtonProps(this.host);\n\t\tthis.cardCloseTooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.cardCloseButtonProps.label,\n\t\t\talign: this.cardCloseButtonProps.tooltipAlign,\n\t\t});\n\t}\n\n\tprotected syncCardCloseTooltipListeners(): void {\n\t\tif (this.cardCloseButtonRef.el) {\n\t\t\tthis.cardCloseTooltipBehavior.syncListeners(undefined, this.cardCloseButtonRef.el, true);\n\t\t}\n\t}\n\n\tprotected teardownDialog(): void {\n\t\tthis.closeDialog();\n\t\tunlockScroll(this);\n\t\tthis.cardCloseTooltipBehavior.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyLabel(value?: LabelPropType): void {\n\t\tlabelProp.apply(value, (v) => this.setRenderProp('label', v));\n\t}\n\n\tprotected applyLevel(value?: HeadingLevel): void {\n\t\tlevelProp.apply(value, (v) => this.setRenderProp('level', v));\n\t}\n\n\tprotected applyOn(value?: KoliBriDialogEventCallbacks): void {\n\t\tdialogCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyVariant(value?: ModalVariantPropType): void {\n\t\tvariantDialogProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\tprotected applyWidth(value?: string): void {\n\t\twidthProp.apply(value, (v) => this.setRenderProp('width', v));\n\t}\n\n\t// --- Dialog control ---\n\n\t/*\n\t * The optional chaining on the native methods is a workaround for HTMLDialogElement not being\n\t * implemented in jsdom, which would otherwise fail the Jest tests.\n\t */\n\n\tprotected showDialog(modal: boolean): void {\n\t\tconst dialog = this.dialogRef.el;\n\t\tif (dialog?.open) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.setState('modal', modal);\n\t\tif (modal) {\n\t\t\tdialog?.showModal?.();\n\t\t\tif (dialog) {\n\t\t\t\tlockScroll(this);\n\t\t\t}\n\t\t} else {\n\t\t\tdialog?.show?.();\n\t\t}\n\t}\n\n\tprotected closeDialog(): void {\n\t\tthis.dialogRef.el?.close?.();\n\t}\n\n\t// --- Event handling ---\n\n\tprivate readonly handleCancel = (event: Event): void => {\n\t\thandleCancelOverlay(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tthis.getRenderProp('on').onCancel?.(event);\n\t\tif (event.defaultPrevented) return;\n\n\t\tif (this.host && !dispatchDomEvent(this.host, KolEvent.cancel)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tprivate readonly handleClose = (event: Event): void => {\n\t\t// Ignore close events that bubble up from child components (e.g. KolAlert).\n\t\t// Only react when the dialog element itself is the event origin.\n\t\tif (event.target !== this.dialogRef.el) {\n\t\t\treturn;\n\t\t}\n\n\t\tunlockScroll(this);\n\t\tthis.getRenderProp('on').onClose?.();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t/** The card's close button closes the dialog, which then fires its own native close event. */\n\tprivate readonly handleCardClose = (): void => {\n\t\tthis.cardCloseTooltipBehavior.hideTooltip();\n\t\tthis.closeDialog();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/**\n\t * Stencil derives light-DOM slot relocation from the `<slot />` it finds in the element file,\n\t * so each element supplies its own through `renderSlot`.\n\t */\n\tprotected abstract renderSlot(): JSX.Element;\n\n\tprivate buildCardProps(): CardFCProps {\n\t\treturn {\n\t\t\tariaDescriptionId: this.getState('ariaDescriptionId'),\n\t\t\tcloseButtonProps: this.cardCloseButtonProps,\n\t\t\thandleBlur: NOOP,\n\t\t\thandleClose: this.handleCardClose,\n\t\t\thandleFocus: NOOP,\n\t\t\thasCloser: true,\n\t\t\theadingId: this.getState('headingId'),\n\t\t\thref: '',\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tlevel: this.getRenderProp('level'),\n\t\t\ton: {},\n\t\t\trefCloseButton: this.cardCloseButtonRef,\n\t\t\trefCta: NOOP,\n\t\t\trefTooltip: this.cardCloseTooltipBehavior.setTooltipElementRef,\n\t\t\ttarget: '',\n\t\t};\n\t}\n\n\tprotected renderDialogFC(): JSX.Element {\n\t\tconst variant = this.getRenderProp('variant');\n\t\tconst isCard = variant === 'card';\n\n\t\treturn (\n\t\t\t<DialogFC\n\t\t\t\tblockClass={dialogBlockClass(variant)}\n\t\t\t\thandleCancel={this.handleCancel}\n\t\t\t\thandleClose={this.handleClose}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\tlabelledBy={isCard ? this.getState('headingId') : undefined}\n\t\t\t\tmodal={this.getState('modal')}\n\t\t\t\trefDialog={this.dialogRef}\n\t\t\t\twidth={this.getRenderProp('width')}\n\t\t\t>\n\t\t\t\t{isCard ? <CardFC {...this.buildCardProps()}>{this.renderSlot()}</CardFC> : this.renderSlot()}\n\t\t\t</DialogFC>\n\t\t);\n\t}\n}\n"],"names":["labelProp","dialogCallbacksProp","levelProp","variantDialogProp","widthProp","BaseWebComponent","createCtaRef","TooltipBehavior","handleCancelOverlay","dispatchDomEvent","KolEvent","unlockScroll","resolveCardCloseButtonProps","lockScroll","h","DialogFC","dialogBlockClass","CardFC"],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DO9lYEcH.js');
6
+ var index = require('./index-Dv7OF9AY.js');
7
7
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
8
- var api = require('./api-CimiLGvb.js');
8
+ var api = require('./api-8kjgnnU3.js');
9
9
  var behavior = require('./behavior-V1mhEBZ2.js');
10
10
  var common = require('./common-B9-LvLNa.js');
11
11
  var variant = require('./variant-BNRxRadM.js');
@@ -162,6 +162,6 @@ class BaseLinkWebComponent extends baseWebComponent.BaseWebComponent {
162
162
  }
163
163
 
164
164
  exports.BaseLinkWebComponent = BaseLinkWebComponent;
165
- //# sourceMappingURL=base-DD2zVHk7.js.map
165
+ //# sourceMappingURL=base-OMJLjz5u.js.map
166
166
 
167
- //# sourceMappingURL=base-DD2zVHk7.js.map
167
+ //# sourceMappingURL=base-OMJLjz5u.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-DD2zVHk7.js","sources":["src/components/link/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { LinkApi } from '../../internal/functional-components/link/api';\nimport { linkPropsConfig } from '../../internal/functional-components/link/api';\nimport { LinkFC } from '../../internal/functional-components/link/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\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 '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaCurrentValuePropType,\n\tAriaDescriptionPropType,\n\tAriaOwnsPropType,\n\tCustomClassPropType,\n\tDownloadPropType,\n\tHrefPropType,\n\tInlinePropType,\n\tKoliBriIconsProp,\n\tLabelWithExpertSlotPropType,\n\tLinkOnCallbacksPropType,\n\tLinkTargetPropType,\n\tShortKeyPropType,\n\tStringified,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport type { UnsubscribeFunction } from './ariaCurrentService';\nimport { onLocationChange } from './ariaCurrentService';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `LinkFC`:\n * `kol-link` and `kol-link-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the `aria-current` location subscription, the anchor click handler, one\n * `apply*` method per prop and the `LinkFC` render call. The concrete element keeps what Stencil\n * has to see in the component class itself: `@Component`, `@Element`, `@State`, `@Method`, every\n * `@Prop` with its `@Watch` (whose body is a one-line call into the matching `apply*` method) and\n * the lifecycle methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseLinkWebComponent extends BaseWebComponent<LinkApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/* An `<a>` carries no native `disabled`, so a disabled link stays focusable. Emptying the ref\n\t keeps the public `focus()` and `click()` methods from reaching it. */\n\tprotected readonly ctaRef = createCtaRef<HTMLAnchorElement>(() => this.getRenderProp('disabled') === true);\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initLinkRenderProps(): void {\n\t\tthis.initRenderProps(linkPropsConfig);\n\t\t// An unset tabindex must not render as `tabindex=\"0\"` — links are natively tabbable and\n\t\t// the attribute would trigger focus outlines that the predecessor did not draw.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Subscribes to location changes and hands the resolved label and alignment to the tooltip\n\t * behavior. Call last in `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initLinkBehaviors(): void {\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tconst href = this.getRenderProp('href');\n\t\t\tconst ariaCurrentValue = this.getRenderProp('ariaCurrentValue');\n\t\t\tconst newValue = location === href ? ariaCurrentValue : '';\n\t\t\tif (this.getState('ariaCurrent') !== newValue) {\n\t\t\t\tthis.setState('ariaCurrent', newValue);\n\t\t\t}\n\t\t});\n\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getTooltipLabel(),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyLinkBehaviors(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t\tthis.unsubscribeOnLocationChange = undefined;\n\t\t}\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Click handling ---\n\n\tprotected readonly handleAnchorClick = (event: Event): void => {\n\t\tthis.tooltipBehavior.hideTooltip();\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tif (disabled === true) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\tconst on = this.getRenderProp('on');\n\t\tif (typeof on?.onClick === 'function') {\n\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\ton.onClick(event, href);\n\t\t}\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, href);\n\t\t}\n\t};\n\n\t// --- Tooltip helpers ---\n\n\tprivate getTooltipLabel(): string {\n\t\tconst label = this.getRenderProp('label');\n\t\tif (typeof label === 'string' && label.length > 0) {\n\t\t\treturn label;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\treturn typeof href === 'string' ? href : '';\n\t}\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tariaCurrentValueProp.apply(value, (v) => this.setRenderProp('ariaCurrentValue', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaOwns(value?: AriaOwnsPropType): void {\n\t\tariaOwnsProp.apply(value, (v) => this.setRenderProp('ariaOwns', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyDownload(value?: DownloadPropType): void {\n\t\tdownloadProp.apply(value, (v) => this.setRenderProp('download', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHref(value?: HrefPropType): void {\n\t\threfProp.apply(value, (v) => this.setRenderProp('href', v));\n\t}\n\n\tprotected applyIcons(value?: Stringified<KoliBriIconsProp>): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.setState('expertSlot', value === '');\n\t\t\tthis.tooltipBehavior.watchLabel(this.getTooltipLabel());\n\t\t});\n\t}\n\n\tprotected applyOn(value?: LinkOnCallbacksPropType): void {\n\t\tlinkCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"`. Unsetting the prop has to restore that state, so the else branch\n\t\t// is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTarget(value?: LinkTargetPropType): void {\n\t\tlinkTargetProp.apply(value, (v) => this.setRenderProp('target', v));\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Refs ---\n\n\tprivate readonly setAnchorRef = (el?: HTMLAnchorElement): void => {\n\t\tthis.ctaRef(el);\n\t};\n\n\t// --- Render ---\n\n\t/** Renders `LinkFC` from the current render props and state. */\n\tprotected renderLinkFC(): JSX.Element {\n\t\treturn (\n\t\t\t<LinkFC\n\t\t\t\taccessKey={this.getRenderProp('accessKey')}\n\t\t\t\tariaControls={this.getRenderProp('ariaControls')}\n\t\t\t\tariaCurrent={this.getState('ariaCurrent')}\n\t\t\t\tariaCurrentValue={this.getRenderProp('ariaCurrentValue')}\n\t\t\t\tariaDescription={this.getRenderProp('ariaDescription')}\n\t\t\t\tariaDescriptionId={this.getState('ariaDescriptionId')}\n\t\t\t\tariaExpanded={this.getRenderProp('ariaExpanded')}\n\t\t\t\tariaOwns={this.getRenderProp('ariaOwns')}\n\t\t\t\tcustomClass={this.getRenderProp('customClass')}\n\t\t\t\tdisabled={this.getRenderProp('disabled')}\n\t\t\t\tdownload={this.getRenderProp('download')}\n\t\t\t\thandleAnchorClick={this.handleAnchorClick}\n\t\t\t\thideLabel={this.getRenderProp('hideLabel')}\n\t\t\t\thref={this.getRenderProp('href')}\n\t\t\t\ticons={this.getRenderProp('icons')}\n\t\t\t\tinline={this.getRenderProp('inline')}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\ton={this.getRenderProp('on')}\n\t\t\t\trefAnchor={this.setAnchorRef}\n\t\t\t\trefTooltip={this.tooltipBehavior.setTooltipElementRef}\n\t\t\t\trole={this.getRenderProp('role')}\n\t\t\t\tshortKey={this.getRenderProp('shortKey')}\n\t\t\t\ttabIndex={this.getRenderProp('tabIndex')}\n\t\t\t\ttarget={this.getRenderProp('target')}\n\t\t\t\ttooltipAlign={this.getRenderProp('tooltipAlign')}\n\t\t\t\tvariant={this.getRenderProp('variant')}\n\t\t\t\texpertSlot={this.getState('expertSlot')}\n\t\t\t/>\n\t\t);\n\t}\n}\n"],"names":["BaseWebComponent","createCtaRef","TooltipBehavior","setEventTarget","dispatchDomEvent","KolEvent","linkPropsConfig","onLocationChange","accessKeyProp","ariaControlsProp","ariaCurrentValueProp","ariaDescriptionProp","ariaExpandedProp","ariaOwnsProp","customClassProp","disabledProp","downloadProp","hideLabelProp","hrefProp","spanIconsProp","inlineProp","labelWithExpertSlotProp","linkCallbacksProp","linkRoleProp","shortKeyProp","tabIndexProp","linkTargetProp","tooltipAlignProp","variantProp","h","LinkFC"],"mappings":"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"}
1
+ {"version":3,"file":"base-OMJLjz5u.js","sources":["src/components/link/base.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BaseWebComponent } from '../../internal/functional-components/base-web-component';\nimport type { LinkApi } from '../../internal/functional-components/link/api';\nimport { linkPropsConfig } from '../../internal/functional-components/link/api';\nimport { LinkFC } from '../../internal/functional-components/link/component';\nimport { TooltipBehavior } from '../../internal/functional-components/tooltip/behavior';\nimport {\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 '../../internal/props';\nimport type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tAriaCurrentValuePropType,\n\tAriaDescriptionPropType,\n\tAriaOwnsPropType,\n\tCustomClassPropType,\n\tDownloadPropType,\n\tHrefPropType,\n\tInlinePropType,\n\tKoliBriIconsProp,\n\tLabelWithExpertSlotPropType,\n\tLinkOnCallbacksPropType,\n\tLinkTargetPropType,\n\tShortKeyPropType,\n\tStringified,\n\tTooltipAlignPropType,\n\tVariantClassNamePropType,\n} from '../../schema';\nimport { setEventTarget } from '../../schema';\nimport { createCtaRef } from '../../utils/element-interaction';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\nimport type { UnsubscribeFunction } from './ariaCurrentService';\nimport { onLocationChange } from './ariaCurrentService';\n\n/**\n * Shared orchestrator implementation for every custom element that renders `LinkFC`:\n * `kol-link` and `kol-link-button`.\n *\n * The class carries everything that does not need a Stencil decorator — the composed\n * `TooltipBehavior`, the `aria-current` location subscription, the anchor click handler, one\n * `apply*` method per prop and the `LinkFC` render call. The concrete element keeps what Stencil\n * has to see in the component class itself: `@Component`, `@Element`, `@State`, `@Method`, every\n * `@Prop` with its `@Watch` (whose body is a one-line call into the matching `apply*` method) and\n * the lifecycle methods, which delegate here (ARC42 § 9, design decision 16).\n *\n * This is not a layer between the web component and the functional component — it *is* the web\n * component's implementation, shared between the tag variants of one FC.\n */\nexport abstract class BaseLinkWebComponent extends BaseWebComponent<LinkApi> {\n\t/** The custom element; declared with `@Element()` by the concrete class. */\n\tprotected abstract readonly host?: HTMLElement;\n\n\t/* An `<a>` carries no native `disabled`, so a disabled link stays focusable. Emptying the ref\n\t keeps the public `focus()` and `click()` methods from reaching it. */\n\tprotected readonly ctaRef = createCtaRef<HTMLAnchorElement>(() => this.getRenderProp('disabled') === true);\n\n\t// --- Composed behaviors ---\n\n\tprotected readonly tooltipBehavior = new TooltipBehavior(this.stateAccess);\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\t// --- Lifecycle helpers (called from the concrete element's lifecycle methods) ---\n\n\t/**\n\t * Seeds the render props. Call first in `componentWillLoad`, before the prop watchers run.\n\t */\n\tprotected initLinkRenderProps(): void {\n\t\tthis.initRenderProps(linkPropsConfig);\n\t\t// An unset tabindex must not render as `tabindex=\"0\"` — links are natively tabbable and\n\t\t// the attribute would trigger focus outlines that the predecessor did not draw.\n\t\tthis.unsetRenderProp('tabIndex');\n\t}\n\n\t/**\n\t * Subscribes to location changes and hands the resolved label and alignment to the tooltip\n\t * behavior. Call last in `componentWillLoad`, after every prop watcher has run.\n\t */\n\tprotected initLinkBehaviors(): void {\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tconst href = this.getRenderProp('href');\n\t\t\tconst ariaCurrentValue = this.getRenderProp('ariaCurrentValue');\n\t\t\tconst newValue = location === href ? ariaCurrentValue : '';\n\t\t\tif (this.getState('ariaCurrent') !== newValue) {\n\t\t\t\tthis.setState('ariaCurrent', newValue);\n\t\t\t}\n\t\t});\n\n\t\tthis.tooltipBehavior.componentWillLoad({\n\t\t\tlabel: this.getTooltipLabel(),\n\t\t\talign: this.getRenderProp('tooltipAlign'),\n\t\t});\n\t}\n\n\t/** Call from `componentDidRender`. */\n\tprotected syncTooltipListeners(): void {\n\t\tif (this.ctaRef.el) {\n\t\t\tthis.tooltipBehavior.syncListeners(undefined, this.ctaRef.el, true);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyLinkBehaviors(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t\tthis.unsubscribeOnLocationChange = undefined;\n\t\t}\n\t\tthis.tooltipBehavior.destroy();\n\t}\n\n\t// --- Click handling ---\n\n\tprotected readonly handleAnchorClick = (event: Event): void => {\n\t\tthis.tooltipBehavior.hideTooltip();\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tif (disabled === true) {\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\tconst on = this.getRenderProp('on');\n\t\tif (typeof on?.onClick === 'function') {\n\t\t\tsetEventTarget(event, this.ctaRef.el);\n\t\t\ton.onClick(event, href);\n\t\t}\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, href);\n\t\t}\n\t};\n\n\t// --- Tooltip helpers ---\n\n\tprivate getTooltipLabel(): string {\n\t\tconst label = this.getRenderProp('label');\n\t\tif (typeof label === 'string' && label.length > 0) {\n\t\t\treturn label;\n\t\t}\n\t\tconst href = this.getRenderProp('href');\n\t\treturn typeof href === 'string' ? href : '';\n\t}\n\n\t// --- Prop application (one per prop; the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t}\n\n\tprotected applyAriaControls(value?: string): void {\n\t\tariaControlsProp.apply(value, (v) => this.setRenderProp('ariaControls', v));\n\t}\n\n\tprotected applyAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tariaCurrentValueProp.apply(value, (v) => this.setRenderProp('ariaCurrentValue', v));\n\t}\n\n\tprotected applyAriaDescription(value?: AriaDescriptionPropType): void {\n\t\tariaDescriptionProp.apply(value, (v) => this.setRenderProp('ariaDescription', v));\n\t}\n\n\tprotected applyAriaExpanded(value?: boolean): void {\n\t\tariaExpandedProp.apply(value, (v) => this.setRenderProp('ariaExpanded', v));\n\t}\n\n\tprotected applyAriaOwns(value?: AriaOwnsPropType): void {\n\t\tariaOwnsProp.apply(value, (v) => this.setRenderProp('ariaOwns', v));\n\t}\n\n\tprotected applyCustomClass(value?: CustomClassPropType): void {\n\t\tcustomClassProp.apply(value, (v) => this.setRenderProp('customClass', v));\n\t}\n\n\tprotected applyDisabled(value?: boolean): void {\n\t\tdisabledProp.apply(value, (v) => this.setRenderProp('disabled', v));\n\t}\n\n\tprotected applyDownload(value?: DownloadPropType): void {\n\t\tdownloadProp.apply(value, (v) => this.setRenderProp('download', v));\n\t}\n\n\tprotected applyHideLabel(value?: boolean): void {\n\t\thideLabelProp.apply(value, (v) => this.setRenderProp('hideLabel', v));\n\t}\n\n\tprotected applyHref(value?: HrefPropType): void {\n\t\threfProp.apply(value, (v) => this.setRenderProp('href', v));\n\t}\n\n\tprotected applyIcons(value?: Stringified<KoliBriIconsProp>): void {\n\t\tspanIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyInline(value?: InlinePropType): void {\n\t\tinlineProp.apply(value, (v) => this.setRenderProp('inline', v));\n\t}\n\n\tprotected applyLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tlabelWithExpertSlotProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('label', v);\n\t\t\tthis.setState('expertSlot', value === '');\n\t\t\tthis.tooltipBehavior.watchLabel(this.getTooltipLabel());\n\t\t});\n\t}\n\n\tprotected applyOn(value?: LinkOnCallbacksPropType): void {\n\t\tlinkCallbacksProp.apply(value, (v) => this.setRenderProp('on', v));\n\t}\n\n\tprotected applyRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tlinkRoleProp.apply(value, (v) => this.setRenderProp('role', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\t// The props config seeds `tabIndex` with its default `0`, but an unset tabindex must not\n\t\t// render as `tabindex=\"0\"`. Unsetting the prop has to restore that state, so the else branch\n\t\t// is not optional: without it a reset would keep the previous number.\n\t\tif (typeof value === 'number') {\n\t\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t\t} else {\n\t\t\tthis.unsetRenderProp('tabIndex');\n\t\t}\n\t}\n\n\tprotected applyTarget(value?: LinkTargetPropType): void {\n\t\tlinkTargetProp.apply(value, (v) => this.setRenderProp('target', v));\n\t}\n\n\tprotected applyTooltipAlign(value?: TooltipAlignPropType): void {\n\t\ttooltipAlignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('tooltipAlign', v);\n\t\t\tthis.tooltipBehavior.watchAlign(v);\n\t\t});\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Refs ---\n\n\tprivate readonly setAnchorRef = (el?: HTMLAnchorElement): void => {\n\t\tthis.ctaRef(el);\n\t};\n\n\t// --- Render ---\n\n\t/** Renders `LinkFC` from the current render props and state. */\n\tprotected renderLinkFC(): JSX.Element {\n\t\treturn (\n\t\t\t<LinkFC\n\t\t\t\taccessKey={this.getRenderProp('accessKey')}\n\t\t\t\tariaControls={this.getRenderProp('ariaControls')}\n\t\t\t\tariaCurrent={this.getState('ariaCurrent')}\n\t\t\t\tariaCurrentValue={this.getRenderProp('ariaCurrentValue')}\n\t\t\t\tariaDescription={this.getRenderProp('ariaDescription')}\n\t\t\t\tariaDescriptionId={this.getState('ariaDescriptionId')}\n\t\t\t\tariaExpanded={this.getRenderProp('ariaExpanded')}\n\t\t\t\tariaOwns={this.getRenderProp('ariaOwns')}\n\t\t\t\tcustomClass={this.getRenderProp('customClass')}\n\t\t\t\tdisabled={this.getRenderProp('disabled')}\n\t\t\t\tdownload={this.getRenderProp('download')}\n\t\t\t\thandleAnchorClick={this.handleAnchorClick}\n\t\t\t\thideLabel={this.getRenderProp('hideLabel')}\n\t\t\t\thref={this.getRenderProp('href')}\n\t\t\t\ticons={this.getRenderProp('icons')}\n\t\t\t\tinline={this.getRenderProp('inline')}\n\t\t\t\tlabel={this.getRenderProp('label')}\n\t\t\t\ton={this.getRenderProp('on')}\n\t\t\t\trefAnchor={this.setAnchorRef}\n\t\t\t\trefTooltip={this.tooltipBehavior.setTooltipElementRef}\n\t\t\t\trole={this.getRenderProp('role')}\n\t\t\t\tshortKey={this.getRenderProp('shortKey')}\n\t\t\t\ttabIndex={this.getRenderProp('tabIndex')}\n\t\t\t\ttarget={this.getRenderProp('target')}\n\t\t\t\ttooltipAlign={this.getRenderProp('tooltipAlign')}\n\t\t\t\tvariant={this.getRenderProp('variant')}\n\t\t\t\texpertSlot={this.getState('expertSlot')}\n\t\t\t/>\n\t\t);\n\t}\n}\n"],"names":["BaseWebComponent","createCtaRef","TooltipBehavior","setEventTarget","dispatchDomEvent","KolEvent","linkPropsConfig","onLocationChange","accessKeyProp","ariaControlsProp","ariaCurrentValueProp","ariaDescriptionProp","ariaExpandedProp","ariaOwnsProp","customClassProp","disabledProp","downloadProp","hideLabelProp","hrefProp","spanIconsProp","inlineProp","labelWithExpertSlotProp","linkCallbacksProp","linkRoleProp","shortKeyProp","tabIndexProp","linkTargetProp","tooltipAlignProp","variantProp","h","LinkFC"],"mappings":"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"}
@@ -5,21 +5,21 @@
5
5
 
6
6
  require('./common-B9-LvLNa.js');
7
7
  var variant = require('./variant-BNRxRadM.js');
8
- var suggestions = require('./suggestions-Dtu6i-Ff.js');
9
- var inputContainer = require('./input-container-AUYMUXlO.js');
8
+ var suggestions = require('./suggestions-CC1tzlom.js');
9
+ var inputContainer = require('./input-container-BXz_irj1.js');
10
10
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
11
11
  var placeholder = require('./placeholder-ClwJSSNT.js');
12
12
  var readOnly = require('./read-only-DBvxEaxi.js');
13
13
  var required = require('./required-ZyS6KTUB.js');
14
14
  var smartButton = require('./smart-button-BVsd-3XP.js');
15
15
  var valueString = require('./value-string-BG4BxeEb.js');
16
- var api = require('./api-CGIOreYK.js');
17
- var index = require('./index-DO9lYEcH.js');
16
+ var api = require('./api-C2rTkOz2.js');
17
+ var index = require('./index-Dv7OF9AY.js');
18
18
  var controller = require('./controller-D45264J9.js');
19
19
  var accessAndShortKey = require('./access-and-short-key-D40HWCJe.js');
20
20
  var clsx = require('./clsx-Bm_HQUnh.js');
21
21
  var elementInteraction = require('./element-interaction-7FI_z19L.js');
22
- var behavior = require('./behavior-B9JuvM3I.js');
22
+ var behavior = require('./behavior-XywM4z8h.js');
23
23
 
24
24
  const patternProp = baseWebComponent.createPropDefinition('pattern', undefined, baseWebComponent.normalizeString);
25
25
 
@@ -185,6 +185,6 @@ class BaseTextInputWebComponent extends api.BaseFormFieldWebComponent {
185
185
 
186
186
  exports.BaseTextInputWebComponent = BaseTextInputWebComponent;
187
187
  exports.textInputBasePropsConfig = textInputBasePropsConfig;
188
- //# sourceMappingURL=base-web-component-8qVyDl6W.js.map
188
+ //# sourceMappingURL=base-web-component-BCEKzbV3.js.map
189
189
 
190
- //# sourceMappingURL=base-web-component-8qVyDl6W.js.map
190
+ //# sourceMappingURL=base-web-component-BCEKzbV3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-web-component-8qVyDl6W.js","sources":["src/internal/props/pattern.ts","src/internal/functional-components/text-input/api.tsx","src/internal/functional-components/text-input/base-web-component.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * Pattern prop for text-based inputs\n *\n * Description:\n * A regular expression the value has to match for the native constraint validation.\n *\n * @see https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern\n */\nexport type PatternProp = SimpleProp<'pattern', string>;\n// The default is `undefined`: the native attribute is only rendered when a pattern is set.\nexport const patternProp = createPropDefinition<PatternProp>('pattern', undefined as unknown as string, normalizeString);\n","import {\n\taccessKeyProp,\n\tautoCompleteProp,\n\thorizontalIconsProp,\n\tpatternProp,\n\tplaceholderProp,\n\treadOnlyProp,\n\trequiredProp,\n\tshortKeyProp,\n\tsmartButtonProp,\n\tstringValueProp,\n\tvariantProp,\n} from '../../props';\nimport type { FormFieldBaseStates } from '../form-field/api';\nimport { formFieldBasePropsConfig } from '../form-field/api';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props email, password and text have in common. The counter props (`hasCounter`, `maxLength`,\n * `maxLengthBehavior`) belong to the `CounterBehavior` and are not part of this config.\n */\nexport const textInputBasePropsConfig = {\n\trequired: [...formFieldBasePropsConfig.required],\n\toptional: [\n\t\t...formFieldBasePropsConfig.optional,\n\t\taccessKeyProp,\n\t\tautoCompleteProp,\n\t\thorizontalIconsProp,\n\t\tpatternProp,\n\t\tplaceholderProp,\n\t\treadOnlyProp,\n\t\trequiredProp,\n\t\tshortKeyProp,\n\t\tsmartButtonProp,\n\t\tstringValueProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type TextInputBaseApi = ApiFromConfig<typeof textInputBasePropsConfig, { States: FormFieldBaseStates }>;\n","import { h } from '@stencil/core';\nimport type { VNode } from '@stencil/core/internal';\nimport { propagateSubmitEventToForm } from '../../../components/form/controller';\nimport type {\n\tAccessKeyPropType,\n\tAutoCompletePropType,\n\tIconsHorizontalPropType,\n\tInternalButtonProps,\n\tMaxLengthBehaviorPropType,\n\tShortKeyPropType,\n\tStringified,\n\tVariantClassNamePropType,\n\tW3CInputValue,\n} from '../../../schema';\nimport { validateAccessAndShortKey } from '../../../schema/validators/access-and-short-key';\nimport clsx from '../../../utils/clsx';\nimport { createCtaRef } from '../../../utils/element-interaction';\nimport {\n\taccessKeyProp,\n\tautoCompleteProp,\n\thorizontalIconsProp,\n\tpatternProp,\n\tplaceholderProp,\n\treadOnlyProp,\n\trequiredProp,\n\tshortKeyProp,\n\tsmartButtonProp,\n\tstringValueProp,\n\tvariantProp,\n} from '../../props';\nimport { BaseWebComponent } from '../base-web-component';\nimport { CounterBehavior } from '../counter/behavior';\nimport { getInputAdornments } from '../form-field/adornments';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\nimport type { FormFieldFCProps } from '../form-field/component';\nimport type { InputFCProps } from '../form-field/input';\nimport { SuggestionsFC } from '../form-field/suggestions';\nimport type { TextInputBaseApi } from './api';\n\ntype TextInputFieldProps = {\n\t/** Native type; `kol-input-text` passes it where its state carried `_type`, before the value. */\n\ttype?: InputFCProps['type'];\n\tspellcheck?: boolean;\n\tmultiple?: boolean;\n\tsuggestions?: W3CInputValue[];\n};\n\n/**\n * Shared orchestrator implementation of `kol-input-email`, `kol-input-password` and `kol-input-text`\n * on top of the form field base: the common text input props, the character counter, the submit on\n * Enter and the props of the native `<input>`.\n *\n * As in the form field base, the concrete element declares every `@Prop` with its `@Watch`, which\n * calls the matching `apply*` method (DD16).\n */\nexport abstract class BaseTextInputWebComponent<Api extends TextInputBaseApi> extends BaseFormFieldWebComponent<Api> {\n\tpublic abstract _accessKey?: AccessKeyPropType;\n\tpublic abstract _shortKey?: ShortKeyPropType;\n\t/** Written on every input, so the watcher updates the counter and the form value. */\n\tpublic abstract _value?: string;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLInputElement>();\n\n\tprotected readonly counter = new CounterBehavior(BaseWebComponent.stateLess);\n\n\t/**\n\t * Whether the field has a value, rendered as the root class `has-value`. It is a plain field, not\n\t * state: changing it does not re-render, the class follows with the next render (#11053).\n\t */\n\tprotected hasValue = false;\n\n\t/** Typed view on the text input props, see `shared` in the form field base. */\n\tprivate get textShared(): BaseTextInputWebComponent<TextInputBaseApi> {\n\t\treturn this as unknown as BaseTextInputWebComponent<TextInputBaseApi>;\n\t}\n\n\t/** Call from `componentWillLoad`, after the value has been applied. */\n\tprotected initHasValue(): void {\n\t\tthis.hasValue = Boolean(this.textShared.getRenderProp('value'));\n\t}\n\n\t/** Call from `componentDidLoad`: fills the counter spans once they exist. */\n\tprotected didLoadTextInput(): void {\n\t\tif (this.counter.hasCounter() || this.counter.hasSoftLimit()) {\n\t\t\tthis.counter.updateImmediate(this._value?.length ?? 0);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTextInput(): void {\n\t\tthis.destroyFormField();\n\t\tthis.counter.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.textShared.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, this._shortKey);\n\t}\n\n\tprotected applyAutoComplete(value?: AutoCompletePropType): void {\n\t\tautoCompleteProp.apply(value, (v) => this.textShared.setRenderProp('autoComplete', v));\n\t}\n\n\tprotected applyIcons(value?: IconsHorizontalPropType): void {\n\t\thorizontalIconsProp.apply(value, (v) => this.textShared.setRenderProp('icons', v));\n\t}\n\n\tprotected applyPattern(value?: string): void {\n\t\tpatternProp.apply(value, (v) => this.textShared.setRenderProp('pattern', v));\n\t}\n\n\tprotected applyPlaceholder(value?: string): void {\n\t\tplaceholderProp.apply(value, (v) => this.textShared.setRenderProp('placeholder', v));\n\t}\n\n\tprotected applyReadOnly(value?: boolean): void {\n\t\treadOnlyProp.apply(value, (v) => this.textShared.setRenderProp('readOnly', v));\n\t}\n\n\tprotected applyRequired(value?: boolean): void {\n\t\trequiredProp.apply(value, (v) => this.textShared.setRenderProp('required', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.textShared.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(this._accessKey, value);\n\t}\n\n\t/** Without `_smartButton` no button is rendered, so no default may remain. */\n\tprotected applySmartButton(value?: Stringified<InternalButtonProps>): void {\n\t\tif (value === undefined || value === null) {\n\t\t\tthis.textShared.unsetRenderProp('smartButton');\n\t\t} else {\n\t\t\tsmartButtonProp.apply(value, (v) => this.textShared.setRenderProp('smartButton', v));\n\t\t}\n\t}\n\n\tprotected applyValue(value?: string): void {\n\t\tthis.initValue(value);\n\t\tthis.counter.update(value?.length ?? 0);\n\t}\n\n\t/** Applies the value on load, without a counter update: `didLoadTextInput` fills the counter once its spans exist. */\n\tprotected initValue(value?: string): void {\n\t\tstringValueProp.apply(value, (v) => this.textShared.setRenderProp('value', v));\n\t\tthis.formAssociation.setFormAssociatedValue(this.textShared.getRenderProp('value'));\n\t}\n\n\t/** Applies the maximum on load, without a counter update, see `initValue`. */\n\tprotected initMaxLength(value?: number): void {\n\t\tthis.counter.watchMaxLength(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.textShared.setRenderProp('variant', v));\n\t}\n\n\tprotected applyHasCounter(value?: boolean): void {\n\t\tthis.counter.watchHasCounter(value);\n\t}\n\n\tprotected applyMaxLength(value?: number): void {\n\t\tthis.counter.watchMaxLength(value);\n\t\tthis.counter.updateImmediate(this._value?.length ?? 0);\n\t}\n\n\tprotected applyMaxLengthBehavior(value?: MaxLengthBehaviorPropType): void {\n\t\tthis.counter.watchMaxLengthBehavior(value);\n\t}\n\n\t// --- Event handling ---\n\n\t/** Writes the value before the input event is dispatched, so the watcher has run when listeners read it. */\n\tprotected readonly handleTextInput = (event: Event): void => {\n\t\tthis._value = (event.target as HTMLInputElement).value;\n\t\tthis.handleInput(event);\n\t};\n\n\tprotected readonly handleTextChange = (event: Event, value?: unknown): void => {\n\t\tthis.handleChange(event, value);\n\t\tthis.hasValue = Boolean(value ?? (event.target as HTMLInputElement).value);\n\t};\n\n\tprotected readonly handleTextFocus = (event: FocusEvent): void => {\n\t\tthis.handleFocus(event);\n\t\tthis.counter.retriggerAria(this._value?.length ?? 0);\n\t};\n\n\t/** Enter submits the surrounding `kol-form`, like in a native form. */\n\tprotected readonly handleTextKeyDown = (event: KeyboardEvent): void => {\n\t\tthis.handleKeyDown(event);\n\t\tthis.counter.handleKeyDown(event, this.ctaRef.el?.value.length ?? 0);\n\t\tif (event.code === 'Enter' || event.code === 'NumpadEnter') {\n\t\t\tpropagateSubmitEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ctaRef.el,\n\t\t\t});\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/** Props of the form field shell, with the counter, the limit and the root classes of the text fields. */\n\tprotected getTextFormFieldProps(classNames: string): FormFieldFCProps {\n\t\tconst shared = this.textShared;\n\t\treturn this.getFormFieldProps({\n\t\t\tclass: clsx(classNames, {\n\t\t\t\t'has-value': this.hasValue,\n\t\t\t\t'kol-form-field--has-counter': this.counter.hasSoftLimit() || this.counter.hasCounter(),\n\t\t\t}),\n\t\t\taccessKey: shared.getRenderProp('accessKey') || undefined,\n\t\t\tshortKey: shared.getRenderProp('shortKey') || undefined,\n\t\t\tvariant: shared.getRenderProp('variant'),\n\t\t\trequired: shared.getRenderProp('required'),\n\t\t\treadOnly: shared.getRenderProp('readOnly'),\n\t\t\tmaxLength: this.counter.getRenderProp('maxLength'),\n\t\t\tcounter: this.counter.getCounterProps(),\n\t\t});\n\t}\n\n\t/** Adornments of the input container; `endAdornment` is the field-specific button, if any. */\n\tprotected getTextInputAdornments(endAdornment?: VNode | null): { startAdornment: VNode[]; endAdornment: VNode[] } {\n\t\treturn getInputAdornments({\n\t\t\ticons: this.textShared.getRenderProp('icons'),\n\t\t\tsmartButton: this.getSmartButtonFcProps(\n\t\t\t\tthis.textShared.getRenderProp('smartButton') as InternalButtonProps | undefined,\n\t\t\t\tthis.textShared.getRenderProp('disabled'),\n\t\t\t),\n\t\t\tendAdornment,\n\t\t});\n\t}\n\n\t/**\n\t * Props of the native `<input>`. The keys follow the order of the legacy state wrapper, and props\n\t * the legacy state only held once set are only passed when set: the rendered attributes keep their\n\t * order in the hydrate snapshot.\n\t */\n\tprotected getTextInputProps({ type, spellcheck, multiple, suggestions }: TextInputFieldProps, overrides: Partial<InputFCProps> = {}): InputFCProps {\n\t\tconst shared = this.textShared;\n\t\tconst id = shared.getState('id');\n\t\tconst accessKey = shared.getRenderProp('accessKey');\n\t\tconst shortKey = shared.getRenderProp('shortKey');\n\t\tconst placeholder = shared.getRenderProp('placeholder');\n\t\tconst pattern = shared.getRenderProp('pattern');\n\t\tconst maxLength = this.counter.getMaxLengthAttribute();\n\t\tconst characterLimitHintId = this.counter.getCharacterLimitHintId(id);\n\t\tconst { ariaDescribedBy, hasError } = this.getAria();\n\n\t\treturn {\n\t\t\tid,\n\t\t\thideLabel: shared.getRenderProp('hideLabel'),\n\t\t\tlabel: shared.getRenderProp('label'),\n\t\t\tdisabled: shared.getRenderProp('disabled'),\n\t\t\t// The name prop defaults to `''`; an unnamed field renders no `name` attribute.\n\t\t\tname: shared.getRenderProp('name') || undefined,\n\t\t\t...(accessKey ? { accessKey } : {}),\n\t\t\t...(type !== undefined ? { type } : {}),\n\t\t\tvalue: shared.getRenderProp('value'),\n\t\t\trequired: shared.getRenderProp('required'),\n\t\t\t...(maxLength !== undefined ? { maxlength: maxLength } : {}),\n\t\t\t...(placeholder !== undefined ? { placeholder } : {}),\n\t\t\tautoComplete: shared.getRenderProp('autoComplete'),\n\t\t\t...(spellcheck !== undefined ? { spellcheck } : {}),\n\t\t\t...(pattern !== undefined ? { pattern } : {}),\n\t\t\treadonly: shared.getRenderProp('readOnly'),\n\t\t\t...(multiple !== undefined ? { multiple } : {}),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\t...(shortKey ? { 'aria-keyshortcuts': shortKey } : {}),\n\t\t\t...(suggestions && suggestions.length > 0 ? { suggestions: (<SuggestionsFC id={id} suggestions={suggestions} />) as VNode } : {}),\n\t\t\tref: this.ctaRef,\n\t\t\tonBlur: this.handleBlur,\n\t\t\tonChange: this.handleTextChange,\n\t\t\tonClick: this.handleClick,\n\t\t\tonFocus: this.handleTextFocus,\n\t\t\tonInput: this.handleTextInput,\n\t\t\tonKeyDown: this.handleTextKeyDown,\n\t\t\t...overrides,\n\t\t\tariaDescribedBy: characterLimitHintId ? [...ariaDescribedBy, characterLimitHintId] : ariaDescribedBy,\n\t\t\t'aria-invalid': hasError ? 'true' : undefined,\n\t\t};\n\t}\n}\n"],"names":["createPropDefinition","normalizeString","formFieldBasePropsConfig","accessKeyProp","autoCompleteProp","horizontalIconsProp","placeholderProp","readOnlyProp","requiredProp","shortKeyProp","smartButtonProp","stringValueProp","variantProp","BaseFormFieldWebComponent","createCtaRef","CounterBehavior","BaseWebComponent","propagateSubmitEventToForm","validateAccessAndShortKey","clsx","getInputAdornments","suggestions","h","SuggestionsFC"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcO,MAAM,WAAW,GAAGA,qCAAoB,CAAc,SAAS,EAAE,SAA8B,EAAEC,gCAAe,CAAC;;ACO3G,MAAA,wBAAwB,GAAG;AACvC,IAAA,QAAQ,EAAE,CAAC,GAAGC,4BAAwB,CAAC,QAAQ,CAAC;AAChD,IAAA,QAAQ,EAAE;QACT,GAAGA,4BAAwB,CAAC,QAAQ;QACpCC,qBAAa;QACbC,4BAAgB;QAChBC,kCAAmB;QACnB,WAAW;QACXC,2BAAe;QACfC,qBAAY;QACZC,qBAAY;QACZC,oBAAY;QACZC,2BAAe;QACfC,2BAAe;QACfC,mBAAW;AACX,KAAA;;;ACmBI,MAAgB,yBAAwD,SAAQC,6BAA8B,CAAA;AAApH,IAAA,WAAA,GAAA;;AAMoB,QAAA,IAAM,CAAA,MAAA,GAAGC,+BAAY,EAAoB;QAEzC,IAAO,CAAA,OAAA,GAAG,IAAIC,wBAAe,CAACC,iCAAgB,CAAC,SAAS,CAAC;AAMlE,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK;AA0GP,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAY,KAAU;YAC3D,IAAI,CAAC,MAAM,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK;AACtD,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACxB,SAAC;QAEkB,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAY,EAAE,KAAe,KAAU;AAC7E,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;YAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,MAAA,GAAA,KAAK,GAAK,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AAC3E,SAAC;AAEkB,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAiB,KAAU;;AAChE,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC;AACrD,SAAC;AAGkB,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAoB,KAAU;;AACrE,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC,CAAC;AACpE,YAAA,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE;AAC3D,gBAAAC,qCAA0B,CAAC;oBAC1B,IAAI,EAAE,IAAI,CAAC,IAEX,CAAA,CAAC;;AAEJ,SAAC;;AAhID,IAAA,IAAY,UAAU,GAAA;AACrB,QAAA,OAAO,IAA8D;;IAI5D,YAAY,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;IAItD,gBAAgB,GAAA;;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;YAC7D,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC;;;IAK9C,gBAAgB,GAAA;QACzB,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;;AAKb,IAAA,cAAc,CAAC,KAAyB,EAAA;QACjDd,qBAAa,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAChF,QAAAe,2CAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;;AAGvC,IAAA,iBAAiB,CAAC,KAA4B,EAAA;QACvDd,4BAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;;AAG7E,IAAA,UAAU,CAAC,KAA+B,EAAA;QACnDC,kCAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;;AAGzE,IAAA,YAAY,CAAC,KAAc,EAAA;QACpC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;;AAGnE,IAAA,gBAAgB,CAAC,KAAc,EAAA;QACxCC,2BAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;;AAG3E,IAAA,aAAa,CAAC,KAAe,EAAA;QACtCC,qBAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;;AAGrE,IAAA,aAAa,CAAC,KAAe,EAAA;QACtCC,qBAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;;AAGrE,IAAA,aAAa,CAAC,KAAwB,EAAA;QAC/CC,oBAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC9E,QAAAS,2CAAyB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;;AAIxC,IAAA,gBAAgB,CAAC,KAAwC,EAAA;QAClE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AAC1C,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC;;aACxC;YACNR,2BAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;;;AAI5E,IAAA,UAAU,CAAC,KAAc,EAAA;;AAClC,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC;;AAI9B,IAAA,SAAS,CAAC,KAAc,EAAA;QACjCC,2BAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;;AAI1E,IAAA,aAAa,CAAC,KAAc,EAAA;AACrC,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;;AAGzB,IAAA,YAAY,CAAC,KAAgC,EAAA;QACtDC,mBAAW,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;;AAGnE,IAAA,eAAe,CAAC,KAAe,EAAA;AACxC,QAAA,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;;AAG1B,IAAA,cAAc,CAAC,KAAc,EAAA;;AACtC,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC;;AAG7C,IAAA,sBAAsB,CAAC,KAAiC,EAAA;AACjE,QAAA,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC;;AAoCjC,IAAA,qBAAqB,CAAC,UAAkB,EAAA;AACjD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC;AAC7B,YAAA,KAAK,EAAEO,SAAI,CAAC,UAAU,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,QAAQ;AAC1B,gBAAA,6BAA6B,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;aACvF,CAAC;YACF,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,SAAS;YACzD,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,SAAS;AACvD,YAAA,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;AACxC,YAAA,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;AAC1C,YAAA,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;YAC1C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;AAClD,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;AACvC,SAAA,CAAC;;AAIO,IAAA,sBAAsB,CAAC,YAA2B,EAAA;AAC3D,QAAA,OAAOC,iCAAkB,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC;YAC7C,WAAW,EAAE,IAAI,CAAC,qBAAqB,CACtC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAoC,EAC/E,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CACzC;YACD,YAAY;AACZ,SAAA,CAAC;;AAQO,IAAA,iBAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,eAAEC,aAAW,EAAuB,EAAE,SAAA,GAAmC,EAAE,EAAA;AAClI,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU;QAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC;QACvD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;QACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACrE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;QAEpD,OAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EACC,EAAE,EACF,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,EAC5C,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAE1C,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,SAAS,EAC5C,GAAC,SAAS,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,EAAC,GAC/B,IAAI,KAAK,SAAS,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAC,EAAA,EACvC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAA,CAAA,GACtC,SAAS,KAAK,SAAS,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAC,GACxD,WAAW,KAAK,SAAS,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,EAAC,EAAA,EACrD,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAC/C,CAAA,GAAC,UAAU,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAC/C,GAAC,OAAO,KAAK,SAAS,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAC5C,EAAA,EAAA,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,MACtC,QAAQ,KAAK,SAAS,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAC9C,EAAA,EAAA,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EACxC,GAAG,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAC7B,CAAA,GAAC,QAAQ,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAClD,GAACA,aAAW,IAAIA,aAAW,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,WAAW,GAAGC,OAAA,CAACC,yBAAa,EAAC,EAAA,EAAE,EAAE,EAAE,EAAE,WAAW,EAAEF,aAAW,EAAI,CAAA,CAAU,EAAE,GAAG,EAAE,EAChI,EAAA,EAAA,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAA,CAAA,EAC9B,SAAS,CAAA,EAAA,EACZ,eAAe,EAAE,oBAAoB,GAAG,CAAC,GAAG,eAAe,EAAE,oBAAoB,CAAC,GAAG,eAAe,EACpG,cAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC5C,CAAA;;AAEH;;;;;"}
1
+ {"version":3,"file":"base-web-component-BCEKzbV3.js","sources":["src/internal/props/pattern.ts","src/internal/functional-components/text-input/api.tsx","src/internal/functional-components/text-input/base-web-component.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeString } from './helpers/normalizers';\n\n/**\n * Pattern prop for text-based inputs\n *\n * Description:\n * A regular expression the value has to match for the native constraint validation.\n *\n * @see https://html.spec.whatwg.org/multipage/input.html#attr-input-pattern\n */\nexport type PatternProp = SimpleProp<'pattern', string>;\n// The default is `undefined`: the native attribute is only rendered when a pattern is set.\nexport const patternProp = createPropDefinition<PatternProp>('pattern', undefined as unknown as string, normalizeString);\n","import {\n\taccessKeyProp,\n\tautoCompleteProp,\n\thorizontalIconsProp,\n\tpatternProp,\n\tplaceholderProp,\n\treadOnlyProp,\n\trequiredProp,\n\tshortKeyProp,\n\tsmartButtonProp,\n\tstringValueProp,\n\tvariantProp,\n} from '../../props';\nimport type { FormFieldBaseStates } from '../form-field/api';\nimport { formFieldBasePropsConfig } from '../form-field/api';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\n/**\n * Props email, password and text have in common. The counter props (`hasCounter`, `maxLength`,\n * `maxLengthBehavior`) belong to the `CounterBehavior` and are not part of this config.\n */\nexport const textInputBasePropsConfig = {\n\trequired: [...formFieldBasePropsConfig.required],\n\toptional: [\n\t\t...formFieldBasePropsConfig.optional,\n\t\taccessKeyProp,\n\t\tautoCompleteProp,\n\t\thorizontalIconsProp,\n\t\tpatternProp,\n\t\tplaceholderProp,\n\t\treadOnlyProp,\n\t\trequiredProp,\n\t\tshortKeyProp,\n\t\tsmartButtonProp,\n\t\tstringValueProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type TextInputBaseApi = ApiFromConfig<typeof textInputBasePropsConfig, { States: FormFieldBaseStates }>;\n","import { h } from '@stencil/core';\nimport type { VNode } from '@stencil/core/internal';\nimport { propagateSubmitEventToForm } from '../../../components/form/controller';\nimport type {\n\tAccessKeyPropType,\n\tAutoCompletePropType,\n\tIconsHorizontalPropType,\n\tInternalButtonProps,\n\tMaxLengthBehaviorPropType,\n\tShortKeyPropType,\n\tStringified,\n\tVariantClassNamePropType,\n\tW3CInputValue,\n} from '../../../schema';\nimport { validateAccessAndShortKey } from '../../../schema/validators/access-and-short-key';\nimport clsx from '../../../utils/clsx';\nimport { createCtaRef } from '../../../utils/element-interaction';\nimport {\n\taccessKeyProp,\n\tautoCompleteProp,\n\thorizontalIconsProp,\n\tpatternProp,\n\tplaceholderProp,\n\treadOnlyProp,\n\trequiredProp,\n\tshortKeyProp,\n\tsmartButtonProp,\n\tstringValueProp,\n\tvariantProp,\n} from '../../props';\nimport { BaseWebComponent } from '../base-web-component';\nimport { CounterBehavior } from '../counter/behavior';\nimport { getInputAdornments } from '../form-field/adornments';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\nimport type { FormFieldFCProps } from '../form-field/component';\nimport type { InputFCProps } from '../form-field/input';\nimport { SuggestionsFC } from '../form-field/suggestions';\nimport type { TextInputBaseApi } from './api';\n\ntype TextInputFieldProps = {\n\t/** Native type; `kol-input-text` passes it where its state carried `_type`, before the value. */\n\ttype?: InputFCProps['type'];\n\tspellcheck?: boolean;\n\tmultiple?: boolean;\n\tsuggestions?: W3CInputValue[];\n};\n\n/**\n * Shared orchestrator implementation of `kol-input-email`, `kol-input-password` and `kol-input-text`\n * on top of the form field base: the common text input props, the character counter, the submit on\n * Enter and the props of the native `<input>`.\n *\n * As in the form field base, the concrete element declares every `@Prop` with its `@Watch`, which\n * calls the matching `apply*` method (DD16).\n */\nexport abstract class BaseTextInputWebComponent<Api extends TextInputBaseApi> extends BaseFormFieldWebComponent<Api> {\n\tpublic abstract _accessKey?: AccessKeyPropType;\n\tpublic abstract _shortKey?: ShortKeyPropType;\n\t/** Written on every input, so the watcher updates the counter and the form value. */\n\tpublic abstract _value?: string;\n\n\tprotected readonly ctaRef = createCtaRef<HTMLInputElement>();\n\n\tprotected readonly counter = new CounterBehavior(BaseWebComponent.stateLess);\n\n\t/**\n\t * Whether the field has a value, rendered as the root class `has-value`. It is a plain field, not\n\t * state: changing it does not re-render, the class follows with the next render (#11053).\n\t */\n\tprotected hasValue = false;\n\n\t/** Typed view on the text input props, see `shared` in the form field base. */\n\tprivate get textShared(): BaseTextInputWebComponent<TextInputBaseApi> {\n\t\treturn this as unknown as BaseTextInputWebComponent<TextInputBaseApi>;\n\t}\n\n\t/** Call from `componentWillLoad`, after the value has been applied. */\n\tprotected initHasValue(): void {\n\t\tthis.hasValue = Boolean(this.textShared.getRenderProp('value'));\n\t}\n\n\t/** Call from `componentDidLoad`: fills the counter spans once they exist. */\n\tprotected didLoadTextInput(): void {\n\t\tif (this.counter.hasCounter() || this.counter.hasSoftLimit()) {\n\t\t\tthis.counter.updateImmediate(this._value?.length ?? 0);\n\t\t}\n\t}\n\n\t/** Call from `disconnectedCallback`. */\n\tprotected destroyTextInput(): void {\n\t\tthis.destroyFormField();\n\t\tthis.counter.destroy();\n\t}\n\n\t// --- Prop application ---\n\n\tprotected applyAccessKey(value?: AccessKeyPropType): void {\n\t\taccessKeyProp.apply(value, (v) => this.textShared.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, this._shortKey);\n\t}\n\n\tprotected applyAutoComplete(value?: AutoCompletePropType): void {\n\t\tautoCompleteProp.apply(value, (v) => this.textShared.setRenderProp('autoComplete', v));\n\t}\n\n\tprotected applyIcons(value?: IconsHorizontalPropType): void {\n\t\thorizontalIconsProp.apply(value, (v) => this.textShared.setRenderProp('icons', v));\n\t}\n\n\tprotected applyPattern(value?: string): void {\n\t\tpatternProp.apply(value, (v) => this.textShared.setRenderProp('pattern', v));\n\t}\n\n\tprotected applyPlaceholder(value?: string): void {\n\t\tplaceholderProp.apply(value, (v) => this.textShared.setRenderProp('placeholder', v));\n\t}\n\n\tprotected applyReadOnly(value?: boolean): void {\n\t\treadOnlyProp.apply(value, (v) => this.textShared.setRenderProp('readOnly', v));\n\t}\n\n\tprotected applyRequired(value?: boolean): void {\n\t\trequiredProp.apply(value, (v) => this.textShared.setRenderProp('required', v));\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.textShared.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(this._accessKey, value);\n\t}\n\n\t/** Without `_smartButton` no button is rendered, so no default may remain. */\n\tprotected applySmartButton(value?: Stringified<InternalButtonProps>): void {\n\t\tif (value === undefined || value === null) {\n\t\t\tthis.textShared.unsetRenderProp('smartButton');\n\t\t} else {\n\t\t\tsmartButtonProp.apply(value, (v) => this.textShared.setRenderProp('smartButton', v));\n\t\t}\n\t}\n\n\tprotected applyValue(value?: string): void {\n\t\tthis.initValue(value);\n\t\tthis.counter.update(value?.length ?? 0);\n\t}\n\n\t/** Applies the value on load, without a counter update: `didLoadTextInput` fills the counter once its spans exist. */\n\tprotected initValue(value?: string): void {\n\t\tstringValueProp.apply(value, (v) => this.textShared.setRenderProp('value', v));\n\t\tthis.formAssociation.setFormAssociatedValue(this.textShared.getRenderProp('value'));\n\t}\n\n\t/** Applies the maximum on load, without a counter update, see `initValue`. */\n\tprotected initMaxLength(value?: number): void {\n\t\tthis.counter.watchMaxLength(value);\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.textShared.setRenderProp('variant', v));\n\t}\n\n\tprotected applyHasCounter(value?: boolean): void {\n\t\tthis.counter.watchHasCounter(value);\n\t}\n\n\tprotected applyMaxLength(value?: number): void {\n\t\tthis.counter.watchMaxLength(value);\n\t\tthis.counter.updateImmediate(this._value?.length ?? 0);\n\t}\n\n\tprotected applyMaxLengthBehavior(value?: MaxLengthBehaviorPropType): void {\n\t\tthis.counter.watchMaxLengthBehavior(value);\n\t}\n\n\t// --- Event handling ---\n\n\t/** Writes the value before the input event is dispatched, so the watcher has run when listeners read it. */\n\tprotected readonly handleTextInput = (event: Event): void => {\n\t\tthis._value = (event.target as HTMLInputElement).value;\n\t\tthis.handleInput(event);\n\t};\n\n\tprotected readonly handleTextChange = (event: Event, value?: unknown): void => {\n\t\tthis.handleChange(event, value);\n\t\tthis.hasValue = Boolean(value ?? (event.target as HTMLInputElement).value);\n\t};\n\n\tprotected readonly handleTextFocus = (event: FocusEvent): void => {\n\t\tthis.handleFocus(event);\n\t\tthis.counter.retriggerAria(this._value?.length ?? 0);\n\t};\n\n\t/** Enter submits the surrounding `kol-form`, like in a native form. */\n\tprotected readonly handleTextKeyDown = (event: KeyboardEvent): void => {\n\t\tthis.handleKeyDown(event);\n\t\tthis.counter.handleKeyDown(event, this.ctaRef.el?.value.length ?? 0);\n\t\tif (event.code === 'Enter' || event.code === 'NumpadEnter') {\n\t\t\tpropagateSubmitEventToForm({\n\t\t\t\tform: this.host,\n\t\t\t\tref: this.ctaRef.el,\n\t\t\t});\n\t\t}\n\t};\n\n\t// --- Render ---\n\n\t/** Props of the form field shell, with the counter, the limit and the root classes of the text fields. */\n\tprotected getTextFormFieldProps(classNames: string): FormFieldFCProps {\n\t\tconst shared = this.textShared;\n\t\treturn this.getFormFieldProps({\n\t\t\tclass: clsx(classNames, {\n\t\t\t\t'has-value': this.hasValue,\n\t\t\t\t'kol-form-field--has-counter': this.counter.hasSoftLimit() || this.counter.hasCounter(),\n\t\t\t}),\n\t\t\taccessKey: shared.getRenderProp('accessKey') || undefined,\n\t\t\tshortKey: shared.getRenderProp('shortKey') || undefined,\n\t\t\tvariant: shared.getRenderProp('variant'),\n\t\t\trequired: shared.getRenderProp('required'),\n\t\t\treadOnly: shared.getRenderProp('readOnly'),\n\t\t\tmaxLength: this.counter.getRenderProp('maxLength'),\n\t\t\tcounter: this.counter.getCounterProps(),\n\t\t});\n\t}\n\n\t/** Adornments of the input container; `endAdornment` is the field-specific button, if any. */\n\tprotected getTextInputAdornments(endAdornment?: VNode | null): { startAdornment: VNode[]; endAdornment: VNode[] } {\n\t\treturn getInputAdornments({\n\t\t\ticons: this.textShared.getRenderProp('icons'),\n\t\t\tsmartButton: this.getSmartButtonFcProps(\n\t\t\t\tthis.textShared.getRenderProp('smartButton') as InternalButtonProps | undefined,\n\t\t\t\tthis.textShared.getRenderProp('disabled'),\n\t\t\t),\n\t\t\tendAdornment,\n\t\t});\n\t}\n\n\t/**\n\t * Props of the native `<input>`. The keys follow the order of the legacy state wrapper, and props\n\t * the legacy state only held once set are only passed when set: the rendered attributes keep their\n\t * order in the hydrate snapshot.\n\t */\n\tprotected getTextInputProps({ type, spellcheck, multiple, suggestions }: TextInputFieldProps, overrides: Partial<InputFCProps> = {}): InputFCProps {\n\t\tconst shared = this.textShared;\n\t\tconst id = shared.getState('id');\n\t\tconst accessKey = shared.getRenderProp('accessKey');\n\t\tconst shortKey = shared.getRenderProp('shortKey');\n\t\tconst placeholder = shared.getRenderProp('placeholder');\n\t\tconst pattern = shared.getRenderProp('pattern');\n\t\tconst maxLength = this.counter.getMaxLengthAttribute();\n\t\tconst characterLimitHintId = this.counter.getCharacterLimitHintId(id);\n\t\tconst { ariaDescribedBy, hasError } = this.getAria();\n\n\t\treturn {\n\t\t\tid,\n\t\t\thideLabel: shared.getRenderProp('hideLabel'),\n\t\t\tlabel: shared.getRenderProp('label'),\n\t\t\tdisabled: shared.getRenderProp('disabled'),\n\t\t\t// The name prop defaults to `''`; an unnamed field renders no `name` attribute.\n\t\t\tname: shared.getRenderProp('name') || undefined,\n\t\t\t...(accessKey ? { accessKey } : {}),\n\t\t\t...(type !== undefined ? { type } : {}),\n\t\t\tvalue: shared.getRenderProp('value'),\n\t\t\trequired: shared.getRenderProp('required'),\n\t\t\t...(maxLength !== undefined ? { maxlength: maxLength } : {}),\n\t\t\t...(placeholder !== undefined ? { placeholder } : {}),\n\t\t\tautoComplete: shared.getRenderProp('autoComplete'),\n\t\t\t...(spellcheck !== undefined ? { spellcheck } : {}),\n\t\t\t...(pattern !== undefined ? { pattern } : {}),\n\t\t\treadonly: shared.getRenderProp('readOnly'),\n\t\t\t...(multiple !== undefined ? { multiple } : {}),\n\t\t\ttouched: shared.getRenderProp('touched'),\n\t\t\tmsg: shared.getRenderProp('msg'),\n\t\t\t...(shortKey ? { 'aria-keyshortcuts': shortKey } : {}),\n\t\t\t...(suggestions && suggestions.length > 0 ? { suggestions: (<SuggestionsFC id={id} suggestions={suggestions} />) as VNode } : {}),\n\t\t\tref: this.ctaRef,\n\t\t\tonBlur: this.handleBlur,\n\t\t\tonChange: this.handleTextChange,\n\t\t\tonClick: this.handleClick,\n\t\t\tonFocus: this.handleTextFocus,\n\t\t\tonInput: this.handleTextInput,\n\t\t\tonKeyDown: this.handleTextKeyDown,\n\t\t\t...overrides,\n\t\t\tariaDescribedBy: characterLimitHintId ? [...ariaDescribedBy, characterLimitHintId] : ariaDescribedBy,\n\t\t\t'aria-invalid': hasError ? 'true' : undefined,\n\t\t};\n\t}\n}\n"],"names":["createPropDefinition","normalizeString","formFieldBasePropsConfig","accessKeyProp","autoCompleteProp","horizontalIconsProp","placeholderProp","readOnlyProp","requiredProp","shortKeyProp","smartButtonProp","stringValueProp","variantProp","BaseFormFieldWebComponent","createCtaRef","CounterBehavior","BaseWebComponent","propagateSubmitEventToForm","validateAccessAndShortKey","clsx","getInputAdornments","suggestions","h","SuggestionsFC"],"mappings":"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"}
@@ -5,13 +5,13 @@
5
5
 
6
6
  var common = require('./common-B9-LvLNa.js');
7
7
  var variant = require('./variant-BNRxRadM.js');
8
- var inputContainer = require('./input-container-AUYMUXlO.js');
8
+ var inputContainer = require('./input-container-BXz_irj1.js');
9
9
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
10
10
  var multiple = require('./multiple-Do6O5sIE.js');
11
11
  var required = require('./required-ZyS6KTUB.js');
12
12
  var rows = require('./rows-CTtKDSvD.js');
13
- var api = require('./api-CGIOreYK.js');
14
- var index = require('./index-DO9lYEcH.js');
13
+ var api = require('./api-C2rTkOz2.js');
14
+ var index = require('./index-Dv7OF9AY.js');
15
15
  var accessAndShortKey = require('./access-and-short-key-D40HWCJe.js');
16
16
  var clsx = require('./clsx-Bm_HQUnh.js');
17
17
  var label = require('./label-DVnpZWVb.js');
@@ -232,6 +232,6 @@ class BaseSelectWebComponent extends api.BaseFormFieldWebComponent {
232
232
 
233
233
  exports.BaseSelectWebComponent = BaseSelectWebComponent;
234
234
  exports.selectPropsConfig = selectPropsConfig;
235
- //# sourceMappingURL=base-web-component-CtQdH3PJ.js.map
235
+ //# sourceMappingURL=base-web-component-CpH4iN97.js.map
236
236
 
237
- //# sourceMappingURL=base-web-component-CtQdH3PJ.js.map
237
+ //# sourceMappingURL=base-web-component-CpH4iN97.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-web-component-CtQdH3PJ.js","sources":["src/schema/validators/options.ts","src/internal/props/options-with-optgroup.ts","src/internal/props/select-value.ts","src/internal/functional-components/select/api.tsx","src/internal/functional-components/form-field/select.tsx","src/internal/functional-components/form-field/select-value.ts","src/internal/functional-components/select/base-web-component.tsx"],"sourcesContent":["import { containsOnlyNumbers, hasEnoughReadableChars } from '../props';\nimport { a11yHint } from '../utils';\n\nimport type { Optgroup, SelectOption } from '../types';\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(`A differing Aria-Label (${option.label}) is inaccessible. A differing Aria-Label should consist of at least three readable characters.`);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Optgroup, Option, OptionsWithOptgroupPropType, StencilUnknown } from '../../schema';\nimport { parseJson, validateInputSelectOptions } from '../../schema';\nimport type { Prop } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\nexport type SelectOptionsList = (Option<StencilUnknown> | Optgroup<StencilUnknown>)[];\n\n/**\n * Options prop for `kol-select`\n *\n * Description:\n * Options and optgroups, as an array or as a JSON string when it is passed through an HTML attribute.\n * Every option needs a non-empty string or a number as `label`; one invalid option rejects the whole\n * list. An empty string is rejected as well, because Stencil can pass it for an empty array.\n *\n * The validation is `validateInputSelectOptions` of the schema, which also normalizes each option in\n * place: `disabled` becomes a boolean and a string `label` is trimmed.\n */\nexport type OptionsWithOptgroupProp = Prop<'options', OptionsWithOptgroupPropType, SelectOptionsList>;\n\nfunction normalizeOptionsWithOptgroup(value: unknown): SelectOptionsList | never {\n\tconst parsed = typeof value === 'string' ? parseJson<unknown>(value) : value;\n\tif (Array.isArray(parsed) && parsed.every((option) => validateInputSelectOptions(option as Option<StencilUnknown>))) {\n\t\treturn parsed as SelectOptionsList;\n\t}\n\tthrow new Error('Invalid select options');\n}\n\nexport const optionsWithOptgroupProp = createPropDefinition<OptionsWithOptgroupProp>('options', [], normalizeOptionsWithOptgroup);\n","import type { StencilUnknown, Stringified } from '../../schema';\nimport type { Prop } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Value prop of `kol-select`\n *\n * Description:\n * The selected values; a single value is wrapped into a list. A JSON string is not parsed, it is a\n * value of its own. The default is the empty list. `kol-select` keeps `null` as `[null]` instead of\n * applying this definition to it.\n */\nexport type SelectValueProp = Prop<'value', Stringified<StencilUnknown[]> | Stringified<StencilUnknown>, StencilUnknown[]>;\nexport const selectValueProp = createPropDefinition<SelectValueProp>('value', [], (value: unknown) =>\n\tArray.isArray(value) ? (value as StencilUnknown[]) : [value as StencilUnknown],\n);\n","import {\n\taccessKeyProp,\n\thorizontalIconsProp,\n\tmultipleProp,\n\toptionsWithOptgroupProp,\n\trequiredProp,\n\trowsProp,\n\tselectValueProp,\n\tshortKeyProp,\n\ttabIndexProp,\n\tvariantProp,\n} from '../../props';\nimport type { FormFieldBaseStates } from '../form-field/api';\nimport { formFieldBasePropsConfig } from '../form-field/api';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const selectPropsConfig = {\n\trequired: [...formFieldBasePropsConfig.required],\n\toptional: [\n\t\t...formFieldBasePropsConfig.optional,\n\t\taccessKeyProp,\n\t\thorizontalIconsProp,\n\t\tmultipleProp,\n\t\toptionsWithOptgroupProp,\n\t\trequiredProp,\n\t\trowsProp,\n\t\tselectValueProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type SelectApi = ApiFromConfig<typeof selectPropsConfig, { States: FormFieldBaseStates }>;\n","import { Fragment, h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { MsgPropType, SelectOption, StencilUnknown, Stringified, W3CInputValue } from '../../../schema';\nimport { getMsgType, isMsgDefinedAndInputTouched } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { getBlockBem } from '../bem-root-node/block-bem';\nimport type { DefaultInputProps } from './default-input-props';\nimport { getDefaultInputProps } from './default-input-props';\n\nconst selectBem = getBlockBem('kol-select');\n\ntype SelectAttributes = JSXBase.SelectHTMLAttributes<HTMLSelectElement>;\n\nexport type SelectOptionFCProps = Omit<JSXBase.OptionHTMLAttributes<HTMLOptionElement>, 'value' | 'label'> & {\n\t/** The value, or the list of values, of the selected options. */\n\tselectedValue?: StencilUnknown | StencilUnknown[];\n\tvalue: StencilUnknown;\n\tlabel: W3CInputValue;\n\t/** The key of the option, rendered as its native value; the field maps it back to `value`. */\n\tindex?: string | number;\n};\n\nexport type SelectOptionListFCProps = {\n\t/** Key prefix of the options in an optgroup. */\n\tpreKey?: string;\n\tdisabled?: boolean;\n\tvalue?: StencilUnknown | StencilUnknown[];\n\toptions?: SelectOption<StencilUnknown>[];\n\tOptionProps?: Omit<JSXBase.OptionHTMLAttributes<HTMLOptionElement>, 'value' | 'label'>;\n\tOptionGroupProps?: Omit<JSXBase.OptgroupHTMLAttributes<HTMLOptGroupElement>, 'label'>;\n};\n\nexport type SelectFCProps = DefaultInputProps<SelectAttributes> &\n\tSelectOptionListFCProps & {\n\t\ttouched?: boolean;\n\t\tmsg?: Stringified<MsgPropType>;\n\t} & {\n\t\t[key: `aria-${string}`]: unknown;\n\t\t[key: `data-${string}`]: unknown;\n\t};\n\n/**\n * Native `<option>`. Its native value is the key (`-<index>`, in an optgroup `-<group>-<index>`), not\n * the option value, because a native value can only be a string.\n */\nexport const SelectOptionFC: FC<SelectOptionFCProps> = ({ class: classNames, index, selectedValue, selected, value, label, disabled, ...other }) => {\n\tconst selectedValues = selectedValue === undefined ? [] : Array.isArray(selectedValue) ? selectedValue : [selectedValue];\n\tconst isSelected = selected || selectedValues.includes(value);\n\n\treturn (\n\t\t<option\n\t\t\tclass={clsx(selectBem('option', { selected: Boolean(isSelected), disabled: Boolean(disabled) }), classNames)}\n\t\t\tselected={isSelected}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={index}\n\t\t\t{...other}\n\t\t>\n\t\t\t{label}\n\t\t</option>\n\t);\n};\n\n/** Options and optgroups of a native select, recursively; an optgroup prefixes the keys of its options. */\nexport const SelectOptionListFC: FC<SelectOptionListFCProps> = ({\n\tpreKey,\n\toptions,\n\tdisabled,\n\tvalue: selectedValue,\n\tOptionProps = {},\n\tOptionGroupProps = {},\n}) => {\n\tif (!options?.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst key = [preKey, `-${index}`].join('');\n\n\t\t\t\tif ('options' in option) {\n\t\t\t\t\tconst { label, ...other } = option;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<optgroup\n\t\t\t\t\t\t\tclass={selectBem('optgroup', { disabled: Boolean(disabled) })}\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t{...OptionGroupProps}\n\t\t\t\t\t\t\tlabel={label?.toString()}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectOptionListFC OptionGroupProps={OptionGroupProps} OptionProps={OptionProps} value={selectedValue} preKey={key} {...other} />\n\t\t\t\t\t\t</optgroup>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ('value' in option) {\n\t\t\t\t\treturn <SelectOptionFC key={key} {...OptionProps} index={key} selectedValue={selectedValue} {...option} />;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t})}\n\t\t</>\n\t);\n};\n\n/**\n * Native `<select>` of a form field with its options. The select itself is the root of the\n * `kol-select` block, so the block classes are set on it directly instead of through `BemRootNodeFC`.\n */\nexport const SelectFC: FC<SelectFCProps> = (props) => {\n\tconst {\n\t\tclass: classNames,\n\t\tmsg,\n\t\ttouched,\n\t\tdisabled,\n\t\trequired,\n\t\toptions,\n\t\tvalue,\n\t\tOptionProps,\n\t\tOptionGroupProps,\n\t\tariaDescribedBy,\n\t\thideLabel,\n\t\tlabel,\n\t\t...other\n\t} = props;\n\n\tconst selectProps: SelectAttributes = {\n\t\tclass: clsx(\n\t\t\tselectBem({\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...(isMsgDefinedAndInputTouched(msg, touched) ? { [getMsgType(msg) as string]: true } : {}),\n\t\t\t}),\n\t\t\tclassNames,\n\t\t),\n\t\trequired: required,\n\t\tdisabled: disabled,\n\t\t...getDefaultInputProps({ ariaDescribedBy, hideLabel, label }),\n\t\t...other,\n\t};\n\n\treturn (\n\t\t<select {...selectProps}>\n\t\t\t<SelectOptionListFC options={options} value={value} OptionGroupProps={OptionGroupProps} OptionProps={OptionProps} />\n\t\t</select>\n\t);\n};\n","import type { Option, StencilUnknown } from '../../../schema';\nimport type { SelectOptionsList } from '../../props/options-with-optgroup';\n\n/**\n * Throws when the shape of a `_value` does not match `_multiple`: a list in single mode, or a single\n * value in multiple mode. The field throws from its watcher, so the value is not applied. `source`\n * names the value in the message: the received value of a `_value` change, or the current value on\n * a `_multiple` change.\n */\nexport const assertSelectValueMatchesMultiplicity = (value: unknown, multiple: boolean, source: 'current' | 'received'): void => {\n\tconst isArray = Array.isArray(value);\n\n\tif (multiple) {\n\t\tif (value !== undefined && !isArray) {\n\t\t\tthrow new Error(\n\t\t\t\t`↑ The schema for the property (_value) is not valid for multiple mode. Expected an array. The value will not be changed. (${source} = ${JSON.stringify(value)})`,\n\t\t\t);\n\t\t}\n\t} else if (isArray) {\n\t\tthrow new Error(\n\t\t\t`↑ The schema for the property (_value) is not valid for single mode. Expected a single value. The value will not be changed. (${source} = ${JSON.stringify(value)})`,\n\t\t);\n\t}\n};\n\n/** The options of the list, with the options of each optgroup in place of the optgroup. */\nconst flattenSelectOptions = (options: SelectOptionsList): Option<StencilUnknown>[] =>\n\toptions.flatMap((entry) => ('options' in entry && Array.isArray(entry.options) ? flattenSelectOptions(entry.options) : [entry as Option<StencilUnknown>]));\n\n/**\n * Keeps only the values that belong to an option. Then, in single mode (`multiple === false`, not\n * merely falsy) without a value, the value becomes the value of the first enabled option, which is\n * the option the native select shows. Without options, the value is kept as it is, because the\n * options can follow the value.\n */\nexport const normalizeSelectValue = (value: StencilUnknown[], options: SelectOptionsList, multiple: boolean | undefined): StencilUnknown[] => {\n\tif (options.length === 0) {\n\t\treturn value;\n\t}\n\tconst flatOptions = flattenSelectOptions(options);\n\tconst optionValues = flatOptions.map((option) => option.value);\n\tconst filtered = value.every((item) => optionValues.includes(item)) ? value : value.filter((item) => optionValues.includes(item));\n\tif (multiple === false && filtered.length === 0) {\n\t\tconst firstEnabled = flatOptions.find((option) => option.disabled !== true);\n\t\treturn firstEnabled ? [firstEnabled.value] : filtered;\n\t}\n\treturn filtered;\n};\n","import { h, type JSX } from '@stencil/core';\nimport type {\n\tIconsHorizontalPropType,\n\tMultiplePropType,\n\tOption,\n\tOptionsWithOptgroupPropType,\n\tSelectOption,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tStringified,\n\tVariantClassNamePropType,\n} from '../../../schema';\nimport { validateAccessAndShortKey } from '../../../schema/validators/access-and-short-key';\nimport clsx from '../../../utils/clsx';\nimport type { CtaRef } from '../../../utils/element-interaction';\nimport {\n\taccessKeyProp,\n\thorizontalIconsProp,\n\tmultipleProp,\n\toptionsWithOptgroupProp,\n\trequiredProp,\n\trowsProp,\n\tselectValueProp,\n\tshortKeyProp,\n\ttabIndexProp,\n\tvariantProp,\n} from '../../props';\nimport { getInputAdornments } from '../form-field/adornments';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\nimport { FormFieldFC } from '../form-field/component';\nimport { InputContainerFC } from '../form-field/input-container';\nimport { fillKeyOptionMap } from '../form-field/options';\nimport type { SelectFCProps } from '../form-field/select';\nimport { SelectFC } from '../form-field/select';\nimport { assertSelectValueMatchesMultiplicity, normalizeSelectValue } from '../form-field/select-value';\nimport type { SelectApi } from './api';\n\n/**\n * Shared orchestrator implementation of `kol-select` and the page size select of the pagination\n * (`PageSizeSelect`): the option map, the value list and its normalization, the native select\n * events and the render.\n *\n * `kol-select` keeps what Stencil has to see in the component class itself (DD16).\n */\nexport abstract class BaseSelectWebComponent extends BaseFormFieldWebComponent<SelectApi> {\n\t/** Read for the multiplicity check and the first option preselection, like the raw prop. */\n\tpublic abstract _multiple?: boolean;\n\t/** Written on user input. */\n\tpublic abstract _value?: Stringified<StencilUnknown[]> | Stringified<StencilUnknown>;\n\n\tprotected abstract readonly ctaRef: CtaRef<HTMLSelectElement>;\n\n\t/** Option of each native option value (`-<index>`). */\n\tprivate readonly keyOptionMap = new Map<string, Option<StencilUnknown>>();\n\n\t/**\n\t * Whether the field has a value, for the class `kol-form-field--has-value`. It starts as `true`\n\t * and follows each `change`; it does not trigger a render of its own.\n\t */\n\tprivate hasValue = true;\n\n\t// --- Prop application (the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: string): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, this.getShortKeyProp());\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(this.getAccessKeyProp(), value);\n\t}\n\n\tprotected abstract getAccessKeyProp(): string | undefined;\n\tprotected abstract getShortKeyProp(): ShortKeyPropType | undefined;\n\n\tprotected applyIcons(value?: IconsHorizontalPropType): void {\n\t\thorizontalIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyMultiple(value?: MultiplePropType): void {\n\t\tassertSelectValueMatchesMultiplicity(this._value, value === true, 'current');\n\t\tmultipleProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('multiple', v);\n\t\t\tthis.setRenderProp('value', normalizeSelectValue(this.getRenderProp('value'), this.getRenderProp('options'), this._multiple));\n\t\t});\n\t}\n\n\t/** The option map keeps its entries while the list is empty. */\n\tprotected applyOptions(value?: OptionsWithOptgroupPropType): void {\n\t\toptionsWithOptgroupProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('options', v);\n\t\t\tif (v.length > 0) {\n\t\t\t\tthis.keyOptionMap.clear();\n\t\t\t\tfillKeyOptionMap(this.keyOptionMap, v as SelectOption<StencilUnknown>[]);\n\t\t\t\tthis.setRenderProp('value', normalizeSelectValue(this.getRenderProp('value'), v, this._multiple));\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyRequired(value?: boolean): void {\n\t\trequiredProp.apply(value, (v) => this.setRenderProp('required', v));\n\t}\n\n\tprotected applyRows(value?: number): void {\n\t\trowsProp.apply(value, (v) => this.setRenderProp('rows', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t}\n\n\t/**\n\t * A single value is wrapped into a list and `null` is kept as `[null]`. Only a `_value` change sets\n\t * the form value; the preselection on an `_options` or `_multiple` change does not.\n\t */\n\tprotected applyValue(value?: Stringified<StencilUnknown[]> | Stringified<StencilUnknown>): void {\n\t\tassertSelectValueMatchesMultiplicity(value, this._multiple === true, 'received');\n\t\tconst setValue = (list: StencilUnknown[]): void => {\n\t\t\tconst normalized = normalizeSelectValue(list, this.getRenderProp('options'), this._multiple);\n\t\t\tthis.setRenderProp('value', normalized);\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.getModelValue());\n\t\t};\n\t\tif (value === null) {\n\t\t\tsetValue([null]);\n\t\t} else {\n\t\t\tselectValueProp.apply(value, setValue);\n\t\t}\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Value ---\n\n\t/** The value list with `_multiple`, otherwise its first entry (the list itself when empty). */\n\tprotected getModelValue(): StencilUnknown[] | StencilUnknown {\n\t\tconst value = this.getRenderProp('value');\n\t\tif (this._multiple) {\n\t\t\treturn value;\n\t\t}\n\t\treturn Array.isArray(value) && value.length > 0 ? value[0] : value;\n\t}\n\n\t// --- Event handling of the native select ---\n\n\tprivate readonly handleSelectInput = (event: Event): void => {\n\t\tconst selectedValues = Array.from(this.ctaRef.el?.options || [])\n\t\t\t.filter((option) => option.selected)\n\t\t\t.map((option) => this.keyOptionMap.get(option.value)?.value);\n\n\t\tif (this._multiple) {\n\t\t\tthis._value = selectedValues;\n\t\t\tthis.handleInput(event, selectedValues);\n\t\t} else {\n\t\t\tconst singleValue: StencilUnknown = selectedValues.length > 0 ? selectedValues[0] : undefined;\n\t\t\tthis._value = singleValue as Stringified<StencilUnknown>;\n\t\t\tthis.handleInput(event, singleValue);\n\t\t}\n\t};\n\n\tprivate readonly handleSelectChange = (event: Event): void => {\n\t\tconst value = this._value as StencilUnknown;\n\t\tthis.handleChange(event, value);\n\t\tthis.hasValue = !!value;\n\t};\n\n\t// --- Render ---\n\n\tprivate getSelectProps(): SelectFCProps {\n\t\tconst { ariaDescribedBy, hasError } = this.getAria();\n\t\tconst multiple = this.getRenderProp('multiple');\n\t\tconst shortKey = this.getRenderProp('shortKey');\n\n\t\treturn {\n\t\t\tid: this.getState('id'),\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tvalue: this.getRenderProp('value'),\n\t\t\toptions: this.getRenderProp('options'),\n\t\t\taccessKey: this.getRenderProp('accessKey') || undefined,\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\tname: this.getRenderProp('name') || undefined,\n\t\t\t'aria-invalid': hasError ? 'true' : undefined,\n\t\t\tariaDescribedBy,\n\t\t\tsize: multiple ? this.getRenderProp('rows') : undefined,\n\t\t\tmultiple,\n\t\t\trequired: this.getRenderProp('required'),\n\t\t\ttouched: this.getRenderProp('touched'),\n\t\t\tmsg: this.getRenderProp('msg'),\n\t\t\t...(shortKey ? { 'aria-keyshortcuts': shortKey } : {}),\n\t\t\tref: this.ctaRef,\n\t\t\tonBlur: this.handleBlur,\n\t\t\tonChange: this.handleSelectChange,\n\t\t\tonClick: this.handleClick,\n\t\t\tonFocus: this.handleFocus,\n\t\t\tonInput: this.handleSelectInput,\n\t\t\tonKeyDown: this.handleKeyDown,\n\t\t};\n\t}\n\n\tprotected renderSelectField(): JSX.Element {\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tconst { startAdornment, endAdornment } = getInputAdornments({ icons: this.getRenderProp('icons') });\n\n\t\treturn (\n\t\t\t<FormFieldFC\n\t\t\t\t{...this.getFormFieldProps({\n\t\t\t\t\tclass: clsx('kol-form-field-select', { 'kol-form-field--has-value': this.hasValue }),\n\t\t\t\t\taccessKey: this.getRenderProp('accessKey') || undefined,\n\t\t\t\t\tshortKey: this.getRenderProp('shortKey') || undefined,\n\t\t\t\t\trequired: this.getRenderProp('required'),\n\t\t\t\t\tvariant: this.getRenderProp('variant'),\n\t\t\t\t})}\n\t\t\t\tonClick={() => this.ctaRef.el?.focus()}\n\t\t\t>\n\t\t\t\t<InputContainerFC\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tmsg={this.getRenderProp('msg')}\n\t\t\t\t\ttouched={this.getRenderProp('touched')}\n\t\t\t\t\tstartAdornment={startAdornment}\n\t\t\t\t\tendAdornment={endAdornment}\n\t\t\t\t>\n\t\t\t\t\t<SelectFC {...this.getSelectProps()} />\n\t\t\t\t</InputContainerFC>\n\t\t\t</FormFieldFC>\n\t\t);\n\t}\n}\n"],"names":["hasEnoughReadableChars","containsOnlyNumbers","a11yHint","parseJson","createPropDefinition","formFieldBasePropsConfig","accessKeyProp","horizontalIconsProp","multipleProp","requiredProp","rowsProp","shortKeyProp","tabIndexProp","variantProp","getBlockBem","index","__rest","h","clsx","Fragment","isMsgDefinedAndInputTouched","getMsgType","getDefaultInputProps","BaseFormFieldWebComponent","validateAccessAndShortKey","fillKeyOptionMap","getInputAdornments","FormFieldFC","InputContainerFC"],"mappings":"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"}
1
+ {"version":3,"file":"base-web-component-CpH4iN97.js","sources":["src/schema/validators/options.ts","src/internal/props/options-with-optgroup.ts","src/internal/props/select-value.ts","src/internal/functional-components/select/api.tsx","src/internal/functional-components/form-field/select.tsx","src/internal/functional-components/form-field/select-value.ts","src/internal/functional-components/select/base-web-component.tsx"],"sourcesContent":["import { containsOnlyNumbers, hasEnoughReadableChars } from '../props';\nimport { a11yHint } from '../utils';\n\nimport type { Optgroup, SelectOption } from '../types';\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(`A differing Aria-Label (${option.label}) is inaccessible. A differing Aria-Label should consist of at least three readable characters.`);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Optgroup, Option, OptionsWithOptgroupPropType, StencilUnknown } from '../../schema';\nimport { parseJson, validateInputSelectOptions } from '../../schema';\nimport type { Prop } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\nexport type SelectOptionsList = (Option<StencilUnknown> | Optgroup<StencilUnknown>)[];\n\n/**\n * Options prop for `kol-select`\n *\n * Description:\n * Options and optgroups, as an array or as a JSON string when it is passed through an HTML attribute.\n * Every option needs a non-empty string or a number as `label`; one invalid option rejects the whole\n * list. An empty string is rejected as well, because Stencil can pass it for an empty array.\n *\n * The validation is `validateInputSelectOptions` of the schema, which also normalizes each option in\n * place: `disabled` becomes a boolean and a string `label` is trimmed.\n */\nexport type OptionsWithOptgroupProp = Prop<'options', OptionsWithOptgroupPropType, SelectOptionsList>;\n\nfunction normalizeOptionsWithOptgroup(value: unknown): SelectOptionsList | never {\n\tconst parsed = typeof value === 'string' ? parseJson<unknown>(value) : value;\n\tif (Array.isArray(parsed) && parsed.every((option) => validateInputSelectOptions(option as Option<StencilUnknown>))) {\n\t\treturn parsed as SelectOptionsList;\n\t}\n\tthrow new Error('Invalid select options');\n}\n\nexport const optionsWithOptgroupProp = createPropDefinition<OptionsWithOptgroupProp>('options', [], normalizeOptionsWithOptgroup);\n","import type { StencilUnknown, Stringified } from '../../schema';\nimport type { Prop } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\n\n/**\n * Value prop of `kol-select`\n *\n * Description:\n * The selected values; a single value is wrapped into a list. A JSON string is not parsed, it is a\n * value of its own. The default is the empty list. `kol-select` keeps `null` as `[null]` instead of\n * applying this definition to it.\n */\nexport type SelectValueProp = Prop<'value', Stringified<StencilUnknown[]> | Stringified<StencilUnknown>, StencilUnknown[]>;\nexport const selectValueProp = createPropDefinition<SelectValueProp>('value', [], (value: unknown) =>\n\tArray.isArray(value) ? (value as StencilUnknown[]) : [value as StencilUnknown],\n);\n","import {\n\taccessKeyProp,\n\thorizontalIconsProp,\n\tmultipleProp,\n\toptionsWithOptgroupProp,\n\trequiredProp,\n\trowsProp,\n\tselectValueProp,\n\tshortKeyProp,\n\ttabIndexProp,\n\tvariantProp,\n} from '../../props';\nimport type { FormFieldBaseStates } from '../form-field/api';\nimport { formFieldBasePropsConfig } from '../form-field/api';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const selectPropsConfig = {\n\trequired: [...formFieldBasePropsConfig.required],\n\toptional: [\n\t\t...formFieldBasePropsConfig.optional,\n\t\taccessKeyProp,\n\t\thorizontalIconsProp,\n\t\tmultipleProp,\n\t\toptionsWithOptgroupProp,\n\t\trequiredProp,\n\t\trowsProp,\n\t\tselectValueProp,\n\t\tshortKeyProp,\n\t\ttabIndexProp,\n\t\tvariantProp,\n\t],\n} as const satisfies PropsConfigShape;\n\nexport type SelectApi = ApiFromConfig<typeof selectPropsConfig, { States: FormFieldBaseStates }>;\n","import { Fragment, h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { MsgPropType, SelectOption, StencilUnknown, Stringified, W3CInputValue } from '../../../schema';\nimport { getMsgType, isMsgDefinedAndInputTouched } from '../../../schema';\nimport clsx from '../../../utils/clsx';\nimport { getBlockBem } from '../bem-root-node/block-bem';\nimport type { DefaultInputProps } from './default-input-props';\nimport { getDefaultInputProps } from './default-input-props';\n\nconst selectBem = getBlockBem('kol-select');\n\ntype SelectAttributes = JSXBase.SelectHTMLAttributes<HTMLSelectElement>;\n\nexport type SelectOptionFCProps = Omit<JSXBase.OptionHTMLAttributes<HTMLOptionElement>, 'value' | 'label'> & {\n\t/** The value, or the list of values, of the selected options. */\n\tselectedValue?: StencilUnknown | StencilUnknown[];\n\tvalue: StencilUnknown;\n\tlabel: W3CInputValue;\n\t/** The key of the option, rendered as its native value; the field maps it back to `value`. */\n\tindex?: string | number;\n};\n\nexport type SelectOptionListFCProps = {\n\t/** Key prefix of the options in an optgroup. */\n\tpreKey?: string;\n\tdisabled?: boolean;\n\tvalue?: StencilUnknown | StencilUnknown[];\n\toptions?: SelectOption<StencilUnknown>[];\n\tOptionProps?: Omit<JSXBase.OptionHTMLAttributes<HTMLOptionElement>, 'value' | 'label'>;\n\tOptionGroupProps?: Omit<JSXBase.OptgroupHTMLAttributes<HTMLOptGroupElement>, 'label'>;\n};\n\nexport type SelectFCProps = DefaultInputProps<SelectAttributes> &\n\tSelectOptionListFCProps & {\n\t\ttouched?: boolean;\n\t\tmsg?: Stringified<MsgPropType>;\n\t} & {\n\t\t[key: `aria-${string}`]: unknown;\n\t\t[key: `data-${string}`]: unknown;\n\t};\n\n/**\n * Native `<option>`. Its native value is the key (`-<index>`, in an optgroup `-<group>-<index>`), not\n * the option value, because a native value can only be a string.\n */\nexport const SelectOptionFC: FC<SelectOptionFCProps> = ({ class: classNames, index, selectedValue, selected, value, label, disabled, ...other }) => {\n\tconst selectedValues = selectedValue === undefined ? [] : Array.isArray(selectedValue) ? selectedValue : [selectedValue];\n\tconst isSelected = selected || selectedValues.includes(value);\n\n\treturn (\n\t\t<option\n\t\t\tclass={clsx(selectBem('option', { selected: Boolean(isSelected), disabled: Boolean(disabled) }), classNames)}\n\t\t\tselected={isSelected}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={index}\n\t\t\t{...other}\n\t\t>\n\t\t\t{label}\n\t\t</option>\n\t);\n};\n\n/** Options and optgroups of a native select, recursively; an optgroup prefixes the keys of its options. */\nexport const SelectOptionListFC: FC<SelectOptionListFCProps> = ({\n\tpreKey,\n\toptions,\n\tdisabled,\n\tvalue: selectedValue,\n\tOptionProps = {},\n\tOptionGroupProps = {},\n}) => {\n\tif (!options?.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{options.map((option, index) => {\n\t\t\t\tconst key = [preKey, `-${index}`].join('');\n\n\t\t\t\tif ('options' in option) {\n\t\t\t\t\tconst { label, ...other } = option;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<optgroup\n\t\t\t\t\t\t\tclass={selectBem('optgroup', { disabled: Boolean(disabled) })}\n\t\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\t\t{...OptionGroupProps}\n\t\t\t\t\t\t\tlabel={label?.toString()}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<SelectOptionListFC OptionGroupProps={OptionGroupProps} OptionProps={OptionProps} value={selectedValue} preKey={key} {...other} />\n\t\t\t\t\t\t</optgroup>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ('value' in option) {\n\t\t\t\t\treturn <SelectOptionFC key={key} {...OptionProps} index={key} selectedValue={selectedValue} {...option} />;\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t})}\n\t\t</>\n\t);\n};\n\n/**\n * Native `<select>` of a form field with its options. The select itself is the root of the\n * `kol-select` block, so the block classes are set on it directly instead of through `BemRootNodeFC`.\n */\nexport const SelectFC: FC<SelectFCProps> = (props) => {\n\tconst {\n\t\tclass: classNames,\n\t\tmsg,\n\t\ttouched,\n\t\tdisabled,\n\t\trequired,\n\t\toptions,\n\t\tvalue,\n\t\tOptionProps,\n\t\tOptionGroupProps,\n\t\tariaDescribedBy,\n\t\thideLabel,\n\t\tlabel,\n\t\t...other\n\t} = props;\n\n\tconst selectProps: SelectAttributes = {\n\t\tclass: clsx(\n\t\t\tselectBem({\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...(isMsgDefinedAndInputTouched(msg, touched) ? { [getMsgType(msg) as string]: true } : {}),\n\t\t\t}),\n\t\t\tclassNames,\n\t\t),\n\t\trequired: required,\n\t\tdisabled: disabled,\n\t\t...getDefaultInputProps({ ariaDescribedBy, hideLabel, label }),\n\t\t...other,\n\t};\n\n\treturn (\n\t\t<select {...selectProps}>\n\t\t\t<SelectOptionListFC options={options} value={value} OptionGroupProps={OptionGroupProps} OptionProps={OptionProps} />\n\t\t</select>\n\t);\n};\n","import type { Option, StencilUnknown } from '../../../schema';\nimport type { SelectOptionsList } from '../../props/options-with-optgroup';\n\n/**\n * Throws when the shape of a `_value` does not match `_multiple`: a list in single mode, or a single\n * value in multiple mode. The field throws from its watcher, so the value is not applied. `source`\n * names the value in the message: the received value of a `_value` change, or the current value on\n * a `_multiple` change.\n */\nexport const assertSelectValueMatchesMultiplicity = (value: unknown, multiple: boolean, source: 'current' | 'received'): void => {\n\tconst isArray = Array.isArray(value);\n\n\tif (multiple) {\n\t\tif (value !== undefined && !isArray) {\n\t\t\tthrow new Error(\n\t\t\t\t`↑ The schema for the property (_value) is not valid for multiple mode. Expected an array. The value will not be changed. (${source} = ${JSON.stringify(value)})`,\n\t\t\t);\n\t\t}\n\t} else if (isArray) {\n\t\tthrow new Error(\n\t\t\t`↑ The schema for the property (_value) is not valid for single mode. Expected a single value. The value will not be changed. (${source} = ${JSON.stringify(value)})`,\n\t\t);\n\t}\n};\n\n/** The options of the list, with the options of each optgroup in place of the optgroup. */\nconst flattenSelectOptions = (options: SelectOptionsList): Option<StencilUnknown>[] =>\n\toptions.flatMap((entry) => ('options' in entry && Array.isArray(entry.options) ? flattenSelectOptions(entry.options) : [entry as Option<StencilUnknown>]));\n\n/**\n * Keeps only the values that belong to an option. Then, in single mode (`multiple === false`, not\n * merely falsy) without a value, the value becomes the value of the first enabled option, which is\n * the option the native select shows. Without options, the value is kept as it is, because the\n * options can follow the value.\n */\nexport const normalizeSelectValue = (value: StencilUnknown[], options: SelectOptionsList, multiple: boolean | undefined): StencilUnknown[] => {\n\tif (options.length === 0) {\n\t\treturn value;\n\t}\n\tconst flatOptions = flattenSelectOptions(options);\n\tconst optionValues = flatOptions.map((option) => option.value);\n\tconst filtered = value.every((item) => optionValues.includes(item)) ? value : value.filter((item) => optionValues.includes(item));\n\tif (multiple === false && filtered.length === 0) {\n\t\tconst firstEnabled = flatOptions.find((option) => option.disabled !== true);\n\t\treturn firstEnabled ? [firstEnabled.value] : filtered;\n\t}\n\treturn filtered;\n};\n","import { h, type JSX } from '@stencil/core';\nimport type {\n\tIconsHorizontalPropType,\n\tMultiplePropType,\n\tOption,\n\tOptionsWithOptgroupPropType,\n\tSelectOption,\n\tShortKeyPropType,\n\tStencilUnknown,\n\tStringified,\n\tVariantClassNamePropType,\n} from '../../../schema';\nimport { validateAccessAndShortKey } from '../../../schema/validators/access-and-short-key';\nimport clsx from '../../../utils/clsx';\nimport type { CtaRef } from '../../../utils/element-interaction';\nimport {\n\taccessKeyProp,\n\thorizontalIconsProp,\n\tmultipleProp,\n\toptionsWithOptgroupProp,\n\trequiredProp,\n\trowsProp,\n\tselectValueProp,\n\tshortKeyProp,\n\ttabIndexProp,\n\tvariantProp,\n} from '../../props';\nimport { getInputAdornments } from '../form-field/adornments';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\nimport { FormFieldFC } from '../form-field/component';\nimport { InputContainerFC } from '../form-field/input-container';\nimport { fillKeyOptionMap } from '../form-field/options';\nimport type { SelectFCProps } from '../form-field/select';\nimport { SelectFC } from '../form-field/select';\nimport { assertSelectValueMatchesMultiplicity, normalizeSelectValue } from '../form-field/select-value';\nimport type { SelectApi } from './api';\n\n/**\n * Shared orchestrator implementation of `kol-select` and the page size select of the pagination\n * (`PageSizeSelect`): the option map, the value list and its normalization, the native select\n * events and the render.\n *\n * `kol-select` keeps what Stencil has to see in the component class itself (DD16).\n */\nexport abstract class BaseSelectWebComponent extends BaseFormFieldWebComponent<SelectApi> {\n\t/** Read for the multiplicity check and the first option preselection, like the raw prop. */\n\tpublic abstract _multiple?: boolean;\n\t/** Written on user input. */\n\tpublic abstract _value?: Stringified<StencilUnknown[]> | Stringified<StencilUnknown>;\n\n\tprotected abstract readonly ctaRef: CtaRef<HTMLSelectElement>;\n\n\t/** Option of each native option value (`-<index>`). */\n\tprivate readonly keyOptionMap = new Map<string, Option<StencilUnknown>>();\n\n\t/**\n\t * Whether the field has a value, for the class `kol-form-field--has-value`. It starts as `true`\n\t * and follows each `change`; it does not trigger a render of its own.\n\t */\n\tprivate hasValue = true;\n\n\t// --- Prop application (the concrete element's watchers delegate here) ---\n\n\tprotected applyAccessKey(value?: string): void {\n\t\taccessKeyProp.apply(value, (v) => this.setRenderProp('accessKey', v));\n\t\tvalidateAccessAndShortKey(value, this.getShortKeyProp());\n\t}\n\n\tprotected applyShortKey(value?: ShortKeyPropType): void {\n\t\tshortKeyProp.apply(value, (v) => this.setRenderProp('shortKey', v));\n\t\tvalidateAccessAndShortKey(this.getAccessKeyProp(), value);\n\t}\n\n\tprotected abstract getAccessKeyProp(): string | undefined;\n\tprotected abstract getShortKeyProp(): ShortKeyPropType | undefined;\n\n\tprotected applyIcons(value?: IconsHorizontalPropType): void {\n\t\thorizontalIconsProp.apply(value, (v) => this.setRenderProp('icons', v));\n\t}\n\n\tprotected applyMultiple(value?: MultiplePropType): void {\n\t\tassertSelectValueMatchesMultiplicity(this._value, value === true, 'current');\n\t\tmultipleProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('multiple', v);\n\t\t\tthis.setRenderProp('value', normalizeSelectValue(this.getRenderProp('value'), this.getRenderProp('options'), this._multiple));\n\t\t});\n\t}\n\n\t/** The option map keeps its entries while the list is empty. */\n\tprotected applyOptions(value?: OptionsWithOptgroupPropType): void {\n\t\toptionsWithOptgroupProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('options', v);\n\t\t\tif (v.length > 0) {\n\t\t\t\tthis.keyOptionMap.clear();\n\t\t\t\tfillKeyOptionMap(this.keyOptionMap, v as SelectOption<StencilUnknown>[]);\n\t\t\t\tthis.setRenderProp('value', normalizeSelectValue(this.getRenderProp('value'), v, this._multiple));\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected applyRequired(value?: boolean): void {\n\t\trequiredProp.apply(value, (v) => this.setRenderProp('required', v));\n\t}\n\n\tprotected applyRows(value?: number): void {\n\t\trowsProp.apply(value, (v) => this.setRenderProp('rows', v));\n\t}\n\n\tprotected applyTabIndex(value?: number): void {\n\t\ttabIndexProp.apply(value, (v) => this.setRenderProp('tabIndex', v));\n\t}\n\n\t/**\n\t * A single value is wrapped into a list and `null` is kept as `[null]`. Only a `_value` change sets\n\t * the form value; the preselection on an `_options` or `_multiple` change does not.\n\t */\n\tprotected applyValue(value?: Stringified<StencilUnknown[]> | Stringified<StencilUnknown>): void {\n\t\tassertSelectValueMatchesMultiplicity(value, this._multiple === true, 'received');\n\t\tconst setValue = (list: StencilUnknown[]): void => {\n\t\t\tconst normalized = normalizeSelectValue(list, this.getRenderProp('options'), this._multiple);\n\t\t\tthis.setRenderProp('value', normalized);\n\t\t\tthis.formAssociation.setFormAssociatedValue(this.getModelValue());\n\t\t};\n\t\tif (value === null) {\n\t\t\tsetValue([null]);\n\t\t} else {\n\t\t\tselectValueProp.apply(value, setValue);\n\t\t}\n\t}\n\n\tprotected applyVariant(value?: VariantClassNamePropType): void {\n\t\tvariantProp.apply(value, (v) => this.setRenderProp('variant', v));\n\t}\n\n\t// --- Value ---\n\n\t/** The value list with `_multiple`, otherwise its first entry (the list itself when empty). */\n\tprotected getModelValue(): StencilUnknown[] | StencilUnknown {\n\t\tconst value = this.getRenderProp('value');\n\t\tif (this._multiple) {\n\t\t\treturn value;\n\t\t}\n\t\treturn Array.isArray(value) && value.length > 0 ? value[0] : value;\n\t}\n\n\t// --- Event handling of the native select ---\n\n\tprivate readonly handleSelectInput = (event: Event): void => {\n\t\tconst selectedValues = Array.from(this.ctaRef.el?.options || [])\n\t\t\t.filter((option) => option.selected)\n\t\t\t.map((option) => this.keyOptionMap.get(option.value)?.value);\n\n\t\tif (this._multiple) {\n\t\t\tthis._value = selectedValues;\n\t\t\tthis.handleInput(event, selectedValues);\n\t\t} else {\n\t\t\tconst singleValue: StencilUnknown = selectedValues.length > 0 ? selectedValues[0] : undefined;\n\t\t\tthis._value = singleValue as Stringified<StencilUnknown>;\n\t\t\tthis.handleInput(event, singleValue);\n\t\t}\n\t};\n\n\tprivate readonly handleSelectChange = (event: Event): void => {\n\t\tconst value = this._value as StencilUnknown;\n\t\tthis.handleChange(event, value);\n\t\tthis.hasValue = !!value;\n\t};\n\n\t// --- Render ---\n\n\tprivate getSelectProps(): SelectFCProps {\n\t\tconst { ariaDescribedBy, hasError } = this.getAria();\n\t\tconst multiple = this.getRenderProp('multiple');\n\t\tconst shortKey = this.getRenderProp('shortKey');\n\n\t\treturn {\n\t\t\tid: this.getState('id'),\n\t\t\thideLabel: this.getRenderProp('hideLabel'),\n\t\t\tlabel: this.getRenderProp('label'),\n\t\t\tvalue: this.getRenderProp('value'),\n\t\t\toptions: this.getRenderProp('options'),\n\t\t\taccessKey: this.getRenderProp('accessKey') || undefined,\n\t\t\tdisabled: this.getRenderProp('disabled'),\n\t\t\tname: this.getRenderProp('name') || undefined,\n\t\t\t'aria-invalid': hasError ? 'true' : undefined,\n\t\t\tariaDescribedBy,\n\t\t\tsize: multiple ? this.getRenderProp('rows') : undefined,\n\t\t\tmultiple,\n\t\t\trequired: this.getRenderProp('required'),\n\t\t\ttouched: this.getRenderProp('touched'),\n\t\t\tmsg: this.getRenderProp('msg'),\n\t\t\t...(shortKey ? { 'aria-keyshortcuts': shortKey } : {}),\n\t\t\tref: this.ctaRef,\n\t\t\tonBlur: this.handleBlur,\n\t\t\tonChange: this.handleSelectChange,\n\t\t\tonClick: this.handleClick,\n\t\t\tonFocus: this.handleFocus,\n\t\t\tonInput: this.handleSelectInput,\n\t\t\tonKeyDown: this.handleKeyDown,\n\t\t};\n\t}\n\n\tprotected renderSelectField(): JSX.Element {\n\t\tconst disabled = this.getRenderProp('disabled');\n\t\tconst { startAdornment, endAdornment } = getInputAdornments({ icons: this.getRenderProp('icons') });\n\n\t\treturn (\n\t\t\t<FormFieldFC\n\t\t\t\t{...this.getFormFieldProps({\n\t\t\t\t\tclass: clsx('kol-form-field-select', { 'kol-form-field--has-value': this.hasValue }),\n\t\t\t\t\taccessKey: this.getRenderProp('accessKey') || undefined,\n\t\t\t\t\tshortKey: this.getRenderProp('shortKey') || undefined,\n\t\t\t\t\trequired: this.getRenderProp('required'),\n\t\t\t\t\tvariant: this.getRenderProp('variant'),\n\t\t\t\t})}\n\t\t\t\tonClick={() => this.ctaRef.el?.focus()}\n\t\t\t>\n\t\t\t\t<InputContainerFC\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tmsg={this.getRenderProp('msg')}\n\t\t\t\t\ttouched={this.getRenderProp('touched')}\n\t\t\t\t\tstartAdornment={startAdornment}\n\t\t\t\t\tendAdornment={endAdornment}\n\t\t\t\t>\n\t\t\t\t\t<SelectFC {...this.getSelectProps()} />\n\t\t\t\t</InputContainerFC>\n\t\t\t</FormFieldFC>\n\t\t);\n\t}\n}\n"],"names":["hasEnoughReadableChars","containsOnlyNumbers","a11yHint","parseJson","createPropDefinition","formFieldBasePropsConfig","accessKeyProp","horizontalIconsProp","multipleProp","requiredProp","rowsProp","shortKeyProp","tabIndexProp","variantProp","getBlockBem","index","__rest","h","clsx","Fragment","isMsgDefinedAndInputTouched","getMsgType","getDefaultInputProps","BaseFormFieldWebComponent","validateAccessAndShortKey","fillKeyOptionMap","getInputAdornments","FormFieldFC","InputContainerFC"],"mappings":"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"}
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DO9lYEcH.js');
6
+ var index = require('./index-Dv7OF9AY.js');
7
7
  var common = require('./common-B9-LvLNa.js');
8
8
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
9
9
  var api = require('./api-Cbqi5H03.js');
10
- var component = require('./component-DlgM4oEf.js');
10
+ var component = require('./component-KIiCY2eY.js');
11
11
  var behavior$1 = require('./behavior-9jJaWPY8.js');
12
12
  var behavior = require('./behavior-V1mhEBZ2.js');
13
13
  var variant = require('./variant-BNRxRadM.js');
@@ -212,6 +212,6 @@ class BaseButtonWebComponent extends baseWebComponent.BaseWebComponent {
212
212
  }
213
213
 
214
214
  exports.BaseButtonWebComponent = BaseButtonWebComponent;
215
- //# sourceMappingURL=base-CVLHbu6O.js.map
215
+ //# sourceMappingURL=base-xR4eDUJg.js.map
216
216
 
217
- //# sourceMappingURL=base-CVLHbu6O.js.map
217
+ //# sourceMappingURL=base-xR4eDUJg.js.map