@public-ui/components 1.4.0-rc.1 → 1.4.0-rc.3

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 (669) hide show
  1. package/cheat-sheet.html +27 -14
  2. package/custom-elements.json +2283 -105
  3. package/dist/cjs/app-globals-ead7cf69.js +4 -0
  4. package/dist/cjs/app-globals-ead7cf69.js.map +1 -0
  5. package/dist/cjs/button-link-8476ef97.js +4 -0
  6. package/dist/cjs/{button-link-eca34f5d.js.map → button-link-8476ef97.js.map} +1 -1
  7. package/dist/cjs/{controller-9758ea26.js → controller-0b45980a.js} +1 -1
  8. package/dist/cjs/{controller-9758ea26.js.map → controller-0b45980a.js.map} +1 -1
  9. package/dist/cjs/{controller-ae4978e8.js → controller-169c2e5c.js} +1 -1
  10. package/dist/cjs/{controller-ae4978e8.js.map → controller-169c2e5c.js.map} +1 -1
  11. package/dist/cjs/{controller-3ff1c0cb.js → controller-323daab1.js} +1 -1
  12. package/dist/cjs/{controller-3ff1c0cb.js.map → controller-323daab1.js.map} +1 -1
  13. package/dist/cjs/{controller-11d59cf4.js → controller-3b1b8088.js} +1 -1
  14. package/dist/cjs/{controller-11d59cf4.js.map → controller-3b1b8088.js.map} +1 -1
  15. package/dist/cjs/{controller-8c043f6a.js → controller-891952ee.js} +1 -1
  16. package/dist/cjs/{controller-8c043f6a.js.map → controller-891952ee.js.map} +1 -1
  17. package/dist/cjs/{controller-e0715879.js → controller-e6f251c2.js} +1 -1
  18. package/dist/cjs/{controller-e0715879.js.map → controller-e6f251c2.js.map} +1 -1
  19. package/dist/cjs/{controller-icon-ae20df4e.js → controller-icon-a996cb01.js} +1 -1
  20. package/dist/cjs/{controller-icon-ae20df4e.js.map → controller-icon-a996cb01.js.map} +1 -1
  21. package/dist/cjs/devtools-8d17bfd4.js +4 -0
  22. package/dist/cjs/devtools-8d17bfd4.js.map +1 -0
  23. package/dist/cjs/{i18n-2eef9091.js → i18n-2f63f0ca.js} +1 -1
  24. package/dist/cjs/{i18n-2eef9091.js.map → i18n-2f63f0ca.js.map} +1 -1
  25. package/dist/cjs/{icon-a373f57a.js → icon-4f733b4e.js} +1 -1
  26. package/dist/cjs/{icon-a373f57a.js.map → icon-4f733b4e.js.map} +1 -1
  27. package/dist/cjs/{index-c4f8dd50.js → index-1266b30d.js} +1 -1
  28. package/dist/cjs/index-1266b30d.js.map +1 -0
  29. package/dist/cjs/index-66aa0f41.js +4 -0
  30. package/dist/cjs/index-66aa0f41.js.map +1 -0
  31. package/dist/cjs/index-d637d600.js +4 -0
  32. package/dist/cjs/{index-7e718c1e.js.map → index-d637d600.js.map} +1 -1
  33. package/dist/cjs/index.cjs.js +1 -1
  34. package/dist/cjs/index.cjs.js.map +1 -1
  35. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  36. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  37. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  38. package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
  39. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  40. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  41. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  42. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  43. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  44. package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +1 -1
  45. package/dist/cjs/kol-button-group-wc.cjs.entry.js +1 -1
  46. package/dist/cjs/kol-button-group-wc.cjs.entry.js.map +1 -1
  47. package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-button-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  50. package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
  51. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  52. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  53. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  54. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  55. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
  57. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
  59. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  61. package/dist/cjs/kol-heading-wc_2.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-heading-wc_2.cjs.entry.js.map +1 -1
  63. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  64. package/dist/cjs/kol-heading.cjs.entry.js.map +1 -1
  65. package/dist/cjs/kol-icon-font-awesome.cjs.entry.js +1 -1
  66. package/dist/cjs/kol-icon-font-awesome.cjs.entry.js.map +1 -1
  67. package/dist/cjs/kol-icon-icofont.cjs.entry.js +1 -1
  68. package/dist/cjs/kol-icon-icofont.cjs.entry.js.map +1 -1
  69. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  70. package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
  71. package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-indented-text.cjs.entry.js.map +1 -1
  73. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
  75. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
  77. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  78. package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
  79. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  80. package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
  81. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  82. package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
  83. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  84. package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
  85. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  86. package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
  87. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  88. package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
  89. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  90. package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
  91. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  92. package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
  93. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  94. package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
  95. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  96. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  97. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  98. package/dist/cjs/kol-link-group.cjs.entry.js.map +1 -1
  99. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  100. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  101. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  102. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  103. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  104. package/dist/cjs/kol-logo.cjs.entry.js.map +1 -1
  105. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  106. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  107. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  108. package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
  109. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  110. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  111. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  113. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  114. package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
  115. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  116. package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
  117. package/dist/cjs/kol-span.cjs.entry.js +1 -1
  118. package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
  119. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  120. package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
  121. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  122. package/dist/cjs/kol-symbol.cjs.entry.js.map +1 -1
  123. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  124. package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
  125. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  126. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  127. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  128. package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
  129. package/dist/cjs/kol-toast.cjs.entry.js +1 -1
  130. package/dist/cjs/kol-toast.cjs.entry.js.map +1 -1
  131. package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
  132. package/dist/cjs/kol-tooltip.cjs.entry.js.map +1 -1
  133. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  134. package/dist/cjs/kol-version.cjs.entry.js.map +1 -1
  135. package/dist/cjs/kolibri.cjs.js +1 -1
  136. package/dist/cjs/{label-6ab9ca4e.js → label-b9c8787b.js} +1 -1
  137. package/dist/cjs/{label-6ab9ca4e.js.map → label-b9c8787b.js.map} +1 -1
  138. package/dist/cjs/loader.cjs.js +1 -1
  139. package/dist/cjs/prop.validators-125ca9b8.js +4 -0
  140. package/dist/cjs/prop.validators-125ca9b8.js.map +1 -0
  141. package/dist/cjs/{tab-index-0a963ec3.js → tab-index-7d5103dc.js} +1 -1
  142. package/dist/cjs/{tab-index-0a963ec3.js.map → tab-index-7d5103dc.js.map} +1 -1
  143. package/dist/cjs/validation-314516d8.js +4 -0
  144. package/dist/cjs/{validation-dceac8f2.js.map → validation-314516d8.js.map} +1 -1
  145. package/dist/cjs/{validation-cafa32e9.js → validation-c071c3ac.js} +1 -1
  146. package/dist/cjs/{validation-cafa32e9.js.map → validation-c071c3ac.js.map} +1 -1
  147. package/dist/components/component.js +1 -1
  148. package/dist/components/component.js.map +1 -1
  149. package/dist/components/component10.js +1 -1
  150. package/dist/components/component10.js.map +1 -1
  151. package/dist/components/component11.js +1 -1
  152. package/dist/components/component11.js.map +1 -1
  153. package/dist/components/component12.js +1 -1
  154. package/dist/components/component12.js.map +1 -1
  155. package/dist/components/component13.js +1 -1
  156. package/dist/components/component13.js.map +1 -1
  157. package/dist/components/component2.js +1 -1
  158. package/dist/components/component2.js.map +1 -1
  159. package/dist/components/component3.js +1 -1
  160. package/dist/components/component4.js +1 -1
  161. package/dist/components/component4.js.map +1 -1
  162. package/dist/components/component5.js +1 -1
  163. package/dist/components/component5.js.map +1 -1
  164. package/dist/components/component6.js +1 -1
  165. package/dist/components/component7.js +1 -1
  166. package/dist/components/component7.js.map +1 -1
  167. package/dist/components/component8.js +1 -1
  168. package/dist/components/component8.js.map +1 -1
  169. package/dist/components/controller-icon.js +1 -1
  170. package/dist/components/controller2.js +1 -1
  171. package/dist/components/controller3.js +1 -1
  172. package/dist/components/controller4.js +1 -1
  173. package/dist/components/i18n.js +1 -1
  174. package/dist/components/index.js +1 -1
  175. package/dist/components/index.js.map +1 -1
  176. package/dist/components/index2.js +1 -1
  177. package/dist/components/index2.js.map +1 -1
  178. package/dist/components/kol-abbr.js +1 -1
  179. package/dist/components/kol-abbr.js.map +1 -1
  180. package/dist/components/kol-accordion.js +1 -1
  181. package/dist/components/kol-accordion.js.map +1 -1
  182. package/dist/components/kol-breadcrumb.js +1 -1
  183. package/dist/components/kol-breadcrumb.js.map +1 -1
  184. package/dist/components/kol-button-group.js +1 -1
  185. package/dist/components/kol-button-group.js.map +1 -1
  186. package/dist/components/kol-button-link.js +1 -1
  187. package/dist/components/kol-button-link.js.map +1 -1
  188. package/dist/components/kol-card.js +1 -1
  189. package/dist/components/kol-card.js.map +1 -1
  190. package/dist/components/kol-details.js +1 -1
  191. package/dist/components/kol-details.js.map +1 -1
  192. package/dist/components/kol-heading.js +1 -1
  193. package/dist/components/kol-heading.js.map +1 -1
  194. package/dist/components/kol-icon-font-awesome.js +1 -1
  195. package/dist/components/kol-icon-font-awesome.js.map +1 -1
  196. package/dist/components/kol-icon-icofont.js +1 -1
  197. package/dist/components/kol-icon-icofont.js.map +1 -1
  198. package/dist/components/kol-input-checkbox.js +1 -1
  199. package/dist/components/kol-input-checkbox.js.map +1 -1
  200. package/dist/components/kol-input-color.js +1 -1
  201. package/dist/components/kol-input-color.js.map +1 -1
  202. package/dist/components/kol-input-date.js +1 -1
  203. package/dist/components/kol-input-date.js.map +1 -1
  204. package/dist/components/kol-input-email.js +1 -1
  205. package/dist/components/kol-input-email.js.map +1 -1
  206. package/dist/components/kol-input-file.js +1 -1
  207. package/dist/components/kol-input-file.js.map +1 -1
  208. package/dist/components/kol-input-password.js +1 -1
  209. package/dist/components/kol-input-password.js.map +1 -1
  210. package/dist/components/kol-input-range.js +1 -1
  211. package/dist/components/kol-input-range.js.map +1 -1
  212. package/dist/components/kol-input-text.js +1 -1
  213. package/dist/components/kol-input-text.js.map +1 -1
  214. package/dist/components/kol-kolibri.js +1 -1
  215. package/dist/components/kol-kolibri.js.map +1 -1
  216. package/dist/components/kol-link-button.js +1 -1
  217. package/dist/components/kol-link-button.js.map +1 -1
  218. package/dist/components/kol-link-group.js +1 -1
  219. package/dist/components/kol-link-group.js.map +1 -1
  220. package/dist/components/kol-logo.js +1 -1
  221. package/dist/components/kol-logo.js.map +1 -1
  222. package/dist/components/kol-modal.js +1 -1
  223. package/dist/components/kol-modal.js.map +1 -1
  224. package/dist/components/kol-nav.js +1 -1
  225. package/dist/components/kol-nav.js.map +1 -1
  226. package/dist/components/kol-progress.js +1 -1
  227. package/dist/components/kol-progress.js.map +1 -1
  228. package/dist/components/kol-skip-nav.js +1 -1
  229. package/dist/components/kol-skip-nav.js.map +1 -1
  230. package/dist/components/kol-span.js +1 -1
  231. package/dist/components/kol-span.js.map +1 -1
  232. package/dist/components/kol-spin.js +1 -1
  233. package/dist/components/kol-spin.js.map +1 -1
  234. package/dist/components/kol-table.js +1 -1
  235. package/dist/components/kol-table.js.map +1 -1
  236. package/dist/components/kol-tabs.js +1 -1
  237. package/dist/components/kol-tabs.js.map +1 -1
  238. package/dist/components/kol-textarea.js +1 -1
  239. package/dist/components/kol-textarea.js.map +1 -1
  240. package/dist/components/kol-toast.js +1 -1
  241. package/dist/components/kol-toast.js.map +1 -1
  242. package/dist/components/kol-version.js +1 -1
  243. package/dist/components/kol-version.js.map +1 -1
  244. package/dist/components/prop.validators.js +1 -1
  245. package/dist/components/prop.validators.js.map +1 -1
  246. package/dist/components/shadow.js +1 -1
  247. package/dist/components/shadow.js.map +1 -1
  248. package/dist/components/shadow2.js +1 -1
  249. package/dist/components/shadow2.js.map +1 -1
  250. package/dist/esm/app-globals-4be5aa27.js +4 -0
  251. package/dist/esm/app-globals-4be5aa27.js.map +1 -0
  252. package/dist/esm/{button-link-01028aae.js → button-link-5bb8204c.js} +1 -1
  253. package/dist/esm/{button-link-01028aae.js.map → button-link-5bb8204c.js.map} +1 -1
  254. package/dist/esm/{controller-8b3a25ac.js → controller-059a3921.js} +1 -1
  255. package/dist/esm/{controller-8b3a25ac.js.map → controller-059a3921.js.map} +1 -1
  256. package/dist/esm/{controller-e49952b6.js → controller-15111cee.js} +1 -1
  257. package/dist/esm/{controller-e49952b6.js.map → controller-15111cee.js.map} +1 -1
  258. package/dist/esm/{controller-de509dfa.js → controller-766d4423.js} +1 -1
  259. package/dist/esm/{controller-de509dfa.js.map → controller-766d4423.js.map} +1 -1
  260. package/dist/esm/{controller-28809de9.js → controller-9f66274a.js} +1 -1
  261. package/dist/esm/{controller-28809de9.js.map → controller-9f66274a.js.map} +1 -1
  262. package/dist/esm/{controller-b7578f6d.js → controller-b8a587ec.js} +1 -1
  263. package/dist/esm/{controller-b7578f6d.js.map → controller-b8a587ec.js.map} +1 -1
  264. package/dist/esm/{controller-e915936c.js → controller-ee46a348.js} +1 -1
  265. package/dist/esm/{controller-e915936c.js.map → controller-ee46a348.js.map} +1 -1
  266. package/dist/esm/{controller-icon-07d9636a.js → controller-icon-dbd368be.js} +1 -1
  267. package/dist/esm/{controller-icon-07d9636a.js.map → controller-icon-dbd368be.js.map} +1 -1
  268. package/dist/esm/devtools-65ea920c.js +4 -0
  269. package/dist/esm/devtools-65ea920c.js.map +1 -0
  270. package/dist/esm/{i18n-9b7525d8.js → i18n-f2ab4562.js} +1 -1
  271. package/dist/esm/{i18n-9b7525d8.js.map → i18n-f2ab4562.js.map} +1 -1
  272. package/dist/esm/{icon-5edb38e1.js → icon-4f6266ca.js} +1 -1
  273. package/dist/esm/{icon-5edb38e1.js.map → icon-4f6266ca.js.map} +1 -1
  274. package/dist/esm/index-2a11dd6d.js +4 -0
  275. package/dist/esm/index-2a11dd6d.js.map +1 -0
  276. package/dist/esm/index-781a1af1.js +4 -0
  277. package/dist/esm/{index-0fb82b03.js.map → index-781a1af1.js.map} +1 -1
  278. package/dist/esm/{index-1b8b837d.js → index-d14da386.js} +1 -1
  279. package/dist/esm/index-d14da386.js.map +1 -0
  280. package/dist/esm/index.js +1 -1
  281. package/dist/esm/index.js.map +1 -1
  282. package/dist/esm/kol-abbr.entry.js +1 -1
  283. package/dist/esm/kol-abbr.entry.js.map +1 -1
  284. package/dist/esm/kol-accordion.entry.js +1 -1
  285. package/dist/esm/kol-accordion.entry.js.map +1 -1
  286. package/dist/esm/kol-alert.entry.js +1 -1
  287. package/dist/esm/kol-alert.entry.js.map +1 -1
  288. package/dist/esm/kol-badge.entry.js +1 -1
  289. package/dist/esm/kol-badge.entry.js.map +1 -1
  290. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  291. package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
  292. package/dist/esm/kol-button-group-wc.entry.js +1 -1
  293. package/dist/esm/kol-button-group-wc.entry.js.map +1 -1
  294. package/dist/esm/kol-button-group.entry.js +1 -1
  295. package/dist/esm/kol-button-group.entry.js.map +1 -1
  296. package/dist/esm/kol-button-link.entry.js +1 -1
  297. package/dist/esm/kol-button-link.entry.js.map +1 -1
  298. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  299. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  300. package/dist/esm/kol-button.entry.js +1 -1
  301. package/dist/esm/kol-button.entry.js.map +1 -1
  302. package/dist/esm/kol-card.entry.js +1 -1
  303. package/dist/esm/kol-card.entry.js.map +1 -1
  304. package/dist/esm/kol-details.entry.js +1 -1
  305. package/dist/esm/kol-details.entry.js.map +1 -1
  306. package/dist/esm/kol-form.entry.js +1 -1
  307. package/dist/esm/kol-form.entry.js.map +1 -1
  308. package/dist/esm/kol-heading-wc_2.entry.js +1 -1
  309. package/dist/esm/kol-heading-wc_2.entry.js.map +1 -1
  310. package/dist/esm/kol-heading.entry.js +1 -1
  311. package/dist/esm/kol-heading.entry.js.map +1 -1
  312. package/dist/esm/kol-icon-font-awesome.entry.js +1 -1
  313. package/dist/esm/kol-icon-font-awesome.entry.js.map +1 -1
  314. package/dist/esm/kol-icon-icofont.entry.js +1 -1
  315. package/dist/esm/kol-icon-icofont.entry.js.map +1 -1
  316. package/dist/esm/kol-icon.entry.js +1 -1
  317. package/dist/esm/kol-icon.entry.js.map +1 -1
  318. package/dist/esm/kol-indented-text.entry.js +1 -1
  319. package/dist/esm/kol-indented-text.entry.js.map +1 -1
  320. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  321. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  322. package/dist/esm/kol-input-color.entry.js +1 -1
  323. package/dist/esm/kol-input-color.entry.js.map +1 -1
  324. package/dist/esm/kol-input-date.entry.js +1 -1
  325. package/dist/esm/kol-input-date.entry.js.map +1 -1
  326. package/dist/esm/kol-input-email.entry.js +1 -1
  327. package/dist/esm/kol-input-email.entry.js.map +1 -1
  328. package/dist/esm/kol-input-file.entry.js +1 -1
  329. package/dist/esm/kol-input-file.entry.js.map +1 -1
  330. package/dist/esm/kol-input-number.entry.js +1 -1
  331. package/dist/esm/kol-input-number.entry.js.map +1 -1
  332. package/dist/esm/kol-input-password.entry.js +1 -1
  333. package/dist/esm/kol-input-password.entry.js.map +1 -1
  334. package/dist/esm/kol-input-radio.entry.js +1 -1
  335. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  336. package/dist/esm/kol-input-range.entry.js +1 -1
  337. package/dist/esm/kol-input-range.entry.js.map +1 -1
  338. package/dist/esm/kol-input-text.entry.js +1 -1
  339. package/dist/esm/kol-input-text.entry.js.map +1 -1
  340. package/dist/esm/kol-kolibri.entry.js +1 -1
  341. package/dist/esm/kol-kolibri.entry.js.map +1 -1
  342. package/dist/esm/kol-link-button.entry.js +1 -1
  343. package/dist/esm/kol-link-button.entry.js.map +1 -1
  344. package/dist/esm/kol-link-group.entry.js +1 -1
  345. package/dist/esm/kol-link-group.entry.js.map +1 -1
  346. package/dist/esm/kol-link-wc.entry.js +1 -1
  347. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  348. package/dist/esm/kol-link.entry.js +1 -1
  349. package/dist/esm/kol-link.entry.js.map +1 -1
  350. package/dist/esm/kol-logo.entry.js +1 -1
  351. package/dist/esm/kol-logo.entry.js.map +1 -1
  352. package/dist/esm/kol-modal.entry.js +1 -1
  353. package/dist/esm/kol-modal.entry.js.map +1 -1
  354. package/dist/esm/kol-nav.entry.js +1 -1
  355. package/dist/esm/kol-nav.entry.js.map +1 -1
  356. package/dist/esm/kol-pagination.entry.js +1 -1
  357. package/dist/esm/kol-pagination.entry.js.map +1 -1
  358. package/dist/esm/kol-progress.entry.js +1 -1
  359. package/dist/esm/kol-progress.entry.js.map +1 -1
  360. package/dist/esm/kol-select.entry.js +1 -1
  361. package/dist/esm/kol-select.entry.js.map +1 -1
  362. package/dist/esm/kol-skip-nav.entry.js +1 -1
  363. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  364. package/dist/esm/kol-span.entry.js +1 -1
  365. package/dist/esm/kol-span.entry.js.map +1 -1
  366. package/dist/esm/kol-spin.entry.js +1 -1
  367. package/dist/esm/kol-spin.entry.js.map +1 -1
  368. package/dist/esm/kol-symbol.entry.js +1 -1
  369. package/dist/esm/kol-symbol.entry.js.map +1 -1
  370. package/dist/esm/kol-table.entry.js +1 -1
  371. package/dist/esm/kol-table.entry.js.map +1 -1
  372. package/dist/esm/kol-tabs.entry.js +1 -1
  373. package/dist/esm/kol-tabs.entry.js.map +1 -1
  374. package/dist/esm/kol-textarea.entry.js +1 -1
  375. package/dist/esm/kol-textarea.entry.js.map +1 -1
  376. package/dist/esm/kol-toast.entry.js +1 -1
  377. package/dist/esm/kol-toast.entry.js.map +1 -1
  378. package/dist/esm/kol-tooltip.entry.js +1 -1
  379. package/dist/esm/kol-tooltip.entry.js.map +1 -1
  380. package/dist/esm/kol-version.entry.js +1 -1
  381. package/dist/esm/kol-version.entry.js.map +1 -1
  382. package/dist/esm/kolibri.js +1 -1
  383. package/dist/esm/{label-e7bacbab.js → label-eaabc3d3.js} +1 -1
  384. package/dist/esm/{label-e7bacbab.js.map → label-eaabc3d3.js.map} +1 -1
  385. package/dist/esm/loader.js +1 -1
  386. package/dist/esm/polyfills/core-js.js +1 -1
  387. package/dist/esm/prop.validators-c2234525.js +4 -0
  388. package/dist/esm/prop.validators-c2234525.js.map +1 -0
  389. package/dist/esm/{tab-index-3378b139.js → tab-index-1bc7d9c1.js} +1 -1
  390. package/dist/esm/{tab-index-3378b139.js.map → tab-index-1bc7d9c1.js.map} +1 -1
  391. package/dist/esm/{validation-5c3578c0.js → validation-52548dee.js} +1 -1
  392. package/dist/esm/{validation-5c3578c0.js.map → validation-52548dee.js.map} +1 -1
  393. package/dist/esm/validation-d17349fa.js +4 -0
  394. package/dist/esm/{validation-0dc15e8d.js.map → validation-d17349fa.js.map} +1 -1
  395. package/dist/kolibri/app-globals-4be5aa27.js +4 -0
  396. package/dist/kolibri/app-globals-4be5aa27.js.map +1 -0
  397. package/dist/kolibri/assets/style.css +49 -77
  398. package/dist/kolibri/button-link-5bb8204c.js +4 -0
  399. package/dist/kolibri/{button-link-01028aae.js.map → button-link-5bb8204c.js.map} +0 -0
  400. package/dist/kolibri/controller-059a3921.js +4 -0
  401. package/dist/kolibri/{controller-8b3a25ac.js.map → controller-059a3921.js.map} +0 -0
  402. package/dist/kolibri/{controller-e49952b6.js → controller-15111cee.js} +1 -1
  403. package/dist/kolibri/{controller-e49952b6.js.map → controller-15111cee.js.map} +0 -0
  404. package/dist/kolibri/{controller-de509dfa.js → controller-766d4423.js} +1 -1
  405. package/dist/kolibri/{controller-de509dfa.js.map → controller-766d4423.js.map} +0 -0
  406. package/dist/kolibri/{controller-28809de9.js → controller-9f66274a.js} +1 -1
  407. package/dist/kolibri/{controller-28809de9.js.map → controller-9f66274a.js.map} +0 -0
  408. package/dist/kolibri/{controller-b7578f6d.js → controller-b8a587ec.js} +1 -1
  409. package/dist/kolibri/{controller-b7578f6d.js.map → controller-b8a587ec.js.map} +0 -0
  410. package/dist/kolibri/{controller-e915936c.js → controller-ee46a348.js} +1 -1
  411. package/dist/kolibri/{controller-e915936c.js.map → controller-ee46a348.js.map} +0 -0
  412. package/dist/kolibri/controller-icon-dbd368be.js +4 -0
  413. package/dist/kolibri/{controller-icon-07d9636a.js.map → controller-icon-dbd368be.js.map} +0 -0
  414. package/dist/kolibri/devtools-65ea920c.js +4 -0
  415. package/dist/kolibri/{devtools-38fc0936.js.map → devtools-65ea920c.js.map} +1 -1
  416. package/dist/kolibri/{i18n-9b7525d8.js → i18n-f2ab4562.js} +1 -1
  417. package/dist/kolibri/{i18n-9b7525d8.js.map → i18n-f2ab4562.js.map} +0 -0
  418. package/dist/kolibri/{icon-5edb38e1.js → icon-4f6266ca.js} +1 -1
  419. package/dist/kolibri/{icon-5edb38e1.js.map → icon-4f6266ca.js.map} +0 -0
  420. package/dist/kolibri/index-2a11dd6d.js +4 -0
  421. package/dist/kolibri/index-2a11dd6d.js.map +1 -0
  422. package/dist/kolibri/index-781a1af1.js +4 -0
  423. package/dist/kolibri/{index-0fb82b03.js.map → index-781a1af1.js.map} +0 -0
  424. package/dist/kolibri/{index-1b8b837d.js → index-d14da386.js} +1 -1
  425. package/dist/kolibri/index-d14da386.js.map +1 -0
  426. package/dist/kolibri/index.esm.js +1 -1
  427. package/dist/kolibri/kol-abbr.entry.js +1 -1
  428. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  429. package/dist/kolibri/kol-accordion.entry.js +1 -1
  430. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  431. package/dist/kolibri/kol-alert.entry.js +1 -1
  432. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  433. package/dist/kolibri/kol-badge.entry.js +1 -1
  434. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  435. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  436. package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
  437. package/dist/kolibri/kol-button-group-wc.entry.js +1 -1
  438. package/dist/kolibri/kol-button-group-wc.entry.js.map +1 -1
  439. package/dist/kolibri/kol-button-group.entry.js +1 -1
  440. package/dist/kolibri/kol-button-group.entry.js.map +1 -1
  441. package/dist/kolibri/kol-button-link.entry.js +1 -1
  442. package/dist/kolibri/kol-button-link.entry.js.map +1 -1
  443. package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
  444. package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
  445. package/dist/kolibri/kol-button.entry.js +1 -1
  446. package/dist/kolibri/kol-button.entry.js.map +1 -1
  447. package/dist/kolibri/kol-card.entry.js +1 -1
  448. package/dist/kolibri/kol-card.entry.js.map +1 -1
  449. package/dist/kolibri/kol-details.entry.js +1 -1
  450. package/dist/kolibri/kol-details.entry.js.map +1 -1
  451. package/dist/kolibri/kol-form.entry.js +1 -1
  452. package/dist/kolibri/kol-form.entry.js.map +1 -1
  453. package/dist/kolibri/kol-heading-wc_2.entry.js +1 -1
  454. package/dist/kolibri/kol-heading-wc_2.entry.js.map +1 -1
  455. package/dist/kolibri/kol-heading.entry.js +1 -1
  456. package/dist/kolibri/kol-heading.entry.js.map +1 -1
  457. package/dist/kolibri/kol-icon-font-awesome.entry.js +1 -1
  458. package/dist/kolibri/kol-icon-font-awesome.entry.js.map +1 -1
  459. package/dist/kolibri/kol-icon-icofont.entry.js +1 -1
  460. package/dist/kolibri/kol-icon-icofont.entry.js.map +1 -1
  461. package/dist/kolibri/kol-icon.entry.js +1 -1
  462. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  463. package/dist/kolibri/kol-indented-text.entry.js +1 -1
  464. package/dist/kolibri/kol-indented-text.entry.js.map +1 -1
  465. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  466. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  467. package/dist/kolibri/kol-input-color.entry.js +1 -1
  468. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  469. package/dist/kolibri/kol-input-date.entry.js +1 -1
  470. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  471. package/dist/kolibri/kol-input-email.entry.js +1 -1
  472. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  473. package/dist/kolibri/kol-input-file.entry.js +1 -1
  474. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  475. package/dist/kolibri/kol-input-number.entry.js +1 -1
  476. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  477. package/dist/kolibri/kol-input-password.entry.js +1 -1
  478. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  479. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  480. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  481. package/dist/kolibri/kol-input-range.entry.js +1 -1
  482. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  483. package/dist/kolibri/kol-input-text.entry.js +1 -1
  484. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  485. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  486. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  487. package/dist/kolibri/kol-link-button.entry.js +1 -1
  488. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  489. package/dist/kolibri/kol-link-group.entry.js +1 -1
  490. package/dist/kolibri/kol-link-group.entry.js.map +1 -1
  491. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  492. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  493. package/dist/kolibri/kol-link.entry.js +1 -1
  494. package/dist/kolibri/kol-link.entry.js.map +1 -1
  495. package/dist/kolibri/kol-logo.entry.js +1 -1
  496. package/dist/kolibri/kol-logo.entry.js.map +1 -1
  497. package/dist/kolibri/kol-modal.entry.js +1 -1
  498. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  499. package/dist/kolibri/kol-nav.entry.js +1 -1
  500. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  501. package/dist/kolibri/kol-pagination.entry.js +1 -1
  502. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  503. package/dist/kolibri/kol-progress.entry.js +1 -1
  504. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  505. package/dist/kolibri/kol-select.entry.js +1 -1
  506. package/dist/kolibri/kol-select.entry.js.map +1 -1
  507. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  508. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  509. package/dist/kolibri/kol-span.entry.js +1 -1
  510. package/dist/kolibri/kol-span.entry.js.map +1 -1
  511. package/dist/kolibri/kol-spin.entry.js +1 -1
  512. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  513. package/dist/kolibri/kol-symbol.entry.js +1 -1
  514. package/dist/kolibri/kol-symbol.entry.js.map +1 -1
  515. package/dist/kolibri/kol-table.entry.js +1 -1
  516. package/dist/kolibri/kol-table.entry.js.map +1 -1
  517. package/dist/kolibri/kol-tabs.entry.js +1 -1
  518. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  519. package/dist/kolibri/kol-textarea.entry.js +1 -1
  520. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  521. package/dist/kolibri/kol-toast.entry.js +1 -1
  522. package/dist/kolibri/kol-toast.entry.js.map +1 -1
  523. package/dist/kolibri/kol-tooltip.entry.js +1 -1
  524. package/dist/kolibri/kol-tooltip.entry.js.map +1 -1
  525. package/dist/kolibri/kol-version.entry.js +1 -1
  526. package/dist/kolibri/kol-version.entry.js.map +1 -1
  527. package/dist/kolibri/kolibri.esm.js +1 -1
  528. package/dist/kolibri/kolibri.esm.js.map +1 -1
  529. package/dist/kolibri/{label-e7bacbab.js → label-eaabc3d3.js} +1 -1
  530. package/dist/kolibri/{label-e7bacbab.js.map → label-eaabc3d3.js.map} +0 -0
  531. package/dist/kolibri/prop.validators-c2234525.js +4 -0
  532. package/dist/kolibri/prop.validators-c2234525.js.map +1 -0
  533. package/dist/kolibri/tab-index-1bc7d9c1.js +4 -0
  534. package/dist/kolibri/{tab-index-3378b139.js.map → tab-index-1bc7d9c1.js.map} +1 -1
  535. package/dist/kolibri/validation-52548dee.js +4 -0
  536. package/dist/kolibri/{validation-5c3578c0.js.map → validation-52548dee.js.map} +0 -0
  537. package/dist/kolibri/{validation-0dc15e8d.js → validation-d17349fa.js} +1 -1
  538. package/dist/kolibri/{validation-0dc15e8d.js.map → validation-d17349fa.js.map} +0 -0
  539. package/dist/types/components/badge/contrast.d.ts +2 -1
  540. package/dist/types/components/heading/component.d.ts +9 -1
  541. package/dist/types/components/heading/shadow.d.ts +2 -0
  542. package/dist/types/components/heading/test/html.mock.d.ts +1 -1
  543. package/dist/types/components.d.ts +36 -30
  544. package/dist/types/enums/color.d.ts +0 -5
  545. package/dist/types/types/heading-level.d.ts +1 -1
  546. package/doc/abbr.md +21 -4
  547. package/doc/accordion.md +21 -2
  548. package/doc/alert.md +22 -5
  549. package/doc/badge.md +20 -1
  550. package/doc/breadcrumb.md +23 -18
  551. package/doc/button-group.md +1 -1
  552. package/doc/button-link.md +20 -1
  553. package/doc/button.md +26 -7
  554. package/doc/card.md +29 -10
  555. package/doc/details.md +21 -4
  556. package/doc/heading.md +6 -4
  557. package/doc/icon.md +24 -10
  558. package/doc/indented-text.md +20 -1
  559. package/doc/input-checkbox.md +19 -0
  560. package/doc/input-color.md +21 -4
  561. package/doc/input-date.md +21 -4
  562. package/doc/input-email.md +21 -4
  563. package/doc/input-file.md +21 -4
  564. package/doc/input-number.md +21 -4
  565. package/doc/input-password.md +21 -4
  566. package/doc/input-radio.md +22 -16
  567. package/doc/input-range.md +21 -4
  568. package/doc/input-text.md +21 -4
  569. package/doc/kolibri.md +20 -1
  570. package/doc/link-button.md +21 -2
  571. package/doc/link-group.md +23 -8
  572. package/doc/link.md +21 -4
  573. package/doc/logo.md +20 -1
  574. package/doc/modal.md +20 -1
  575. package/doc/nav.md +25 -19
  576. package/doc/pagination.md +20 -1
  577. package/doc/progress.md +20 -1
  578. package/doc/select.md +34 -52
  579. package/doc/skip-nav.md +22 -12
  580. package/doc/span.md +19 -0
  581. package/doc/spin.md +20 -1
  582. package/doc/table.md +19 -0
  583. package/doc/tabs.md +22 -16
  584. package/doc/textarea.md +20 -1
  585. package/doc/toast.md +22 -5
  586. package/doc/tooltip.md +19 -0
  587. package/doc/version.md +20 -1
  588. package/jest-test-results.json +1 -1
  589. package/package.json +1 -1
  590. package/vscode-custom-data.json +19 -19
  591. package/dist/cjs/app-globals-78158be1.js +0 -4
  592. package/dist/cjs/app-globals-78158be1.js.map +0 -1
  593. package/dist/cjs/button-link-eca34f5d.js +0 -4
  594. package/dist/cjs/color-71239302.js +0 -4
  595. package/dist/cjs/color-71239302.js.map +0 -1
  596. package/dist/cjs/devtools-b3bb986c.js +0 -4
  597. package/dist/cjs/devtools-b3bb986c.js.map +0 -1
  598. package/dist/cjs/index-7e718c1e.js +0 -4
  599. package/dist/cjs/index-95d4d068.js +0 -4
  600. package/dist/cjs/index-95d4d068.js.map +0 -1
  601. package/dist/cjs/index-c4f8dd50.js.map +0 -1
  602. package/dist/cjs/index-ecfaeef4.js +0 -4
  603. package/dist/cjs/index-ecfaeef4.js.map +0 -1
  604. package/dist/cjs/index.m-21aa1255.js +0 -4
  605. package/dist/cjs/index.m-21aa1255.js.map +0 -1
  606. package/dist/cjs/kol-color.cjs.entry.js +0 -4
  607. package/dist/cjs/kol-color.cjs.entry.js.map +0 -1
  608. package/dist/cjs/kol-counter.cjs.entry.js +0 -4
  609. package/dist/cjs/kol-counter.cjs.entry.js.map +0 -1
  610. package/dist/cjs/prop.validators-292d455b.js +0 -4
  611. package/dist/cjs/prop.validators-292d455b.js.map +0 -1
  612. package/dist/cjs/validation-dceac8f2.js +0 -4
  613. package/dist/components/color.js +0 -4
  614. package/dist/components/color.js.map +0 -1
  615. package/dist/components/index.m.js +0 -4
  616. package/dist/components/index.m.js.map +0 -1
  617. package/dist/components/index3.js +0 -4
  618. package/dist/components/index3.js.map +0 -1
  619. package/dist/components/kol-color.d.ts +0 -11
  620. package/dist/components/kol-color.js +0 -4
  621. package/dist/components/kol-color.js.map +0 -1
  622. package/dist/components/kol-counter.d.ts +0 -11
  623. package/dist/components/kol-counter.js +0 -4
  624. package/dist/components/kol-counter.js.map +0 -1
  625. package/dist/esm/app-globals-ae4b65e9.js +0 -4
  626. package/dist/esm/app-globals-ae4b65e9.js.map +0 -1
  627. package/dist/esm/color-8bf509b6.js +0 -4
  628. package/dist/esm/color-8bf509b6.js.map +0 -1
  629. package/dist/esm/devtools-38fc0936.js +0 -4
  630. package/dist/esm/devtools-38fc0936.js.map +0 -1
  631. package/dist/esm/index-0fb82b03.js +0 -4
  632. package/dist/esm/index-1b8b837d.js.map +0 -1
  633. package/dist/esm/index-68b1f91c.js +0 -4
  634. package/dist/esm/index-68b1f91c.js.map +0 -1
  635. package/dist/esm/index-e722bdb7.js +0 -4
  636. package/dist/esm/index-e722bdb7.js.map +0 -1
  637. package/dist/esm/index.m-86dc8c44.js +0 -4
  638. package/dist/esm/index.m-86dc8c44.js.map +0 -1
  639. package/dist/esm/kol-color.entry.js +0 -4
  640. package/dist/esm/kol-color.entry.js.map +0 -1
  641. package/dist/esm/kol-counter.entry.js +0 -4
  642. package/dist/esm/kol-counter.entry.js.map +0 -1
  643. package/dist/esm/prop.validators-62a61880.js +0 -4
  644. package/dist/esm/prop.validators-62a61880.js.map +0 -1
  645. package/dist/esm/validation-0dc15e8d.js +0 -4
  646. package/dist/kolibri/app-globals-ae4b65e9.js +0 -4
  647. package/dist/kolibri/app-globals-ae4b65e9.js.map +0 -1
  648. package/dist/kolibri/button-link-01028aae.js +0 -4
  649. package/dist/kolibri/color-8bf509b6.js +0 -4
  650. package/dist/kolibri/color-8bf509b6.js.map +0 -1
  651. package/dist/kolibri/controller-8b3a25ac.js +0 -4
  652. package/dist/kolibri/controller-icon-07d9636a.js +0 -4
  653. package/dist/kolibri/devtools-38fc0936.js +0 -4
  654. package/dist/kolibri/index-0fb82b03.js +0 -4
  655. package/dist/kolibri/index-1b8b837d.js.map +0 -1
  656. package/dist/kolibri/index-68b1f91c.js +0 -4
  657. package/dist/kolibri/index-68b1f91c.js.map +0 -1
  658. package/dist/kolibri/index-e722bdb7.js +0 -4
  659. package/dist/kolibri/index-e722bdb7.js.map +0 -1
  660. package/dist/kolibri/index.m-86dc8c44.js +0 -4
  661. package/dist/kolibri/index.m-86dc8c44.js.map +0 -1
  662. package/dist/kolibri/kol-color.entry.js +0 -4
  663. package/dist/kolibri/kol-color.entry.js.map +0 -1
  664. package/dist/kolibri/kol-counter.entry.js +0 -4
  665. package/dist/kolibri/kol-counter.entry.js.map +0 -1
  666. package/dist/kolibri/prop.validators-62a61880.js +0 -4
  667. package/dist/kolibri/prop.validators-62a61880.js.map +0 -1
  668. package/dist/kolibri/tab-index-3378b139.js +0 -4
  669. package/dist/kolibri/validation-5c3578c0.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","catchAriaExpanded","button","HTMLButtonElement","buttonRef","triggerAriaExpanded","setAttribute","state","_open","onClick","event","timeout","setTimeout","clearTimeout","_a","_on","_heading","_level","render","h","Host","part","ref","_ariaLabel","_icon","_part","name","style","display","height","visibility","undefined","validateHeading","value","watchString","required","validateLevel","watchHeadingLevel","validateOn","setState","validateOpen","watchBoolean","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-accordion&mode=default&encapsulation=shadow","./src/components/accordion/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","// https://codepen.io/mbxtr/pen/OJPOYg?html-preprocessor=haml\n\nimport { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Events } from '../../enums/events';\n\nimport { EventValueCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { setState, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\n\nfeatureHint(`[KolAccordion] Anfrage nach einer KolAccordionGroup bei dem immer nur ein Accordion geöffnet ist.\n\n- onClick auf der KolAccordion anwenden\n- Click-Event prüft den _open-Status der Accordions\n- Logik Öffnet und Schließt entsprechend`);\nfeatureHint(`[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.`);\n\nexport type KoliBriAccordionCallbacks = {\n\t[Events.onClick]?: EventValueCallback<Event, boolean>;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\theading: string;\n};\ntype OptionalProps = {\n\tlevel: HeadingLevel;\n\topen: boolean;\n\ton: KoliBriAccordionCallbacks;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part accordion - Ermöglicht das Stylen des äußeren Container des Accordions.\n * @part open - Ermöglicht das Stylen des geöffneten Zustands und Icons.\n * @part close - Ermöglicht das Stylen des geschlossenen Zustands und Icons.\n * @part icon - Ermöglicht das Stylen der Icons.\n * @part header - Ermöglicht das Stylen des Kopfbereichs.\n * @part content - Ermöglicht das Stylen des Inhaltsbereichs.\n *\n * @slot header - Ermöglicht das Einfügen beliebigen HTML's in den Kopfbereich des Accordions.\n * @slot content - Ermöglicht das Einfügen beliebigen HTML's in den Inhaltsbereich des Accordions.\n */\n@Component({\n\ttag: 'kol-accordion',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolAccordion implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate buttonRef?: HTMLButtonElement;\n\t// private content?: HTMLDivElement;\n\n\tprivate catchAriaExpanded = (button?: HTMLButtonElement) => {\n\t\tif (button instanceof HTMLButtonElement) {\n\t\t\tthis.buttonRef = button;\n\t\t\tthis.triggerAriaExpanded(button);\n\t\t}\n\t};\n\tprivate triggerAriaExpanded = (button: HTMLButtonElement) => {\n\t\tbutton.setAttribute('aria-expanded', this.state._open ? 'true' : 'false');\n\t};\n\n\tpublic render(): JSX.Element {\n\t\t// const height = this.content?.getBoundingClientRect().height ?? 0;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div part={`accordion ${this.state._open ? 'open' : 'close'}`}>\n\t\t\t\t\t<kol-heading-wc _level={this.state._level}>\n\t\t\t\t\t\t<button ref={this.catchAriaExpanded} onClick={this.onClick}>\n\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon={this.state._open ? 'fa-solid fa-minus' : 'fa-solid fa-plus'} _part={this.state._open ? 'close' : 'open'} />\n\t\t\t\t\t\t\t<span>{this.state._heading}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t<div part=\"header\">\n\t\t\t\t\t\t<slot name=\"header\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tpart=\"content\"\n\t\t\t\t\t\t// ref={(r) => (this.content = r)}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tthis.state._open === false\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t\t\t\theight: '0',\n\t\t\t\t\t\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// style={\n\t\t\t\t\t\t// \tthis.state._open\n\t\t\t\t\t\t// \t\t? height > 0 && processEnv !== 'test' // TODO: remove this check when testing is fixed\n\t\t\t\t\t\t// \t\t\t? {\n\t\t\t\t\t\t// \t\t\t\theight: `${height}px`,\n\t\t\t\t\t\t// \t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t\t: undefined\n\t\t\t\t\t\t// \t\t: {\n\t\t\t\t\t\t// \t\t\theight: '0',\n\t\t\t\t\t\t// \t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// }\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"content\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Überschrift des Accordions an.\n\t */\n\t@Prop() public _heading!: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen an.\n\t */\n\t@Prop() public _on?: KoliBriAccordionCallbacks;\n\n\t/**\n\t * Gibt an, ob das Accordion geöffnet ist.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _open?: boolean = false;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_heading: '⚠',\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAccordionCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null && typeof value.onClick === 'function') {\n\t\t\tsetState(this, '_on', value);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_open')\n\tpublic validateOpen(value?: boolean): void {\n\t\twatchBoolean(this, '_open', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateOpen(this._open);\n\t}\n\n\tprivate onClick = (event: Event) => {\n\t\tthis._open = this._open === false;\n\n\t\t/**\n\t\t * Der Timeout wird benötigt, damit das Event\n\t\t * vom Button- auf das Accordion-Event wechselt.\n\t\t * So ist es dem Anwendenden möglich das _open-\n\t\t * Attribute abzufragen.\n\t\t */\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\t\tthis.state._on.onClick(event, this._open === true);\n\t\t\t}\n\t\t\tif (this.buttonRef instanceof HTMLButtonElement) {\n\t\t\t\tthis.triggerAriaExpanded(this.buttonRef);\n\t\t\t}\n\t\t});\n\t};\n}\n"],"mappings":";;;sUAAA,MAAMA,EAAkB,ygBCYxBC,EAAY,+OAKZA,EAAY,mE,MAyCCC,EAAY,M,yBAIhBC,KAAAC,kBAAqBC,IAC5B,GAAIA,aAAkBC,kBAAmB,CACxCH,KAAKI,UAAYF,EACjBF,KAAKK,oBAAoBH,E,GAGnBF,KAAAK,oBAAuBH,IAC9BA,EAAOI,aAAa,gBAAiBN,KAAKO,MAAMC,MAAQ,OAAS,QAAQ,EA6HlER,KAAAS,QAAWC,IAClBV,KAAKQ,MAAQR,KAAKQ,QAAU,MAQ5B,MAAMG,EAAUC,YAAW,K,MAC1BC,aAAaF,GACb,WAAWG,EAAAd,KAAKO,MAAMQ,OAAG,MAAAD,SAAA,SAAAA,EAAEL,WAAY,WAAY,CAClDT,KAAKO,MAAMQ,IAAIN,QAAQC,EAAOV,KAAKQ,QAAU,K,CAE9C,GAAIR,KAAKI,qBAAqBD,kBAAmB,CAChDH,KAAKK,oBAAoBL,KAAKI,U,IAE9B,E,oCAnFoC,E,8BAU0B,M,WAKjC,CAC/BY,SAAU,IACVC,OAAQ,E,CAzEFC,SAEN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,KAAM,aAAarB,KAAKO,MAAMC,MAAQ,OAAS,WACnDW,EAAA,kBAAgBF,OAAQjB,KAAKO,MAAMU,QAClCE,EAAA,UAAQG,IAAKtB,KAAKC,kBAAmBQ,QAAST,KAAKS,SAClDU,EAAA,YAAUI,WAAW,GAAGC,MAAOxB,KAAKO,MAAMC,MAAQ,oBAAsB,mBAAoBiB,MAAOzB,KAAKO,MAAMC,MAAQ,QAAU,SAChIW,EAAA,YAAOnB,KAAKO,MAAMS,YAGpBG,EAAA,OAAKE,KAAK,UACTF,EAAA,QAAMO,KAAK,YAEZP,EAAA,OACCE,KAAK,UAELM,MACC3B,KAAKO,MAAMC,QAAU,MAClB,CACAoB,QAAS,OACTC,OAAQ,IACRC,WAAY,UAEZC,WAiBJZ,EAAA,QAAMO,KAAK,c,CAuCTM,gBAAgBC,GACtBC,EAAYlC,KAAM,WAAYiC,EAAO,CACpCE,SAAU,M,CAQLC,cAAcH,GACpBI,EAAkBrC,KAAMiC,E,CAOlBK,WAAWL,GACjB,UAAWA,IAAU,UAAYA,IAAU,aAAeA,EAAMxB,UAAY,WAAY,CACvF8B,EAASvC,KAAM,MAAOiC,E,EAQjBO,aAAaP,GACnBQ,EAAazC,KAAM,QAASiC,E,CAMtBS,oBACN1C,KAAKgC,gBAAgBhC,KAAKgB,UAC1BhB,KAAKoC,cAAcpC,KAAKiB,QACxBjB,KAAKsC,WAAWtC,KAAKe,KACrBf,KAAKwC,aAAaxC,KAAKQ,M"}
1
+ {"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","catchAriaExpanded","button","HTMLButtonElement","buttonRef","triggerAriaExpanded","setAttribute","state","_open","onClick","event","timeout","setTimeout","clearTimeout","_a","_on","_heading","_level","render","h","Host","part","_label","ref","_ariaLabel","_icon","_part","name","style","display","height","visibility","undefined","validateHeading","value","watchString","required","validateLevel","watchHeadingLevel","validateOn","setState","validateOpen","watchBoolean","componentWillLoad"],"sources":["./src/components/accordion/style.css?tag=kol-accordion&mode=default&encapsulation=shadow","./src/components/accordion/component.tsx"],"sourcesContent":["@import '../style.css';\n","// https://codepen.io/mbxtr/pen/OJPOYg?html-preprocessor=haml\n\nimport { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Events } from '../../enums/events';\n\nimport { EventValueCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { setState, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\n\nfeatureHint(`[KolAccordion] Anfrage nach einer KolAccordionGroup bei dem immer nur ein Accordion geöffnet ist.\n\n- onClick auf der KolAccordion anwenden\n- Click-Event prüft den _open-Status der Accordions\n- Logik Öffnet und Schließt entsprechend`);\nfeatureHint(`[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.`);\n\nexport type KoliBriAccordionCallbacks = {\n\t[Events.onClick]?: EventValueCallback<Event, boolean>;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\theading: string;\n};\ntype OptionalProps = {\n\tlevel: HeadingLevel;\n\topen: boolean;\n\ton: KoliBriAccordionCallbacks;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part accordion - Ermöglicht das Stylen des äußeren Container des Accordions.\n * @part open - Ermöglicht das Stylen des geöffneten Zustands und Icons.\n * @part close - Ermöglicht das Stylen des geschlossenen Zustands und Icons.\n * @part icon - Ermöglicht das Stylen der Icons.\n * @part header - Ermöglicht das Stylen des Kopfbereichs.\n * @part content - Ermöglicht das Stylen des Inhaltsbereichs.\n *\n * @slot header - Ermöglicht das Einfügen beliebigen HTML's in den Kopfbereich des Accordions.\n * @slot content - Ermöglicht das Einfügen beliebigen HTML's in den Inhaltsbereich des Accordions.\n */\n@Component({\n\ttag: 'kol-accordion',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolAccordion implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate buttonRef?: HTMLButtonElement;\n\t// private content?: HTMLDivElement;\n\n\tprivate catchAriaExpanded = (button?: HTMLButtonElement) => {\n\t\tif (button instanceof HTMLButtonElement) {\n\t\t\tthis.buttonRef = button;\n\t\t\tthis.triggerAriaExpanded(button);\n\t\t}\n\t};\n\tprivate triggerAriaExpanded = (button: HTMLButtonElement) => {\n\t\tbutton.setAttribute('aria-expanded', this.state._open ? 'true' : 'false');\n\t};\n\n\tpublic render(): JSX.Element {\n\t\t// const height = this.content?.getBoundingClientRect().height ?? 0;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div part={`accordion ${this.state._open ? 'open' : 'close'}`}>\n\t\t\t\t\t<kol-heading-wc _label=\"\" _level={this.state._level}>\n\t\t\t\t\t\t<button ref={this.catchAriaExpanded} onClick={this.onClick}>\n\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon={this.state._open ? 'fa-solid fa-minus' : 'fa-solid fa-plus'} _part={this.state._open ? 'close' : 'open'} />\n\t\t\t\t\t\t\t<span>{this.state._heading}</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t<div part=\"header\">\n\t\t\t\t\t\t<slot name=\"header\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tpart=\"content\"\n\t\t\t\t\t\t// ref={(r) => (this.content = r)}\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tthis.state._open === false\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\tdisplay: 'none',\n\t\t\t\t\t\t\t\t\t\theight: '0',\n\t\t\t\t\t\t\t\t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// style={\n\t\t\t\t\t\t// \tthis.state._open\n\t\t\t\t\t\t// \t\t? height > 0 && processEnv !== 'test' // TODO: remove this check when testing is fixed\n\t\t\t\t\t\t// \t\t\t? {\n\t\t\t\t\t\t// \t\t\t\theight: `${height}px`,\n\t\t\t\t\t\t// \t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\t}\n\t\t\t\t\t\t// \t\t\t: undefined\n\t\t\t\t\t\t// \t\t: {\n\t\t\t\t\t\t// \t\t\theight: '0',\n\t\t\t\t\t\t// \t\t\toverflow: 'hidden',\n\t\t\t\t\t\t// \t\t\tvisibility: 'hidden',\n\t\t\t\t\t\t// \t\t}\n\t\t\t\t\t\t// }\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"content\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Überschrift des Accordions an.\n\t */\n\t@Prop() public _heading!: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen an.\n\t */\n\t@Prop() public _on?: KoliBriAccordionCallbacks;\n\n\t/**\n\t * Gibt an, ob das Accordion geöffnet ist.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _open?: boolean = false;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_heading: '⚠',\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAccordionCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null && typeof value.onClick === 'function') {\n\t\t\tsetState(this, '_on', value);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_open')\n\tpublic validateOpen(value?: boolean): void {\n\t\twatchBoolean(this, '_open', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateOpen(this._open);\n\t}\n\n\tprivate onClick = (event: Event) => {\n\t\tthis._open = this._open === false;\n\n\t\t/**\n\t\t * Der Timeout wird benötigt, damit das Event\n\t\t * vom Button- auf das Accordion-Event wechselt.\n\t\t * So ist es dem Anwendenden möglich das _open-\n\t\t * Attribute abzufragen.\n\t\t */\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\t\tthis.state._on.onClick(event, this._open === true);\n\t\t\t}\n\t\t\tif (this.buttonRef instanceof HTMLButtonElement) {\n\t\t\t\tthis.triggerAriaExpanded(this.buttonRef);\n\t\t\t}\n\t\t});\n\t};\n}\n"],"mappings":";;;wSAAA,MAAMA,EAAkB,y8BCYxBC,EAAY,+OAKZA,EAAY,mE,MAyCCC,EAAY,M,yBAIhBC,KAAAC,kBAAqBC,IAC5B,GAAIA,aAAkBC,kBAAmB,CACxCH,KAAKI,UAAYF,EACjBF,KAAKK,oBAAoBH,E,GAGnBF,KAAAK,oBAAuBH,IAC9BA,EAAOI,aAAa,gBAAiBN,KAAKO,MAAMC,MAAQ,OAAS,QAAQ,EA6HlER,KAAAS,QAAWC,IAClBV,KAAKQ,MAAQR,KAAKQ,QAAU,MAQ5B,MAAMG,EAAUC,YAAW,K,MAC1BC,aAAaF,GACb,WAAWG,EAAAd,KAAKO,MAAMQ,OAAG,MAAAD,SAAA,SAAAA,EAAEL,WAAY,WAAY,CAClDT,KAAKO,MAAMQ,IAAIN,QAAQC,EAAOV,KAAKQ,QAAU,K,CAE9C,GAAIR,KAAKI,qBAAqBD,kBAAmB,CAChDH,KAAKK,oBAAoBL,KAAKI,U,IAE9B,E,oCAnFoC,E,8BAU0B,M,WAKjC,CAC/BY,SAAU,IACVC,OAAQ,E,CAzEFC,SAEN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,KAAM,aAAarB,KAAKO,MAAMC,MAAQ,OAAS,WACnDW,EAAA,kBAAgBG,OAAO,GAAGL,OAAQjB,KAAKO,MAAMU,QAC5CE,EAAA,UAAQI,IAAKvB,KAAKC,kBAAmBQ,QAAST,KAAKS,SAClDU,EAAA,YAAUK,WAAW,GAAGC,MAAOzB,KAAKO,MAAMC,MAAQ,oBAAsB,mBAAoBkB,MAAO1B,KAAKO,MAAMC,MAAQ,QAAU,SAChIW,EAAA,YAAOnB,KAAKO,MAAMS,YAGpBG,EAAA,OAAKE,KAAK,UACTF,EAAA,QAAMQ,KAAK,YAEZR,EAAA,OACCE,KAAK,UAELO,MACC5B,KAAKO,MAAMC,QAAU,MAClB,CACAqB,QAAS,OACTC,OAAQ,IACRC,WAAY,UAEZC,WAiBJb,EAAA,QAAMQ,KAAK,c,CAuCTM,gBAAgBC,GACtBC,EAAYnC,KAAM,WAAYkC,EAAO,CACpCE,SAAU,M,CAQLC,cAAcH,GACpBI,EAAkBtC,KAAMkC,E,CAOlBK,WAAWL,GACjB,UAAWA,IAAU,UAAYA,IAAU,aAAeA,EAAMzB,UAAY,WAAY,CACvF+B,EAASxC,KAAM,MAAOkC,E,EAQjBO,aAAaP,GACnBQ,EAAa1C,KAAM,QAASkC,E,CAMtBS,oBACN3C,KAAKiC,gBAAgBjC,KAAKgB,UAC1BhB,KAAKqC,cAAcrC,KAAKiB,QACxBjB,KAAKuC,WAAWvC,KAAKe,KACrBf,KAAKyC,aAAazC,KAAKQ,M"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as e,H as t}from"./index-0dce65d2.js";import{f as a}from"./a11y.tipps-353a7f35.js";import{L as s}from"./dev.utils-3ec9f837.js";import{b as n,w as r,s as o,a as l}from"./prop.validators-62a61880.js";import{w as c}from"./validation-0dc15e8d.js";import{a as d}from"./i18n-9b7525d8.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";import"./index-0fb82b03.js";const h="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",f=a=>e("kol-icon",{class:"icon",_ariaLabel:"string"==typeof a.heading&&a.heading.length>0?"":a.ariaLabel,_icon:a.icon}),p=a=>{switch(a.type){case"error":return e(f,{ariaLabel:d("kol-error"),icon:"fa-solid fa-circle-xmark",heading:a.heading});case"info":return e(f,{ariaLabel:d("kol-info"),icon:"fa-solid fa-circle-info",heading:a.heading});case"warning":return e(f,{ariaLabel:d("kol-warning"),icon:"fa-solid fa-triangle-exclamation",heading:a.heading});case"success":return e(f,{ariaLabel:d("kol-success"),icon:"fa-solid fa-circle-check",heading:a.heading});default:return e(f,{ariaLabel:d("kol-message"),icon:"fa-regular fa-comment",heading:a.heading})}},u=class{constructor(e){i(this,e),this.close=()=>{var e;void 0!==(null===(e=this._on)||void 0===e?void 0:e.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this._alert=!1,this._hasCloser=!1,this._heading=void 0,this._level=1,this._on=void 0,this._type="default",this._variant="msg",this.state={_level:1}}render(){if(this.state._alert){try{s.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(e){s.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return e(t,null,e("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},"msg"===this.state._variant&&e(p,{heading:this.state._heading,type:this.state._type}),e("div",null,("string"==typeof this.state._heading&&this.state._heading.length>0||"card"===this.state._variant)&&e("kol-heading-wc",{class:"heading",_level:this.state._level},"card"===this.state._variant&&e(p,{heading:this.state._heading,type:this.state._type}),this.state._heading),e("div",{class:"content"},e("slot",null)),this.state._hasCloser&&e("kol-button-wc",{class:"close",_icon:{left:{icon:"fa-solid fa-circle-xmark"}},_iconOnly:!0,_label:d("kol-close"),_on:this.on,_tooltipAlign:"left"}))))}validateAlert(e){n(this,"_alert",e)}validateHasCloser(e){n(this,"_hasCloser",e)}validateHeading(e){r(this,"_heading",e)}validateLevel(e){c(this,e)}validateOn(e){if("object"==typeof e&&null!==e){a("[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.");const t={};"function"!=typeof e.onClose&&!0!==e.onClose||(t.onClose=e.onClose),o(this,"_on",t)}}validateType(e){l(this,"_type",(e=>"string"==typeof e&&("default"===e||"error"===e||"info"===e||"success"===e||"warning"===e)),new Set("String {success, info, warning, error}"),e)}validateVariant(e){l(this,"_variant",(e=>"card"===e||"msg"===e),new Set("AlertVariant {card, msg}"),e)}componentWillLoad(){this.validateAlert(this._alert),this.validateHasCloser(this._hasCloser),this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateType(this._type),this.validateVariant(this._variant)}static get watchers(){return{_alert:["validateAlert"],_hasCloser:["validateHasCloser"],_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_type:["validateType"],_variant:["validateVariant"]}}};u.style={default:h};export{u as kol_alert};
4
+ import{r as i,h as r,H as o}from"./index-0dce65d2.js";import{f as a}from"./a11y.tipps-353a7f35.js";import{L as e}from"./dev.utils-3ec9f837.js";import{b as s,w as t,s as l,a as n}from"./prop.validators-c2234525.js";import{w as d}from"./validation-d17349fa.js";import{a as c}from"./i18n-f2ab4562.js";import"./reuse-2b3b6999.js";import"./index-2a11dd6d.js";import"./index-781a1af1.js";const h=":host{--kolibri-border-color:#e0e0e0;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-error:#f44336;--kolibri-color-info:#2196f3;--kolibri-color-success:#4caf50;--kolibri-color-warning:#ff9800;--kolibri-color-primary:#3f51b5;--kolibri-color-secondary:#ff4081;--kolibri-color-normal:#9e9e9e;--kolibri-color-danger:#f44336;--kolibri-color-ghost:#f5f5f5;--kolibri-color-disabled:#bdbdbd;--kolibri-color-text:#222222;--kolibri-color-visited:#9c27b0;--kolibri-spacing:0.25rem}*{box-sizing:border-box;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}:host>div{background-color:white;border-color:var(--kolibri-border-color);border-radius:var(--kolibri-border-radius);border-style:solid;border-width:var(--kolibri-border-width);display:flex;overflow:hidden;width:100%}:host>div.error{border-color:var(--kolibri-color-error)}:host>div.error .icon{background-color:var(--kolibri-color-error)}:host>div.info{border-color:var(--kolibri-color-info)}:host>div.info .icon{background-color:var(--kolibri-color-info)}:host>div.success{border-color:var(--kolibri-color-success)}:host>div.success .icon{background-color:var(--kolibri-color-success)}:host>div.warning{border-color:var(--kolibri-color-warning)}:host>div.warning .icon{background-color:var(--kolibri-color-warning)}:host>div .icon{color:white;display:inline-block;padding:0 var(--kolibri-spacing)}:host>div>div{display:grid}:host>div>div .heading{display:inline-block;padding:0 var(--kolibri-spacing)}:host>div>div .heading .icon{border-radius:0 0 var(--kolibri-border-radius) 0;margin-left:var(--kolibri-spacing);margin-right:var(--kolibri-spacing)}:host>div>div>div:last-child{padding:var(--kolibri-spacing)}",b=i=>r("kol-icon",{class:"icon",_ariaLabel:"string"==typeof i.heading&&i.heading.length>0?"":i.ariaLabel,_icon:i.icon}),f=i=>{switch(i.type){case"error":return r(b,{ariaLabel:c("kol-error"),icon:"fa-solid fa-circle-xmark",heading:i.heading});case"info":return r(b,{ariaLabel:c("kol-info"),icon:"fa-solid fa-circle-info",heading:i.heading});case"warning":return r(b,{ariaLabel:c("kol-warning"),icon:"fa-solid fa-triangle-exclamation",heading:i.heading});case"success":return r(b,{ariaLabel:c("kol-success"),icon:"fa-solid fa-circle-check",heading:i.heading});default:return r(b,{ariaLabel:c("kol-message"),icon:"fa-regular fa-comment",heading:i.heading})}},v=class{constructor(a){i(this,a),this.close=()=>{var i;void 0!==(null===(i=this._on)||void 0===i?void 0:i.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this._alert=!1,this._hasCloser=!1,this._heading=void 0,this._level=1,this._on=void 0,this._type="default",this._variant="msg",this.state={_level:1}}render(){if(this.state._alert){try{e.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(i){e.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return r(o,null,r("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},"msg"===this.state._variant&&r(f,{heading:this.state._heading,type:this.state._type}),r("div",null,("string"==typeof this.state._heading&&this.state._heading.length>0||"card"===this.state._variant)&&r("kol-heading-wc",{class:"heading",_label:this.state._heading||"",_level:this.state._level},"card"===this.state._variant&&r(f,{heading:this.state._heading,type:this.state._type})),r("div",{class:"content"},r("slot",null)),this.state._hasCloser&&r("kol-button-wc",{class:"close",_icon:{left:{icon:"fa-solid fa-circle-xmark"}},_iconOnly:!0,_label:c("kol-close"),_on:this.on,_tooltipAlign:"left"}))))}validateAlert(i){s(this,"_alert",i)}validateHasCloser(i){s(this,"_hasCloser",i)}validateHeading(i){t(this,"_heading",i)}validateLevel(i){d(this,i)}validateOn(i){if("object"==typeof i&&null!==i){a("[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.");const r={};"function"!=typeof i.onClose&&!0!==i.onClose||(r.onClose=i.onClose),l(this,"_on",r)}}validateType(i){n(this,"_type",(i=>"string"==typeof i&&("default"===i||"error"===i||"info"===i||"success"===i||"warning"===i)),new Set("String {success, info, warning, error}"),i)}validateVariant(i){n(this,"_variant",(i=>"card"===i||"msg"===i),new Set("AlertVariant {card, msg}"),i)}componentWillLoad(){this.validateAlert(this._alert),this.validateHasCloser(this._hasCloser),this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateType(this._type),this.validateVariant(this._variant)}static get watchers(){return{_alert:["validateAlert"],_hasCloser:["validateHasCloser"],_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_type:["validateType"],_variant:["validateVariant"]}}};v.style={default:h};export{v as kol_alert};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","Icon","props","h","class","_ariaLabel","heading","length","ariaLabel","_icon","icon","AlertIcon","type","translate","KolAlert","this","close","_a","_on","onClose","undefined","Event","on","onClick","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_hasCloser","left","_iconOnly","_label","_tooltipAlign","value","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","featureHint","callbacks","setState","validateType","watchValidator","Set","validateVariant","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { AlertType, AlertVariant, KoliBriAlertEventCallbacks } from '../../types/alert';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { Log } from '../../utils/dev.utils';\nimport { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = {\n\talert: boolean;\n\thasCloser: boolean;\n\theading: string;\n\tlevel: HeadingLevel;\n\ton: KoliBriAlertEventCallbacks;\n\ttype: AlertType;\n\tvariant: AlertVariant;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst Icon = (props: { ariaLabel: string; icon: string; heading?: string }) => {\n\treturn <kol-icon class=\"icon\" _ariaLabel={typeof props.heading === 'string' && props.heading.length > 0 ? '' : props.ariaLabel} _icon={props.icon} />;\n};\n\nconst AlertIcon = (props: { heading?: string; type?: AlertType }) => {\n\tswitch (props.type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"fa-solid fa-circle-xmark\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"fa-solid fa-circle-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"fa-solid fa-triangle-exclamation\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"fa-solid fa-circle-check\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"fa-regular fa-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolAlert implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly close = () => {\n\t\tif (this._on?.onClose !== undefined) {\n\t\t\tthis._on.onClose(new Event('Close'));\n\t\t}\n\t};\n\n\tprivate readonly on = {\n\t\tonClick: this.close,\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tif (this.state._alert) {\n\t\t\t/**\n\t\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t\t */\n\t\t\ttry {\n\t\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.validateAlert(false);\n\t\t\t}, 10000);\n\t\t}\n\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._type as string]: true,\n\t\t\t\t\t\t[this.state._variant as string]: true,\n\t\t\t\t\t}}\n\t\t\t\t\trole={this.state._alert ? 'alert' : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.state._variant === 'msg' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{((typeof this.state._heading === 'string' && this.state._heading.length > 0) || this.state._variant === 'card') && (\n\t\t\t\t\t\t\t<kol-heading-wc class=\"heading\" _level={this.state._level}>\n\t\t\t\t\t\t\t\t{this.state._variant === 'card' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t\t\t\t{this.state._heading}\n\t\t\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t\t_icon={{\n\t\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\t\ticon: 'fa-solid fa-circle-xmark',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_iconOnly\n\t\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Screenreader die Meldung vorlesen soll.\n\t */\n\t@Prop({ reflect: true }) public _alert?: boolean = false;\n\n\t/**\n\t * Gibt an, ob der Alert ein Schließen-Icon hat.\n\t */\n\t@Prop({ reflect: true }) public _hasCloser?: boolean = false;\n\n\t/**\n\t * Gibt den Titel der Meldung an.\n\t */\n\t@Prop() public _heading?: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Function für das Schließen des Alerts an.\n\t */\n\t@Prop() public _on?: KoliBriAlertEventCallbacks;\n\n\t/**\n\t * Gibt an, ob es sich um eine Erfolgs-, Info-, Warnung- oder Fehlermeldung handelt.\n\t */\n\t@Prop() public _type?: AlertType = 'default';\n\n\t/**\n\t * Gibt an, welche Benachrichtigungsvariante dargestellt wird.\n\t */\n\t@Prop() public _variant?: AlertVariant = 'msg';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: boolean): void {\n\t\twatchBoolean(this, '_hasCloser', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAlertEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriAlertEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriAlertEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: AlertType): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_type',\n\t\t\t(value) => typeof value === 'string' && (value === 'default' || value === 'error' || value === 'info' || value === 'success' || value === 'warning'),\n\t\t\tnew Set('String {success, info, warning, error}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: AlertVariant): void {\n\t\twatchValidator(this, '_variant', (value) => value === 'card' || value === 'msg', new Set('AlertVariant {card, msg}'), 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._alert);\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateType(this._type);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["defaultStyleCss","Icon","props","h","class","_ariaLabel","heading","length","ariaLabel","_icon","icon","AlertIcon","type","translate","KolAlert","this","close","_a","_on","onClose","undefined","Event","on","onClick","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_label","_hasCloser","left","_iconOnly","_tooltipAlign","value","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","featureHint","callbacks","setState","validateType","watchValidator","Set","validateVariant","componentWillLoad"],"sources":["./src/components/alert/style.css?tag=kol-alert&mode=default&encapsulation=shadow","./src/components/alert/component.tsx"],"sourcesContent":["@import '../style.css';\n\n:host > div {\n\tbackground-color: white;\n\tborder-color: var(--kolibri-border-color);\n\tborder-radius: var(--kolibri-border-radius);\n\tborder-style: solid;\n\tborder-width: var(--kolibri-border-width);\n\tdisplay: flex;\n\toverflow: hidden;\n\twidth: 100%;\n}\n:host > div.error {\n\tborder-color: var(--kolibri-color-error);\n}\n:host > div.error .icon {\n\tbackground-color: var(--kolibri-color-error);\n}\n:host > div.info {\n\tborder-color: var(--kolibri-color-info);\n}\n:host > div.info .icon {\n\tbackground-color: var(--kolibri-color-info);\n}\n:host > div.success {\n\tborder-color: var(--kolibri-color-success);\n}\n:host > div.success .icon {\n\tbackground-color: var(--kolibri-color-success);\n}\n:host > div.warning {\n\tborder-color: var(--kolibri-color-warning);\n}\n:host > div.warning .icon {\n\tbackground-color: var(--kolibri-color-warning);\n}\n:host > div .icon {\n\tcolor: white;\n\tdisplay: inline-block;\n\tpadding: 0 var(--kolibri-spacing);\n}\n:host > div > div {\n\tdisplay: grid;\n}\n:host > div > div .heading {\n\tdisplay: inline-block;\n\tpadding: 0 var(--kolibri-spacing);\n}\n:host > div > div .heading .icon {\n\tborder-radius: 0 0 var(--kolibri-border-radius) 0;\n\tmargin-left: var(--kolibri-spacing);\n\tmargin-right: var(--kolibri-spacing);\n}\n:host > div > div > div:last-child {\n\tpadding: var(--kolibri-spacing);\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { AlertType, AlertVariant, KoliBriAlertEventCallbacks } from '../../types/alert';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { Log } from '../../utils/dev.utils';\nimport { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = {\n\talert: boolean;\n\thasCloser: boolean;\n\theading: string;\n\tlevel: HeadingLevel;\n\ton: KoliBriAlertEventCallbacks;\n\ttype: AlertType;\n\tvariant: AlertVariant;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\nconst Icon = (props: { ariaLabel: string; icon: string; heading?: string }) => {\n\treturn <kol-icon class=\"icon\" _ariaLabel={typeof props.heading === 'string' && props.heading.length > 0 ? '' : props.ariaLabel} _icon={props.icon} />;\n};\n\nconst AlertIcon = (props: { heading?: string; type?: AlertType }) => {\n\tswitch (props.type) {\n\t\tcase 'error':\n\t\t\treturn <Icon ariaLabel={translate('kol-error')} icon=\"fa-solid fa-circle-xmark\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"fa-solid fa-circle-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"fa-solid fa-triangle-exclamation\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"fa-solid fa-circle-check\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"fa-regular fa-comment\" heading={props.heading} />;\n\t}\n};\n\n@Component({\n\ttag: 'kol-alert',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolAlert implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly close = () => {\n\t\tif (this._on?.onClose !== undefined) {\n\t\t\tthis._on.onClose(new Event('Close'));\n\t\t}\n\t};\n\n\tprivate readonly on = {\n\t\tonClick: this.close,\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tif (this.state._alert) {\n\t\t\t/**\n\t\t\t * - https://developer.mozilla.org/de/docs/Web/API/Navigator/vibrate\n\t\t\t * - https://googlechrome.github.io/samples/vibration/\n\t\t\t */\n\t\t\ttry {\n\t\t\t\tLog.debug(['Navigator should vibrate ...', navigator.vibrate([100, 75, 100, 75, 100])]);\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug('Navigator does not support vibration.');\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.validateAlert(false);\n\t\t\t}, 10000);\n\t\t}\n\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t[this.state._type as string]: true,\n\t\t\t\t\t\t[this.state._variant as string]: true,\n\t\t\t\t\t}}\n\t\t\t\t\trole={this.state._alert ? 'alert' : undefined}\n\t\t\t\t>\n\t\t\t\t\t{this.state._variant === 'msg' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{((typeof this.state._heading === 'string' && this.state._heading.length > 0) || this.state._variant === 'card') && (\n\t\t\t\t\t\t\t<kol-heading-wc class=\"heading\" _label={this.state._heading || ''} _level={this.state._level}>\n\t\t\t\t\t\t\t\t{this.state._variant === 'card' && <AlertIcon heading={this.state._heading} type={this.state._type} />}\n\t\t\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t\t_icon={{\n\t\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\t\ticon: 'fa-solid fa-circle-xmark',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_iconOnly\n\t\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Screenreader die Meldung vorlesen soll.\n\t */\n\t@Prop({ reflect: true }) public _alert?: boolean = false;\n\n\t/**\n\t * Gibt an, ob der Alert ein Schließen-Icon hat.\n\t */\n\t@Prop({ reflect: true }) public _hasCloser?: boolean = false;\n\n\t/**\n\t * Gibt den Titel der Meldung an.\n\t */\n\t@Prop() public _heading?: string;\n\n\t/**\n\t * Gibt an, welchen H-Level von 1 bis 6 die Überschrift hat.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t/**\n\t * Gibt die EventCallback-Function für das Schließen des Alerts an.\n\t */\n\t@Prop() public _on?: KoliBriAlertEventCallbacks;\n\n\t/**\n\t * Gibt an, ob es sich um eine Erfolgs-, Info-, Warnung- oder Fehlermeldung handelt.\n\t */\n\t@Prop() public _type?: AlertType = 'default';\n\n\t/**\n\t * Gibt an, welche Benachrichtigungsvariante dargestellt wird.\n\t */\n\t@Prop() public _variant?: AlertVariant = 'msg';\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_level: 1,\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_alert')\n\tpublic validateAlert(value?: boolean): void {\n\t\twatchBoolean(this, '_alert', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: boolean): void {\n\t\twatchBoolean(this, '_hasCloser', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_heading')\n\tpublic validateHeading(value?: string): void {\n\t\twatchString(this, '_heading', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriAlertEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfeatureHint('[KolAlert] Prüfen, wie man auch einen EventCallback einzeln ändern kann.');\n\t\t\tconst callbacks: KoliBriAlertEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriAlertEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_type')\n\tpublic validateType(value?: AlertType): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_type',\n\t\t\t(value) => typeof value === 'string' && (value === 'default' || value === 'error' || value === 'info' || value === 'success' || value === 'warning'),\n\t\t\tnew Set('String {success, info, warning, error}'),\n\t\t\tvalue\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_variant')\n\tpublic validateVariant(value?: AlertVariant): void {\n\t\twatchValidator(this, '_variant', (value) => value === 'card' || value === 'msg', new Set('AlertVariant {card, msg}'), 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._alert);\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateHeading(this._heading);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateType(this._type);\n\t\tthis.validateVariant(this._variant);\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{r as t,h as o,H as s}from"./index-0dce65d2.js";import{f as e,d as n,a as i}from"./a11y.tipps-353a7f35.js";import{r as a,a as r,o as l,p as c,s as h}from"./prop.validators-62a61880.js";import{s as d}from"./index.m-86dc8c44.js";import{c as p}from"./index-e722bdb7.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index-1b8b837d.js";const f=(t,o,a)=>(299*t+587*o+114*a)/1e3>=128?-1:1,u=(t,o,r,n=1)=>{const s=[Math.max(Math.min(Math.round(o[0]+n*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+n*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+n*Math.max(1,o[2]/100)),255),0)],e=d(a.hex(`rgba(${t.join(",")},1)`),a.hex(`rgba(${s.join(",")},1)`)),i=s[0]+s[1]+s[2];return 0===i||765===i||e>r?{background:t,foreground:s,contrast:e}:u(t,s,r,n)},b=new Map,g=(t,o,a,r=1)=>{if(b.has(t))return b.get(t);const n=u(t,o,a,r);return b.set(t,n),n},m=(t,o=7)=>{let r=[0,0,0,1],n=[255,255,255,1];"string"==typeof t?(r=p(t),n=r):"object"==typeof t&&null!==t&&"string"==typeof t.background&&"string"==typeof t.foreground&&(r=p(t.background),n="string"==typeof t.foreground?p(t.foreground):r);const s=f(r[0],r[1],r[2]),e=g([r[0],r[1],r[2]],[n[0],n[1],n[2]],o,s);return n=[...e.foreground,1],{background:a.hex(`rgba(${r.join(",")})`),foreground:a.hex(`rgba(${n.join(",")})`),contrast:e.contrast}},w="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}span{display:inline-flex}span kol-button-wc,span .kol-button-wc{box-shadow-left:1px solid rgba(0, 0, 0, 0.25)}span kol-button-wc button,span .kol-button-wc button{color:inherit}";e("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const y=/^([a-f0-9]{3}|[a-f0-9]{6})$/,k=class{constructor(o){t(this,o),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let o,a=t;"string"==typeof a?(y.test(a)&&(n("[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)."),a=`#${a}`),o=m(a)):o=m({background:a.backgroundColor,foreground:a.color}),o.contrast<7&&i(`[KolBadge] The contrast of ${o.contrast} (≥7, AAA) is too low, between the color pair ${o.background} and ${o.foreground}.`),this.bgColorStr=o.background,this.colorStr=o.foreground},this._color="#000",this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000"}}render(){return o(s,null,o("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},o("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&o("kol-button-wc",{_ariaLabel:this.state._smartButton._ariaLabel,_customClass:this.state._smartButton._customClass,_disabled:this.state._smartButton._disabled,_icon:this.state._smartButton._icon,_iconOnly:!0,_id:this.state._smartButton._id,_label:this.state._smartButton._label,_on:this.state._smartButton._on,_tooltipAlign:this.state._smartButton._tooltipAlign,_variant:this.state._smartButton._variant})))}validateColor(t){r(this,"_color",(t=>"string"==typeof t||"object"==typeof t&&null!==t&&"string"==typeof t.backgroundColor&&"string"==typeof t.color),new Set(["string","KoliBriColor"]),t,{defaultValue:"#000",hooks:{beforePatch:this.handleColorChange}})}validateSmartButton(t){l(t,(()=>{try{t=c(t)}catch(t){}h(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_smartButton:["validateSmartButton"]}}};k.style={default:w};export{k as kol_badge};
4
+ import{r as t,h as o,H as r}from"./index-0dce65d2.js";import{f as i,d as s,a as e}from"./a11y.tipps-353a7f35.js";import{r as a,c as n,a as l,o as c,p as d,s as h}from"./prop.validators-c2234525.js";import{c as b}from"./index-d14da386.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-2a11dd6d.js";const p=(t,o,r)=>(299*t+587*o+114*r)/1e3>=128?-1:1,f=(t,o,r,s=1)=>{const i=[Math.max(Math.min(Math.round(o[0]+s*Math.max(1,o[0]/100)),255),0),Math.max(Math.min(Math.round(o[1]+s*Math.max(1,o[1]/100)),255),0),Math.max(Math.min(Math.round(o[2]+s*Math.max(1,o[2]/100)),255),0)],e=n(a.hex(`rgba(${t.join(",")},1)`),a.hex(`rgba(${i.join(",")},1)`)),l=i[0]+i[1]+i[2];return 0===l||765===l||e>r?{background:t,foreground:i,contrast:e}:f(t,i,r,s)},u=new Map,g=(t,o,r,a=1)=>{if(u.has(t))return u.get(t);const s=f(t,o,r,a);return u.set(t,s),s},k=(t,o=7)=>{let r=[0,0,0,1],s=[255,255,255,1];"string"==typeof t?(r=b(t),s=r):"object"==typeof t&&null!==t&&"string"==typeof t.background&&"string"==typeof t.foreground&&(r=b(t.background),s="string"==typeof t.foreground?b(t.foreground):r);const i=p(r[0],r[1],r[2]),n=g([r[0],r[1],r[2]],[s[0],s[1],s[2]],o,i);return s=[...n.foreground,1],{background:a.hex(`rgba(${r.join(",")})`),foreground:a.hex(`rgba(${s.join(",")})`),contrast:n.contrast}},m=":host{--kolibri-border-color:#e0e0e0;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-error:#f44336;--kolibri-color-info:#2196f3;--kolibri-color-success:#4caf50;--kolibri-color-warning:#ff9800;--kolibri-color-primary:#3f51b5;--kolibri-color-secondary:#ff4081;--kolibri-color-normal:#9e9e9e;--kolibri-color-danger:#f44336;--kolibri-color-ghost:#f5f5f5;--kolibri-color-disabled:#bdbdbd;--kolibri-color-text:#222222;--kolibri-color-visited:#9c27b0;--kolibri-spacing:0.25rem}*{box-sizing:border-box;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}:host>span{display:inline-flex}:host>span>kol-button-wc{box-shadow-left:1px solid rgba(0, 0, 0, 0.25)}:host>span>kol-button-wc button{color:inherit}";i("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const y=/^([a-f0-9]{3}|[a-f0-9]{6})$/,w=class{constructor(o){t(this,o),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let o,r=t;"string"==typeof r?(y.test(r)&&(s("[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)."),r=`#${r}`),o=k(r)):o=k({background:r.backgroundColor,foreground:r.color}),o.contrast<7&&e(`[KolBadge] The contrast of ${o.contrast} (≥7, AAA) is too low, between the color pair ${o.background} and ${o.foreground}.`),this.bgColorStr=o.background,this.colorStr=o.foreground},this._color="#000",this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000"}}render(){return o(r,null,o("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},o("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&o("kol-button-wc",{_ariaLabel:this.state._smartButton._ariaLabel,_customClass:this.state._smartButton._customClass,_disabled:this.state._smartButton._disabled,_icon:this.state._smartButton._icon,_iconOnly:!0,_id:this.state._smartButton._id,_label:this.state._smartButton._label,_on:this.state._smartButton._on,_tooltipAlign:this.state._smartButton._tooltipAlign,_variant:this.state._smartButton._variant})))}validateColor(t){l(this,"_color",(t=>"string"==typeof t||"object"==typeof t&&null!==t&&"string"==typeof t.backgroundColor&&"string"==typeof t.color),new Set(["string","KoliBriColor"]),t,{defaultValue:"#000",hooks:{beforePatch:this.handleColorChange}})}validateSmartButton(t){c(t,(()=>{try{t=d(t)}catch(t){}h(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_smartButton:["validateSmartButton"]}}};w.style={default:m};export{w as kol_badge};
@@ -1 +1 @@
1
- {"version":3,"names":["getContrastYIQ","r","g","b","yiq","calcColorContrast","baseColor","contrastColor","ratio","dir","color","Math","max","min","round","contrast","hex","rgbaConvert","join","summe","background","foreground","cache","Map","getColorContrast","has","get","set","createContrastColorPair","contrastRatio","colorRgba","colorContrast","defaultStyleCss","featureHint","HACK_REG_EX","KolBadge","this","bgColorStr","colorStr","handleColorChange","value","test","devHint","backgroundColor","a11yHint","_color","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_label","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateSmartButton","objectObjectHandler","parseJson","e","setState","componentWillLoad"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.sass?tag=kol-badge&mode=default&encapsulation=shadow","./src/components/badge/component.tsx"],"sourcesContent":["import { rgbaConvert } from './rgba-convert';\nimport { hex } from 'wcag-contrast';\nimport { colorRgba } from './color-rgba';\nimport { RGB } from 'color-convert/conversions';\n\ntype RGBA = [number, number, number, number];\n\n// const calcColor = (color: RGBA, diff: number): RGBA => [\n// Math.max(Math.min(Math.round(color[0] + (color[0] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[1] + (color[1] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[2] + (color[2] / 100 + 1) * diff), 255), 0),\n// color[3],\n// ];\n\n// const relativeLuminanceFormel = (c: number): number => {\n// if (c <= 0.03928) {\n// return c / 12.92;\n// } else {\n// return ((c + 0.055) / 1.055) ** 2.4;\n// }\n// };\n// // https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n// const relativeLuminance = (r: number, g: number, b: number): number => {\n// return (\n// 0.2126 * relativeLuminanceFormel(r) + 0.7152 * relativeLuminanceFormel(g) + 0.0722 * relativeLuminanceFormel(b)\n// );\n// };\n\n// https://css-tricks.com/snippets/javascript/random-hex-color/\n// const randomColor = () => Math.floor(Math.random() * 16777215).toString(16);\n\n// https://24ways.org/2010/calculating-color-contrast/\n// ts-prune-ignore-next\nexport const getContrastYIQ = (r: number, g: number, b: number): number => {\n\tconst yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\treturn yiq >= 128 ? -1 : 1;\n};\n\nexport type ColorPair<T> = {\n\tbackground: T;\n\tforeground: T;\n};\n\nexport type ColorContrast<T> = ColorPair<T> & {\n\tcontrast: number;\n};\n\n// ts-prune-ignore-next\nexport const calcColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tconst color: RGB = [\n\t\tMath.max(Math.min(Math.round(contrastColor[0] + dir * Math.max(1, contrastColor[0] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[1] + dir * Math.max(1, contrastColor[1] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[2] + dir * Math.max(1, contrastColor[2] / 100)), 255), 0),\n\t];\n\tconst contrast = hex(rgbaConvert.hex(`rgba(${baseColor.join(',')},1)`), rgbaConvert.hex(`rgba(${color.join(',')},1)`));\n\tconst summe = color[0] + color[1] + color[2];\n\tif (summe === 0 || summe === 765 || contrast > ratio) {\n\t\treturn {\n\t\t\tbackground: baseColor,\n\t\t\tforeground: color,\n\t\t\tcontrast,\n\t\t};\n\t} else {\n\t\treturn calcColorContrast(baseColor, color, ratio, dir);\n\t}\n};\n\nconst cache: Map<unknown, ColorContrast<RGB>> = new Map();\n\n// ts-prune-ignore-next\nexport const getColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tif (cache.has(baseColor)) {\n\t\treturn cache.get(baseColor) as ColorContrast<RGB>;\n\t}\n\tconst color = calcColorContrast(baseColor, contrastColor, ratio, dir);\n\tcache.set(baseColor, color);\n\treturn color;\n};\n\nexport const createContrastColorPair = (color: string | ColorPair<string>, contrastRatio = 7): ColorContrast<string> => {\n\tlet baseColor: RGBA = [0, 0, 0, 1];\n\tlet contrastColor: RGBA = [255, 255, 255, 1];\n\tif (typeof color === 'string') {\n\t\tbaseColor = colorRgba(color);\n\t\tcontrastColor = baseColor;\n\t} else if (typeof color === 'object' && color !== null && typeof color.background === 'string' && typeof color.foreground === 'string') {\n\t\tbaseColor = colorRgba(color.background);\n\t\tif (typeof color.foreground === 'string') {\n\t\t\tcontrastColor = colorRgba(color.foreground);\n\t\t} else {\n\t\t\tcontrastColor = baseColor;\n\t\t}\n\t}\n\tconst yiq = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);\n\tconst colorContrast = getColorContrast(\n\t\t[baseColor[0], baseColor[1], baseColor[2]],\n\t\t[contrastColor[0], contrastColor[1], contrastColor[2]],\n\t\tcontrastRatio,\n\t\tyiq\n\t);\n\tcontrastColor = [...colorContrast.foreground, 1];\n\n\treturn {\n\t\tbackground: rgbaConvert.hex(`rgba(${baseColor.join(',')})`),\n\t\tforeground: rgbaConvert.hex(`rgba(${contrastColor.join(',')})`),\n\t\tcontrast: colorContrast.contrast,\n\t};\n};\n","@import ../style\n\nspan\n\tdisplay: inline-flex\n\n\tkol-button-wc,\n\t.kol-button-wc\n\t\tbox-shadow-left: 1px solid rgba(0, 0, 0, 0.25)\n\n\t\tbutton\n\t\t\tcolor: inherit\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { createContrastColorPair, ColorContrast } from './contrast';\nimport { Stringified } from '../../types/common';\nimport { ButtonProps } from '../../types/button-link';\n\nfeatureHint(`[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).`);\n\nconst HACK_REG_EX = /^([a-f0-9]{3}|[a-f0-9]{6})$/;\n\nexport type KoliBriColor = {\n\tbackgroundColor: string;\n\tcolor: string;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\tcolor: Stringified<KoliBriColor>;\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n\tsmartButton: Stringified<ButtonProps>;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tcolor: Stringified<KoliBriColor>;\n};\ntype OptionalStates = {\n\tsmartButton: ButtonProps;\n};\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-badge',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolBadge implements Props {\n\tprivate bgColorStr = '#000';\n\tprivate colorStr = '#fff';\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<span\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'smart-button': typeof this.state._smartButton === 'object' && this.state._smartButton !== null,\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: this.bgColorStr,\n\t\t\t\t\t\tcolor: this.colorStr,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this._label}></kol-span-wc>\n\t\t\t\t\t{typeof this.state._smartButton === 'object' && this.state._smartButton !== null && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t_ariaLabel={this.state._smartButton._ariaLabel}\n\t\t\t\t\t\t\t_customClass={this.state._smartButton._customClass}\n\t\t\t\t\t\t\t_disabled={this.state._smartButton._disabled}\n\t\t\t\t\t\t\t_icon={this.state._smartButton._icon}\n\t\t\t\t\t\t\t_iconOnly={true}\n\t\t\t\t\t\t\t_id={this.state._smartButton._id}\n\t\t\t\t\t\t\t_label={this.state._smartButton._label}\n\t\t\t\t\t\t\t_on={this.state._smartButton._on}\n\t\t\t\t\t\t\t_tooltipAlign={this.state._smartButton._tooltipAlign}\n\t\t\t\t\t\t\t_variant={this.state._smartButton._variant}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Farbe des Hintergrundes bzw. der Schrift an.\n\t */\n\t@Prop() public _color?: string | KoliBriColor = '#000';\n\n\t/**\n\t * Gibt einen Identifier eines Icons aus den Icofont's an. (https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon entweder links oder rechts dargestellt werden soll.\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt den Label-Text des Badges an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Ermöglicht einen Schalter ins das Eingabefeld mit einer beliebigen Aktion zu einzufügen (nur Icon-Only).\n\t */\n\t@Prop() public _smartButton?: Stringified<ButtonProps>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_color: '#000',\n\t};\n\n\tprivate handleColorChange = (value: unknown) => {\n\t\tlet color = value as string | KoliBriColor;\n\t\tlet colorContrast: ColorContrast<string>;\n\t\tif (typeof color === 'string') {\n\t\t\tif (HACK_REG_EX.test(color)) {\n\t\t\t\t// Catch Breaking Change - remove next Major\n\t\t\t\tdevHint(\n\t\t\t\t\t`[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).`\n\t\t\t\t);\n\t\t\t\tcolor = `#${color}`;\n\t\t\t}\n\t\t\tcolorContrast = createContrastColorPair(color);\n\t\t} else {\n\t\t\tcolorContrast = createContrastColorPair({\n\t\t\t\tbackground: color.backgroundColor,\n\t\t\t\tforeground: color.color,\n\t\t\t});\n\t\t}\n\t\tif (colorContrast.contrast < 7) {\n\t\t\ta11yHint(\n\t\t\t\t`[KolBadge] The contrast of ${colorContrast.contrast} (≥7, AAA) is too low, between the color pair ${colorContrast.background} and ${colorContrast.foreground}.`\n\t\t\t);\n\t\t}\n\t\tthis.bgColorStr = colorContrast.background;\n\t\tthis.colorStr = colorContrast.foreground;\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_color')\n\tpublic validateColor(value?: string | KoliBriColor): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_color',\n\t\t\t(value) =>\n\t\t\t\ttypeof value === 'string' ||\n\t\t\t\t(typeof value === 'object' && value !== null && typeof value.backgroundColor === 'string' && typeof value.color === 'string'),\n\t\t\tnew Set(['string', 'KoliBriColor']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: '#000',\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: this.handleColorChange,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_smartButton')\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, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateColor(this._color);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["getContrastYIQ","r","g","b","yiq","calcColorContrast","baseColor","contrastColor","ratio","dir","color","Math","max","min","round","contrast","hex","rgbaConvert","join","summe","background","foreground","cache","Map","getColorContrast","has","get","set","createContrastColorPair","contrastRatio","colorRgba","colorContrast","defaultStyleCss","featureHint","HACK_REG_EX","KolBadge","this","bgColorStr","colorStr","handleColorChange","value","test","devHint","backgroundColor","a11yHint","_color","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_label","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateSmartButton","objectObjectHandler","parseJson","e","setState","componentWillLoad"],"sources":["./src/components/badge/contrast.ts","./src/components/badge/style.css?tag=kol-badge&mode=default&encapsulation=shadow","./src/components/badge/component.tsx"],"sourcesContent":["import { rgbaConvert } from './rgba-convert';\nimport { hex } from 'wcag-contrast';\nimport { colorRgba } from './color-rgba';\nimport { RGB } from 'color-convert/conversions';\n\ntype RGBA = [number, number, number, number];\n\n// const calcColor = (color: RGBA, diff: number): RGBA => [\n// Math.max(Math.min(Math.round(color[0] + (color[0] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[1] + (color[1] / 100 + 1) * diff), 255), 0),\n// Math.max(Math.min(Math.round(color[2] + (color[2] / 100 + 1) * diff), 255), 0),\n// color[3],\n// ];\n\n// const relativeLuminanceFormel = (c: number): number => {\n// if (c <= 0.03928) {\n// return c / 12.92;\n// } else {\n// return ((c + 0.055) / 1.055) ** 2.4;\n// }\n// };\n// // https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n// const relativeLuminance = (r: number, g: number, b: number): number => {\n// return (\n// 0.2126 * relativeLuminanceFormel(r) + 0.7152 * relativeLuminanceFormel(g) + 0.0722 * relativeLuminanceFormel(b)\n// );\n// };\n\n// https://css-tricks.com/snippets/javascript/random-hex-color/\n// const randomColor = () => Math.floor(Math.random() * 16777215).toString(16);\n\n// https://24ways.org/2010/calculating-color-contrast/\n// ts-prune-ignore-next\nexport const getContrastYIQ = (r: number, g: number, b: number): number => {\n\tconst yiq = (r * 299 + g * 587 + b * 114) / 1000;\n\treturn yiq >= 128 ? -1 : 1;\n};\n\ntype ColorPair<T> = {\n\tbackground: T;\n\tforeground: T;\n};\n\nexport type ColorContrast<T> = ColorPair<T> & {\n\tcontrast: number;\n};\n\n// ts-prune-ignore-next\nexport const calcColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tconst color: RGB = [\n\t\tMath.max(Math.min(Math.round(contrastColor[0] + dir * Math.max(1, contrastColor[0] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[1] + dir * Math.max(1, contrastColor[1] / 100)), 255), 0),\n\t\tMath.max(Math.min(Math.round(contrastColor[2] + dir * Math.max(1, contrastColor[2] / 100)), 255), 0),\n\t];\n\tconst contrast = hex(rgbaConvert.hex(`rgba(${baseColor.join(',')},1)`), rgbaConvert.hex(`rgba(${color.join(',')},1)`));\n\tconst summe = color[0] + color[1] + color[2];\n\tif (summe === 0 || summe === 765 || contrast > ratio) {\n\t\treturn {\n\t\t\tbackground: baseColor,\n\t\t\tforeground: color,\n\t\t\tcontrast,\n\t\t};\n\t} else {\n\t\treturn calcColorContrast(baseColor, color, ratio, dir);\n\t}\n};\n\nconst cache: Map<unknown, ColorContrast<RGB>> = new Map();\n\n// ts-prune-ignore-next\nexport const getColorContrast = (baseColor: RGB, contrastColor: RGB, ratio: number, dir = 1): ColorContrast<RGB> => {\n\tif (cache.has(baseColor)) {\n\t\treturn cache.get(baseColor) as ColorContrast<RGB>;\n\t}\n\tconst color = calcColorContrast(baseColor, contrastColor, ratio, dir);\n\tcache.set(baseColor, color);\n\treturn color;\n};\n\nexport const createContrastColorPair = (color: string | ColorPair<string>, contrastRatio = 7): ColorContrast<string> => {\n\tlet baseColor: RGBA = [0, 0, 0, 1];\n\tlet contrastColor: RGBA = [255, 255, 255, 1];\n\tif (typeof color === 'string') {\n\t\tbaseColor = colorRgba(color);\n\t\tcontrastColor = baseColor;\n\t} else if (typeof color === 'object' && color !== null && typeof color.background === 'string' && typeof color.foreground === 'string') {\n\t\tbaseColor = colorRgba(color.background);\n\t\tif (typeof color.foreground === 'string') {\n\t\t\tcontrastColor = colorRgba(color.foreground);\n\t\t} else {\n\t\t\tcontrastColor = baseColor;\n\t\t}\n\t}\n\tconst yiq = getContrastYIQ(baseColor[0], baseColor[1], baseColor[2]);\n\tconst colorContrast = getColorContrast(\n\t\t[baseColor[0], baseColor[1], baseColor[2]],\n\t\t[contrastColor[0], contrastColor[1], contrastColor[2]],\n\t\tcontrastRatio,\n\t\tyiq\n\t);\n\tcontrastColor = [...colorContrast.foreground, 1];\n\n\treturn {\n\t\tbackground: rgbaConvert.hex(`rgba(${baseColor.join(',')})`),\n\t\tforeground: rgbaConvert.hex(`rgba(${contrastColor.join(',')})`),\n\t\tcontrast: colorContrast.contrast,\n\t};\n};\n","@import '../style.css';\n\n:host > span {\n\tdisplay: inline-flex;\n}\n:host > span > kol-button-wc {\n\tbox-shadow-left: 1px solid rgba(0, 0, 0, 0.25);\n}\n:host > span > kol-button-wc button {\n\tcolor: inherit;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { createContrastColorPair, ColorContrast } from './contrast';\nimport { Stringified } from '../../types/common';\nimport { ButtonProps } from '../../types/button-link';\n\nfeatureHint(`[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).`);\n\nconst HACK_REG_EX = /^([a-f0-9]{3}|[a-f0-9]{6})$/;\n\nexport type KoliBriColor = {\n\tbackgroundColor: string;\n\tcolor: string;\n};\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\tcolor: Stringified<KoliBriColor>;\n\ticon: Stringified<KoliBriIconProp>;\n\ticonOnly: boolean;\n\tsmartButton: Stringified<ButtonProps>;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tcolor: Stringified<KoliBriColor>;\n};\ntype OptionalStates = {\n\tsmartButton: ButtonProps;\n};\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-badge',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolBadge implements Props {\n\tprivate bgColorStr = '#000';\n\tprivate colorStr = '#fff';\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<span\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'smart-button': typeof this.state._smartButton === 'object' && this.state._smartButton !== null,\n\t\t\t\t\t}}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tbackgroundColor: this.bgColorStr,\n\t\t\t\t\t\tcolor: this.colorStr,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _iconOnly={this._iconOnly} _label={this._label}></kol-span-wc>\n\t\t\t\t\t{typeof this.state._smartButton === 'object' && this.state._smartButton !== null && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t_ariaLabel={this.state._smartButton._ariaLabel}\n\t\t\t\t\t\t\t_customClass={this.state._smartButton._customClass}\n\t\t\t\t\t\t\t_disabled={this.state._smartButton._disabled}\n\t\t\t\t\t\t\t_icon={this.state._smartButton._icon}\n\t\t\t\t\t\t\t_iconOnly={true}\n\t\t\t\t\t\t\t_id={this.state._smartButton._id}\n\t\t\t\t\t\t\t_label={this.state._smartButton._label}\n\t\t\t\t\t\t\t_on={this.state._smartButton._on}\n\t\t\t\t\t\t\t_tooltipAlign={this.state._smartButton._tooltipAlign}\n\t\t\t\t\t\t\t_variant={this.state._smartButton._variant}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die Farbe des Hintergrundes bzw. der Schrift an.\n\t */\n\t@Prop() public _color?: string | KoliBriColor = '#000';\n\n\t/**\n\t * Gibt einen Identifier eines Icons aus den Icofont's an. (https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob das Icon entweder links oder rechts dargestellt werden soll.\n\t * @deprecated\n\t */\n\t@Prop() public _iconAlign?: Alignment = 'left';\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt den Label-Text des Badges an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Ermöglicht einen Schalter ins das Eingabefeld mit einer beliebigen Aktion zu einzufügen (nur Icon-Only).\n\t */\n\t@Prop() public _smartButton?: Stringified<ButtonProps>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_color: '#000',\n\t};\n\n\tprivate handleColorChange = (value: unknown) => {\n\t\tlet color = value as string | KoliBriColor;\n\t\tlet colorContrast: ColorContrast<string>;\n\t\tif (typeof color === 'string') {\n\t\t\tif (HACK_REG_EX.test(color)) {\n\t\t\t\t// Catch Breaking Change - remove next Major\n\t\t\t\tdevHint(\n\t\t\t\t\t`[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).`\n\t\t\t\t);\n\t\t\t\tcolor = `#${color}`;\n\t\t\t}\n\t\t\tcolorContrast = createContrastColorPair(color);\n\t\t} else {\n\t\t\tcolorContrast = createContrastColorPair({\n\t\t\t\tbackground: color.backgroundColor,\n\t\t\t\tforeground: color.color,\n\t\t\t});\n\t\t}\n\t\tif (colorContrast.contrast < 7) {\n\t\t\ta11yHint(\n\t\t\t\t`[KolBadge] The contrast of ${colorContrast.contrast} (≥7, AAA) is too low, between the color pair ${colorContrast.background} and ${colorContrast.foreground}.`\n\t\t\t);\n\t\t}\n\t\tthis.bgColorStr = colorContrast.background;\n\t\tthis.colorStr = colorContrast.foreground;\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_color')\n\tpublic validateColor(value?: string | KoliBriColor): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_color',\n\t\t\t(value) =>\n\t\t\t\ttypeof value === 'string' ||\n\t\t\t\t(typeof value === 'object' && value !== null && typeof value.backgroundColor === 'string' && typeof value.color === 'string'),\n\t\t\tnew Set(['string', 'KoliBriColor']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: '#000',\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: this.handleColorChange,\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_smartButton')\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, '_smartButton', value);\n\t\t});\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateColor(this._color);\n\t\tthis.validateSmartButton(this._smartButton);\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{r as a,h as i,F as e,H as t}from"./index-0dce65d2.js";import{b as s}from"./a11y.tipps-353a7f35.js";import{w as r}from"./prop.validators-62a61880.js";import{w as n}from"./validation-5c3578c0.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";const o="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",l=class{constructor(i){a(this,i),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const a=this.state._links.length-1;return i(t,null,i("nav",{"aria-label":this.state._ariaLabel},i("ul",null,0===this.state._links.length&&i("li",null,i("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-house"}),"…"),this.state._links.map(((l,t)=>i("li",{key:t},0!==t&&i("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-angle-right",_part:"separator",exportparts:"separator"}),t===a?i("span",null,l._iconOnly?i("kol-icon",{_ariaLabel:l._label,_icon:"string"==typeof l._icon?l._icon:"fa-solid fa-link-slash"}):i(e,null,l._label)):i("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},l,{_ariaLabel:l._label}),l._label)))))))}validateAriaLabel(a){r(this,"_ariaLabel",a,{required:!0}),s(a)}validateLinks(a){n("KolBreadcrumb",this,a)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};l.style={default:o};export{l as kol_breadcrumb};
4
+ import{r as i,h as r,F as o,H as a}from"./index-0dce65d2.js";import{b as l}from"./a11y.tipps-353a7f35.js";import{w as e}from"./prop.validators-c2234525.js";import{w as s}from"./validation-52548dee.js";import"./dev.utils-3ec9f837.js";import"./reuse-2b3b6999.js";import"./index-2a11dd6d.js";const t=":host{--kolibri-border-color:#e0e0e0;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-error:#f44336;--kolibri-color-info:#2196f3;--kolibri-color-success:#4caf50;--kolibri-color-warning:#ff9800;--kolibri-color-primary:#3f51b5;--kolibri-color-secondary:#ff4081;--kolibri-color-normal:#9e9e9e;--kolibri-color-danger:#f44336;--kolibri-color-ghost:#f5f5f5;--kolibri-color-disabled:#bdbdbd;--kolibri-color-text:#222222;--kolibri-color-visited:#9c27b0;--kolibri-spacing:0.25rem}*{box-sizing:border-box;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",n=class{constructor(a){i(this,a),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const i=this.state._links.length-1;return r(a,null,r("nav",{"aria-label":this.state._ariaLabel},r("ul",null,0===this.state._links.length&&r("li",null,r("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-house"}),"…"),this.state._links.map(((a,l)=>r("li",{key:l},0!==l&&r("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-angle-right",_part:"separator",exportparts:"separator"}),l===i?r("span",null,a._iconOnly?r("kol-icon",{_ariaLabel:a._label,_icon:"string"==typeof a._icon?a._icon:"fa-solid fa-link-slash"}):r(o,null,a._label)):r("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},a,{_ariaLabel:a._label}),a._label)))))))}validateAriaLabel(i){e(this,"_ariaLabel",i,{required:!0}),l(i)}validateLinks(i){s("KolBreadcrumb",this,i)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};n.style={default:t};export{n as kol_breadcrumb};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolBreadcrumb","_ariaLabel","_links","render","lastIndex","this","state","length","h","Host","_icon","map","link","index","key","_part","exportparts","_iconOnly","_label","Fragment","Object","assign","_useCase","validateAriaLabel","value","watchString","required","a11yHintLabelingLandmarks","validateLinks","watchNavLinks","componentWillLoad"],"sources":["./src/components/style.sass?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, Fragment, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { Stringified } from '../../types/common';\nimport { a11yHintLabelingLandmarks } from '../../utils/a11y.tipps';\nimport { watchString } from '../../utils/prop.validators';\nimport { NavLinkProps } from '../link/component';\nimport { watchNavLinks } from '../nav/validation';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tariaLabel: string;\n\tlinks: Stringified<NavLinkProps[]>;\n};\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tariaLabel: string;\n\tlinks: NavLinkProps[];\n};\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part link - Ermöglicht das Stylen der Links.\n * @part separator - Ermöglicht das Ändern des Separator-Icons.\n */\n@Component({\n\ttag: 'kol-breadcrumb',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolBreadcrumb implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\tconst lastIndex = this.state._links.length - 1;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<nav aria-label={this.state._ariaLabel}>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t{this.state._links.length === 0 && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-house\" />…\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._links.map((link, index: number) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t{index !== 0 && <kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-angle-right\" _part=\"separator\" exportparts=\"separator\" />}\n\t\t\t\t\t\t\t\t\t{index === lastIndex ? (\n\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t{link._iconOnly ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<kol-icon _ariaLabel={link._label} _icon={typeof link._icon === 'string' ? link._icon : 'fa-solid fa-link-slash'} />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<Fragment>{link._label}</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<kol-link exportparts=\"link\" _useCase=\"nav\" {...link} _ariaLabel={link._label}>\n\t\t\t\t\t\t\t\t\t\t\t{link._label}\n\t\t\t\t\t\t\t\t\t\t</kol-link>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Text an, der die Navigation von anderen Navigationen differenziert.\n\t */\n\t@Prop() public _ariaLabel!: string;\n\n\t/**\n\t * Gibt die geordnete Liste der Seitenhierarchie in Links an.\n\t */\n\t@Prop() public _links!: Stringified<NavLinkProps[]>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_ariaLabel: '…', // '⚠'\n\t\t_links: [],\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\twatchString(this, '_ariaLabel', value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<NavLinkProps[]>): void {\n\t\twatchNavLinks('KolBreadcrumb', this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateLinks(this._links);\n\t}\n}\n"],"mappings":";;;+TAAA,MAAMA,EAAkB,ygB,MCqCXC,EAAa,M,oFAmDO,CAC/BC,WAAY,IACZC,OAAQ,G,CApDFC,SACN,MAAMC,EAAYC,KAAKC,MAAMJ,OAAOK,OAAS,EAC7C,OACCC,EAACC,EAAI,KACJD,EAAA,oBAAiBH,KAAKC,MAAML,YAC3BO,EAAA,UACEH,KAAKC,MAAMJ,OAAOK,SAAW,GAC7BC,EAAA,UACCA,EAAA,YAAUP,WAAW,GAAGS,MAAM,sBAAsB,KAGrDL,KAAKC,MAAMJ,OAAOS,KAAI,CAACC,EAAMC,IAE5BL,EAAA,MAAIM,IAAKD,GACPA,IAAU,GAAKL,EAAA,YAAUP,WAAW,GAAGS,MAAM,0BAA0BK,MAAM,YAAYC,YAAY,cACrGH,IAAUT,EACVI,EAAA,YACEI,EAAKK,UACLT,EAAA,YAAUP,WAAYW,EAAKM,OAAQR,aAAcE,EAAKF,QAAU,SAAWE,EAAKF,MAAQ,2BAExFF,EAACW,EAAQ,KAAEP,EAAKM,SAIlBV,EAAA,WAAAY,OAAAC,OAAA,CAAUL,YAAY,OAAOM,SAAS,OAAUV,EAAI,CAAEX,WAAYW,EAAKM,SACrEN,EAAKM,a,CAkCTK,kBAAkBC,GACxBC,EAAYpB,KAAM,aAAcmB,EAAO,CACtCE,SAAU,OAEXC,EAA0BH,E,CAOpBI,cAAcJ,GACpBK,EAAc,gBAAiBxB,KAAMmB,E,CAM/BM,oBACNzB,KAAKkB,kBAAkBlB,KAAKJ,YAC5BI,KAAKuB,cAAcvB,KAAKH,O"}
1
+ {"version":3,"names":["defaultStyleCss","KolBreadcrumb","_ariaLabel","_links","render","lastIndex","this","state","length","h","Host","_icon","map","link","index","key","_part","exportparts","_iconOnly","_label","Fragment","Object","assign","_useCase","validateAriaLabel","value","watchString","required","a11yHintLabelingLandmarks","validateLinks","watchNavLinks","componentWillLoad"],"sources":["./src/components/breadcrumb/style.css?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["@import '../style.css';\n","import { Component, Fragment, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { Stringified } from '../../types/common';\nimport { a11yHintLabelingLandmarks } from '../../utils/a11y.tipps';\nimport { watchString } from '../../utils/prop.validators';\nimport { NavLinkProps } from '../link/component';\nimport { watchNavLinks } from '../nav/validation';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tariaLabel: string;\n\tlinks: Stringified<NavLinkProps[]>;\n};\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\tariaLabel: string;\n\tlinks: NavLinkProps[];\n};\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @part link - Ermöglicht das Stylen der Links.\n * @part separator - Ermöglicht das Ändern des Separator-Icons.\n */\n@Component({\n\ttag: 'kol-breadcrumb',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolBreadcrumb implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\tconst lastIndex = this.state._links.length - 1;\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<nav aria-label={this.state._ariaLabel}>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t{this.state._links.length === 0 && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-house\" />…\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._links.map((link, index: number) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t{index !== 0 && <kol-icon _ariaLabel=\"\" _icon=\"fa-solid fa-angle-right\" _part=\"separator\" exportparts=\"separator\" />}\n\t\t\t\t\t\t\t\t\t{index === lastIndex ? (\n\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t{link._iconOnly ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<kol-icon _ariaLabel={link._label} _icon={typeof link._icon === 'string' ? link._icon : 'fa-solid fa-link-slash'} />\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<Fragment>{link._label}</Fragment>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<kol-link exportparts=\"link\" _useCase=\"nav\" {...link} _ariaLabel={link._label}>\n\t\t\t\t\t\t\t\t\t\t\t{link._label}\n\t\t\t\t\t\t\t\t\t\t</kol-link>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt den Text an, der die Navigation von anderen Navigationen differenziert.\n\t */\n\t@Prop() public _ariaLabel!: string;\n\n\t/**\n\t * Gibt die geordnete Liste der Seitenhierarchie in Links an.\n\t */\n\t@Prop() public _links!: Stringified<NavLinkProps[]>;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_ariaLabel: '…', // '⚠'\n\t\t_links: [],\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\twatchString(this, '_ariaLabel', value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<NavLinkProps[]>): void {\n\t\twatchNavLinks('KolBreadcrumb', this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateLinks(this._links);\n\t}\n}\n"],"mappings":";;;iSAAA,MAAMA,EAAkB,y8B,MCqCXC,EAAa,M,oFAmDO,CAC/BC,WAAY,IACZC,OAAQ,G,CApDFC,SACN,MAAMC,EAAYC,KAAKC,MAAMJ,OAAOK,OAAS,EAC7C,OACCC,EAACC,EAAI,KACJD,EAAA,oBAAiBH,KAAKC,MAAML,YAC3BO,EAAA,UACEH,KAAKC,MAAMJ,OAAOK,SAAW,GAC7BC,EAAA,UACCA,EAAA,YAAUP,WAAW,GAAGS,MAAM,sBAAsB,KAGrDL,KAAKC,MAAMJ,OAAOS,KAAI,CAACC,EAAMC,IAE5BL,EAAA,MAAIM,IAAKD,GACPA,IAAU,GAAKL,EAAA,YAAUP,WAAW,GAAGS,MAAM,0BAA0BK,MAAM,YAAYC,YAAY,cACrGH,IAAUT,EACVI,EAAA,YACEI,EAAKK,UACLT,EAAA,YAAUP,WAAYW,EAAKM,OAAQR,aAAcE,EAAKF,QAAU,SAAWE,EAAKF,MAAQ,2BAExFF,EAACW,EAAQ,KAAEP,EAAKM,SAIlBV,EAAA,WAAAY,OAAAC,OAAA,CAAUL,YAAY,OAAOM,SAAS,OAAUV,EAAI,CAAEX,WAAYW,EAAKM,SACrEN,EAAKM,a,CAkCTK,kBAAkBC,GACxBC,EAAYpB,KAAM,aAAcmB,EAAO,CACtCE,SAAU,OAEXC,EAA0BH,E,CAOpBI,cAAcJ,GACpBK,EAAc,gBAAiBxB,KAAMmB,E,CAM/BM,oBACNzB,KAAKkB,kBAAkBlB,KAAKJ,YAC5BI,KAAKuB,cAAcvB,KAAKH,O"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r,h as s,H as l}from"./index-0dce65d2.js";const o=class{constructor(s){r(this,s),this.state={}}render(){return s(l,null,s("div",{class:"flex flex-wrap bg-normal"},s("slot",null)))}};export{o as kol_button_group_wc};
4
+ import{r,h as s,H as t}from"./index-0dce65d2.js";const o=class{constructor(s){r(this,s),this.state={}}render(){return s(t,null,s("slot",null))}};export{o as kol_button_group_wc};
@@ -1 +1 @@
1
- {"version":3,"names":["KolButtonGroupWc","render","h","Host","class"],"sources":["./src/components/button-group/component.tsx"],"sourcesContent":["import { Component, h, Host, JSX, State } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-button-group-wc',\n\tshadow: false,\n})\nexport class KolButtonGroupWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<div class=\"flex flex-wrap bg-normal\">\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {};\n}\n"],"mappings":";;;uDAmBaA,EAAgB,M,oCAcI,E,CAbzBC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,MAAM,4BACVF,EAAA,c"}
1
+ {"version":3,"names":["KolButtonGroupWc","render","h","Host"],"sources":["./src/components/button-group/component.tsx"],"sourcesContent":["import { Component, h, Host, JSX, State } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\n\n/**\n * API\n */\ntype RequiredProps = unknown;\ntype OptionalProps = unknown;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps;\ntype OptionalStates = OptionalProps;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-button-group-wc',\n\tshadow: false,\n})\nexport class KolButtonGroupWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {};\n}\n"],"mappings":";;;uDAmBaA,EAAgB,M,oCAYI,E,CAXzBC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,a"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as n,h as o,H as e}from"./index-0dce65d2.js";const t="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",r=class{constructor(o){n(this,o)}render(){return o(e,null,o("kol-button-group-wc",null,o("slot",null)))}};r.style={default:t};export{r as kol_button_group};
4
+ import{r as o,h as r,H as i}from"./index-0dce65d2.js";const l=":host{--kolibri-border-color:#e0e0e0;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-error:#f44336;--kolibri-color-info:#2196f3;--kolibri-color-success:#4caf50;--kolibri-color-warning:#ff9800;--kolibri-color-primary:#3f51b5;--kolibri-color-secondary:#ff4081;--kolibri-color-normal:#9e9e9e;--kolibri-color-danger:#f44336;--kolibri-color-ghost:#f5f5f5;--kolibri-color-disabled:#bdbdbd;--kolibri-color-text:#222222;--kolibri-color-visited:#9c27b0;--kolibri-spacing:0.25rem}*{box-sizing:border-box;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}:host>kol-button-group-wc{display:inline-flex;flex-wrap:wrap;gap:calc(2 * var(--kolibri-spacing))}",e=class{constructor(r){o(this,r)}render(){return r(i,null,r("kol-button-group-wc",null,r("slot",null)))}};e.style={default:l};export{e as kol_button_group};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolButtonGroup","render","h","Host"],"sources":["./src/components/style.sass?tag=kol-button-group&mode=default&encapsulation=shadow","./src/components/button-group/shadow.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, h, Host, JSX } from '@stencil/core';\n\nimport { Props } from './component';\n\n@Component({\n\ttag: 'kol-button-group',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolButtonGroup implements Props {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-group-wc>\n\t\t\t\t\t<slot />\n\t\t\t\t</kol-button-group-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"mappings":";;;sDAAA,MAAMA,EAAkB,ygB,MCWXC,EAAc,M,yBACnBC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,2BACCA,EAAA,c"}
1
+ {"version":3,"names":["defaultStyleCss","KolButtonGroup","render","h","Host"],"sources":["./src/components/button-group/style.css?tag=kol-button-group&mode=default&encapsulation=shadow","./src/components/button-group/shadow.tsx"],"sourcesContent":["@import '../style.css';\n\n:host > kol-button-group-wc {\n\tdisplay: inline-flex;\n\tflex-wrap: wrap;\n\tgap: calc(2 * var(--kolibri-spacing));\n}\n","import { Component, h, Host, JSX } from '@stencil/core';\n\nimport { Props } from './component';\n\n@Component({\n\ttag: 'kol-button-group',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButtonGroup implements Props {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-group-wc>\n\t\t\t\t\t<slot />\n\t\t\t\t</kol-button-group-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n}\n"],"mappings":";;;sDAAA,MAAMA,EAAkB,2iC,MCWXC,EAAc,M,yBACnBC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,2BACCA,EAAA,c"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as t,H as e,g as s}from"./index-0dce65d2.js";import{a as n}from"./reuse-2b3b6999.js";const a="*{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:bold}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}",o=class{constructor(t){i(this,t),this.catchRef=i=>{this.ref=i,n(this.host,this.ref)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._disabled=!1,this._icon=void 0,this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0}render(){return t(e,null,t("kol-button-wc",{ref:this.catchRef,_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_icon:this._icon,_iconOnly:this._iconOnly,_id:this._id,_label:this._label,_on:this._on,_role:this._role,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},t("slot",{name:"expert",slot:"expert"})))}get host(){return s(this)}};o.style={default:a};export{o as kol_button_link};
4
+ import{r as i,h as o,H as e,g as t}from"./index-0dce65d2.js";import{a as r}from"./reuse-2b3b6999.js";const n=":host{--kolibri-border-color:#e0e0e0;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-error:#f44336;--kolibri-color-info:#2196f3;--kolibri-color-success:#4caf50;--kolibri-color-warning:#ff9800;--kolibri-color-primary:#3f51b5;--kolibri-color-secondary:#ff4081;--kolibri-color-normal:#9e9e9e;--kolibri-color-danger:#f44336;--kolibri-color-ghost:#f5f5f5;--kolibri-color-disabled:#bdbdbd;--kolibri-color-text:#222222;--kolibri-color-visited:#9c27b0;--kolibri-spacing:0.25rem}*{box-sizing:border-box;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button,input,select,textarea{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{background-color:transparent;border-width:0}:host>kol-link-wc a{display:inline-flex;gap:0.25rem;place-items:center;text-decoration:none}button{background-color:transparent}a,button{background-image:repeating-linear-gradient(to right, #66ddec, #66ddec);background-repeat:no-repeat;background-position:left 0 bottom 0;background-size:25% 0.25ex;border-radius:var(--spacing);color:var(--color-petrol);font-family:var(--font-family-sans);font-size:inherit;text-transform:uppercase;transition-delay:0;transition-timing-function:ease-in-out;transition-duration:0.5s;transition-property:background-color, border-color, color}a:focus,a:hover,button:focus,button:hover{background-size:100% 0.25ex;color:var(--color-achat)}a>kol-span-wc,button>kol-span-wc{gap:0.25em}.hidden{display:none;visibility:hidden}a.skip{left:-99999px;overflow:hidden;position:absolute;z-index:9999999}a.skip:focus{background-color:white;box-shadow:0 0 0.5rem 0.5rem white;left:unset;position:unset}",s=class{constructor(o){i(this,o),this.catchRef=i=>{this.ref=i,r(this.host,this.ref)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._disabled=!1,this._icon=void 0,this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0}render(){return o(e,null,o("kol-button-wc",{ref:this.catchRef,_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_icon:this._icon,_iconOnly:this._iconOnly,_id:this._id,_label:this._label,_on:this._on,_role:this._role,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},o("slot",{name:"expert",slot:"expert"})))}get host(){return t(this)}};s.style={default:n};export{s as kol_button_link};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolButtonLink","this","catchRef","ref","propergateFocus","host","render","h","Host","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_icon","_iconOnly","_id","_label","_on","_role","_tabIndex","_tooltipAlign","_type","_value","name","slot"],"sources":["./src/components/style.sass?tag=kol-button-link&mode=default&encapsulation=shadow","./src/components/button-link/component.tsx"],"sourcesContent":["*\n\tbox-sizing: border-box\n\tfont-size: inherit\n\thyphens: auto\n\tletter-spacing: inherit\n\tword-break: break-word\n\tword-spacing: inherit\n\nkol-heading-wc\n\tfont-weight: bold\n\nkol-icon\n\tcolor: inherit\n\nkol-span-wc\n\tdisplay: grid\n\tplace-items: center\n\twidth: 100%\n\n\t> span\n\t\tdisplay: flex\n\t\tgap: 0.25rem\n\t\tplace-items: center\n\na,\nbutton,\ninput,\nselect,\ntextarea\n\tcursor: pointer\n\na,\nbutton\n\t&.icon-only\n\n\t\t> kol-span-wc\n\n\t\t\t> span\n\n\t\t\t\t> span\n\t\t\t\t\tdisplay: none\n\na\n\tdisplay: inline-flex\n\tplace-items: baseline\n\nbutton\n\tbackground-color: transparent\n\tborder-width: 0\n","import { Component, Element, h, Host, JSX, Prop } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport {\n\tAlternativButtonLinkRole,\n\tAriaCurrent,\n\tKoliBriButtonCallbacks,\n\tKoliBriButtonType,\n\tOptionalButtonLinkProps,\n\tRequiredButtonLinkProps,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { propergateFocus } from '../../utils/reuse';\nimport { Alignment } from '../../types/props/alignment';\n\n@Component({\n\ttag: 'kol-button-link',\n\tstyleUrls: {\n\t\tdefault: '../style.sass',\n\t},\n\tshadow: true,\n})\nexport class KolButtonLink implements Generic.Element.Members<RequiredButtonLinkProps, OptionalButtonLinkProps> {\n\t@Element() private readonly host?: HTMLKolButtonLinkElement;\n\tprivate ref?: HTMLKolButtonWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_iconOnly={this._iconOnly}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man den Button auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus der Button hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch den Button etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Gibt einen beschreibenden Text für den Screenreader an. Damit die\n\t * Sprachsteuerung von interaktiven Elementen funktioniert, muss der\n\t * Aria-Label-Text mit dem Label-Text des Buttons beginnen.\n\t *\n\t * - https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string = '';\n\n\t/**\n\t * Gibt an, ob Element ausgewählt ist (role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, ob der Button deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt die ID der Schaltfläche an. (Selection, Testing)\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Gibt einen beschreibenden Text für das Text-Element an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: KoliBriButtonCallbacks<unknown>;\n\n\t/**\n\t * Gibt an, welche Role der Schalter hat.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt an, welchen Tab-Index der Button hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Gibt an, welche Typ der Button hat.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,ygB,MCuBXC,EAAa,M,yBAIRC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAgBH,KAAKI,KAAMJ,KAAKE,IAAI,E,gIA2DiC,G,4CAUhB,M,oCAUA,M,6HA8BX,M,WAKA,S,sBA/GpCG,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCJ,IAAKF,KAAKC,SACVO,WAAYR,KAAKQ,WACjBC,cAAeT,KAAKS,cACpBC,aAAcV,KAAKU,aACnBC,cAAeX,KAAKW,cACpBC,WAAYZ,KAAKY,WACjBC,cAAeb,KAAKa,cACpBC,UAAWd,KAAKc,UAChBC,MAAOf,KAAKe,MACZC,UAAWhB,KAAKgB,UAChBC,IAAKjB,KAAKiB,IACVC,OAAQlB,KAAKkB,OACbC,IAAKnB,KAAKmB,IACVC,MAAOpB,KAAKoB,MACZC,UAAWrB,KAAKqB,UAChBC,cAAetB,KAAKsB,cACpBC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,QAEblB,EAAA,QAAMmB,KAAK,SAASC,KAAK,Y"}
1
+ {"version":3,"names":["defaultStyleCss","KolButtonLink","this","catchRef","ref","propergateFocus","host","render","h","Host","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_icon","_iconOnly","_id","_label","_on","_role","_tabIndex","_tooltipAlign","_type","_value","name","slot"],"sources":["./src/components/button-link/style.css?tag=kol-button-link&mode=default&encapsulation=shadow","./src/components/button-link/component.tsx"],"sourcesContent":["@import '../link.css';\n","import { Component, Element, h, Host, JSX, Prop } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport {\n\tAlternativButtonLinkRole,\n\tAriaCurrent,\n\tKoliBriButtonCallbacks,\n\tKoliBriButtonType,\n\tOptionalButtonLinkProps,\n\tRequiredButtonLinkProps,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { propergateFocus } from '../../utils/reuse';\nimport { Alignment } from '../../types/props/alignment';\n\n@Component({\n\ttag: 'kol-button-link',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButtonLink implements Generic.Element.Members<RequiredButtonLinkProps, OptionalButtonLinkProps> {\n\t@Element() private readonly host?: HTMLKolButtonLinkElement;\n\tprivate ref?: HTMLKolButtonWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tthis.ref = ref;\n\t\tpropergateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_iconOnly={this._iconOnly}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man den Button auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus der Button hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch den Button etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Gibt einen beschreibenden Text für den Screenreader an. Damit die\n\t * Sprachsteuerung von interaktiven Elementen funktioniert, muss der\n\t * Aria-Label-Text mit dem Label-Text des Buttons beginnen.\n\t *\n\t * - https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string = '';\n\n\t/**\n\t * Gibt an, ob Element ausgewählt ist (role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, ob der Button deaktiviert ist.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Gibt den Class-Identifier eines Icons eine eingebunden Icofont an. (z.B. https://icofont.com/)\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Gibt an, ob nur das Icon angezeigt wird.\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Gibt die ID der Schaltfläche an. (Selection, Testing)\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Gibt einen beschreibenden Text für das Text-Element an.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: KoliBriButtonCallbacks<unknown>;\n\n\t/**\n\t * Gibt an, welche Role der Schalter hat.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt an, welchen Tab-Index der Button hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Gibt an, welche Typ der Button hat.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,i2D,MCuBXC,EAAa,M,yBAIRC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAgBH,KAAKI,KAAMJ,KAAKE,IAAI,E,gIA2DiC,G,4CAUhB,M,oCAUA,M,6HA8BX,M,WAKA,S,sBA/GpCG,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCJ,IAAKF,KAAKC,SACVO,WAAYR,KAAKQ,WACjBC,cAAeT,KAAKS,cACpBC,aAAcV,KAAKU,aACnBC,cAAeX,KAAKW,cACpBC,WAAYZ,KAAKY,WACjBC,cAAeb,KAAKa,cACpBC,UAAWd,KAAKc,UAChBC,MAAOf,KAAKe,MACZC,UAAWhB,KAAKgB,UAChBC,IAAKjB,KAAKiB,IACVC,OAAQlB,KAAKkB,OACbC,IAAKnB,KAAKmB,IACVC,MAAOpB,KAAKoB,MACZC,UAAWrB,KAAKqB,UAChBC,cAAetB,KAAKsB,cACpBC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,QAEblB,EAAA,QAAMmB,KAAK,SAASC,KAAK,Y"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as t,H as s,g as a}from"./index-0dce65d2.js";import{w as e}from"./button-link-01028aae.js";import{d as l,e as n}from"./a11y.tipps-353a7f35.js";import{n as h}from"./dev.utils-3ec9f837.js";import{e as o,i as d,g as r,w as c,a as u,b as _,s as v}from"./prop.validators-62a61880.js";import{a as f}from"./reuse-2b3b6999.js";import{v as b,w as p}from"./icon-5edb38e1.js";import{v as m,a as y}from"./label-e7bacbab.js";import{v as g}from"./tab-index-3378b139.js";import{p as A,a as j}from"./controller-b7578f6d.js";import{a as x,w as I}from"./controller-8b3a25ac.js";import"./index-68b1f91c.js";import"./index.m-86dc8c44.js";const C=class{constructor(t){i(this,t),this.nonce=h(),this.catchRef=t=>{this.ref=t,f(this.host,this.ref)},this.onClick=t=>{var a,i;"submit"===this.state._type?A({form:this.host,ref:this.ref}):"reset"===this.state._type?j({form:this.host,ref:this.ref}):"function"==typeof(null===(a=this.state._on)||void 0===a?void 0:a.onClick)?(o(t,this.ref),null===(i=this.state._on)||void 0===i||i.onClick(t,this.state._value)):l("It was no button click callback configured!")},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_ariaLabel:"",_icon:{},_iconAlign:"left",_label:"",_on:{},_type:"button"}}render(){return t(s,null,t("button",Object.assign({ref:this.catchRef,accessKey:this.state._accessKey,"aria-controls":this.state._ariaControls,"aria-current":d(this.state._ariaCurrent),"aria-expanded":r(this.state._ariaExpanded),"aria-label":!1===this.state._iconOnly?this.state._ariaLabel||this.state._label:void 0,"aria-labelledby":!0===this.state._iconOnly?this.nonce:void 0,"aria-selected":d(this.state._ariaSelected),class:{[this.state._variant]:"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0,"icon-only":!0===this.state._iconOnly},disabled:this.state._disabled,id:this.state._id},this.state._on,{onClick:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex,type:this.state._type}),t("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._ariaLabel||this.state._label},t("slot",{name:"expert",slot:"expert"}))),!0===this.state._iconOnly&&t("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAccessKey(t){c(this,"_accessKey",t)}validateAriaControls(t){c(this,"_ariaControls",t)}validateAriaCurrent(t){u(this,"_ariaControls",(t=>!0===t||"date"===t||"location"===t||"page"===t||"step"===t||"time"===t),new Set(["boolean","String {data, location, page, step, time}"]),t)}validateAriaExpanded(t){_(this,"_ariaExpanded",t)}validateAriaLabel(t){m(this,t)}validateAriaSelected(t){_(this,"_ariaSelected",t)}validateCustomClass(t){c(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){_(this,"_disabled",t),!0===t&&n()}validateIcon(t){b(this,t)}validateIconAlign(t){p(this,t)}validateIconOnly(t){_(this,"_iconOnly",t,{defaultValue:!1})}validateId(t){c(this,"_id",t)}validateLabel(t){y(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){c(this,"_role",t)}validateTabIndex(t){g(this,t)}validateTooltipAlign(t){e(this,"_tooltipAlign",t)}validateType(t){x(this,"_type",t)}validateValue(t){v(this,"_value",t)}validateVariant(t){I(this,"_variant",t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateIconOnly(this._iconOnly),this.validateId(this._id),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}get host(){return a(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_id:["validateId"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}},O=t=>{t instanceof Node&&setTimeout((()=>{var a,i;null===(a=t.parentElement)||void 0===a||a.removeChild(t),null===(i=t.parentNode)||void 0===i||i.removeChild(t)}))},L=class{constructor(t){i(this,t),this._icon=void 0,this._iconOnly=!1,this._label=void 0,this.state={_icon:{},_iconOnly:!1,_label:""}}render(){return t(s,{class:{"icon-only":this.state._iconOnly}},this.state._icon.top&&t("kol-icon",{class:{"icon top":!0},style:this.state._icon.top.style,_ariaLabel:"",_icon:this.state._icon.top.icon}),t("span",null,this.state._icon.left&&t("kol-icon",{class:{"icon left":!0},style:this.state._icon.left.style,_ariaLabel:"",_icon:this.state._icon.left.icon}),!0!==this.state._iconOnly&&this.state._label.length>0?t("span",null,this.state._label):"",t("span",{ref:this.state._label.length>0||!0===this.state._iconOnly?O:void 0},t("slot",{name:"expert"})),this.state._icon.right&&t("kol-icon",{class:{"icon right":!0},style:this.state._icon.right.style,_ariaLabel:"",_icon:this.state._icon.right.icon})),this.state._icon.bottom&&t("kol-icon",{class:{"icon bottom":!0},style:this.state._icon.bottom.style,_ariaLabel:"",_icon:this.state._icon.bottom.icon}))}validateIcon(t){b(this,t)}validateIconOnly(t){_(this,"_iconOnly",t)}validateLabel(t){y(this,t)}componentWillLoad(){this.validateIcon(this._icon),this.validateIconOnly(this._iconOnly),this.validateLabel(this._label)}static get watchers(){return{_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"]}}};export{C as kol_button_wc,L as kol_span_wc};
4
+ import{r as i,h as t,H as s,g as a}from"./index-0dce65d2.js";import{w as e}from"./button-link-5bb8204c.js";import{d as l,e as n}from"./a11y.tipps-353a7f35.js";import{n as h}from"./dev.utils-3ec9f837.js";import{f as o,j as d,h as r,w as c,a as u,b as _,s as v}from"./prop.validators-c2234525.js";import{a as f}from"./reuse-2b3b6999.js";import{v as b,w as p}from"./icon-4f6266ca.js";import{v as m,a as y}from"./label-eaabc3d3.js";import{v as A}from"./tab-index-1bc7d9c1.js";import{p as g,a as j}from"./controller-b8a587ec.js";import{a as I,w as x}from"./controller-059a3921.js";import"./index-2a11dd6d.js";const C=class{constructor(t){i(this,t),this.nonce=h(),this.catchRef=t=>{this.ref=t,f(this.host,this.ref)},this.onClick=t=>{var a,i;"submit"===this.state._type?g({form:this.host,ref:this.ref}):"reset"===this.state._type?j({form:this.host,ref:this.ref}):"function"==typeof(null===(a=this.state._on)||void 0===a?void 0:a.onClick)?(o(t,this.ref),null===(i=this.state._on)||void 0===i||i.onClick(t,this.state._value)):l("It was no button click callback configured!")},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_ariaLabel:"",_icon:{},_iconAlign:"left",_label:"",_on:{},_type:"button"}}render(){return t(s,null,t("button",Object.assign({ref:this.catchRef,accessKey:this.state._accessKey,"aria-controls":this.state._ariaControls,"aria-current":d(this.state._ariaCurrent),"aria-expanded":r(this.state._ariaExpanded),"aria-label":!1===this.state._iconOnly?this.state._ariaLabel||this.state._label:void 0,"aria-labelledby":!0===this.state._iconOnly?this.nonce:void 0,"aria-selected":d(this.state._ariaSelected),class:{[this.state._variant]:"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0,"icon-only":!0===this.state._iconOnly},disabled:this.state._disabled,id:this.state._id},this.state._on,{onClick:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex,type:this.state._type}),t("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._ariaLabel||this.state._label},t("slot",{name:"expert",slot:"expert"}))),!0===this.state._iconOnly&&t("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAccessKey(t){c(this,"_accessKey",t)}validateAriaControls(t){c(this,"_ariaControls",t)}validateAriaCurrent(t){u(this,"_ariaControls",(t=>!0===t||"date"===t||"location"===t||"page"===t||"step"===t||"time"===t),new Set(["boolean","String {data, location, page, step, time}"]),t)}validateAriaExpanded(t){_(this,"_ariaExpanded",t)}validateAriaLabel(t){m(this,t)}validateAriaSelected(t){_(this,"_ariaSelected",t)}validateCustomClass(t){c(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){_(this,"_disabled",t),!0===t&&n()}validateIcon(t){b(this,t)}validateIconAlign(t){p(this,t)}validateIconOnly(t){_(this,"_iconOnly",t,{defaultValue:!1})}validateId(t){c(this,"_id",t)}validateLabel(t){y(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){c(this,"_role",t)}validateTabIndex(t){A(this,t)}validateTooltipAlign(t){e(this,"_tooltipAlign",t)}validateType(t){I(this,"_type",t)}validateValue(t){v(this,"_value",t)}validateVariant(t){x(this,"_variant",t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateIconOnly(this._iconOnly),this.validateId(this._id),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}get host(){return a(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_id:["validateId"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}},O=t=>{t instanceof Node&&setTimeout((()=>{var a,i;null===(a=t.parentElement)||void 0===a||a.removeChild(t),null===(i=t.parentNode)||void 0===i||i.removeChild(t)}))},L=class{constructor(t){i(this,t),this._icon=void 0,this._iconOnly=!1,this._label=void 0,this.state={_icon:{},_iconOnly:!1,_label:""}}render(){return t(s,{class:{"icon-only":this.state._iconOnly}},this.state._icon.top&&t("kol-icon",{class:{"icon top":!0},style:this.state._icon.top.style,_ariaLabel:"",_icon:this.state._icon.top.icon}),t("span",null,this.state._icon.left&&t("kol-icon",{class:{"icon left":!0},style:this.state._icon.left.style,_ariaLabel:"",_icon:this.state._icon.left.icon}),!0!==this.state._iconOnly&&this.state._label.length>0?t("span",null,this.state._label):"",t("span",{ref:this.state._label.length>0||!0===this.state._iconOnly?O:void 0},t("slot",{name:"expert"})),this.state._icon.right&&t("kol-icon",{class:{"icon right":!0},style:this.state._icon.right.style,_ariaLabel:"",_icon:this.state._icon.right.icon})),this.state._icon.bottom&&t("kol-icon",{class:{"icon bottom":!0},style:this.state._icon.bottom.style,_ariaLabel:"",_icon:this.state._icon.bottom.icon}))}validateIcon(t){b(this,t)}validateIconOnly(t){_(this,"_iconOnly",t)}validateLabel(t){y(this,t)}componentWillLoad(){this.validateIcon(this._icon),this.validateIconOnly(this._iconOnly),this.validateLabel(this._label)}static get watchers(){return{_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"]}}};export{C as kol_button_wc,L as kol_span_wc};