@public-ui/components 1.7.10 → 1.7.12

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 (699) hide show
  1. package/custom-elements.json +1 -1
  2. package/dist/cjs/{a11y.tipps-f2274d63.js → a11y.tipps-acf8dda9.js} +1 -1
  3. package/dist/cjs/{a11y.tipps-f2274d63.js.map → a11y.tipps-acf8dda9.js.map} +1 -1
  4. package/dist/cjs/align-f837f529.js +4 -0
  5. package/dist/cjs/{align-f2569ba3.js.map → align-f837f529.js.map} +1 -1
  6. package/dist/cjs/{alignment-85122e69.js → alignment-c846123c.js} +1 -1
  7. package/dist/cjs/{alignment-85122e69.js.map → alignment-c846123c.js.map} +1 -1
  8. package/dist/cjs/{app-globals-be5356ca.js → app-globals-97989671.js} +1 -1
  9. package/dist/cjs/{app-globals-be5356ca.js.map → app-globals-97989671.js.map} +1 -1
  10. package/dist/cjs/{aria-current-26cc879e.js → aria-current-939a4013.js} +1 -1
  11. package/dist/cjs/{aria-current-26cc879e.js.map → aria-current-939a4013.js.map} +1 -1
  12. package/dist/cjs/associated.controller-6f39b321.js +4 -0
  13. package/dist/cjs/associated.controller-6f39b321.js.map +1 -0
  14. package/dist/cjs/{color-02aa7812.js → color-aaa4bd5b.js} +1 -1
  15. package/dist/cjs/{color-02aa7812.js.map → color-aaa4bd5b.js.map} +1 -1
  16. package/dist/cjs/controller-37724ba1.js +4 -0
  17. package/dist/cjs/controller-37724ba1.js.map +1 -0
  18. package/dist/cjs/controller-69f2ca4d.js +4 -0
  19. package/dist/cjs/controller-69f2ca4d.js.map +1 -0
  20. package/dist/cjs/{controller-c737717c.js → controller-8a663b94.js} +1 -1
  21. package/dist/cjs/{controller-c737717c.js.map → controller-8a663b94.js.map} +1 -1
  22. package/dist/cjs/{controller-b04c9cb3.js → controller-958e15ee.js} +1 -1
  23. package/dist/cjs/{controller-b04c9cb3.js.map → controller-958e15ee.js.map} +1 -1
  24. package/dist/cjs/{controller-02216ad7.js → controller-9fe81117.js} +1 -1
  25. package/dist/cjs/{controller-02216ad7.js.map → controller-9fe81117.js.map} +1 -1
  26. package/dist/cjs/{controller-icon-4e6c58ab.js → controller-icon-2557ce59.js} +1 -1
  27. package/dist/cjs/{controller-icon-4e6c58ab.js.map → controller-icon-2557ce59.js.map} +1 -1
  28. package/dist/cjs/{custom-class-e1ed07be.js → custom-class-314f3146.js} +1 -1
  29. package/dist/cjs/{custom-class-e1ed07be.js.map → custom-class-314f3146.js.map} +1 -1
  30. package/dist/cjs/{dev.utils-49775cf1.js → dev.utils-a9a312e8.js} +1 -1
  31. package/dist/cjs/{dev.utils-49775cf1.js.map → dev.utils-a9a312e8.js.map} +1 -1
  32. package/dist/cjs/{devtools-4b03427f.js → devtools-627520bb.js} +1 -1
  33. package/dist/cjs/{devtools-4b03427f.js.map → devtools-627520bb.js.map} +1 -1
  34. package/dist/cjs/floating-ui.dom.esm-0965e83e.js +4 -0
  35. package/dist/cjs/floating-ui.dom.esm-0965e83e.js.map +1 -0
  36. package/dist/cjs/form-field-msg-31b183d5.js +4 -0
  37. package/dist/cjs/form-field-msg-31b183d5.js.map +1 -0
  38. package/dist/cjs/has-closer-049d6e97.js +4 -0
  39. package/dist/cjs/{has-closer-c572cda4.js.map → has-closer-049d6e97.js.map} +1 -1
  40. package/dist/cjs/hide-label-94cb2a98.js +4 -0
  41. package/dist/cjs/{hide-label-07525913.js.map → hide-label-94cb2a98.js.map} +1 -1
  42. package/dist/cjs/i18n-9412d850.js +4 -0
  43. package/dist/cjs/i18n-9412d850.js.map +1 -0
  44. package/dist/cjs/{icons-eda0914b.js → icons-8878835b.js} +1 -1
  45. package/dist/cjs/{icons-eda0914b.js.map → icons-8878835b.js.map} +1 -1
  46. package/dist/cjs/image-source-59531cc1.js +4 -0
  47. package/dist/cjs/{image-source-f81ca9a1.js.map → image-source-59531cc1.js.map} +1 -1
  48. package/dist/cjs/index-26a16cf8.js +1 -2
  49. package/dist/cjs/index-9549bac5.js +4 -0
  50. package/dist/cjs/index-9549bac5.js.map +1 -0
  51. package/dist/cjs/index.cjs.js +1 -1
  52. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  53. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  54. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  55. package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
  56. package/dist/cjs/kol-alert-wc_3.cjs.entry.js +1 -1
  57. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  59. package/dist/cjs/kol-avatar-wc.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  61. package/dist/cjs/kol-avatar.cjs.entry.js.map +1 -1
  62. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  63. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  64. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  65. package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +1 -1
  66. package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
  67. package/dist/cjs/kol-button-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  70. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  71. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
  73. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
  75. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  77. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  78. package/dist/cjs/kol-heading.cjs.entry.js.map +1 -1
  79. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  80. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
  82. package/dist/cjs/kol-indented-text.cjs.entry.js.map +1 -1
  83. package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js +1 -1
  84. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
  86. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  87. package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
  88. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  89. package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
  90. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  91. package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
  92. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  93. package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
  94. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  95. package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
  96. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  97. package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
  98. package/dist/cjs/kol-input-radio-group.cjs.entry.js +1 -1
  99. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  100. package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
  101. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  102. package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
  103. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  104. package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
  105. package/dist/cjs/kol-input.cjs.entry.js +1 -1
  106. package/dist/cjs/kol-input.cjs.entry.js.map +1 -1
  107. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  108. package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
  109. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  110. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  111. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-link-group.cjs.entry.js.map +1 -1
  113. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  114. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  115. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  116. package/dist/cjs/kol-logo.cjs.entry.js.map +1 -1
  117. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  118. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  119. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  120. package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
  121. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  122. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  123. package/dist/cjs/kol-popover-wc.cjs.entry.js +1 -1
  124. package/dist/cjs/kol-popover-wc.cjs.entry.js.map +1 -1
  125. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  126. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  127. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  128. package/dist/cjs/kol-quote.cjs.entry.js.map +1 -1
  129. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  130. package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
  131. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  132. package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
  133. package/dist/cjs/kol-span-wc_2.cjs.entry.js +1 -1
  134. package/dist/cjs/kol-span-wc_2.cjs.entry.js.map +1 -1
  135. package/dist/cjs/kol-span.cjs.entry.js +1 -1
  136. package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
  137. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  138. package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
  139. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  140. package/dist/cjs/kol-split-button.cjs.entry.js.map +1 -1
  141. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  142. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  143. package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
  144. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  145. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  146. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  147. package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
  148. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  149. package/dist/cjs/kol-toast-container.cjs.entry.js.map +1 -1
  150. package/dist/cjs/kol-toast.cjs.entry.js +1 -1
  151. package/dist/cjs/kol-toast.cjs.entry.js.map +1 -1
  152. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  153. package/dist/cjs/kol-version.cjs.entry.js.map +1 -1
  154. package/dist/cjs/kolibri.cjs.js +1 -1
  155. package/dist/cjs/{label-2237d74e.js → label-56c1f9e1.js} +1 -1
  156. package/dist/cjs/{label-2237d74e.js.map → label-56c1f9e1.js.map} +1 -1
  157. package/dist/cjs/loader.cjs.js +1 -1
  158. package/dist/cjs/open-60b9c16f.js +4 -0
  159. package/dist/cjs/{open-ee8c05c5.js.map → open-60b9c16f.js.map} +1 -1
  160. package/dist/cjs/{prop.validators-83e94b9a.js → prop.validators-c61f861a.js} +1 -1
  161. package/dist/cjs/{prop.validators-83e94b9a.js.map → prop.validators-c61f861a.js.map} +1 -1
  162. package/dist/cjs/rows-954faa41.js +4 -0
  163. package/dist/cjs/{rows-ec39111e.js.map → rows-954faa41.js.map} +1 -1
  164. package/dist/cjs/show-4d503b74.js +4 -0
  165. package/dist/cjs/{show-a4a326f9.js.map → show-4d503b74.js.map} +1 -1
  166. package/dist/cjs/{suggestions-18773a98.js → suggestions-8383373f.js} +1 -1
  167. package/dist/cjs/{suggestions-18773a98.js.map → suggestions-8383373f.js.map} +1 -1
  168. package/dist/cjs/{tab-index-132d6356.js → tab-index-b044abf3.js} +1 -1
  169. package/dist/cjs/{tab-index-132d6356.js.map → tab-index-b044abf3.js.map} +1 -1
  170. package/dist/cjs/{tooltip-align-f88c17d4.js → tooltip-align-225e3b1a.js} +1 -1
  171. package/dist/cjs/{tooltip-align-f88c17d4.js.map → tooltip-align-225e3b1a.js.map} +1 -1
  172. package/dist/cjs/validation-63f8677e.js +4 -0
  173. package/dist/cjs/{validation-6d44965b.js.map → validation-63f8677e.js.map} +1 -1
  174. package/dist/cjs/{validation-e0ad64a0.js → validation-7e5c56e4.js} +1 -1
  175. package/dist/cjs/{validation-e0ad64a0.js.map → validation-7e5c56e4.js.map} +1 -1
  176. package/dist/components/align.js +1 -1
  177. package/dist/components/align.js.map +1 -1
  178. package/dist/components/component12.js +1 -1
  179. package/dist/components/component12.js.map +1 -1
  180. package/dist/components/component13.js +1 -1
  181. package/dist/components/component13.js.map +1 -1
  182. package/dist/components/component14.js +1 -1
  183. package/dist/components/component14.js.map +1 -1
  184. package/dist/components/component15.js +1 -1
  185. package/dist/components/component15.js.map +1 -1
  186. package/dist/components/component16.js +1 -1
  187. package/dist/components/component16.js.map +1 -1
  188. package/dist/components/component3.js +1 -1
  189. package/dist/components/component3.js.map +1 -1
  190. package/dist/components/component5.js +1 -1
  191. package/dist/components/component5.js.map +1 -1
  192. package/dist/components/component8.js +1 -1
  193. package/dist/components/component8.js.map +1 -1
  194. package/dist/components/controller2.js +1 -1
  195. package/dist/components/controller2.js.map +1 -1
  196. package/dist/components/i18n.js +1 -1
  197. package/dist/components/i18n.js.map +1 -1
  198. package/dist/components/kol-abbr.js +1 -1
  199. package/dist/components/kol-abbr.js.map +1 -1
  200. package/dist/components/kol-accordion.js +1 -1
  201. package/dist/components/kol-accordion.js.map +1 -1
  202. package/dist/components/kol-avatar.js +1 -1
  203. package/dist/components/kol-avatar.js.map +1 -1
  204. package/dist/components/kol-breadcrumb.js +1 -1
  205. package/dist/components/kol-breadcrumb.js.map +1 -1
  206. package/dist/components/kol-button-group.js +1 -1
  207. package/dist/components/kol-button-group.js.map +1 -1
  208. package/dist/components/kol-button-link.js +1 -1
  209. package/dist/components/kol-card.js +1 -1
  210. package/dist/components/kol-card.js.map +1 -1
  211. package/dist/components/kol-details.js +1 -1
  212. package/dist/components/kol-details.js.map +1 -1
  213. package/dist/components/kol-form.js +1 -1
  214. package/dist/components/kol-form.js.map +1 -1
  215. package/dist/components/kol-heading.js +1 -1
  216. package/dist/components/kol-heading.js.map +1 -1
  217. package/dist/components/kol-input-checkbox.js +1 -1
  218. package/dist/components/kol-input-checkbox.js.map +1 -1
  219. package/dist/components/kol-input-color.js +1 -1
  220. package/dist/components/kol-input-color.js.map +1 -1
  221. package/dist/components/kol-input-date.js +1 -1
  222. package/dist/components/kol-input-date.js.map +1 -1
  223. package/dist/components/kol-input-email.js +1 -1
  224. package/dist/components/kol-input-email.js.map +1 -1
  225. package/dist/components/kol-input-file.js +1 -1
  226. package/dist/components/kol-input-file.js.map +1 -1
  227. package/dist/components/kol-input-number.js +1 -1
  228. package/dist/components/kol-input-number.js.map +1 -1
  229. package/dist/components/kol-input-password.js +1 -1
  230. package/dist/components/kol-input-password.js.map +1 -1
  231. package/dist/components/kol-input-range.js +1 -1
  232. package/dist/components/kol-input-range.js.map +1 -1
  233. package/dist/components/kol-input-text.js +1 -1
  234. package/dist/components/kol-input-text.js.map +1 -1
  235. package/dist/components/kol-kolibri.js +1 -1
  236. package/dist/components/kol-kolibri.js.map +1 -1
  237. package/dist/components/kol-link-button.js +1 -1
  238. package/dist/components/kol-link-button.js.map +1 -1
  239. package/dist/components/kol-link-group.js +1 -1
  240. package/dist/components/kol-link-group.js.map +1 -1
  241. package/dist/components/kol-logo.js +1 -1
  242. package/dist/components/kol-logo.js.map +1 -1
  243. package/dist/components/kol-modal.js +1 -1
  244. package/dist/components/kol-modal.js.map +1 -1
  245. package/dist/components/kol-nav.js +1 -1
  246. package/dist/components/kol-nav.js.map +1 -1
  247. package/dist/components/kol-popover-wc.js +1 -1
  248. package/dist/components/kol-popover-wc.js.map +1 -1
  249. package/dist/components/kol-progress.js +1 -1
  250. package/dist/components/kol-progress.js.map +1 -1
  251. package/dist/components/kol-quote.js +1 -1
  252. package/dist/components/kol-quote.js.map +1 -1
  253. package/dist/components/kol-skip-nav.js +1 -1
  254. package/dist/components/kol-skip-nav.js.map +1 -1
  255. package/dist/components/kol-span.js +1 -1
  256. package/dist/components/kol-span.js.map +1 -1
  257. package/dist/components/kol-spin.js +1 -1
  258. package/dist/components/kol-spin.js.map +1 -1
  259. package/dist/components/kol-split-button.js +1 -1
  260. package/dist/components/kol-split-button.js.map +1 -1
  261. package/dist/components/kol-table.js +1 -1
  262. package/dist/components/kol-table.js.map +1 -1
  263. package/dist/components/kol-tabs.js +1 -1
  264. package/dist/components/kol-tabs.js.map +1 -1
  265. package/dist/components/kol-textarea.js +1 -1
  266. package/dist/components/kol-textarea.js.map +1 -1
  267. package/dist/components/kol-toast-container.js.map +1 -1
  268. package/dist/components/kol-toast.js +1 -1
  269. package/dist/components/kol-toast.js.map +1 -1
  270. package/dist/components/kol-version.js +1 -1
  271. package/dist/components/kol-version.js.map +1 -1
  272. package/dist/components/prop.validators.js +1 -1
  273. package/dist/components/prop.validators.js.map +1 -1
  274. package/dist/components/shadow.js +1 -1
  275. package/dist/components/shadow.js.map +1 -1
  276. package/dist/components/shadow2.js +1 -1
  277. package/dist/components/shadow3.js +1 -1
  278. package/dist/components/shadow3.js.map +1 -1
  279. package/dist/esm/{a11y.tipps-a79effa1.js → a11y.tipps-b5477bd5.js} +1 -1
  280. package/dist/esm/{a11y.tipps-a79effa1.js.map → a11y.tipps-b5477bd5.js.map} +1 -1
  281. package/dist/esm/{align-29085133.js → align-4b5623a0.js} +1 -1
  282. package/dist/esm/{align-29085133.js.map → align-4b5623a0.js.map} +1 -1
  283. package/dist/esm/{alignment-89119497.js → alignment-e19b28a7.js} +1 -1
  284. package/dist/esm/{alignment-89119497.js.map → alignment-e19b28a7.js.map} +1 -1
  285. package/dist/esm/{app-globals-c4123edf.js → app-globals-951ab4fc.js} +1 -1
  286. package/dist/esm/{app-globals-c4123edf.js.map → app-globals-951ab4fc.js.map} +1 -1
  287. package/dist/esm/{aria-current-3dc2e010.js → aria-current-ad7fd986.js} +1 -1
  288. package/dist/esm/{aria-current-3dc2e010.js.map → aria-current-ad7fd986.js.map} +1 -1
  289. package/dist/esm/associated.controller-700f38ae.js +4 -0
  290. package/dist/esm/associated.controller-700f38ae.js.map +1 -0
  291. package/dist/esm/{color-df35b0e5.js → color-ea1fcf50.js} +1 -1
  292. package/dist/esm/{color-df35b0e5.js.map → color-ea1fcf50.js.map} +1 -1
  293. package/dist/esm/{controller-b30ccdd1.js → controller-167b1804.js} +1 -1
  294. package/dist/esm/{controller-b30ccdd1.js.map → controller-167b1804.js.map} +1 -1
  295. package/dist/esm/{controller-450b4da9.js → controller-3adef2c5.js} +1 -1
  296. package/dist/esm/{controller-450b4da9.js.map → controller-3adef2c5.js.map} +1 -1
  297. package/dist/esm/{controller-462e6487.js → controller-487bbb84.js} +1 -1
  298. package/dist/esm/{controller-462e6487.js.map → controller-487bbb84.js.map} +1 -1
  299. package/dist/esm/controller-96fa0d66.js +4 -0
  300. package/dist/esm/controller-96fa0d66.js.map +1 -0
  301. package/dist/esm/{controller-07ce6a08.js → controller-972d368d.js} +1 -1
  302. package/dist/esm/controller-972d368d.js.map +1 -0
  303. package/dist/esm/{controller-icon-786ee7b4.js → controller-icon-81c1d3ba.js} +1 -1
  304. package/dist/esm/{controller-icon-786ee7b4.js.map → controller-icon-81c1d3ba.js.map} +1 -1
  305. package/dist/esm/{custom-class-b8653b22.js → custom-class-6b2f969c.js} +1 -1
  306. package/dist/esm/{custom-class-b8653b22.js.map → custom-class-6b2f969c.js.map} +1 -1
  307. package/dist/esm/{dev.utils-5f359e41.js → dev.utils-232c068c.js} +1 -1
  308. package/dist/esm/{dev.utils-5f359e41.js.map → dev.utils-232c068c.js.map} +1 -1
  309. package/dist/esm/{devtools-4952d5e3.js → devtools-daa1a10e.js} +1 -1
  310. package/dist/esm/{devtools-4952d5e3.js.map → devtools-daa1a10e.js.map} +1 -1
  311. package/dist/esm/floating-ui.dom.esm-d8551a17.js +4 -0
  312. package/dist/esm/floating-ui.dom.esm-d8551a17.js.map +1 -0
  313. package/dist/esm/form-field-msg-ddc954ef.js +4 -0
  314. package/dist/esm/form-field-msg-ddc954ef.js.map +1 -0
  315. package/dist/esm/{has-closer-3a6407b7.js → has-closer-5abbbc80.js} +1 -1
  316. package/dist/esm/{has-closer-3a6407b7.js.map → has-closer-5abbbc80.js.map} +1 -1
  317. package/dist/esm/{hide-label-eff4095b.js → hide-label-ff8dee89.js} +1 -1
  318. package/dist/esm/{hide-label-eff4095b.js.map → hide-label-ff8dee89.js.map} +1 -1
  319. package/dist/esm/i18n-e70e3fa4.js +4 -0
  320. package/dist/esm/i18n-e70e3fa4.js.map +1 -0
  321. package/dist/esm/{icons-eb47bf80.js → icons-d16b918d.js} +1 -1
  322. package/dist/esm/{icons-eb47bf80.js.map → icons-d16b918d.js.map} +1 -1
  323. package/dist/esm/{image-source-836428b9.js → image-source-27086675.js} +1 -1
  324. package/dist/esm/{image-source-836428b9.js.map → image-source-27086675.js.map} +1 -1
  325. package/dist/esm/index-0b7aa54b.js +1 -2
  326. package/dist/esm/index-6f37dccf.js +4 -0
  327. package/dist/esm/index-6f37dccf.js.map +1 -0
  328. package/dist/esm/index.js +1 -1
  329. package/dist/esm/kol-abbr.entry.js +1 -1
  330. package/dist/esm/kol-abbr.entry.js.map +1 -1
  331. package/dist/esm/kol-accordion.entry.js +1 -1
  332. package/dist/esm/kol-accordion.entry.js.map +1 -1
  333. package/dist/esm/kol-alert-wc_3.entry.js +1 -1
  334. package/dist/esm/kol-alert.entry.js +1 -1
  335. package/dist/esm/kol-alert.entry.js.map +1 -1
  336. package/dist/esm/kol-avatar-wc.entry.js +1 -1
  337. package/dist/esm/kol-avatar.entry.js +1 -1
  338. package/dist/esm/kol-avatar.entry.js.map +1 -1
  339. package/dist/esm/kol-badge.entry.js +1 -1
  340. package/dist/esm/kol-badge.entry.js.map +1 -1
  341. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  342. package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
  343. package/dist/esm/kol-button-group.entry.js +1 -1
  344. package/dist/esm/kol-button-group.entry.js.map +1 -1
  345. package/dist/esm/kol-button-link.entry.js +1 -1
  346. package/dist/esm/kol-button.entry.js +1 -1
  347. package/dist/esm/kol-button.entry.js.map +1 -1
  348. package/dist/esm/kol-card.entry.js +1 -1
  349. package/dist/esm/kol-card.entry.js.map +1 -1
  350. package/dist/esm/kol-details.entry.js +1 -1
  351. package/dist/esm/kol-details.entry.js.map +1 -1
  352. package/dist/esm/kol-form.entry.js +1 -1
  353. package/dist/esm/kol-form.entry.js.map +1 -1
  354. package/dist/esm/kol-heading.entry.js +1 -1
  355. package/dist/esm/kol-heading.entry.js.map +1 -1
  356. package/dist/esm/kol-icon.entry.js +1 -1
  357. package/dist/esm/kol-image.entry.js +1 -1
  358. package/dist/esm/kol-indented-text.entry.js +1 -1
  359. package/dist/esm/kol-indented-text.entry.js.map +1 -1
  360. package/dist/esm/kol-input-adapter-leanup.entry.js +1 -1
  361. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  362. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  363. package/dist/esm/kol-input-color.entry.js +1 -1
  364. package/dist/esm/kol-input-color.entry.js.map +1 -1
  365. package/dist/esm/kol-input-date.entry.js +1 -1
  366. package/dist/esm/kol-input-date.entry.js.map +1 -1
  367. package/dist/esm/kol-input-email.entry.js +1 -1
  368. package/dist/esm/kol-input-email.entry.js.map +1 -1
  369. package/dist/esm/kol-input-file.entry.js +1 -1
  370. package/dist/esm/kol-input-file.entry.js.map +1 -1
  371. package/dist/esm/kol-input-number.entry.js +1 -1
  372. package/dist/esm/kol-input-number.entry.js.map +1 -1
  373. package/dist/esm/kol-input-password.entry.js +1 -1
  374. package/dist/esm/kol-input-password.entry.js.map +1 -1
  375. package/dist/esm/kol-input-radio-group.entry.js +1 -1
  376. package/dist/esm/kol-input-radio.entry.js +1 -1
  377. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  378. package/dist/esm/kol-input-range.entry.js +1 -1
  379. package/dist/esm/kol-input-range.entry.js.map +1 -1
  380. package/dist/esm/kol-input-text.entry.js +1 -1
  381. package/dist/esm/kol-input-text.entry.js.map +1 -1
  382. package/dist/esm/kol-input.entry.js +1 -1
  383. package/dist/esm/kol-input.entry.js.map +1 -1
  384. package/dist/esm/kol-kolibri.entry.js +1 -1
  385. package/dist/esm/kol-kolibri.entry.js.map +1 -1
  386. package/dist/esm/kol-link-button.entry.js +1 -1
  387. package/dist/esm/kol-link-button.entry.js.map +1 -1
  388. package/dist/esm/kol-link-group.entry.js +1 -1
  389. package/dist/esm/kol-link-group.entry.js.map +1 -1
  390. package/dist/esm/kol-link-wc.entry.js +1 -1
  391. package/dist/esm/kol-link.entry.js +1 -1
  392. package/dist/esm/kol-logo.entry.js +1 -1
  393. package/dist/esm/kol-logo.entry.js.map +1 -1
  394. package/dist/esm/kol-modal.entry.js +1 -1
  395. package/dist/esm/kol-modal.entry.js.map +1 -1
  396. package/dist/esm/kol-nav.entry.js +1 -1
  397. package/dist/esm/kol-nav.entry.js.map +1 -1
  398. package/dist/esm/kol-pagination.entry.js +1 -1
  399. package/dist/esm/kol-pagination.entry.js.map +1 -1
  400. package/dist/esm/kol-popover-wc.entry.js +1 -1
  401. package/dist/esm/kol-popover-wc.entry.js.map +1 -1
  402. package/dist/esm/kol-progress.entry.js +1 -1
  403. package/dist/esm/kol-progress.entry.js.map +1 -1
  404. package/dist/esm/kol-quote.entry.js +1 -1
  405. package/dist/esm/kol-quote.entry.js.map +1 -1
  406. package/dist/esm/kol-select.entry.js +1 -1
  407. package/dist/esm/kol-select.entry.js.map +1 -1
  408. package/dist/esm/kol-skip-nav.entry.js +1 -1
  409. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  410. package/dist/esm/kol-span-wc_2.entry.js +1 -1
  411. package/dist/esm/kol-span-wc_2.entry.js.map +1 -1
  412. package/dist/esm/kol-span.entry.js +1 -1
  413. package/dist/esm/kol-span.entry.js.map +1 -1
  414. package/dist/esm/kol-spin.entry.js +1 -1
  415. package/dist/esm/kol-spin.entry.js.map +1 -1
  416. package/dist/esm/kol-split-button.entry.js +1 -1
  417. package/dist/esm/kol-split-button.entry.js.map +1 -1
  418. package/dist/esm/kol-symbol.entry.js +1 -1
  419. package/dist/esm/kol-table.entry.js +1 -1
  420. package/dist/esm/kol-table.entry.js.map +1 -1
  421. package/dist/esm/kol-tabs.entry.js +1 -1
  422. package/dist/esm/kol-tabs.entry.js.map +1 -1
  423. package/dist/esm/kol-textarea.entry.js +1 -1
  424. package/dist/esm/kol-textarea.entry.js.map +1 -1
  425. package/dist/esm/kol-toast-container.entry.js +1 -1
  426. package/dist/esm/kol-toast-container.entry.js.map +1 -1
  427. package/dist/esm/kol-toast.entry.js +1 -1
  428. package/dist/esm/kol-toast.entry.js.map +1 -1
  429. package/dist/esm/kol-version.entry.js +1 -1
  430. package/dist/esm/kol-version.entry.js.map +1 -1
  431. package/dist/esm/kolibri.js +1 -1
  432. package/dist/esm/{label-690befc4.js → label-00203940.js} +1 -1
  433. package/dist/esm/{label-690befc4.js.map → label-00203940.js.map} +1 -1
  434. package/dist/esm/loader.js +1 -1
  435. package/dist/esm/{open-148235d0.js → open-4a5d7b3b.js} +1 -1
  436. package/dist/esm/{open-148235d0.js.map → open-4a5d7b3b.js.map} +1 -1
  437. package/dist/esm/{prop.validators-e5a112ea.js → prop.validators-a73a5d11.js} +1 -1
  438. package/dist/esm/{prop.validators-e5a112ea.js.map → prop.validators-a73a5d11.js.map} +1 -1
  439. package/dist/esm/{rows-2137f8b9.js → rows-9d616b00.js} +1 -1
  440. package/dist/esm/{rows-2137f8b9.js.map → rows-9d616b00.js.map} +1 -1
  441. package/dist/esm/{show-565151f8.js → show-9954c9fd.js} +1 -1
  442. package/dist/esm/{show-565151f8.js.map → show-9954c9fd.js.map} +1 -1
  443. package/dist/esm/{suggestions-456f78ed.js → suggestions-ea95c2ca.js} +1 -1
  444. package/dist/esm/{suggestions-456f78ed.js.map → suggestions-ea95c2ca.js.map} +1 -1
  445. package/dist/esm/{tab-index-e11959e4.js → tab-index-bfaa121e.js} +1 -1
  446. package/dist/esm/{tab-index-e11959e4.js.map → tab-index-bfaa121e.js.map} +1 -1
  447. package/dist/esm/{tooltip-align-92a123e0.js → tooltip-align-483a9b9c.js} +1 -1
  448. package/dist/esm/{tooltip-align-92a123e0.js.map → tooltip-align-483a9b9c.js.map} +1 -1
  449. package/dist/esm/validation-07a7b565.js +4 -0
  450. package/dist/esm/{validation-670f291e.js.map → validation-07a7b565.js.map} +1 -1
  451. package/dist/esm/validation-c75d7638.js +4 -0
  452. package/dist/esm/{validation-53473433.js.map → validation-c75d7638.js.map} +1 -1
  453. package/dist/kolibri/{a11y.tipps-a79effa1.js → a11y.tipps-b5477bd5.js} +1 -1
  454. package/dist/kolibri/align-4b5623a0.js +4 -0
  455. package/dist/kolibri/alignment-e19b28a7.js +4 -0
  456. package/dist/kolibri/app-globals-951ab4fc.js +4 -0
  457. package/dist/kolibri/aria-current-ad7fd986.js +4 -0
  458. package/dist/kolibri/associated.controller-700f38ae.js +4 -0
  459. package/dist/kolibri/associated.controller-700f38ae.js.map +1 -0
  460. package/dist/kolibri/{color-df35b0e5.js → color-ea1fcf50.js} +1 -1
  461. package/dist/kolibri/{controller-b30ccdd1.js → controller-167b1804.js} +1 -1
  462. package/dist/kolibri/{controller-450b4da9.js → controller-3adef2c5.js} +1 -1
  463. package/dist/kolibri/{controller-462e6487.js → controller-487bbb84.js} +1 -1
  464. package/dist/kolibri/controller-96fa0d66.js +4 -0
  465. package/dist/kolibri/controller-96fa0d66.js.map +1 -0
  466. package/dist/kolibri/{controller-07ce6a08.js → controller-972d368d.js} +1 -1
  467. package/dist/kolibri/controller-972d368d.js.map +1 -0
  468. package/dist/kolibri/controller-icon-81c1d3ba.js +4 -0
  469. package/dist/kolibri/{custom-class-b8653b22.js → custom-class-6b2f969c.js} +1 -1
  470. package/dist/kolibri/{dev.utils-5f359e41.js → dev.utils-232c068c.js} +1 -1
  471. package/dist/kolibri/{dev.utils-5f359e41.js.map → dev.utils-232c068c.js.map} +1 -1
  472. package/dist/kolibri/{devtools-4952d5e3.js → devtools-daa1a10e.js} +1 -1
  473. package/dist/kolibri/floating-ui.dom.esm-d8551a17.js +4 -0
  474. package/dist/kolibri/floating-ui.dom.esm-d8551a17.js.map +1 -0
  475. package/dist/kolibri/form-field-msg-ddc954ef.js +4 -0
  476. package/dist/kolibri/form-field-msg-ddc954ef.js.map +1 -0
  477. package/dist/kolibri/has-closer-5abbbc80.js +4 -0
  478. package/dist/kolibri/hide-label-ff8dee89.js +4 -0
  479. package/dist/kolibri/i18n-e70e3fa4.js +4 -0
  480. package/dist/kolibri/i18n-e70e3fa4.js.map +1 -0
  481. package/dist/kolibri/icons-d16b918d.js +4 -0
  482. package/dist/kolibri/{icons-eb47bf80.js.map → icons-d16b918d.js.map} +1 -1
  483. package/dist/kolibri/image-source-27086675.js +4 -0
  484. package/dist/kolibri/index-6f37dccf.js +4 -0
  485. package/dist/kolibri/index-6f37dccf.js.map +1 -0
  486. package/dist/kolibri/index.esm.js +1 -1
  487. package/dist/kolibri/kol-abbr.entry.js +1 -1
  488. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  489. package/dist/kolibri/kol-accordion.entry.js +1 -1
  490. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  491. package/dist/kolibri/kol-alert-wc_3.entry.js +1 -1
  492. package/dist/kolibri/kol-alert.entry.js +1 -1
  493. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  494. package/dist/kolibri/kol-avatar-wc.entry.js +1 -1
  495. package/dist/kolibri/kol-avatar.entry.js +1 -1
  496. package/dist/kolibri/kol-avatar.entry.js.map +1 -1
  497. package/dist/kolibri/kol-badge.entry.js +1 -1
  498. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  499. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  500. package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
  501. package/dist/kolibri/kol-button-group.entry.js +1 -1
  502. package/dist/kolibri/kol-button-group.entry.js.map +1 -1
  503. package/dist/kolibri/kol-button-link.entry.js +1 -1
  504. package/dist/kolibri/kol-button.entry.js +1 -1
  505. package/dist/kolibri/kol-button.entry.js.map +1 -1
  506. package/dist/kolibri/kol-card.entry.js +1 -1
  507. package/dist/kolibri/kol-card.entry.js.map +1 -1
  508. package/dist/kolibri/kol-details.entry.js +1 -1
  509. package/dist/kolibri/kol-details.entry.js.map +1 -1
  510. package/dist/kolibri/kol-form.entry.js +1 -1
  511. package/dist/kolibri/kol-form.entry.js.map +1 -1
  512. package/dist/kolibri/kol-heading.entry.js +1 -1
  513. package/dist/kolibri/kol-heading.entry.js.map +1 -1
  514. package/dist/kolibri/kol-icon.entry.js +1 -1
  515. package/dist/kolibri/kol-image.entry.js +1 -1
  516. package/dist/kolibri/kol-indented-text.entry.js +1 -1
  517. package/dist/kolibri/kol-indented-text.entry.js.map +1 -1
  518. package/dist/kolibri/kol-input-adapter-leanup.entry.js +1 -1
  519. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  520. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  521. package/dist/kolibri/kol-input-color.entry.js +1 -1
  522. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  523. package/dist/kolibri/kol-input-date.entry.js +1 -1
  524. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  525. package/dist/kolibri/kol-input-email.entry.js +1 -1
  526. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  527. package/dist/kolibri/kol-input-file.entry.js +1 -1
  528. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  529. package/dist/kolibri/kol-input-number.entry.js +1 -1
  530. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  531. package/dist/kolibri/kol-input-password.entry.js +1 -1
  532. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  533. package/dist/kolibri/kol-input-radio-group.entry.js +1 -1
  534. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  535. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  536. package/dist/kolibri/kol-input-range.entry.js +1 -1
  537. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  538. package/dist/kolibri/kol-input-text.entry.js +1 -1
  539. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  540. package/dist/kolibri/kol-input.entry.js +1 -1
  541. package/dist/kolibri/kol-input.entry.js.map +1 -1
  542. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  543. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  544. package/dist/kolibri/kol-link-button.entry.js +1 -1
  545. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  546. package/dist/kolibri/kol-link-group.entry.js +1 -1
  547. package/dist/kolibri/kol-link-group.entry.js.map +1 -1
  548. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  549. package/dist/kolibri/kol-link.entry.js +1 -1
  550. package/dist/kolibri/kol-logo.entry.js +1 -1
  551. package/dist/kolibri/kol-logo.entry.js.map +1 -1
  552. package/dist/kolibri/kol-modal.entry.js +1 -1
  553. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  554. package/dist/kolibri/kol-nav.entry.js +1 -1
  555. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  556. package/dist/kolibri/kol-pagination.entry.js +1 -1
  557. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  558. package/dist/kolibri/kol-popover-wc.entry.js +1 -1
  559. package/dist/kolibri/kol-popover-wc.entry.js.map +1 -1
  560. package/dist/kolibri/kol-progress.entry.js +1 -1
  561. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  562. package/dist/kolibri/kol-quote.entry.js +1 -1
  563. package/dist/kolibri/kol-quote.entry.js.map +1 -1
  564. package/dist/kolibri/kol-select.entry.js +1 -1
  565. package/dist/kolibri/kol-select.entry.js.map +1 -1
  566. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  567. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  568. package/dist/kolibri/kol-span-wc_2.entry.js +1 -1
  569. package/dist/kolibri/kol-span-wc_2.entry.js.map +1 -1
  570. package/dist/kolibri/kol-span.entry.js +1 -1
  571. package/dist/kolibri/kol-span.entry.js.map +1 -1
  572. package/dist/kolibri/kol-spin.entry.js +1 -1
  573. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  574. package/dist/kolibri/kol-split-button.entry.js +1 -1
  575. package/dist/kolibri/kol-split-button.entry.js.map +1 -1
  576. package/dist/kolibri/kol-symbol.entry.js +1 -1
  577. package/dist/kolibri/kol-table.entry.js +1 -1
  578. package/dist/kolibri/kol-table.entry.js.map +1 -1
  579. package/dist/kolibri/kol-tabs.entry.js +1 -1
  580. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  581. package/dist/kolibri/kol-textarea.entry.js +1 -1
  582. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  583. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  584. package/dist/kolibri/kol-toast-container.entry.js.map +1 -1
  585. package/dist/kolibri/kol-toast.entry.js +1 -1
  586. package/dist/kolibri/kol-toast.entry.js.map +1 -1
  587. package/dist/kolibri/kol-version.entry.js +1 -1
  588. package/dist/kolibri/kol-version.entry.js.map +1 -1
  589. package/dist/kolibri/kolibri.esm.js +1 -1
  590. package/dist/kolibri/kolibri.esm.js.map +1 -1
  591. package/dist/kolibri/{label-690befc4.js → label-00203940.js} +1 -1
  592. package/dist/kolibri/open-4a5d7b3b.js +4 -0
  593. package/dist/kolibri/{prop.validators-e5a112ea.js → prop.validators-a73a5d11.js} +1 -1
  594. package/dist/kolibri/rows-9d616b00.js +4 -0
  595. package/dist/kolibri/show-9954c9fd.js +4 -0
  596. package/dist/kolibri/suggestions-ea95c2ca.js +4 -0
  597. package/dist/kolibri/tab-index-bfaa121e.js +4 -0
  598. package/dist/kolibri/tooltip-align-483a9b9c.js +4 -0
  599. package/dist/kolibri/validation-07a7b565.js +4 -0
  600. package/dist/kolibri/{validation-53473433.js → validation-c75d7638.js} +1 -1
  601. package/dist/types/components/@shared/form-field-msg.d.ts +12 -0
  602. package/dist/types/components/form/component.d.ts +6 -0
  603. package/dist/types/components/form/types.d.ts +2 -1
  604. package/dist/types/components/input-radio/controller.d.ts +1 -0
  605. package/dist/types/components/select/controller.d.ts +1 -0
  606. package/dist/types/components/tooltip/component.d.ts +6 -3
  607. package/dist/types/components.d.ts +10 -0
  608. package/dist/types/i18n.d.ts +1 -1
  609. package/dist/types/locales/de.d.ts +3 -0
  610. package/dist/types/locales/en.d.ts +3 -0
  611. package/dist/types/types/props/error-list.d.ts +9 -0
  612. package/doc/form.md +21 -4
  613. package/doc/link.md +2 -0
  614. package/package.json +1 -1
  615. package/dist/cjs/align-f2569ba3.js +0 -4
  616. package/dist/cjs/associated.controller-bbd557fd.js +0 -4
  617. package/dist/cjs/associated.controller-bbd557fd.js.map +0 -1
  618. package/dist/cjs/controller-186089ce.js +0 -4
  619. package/dist/cjs/controller-186089ce.js.map +0 -1
  620. package/dist/cjs/controller-8fb69b12.js +0 -4
  621. package/dist/cjs/controller-8fb69b12.js.map +0 -1
  622. package/dist/cjs/floating-ui.dom.esm-8a7bcac7.js +0 -4
  623. package/dist/cjs/floating-ui.dom.esm-8a7bcac7.js.map +0 -1
  624. package/dist/cjs/has-closer-c572cda4.js +0 -4
  625. package/dist/cjs/hide-label-07525913.js +0 -4
  626. package/dist/cjs/i18n-3de858d7.js +0 -4
  627. package/dist/cjs/i18n-3de858d7.js.map +0 -1
  628. package/dist/cjs/image-source-f81ca9a1.js +0 -4
  629. package/dist/cjs/index-195036db.js +0 -4
  630. package/dist/cjs/index-195036db.js.map +0 -1
  631. package/dist/cjs/open-ee8c05c5.js +0 -4
  632. package/dist/cjs/rows-ec39111e.js +0 -4
  633. package/dist/cjs/show-a4a326f9.js +0 -4
  634. package/dist/cjs/validation-6d44965b.js +0 -4
  635. package/dist/esm/associated.controller-e1334159.js +0 -4
  636. package/dist/esm/associated.controller-e1334159.js.map +0 -1
  637. package/dist/esm/controller-07ce6a08.js.map +0 -1
  638. package/dist/esm/controller-19b92a22.js +0 -4
  639. package/dist/esm/controller-19b92a22.js.map +0 -1
  640. package/dist/esm/floating-ui.dom.esm-3f5b7a69.js +0 -4
  641. package/dist/esm/floating-ui.dom.esm-3f5b7a69.js.map +0 -1
  642. package/dist/esm/i18n-9c81e897.js +0 -4
  643. package/dist/esm/i18n-9c81e897.js.map +0 -1
  644. package/dist/esm/index-632d7943.js +0 -4
  645. package/dist/esm/index-632d7943.js.map +0 -1
  646. package/dist/esm/validation-53473433.js +0 -4
  647. package/dist/esm/validation-670f291e.js +0 -4
  648. package/dist/kolibri/align-29085133.js +0 -4
  649. package/dist/kolibri/alignment-89119497.js +0 -4
  650. package/dist/kolibri/app-globals-c4123edf.js +0 -4
  651. package/dist/kolibri/aria-current-3dc2e010.js +0 -4
  652. package/dist/kolibri/associated.controller-e1334159.js +0 -4
  653. package/dist/kolibri/associated.controller-e1334159.js.map +0 -1
  654. package/dist/kolibri/controller-07ce6a08.js.map +0 -1
  655. package/dist/kolibri/controller-19b92a22.js +0 -4
  656. package/dist/kolibri/controller-19b92a22.js.map +0 -1
  657. package/dist/kolibri/controller-icon-786ee7b4.js +0 -4
  658. package/dist/kolibri/floating-ui.dom.esm-3f5b7a69.js +0 -4
  659. package/dist/kolibri/floating-ui.dom.esm-3f5b7a69.js.map +0 -1
  660. package/dist/kolibri/has-closer-3a6407b7.js +0 -4
  661. package/dist/kolibri/hide-label-eff4095b.js +0 -4
  662. package/dist/kolibri/i18n-9c81e897.js +0 -4
  663. package/dist/kolibri/i18n-9c81e897.js.map +0 -1
  664. package/dist/kolibri/icons-eb47bf80.js +0 -4
  665. package/dist/kolibri/image-source-836428b9.js +0 -4
  666. package/dist/kolibri/index-632d7943.js +0 -4
  667. package/dist/kolibri/index-632d7943.js.map +0 -1
  668. package/dist/kolibri/open-148235d0.js +0 -4
  669. package/dist/kolibri/rows-2137f8b9.js +0 -4
  670. package/dist/kolibri/show-565151f8.js +0 -4
  671. package/dist/kolibri/suggestions-456f78ed.js +0 -4
  672. package/dist/kolibri/tab-index-e11959e4.js +0 -4
  673. package/dist/kolibri/tooltip-align-92a123e0.js +0 -4
  674. package/dist/kolibri/validation-670f291e.js +0 -4
  675. /package/dist/kolibri/{a11y.tipps-a79effa1.js.map → a11y.tipps-b5477bd5.js.map} +0 -0
  676. /package/dist/kolibri/{align-29085133.js.map → align-4b5623a0.js.map} +0 -0
  677. /package/dist/kolibri/{alignment-89119497.js.map → alignment-e19b28a7.js.map} +0 -0
  678. /package/dist/kolibri/{app-globals-c4123edf.js.map → app-globals-951ab4fc.js.map} +0 -0
  679. /package/dist/kolibri/{aria-current-3dc2e010.js.map → aria-current-ad7fd986.js.map} +0 -0
  680. /package/dist/kolibri/{color-df35b0e5.js.map → color-ea1fcf50.js.map} +0 -0
  681. /package/dist/kolibri/{controller-b30ccdd1.js.map → controller-167b1804.js.map} +0 -0
  682. /package/dist/kolibri/{controller-450b4da9.js.map → controller-3adef2c5.js.map} +0 -0
  683. /package/dist/kolibri/{controller-462e6487.js.map → controller-487bbb84.js.map} +0 -0
  684. /package/dist/kolibri/{controller-icon-786ee7b4.js.map → controller-icon-81c1d3ba.js.map} +0 -0
  685. /package/dist/kolibri/{custom-class-b8653b22.js.map → custom-class-6b2f969c.js.map} +0 -0
  686. /package/dist/kolibri/{devtools-4952d5e3.js.map → devtools-daa1a10e.js.map} +0 -0
  687. /package/dist/kolibri/{has-closer-3a6407b7.js.map → has-closer-5abbbc80.js.map} +0 -0
  688. /package/dist/kolibri/{hide-label-eff4095b.js.map → hide-label-ff8dee89.js.map} +0 -0
  689. /package/dist/kolibri/{image-source-836428b9.js.map → image-source-27086675.js.map} +0 -0
  690. /package/dist/kolibri/{label-690befc4.js.map → label-00203940.js.map} +0 -0
  691. /package/dist/kolibri/{open-148235d0.js.map → open-4a5d7b3b.js.map} +0 -0
  692. /package/dist/kolibri/{prop.validators-e5a112ea.js.map → prop.validators-a73a5d11.js.map} +0 -0
  693. /package/dist/kolibri/{rows-2137f8b9.js.map → rows-9d616b00.js.map} +0 -0
  694. /package/dist/kolibri/{show-565151f8.js.map → show-9954c9fd.js.map} +0 -0
  695. /package/dist/kolibri/{suggestions-456f78ed.js.map → suggestions-ea95c2ca.js.map} +0 -0
  696. /package/dist/kolibri/{tab-index-e11959e4.js.map → tab-index-bfaa121e.js.map} +0 -0
  697. /package/dist/kolibri/{tooltip-align-92a123e0.js.map → tooltip-align-483a9b9c.js.map} +0 -0
  698. /package/dist/kolibri/{validation-670f291e.js.map → validation-07a7b565.js.map} +0 -0
  699. /package/dist/kolibri/{validation-53473433.js.map → validation-c75d7638.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"validation-670f291e.js","mappings":";;;;;;MAUa,aAAa,GAAG,CAC5B,SAAiB,EACjB,SAIC,EACD,KAAsC;IAEtC,oBAAoB,CACnB,SAAS,EACT,QAAQ,EACR,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,KAAK,OAAQ,IAAiB,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAQ,IAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,EACtI,KAAK,CACL,CAAC;IACF,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;;;;","names":[],"sources":["src/components/nav/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { HrefProp } from '../../types/props/href';\nimport { LabelProp } from '../../types/props/label';\nimport { uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { watchJsonArrayString } from '../../utils/prop.validators';\n\ntype HrefOrLabelProp = HrefProp | LabelProp;\n\nexport const watchNavLinks = (\n\tclassName: string,\n\tcomponent: Generic.Element.Component & {\n\t\tstate: {\n\t\t\t_links: HrefOrLabelProp[];\n\t\t};\n\t},\n\tvalue?: Stringified<HrefOrLabelProp[]>\n): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_links',\n\t\t(link) => typeof link === 'object' && (typeof (link as HrefProp)._href === 'string' || typeof (link as LabelProp)._label === 'string'),\n\t\tvalue\n\t);\n\tuiUxHintMillerscheZahl(className, component.state._links.length);\n};\n"],"version":3}
1
+ {"file":"validation-07a7b565.js","mappings":";;;;;;MAUa,aAAa,GAAG,CAC5B,SAAiB,EACjB,SAIC,EACD,KAAsC;IAEtC,oBAAoB,CACnB,SAAS,EACT,QAAQ,EACR,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,KAAK,OAAQ,IAAiB,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAQ,IAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,EACtI,KAAK,CACL,CAAC;IACF,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;;;;","names":[],"sources":["src/components/nav/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { HrefProp } from '../../types/props/href';\nimport { LabelProp } from '../../types/props/label';\nimport { uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { watchJsonArrayString } from '../../utils/prop.validators';\n\ntype HrefOrLabelProp = HrefProp | LabelProp;\n\nexport const watchNavLinks = (\n\tclassName: string,\n\tcomponent: Generic.Element.Component & {\n\t\tstate: {\n\t\t\t_links: HrefOrLabelProp[];\n\t\t};\n\t},\n\tvalue?: Stringified<HrefOrLabelProp[]>\n): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_links',\n\t\t(link) => typeof link === 'object' && (typeof (link as HrefProp)._href === 'string' || typeof (link as LabelProp)._label === 'string'),\n\t\tvalue\n\t);\n\tuiUxHintMillerscheZahl(className, component.state._links.length);\n};\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{w as watchValidator}from"./prop.validators-a73a5d11.js";const watchHeadingLevel=(a,e)=>{watchValidator(a,"_level",(a=>"number"==typeof a&&0<=a&&a<=6),new Set(["Number {0, 1, 2, 3, 4, 5, 6}"]),e,{defaultValue:1,required:!0})};export{watchHeadingLevel as w};
@@ -1 +1 @@
1
- {"file":"validation-53473433.js","mappings":";;;;;MAIa,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAc;IACrF,cAAc,CACb,SAAS,EACT,QAAQ,EACR,CAAC,KAAK;QACL,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;KAC7D,EACD,IAAI,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAC,EACzC,KAAK,EACL;QAEC,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH;;;;","names":[],"sources":["src/components/heading/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchValidator } from '../../utils/prop.validators';\n\nexport const watchHeadingLevel = (component: Generic.Element.Component, value?: number): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t'_level',\n\t\t(value): boolean => {\n\t\t\treturn typeof value === 'number' && 0 <= value && value <= 6;\n\t\t},\n\t\tnew Set(['Number {0, 1, 2, 3, 4, 5, 6}']),\n\t\tvalue,\n\t\t{\n\t\t\t// TODO: options not in the validator\n\t\t\tdefaultValue: 1,\n\t\t\trequired: true,\n\t\t}\n\t);\n};\n"],"version":3}
1
+ {"file":"validation-c75d7638.js","mappings":";;;;;MAIa,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAc;IACrF,cAAc,CACb,SAAS,EACT,QAAQ,EACR,CAAC,KAAK;QACL,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;KAC7D,EACD,IAAI,GAAG,CAAC,CAAC,8BAA8B,CAAC,CAAC,EACzC,KAAK,EACL;QAEC,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH;;;;","names":[],"sources":["src/components/heading/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchValidator } from '../../utils/prop.validators';\n\nexport const watchHeadingLevel = (component: Generic.Element.Component, value?: number): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t'_level',\n\t\t(value): boolean => {\n\t\t\treturn typeof value === 'number' && 0 <= value && value <= 6;\n\t\t},\n\t\tnew Set(['Number {0, 1, 2, 3, 4, 5, 6}']),\n\t\tvalue,\n\t\t{\n\t\t\t// TODO: options not in the validator\n\t\t\tdefaultValue: 1,\n\t\t\trequired: true,\n\t\t}\n\t);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{L as e}from"./dev.utils-5f359e41.js";const i=new Set,n=(n,r)=>{(!1===i.has(n)||(null==r?void 0:r.force))&&(i.add(n),e.debug([n].concat((null==r?void 0:r.details)||[]),{classifier:"✋ a11y",overwriteStyle:"; background-color: #09f"}))},o=new Set,r=(n,i)=>{(!1===o.has(n)||(null==i?void 0:i.force))&&(o.add(n),e.warn([n].concat((null==i?void 0:i.details)||[]),{classifier:"🔥 deprecated",overwriteStyle:"; background-color: #f00"}))},t=new Set,s=(n,i)=>{(!1===t.has(n)||(null==i?void 0:i.force))&&(t.add(n),e.debug([n].concat((null==i?void 0:i.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},l=(n,i)=>{(!1===t.has(n)||(null==i?void 0:i.force))&&(t.add(n),e.warn([n].concat((null==i?void 0:i.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},a=new Set,d=(n,i=!1,r)=>{(!1===a.has(n)||(null==r?void 0:r.force))&&(a.add(n),n+=!0===i?" ✅":"",e.debug([n].concat((null==r?void 0:r.details)||[]),{classifier:"🌟 feature",overwriteStyle:"; background-color: #309"}))};s("Wir freuen uns über jedes Feedback, Kommentare, Screenshots oder Demo-Links von einer auf KoliBri-basierenden Anwendung (kolibri@itzbund.de). Vielen Dank!");const c=new Set,u=(n,i)=>{(!1===c.has(n)||(null==i?void 0:i.force))&&(c.add(n),e.debug([n].concat((null==i?void 0:i.details)||[]),{classifier:"📑 ui/ux",overwriteStyle:"; background-color: #060;"}))},v=()=>{n('"Disabled" schränkt die Zugänglichkeit und Sichtbarkeit ein. Wir empfehlen aus Sicht der Barrierefreiheit readonly- statt disabled-Attribut zu verwenden.\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae')},f=e=>{"string"==typeof e&&""!==e||n("Manche Strukturelemente, wie bspw. der nav-Tag, können mehrfach in einer Webseite verwendet werden. Damit die gleichnamigen Strukturelemente voneinander unterschieden werden können, ist es erforderlich ein Aria-Label zu setzen.\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns")},h=(e,n=8)=>{n>7&&u(`[${e}] Innerhalb von Navigationsstrukturen wird empfohlen nicht mehr als 7 Menüpunkte zu verwenden.\n\nLinks:\n- https://de.ryte.com/wiki/Millersche_Zahl\n- https://de.wikipedia.org/wiki/Millersche_Zahl`)};export{n as a,f as b,h as c,s as d,r as e,d as f,v as g,l as h,u};
4
+ import{L as e}from"./dev.utils-232c068c.js";const i=new Set,n=(n,r)=>{(!1===i.has(n)||(null==r?void 0:r.force))&&(i.add(n),e.debug([n].concat((null==r?void 0:r.details)||[]),{classifier:"✋ a11y",overwriteStyle:"; background-color: #09f"}))},o=new Set,r=(n,i)=>{(!1===o.has(n)||(null==i?void 0:i.force))&&(o.add(n),e.warn([n].concat((null==i?void 0:i.details)||[]),{classifier:"🔥 deprecated",overwriteStyle:"; background-color: #f00"}))},t=new Set,s=(n,i)=>{(!1===t.has(n)||(null==i?void 0:i.force))&&(t.add(n),e.debug([n].concat((null==i?void 0:i.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},l=(n,i)=>{(!1===t.has(n)||(null==i?void 0:i.force))&&(t.add(n),e.warn([n].concat((null==i?void 0:i.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},a=new Set,d=(n,i=!1,r)=>{(!1===a.has(n)||(null==r?void 0:r.force))&&(a.add(n),n+=!0===i?" ✅":"",e.debug([n].concat((null==r?void 0:r.details)||[]),{classifier:"🌟 feature",overwriteStyle:"; background-color: #309"}))};s("Wir freuen uns über jedes Feedback, Kommentare, Screenshots oder Demo-Links von einer auf KoliBri-basierenden Anwendung (kolibri@itzbund.de). Vielen Dank!");const c=new Set,u=(n,i)=>{(!1===c.has(n)||(null==i?void 0:i.force))&&(c.add(n),e.debug([n].concat((null==i?void 0:i.details)||[]),{classifier:"📑 ui/ux",overwriteStyle:"; background-color: #060;"}))},v=()=>{n('"Disabled" schränkt die Zugänglichkeit und Sichtbarkeit ein. Wir empfehlen aus Sicht der Barrierefreiheit readonly- statt disabled-Attribut zu verwenden.\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae')},f=e=>{"string"==typeof e&&""!==e||n("Manche Strukturelemente, wie bspw. der nav-Tag, können mehrfach in einer Webseite verwendet werden. Damit die gleichnamigen Strukturelemente voneinander unterschieden werden können, ist es erforderlich ein Aria-Label zu setzen.\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns")},h=(e,n=8)=>{n>7&&u(`[${e}] Innerhalb von Navigationsstrukturen wird empfohlen nicht mehr als 7 Menüpunkte zu verwenden.\n\nLinks:\n- https://de.ryte.com/wiki/Millersche_Zahl\n- https://de.wikipedia.org/wiki/Millersche_Zahl`)};export{n as a,f as b,h as c,s as d,r as e,d as f,v as g,l as h,u};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{v as a}from"./alignment-e19b28a7.js";const n=(n,o)=>{a(n,"_align",o)};export{n as v};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{w as t}from"./prop.validators-a73a5d11.js";const o=new Set(['"left", "right"']),e=new Set(['"bottom", "top"']),a=new Set([...o,...e]),s=(o,e,p)=>{t(o,e,(t=>"bottom"===t||"left"===t||"right"===t||"top"===t),a,p,{defaultValue:"top"})};export{s as v};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{e as o,S as t}from"./index-c88c7ecf.js";import{a as s}from"./index-0b7aa54b.js";import{r as a}from"./index-6f37dccf.js";import{L as e}from"./dev.utils-232c068c.js";import{p as i}from"./reuse-d79ab469.js";const r=async()=>{s((a=>(a.shadowRoot instanceof ShadowRoot&&o(a,t(a)),"default"))),await a([],[]),import("./devtools-daa1a10e.js").then((o=>{"object"==typeof o&&null!==o&&"function"==typeof o.initialize&&o.initialize()})).catch((o=>{e.error(o)})),i&&import("./index-0e51998c.js")},f=r;export{f as g};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{d as a,w as t}from"./prop.validators-a73a5d11.js";const o=(t,e)=>{a(t,"_role",e)},s=(t,e)=>{a(t,"_ariaControls",e)},e=(a,e,o)=>{t(a,e,(a=>"date"===a||"location"===a||"page"===a||"step"===a||"time"===a||!0===a||!1===a),new Set(["String {data, location, page, step, time}","boolean"]),o)},r=(a,t)=>{e(a,"_ariaCurrent",t)},n=(a,t)=>{e(a,"_listenAriaCurrent",t)};export{r as a,n as b,o as c,s as v};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{d as t}from"./prop.validators-a73a5d11.js";import{d as e,h as i}from"./a11y.tipps-b5477bd5.js";import{d as s}from"./dev.utils-232c068c.js";const o=(e,o,s)=>{t(e,"_name",o,s)};class a{constructor(t,o,i){var a,r;if(this.setFormAssociatedValue=t=>{var o;const s=null===(o=this.formAssociated)||void 0===o?void 0:o.getAttribute("name");null!==s&&""!==s||e(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);const i=this.tryToStringifyValue(t);this.syncValue(t,i,this.formAssociated),this.syncValue(t,i,this.syncToOwnInput)},this.component=t,this.host=this.findHostWithShadowRoot(i),this.name=o,s()){switch(null===(a=this.host)||void 0===a||a.querySelectorAll("input,select,textarea").forEach((t=>{var e;null===(e=this.host)||void 0===e||e.removeChild(t)})),this.name){case"button":this.formAssociated=document.createElement("button");break;case"select":this.formAssociated=document.createElement("select"),this.formAssociated.setAttribute("multiple","");break;case"textarea":this.formAssociated=document.createElement("textarea");break;default:this.formAssociated=document.createElement("input"),this.formAssociated.setAttribute("type","hidden")}this.formAssociated.setAttribute("aria-hidden","true"),this.formAssociated.setAttribute("data-form-associated",""),this.formAssociated.setAttribute("hidden",""),null===(r=this.host)||void 0===r||r.appendChild(this.formAssociated)}}findHostWithShadowRoot(t){for(;null===(null==t?void 0:t.shadowRoot)&&t!==document.body;)(t=null==t?void 0:t.parentNode).host&&(t=t.host);return t}setAttribute(t,e,o){if(s())try{if("boolean"!=typeof(o="object"==typeof o&&null!==o?JSON.stringify(o):o)&&"number"!=typeof o&&"string"!=typeof o)throw new Error("Invalid value type: "+typeof o);null==e||e.setAttribute(t,`${o}`)}catch(o){null==e||e.removeAttribute(t)}}tryToStringifyValue(t){try{return"object"==typeof t&&null!==t?JSON.stringify(t).toString():null==t?null:t.toString()}catch(t){return i(`The form field raw value is not able to stringify! ${t}`),""}}syncValue(t,e,o){if(o)if("select"===this.name)o.querySelectorAll("option").forEach((t=>{o.removeChild(t)})),Array.isArray(t)&&t.forEach((t=>{const e=this.tryToStringifyValue(t);if("string"==typeof e){const t=document.createElement("option");t.setAttribute("value",e),t.setAttribute("selected",""),o.appendChild(t)}}));else"string"==typeof e?(o.setAttribute("value",e),o.value=e):(o.removeAttribute("value"),o.value="")}validateName(t){o(this.component,t,{hooks:{afterPatch:()=>{this.setAttribute("name",this.formAssociated,this.component.state._name)}}}),void 0===t&&e("Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.")}validateSyncValueBySelector(t){if(s()&&"string"==typeof t){const e=document.querySelector(t);e&&(this.syncToOwnInput=e)}}componentWillLoad(){this.validateName(this.component._name),this.validateSyncValueBySelector(this.component._syncValueBySelector)}}export{a as A};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validateName","component","value","options","watchString","AssociatedInputController","constructor","name","host","this","setFormAssociatedValue","rawValue","_a","formAssociated","getAttribute","devHint","strValue","tryToStringifyValue","syncValue","syncToOwnInput","findHostWithShadowRoot","getExperimentalMode","querySelectorAll","forEach","el","removeChild","document","createElement","setAttribute","_b","appendChild","shadowRoot","body","parentNode","qualifiedName","element","JSON","stringify","Error","e","removeAttribute","toString","undefined","devWarning","associatedElement","Array","isArray","rawValueItem","strValueItem","option","hooks","afterPatch","state","_name","validateSyncValueBySelector","input","querySelector","componentWillLoad","_syncValueBySelector"],"sources":["src/types/props/name.ts","src/components/input-adapter-leanup/associated.controller.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString, WatchStringOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type NamePropType = string;\n\n/**\n * Defines the technical name of an input field.\n */\nexport type PropName = {\n\tname: NamePropType;\n};\n\n/* validator */\nexport const validateName = (component: Generic.Element.Component, value?: NamePropType, options?: WatchStringOptions): void => {\n\twatchString(component, '_name', value, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { NamePropType, validateName } from '../../types/props/name';\nimport { PropSyncValueBySelector, SyncValueBySelectorPropType } from '../../types/props/sync-value-by-selector';\nimport { StencilUnknown } from '../../types/unknown';\nimport { devHint, devWarning } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\tname: string;\n} & PropSyncValueBySelector;\ntype Props = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype Watches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class AssociatedInputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprotected readonly name: string;\n\tprotected readonly host?: HTMLElement;\n\n\tpublic readonly formAssociated?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\tpublic syncToOwnInput?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tthis.component = component;\n\t\tthis.host = this.findHostWithShadowRoot(host);\n\t\tthis.name = name;\n\n\t\tif (getExperimentalMode()) {\n\t\t\tthis.host?.querySelectorAll('input,select,textarea').forEach((el) => {\n\t\t\t\tthis.host?.removeChild(el);\n\t\t\t});\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'button':\n\t\t\t\t\tthis.formAssociated = document.createElement('button');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'select':\n\t\t\t\t\tthis.formAssociated = document.createElement('select');\n\t\t\t\t\tthis.formAssociated.setAttribute('multiple', '');\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'textarea':\n\t\t\t\t\tthis.formAssociated = document.createElement('textarea');\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.formAssociated = document.createElement('input');\n\t\t\t\t\tthis.formAssociated.setAttribute('type', 'hidden');\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tthis.formAssociated.setAttribute('aria-hidden', 'true');\n\t\t\tthis.formAssociated.setAttribute('data-form-associated', '');\n\t\t\tthis.formAssociated.setAttribute('hidden', '');\n\t\t\tthis.host?.appendChild(this.formAssociated);\n\t\t}\n\t}\n\n\t/**\n\t * The associated elements must not reside within the ShadowRoot and must\n\t * reside as children in the host to be recognized by native forms.\n\t */\n\tprivate findHostWithShadowRoot(host?: HTMLElement): HTMLElement | undefined {\n\t\twhile (host?.shadowRoot === null && host !== document.body) {\n\t\t\thost = host?.parentNode as HTMLElement;\n\t\t\tif ((host as unknown as ShadowRoot).host) {\n\t\t\t\thost = (host as unknown as ShadowRoot).host as HTMLElement;\n\t\t\t}\n\t\t}\n\t\treturn host;\n\t}\n\n\tprotected setAttribute(qualifiedName: string, element?: HTMLElement, value?: string | number | boolean) {\n\t\tif (getExperimentalMode()) {\n\t\t\ttry {\n\t\t\t\tvalue = typeof value === 'object' && value !== null ? JSON.stringify(value) : value;\n\t\t\t\tif (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string') {\n\t\t\t\t\telement?.setAttribute(qualifiedName, `${value as string}`);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Invalid value type: ${typeof value}`);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\telement?.removeAttribute(qualifiedName);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * We need to stringify the value, for the setAttribute method.\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes\n\t * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/attributes#value\n\t *\n\t * TODO: It is possible that the value are a cyclic object value. So we need a custom\n\t * JSON.stringify method from outside to convert it to string.\n\t */\n\tprivate tryToStringifyValue(value: StencilUnknown): string | null {\n\t\ttry {\n\t\t\treturn typeof value === 'object' && value !== null ? JSON.stringify(value).toString() : value === null || value === undefined ? null : value.toString();\n\t\t} catch (e) {\n\t\t\tdevWarning(`The form field raw value is not able to stringify! ${e as string}`);\n\t\t\treturn '';\n\t\t}\n\t}\n\n\t/**\n\t * We try to support native form-associated custom elements.\n\t *\n\t * @see https://github.com/public-ui/kolibri/discussions/2821\n\t */\n\tpublic readonly setFormAssociatedValue = (rawValue: StencilUnknown) => {\n\t\tconst name = this.formAssociated?.getAttribute('name');\n\t\tif (name === null || name === '') {\n\t\t\tdevHint(` The form field (${this.name}) must have a name attribute to be form-associated. Please define the _name attribute.`);\n\t\t}\n\t\tconst strValue = this.tryToStringifyValue(rawValue);\n\t\tthis.syncValue(rawValue, strValue, this.formAssociated);\n\t\tthis.syncValue(rawValue, strValue, this.syncToOwnInput);\n\t};\n\n\tprivate syncValue(\n\t\trawValue: StencilUnknown,\n\t\tstrValue: string | null,\n\t\tassociatedElement?: HTMLButtonElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement\n\t) {\n\t\tif (associatedElement) {\n\t\t\tswitch (this.name) {\n\t\t\t\tcase 'select':\n\t\t\t\t\t(associatedElement as HTMLSelectElement).querySelectorAll('option').forEach((el) => {\n\t\t\t\t\t\t(associatedElement as HTMLSelectElement).removeChild(el);\n\t\t\t\t\t});\n\t\t\t\t\tif (Array.isArray(rawValue)) {\n\t\t\t\t\t\trawValue.forEach((rawValueItem) => {\n\t\t\t\t\t\t\tconst strValueItem = this.tryToStringifyValue(rawValueItem as string);\n\t\t\t\t\t\t\tif (typeof strValueItem === 'string') {\n\t\t\t\t\t\t\t\tconst option = document.createElement('option');\n\t\t\t\t\t\t\t\toption.setAttribute('value', strValueItem);\n\t\t\t\t\t\t\t\toption.setAttribute('selected', '');\n\t\t\t\t\t\t\t\t(associatedElement as HTMLSelectElement).appendChild(option);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (typeof strValue === 'string') {\n\t\t\t\t\t\tassociatedElement.setAttribute('value', strValue);\n\t\t\t\t\t\tassociatedElement.value = strValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassociatedElement.removeAttribute('value');\n\t\t\t\t\t\tassociatedElement.value = '';\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic validateName(value?: NamePropType): void {\n\t\tvalidateName(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: () => {\n\t\t\t\t\tthis.setAttribute('name', this.formAssociated, this.component.state._name as string);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(\n\t\t\t\t`Ein Name am Eingabefeldern oder Schalter ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion und für das statische Versenden des Eingabefeldes relevant sein.`\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic validateSyncValueBySelector(value?: SyncValueBySelectorPropType): void {\n\t\tif (getExperimentalMode() && typeof value === 'string') {\n\t\t\tconst input = document.querySelector(value) as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\t\t\tif (input /* SSR instanceof HTMLInputElement */) {\n\t\t\t\tthis.syncToOwnInput = input;\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateName(this.component._name);\n\t\tthis.validateSyncValueBySelector(this.component._syncValueBySelector);\n\t}\n}\n"],"mappings":";;;kJAeO,MAAMA,EAAe,CAACC,EAAsCC,EAAsBC,KACxFC,EAAYH,EAAW,QAASC,EAAOC,EAAQ,E,MCDnCE,EAQZ,WAAAC,CAAmBL,EAA8CM,EAAcC,G,QAoF/DC,KAAAC,uBAA0BC,I,MACzC,MAAMJ,GAAOK,EAAAH,KAAKI,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,aAAa,QAC/C,GAAIP,IAAS,MAAQA,IAAS,GAAI,CACjCQ,EAAQ,oBAAoBN,KAAKF,6F,CAElC,MAAMS,EAAWP,KAAKQ,oBAAoBN,GAC1CF,KAAKS,UAAUP,EAAUK,EAAUP,KAAKI,gBACxCJ,KAAKS,UAAUP,EAAUK,EAAUP,KAAKU,eAAe,EA1FvDV,KAAKR,UAAYA,EACjBQ,KAAKD,KAAOC,KAAKW,uBAAuBZ,GACxCC,KAAKF,KAAOA,EAEZ,GAAIc,IAAuB,EAC1BT,EAAAH,KAAKD,QAAI,MAAAI,SAAA,SAAAA,EAAEU,iBAAiB,yBAAyBC,SAASC,I,OAC7DZ,EAAAH,KAAKD,QAAI,MAAAI,SAAA,SAAAA,EAAEa,YAAYD,EAAG,IAE3B,OAAQf,KAAKF,MACZ,IAAK,SACJE,KAAKI,eAAiBa,SAASC,cAAc,UAC7C,MACD,IAAK,SACJlB,KAAKI,eAAiBa,SAASC,cAAc,UAC7ClB,KAAKI,eAAee,aAAa,WAAY,IAC7C,MACD,IAAK,WACJnB,KAAKI,eAAiBa,SAASC,cAAc,YAC7C,MACD,QACClB,KAAKI,eAAiBa,SAASC,cAAc,SAC7ClB,KAAKI,eAAee,aAAa,OAAQ,UACzC,MAEFnB,KAAKI,eAAee,aAAa,cAAe,QAChDnB,KAAKI,eAAee,aAAa,uBAAwB,IACzDnB,KAAKI,eAAee,aAAa,SAAU,KAC3CC,EAAApB,KAAKD,QAAI,MAAAqB,SAAA,SAAAA,EAAEC,YAAYrB,KAAKI,e,EAQtB,sBAAAO,CAAuBZ,GAC9B,OAAOA,IAAI,MAAJA,SAAI,SAAJA,EAAMuB,cAAe,MAAQvB,IAASkB,SAASM,KAAM,CAC3DxB,EAAOA,IAAI,MAAJA,SAAI,SAAJA,EAAMyB,WACb,GAAKzB,EAA+BA,KAAM,CACzCA,EAAQA,EAA+BA,I,EAGzC,OAAOA,C,CAGE,YAAAoB,CAAaM,EAAuBC,EAAuBjC,GACpE,GAAImB,IAAuB,CAC1B,IACCnB,SAAeA,IAAU,UAAYA,IAAU,KAAOkC,KAAKC,UAAUnC,GAASA,EAC9E,UAAWA,IAAU,kBAAoBA,IAAU,iBAAmBA,IAAU,SAAU,CACzFiC,IAAO,MAAPA,SAAO,SAAPA,EAASP,aAAaM,EAAe,GAAGhC,I,KAClC,CACN,MAAM,IAAIoC,MAAM,8BAA8BpC,I,EAE9C,MAAOqC,GACRJ,IAAO,MAAPA,SAAO,SAAPA,EAASK,gBAAgBN,E,GAcpB,mBAAAjB,CAAoBf,GAC3B,IACC,cAAcA,IAAU,UAAYA,IAAU,KAAOkC,KAAKC,UAAUnC,GAAOuC,WAAavC,IAAU,MAAQA,IAAUwC,UAAY,KAAOxC,EAAMuC,U,CAC5I,MAAOF,GACRI,EAAW,sDAAsDJ,KACjE,MAAO,E,EAmBD,SAAArB,CACPP,EACAK,EACA4B,GAEA,GAAIA,EAAmB,CACtB,OAAQnC,KAAKF,MACZ,IAAK,SACHqC,EAAwCtB,iBAAiB,UAAUC,SAASC,IAC3EoB,EAAwCnB,YAAYD,EAAG,IAEzD,GAAIqB,MAAMC,QAAQnC,GAAW,CAC5BA,EAASY,SAASwB,IACjB,MAAMC,EAAevC,KAAKQ,oBAAoB8B,GAC9C,UAAWC,IAAiB,SAAU,CACrC,MAAMC,EAASvB,SAASC,cAAc,UACtCsB,EAAOrB,aAAa,QAASoB,GAC7BC,EAAOrB,aAAa,WAAY,IAC/BgB,EAAwCd,YAAYmB,E,KAIxD,MACD,QACC,UAAWjC,IAAa,SAAU,CACjC4B,EAAkBhB,aAAa,QAASZ,GACxC4B,EAAkB1C,MAAQc,C,KACpB,CACN4B,EAAkBJ,gBAAgB,SAClCI,EAAkB1C,MAAQ,E,IAMxB,YAAAF,CAAaE,GACnBF,EAAaS,KAAKR,UAAWC,EAAO,CACnCgD,MAAO,CACNC,WAAY,KACX1C,KAAKmB,aAAa,OAAQnB,KAAKI,eAAgBJ,KAAKR,UAAUmD,MAAMC,MAAgB,KAIvF,UAAWnD,IAAU,YAAa,CACjCa,EACC,qL,EAKI,2BAAAuC,CAA4BpD,GAClC,GAAImB,YAAgCnB,IAAU,SAAU,CACvD,MAAMqD,EAAQ7B,SAAS8B,cAActD,GACrC,GAAIqD,EAA6C,CAChD9C,KAAKU,eAAiBoC,C,GAKlB,iBAAAE,GACNhD,KAAKT,aAAaS,KAAKR,UAAUoD,OACjC5C,KAAK6C,4BAA4B7C,KAAKR,UAAUyD,qB"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as e,b as r,w as a}from"./prop.validators-e5a112ea.js";import{a as t}from"./a11y.tipps-a79effa1.js";var n={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},l=n,o=s,i={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function s(e){var r,a,o=[],t=1;if("string"==typeof e)if(e=e.toLowerCase(),l[e])o=l[e].slice(),a="rgb";else if("transparent"===e)t=0,a="rgb",o=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(e)){var n=e.slice(1);t=1,(g=n.length)<=4?(o=[parseInt(n[0]+n[0],16),parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16)],4===g&&(t=parseInt(n[3]+n[3],16)/255)):(o=[parseInt(n[0]+n[1],16),parseInt(n[2]+n[3],16),parseInt(n[4]+n[5],16)],8===g&&(t=parseInt(n[6]+n[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0),a="rgb"}else if(r=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(e)){var s=r[1],u="rgb"===s;a=n=s.replace(/a$/,"");var g="cmyk"===n?4:"gray"===n?1:3;o=r[2].trim().split(/\s*[,\/]\s*|\s+/).map((function(e,r){if(/%$/.test(e))return r===g?parseFloat(e)/100:"rgb"===n?255*parseFloat(e)/100:parseFloat(e);if("h"===n[r]){if(/deg$/.test(e))return parseFloat(e);if(void 0!==i[e])return i[e]}return parseFloat(e)})),s===n&&o.push(1),t=u||void 0===o[g]?1:o[g],o=o.slice(0,g)}else e.length>10&&/[0-9](?:\s|\/)/.test(e)&&(o=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),a=e.match(/([a-z])/gi).join("").toLowerCase());else isNaN(e)?Array.isArray(e)||e.length?(o=[e[0],e[1],e[2]],a="rgb",t=4===e.length?e[3]:1):e instanceof Object&&(null!=e.r||null!=e.red||null!=e.R?(a="rgb",o=[e.r||e.red||e.R||0,e.g||e.green||e.G||0,e.b||e.blue||e.B||0]):(a="hsl",o=[e.h||e.hue||e.H||0,e.s||e.saturation||e.S||0,e.l||e.lightness||e.L||e.b||e.brightness]),t=e.a||e.alpha||e.opacity||1,null!=e.opacity&&(t/=100)):(a="rgb",o=[e>>>16,(65280&e)>>>8,255&e]);return{space:a,values:o,alpha:t}}var u=o,g=function(e){var r;Array.isArray(e)&&e.raw&&(e=String.raw.apply(null,arguments));var a=u(e);if(!a.space)return[];var o=[0,0,0],t="h"===a.space[0]?[360,100,100]:[255,255,255];return(r=Array(3))[0]=Math.min(Math.max(a.values[0],o[0]),t[0]),r[1]=Math.min(Math.max(a.values[1],o[1]),t[1]),r[2]=Math.min(Math.max(a.values[2],o[2]),t[2]),"h"===a.space[0]&&(r=f(r)),r.push(Math.min(Math.max(a.alpha,0),1)),r};function f(e){var r,a,o,t,n,l=e[0]/360,i=e[1]/100,s=e[2]/100,u=0;if(0===i)return[n=255*s,n,n];for(r=2*s-(a=s<.5?s*(1+i):s+i-s*i),t=[0,0,0];u<3;)(o=l+1/3*-(u-1))<0?o++:o>1&&o--,n=6*o<1?r+6*(a-r)*o:2*o<1?a:3*o<2?r+(a-r)*(2/3-o)*6:r,t[u++]=255*n;return t}const d=g,c=(e,r,a)=>(299*e+587*r+114*a)/1e3>=128?-1:1,p=(a,o,t,n=1)=>{const l=[Math.max(Math.min(Math.round(o[0]+n*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+n*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+n*Math.max(1,o[2]/100)),255),0)],i=r(e.hex(`rgba(${a.join(",")},1)`),e.hex(`rgba(${l.join(",")},1)`)),s=l[0]+l[1]+l[2];return 0===s||765===s||i>t?{background:a,foreground:l,contrast:i}:p(a,l,t,n)},h=new Map,y=(e,r,a,o=1)=>{if(h.has(e))return h.get(e);const t=p(e,r,a,o);return h.set(e,t),t},b=(r,a=7)=>{let o=[0,0,0,1],t=[255,255,255,1];"string"==typeof r?(o=d(r),t=o):"object"==typeof r&&null!==r&&"string"==typeof r.background&&"string"==typeof r.foreground&&(o=d(r.background),t="string"==typeof r.foreground?d(r.foreground):o);const n=c(o[0],o[1],o[2]),l=y([o[0],o[1],o[2]],[t[0],t[1],t[2]],a,n);return t=[...l.foreground,1],{background:e.hex(`rgba(${o.join(",")})`),foreground:e.hex(`rgba(${t.join(",")})`),contrast:l.contrast}},v=/^#((\d|[a-f]){8}|(\d|[a-f]){6}|(\d|[a-f]){3,4})$/i;function m(e){return v.test(e)}function k(e){if(e.startsWith("{"))try{const r=JSON.parse(e);if(M(r))return{type:"ColorPair",value:r};if($(r))return{type:"DeprecatedColorPair",value:r}}catch(e){return{type:null,value:null}}return{type:null,value:null}}function w(e){if(e)if("string"==typeof e){if(m(e))return{type:"string",valid:!0,value:e};{const r=k(e);if(r.value)return{type:r.type,valid:!0,value:r.value}}}else{const r=e;if(M(r))return{type:"ColorPair",valid:!0,value:r};const a=e;if($(a))return{type:"DeprecatedColorPair",valid:!0,value:a}}return{type:null,valid:!1,value:""}}function M(e){return!("object"!=typeof e||!e||"string"!=typeof e.backgroundColor||!("string"==typeof e.foregroundColor||e.foregroundColor&&"string"==typeof e.foregroundColor.primary&&"string"==typeof e.foregroundColor.secondary&&"string"==typeof e.foregroundColor.neutral))}function $(e){return"object"==typeof e&&e&&"string"==typeof e.backgroundColor&&"string"==typeof e.color}function C(e){const r=w(e);switch(r.type){case null:return!1;case"string":case"ColorPair":case"DeprecatedColorPair":return r.valid}}const q=(e,r,o)=>{a(e,"_color",C,new Set(["rgb in hex","ColorPair"]),r,o)},P=e=>{var r;let a;const o=w(e);switch(o.type){case"string":a=b(o.value);break;case"ColorPair":case"DeprecatedColorPair":{const e=o.value,t=o.value;let n="";t.color?n=t.color:"string"==typeof e.foregroundColor?n=e.foregroundColor:(null===(r=e.foregroundColor)||void 0===r?void 0:r.primary)&&(n=e.foregroundColor.primary),n&&"string"==typeof n||(n="#fff"),a=b({background:e.backgroundColor,foreground:n});break}case null:console.warn(`_color was empty or invalid (${JSON.stringify(e)})`),a=b({background:"#000",foreground:"#000"})}return a.contrast<7&&t(`[KolBadge] The contrast of ${a.contrast} (≥7, AAA) is to low, between the color pair ${a.background} and ${a.foreground}.`),{backgroundColor:a.background,foregroundColor:a.foreground}};export{d as c,P as h,q as v};
4
+ import{r as e,b as r,w as a}from"./prop.validators-a73a5d11.js";import{a as t}from"./a11y.tipps-b5477bd5.js";var n={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},l=n,o=s,i={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function s(e){var r,a,o=[],t=1;if("string"==typeof e)if(e=e.toLowerCase(),l[e])o=l[e].slice(),a="rgb";else if("transparent"===e)t=0,a="rgb",o=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(e)){var n=e.slice(1);t=1,(g=n.length)<=4?(o=[parseInt(n[0]+n[0],16),parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16)],4===g&&(t=parseInt(n[3]+n[3],16)/255)):(o=[parseInt(n[0]+n[1],16),parseInt(n[2]+n[3],16),parseInt(n[4]+n[5],16)],8===g&&(t=parseInt(n[6]+n[7],16)/255)),o[0]||(o[0]=0),o[1]||(o[1]=0),o[2]||(o[2]=0),a="rgb"}else if(r=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(e)){var s=r[1],u="rgb"===s;a=n=s.replace(/a$/,"");var g="cmyk"===n?4:"gray"===n?1:3;o=r[2].trim().split(/\s*[,\/]\s*|\s+/).map((function(e,r){if(/%$/.test(e))return r===g?parseFloat(e)/100:"rgb"===n?255*parseFloat(e)/100:parseFloat(e);if("h"===n[r]){if(/deg$/.test(e))return parseFloat(e);if(void 0!==i[e])return i[e]}return parseFloat(e)})),s===n&&o.push(1),t=u||void 0===o[g]?1:o[g],o=o.slice(0,g)}else e.length>10&&/[0-9](?:\s|\/)/.test(e)&&(o=e.match(/([0-9]+)/g).map((function(e){return parseFloat(e)})),a=e.match(/([a-z])/gi).join("").toLowerCase());else isNaN(e)?Array.isArray(e)||e.length?(o=[e[0],e[1],e[2]],a="rgb",t=4===e.length?e[3]:1):e instanceof Object&&(null!=e.r||null!=e.red||null!=e.R?(a="rgb",o=[e.r||e.red||e.R||0,e.g||e.green||e.G||0,e.b||e.blue||e.B||0]):(a="hsl",o=[e.h||e.hue||e.H||0,e.s||e.saturation||e.S||0,e.l||e.lightness||e.L||e.b||e.brightness]),t=e.a||e.alpha||e.opacity||1,null!=e.opacity&&(t/=100)):(a="rgb",o=[e>>>16,(65280&e)>>>8,255&e]);return{space:a,values:o,alpha:t}}var u=o,g=function(e){var r;Array.isArray(e)&&e.raw&&(e=String.raw.apply(null,arguments));var a=u(e);if(!a.space)return[];var o=[0,0,0],t="h"===a.space[0]?[360,100,100]:[255,255,255];return(r=Array(3))[0]=Math.min(Math.max(a.values[0],o[0]),t[0]),r[1]=Math.min(Math.max(a.values[1],o[1]),t[1]),r[2]=Math.min(Math.max(a.values[2],o[2]),t[2]),"h"===a.space[0]&&(r=f(r)),r.push(Math.min(Math.max(a.alpha,0),1)),r};function f(e){var r,a,o,t,n,l=e[0]/360,i=e[1]/100,s=e[2]/100,u=0;if(0===i)return[n=255*s,n,n];for(r=2*s-(a=s<.5?s*(1+i):s+i-s*i),t=[0,0,0];u<3;)(o=l+1/3*-(u-1))<0?o++:o>1&&o--,n=6*o<1?r+6*(a-r)*o:2*o<1?a:3*o<2?r+(a-r)*(2/3-o)*6:r,t[u++]=255*n;return t}const d=g,c=(e,r,a)=>(299*e+587*r+114*a)/1e3>=128?-1:1,p=(a,o,t,n=1)=>{const l=[Math.max(Math.min(Math.round(o[0]+n*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+n*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+n*Math.max(1,o[2]/100)),255),0)],i=r(e.hex(`rgba(${a.join(",")},1)`),e.hex(`rgba(${l.join(",")},1)`)),s=l[0]+l[1]+l[2];return 0===s||765===s||i>t?{background:a,foreground:l,contrast:i}:p(a,l,t,n)},h=new Map,y=(e,r,a,o=1)=>{if(h.has(e))return h.get(e);const t=p(e,r,a,o);return h.set(e,t),t},b=(r,a=7)=>{let o=[0,0,0,1],t=[255,255,255,1];"string"==typeof r?(o=d(r),t=o):"object"==typeof r&&null!==r&&"string"==typeof r.background&&"string"==typeof r.foreground&&(o=d(r.background),t="string"==typeof r.foreground?d(r.foreground):o);const n=c(o[0],o[1],o[2]),l=y([o[0],o[1],o[2]],[t[0],t[1],t[2]],a,n);return t=[...l.foreground,1],{background:e.hex(`rgba(${o.join(",")})`),foreground:e.hex(`rgba(${t.join(",")})`),contrast:l.contrast}},v=/^#((\d|[a-f]){8}|(\d|[a-f]){6}|(\d|[a-f]){3,4})$/i;function m(e){return v.test(e)}function k(e){if(e.startsWith("{"))try{const r=JSON.parse(e);if(M(r))return{type:"ColorPair",value:r};if($(r))return{type:"DeprecatedColorPair",value:r}}catch(e){return{type:null,value:null}}return{type:null,value:null}}function w(e){if(e)if("string"==typeof e){if(m(e))return{type:"string",valid:!0,value:e};{const r=k(e);if(r.value)return{type:r.type,valid:!0,value:r.value}}}else{const r=e;if(M(r))return{type:"ColorPair",valid:!0,value:r};const a=e;if($(a))return{type:"DeprecatedColorPair",valid:!0,value:a}}return{type:null,valid:!1,value:""}}function M(e){return!("object"!=typeof e||!e||"string"!=typeof e.backgroundColor||!("string"==typeof e.foregroundColor||e.foregroundColor&&"string"==typeof e.foregroundColor.primary&&"string"==typeof e.foregroundColor.secondary&&"string"==typeof e.foregroundColor.neutral))}function $(e){return"object"==typeof e&&e&&"string"==typeof e.backgroundColor&&"string"==typeof e.color}function C(e){const r=w(e);switch(r.type){case null:return!1;case"string":case"ColorPair":case"DeprecatedColorPair":return r.valid}}const q=(e,r,o)=>{a(e,"_color",C,new Set(["rgb in hex","ColorPair"]),r,o)},P=e=>{var r;let a;const o=w(e);switch(o.type){case"string":a=b(o.value);break;case"ColorPair":case"DeprecatedColorPair":{const e=o.value,t=o.value;let n="";t.color?n=t.color:"string"==typeof e.foregroundColor?n=e.foregroundColor:(null===(r=e.foregroundColor)||void 0===r?void 0:r.primary)&&(n=e.foregroundColor.primary),n&&"string"==typeof n||(n="#fff"),a=b({background:e.backgroundColor,foreground:n});break}case null:console.warn(`_color was empty or invalid (${JSON.stringify(e)})`),a=b({background:"#000",foreground:"#000"})}return a.contrast<7&&t(`[KolBadge] The contrast of ${a.contrast} (≥7, AAA) is to low, between the color pair ${a.background} and ${a.foreground}.`),{backgroundColor:a.background,foregroundColor:a.foreground}};export{d as c,P as h,q as v};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{a as t,w as e,e as s,d as i}from"./prop.validators-e5a112ea.js";import{I as a}from"./controller-icon-786ee7b4.js";const h=(e,o)=>{t(e,"_hasCounter",o)};class o extends a{constructor(t,e,o){super(t,e,o),this.component=t}validateAutoComplete(t){e(this.component,"_autoComplete",(t=>"string"==typeof t&&("on"===t||"off"===t)),new Set(["on | off"]),t)}validateHasCounter(t){h(this.component,t)}validateMaxLength(t){s(this.component,"_maxLength",t,{min:0})}validatePattern(t){i(this.component,"_pattern",t)}validatePlaceholder(t){i(this.component,"_placeholder",t)}validateReadOnly(e){t(this.component,"_readOnly",e)}validateRequired(e){t(this.component,"_required",e)}validateSize(t){s(this.component,"_size",t,{min:1})}validateValue(t){i(this.component,"_value",t),this.setFormAssociatedValue(this.component.state._value)}componentWillLoad(){super.componentWillLoad(),this.validateAutoComplete(this.component._autoComplete),this.validateHasCounter(this.component._hasCounter),this.validateMaxLength(this.component._maxLength),this.validatePattern(this.component._pattern),this.validatePlaceholder(this.component._placeholder),this.validateReadOnly(this.component._readOnly),this.validateRequired(this.component._required),this.validateSize(this.component._size),this.validateValue(this.component._value)}onBlur(t){this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:this.placeholderCache}),this.placeholderCache=void 0,super.onBlur(t)}onFocus(t){this.placeholderCache=this.component.state._placeholder,this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:void 0}),super.onFocus(t)}}export{o as I,h as v};
4
+ import{a as t,w as s,e as i,d as e}from"./prop.validators-a73a5d11.js";import{I as a}from"./controller-icon-81c1d3ba.js";const h=(e,o)=>{t(e,"_hasCounter",o)};class o extends a{constructor(t,e,o){super(t,e,o),this.component=t}validateAutoComplete(t){s(this.component,"_autoComplete",(t=>"string"==typeof t&&("on"===t||"off"===t)),new Set(["on | off"]),t)}validateHasCounter(t){h(this.component,t)}validateMaxLength(t){i(this.component,"_maxLength",t,{min:0})}validatePattern(t){e(this.component,"_pattern",t)}validatePlaceholder(t){e(this.component,"_placeholder",t)}validateReadOnly(e){t(this.component,"_readOnly",e)}validateRequired(e){t(this.component,"_required",e)}validateSize(t){i(this.component,"_size",t,{min:1})}validateValue(t){e(this.component,"_value",t),this.setFormAssociatedValue(this.component.state._value)}componentWillLoad(){super.componentWillLoad(),this.validateAutoComplete(this.component._autoComplete),this.validateHasCounter(this.component._hasCounter),this.validateMaxLength(this.component._maxLength),this.validatePattern(this.component._pattern),this.validatePlaceholder(this.component._placeholder),this.validateReadOnly(this.component._readOnly),this.validateRequired(this.component._required),this.validateSize(this.component._size),this.validateValue(this.component._value)}onBlur(t){this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:this.placeholderCache}),this.placeholderCache=void 0,super.onBlur(t)}onFocus(t){this.placeholderCache=this.component.state._placeholder,this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:void 0}),super.onFocus(t)}}export{o as I,h as v};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{v as s,I as t}from"./controller-b30ccdd1.js";import{v as e}from"./suggestions-456f78ed.js";import{w as i}from"./prop.validators-e5a112ea.js";class a extends t{constructor(t,s,e){super(t,s,e),this.component=t}validateList(){}validateSuggestions(t){e(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateSuggestions(this.component._suggestions||this.component._list)}}class r extends a{constructor(t,s,e){super(t,s,e),this.hasError=!1,this.component=t}validateType(t){i(this.component,"_type",(t=>"string"==typeof t&&("text"===t||"search"===t||"url"===t||"tel"===t)),new Set(["String {text, search, url, tel}"]),t)}validateHasCounter(t){s(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateType(this.component._type),this.validateHasCounter(this.component._hasCounter)}}export{a as I,r as a};
4
+ import{v as s,I as t}from"./controller-167b1804.js";import{v as e}from"./suggestions-ea95c2ca.js";import{w as a}from"./prop.validators-a73a5d11.js";class i extends t{constructor(t,s,o){super(t,s,o),this.component=t}validateList(){}validateSuggestions(t){e(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateSuggestions(this.component._suggestions||this.component._list)}}class r extends i{constructor(t,s,o){super(t,s,o),this.hasError=!1,this.component=t}validateType(t){a(this.component,"_type",(t=>"string"==typeof t&&("text"===t||"search"===t||"url"===t||"tel"===t)),new Set(["String {text, search, url, tel}"]),t)}validateHasCounter(t){s(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateType(this.component._type),this.validateHasCounter(this.component._hasCounter)}}export{i as I,r as a};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{a as t,d as i,s,o as e,p as h}from"./prop.validators-e5a112ea.js";import{v as a}from"./hide-label-eff4095b.js";import{a as o}from"./label-690befc4.js";import{g as r,a as n,d}from"./a11y.tipps-a79effa1.js";import{s as l,t as c}from"./events-fa760b68.js";import{v as f}from"./tab-index-e11959e4.js";import{A as u}from"./associated.controller-e1334159.js";const p=t=>{const e="string"==typeof t._error&&t._error.length>0&&!0===t._touched,o="string"==typeof t._hint&&t._hint.length>0,n=[];return!0===e&&n.push(`${t._id}-error`),!0===o&&n.push(`${t._id}-hint`),{hasError:e,hasHint:o,ariaDescribedBy:n}},v=(e,o)=>{t(e,"_adjustHeight",o)},m=(e,o,n)=>{t(e,"_hideError",o,n)},y=(e,o)=>{t(e,"_touched",o)};class b extends u{constructor(t,e,o){super(t,e,o),this.component=t}validateAlert(e){t(this.component,"_alert",e)}validateTouched(t){y(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateAlert(this.component._alert),this.validateTouched(this.component._touched)}}class g extends b{constructor(t,e,o){super(t,e,o),this.valueChangeListeners=[],this.onFacade={onBlur:this.onBlur.bind(this),onChange:this.onChange.bind(this),onClick:this.onClick.bind(this),onFocus:this.onFocus.bind(this)},this.component=t}validateAccessKey(t){i(this.component,"_accessKey",t)}validateAdjustHeight(t){v(this.component,t)}validateDisabled(e){t(this.component,"_disabled",e),!0===e&&r()}validateError(t){i(this.component,"_error",t)}validateHideError(t){m(this.component,t,{hooks:{afterPatch:()=>{this.component.state._hideError&&n("Property hide-error for inputs: Only use when the error message is shown outside of the input component.")}}})}validateHideLabel(t){a(this.component,t,{hooks:{afterPatch:()=>{this.component.state._hideLabel&&n("Property hide-label for inputs: Only use for exceptions like search inputs that are clearly identifiable by their context.")}}})}validateHint(t){i(this.component,"_hint",t)}validateId(t){i(this.component,"_id",t,{hooks:{afterPatch:()=>{this.setAttribute("id",this.formAssociated,this.component.state._id)}},minLength:1}),""!==t&&void 0!==t||d("Eine eindeutige ID an den Eingabefeldern ist nicht zwingend erforderlich, könnte aber für die E2E-Tests relevant sein.")}validateLabel(t){o(this.component,t,{required:!0})}validateOn(t){"object"==typeof t&&s(this.component,"_on",t)}validateSmartButton(t){e(t,(()=>{try{t=h(t)}catch(t){}s(this.component,"_smartButton",t)}))}validateTabIndex(t){f(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateAccessKey(this.component._accessKey),this.validateAdjustHeight(this.component._adjustHeight),this.validateError(this.component._error),this.validateDisabled(this.component._disabled),this.validateHideError(this.component._hideError),this.validateHideLabel(this.component._hideLabel),this.validateHint(this.component._hint),this.validateId(this.component._id),this.validateLabel(this.component._label),this.validateSmartButton(this.component._smartButton),this.validateOn(this.component._on),this.validateTabIndex(this.component._tabIndex)}onBlur(t){var e;this.component._alert=!0,this.component._touched=!0,l(t),c("blur",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onBlur)&&this.component._on.onBlur(t)}onChange(t){var e;const o=t.target.value;c("change",this.host,o),this.setFormAssociatedValue(o),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onChange)&&this.component._on.onChange(t,o),this.valueChangeListeners.forEach((t=>t(o)))}onClick(t){var e;l(t),c("click",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onClick)&&this.component._on.onClick(t)}onFocus(t){var e;this.component._alert=!0,l(t),c("focus",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onFocus)&&this.component._on.onFocus(t)}setValue(t,e){var o;this.setFormAssociatedValue(e),"function"==typeof(null===(o=this.component._on)||void 0===o?void 0:o.onChange)&&this.component._on.onChange(t,e)}addValueChangeListener(t){this.valueChangeListeners.push(t)}}export{g as I,p as g};
4
+ import{a as t,d as i,s,o as e,p as h}from"./prop.validators-a73a5d11.js";import{v as a}from"./hide-label-ff8dee89.js";import{a as o}from"./label-00203940.js";import{g as r,a as n,d}from"./a11y.tipps-b5477bd5.js";import{s as l,t as c}from"./events-fa760b68.js";import{v as f}from"./tab-index-bfaa121e.js";import{A as u}from"./associated.controller-700f38ae.js";const p=t=>{const e="string"==typeof t._error&&t._error.length>0&&!0===t._touched,o="string"==typeof t._hint&&t._hint.length>0,n=[];return!0===e&&n.push(`${t._id}-error`),!0===o&&n.push(`${t._id}-hint`),{hasError:e,hasHint:o,ariaDescribedBy:n}},v=(e,o)=>{t(e,"_adjustHeight",o)},m=(e,o,n)=>{t(e,"_hideError",o,n)},b=(e,o)=>{t(e,"_touched",o)};class y extends u{constructor(t,e,o){super(t,e,o),this.component=t}validateAlert(e){t(this.component,"_alert",e)}validateTouched(t){b(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateAlert(this.component._alert),this.validateTouched(this.component._touched)}}class g extends y{constructor(t,e,o){super(t,e,o),this.valueChangeListeners=[],this.onFacade={onBlur:this.onBlur.bind(this),onChange:this.onChange.bind(this),onClick:this.onClick.bind(this),onFocus:this.onFocus.bind(this)},this.component=t}validateAccessKey(t){i(this.component,"_accessKey",t)}validateAdjustHeight(t){v(this.component,t)}validateDisabled(e){t(this.component,"_disabled",e),!0===e&&r()}validateError(t){i(this.component,"_error",t)}validateHideError(t){m(this.component,t,{hooks:{afterPatch:()=>{this.component.state._hideError&&n("Property hide-error for inputs: Only use when the error message is shown outside of the input component.")}}})}validateHideLabel(t){a(this.component,t,{hooks:{afterPatch:()=>{this.component.state._hideLabel&&n("Property hide-label for inputs: Only use for exceptions like search inputs that are clearly identifiable by their context.")}}})}validateHint(t){i(this.component,"_hint",t)}validateId(t){i(this.component,"_id",t,{hooks:{afterPatch:()=>{this.setAttribute("id",this.formAssociated,this.component.state._id)}},minLength:1}),""!==t&&void 0!==t||d("Eine eindeutige ID an den Eingabefeldern ist nicht zwingend erforderlich, könnte aber für die E2E-Tests relevant sein.")}validateLabel(t){o(this.component,t,{required:!0})}validateOn(t){"object"==typeof t&&s(this.component,"_on",t)}validateSmartButton(t){e(t,(()=>{try{t=h(t)}catch(t){}s(this.component,"_smartButton",t)}))}validateTabIndex(t){f(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateAccessKey(this.component._accessKey),this.validateAdjustHeight(this.component._adjustHeight),this.validateError(this.component._error),this.validateDisabled(this.component._disabled),this.validateHideError(this.component._hideError),this.validateHideLabel(this.component._hideLabel),this.validateHint(this.component._hint),this.validateId(this.component._id),this.validateLabel(this.component._label),this.validateSmartButton(this.component._smartButton),this.validateOn(this.component._on),this.validateTabIndex(this.component._tabIndex)}onBlur(t){var e;this.component._alert=!0,this.component._touched=!0,l(t),c("blur",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onBlur)&&this.component._on.onBlur(t)}onChange(t){var e;const o=t.target.value;c("change",this.host,o),this.setFormAssociatedValue(o),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onChange)&&this.component._on.onChange(t,o),this.valueChangeListeners.forEach((t=>t(o)))}onClick(t){var e;l(t),c("click",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onClick)&&this.component._on.onClick(t)}onFocus(t){var e;this.component._alert=!0,l(t),c("focus",this.host),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onFocus)&&this.component._on.onFocus(t)}setValue(t,e){var o;this.setFormAssociatedValue(e),"function"==typeof(null===(o=this.component._on)||void 0===o?void 0:o.onChange)&&this.component._on.onChange(t,e)}addValueChangeListener(t){this.valueChangeListeners.push(t)}}export{g as I,p as g};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{c as t,a as e,w as s,m as i,s as a}from"./prop.validators-a73a5d11.js";import{h as r,c as o}from"./label-00203940.js";import{a as n}from"./a11y.tipps-b5477bd5.js";import{S as l}from"./reuse-d79ab469.js";import{I as h}from"./controller-487bbb84.js";const f=t=>{if("object"==typeof t&&null!==t){if("string"==typeof t.label&&t.label.length>0)return t.disabled=!0===t.disabled,t.label=`${t.label}`.trim(),!1===r(t.label,3)&&!1===o(t.label)&&n(`Ein abweichendes Aria-Label (${t.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`),!Array.isArray(t.options)||void 0===t.options.find((t=>!1===f(t)));if("number"==typeof t.label)return!0}return!1},c=(e,o,i={})=>{t(e,"_options",(t=>"object"==typeof t&&null!==t&&"string"==typeof t.label&&t.label.length>0),o,void 0,i)},u=(e,o,i={})=>{t(e,"_options",f,o,void 0,i)},p=(t,o)=>{e(t,"_required",o)},d=(t,e,o="")=>{e.forEach(((e,i)=>{const a=`${o}-${i}`;"object"==typeof e&&null!==e&&"string"==typeof e.label&&e.label.length>0&&(Array.isArray(e.options)?d(t,e.options,a):t.set(a,e))}))};class b extends h{constructor(t,e,o){super(t,e,o),this.component=t}validateRequired(t){p(this.component,t)}componentWillLoad(){super.componentWillLoad(),this.validateRequired(this.component._required)}}class m extends b{constructor(t,e,o){super(t,e,o),this.keyOptionMap=new Map,this.getOptionByKey=t=>this.keyOptionMap.get(t),this.isValueInOptions=(t,e)=>void 0!==e.find((e=>e.value===t)),this.afterPatchOptions=(t,e,o,i)=>{"_value"===i&&this.setFormAssociatedValue(t)},this.beforePatchOptions=(t,e)=>{const o=e.has("_options")?e.get("_options"):this.component.state._options;if(Array.isArray(o)&&o.length>0){this.keyOptionMap.clear(),d(this.keyOptionMap,o);const t=e.has("_value")?e.get("_value"):this.component.state._value;!1===this.isValueInOptions(t,o)&&(e.set("_value",o[0].value),this.onStateChange())}},this.component=t}validateOrientation(t){s(this.component,"_orientation",(t=>"horizontal"===t||"vertical"===t),new Set(["Orientation {horizontal, vertical}"]),t,{defaultValue:"vertical"})}validateOptions(t){c(this.component,t,{hooks:{afterPatch:this.afterPatchOptions,beforePatch:this.beforePatchOptions}})}validateValue(t){t=i(t),t=Array.isArray(t)?t[0]:t,a(this.component,"_value",t,{afterPatch:this.afterPatchOptions,beforePatch:this.beforePatchOptions})}componentWillLoad(t){super.componentWillLoad(),this.onStateChange=()=>{if("function"==typeof t){const e=setTimeout((()=>{clearTimeout(e),t(l)}))}},this.validateOrientation(this.component._orientation),this.validateOptions(this.component._options||this.component._list),this.validateValue(this.component._value)}}export{b as I,m as a,d as f,u as v};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["validateInputSelectOptions","option","label","length","disabled","trim","hasEnoughReadableChars","containsOnlyNumbers","a11yHint","Array","isArray","options","find","item","undefined","validateOptions","component","value","watchJsonArrayString","validateOptionsWithOptgroup","validateRequired","watchBoolean","fillKeyOptionMap","keyOptionMap","preKey","forEach","index","key","set","InputCheckboxRadioController","InputController","constructor","name","host","super","this","componentWillLoad","_required","InputRadioController","Map","getOptionByKey","get","isValueInOptions","afterPatchOptions","_state","_component","setFormAssociatedValue","beforePatchOptions","_value","nextState","has","state","_options","clear","onStateChange","validateOrientation","watchValidator","Set","defaultValue","hooks","afterPatch","beforePatch","validateValue","mapString2Unknown","setState","onChange","timeout","setTimeout","clearTimeout","STATE_CHANGE_EVENT","_orientation","_list"],"sources":["src/utils/validators/options.ts","src/types/props/options.ts","src/types/props/required.ts","src/components/input-radio/controller.ts"],"sourcesContent":["import { Optgroup, SelectOption } from '../../types/input/types';\nimport { containsOnlyNumbers, hasEnoughReadableChars } from '../../types/props/label';\nimport { a11yHint } from '../a11y.tipps';\n\nexport const validateInputSelectOptions = <T>(option: SelectOption<T>): boolean => {\n\tif (typeof option === 'object' && option !== null) {\n\t\tif (typeof option.label === 'string' && option.label.length > 0) {\n\t\t\toption.disabled = option.disabled === true;\n\t\t\toption.label = `${option.label}`.trim();\n\t\t\tif (hasEnoughReadableChars(option.label, 3) === false && containsOnlyNumbers(option.label) === false) {\n\t\t\t\ta11yHint(\n\t\t\t\t\t`Ein abweichendes Aria-Label (${option.label}) ist nicht barrierefrei. Ein abweichendes Aria-Label sollte aus mindestens drei lesbaren Zeichen bestehen.`\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\treturn (\n\t\t\t\t\t(option as Optgroup<T>).options.find((item) => {\n\t\t\t\t\t\treturn validateInputSelectOptions(item) === false;\n\t\t\t\t\t}) === undefined\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else if (typeof option.label === 'number') {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString, WatchOptions } from '../../utils/prop.validators';\nimport { validateInputSelectOptions } from '../../utils/validators/options';\nimport { Stringified } from '../common';\nimport { Optgroup, Option } from '../input/types';\nimport { W3CInputValue } from '../w3c';\n\n/* types */\n\nexport type OptionsPropType = Stringified<Option<W3CInputValue>[]>;\nexport type OptionsWithOptgroupPropType = Stringified<(Option<W3CInputValue> | Optgroup<W3CInputValue>)[]>;\n\n/**\n * Options the user can choose from.\n */\nexport type PropOptions = {\n\toptions: OptionsPropType;\n};\n\n/**\n * Options the user can choose from, also supporting Optgroup.\n */\nexport type PropOptionsWithOptgroup = {\n\toptions: OptionsWithOptgroupPropType;\n};\n\n/* validators */\n\nexport const validateOptions = (component: Generic.Element.Component, value: OptionsPropType | undefined, options: WatchOptions = {}): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_options',\n\t\t(item: Option<W3CInputValue>) => typeof item === 'object' && item !== null && typeof item.label === 'string' && item.label.length > 0,\n\t\tvalue,\n\t\tundefined,\n\t\toptions\n\t);\n};\n\nexport const validateOptionsWithOptgroup = (\n\tcomponent: Generic.Element.Component,\n\tvalue: OptionsWithOptgroupPropType | undefined,\n\toptions: WatchOptions = {}\n) => {\n\twatchJsonArrayString(component, '_options', validateInputSelectOptions, value, undefined, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\ntype RequiredPropType = boolean;\n\n/**\n * Makes the input element required.\n */\nexport type PropRequired = {\n\trequired: RequiredPropType;\n};\n\n/* validator */\nexport const validateRequired = (component: Generic.Element.Component, value?: RequiredPropType): void => {\n\twatchBoolean(component, '_required', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { Optgroup, Option, SelectOption } from '../../types/input/types';\nimport { Orientation } from '../../types/orientation';\nimport { PropLabelWithExpertSlot } from '../../types/props/label';\nimport { OptionsPropType, validateOptions } from '../../types/props/options';\nimport { validateRequired } from '../../types/props/required';\nimport { StencilUnknown } from '../../types/unknown';\nimport { W3CInputValue } from '../../types/w3c';\nimport { mapString2Unknown, setState, watchValidator } from '../../utils/prop.validators';\nimport { STATE_CHANGE_EVENT } from '../../utils/validator';\nimport { InputController } from '../@deprecated/input/controller';\nimport { Props, Watches } from './types';\n\nexport const fillKeyOptionMap = <T>(keyOptionMap: Map<string, Option<T>>, options: SelectOption<T>[], preKey = ''): void => {\n\toptions.forEach((option, index) => {\n\t\tconst key = `${preKey}-${index}`;\n\t\tif (typeof option === 'object' && option !== null && typeof option.label === 'string' && option.label.length > 0) {\n\t\t\tif (Array.isArray((option as Optgroup<T>).options)) {\n\t\t\t\tfillKeyOptionMap(keyOptionMap, (option as Optgroup<T>).options, key);\n\t\t\t} else {\n\t\t\t\tkeyOptionMap.set(key, option as Option<T>);\n\t\t\t}\n\t\t}\n\t});\n};\n\ntype RequiredProps = NonNullable<unknown>;\ntype OptionalProps = {\n\trequired: boolean;\n} & PropLabelWithExpertSlot;\ntype InputCheckboxRadioProps = Generic.Element.Members<RequiredProps, OptionalProps>;\ntype InputCheckboxRadioWatches = Generic.Element.Watchers<RequiredProps, OptionalProps>;\n\nexport class InputCheckboxRadioController extends InputController implements InputCheckboxRadioWatches {\n\tprotected readonly component: Generic.Element.Component & InputCheckboxRadioProps;\n\n\tpublic constructor(component: Generic.Element.Component & InputCheckboxRadioProps, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic validateRequired(value?: boolean): void {\n\t\tvalidateRequired(this.component, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateRequired(this.component._required);\n\t}\n}\n\nexport class InputRadioController extends InputCheckboxRadioController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props;\n\tprivate onStateChange!: () => void;\n\tprivate readonly keyOptionMap = new Map<string, Option<W3CInputValue>>();\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tsuper(component, name, host);\n\t\tthis.component = component;\n\t}\n\n\tpublic readonly getOptionByKey = (key: string): Option<W3CInputValue> | undefined => this.keyOptionMap.get(key);\n\n\tprivate readonly isValueInOptions = (value: unknown, options: Option<W3CInputValue>[]): boolean => {\n\t\treturn options.find((option) => option.value === value) !== undefined;\n\t};\n\n\tprotected readonly afterPatchOptions = (value: unknown, _state: Record<string, unknown>, _component: Generic.Element.Component, key: string): void => {\n\t\tif (key === '_value') {\n\t\t\tthis.setFormAssociatedValue(value as string);\n\t\t}\n\t};\n\n\tprotected readonly beforePatchOptions = (_value: unknown, nextState: Map<string, unknown>): void => {\n\t\tconst options = nextState.has('_options') ? nextState.get('_options') : this.component.state._options;\n\t\tif (Array.isArray(options) && options.length > 0) {\n\t\t\tthis.keyOptionMap.clear();\n\t\t\tfillKeyOptionMap(this.keyOptionMap, options as SelectOption<W3CInputValue>[]);\n\t\t\tconst value = nextState.has('_value') ? nextState.get('_value') : this.component.state._value;\n\t\t\tif (this.isValueInOptions(value, options as Option<W3CInputValue>[]) === false) {\n\t\t\t\tnextState.set(\n\t\t\t\t\t'_value',\n\t\t\t\t\t(\n\t\t\t\t\t\toptions[0] as {\n\t\t\t\t\t\t\tvalue: string;\n\t\t\t\t\t\t}\n\t\t\t\t\t).value\n\t\t\t\t);\n\t\t\t\tthis.onStateChange();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis.component,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t}\n\t\t);\n\t}\n\n\tpublic validateOptions(value?: OptionsPropType): void {\n\t\tvalidateOptions(this.component, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.afterPatchOptions,\n\t\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\tpublic validateValue(value?: Stringified<StencilUnknown>): void {\n\t\tvalue = mapString2Unknown(value);\n\t\tvalue = Array.isArray(value) ? (value[0] as StencilUnknown) : value;\n\t\tsetState(this.component, '_value', value, {\n\t\t\tafterPatch: this.afterPatchOptions,\n\t\t\tbeforePatch: this.beforePatchOptions,\n\t\t});\n\t}\n\n\tpublic componentWillLoad(onChange?: (event: Event) => void): void {\n\t\tsuper.componentWillLoad();\n\n\t\tthis.onStateChange = () => {\n\t\t\tif (typeof onChange === 'function') {\n\t\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\tonChange(STATE_CHANGE_EVENT);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tthis.validateOrientation(this.component._orientation);\n\t\tthis.validateOptions(this.component._options || this.component._list);\n\t\tthis.validateValue(this.component._value);\n\t}\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{d as e}from"./a11y.tipps-a79effa1.js";import{d as o}from"./dev.utils-5f359e41.js";import{f as t,K as n}from"./prop.validators-e5a112ea.js";const i=t=>{for(o()&&(e("↓ Search form element start."),console.log(t));t instanceof HTMLElement&&"FORM"!==t.tagName&&"KOL-FORM"!==t.tagName;)t=t.parentElement instanceof HTMLElement?t.parentElement:t.parentNode instanceof ShadowRoot?t.parentNode.host:null,o()&&console.log(t);return o()&&e("↑ Search form element finished."),t},s=(e={})=>{var o,a;const s=i(e.form);if(s instanceof HTMLElement){const e=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===s.tagName)t(e,s),s.dispatchEvent(e);else if("KOL-FORM"===s.tagName){t(e,n.querySelector("form",s));const i=s;"function"==typeof(null===(o=i._on)||void 0===o?void 0:o.onReset)&&(null===(a=i._on)||void 0===a||a.onReset(e))}}},f=(e={})=>{var o,a;const s=i(e.form);if(s instanceof HTMLElement){const e=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:s});if("FORM"===s.tagName)t(e,s),s.dispatchEvent(e);else if("KOL-FORM"===s.tagName){t(e,n.querySelector("form",s));const i=s;"function"==typeof(null===(o=i._on)||void 0===o?void 0:o.onSubmit)&&(null===(a=i._on)||void 0===a||a.onSubmit(e))}}};export{s as a,f as p};
4
+ import{d as e}from"./a11y.tipps-b5477bd5.js";import{d as o}from"./dev.utils-232c068c.js";import{f as t,K as n}from"./prop.validators-a73a5d11.js";const i=t=>{for(o()&&(e("↓ Search form element start."),console.log(t));t instanceof HTMLElement&&"FORM"!==t.tagName&&"KOL-FORM"!==t.tagName;)t=t.parentElement instanceof HTMLElement?t.parentElement:t.parentNode instanceof ShadowRoot?t.parentNode.host:null,o()&&console.log(t);return o()&&e("↑ Search form element finished."),t},s=(e={})=>{var o,a;const s=i(e.form);if(s instanceof HTMLElement){const e=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===s.tagName)t(e,s),s.dispatchEvent(e);else if("KOL-FORM"===s.tagName){t(e,n.querySelector("form",s));const i=s;"function"==typeof(null===(o=i._on)||void 0===o?void 0:o.onReset)&&(null===(a=i._on)||void 0===a||a.onReset(e))}}},f=(e={})=>{var o,a;const s=i(e.form);if(s instanceof HTMLElement){const e=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:s});if("FORM"===s.tagName)t(e,s),s.dispatchEvent(e),s.submit();else if("KOL-FORM"===s.tagName){t(e,n.querySelector("form",s));const i=s;"function"==typeof(null===(o=i._on)||void 0===o?void 0:o.onSubmit)&&(null===(a=i._on)||void 0===a||a.onSubmit(e))}}};export{s as a,f as p};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["searchFormElement","el","getExperimentalMode","devHint","console","log","HTMLElement","tagName","parentElement","parentNode","ShadowRoot","host","propagateResetEventToForm","options","form","event","Event","bubbles","cancelable","setEventTarget","dispatchEvent","KoliBriDevHelper","querySelector","kolForm","_a","_on","onReset","_b","propagateSubmitEventToForm","SubmitEvent","submitter","submit","onSubmit"],"sources":["src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimentalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTarget } from '../../utils/prop.validators';\nimport { Props } from './types';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↓ Search form element start.`);\n\t\tconsole.log(el);\n\t}\n\twhile (el instanceof HTMLElement && el.tagName !== 'FORM' && el.tagName !== 'KOL-FORM') {\n\t\tif (el.parentElement instanceof HTMLElement) {\n\t\t\tel = el.parentElement;\n\t\t} else if (el.parentNode instanceof ShadowRoot) {\n\t\t\tel = el.parentNode.host;\n\t\t} else {\n\t\t\tel = null;\n\t\t}\n\t\tif (getExperimentalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimentalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propagateResetEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new Event('reset', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t});\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onReset === 'function') {\n\t\t\t\ttypeof kolForm._on?.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propagateSubmitEventToForm = (\n\toptions: {\n\t\tform?: HTMLElement | ParentNode | null;\n\t\tref?: HTMLElement;\n\t} = {}\n): void => {\n\tconst form = searchFormElement(options.form);\n\tif (form instanceof HTMLElement) {\n\t\tconst event = new SubmitEvent('submit', {\n\t\t\tbubbles: true,\n\t\t\tcancelable: true,\n\t\t\tsubmitter: form,\n\t\t});\n\t\t/**\n\t\t * TODO: Wenn Formular-Action (nicht Ajax oder JS) verwendet wird,\n\t\t * dann müssen wir das Event an das HTMLFormElement innerhalb\n\t\t * der HTMLKolFormElements propagieren, wenn kein onSubmit\n\t\t * gesetzt wurde.\n\t\t *\n\t\t * TODO: Form-associated custom elements:\n\t\t * - https://web.dev/more-capable-form-controls/\n\t\t * - https://github.com/public-ui/kolibri/issues/946\n\t\t */\n\t\tif (form.tagName === 'FORM') {\n\t\t\tsetEventTarget(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t\t(form as HTMLFormElement).submit();\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTarget(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as Props;\n\t\t\tif (typeof kolForm._on?.onSubmit === 'function') {\n\t\t\t\tkolForm._on?.onSubmit(event);\n\t\t\t}\n\t\t}\n\t}\n};\n"],"mappings":";;;kJAKA,MAAMA,EAAqBC,IAC1B,GAAIC,IAAuB,CAC1BC,EAAQ,gCACRC,QAAQC,IAAIJ,E,CAEb,MAAOA,aAAcK,aAAeL,EAAGM,UAAY,QAAUN,EAAGM,UAAY,WAAY,CACvF,GAAIN,EAAGO,yBAAyBF,YAAa,CAC5CL,EAAKA,EAAGO,a,MACF,GAAIP,EAAGQ,sBAAsBC,WAAY,CAC/CT,EAAKA,EAAGQ,WAAWE,I,KACb,CACNV,EAAK,I,CAEN,GAAIC,IAAuB,CAC1BE,QAAQC,IAAIJ,E,EAGd,GAAIC,IAAuB,CAC1BC,EAAQ,kC,CAET,OAAOF,CAAE,E,MAGGW,EAA4B,CACxCC,EAGI,M,QAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIC,MAAM,QAAS,CAChCC,QAAS,KACTC,WAAY,OAEb,GAAIJ,EAAKP,UAAY,OAAQ,CAC5BY,EAAeJ,EAAOD,GACtBA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAeJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC7D,MAAMS,EAAUT,EAChB,WAAWU,EAAAD,EAAQE,OAAG,MAAAD,SAAA,SAAAA,EAAEE,WAAY,WAAY,SACxCC,EAAAJ,EAAQE,OAAG,MAAAE,SAAA,SAAAA,EAAED,QAAQX,G,WAMnBa,EAA6B,CACzCf,EAGI,M,QAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIc,YAAY,SAAU,CACvCZ,QAAS,KACTC,WAAY,KACZY,UAAWhB,IAYZ,GAAIA,EAAKP,UAAY,OAAQ,CAC5BY,EAAeJ,EAAOD,GACtBA,EAAKM,cAAcL,GAClBD,EAAyBiB,Q,MACpB,GAAIjB,EAAKP,UAAY,WAAY,CACvCY,EAAeJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC7D,MAAMS,EAAUT,EAChB,WAAWU,EAAAD,EAAQE,OAAG,MAAAD,SAAA,SAAAA,EAAEQ,YAAa,WAAY,EAChDL,EAAAJ,EAAQE,OAAG,MAAAE,SAAA,SAAAA,EAAEK,SAASjB,E"}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{i as o}from"./icons-d16b918d.js";import{o as s,p as t,w as i}from"./prop.validators-a73a5d11.js";import{i as r}from"./reuse-d79ab469.js";import{I as e}from"./controller-487bbb84.js";const a=(o,t)=>{const s=o;"object"==typeof s&&null!==s&&(r(s.right,1)&&(s.right={icon:s.right}),r(s.left,1)&&(s.left={icon:s.left}),t.set("_icons",s))};class c extends e{constructor(o,t,s){super(o,t,s),this.component=o}validateIcon(o){this.validateIcons(o)}validateIcons(e){s(e,(()=>{try{e=t(e)}catch(o){}i(this.component,"_icons",(t=>"object"==typeof t&&null!==t&&(r(t.left,1)||o(t.left)||r(t.right,1)||o(t.right))),new Set(["KoliBriHorizontalIcon"]),e,{hooks:{beforePatch:a},required:!0})}))}componentWillLoad(){super.componentWillLoad(),this.validateIcons(this.component._icons||this.component._icon)}}export{c as I};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{w as a,d as o}from"./prop.validators-e5a112ea.js";const r=(o,r)=>{a(o,"_variant",(a=>"primary"===a||"secondary"===a||"normal"===a||"danger"===a||"ghost"===a||"custom"===a),new Set(["KoliBriButtonVariant {primary, secondary, normal, danger, ghost, custom}"]),r,{defaultValue:"normal"})},s=(a,r)=>{o(a,"_customClass",r,{defaultValue:void 0})};export{r as a,s as v};
4
+ import{w as a,d as o}from"./prop.validators-a73a5d11.js";const r=(o,r)=>{a(o,"_variant",(a=>"primary"===a||"secondary"===a||"normal"===a||"danger"===a||"ghost"===a||"custom"===a),new Set(["KoliBriButtonVariant {primary, secondary, normal, danger, ghost, custom}"]),r,{defaultValue:"normal"})},s=(a,r)=>{o(a,"_customClass",r,{defaultValue:void 0})};export{r as a,s as v};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{p as e}from"./reuse-d79ab469.js";class t{constructor(){this.lockedElements=new Map,this.modalStack=new Map}lockElement(e){const t=e.getAttribute("tabindex");(e instanceof HTMLAnchorElement||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||"string"==typeof t||void 0!==e.dataset.kolModal)&&("string"==typeof t?this.lockedElements.set(e,{tabIndex:t}):this.lockedElements.set(e,{}),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true"),e.style.userSelect="none")}unlockElement(e,t){"string"==typeof e.tabIndex?t.setAttribute("tabindex",e.tabIndex):t.removeAttribute("tabindex"),t.removeAttribute("aria-hidden"),t.style.userSelect="unset",this.lockedElements.delete(t)}unlockLockedElements(e){e.forEach(this.unlockElement.bind(this))}lockFocus(e,t){if(e!==t&&(e instanceof HTMLElement||e instanceof ShadowRoot)){e instanceof HTMLElement&&(this.lockElement(e),this.lockFocus(e.shadowRoot,t));for(let o=0;o<e.children.length;o++)this.lockFocus(e.children[o],t)}}renderModalIfExists(e){if(e instanceof HTMLElement){this.lockedElements.has(e)&&this.unlockElement(this.lockedElements.get(e),e);const t=setTimeout((()=>{clearTimeout(t),e.focus()}),500)}if(this.unlockLockedElements(this.lockedElements),this.modalStack.size>0){const e=Array.from(this.modalStack.keys()),t=e[e.length-1];this.modalStack.forEach(((e,o)=>{o.style.display=t===o?"inline":"none"})),l().body.style.maxHeight="100vh",l().body.style.overflow="hidden",this.lockFocus(l().body,t)}else l().body.style.maxHeight="unset",l().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?m.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide."):(this.modalStack.set(e,{activeElement:t}),this.renderModalIfExists())}closeModal(e){var t;if(e instanceof HTMLElement==!1)m.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide.");else{const o=null===(t=this.modalStack.get(e))||void 0===t?void 0:t.activeElement;this.modalStack.delete(e),this.renderModalIfExists(o)}}}let n=null,i=null;const o=e=>{e instanceof Window?(n=e,n.document instanceof Document?i=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},s=()=>n||"undefined"==typeof window?null:window,l=()=>i||void 0===s().document?null:s().document;let a=null,r=null,c=null,d=null;const u=()=>!0===r,f=()=>!0===c,h=()=>!0===d;class m{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${m.shield.label} | ${e}`:m.shield.label}static getShield(e){return[m.handleClassifier(null==e?void 0:e.classifier),`${m.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.debug(...m.getShield(t),...m.mapToArray(e))}static info(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.info(...m.getShield(t),...m.mapToArray(e))}static trace(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.trace(...m.getShield(t),...m.mapToArray(e))}static warn(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.warn(...m.getShield(t),...m.mapToArray(e))}static error(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.error(...m.getShield(t),...m.mapToArray(e))}static throw(e,t){if(r||!0===(null==t?void 0:t.forceLog))throw new Error(...m.getShield(t),...m.mapToArray(e))}}m.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};const v=()=>{if(null===r&&null===c&&null===d){const e=l().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(a=e.getAttribute("content"),"string"==typeof a&&(r=a.includes("dev-mode=true"),c=a.includes("experimental-mode=true"),d=a.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")},p=()=>{let e=s().KoliBri;return void 0===e&&(e={},Object.defineProperty(s(),"KoliBri",{value:e,writable:!1})),e},b=()=>{if(void 0===p().Modal){const e=new t;Object.defineProperty(p(),"Modal",{get:function(){return e}}),v(),m.debug("\n\t,--. ,--. ,--. ,--. ,-----. ,--.\n\t| .' / ,---. | | `--' | |) /_ ,--.--. `--'\n\t| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n\t| |\\ \\ | '-' | | | | | | '--' / | | | |\n\t`--' `--´ `---´ `--' `--' `------´ `--' `--'\n\t🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 1.7.10\n\t\t",{forceLog:!0})}else console.warn("You can only initialize KoliBri once.")},M=()=>{!0!==p().adviceShown&&(Object.defineProperty(p(),"adviceShown",{get:function(){return!0}}),m.debug("\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"))};let g=()=>Math.floor(16777215*Math.random()).toString(16);"test"===e&&(g=()=>"nonce");export{m as L,l as a,s as b,o as c,f as d,u as e,h as f,p as g,b as i,g as n,M as r};
4
+ import{p as e}from"./reuse-d79ab469.js";class t{constructor(){this.lockedElements=new Map,this.modalStack=new Map}lockElement(e){const t=e.getAttribute("tabindex");(e instanceof HTMLAnchorElement||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement||"string"==typeof t||void 0!==e.dataset.kolModal)&&("string"==typeof t?this.lockedElements.set(e,{tabIndex:t}):this.lockedElements.set(e,{}),e.setAttribute("tabindex","-1"),e.setAttribute("aria-hidden","true"),e.style.userSelect="none")}unlockElement(e,t){"string"==typeof e.tabIndex?t.setAttribute("tabindex",e.tabIndex):t.removeAttribute("tabindex"),t.removeAttribute("aria-hidden"),t.style.userSelect="unset",this.lockedElements.delete(t)}unlockLockedElements(e){e.forEach(this.unlockElement.bind(this))}lockFocus(e,t){if(e!==t&&(e instanceof HTMLElement||e instanceof ShadowRoot)){e instanceof HTMLElement&&(this.lockElement(e),this.lockFocus(e.shadowRoot,t));for(let o=0;o<e.children.length;o++)this.lockFocus(e.children[o],t)}}renderModalIfExists(e){if(e instanceof HTMLElement){this.lockedElements.has(e)&&this.unlockElement(this.lockedElements.get(e),e);const t=setTimeout((()=>{clearTimeout(t),e.focus()}),500)}if(this.unlockLockedElements(this.lockedElements),this.modalStack.size>0){const e=Array.from(this.modalStack.keys()),t=e[e.length-1];this.modalStack.forEach(((e,o)=>{o.style.display=t===o?"inline":"none"})),l().body.style.maxHeight="100vh",l().body.style.overflow="hidden",this.lockFocus(l().body,t)}else l().body.style.maxHeight="unset",l().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?m.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide."):(this.modalStack.set(e,{activeElement:t}),this.renderModalIfExists())}closeModal(e){var t;if(e instanceof HTMLElement==!1)m.warn("[KolModalService] Die DOM-Referenz des Modals ist nicht valide.");else{const o=null===(t=this.modalStack.get(e))||void 0===t?void 0:t.activeElement;this.modalStack.delete(e),this.renderModalIfExists(o)}}}let n=null,i=null;const o=e=>{e instanceof Window?(n=e,n.document instanceof Document?i=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},s=()=>n||"undefined"==typeof window?null:window,l=()=>i||void 0===s().document?null:s().document;let a=null,r=null,c=null,d=null;const u=()=>!0===r,f=()=>!0===c,h=()=>!0===d;class m{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${m.shield.label} | ${e}`:m.shield.label}static getShield(e){return[m.handleClassifier(null==e?void 0:e.classifier),`${m.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.debug(...m.getShield(t),...m.mapToArray(e))}static info(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.info(...m.getShield(t),...m.mapToArray(e))}static trace(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.trace(...m.getShield(t),...m.mapToArray(e))}static warn(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.warn(...m.getShield(t),...m.mapToArray(e))}static error(e,t){(r||!0===(null==t?void 0:t.forceLog))&&console.error(...m.getShield(t),...m.mapToArray(e))}static throw(e,t){if(r||!0===(null==t?void 0:t.forceLog))throw new Error(...m.getShield(t),...m.mapToArray(e))}}m.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};const v=()=>{if(null===r&&null===c&&null===d){const e=l().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(a=e.getAttribute("content"),"string"==typeof a&&(r=a.includes("dev-mode=true"),c=a.includes("experimental-mode=true"),d=a.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")},p=()=>{let e=s().KoliBri;return void 0===e&&(e={},Object.defineProperty(s(),"KoliBri",{value:e,writable:!1})),e},b=()=>{if(void 0===p().Modal){const e=new t;Object.defineProperty(p(),"Modal",{get:function(){return e}}),v(),m.debug("\n\t,--. ,--. ,--. ,--. ,-----. ,--.\n\t| .' / ,---. | | `--' | |) /_ ,--.--. `--'\n\t| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n\t| |\\ \\ | '-' | | | | | | '--' / | | | |\n\t`--' `--´ `---´ `--' `--' `------´ `--' `--'\n\t🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 1.7.12\n\t\t",{forceLog:!0})}else console.warn("You can only initialize KoliBri once.")},M=()=>{!0!==p().adviceShown&&(Object.defineProperty(p(),"adviceShown",{get:function(){return!0}}),m.debug("\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"))};let g=()=>Math.floor(16777215*Math.random()).toString(16);"test"===e&&(g=()=>"nonce");export{m as L,l as a,s as b,o as c,f as d,u as e,h as f,p as g,b as i,g as n,M as r};
@@ -1 +1 @@
1
- {"version":3,"names":["ModalService","constructor","this","lockedElements","Map","modalStack","lockElement","htmlElement","tabIndex","getAttribute","HTMLAnchorElement","HTMLButtonElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","dataset","kolModal","undefined","set","setAttribute","style","userSelect","unlockElement","value","removeAttribute","delete","unlockLockedElements","forEach","bind","lockFocus","hostElement","excludeElement","HTMLElement","ShadowRoot","shadowRoot","i","children","length","renderModalIfExists","activeElement","has","get","timeout","setTimeout","clearTimeout","focus","size","modalKeys","Array","from","keys","modalRef","_value","display","getDocument","body","maxHeight","overflow","openModal","Log","warn","closeModal","_a","WINDOW","DOCUMENT","configKoliBri","window","Window","document","Document","console","getWindow","META_CONFIG","DEV_MODE","EXPERIMENTAL_MODE","COLOR_CONTRAST_ANALYSIS","getDevMode","getExperimentalMode","getColorContrastAnalysis","mapToArray","msg","isArray","handleClassifier","classifier","shield","label","getShield","options","overwriteStyle","debug","forceLog","info","trace","error","Error","initMeta","meta","querySelector","hasAttribute","includes","getKoliBri","kolibri","KoliBri","Object","defineProperty","writable","initKoliBri","Modal","renderDevAdvice","adviceShown","nonce","Math","floor","random","toString","processEnv"],"sources":["src/components/modal/service.ts","src/utils/dev.utils.ts"],"sourcesContent":["import { getDocument, Log } from '../../utils/dev.utils';\n\ntype ModalContext = {\n\tactiveElement?: HTMLElement;\n};\n\ntype LockedElementContext = {\n\ttabIndex?: string;\n};\n\n/**\n * The modal service is only working client-side!\n */\nexport class ModalService {\n\tprivate lockedElements: Map<HTMLElement, LockedElementContext> = new Map();\n\tprivate modalStack: Map<HTMLElement, ModalContext> = new Map();\n\n\tprivate lockElement(htmlElement: HTMLElement) {\n\t\tconst tabIndex: string | null = htmlElement.getAttribute('tabindex');\n\t\tif (\n\t\t\thtmlElement instanceof HTMLAnchorElement ||\n\t\t\thtmlElement instanceof HTMLButtonElement ||\n\t\t\thtmlElement instanceof HTMLInputElement ||\n\t\t\thtmlElement instanceof HTMLSelectElement ||\n\t\t\thtmlElement instanceof HTMLTextAreaElement ||\n\t\t\ttypeof tabIndex === 'string' ||\n\t\t\thtmlElement.dataset.kolModal !== undefined\n\t\t) {\n\t\t\tif (typeof tabIndex === 'string') {\n\t\t\t\tthis.lockedElements.set(htmlElement, {\n\t\t\t\t\ttabIndex,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.lockedElements.set(htmlElement, {});\n\t\t\t}\n\t\t\thtmlElement.setAttribute('tabindex', '-1');\n\t\t\thtmlElement.setAttribute('aria-hidden', 'true');\n\t\t\thtmlElement.style.userSelect = 'none';\n\t\t}\n\t}\n\n\tprivate unlockElement(value: LockedElementContext, htmlElement: HTMLElement) {\n\t\tif (typeof value.tabIndex === 'string') {\n\t\t\thtmlElement.setAttribute('tabindex', value.tabIndex);\n\t\t} else {\n\t\t\thtmlElement.removeAttribute('tabindex');\n\t\t}\n\t\thtmlElement.removeAttribute('aria-hidden');\n\t\thtmlElement.style.userSelect = 'unset';\n\t\tthis.lockedElements.delete(htmlElement);\n\t}\n\n\tprivate unlockLockedElements(lockedElements: Map<HTMLElement, LockedElementContext>) {\n\t\tlockedElements.forEach(this.unlockElement.bind(this));\n\t}\n\n\tprivate lockFocus(hostElement: HTMLElement | ShadowRoot | null, excludeElement?: HTMLElement) {\n\t\tif (hostElement !== excludeElement && (hostElement instanceof HTMLElement || hostElement instanceof ShadowRoot)) {\n\t\t\tif (hostElement instanceof HTMLElement) {\n\t\t\t\tthis.lockElement(hostElement);\n\t\t\t\tthis.lockFocus(hostElement.shadowRoot, excludeElement);\n\t\t\t}\n\t\t\tfor (let i = 0; i < hostElement.children.length; i++) {\n\t\t\t\tthis.lockFocus(hostElement.children[i] as HTMLElement, excludeElement);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate renderModalIfExists(activeElement?: HTMLElement) {\n\t\tif (activeElement instanceof HTMLElement) {\n\t\t\tif (this.lockedElements.has(activeElement)) {\n\t\t\t\tthis.unlockElement(this.lockedElements.get(activeElement) as LockedElementContext, activeElement);\n\t\t\t}\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tactiveElement.focus();\n\t\t\t}, 500);\n\t\t}\n\t\tthis.unlockLockedElements(this.lockedElements);\n\t\tif (this.modalStack.size > 0) {\n\t\t\tconst modalKeys = Array.from(this.modalStack.keys());\n\t\t\tconst modalRef = modalKeys[modalKeys.length - 1] as HTMLElement & {\n\t\t\t\t_activeElement: HTMLElement | null; // typo sugger\n\t\t\t};\n\t\t\tthis.modalStack.forEach((_value: ModalContext, htmlElement: HTMLElement) => {\n\t\t\t\tif (modalRef === htmlElement) {\n\t\t\t\t\thtmlElement.style.display = 'inline';\n\t\t\t\t} else {\n\t\t\t\t\thtmlElement.style.display = `none`;\n\t\t\t\t}\n\t\t\t});\n\t\t\tgetDocument().body.style.maxHeight = '100vh';\n\t\t\tgetDocument().body.style.overflow = 'hidden';\n\t\t\tthis.lockFocus(getDocument().body, modalRef);\n\t\t} else {\n\t\t\tgetDocument().body.style.maxHeight = 'unset';\n\t\t\tgetDocument().body.style.overflow = 'unset';\n\t\t}\n\t}\n\n\tpublic openModal(modalRef: HTMLElement, activeElement?: HTMLElement): void {\n\t\tif (modalRef instanceof HTMLElement === false) {\n\t\t\tLog.warn(`[KolModalService] Die DOM-Referenz des Modals ist nicht valide.`);\n\t\t} else {\n\t\t\tthis.modalStack.set(modalRef, {\n\t\t\t\tactiveElement,\n\t\t\t});\n\t\t\tthis.renderModalIfExists();\n\t\t}\n\t}\n\n\tpublic closeModal(modalRef: HTMLElement): void {\n\t\tif (modalRef instanceof HTMLElement === false) {\n\t\t\tLog.warn(`[KolModalService] Die DOM-Referenz des Modals ist nicht valide.`);\n\t\t} else {\n\t\t\tconst activeElement = this.modalStack.get(modalRef)?.activeElement;\n\t\t\tthis.modalStack.delete(modalRef);\n\t\t\tthis.renderModalIfExists(activeElement);\n\t\t}\n\t}\n}\n","import { ModalService } from '../components/modal/service';\nimport { processEnv } from './reuse';\n\nlet WINDOW: Window | null = null;\nlet DOCUMENT: Document | null = null;\n\nexport const configKoliBri = (window: Window): void => {\n\tif (window instanceof Window) {\n\t\tWINDOW = window;\n\t\tif (WINDOW.document instanceof Document) {\n\t\t\tDOCUMENT = window.document;\n\t\t} else {\n\t\t\tconsole.warn(`The given Window has no valid Document.`);\n\t\t}\n\t} else {\n\t\tconsole.warn(`The given Window is not valid.`);\n\t}\n};\n\nexport const getWindow = (): Window => (WINDOW || typeof window === 'undefined' ? (null as unknown as Window) : window);\nexport const getDocument = (): Document => (DOCUMENT || typeof getWindow().document === 'undefined' ? (null as unknown as Document) : getWindow().document);\n\nlet META_CONFIG: string | null = null;\nlet DEV_MODE: boolean | null = null;\nlet EXPERIMENTAL_MODE: boolean | null = null;\nlet COLOR_CONTRAST_ANALYSIS: boolean | null = null;\n\nexport const getDevMode = (): boolean => DEV_MODE === true;\nexport const getExperimentalMode = (): boolean => EXPERIMENTAL_MODE === true;\nexport const getColorContrastAnalysis = (): boolean => COLOR_CONTRAST_ANALYSIS === true;\n\ntype LogShield = {\n\tlabel: string;\n\tstyle: string;\n};\n\ntype LogShieldOptions = {\n\tclassifier?: string;\n\tforceLog?: boolean;\n\toverwriteStyle?: string;\n};\n\nexport class Log {\n\tprivate static shield: LogShield = {\n\t\tlabel: '%cKoliBri',\n\t\tstyle: 'color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000',\n\t};\n\n\tprivate static mapToArray(msg: unknown | unknown[]): unknown[] {\n\t\treturn Array.isArray(msg) ? msg : [msg];\n\t}\n\n\tprivate static handleClassifier(classifier?: string): string {\n\t\tif (typeof classifier === 'string' && classifier.length > 0) {\n\t\t\treturn `${Log.shield.label} | ${classifier}`;\n\t\t} else {\n\t\t\treturn Log.shield.label;\n\t\t}\n\t}\n\n\tprivate static getShield(options?: LogShieldOptions): string[] {\n\t\treturn [Log.handleClassifier(options?.classifier), `${Log.shield.style};${options?.overwriteStyle || ''}`];\n\t}\n\n\tpublic static debug(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.debug(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static info(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.info(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static trace(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.trace(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static warn(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.warn(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static error(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.error(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static throw(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tthrow new Error(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n}\n\nconst initMeta = (): void => {\n\tif (DEV_MODE === null && EXPERIMENTAL_MODE === null && COLOR_CONTRAST_ANALYSIS === null) {\n\t\tconst meta = getDocument().querySelector('meta[name=\"kolibri\"]');\n\t\tif (meta && meta.hasAttribute('content')) {\n\t\t\tMETA_CONFIG = meta.getAttribute('content');\n\t\t\tif (typeof META_CONFIG === 'string') {\n\t\t\t\tDEV_MODE = META_CONFIG.includes('dev-mode=true');\n\t\t\t\tEXPERIMENTAL_MODE = META_CONFIG.includes('experimental-mode=true');\n\t\t\t\tCOLOR_CONTRAST_ANALYSIS = META_CONFIG.includes('color-contrast-analysis=true');\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconsole.warn(`You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.`);\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 const initKoliBri = (): void => {\n\tif (getKoliBri().Modal === undefined) {\n\t\tconst Modal = new ModalService();\n\t\tObject.defineProperty(getKoliBri(), 'Modal', {\n\t\t\tget: function (): ModalService {\n\t\t\t\treturn Modal;\n\t\t\t},\n\t\t});\n\t\tinitMeta();\n\t\tLog.debug(\n\t\t\t`\n\t,--. ,--. ,--. ,--. ,-----. ,--.\n\t| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n\t| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n\t| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\t\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n\t🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 1.7.10\n\t\t`,\n\t\t\t{\n\t\t\t\tforceLog: true,\n\t\t\t}\n\t\t);\n\t} else {\n\t\tconsole.warn(`You can only initialize KoliBri once.`);\n\t}\n};\nexport { getKoliBri };\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 (processEnv === 'test') {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n"],"mappings":"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"}
1
+ {"version":3,"names":["ModalService","constructor","this","lockedElements","Map","modalStack","lockElement","htmlElement","tabIndex","getAttribute","HTMLAnchorElement","HTMLButtonElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","dataset","kolModal","undefined","set","setAttribute","style","userSelect","unlockElement","value","removeAttribute","delete","unlockLockedElements","forEach","bind","lockFocus","hostElement","excludeElement","HTMLElement","ShadowRoot","shadowRoot","i","children","length","renderModalIfExists","activeElement","has","get","timeout","setTimeout","clearTimeout","focus","size","modalKeys","Array","from","keys","modalRef","_value","display","getDocument","body","maxHeight","overflow","openModal","Log","warn","closeModal","_a","WINDOW","DOCUMENT","configKoliBri","window","Window","document","Document","console","getWindow","META_CONFIG","DEV_MODE","EXPERIMENTAL_MODE","COLOR_CONTRAST_ANALYSIS","getDevMode","getExperimentalMode","getColorContrastAnalysis","mapToArray","msg","isArray","handleClassifier","classifier","shield","label","getShield","options","overwriteStyle","debug","forceLog","info","trace","error","Error","initMeta","meta","querySelector","hasAttribute","includes","getKoliBri","kolibri","KoliBri","Object","defineProperty","writable","initKoliBri","Modal","renderDevAdvice","adviceShown","nonce","Math","floor","random","toString","processEnv"],"sources":["src/components/modal/service.ts","src/utils/dev.utils.ts"],"sourcesContent":["import { getDocument, Log } from '../../utils/dev.utils';\n\ntype ModalContext = {\n\tactiveElement?: HTMLElement;\n};\n\ntype LockedElementContext = {\n\ttabIndex?: string;\n};\n\n/**\n * The modal service is only working client-side!\n */\nexport class ModalService {\n\tprivate lockedElements: Map<HTMLElement, LockedElementContext> = new Map();\n\tprivate modalStack: Map<HTMLElement, ModalContext> = new Map();\n\n\tprivate lockElement(htmlElement: HTMLElement) {\n\t\tconst tabIndex: string | null = htmlElement.getAttribute('tabindex');\n\t\tif (\n\t\t\thtmlElement instanceof HTMLAnchorElement ||\n\t\t\thtmlElement instanceof HTMLButtonElement ||\n\t\t\thtmlElement instanceof HTMLInputElement ||\n\t\t\thtmlElement instanceof HTMLSelectElement ||\n\t\t\thtmlElement instanceof HTMLTextAreaElement ||\n\t\t\ttypeof tabIndex === 'string' ||\n\t\t\thtmlElement.dataset.kolModal !== undefined\n\t\t) {\n\t\t\tif (typeof tabIndex === 'string') {\n\t\t\t\tthis.lockedElements.set(htmlElement, {\n\t\t\t\t\ttabIndex,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.lockedElements.set(htmlElement, {});\n\t\t\t}\n\t\t\thtmlElement.setAttribute('tabindex', '-1');\n\t\t\thtmlElement.setAttribute('aria-hidden', 'true');\n\t\t\thtmlElement.style.userSelect = 'none';\n\t\t}\n\t}\n\n\tprivate unlockElement(value: LockedElementContext, htmlElement: HTMLElement) {\n\t\tif (typeof value.tabIndex === 'string') {\n\t\t\thtmlElement.setAttribute('tabindex', value.tabIndex);\n\t\t} else {\n\t\t\thtmlElement.removeAttribute('tabindex');\n\t\t}\n\t\thtmlElement.removeAttribute('aria-hidden');\n\t\thtmlElement.style.userSelect = 'unset';\n\t\tthis.lockedElements.delete(htmlElement);\n\t}\n\n\tprivate unlockLockedElements(lockedElements: Map<HTMLElement, LockedElementContext>) {\n\t\tlockedElements.forEach(this.unlockElement.bind(this));\n\t}\n\n\tprivate lockFocus(hostElement: HTMLElement | ShadowRoot | null, excludeElement?: HTMLElement) {\n\t\tif (hostElement !== excludeElement && (hostElement instanceof HTMLElement || hostElement instanceof ShadowRoot)) {\n\t\t\tif (hostElement instanceof HTMLElement) {\n\t\t\t\tthis.lockElement(hostElement);\n\t\t\t\tthis.lockFocus(hostElement.shadowRoot, excludeElement);\n\t\t\t}\n\t\t\tfor (let i = 0; i < hostElement.children.length; i++) {\n\t\t\t\tthis.lockFocus(hostElement.children[i] as HTMLElement, excludeElement);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate renderModalIfExists(activeElement?: HTMLElement) {\n\t\tif (activeElement instanceof HTMLElement) {\n\t\t\tif (this.lockedElements.has(activeElement)) {\n\t\t\t\tthis.unlockElement(this.lockedElements.get(activeElement) as LockedElementContext, activeElement);\n\t\t\t}\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tactiveElement.focus();\n\t\t\t}, 500);\n\t\t}\n\t\tthis.unlockLockedElements(this.lockedElements);\n\t\tif (this.modalStack.size > 0) {\n\t\t\tconst modalKeys = Array.from(this.modalStack.keys());\n\t\t\tconst modalRef = modalKeys[modalKeys.length - 1] as HTMLElement & {\n\t\t\t\t_activeElement: HTMLElement | null; // typo sugger\n\t\t\t};\n\t\t\tthis.modalStack.forEach((_value: ModalContext, htmlElement: HTMLElement) => {\n\t\t\t\tif (modalRef === htmlElement) {\n\t\t\t\t\thtmlElement.style.display = 'inline';\n\t\t\t\t} else {\n\t\t\t\t\thtmlElement.style.display = `none`;\n\t\t\t\t}\n\t\t\t});\n\t\t\tgetDocument().body.style.maxHeight = '100vh';\n\t\t\tgetDocument().body.style.overflow = 'hidden';\n\t\t\tthis.lockFocus(getDocument().body, modalRef);\n\t\t} else {\n\t\t\tgetDocument().body.style.maxHeight = 'unset';\n\t\t\tgetDocument().body.style.overflow = 'unset';\n\t\t}\n\t}\n\n\tpublic openModal(modalRef: HTMLElement, activeElement?: HTMLElement): void {\n\t\tif (modalRef instanceof HTMLElement === false) {\n\t\t\tLog.warn(`[KolModalService] Die DOM-Referenz des Modals ist nicht valide.`);\n\t\t} else {\n\t\t\tthis.modalStack.set(modalRef, {\n\t\t\t\tactiveElement,\n\t\t\t});\n\t\t\tthis.renderModalIfExists();\n\t\t}\n\t}\n\n\tpublic closeModal(modalRef: HTMLElement): void {\n\t\tif (modalRef instanceof HTMLElement === false) {\n\t\t\tLog.warn(`[KolModalService] Die DOM-Referenz des Modals ist nicht valide.`);\n\t\t} else {\n\t\t\tconst activeElement = this.modalStack.get(modalRef)?.activeElement;\n\t\t\tthis.modalStack.delete(modalRef);\n\t\t\tthis.renderModalIfExists(activeElement);\n\t\t}\n\t}\n}\n","import { ModalService } from '../components/modal/service';\nimport { processEnv } from './reuse';\n\nlet WINDOW: Window | null = null;\nlet DOCUMENT: Document | null = null;\n\nexport const configKoliBri = (window: Window): void => {\n\tif (window instanceof Window) {\n\t\tWINDOW = window;\n\t\tif (WINDOW.document instanceof Document) {\n\t\t\tDOCUMENT = window.document;\n\t\t} else {\n\t\t\tconsole.warn(`The given Window has no valid Document.`);\n\t\t}\n\t} else {\n\t\tconsole.warn(`The given Window is not valid.`);\n\t}\n};\n\nexport const getWindow = (): Window => (WINDOW || typeof window === 'undefined' ? (null as unknown as Window) : window);\nexport const getDocument = (): Document => (DOCUMENT || typeof getWindow().document === 'undefined' ? (null as unknown as Document) : getWindow().document);\n\nlet META_CONFIG: string | null = null;\nlet DEV_MODE: boolean | null = null;\nlet EXPERIMENTAL_MODE: boolean | null = null;\nlet COLOR_CONTRAST_ANALYSIS: boolean | null = null;\n\nexport const getDevMode = (): boolean => DEV_MODE === true;\nexport const getExperimentalMode = (): boolean => EXPERIMENTAL_MODE === true;\nexport const getColorContrastAnalysis = (): boolean => COLOR_CONTRAST_ANALYSIS === true;\n\ntype LogShield = {\n\tlabel: string;\n\tstyle: string;\n};\n\ntype LogShieldOptions = {\n\tclassifier?: string;\n\tforceLog?: boolean;\n\toverwriteStyle?: string;\n};\n\nexport class Log {\n\tprivate static shield: LogShield = {\n\t\tlabel: '%cKoliBri',\n\t\tstyle: 'color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000',\n\t};\n\n\tprivate static mapToArray(msg: unknown | unknown[]): unknown[] {\n\t\treturn Array.isArray(msg) ? msg : [msg];\n\t}\n\n\tprivate static handleClassifier(classifier?: string): string {\n\t\tif (typeof classifier === 'string' && classifier.length > 0) {\n\t\t\treturn `${Log.shield.label} | ${classifier}`;\n\t\t} else {\n\t\t\treturn Log.shield.label;\n\t\t}\n\t}\n\n\tprivate static getShield(options?: LogShieldOptions): string[] {\n\t\treturn [Log.handleClassifier(options?.classifier), `${Log.shield.style};${options?.overwriteStyle || ''}`];\n\t}\n\n\tpublic static debug(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.debug(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static info(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.info(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static trace(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.trace(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static warn(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.warn(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static error(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tconsole.error(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n\n\tpublic static throw(msg: unknown | unknown[], options?: LogShieldOptions): void {\n\t\tif (DEV_MODE || options?.forceLog === true) {\n\t\t\tthrow new Error(...Log.getShield(options), ...Log.mapToArray(msg));\n\t\t}\n\t}\n}\n\nconst initMeta = (): void => {\n\tif (DEV_MODE === null && EXPERIMENTAL_MODE === null && COLOR_CONTRAST_ANALYSIS === null) {\n\t\tconst meta = getDocument().querySelector('meta[name=\"kolibri\"]');\n\t\tif (meta && meta.hasAttribute('content')) {\n\t\t\tMETA_CONFIG = meta.getAttribute('content');\n\t\t\tif (typeof META_CONFIG === 'string') {\n\t\t\t\tDEV_MODE = META_CONFIG.includes('dev-mode=true');\n\t\t\t\tEXPERIMENTAL_MODE = META_CONFIG.includes('experimental-mode=true');\n\t\t\t\tCOLOR_CONTRAST_ANALYSIS = META_CONFIG.includes('color-contrast-analysis=true');\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconsole.warn(`You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.`);\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 const initKoliBri = (): void => {\n\tif (getKoliBri().Modal === undefined) {\n\t\tconst Modal = new ModalService();\n\t\tObject.defineProperty(getKoliBri(), 'Modal', {\n\t\t\tget: function (): ModalService {\n\t\t\t\treturn Modal;\n\t\t\t},\n\t\t});\n\t\tinitMeta();\n\t\tLog.debug(\n\t\t\t`\n\t,--. ,--. ,--. ,--. ,-----. ,--.\n\t| .' / ,---. | | \\`--' | |) /_ ,--.--. \\`--'\n\t| . ' | .-. | | | ,--. | .-. \\\\ | .--' ,--.\n\t| |\\\\ \\\\ | '-' | | | | | | '--' / | | | |\n\t\\`--' \\`--´ \\`---´ \\`--' \\`--' \\`------´ \\`--' \\`--'\n\t🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | 1.7.12\n\t\t`,\n\t\t\t{\n\t\t\t\tforceLog: true,\n\t\t\t}\n\t\t);\n\t} else {\n\t\tconsole.warn(`You can only initialize KoliBri once.`);\n\t}\n};\nexport { getKoliBri };\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 (processEnv === 'test') {\n\tnonce = (): string => 'nonce';\n}\n\nexport { nonce };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{i as t,e as o,r as s,a as e,L as a,d as r,f as i,g as l}from"./dev.utils-5f359e41.js";import{n,q as p,k as f,t as c,u as d,p as L,v as m}from"./prop.validators-e5a112ea.js";import"./reuse-d79ab469.js";import"./index-c88c7ecf.js";import"./a11y.tipps-a79effa1.js";function u(t,e){try{Object.defineProperty(l(),t,{get:function(){return e}})}catch(e){a.debug(`KoliBri property ${t} is already bind.`)}}const v=(t,e)=>a.debug(`${t} ${e?"":"not "}activated`),h=()=>{if(t(),o()){s(),u("a11yColorContrast",p),u("querySelector",f),u("querySelectorAll",c),u("querySelectorColors",d),u("utils",(function(){return n})),u("parseJson",L),u("stringifyJson",m);const t=e().body,a=e().createElement("svg");if(a.setAttribute("aria-label","KoliBri-DevTools"),a.setAttribute("xmlns","http://www.w3.org/2000/svg"),a.setAttribute("role","toolbar"),a.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),a.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>',e().body.appendChild(a),v("Development mode",o()),v("Experimental mode",r()),v("Color contrast analysis",i()),i()){const o=setTimeout((()=>{clearTimeout(o),setInterval((()=>{n.queryHtmlElementColors(e().createElement("div"),p(t),!1,!1)}),1e4)}),2500)}}};export{h as initialize};
4
+ import{i as t,e as o,r as s,a as e,L as a,d as r,f as i,g as l}from"./dev.utils-232c068c.js";import{n,q as p,k as c,t as d,u as f,p as L,v as m}from"./prop.validators-a73a5d11.js";import"./reuse-d79ab469.js";import"./index-c88c7ecf.js";import"./a11y.tipps-b5477bd5.js";function u(t,e){try{Object.defineProperty(l(),t,{get:function(){return e}})}catch(e){a.debug(`KoliBri property ${t} is already bind.`)}}const v=(t,e)=>a.debug(`${t} ${e?"":"not "}activated`),h=()=>{if(t(),o()){s(),u("a11yColorContrast",p),u("querySelector",c),u("querySelectorAll",d),u("querySelectorColors",f),u("utils",(function(){return n})),u("parseJson",L),u("stringifyJson",m);const t=e().body,a=e().createElement("svg");if(a.setAttribute("aria-label","KoliBri-DevTools"),a.setAttribute("xmlns","http://www.w3.org/2000/svg"),a.setAttribute("role","toolbar"),a.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),a.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>',e().body.appendChild(a),v("Development mode",o()),v("Experimental mode",r()),v("Color contrast analysis",i()),i()){const o=setTimeout((()=>{clearTimeout(o),setInterval((()=>{n.queryHtmlElementColors(e().createElement("div"),p(t),!1,!1)}),1e4)}),2500)}}};export{h as initialize};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ const t=Math.min,n=Math.max,e=Math.round,o=Math.floor,r=t=>({x:t,y:t}),i={left:"right",right:"left",bottom:"top",top:"bottom"},s={start:"end",end:"start"};function c(e,o,i){return n(e,t(o,i))}function l(t,e){return"function"==typeof t?t(e):t}function f(t){return t.split("-")[0]}function a(t){return t.split("-")[1]}function u(t){return"x"===t?"y":"x"}function d(t){return"y"===t?"height":"width"}function m(t){return["top","bottom"].includes(f(t))?"y":"x"}function y(t){return u(m(t))}function p(t,e,n){void 0===n&&(n=!1);const o=a(t),i=y(t),r=d(i);let l="x"===i?o===(n?"end":"start")?"right":"left":"start"===o?"bottom":"top";return e.reference[r]>e.floating[r]&&(l=v(l)),[l,v(l)]}function h(t){const e=v(t);return[x(t),e,x(e)]}function x(t){return t.replace(/start|end/g,(t=>s[t]))}function g(t,e,n){const o=["left","right"],i=["right","left"],r=["top","bottom"],l=["bottom","top"];switch(t){case"top":case"bottom":return n?e?i:o:e?o:i;case"left":case"right":return e?r:l;default:return[]}}function w(t,e,n,o){const i=a(t);let r=g(f(t),"start"===n,o);return i&&(r=r.map((t=>t+"-"+i)),e&&(r=r.concat(r.map(x)))),r}function v(t){return t.replace(/left|right|bottom|top/g,(t=>i[t]))}function b(t){return{top:0,right:0,bottom:0,left:0,...t}}function A(t){return"number"!=typeof t?b(t):{top:t,right:t,bottom:t,left:t}}function R(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}function k(t,e,n){let{reference:o,floating:i}=t;const r=m(e),l=y(e),c=d(l),s=f(e),u="y"===r,p=o.x+o.width/2-i.width/2,h=o.y+o.height/2-i.height/2,g=o[c]/2-i[c]/2;let x;switch(s){case"top":x={x:p,y:o.y-i.height};break;case"bottom":x={x:p,y:o.y+o.height};break;case"right":x={x:o.x+o.width,y:h};break;case"left":x={x:o.x-i.width,y:h};break;default:x={x:o.x,y:o.y}}switch(a(e)){case"start":x[l]-=g*(n&&u?-1:1);break;case"end":x[l]+=g*(n&&u?-1:1)}return x}const S=async(t,e,n)=>{const{placement:o="bottom",strategy:i="absolute",middleware:r=[],platform:l}=n,c=r.filter(Boolean),s=await(null==l.isRTL?void 0:l.isRTL(e));let a=await l.getElementRects({reference:t,floating:e,strategy:i}),{x:f,y:u}=k(a,o,s),d=o,m={},p=0;for(let n=0;n<c.length;n++){const{name:r,fn:h}=c[n],{x:g,y:y,data:x,reset:w}=await h({x:f,y:u,initialPlacement:o,placement:d,strategy:i,middlewareData:m,rects:a,platform:l,elements:{reference:t,floating:e}});f=null!=g?g:f,u=null!=y?y:u,m={...m,[r]:{...m[r],...x}},w&&p<=50&&(p++,"object"==typeof w&&(w.placement&&(d=w.placement),w.rects&&(a=!0===w.rects?await l.getElementRects({reference:t,floating:e,strategy:i}):w.rects),({x:f,y:u}=k(a,d,s))),n=-1)}return{x:f,y:u,placement:d,strategy:i,middlewareData:m}};async function F(t,e){var n;void 0===e&&(e={});const{x:o,y:i,platform:r,rects:c,elements:s,strategy:a}=t,{boundary:f="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:m=!1,padding:p=0}=l(e,t),h=A(p),g=s[m?"floating"===d?"reference":"floating":d],y=R(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(g)))||n?g:g.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(s.floating)),boundary:f,rootBoundary:u,strategy:a})),x="floating"===d?{...c.floating,x:o,y:i}:c.reference,w=await(null==r.getOffsetParent?void 0:r.getOffsetParent(s.floating)),v=await(null==r.isElement?void 0:r.isElement(w))&&await(null==r.getScale?void 0:r.getScale(w))||{x:1,y:1},b=R(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:x,offsetParent:w,strategy:a}):x);return{top:(y.top-b.top+h.top)/v.y,bottom:(b.bottom-y.bottom+h.bottom)/v.y,left:(y.left-b.left+h.left)/v.x,right:(b.right-y.right+h.right)/v.x}}const O=e=>({name:"arrow",options:e,async fn(n){const{x:o,y:i,placement:r,rects:s,platform:f,elements:u,middlewareData:m}=n,{element:p,padding:h=0}=l(e,n)||{};if(null==p)return{};const g=A(h),x={x:o,y:i},w=y(r),v=d(w),b=await f.getDimensions(p),R="y"===w,E=R?"top":"left",L=R?"bottom":"right",T=R?"clientHeight":"clientWidth",C=s.reference[v]+s.reference[w]-x[w]-s.floating[v],O=x[w]-s.reference[w],S=await(null==f.getOffsetParent?void 0:f.getOffsetParent(p));let D=S?S[T]:0;D&&await(null==f.isElement?void 0:f.isElement(S))||(D=u.floating[T]||s.floating[v]);const F=C/2-O/2,k=D/2-b[v]/2-1,P=t(g[E],k),W=t(g[L],k),z=P,X=D-b[v]-W,I=D/2-b[v]/2+F,H=c(z,I,X),V=!m.arrow&&null!=a(r)&&I!==H&&s.reference[v]/2-(I<z?P:W)-b[v]/2<0,B=V?I<z?I-z:I-X:0;return{[w]:x[w]+B,data:{[w]:H,centerOffset:I-H-B,...V&&{alignmentOffset:B}},reset:V}}}),T=function(t){return void 0===t&&(t={}),{name:"flip",options:t,async fn(e){var n,o;const{placement:i,middlewareData:r,rects:c,initialPlacement:s,platform:a,elements:u}=e,{mainAxis:d=!0,crossAxis:m=!0,fallbackPlacements:g,fallbackStrategy:y="bestFit",fallbackAxisSideDirection:x="none",flipAlignment:b=!0,...R}=l(t,e);if(null!=(n=r.arrow)&&n.alignmentOffset)return{};const E=f(i),L=f(s)===s,T=await(null==a.isRTL?void 0:a.isRTL(u.floating)),C=g||(L||!b?[v(s)]:h(s));g||"none"===x||C.push(...w(s,b,x,T));const A=[s,...C],O=await F(e,R),S=[];let D=(null==(o=r.flip)?void 0:o.overflows)||[];if(d&&S.push(O[E]),m){const t=p(i,c,T);S.push(O[t[0]],O[t[1]])}if(D=[...D,{placement:i,overflows:S}],!S.every((t=>t<=0))){var k,P;const t=((null==(k=r.flip)?void 0:k.index)||0)+1,e=A[t];if(e)return{data:{index:t,overflows:D},reset:{placement:e}};let n=null==(P=D.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])?void 0:P.placement;if(!n)switch(y){case"bestFit":{var W;const t=null==(W=D.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:W[0];t&&(n=t);break}case"initialPlacement":n=s}if(i!==n)return{reset:{placement:n}}}return{}}}};async function D(t,e){const{placement:n,platform:o,elements:i}=t,r=await(null==o.isRTL?void 0:o.isRTL(i.floating)),c=f(n),s=a(n),u="y"===m(n),d=["left","top"].includes(c)?-1:1,p=r&&u?-1:1,h=l(e,t);let{mainAxis:g,crossAxis:y,alignmentAxis:x}="number"==typeof h?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...h};return s&&"number"==typeof x&&(y="end"===s?-1*x:x),u?{x:y*p,y:g*d}:{x:g*d,y:y*p}}const P=function(t){return void 0===t&&(t=0),{name:"offset",options:t,async fn(e){var n,o;const{x:i,y:r,placement:l,middlewareData:c}=e,s=await D(e,t);return l===(null==(n=c.offset)?void 0:n.placement)&&null!=(o=c.arrow)&&o.alignmentOffset?{}:{x:i+s.x,y:r+s.y,data:{...s,placement:l}}}}},M=function(t){return void 0===t&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:o,placement:i}=e,{mainAxis:r=!0,crossAxis:s=!1,limiter:a={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...d}=l(t,e),p={x:n,y:o},h=await F(e,d),g=m(f(i)),y=u(g);let x=p[y],w=p[g];if(r){const t="y"===y?"bottom":"right";x=c(x+h["y"===y?"top":"left"],x,x-h[t])}if(s){const t="y"===g?"bottom":"right";w=c(w+h["y"===g?"top":"left"],w,w-h[t])}const v=a.fn({...e,[y]:x,[g]:w});return{...v,data:{x:v.x-n,y:v.y-o}}}}};function z(t){return B(t)?(t.nodeName||"").toLowerCase():"#document"}function C(t){var e;return(null==t||null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function L(t){var e;return null==(e=(B(t)?t.ownerDocument:t.document)||window.document)?void 0:e.documentElement}function B(t){return t instanceof Node||t instanceof C(t).Node}function E(t){return t instanceof Element||t instanceof C(t).Element}function I(t){return t instanceof HTMLElement||t instanceof C(t).HTMLElement}function N(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ShadowRoot||t instanceof C(t).ShadowRoot)}function q(t){const{overflow:e,overflowX:n,overflowY:o,display:i}=X(t);return/auto|scroll|overlay|hidden|clip/.test(e+o+n)&&!["inline","contents"].includes(i)}function H(t){return["table","td","th"].includes(z(t))}function $(t){const e=V(),n=X(t);return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!e&&!!n.backdropFilter&&"none"!==n.backdropFilter||!e&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some((t=>(n.willChange||"").includes(t)))||["paint","layout","strict","content"].some((t=>(n.contain||"").includes(t)))}function j(t){let e=_(t);for(;I(e)&&!W(e);){if($(e))return e;e=_(e)}return null}function V(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function W(t){return["html","body","#document"].includes(z(t))}function X(t){return C(t).getComputedStyle(t)}function Y(t){return E(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function _(t){if("html"===z(t))return t;const e=t.assignedSlot||t.parentNode||N(t)&&t.host||L(t);return N(e)?e.host:e}function G(t){const e=_(t);return W(e)?t.ownerDocument?t.ownerDocument.body:t.body:I(e)&&q(e)?e:G(e)}function J(t,e,n){var o;void 0===e&&(e=[]),void 0===n&&(n=!0);const i=G(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),l=C(i);return r?e.concat(l,l.visualViewport||[],q(i)?i:[],l.frameElement&&n?J(l.frameElement):[]):e.concat(i,J(i,[],n))}function K(t){const n=X(t);let o=parseFloat(n.width)||0,i=parseFloat(n.height)||0;const r=I(t),l=r?t.offsetWidth:o,c=r?t.offsetHeight:i,s=e(o)!==l||e(i)!==c;return s&&(o=l,i=c),{width:o,height:i,$:s}}function Q(t){return E(t)?t:t.contextElement}function U(t){const n=Q(t);if(!I(n))return r(1);const o=n.getBoundingClientRect(),{width:i,height:l,$:c}=K(n);let s=(c?e(o.width):o.width)/i,a=(c?e(o.height):o.height)/l;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}const Z=r(0);function tt(t){const e=C(t);return V()&&e.visualViewport?{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}:Z}function nt(t,e,n){return void 0===e&&(e=!1),!(!n||e&&n!==C(t))&&e}function et(t,e,n,o){void 0===e&&(e=!1),void 0===n&&(n=!1);const i=t.getBoundingClientRect(),l=Q(t);let c=r(1);e&&(o?E(o)&&(c=U(o)):c=U(t));const s=nt(l,n,o)?tt(l):r(0);let a=(i.left+s.x)/c.x,f=(i.top+s.y)/c.y,u=i.width/c.x,d=i.height/c.y;if(l){const t=C(l),e=o&&E(o)?C(o):o;let n=t,i=n.frameElement;for(;i&&o&&e!==n;){const t=U(i),e=i.getBoundingClientRect(),o=X(i),r=e.left+(i.clientLeft+parseFloat(o.paddingLeft))*t.x,l=e.top+(i.clientTop+parseFloat(o.paddingTop))*t.y;a*=t.x,f*=t.y,u*=t.x,d*=t.y,a+=r,f+=l,n=C(i),i=n.frameElement}}return R({width:u,height:d,x:a,y:f})}const ot=[":popover-open",":modal"];function rt(t){return ot.some((e=>{try{return t.matches(e)}catch(t){return!1}}))}function it(t){let{elements:e,rect:n,offsetParent:o,strategy:i}=t;const l="fixed"===i,c=L(o),s=!!e&&rt(e.floating);if(o===c||s&&l)return n;let a={scrollLeft:0,scrollTop:0},f=r(1);const u=r(0),d=I(o);if((d||!d&&!l)&&(("body"!==z(o)||q(c))&&(a=Y(o)),I(o))){const t=et(o);f=U(o),u.x=t.x+o.clientLeft,u.y=t.y+o.clientTop}return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-a.scrollLeft*f.x+u.x,y:n.y*f.y-a.scrollTop*f.y+u.y}}function st(t){return Array.from(t.getClientRects())}function ct(t){return et(L(t)).left+Y(t).scrollLeft}function lt(t){const e=L(t),o=Y(t),i=t.ownerDocument.body,r=n(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),l=n(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let c=-o.scrollLeft+ct(t);const s=-o.scrollTop;return"rtl"===X(i).direction&&(c+=n(e.clientWidth,i.clientWidth)-r),{width:r,height:l,x:c,y:s}}function ft(t,e){const n=C(t),o=L(t),i=n.visualViewport;let r=o.clientWidth,l=o.clientHeight,c=0,s=0;if(i){r=i.width,l=i.height;const t=V();(!t||t&&"fixed"===e)&&(c=i.offsetLeft,s=i.offsetTop)}return{width:r,height:l,x:c,y:s}}function at(t,e){const n=et(t,!0,"fixed"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,l=I(t)?U(t):r(1);return{width:t.clientWidth*l.x,height:t.clientHeight*l.y,x:i*l.x,y:o*l.y}}function ut(t,e,n){let o;if("viewport"===e)o=ft(t,n);else if("document"===e)o=lt(L(t));else if(E(e))o=at(e,n);else{const n=tt(t);o={...e,x:e.x-n.x,y:e.y-n.y}}return R(o)}function dt(t,e){const n=_(t);return!(n===e||!E(n)||W(n))&&("fixed"===X(n).position||dt(n,e))}function mt(t,e){const n=e.get(t);if(n)return n;let o=J(t,[],!1).filter((t=>E(t)&&"body"!==z(t))),i=null;const r="fixed"===X(t).position;let l=r?_(t):t;for(;E(l)&&!W(l);){const e=X(l),n=$(l);n||"fixed"!==e.position||(i=null);(r?!n&&!i:!n&&"static"===e.position&&!!i&&["absolute","fixed"].includes(i.position)||q(l)&&!n&&dt(t,l))?o=o.filter((t=>t!==l)):i=e,l=_(l)}return e.set(t,o),o}function yt(e){let{element:o,boundary:i,rootBoundary:r,strategy:l}=e;const c=[..."clippingAncestors"===i?mt(o,this._c):[].concat(i),r],s=c[0],a=c.reduce(((e,i)=>{const r=ut(o,i,l);return e.top=n(r.top,e.top),e.right=t(r.right,e.right),e.bottom=t(r.bottom,e.bottom),e.left=n(r.left,e.left),e}),ut(o,s,l));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}}function pt(t){const{width:e,height:n}=K(t);return{width:e,height:n}}function ht(t,e,n){const o=I(e),i=L(e),l="fixed"===n,c=et(t,!0,l,e);let s={scrollLeft:0,scrollTop:0};const a=r(0);if(o||!o&&!l)if(("body"!==z(e)||q(i))&&(s=Y(e)),o){const t=et(e,!0,l,e);a.x=t.x+e.clientLeft,a.y=t.y+e.clientTop}else i&&(a.x=ct(i));return{x:c.left+s.scrollLeft-a.x,y:c.top+s.scrollTop-a.y,width:c.width,height:c.height}}function xt(t,e){return I(t)&&"fixed"!==X(t).position?e?e(t):t.offsetParent:null}function gt(t,e){const n=C(t);if(!I(t)||rt(t))return n;let o=xt(t,e);for(;o&&H(o)&&"static"===X(o).position;)o=xt(o,e);return o&&("html"===z(o)||"body"===z(o)&&"static"===X(o).position&&!$(o))?n:o||j(t)||n}const wt=async function(t){const e=this.getOffsetParent||gt,n=this.getDimensions;return{reference:ht(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,...await n(t.floating)}}};function vt(t){return"rtl"===X(t).direction}const bt={convertOffsetParentRelativeRectToViewportRelativeRect:it,getDocumentElement:L,getClippingRect:yt,getOffsetParent:gt,getElementRects:wt,getClientRects:st,getDimensions:pt,getScale:U,isElement:E,isRTL:vt};function At(e,i){let r,l=null;const c=L(e);function s(){var t;clearTimeout(r),null==(t=l)||t.disconnect(),l=null}return function a(f,u){void 0===f&&(f=!1),void 0===u&&(u=1),s();const{left:d,top:m,width:p,height:h}=e.getBoundingClientRect();if(f||i(),!p||!h)return;const g={rootMargin:-o(m)+"px "+-o(c.clientWidth-(d+p))+"px "+-o(c.clientHeight-(m+h))+"px "+-o(d)+"px",threshold:n(0,t(1,u))||1};let y=!0;function x(t){const e=t[0].intersectionRatio;if(e!==u){if(!y)return a();e?a(!1,e):r=setTimeout((()=>{a(!1,1e-7)}),100)}y=!1}try{l=new IntersectionObserver(x,{...g,root:c.ownerDocument})}catch(t){l=new IntersectionObserver(x,g)}l.observe(e)}(!0),s}function Rt(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:l="function"==typeof ResizeObserver,layoutShift:c="function"==typeof IntersectionObserver,animationFrame:s=!1}=o,a=Q(t),f=i||r?[...a?J(a):[],...J(e)]:[];f.forEach((t=>{i&&t.addEventListener("scroll",n,{passive:!0}),r&&t.addEventListener("resize",n)}));const u=a&&c?At(a,n):null;let d,m=-1,p=null;l&&(p=new ResizeObserver((t=>{let[o]=t;o&&o.target===a&&p&&(p.unobserve(e),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var t;null==(t=p)||t.observe(e)}))),n()})),a&&!s&&p.observe(a),p.observe(e));let h=s?et(t):null;return s&&function e(){const o=et(t);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||n();h=o,d=requestAnimationFrame(e)}(),n(),()=>{var t;f.forEach((t=>{i&&t.removeEventListener("scroll",n),r&&t.removeEventListener("resize",n)})),null==u||u(),null==(t=p)||t.disconnect(),p=null,s&&cancelAnimationFrame(d)}}const kt=M,St=T,Ft=O,Ot=(t,e,n)=>{const o=new Map,i={platform:bt,...n},r={...i.platform,_c:o};return S(t,e,{...i,platform:r})};export{Ft as a,Rt as b,Ot as c,St as f,P as o,kt as s};