@public-ui/components 4.5.0-rc.7 → 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 (499) 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-d30Feghg.js → Heading-CFe7VL6f.js} +3 -3
  8. package/dist/cjs/{Heading-d30Feghg.js.map → Heading-CFe7VL6f.js.map} +1 -1
  9. package/dist/cjs/{api-C8ZkIyx7.js → api-kNqVTMqf.js} +8 -8
  10. package/dist/cjs/{api-C8ZkIyx7.js.map → api-kNqVTMqf.js.map} +1 -1
  11. package/dist/cjs/{api-CRSjJs8P.js → api-n8IopicV.js} +12 -12
  12. package/dist/cjs/{api-CRSjJs8P.js.map → api-n8IopicV.js.map} +1 -1
  13. package/dist/cjs/{app-globals-B6wB2cXk.js → app-globals-KA8S4Kl9.js} +4 -4
  14. package/dist/cjs/{app-globals-B6wB2cXk.js.map → app-globals-KA8S4Kl9.js.map} +1 -1
  15. package/dist/cjs/{base-LmwA5h1k.js → base-B07RMt0-.js} +5 -5
  16. package/dist/cjs/{base-LmwA5h1k.js.map → base-B07RMt0-.js.map} +1 -1
  17. package/dist/cjs/{base-C3MDHUog.js → base-Bw44v5Il.js} +4 -4
  18. package/dist/cjs/{base-C3MDHUog.js.map → base-Bw44v5Il.js.map} +1 -1
  19. package/dist/cjs/{base-DgUZAiNc.js → base-DGx5qxja.js} +16 -16
  20. package/dist/cjs/{base-DgUZAiNc.js.map → base-DGx5qxja.js.map} +1 -1
  21. package/dist/cjs/{base-CyQnTxi6.js → base-Og0FJHrO.js} +4 -4
  22. package/dist/cjs/{base-CyQnTxi6.js.map → base-Og0FJHrO.js.map} +1 -1
  23. package/dist/cjs/{base-web-component-C-CwpVZw.js → base-web-component-9l9kVbBw.js} +5 -5
  24. package/dist/cjs/{base-web-component-C-CwpVZw.js.map → base-web-component-9l9kVbBw.js.map} +1 -1
  25. package/dist/cjs/{base-web-component-d2k3Mc9P.js → base-web-component-MA3Hmf00.js} +7 -7
  26. package/dist/cjs/{base-web-component-d2k3Mc9P.js.map → base-web-component-MA3Hmf00.js.map} +1 -1
  27. package/dist/cjs/{behavior-C-BdOoSN.js → behavior-CddJDVDz.js} +3 -3
  28. package/dist/cjs/{behavior-C-BdOoSN.js.map → behavior-CddJDVDz.js.map} +1 -1
  29. package/dist/cjs/{component-D2kI8uwF.js → component-8M23HGR8.js} +5 -5
  30. package/dist/cjs/{component-D2kI8uwF.js.map → component-8M23HGR8.js.map} +1 -1
  31. package/dist/cjs/{component-BIz_gAas.js → component-B1t_MP4V.js} +7 -7
  32. package/dist/cjs/{component-BIz_gAas.js.map → component-B1t_MP4V.js.map} +1 -1
  33. package/dist/cjs/{component-B1kzY-J5.js → component-B92xMW4N.js} +4 -4
  34. package/dist/cjs/{component-B1kzY-J5.js.map → component-B92xMW4N.js.map} +1 -1
  35. package/dist/cjs/{component-BairlFHi.js → component-BGdViN9u.js} +3 -3
  36. package/dist/cjs/{component-BairlFHi.js.map → component-BGdViN9u.js.map} +1 -1
  37. package/dist/cjs/{component-B1zMXSkZ.js → component-BZKcc9iM.js} +5 -5
  38. package/dist/cjs/{component-B1zMXSkZ.js.map → component-BZKcc9iM.js.map} +1 -1
  39. package/dist/cjs/{component-CmyhDJ0r.js → component-C8WDkeRK.js} +3 -3
  40. package/dist/cjs/{component-CmyhDJ0r.js.map → component-C8WDkeRK.js.map} +1 -1
  41. package/dist/cjs/{component-BHDnSaCH.js → component-CESKZB76.js} +3 -3
  42. package/dist/cjs/{component-BHDnSaCH.js.map → component-CESKZB76.js.map} +1 -1
  43. package/dist/cjs/{component-D33lYKYT.js → component-CQRRF1jV.js} +3 -3
  44. package/dist/cjs/{component-D33lYKYT.js.map → component-CQRRF1jV.js.map} +1 -1
  45. package/dist/cjs/{component-DaAVlb5U.js → component-D7IXFVHR.js} +4 -4
  46. package/dist/cjs/{component-DaAVlb5U.js.map → component-D7IXFVHR.js.map} +1 -1
  47. package/dist/cjs/{component-DITtC2F9.js → component-Dzx6SM5K.js} +7 -7
  48. package/dist/cjs/{component-DITtC2F9.js.map → component-Dzx6SM5K.js.map} +1 -1
  49. package/dist/cjs/{component-_jdRFw0Y.js → component-K9JCKLMC.js} +4 -4
  50. package/dist/cjs/{component-_jdRFw0Y.js.map → component-K9JCKLMC.js.map} +1 -1
  51. package/dist/cjs/{component-KT0MKnL5.js → component-inHq7qad.js} +5 -5
  52. package/dist/cjs/{component-KT0MKnL5.js.map → component-inHq7qad.js.map} +1 -1
  53. package/dist/cjs/{dev.utils-B1bWgxrQ.js → dev.utils-CIsKrkDZ.js} +3 -3
  54. package/dist/cjs/{dev.utils-B1bWgxrQ.js.map → dev.utils-CIsKrkDZ.js.map} +1 -1
  55. package/dist/cjs/{devtools-DlcIXbRm.js → devtools-DEHRYx1J.js} +4 -4
  56. package/dist/cjs/{devtools-DlcIXbRm.js.map → devtools-DEHRYx1J.js.map} +1 -1
  57. package/dist/cjs/{field-control-D0lryu2-.js → field-control-gMhh35Xz.js} +8 -8
  58. package/dist/cjs/{field-control-D0lryu2-.js.map → field-control-gMhh35Xz.js.map} +1 -1
  59. package/dist/cjs/{group-DIGY9sM6.js → group-eUk7QHkH.js} +5 -5
  60. package/dist/cjs/{group-DIGY9sM6.js.map → group-eUk7QHkH.js.map} +1 -1
  61. package/dist/cjs/{index-qcrGfEY6.js → index-CjTDipy9.js} +3 -3
  62. package/dist/cjs/index-CjTDipy9.js.map +1 -0
  63. package/dist/cjs/{input-BjNjOSo5.js → input-D1hDtOel.js} +5 -5
  64. package/dist/cjs/{input-BjNjOSo5.js.map → input-D1hDtOel.js.map} +1 -1
  65. package/dist/cjs/{input-container-DghKiuUH.js → input-container-C9wW0ZFj.js} +7 -7
  66. package/dist/cjs/{input-container-DghKiuUH.js.map → input-container-C9wW0ZFj.js.map} +1 -1
  67. package/dist/cjs/{item-BMB6SaVm.js → item-C6TgTi4l.js} +4 -4
  68. package/dist/cjs/{item-BMB6SaVm.js.map → item-C6TgTi4l.js.map} +1 -1
  69. package/dist/cjs/{item-BKz8BDg2.js → item-D2TI8Iec.js} +4 -4
  70. package/dist/cjs/{item-BKz8BDg2.js.map → item-D2TI8Iec.js.map} +1 -1
  71. package/dist/cjs/{item-DdnTb-BP.js → item-DoAJ6Wmk.js} +3 -3
  72. package/dist/cjs/{item-DdnTb-BP.js.map → item-DoAJ6Wmk.js.map} +1 -1
  73. package/dist/cjs/{item-CFojolE7.js → item-se0KVw5y.js} +8 -8
  74. package/dist/cjs/{item-CFojolE7.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-pAyNSZMT.js → resolve-props-JqnN_2MF.js} +3 -3
  132. package/dist/cjs/{resolve-props-pAyNSZMT.js.map → resolve-props-JqnN_2MF.js.map} +1 -1
  133. package/dist/cjs/{scroll-lock-CNwobwd2.js → scroll-lock-CxkP-oj1.js} +3 -3
  134. package/dist/cjs/{scroll-lock-CNwobwd2.js.map → scroll-lock-CxkP-oj1.js.map} +1 -1
  135. package/dist/cjs/{suggestions-D4TMMZSv.js → suggestions-BDfdREI5.js} +4 -4
  136. package/dist/cjs/{suggestions-D4TMMZSv.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-mIB8gvse.js → toggle-handler-Bm0e15f-.js} +5 -5
  139. package/dist/cjs/{toggle-handler-mIB8gvse.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-NHB1reiQ.js → Heading-DYEtnAIe.js} +3 -3
  223. package/dist/{kolibri/Heading-NHB1reiQ.js.map → esm/Heading-DYEtnAIe.js.map} +1 -1
  224. package/dist/esm/{api-BAEPnyL7.js → api-Bhr2ic7C.js} +12 -12
  225. package/dist/{kolibri/api-BAEPnyL7.js.map → esm/api-Bhr2ic7C.js.map} +1 -1
  226. package/dist/esm/{api-CagcODCX.js → api-DwdE0qU0.js} +8 -8
  227. package/dist/esm/{api-CagcODCX.js.map → api-DwdE0qU0.js.map} +1 -1
  228. package/dist/esm/{app-globals-CwlOH1sO.js → app-globals-DlrwRj26.js} +4 -4
  229. package/dist/esm/{app-globals-CwlOH1sO.js.map → app-globals-DlrwRj26.js.map} +1 -1
  230. package/dist/esm/{base-BFU17cMm.js → base-BwsdAVVP.js} +16 -16
  231. package/dist/{kolibri/base-BFU17cMm.js.map → esm/base-BwsdAVVP.js.map} +1 -1
  232. package/dist/esm/{base-BpKxLJ6r.js → base-CQQKxfxv.js} +4 -4
  233. package/dist/{kolibri/base-BpKxLJ6r.js.map → esm/base-CQQKxfxv.js.map} +1 -1
  234. package/dist/esm/{base-Cm_c8klt.js → base-CdUYL1Y_.js} +5 -5
  235. package/dist/esm/{base-Cm_c8klt.js.map → base-CdUYL1Y_.js.map} +1 -1
  236. package/dist/esm/{base-DitGpYOV.js → base-D5a-Ls-4.js} +4 -4
  237. package/dist/{kolibri/base-DitGpYOV.js.map → esm/base-D5a-Ls-4.js.map} +1 -1
  238. package/dist/esm/{base-web-component-BFCVvyYG.js → base-web-component-6IoFcVM9.js} +7 -7
  239. package/dist/{kolibri/base-web-component-BFCVvyYG.js.map → esm/base-web-component-6IoFcVM9.js.map} +1 -1
  240. package/dist/esm/{base-web-component-6J5sCsnZ.js → base-web-component-CyCs0EpM.js} +5 -5
  241. package/dist/esm/{base-web-component-6J5sCsnZ.js.map → base-web-component-CyCs0EpM.js.map} +1 -1
  242. package/dist/esm/{behavior-CH_2MMuX.js → behavior-COQhqcG7.js} +3 -3
  243. package/dist/{kolibri/behavior-CH_2MMuX.js.map → esm/behavior-COQhqcG7.js.map} +1 -1
  244. package/dist/esm/{component-Dg6TIbeY.js → component-BOFlST8N.js} +5 -5
  245. package/dist/{kolibri/component-Dg6TIbeY.js.map → esm/component-BOFlST8N.js.map} +1 -1
  246. package/dist/esm/{component-BpOMe842.js → component-C4dhT4Ba.js} +3 -3
  247. package/dist/{kolibri/component-BpOMe842.js.map → esm/component-C4dhT4Ba.js.map} +1 -1
  248. package/dist/esm/{component-Ba4gjLBG.js → component-C9cJK7Cf.js} +5 -5
  249. package/dist/esm/{component-Ba4gjLBG.js.map → component-C9cJK7Cf.js.map} +1 -1
  250. package/dist/esm/{component-Do9rjnte.js → component-CBkrKKXd.js} +7 -7
  251. package/dist/esm/{component-Do9rjnte.js.map → component-CBkrKKXd.js.map} +1 -1
  252. package/dist/esm/{component-C5BFsKau.js → component-CHz6TLzY.js} +5 -5
  253. package/dist/esm/{component-C5BFsKau.js.map → component-CHz6TLzY.js.map} +1 -1
  254. package/dist/esm/{component-CBpYh2q-.js → component-CODtL04S.js} +7 -7
  255. package/dist/esm/{component-CBpYh2q-.js.map → component-CODtL04S.js.map} +1 -1
  256. package/dist/esm/{component-C3sXiwbS.js → component-D30YHxgS.js} +3 -3
  257. package/dist/esm/{component-C3sXiwbS.js.map → component-D30YHxgS.js.map} +1 -1
  258. package/dist/esm/{component-DZbJLUju.js → component-DXmRJdLc.js} +4 -4
  259. package/dist/{kolibri/component-DZbJLUju.js.map → esm/component-DXmRJdLc.js.map} +1 -1
  260. package/dist/esm/{component-C_d54ujF.js → component-DoCNds1d.js} +4 -4
  261. package/dist/{kolibri/component-C_d54ujF.js.map → esm/component-DoCNds1d.js.map} +1 -1
  262. package/dist/esm/{component-CvCfEqSE.js → component-fK2EUkFf.js} +4 -4
  263. package/dist/esm/{component-CvCfEqSE.js.map → component-fK2EUkFf.js.map} +1 -1
  264. package/dist/esm/{component-BF8FPuIW.js → component-kDR4_xf0.js} +3 -3
  265. package/dist/esm/{component-BF8FPuIW.js.map → component-kDR4_xf0.js.map} +1 -1
  266. package/dist/esm/{component-DzoBgfR4.js → component-kxFmDVse.js} +3 -3
  267. package/dist/esm/{component-DzoBgfR4.js.map → component-kxFmDVse.js.map} +1 -1
  268. package/dist/esm/{dev.utils-CJMVCYWh.js → dev.utils-DDqySnXB.js} +3 -3
  269. package/dist/{kolibri/dev.utils-CJMVCYWh.js.map → esm/dev.utils-DDqySnXB.js.map} +1 -1
  270. package/dist/esm/{devtools-rRHULXVr.js → devtools-CjmOcVsT.js} +4 -4
  271. package/dist/{kolibri/devtools-rRHULXVr.js.map → esm/devtools-CjmOcVsT.js.map} +1 -1
  272. package/dist/esm/{field-control-DXxCMXvx.js → field-control-Dkru7B-M.js} +8 -8
  273. package/dist/{kolibri/field-control-DXxCMXvx.js.map → esm/field-control-Dkru7B-M.js.map} +1 -1
  274. package/dist/esm/{group-CI4sSgiu.js → group-CXJiUqKv.js} +5 -5
  275. package/dist/esm/{group-CI4sSgiu.js.map → group-CXJiUqKv.js.map} +1 -1
  276. package/dist/esm/{index-DQdQBwMc.js → index-wY4pHWJG.js} +3 -3
  277. package/dist/esm/index-wY4pHWJG.js.map +1 -0
  278. package/dist/esm/{input-CDtJZ2sy.js → input-C_ZwHs-7.js} +5 -5
  279. package/dist/esm/{input-CDtJZ2sy.js.map → input-C_ZwHs-7.js.map} +1 -1
  280. package/dist/esm/{input-container-DROwwh7_.js → input-container-CBl9xcK-.js} +7 -7
  281. package/dist/{kolibri/input-container-DROwwh7_.js.map → esm/input-container-CBl9xcK-.js.map} +1 -1
  282. package/dist/esm/{item-C6p5wW-z.js → item-BacIXvMT.js} +4 -4
  283. package/dist/esm/{item-C6p5wW-z.js.map → item-BacIXvMT.js.map} +1 -1
  284. package/dist/esm/{item-CHP-bw8Q.js → item-DewHrd_f.js} +4 -4
  285. package/dist/{kolibri/item-CHP-bw8Q.js.map → esm/item-DewHrd_f.js.map} +1 -1
  286. package/dist/esm/{item-Cbi_ZY6o.js → item-lEB6GAqe.js} +3 -3
  287. package/dist/esm/{item-Cbi_ZY6o.js.map → item-lEB6GAqe.js.map} +1 -1
  288. package/dist/esm/{item-ZjrNIhfW.js → item-nGiqyOvt.js} +8 -8
  289. package/dist/{kolibri/item-ZjrNIhfW.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-CjBvvXId.js → resolve-props-DrFDeILa.js} +3 -3
  347. package/dist/esm/{resolve-props-CjBvvXId.js.map → resolve-props-DrFDeILa.js.map} +1 -1
  348. package/dist/esm/{scroll-lock-6SV-XFXR.js → scroll-lock-BotxOlMX.js} +3 -3
  349. package/dist/{kolibri/scroll-lock-6SV-XFXR.js.map → esm/scroll-lock-BotxOlMX.js.map} +1 -1
  350. package/dist/esm/{suggestions-BYMmW1aV.js → suggestions-CX5S2xAI.js} +4 -4
  351. package/dist/esm/{suggestions-BYMmW1aV.js.map → suggestions-CX5S2xAI.js.map} +1 -1
  352. package/dist/esm/test-component.entry.js +1 -1
  353. package/dist/esm/{toggle-handler-D-yalcds.js → toggle-handler-VctiltrE.js} +5 -5
  354. package/dist/esm/{toggle-handler-D-yalcds.js.map → toggle-handler-VctiltrE.js.map} +1 -1
  355. package/dist/kolibri/{Heading-NHB1reiQ.js → Heading-DYEtnAIe.js} +2 -2
  356. package/dist/{esm/Heading-NHB1reiQ.js.map → kolibri/Heading-DYEtnAIe.js.map} +1 -1
  357. package/dist/kolibri/{api-BAEPnyL7.js → api-Bhr2ic7C.js} +2 -2
  358. package/dist/{esm/api-BAEPnyL7.js.map → kolibri/api-Bhr2ic7C.js.map} +1 -1
  359. package/dist/kolibri/api-DwdE0qU0.js +5 -0
  360. package/dist/kolibri/{api-CagcODCX.js.map → api-DwdE0qU0.js.map} +1 -1
  361. package/dist/kolibri/app-globals-DlrwRj26.js +5 -0
  362. package/dist/kolibri/{app-globals-CwlOH1sO.js.map → app-globals-DlrwRj26.js.map} +1 -1
  363. package/dist/kolibri/{base-BFU17cMm.js → base-BwsdAVVP.js} +2 -2
  364. package/dist/{esm/base-BFU17cMm.js.map → kolibri/base-BwsdAVVP.js.map} +1 -1
  365. package/dist/kolibri/{base-BpKxLJ6r.js → base-CQQKxfxv.js} +2 -2
  366. package/dist/{esm/base-BpKxLJ6r.js.map → kolibri/base-CQQKxfxv.js.map} +1 -1
  367. package/dist/kolibri/{base-Cm_c8klt.js → base-CdUYL1Y_.js} +2 -2
  368. package/dist/kolibri/{base-Cm_c8klt.js.map → base-CdUYL1Y_.js.map} +1 -1
  369. package/dist/kolibri/{base-DitGpYOV.js → base-D5a-Ls-4.js} +2 -2
  370. package/dist/{esm/base-DitGpYOV.js.map → kolibri/base-D5a-Ls-4.js.map} +1 -1
  371. package/dist/kolibri/{base-web-component-BFCVvyYG.js → base-web-component-6IoFcVM9.js} +2 -2
  372. package/dist/{esm/base-web-component-BFCVvyYG.js.map → kolibri/base-web-component-6IoFcVM9.js.map} +1 -1
  373. package/dist/kolibri/{base-web-component-6J5sCsnZ.js → base-web-component-CyCs0EpM.js} +2 -2
  374. package/dist/kolibri/{base-web-component-6J5sCsnZ.js.map → base-web-component-CyCs0EpM.js.map} +1 -1
  375. package/dist/kolibri/{behavior-CH_2MMuX.js → behavior-COQhqcG7.js} +2 -2
  376. package/dist/{esm/behavior-CH_2MMuX.js.map → kolibri/behavior-COQhqcG7.js.map} +1 -1
  377. package/dist/kolibri/{component-Dg6TIbeY.js → component-BOFlST8N.js} +2 -2
  378. package/dist/{esm/component-Dg6TIbeY.js.map → kolibri/component-BOFlST8N.js.map} +1 -1
  379. package/dist/kolibri/{component-BpOMe842.js → component-C4dhT4Ba.js} +2 -2
  380. package/dist/{esm/component-BpOMe842.js.map → kolibri/component-C4dhT4Ba.js.map} +1 -1
  381. package/dist/kolibri/component-C9cJK7Cf.js +5 -0
  382. package/dist/kolibri/{component-Ba4gjLBG.js.map → component-C9cJK7Cf.js.map} +1 -1
  383. package/dist/kolibri/{component-Do9rjnte.js → component-CBkrKKXd.js} +2 -2
  384. package/dist/kolibri/{component-Do9rjnte.js.map → component-CBkrKKXd.js.map} +1 -1
  385. package/dist/kolibri/component-CHz6TLzY.js +5 -0
  386. package/dist/kolibri/{component-C5BFsKau.js.map → component-CHz6TLzY.js.map} +1 -1
  387. package/dist/kolibri/component-CODtL04S.js +5 -0
  388. package/dist/kolibri/{component-CBpYh2q-.js.map → component-CODtL04S.js.map} +1 -1
  389. package/dist/kolibri/{component-C3sXiwbS.js → component-D30YHxgS.js} +2 -2
  390. package/dist/kolibri/{component-C3sXiwbS.js.map → component-D30YHxgS.js.map} +1 -1
  391. package/dist/kolibri/{component-DZbJLUju.js → component-DXmRJdLc.js} +2 -2
  392. package/dist/{esm/component-DZbJLUju.js.map → kolibri/component-DXmRJdLc.js.map} +1 -1
  393. package/dist/kolibri/{component-C_d54ujF.js → component-DoCNds1d.js} +2 -2
  394. package/dist/{esm/component-C_d54ujF.js.map → kolibri/component-DoCNds1d.js.map} +1 -1
  395. package/dist/kolibri/{component-CvCfEqSE.js → component-fK2EUkFf.js} +2 -2
  396. package/dist/kolibri/{component-CvCfEqSE.js.map → component-fK2EUkFf.js.map} +1 -1
  397. package/dist/kolibri/{component-BF8FPuIW.js → component-kDR4_xf0.js} +2 -2
  398. package/dist/kolibri/{component-BF8FPuIW.js.map → component-kDR4_xf0.js.map} +1 -1
  399. package/dist/kolibri/component-kxFmDVse.js +5 -0
  400. package/dist/kolibri/{component-DzoBgfR4.js.map → component-kxFmDVse.js.map} +1 -1
  401. package/dist/kolibri/{dev.utils-CJMVCYWh.js → dev.utils-DDqySnXB.js} +2 -2
  402. package/dist/{esm/dev.utils-CJMVCYWh.js.map → kolibri/dev.utils-DDqySnXB.js.map} +1 -1
  403. package/dist/kolibri/{devtools-rRHULXVr.js → devtools-CjmOcVsT.js} +2 -2
  404. package/dist/{esm/devtools-rRHULXVr.js.map → kolibri/devtools-CjmOcVsT.js.map} +1 -1
  405. package/dist/kolibri/field-control-Dkru7B-M.js +5 -0
  406. package/dist/{esm/field-control-DXxCMXvx.js.map → kolibri/field-control-Dkru7B-M.js.map} +1 -1
  407. package/dist/kolibri/{group-CI4sSgiu.js → group-CXJiUqKv.js} +2 -2
  408. package/dist/kolibri/{group-CI4sSgiu.js.map → group-CXJiUqKv.js.map} +1 -1
  409. package/dist/kolibri/{index-DQdQBwMc.js → index-wY4pHWJG.js} +2 -2
  410. package/dist/kolibri/index-wY4pHWJG.js.map +1 -0
  411. package/dist/kolibri/{input-CDtJZ2sy.js → input-C_ZwHs-7.js} +2 -2
  412. package/dist/kolibri/{input-CDtJZ2sy.js.map → input-C_ZwHs-7.js.map} +1 -1
  413. package/dist/kolibri/{input-container-DROwwh7_.js → input-container-CBl9xcK-.js} +2 -2
  414. package/dist/{esm/input-container-DROwwh7_.js.map → kolibri/input-container-CBl9xcK-.js.map} +1 -1
  415. package/dist/kolibri/item-BacIXvMT.js +5 -0
  416. package/dist/kolibri/{item-C6p5wW-z.js.map → item-BacIXvMT.js.map} +1 -1
  417. package/dist/kolibri/item-DewHrd_f.js +5 -0
  418. package/dist/{esm/item-CHP-bw8Q.js.map → kolibri/item-DewHrd_f.js.map} +1 -1
  419. package/dist/kolibri/{item-Cbi_ZY6o.js → item-lEB6GAqe.js} +2 -2
  420. package/dist/kolibri/{item-Cbi_ZY6o.js.map → item-lEB6GAqe.js.map} +1 -1
  421. package/dist/kolibri/{item-ZjrNIhfW.js → item-nGiqyOvt.js} +2 -2
  422. package/dist/{esm/item-ZjrNIhfW.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-CjBvvXId.js → resolve-props-DrFDeILa.js} +2 -2
  479. package/dist/kolibri/{resolve-props-CjBvvXId.js.map → resolve-props-DrFDeILa.js.map} +1 -1
  480. package/dist/kolibri/{scroll-lock-6SV-XFXR.js → scroll-lock-BotxOlMX.js} +2 -2
  481. package/dist/{esm/scroll-lock-6SV-XFXR.js.map → kolibri/scroll-lock-BotxOlMX.js.map} +1 -1
  482. package/dist/kolibri/{suggestions-BYMmW1aV.js → suggestions-CX5S2xAI.js} +2 -2
  483. package/dist/kolibri/{suggestions-BYMmW1aV.js.map → suggestions-CX5S2xAI.js.map} +1 -1
  484. package/dist/kolibri/test-component.entry.js +1 -1
  485. package/dist/kolibri/{toggle-handler-D-yalcds.js → toggle-handler-VctiltrE.js} +2 -2
  486. package/dist/kolibri/{toggle-handler-D-yalcds.js.map → toggle-handler-VctiltrE.js.map} +1 -1
  487. package/package.json +2 -2
  488. package/dist/cjs/index-qcrGfEY6.js.map +0 -1
  489. package/dist/esm/index-DQdQBwMc.js.map +0 -1
  490. package/dist/kolibri/api-CagcODCX.js +0 -5
  491. package/dist/kolibri/app-globals-CwlOH1sO.js +0 -5
  492. package/dist/kolibri/component-Ba4gjLBG.js +0 -5
  493. package/dist/kolibri/component-C5BFsKau.js +0 -5
  494. package/dist/kolibri/component-CBpYh2q-.js +0 -5
  495. package/dist/kolibri/component-DzoBgfR4.js +0 -5
  496. package/dist/kolibri/field-control-DXxCMXvx.js +0 -5
  497. package/dist/kolibri/index-DQdQBwMc.js.map +0 -1
  498. package/dist/kolibri/item-C6p5wW-z.js +0 -5
  499. package/dist/kolibri/item-CHP-bw8Q.js +0 -5
@@ -7,9 +7,9 @@ var align = require('./align-B87Zdyn2.js');
7
7
  var behavior = require('./behavior-DMhnAIvG.js');
8
8
  require('./common-B9-LvLNa.js');
9
9
  require('./base-web-component-DK5Y-vq5.js');
10
- var index = require('./index-qcrGfEY6.js');
11
- var component$1 = require('./component-BHDnSaCH.js');
12
- var component = require('./component-BIz_gAas.js');
10
+ var index = require('./index-CjTDipy9.js');
11
+ var component$1 = require('./component-CESKZB76.js');
12
+ var component = require('./component-B1t_MP4V.js');
13
13
  var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
14
14
  var clsx = require('./clsx-Bm_HQUnh.js');
15
15
 
@@ -125,6 +125,6 @@ const PopoverButtonFC = (props, children) => {
125
125
  exports.PopoverBehavior = PopoverBehavior;
126
126
  exports.PopoverButtonFC = PopoverButtonFC;
127
127
  exports.popoverAlignProp = popoverAlignProp;
128
- //# sourceMappingURL=component-KT0MKnL5.js.map
128
+ //# sourceMappingURL=component-inHq7qad.js.map
129
129
 
130
- //# sourceMappingURL=component-KT0MKnL5.js.map
130
+ //# sourceMappingURL=component-inHq7qad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-KT0MKnL5.js","sources":["src/internal/props/popover-align.ts","src/internal/functional-components/popover/api.tsx","src/internal/functional-components/popover/behavior.ts","src/internal/functional-components/popover/component.tsx","src/internal/functional-components/popover-button/component.tsx"],"sourcesContent":["import type { AlignPropType } from '../../schema/props/align-options';\nimport { createAlignPropDefinition } from './helpers/align';\nimport type { SimpleProp } from './helpers/factory';\n\n/**\n * Popover align prop.\n *\n * Same valid values as {@link alignProp} ('top' | 'right' | 'bottom' | 'left'); the default is\n * `'bottom'`, the documented default of `_popoverAlign`.\n */\nexport type PopoverAlignProp = SimpleProp<'popoverAlign', AlignPropType>;\n\nexport const popoverAlignProp = createAlignPropDefinition<PopoverAlignProp>('popoverAlign', 'bottom');\n","import { alignProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const popoverPropsConfig = {\n\toptional: [alignProp],\n} as const satisfies PropsConfigShape;\n\nexport type PopoverApi = ApiFromConfig<typeof popoverPropsConfig>;\n","import { autoUpdate } from '@floating-ui/dom';\nimport { alignFloatingElements } from '../../../utils/align-floating-elements';\nimport { alignProp } from '../../props';\nimport { BaseBehavior } from '../base-behavior';\nimport type { BehaviorInterface, ResolvedInputProps, StateAccess } from '../generic-types';\nimport type { PopoverApi } from './api';\nimport { popoverPropsConfig } from './api';\n\n/**\n * Shows and hides a native popover (`popover=\"auto\"`) and keeps it aligned to its trigger element\n * while it is open.\n *\n * The open state is not kept here: the native popover reports it through its `toggle` event, which\n * the composing web component listens to, so a light dismiss (Escape, click outside) is reflected\n * as well.\n */\nexport class PopoverBehavior extends BaseBehavior<PopoverApi> implements BehaviorInterface<PopoverApi> {\n\tprivate show = false;\n\tprivate popoverElement?: HTMLDivElement;\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate triggerElement?: HTMLElement;\n\tprivate cleanupAutoUpdate?: () => void;\n\n\tpublic constructor(stateAccess: StateAccess<PopoverApi>) {\n\t\tsuper(stateAccess, popoverPropsConfig);\n\t}\n\n\tpublic componentWillLoad(props: ResolvedInputProps<PopoverApi>): void {\n\t\tthis.watchAlign(props.align);\n\t}\n\n\tpublic watchAlign(value?: string): void {\n\t\talignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('align', v);\n\t\t});\n\t}\n\n\t/**\n\t * Opens or closes the popover. A popover element that is not connected yet is toggled in the next\n\t * animation frame, after the first render has attached it.\n\t */\n\tpublic setShow(value: boolean): void {\n\t\tthis.show = value;\n\t\tif (!this.popoverElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.popoverElement.isConnected) {\n\t\t\tthis.toggleVisibility();\n\t\t} else {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.toggleVisibility();\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic setPopoverElementRef = (element?: HTMLDivElement): void => {\n\t\tthis.popoverElement = element;\n\t\tthis.arrowElement = element?.querySelector('.kol-popover__arrow') as HTMLDivElement | undefined;\n\t};\n\n\tpublic setTriggerElement = (element?: HTMLElement): void => {\n\t\tthis.triggerElement = element;\n\t};\n\n\tpublic destroy(): void {\n\t\tthis.cleanupAutoUpdate?.();\n\t\tthis.cleanupAutoUpdate = undefined;\n\t\tthis.popoverElement = undefined;\n\t\tthis.arrowElement = undefined;\n\t\tthis.triggerElement = undefined;\n\t}\n\n\tprivate toggleVisibility(): void {\n\t\tif (!this.popoverElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst isOpen = this.popoverElement.matches(':popover-open');\n\t\tif (this.show) {\n\t\t\tif (!isOpen) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.popoverElement.showPopover();\n\t\t\t\t\tthis.setupAutoUpdate();\n\t\t\t\t\tvoid this.alignPopover();\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore DOMException if already open\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isOpen) {\n\t\t\ttry {\n\t\t\t\tthis.popoverElement.hidePopover();\n\t\t\t\tthis.cleanupAutoUpdate?.();\n\t\t\t\tthis.cleanupAutoUpdate = undefined;\n\t\t\t} catch {\n\t\t\t\t// Ignore DOMException if already closed\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate alignPopover = async (): Promise<void> => {\n\t\tif (!this.popoverElement || !this.triggerElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait alignFloatingElements({\n\t\t\talign: this.getRenderProp('align'),\n\t\t\treferenceElement: this.triggerElement,\n\t\t\tarrowElement: this.arrowElement,\n\t\t\tfloatingElement: this.popoverElement,\n\t\t});\n\t};\n\n\tprivate setupAutoUpdate = (): void => {\n\t\tif (!this.popoverElement || !this.triggerElement || this.cleanupAutoUpdate) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.cleanupAutoUpdate = autoUpdate(this.triggerElement, this.popoverElement, () => {\n\t\t\tvoid this.alignPopover();\n\t\t});\n\t};\n}\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from '../../../utils/clsx';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { PopoverApi } from './api';\n\nexport type PopoverFCProps = FunctionalComponentProps<PopoverApi> &\n\tJSXBase.HTMLAttributes<HTMLDivElement> & {\n\t\tpopoverRef?: (el?: HTMLDivElement) => void;\n\t\tarrowRef?: (el?: HTMLDivElement) => void;\n\t};\n\n/**\n * The popover content is the given children; without children, the default slot distributes the\n * light DOM of the surrounding web component.\n */\nexport const PopoverFC: FC<PopoverFCProps> = (props, children) => {\n\tconst { align = 'bottom', popoverRef, arrowRef, class: classNames, ...rest } = props;\n\n\treturn (\n\t\t<div {...rest} class={clsx('kol-popover', classNames)} ref={popoverRef} popover=\"auto\">\n\t\t\t<div class={clsx('kol-popover__arrow', `kol-popover__arrow--${align}`)} ref={arrowRef} />\n\t\t\t{children.length > 0 ? children : <slot />}\n\t\t</div>\n\t);\n};\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { ButtonFC } from '../button/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { PopoverFC } from '../popover/component';\nimport type { PopoverButtonApi } from './api';\n\nexport type PopoverButtonFCProps = FunctionalComponentProps<PopoverButtonApi> & {\n\t/** Ref of the `.kol-popover-button` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Renders the popover toggle button and the popover as siblings inside a single BEM root.\n *\n * The root must stay an **ancestor** of the button: base and theme styles size the embedded\n * button and style the popover via descendant selectors (`.kol-popover-button--inline\n * .kol-button …`), so the classes cannot merge onto the `kol-button` node itself.\n *\n * The children become the popover content. Without children, the popover's default slot\n * distributes the light DOM of the surrounding web component.\n */\nexport const PopoverButtonFC: FC<PopoverButtonFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaHasPopup,\n\t\tariaSelected,\n\t\tcustomClass,\n\t\tdisabled,\n\t\thandleBlur,\n\t\thandleClick,\n\t\thandleFocus,\n\t\thandleMouseDown,\n\t\thideLabel,\n\t\ticons,\n\t\tid,\n\t\tinline,\n\t\tlabel,\n\t\tname,\n\t\ton,\n\t\tpopoverAlign,\n\t\tpopoverOpen,\n\t\tpopoverId,\n\t\tref,\n\t\trefButton,\n\t\trefPopover,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttooltipAlign,\n\t\ttype,\n\t\tvariant,\n\t} = props;\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-popover-button\"\n\t\t\tclass={props.class}\n\t\t\tref={ref}\n\t\t\tmodifiers={{\n\t\t\t\topen: popoverOpen,\n\t\t\t\tinline: inline === true,\n\t\t\t}}\n\t\t>\n\t\t\t<ButtonFC\n\t\t\t\taccessKey={accessKey}\n\t\t\t\tariaControls={popoverId}\n\t\t\t\tariaDescription={ariaDescription}\n\t\t\t\tariaDescriptionId={ariaDescriptionId}\n\t\t\t\tariaExpanded={popoverOpen ? 'true' : 'false'}\n\t\t\t\tariaHasPopup={ariaHasPopup}\n\t\t\t\tariaSelected={ariaSelected}\n\t\t\t\tcustomClass={customClass}\n\t\t\t\tdisabled={disabled}\n\t\t\t\thandleBlur={handleBlur}\n\t\t\t\thandleClick={handleClick}\n\t\t\t\thandleFocus={handleFocus}\n\t\t\t\thandleMouseDown={handleMouseDown}\n\t\t\t\thideLabel={hideLabel}\n\t\t\t\ticons={icons}\n\t\t\t\tid={id}\n\t\t\t\tinline={inline}\n\t\t\t\tlabel={label}\n\t\t\t\tname={name}\n\t\t\t\ton={on}\n\t\t\t\trefButton={refButton}\n\t\t\t\trefTooltip={refTooltip}\n\t\t\t\trole={role}\n\t\t\t\tshortKey={shortKey}\n\t\t\t\ttabIndex={tabIndex}\n\t\t\t\ttooltipAlign={tooltipAlign}\n\t\t\t\ttype={type}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t\t<PopoverFC align={popoverAlign} class=\"kol-popover-button__popover\" id={popoverId} popoverRef={refPopover}>\n\t\t\t\t{children}\n\t\t\t</PopoverFC>\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":["createAlignPropDefinition","alignProp","BaseBehavior","alignFloatingElements","autoUpdate","h","clsx","BemRootNodeFC","ButtonFC"],"mappings":"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"}
1
+ {"version":3,"file":"component-inHq7qad.js","sources":["src/internal/props/popover-align.ts","src/internal/functional-components/popover/api.tsx","src/internal/functional-components/popover/behavior.ts","src/internal/functional-components/popover/component.tsx","src/internal/functional-components/popover-button/component.tsx"],"sourcesContent":["import type { AlignPropType } from '../../schema/props/align-options';\nimport { createAlignPropDefinition } from './helpers/align';\nimport type { SimpleProp } from './helpers/factory';\n\n/**\n * Popover align prop.\n *\n * Same valid values as {@link alignProp} ('top' | 'right' | 'bottom' | 'left'); the default is\n * `'bottom'`, the documented default of `_popoverAlign`.\n */\nexport type PopoverAlignProp = SimpleProp<'popoverAlign', AlignPropType>;\n\nexport const popoverAlignProp = createAlignPropDefinition<PopoverAlignProp>('popoverAlign', 'bottom');\n","import { alignProp } from '../../props';\nimport type { ApiFromConfig, PropsConfigShape } from '../generic-types';\n\nexport const popoverPropsConfig = {\n\toptional: [alignProp],\n} as const satisfies PropsConfigShape;\n\nexport type PopoverApi = ApiFromConfig<typeof popoverPropsConfig>;\n","import { autoUpdate } from '@floating-ui/dom';\nimport { alignFloatingElements } from '../../../utils/align-floating-elements';\nimport { alignProp } from '../../props';\nimport { BaseBehavior } from '../base-behavior';\nimport type { BehaviorInterface, ResolvedInputProps, StateAccess } from '../generic-types';\nimport type { PopoverApi } from './api';\nimport { popoverPropsConfig } from './api';\n\n/**\n * Shows and hides a native popover (`popover=\"auto\"`) and keeps it aligned to its trigger element\n * while it is open.\n *\n * The open state is not kept here: the native popover reports it through its `toggle` event, which\n * the composing web component listens to, so a light dismiss (Escape, click outside) is reflected\n * as well.\n */\nexport class PopoverBehavior extends BaseBehavior<PopoverApi> implements BehaviorInterface<PopoverApi> {\n\tprivate show = false;\n\tprivate popoverElement?: HTMLDivElement;\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate triggerElement?: HTMLElement;\n\tprivate cleanupAutoUpdate?: () => void;\n\n\tpublic constructor(stateAccess: StateAccess<PopoverApi>) {\n\t\tsuper(stateAccess, popoverPropsConfig);\n\t}\n\n\tpublic componentWillLoad(props: ResolvedInputProps<PopoverApi>): void {\n\t\tthis.watchAlign(props.align);\n\t}\n\n\tpublic watchAlign(value?: string): void {\n\t\talignProp.apply(value, (v) => {\n\t\t\tthis.setRenderProp('align', v);\n\t\t});\n\t}\n\n\t/**\n\t * Opens or closes the popover. A popover element that is not connected yet is toggled in the next\n\t * animation frame, after the first render has attached it.\n\t */\n\tpublic setShow(value: boolean): void {\n\t\tthis.show = value;\n\t\tif (!this.popoverElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.popoverElement.isConnected) {\n\t\t\tthis.toggleVisibility();\n\t\t} else {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.toggleVisibility();\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic setPopoverElementRef = (element?: HTMLDivElement): void => {\n\t\tthis.popoverElement = element;\n\t\tthis.arrowElement = element?.querySelector('.kol-popover__arrow') as HTMLDivElement | undefined;\n\t};\n\n\tpublic setTriggerElement = (element?: HTMLElement): void => {\n\t\tthis.triggerElement = element;\n\t};\n\n\tpublic destroy(): void {\n\t\tthis.cleanupAutoUpdate?.();\n\t\tthis.cleanupAutoUpdate = undefined;\n\t\tthis.popoverElement = undefined;\n\t\tthis.arrowElement = undefined;\n\t\tthis.triggerElement = undefined;\n\t}\n\n\tprivate toggleVisibility(): void {\n\t\tif (!this.popoverElement) {\n\t\t\treturn;\n\t\t}\n\t\tconst isOpen = this.popoverElement.matches(':popover-open');\n\t\tif (this.show) {\n\t\t\tif (!isOpen) {\n\t\t\t\ttry {\n\t\t\t\t\tthis.popoverElement.showPopover();\n\t\t\t\t\tthis.setupAutoUpdate();\n\t\t\t\t\tvoid this.alignPopover();\n\t\t\t\t} catch {\n\t\t\t\t\t// Ignore DOMException if already open\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (isOpen) {\n\t\t\ttry {\n\t\t\t\tthis.popoverElement.hidePopover();\n\t\t\t\tthis.cleanupAutoUpdate?.();\n\t\t\t\tthis.cleanupAutoUpdate = undefined;\n\t\t\t} catch {\n\t\t\t\t// Ignore DOMException if already closed\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate alignPopover = async (): Promise<void> => {\n\t\tif (!this.popoverElement || !this.triggerElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait alignFloatingElements({\n\t\t\talign: this.getRenderProp('align'),\n\t\t\treferenceElement: this.triggerElement,\n\t\t\tarrowElement: this.arrowElement,\n\t\t\tfloatingElement: this.popoverElement,\n\t\t});\n\t};\n\n\tprivate setupAutoUpdate = (): void => {\n\t\tif (!this.popoverElement || !this.triggerElement || this.cleanupAutoUpdate) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.cleanupAutoUpdate = autoUpdate(this.triggerElement, this.popoverElement, () => {\n\t\t\tvoid this.alignPopover();\n\t\t});\n\t};\n}\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport type { JSXBase } from '@stencil/core/internal';\nimport clsx from '../../../utils/clsx';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport type { PopoverApi } from './api';\n\nexport type PopoverFCProps = FunctionalComponentProps<PopoverApi> &\n\tJSXBase.HTMLAttributes<HTMLDivElement> & {\n\t\tpopoverRef?: (el?: HTMLDivElement) => void;\n\t\tarrowRef?: (el?: HTMLDivElement) => void;\n\t};\n\n/**\n * The popover content is the given children; without children, the default slot distributes the\n * light DOM of the surrounding web component.\n */\nexport const PopoverFC: FC<PopoverFCProps> = (props, children) => {\n\tconst { align = 'bottom', popoverRef, arrowRef, class: classNames, ...rest } = props;\n\n\treturn (\n\t\t<div {...rest} class={clsx('kol-popover', classNames)} ref={popoverRef} popover=\"auto\">\n\t\t\t<div class={clsx('kol-popover__arrow', `kol-popover__arrow--${align}`)} ref={arrowRef} />\n\t\t\t{children.length > 0 ? children : <slot />}\n\t\t</div>\n\t);\n};\n","import type { FunctionalComponent as FC } from '@stencil/core';\nimport { h } from '@stencil/core';\n\nimport { BemRootNodeFC } from '../bem-root-node/component';\nimport { ButtonFC } from '../button/component';\nimport type { FunctionalComponentProps } from '../generic-types';\nimport { PopoverFC } from '../popover/component';\nimport type { PopoverButtonApi } from './api';\n\nexport type PopoverButtonFCProps = FunctionalComponentProps<PopoverButtonApi> & {\n\t/** Ref of the `.kol-popover-button` root. */\n\tref?: (element?: HTMLElement) => void;\n};\n\n/**\n * Renders the popover toggle button and the popover as siblings inside a single BEM root.\n *\n * The root must stay an **ancestor** of the button: base and theme styles size the embedded\n * button and style the popover via descendant selectors (`.kol-popover-button--inline\n * .kol-button …`), so the classes cannot merge onto the `kol-button` node itself.\n *\n * The children become the popover content. Without children, the popover's default slot\n * distributes the light DOM of the surrounding web component.\n */\nexport const PopoverButtonFC: FC<PopoverButtonFCProps> = (props, children) => {\n\tconst {\n\t\taccessKey,\n\t\tariaDescription,\n\t\tariaDescriptionId,\n\t\tariaHasPopup,\n\t\tariaSelected,\n\t\tcustomClass,\n\t\tdisabled,\n\t\thandleBlur,\n\t\thandleClick,\n\t\thandleFocus,\n\t\thandleMouseDown,\n\t\thideLabel,\n\t\ticons,\n\t\tid,\n\t\tinline,\n\t\tlabel,\n\t\tname,\n\t\ton,\n\t\tpopoverAlign,\n\t\tpopoverOpen,\n\t\tpopoverId,\n\t\tref,\n\t\trefButton,\n\t\trefPopover,\n\t\trefTooltip,\n\t\trole,\n\t\tshortKey,\n\t\ttabIndex,\n\t\ttooltipAlign,\n\t\ttype,\n\t\tvariant,\n\t} = props;\n\n\treturn (\n\t\t<BemRootNodeFC\n\t\t\tblock=\"kol-popover-button\"\n\t\t\tclass={props.class}\n\t\t\tref={ref}\n\t\t\tmodifiers={{\n\t\t\t\topen: popoverOpen,\n\t\t\t\tinline: inline === true,\n\t\t\t}}\n\t\t>\n\t\t\t<ButtonFC\n\t\t\t\taccessKey={accessKey}\n\t\t\t\tariaControls={popoverId}\n\t\t\t\tariaDescription={ariaDescription}\n\t\t\t\tariaDescriptionId={ariaDescriptionId}\n\t\t\t\tariaExpanded={popoverOpen ? 'true' : 'false'}\n\t\t\t\tariaHasPopup={ariaHasPopup}\n\t\t\t\tariaSelected={ariaSelected}\n\t\t\t\tcustomClass={customClass}\n\t\t\t\tdisabled={disabled}\n\t\t\t\thandleBlur={handleBlur}\n\t\t\t\thandleClick={handleClick}\n\t\t\t\thandleFocus={handleFocus}\n\t\t\t\thandleMouseDown={handleMouseDown}\n\t\t\t\thideLabel={hideLabel}\n\t\t\t\ticons={icons}\n\t\t\t\tid={id}\n\t\t\t\tinline={inline}\n\t\t\t\tlabel={label}\n\t\t\t\tname={name}\n\t\t\t\ton={on}\n\t\t\t\trefButton={refButton}\n\t\t\t\trefTooltip={refTooltip}\n\t\t\t\trole={role}\n\t\t\t\tshortKey={shortKey}\n\t\t\t\ttabIndex={tabIndex}\n\t\t\t\ttooltipAlign={tooltipAlign}\n\t\t\t\ttype={type}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t\t<PopoverFC align={popoverAlign} class=\"kol-popover-button__popover\" id={popoverId} popoverRef={refPopover}>\n\t\t\t\t{children}\n\t\t\t</PopoverFC>\n\t\t</BemRootNodeFC>\n\t);\n};\n"],"names":["createAlignPropDefinition","alignProp","BaseBehavior","alignFloatingElements","autoUpdate","h","clsx","BemRootNodeFC","ButtonFC"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var common = require('./common-B9-LvLNa.js');
7
- var index = require('./index-qcrGfEY6.js');
7
+ var index = require('./index-CjTDipy9.js');
8
8
 
9
9
  const initMeta = () => {
10
10
  try {
@@ -81,6 +81,6 @@ exports.createRelatedUniqueId = createRelatedUniqueId;
81
81
  exports.createUniqueId = createUniqueId;
82
82
  exports.initKoliBri = initKoliBri;
83
83
  exports.renderDevAdvice = renderDevAdvice;
84
- //# sourceMappingURL=dev.utils-B1bWgxrQ.js.map
84
+ //# sourceMappingURL=dev.utils-CIsKrkDZ.js.map
85
85
 
86
- //# sourceMappingURL=dev.utils-B1bWgxrQ.js.map
86
+ //# sourceMappingURL=dev.utils-CIsKrkDZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.utils-B1bWgxrQ.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":["getDocument","setExperimentalMode","setColorContrastAnalysis","getWindow","Log","Env","nonce","isTestMode"],"mappings":";;;;;;;;AAKA,MAAM,QAAQ,GAAG,MAAW;AAC3B,IAAA,IAAI;AACH,QAAA,MAAM,QAAQ,GAAGA,kBAAW,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;gBAChCC,0BAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBAC/DC,+BAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;;;;IAG3E,OAAA,EAAA,EAAM;;AAGT,CAAC;AAED,MAAM,UAAU,GAAG,MAA8B;AAChD,IAAA,IAAI,OAAO,GAAGC,gBAAS,EAAE,CAAC,OAAO;AACjC,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE;AACZ,QAAA,MAAM,CAAC,cAAc,CAACA,gBAAS,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;IACVC,UAAG,CAAC,KAAK,CACR;;;;;;AAMmE,mEAAA,EAAAC,SAAG,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;QACFD,UAAG,CAAC,KAAK,CACR;;;;;AAKF,CAAA,CACE;;AAEH;AAEIE,aAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE;AAE1E,IAAIC,iBAAU,EAAE,EAAE;AACjB,IAAAD,aAAK,GAAG,MAAc,OAAO;AAC9B;AAIO,MAAM,cAAc,GAAG,CAAC,MAAc,KAAa,GAAG,MAAM,CAAA,CAAA,EAAIA,aAAK,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-CIsKrkDZ.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":["getDocument","setExperimentalMode","setColorContrastAnalysis","getWindow","Log","Env","nonce","isTestMode"],"mappings":";;;;;;;;AAKA,MAAM,QAAQ,GAAG,MAAW;AAC3B,IAAA,IAAI;AACH,QAAA,MAAM,QAAQ,GAAGA,kBAAW,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;gBAChCC,0BAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;gBAC/DC,+BAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;;;;IAG3E,OAAA,EAAA,EAAM;;AAGT,CAAC;AAED,MAAM,UAAU,GAAG,MAA8B;AAChD,IAAA,IAAI,OAAO,GAAGC,gBAAS,EAAE,CAAC,OAAO;AACjC,IAAA,IAAI,OAAO,KAAK,SAAS,EAAE;QAC1B,OAAO,GAAG,EAAE;AACZ,QAAA,MAAM,CAAC,cAAc,CAACA,gBAAS,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;IACVC,UAAG,CAAC,KAAK,CACR;;;;;;AAMmE,mEAAA,EAAAC,SAAG,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;QACFD,UAAG,CAAC,KAAK,CACR;;;;;AAKF,CAAA,CACE;;AAEH;AAEIE,aAAK,GAAG,MAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE;AAE1E,IAAIC,iBAAU,EAAE,EAAE;AACjB,IAAAD,aAAK,GAAG,MAAc,OAAO;AAC9B;AAIO,MAAM,cAAc,GAAG,CAAC,MAAc,KAAa,GAAG,MAAM,CAAA,CAAA,EAAIA,aAAK,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;;;;;;;"}
@@ -4,8 +4,8 @@
4
4
  'use strict';
5
5
 
6
6
  var common = require('./common-B9-LvLNa.js');
7
- var dev_utils = require('./dev.utils-B1bWgxrQ.js');
8
- require('./index-qcrGfEY6.js');
7
+ var dev_utils = require('./dev.utils-CIsKrkDZ.js');
8
+ require('./index-CjTDipy9.js');
9
9
 
10
10
  const getKoliBri = () => {
11
11
  let kolibri = common.getWindow().KoliBri;
@@ -98,6 +98,6 @@ const initialize = () => {
98
98
  };
99
99
 
100
100
  exports.initialize = initialize;
101
- //# sourceMappingURL=devtools-DlcIXbRm.js.map
101
+ //# sourceMappingURL=devtools-DEHRYx1J.js.map
102
102
 
103
- //# sourceMappingURL=devtools-DlcIXbRm.js.map
103
+ //# sourceMappingURL=devtools-DEHRYx1J.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"devtools-DlcIXbRm.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":["getWindow","Log","initKoliBri","isDevMode","renderDevAdvice","koliBriA11yColorContrast","koliBriQuerySelector","koliBriQuerySelectorAll","koliBriQuerySelectorColors","KoliBriUtils","parseJson","stringifyJson","getExperimentalMode","getColorContrastAnalysis","getDocument"],"mappings":"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"}
1
+ {"version":3,"file":"devtools-DEHRYx1J.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":["getWindow","Log","initKoliBri","isDevMode","renderDevAdvice","koliBriA11yColorContrast","koliBriQuerySelector","koliBriQuerySelectorAll","koliBriQuerySelectorColors","KoliBriUtils","parseJson","stringifyJson","getExperimentalMode","getColorContrastAnalysis","getDocument"],"mappings":"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"}
@@ -4,14 +4,14 @@
4
4
  'use strict';
5
5
 
6
6
  var tslib_es6 = require('./tslib.es6-Cm0ytgPY.js');
7
- var index = require('./index-qcrGfEY6.js');
7
+ var index = require('./index-CjTDipy9.js');
8
8
  require('./common-B9-LvLNa.js');
9
- var component$1 = require('./component-_jdRFw0Y.js');
10
- var api = require('./api-CRSjJs8P.js');
9
+ var component$1 = require('./component-K9JCKLMC.js');
10
+ var api = require('./api-n8IopicV.js');
11
11
  var bemRegistry = require('./bem-registry-BDVdt6ar.js');
12
- var dev_utils = require('./dev.utils-B1bWgxrQ.js');
13
- var component = require('./component-BHDnSaCH.js');
14
- var component$2 = require('./component-B1kzY-J5.js');
12
+ var dev_utils = require('./dev.utils-CIsKrkDZ.js');
13
+ var component = require('./component-CESKZB76.js');
14
+ var component$2 = require('./component-B92xMW4N.js');
15
15
 
16
16
  const fieldControlBem = bemRegistry.bem.forBlock('kol-field-control');
17
17
  const isFieldControlLabelShownAsTooltip = ({ hideLabel, label, renderNoTooltip, }) => !renderNoTooltip && !component$1.showExpertSlot(label) && hideLabel === true;
@@ -29,6 +29,6 @@ const FieldControlFC = (props, children) => {
29
29
 
30
30
  exports.FieldControlFC = FieldControlFC;
31
31
  exports.isFieldControlLabelShownAsTooltip = isFieldControlLabelShownAsTooltip;
32
- //# sourceMappingURL=field-control-D0lryu2-.js.map
32
+ //# sourceMappingURL=field-control-gMhh35Xz.js.map
33
33
 
34
- //# sourceMappingURL=field-control-D0lryu2-.js.map
34
+ //# sourceMappingURL=field-control-gMhh35Xz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-control-D0lryu2-.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":["bem","showExpertSlot","buildBadgeTextString","isMsgDefinedAndInputTouched","h","TooltipFC","createRelatedUniqueId","FormFieldLabelFC","BemRootNodeFC","getMsgType","FormFieldHintFC"],"mappings":"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"}
1
+ {"version":3,"file":"field-control-gMhh35Xz.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":["bem","showExpertSlot","buildBadgeTextString","isMsgDefinedAndInputTouched","h","TooltipFC","createRelatedUniqueId","FormFieldLabelFC","BemRootNodeFC","getMsgType","FormFieldHintFC"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAM,eAAe,GAAGA,eAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC;AA+B5C,MAAA,iCAAiC,GAAG,CAAC,EACjD,SAAS,EACT,KAAK,EACL,eAAe,GACuD,KAAc,CAAC,eAAe,IAAI,CAACC,0BAAc,CAAC,KAAK,CAAC,IAAI,SAAS,KAAK;MAUpI,cAAc,GAA4B,CAAC,KAAK,EAAE,QAAQ,KAAI;IAC1E,MAAM,EACL,KAAK,EAAE,UAAU,EACjB,EAAE,EACF,KAAK,EACL,IAAI,EACJ,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,GAAG,EACH,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,EACR,UAAU,EAEP,GAAA,KAAK,EADL,KAAK,oBACL,KAAK,EAtBH,CAsBL,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,KAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,CAAA,CAAQ;AAET,IAAA,MAAM,aAAa,GAAGA,0BAAc,CAAC,KAAK,CAAC;AAC3C,IAAA,MAAM,WAAW,GAAG,iCAAiC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC5F,MAAM,SAAS,GAAGC,gCAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC;IAC3D,MAAM,OAAO,GAAGC,+BAA2B,CAAC,GAAG,EAAE,OAAO,CAAC;IAEzD,MAAM,WAAW,GAAG,OACnBC,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,EACjD,EAAA,QAAQ,CACJ,CACN;IACD,MAAM,aAAa,GAAG,MACrB,WAAW,IACVA,OAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EACnCA,OAAA,CAACC,qBAAS,EAAA,EAAC,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAEC,+BAAqB,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,UAAU,EAAA,CAAI,CACxI,IACH,IAAI;AACT,IAAA,MAAM,WAAW,GAAG,OACnBF,OAAA,CAACG,oBAAgB,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACZ,UAAU,EAAA,EACd,EAAE,EAAE,EAAE,EACN,aAAa,EAAC,mBAAmB,EACjC,KAAK,EAAE,SAAS,GAAG,2CAA2C,GAAG,SAAS,EAC1E,MAAM,EAAE,WAAW,EACnB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACvB,CAAA,CAAA,CACF;AAED,IAAA,QACCH,OAAC,CAAAI,uBAAa,EACb,MAAA,CAAA,MAAA,CAAA,EAAA,KAAK,EAAC,mBAAmB,EACzB,SAAS,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACzB,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,EAChC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,GAAC,OAAO,GAAG,EAAE,CAACC,cAAU,CAAC,GAAG,CAAyD,GAAG,IAAI,EAAE,GAAG,EAAE,EACtG,EAAA,EAAA,kBAAkB,EAAE,UAAU,KAAK,MAAM,EACzC,mBAAmB,EAAE,UAAU,KAAK,OAAO,EAAA,CAAA,EAE5C,KAAK,EAAE,UAAU,IACb,KAAK,CAAA,EAER,UAAU,KAAK,MAAM,GAAG,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EACzH,CAAC,YAAY,IAAIL,OAAA,CAACM,mBAAe,EAAC,EAAA,aAAa,EAAC,mBAAmB,EAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAI,CAAA,CAC5E;AAElB;;;;;"}
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  var baseWebComponent = require('./base-web-component-DK5Y-vq5.js');
7
- var index = require('./index-qcrGfEY6.js');
7
+ var index = require('./index-CjTDipy9.js');
8
8
  var blockBem = require('./block-bem-D7PDS6kC.js');
9
- var dev_utils = require('./dev.utils-B1bWgxrQ.js');
10
- var api = require('./api-CRSjJs8P.js');
9
+ var dev_utils = require('./dev.utils-CIsKrkDZ.js');
10
+ var api = require('./api-n8IopicV.js');
11
11
  var bemRegistry = require('./bem-registry-BDVdt6ar.js');
12
12
 
13
13
  const hasClearButtonProp = baseWebComponent.createPropDefinition('hasClearButton', true, baseWebComponent.normalizeBoolean);
@@ -159,6 +159,6 @@ exports.CustomSuggestionsOptionFC = CustomSuggestionsOptionFC;
159
159
  exports.CustomSuggestionsOptionsGroupFC = CustomSuggestionsOptionsGroupFC;
160
160
  exports.ListboxGroupFC = ListboxGroupFC;
161
161
  exports.hasClearButtonProp = hasClearButtonProp;
162
- //# sourceMappingURL=group-DIGY9sM6.js.map
162
+ //# sourceMappingURL=group-eUk7QHkH.js.map
163
163
 
164
- //# sourceMappingURL=group-DIGY9sM6.js.map
164
+ //# sourceMappingURL=group-eUk7QHkH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"group-DIGY9sM6.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":["createPropDefinition","normalizeBoolean","getBlockBem","h","index","BaseFormFieldWebComponent","createRelatedUniqueId","bem"],"mappings":";;;;;;;;;;;;AAWO,MAAM,kBAAkB,GAAGA,qCAAoB,CAAqB,gBAAgB,EAAE,IAAI,EAAEC,iCAAgB;;ACNnH,MAAM,eAAe,GAAGC,oBAAW,CAAC,sCAAsC,CAAC;AAC3E,MAAM,SAAS,GAAGA,oBAAW,CAAC,+BAA+B,CAAC;AAoBvD,MAAM,+BAA+B,GAA6C,CACxF,EAAE,wBAAwB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAC1D,QAAQ,MAERC,OACC,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,GAAGA,OAAO,CAAA,MAAA,EAAA,IAAA,EAAA,IAAI,CAAQ,GAAG,IAAI,CAAC,CAAC;AAC1F,CAAC;AAMM,MAAM,yBAAyB,GAAuC,CAAC,EAC7E,QAAQ,EACR,EAAE,SACFC,OAAK,EACL,GAAG,EACH,QAAQ,EACR,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,MAAM,EACN,UAAU,GACV,MACAD,gBACC,EAAE,EAAE,EAAE,EACN,GAAG,EAAE,CAAA,CAAA,EAAIC,OAAK,CAAA,CAAE,EAChB,GAAG,EAAE,GAAG,gBACIA,OAAK,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,EAEpBD,OAAA,CAAA,MAAA,EAAA,IAAA,EAAO,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAQ,CAChE;;ACrEA,MAAgB,uBAAsD,SAAQE,6BAA8B,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,OAAOC,+BAAqB,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,EAAEC,eAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;IACrD,mBAAmB,EAAEA,eAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC;CACtD;AAQH,MAAM,cAAc,GAA4B,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,KAAKJ,OAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAA,EAAG,QAAQ;;;;;;;;"}
1
+ {"version":3,"file":"group-eUk7QHkH.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":["createPropDefinition","normalizeBoolean","getBlockBem","h","index","BaseFormFieldWebComponent","createRelatedUniqueId","bem"],"mappings":"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"}
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
25
25
 
26
26
  const NAMESPACE = 'kolibri';
27
27
  const BUILD = /* kolibri */ { hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, state: true, updatable: true};
28
- const Env = /* kolibri */ {"kolibriVersion":"4.5.0-rc.7"};
28
+ const Env = /* kolibri */ {"kolibriVersion":"4.5.0"};
29
29
 
30
30
  /*
31
31
  Stencil Client Platform v4.38.3 | MIT Licensed | https://stenciljs.com
@@ -2574,6 +2574,6 @@ exports.promiseResolve = promiseResolve;
2574
2574
  exports.registerInstance = registerInstance;
2575
2575
  exports.setMode = setMode;
2576
2576
  exports.setNonce = setNonce;
2577
- //# sourceMappingURL=index-qcrGfEY6.js.map
2577
+ //# sourceMappingURL=index-CjTDipy9.js.map
2578
2578
 
2579
- //# sourceMappingURL=index-qcrGfEY6.js.map
2579
+ //# sourceMappingURL=index-CjTDipy9.js.map