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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) 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-yiwXjRrz.js → Heading-CFe7VL6f.js} +3 -3
  8. package/dist/cjs/{Heading-yiwXjRrz.js.map → Heading-CFe7VL6f.js.map} +1 -1
  9. package/dist/cjs/{api-BDT5xkx5.js → api-kNqVTMqf.js} +8 -8
  10. package/dist/cjs/{api-BDT5xkx5.js.map → api-kNqVTMqf.js.map} +1 -1
  11. package/dist/cjs/{api-BI1qXrGa.js → api-n8IopicV.js} +12 -12
  12. package/dist/cjs/{api-BI1qXrGa.js.map → api-n8IopicV.js.map} +1 -1
  13. package/dist/cjs/{app-globals-DPVGNVgE.js → app-globals-KA8S4Kl9.js} +4 -4
  14. package/dist/cjs/{app-globals-DPVGNVgE.js.map → app-globals-KA8S4Kl9.js.map} +1 -1
  15. package/dist/cjs/{base-CaQNXZrN.js → base-B07RMt0-.js} +5 -5
  16. package/dist/cjs/{base-CaQNXZrN.js.map → base-B07RMt0-.js.map} +1 -1
  17. package/dist/cjs/{base-DlsemYqM.js → base-Bw44v5Il.js} +4 -4
  18. package/dist/cjs/{base-DlsemYqM.js.map → base-Bw44v5Il.js.map} +1 -1
  19. package/dist/cjs/{base-FZ2Hemhr.js → base-DGx5qxja.js} +16 -16
  20. package/dist/cjs/{base-FZ2Hemhr.js.map → base-DGx5qxja.js.map} +1 -1
  21. package/dist/cjs/{base-B_M9Y7nD.js → base-Og0FJHrO.js} +4 -4
  22. package/dist/cjs/{base-B_M9Y7nD.js.map → base-Og0FJHrO.js.map} +1 -1
  23. package/dist/cjs/{base-web-component-BK8X1O8C.js → base-web-component-9l9kVbBw.js} +5 -5
  24. package/dist/cjs/{base-web-component-BK8X1O8C.js.map → base-web-component-9l9kVbBw.js.map} +1 -1
  25. package/dist/cjs/{base-web-component-GLk66TOu.js → base-web-component-MA3Hmf00.js} +7 -7
  26. package/dist/cjs/{base-web-component-GLk66TOu.js.map → base-web-component-MA3Hmf00.js.map} +1 -1
  27. package/dist/cjs/{behavior-BEaXHesG.js → behavior-CddJDVDz.js} +3 -3
  28. package/dist/cjs/{behavior-BEaXHesG.js.map → behavior-CddJDVDz.js.map} +1 -1
  29. package/dist/cjs/{component-Bc8fDajy.js → component-8M23HGR8.js} +5 -5
  30. package/dist/cjs/{component-Bc8fDajy.js.map → component-8M23HGR8.js.map} +1 -1
  31. package/dist/cjs/{component-CPVFCnaN.js → component-B1t_MP4V.js} +7 -7
  32. package/dist/cjs/{component-CPVFCnaN.js.map → component-B1t_MP4V.js.map} +1 -1
  33. package/dist/cjs/{component-Dw6Tq7Wb.js → component-B92xMW4N.js} +4 -4
  34. package/dist/cjs/{component-Dw6Tq7Wb.js.map → component-B92xMW4N.js.map} +1 -1
  35. package/dist/cjs/{component-3EZdZbDH.js → component-BGdViN9u.js} +3 -3
  36. package/dist/cjs/{component-3EZdZbDH.js.map → component-BGdViN9u.js.map} +1 -1
  37. package/dist/cjs/{component-Bj4QdlXm.js → component-BZKcc9iM.js} +5 -5
  38. package/dist/cjs/{component-Bj4QdlXm.js.map → component-BZKcc9iM.js.map} +1 -1
  39. package/dist/cjs/{component-CAkixzEQ.js → component-C8WDkeRK.js} +3 -3
  40. package/dist/cjs/{component-CAkixzEQ.js.map → component-C8WDkeRK.js.map} +1 -1
  41. package/dist/cjs/{component-Du98sklA.js → component-CESKZB76.js} +3 -3
  42. package/dist/cjs/{component-Du98sklA.js.map → component-CESKZB76.js.map} +1 -1
  43. package/dist/cjs/{component-Be3QHUyC.js → component-CQRRF1jV.js} +3 -3
  44. package/dist/cjs/{component-Be3QHUyC.js.map → component-CQRRF1jV.js.map} +1 -1
  45. package/dist/cjs/{component-B96XYPtn.js → component-D7IXFVHR.js} +4 -4
  46. package/dist/cjs/{component-B96XYPtn.js.map → component-D7IXFVHR.js.map} +1 -1
  47. package/dist/cjs/{component-BUCx7i5o.js → component-Dzx6SM5K.js} +7 -7
  48. package/dist/cjs/{component-BUCx7i5o.js.map → component-Dzx6SM5K.js.map} +1 -1
  49. package/dist/cjs/{component-Dd-PS3jp.js → component-K9JCKLMC.js} +4 -4
  50. package/dist/cjs/{component-Dd-PS3jp.js.map → component-K9JCKLMC.js.map} +1 -1
  51. package/dist/cjs/{component-DjDOgcWW.js → component-inHq7qad.js} +5 -5
  52. package/dist/cjs/{component-DjDOgcWW.js.map → component-inHq7qad.js.map} +1 -1
  53. package/dist/cjs/{dev.utils-DybQ4euF.js → dev.utils-CIsKrkDZ.js} +3 -3
  54. package/dist/cjs/{dev.utils-DybQ4euF.js.map → dev.utils-CIsKrkDZ.js.map} +1 -1
  55. package/dist/cjs/{devtools-Bw5sQJOl.js → devtools-DEHRYx1J.js} +4 -4
  56. package/dist/cjs/{devtools-Bw5sQJOl.js.map → devtools-DEHRYx1J.js.map} +1 -1
  57. package/dist/cjs/{field-control-4CnbMR0i.js → field-control-gMhh35Xz.js} +8 -8
  58. package/dist/cjs/{field-control-4CnbMR0i.js.map → field-control-gMhh35Xz.js.map} +1 -1
  59. package/dist/cjs/{group-BCkxYeMA.js → group-eUk7QHkH.js} +5 -5
  60. package/dist/cjs/{group-BCkxYeMA.js.map → group-eUk7QHkH.js.map} +1 -1
  61. package/dist/cjs/{index-RAfZF5x0.js → index-CjTDipy9.js} +3 -3
  62. package/dist/cjs/index-CjTDipy9.js.map +1 -0
  63. package/dist/cjs/{input-7t7ZvgAy.js → input-D1hDtOel.js} +5 -5
  64. package/dist/cjs/{input-7t7ZvgAy.js.map → input-D1hDtOel.js.map} +1 -1
  65. package/dist/cjs/{input-container-BUK2Fp_t.js → input-container-C9wW0ZFj.js} +7 -7
  66. package/dist/cjs/{input-container-BUK2Fp_t.js.map → input-container-C9wW0ZFj.js.map} +1 -1
  67. package/dist/cjs/{item-K1SS6pAu.js → item-C6TgTi4l.js} +4 -4
  68. package/dist/cjs/{item-K1SS6pAu.js.map → item-C6TgTi4l.js.map} +1 -1
  69. package/dist/cjs/{item-DO176juh.js → item-D2TI8Iec.js} +4 -4
  70. package/dist/cjs/{item-DO176juh.js.map → item-D2TI8Iec.js.map} +1 -1
  71. package/dist/cjs/{item-D8Zz2ROC.js → item-DoAJ6Wmk.js} +3 -3
  72. package/dist/cjs/{item-D8Zz2ROC.js.map → item-DoAJ6Wmk.js.map} +1 -1
  73. package/dist/cjs/{item-BInO5rWQ.js → item-se0KVw5y.js} +8 -8
  74. package/dist/cjs/{item-BInO5rWQ.js.map → item-se0KVw5y.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 +9 -9
  122. package/dist/cjs/kol-textarea.cjs.entry.js +17 -17
  123. package/dist/cjs/kol-toast-container.cjs.entry.js +11 -11
  124. package/dist/cjs/kol-toolbar.cjs.entry.js +11 -11
  125. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +4 -4
  126. package/dist/cjs/kol-tree-item.cjs.entry.js +9 -9
  127. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  128. package/dist/cjs/kol-version.cjs.entry.js +9 -9
  129. package/dist/cjs/kolibri.cjs.js +2 -2
  130. package/dist/cjs/loader.cjs.js +2 -2
  131. package/dist/cjs/{resolve-props-BBVQo_N5.js → resolve-props-JqnN_2MF.js} +3 -3
  132. package/dist/cjs/{resolve-props-BBVQo_N5.js.map → resolve-props-JqnN_2MF.js.map} +1 -1
  133. package/dist/cjs/{scroll-lock-zJbOf1Xr.js → scroll-lock-CxkP-oj1.js} +3 -3
  134. package/dist/cjs/{scroll-lock-zJbOf1Xr.js.map → scroll-lock-CxkP-oj1.js.map} +1 -1
  135. package/dist/cjs/{suggestions-quLXODgi.js → suggestions-BDfdREI5.js} +4 -4
  136. package/dist/cjs/{suggestions-quLXODgi.js.map → suggestions-BDfdREI5.js.map} +1 -1
  137. package/dist/cjs/test-component.cjs.entry.js +1 -1
  138. package/dist/cjs/{toggle-handler-CENFGRWT.js → toggle-handler-Bm0e15f-.js} +5 -5
  139. package/dist/cjs/{toggle-handler-CENFGRWT.js.map → toggle-handler-Bm0e15f-.js.map} +1 -1
  140. package/dist/collection/components/accordion/style.css +2 -2
  141. package/dist/collection/components/alert/style.css +2 -2
  142. package/dist/collection/components/badge/style.css +2 -2
  143. package/dist/collection/components/breadcrumb/style.css +2 -2
  144. package/dist/collection/components/button/style.css +2 -2
  145. package/dist/collection/components/button-link/style.css +2 -2
  146. package/dist/collection/components/card/style.css +2 -2
  147. package/dist/collection/components/combobox/style.css +2 -2
  148. package/dist/collection/components/details/style.css +2 -2
  149. package/dist/collection/components/dialog/style.css +2 -2
  150. package/dist/collection/components/drawer/style.css +2 -2
  151. package/dist/collection/components/form/style.css +2 -2
  152. package/dist/collection/components/icon/style.css +2 -2
  153. package/dist/collection/components/input-checkbox/style.css +2 -2
  154. package/dist/collection/components/input-color/style.css +2 -2
  155. package/dist/collection/components/input-date/style.css +2 -2
  156. package/dist/collection/components/input-email/style.css +2 -2
  157. package/dist/collection/components/input-file/style.css +2 -2
  158. package/dist/collection/components/input-number/style.css +2 -2
  159. package/dist/collection/components/input-password/style.css +2 -2
  160. package/dist/collection/components/input-radio/style.css +2 -2
  161. package/dist/collection/components/input-range/style.css +2 -2
  162. package/dist/collection/components/input-text/style.css +2 -2
  163. package/dist/collection/components/link/style.css +2 -2
  164. package/dist/collection/components/link-button/style.css +2 -2
  165. package/dist/collection/components/modal/style.css +2 -2
  166. package/dist/collection/components/nav/style.css +2 -2
  167. package/dist/collection/components/pagination/style.css +2 -2
  168. package/dist/collection/components/popover-button/style.css +2 -2
  169. package/dist/collection/components/select/style.css +2 -2
  170. package/dist/collection/components/single-select/style.css +2 -2
  171. package/dist/collection/components/skip-nav/style.css +2 -2
  172. package/dist/collection/components/split-button/style.css +2 -2
  173. package/dist/collection/components/table-stateful/style.css +2 -2
  174. package/dist/collection/components/table-stateless/style.css +2 -2
  175. package/dist/collection/components/tabs/style.css +2 -2
  176. package/dist/collection/components/textarea/style.css +2 -2
  177. package/dist/collection/components/toaster/style.css +2 -2
  178. package/dist/collection/components/toolbar/style.css +2 -2
  179. package/dist/collection/components/tree-item/style.css +2 -2
  180. package/dist/collection/components/version/style.css +2 -2
  181. package/dist/components/kol-accordion.js +1 -1
  182. package/dist/components/kol-alert.js +1 -1
  183. package/dist/components/kol-badge.js +1 -1
  184. package/dist/components/kol-breadcrumb.js +1 -1
  185. package/dist/components/kol-button-link.js +1 -1
  186. package/dist/components/kol-button.js +1 -1
  187. package/dist/components/kol-card.js +1 -1
  188. package/dist/components/kol-combobox.js +1 -1
  189. package/dist/components/kol-details.js +1 -1
  190. package/dist/components/kol-dialog.js +1 -1
  191. package/dist/components/kol-drawer.js +1 -1
  192. package/dist/components/kol-form.js +1 -1
  193. package/dist/components/kol-icon.js +1 -1
  194. package/dist/components/kol-input-checkbox.js +1 -1
  195. package/dist/components/kol-input-color.js +1 -1
  196. package/dist/components/kol-input-date.js +1 -1
  197. package/dist/components/kol-input-email.js +1 -1
  198. package/dist/components/kol-input-file.js +1 -1
  199. package/dist/components/kol-input-number.js +1 -1
  200. package/dist/components/kol-input-password.js +1 -1
  201. package/dist/components/kol-input-radio.js +1 -1
  202. package/dist/components/kol-input-range.js +1 -1
  203. package/dist/components/kol-input-text.js +1 -1
  204. package/dist/components/kol-link-button.js +1 -1
  205. package/dist/components/kol-link.js +1 -1
  206. package/dist/components/kol-modal.js +1 -1
  207. package/dist/components/kol-nav.js +1 -1
  208. package/dist/components/kol-pagination.js +1 -1
  209. package/dist/components/kol-popover-button.js +1 -1
  210. package/dist/components/kol-select.js +1 -1
  211. package/dist/components/kol-single-select.js +1 -1
  212. package/dist/components/kol-skip-nav.js +1 -1
  213. package/dist/components/kol-split-button.js +1 -1
  214. package/dist/components/kol-table-stateful.js +1 -1
  215. package/dist/components/kol-table-stateless.js +1 -1
  216. package/dist/components/kol-tabs.js +1 -1
  217. package/dist/components/kol-textarea.js +1 -1
  218. package/dist/components/kol-toast-container.js +1 -1
  219. package/dist/components/kol-toolbar.js +1 -1
  220. package/dist/components/kol-tree-item.js +1 -1
  221. package/dist/components/kol-version.js +1 -1
  222. package/dist/esm/{Heading-BctDgC7M.js → Heading-DYEtnAIe.js} +3 -3
  223. package/dist/{kolibri/Heading-BctDgC7M.js.map → esm/Heading-DYEtnAIe.js.map} +1 -1
  224. package/dist/esm/{api-B6fEjFVl.js → api-Bhr2ic7C.js} +12 -12
  225. package/dist/{kolibri/api-B6fEjFVl.js.map → esm/api-Bhr2ic7C.js.map} +1 -1
  226. package/dist/esm/{api-T-JuZMlj.js → api-DwdE0qU0.js} +8 -8
  227. package/dist/esm/{api-T-JuZMlj.js.map → api-DwdE0qU0.js.map} +1 -1
  228. package/dist/esm/{app-globals-CvvWI2x9.js → app-globals-DlrwRj26.js} +4 -4
  229. package/dist/esm/{app-globals-CvvWI2x9.js.map → app-globals-DlrwRj26.js.map} +1 -1
  230. package/dist/esm/{base-Dvr4F_Pr.js → base-BwsdAVVP.js} +16 -16
  231. package/dist/{kolibri/base-Dvr4F_Pr.js.map → esm/base-BwsdAVVP.js.map} +1 -1
  232. package/dist/esm/{base-BbVXW6YI.js → base-CQQKxfxv.js} +4 -4
  233. package/dist/{kolibri/base-BbVXW6YI.js.map → esm/base-CQQKxfxv.js.map} +1 -1
  234. package/dist/esm/{base-BARjFMg1.js → base-CdUYL1Y_.js} +5 -5
  235. package/dist/esm/{base-BARjFMg1.js.map → base-CdUYL1Y_.js.map} +1 -1
  236. package/dist/esm/{base-D8yYjJsn.js → base-D5a-Ls-4.js} +4 -4
  237. package/dist/{kolibri/base-D8yYjJsn.js.map → esm/base-D5a-Ls-4.js.map} +1 -1
  238. package/dist/esm/{base-web-component-DU3hnIWD.js → base-web-component-6IoFcVM9.js} +7 -7
  239. package/dist/{kolibri/base-web-component-DU3hnIWD.js.map → esm/base-web-component-6IoFcVM9.js.map} +1 -1
  240. package/dist/esm/{base-web-component-BzB5tP9s.js → base-web-component-CyCs0EpM.js} +5 -5
  241. package/dist/{kolibri/base-web-component-BzB5tP9s.js.map → esm/base-web-component-CyCs0EpM.js.map} +1 -1
  242. package/dist/esm/{behavior-CbqCHL6O.js → behavior-COQhqcG7.js} +3 -3
  243. package/dist/{kolibri/behavior-CbqCHL6O.js.map → esm/behavior-COQhqcG7.js.map} +1 -1
  244. package/dist/esm/{component-d1d-AIsY.js → component-BOFlST8N.js} +5 -5
  245. package/dist/{kolibri/component-d1d-AIsY.js.map → esm/component-BOFlST8N.js.map} +1 -1
  246. package/dist/esm/{component-DKS73hKY.js → component-C4dhT4Ba.js} +3 -3
  247. package/dist/{kolibri/component-DKS73hKY.js.map → esm/component-C4dhT4Ba.js.map} +1 -1
  248. package/dist/esm/{component-BaD1OTyv.js → component-C9cJK7Cf.js} +5 -5
  249. package/dist/esm/{component-BaD1OTyv.js.map → component-C9cJK7Cf.js.map} +1 -1
  250. package/dist/esm/{component-BjWF1SyZ.js → component-CBkrKKXd.js} +7 -7
  251. package/dist/esm/{component-BjWF1SyZ.js.map → component-CBkrKKXd.js.map} +1 -1
  252. package/dist/esm/{component-Ch6fss2f.js → component-CHz6TLzY.js} +5 -5
  253. package/dist/esm/{component-Ch6fss2f.js.map → component-CHz6TLzY.js.map} +1 -1
  254. package/dist/esm/{component-CmBM-Y1C.js → component-CODtL04S.js} +7 -7
  255. package/dist/esm/{component-CmBM-Y1C.js.map → component-CODtL04S.js.map} +1 -1
  256. package/dist/esm/{component-DhBTawyT.js → component-D30YHxgS.js} +3 -3
  257. package/dist/esm/{component-DhBTawyT.js.map → component-D30YHxgS.js.map} +1 -1
  258. package/dist/esm/{component-G9vQ1mQA.js → component-DXmRJdLc.js} +4 -4
  259. package/dist/{kolibri/component-G9vQ1mQA.js.map → esm/component-DXmRJdLc.js.map} +1 -1
  260. package/dist/esm/{component-QCFfSS76.js → component-DoCNds1d.js} +4 -4
  261. package/dist/{kolibri/component-QCFfSS76.js.map → esm/component-DoCNds1d.js.map} +1 -1
  262. package/dist/esm/{component-CvhmYY4a.js → component-fK2EUkFf.js} +4 -4
  263. package/dist/esm/{component-CvhmYY4a.js.map → component-fK2EUkFf.js.map} +1 -1
  264. package/dist/esm/{component-sf_0WjJF.js → component-kDR4_xf0.js} +3 -3
  265. package/dist/{kolibri/component-sf_0WjJF.js.map → esm/component-kDR4_xf0.js.map} +1 -1
  266. package/dist/esm/{component-D0iTurA_.js → component-kxFmDVse.js} +3 -3
  267. package/dist/esm/{component-D0iTurA_.js.map → component-kxFmDVse.js.map} +1 -1
  268. package/dist/esm/{dev.utils-BGy8dbtQ.js → dev.utils-DDqySnXB.js} +3 -3
  269. package/dist/{kolibri/dev.utils-BGy8dbtQ.js.map → esm/dev.utils-DDqySnXB.js.map} +1 -1
  270. package/dist/esm/{devtools-CZ8Mnmwl.js → devtools-CjmOcVsT.js} +4 -4
  271. package/dist/{kolibri/devtools-CZ8Mnmwl.js.map → esm/devtools-CjmOcVsT.js.map} +1 -1
  272. package/dist/esm/{field-control-CLnFuMmy.js → field-control-Dkru7B-M.js} +8 -8
  273. package/dist/esm/{field-control-CLnFuMmy.js.map → field-control-Dkru7B-M.js.map} +1 -1
  274. package/dist/esm/{group-BAOmF5Ok.js → group-CXJiUqKv.js} +5 -5
  275. package/dist/{kolibri/group-BAOmF5Ok.js.map → esm/group-CXJiUqKv.js.map} +1 -1
  276. package/dist/esm/{index-DAKQV03B.js → index-wY4pHWJG.js} +3 -3
  277. package/dist/esm/index-wY4pHWJG.js.map +1 -0
  278. package/dist/esm/{input-D2i1QEbL.js → input-C_ZwHs-7.js} +5 -5
  279. package/dist/esm/{input-D2i1QEbL.js.map → input-C_ZwHs-7.js.map} +1 -1
  280. package/dist/esm/{input-container-wQm8-W3s.js → input-container-CBl9xcK-.js} +7 -7
  281. package/dist/{kolibri/input-container-wQm8-W3s.js.map → esm/input-container-CBl9xcK-.js.map} +1 -1
  282. package/dist/esm/{item-Dkm57tce.js → item-BacIXvMT.js} +4 -4
  283. package/dist/esm/{item-Dkm57tce.js.map → item-BacIXvMT.js.map} +1 -1
  284. package/dist/esm/{item-DbLIGnc9.js → item-DewHrd_f.js} +4 -4
  285. package/dist/{kolibri/item-DbLIGnc9.js.map → esm/item-DewHrd_f.js.map} +1 -1
  286. package/dist/esm/{item-DuBSR8BS.js → item-lEB6GAqe.js} +3 -3
  287. package/dist/esm/{item-DuBSR8BS.js.map → item-lEB6GAqe.js.map} +1 -1
  288. package/dist/esm/{item-DJ8LXOMv.js → item-nGiqyOvt.js} +8 -8
  289. package/dist/{kolibri/item-DJ8LXOMv.js.map → esm/item-nGiqyOvt.js.map} +1 -1
  290. package/dist/esm/kol-abbr.entry.js +2 -2
  291. package/dist/esm/kol-accordion.entry.js +7 -7
  292. package/dist/esm/kol-alert.entry.js +11 -11
  293. package/dist/esm/kol-avatar.entry.js +1 -1
  294. package/dist/esm/kol-badge.entry.js +10 -10
  295. package/dist/esm/kol-breadcrumb.entry.js +9 -9
  296. package/dist/esm/kol-button-link.entry.js +10 -10
  297. package/dist/esm/kol-button.entry.js +10 -10
  298. package/dist/esm/kol-card.entry.js +11 -11
  299. package/dist/esm/kol-click-button.entry.js +2 -2
  300. package/dist/esm/kol-combobox.entry.js +18 -18
  301. package/dist/esm/kol-details.entry.js +7 -7
  302. package/dist/esm/kol-dialog.entry.js +13 -13
  303. package/dist/esm/kol-drawer.entry.js +12 -12
  304. package/dist/esm/kol-form.entry.js +12 -12
  305. package/dist/esm/kol-heading.entry.js +1 -1
  306. package/dist/esm/kol-icon.entry.js +3 -3
  307. package/dist/esm/kol-image.entry.js +1 -1
  308. package/dist/esm/kol-input-checkbox.entry.js +17 -17
  309. package/dist/esm/kol-input-color.entry.js +18 -18
  310. package/dist/esm/kol-input-date.entry.js +18 -18
  311. package/dist/esm/kol-input-email.entry.js +20 -20
  312. package/dist/esm/kol-input-file.entry.js +17 -17
  313. package/dist/esm/kol-input-number.entry.js +18 -18
  314. package/dist/esm/kol-input-password.entry.js +20 -20
  315. package/dist/esm/kol-input-radio.entry.js +17 -17
  316. package/dist/esm/kol-input-range.entry.js +18 -18
  317. package/dist/esm/kol-input-text.entry.js +20 -20
  318. package/dist/esm/kol-kolibri.entry.js +2 -2
  319. package/dist/esm/kol-link-button.entry.js +10 -10
  320. package/dist/esm/kol-link.entry.js +10 -10
  321. package/dist/esm/kol-meter.entry.js +1 -1
  322. package/dist/esm/kol-modal.entry.js +13 -13
  323. package/dist/esm/kol-nav.entry.js +13 -13
  324. package/dist/esm/kol-pagination.entry.js +18 -18
  325. package/dist/esm/kol-popover-button.entry.js +11 -11
  326. package/dist/esm/kol-progress.entry.js +1 -1
  327. package/dist/esm/kol-quote.entry.js +1 -1
  328. package/dist/esm/kol-select.entry.js +17 -17
  329. package/dist/esm/kol-single-select.entry.js +18 -18
  330. package/dist/esm/kol-skeleton.entry.js +2 -2
  331. package/dist/esm/kol-skip-nav.entry.js +9 -9
  332. package/dist/esm/kol-spin.entry.js +3 -3
  333. package/dist/esm/kol-split-button.entry.js +12 -12
  334. package/dist/esm/kol-table-stateful.entry.js +25 -25
  335. package/dist/esm/kol-table-stateless.entry.js +19 -19
  336. package/dist/esm/kol-tabs.entry.js +9 -9
  337. package/dist/esm/kol-textarea.entry.js +17 -17
  338. package/dist/esm/kol-toast-container.entry.js +11 -11
  339. package/dist/esm/kol-toolbar.entry.js +11 -11
  340. package/dist/esm/kol-tooltip-wc.entry.js +4 -4
  341. package/dist/esm/kol-tree-item.entry.js +9 -9
  342. package/dist/esm/kol-tree.entry.js +1 -1
  343. package/dist/esm/kol-version.entry.js +9 -9
  344. package/dist/esm/kolibri.js +3 -3
  345. package/dist/esm/loader.js +3 -3
  346. package/dist/esm/{resolve-props-BTiKxg-8.js → resolve-props-DrFDeILa.js} +3 -3
  347. package/dist/{kolibri/resolve-props-BTiKxg-8.js.map → esm/resolve-props-DrFDeILa.js.map} +1 -1
  348. package/dist/esm/{scroll-lock-DRNyw9qH.js → scroll-lock-BotxOlMX.js} +3 -3
  349. package/dist/{kolibri/scroll-lock-DRNyw9qH.js.map → esm/scroll-lock-BotxOlMX.js.map} +1 -1
  350. package/dist/esm/{suggestions-CG-TuGC4.js → suggestions-CX5S2xAI.js} +4 -4
  351. package/dist/esm/{suggestions-CG-TuGC4.js.map → suggestions-CX5S2xAI.js.map} +1 -1
  352. package/dist/esm/test-component.entry.js +1 -1
  353. package/dist/esm/{toggle-handler-aTxO0Wem.js → toggle-handler-VctiltrE.js} +5 -5
  354. package/dist/esm/{toggle-handler-aTxO0Wem.js.map → toggle-handler-VctiltrE.js.map} +1 -1
  355. package/dist/kolibri/{Heading-BctDgC7M.js → Heading-DYEtnAIe.js} +2 -2
  356. package/dist/{esm/Heading-BctDgC7M.js.map → kolibri/Heading-DYEtnAIe.js.map} +1 -1
  357. package/dist/kolibri/api-Bhr2ic7C.js +5 -0
  358. package/dist/{esm/api-B6fEjFVl.js.map → kolibri/api-Bhr2ic7C.js.map} +1 -1
  359. package/dist/kolibri/api-DwdE0qU0.js +5 -0
  360. package/dist/kolibri/{api-T-JuZMlj.js.map → api-DwdE0qU0.js.map} +1 -1
  361. package/dist/kolibri/app-globals-DlrwRj26.js +5 -0
  362. package/dist/kolibri/{app-globals-CvvWI2x9.js.map → app-globals-DlrwRj26.js.map} +1 -1
  363. package/dist/kolibri/{base-Dvr4F_Pr.js → base-BwsdAVVP.js} +2 -2
  364. package/dist/{esm/base-Dvr4F_Pr.js.map → kolibri/base-BwsdAVVP.js.map} +1 -1
  365. package/dist/kolibri/{base-BbVXW6YI.js → base-CQQKxfxv.js} +2 -2
  366. package/dist/{esm/base-BbVXW6YI.js.map → kolibri/base-CQQKxfxv.js.map} +1 -1
  367. package/dist/kolibri/{base-BARjFMg1.js → base-CdUYL1Y_.js} +2 -2
  368. package/dist/kolibri/{base-BARjFMg1.js.map → base-CdUYL1Y_.js.map} +1 -1
  369. package/dist/kolibri/{base-D8yYjJsn.js → base-D5a-Ls-4.js} +2 -2
  370. package/dist/{esm/base-D8yYjJsn.js.map → kolibri/base-D5a-Ls-4.js.map} +1 -1
  371. package/dist/kolibri/{base-web-component-DU3hnIWD.js → base-web-component-6IoFcVM9.js} +2 -2
  372. package/dist/{esm/base-web-component-DU3hnIWD.js.map → kolibri/base-web-component-6IoFcVM9.js.map} +1 -1
  373. package/dist/kolibri/{base-web-component-BzB5tP9s.js → base-web-component-CyCs0EpM.js} +2 -2
  374. package/dist/{esm/base-web-component-BzB5tP9s.js.map → kolibri/base-web-component-CyCs0EpM.js.map} +1 -1
  375. package/dist/kolibri/{behavior-CbqCHL6O.js → behavior-COQhqcG7.js} +2 -2
  376. package/dist/{esm/behavior-CbqCHL6O.js.map → kolibri/behavior-COQhqcG7.js.map} +1 -1
  377. package/dist/kolibri/{component-d1d-AIsY.js → component-BOFlST8N.js} +2 -2
  378. package/dist/{esm/component-d1d-AIsY.js.map → kolibri/component-BOFlST8N.js.map} +1 -1
  379. package/dist/kolibri/{component-DKS73hKY.js → component-C4dhT4Ba.js} +2 -2
  380. package/dist/{esm/component-DKS73hKY.js.map → kolibri/component-C4dhT4Ba.js.map} +1 -1
  381. package/dist/kolibri/component-C9cJK7Cf.js +5 -0
  382. package/dist/kolibri/{component-BaD1OTyv.js.map → component-C9cJK7Cf.js.map} +1 -1
  383. package/dist/kolibri/{component-BjWF1SyZ.js → component-CBkrKKXd.js} +2 -2
  384. package/dist/kolibri/{component-BjWF1SyZ.js.map → component-CBkrKKXd.js.map} +1 -1
  385. package/dist/kolibri/{component-Ch6fss2f.js → component-CHz6TLzY.js} +2 -2
  386. package/dist/kolibri/{component-Ch6fss2f.js.map → component-CHz6TLzY.js.map} +1 -1
  387. package/dist/kolibri/component-CODtL04S.js +5 -0
  388. package/dist/kolibri/{component-CmBM-Y1C.js.map → component-CODtL04S.js.map} +1 -1
  389. package/dist/kolibri/{component-DhBTawyT.js → component-D30YHxgS.js} +2 -2
  390. package/dist/kolibri/{component-DhBTawyT.js.map → component-D30YHxgS.js.map} +1 -1
  391. package/dist/kolibri/{component-G9vQ1mQA.js → component-DXmRJdLc.js} +2 -2
  392. package/dist/{esm/component-G9vQ1mQA.js.map → kolibri/component-DXmRJdLc.js.map} +1 -1
  393. package/dist/kolibri/{component-QCFfSS76.js → component-DoCNds1d.js} +2 -2
  394. package/dist/{esm/component-QCFfSS76.js.map → kolibri/component-DoCNds1d.js.map} +1 -1
  395. package/dist/kolibri/{component-CvhmYY4a.js → component-fK2EUkFf.js} +2 -2
  396. package/dist/kolibri/{component-CvhmYY4a.js.map → component-fK2EUkFf.js.map} +1 -1
  397. package/dist/kolibri/{component-sf_0WjJF.js → component-kDR4_xf0.js} +2 -2
  398. package/dist/{esm/component-sf_0WjJF.js.map → kolibri/component-kDR4_xf0.js.map} +1 -1
  399. package/dist/kolibri/{component-D0iTurA_.js → component-kxFmDVse.js} +2 -2
  400. package/dist/kolibri/{component-D0iTurA_.js.map → component-kxFmDVse.js.map} +1 -1
  401. package/dist/kolibri/{dev.utils-BGy8dbtQ.js → dev.utils-DDqySnXB.js} +2 -2
  402. package/dist/{esm/dev.utils-BGy8dbtQ.js.map → kolibri/dev.utils-DDqySnXB.js.map} +1 -1
  403. package/dist/kolibri/{devtools-CZ8Mnmwl.js → devtools-CjmOcVsT.js} +2 -2
  404. package/dist/{esm/devtools-CZ8Mnmwl.js.map → kolibri/devtools-CjmOcVsT.js.map} +1 -1
  405. package/dist/kolibri/field-control-Dkru7B-M.js +5 -0
  406. package/dist/kolibri/{field-control-CLnFuMmy.js.map → field-control-Dkru7B-M.js.map} +1 -1
  407. package/dist/kolibri/{group-BAOmF5Ok.js → group-CXJiUqKv.js} +2 -2
  408. package/dist/{esm/group-BAOmF5Ok.js.map → kolibri/group-CXJiUqKv.js.map} +1 -1
  409. package/dist/kolibri/{index-DAKQV03B.js → index-wY4pHWJG.js} +2 -2
  410. package/dist/kolibri/index-wY4pHWJG.js.map +1 -0
  411. package/dist/kolibri/input-C_ZwHs-7.js +5 -0
  412. package/dist/kolibri/{input-D2i1QEbL.js.map → input-C_ZwHs-7.js.map} +1 -1
  413. package/dist/kolibri/input-container-CBl9xcK-.js +5 -0
  414. package/dist/{esm/input-container-wQm8-W3s.js.map → kolibri/input-container-CBl9xcK-.js.map} +1 -1
  415. package/dist/kolibri/item-BacIXvMT.js +5 -0
  416. package/dist/kolibri/{item-Dkm57tce.js.map → item-BacIXvMT.js.map} +1 -1
  417. package/dist/kolibri/item-DewHrd_f.js +5 -0
  418. package/dist/{esm/item-DbLIGnc9.js.map → kolibri/item-DewHrd_f.js.map} +1 -1
  419. package/dist/kolibri/item-lEB6GAqe.js +5 -0
  420. package/dist/kolibri/{item-DuBSR8BS.js.map → item-lEB6GAqe.js.map} +1 -1
  421. package/dist/kolibri/{item-DJ8LXOMv.js → item-nGiqyOvt.js} +2 -2
  422. package/dist/{esm/item-DJ8LXOMv.js.map → kolibri/item-nGiqyOvt.js.map} +1 -1
  423. package/dist/kolibri/kol-abbr.entry.js +1 -1
  424. package/dist/kolibri/kol-accordion.entry.js +1 -1
  425. package/dist/kolibri/kol-alert.entry.js +1 -1
  426. package/dist/kolibri/kol-avatar.entry.js +1 -1
  427. package/dist/kolibri/kol-badge.entry.js +1 -1
  428. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  429. package/dist/kolibri/kol-button-link.entry.js +1 -1
  430. package/dist/kolibri/kol-button.entry.js +1 -1
  431. package/dist/kolibri/kol-card.entry.js +1 -1
  432. package/dist/kolibri/kol-click-button.entry.js +1 -1
  433. package/dist/kolibri/kol-combobox.entry.js +1 -1
  434. package/dist/kolibri/kol-details.entry.js +1 -1
  435. package/dist/kolibri/kol-dialog.entry.js +1 -1
  436. package/dist/kolibri/kol-drawer.entry.js +1 -1
  437. package/dist/kolibri/kol-form.entry.js +1 -1
  438. package/dist/kolibri/kol-heading.entry.js +1 -1
  439. package/dist/kolibri/kol-icon.entry.js +1 -1
  440. package/dist/kolibri/kol-image.entry.js +1 -1
  441. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  442. package/dist/kolibri/kol-input-color.entry.js +1 -1
  443. package/dist/kolibri/kol-input-date.entry.js +1 -1
  444. package/dist/kolibri/kol-input-email.entry.js +1 -1
  445. package/dist/kolibri/kol-input-file.entry.js +1 -1
  446. package/dist/kolibri/kol-input-number.entry.js +1 -1
  447. package/dist/kolibri/kol-input-password.entry.js +1 -1
  448. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  449. package/dist/kolibri/kol-input-range.entry.js +1 -1
  450. package/dist/kolibri/kol-input-text.entry.js +1 -1
  451. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  452. package/dist/kolibri/kol-link-button.entry.js +1 -1
  453. package/dist/kolibri/kol-link.entry.js +1 -1
  454. package/dist/kolibri/kol-meter.entry.js +1 -1
  455. package/dist/kolibri/kol-modal.entry.js +1 -1
  456. package/dist/kolibri/kol-nav.entry.js +1 -1
  457. package/dist/kolibri/kol-pagination.entry.js +1 -1
  458. package/dist/kolibri/kol-popover-button.entry.js +1 -1
  459. package/dist/kolibri/kol-progress.entry.js +1 -1
  460. package/dist/kolibri/kol-quote.entry.js +1 -1
  461. package/dist/kolibri/kol-select.entry.js +1 -1
  462. package/dist/kolibri/kol-single-select.entry.js +1 -1
  463. package/dist/kolibri/kol-skeleton.entry.js +1 -1
  464. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  465. package/dist/kolibri/kol-spin.entry.js +1 -1
  466. package/dist/kolibri/kol-split-button.entry.js +1 -1
  467. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  468. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  469. package/dist/kolibri/kol-tabs.entry.js +1 -1
  470. package/dist/kolibri/kol-textarea.entry.js +1 -1
  471. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  472. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  473. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  474. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  475. package/dist/kolibri/kol-tree.entry.js +1 -1
  476. package/dist/kolibri/kol-version.entry.js +1 -1
  477. package/dist/kolibri/kolibri.esm.js +1 -1
  478. package/dist/kolibri/resolve-props-DrFDeILa.js +5 -0
  479. package/dist/{esm/resolve-props-BTiKxg-8.js.map → kolibri/resolve-props-DrFDeILa.js.map} +1 -1
  480. package/dist/kolibri/{scroll-lock-DRNyw9qH.js → scroll-lock-BotxOlMX.js} +2 -2
  481. package/dist/{esm/scroll-lock-DRNyw9qH.js.map → kolibri/scroll-lock-BotxOlMX.js.map} +1 -1
  482. package/dist/kolibri/{suggestions-CG-TuGC4.js → suggestions-CX5S2xAI.js} +2 -2
  483. package/dist/kolibri/{suggestions-CG-TuGC4.js.map → suggestions-CX5S2xAI.js.map} +1 -1
  484. package/dist/kolibri/test-component.entry.js +1 -1
  485. package/dist/kolibri/toggle-handler-VctiltrE.js +5 -0
  486. package/dist/kolibri/{toggle-handler-aTxO0Wem.js.map → toggle-handler-VctiltrE.js.map} +1 -1
  487. package/package.json +3 -3
  488. package/dist/cjs/index-RAfZF5x0.js.map +0 -1
  489. package/dist/esm/index-DAKQV03B.js.map +0 -1
  490. package/dist/kolibri/api-B6fEjFVl.js +0 -5
  491. package/dist/kolibri/api-T-JuZMlj.js +0 -5
  492. package/dist/kolibri/app-globals-CvvWI2x9.js +0 -5
  493. package/dist/kolibri/component-BaD1OTyv.js +0 -5
  494. package/dist/kolibri/component-CmBM-Y1C.js +0 -5
  495. package/dist/kolibri/field-control-CLnFuMmy.js +0 -5
  496. package/dist/kolibri/index-DAKQV03B.js.map +0 -1
  497. package/dist/kolibri/input-D2i1QEbL.js +0 -5
  498. package/dist/kolibri/input-container-wQm8-W3s.js +0 -5
  499. package/dist/kolibri/item-DbLIGnc9.js +0 -5
  500. package/dist/kolibri/item-Dkm57tce.js +0 -5
  501. package/dist/kolibri/item-DuBSR8BS.js +0 -5
  502. package/dist/kolibri/resolve-props-BTiKxg-8.js +0 -5
  503. package/dist/kolibri/toggle-handler-aTxO0Wem.js +0 -5
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import { h } from './index-DAKQV03B.js';
5
- import { S as SpanFC } from './component-QCFfSS76.js';
4
+ import { h } from './index-wY4pHWJG.js';
5
+ import { S as SpanFC } from './component-DoCNds1d.js';
6
6
 
7
7
  const TooltipFC = ({ label, badgeText, id, refFloating }) => {
8
8
  return (h("div", { class: "kol-tooltip__floating", hidden: label.length === 0, ref: refFloating }, h("div", { class: "kol-tooltip__arrow" }), h(SpanFC, { class: "kol-tooltip__content", badgeText: badgeText, id: id, label: label })));
9
9
  };
10
10
 
11
11
  export { TooltipFC as T };
12
- //# sourceMappingURL=component-CvhmYY4a.js.map
12
+ //# sourceMappingURL=component-fK2EUkFf.js.map
13
13
 
14
- //# sourceMappingURL=component-CvhmYY4a.js.map
14
+ //# sourceMappingURL=component-fK2EUkFf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-CvhmYY4a.js","sources":["src/internal/functional-components/tooltip/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport type { TooltipAlignPropType } from '../../../schema';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { SpanFC } from '../span/component';\nimport type { TooltipApi } from './api';\n\ntype TooltipFCProps = Pick<FunctionalComponentProps<TooltipApi>, 'label'> & {\n\tbadgeText?: string;\n\tid?: string;\n\talign?: TooltipAlignPropType;\n\trefFloating: (el?: HTMLDivElement) => void;\n};\n\nexport const TooltipFC: FC<TooltipFCProps> = ({ label, badgeText, id, refFloating }) => {\n\treturn (\n\t\t<div class=\"kol-tooltip__floating\" hidden={label.length === 0} ref={refFloating}>\n\t\t\t<div class=\"kol-tooltip__arrow\" />\n\t\t\t<SpanFC class=\"kol-tooltip__content\" badgeText={badgeText} id={id} label={label} />\n\t\t</div>\n\t);\n};\n"],"names":[],"mappings":";;;;;;AAeO,MAAM,SAAS,GAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,KAAI;IACtF,QACC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAA,EAC9E,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,oBAAoB,EAAG,CAAA,EAClC,CAAC,CAAA,MAAM,IAAC,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAI,CAAA,CAC9E;AAER;;;;"}
1
+ {"version":3,"file":"component-fK2EUkFf.js","sources":["src/internal/functional-components/tooltip/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport type { TooltipAlignPropType } from '../../../schema';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { SpanFC } from '../span/component';\nimport type { TooltipApi } from './api';\n\ntype TooltipFCProps = Pick<FunctionalComponentProps<TooltipApi>, 'label'> & {\n\tbadgeText?: string;\n\tid?: string;\n\talign?: TooltipAlignPropType;\n\trefFloating: (el?: HTMLDivElement) => void;\n};\n\nexport const TooltipFC: FC<TooltipFCProps> = ({ label, badgeText, id, refFloating }) => {\n\treturn (\n\t\t<div class=\"kol-tooltip__floating\" hidden={label.length === 0} ref={refFloating}>\n\t\t\t<div class=\"kol-tooltip__arrow\" />\n\t\t\t<SpanFC class=\"kol-tooltip__content\" badgeText={badgeText} id={id} label={label} />\n\t\t</div>\n\t);\n};\n"],"names":[],"mappings":";;;;;;AAeO,MAAM,SAAS,GAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,KAAI;IACtF,QACC,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,uBAAuB,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAA,EAC9E,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,oBAAoB,EAAG,CAAA,EAClC,CAAC,CAAA,MAAM,IAAC,KAAK,EAAC,sBAAsB,EAAC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAI,CAAA,CAC9E;AAER;;;;"}
@@ -2,7 +2,7 @@
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
4
  import './common-BqpMtheU.js';
5
- import { h } from './index-DAKQV03B.js';
5
+ import { h } from './index-wY4pHWJG.js';
6
6
 
7
7
  const classNameFromVariant = (variants, componentName) => {
8
8
  let className = '';
@@ -17,6 +17,6 @@ const classNameFromVariant = (variants, componentName) => {
17
17
  const AriaDescriptionSpanFC = ({ description, descriptionId }) => description ? (h("span", { class: "visually-hidden", id: descriptionId }, description)) : null;
18
18
 
19
19
  export { AriaDescriptionSpanFC as A, classNameFromVariant as c };
20
- //# sourceMappingURL=component-sf_0WjJF.js.map
20
+ //# sourceMappingURL=component-kDR4_xf0.js.map
21
21
 
22
- //# sourceMappingURL=component-sf_0WjJF.js.map
22
+ //# sourceMappingURL=component-kDR4_xf0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-sf_0WjJF.js","sources":["src/schema/props/variant-class-name.ts","src/internal/functional-components/aria-description-span/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchOptions } from '../utils';\nimport { watchValidator } from '../utils';\nimport { isString } from '../validators';\n\nexport type VariantClassNamePropType = string | string[];\n\nexport type PropVariantClassName = {\n\tvariant: VariantClassNamePropType;\n};\n\nconst SAFE_CLASS_NAME_RE = /^[a-zA-Z][a-zA-Z0-9_-]{3,60}$/;\nconst isValidArrayOrString = (value: unknown) =>\n\t(Array.isArray(value) && value.every(isSafeClassName)) || (isString(value, 1) && (value as string).split(' ').every(isSafeClassName));\nconst isSafeClassName = (value: unknown) => typeof value === 'string' && SAFE_CLASS_NAME_RE.test(value);\nconst SAFE_CLASS_NAME_ALLOWED = new Set([SAFE_CLASS_NAME_RE.source]);\n\nconst beforePatchString = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_variant')) {\n\t\tconst variants = component.nextState?.get('_variant');\n\t\tlet nextStateVariants: VariantClassNamePropType = [];\n\t\tif (isString(variants, 1)) {\n\t\t\tnextStateVariants = (variants as string).split(' ');\n\t\t} else if (Array.isArray(variants)) {\n\t\t\tnextStateVariants = variants;\n\t\t}\n\t\tcomponent.nextState?.set('_variant', nextStateVariants);\n\t}\n};\n\nexport const validateVariantClassName = (component: Generic.Element.Component, value?: VariantClassNamePropType, options: WatchOptions = {}): void => {\n\twatchValidator(component, '_variant', isValidArrayOrString, SAFE_CLASS_NAME_ALLOWED, value, {\n\t\t...options,\n\t\tdefaultValue: [],\n\t\thooks: {\n\t\t\tafterPatch: options.hooks?.afterPatch,\n\t\t\tbeforePatch: (nextValue, nextState, component, key) => {\n\t\t\t\tif (typeof options.hooks?.beforePatch === 'function') {\n\t\t\t\t\toptions.hooks?.beforePatch(nextValue, nextState, component, key);\n\t\t\t\t}\n\t\t\t\tbeforePatchString(component);\n\t\t\t},\n\t\t},\n\t});\n};\n\nexport const classNameFromVariant = (variants: VariantClassNamePropType | undefined, componentName: string): string => {\n\tlet className = '';\n\n\tif (Array.isArray(variants)) {\n\t\tvariants.forEach((variant) => {\n\t\t\tclassName += 'kol-' + componentName + '--' + variant + ' ';\n\t\t});\n\t}\n\treturn className;\n};\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\ntype AriaDescriptionSpanFCProps = {\n\t/**\n\t * The (already trimmed) description text. Falsy renders nothing — the description is\n\t * optional, and an empty `aria-describedby` target would be pointless.\n\t */\n\tdescription: string | undefined;\n\t/**\n\t * The id referenced by the interactive element's `aria-describedby`.\n\t */\n\tdescriptionId: string;\n};\n\n/**\n * Visually-hidden `aria-describedby` target, shared by `ButtonFC` and `LinkFC`.\n *\n * Must be a sibling of the interactive element, not a child of it — the description is\n * referenced from outside via `aria-describedby`, not folded into the accessible name.\n */\nexport const AriaDescriptionSpanFC: FC<AriaDescriptionSpanFCProps> = ({ description, descriptionId }) =>\n\tdescription ? (\n\t\t<span class=\"visually-hidden\" id={descriptionId}>\n\t\t\t{description}\n\t\t</span>\n\t) : null;\n"],"names":[],"mappings":";;;;;;MA+Ca,oBAAoB,GAAG,CAAC,QAA8C,EAAE,aAAqB,KAAY;IACrH,IAAI,SAAS,GAAG,EAAE;AAElB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC5B,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YAC5B,SAAS,IAAI,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG;AAC3D,SAAC,CAAC;;AAEH,IAAA,OAAO,SAAS;AACjB;;ACnCa,MAAA,qBAAqB,GAAmC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,KACnG,WAAW,IACV,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAE,aAAa,EAC7C,EAAA,WAAW,CACN,IACJ;;;;"}
1
+ {"version":3,"file":"component-kDR4_xf0.js","sources":["src/schema/props/variant-class-name.ts","src/internal/functional-components/aria-description-span/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchOptions } from '../utils';\nimport { watchValidator } from '../utils';\nimport { isString } from '../validators';\n\nexport type VariantClassNamePropType = string | string[];\n\nexport type PropVariantClassName = {\n\tvariant: VariantClassNamePropType;\n};\n\nconst SAFE_CLASS_NAME_RE = /^[a-zA-Z][a-zA-Z0-9_-]{3,60}$/;\nconst isValidArrayOrString = (value: unknown) =>\n\t(Array.isArray(value) && value.every(isSafeClassName)) || (isString(value, 1) && (value as string).split(' ').every(isSafeClassName));\nconst isSafeClassName = (value: unknown) => typeof value === 'string' && SAFE_CLASS_NAME_RE.test(value);\nconst SAFE_CLASS_NAME_ALLOWED = new Set([SAFE_CLASS_NAME_RE.source]);\n\nconst beforePatchString = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_variant')) {\n\t\tconst variants = component.nextState?.get('_variant');\n\t\tlet nextStateVariants: VariantClassNamePropType = [];\n\t\tif (isString(variants, 1)) {\n\t\t\tnextStateVariants = (variants as string).split(' ');\n\t\t} else if (Array.isArray(variants)) {\n\t\t\tnextStateVariants = variants;\n\t\t}\n\t\tcomponent.nextState?.set('_variant', nextStateVariants);\n\t}\n};\n\nexport const validateVariantClassName = (component: Generic.Element.Component, value?: VariantClassNamePropType, options: WatchOptions = {}): void => {\n\twatchValidator(component, '_variant', isValidArrayOrString, SAFE_CLASS_NAME_ALLOWED, value, {\n\t\t...options,\n\t\tdefaultValue: [],\n\t\thooks: {\n\t\t\tafterPatch: options.hooks?.afterPatch,\n\t\t\tbeforePatch: (nextValue, nextState, component, key) => {\n\t\t\t\tif (typeof options.hooks?.beforePatch === 'function') {\n\t\t\t\t\toptions.hooks?.beforePatch(nextValue, nextState, component, key);\n\t\t\t\t}\n\t\t\t\tbeforePatchString(component);\n\t\t\t},\n\t\t},\n\t});\n};\n\nexport const classNameFromVariant = (variants: VariantClassNamePropType | undefined, componentName: string): string => {\n\tlet className = '';\n\n\tif (Array.isArray(variants)) {\n\t\tvariants.forEach((variant) => {\n\t\t\tclassName += 'kol-' + componentName + '--' + variant + ' ';\n\t\t});\n\t}\n\treturn className;\n};\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\ntype AriaDescriptionSpanFCProps = {\n\t/**\n\t * The (already trimmed) description text. Falsy renders nothing — the description is\n\t * optional, and an empty `aria-describedby` target would be pointless.\n\t */\n\tdescription: string | undefined;\n\t/**\n\t * The id referenced by the interactive element's `aria-describedby`.\n\t */\n\tdescriptionId: string;\n};\n\n/**\n * Visually-hidden `aria-describedby` target, shared by `ButtonFC` and `LinkFC`.\n *\n * Must be a sibling of the interactive element, not a child of it — the description is\n * referenced from outside via `aria-describedby`, not folded into the accessible name.\n */\nexport const AriaDescriptionSpanFC: FC<AriaDescriptionSpanFCProps> = ({ description, descriptionId }) =>\n\tdescription ? (\n\t\t<span class=\"visually-hidden\" id={descriptionId}>\n\t\t\t{description}\n\t\t</span>\n\t) : null;\n"],"names":[],"mappings":";;;;;;MA+Ca,oBAAoB,GAAG,CAAC,QAA8C,EAAE,aAAqB,KAAY;IACrH,IAAI,SAAS,GAAG,EAAE;AAElB,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC5B,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;YAC5B,SAAS,IAAI,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,GAAG;AAC3D,SAAC,CAAC;;AAEH,IAAA,OAAO,SAAS;AACjB;;ACnCa,MAAA,qBAAqB,GAAmC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,KACnG,WAAW,IACV,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,iBAAiB,EAAC,EAAE,EAAE,aAAa,EAC7C,EAAA,WAAW,CACN,IACJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import { h } from './index-DAKQV03B.js';
4
+ import { h } from './index-wY4pHWJG.js';
5
5
  import { b as bem } from './bem-registry-CX5kvaqt.js';
6
6
 
7
7
  const clickButtonBem = bem.forBlock('kol-click-button');
@@ -10,6 +10,6 @@ const BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');
10
10
  const ClickButtonFC = ({ label, handleClick, refButton }) => (h("button", { class: BEM_CLASS_CLICK_BUTTON, ref: refButton, onClick: handleClick, onKeyDown: (event) => event.preventDefault() }, h("span", { class: BEM_CLASS_CLICK_BUTTON__LABEL }, label)));
11
11
 
12
12
  export { ClickButtonFC as C };
13
- //# sourceMappingURL=component-D0iTurA_.js.map
13
+ //# sourceMappingURL=component-kxFmDVse.js.map
14
14
 
15
- //# sourceMappingURL=component-D0iTurA_.js.map
15
+ //# sourceMappingURL=component-kxFmDVse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-D0iTurA_.js","sources":["src/internal/functional-components/click-button/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { ClickButtonApi } from './api';\n\nconst clickButtonBem = bem.forBlock('kol-click-button');\nconst BEM_CLASS_CLICK_BUTTON = clickButtonBem();\nconst BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');\n\nexport const ClickButtonFC: FC<FunctionalComponentProps<ClickButtonApi>> = ({ label, handleClick, refButton }) => (\n\t<button class={BEM_CLASS_CLICK_BUTTON} ref={refButton} onClick={handleClick} onKeyDown={(event) => event.preventDefault()}>\n\t\t<span class={BEM_CLASS_CLICK_BUTTON__LABEL}>{label}</span>\n\t</button>\n);\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACvD,MAAM,sBAAsB,GAAG,cAAc,EAAE;AAC/C,MAAM,6BAA6B,GAAG,cAAc,CAAC,OAAO,CAAC;AAEtD,MAAM,aAAa,GAAiD,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAC5G,cAAQ,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAAA,EACxH,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,6BAA6B,EAAA,EAAG,KAAK,CAAQ,CAClD;;;;"}
1
+ {"version":3,"file":"component-kxFmDVse.js","sources":["src/internal/functional-components/click-button/component.tsx"],"sourcesContent":["import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { ClickButtonApi } from './api';\n\nconst clickButtonBem = bem.forBlock('kol-click-button');\nconst BEM_CLASS_CLICK_BUTTON = clickButtonBem();\nconst BEM_CLASS_CLICK_BUTTON__LABEL = clickButtonBem('label');\n\nexport const ClickButtonFC: FC<FunctionalComponentProps<ClickButtonApi>> = ({ label, handleClick, refButton }) => (\n\t<button class={BEM_CLASS_CLICK_BUTTON} ref={refButton} onClick={handleClick} onKeyDown={(event) => event.preventDefault()}>\n\t\t<span class={BEM_CLASS_CLICK_BUTTON__LABEL}>{label}</span>\n\t</button>\n);\n"],"names":[],"mappings":";;;;;;AAOA,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC;AACvD,MAAM,sBAAsB,GAAG,cAAc,EAAE;AAC/C,MAAM,6BAA6B,GAAG,cAAc,CAAC,OAAO,CAAC;AAEtD,MAAM,aAAa,GAAiD,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAC5G,cAAQ,KAAK,EAAE,sBAAsB,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,cAAc,EAAE,EAAA,EACxH,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAE,6BAA6B,EAAA,EAAG,KAAK,CAAQ,CAClD;;;;"}
@@ -2,7 +2,7 @@
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
4
  import { L as Log, q as getDocument, t as setExperimentalMode, v as setColorContrastAnalysis, x as getWindow, y as isTestMode } from './common-BqpMtheU.js';
5
- import { E as Env } from './index-DAKQV03B.js';
5
+ import { E as Env } from './index-wY4pHWJG.js';
6
6
 
7
7
  const initMeta = () => {
8
8
  try {
@@ -76,6 +76,6 @@ const createRelatedUniqueId = (baseId, suffix) => {
76
76
  };
77
77
 
78
78
  export { createRelatedUniqueId as a, createUniqueId as c, initKoliBri as i, nonce as n, renderDevAdvice as r };
79
- //# sourceMappingURL=dev.utils-BGy8dbtQ.js.map
79
+ //# sourceMappingURL=dev.utils-DDqySnXB.js.map
80
80
 
81
- //# sourceMappingURL=dev.utils-BGy8dbtQ.js.map
81
+ //# sourceMappingURL=dev.utils-DDqySnXB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.utils-BGy8dbtQ.js","sources":["src/utils/dev.utils.ts"],"sourcesContent":["import { Log, getDocument, isTestMode, setColorContrastAnalysis, setExperimentalMode } from '../schema';\n\nimport { Env } from '@stencil/core';\nimport { getWindow } from '../schema';\n\nconst initMeta = (): void => {\n\ttry {\n\t\tconst document = getDocument();\n\t\tif (!document || typeof document.querySelector !== 'function') {\n\t\t\treturn; // Skip meta initialization if document is not available\n\t\t}\n\n\t\tconst meta = document.querySelector('meta[name=\"kolibri\"]');\n\t\tif (meta && meta.hasAttribute('content')) {\n\t\t\tconst content = meta.getAttribute('content');\n\t\t\tif (typeof content === 'string') {\n\t\t\t\tsetExperimentalMode(content.includes('experimental-mode=true'));\n\t\t\t\tsetColorContrastAnalysis(content.includes('color-contrast-analysis=true'));\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// Ignore meta initialization errors in test/SSR environments\n\t}\n};\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nexport { getKoliBri };\n\nexport const initKoliBri = (): void => {\n\tinitMeta();\n\tLog.debug(\n\t\t`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,\n\t\t{\n\t\t\tforceLog: true,\n\t\t},\n\t);\n};\n\nexport const renderDevAdvice = (): void => {\n\tif (getKoliBri().adviceShown !== true) {\n\t\tObject.defineProperty(getKoliBri(), 'adviceShown', {\n\t\t\tget: function () {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\tLog.debug(\n\t\t\t`\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n`,\n\t\t);\n\t}\n};\n\nlet nonce = (): string => Math.floor(Math.random() * 16777215).toString(16);\n\nif (isTestMode()) {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n\nexport const createUniqueId = (prefix: string): string => `${prefix}-${nonce()}`;\n\nexport const createRelatedUniqueId = (baseId: string, suffix: string): string => {\n\tconst separatorIndex = baseId.lastIndexOf('-');\n\tif (separatorIndex === -1) return `${baseId}-${suffix}`;\n\tconst lastSegment = baseId.slice(separatorIndex + 1);\n\tconst isNonce = lastSegment === 'nonce' || /^[0-9a-f]+$/.test(lastSegment);\n\treturn isNonce ? `${baseId.slice(0, separatorIndex)}-${suffix}-${lastSegment}` : `${baseId}-${suffix}`;\n};\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,QAAQ,GAAG,MAAW;AAC3B,IAAA,IAAI;AACH,QAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;QAC9B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,UAAU,EAAE;YAC9D;;QAGD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC;QAC3D,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAC5C,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAChC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBAC/D,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;;;;IAG3E,OAAA,EAAA,EAAM;;AAGT,CAAC;AAED,MAAM,UAAU,GAAG,MAA8B;AAChD,IAAA,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO;AACjC,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE;AACZ,QAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;AAC7C,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,SAAA,CAAC;;AAEH,IAAA,OAAO,OAAO;AACf,CAAC;AAIM,MAAM,WAAW,GAAG,MAAW;AACrC,IAAA,QAAQ,EAAE;IACV,GAAG,CAAC,KAAK,CACR;;;;;;AAMmE,mEAAA,EAAA,GAAG,CAAC,cAAc;EACrF,EACA;AACC,QAAA,QAAQ,EAAE,IAAI;AACd,KAAA,CACD;AACF;AAEO,MAAM,eAAe,GAAG,MAAW;AACzC,IAAA,IAAI,UAAU,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE;AACtC,QAAA,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE;AAClD,YAAA,GAAG,EAAE,YAAA;AACJ,gBAAA,OAAO,IAAI;aACX;AACD,SAAA,CAAC;QACF,GAAG,CAAC,KAAK,CACR;;;;;AAKF,CAAA,CACE;;AAEH;AAEI,IAAA,KAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE;AAE1E,IAAI,UAAU,EAAE,EAAE;AACjB,IAAA,KAAK,GAAG,MAAc,OAAO;AAC9B;AAIO,MAAM,cAAc,GAAG,CAAC,MAAc,KAAa,GAAG,MAAM,CAAA,CAAA,EAAI,KAAK,EAAE;MAEjE,qBAAqB,GAAG,CAAC,MAAc,EAAE,MAAc,KAAY;IAC/E,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;IAC9C,IAAI,cAAc,KAAK,EAAE;AAAE,QAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,MAAM,EAAE;IACvD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;AACpD,IAAA,MAAM,OAAO,GAAG,WAAW,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1E,OAAO,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,MAAM,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;AACvG;;;;"}
1
+ {"version":3,"file":"dev.utils-DDqySnXB.js","sources":["src/utils/dev.utils.ts"],"sourcesContent":["import { Log, getDocument, isTestMode, setColorContrastAnalysis, setExperimentalMode } from '../schema';\n\nimport { Env } from '@stencil/core';\nimport { getWindow } from '../schema';\n\nconst initMeta = (): void => {\n\ttry {\n\t\tconst document = getDocument();\n\t\tif (!document || typeof document.querySelector !== 'function') {\n\t\t\treturn; // Skip meta initialization if document is not available\n\t\t}\n\n\t\tconst meta = document.querySelector('meta[name=\"kolibri\"]');\n\t\tif (meta && meta.hasAttribute('content')) {\n\t\t\tconst content = meta.getAttribute('content');\n\t\t\tif (typeof content === 'string') {\n\t\t\t\tsetExperimentalMode(content.includes('experimental-mode=true'));\n\t\t\t\tsetColorContrastAnalysis(content.includes('color-contrast-analysis=true'));\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// Ignore meta initialization errors in test/SSR environments\n\t}\n};\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nexport { getKoliBri };\n\nexport const initKoliBri = (): void => {\n\tinitMeta();\n\tLog.debug(\n\t\t`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${Env.kolibriVersion}\n\t`,\n\t\t{\n\t\t\tforceLog: true,\n\t\t},\n\t);\n};\n\nexport const renderDevAdvice = (): void => {\n\tif (getKoliBri().adviceShown !== true) {\n\t\tObject.defineProperty(getKoliBri(), 'adviceShown', {\n\t\t\tget: function () {\n\t\t\t\treturn true;\n\t\t\t},\n\t\t});\n\t\tLog.debug(\n\t\t\t`\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n`,\n\t\t);\n\t}\n};\n\nlet nonce = (): string => Math.floor(Math.random() * 16777215).toString(16);\n\nif (isTestMode()) {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n\nexport const createUniqueId = (prefix: string): string => `${prefix}-${nonce()}`;\n\nexport const createRelatedUniqueId = (baseId: string, suffix: string): string => {\n\tconst separatorIndex = baseId.lastIndexOf('-');\n\tif (separatorIndex === -1) return `${baseId}-${suffix}`;\n\tconst lastSegment = baseId.slice(separatorIndex + 1);\n\tconst isNonce = lastSegment === 'nonce' || /^[0-9a-f]+$/.test(lastSegment);\n\treturn isNonce ? `${baseId.slice(0, separatorIndex)}-${suffix}-${lastSegment}` : `${baseId}-${suffix}`;\n};\n"],"names":[],"mappings":";;;;;;AAKA,MAAM,QAAQ,GAAG,MAAW;AAC3B,IAAA,IAAI;AACH,QAAA,MAAM,QAAQ,GAAG,WAAW,EAAE;QAC9B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,aAAa,KAAK,UAAU,EAAE;YAC9D;;QAGD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,sBAAsB,CAAC;QAC3D,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;AAC5C,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAChC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBAC/D,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;;;;IAG3E,OAAA,EAAA,EAAM;;AAGT,CAAC;AAED,MAAM,UAAU,GAAG,MAA8B;AAChD,IAAA,IAAI,OAAO,GAAG,SAAS,EAAE,CAAC,OAAO;AACjC,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE;AACZ,QAAA,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE;AAC7C,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,QAAQ,EAAE,KAAK;AACf,SAAA,CAAC;;AAEH,IAAA,OAAO,OAAO;AACf,CAAC;AAIM,MAAM,WAAW,GAAG,MAAW;AACrC,IAAA,QAAQ,EAAE;IACV,GAAG,CAAC,KAAK,CACR;;;;;;AAMmE,mEAAA,EAAA,GAAG,CAAC,cAAc;EACrF,EACA;AACC,QAAA,QAAQ,EAAE,IAAI;AACd,KAAA,CACD;AACF;AAEO,MAAM,eAAe,GAAG,MAAW;AACzC,IAAA,IAAI,UAAU,EAAE,CAAC,WAAW,KAAK,IAAI,EAAE;AACtC,QAAA,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE;AAClD,YAAA,GAAG,EAAE,YAAA;AACJ,gBAAA,OAAO,IAAI;aACX;AACD,SAAA,CAAC;QACF,GAAG,CAAC,KAAK,CACR;;;;;AAKF,CAAA,CACE;;AAEH;AAEI,IAAA,KAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE;AAE1E,IAAI,UAAU,EAAE,EAAE;AACjB,IAAA,KAAK,GAAG,MAAc,OAAO;AAC9B;AAIO,MAAM,cAAc,GAAG,CAAC,MAAc,KAAa,GAAG,MAAM,CAAA,CAAA,EAAI,KAAK,EAAE;MAEjE,qBAAqB,GAAG,CAAC,MAAc,EAAE,MAAc,KAAY;IAC/E,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;IAC9C,IAAI,cAAc,KAAK,EAAE;AAAE,QAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,MAAM,EAAE;IACvD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;AACpD,IAAA,MAAM,OAAO,GAAG,WAAW,KAAK,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1E,OAAO,OAAO,GAAG,CAAA,EAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,MAAM,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,GAAG,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;AACvG;;;;"}
@@ -2,8 +2,8 @@
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
4
  import { I as isDevMode, L as Log, q as getDocument, x as getWindow, J as koliBriA11yColorContrast, H as koliBriQuerySelector, M as koliBriQuerySelectorAll, N as koliBriQuerySelectorColors, O as KoliBriUtils, p as parseJson, P as stringifyJson, C as getExperimentalMode, Q as getColorContrastAnalysis } from './common-BqpMtheU.js';
5
- import { i as initKoliBri, r as renderDevAdvice } from './dev.utils-BGy8dbtQ.js';
6
- import './index-DAKQV03B.js';
5
+ import { i as initKoliBri, r as renderDevAdvice } from './dev.utils-DDqySnXB.js';
6
+ import './index-wY4pHWJG.js';
7
7
 
8
8
  const getKoliBri = () => {
9
9
  let kolibri = getWindow().KoliBri;
@@ -96,6 +96,6 @@ const initialize = () => {
96
96
  };
97
97
 
98
98
  export { initialize };
99
- //# sourceMappingURL=devtools-CZ8Mnmwl.js.map
99
+ //# sourceMappingURL=devtools-CjmOcVsT.js.map
100
100
 
101
- //# sourceMappingURL=devtools-CZ8Mnmwl.js.map
101
+ //# sourceMappingURL=devtools-CjmOcVsT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-CZ8Mnmwl.js","sources":["src/global/devtools.ts"],"sourcesContent":["import {\n\tgetColorContrastAnalysis,\n\tgetDocument,\n\tgetExperimentalMode,\n\tgetWindow,\n\tisDevMode,\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tLog,\n\tparseJson,\n\tstringifyJson,\n} from '../schema';\nimport { initKoliBri, renderDevAdvice } from '../utils/dev.utils';\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(getKoliBri(), name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (isDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tmetaModeLog('Development mode', isDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimentalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\t// Delay DOM manipulation to ensure document is ready\n\t\tsetTimeout(() => {\n\t\t\ttry {\n\t\t\t\tconst document = getDocument();\n\t\t\t\tconst body = document?.body;\n\n\t\t\t\t// Only proceed if we have a valid document and body\n\t\t\t\tif (document && body && typeof document.createElement === 'function') {\n\t\t\t\t\tconst div = document.createElement('svg');\n\t\t\t\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\t\t\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\t\t\t\tdiv.setAttribute('role', 'toolbar');\n\t\t\t\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\t\t\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\t\t\t\tbody.appendChild(div);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tLog.debug(['Could not initialize DevTools UI (likely in SSR/test environment):', error]);\n\t\t\t}\n\t\t}, 100);\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttry {\n\t\t\t\t\tconst document = getDocument();\n\t\t\t\t\tconst body = document?.body;\n\t\t\t\t\tif (document && body && typeof document.createElement === 'function') {\n\t\t\t\t\t\tsetInterval(() => {\n\t\t\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(document.createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t\t\t}, 10000);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tLog.debug(['Could not initialize color contrast analysis:', error]);\n\t\t\t\t}\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devtools-CjmOcVsT.js","sources":["src/global/devtools.ts"],"sourcesContent":["import {\n\tgetColorContrastAnalysis,\n\tgetDocument,\n\tgetExperimentalMode,\n\tgetWindow,\n\tisDevMode,\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tLog,\n\tparseJson,\n\tstringifyJson,\n} from '../schema';\nimport { initKoliBri, renderDevAdvice } from '../utils/dev.utils';\n\nconst getKoliBri = (): Record<string, unknown> => {\n\tlet kolibri = getWindow().KoliBri;\n\tif (kolibri === undefined) {\n\t\tkolibri = {};\n\t\tObject.defineProperty(getWindow(), 'KoliBri', {\n\t\t\tvalue: kolibri,\n\t\t\twritable: false,\n\t\t});\n\t}\n\treturn kolibri;\n};\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(getKoliBri(), name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (isDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tmetaModeLog('Development mode', isDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimentalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\t// Delay DOM manipulation to ensure document is ready\n\t\tsetTimeout(() => {\n\t\t\ttry {\n\t\t\t\tconst document = getDocument();\n\t\t\t\tconst body = document?.body;\n\n\t\t\t\t// Only proceed if we have a valid document and body\n\t\t\t\tif (document && body && typeof document.createElement === 'function') {\n\t\t\t\t\tconst div = document.createElement('svg');\n\t\t\t\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\t\t\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\t\t\t\tdiv.setAttribute('role', 'toolbar');\n\t\t\t\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\t\t\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\t\t\t\tbody.appendChild(div);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tLog.debug(['Could not initialize DevTools UI (likely in SSR/test environment):', error]);\n\t\t\t}\n\t\t}, 100);\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\ttry {\n\t\t\t\t\tconst document = getDocument();\n\t\t\t\t\tconst body = document?.body;\n\t\t\t\t\tif (document && body && typeof document.createElement === 'function') {\n\t\t\t\t\t\tsetInterval(() => {\n\t\t\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(document.createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t\t\t}, 10000);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tLog.debug(['Could not initialize color contrast analysis:', error]);\n\t\t\t\t}\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"names":[],"mappings":"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"}
@@ -2,14 +2,14 @@
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
4
  import { a as __rest } from './tslib.es6-QNbPBOk5.js';
5
- import { h } from './index-DAKQV03B.js';
5
+ import { h } from './index-wY4pHWJG.js';
6
6
  import './common-BqpMtheU.js';
7
- import { s as showExpertSlot, b as buildBadgeTextString } from './component-QCFfSS76.js';
8
- import { a as FormFieldHintFC, g as getMsgType, b as FormFieldLabelFC, i as isMsgDefinedAndInputTouched } from './api-B6fEjFVl.js';
7
+ import { s as showExpertSlot, b as buildBadgeTextString } from './component-DoCNds1d.js';
8
+ import { a as FormFieldHintFC, g as getMsgType, b as FormFieldLabelFC, i as isMsgDefinedAndInputTouched } from './api-Bhr2ic7C.js';
9
9
  import { b as bem } from './bem-registry-CX5kvaqt.js';
10
- import { a as createRelatedUniqueId } from './dev.utils-BGy8dbtQ.js';
11
- import { B as BemRootNodeFC } from './component-DhBTawyT.js';
12
- import { T as TooltipFC } from './component-CvhmYY4a.js';
10
+ import { a as createRelatedUniqueId } from './dev.utils-DDqySnXB.js';
11
+ import { B as BemRootNodeFC } from './component-D30YHxgS.js';
12
+ import { T as TooltipFC } from './component-fK2EUkFf.js';
13
13
 
14
14
  const fieldControlBem = bem.forBlock('kol-field-control');
15
15
  const isFieldControlLabelShownAsTooltip = ({ hideLabel, label, renderNoTooltip, }) => !renderNoTooltip && !showExpertSlot(label) && hideLabel === true;
@@ -26,6 +26,6 @@ const FieldControlFC = (props, children) => {
26
26
  };
27
27
 
28
28
  export { FieldControlFC as F, isFieldControlLabelShownAsTooltip as i };
29
- //# sourceMappingURL=field-control-CLnFuMmy.js.map
29
+ //# sourceMappingURL=field-control-Dkru7B-M.js.map
30
30
 
31
- //# sourceMappingURL=field-control-CLnFuMmy.js.map
31
+ //# sourceMappingURL=field-control-Dkru7B-M.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-control-CLnFuMmy.js","sources":["src/internal/functional-components/form-field/field-control.tsx"],"sourcesContent":["import { h, type FunctionalComponent as FC, type VNode } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { LabelAlignPropType, MsgPropType, Stringified, TooltipAlignPropType } from '../../../schema';\nimport { buildBadgeTextString, getMsgType, isMsgDefinedAndInputTouched, showExpertSlot } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { TooltipFC } from '../tooltip/component';\nimport { FormFieldHintFC } from './hint';\nimport { FormFieldLabelFC, type FormFieldInfoPopover, type FormFieldLabelFCProps } from './label';\n\nconst fieldControlBem = bem.forBlock('kol-field-control');\n\nexport type FieldControlFCProps = Omit<JSXBase.HTMLAttributes<HTMLDivElement>, 'id' | 'ref'> & {\n\tid: string;\n\tlabel: string;\n\thint?: string;\n\thideLabel?: boolean;\n\tlabelAlign?: LabelAlignPropType;\n\tinfoPopover?: FormFieldInfoPopover;\n\taccessKey?: string;\n\tshortKey?: string;\n\ttooltipAlign?: TooltipAlignPropType;\n\tdisabled?: boolean;\n\tmsg?: Stringified<MsgPropType>;\n\ttouched?: boolean;\n\trequired?: boolean;\n\treadOnly?: boolean;\n\trenderNoHint?: boolean;\n\trenderNoTooltip?: boolean;\n\t/** Attributes of the label, e.g. a `mousedown` handler or the access key badge. */\n\tlabelProps?: Pick<FormFieldLabelFCProps, 'onMouseDown' | 'showBadge'>;\n\t/** Receives the `__input` wrapper, the reference element of the label tooltip. */\n\trefInput?: (el?: HTMLDivElement) => void;\n\t/** Receives the floating element of the label tooltip. */\n\trefTooltip: (el?: HTMLDivElement) => void;\n};\n\n/**\n * Whether the control shows its label as a tooltip instead of a visible label: with `hideLabel`,\n * unless the tooltip is disabled or the label is given through the expert slot.\n */\nexport const isFieldControlLabelShownAsTooltip = ({\n\thideLabel,\n\tlabel,\n\trenderNoTooltip,\n}: Pick<FieldControlFCProps, 'hideLabel' | 'label' | 'renderNoTooltip'>): boolean => !renderNoTooltip && !showExpertSlot(label) && hideLabel === true;\n\n/**\n * Stateless row of a checkbox or of one radio option: the control, its label and its hint. With\n * `labelAlign: 'left'` the label comes first. The web component owns the label tooltip and connects\n * it through `refInput` and `refTooltip`.\n *\n * With the tooltip, the label stays visually hidden and leaves its ID to the tooltip. The tooltip\n * wrapper uses the class `kol-form-field__tooltip`, which the themes style.\n */\nexport const FieldControlFC: FC<FieldControlFCProps> = (props, children) => {\n\tconst {\n\t\tclass: classNames,\n\t\tid,\n\t\tlabel,\n\t\thint,\n\t\thideLabel,\n\t\tlabelAlign,\n\t\tinfoPopover,\n\t\taccessKey,\n\t\tshortKey,\n\t\ttooltipAlign,\n\t\tdisabled,\n\t\tmsg,\n\t\ttouched,\n\t\trequired,\n\t\treadOnly,\n\t\trenderNoHint,\n\t\trenderNoTooltip,\n\t\tlabelProps,\n\t\trefInput,\n\t\trefTooltip,\n\t\t...other\n\t} = props;\n\n\tconst hasExpertSlot = showExpertSlot(label);\n\tconst showTooltip = isFieldControlLabelShownAsTooltip({ hideLabel, label, renderNoTooltip });\n\tconst badgeText = buildBadgeTextString(accessKey, shortKey);\n\tconst showMsg = isMsgDefinedAndInputTouched(msg, touched);\n\n\tconst renderInput = (): VNode => (\n\t\t<div class={fieldControlBem('input')} ref={refInput}>\n\t\t\t{children}\n\t\t</div>\n\t);\n\tconst renderTooltip = (): VNode | null =>\n\t\tshowTooltip ? (\n\t\t\t<div class=\"kol-form-field__tooltip\">\n\t\t\t\t<TooltipFC badgeText={badgeText || ''} label={label} align={tooltipAlign} id={createRelatedUniqueId(id, 'label')} refFloating={refTooltip} />\n\t\t\t</div>\n\t\t) : null;\n\tconst renderLabel = (): VNode => (\n\t\t<FormFieldLabelFC\n\t\t\t{...labelProps}\n\t\t\tid={id}\n\t\t\tbaseClassName=\"kol-field-control\"\n\t\t\tclass={hideLabel ? 'kol-field-control__label--visually-hidden' : undefined}\n\t\t\tomitId={showTooltip}\n\t\t\thasExpertSlot={hasExpertSlot}\n\t\t\tlabel={label}\n\t\t\taccessKey={accessKey}\n\t\t\tshortKey={shortKey}\n\t\t\tinfoPopover={infoPopover}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-field-control\"\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: Boolean(disabled),\n\t\t\t\trequired: Boolean(required),\n\t\t\t\ttouched: Boolean(touched),\n\t\t\t\t'hide-label': Boolean(hideLabel),\n\t\t\t\t'read-only': Boolean(readOnly),\n\t\t\t\t...(showMsg ? { [getMsgType(msg) as 'default' | 'error' | 'info' | 'success' | 'warning']: true } : {}),\n\t\t\t\t'label-align-left': labelAlign === 'left',\n\t\t\t\t'label-align-right': labelAlign === 'right',\n\t\t\t}}\n\t\t\tclass={classNames}\n\t\t\t{...other}\n\t\t>\n\t\t\t{labelAlign === 'left' ? [renderLabel(), renderInput(), renderTooltip()] : [renderInput(), renderTooltip(), renderLabel()]}\n\t\t\t{!renderNoHint && <FormFieldHintFC baseClassName=\"kol-field-control\" id={id} hint={hint} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field-control-Dkru7B-M.js","sources":["src/internal/functional-components/form-field/field-control.tsx"],"sourcesContent":["import { h, type FunctionalComponent as FC, type VNode } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { LabelAlignPropType, MsgPropType, Stringified, TooltipAlignPropType } from '../../../schema';\nimport { buildBadgeTextString, getMsgType, isMsgDefinedAndInputTouched, showExpertSlot } from '../../../schema';\nimport { bem } from '../../../schema/bem-registry';\nimport { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { TooltipFC } from '../tooltip/component';\nimport { FormFieldHintFC } from './hint';\nimport { FormFieldLabelFC, type FormFieldInfoPopover, type FormFieldLabelFCProps } from './label';\n\nconst fieldControlBem = bem.forBlock('kol-field-control');\n\nexport type FieldControlFCProps = Omit<JSXBase.HTMLAttributes<HTMLDivElement>, 'id' | 'ref'> & {\n\tid: string;\n\tlabel: string;\n\thint?: string;\n\thideLabel?: boolean;\n\tlabelAlign?: LabelAlignPropType;\n\tinfoPopover?: FormFieldInfoPopover;\n\taccessKey?: string;\n\tshortKey?: string;\n\ttooltipAlign?: TooltipAlignPropType;\n\tdisabled?: boolean;\n\tmsg?: Stringified<MsgPropType>;\n\ttouched?: boolean;\n\trequired?: boolean;\n\treadOnly?: boolean;\n\trenderNoHint?: boolean;\n\trenderNoTooltip?: boolean;\n\t/** Attributes of the label, e.g. a `mousedown` handler or the access key badge. */\n\tlabelProps?: Pick<FormFieldLabelFCProps, 'onMouseDown' | 'showBadge'>;\n\t/** Receives the `__input` wrapper, the reference element of the label tooltip. */\n\trefInput?: (el?: HTMLDivElement) => void;\n\t/** Receives the floating element of the label tooltip. */\n\trefTooltip: (el?: HTMLDivElement) => void;\n};\n\n/**\n * Whether the control shows its label as a tooltip instead of a visible label: with `hideLabel`,\n * unless the tooltip is disabled or the label is given through the expert slot.\n */\nexport const isFieldControlLabelShownAsTooltip = ({\n\thideLabel,\n\tlabel,\n\trenderNoTooltip,\n}: Pick<FieldControlFCProps, 'hideLabel' | 'label' | 'renderNoTooltip'>): boolean => !renderNoTooltip && !showExpertSlot(label) && hideLabel === true;\n\n/**\n * Stateless row of a checkbox or of one radio option: the control, its label and its hint. With\n * `labelAlign: 'left'` the label comes first. The web component owns the label tooltip and connects\n * it through `refInput` and `refTooltip`.\n *\n * With the tooltip, the label stays visually hidden and leaves its ID to the tooltip. The tooltip\n * wrapper uses the class `kol-form-field__tooltip`, which the themes style.\n */\nexport const FieldControlFC: FC<FieldControlFCProps> = (props, children) => {\n\tconst {\n\t\tclass: classNames,\n\t\tid,\n\t\tlabel,\n\t\thint,\n\t\thideLabel,\n\t\tlabelAlign,\n\t\tinfoPopover,\n\t\taccessKey,\n\t\tshortKey,\n\t\ttooltipAlign,\n\t\tdisabled,\n\t\tmsg,\n\t\ttouched,\n\t\trequired,\n\t\treadOnly,\n\t\trenderNoHint,\n\t\trenderNoTooltip,\n\t\tlabelProps,\n\t\trefInput,\n\t\trefTooltip,\n\t\t...other\n\t} = props;\n\n\tconst hasExpertSlot = showExpertSlot(label);\n\tconst showTooltip = isFieldControlLabelShownAsTooltip({ hideLabel, label, renderNoTooltip });\n\tconst badgeText = buildBadgeTextString(accessKey, shortKey);\n\tconst showMsg = isMsgDefinedAndInputTouched(msg, touched);\n\n\tconst renderInput = (): VNode => (\n\t\t<div class={fieldControlBem('input')} ref={refInput}>\n\t\t\t{children}\n\t\t</div>\n\t);\n\tconst renderTooltip = (): VNode | null =>\n\t\tshowTooltip ? (\n\t\t\t<div class=\"kol-form-field__tooltip\">\n\t\t\t\t<TooltipFC badgeText={badgeText || ''} label={label} align={tooltipAlign} id={createRelatedUniqueId(id, 'label')} refFloating={refTooltip} />\n\t\t\t</div>\n\t\t) : null;\n\tconst renderLabel = (): VNode => (\n\t\t<FormFieldLabelFC\n\t\t\t{...labelProps}\n\t\t\tid={id}\n\t\t\tbaseClassName=\"kol-field-control\"\n\t\t\tclass={hideLabel ? 'kol-field-control__label--visually-hidden' : undefined}\n\t\t\tomitId={showTooltip}\n\t\t\thasExpertSlot={hasExpertSlot}\n\t\t\tlabel={label}\n\t\t\taccessKey={accessKey}\n\t\t\tshortKey={shortKey}\n\t\t\tinfoPopover={infoPopover}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-field-control\"\n\t\t\tmodifiers={{\n\t\t\t\tdisabled: Boolean(disabled),\n\t\t\t\trequired: Boolean(required),\n\t\t\t\ttouched: Boolean(touched),\n\t\t\t\t'hide-label': Boolean(hideLabel),\n\t\t\t\t'read-only': Boolean(readOnly),\n\t\t\t\t...(showMsg ? { [getMsgType(msg) as 'default' | 'error' | 'info' | 'success' | 'warning']: true } : {}),\n\t\t\t\t'label-align-left': labelAlign === 'left',\n\t\t\t\t'label-align-right': labelAlign === 'right',\n\t\t\t}}\n\t\t\tclass={classNames}\n\t\t\t{...other}\n\t\t>\n\t\t\t{labelAlign === 'left' ? [renderLabel(), renderInput(), renderTooltip()] : [renderInput(), renderTooltip(), renderLabel()]}\n\t\t\t{!renderNoHint && <FormFieldHintFC baseClassName=\"kol-field-control\" id={id} hint={hint} />}\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":[],"mappings":"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"}
@@ -2,10 +2,10 @@
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
4
  import { c as createPropDefinition, n as normalizeBoolean } from './base-web-component-3R1Dy3QK.js';
5
- import { h } from './index-DAKQV03B.js';
5
+ import { h } from './index-wY4pHWJG.js';
6
6
  import { g as getBlockBem } from './block-bem-DxQXsOt3.js';
7
- import { a as createRelatedUniqueId } from './dev.utils-BGy8dbtQ.js';
8
- import { B as BaseFormFieldWebComponent } from './api-B6fEjFVl.js';
7
+ import { a as createRelatedUniqueId } from './dev.utils-DDqySnXB.js';
8
+ import { B as BaseFormFieldWebComponent } from './api-Bhr2ic7C.js';
9
9
  import { b as bem } from './bem-registry-CX5kvaqt.js';
10
10
 
11
11
  const hasClearButtonProp = createPropDefinition('hasClearButton', true, normalizeBoolean);
@@ -153,6 +153,6 @@ const GROUP_CLASSES = {
153
153
  const ListboxGroupFC = ({ block }, children) => h("div", { class: GROUP_CLASSES[block] }, children);
154
154
 
155
155
  export { BaseListboxWebComponent as B, CustomSuggestionsOptionFC as C, ListboxGroupFC as L, CustomSuggestionsOptionsGroupFC as a, hasClearButtonProp as h };
156
- //# sourceMappingURL=group-BAOmF5Ok.js.map
156
+ //# sourceMappingURL=group-CXJiUqKv.js.map
157
157
 
158
- //# sourceMappingURL=group-BAOmF5Ok.js.map
158
+ //# sourceMappingURL=group-CXJiUqKv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-BAOmF5Ok.js","sources":["src/internal/props/has-clear-button.ts","src/internal/functional-components/form-field/custom-suggestions.tsx","src/internal/functional-components/listbox/base-web-component.tsx","src/internal/functional-components/listbox/group.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Clear button prop of `kol-combobox` and `kol-single-select`\n *\n * Description:\n * Shows a button that clears the value while the field has one.\n */\nexport type HasClearButtonProp = SimpleProp<'hasClearButton', boolean>;\nexport const hasClearButtonProp = createPropDefinition<HasClearButtonProp>('hasClearButton', true, normalizeBoolean);\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { W3CInputValue } from '../../../schema';\nimport { getBlockBem } from '../bem-root-node/block-bem';\n\nconst optionsGroupBem = getBlockBem('kol-custom-suggestions-options-group');\nconst optionBem = getBlockBem('kol-custom-suggestions-option');\n\nexport type CustomSuggestionsOptionsGroupFCProps = JSXBase.HTMLAttributes<HTMLUListElement> & {\n\t/** Hides the mouse cursor while the keyboard moves through the options. */\n\tblockSuggestionMouseOver: boolean;\n};\n\nexport type CustomSuggestionsOptionFCProps = JSXBase.HTMLAttributes<HTMLLIElement> & {\n\tdisabled: boolean;\n\t/** Unique per field, because the input references the focused option with `aria-activedescendant`. */\n\tid: string;\n\tindex: number;\n\toption: W3CInputValue;\n\tselected: boolean;\n\t/** Marked in the option text, case-insensitive. */\n\tsearchTerm?: string;\n\tref?: ((elm?: HTMLLIElement | undefined) => void) | undefined;\n};\n\n/** Listbox of the custom suggestions of `kol-combobox` and `kol-single-select`; `hidden` closes it. */\nexport const CustomSuggestionsOptionsGroupFC: FC<CustomSuggestionsOptionsGroupFCProps> = (\n\t{ blockSuggestionMouseOver, onKeyDown, style, hidden, id },\n\tchildren,\n) => (\n\t<ul\n\t\tid={id}\n\t\trole=\"listbox\"\n\t\tstyle={style}\n\t\tclass={optionsGroupBem({ 'cursor-hidden': blockSuggestionMouseOver, open: !hidden })}\n\t\thidden={hidden}\n\t\tonKeyDown={onKeyDown}\n\t>\n\t\t{children}\n\t</ul>\n);\n\nconst highlightSearchTerm = (text: string, searchTerm: string) => {\n\tif (!searchTerm?.trim()) return text;\n\n\tconst regex = new RegExp(`(${searchTerm.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n\tconst parts = text.split(regex);\n\n\treturn parts.map((part, partIndex) => (partIndex % 2 === 1 ? <mark>{part}</mark> : part));\n};\n\n/**\n * One option of the custom suggestions. It is focusable (`tabIndex=-1`), so the keyboard moves the\n * real focus into the list.\n */\nexport const CustomSuggestionsOptionFC: FC<CustomSuggestionsOptionFCProps> = ({\n\tdisabled,\n\tid,\n\tindex,\n\tref,\n\tselected,\n\tonClick,\n\tonMouseOver,\n\tonFocus,\n\tonKeyDown,\n\toption,\n\tsearchTerm,\n}) => (\n\t<li\n\t\tid={id}\n\t\tkey={`-${index}`}\n\t\tref={ref}\n\t\tdata-index={index}\n\t\ttabIndex={-1}\n\t\trole=\"option\"\n\t\taria-selected={selected ? 'true' : undefined}\n\t\taria-disabled={disabled ? 'true' : undefined}\n\t\tonClick={onClick}\n\t\tonMouseOver={onMouseOver}\n\t\tonFocus={onFocus}\n\t\tclass={optionBem({ disabled: Boolean(disabled) })}\n\t\tonKeyDown={onKeyDown}\n\t>\n\t\t<span>{highlightSearchTerm(String(option), searchTerm || '')}</span>\n\t</li>\n);\n","import { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport type { CtaRef } from '../../../utils/element-interaction';\nimport type { FormFieldBaseApi } from '../form-field/api';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\n\n/**\n * Shared orchestrator implementation of the fields with a custom listbox, `kol-combobox` and\n * `kol-single-select`: the open state, the focused option, the keyboard navigation and the clear\n * button state.\n *\n * The keyboard moves the real focus onto the options (`<li tabIndex=-1>`). Where the two fields\n * differ, the concrete element implements the hooks: how the focus moves, which options are first\n * and last, and what Enter, NumpadEnter and Space do. The concrete element keeps what Stencil has to\n * see in the component class itself (DD16), including the `@Listen` handlers, which delegate here.\n */\nexport abstract class BaseListboxWebComponent<Api extends FormFieldBaseApi> extends BaseFormFieldWebComponent<Api> {\n\t/** Declared with `@State()` by the concrete class. */\n\tpublic abstract isOpen: boolean;\n\t/** Hides the mouse cursor and ignores hovering while the keyboard moves through the options; declared with `@State()`. */\n\tpublic abstract blockSuggestionMouseOver: boolean;\n\n\tprotected abstract readonly ctaRef: CtaRef<HTMLInputElement>;\n\t/** Declared with `@State()` by the concrete class. */\n\tpublic abstract id: string;\n\n\t/** Index of the focused option, `-1` for none. */\n\tprotected focusedIndex = -1;\n\t/** Whether the clear button has the focus, so Enter and Space clear the value. */\n\tprotected clearButtonFocused = false;\n\tprotected optionRefs: HTMLLIElement[] = [];\n\n\t/** Number of the options in the listbox. */\n\tprotected abstract getOptionCount(): number;\n\n\t/** Moves the focus by `delta` options; `searchStep` is the direction to skip disabled options in. */\n\tprotected abstract moveFocus(delta: number, searchStep?: number): void;\n\tprotected abstract focusFirstOption(): void;\n\tprotected abstract focusLastOption(): void;\n\t/** Enter, NumpadEnter and Space. */\n\tprotected abstract handleConfirmKey(event: KeyboardEvent): void;\n\n\t/** ID of the option at `index`, unique per field. */\n\tprotected getOptionId(index: number): string {\n\t\treturn createRelatedUniqueId(this.id, `option-${index}`);\n\t}\n\n\t/** Value of `aria-activedescendant` on the input: the focused option of the open list. */\n\tprotected getActiveDescendant(): string | undefined {\n\t\treturn this.isOpen && this.focusedIndex >= 0 ? this.getOptionId(this.focusedIndex) : undefined;\n\t}\n\n\tprotected focusOption(index: number): void {\n\t\tthis.focusedIndex = index;\n\t\tthis.optionRefs[index]?.focus();\n\t}\n\n\t/** Moves the focus and wraps around at both ends. */\n\tprotected moveFocusWrapping(delta: number): void {\n\t\tlet index = this.focusedIndex + delta;\n\t\tconst count = this.getOptionCount();\n\t\tif (index >= count) {\n\t\t\tindex = 0;\n\t\t}\n\t\tif (index < 0) {\n\t\t\tindex = count - 1;\n\t\t}\n\t\tthis.focusOption(index);\n\t}\n\n\t/**\n\t * Moves the focus, wraps around at both ends and skips disabled options in the direction of\n\t * `searchStep`. Without an enabled option the focus stays.\n\t */\n\tprotected moveFocusSkippingDisabled(delta: number, searchStep: number, isDisabled: (index: number) => boolean): void {\n\t\tconst count = this.getOptionCount();\n\t\tlet index = this.focusedIndex + delta;\n\n\t\tfor (let iteration = 0; iteration < count; iteration++) {\n\t\t\tif (index >= count) {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\tif (index < 0) {\n\t\t\t\tindex = count - 1;\n\t\t\t}\n\t\t\tif (!isDisabled(index)) {\n\t\t\t\tthis.focusOption(index);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tindex += searchStep;\n\t\t}\n\t}\n\n\t/** Prevents the default action, sets the open state (closing focuses the input) and runs `callback`. */\n\tprotected handleListboxEvent(event: KeyboardEvent, isOpen?: boolean, callback?: () => void): void {\n\t\tevent.preventDefault();\n\t\tif (isOpen !== undefined) {\n\t\t\tthis.isOpen = isOpen;\n\t\t\tif (!isOpen) {\n\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t}\n\t\t}\n\t\tcallback?.();\n\t}\n\n\t/** Keyboard navigation of the listbox, registered by the concrete element with `@Listen('keydown')`. */\n\tprotected handleListboxKeyDown(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'Down':\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, true, () => this.moveFocus(1));\n\t\t\t\tbreak;\n\t\t\tcase 'Up':\n\t\t\tcase 'ArrowUp': {\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tconst wasOpen = this.isOpen;\n\t\t\t\tthis.handleListboxEvent(event, true, () => (wasOpen ? this.moveFocus(-1, -1) : this.focusLastOption()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Tab':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.isOpen = false;\n\t\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Esc':\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.isOpen = false;\n\t\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'Enter':\n\t\t\tcase 'NumpadEnter':\n\t\t\t\tthis.handleConfirmKey(event);\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\t// With a closed list, Home and End move the caret of the input.\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.focusFirstOption());\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'End':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.focusLastOption());\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.isOpen && this.moveFocus(-10));\n\t\t\t\tbreak;\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.isOpen && this.moveFocus(10, -1));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/** Mouse movement ends the keyboard mode of the listbox; registered with `@Listen('mousemove')`. */\n\tprotected handleListboxMouseMove(): void {\n\t\tthis.blockSuggestionMouseOver = false;\n\t}\n\n\tprotected readonly handleClearButtonFocus = (): void => {\n\t\tthis.clearButtonFocused = true;\n\t};\n\n\tprotected readonly handleClearButtonBlur = (): void => {\n\t\tthis.clearButtonFocused = false;\n\t};\n}\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\n\nconst GROUP_CLASSES = {\n\t'kol-combobox': bem.forBlock('kol-combobox')('group'),\n\t'kol-single-select': bem.forBlock('kol-single-select')('group'),\n} as const;\n\nexport type ListboxGroupFCProps = {\n\t/** Block of the listbox field the group belongs to. */\n\tblock: keyof typeof GROUP_CLASSES;\n};\n\n/** Groups the input of a listbox field with its clear button and its toggle. */\nexport const ListboxGroupFC: FC<ListboxGroupFCProps> = ({ block }, children) => <div class={GROUP_CLASSES[block]}>{children}</div>;\n"],"names":[],"mappings":";;;;;;;;;;AAWO,MAAM,kBAAkB,GAAG,oBAAoB,CAAqB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;;ACNnH,MAAM,eAAe,GAAG,WAAW,CAAC,sCAAsC,CAAC;AAC3E,MAAM,SAAS,GAAG,WAAW,CAAC,+BAA+B,CAAC;AAoBvD,MAAM,+BAA+B,GAA6C,CACxF,EAAE,wBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAC1D,QAAQ,MAER,CACC,CAAA,IAAA,EAAA,EAAA,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,SAAS,EACd,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,eAAe,CAAC,EAAE,eAAe,EAAE,wBAAwB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,EACpF,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EAAA,EAEnB,QAAQ,CACL;AAGN,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,UAAkB,KAAI;IAChE,IAAI,EAAC,UAAU,KAAV,IAAA,IAAA,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA;AAAE,QAAA,OAAO,IAAI;AAEpC,IAAA,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAA,CAAA,EAAI,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;IACxF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAE/B,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,GAAG,CAAO,CAAA,MAAA,EAAA,IAAA,EAAA,IAAI,CAAQ,GAAG,IAAI,CAAC,CAAC;AAC1F,CAAC;AAMM,MAAM,yBAAyB,GAAuC,CAAC,EAC7E,QAAQ,EACR,EAAE,EACF,KAAK,EACL,GAAG,EACH,QAAQ,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,GACV,MACA,UACC,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,EAChB,GAAG,EAAE,GAAG,gBACI,KAAK,EACjB,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,QAAQ,EACE,eAAA,EAAA,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC7B,eAAA,EAAA,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC5C,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EACjD,SAAS,EAAE,SAAS,EAAA,EAEpB,CAAA,CAAA,MAAA,EAAA,IAAA,EAAO,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAQ,CAChE;;ACrEA,MAAgB,uBAAsD,SAAQ,yBAA8B,CAAA;AAAlH,IAAA,WAAA,GAAA;;AAWW,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE;AAEjB,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK;AAC1B,QAAA,IAAU,CAAA,UAAA,GAAoB,EAAE;AA0IvB,QAAA,IAAsB,CAAA,sBAAA,GAAG,MAAW;AACtD,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC/B,SAAC;AAEkB,QAAA,IAAqB,CAAA,qBAAA,GAAG,MAAW;AACrD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAChC,SAAC;;AAnIS,IAAA,WAAW,CAAC,KAAa,EAAA;QAClC,OAAO,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA,CAAC;;IAI/C,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,SAAS;;AAGrF,IAAA,WAAW,CAAC,KAAa,EAAA;;AAClC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE;;AAItB,IAAA,iBAAiB,CAAC,KAAa,EAAA;AACxC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK;AACrC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AACnC,QAAA,IAAI,KAAK,IAAI,KAAK,EAAE;YACnB,KAAK,GAAG,CAAC;;AAEV,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACd,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC;;AAElB,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;;AAOd,IAAA,yBAAyB,CAAC,KAAa,EAAE,UAAkB,EAAE,UAAsC,EAAA;AAC5G,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;AACnC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK;AAErC,QAAA,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE;AACvD,YAAA,IAAI,KAAK,IAAI,KAAK,EAAE;gBACnB,KAAK,GAAG,CAAC;;AAEV,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACd,gBAAA,KAAK,GAAG,KAAK,GAAG,CAAC;;AAElB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;gBACvB;;YAED,KAAK,IAAI,UAAU;;;AAKX,IAAA,kBAAkB,CAAC,KAAoB,EAAE,MAAgB,EAAE,QAAqB,EAAA;;QACzF,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;YACpB,IAAI,CAAC,MAAM,EAAE;gBACZ,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;;AAGzB,QAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,MAAA,GAAA,QAAQ,EAAI;;AAIH,IAAA,oBAAoB,CAAC,KAAoB,EAAA;;AAClD,QAAA,QAAQ,KAAK,CAAC,GAAG;AAChB,YAAA,KAAK,MAAM;AACX,YAAA,KAAK,WAAW;AACf,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAC7D;AACD,YAAA,KAAK,IAAI;YACT,KAAK,SAAS,EAAE;AACf,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;AAC3B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;gBACvG;;AAED,YAAA,KAAK,KAAK;AACT,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;oBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;gBAExB;AACD,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,QAAQ;AACZ,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;oBAChB,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,MAAM,GAAG,KAAK;oBACnB,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE;;gBAExB;AACD,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,OAAO;AACZ,YAAA,KAAK,aAAa;AACjB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;gBAC5B;AACD,YAAA,KAAK,MAAM;AAEV,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;;gBAEzE;AACD,YAAA,KAAK,KAAK;AACT,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AAChB,oBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,oBAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;;gBAExE;AACD,YAAA,KAAK,QAAQ;AACZ,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;gBACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnF;AACD,YAAA,KAAK,UAAU;AACd,gBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;gBACpC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACtF;;;IAKO,sBAAsB,GAAA;AAC/B,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;;AAUtC;;ACzKD,MAAM,aAAa,GAAG;IACrB,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;IACrD,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;CACtD;AAQH,MAAM,cAAc,GAA4B,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,KAAK,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAA,EAAG,QAAQ;;;;"}
1
+ {"version":3,"file":"group-CXJiUqKv.js","sources":["src/internal/props/has-clear-button.ts","src/internal/functional-components/form-field/custom-suggestions.tsx","src/internal/functional-components/listbox/base-web-component.tsx","src/internal/functional-components/listbox/group.tsx"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeBoolean } from './helpers/normalizers';\n\n/**\n * Clear button prop of `kol-combobox` and `kol-single-select`\n *\n * Description:\n * Shows a button that clears the value while the field has one.\n */\nexport type HasClearButtonProp = SimpleProp<'hasClearButton', boolean>;\nexport const hasClearButtonProp = createPropDefinition<HasClearButtonProp>('hasClearButton', true, normalizeBoolean);\n","import { h, type FunctionalComponent as FC } from '@stencil/core';\nimport type { JSXBase } from '@stencil/core/internal';\nimport type { W3CInputValue } from '../../../schema';\nimport { getBlockBem } from '../bem-root-node/block-bem';\n\nconst optionsGroupBem = getBlockBem('kol-custom-suggestions-options-group');\nconst optionBem = getBlockBem('kol-custom-suggestions-option');\n\nexport type CustomSuggestionsOptionsGroupFCProps = JSXBase.HTMLAttributes<HTMLUListElement> & {\n\t/** Hides the mouse cursor while the keyboard moves through the options. */\n\tblockSuggestionMouseOver: boolean;\n};\n\nexport type CustomSuggestionsOptionFCProps = JSXBase.HTMLAttributes<HTMLLIElement> & {\n\tdisabled: boolean;\n\t/** Unique per field, because the input references the focused option with `aria-activedescendant`. */\n\tid: string;\n\tindex: number;\n\toption: W3CInputValue;\n\tselected: boolean;\n\t/** Marked in the option text, case-insensitive. */\n\tsearchTerm?: string;\n\tref?: ((elm?: HTMLLIElement | undefined) => void) | undefined;\n};\n\n/** Listbox of the custom suggestions of `kol-combobox` and `kol-single-select`; `hidden` closes it. */\nexport const CustomSuggestionsOptionsGroupFC: FC<CustomSuggestionsOptionsGroupFCProps> = (\n\t{ blockSuggestionMouseOver, onKeyDown, style, hidden, id },\n\tchildren,\n) => (\n\t<ul\n\t\tid={id}\n\t\trole=\"listbox\"\n\t\tstyle={style}\n\t\tclass={optionsGroupBem({ 'cursor-hidden': blockSuggestionMouseOver, open: !hidden })}\n\t\thidden={hidden}\n\t\tonKeyDown={onKeyDown}\n\t>\n\t\t{children}\n\t</ul>\n);\n\nconst highlightSearchTerm = (text: string, searchTerm: string) => {\n\tif (!searchTerm?.trim()) return text;\n\n\tconst regex = new RegExp(`(${searchTerm.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n\tconst parts = text.split(regex);\n\n\treturn parts.map((part, partIndex) => (partIndex % 2 === 1 ? <mark>{part}</mark> : part));\n};\n\n/**\n * One option of the custom suggestions. It is focusable (`tabIndex=-1`), so the keyboard moves the\n * real focus into the list.\n */\nexport const CustomSuggestionsOptionFC: FC<CustomSuggestionsOptionFCProps> = ({\n\tdisabled,\n\tid,\n\tindex,\n\tref,\n\tselected,\n\tonClick,\n\tonMouseOver,\n\tonFocus,\n\tonKeyDown,\n\toption,\n\tsearchTerm,\n}) => (\n\t<li\n\t\tid={id}\n\t\tkey={`-${index}`}\n\t\tref={ref}\n\t\tdata-index={index}\n\t\ttabIndex={-1}\n\t\trole=\"option\"\n\t\taria-selected={selected ? 'true' : undefined}\n\t\taria-disabled={disabled ? 'true' : undefined}\n\t\tonClick={onClick}\n\t\tonMouseOver={onMouseOver}\n\t\tonFocus={onFocus}\n\t\tclass={optionBem({ disabled: Boolean(disabled) })}\n\t\tonKeyDown={onKeyDown}\n\t>\n\t\t<span>{highlightSearchTerm(String(option), searchTerm || '')}</span>\n\t</li>\n);\n","import { createRelatedUniqueId } from '../../../utils/dev.utils';\nimport type { CtaRef } from '../../../utils/element-interaction';\nimport type { FormFieldBaseApi } from '../form-field/api';\nimport { BaseFormFieldWebComponent } from '../form-field/base-web-component';\n\n/**\n * Shared orchestrator implementation of the fields with a custom listbox, `kol-combobox` and\n * `kol-single-select`: the open state, the focused option, the keyboard navigation and the clear\n * button state.\n *\n * The keyboard moves the real focus onto the options (`<li tabIndex=-1>`). Where the two fields\n * differ, the concrete element implements the hooks: how the focus moves, which options are first\n * and last, and what Enter, NumpadEnter and Space do. The concrete element keeps what Stencil has to\n * see in the component class itself (DD16), including the `@Listen` handlers, which delegate here.\n */\nexport abstract class BaseListboxWebComponent<Api extends FormFieldBaseApi> extends BaseFormFieldWebComponent<Api> {\n\t/** Declared with `@State()` by the concrete class. */\n\tpublic abstract isOpen: boolean;\n\t/** Hides the mouse cursor and ignores hovering while the keyboard moves through the options; declared with `@State()`. */\n\tpublic abstract blockSuggestionMouseOver: boolean;\n\n\tprotected abstract readonly ctaRef: CtaRef<HTMLInputElement>;\n\t/** Declared with `@State()` by the concrete class. */\n\tpublic abstract id: string;\n\n\t/** Index of the focused option, `-1` for none. */\n\tprotected focusedIndex = -1;\n\t/** Whether the clear button has the focus, so Enter and Space clear the value. */\n\tprotected clearButtonFocused = false;\n\tprotected optionRefs: HTMLLIElement[] = [];\n\n\t/** Number of the options in the listbox. */\n\tprotected abstract getOptionCount(): number;\n\n\t/** Moves the focus by `delta` options; `searchStep` is the direction to skip disabled options in. */\n\tprotected abstract moveFocus(delta: number, searchStep?: number): void;\n\tprotected abstract focusFirstOption(): void;\n\tprotected abstract focusLastOption(): void;\n\t/** Enter, NumpadEnter and Space. */\n\tprotected abstract handleConfirmKey(event: KeyboardEvent): void;\n\n\t/** ID of the option at `index`, unique per field. */\n\tprotected getOptionId(index: number): string {\n\t\treturn createRelatedUniqueId(this.id, `option-${index}`);\n\t}\n\n\t/** Value of `aria-activedescendant` on the input: the focused option of the open list. */\n\tprotected getActiveDescendant(): string | undefined {\n\t\treturn this.isOpen && this.focusedIndex >= 0 ? this.getOptionId(this.focusedIndex) : undefined;\n\t}\n\n\tprotected focusOption(index: number): void {\n\t\tthis.focusedIndex = index;\n\t\tthis.optionRefs[index]?.focus();\n\t}\n\n\t/** Moves the focus and wraps around at both ends. */\n\tprotected moveFocusWrapping(delta: number): void {\n\t\tlet index = this.focusedIndex + delta;\n\t\tconst count = this.getOptionCount();\n\t\tif (index >= count) {\n\t\t\tindex = 0;\n\t\t}\n\t\tif (index < 0) {\n\t\t\tindex = count - 1;\n\t\t}\n\t\tthis.focusOption(index);\n\t}\n\n\t/**\n\t * Moves the focus, wraps around at both ends and skips disabled options in the direction of\n\t * `searchStep`. Without an enabled option the focus stays.\n\t */\n\tprotected moveFocusSkippingDisabled(delta: number, searchStep: number, isDisabled: (index: number) => boolean): void {\n\t\tconst count = this.getOptionCount();\n\t\tlet index = this.focusedIndex + delta;\n\n\t\tfor (let iteration = 0; iteration < count; iteration++) {\n\t\t\tif (index >= count) {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\tif (index < 0) {\n\t\t\t\tindex = count - 1;\n\t\t\t}\n\t\t\tif (!isDisabled(index)) {\n\t\t\t\tthis.focusOption(index);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tindex += searchStep;\n\t\t}\n\t}\n\n\t/** Prevents the default action, sets the open state (closing focuses the input) and runs `callback`. */\n\tprotected handleListboxEvent(event: KeyboardEvent, isOpen?: boolean, callback?: () => void): void {\n\t\tevent.preventDefault();\n\t\tif (isOpen !== undefined) {\n\t\t\tthis.isOpen = isOpen;\n\t\t\tif (!isOpen) {\n\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t}\n\t\t}\n\t\tcallback?.();\n\t}\n\n\t/** Keyboard navigation of the listbox, registered by the concrete element with `@Listen('keydown')`. */\n\tprotected handleListboxKeyDown(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'Down':\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, true, () => this.moveFocus(1));\n\t\t\t\tbreak;\n\t\t\tcase 'Up':\n\t\t\tcase 'ArrowUp': {\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tconst wasOpen = this.isOpen;\n\t\t\t\tthis.handleListboxEvent(event, true, () => (wasOpen ? this.moveFocus(-1, -1) : this.focusLastOption()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Tab':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.isOpen = false;\n\t\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'Esc':\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tthis.isOpen = false;\n\t\t\t\t\tthis.ctaRef.el?.focus();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'Enter':\n\t\t\tcase 'NumpadEnter':\n\t\t\t\tthis.handleConfirmKey(event);\n\t\t\t\tbreak;\n\t\t\tcase 'Home':\n\t\t\t\t// With a closed list, Home and End move the caret of the input.\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.focusFirstOption());\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'End':\n\t\t\t\tif (this.isOpen) {\n\t\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.focusLastOption());\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'PageUp':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.isOpen && this.moveFocus(-10));\n\t\t\t\tbreak;\n\t\t\tcase 'PageDown':\n\t\t\t\tthis.blockSuggestionMouseOver = true;\n\t\t\t\tthis.handleListboxEvent(event, undefined, () => this.isOpen && this.moveFocus(10, -1));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/** Mouse movement ends the keyboard mode of the listbox; registered with `@Listen('mousemove')`. */\n\tprotected handleListboxMouseMove(): void {\n\t\tthis.blockSuggestionMouseOver = false;\n\t}\n\n\tprotected readonly handleClearButtonFocus = (): void => {\n\t\tthis.clearButtonFocused = true;\n\t};\n\n\tprotected readonly handleClearButtonBlur = (): void => {\n\t\tthis.clearButtonFocused = false;\n\t};\n}\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { bem } from '../../../schema/bem-registry';\n\nconst GROUP_CLASSES = {\n\t'kol-combobox': bem.forBlock('kol-combobox')('group'),\n\t'kol-single-select': bem.forBlock('kol-single-select')('group'),\n} as const;\n\nexport type ListboxGroupFCProps = {\n\t/** Block of the listbox field the group belongs to. */\n\tblock: keyof typeof GROUP_CLASSES;\n};\n\n/** Groups the input of a listbox field with its clear button and its toggle. */\nexport const ListboxGroupFC: FC<ListboxGroupFCProps> = ({ block }, children) => <div class={GROUP_CLASSES[block]}>{children}</div>;\n"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import './common-BqpMtheU.js';
5
5
 
6
6
  const NAMESPACE = 'kolibri';
7
7
  const BUILD = /* kolibri */ { hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
8
- const Env = /* kolibri */ {"kolibriVersion":"4.5.0-rc.8"};
8
+ const Env = /* kolibri */ {"kolibriVersion":"4.5.0"};
9
9
 
10
10
  /*
11
11
  Stencil Client Platform v4.38.3 | MIT Licensed | https://stenciljs.com
@@ -2543,6 +2543,6 @@ var hostListenerOpts = (flags) => supportsListenerOptions ? {
2543
2543
  var setNonce = (nonce) => plt.$nonce$ = nonce;
2544
2544
 
2545
2545
  export { Env as E, Fragment as F, Host as H, setMode as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2546
- //# sourceMappingURL=index-DAKQV03B.js.map
2546
+ //# sourceMappingURL=index-wY4pHWJG.js.map
2547
2547
 
2548
- //# sourceMappingURL=index-DAKQV03B.js.map
2548
+ //# sourceMappingURL=index-wY4pHWJG.js.map