@public-ui/components 1.4.0-rc.11 → 1.4.0-rc.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 (395) hide show
  1. package/cheat-sheet.html +6 -6
  2. package/custom-elements.json +1 -1
  3. package/dist/cjs/a11y.tipps-8ac081a4.js +4 -0
  4. package/dist/cjs/a11y.tipps-8ac081a4.js.map +1 -0
  5. package/dist/cjs/app-globals-38fe8673.js +4 -0
  6. package/dist/cjs/app-globals-38fe8673.js.map +1 -0
  7. package/dist/cjs/button-link-cd69c988.js +4 -0
  8. package/dist/cjs/{button-link-17aa6a40.js.map → button-link-cd69c988.js.map} +1 -1
  9. package/dist/cjs/{controller-cb433205.js → controller-66df2756.js} +1 -1
  10. package/dist/cjs/{controller-cb433205.js.map → controller-66df2756.js.map} +1 -1
  11. package/dist/cjs/{controller-75784c0e.js → controller-7caa2934.js} +1 -1
  12. package/dist/cjs/{controller-75784c0e.js.map → controller-7caa2934.js.map} +1 -1
  13. package/dist/cjs/{controller-dd3f28d0.js → controller-9523b36b.js} +1 -1
  14. package/dist/cjs/{controller-dd3f28d0.js.map → controller-9523b36b.js.map} +1 -1
  15. package/dist/cjs/controller-d9a9f147.js +4 -0
  16. package/dist/cjs/{controller-ec443a90.js.map → controller-d9a9f147.js.map} +1 -1
  17. package/dist/cjs/{controller-0753ec3a.js → controller-e35def7e.js} +1 -1
  18. package/dist/cjs/{controller-0753ec3a.js.map → controller-e35def7e.js.map} +1 -1
  19. package/dist/cjs/controller-e360e5cb.js +4 -0
  20. package/dist/cjs/{controller-8c609713.js.map → controller-e360e5cb.js.map} +1 -1
  21. package/dist/cjs/{controller-icon-ac752d0d.js → controller-icon-1d62450d.js} +1 -1
  22. package/dist/cjs/{controller-icon-ac752d0d.js.map → controller-icon-1d62450d.js.map} +1 -1
  23. package/dist/cjs/dev.utils-863840e0.js +4 -0
  24. package/dist/cjs/dev.utils-863840e0.js.map +1 -0
  25. package/dist/cjs/devtools-bd220661.js +4 -0
  26. package/dist/cjs/devtools-bd220661.js.map +1 -0
  27. package/dist/cjs/{i18n-d56b3736.js → i18n-a8392156.js} +1 -1
  28. package/dist/cjs/{i18n-d56b3736.js.map → i18n-a8392156.js.map} +1 -1
  29. package/dist/cjs/{icon-2a4562a6.js → icon-0b9d4c29.js} +1 -1
  30. package/dist/cjs/{icon-2a4562a6.js.map → icon-0b9d4c29.js.map} +1 -1
  31. package/dist/cjs/index.cjs.js +1 -1
  32. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  33. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  34. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  35. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  36. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  37. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  38. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  39. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  40. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  41. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  42. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  43. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  44. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  45. package/dist/cjs/kol-heading-wc_2.cjs.entry.js +1 -1
  46. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  47. package/dist/cjs/kol-input-adapter-leanup.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  49. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  50. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  51. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  52. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  53. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  54. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  55. package/dist/cjs/kol-input-radio-group.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  57. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  59. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  61. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  63. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  64. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  65. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  66. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  67. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  68. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  70. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  73. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  75. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  77. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  78. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-toast.cjs.entry.js +1 -1
  80. package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-tooltip.cjs.entry.js.map +1 -1
  82. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  83. package/dist/cjs/kolibri.cjs.js +1 -1
  84. package/dist/cjs/label-076e7d4c.js +4 -0
  85. package/dist/cjs/label-076e7d4c.js.map +1 -0
  86. package/dist/cjs/loader.cjs.js +1 -1
  87. package/dist/cjs/prop.validators-f12095c6.js +4 -0
  88. package/dist/cjs/prop.validators-f12095c6.js.map +1 -0
  89. package/dist/cjs/{tab-index-a499e8df.js → tab-index-5cca6068.js} +1 -1
  90. package/dist/cjs/{tab-index-a499e8df.js.map → tab-index-5cca6068.js.map} +1 -1
  91. package/dist/cjs/{validation-421fff30.js → validation-0f3345ed.js} +1 -1
  92. package/dist/cjs/{validation-421fff30.js.map → validation-0f3345ed.js.map} +1 -1
  93. package/dist/cjs/validation-a3cdcfac.js +4 -0
  94. package/dist/cjs/{validation-9fd3dc0c.js.map → validation-a3cdcfac.js.map} +1 -1
  95. package/dist/components/component.js +1 -1
  96. package/dist/components/component.js.map +1 -1
  97. package/dist/components/component13.js +1 -1
  98. package/dist/components/component3.js +1 -1
  99. package/dist/components/component3.js.map +1 -1
  100. package/dist/components/component5.js +1 -1
  101. package/dist/components/component5.js.map +1 -1
  102. package/dist/components/component6.js +1 -1
  103. package/dist/components/component6.js.map +1 -1
  104. package/dist/components/controller-icon.js +1 -1
  105. package/dist/components/devtools.js.map +1 -1
  106. package/dist/components/index.js +1 -1
  107. package/dist/components/index.js.map +1 -1
  108. package/dist/components/kol-input-adapter-leanup.js +1 -1
  109. package/dist/components/kol-input-checkbox.js +1 -1
  110. package/dist/components/kol-input-radio-group.js +1 -1
  111. package/dist/components/kol-tabs.js.map +1 -1
  112. package/dist/components/prop.validators.js +1 -1
  113. package/dist/components/prop.validators.js.map +1 -1
  114. package/dist/esm/a11y.tipps-fb0d6d4a.js +4 -0
  115. package/dist/esm/a11y.tipps-fb0d6d4a.js.map +1 -0
  116. package/dist/esm/app-globals-eba9545f.js +4 -0
  117. package/dist/esm/app-globals-eba9545f.js.map +1 -0
  118. package/dist/esm/{button-link-75df8fe4.js → button-link-a97a0b52.js} +1 -1
  119. package/dist/esm/{button-link-75df8fe4.js.map → button-link-a97a0b52.js.map} +1 -1
  120. package/dist/esm/controller-0ebfacf3.js +4 -0
  121. package/dist/esm/{controller-4fb4a3b9.js.map → controller-0ebfacf3.js.map} +1 -1
  122. package/dist/esm/{controller-3dd01f3f.js → controller-361446ce.js} +1 -1
  123. package/dist/esm/{controller-3dd01f3f.js.map → controller-361446ce.js.map} +1 -1
  124. package/dist/esm/{controller-b2f78852.js → controller-4bd6e55a.js} +1 -1
  125. package/dist/esm/{controller-b2f78852.js.map → controller-4bd6e55a.js.map} +1 -1
  126. package/dist/esm/{controller-5c769b0e.js → controller-61d2823c.js} +1 -1
  127. package/dist/esm/{controller-5c769b0e.js.map → controller-61d2823c.js.map} +1 -1
  128. package/dist/esm/controller-6e1a2cf5.js +4 -0
  129. package/dist/esm/{controller-f1a122f2.js.map → controller-6e1a2cf5.js.map} +1 -1
  130. package/dist/esm/{controller-b7800467.js → controller-9905f5ac.js} +1 -1
  131. package/dist/esm/{controller-b7800467.js.map → controller-9905f5ac.js.map} +1 -1
  132. package/dist/esm/{controller-icon-ac7d7589.js → controller-icon-9c5345fb.js} +1 -1
  133. package/dist/esm/{controller-icon-ac7d7589.js.map → controller-icon-9c5345fb.js.map} +1 -1
  134. package/dist/esm/dev.utils-4906dab2.js +4 -0
  135. package/dist/esm/dev.utils-4906dab2.js.map +1 -0
  136. package/dist/esm/devtools-bd18f788.js +4 -0
  137. package/dist/esm/devtools-bd18f788.js.map +1 -0
  138. package/dist/esm/{i18n-23bb2f48.js → i18n-03d9f2e2.js} +1 -1
  139. package/dist/esm/{i18n-23bb2f48.js.map → i18n-03d9f2e2.js.map} +1 -1
  140. package/dist/esm/{icon-286d4116.js → icon-c882053e.js} +1 -1
  141. package/dist/esm/{icon-286d4116.js.map → icon-c882053e.js.map} +1 -1
  142. package/dist/esm/index.js +1 -1
  143. package/dist/esm/kol-abbr.entry.js +1 -1
  144. package/dist/esm/kol-accordion.entry.js +1 -1
  145. package/dist/esm/kol-alert.entry.js +1 -1
  146. package/dist/esm/kol-alert.entry.js.map +1 -1
  147. package/dist/esm/kol-badge.entry.js +1 -1
  148. package/dist/esm/kol-badge.entry.js.map +1 -1
  149. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  150. package/dist/esm/kol-button-link.entry.js +1 -1
  151. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  152. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  153. package/dist/esm/kol-button.entry.js +1 -1
  154. package/dist/esm/kol-card.entry.js +1 -1
  155. package/dist/esm/kol-details.entry.js +1 -1
  156. package/dist/esm/kol-form.entry.js +1 -1
  157. package/dist/esm/kol-heading-wc_2.entry.js +1 -1
  158. package/dist/esm/kol-icon.entry.js +1 -1
  159. package/dist/esm/kol-input-adapter-leanup.entry.js +1 -1
  160. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  161. package/dist/esm/kol-input-color.entry.js +1 -1
  162. package/dist/esm/kol-input-date.entry.js +1 -1
  163. package/dist/esm/kol-input-email.entry.js +1 -1
  164. package/dist/esm/kol-input-file.entry.js +1 -1
  165. package/dist/esm/kol-input-number.entry.js +1 -1
  166. package/dist/esm/kol-input-password.entry.js +1 -1
  167. package/dist/esm/kol-input-radio-group.entry.js +1 -1
  168. package/dist/esm/kol-input-radio.entry.js +1 -1
  169. package/dist/esm/kol-input-range.entry.js +1 -1
  170. package/dist/esm/kol-input-text.entry.js +1 -1
  171. package/dist/esm/kol-kolibri.entry.js +1 -1
  172. package/dist/esm/kol-link-button.entry.js +1 -1
  173. package/dist/esm/kol-link-group.entry.js +1 -1
  174. package/dist/esm/kol-link-wc.entry.js +1 -1
  175. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  176. package/dist/esm/kol-link.entry.js +1 -1
  177. package/dist/esm/kol-logo.entry.js +1 -1
  178. package/dist/esm/kol-modal.entry.js +1 -1
  179. package/dist/esm/kol-nav.entry.js +1 -1
  180. package/dist/esm/kol-pagination.entry.js +1 -1
  181. package/dist/esm/kol-progress.entry.js +1 -1
  182. package/dist/esm/kol-select.entry.js +1 -1
  183. package/dist/esm/kol-skip-nav.entry.js +1 -1
  184. package/dist/esm/kol-spin.entry.js +1 -1
  185. package/dist/esm/kol-symbol.entry.js +1 -1
  186. package/dist/esm/kol-table.entry.js +1 -1
  187. package/dist/esm/kol-tabs.entry.js +1 -1
  188. package/dist/esm/kol-tabs.entry.js.map +1 -1
  189. package/dist/esm/kol-textarea.entry.js +1 -1
  190. package/dist/esm/kol-toast.entry.js +1 -1
  191. package/dist/esm/kol-tooltip.entry.js +1 -1
  192. package/dist/esm/kol-tooltip.entry.js.map +1 -1
  193. package/dist/esm/kol-version.entry.js +1 -1
  194. package/dist/esm/kolibri.js +1 -1
  195. package/dist/esm/label-c9b63c3d.js +4 -0
  196. package/dist/esm/label-c9b63c3d.js.map +1 -0
  197. package/dist/esm/loader.js +1 -1
  198. package/dist/esm/prop.validators-f4032a8d.js +4 -0
  199. package/dist/esm/prop.validators-f4032a8d.js.map +1 -0
  200. package/dist/esm/{reuse-2b3b6999.js → reuse-3a431285.js} +1 -1
  201. package/dist/esm/{reuse-2b3b6999.js.map → reuse-3a431285.js.map} +1 -1
  202. package/dist/esm/{tab-index-7446a923.js → tab-index-bbec84b6.js} +1 -1
  203. package/dist/esm/{tab-index-7446a923.js.map → tab-index-bbec84b6.js.map} +1 -1
  204. package/dist/esm/validation-53528392.js +4 -0
  205. package/dist/esm/{validation-57ce54ee.js.map → validation-53528392.js.map} +1 -1
  206. package/dist/esm/validation-fbd2b07b.js +4 -0
  207. package/dist/esm/{validation-7fe30a10.js.map → validation-fbd2b07b.js.map} +1 -1
  208. package/dist/kolibri/a11y.tipps-fb0d6d4a.js +4 -0
  209. package/dist/kolibri/{a11y.tipps-7a139717.js.map → a11y.tipps-fb0d6d4a.js.map} +1 -1
  210. package/dist/kolibri/app-globals-eba9545f.js +4 -0
  211. package/dist/kolibri/app-globals-eba9545f.js.map +1 -0
  212. package/dist/kolibri/button-link-a97a0b52.js +4 -0
  213. package/dist/kolibri/controller-0ebfacf3.js +4 -0
  214. package/dist/kolibri/{controller-4fb4a3b9.js.map → controller-0ebfacf3.js.map} +1 -1
  215. package/dist/kolibri/controller-361446ce.js +4 -0
  216. package/dist/kolibri/{controller-b2f78852.js → controller-4bd6e55a.js} +1 -1
  217. package/dist/kolibri/{controller-5c769b0e.js → controller-61d2823c.js} +1 -1
  218. package/dist/kolibri/controller-6e1a2cf5.js +4 -0
  219. package/dist/kolibri/{controller-f1a122f2.js.map → controller-6e1a2cf5.js.map} +1 -1
  220. package/dist/kolibri/{controller-b7800467.js → controller-9905f5ac.js} +1 -1
  221. package/dist/kolibri/controller-icon-9c5345fb.js +4 -0
  222. package/dist/kolibri/{log-829fbbc7.js → dev.utils-4906dab2.js} +1 -1
  223. package/dist/kolibri/dev.utils-4906dab2.js.map +1 -0
  224. package/dist/kolibri/devtools-bd18f788.js +4 -0
  225. package/dist/kolibri/devtools-bd18f788.js.map +1 -0
  226. package/dist/kolibri/{i18n-23bb2f48.js → i18n-03d9f2e2.js} +1 -1
  227. package/dist/kolibri/icon-c882053e.js +4 -0
  228. package/dist/kolibri/{icon-286d4116.js.map → icon-c882053e.js.map} +1 -1
  229. package/dist/kolibri/index.esm.js +1 -1
  230. package/dist/kolibri/kol-abbr.entry.js +1 -1
  231. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  232. package/dist/kolibri/kol-accordion.entry.js +1 -1
  233. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  234. package/dist/kolibri/kol-alert.entry.js +1 -1
  235. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  236. package/dist/kolibri/kol-badge.entry.js +1 -1
  237. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  238. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  239. package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
  240. package/dist/kolibri/kol-button-link.entry.js +1 -1
  241. package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
  242. package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
  243. package/dist/kolibri/kol-button.entry.js +1 -1
  244. package/dist/kolibri/kol-card.entry.js +1 -1
  245. package/dist/kolibri/kol-card.entry.js.map +1 -1
  246. package/dist/kolibri/kol-details.entry.js +1 -1
  247. package/dist/kolibri/kol-details.entry.js.map +1 -1
  248. package/dist/kolibri/kol-form.entry.js +1 -1
  249. package/dist/kolibri/kol-form.entry.js.map +1 -1
  250. package/dist/kolibri/kol-heading-wc_2.entry.js +1 -1
  251. package/dist/kolibri/kol-heading-wc_2.entry.js.map +1 -1
  252. package/dist/kolibri/kol-icon.entry.js +1 -1
  253. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  254. package/dist/kolibri/kol-input-adapter-leanup.entry.js +1 -1
  255. package/dist/kolibri/kol-input-adapter-leanup.entry.js.map +1 -1
  256. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  257. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  258. package/dist/kolibri/kol-input-color.entry.js +1 -1
  259. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  260. package/dist/kolibri/kol-input-date.entry.js +1 -1
  261. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  262. package/dist/kolibri/kol-input-email.entry.js +1 -1
  263. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  264. package/dist/kolibri/kol-input-file.entry.js +1 -1
  265. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  266. package/dist/kolibri/kol-input-number.entry.js +1 -1
  267. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  268. package/dist/kolibri/kol-input-password.entry.js +1 -1
  269. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  270. package/dist/kolibri/kol-input-radio-group.entry.js +1 -1
  271. package/dist/kolibri/kol-input-radio-group.entry.js.map +1 -1
  272. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  273. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  274. package/dist/kolibri/kol-input-range.entry.js +1 -1
  275. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  276. package/dist/kolibri/kol-input-text.entry.js +1 -1
  277. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  278. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  279. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  280. package/dist/kolibri/kol-link-button.entry.js +1 -1
  281. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  282. package/dist/kolibri/kol-link-group.entry.js +1 -1
  283. package/dist/kolibri/kol-link-group.entry.js.map +1 -1
  284. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  285. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  286. package/dist/kolibri/kol-link.entry.js +1 -1
  287. package/dist/kolibri/kol-logo.entry.js +1 -1
  288. package/dist/kolibri/kol-logo.entry.js.map +1 -1
  289. package/dist/kolibri/kol-modal.entry.js +1 -1
  290. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  291. package/dist/kolibri/kol-nav.entry.js +1 -1
  292. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  293. package/dist/kolibri/kol-pagination.entry.js +1 -1
  294. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  295. package/dist/kolibri/kol-progress.entry.js +1 -1
  296. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  297. package/dist/kolibri/kol-select.entry.js +1 -1
  298. package/dist/kolibri/kol-select.entry.js.map +1 -1
  299. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  300. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  301. package/dist/kolibri/kol-spin.entry.js +1 -1
  302. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  303. package/dist/kolibri/kol-symbol.entry.js +1 -1
  304. package/dist/kolibri/kol-symbol.entry.js.map +1 -1
  305. package/dist/kolibri/kol-table.entry.js +1 -1
  306. package/dist/kolibri/kol-table.entry.js.map +1 -1
  307. package/dist/kolibri/kol-tabs.entry.js +1 -1
  308. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  309. package/dist/kolibri/kol-textarea.entry.js +1 -1
  310. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  311. package/dist/kolibri/kol-toast.entry.js +1 -1
  312. package/dist/kolibri/kol-toast.entry.js.map +1 -1
  313. package/dist/kolibri/kol-tooltip.entry.js +1 -1
  314. package/dist/kolibri/kol-tooltip.entry.js.map +1 -1
  315. package/dist/kolibri/kol-version.entry.js +1 -1
  316. package/dist/kolibri/kol-version.entry.js.map +1 -1
  317. package/dist/kolibri/kolibri.esm.js +1 -1
  318. package/dist/kolibri/kolibri.esm.js.map +1 -1
  319. package/dist/kolibri/label-c9b63c3d.js +4 -0
  320. package/dist/kolibri/label-c9b63c3d.js.map +1 -0
  321. package/dist/kolibri/prop.validators-f4032a8d.js +4 -0
  322. package/dist/kolibri/prop.validators-f4032a8d.js.map +1 -0
  323. package/dist/kolibri/{reuse-2b3b6999.js → reuse-3a431285.js} +1 -1
  324. package/dist/kolibri/tab-index-bbec84b6.js +4 -0
  325. package/dist/kolibri/{tab-index-7446a923.js.map → tab-index-bbec84b6.js.map} +1 -1
  326. package/dist/kolibri/validation-53528392.js +4 -0
  327. package/dist/kolibri/{validation-7fe30a10.js → validation-fbd2b07b.js} +1 -1
  328. package/dist/types/components/badge/component.d.ts +2 -0
  329. package/dist/types/utils/dev.utils.d.ts +17 -0
  330. package/dist/types/utils/globals.d.ts +0 -0
  331. package/dist/types/utils/prop.validators.d.ts +2 -1
  332. package/dist/types/utils/validators/label.d.ts +5 -2
  333. package/jest-test-results.json +1 -1
  334. package/package.json +1 -1
  335. package/dist/cjs/a11y.tipps-ab1afcfd.js +0 -4
  336. package/dist/cjs/a11y.tipps-ab1afcfd.js.map +0 -1
  337. package/dist/cjs/app-globals-725a044c.js +0 -4
  338. package/dist/cjs/app-globals-725a044c.js.map +0 -1
  339. package/dist/cjs/button-link-17aa6a40.js +0 -4
  340. package/dist/cjs/controller-8c609713.js +0 -4
  341. package/dist/cjs/controller-ec443a90.js +0 -4
  342. package/dist/cjs/devtools-29b8b4ff.js +0 -4
  343. package/dist/cjs/devtools-29b8b4ff.js.map +0 -1
  344. package/dist/cjs/label-b702acbd.js +0 -4
  345. package/dist/cjs/label-b702acbd.js.map +0 -1
  346. package/dist/cjs/log-c0dc35c9.js +0 -4
  347. package/dist/cjs/log-c0dc35c9.js.map +0 -1
  348. package/dist/cjs/prop.validators-da7d3db2.js +0 -4
  349. package/dist/cjs/prop.validators-da7d3db2.js.map +0 -1
  350. package/dist/cjs/validation-9fd3dc0c.js +0 -4
  351. package/dist/esm/a11y.tipps-7a139717.js +0 -4
  352. package/dist/esm/a11y.tipps-7a139717.js.map +0 -1
  353. package/dist/esm/app-globals-0ffb53ba.js +0 -4
  354. package/dist/esm/app-globals-0ffb53ba.js.map +0 -1
  355. package/dist/esm/controller-4fb4a3b9.js +0 -4
  356. package/dist/esm/controller-f1a122f2.js +0 -4
  357. package/dist/esm/devtools-1fae3661.js +0 -4
  358. package/dist/esm/devtools-1fae3661.js.map +0 -1
  359. package/dist/esm/label-bd914c5e.js +0 -4
  360. package/dist/esm/label-bd914c5e.js.map +0 -1
  361. package/dist/esm/log-829fbbc7.js +0 -4
  362. package/dist/esm/log-829fbbc7.js.map +0 -1
  363. package/dist/esm/prop.validators-27682076.js +0 -4
  364. package/dist/esm/prop.validators-27682076.js.map +0 -1
  365. package/dist/esm/validation-57ce54ee.js +0 -4
  366. package/dist/esm/validation-7fe30a10.js +0 -4
  367. package/dist/kolibri/a11y.tipps-7a139717.js +0 -4
  368. package/dist/kolibri/app-globals-0ffb53ba.js +0 -4
  369. package/dist/kolibri/app-globals-0ffb53ba.js.map +0 -1
  370. package/dist/kolibri/button-link-75df8fe4.js +0 -4
  371. package/dist/kolibri/controller-3dd01f3f.js +0 -4
  372. package/dist/kolibri/controller-4fb4a3b9.js +0 -4
  373. package/dist/kolibri/controller-f1a122f2.js +0 -4
  374. package/dist/kolibri/controller-icon-ac7d7589.js +0 -4
  375. package/dist/kolibri/devtools-1fae3661.js +0 -4
  376. package/dist/kolibri/devtools-1fae3661.js.map +0 -1
  377. package/dist/kolibri/icon-286d4116.js +0 -4
  378. package/dist/kolibri/label-bd914c5e.js +0 -4
  379. package/dist/kolibri/label-bd914c5e.js.map +0 -1
  380. package/dist/kolibri/log-829fbbc7.js.map +0 -1
  381. package/dist/kolibri/prop.validators-27682076.js +0 -4
  382. package/dist/kolibri/prop.validators-27682076.js.map +0 -1
  383. package/dist/kolibri/tab-index-7446a923.js +0 -4
  384. package/dist/kolibri/validation-57ce54ee.js +0 -4
  385. package/dist/types/utils/log.d.ts +0 -18
  386. /package/dist/kolibri/{button-link-75df8fe4.js.map → button-link-a97a0b52.js.map} +0 -0
  387. /package/dist/kolibri/{controller-3dd01f3f.js.map → controller-361446ce.js.map} +0 -0
  388. /package/dist/kolibri/{controller-b2f78852.js.map → controller-4bd6e55a.js.map} +0 -0
  389. /package/dist/kolibri/{controller-5c769b0e.js.map → controller-61d2823c.js.map} +0 -0
  390. /package/dist/kolibri/{controller-b7800467.js.map → controller-9905f5ac.js.map} +0 -0
  391. /package/dist/kolibri/{controller-icon-ac7d7589.js.map → controller-icon-9c5345fb.js.map} +0 -0
  392. /package/dist/kolibri/{i18n-23bb2f48.js.map → i18n-03d9f2e2.js.map} +0 -0
  393. /package/dist/kolibri/{reuse-2b3b6999.js.map → reuse-3a431285.js.map} +0 -0
  394. /package/dist/kolibri/{validation-57ce54ee.js.map → validation-53528392.js.map} +0 -0
  395. /package/dist/kolibri/{validation-7fe30a10.js.map → validation-fbd2b07b.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["searchFormElement","el","getExperimalMode","devHint","console","log","HTMLElement","tagName","parentElement","parentNode","ShadowRoot","host","propergateResetEventToForm","options","form","event","Event","bubbles","cancelable","setEventTargetAndStopPropagation","dispatchEvent","KoliBriDevHelper","querySelector","kolForm","_on","onReset","propergateSubmitEventToForm","SubmitEvent","submitter","onSubmit"],"sources":["./src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTargetAndStopPropagation } from '../../utils/prop.validators';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimalMode()) {\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 (getExperimalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propergateResetEventToForm = (\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\tsetEventTargetAndStopPropagation(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTargetAndStopPropagation(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as HTMLKolFormElement;\n\t\t\tif (typeof kolForm._on === 'object' && typeof kolForm._on !== null && typeof kolForm._on.onReset === 'function') {\n\t\t\t\tkolForm._on.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propergateSubmitEventToForm = (\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\tsetEventTargetAndStopPropagation(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTargetAndStopPropagation(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as HTMLKolFormElement;\n\t\t\tif (typeof kolForm._on === 'object' && typeof kolForm._on !== null && 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":";;;4IAIA,MAAMA,EAAqBC,IAC1B,GAAIC,IAAoB,CACvBC,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,IAAoB,CACvBE,QAAQC,IAAIJ,E,EAGd,GAAIC,IAAoB,CACvBC,EAAQ,kC,CAET,OAAOF,CAAE,E,MAGGW,EAA6B,CACzCC,EAGI,MAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIC,MAAM,QAAS,CAChCC,QAAS,KACTC,WAAY,OAEb,GAAIJ,EAAKP,UAAY,OAAQ,CAC5BY,EAAiCJ,EAAOD,GACxCA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAiCJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC/E,MAAMS,EAAUT,EAChB,UAAWS,EAAQC,MAAQ,iBAAmBD,EAAQC,MAAQ,aAAeD,EAAQC,IAAIC,UAAY,WAAY,CAChHF,EAAQC,IAAIC,QAAQV,E,WAMXW,EAA8B,CAC1Cb,EAGI,MAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIY,YAAY,SAAU,CACvCV,QAAS,KACTC,WAAY,KACZU,UAAWd,IAYZ,GAAIA,EAAKP,UAAY,OAAQ,CAC5BY,EAAiCJ,EAAOD,GACxCA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAiCJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC/E,MAAMS,EAAUT,EAChB,UAAWS,EAAQC,MAAQ,iBAAmBD,EAAQC,MAAQ,aAAeD,EAAQC,IAAIK,WAAa,WAAY,CACjHN,EAAQC,IAAIK,SAASd,E"}
1
+ {"version":3,"names":["searchFormElement","el","getExperimalMode","devHint","console","log","HTMLElement","tagName","parentElement","parentNode","ShadowRoot","host","propergateResetEventToForm","options","form","event","Event","bubbles","cancelable","setEventTargetAndStopPropagation","dispatchEvent","KoliBriDevHelper","querySelector","kolForm","_on","onReset","propergateSubmitEventToForm","SubmitEvent","submitter","onSubmit"],"sources":["./src/components/form/controller.ts"],"sourcesContent":["import { devHint } from '../../utils/a11y.tipps';\nimport { getExperimalMode } from '../../utils/dev.utils';\nimport { KoliBriDevHelper, setEventTargetAndStopPropagation } from '../../utils/prop.validators';\n\nconst searchFormElement = (el?: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null | undefined => {\n\tif (getExperimalMode()) {\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 (getExperimalMode()) {\n\t\t\tconsole.log(el);\n\t\t}\n\t}\n\tif (getExperimalMode()) {\n\t\tdevHint(`↑ Search form element finished.`);\n\t}\n\treturn el;\n};\n\nexport const propergateResetEventToForm = (\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\tsetEventTargetAndStopPropagation(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTargetAndStopPropagation(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as HTMLKolFormElement;\n\t\t\tif (typeof kolForm._on === 'object' && typeof kolForm._on !== null && typeof kolForm._on.onReset === 'function') {\n\t\t\t\tkolForm._on.onReset(event);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const propergateSubmitEventToForm = (\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\tsetEventTargetAndStopPropagation(event, form);\n\t\t\tform.dispatchEvent(event);\n\t\t} else if (form.tagName === 'KOL-FORM') {\n\t\t\tsetEventTargetAndStopPropagation(event, KoliBriDevHelper.querySelector('form', form) as HTMLFormElement);\n\t\t\tconst kolForm = form as HTMLKolFormElement;\n\t\t\tif (typeof kolForm._on === 'object' && typeof kolForm._on !== null && 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":";;;kJAIA,MAAMA,EAAqBC,IAC1B,GAAIC,IAAoB,CACvBC,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,IAAoB,CACvBE,QAAQC,IAAIJ,E,EAGd,GAAIC,IAAoB,CACvBC,EAAQ,kC,CAET,OAAOF,CAAE,E,MAGGW,EAA6B,CACzCC,EAGI,MAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIC,MAAM,QAAS,CAChCC,QAAS,KACTC,WAAY,OAEb,GAAIJ,EAAKP,UAAY,OAAQ,CAC5BY,EAAiCJ,EAAOD,GACxCA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAiCJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC/E,MAAMS,EAAUT,EAChB,UAAWS,EAAQC,MAAQ,iBAAmBD,EAAQC,MAAQ,aAAeD,EAAQC,IAAIC,UAAY,WAAY,CAChHF,EAAQC,IAAIC,QAAQV,E,WAMXW,EAA8B,CAC1Cb,EAGI,MAEJ,MAAMC,EAAOd,EAAkBa,EAAQC,MACvC,GAAIA,aAAgBR,YAAa,CAChC,MAAMS,EAAQ,IAAIY,YAAY,SAAU,CACvCV,QAAS,KACTC,WAAY,KACZU,UAAWd,IAYZ,GAAIA,EAAKP,UAAY,OAAQ,CAC5BY,EAAiCJ,EAAOD,GACxCA,EAAKM,cAAcL,E,MACb,GAAID,EAAKP,UAAY,WAAY,CACvCY,EAAiCJ,EAAOM,EAAiBC,cAAc,OAAQR,IAC/E,MAAMS,EAAUT,EAChB,UAAWS,EAAQC,MAAQ,iBAAmBD,EAAQC,MAAQ,aAAeD,EAAQC,IAAIK,WAAa,WAAY,CACjHN,EAAQC,IAAIK,SAASd,E"}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{a as t}from"./prop.validators-f4032a8d.js";const o=(a,o,r)=>{t(a,o,(t=>"button"===t||"reset"===t||"submit"===t),new Set(["KoliBriButtonType {button, reset, submit}"]),r)},a=(a,o,r)=>{t(a,o,(t=>"primary"===t||"secondary"===t||"normal"===t||"danger"===t||"ghost"===t||"custom"===t),new Set(["KoliBriButtonVariant {primary, secondary, normal, danger, ghost, custom}"]),r,{defaultValue:"normal"})};export{o as a,a as w};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{d as t}from"./a11y.tipps-7a139717.js";import{a as e,b as i,e as s,w as a}from"./prop.validators-27682076.js";import{I as h}from"./controller-icon-ac7d7589.js";class r extends h{constructor(e,a,n){super(e,a,n),this.handleHiddenLabelAndRequired=()=>{!0===this.component.state._hideLabel&&!0===this.component.state._required?(t("[KolInput*] Wenn man das Label ausblendet, dann kann der sehende Nutzer:in nicht mehr erkennen, ob die Eingabe erforderlich ist."),this.hideLabel=!1):this.hideLabel=!0===this.component.state._hideLabel},this.component=e}validateAutoComplete(t){e(this.component,"_autoComplete",(e=>"string"==typeof e&&("on"===e||"off"===e)),new Set(["on | off"]),t)}validateHideLabel(e){i(this.component,"_hideLabel",e,{hooks:{afterPatch:this.handleHiddenLabelAndRequired}})}validateMaxLength(e){s(this.component,"_maxLength",e,{min:0})}validatePattern(e){a(this.component,"_pattern",e)}validatePlaceholder(e){a(this.component,"_placeholder",e)}validateReadOnly(e){i(this.component,"_readOnly",e)}validateRequired(e){i(this.component,"_required",e,{hooks:{afterPatch:this.handleHiddenLabelAndRequired}})}validateSize(e){s(this.component,"_size",e,{min:1})}validateValue(e){a(this.component,"_value",e)}componentWillLoad(){super.componentWillLoad(),this.validateAutoComplete(this.component._autoComplete),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(e){this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:this.placeholderCache}),this.placeholderCache=void 0,super.onBlur(e)}onFocus(e){this.placeholderCache=this.component.state._placeholder,this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:void 0}),super.onFocus(e)}}export{r as I};
4
+ import{d as t}from"./a11y.tipps-fb0d6d4a.js";import{a as e,b as i,e as s,w as a}from"./prop.validators-f4032a8d.js";import{I as h}from"./controller-icon-9c5345fb.js";class r extends h{constructor(e,a,n){super(e,a,n),this.handleHiddenLabelAndRequired=()=>{!0===this.component.state._hideLabel&&!0===this.component.state._required?(t("[KolInput*] Wenn man das Label ausblendet, dann kann der sehende Nutzer:in nicht mehr erkennen, ob die Eingabe erforderlich ist."),this.hideLabel=!1):this.hideLabel=!0===this.component.state._hideLabel},this.component=e}validateAutoComplete(t){e(this.component,"_autoComplete",(e=>"string"==typeof e&&("on"===e||"off"===e)),new Set(["on | off"]),t)}validateHideLabel(e){i(this.component,"_hideLabel",e,{hooks:{afterPatch:this.handleHiddenLabelAndRequired}})}validateMaxLength(e){s(this.component,"_maxLength",e,{min:0})}validatePattern(e){a(this.component,"_pattern",e)}validatePlaceholder(e){a(this.component,"_placeholder",e)}validateReadOnly(e){i(this.component,"_readOnly",e)}validateRequired(e){i(this.component,"_required",e,{hooks:{afterPatch:this.handleHiddenLabelAndRequired}})}validateSize(e){s(this.component,"_size",e,{min:1})}validateValue(e){a(this.component,"_value",e)}componentWillLoad(){super.componentWillLoad(),this.validateAutoComplete(this.component._autoComplete),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(e){this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:this.placeholderCache}),this.placeholderCache=void 0,super.onBlur(e)}onFocus(e){this.placeholderCache=this.component.state._placeholder,this.component.state=Object.assign(Object.assign({},this.component.state),{_placeholder:void 0}),super.onFocus(e)}}export{r as I};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{a as t,d as s}from"./prop.validators-27682076.js";import{I as e}from"./controller-b2f78852.js";class r extends e{constructor(t,s,e){super(t,s,e),this.component=t}validateList(t){s(this.component,"_list",(t=>"string"==typeof t),t)}componentWillLoad(){super.componentWillLoad(),this.validateList(this.component._list)}}class i extends r{constructor(t,s,e){super(t,s,e),this.hasError=!1,this.hasList=!1,this.component=t}validateType(s){t(this.component,"_type",(t=>"string"==typeof t&&("text"===t||"search"===t||"url"===t||"tel"===t)),new Set(["String {text, search, url, tel}"]),s)}componentWillLoad(){super.componentWillLoad(),this.validateType(this.component._type)}}export{r as I,i as a};
4
+ import{a as t,d as s}from"./prop.validators-f4032a8d.js";import{I as e}from"./controller-4bd6e55a.js";class r extends e{constructor(t,s,e){super(t,s,e),this.component=t}validateList(t){s(this.component,"_list",(t=>"string"==typeof t),t)}componentWillLoad(){super.componentWillLoad(),this.validateList(this.component._list)}}class a extends r{constructor(t,s,e){super(t,s,e),this.hasError=!1,this.hasList=!1,this.component=t}validateType(s){t(this.component,"_type",(t=>"string"==typeof t&&("text"===t||"search"===t||"url"===t||"tel"===t)),new Set(["String {text, search, url, tel}"]),s)}componentWillLoad(){super.componentWillLoad(),this.validateType(this.component._type)}}export{r as I,a};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{e as i,d as t}from"./a11y.tipps-fb0d6d4a.js";import{b as s,w as e,s as h,o,p as n}from"./prop.validators-f4032a8d.js";import{v as a}from"./tab-index-bbec84b6.js";import{b as d}from"./dev.utils-4906dab2.js";const r=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,ariaDiscribedBy:n}},l=d();class v{constructor(t,e,o){var n,i,s,a,h;if(this.syncFormAssociatedName=()=>{var t;l&&(null===(t=this.formAssociated)||void 0===t||t.setAttribute("name",this.component.state._name||this.component.state._id))},this.setFormAssociatedValue=(t=null)=>{var e;l&&(null===(e=this.formAssociated)||void 0===e||e.setAttribute("value",t))},this.component=t,this.name=e,this.host=o,l){this.formAssociated=document.createElement("input"),this.formAssociated.setAttribute("type","hidden");const t=(null===(n=this.host)||void 0===n?void 0:n.children)||[];for(let e=0;e<t.length;e++)"INPUT"===(null===(i=this.host)||void 0===i?void 0:i.children[e].tagName)&&(null===(s=this.host)||void 0===s||s.removeChild(null===(a=this.host)||void 0===a?void 0:a.children[e]));null===(h=this.host)||void 0===h||h.appendChild(this.formAssociated)}}validateAlert(t){s(this.component,"_alert",t)}validateTouched(t){s(this.component,"_touched",t)}componentWillLoad(){this.validateAlert(this.component._alert),this.validateTouched(this.component._touched)}}class u extends v{constructor(t,e,o){super(t,e,o),this.hideLabel=!1,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){e(this.component,"_accessKey",t)}validateAdjustHeight(t){s(this.component,"_adjustHeight",t)}validateDisabled(t){s(this.component,"_disabled",t),!0===t&&i()}validateError(t){e(this.component,"_error",t)}validateHideLabel(t){s(this.component,"_hideLabel",t)}validateHint(t){e(this.component,"_hint",t)}validateId(o){e(this.component,"_id",o,{hooks:{afterPatch:this.syncFormAssociatedName}}),void 0===o&&t("Eine eindeutige ID an den Eingabefeldern ist nicht zwingend erforderlich, könnte aber für die E2E-Tests relevant sein.")}validateName(o){e(this.component,"_name",o,{hooks:{afterPatch:this.syncFormAssociatedName}}),void 0===o&&t("Ein Name an den Eingabefeldern ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion des Eingabefeldes relevant sein.")}validateOn(t){"object"==typeof t&&h(this.component,"_on",t)}validateSmartButton(t){o(t,(()=>{try{t=n(t)}catch(t){}h(this.component,"_smartButton",t)}))}validateTabIndex(t){a(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.validateHideLabel(this.component._hideLabel),this.validateHint(this.component._hint),this.validateId(this.component._id),this.validateName(this.component._name),this.validateSmartButton(this.component._smartButton),this.validateOn(this.component._on),this.validateTabIndex(this.component._tabIndex),this.syncFormAssociatedName()}onBlur(t){var e;this.component._alert=!0,this.component._touched=!0,"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onBlur)&&this.component._on.onBlur(t)}onChange(t){var e;this.setFormAssociatedValue(t.target.value),"function"==typeof(null===(e=this.component._on)||void 0===e?void 0:e.onChange)&&this.component._on.onChange(t,t.target.value)}onClick(t){var e;"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,"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)}}export{u as I,r as g};
@@ -1 +1 @@
1
- {"version":3,"names":["getRenderStates","state","hasError","_error","length","_touched","hasHint","_hint","ariaDiscribedBy","push","_id","EXPERIMENTAL_MODE","getExperimalMode","ControlledInputController","constructor","component","name","host","this","syncFormAssociatedName","_a","formAssociated","setAttribute","_name","setFormAssociatedValue","value","document","createElement","children","i","_b","tagName","_c","removeChild","_d","_e","appendChild","validateAlert","watchBoolean","validateTouched","componentWillLoad","_alert","InputController","super","hideLabel","onFacade","onBlur","bind","onChange","onClick","onFocus","validateAccessKey","watchString","validateAdjustHeight","validateDisabled","a11yHintDisabled","validateError","validateHideLabel","validateHint","validateId","hooks","afterPatch","devHint","validateName","validateOn","setState","validateSmartButton","objectObjectHandler","parseJson","e","validateTabIndex","_accessKey","_adjustHeight","_disabled","_hideLabel","_smartButton","_on","_tabIndex","event","target","setValue"],"sources":["./src/components/input/controller.ts","./src/components/input-adapter-leanup/controller.ts","./src/components/@deprecated/input/controller.ts"],"sourcesContent":["/**\n * Berechnet in Abhängigkeit des Component-State, wie die\n * aria-describedby-Attributs gesetzt werden sollen.\n *\n * @param state State der Component\n * @returns Render-States\n */\nexport const getRenderStates = (state: {\n\t_error?: string;\n\t_hint?: string;\n\t_id: string;\n\t_touched?: boolean;\n}): {\n\thasError: boolean;\n\thasHint: boolean;\n\tariaDiscribedBy: string[];\n} => {\n\tconst hasError = typeof state._error === 'string' && state._error.length > 0 && state._touched === true;\n\tconst hasHint = typeof state._hint === 'string' && state._hint.length > 0;\n\n\tconst ariaDiscribedBy: string[] = [];\n\tif (hasError === true) {\n\t\tariaDiscribedBy.push(`${state._id}-error`);\n\t}\n\tif (hasHint === true) {\n\t\tariaDiscribedBy.push(`${state._id}-hint`);\n\t}\n\treturn { hasError, hasHint, ariaDiscribedBy };\n};\n","import { Generic } from '@a11y-ui/core';\nimport { getExperimalMode } from '../../utils/dev.utils';\nimport { watchBoolean } from '../../utils/prop.validators';\nimport { Props, Watches } from './types';\n\nconst EXPERIMENTAL_MODE = getExperimalMode();\n\nexport class ControlledInputController 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?: HTMLInputElement;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tthis.component = component;\n\t\tthis.name = name;\n\t\tthis.host = host;\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated = document.createElement('input');\n\t\t\tthis.formAssociated.setAttribute('type', 'hidden');\n\t\t\tconst children = this.host?.children || [];\n\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\tif (this.host?.children[i].tagName === 'INPUT') {\n\t\t\t\t\tthis.host?.removeChild(this.host?.children[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.host?.appendChild(this.formAssociated);\n\t\t}\n\t}\n\n\tprotected readonly syncFormAssociatedName = () => {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated?.setAttribute('name', (this.component.state._name as string) || (this.component.state._id as string));\n\t\t}\n\t};\n\n\tpublic readonly setFormAssociatedValue = (value: string | null = null) => {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated?.setAttribute('value', value as string);\n\t\t}\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this.component, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateTouched(value?: boolean): void {\n\t\twatchBoolean(this.component, '_touched', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlert(this.component._alert);\n\t\tthis.validateTouched(this.component._touched);\n\t}\n}\n","import { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../../types/button-link';\nimport { InputTypeOnDefault } from '../../../types/input/types';\nimport { a11yHintDisabled, devHint } from '../../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchBoolean, watchString } from '../../../utils/prop.validators';\nimport { validateTabIndex } from '../../../utils/validators/tab-index';\nimport { ControlledInputController } from '../../input-adapter-leanup/controller';\nimport { Props as AdapterProps } from '../../input-adapter-leanup/types';\nimport { Props, Watches } from './types';\n\nexport class InputController extends ControlledInputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props & AdapterProps;\n\n\tpublic hideLabel = false;\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\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this.component, '_accessKey', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAdjustHeight(value?: boolean): void {\n\t\twatchBoolean(this.component, '_adjustHeight', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this.component, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateError(value?: string): void {\n\t\twatchString(this.component, '_error', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateHideLabel(value?: boolean): void {\n\t\twatchBoolean(this.component, '_hideLabel', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateHint(value?: string): void {\n\t\twatchString(this.component, '_hint', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateId(value?: string): void {\n\t\twatchString(this.component, '_id', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.syncFormAssociatedName,\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(`Eine eindeutige ID an den Eingabefeldern ist nicht zwingend erforderlich, könnte aber für die E2E-Tests relevant sein.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateName(value?: string): void {\n\t\twatchString(this.component, '_name', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.syncFormAssociatedName,\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(`Ein Name an den Eingabefeldern ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion des Eingabefeldes relevant sein.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateOn(value?: InputTypeOnDefault): void {\n\t\tif (typeof value === 'object') {\n\t\t\tsetState(this.component, '_on', value);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateSmartButton(value?: ButtonProps | string): void {\n\t\tobjectObjectHandler(value, () => {\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<ButtonProps>(value as string);\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (e) {\n\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t}\n\t\t\tsetState(this.component, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this.component, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateAccessKey(this.component._accessKey);\n\t\tthis.validateAdjustHeight(this.component._adjustHeight);\n\t\tthis.validateError(this.component._error);\n\t\tthis.validateDisabled(this.component._disabled);\n\t\tthis.validateHideLabel(this.component._hideLabel);\n\t\tthis.validateHint(this.component._hint);\n\t\tthis.validateId(this.component._id);\n\t\tthis.validateName(this.component._name);\n\t\tthis.validateSmartButton(this.component._smartButton);\n\t\tthis.validateOn(this.component._on);\n\t\tthis.validateTabIndex(this.component._tabIndex);\n\t\tthis.syncFormAssociatedName();\n\t}\n\n\tprotected onBlur(event: Event): void {\n\t\tthis.component._alert = true;\n\t\tthis.component._touched = true;\n\t\tif (typeof this.component._on?.onBlur === 'function') {\n\t\t\tthis.component._on.onBlur(event);\n\t\t}\n\t}\n\n\tprotected onChange(event: Event): void {\n\t\tthis.setFormAssociatedValue((event.target as HTMLInputElement).value);\n\t\tif (typeof this.component._on?.onChange === 'function') {\n\t\t\t/**\n\t\t\t * TODO\n\t\t\t * Value-Handling muss für InputDate und InputNumber optimiert werden\n\t\t\t * - value\n\t\t\t * - valueAsNumber\n\t\t\t * - valueAsDate\n\t\t\t */\n\t\t\tthis.component._on.onChange(event, (event.target as HTMLInputElement).value);\n\t\t}\n\t}\n\n\tprotected onClick(event: Event): void {\n\t\tif (typeof this.component._on?.onClick === 'function') {\n\t\t\tthis.component._on.onClick(event);\n\t\t}\n\t}\n\n\tprotected onFocus(event: Event): void {\n\t\tthis.component._alert = true;\n\t\tif (typeof this.component._on?.onFocus === 'function') {\n\t\t\tthis.component._on.onFocus(event);\n\t\t}\n\t}\n\n\tpublic setValue(event: Event, value: string | number | boolean): void {\n\t\tthis.setFormAssociatedValue(value as string);\n\t\tif (typeof this.component._on?.onChange === 'function') {\n\t\t\tthis.component._on.onChange(event, value);\n\t\t}\n\t}\n\n\t/**\n\t * Hinweis: In der Subklasse 'InputPasswordController'\n\t * werden die Methoden onBlur und onFocus\n\t * überschrieben.\n\t * Es werden somit zunächst die Methoden der\n\t * Subklasse ausgeführt und danach die der\n\t * Oberklassen.\n\t */\n\tpublic readonly onFacade = {\n\t\tonBlur: this.onBlur.bind(this),\n\t\tonChange: this.onChange.bind(this),\n\t\tonClick: this.onClick.bind(this),\n\t\tonFocus: this.onFocus.bind(this),\n\t};\n}\n"],"mappings":";;;qNAOaA,EAAmBC,IAU/B,MAAMC,SAAkBD,EAAME,SAAW,UAAYF,EAAME,OAAOC,OAAS,GAAKH,EAAMI,WAAa,KACnG,MAAMC,SAAiBL,EAAMM,QAAU,UAAYN,EAAMM,MAAMH,OAAS,EAExE,MAAMI,EAA4B,GAClC,GAAIN,IAAa,KAAM,CACtBM,EAAgBC,KAAK,GAAGR,EAAMS,Y,CAE/B,GAAIJ,IAAY,KAAM,CACrBE,EAAgBC,KAAK,GAAGR,EAAMS,W,CAE/B,MAAO,CAAER,WAAUI,UAASE,kBAAiB,ECtB9C,MAAMG,EAAoBC,I,MAEbC,EAOZC,YAAmBC,EAA8CC,EAAcC,G,cAiB5DC,KAAAC,uBAAyB,K,MAC3C,GAAIR,EAAmB,EACtBS,EAAAF,KAAKG,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,aAAa,OAASJ,KAAKH,UAAUd,MAAMsB,OAAqBL,KAAKH,UAAUd,MAAMS,I,GAI5FQ,KAAAM,uBAAyB,CAACC,EAAuB,Q,MAChE,GAAId,EAAmB,EACtBS,EAAAF,KAAKG,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,aAAa,QAASG,E,GAxB5CP,KAAKH,UAAYA,EACjBG,KAAKF,KAAOA,EACZE,KAAKD,KAAOA,EACZ,GAAIN,EAAmB,CACtBO,KAAKG,eAAiBK,SAASC,cAAc,SAC7CT,KAAKG,eAAeC,aAAa,OAAQ,UACzC,MAAMM,IAAWR,EAAAF,KAAKD,QAAI,MAAAG,SAAA,SAAAA,EAAEQ,WAAY,GACxC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAASxB,OAAQyB,IAAK,CACzC,KAAIC,EAAAZ,KAAKD,QAAI,MAAAa,SAAA,SAAAA,EAAEF,SAASC,GAAGE,WAAY,QAAS,EAC/CC,EAAAd,KAAKD,QAAI,MAAAe,SAAA,SAAAA,EAAEC,aAAYC,EAAAhB,KAAKD,QAAI,MAAAiB,SAAA,SAAAA,EAAEN,SAASC,G,GAG7CM,EAAAjB,KAAKD,QAAI,MAAAkB,SAAA,SAAAA,EAAEC,YAAYlB,KAAKG,e,EAmBvBgB,cAAcZ,GACpBa,EAAapB,KAAKH,UAAW,SAAUU,E,CAMjCc,gBAAgBd,GACtBa,EAAapB,KAAKH,UAAW,WAAYU,E,CAMnCe,oBACNtB,KAAKmB,cAAcnB,KAAKH,UAAU0B,QAClCvB,KAAKqB,gBAAgBrB,KAAKH,UAAUV,S,QCpDzBqC,UAAwB7B,EAKpCC,YAAmBC,EAA8CC,EAAcC,GAC9E0B,MAAM5B,EAAWC,EAAMC,GAHjBC,KAAA0B,UAAY,MAoLH1B,KAAA2B,SAAW,CAC1BC,OAAQ5B,KAAK4B,OAAOC,KAAK7B,MACzB8B,SAAU9B,KAAK8B,SAASD,KAAK7B,MAC7B+B,QAAS/B,KAAK+B,QAAQF,KAAK7B,MAC3BgC,QAAShC,KAAKgC,QAAQH,KAAK7B,OApL3BA,KAAKH,UAAYA,C,CAMXoC,kBAAkB1B,GACxB2B,EAAYlC,KAAKH,UAAW,aAAcU,E,CAMpC4B,qBAAqB5B,GAC3Ba,EAAapB,KAAKH,UAAW,gBAAiBU,E,CAMxC6B,iBAAiB7B,GACvBa,EAAapB,KAAKH,UAAW,YAAaU,GAC1C,GAAIA,IAAU,KAAM,CACnB8B,G,EAOKC,cAAc/B,GACpB2B,EAAYlC,KAAKH,UAAW,SAAUU,E,CAMhCgC,kBAAkBhC,GACxBa,EAAapB,KAAKH,UAAW,aAAcU,E,CAMrCiC,aAAajC,GACnB2B,EAAYlC,KAAKH,UAAW,QAASU,E,CAM/BkC,WAAWlC,GACjB2B,EAAYlC,KAAKH,UAAW,MAAOU,EAAO,CACzCmC,MAAO,CACNC,WAAY3C,KAAKC,0BAGnB,UAAWM,IAAU,YAAa,CACjCqC,EAAQ,yH,EAOHC,aAAatC,GACnB2B,EAAYlC,KAAKH,UAAW,QAASU,EAAO,CAC3CmC,MAAO,CACNC,WAAY3C,KAAKC,0BAGnB,UAAWM,IAAU,YAAa,CACjCqC,EAAQ,2I,EAOHE,WAAWvC,GACjB,UAAWA,IAAU,SAAU,CAC9BwC,EAAS/C,KAAKH,UAAW,MAAOU,E,EAO3ByC,oBAAoBzC,GAC1B0C,EAAoB1C,GAAO,KAC1B,IACCA,EAAQ2C,EAAuB3C,E,CAE9B,MAAO4C,G,CAGTJ,EAAS/C,KAAKH,UAAW,eAAgBU,EAAM,G,CAO1C6C,iBAAiB7C,GACvB6C,EAAiBpD,KAAKH,UAAWU,E,CAM3Be,oBACNG,MAAMH,oBACNtB,KAAKiC,kBAAkBjC,KAAKH,UAAUwD,YACtCrD,KAAKmC,qBAAqBnC,KAAKH,UAAUyD,eACzCtD,KAAKsC,cAActC,KAAKH,UAAUZ,QAClCe,KAAKoC,iBAAiBpC,KAAKH,UAAU0D,WACrCvD,KAAKuC,kBAAkBvC,KAAKH,UAAU2D,YACtCxD,KAAKwC,aAAaxC,KAAKH,UAAUR,OACjCW,KAAKyC,WAAWzC,KAAKH,UAAUL,KAC/BQ,KAAK6C,aAAa7C,KAAKH,UAAUQ,OACjCL,KAAKgD,oBAAoBhD,KAAKH,UAAU4D,cACxCzD,KAAK8C,WAAW9C,KAAKH,UAAU6D,KAC/B1D,KAAKoD,iBAAiBpD,KAAKH,UAAU8D,WACrC3D,KAAKC,wB,CAGI2B,OAAOgC,G,MAChB5D,KAAKH,UAAU0B,OAAS,KACxBvB,KAAKH,UAAUV,SAAW,KAC1B,WAAWe,EAAAF,KAAKH,UAAU6D,OAAG,MAAAxD,SAAA,SAAAA,EAAE0B,UAAW,WAAY,CACrD5B,KAAKH,UAAU6D,IAAI9B,OAAOgC,E,EAIlB9B,SAAS8B,G,MAClB5D,KAAKM,uBAAwBsD,EAAMC,OAA4BtD,OAC/D,WAAWL,EAAAF,KAAKH,UAAU6D,OAAG,MAAAxD,SAAA,SAAAA,EAAE4B,YAAa,WAAY,CAQvD9B,KAAKH,UAAU6D,IAAI5B,SAAS8B,EAAQA,EAAMC,OAA4BtD,M,EAI9DwB,QAAQ6B,G,MACjB,WAAW1D,EAAAF,KAAKH,UAAU6D,OAAG,MAAAxD,SAAA,SAAAA,EAAE6B,WAAY,WAAY,CACtD/B,KAAKH,UAAU6D,IAAI3B,QAAQ6B,E,EAInB5B,QAAQ4B,G,MACjB5D,KAAKH,UAAU0B,OAAS,KACxB,WAAWrB,EAAAF,KAAKH,UAAU6D,OAAG,MAAAxD,SAAA,SAAAA,EAAE8B,WAAY,WAAY,CACtDhC,KAAKH,UAAU6D,IAAI1B,QAAQ4B,E,EAItBE,SAASF,EAAcrD,G,MAC7BP,KAAKM,uBAAuBC,GAC5B,WAAWL,EAAAF,KAAKH,UAAU6D,OAAG,MAAAxD,SAAA,SAAAA,EAAE4B,YAAa,WAAY,CACvD9B,KAAKH,UAAU6D,IAAI5B,SAAS8B,EAAOrD,E"}
1
+ {"version":3,"names":["getRenderStates","state","hasError","_error","length","_touched","hasHint","_hint","ariaDiscribedBy","push","_id","EXPERIMENTAL_MODE","getExperimalMode","ControlledInputController","constructor","component","name","host","this","syncFormAssociatedName","_a","formAssociated","setAttribute","_name","setFormAssociatedValue","value","document","createElement","children","i","_b","tagName","_c","removeChild","_d","_e","appendChild","validateAlert","watchBoolean","validateTouched","componentWillLoad","_alert","InputController","super","hideLabel","onFacade","onBlur","bind","onChange","onClick","onFocus","validateAccessKey","watchString","validateAdjustHeight","validateDisabled","a11yHintDisabled","validateError","validateHideLabel","validateHint","validateId","hooks","afterPatch","devHint","validateName","validateOn","setState","validateSmartButton","objectObjectHandler","parseJson","e","validateTabIndex","_accessKey","_adjustHeight","_disabled","_hideLabel","_smartButton","_on","_tabIndex","event","target","setValue"],"sources":["./src/components/input/controller.ts","./src/components/input-adapter-leanup/controller.ts","./src/components/@deprecated/input/controller.ts"],"sourcesContent":["/**\n * Berechnet in Abhängigkeit des Component-State, wie die\n * aria-describedby-Attributs gesetzt werden sollen.\n *\n * @param state State der Component\n * @returns Render-States\n */\nexport const getRenderStates = (state: {\n\t_error?: string;\n\t_hint?: string;\n\t_id: string;\n\t_touched?: boolean;\n}): {\n\thasError: boolean;\n\thasHint: boolean;\n\tariaDiscribedBy: string[];\n} => {\n\tconst hasError = typeof state._error === 'string' && state._error.length > 0 && state._touched === true;\n\tconst hasHint = typeof state._hint === 'string' && state._hint.length > 0;\n\n\tconst ariaDiscribedBy: string[] = [];\n\tif (hasError === true) {\n\t\tariaDiscribedBy.push(`${state._id}-error`);\n\t}\n\tif (hasHint === true) {\n\t\tariaDiscribedBy.push(`${state._id}-hint`);\n\t}\n\treturn { hasError, hasHint, ariaDiscribedBy };\n};\n","import { Generic } from '@a11y-ui/core';\nimport { getExperimalMode } from '../../utils/dev.utils';\nimport { watchBoolean } from '../../utils/prop.validators';\nimport { Props, Watches } from './types';\n\nconst EXPERIMENTAL_MODE = getExperimalMode();\n\nexport class ControlledInputController 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?: HTMLInputElement;\n\n\tpublic constructor(component: Generic.Element.Component & Props, name: string, host?: HTMLElement) {\n\t\tthis.component = component;\n\t\tthis.name = name;\n\t\tthis.host = host;\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated = document.createElement('input');\n\t\t\tthis.formAssociated.setAttribute('type', 'hidden');\n\t\t\tconst children = this.host?.children || [];\n\t\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\t\tif (this.host?.children[i].tagName === 'INPUT') {\n\t\t\t\t\tthis.host?.removeChild(this.host?.children[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.host?.appendChild(this.formAssociated);\n\t\t}\n\t}\n\n\tprotected readonly syncFormAssociatedName = () => {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated?.setAttribute('name', (this.component.state._name as string) || (this.component.state._id as string));\n\t\t}\n\t};\n\n\tpublic readonly setFormAssociatedValue = (value: string | null = null) => {\n\t\tif (EXPERIMENTAL_MODE) {\n\t\t\tthis.formAssociated?.setAttribute('value', value as string);\n\t\t}\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this.component, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateTouched(value?: boolean): void {\n\t\twatchBoolean(this.component, '_touched', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlert(this.component._alert);\n\t\tthis.validateTouched(this.component._touched);\n\t}\n}\n","import { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../../types/button-link';\nimport { InputTypeOnDefault } from '../../../types/input/types';\nimport { a11yHintDisabled, devHint } from '../../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchBoolean, watchString } from '../../../utils/prop.validators';\nimport { validateTabIndex } from '../../../utils/validators/tab-index';\nimport { ControlledInputController } from '../../input-adapter-leanup/controller';\nimport { Props as AdapterProps } from '../../input-adapter-leanup/types';\nimport { Props, Watches } from './types';\n\nexport class InputController extends ControlledInputController implements Watches {\n\tprotected readonly component: Generic.Element.Component & Props & AdapterProps;\n\n\tpublic hideLabel = false;\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\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this.component, '_accessKey', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateAdjustHeight(value?: boolean): void {\n\t\twatchBoolean(this.component, '_adjustHeight', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this.component, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateError(value?: string): void {\n\t\twatchString(this.component, '_error', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateHideLabel(value?: boolean): void {\n\t\twatchBoolean(this.component, '_hideLabel', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateHint(value?: string): void {\n\t\twatchString(this.component, '_hint', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateId(value?: string): void {\n\t\twatchString(this.component, '_id', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.syncFormAssociatedName,\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(`Eine eindeutige ID an den Eingabefeldern ist nicht zwingend erforderlich, könnte aber für die E2E-Tests relevant sein.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateName(value?: string): void {\n\t\twatchString(this.component, '_name', value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: this.syncFormAssociatedName,\n\t\t\t},\n\t\t});\n\t\tif (typeof value === 'undefined') {\n\t\t\tdevHint(`Ein Name an den Eingabefeldern ist nicht zwingend erforderlich, kann aber für die Autocomplete-Funktion des Eingabefeldes relevant sein.`);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateOn(value?: InputTypeOnDefault): void {\n\t\tif (typeof value === 'object') {\n\t\t\tsetState(this.component, '_on', value);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateSmartButton(value?: ButtonProps | string): void {\n\t\tobjectObjectHandler(value, () => {\n\t\t\ttry {\n\t\t\t\tvalue = parseJson<ButtonProps>(value as string);\n\t\t\t\t// eslint-disable-next-line no-empty\n\t\t\t} catch (e) {\n\t\t\t\t// value behält den ursprünglichen Wert\n\t\t\t}\n\t\t\tsetState(this.component, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this.component, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tsuper.componentWillLoad();\n\t\tthis.validateAccessKey(this.component._accessKey);\n\t\tthis.validateAdjustHeight(this.component._adjustHeight);\n\t\tthis.validateError(this.component._error);\n\t\tthis.validateDisabled(this.component._disabled);\n\t\tthis.validateHideLabel(this.component._hideLabel);\n\t\tthis.validateHint(this.component._hint);\n\t\tthis.validateId(this.component._id);\n\t\tthis.validateName(this.component._name);\n\t\tthis.validateSmartButton(this.component._smartButton);\n\t\tthis.validateOn(this.component._on);\n\t\tthis.validateTabIndex(this.component._tabIndex);\n\t\tthis.syncFormAssociatedName();\n\t}\n\n\tprotected onBlur(event: Event): void {\n\t\tthis.component._alert = true;\n\t\tthis.component._touched = true;\n\t\tif (typeof this.component._on?.onBlur === 'function') {\n\t\t\tthis.component._on.onBlur(event);\n\t\t}\n\t}\n\n\tprotected onChange(event: Event): void {\n\t\tthis.setFormAssociatedValue((event.target as HTMLInputElement).value);\n\t\tif (typeof this.component._on?.onChange === 'function') {\n\t\t\t/**\n\t\t\t * TODO\n\t\t\t * Value-Handling muss für InputDate und InputNumber optimiert werden\n\t\t\t * - value\n\t\t\t * - valueAsNumber\n\t\t\t * - valueAsDate\n\t\t\t */\n\t\t\tthis.component._on.onChange(event, (event.target as HTMLInputElement).value);\n\t\t}\n\t}\n\n\tprotected onClick(event: Event): void {\n\t\tif (typeof this.component._on?.onClick === 'function') {\n\t\t\tthis.component._on.onClick(event);\n\t\t}\n\t}\n\n\tprotected onFocus(event: Event): void {\n\t\tthis.component._alert = true;\n\t\tif (typeof this.component._on?.onFocus === 'function') {\n\t\t\tthis.component._on.onFocus(event);\n\t\t}\n\t}\n\n\tpublic setValue(event: Event, value: string | number | boolean): void {\n\t\tthis.setFormAssociatedValue(value as string);\n\t\tif (typeof this.component._on?.onChange === 'function') {\n\t\t\tthis.component._on.onChange(event, value);\n\t\t}\n\t}\n\n\t/**\n\t * Hinweis: In der Subklasse 'InputPasswordController'\n\t * werden die Methoden onBlur und onFocus\n\t * überschrieben.\n\t * Es werden somit zunächst die Methoden der\n\t * Subklasse ausgeführt und danach die der\n\t * Oberklassen.\n\t */\n\tpublic readonly onFacade = {\n\t\tonBlur: this.onBlur.bind(this),\n\t\tonChange: this.onChange.bind(this),\n\t\tonClick: this.onClick.bind(this),\n\t\tonFocus: this.onFocus.bind(this),\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{a as t,d as s,m as i,s as e,b as a}from"./prop.validators-27682076.js";import{S as o}from"./reuse-2b3b6999.js";import{I as r}from"./controller-f1a122f2.js";const h=(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)?h(t,e.options,a):t.set(a,e))}))};class l extends r{constructor(t,e,o){super(t,e,o),this.component=t}validateRequired(t){a(this.component,"_required",t)}componentWillLoad(){super.componentWillLoad(),this.validateRequired(this.component._required)}}class n extends l{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.beforePatchListValue=(t,e)=>{const o=e.has("_list")?e.get("_list"):this.component.state._list;if(Array.isArray(o)&&o.length>0){this.keyOptionMap.clear(),h(this.keyOptionMap,o);const t=e.has("_value")?e.get("_value"):this.component.state._value;if(!1===this.isValueInOptions(t,o)){const t=o[0].value;e.set("_value",t),this.onStateChange()}}},this.component=t}validateOrientation(e){t(this.component,"_orientation",(t=>"horizontal"===t||"vertical"===t),new Set(["Orientation {horizontal, vertical}"]),e,{defaultValue:"vertical"})}validateList(t){s(this.component,"_list",(t=>"object"==typeof t&&null!==t&&"string"==typeof t.label&&t.label.length>0),t,void 0,{hooks:{beforePatch:this.beforePatchListValue}})}validateValue(t){t=i(t),t=Array.isArray(t)?t[0]:t,e(this.component,"_value",t,{beforePatch:this.beforePatchListValue}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(t){super.componentWillLoad(),this.onStateChange=()=>{if("function"==typeof t){const e=setTimeout((()=>{clearTimeout(e),t(o)}))}},this.validateOrientation(this.component._orientation),this.validateList(this.component._list),this.validateValue(this.component._value)}}export{l as I,n as a,h as f};
4
+ import{a as t,d as s,m as i,s as e,b as a}from"./prop.validators-f4032a8d.js";import{S as o}from"./reuse-3a431285.js";import{I as r}from"./controller-6e1a2cf5.js";const h=(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)?h(t,e.options,a):t.set(a,e))}))};class l extends r{constructor(t,e,o){super(t,e,o),this.component=t}validateRequired(t){a(this.component,"_required",t)}componentWillLoad(){super.componentWillLoad(),this.validateRequired(this.component._required)}}class n extends l{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.beforePatchListValue=(t,e)=>{const o=e.has("_list")?e.get("_list"):this.component.state._list;if(Array.isArray(o)&&o.length>0){this.keyOptionMap.clear(),h(this.keyOptionMap,o);const t=e.has("_value")?e.get("_value"):this.component.state._value;if(!1===this.isValueInOptions(t,o)){const t=o[0].value;e.set("_value",t),this.onStateChange()}}},this.component=t}validateOrientation(e){t(this.component,"_orientation",(t=>"horizontal"===t||"vertical"===t),new Set(["Orientation {horizontal, vertical}"]),e,{defaultValue:"vertical"})}validateList(t){s(this.component,"_list",(t=>"object"==typeof t&&null!==t&&"string"==typeof t.label&&t.label.length>0),t,void 0,{hooks:{beforePatch:this.beforePatchListValue}})}validateValue(t){t=i(t),t=Array.isArray(t)?t[0]:t,e(this.component,"_value",t,{beforePatch:this.beforePatchListValue}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(t){super.componentWillLoad(),this.onStateChange=()=>{if("function"==typeof t){const e=setTimeout((()=>{clearTimeout(e),t(o)}))}},this.validateOrientation(this.component._orientation),this.validateList(this.component._list),this.validateValue(this.component._value)}}export{l as I,n as a,h as f};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{o,p as t,a as s}from"./prop.validators-f4032a8d.js";import{b as r}from"./reuse-3a431285.js";import{i}from"./icon-c882053e.js";import{I as e}from"./controller-6e1a2cf5.js";const c=(o,t)=>{const e=o;"object"==typeof e&&null!==e&&(r(e.right,1)&&(e.right={icon:e.right}),r(e.left,1)&&(e.left={icon:e.left}),t.set("_icon",e))};class a extends e{constructor(o,t,e){super(o,t,e),this.component=o}validateIcon(e){o(e,(()=>{try{e=t(e)}catch(o){}s(this.component,"_icon",(o=>"object"==typeof o&&null!==o&&(r(o.left,1)||i(o.left)||r(o.right,1)||i(o.right))),new Set(["KoliBriHorizontalIcon"]),e,{hooks:{beforePatch:c},required:!0})}))}componentWillLoad(){super.componentWillLoad(),this.validateIcon(this.component._icon)}}export{a as I};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{p as e}from"./reuse-2b3b6999.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"})),a().body.style.maxHeight="100vh",a().body.style.overflow="hidden",this.lockFocus(a().body,t)}else a().body.style.maxHeight="unset",a().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?y.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)y.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)}}}class i{constructor(e){this.document=e,this.queue=new Set,this.isOpen=!1,this.toastElement=this.document.createElement("kol-toast"),this.toastElement.setAttribute("_level","3"),this.toastElement.setAttribute("_show","false"),this.toastElement.setAttribute("_show-duration","-1"),this.toastElement.setAttribute("_has-closer","true"),this.toastElement._on={onClose:()=>{const e=this.queue.values().next();e.value?(this.queue.delete(e.value),setTimeout((()=>{this.showToast(e.value)}),200)):this.isOpen=!1}},this.document.body.insertBefore(this.toastElement,this.document.body.firstChild)}enqueue(e){this.isOpen?this.queue.add(e):this.showToast(e)}showToast(e){this.toastElement.setAttribute("_heading",e.heading),this.toastElement.setAttribute("_show","true"),this.toastElement.setAttribute("_type",e.type),this.toastElement.innerText=e.description,this.isOpen=!0}}let n=null,s=null;const o=e=>{e instanceof Window?(n=e,n.document instanceof Document?s=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},l=()=>n||"undefined"==typeof window?null:window,a=()=>s||void 0===l().document?null:l().document;let r=null,c=null,u=null,d=null;const h=()=>!0===c,f=()=>!0===u,m=()=>!0===d,v=()=>{if(null===c&&null===u&&null===d){const e=a().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(r=e.getAttribute("content"),"string"==typeof r&&(c=r.includes("dev-mode=true"),u=r.includes("experimental-mode=true"),d=r.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")};let p=null;const w=()=>p||{},b=()=>{if(null===p){p=l().KoliBri||{};const e=new t,o=new i(a());Object.defineProperty(p,"Modal",{get:function(){return e}}),Object.defineProperty(p,"Toaster",{get:function(){return o}}),v()}else console.warn("You can only initialize KoliBri once.")},M=()=>{void 0===l().KoliBri&&Object.defineProperty(window,"KoliBri",{get:function(){return p}}),!0!==w().adviceShown&&(Object.defineProperty(p,"adviceShown",{get:function(){return!0}}),y.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.des\n"))};let T=()=>Math.floor(16777215*Math.random()).toString(16);"test"===e&&(T=()=>"nonce");const g=h();class y{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${y.shield.label} | ${e}`:y.shield.label}static getShield(e){return[y.handleClassifier(null==e?void 0:e.classifier),`${y.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(g||!0===(null==t?void 0:t.forceLog))&&console.debug(...y.getShield(t),...y.mapToArray(e))}static info(e,t){(g||!0===(null==t?void 0:t.forceLog))&&console.info(...y.getShield(t),...y.mapToArray(e))}static trace(e,t){(g||!0===(null==t?void 0:t.forceLog))&&console.trace(...y.getShield(t),...y.mapToArray(e))}static warn(e,t){(g||!0===(null==t?void 0:t.forceLog))&&console.warn(...y.getShield(t),...y.mapToArray(e))}static error(e,t){(g||!0===(null==t?void 0:t.forceLog))&&console.error(...y.getShield(t),...y.mapToArray(e))}static throw(e,t){if(g||!0===(null==t?void 0:t.forceLog))throw new Error(...y.getShield(t),...y.mapToArray(e))}}y.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};export{p as K,y as L,i as T,l as a,f as b,o as c,w as d,h as e,m as f,a as g,b as i,T as n,M as r};
4
+ import{p as e}from"./reuse-3a431285.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"})),a().body.style.maxHeight="100vh",a().body.style.overflow="hidden",this.lockFocus(a().body,t)}else a().body.style.maxHeight="unset",a().body.style.overflow="unset"}openModal(e,t){e instanceof HTMLElement==!1?v.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)v.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)}}}class i{constructor(e){this.document=e,this.queue=new Set,this.isOpen=!1,this.toastElement=this.document.createElement("kol-toast"),this.toastElement.setAttribute("_level","3"),this.toastElement.setAttribute("_show","false"),this.toastElement.setAttribute("_show-duration","-1"),this.toastElement.setAttribute("_has-closer","true"),this.toastElement._on={onClose:()=>{const e=this.queue.values().next();e.value?(this.queue.delete(e.value),setTimeout((()=>{this.showToast(e.value)}),200)):this.isOpen=!1}},this.document.body.insertBefore(this.toastElement,this.document.body.firstChild)}enqueue(e){this.isOpen?this.queue.add(e):this.showToast(e)}showToast(e){this.toastElement.setAttribute("_heading",e.heading),this.toastElement.setAttribute("_show","true"),this.toastElement.setAttribute("_type",e.type),this.toastElement.innerText=e.description,this.isOpen=!0}}let n=null,s=null;const o=e=>{e instanceof Window?(n=e,n.document instanceof Document?s=e.document:console.warn("The given Window has no valid Document.")):console.warn("The given Window is not valid.")},l=()=>n||"undefined"==typeof window?null:window,a=()=>s||void 0===l().document?null:l().document;let r=null,c=null,u=null,d=null;const h=()=>!0===c,f=()=>!0===u,m=()=>!0===d;class v{static mapToArray(e){return Array.isArray(e)?e:[e]}static handleClassifier(e){return"string"==typeof e&&e.length>0?`${v.shield.label} | ${e}`:v.shield.label}static getShield(e){return[v.handleClassifier(null==e?void 0:e.classifier),`${v.shield.style};${(null==e?void 0:e.overwriteStyle)||""}`]}static debug(e,t){(c||!0===(null==t?void 0:t.forceLog))&&console.debug(...v.getShield(t),...v.mapToArray(e))}static info(e,t){(c||!0===(null==t?void 0:t.forceLog))&&console.info(...v.getShield(t),...v.mapToArray(e))}static trace(e,t){(c||!0===(null==t?void 0:t.forceLog))&&console.trace(...v.getShield(t),...v.mapToArray(e))}static warn(e,t){(c||!0===(null==t?void 0:t.forceLog))&&console.warn(...v.getShield(t),...v.mapToArray(e))}static error(e,t){(c||!0===(null==t?void 0:t.forceLog))&&console.error(...v.getShield(t),...v.mapToArray(e))}static throw(e,t){if(c||!0===(null==t?void 0:t.forceLog))throw new Error(...v.getShield(t),...v.mapToArray(e))}}v.shield={label:"%cKoliBri",style:"color: white; background: #666; font-weight: bold; padding: .25em .5em; border-radius: 3px; border: 1px solid #000"};const p=()=>{if(null===c&&null===u&&null===d){const e=a().querySelector('meta[name="kolibri"]');e&&e.hasAttribute("content")&&(r=e.getAttribute("content"),"string"==typeof r&&(c=r.includes("dev-mode=true"),u=r.includes("experimental-mode=true"),d=r.includes("color-contrast-analysis=true")))}else console.warn("You can only initialize DEV_MODE and COLOR_CONTRAST_ANALYSIS once.")};let b=null;const w=()=>b||{},M=()=>{if(null===b){b=l().KoliBri||{};const e=new t,o=new i(a());Object.defineProperty(b,"Modal",{get:function(){return e}}),Object.defineProperty(b,"Toaster",{get:function(){return o}}),p(),v.debug("\n\t,--. ,--. ,--. ,--. ,-----. ,--.\n\t| .' / ,---. | | `--' | |) /_ ,--.--. `--'\n\t| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n\t| |\\ \\ | '-' | | | | | | '--' / | | | |\n\t`--' `--´ `---´ `--' `--' `------´ `--' `--'\n\t🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io\n\t\t",{forceLog:!0})}else console.warn("You can only initialize KoliBri once.")},T=()=>{void 0===l().KoliBri&&Object.defineProperty(window,"KoliBri",{get:function(){return b}}),!0!==w().adviceShown&&(Object.defineProperty(b,"adviceShown",{get:function(){return!0}}),v.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.des\n"))};let g=()=>Math.floor(16777215*Math.random()).toString(16);"test"===e&&(g=()=>"nonce");export{b as K,v as L,i as T,l as a,f as b,o as c,w as d,h as e,m as f,a as g,M as i,g as n,T as r};
@@ -0,0 +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","ToasterService","document","queue","Set","isOpen","toastElement","createElement","_on","onClose","next","values","showToast","insertBefore","firstChild","enqueue","data","add","heading","type","innerText","description","WINDOW","DOCUMENT","configKoliBri","window","Window","Document","console","getWindow","META_CONFIG","DEV_MODE","EXPERIMENTAL_MODE","COLOR_CONTRAST_ANALYSIS","getDevMode","getExperimalMode","getColorContrastAnalysis","static","msg","isArray","classifier","shield","label","options","handleClassifier","overwriteStyle","forceLog","debug","getShield","mapToArray","info","trace","error","Error","initMeta","meta","querySelector","hasAttribute","includes","KoliBri","getKoliBri","initKoliBri","Modal","Toaster","Object","defineProperty","renderDevAdvice","adviceShown","nonce","Math","floor","random","toString","processEnv"],"sources":["./src/components/modal/service.ts","./src/components/toast/toaster.tsx","./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 { AlertType } from '../../types/alert';\n\ntype Toast = {\n\theading: string;\n\tdescription: string;\n\ttype: AlertType;\n};\n\nexport class ToasterService {\n\tprivate readonly toastElement: HTMLKolToastElement;\n\n\tprivate readonly queue: Set<Toast> = new Set();\n\n\tprivate isOpen = false;\n\n\tconstructor(private readonly document: Document) {\n\t\tthis.toastElement = this.document.createElement('kol-toast');\n\t\tthis.toastElement.setAttribute('_level', '3');\n\t\tthis.toastElement.setAttribute('_show', 'false');\n\t\tthis.toastElement.setAttribute('_show-duration', '-1');\n\t\tthis.toastElement.setAttribute('_has-closer', 'true');\n\t\tthis.toastElement._on = {\n\t\t\tonClose: () => {\n\t\t\t\tconst next = this.queue.values().next();\n\t\t\t\tif (next.value) {\n\t\t\t\t\tthis.queue.delete(next.value as Toast);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.showToast(next.value as Toast);\n\t\t\t\t\t}, 200);\n\t\t\t\t} else {\n\t\t\t\t\tthis.isOpen = false;\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t\tthis.document.body.insertBefore(this.toastElement, this.document.body.firstChild);\n\t}\n\n\t/**\n\t * Reiht einen neuen Toast in die Warteschlange ein, um ihn anzuzeigen.\n\t */\n\tpublic enqueue(data: Toast): void {\n\t\tif (this.isOpen) {\n\t\t\tthis.queue.add(data);\n\t\t} else {\n\t\t\tthis.showToast(data);\n\t\t}\n\t}\n\n\tprivate showToast(data: Toast): void {\n\t\tthis.toastElement.setAttribute('_heading', data.heading);\n\t\tthis.toastElement.setAttribute('_show', 'true');\n\t\tthis.toastElement.setAttribute('_type', data.type);\n\t\tthis.toastElement.innerText = data.description;\n\t\tthis.isOpen = true;\n\t}\n}\n","import { ModalService } from '../components/modal/service';\nimport { ToasterService } from '../components/toast/toaster';\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 getExperimalMode = (): 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\nlet KoliBri: Record<string, unknown> | null = null;\nexport const getKoliBri = (): Record<string, unknown> => KoliBri || {};\nexport const initKoliBri = (): void => {\n\tif (KoliBri === null) {\n\t\tKoliBri = getWindow().KoliBri || {};\n\t\tconst Modal = new ModalService();\n\t\tconst Toaster = new ToasterService(getDocument());\n\t\tObject.defineProperty(KoliBri, 'Modal', {\n\t\t\tget: function (): ModalService {\n\t\t\t\treturn Modal;\n\t\t\t},\n\t\t});\n\t\tObject.defineProperty(KoliBri, 'Toaster', {\n\t\t\tget: function (): ToasterService {\n\t\t\t\treturn Toaster;\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\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 { KoliBri };\n\nexport const renderDevAdvice = (): void => {\n\tif (getWindow().KoliBri === undefined) {\n\t\tObject.defineProperty(window, 'KoliBri', {\n\t\t\tget: function () {\n\t\t\t\treturn KoliBri;\n\t\t\t},\n\t\t});\n\t}\n\tif (getKoliBri().adviceShown !== true) {\n\t\tObject.defineProperty(KoliBri, '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.des\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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"}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{i as t,e as o,r as s,g as a,L as e,b as r,f as i,K as l}from"./dev.utils-4906dab2.js";import{l as n,n as p,k as f,q as d,t as c,p as L,u as m}from"./prop.validators-f4032a8d.js";import"./reuse-3a431285.js";import"./index-599f5430.js";import"./a11y.tipps-fb0d6d4a.js";function u(t,o){try{Object.defineProperty(l,t,{get:function(){return o}})}catch(o){e.debug(`KoliBri property ${t} is already bind.`)}}const h=(t,o)=>e.debug(`${t} ${o?"":"not "}activated`),v=()=>{if(t(),o()){s(),u("a11yColorContrast",p),u("querySelector",f),u("querySelectorAll",d),u("querySelectorColors",c),u("utils",(function(){return n})),u("parseJson",L),u("stringifyJson",m);const t=a().body,e=a().createElement("svg");if(e.setAttribute("aria-label","KoliBri-DevTools"),e.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.setAttribute("role","toolbar"),e.setAttribute("style","position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;"),e.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>',a().body.appendChild(e),h("Development mode",o()),h("Experimental mode",r()),h("Color contrast analysis",i()),i()){const e=setTimeout((()=>{clearTimeout(e),setInterval((()=>{n.queryHtmlElementColors(a().createElement("div"),p(t),!1,!1)}),1e4)}),2500)}}};export{v as initialize};
@@ -0,0 +1 @@
1
+ {"version":3,"names":["prototypeKoliBri","name","cb","Object","defineProperty","KoliBri","get","e","Log","debug","metaModeLog","active","initialize","initKoliBri","getDevMode","renderDevAdvice","koliBriA11yColorContrast","koliBriQuerySelector","koliBriQuerySelectorAll","koliBriQuerySelectorColors","KoliBriUtils","parseJson","stringifyJson","body","getDocument","div","createElement","setAttribute","innerHTML","appendChild","getExperimalMode","getColorContrastAnalysis","timeout","setTimeout","clearTimeout","setInterval","queryHtmlElementColors"],"sources":["./src/global/devtools.ts"],"sourcesContent":["import { getColorContrastAnalysis, getDevMode, getDocument, getExperimalMode, initKoliBri, KoliBri, Log, renderDevAdvice } from '../utils/dev.utils';\nimport {\n\tkoliBriA11yColorContrast,\n\tkoliBriQuerySelector,\n\tkoliBriQuerySelectorAll,\n\tkoliBriQuerySelectorColors,\n\tKoliBriUtils,\n\tparseJson,\n\tstringifyJson,\n} from '../utils/prop.validators';\n\nfunction prototypeKoliBri<T>(name: string, cb: T) {\n\ttry {\n\t\tObject.defineProperty(KoliBri, name, {\n\t\t\tget: function () {\n\t\t\t\treturn cb;\n\t\t\t},\n\t\t});\n\t} catch (e) {\n\t\tLog.debug(`KoliBri property ${name} is already bind.`);\n\t}\n}\n\nconst metaModeLog = (name: string, active: boolean) => Log.debug(`${name} ${active ? '' : 'not '}activated`);\n\nexport const initialize = (): void => {\n\tinitKoliBri();\n\tif (getDevMode()) {\n\t\trenderDevAdvice();\n\n\t\tprototypeKoliBri('a11yColorContrast', koliBriA11yColorContrast);\n\t\tprototypeKoliBri('querySelector', koliBriQuerySelector);\n\t\tprototypeKoliBri('querySelectorAll', koliBriQuerySelectorAll);\n\t\tprototypeKoliBri('querySelectorColors', koliBriQuerySelectorColors);\n\t\tprototypeKoliBri('utils', function () {\n\t\t\treturn KoliBriUtils;\n\t\t});\n\t\tprototypeKoliBri('parseJson', parseJson);\n\t\tprototypeKoliBri('stringifyJson', stringifyJson);\n\n\t\tconst body = getDocument().body;\n\n\t\tconst div = getDocument().createElement('svg');\n\t\tdiv.setAttribute('aria-label', 'KoliBri-DevTools');\n\t\tdiv.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\t\tdiv.setAttribute('role', 'toolbar');\n\t\tdiv.setAttribute('style', 'position: fixed;color: black;font-size: 200%;bottom: 0.25rem;right: 0.25rem;');\n\t\tdiv.innerHTML = `<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"50\"\n height=\"50\"\n viewBox=\"0 0 600 600\"\n>\n <path d=\"M353 322L213 304V434L353 322Z\" fill=\"#047\" />\n <path d=\"M209 564V304L149 434L209 564Z\" fill=\"#047\" />\n <path d=\"M357 316L417 250L361 210L275 244L357 316Z\" fill=\"#047\" />\n <path d=\"M353 318L35 36L213 300L353 318Z\" fill=\"#047\" />\n <path d=\"M329 218L237 92L250 222L272 241L329 218Z\" fill=\"#047\" />\n <path d=\"M391 286L565 272L421 252L391 286Z\" fill=\"#047\" />\n</svg>`;\n\n\t\tgetDocument().body.appendChild(div);\n\n\t\tmetaModeLog('Development mode', getDevMode());\n\t\tmetaModeLog('Experimental mode', getExperimalMode());\n\t\tmetaModeLog('Color contrast analysis', getColorContrastAnalysis());\n\n\t\tif (getColorContrastAnalysis()) {\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tsetInterval(() => {\n\t\t\t\t\tKoliBriUtils.queryHtmlElementColors(getDocument().createElement('div'), koliBriA11yColorContrast(body), false, false);\n\t\t\t\t}, 10000);\n\t\t\t}, 2500);\n\t\t}\n\n\t\t// setTimeout(() => {\n\t\t// const kolButton = koliBriQuerySelector<HTMLButtonElement>(document, '[_label=\"Aktion ausführen\"]');\n\t\t// if (kolButton) {\n\t\t// const button = koliBriQuerySelector<HTMLButtonElement>(kolButton?.shadowRoot as ShadowRoot, 'button');\n\t\t// if (button) {\n\t\t// kolButton.style.backgroundColor = '#988';\n\t\t// button.style.backgroundColor = 'inherit';\n\t\t// button.style.color = '#988';\n\t\t// const kolButtonColors = koliBriQuerySelectorColors('[_label=\"Aktion ausführen\"]');\n\t\t// console.log(\n\t\t// koliBriQuerySelectorColors('button', {\n\t\t// ...kolButtonColors,\n\t\t// })\n\t\t// );\n\t\t// }\n\t\t// }\n\t\t// }, 2500);\n\t}\n};\n"],"mappings":";;;kRAWA,SAASA,EAAoBC,EAAcC,GAC1C,IACCC,OAAOC,eAAeC,EAASJ,EAAM,CACpCK,IAAK,WACJ,OAAOJ,C,IAGR,MAAOK,GACRC,EAAIC,MAAM,oBAAoBR,qB,CAEhC,CAEA,MAAMS,EAAc,CAACT,EAAcU,IAAoBH,EAAIC,MAAM,GAAGR,KAAQU,EAAS,GAAK,mB,MAE7EC,EAAa,KACzBC,IACA,GAAIC,IAAc,CACjBC,IAEAf,EAAiB,oBAAqBgB,GACtChB,EAAiB,gBAAiBiB,GAClCjB,EAAiB,mBAAoBkB,GACrClB,EAAiB,sBAAuBmB,GACxCnB,EAAiB,SAAS,WACzB,OAAOoB,C,IAERpB,EAAiB,YAAaqB,GAC9BrB,EAAiB,gBAAiBsB,GAElC,MAAMC,EAAOC,IAAcD,KAE3B,MAAME,EAAMD,IAAcE,cAAc,OACxCD,EAAIE,aAAa,aAAc,oBAC/BF,EAAIE,aAAa,QAAS,8BAC1BF,EAAIE,aAAa,OAAQ,WACzBF,EAAIE,aAAa,QAAS,gFAC1BF,EAAIG,UAAY,ueAchBJ,IAAcD,KAAKM,YAAYJ,GAE/Bf,EAAY,mBAAoBI,KAChCJ,EAAY,oBAAqBoB,KACjCpB,EAAY,0BAA2BqB,KAEvC,GAAIA,IAA4B,CAC/B,MAAMC,EAAUC,YAAW,KAC1BC,aAAaF,GACbG,aAAY,KACXf,EAAagB,uBAAuBZ,IAAcE,cAAc,OAAQV,EAAyBO,GAAO,MAAO,MAAM,GACnH,IAAM,GACP,K"}