@public-ui/components 1.5.0-rc.0 → 1.5.0-rc.2

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 (643) hide show
  1. package/README.md +7 -0
  2. package/cheat-sheet.html +54 -25
  3. package/custom-elements.json +378 -15
  4. package/dist/cjs/app-globals-c6303780.js +4 -0
  5. package/dist/cjs/app-globals-c6303780.js.map +1 -0
  6. package/dist/cjs/{button-link-d6b0f982.js → button-link-89ed5382.js} +1 -1
  7. package/dist/cjs/button-link-89ed5382.js.map +1 -0
  8. package/dist/cjs/{controller-29a631b7.js → controller-2405dd04.js} +1 -1
  9. package/dist/cjs/{controller-29a631b7.js.map → controller-2405dd04.js.map} +1 -1
  10. package/dist/cjs/{controller-af048c8c.js → controller-8e2cebc1.js} +1 -1
  11. package/dist/cjs/{controller-af048c8c.js.map → controller-8e2cebc1.js.map} +1 -1
  12. package/dist/cjs/{controller-56acda6c.js → controller-94b357a3.js} +1 -1
  13. package/dist/cjs/{controller-56acda6c.js.map → controller-94b357a3.js.map} +1 -1
  14. package/dist/cjs/{controller-12cc1062.js → controller-ce13f0a2.js} +1 -1
  15. package/dist/cjs/{controller-12cc1062.js.map → controller-ce13f0a2.js.map} +1 -1
  16. package/dist/cjs/{controller-f59ad664.js → controller-d0743a95.js} +1 -1
  17. package/dist/cjs/{controller-f59ad664.js.map → controller-d0743a95.js.map} +1 -1
  18. package/dist/cjs/{controller-0779bf0b.js → controller-dbbddbe7.js} +1 -1
  19. package/dist/cjs/{controller-0779bf0b.js.map → controller-dbbddbe7.js.map} +1 -1
  20. package/dist/cjs/{controller-icon-a83b2341.js → controller-icon-b87565c4.js} +1 -1
  21. package/dist/cjs/{controller-icon-a83b2341.js.map → controller-icon-b87565c4.js.map} +1 -1
  22. package/dist/cjs/{devtools-5d189f65.js → devtools-a9a95b0a.js} +1 -1
  23. package/dist/cjs/{devtools-5d189f65.js.map → devtools-a9a95b0a.js.map} +1 -1
  24. package/dist/cjs/i18n-5d946612.js +4 -0
  25. package/dist/cjs/i18n-5d946612.js.map +1 -0
  26. package/dist/cjs/icon-ccf4ad42.js +4 -0
  27. package/dist/cjs/icon-ccf4ad42.js.map +1 -0
  28. package/dist/cjs/index-29c5d3c6.js.map +1 -1
  29. package/dist/cjs/index-ecda65e0.js +4 -0
  30. package/dist/cjs/{i18n-f0da17e4.js.map → index-ecda65e0.js.map} +1 -1
  31. package/dist/cjs/index.cjs.js +1 -1
  32. package/dist/cjs/index.cjs.js.map +1 -1
  33. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  34. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  35. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  36. package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
  37. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  38. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  39. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  40. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  41. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  42. package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +1 -1
  43. package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
  44. package/dist/cjs/kol-button-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  46. package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  49. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  50. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  51. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  52. package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
  53. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  54. package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
  55. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  57. package/dist/cjs/kol-heading-wc_2.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-heading-wc_2.cjs.entry.js.map +1 -1
  59. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-heading.cjs.entry.js.map +1 -1
  61. package/dist/cjs/kol-icon-icofont.cjs.entry.js.map +1 -1
  62. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  63. package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
  64. package/dist/cjs/kol-image.cjs.entry.js +4 -0
  65. package/dist/cjs/kol-image.cjs.entry.js.map +1 -0
  66. package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
  67. package/dist/cjs/kol-indented-text.cjs.entry.js.map +1 -1
  68. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
  70. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
  72. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  73. package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
  74. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  75. package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
  76. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  77. package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
  78. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
  80. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
  82. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  83. package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
  84. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
  86. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  87. package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
  88. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  89. package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
  90. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  91. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  92. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  93. package/dist/cjs/kol-link-group.cjs.entry.js.map +1 -1
  94. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  95. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  96. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  97. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  98. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  99. package/dist/cjs/kol-logo.cjs.entry.js.map +1 -1
  100. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  101. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  102. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  103. package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
  104. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  105. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  106. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  107. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  108. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  109. package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
  110. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  111. package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
  112. package/dist/cjs/kol-span.cjs.entry.js +1 -1
  113. package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
  114. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  115. package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
  116. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  117. package/dist/cjs/kol-symbol.cjs.entry.js.map +1 -1
  118. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  119. package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
  120. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  121. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  122. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  123. package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
  124. package/dist/cjs/kol-toast.cjs.entry.js +1 -1
  125. package/dist/cjs/kol-toast.cjs.entry.js.map +1 -1
  126. package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
  127. package/dist/cjs/kol-tooltip.cjs.entry.js.map +1 -1
  128. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  129. package/dist/cjs/kol-version.cjs.entry.js.map +1 -1
  130. package/dist/cjs/kolibri.cjs.js +1 -1
  131. package/dist/cjs/kolibri.cjs.js.map +1 -1
  132. package/dist/cjs/label-ce9fe285.js +4 -0
  133. package/dist/cjs/{label-f0e269fe.js.map → label-ce9fe285.js.map} +1 -1
  134. package/dist/cjs/loader.cjs.js +1 -1
  135. package/dist/cjs/loader.cjs.js.map +1 -1
  136. package/dist/cjs/prop.validators-69d5cf89.js +4 -0
  137. package/dist/cjs/prop.validators-69d5cf89.js.map +1 -0
  138. package/dist/cjs/{tab-index-4fa42b34.js → tab-index-1d448ede.js} +1 -1
  139. package/dist/cjs/{tab-index-4fa42b34.js.map → tab-index-1d448ede.js.map} +1 -1
  140. package/dist/cjs/{validation-c45379a1.js → validation-1e8663e2.js} +1 -1
  141. package/dist/cjs/{validation-c45379a1.js.map → validation-1e8663e2.js.map} +1 -1
  142. package/dist/cjs/{validation-1d6b9712.js → validation-2b3c81d9.js} +1 -1
  143. package/dist/cjs/{validation-1d6b9712.js.map → validation-2b3c81d9.js.map} +1 -1
  144. package/dist/components/component.js +1 -1
  145. package/dist/components/component.js.map +1 -1
  146. package/dist/components/component10.js +1 -1
  147. package/dist/components/component10.js.map +1 -1
  148. package/dist/components/component11.js +1 -1
  149. package/dist/components/component11.js.map +1 -1
  150. package/dist/components/component12.js +1 -1
  151. package/dist/components/component12.js.map +1 -1
  152. package/dist/components/component13.js +1 -1
  153. package/dist/components/component13.js.map +1 -1
  154. package/dist/components/component2.js +1 -1
  155. package/dist/components/component2.js.map +1 -1
  156. package/dist/components/component3.js +1 -1
  157. package/dist/components/component3.js.map +1 -1
  158. package/dist/components/component4.js +1 -1
  159. package/dist/components/component4.js.map +1 -1
  160. package/dist/components/component5.js +1 -1
  161. package/dist/components/component5.js.map +1 -1
  162. package/dist/components/component6.js +1 -1
  163. package/dist/components/component6.js.map +1 -1
  164. package/dist/components/component8.js +1 -1
  165. package/dist/components/component8.js.map +1 -1
  166. package/dist/components/controller2.js +1 -1
  167. package/dist/components/controller3.js +1 -1
  168. package/dist/components/i18n.js.map +1 -1
  169. package/dist/components/index.js +1 -1
  170. package/dist/components/index.js.map +1 -1
  171. package/dist/components/kol-abbr.js +1 -1
  172. package/dist/components/kol-abbr.js.map +1 -1
  173. package/dist/components/kol-accordion.js +1 -1
  174. package/dist/components/kol-accordion.js.map +1 -1
  175. package/dist/components/kol-breadcrumb.js +1 -1
  176. package/dist/components/kol-breadcrumb.js.map +1 -1
  177. package/dist/components/kol-button-group.js +1 -1
  178. package/dist/components/kol-button-group.js.map +1 -1
  179. package/dist/components/kol-button-link.js +1 -1
  180. package/dist/components/kol-button-link.js.map +1 -1
  181. package/dist/components/kol-card.js +1 -1
  182. package/dist/components/kol-card.js.map +1 -1
  183. package/dist/components/kol-details.js +1 -1
  184. package/dist/components/kol-details.js.map +1 -1
  185. package/dist/components/kol-heading.js +1 -1
  186. package/dist/components/kol-heading.js.map +1 -1
  187. package/dist/components/kol-icon-icofont.js.map +1 -1
  188. package/dist/components/kol-image.d.ts +11 -0
  189. package/dist/components/kol-image.js +4 -0
  190. package/dist/components/kol-image.js.map +1 -0
  191. package/dist/components/kol-input-adapter-leanup.js +1 -1
  192. package/dist/components/kol-input-checkbox.js +1 -1
  193. package/dist/components/kol-input-checkbox.js.map +1 -1
  194. package/dist/components/kol-input-color.js +1 -1
  195. package/dist/components/kol-input-color.js.map +1 -1
  196. package/dist/components/kol-input-date.js +1 -1
  197. package/dist/components/kol-input-date.js.map +1 -1
  198. package/dist/components/kol-input-email.js +1 -1
  199. package/dist/components/kol-input-email.js.map +1 -1
  200. package/dist/components/kol-input-file.js +1 -1
  201. package/dist/components/kol-input-file.js.map +1 -1
  202. package/dist/components/kol-input-password.js +1 -1
  203. package/dist/components/kol-input-password.js.map +1 -1
  204. package/dist/components/kol-input-radio-group.js +1 -1
  205. package/dist/components/kol-input-range.js +1 -1
  206. package/dist/components/kol-input-range.js.map +1 -1
  207. package/dist/components/kol-input-text.js +1 -1
  208. package/dist/components/kol-input-text.js.map +1 -1
  209. package/dist/components/kol-kolibri.js +1 -1
  210. package/dist/components/kol-kolibri.js.map +1 -1
  211. package/dist/components/kol-link-button.js +1 -1
  212. package/dist/components/kol-link-button.js.map +1 -1
  213. package/dist/components/kol-link-group.js +1 -1
  214. package/dist/components/kol-link-group.js.map +1 -1
  215. package/dist/components/kol-logo.js +1 -1
  216. package/dist/components/kol-logo.js.map +1 -1
  217. package/dist/components/kol-modal.js +1 -1
  218. package/dist/components/kol-modal.js.map +1 -1
  219. package/dist/components/kol-nav.js +1 -1
  220. package/dist/components/kol-nav.js.map +1 -1
  221. package/dist/components/kol-progress.js +1 -1
  222. package/dist/components/kol-progress.js.map +1 -1
  223. package/dist/components/kol-skip-nav.js +1 -1
  224. package/dist/components/kol-skip-nav.js.map +1 -1
  225. package/dist/components/kol-span.js +1 -1
  226. package/dist/components/kol-span.js.map +1 -1
  227. package/dist/components/kol-spin.js +1 -1
  228. package/dist/components/kol-spin.js.map +1 -1
  229. package/dist/components/kol-symbol.js +1 -1
  230. package/dist/components/kol-symbol.js.map +1 -1
  231. package/dist/components/kol-table.js +1 -1
  232. package/dist/components/kol-table.js.map +1 -1
  233. package/dist/components/kol-tabs.js +1 -1
  234. package/dist/components/kol-tabs.js.map +1 -1
  235. package/dist/components/kol-textarea.js +1 -1
  236. package/dist/components/kol-textarea.js.map +1 -1
  237. package/dist/components/kol-toast.js +1 -1
  238. package/dist/components/kol-toast.js.map +1 -1
  239. package/dist/components/kol-version.js +1 -1
  240. package/dist/components/kol-version.js.map +1 -1
  241. package/dist/components/prop.validators.js +1 -1
  242. package/dist/components/prop.validators.js.map +1 -1
  243. package/dist/components/shadow.js +1 -1
  244. package/dist/components/shadow.js.map +1 -1
  245. package/dist/components/shadow2.js +1 -1
  246. package/dist/components/shadow2.js.map +1 -1
  247. package/dist/components/validation.js +1 -1
  248. package/dist/esm/app-globals-81f5e91d.js +4 -0
  249. package/dist/esm/app-globals-81f5e91d.js.map +1 -0
  250. package/dist/esm/{button-link-b0ebacde.js → button-link-3d1888e3.js} +1 -1
  251. package/dist/esm/button-link-3d1888e3.js.map +1 -0
  252. package/dist/esm/{controller-78f90d62.js → controller-04bee517.js} +1 -1
  253. package/dist/esm/{controller-78f90d62.js.map → controller-04bee517.js.map} +1 -1
  254. package/dist/esm/{controller-e3c820af.js → controller-32fdeebb.js} +1 -1
  255. package/dist/esm/{controller-e3c820af.js.map → controller-32fdeebb.js.map} +1 -1
  256. package/dist/esm/{controller-8f60f862.js → controller-5bd06546.js} +1 -1
  257. package/dist/esm/{controller-8f60f862.js.map → controller-5bd06546.js.map} +1 -1
  258. package/dist/esm/{controller-967a4af4.js → controller-944c3e03.js} +1 -1
  259. package/dist/esm/{controller-967a4af4.js.map → controller-944c3e03.js.map} +1 -1
  260. package/dist/esm/{controller-7cf89ed4.js → controller-9926eaee.js} +1 -1
  261. package/dist/esm/{controller-7cf89ed4.js.map → controller-9926eaee.js.map} +1 -1
  262. package/dist/esm/{controller-3489e5a5.js → controller-ea28fcf8.js} +1 -1
  263. package/dist/esm/{controller-3489e5a5.js.map → controller-ea28fcf8.js.map} +1 -1
  264. package/dist/esm/{controller-icon-4875e055.js → controller-icon-2a9f5c13.js} +1 -1
  265. package/dist/esm/{controller-icon-4875e055.js.map → controller-icon-2a9f5c13.js.map} +1 -1
  266. package/dist/esm/{devtools-86cb24d9.js → devtools-640ace8d.js} +1 -1
  267. package/dist/esm/{devtools-86cb24d9.js.map → devtools-640ace8d.js.map} +1 -1
  268. package/dist/esm/i18n-8e14d822.js +4 -0
  269. package/dist/esm/i18n-8e14d822.js.map +1 -0
  270. package/dist/esm/icon-cab2d129.js +4 -0
  271. package/dist/esm/icon-cab2d129.js.map +1 -0
  272. package/dist/esm/index-4f2a12cc.js +4 -0
  273. package/dist/esm/{i18n-67083aee.js.map → index-4f2a12cc.js.map} +1 -1
  274. package/dist/esm/index-50adf9a0.js.map +1 -1
  275. package/dist/esm/index.js +1 -1
  276. package/dist/esm/index.js.map +1 -1
  277. package/dist/esm/kol-abbr.entry.js +1 -1
  278. package/dist/esm/kol-abbr.entry.js.map +1 -1
  279. package/dist/esm/kol-accordion.entry.js +1 -1
  280. package/dist/esm/kol-accordion.entry.js.map +1 -1
  281. package/dist/esm/kol-alert.entry.js +1 -1
  282. package/dist/esm/kol-alert.entry.js.map +1 -1
  283. package/dist/esm/kol-badge.entry.js +1 -1
  284. package/dist/esm/kol-badge.entry.js.map +1 -1
  285. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  286. package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
  287. package/dist/esm/kol-button-group.entry.js +1 -1
  288. package/dist/esm/kol-button-group.entry.js.map +1 -1
  289. package/dist/esm/kol-button-link.entry.js +1 -1
  290. package/dist/esm/kol-button-link.entry.js.map +1 -1
  291. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  292. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  293. package/dist/esm/kol-button.entry.js +1 -1
  294. package/dist/esm/kol-button.entry.js.map +1 -1
  295. package/dist/esm/kol-card.entry.js +1 -1
  296. package/dist/esm/kol-card.entry.js.map +1 -1
  297. package/dist/esm/kol-details.entry.js +1 -1
  298. package/dist/esm/kol-details.entry.js.map +1 -1
  299. package/dist/esm/kol-form.entry.js +1 -1
  300. package/dist/esm/kol-form.entry.js.map +1 -1
  301. package/dist/esm/kol-heading-wc_2.entry.js +1 -1
  302. package/dist/esm/kol-heading-wc_2.entry.js.map +1 -1
  303. package/dist/esm/kol-heading.entry.js +1 -1
  304. package/dist/esm/kol-heading.entry.js.map +1 -1
  305. package/dist/esm/kol-icon-icofont.entry.js.map +1 -1
  306. package/dist/esm/kol-icon.entry.js +1 -1
  307. package/dist/esm/kol-icon.entry.js.map +1 -1
  308. package/dist/esm/kol-image.entry.js +4 -0
  309. package/dist/esm/kol-image.entry.js.map +1 -0
  310. package/dist/esm/kol-indented-text.entry.js +1 -1
  311. package/dist/esm/kol-indented-text.entry.js.map +1 -1
  312. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  313. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  314. package/dist/esm/kol-input-color.entry.js +1 -1
  315. package/dist/esm/kol-input-color.entry.js.map +1 -1
  316. package/dist/esm/kol-input-date.entry.js +1 -1
  317. package/dist/esm/kol-input-date.entry.js.map +1 -1
  318. package/dist/esm/kol-input-email.entry.js +1 -1
  319. package/dist/esm/kol-input-email.entry.js.map +1 -1
  320. package/dist/esm/kol-input-file.entry.js +1 -1
  321. package/dist/esm/kol-input-file.entry.js.map +1 -1
  322. package/dist/esm/kol-input-number.entry.js +1 -1
  323. package/dist/esm/kol-input-number.entry.js.map +1 -1
  324. package/dist/esm/kol-input-password.entry.js +1 -1
  325. package/dist/esm/kol-input-password.entry.js.map +1 -1
  326. package/dist/esm/kol-input-radio.entry.js +1 -1
  327. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  328. package/dist/esm/kol-input-range.entry.js +1 -1
  329. package/dist/esm/kol-input-range.entry.js.map +1 -1
  330. package/dist/esm/kol-input-text.entry.js +1 -1
  331. package/dist/esm/kol-input-text.entry.js.map +1 -1
  332. package/dist/esm/kol-kolibri.entry.js +1 -1
  333. package/dist/esm/kol-kolibri.entry.js.map +1 -1
  334. package/dist/esm/kol-link-button.entry.js +1 -1
  335. package/dist/esm/kol-link-button.entry.js.map +1 -1
  336. package/dist/esm/kol-link-group.entry.js +1 -1
  337. package/dist/esm/kol-link-group.entry.js.map +1 -1
  338. package/dist/esm/kol-link-wc.entry.js +1 -1
  339. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  340. package/dist/esm/kol-link.entry.js +1 -1
  341. package/dist/esm/kol-link.entry.js.map +1 -1
  342. package/dist/esm/kol-logo.entry.js +1 -1
  343. package/dist/esm/kol-logo.entry.js.map +1 -1
  344. package/dist/esm/kol-modal.entry.js +1 -1
  345. package/dist/esm/kol-modal.entry.js.map +1 -1
  346. package/dist/esm/kol-nav.entry.js +1 -1
  347. package/dist/esm/kol-nav.entry.js.map +1 -1
  348. package/dist/esm/kol-pagination.entry.js +1 -1
  349. package/dist/esm/kol-pagination.entry.js.map +1 -1
  350. package/dist/esm/kol-progress.entry.js +1 -1
  351. package/dist/esm/kol-progress.entry.js.map +1 -1
  352. package/dist/esm/kol-select.entry.js +1 -1
  353. package/dist/esm/kol-select.entry.js.map +1 -1
  354. package/dist/esm/kol-skip-nav.entry.js +1 -1
  355. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  356. package/dist/esm/kol-span.entry.js +1 -1
  357. package/dist/esm/kol-span.entry.js.map +1 -1
  358. package/dist/esm/kol-spin.entry.js +1 -1
  359. package/dist/esm/kol-spin.entry.js.map +1 -1
  360. package/dist/esm/kol-symbol.entry.js +1 -1
  361. package/dist/esm/kol-symbol.entry.js.map +1 -1
  362. package/dist/esm/kol-table.entry.js +1 -1
  363. package/dist/esm/kol-table.entry.js.map +1 -1
  364. package/dist/esm/kol-tabs.entry.js +1 -1
  365. package/dist/esm/kol-tabs.entry.js.map +1 -1
  366. package/dist/esm/kol-textarea.entry.js +1 -1
  367. package/dist/esm/kol-textarea.entry.js.map +1 -1
  368. package/dist/esm/kol-toast.entry.js +1 -1
  369. package/dist/esm/kol-toast.entry.js.map +1 -1
  370. package/dist/esm/kol-tooltip.entry.js +1 -1
  371. package/dist/esm/kol-tooltip.entry.js.map +1 -1
  372. package/dist/esm/kol-version.entry.js +1 -1
  373. package/dist/esm/kol-version.entry.js.map +1 -1
  374. package/dist/esm/kolibri.js +1 -1
  375. package/dist/esm/kolibri.js.map +1 -1
  376. package/dist/esm/label-ea9f2a1a.js +4 -0
  377. package/dist/esm/{label-467917df.js.map → label-ea9f2a1a.js.map} +1 -1
  378. package/dist/esm/loader.js +1 -1
  379. package/dist/esm/loader.js.map +1 -1
  380. package/dist/esm/prop.validators-769a843a.js +4 -0
  381. package/dist/esm/prop.validators-769a843a.js.map +1 -0
  382. package/dist/esm/{tab-index-068270b7.js → tab-index-22c62334.js} +1 -1
  383. package/dist/esm/{tab-index-068270b7.js.map → tab-index-22c62334.js.map} +1 -1
  384. package/dist/esm/validation-d9821b54.js +4 -0
  385. package/dist/esm/{validation-fdaf7554.js.map → validation-d9821b54.js.map} +1 -1
  386. package/dist/esm/{validation-3ea5cbb3.js → validation-f13f1eed.js} +1 -1
  387. package/dist/esm/{validation-3ea5cbb3.js.map → validation-f13f1eed.js.map} +1 -1
  388. package/dist/kolibri/app-globals-81f5e91d.js +4 -0
  389. package/dist/kolibri/app-globals-81f5e91d.js.map +1 -0
  390. package/dist/kolibri/assets/bpa-icons/bpa-icons.eot +0 -0
  391. package/dist/kolibri/assets/bpa-icons/bpa-icons.json +1115 -0
  392. package/dist/kolibri/assets/bpa-icons/bpa-icons.svg +432 -0
  393. package/dist/kolibri/assets/bpa-icons/bpa-icons.symbol.svg +1449 -0
  394. package/dist/kolibri/assets/bpa-icons/bpa-icons.ttf +0 -0
  395. package/dist/kolibri/assets/bpa-icons/bpa-icons.woff +0 -0
  396. package/dist/kolibri/assets/bpa-icons/bpa-icons.woff2 +0 -0
  397. package/dist/kolibri/assets/bpa-icons/style.css +159 -0
  398. package/dist/kolibri/assets/bpa-icons/style.less +157 -0
  399. package/dist/kolibri/assets/bpa-icons/style.module.less +160 -0
  400. package/dist/kolibri/assets/bpa-icons/style.scss +299 -0
  401. package/dist/kolibri/assets/bpa-icons/style.styl +157 -0
  402. package/dist/kolibri/assets/codicons/LICENSE +395 -0
  403. package/dist/kolibri/assets/codicons/LICENSE-CODE +21 -0
  404. package/dist/kolibri/assets/codicons/codicon.css +19 -1
  405. package/dist/kolibri/assets/codicons/codicon.csv +14 -1
  406. package/dist/kolibri/assets/codicons/codicon.html +112 -8
  407. package/dist/kolibri/assets/codicons/codicon.svg +1 -1
  408. package/dist/kolibri/assets/codicons/codicon.ttf +0 -0
  409. package/dist/kolibri/assets/images/abgrenzung.jpg +0 -0
  410. package/dist/kolibri/button-link-3d1888e3.js +4 -0
  411. package/dist/kolibri/button-link-3d1888e3.js.map +1 -0
  412. package/dist/kolibri/{controller-78f90d62.js → controller-04bee517.js} +1 -1
  413. package/dist/kolibri/{controller-e3c820af.js → controller-32fdeebb.js} +1 -1
  414. package/dist/kolibri/controller-5bd06546.js +4 -0
  415. package/dist/kolibri/{controller-967a4af4.js → controller-944c3e03.js} +1 -1
  416. package/dist/kolibri/controller-9926eaee.js +4 -0
  417. package/dist/kolibri/{controller-3489e5a5.js → controller-ea28fcf8.js} +1 -1
  418. package/dist/kolibri/{controller-icon-4875e055.js → controller-icon-2a9f5c13.js} +1 -1
  419. package/dist/kolibri/{devtools-86cb24d9.js → devtools-640ace8d.js} +1 -1
  420. package/dist/kolibri/i18n-8e14d822.js +4 -0
  421. package/dist/kolibri/i18n-8e14d822.js.map +1 -0
  422. package/dist/kolibri/icon-cab2d129.js +4 -0
  423. package/dist/kolibri/icon-cab2d129.js.map +1 -0
  424. package/dist/kolibri/index-4f2a12cc.js +4 -0
  425. package/dist/kolibri/index-4f2a12cc.js.map +1 -0
  426. package/dist/kolibri/index-50adf9a0.js.map +1 -1
  427. package/dist/kolibri/index.esm.js +1 -1
  428. package/dist/kolibri/index.esm.js.map +1 -1
  429. package/dist/kolibri/kol-abbr.entry.js +1 -1
  430. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  431. package/dist/kolibri/kol-accordion.entry.js +1 -1
  432. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  433. package/dist/kolibri/kol-alert.entry.js +1 -1
  434. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  435. package/dist/kolibri/kol-badge.entry.js +1 -1
  436. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  437. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  438. package/dist/kolibri/kol-breadcrumb.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-icofont.entry.js.map +1 -1
  458. package/dist/kolibri/kol-icon.entry.js +1 -1
  459. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  460. package/dist/kolibri/kol-image.entry.js +4 -0
  461. package/dist/kolibri/kol-image.entry.js.map +1 -0
  462. package/dist/kolibri/kol-indented-text.entry.js +1 -1
  463. package/dist/kolibri/kol-indented-text.entry.js.map +1 -1
  464. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  465. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  466. package/dist/kolibri/kol-input-color.entry.js +1 -1
  467. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  468. package/dist/kolibri/kol-input-date.entry.js +1 -1
  469. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  470. package/dist/kolibri/kol-input-email.entry.js +1 -1
  471. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  472. package/dist/kolibri/kol-input-file.entry.js +1 -1
  473. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  474. package/dist/kolibri/kol-input-number.entry.js +1 -1
  475. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  476. package/dist/kolibri/kol-input-password.entry.js +1 -1
  477. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  478. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  479. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  480. package/dist/kolibri/kol-input-range.entry.js +1 -1
  481. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  482. package/dist/kolibri/kol-input-text.entry.js +1 -1
  483. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  484. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  485. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  486. package/dist/kolibri/kol-link-button.entry.js +1 -1
  487. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  488. package/dist/kolibri/kol-link-group.entry.js +1 -1
  489. package/dist/kolibri/kol-link-group.entry.js.map +1 -1
  490. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  491. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  492. package/dist/kolibri/kol-link.entry.js +1 -1
  493. package/dist/kolibri/kol-link.entry.js.map +1 -1
  494. package/dist/kolibri/kol-logo.entry.js +1 -1
  495. package/dist/kolibri/kol-logo.entry.js.map +1 -1
  496. package/dist/kolibri/kol-modal.entry.js +1 -1
  497. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  498. package/dist/kolibri/kol-nav.entry.js +1 -1
  499. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  500. package/dist/kolibri/kol-pagination.entry.js +1 -1
  501. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  502. package/dist/kolibri/kol-progress.entry.js +1 -1
  503. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  504. package/dist/kolibri/kol-select.entry.js +1 -1
  505. package/dist/kolibri/kol-select.entry.js.map +1 -1
  506. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  507. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  508. package/dist/kolibri/kol-span.entry.js +1 -1
  509. package/dist/kolibri/kol-span.entry.js.map +1 -1
  510. package/dist/kolibri/kol-spin.entry.js +1 -1
  511. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  512. package/dist/kolibri/kol-symbol.entry.js +1 -1
  513. package/dist/kolibri/kol-symbol.entry.js.map +1 -1
  514. package/dist/kolibri/kol-table.entry.js +1 -1
  515. package/dist/kolibri/kol-table.entry.js.map +1 -1
  516. package/dist/kolibri/kol-tabs.entry.js +1 -1
  517. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  518. package/dist/kolibri/kol-textarea.entry.js +1 -1
  519. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  520. package/dist/kolibri/kol-toast.entry.js +1 -1
  521. package/dist/kolibri/kol-toast.entry.js.map +1 -1
  522. package/dist/kolibri/kol-tooltip.entry.js +1 -1
  523. package/dist/kolibri/kol-tooltip.entry.js.map +1 -1
  524. package/dist/kolibri/kol-version.entry.js +1 -1
  525. package/dist/kolibri/kol-version.entry.js.map +1 -1
  526. package/dist/kolibri/kolibri.esm.js +1 -1
  527. package/dist/kolibri/kolibri.esm.js.map +1 -1
  528. package/dist/kolibri/label-ea9f2a1a.js +4 -0
  529. package/dist/kolibri/label-ea9f2a1a.js.map +1 -0
  530. package/dist/kolibri/prop.validators-769a843a.js +4 -0
  531. package/dist/kolibri/prop.validators-769a843a.js.map +1 -0
  532. package/dist/kolibri/tab-index-22c62334.js +4 -0
  533. package/dist/kolibri/{tab-index-068270b7.js.map → tab-index-22c62334.js.map} +1 -1
  534. package/dist/kolibri/{validation-fdaf7554.js → validation-d9821b54.js} +1 -1
  535. package/dist/kolibri/validation-f13f1eed.js +4 -0
  536. package/dist/types/components/accordion/component.d.ts +0 -3
  537. package/dist/types/components/button/test/html.mock.d.ts +7 -0
  538. package/dist/types/components/heading/component.d.ts +15 -9
  539. package/dist/types/components/heading/shadow.d.ts +2 -2
  540. package/dist/types/components/icon-icofont/component.d.ts +0 -1
  541. package/dist/types/components/image/shadow.d.ts +18 -0
  542. package/dist/types/components/image/types.d.ts +21 -0
  543. package/dist/types/components/link-group/component.d.ts +0 -1
  544. package/dist/types/components/pagination/component.d.ts +4 -4
  545. package/dist/types/components.d.ts +67 -12
  546. package/dist/types/core/index.d.ts +0 -1
  547. package/dist/types/global/script.d.ts +1 -1
  548. package/dist/types/schema/index.d.ts +1 -1
  549. package/dist/types/types/button-link.d.ts +14 -12
  550. package/dist/types/utils/prop.validators.d.ts +1 -1
  551. package/dist/types/utils/validators/loading.d.ts +3 -0
  552. package/doc/abbr.md +2 -0
  553. package/doc/accordion.md +10 -2
  554. package/doc/alert.md +2 -0
  555. package/doc/badge.md +3 -1
  556. package/doc/breadcrumb.md +2 -0
  557. package/doc/button-link.md +3 -1
  558. package/doc/button.md +8 -6
  559. package/doc/card.md +2 -0
  560. package/doc/details.md +2 -0
  561. package/doc/heading.md +5 -5
  562. package/doc/icon.md +2 -4
  563. package/doc/image.md +60 -0
  564. package/doc/indented-text.md +2 -0
  565. package/doc/input-checkbox.md +2 -0
  566. package/doc/input-color.md +3 -1
  567. package/doc/input-date.md +3 -1
  568. package/doc/input-email.md +3 -1
  569. package/doc/input-file.md +3 -1
  570. package/doc/input-number.md +3 -1
  571. package/doc/input-password.md +3 -1
  572. package/doc/input-radio.md +2 -0
  573. package/doc/input-range.md +2 -0
  574. package/doc/input-text.md +3 -1
  575. package/doc/kolibri.md +2 -0
  576. package/doc/link-button.md +2 -0
  577. package/doc/link-group.md +2 -0
  578. package/doc/link.md +4 -2
  579. package/doc/logo.md +3 -1
  580. package/doc/modal.md +2 -0
  581. package/doc/nav.md +2 -0
  582. package/doc/pagination.md +2 -0
  583. package/doc/progress.md +2 -0
  584. package/doc/select.md +2 -0
  585. package/doc/skip-nav.md +2 -0
  586. package/doc/span.md +4 -2
  587. package/doc/spin.md +2 -0
  588. package/doc/table.md +2 -0
  589. package/doc/tabs.md +2 -0
  590. package/doc/textarea.md +2 -0
  591. package/doc/toast.md +2 -0
  592. package/doc/tooltip.md +2 -0
  593. package/doc/version.md +2 -0
  594. package/jest-test-results.json +1 -1
  595. package/package.json +1 -1
  596. package/vscode-custom-data.json +43 -6
  597. package/dist/cjs/app-globals-161cafee.js +0 -4
  598. package/dist/cjs/app-globals-161cafee.js.map +0 -1
  599. package/dist/cjs/button-link-d6b0f982.js.map +0 -1
  600. package/dist/cjs/i18n-f0da17e4.js +0 -4
  601. package/dist/cjs/icon-a4cf95a3.js +0 -4
  602. package/dist/cjs/icon-a4cf95a3.js.map +0 -1
  603. package/dist/cjs/label-f0e269fe.js +0 -4
  604. package/dist/cjs/prop.validators-ffb87630.js +0 -4
  605. package/dist/cjs/prop.validators-ffb87630.js.map +0 -1
  606. package/dist/esm/app-globals-841cf59f.js +0 -4
  607. package/dist/esm/app-globals-841cf59f.js.map +0 -1
  608. package/dist/esm/button-link-b0ebacde.js.map +0 -1
  609. package/dist/esm/i18n-67083aee.js +0 -4
  610. package/dist/esm/icon-2c0634d7.js +0 -4
  611. package/dist/esm/icon-2c0634d7.js.map +0 -1
  612. package/dist/esm/label-467917df.js +0 -4
  613. package/dist/esm/prop.validators-8365f685.js +0 -4
  614. package/dist/esm/prop.validators-8365f685.js.map +0 -1
  615. package/dist/esm/validation-fdaf7554.js +0 -4
  616. package/dist/kolibri/app-globals-841cf59f.js +0 -4
  617. package/dist/kolibri/app-globals-841cf59f.js.map +0 -1
  618. package/dist/kolibri/button-link-b0ebacde.js +0 -4
  619. package/dist/kolibri/button-link-b0ebacde.js.map +0 -1
  620. package/dist/kolibri/controller-7cf89ed4.js +0 -4
  621. package/dist/kolibri/controller-8f60f862.js +0 -4
  622. package/dist/kolibri/i18n-67083aee.js +0 -4
  623. package/dist/kolibri/i18n-67083aee.js.map +0 -1
  624. package/dist/kolibri/icon-2c0634d7.js +0 -4
  625. package/dist/kolibri/icon-2c0634d7.js.map +0 -1
  626. package/dist/kolibri/label-467917df.js +0 -4
  627. package/dist/kolibri/label-467917df.js.map +0 -1
  628. package/dist/kolibri/prop.validators-8365f685.js +0 -4
  629. package/dist/kolibri/prop.validators-8365f685.js.map +0 -1
  630. package/dist/kolibri/tab-index-068270b7.js +0 -4
  631. package/dist/kolibri/validation-3ea5cbb3.js +0 -4
  632. package/dist/types/components/icon-icofont/test/html.mock.d.ts +0 -2
  633. package/dist/types/components/link-group/test/html.mock.d.ts +0 -2
  634. /package/dist/kolibri/{controller-78f90d62.js.map → controller-04bee517.js.map} +0 -0
  635. /package/dist/kolibri/{controller-e3c820af.js.map → controller-32fdeebb.js.map} +0 -0
  636. /package/dist/kolibri/{controller-8f60f862.js.map → controller-5bd06546.js.map} +0 -0
  637. /package/dist/kolibri/{controller-967a4af4.js.map → controller-944c3e03.js.map} +0 -0
  638. /package/dist/kolibri/{controller-7cf89ed4.js.map → controller-9926eaee.js.map} +0 -0
  639. /package/dist/kolibri/{controller-3489e5a5.js.map → controller-ea28fcf8.js.map} +0 -0
  640. /package/dist/kolibri/{controller-icon-4875e055.js.map → controller-icon-2a9f5c13.js.map} +0 -0
  641. /package/dist/kolibri/{devtools-86cb24d9.js.map → devtools-640ace8d.js.map} +0 -0
  642. /package/dist/kolibri/{validation-fdaf7554.js.map → validation-d9821b54.js.map} +0 -0
  643. /package/dist/kolibri/{validation-3ea5cbb3.js.map → validation-f13f1eed.js.map} +0 -0
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- export{r as register,t as translations}from"./i18n-67083aee.js";export{c as BUNDESAEMTER,e as BUNDESANSTALTEN,a as BUNDESMINISTERIEN,f as BUND_LOGO_TEXT_MAP,b as Bundesamt,d as Bundesanstalt,B as Bundesministerium}from"./bund-fe1f3789.js";import{T as o}from"./index-676dbf61.js";export{T as ToasterService,c as configKoliBri}from"./dev.utils-05f4e663.js";export{K as KoliBriDevHelper}from"./prop.validators-8365f685.js";import"./a11y.tipps-5cdbd5e2.js";import"./reuse-56bb5a4b.js";var i,n;!function(e){e[e.error=0]="error",e[e.warning=1]="warning",e[e.info=2]="info",e[e.success=3]="success",e[e.message=4]="message",e[e.close=5]="close",e[e["form-description"]=6]="form-description",e[e.of=7]="of",e[e.characters=8]="characters",e[e.new=9]="new",e[e["no-entries"]=10]="no-entries",e[e["change-order"]=11]="change-order",e[e["action-running"]=12]="action-running",e[e["action-done"]=13]="action-done",e[e["page-first"]=14]="page-first",e[e["page-back"]=15]="page-back",e[e["page-next"]=16]="page-next",e[e["page-last"]=17]="page-last",e[e["entries-per-site"]=18]="entries-per-site",e[e["page-current"]=19]="page-current",e[e["page-selected"]=20]="page-selected",e[e["page-per-site"]=21]="page-per-site",e[e["nav-maximize"]=22]="nav-maximize",e[e["nav-minimize"]=23]="nav-minimize",e[e["logo-description"]=24]="logo-description",e[e["open-link-in-tab"]=25]="open-link-in-tab",e[e["kolibri-logo"]=26]="kolibri-logo"}(i||(i={})),function(e){e[e.abbr=0]="abbr",e[e.accordion=1]="accordion",e[e["accordion-group"]=2]="accordion-group",e[e.alert=3]="alert",e[e.avatar=4]="avatar",e[e.badge=5]="badge",e[e.breadcrumb=6]="breadcrumb",e[e.button=7]="button",e[e["button-group"]=8]="button-group",e[e["button-link"]=9]="button-link",e[e.card=10]="card",e[e.details=11]="details",e[e.dialog=12]="dialog",e[e.dropdown=13]="dropdown",e[e.form=14]="form",e[e.heading=15]="heading",e[e.icon=16]="icon",e[e.image=17]="image",e[e["indented-text"]=18]="indented-text",e[e["input-checkbox"]=19]="input-checkbox",e[e["input-color"]=20]="input-color",e[e["input-date"]=21]="input-date",e[e["input-file"]=22]="input-file",e[e["input-email"]=23]="input-email",e[e["input-number"]=24]="input-number",e[e["input-password"]=25]="input-password",e[e["input-radio"]=26]="input-radio",e[e["input-range"]=27]="input-range",e[e["input-text"]=28]="input-text",e[e.link=29]="link",e[e["link-button"]=30]="link-button",e[e["link-group"]=31]="link-group",e[e.modal=32]="modal",e[e.nav=33]="nav",e[e.pagination=34]="pagination",e[e.popover=35]="popover",e[e.progress=36]="progress",e[e.select=37]="select",e[e.separator=38]="separator",e[e["skip-nav"]=39]="skip-nav",e[e.spin=40]="spin",e[e.symbol=41]="symbol",e[e.table=42]="table",e[e.tabs=43]="tabs",e[e.textarea=44]="textarea",e[e.toast=45]="toast",e[e.toolbar=46]="toolbar",e[e.tooltip=47]="tooltip"}(n||(n={}));const s=new o("kol",i,n);export{s as KoliBri};
4
+ export{r as register}from"./index-4f2a12cc.js";export{c as BUNDESAEMTER,e as BUNDESANSTALTEN,a as BUNDESMINISTERIEN,f as BUND_LOGO_TEXT_MAP,b as Bundesamt,d as Bundesanstalt,B as Bundesministerium}from"./bund-fe1f3789.js";import{T as o}from"./index-676dbf61.js";export{T as ToasterService,c as configKoliBri}from"./dev.utils-05f4e663.js";export{K as KoliBriDevHelper}from"./prop.validators-769a843a.js";export{t as translations}from"./i18n-8e14d822.js";import"./reuse-56bb5a4b.js";import"./a11y.tipps-5cdbd5e2.js";var i,n;!function(e){e[e.error=0]="error",e[e.warning=1]="warning",e[e.info=2]="info",e[e.success=3]="success",e[e.message=4]="message",e[e.close=5]="close",e[e["form-description"]=6]="form-description",e[e.of=7]="of",e[e.characters=8]="characters",e[e.new=9]="new",e[e["no-entries"]=10]="no-entries",e[e["change-order"]=11]="change-order",e[e["action-running"]=12]="action-running",e[e["action-done"]=13]="action-done",e[e["page-first"]=14]="page-first",e[e["page-back"]=15]="page-back",e[e["page-next"]=16]="page-next",e[e["page-last"]=17]="page-last",e[e["entries-per-site"]=18]="entries-per-site",e[e["page-current"]=19]="page-current",e[e["page-selected"]=20]="page-selected",e[e["page-per-site"]=21]="page-per-site",e[e["nav-maximize"]=22]="nav-maximize",e[e["nav-minimize"]=23]="nav-minimize",e[e["logo-description"]=24]="logo-description",e[e["open-link-in-tab"]=25]="open-link-in-tab",e[e["kolibri-logo"]=26]="kolibri-logo"}(i||(i={})),function(e){e[e.abbr=0]="abbr",e[e.accordion=1]="accordion",e[e["accordion-group"]=2]="accordion-group",e[e.alert=3]="alert",e[e.avatar=4]="avatar",e[e.badge=5]="badge",e[e.breadcrumb=6]="breadcrumb",e[e.button=7]="button",e[e["button-group"]=8]="button-group",e[e["button-link"]=9]="button-link",e[e.card=10]="card",e[e.details=11]="details",e[e.dialog=12]="dialog",e[e.dropdown=13]="dropdown",e[e.form=14]="form",e[e.heading=15]="heading",e[e.icon=16]="icon",e[e.image=17]="image",e[e["indented-text"]=18]="indented-text",e[e["input-checkbox"]=19]="input-checkbox",e[e["input-color"]=20]="input-color",e[e["input-date"]=21]="input-date",e[e["input-file"]=22]="input-file",e[e["input-email"]=23]="input-email",e[e["input-number"]=24]="input-number",e[e["input-password"]=25]="input-password",e[e["input-radio"]=26]="input-radio",e[e["input-range"]=27]="input-range",e[e["input-text"]=28]="input-text",e[e.link=29]="link",e[e["link-button"]=30]="link-button",e[e["link-group"]=31]="link-group",e[e.modal=32]="modal",e[e.nav=33]="nav",e[e.pagination=34]="pagination",e[e.popover=35]="popover",e[e.progress=36]="progress",e[e.select=37]="select",e[e.separator=38]="separator",e[e["skip-nav"]=39]="skip-nav",e[e.spin=40]="spin",e[e.symbol=41]="symbol",e[e.table=42]="table",e[e.tabs=43]="tabs",e[e.textarea=44]="textarea",e[e.toast=45]="toast",e[e.toolbar=46]="toolbar",e[e.tooltip=47]="tooltip"}(n||(n={}));const s=new o("kol",i,n);export{s as KoliBri};
@@ -1 +1 @@
1
- {"version":3,"names":["KeyEnum","TagEnum","KoliBri","Theme"],"sources":["./src/schema/i18n-keys.ts","./src/schema/tag-names.ts","./src/schema/index.ts"],"sourcesContent":["export enum KeyEnum {\n\t'error',\n\t'warning',\n\t'info',\n\t'success',\n\t'message',\n\t'close',\n\t'form-description',\n\t'of',\n\t'characters',\n\t'new',\n\t'no-entries',\n\t'change-order',\n\t'action-running',\n\t'action-done',\n\t'page-first',\n\t'page-back',\n\t'page-next',\n\t'page-last',\n\t'entries-per-site',\n\t'page-current',\n\t'page-selected',\n\t'page-per-site',\n\t'nav-maximize',\n\t'nav-minimize',\n\t'logo-description',\n\t'open-link-in-tab',\n\t'kolibri-logo',\n}\n","export enum TagEnum {\n\t'abbr',\n\t'accordion',\n\t'accordion-group', // TODO: github pr link\n\t'alert',\n\t'avatar', // TODO: github pr link\n\t'badge',\n\t'breadcrumb',\n\t'button',\n\t'button-group',\n\t'button-link',\n\t'card',\n\t'details',\n\t'dialog', // TODO: github pr link\n\t'dropdown', // TODO: github pr link\n\t'form',\n\t'heading',\n\t'icon',\n\t'image', // TODO: github pr link\n\t'indented-text',\n\t'input-checkbox',\n\t'input-color',\n\t'input-date',\n\t'input-file',\n\t'input-email',\n\t'input-number',\n\t'input-password',\n\t'input-radio',\n\t'input-range',\n\t'input-text',\n\t'link',\n\t'link-button',\n\t'link-group',\n\t'modal',\n\t'nav',\n\t'pagination',\n\t'popover', // TODO: github pr link\n\t'progress',\n\t'select',\n\t'separator', // TODO: github pr link\n\t'skip-nav',\n\t'spin',\n\t'symbol',\n\t'table',\n\t'tabs',\n\t'textarea',\n\t'toast',\n\t'toolbar', // TODO: github pr link\n\t'tooltip',\n}\n","import { Theme } from '@a11y-ui/core';\nimport { KeyEnum } from './i18n-keys';\nimport { TagEnum } from './tag-names';\n\nexport const KoliBri = new Theme<'kol', keyof typeof KeyEnum, keyof typeof TagEnum>('kol', KeyEnum, TagEnum);\n"],"mappings":";;;ieAAA,IAAYA,GAAZ,SAAYA,GACXA,IAAA,oBACAA,IAAA,wBACAA,IAAA,kBACAA,IAAA,wBACAA,IAAA,wBACAA,IAAA,oBACAA,IAAA,0CACAA,IAAA,cACAA,IAAA,8BACAA,IAAA,gBACAA,IAAA,+BACAA,IAAA,mCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,6BACAA,IAAA,6BACAA,IAAA,6BACAA,IAAA,2CACAA,IAAA,mCACAA,IAAA,qCACAA,IAAA,qCACAA,IAAA,mCACAA,IAAA,mCACAA,IAAA,2CACAA,IAAA,2CACAA,IAAA,kCACA,EA5BD,CAAYA,MAAO,KCAnB,IAAYC,GAAZ,SAAYA,GACXA,IAAA,kBACAA,IAAA,4BACAA,IAAA,wCACAA,IAAA,oBACAA,IAAA,sBACAA,IAAA,oBACAA,IAAA,8BACAA,IAAA,sBACAA,IAAA,kCACAA,IAAA,gCACAA,IAAA,mBACAA,IAAA,yBACAA,IAAA,uBACAA,IAAA,2BACAA,IAAA,mBACAA,IAAA,yBACAA,IAAA,mBACAA,IAAA,qBACAA,IAAA,qCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,+BACAA,IAAA,iCACAA,IAAA,mCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,mBACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,qBACAA,IAAA,iBACAA,IAAA,+BACAA,IAAA,yBACAA,IAAA,2BACAA,IAAA,uBACAA,IAAA,6BACAA,IAAA,2BACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,qBACAA,IAAA,mBACAA,IAAA,2BACAA,IAAA,qBACAA,IAAA,yBACAA,IAAA,wBACA,EAjDD,CAAYA,MAAO,K,MCINC,EAAU,IAAIC,EAAyD,MAAOH,EAASC,U"}
1
+ {"version":3,"names":["KeyEnum","TagEnum","KoliBri","Theme"],"sources":["./src/schema/i18n-keys.ts","./src/schema/tag-names.ts","./src/schema/index.ts"],"sourcesContent":["export enum KeyEnum {\n\t'error',\n\t'warning',\n\t'info',\n\t'success',\n\t'message',\n\t'close',\n\t'form-description',\n\t'of',\n\t'characters',\n\t'new',\n\t'no-entries',\n\t'change-order',\n\t'action-running',\n\t'action-done',\n\t'page-first',\n\t'page-back',\n\t'page-next',\n\t'page-last',\n\t'entries-per-site',\n\t'page-current',\n\t'page-selected',\n\t'page-per-site',\n\t'nav-maximize',\n\t'nav-minimize',\n\t'logo-description',\n\t'open-link-in-tab',\n\t'kolibri-logo',\n}\n","export enum TagEnum {\n\t'abbr',\n\t'accordion',\n\t'accordion-group', // TODO: github pr link\n\t'alert',\n\t'avatar', // TODO: github pr link\n\t'badge',\n\t'breadcrumb',\n\t'button',\n\t'button-group',\n\t'button-link',\n\t'card',\n\t'details',\n\t'dialog', // TODO: github pr link\n\t'dropdown', // TODO: github pr link\n\t'form',\n\t'heading',\n\t'icon',\n\t'image', // TODO: github pr link\n\t'indented-text',\n\t'input-checkbox',\n\t'input-color',\n\t'input-date',\n\t'input-file',\n\t'input-email',\n\t'input-number',\n\t'input-password',\n\t'input-radio',\n\t'input-range',\n\t'input-text',\n\t'link',\n\t'link-button',\n\t'link-group',\n\t'modal',\n\t'nav',\n\t'pagination',\n\t'popover', // TODO: github pr link\n\t'progress',\n\t'select',\n\t'separator', // TODO: github pr link\n\t'skip-nav',\n\t'spin',\n\t'symbol',\n\t'table',\n\t'tabs',\n\t'textarea',\n\t'toast',\n\t'toolbar', // TODO: github pr link\n\t'tooltip',\n}\n","import { Theme } from '@a11y-ui/core';\nimport { KeyEnum } from './i18n-keys';\nimport { TagEnum } from './tag-names';\n\nexport const KoliBri = new Theme<'kol', keyof typeof KeyEnum, keyof typeof TagEnum>('kol', KeyEnum, TagEnum);\n"],"mappings":";;;kgBAAA,IAAYA,GAAZ,SAAYA,GACXA,IAAA,oBACAA,IAAA,wBACAA,IAAA,kBACAA,IAAA,wBACAA,IAAA,wBACAA,IAAA,oBACAA,IAAA,0CACAA,IAAA,cACAA,IAAA,8BACAA,IAAA,gBACAA,IAAA,+BACAA,IAAA,mCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,6BACAA,IAAA,6BACAA,IAAA,6BACAA,IAAA,2CACAA,IAAA,mCACAA,IAAA,qCACAA,IAAA,qCACAA,IAAA,mCACAA,IAAA,mCACAA,IAAA,2CACAA,IAAA,2CACAA,IAAA,kCACA,EA5BD,CAAYA,MAAO,KCAnB,IAAYC,GAAZ,SAAYA,GACXA,IAAA,kBACAA,IAAA,4BACAA,IAAA,wCACAA,IAAA,oBACAA,IAAA,sBACAA,IAAA,oBACAA,IAAA,8BACAA,IAAA,sBACAA,IAAA,kCACAA,IAAA,gCACAA,IAAA,mBACAA,IAAA,yBACAA,IAAA,uBACAA,IAAA,2BACAA,IAAA,mBACAA,IAAA,yBACAA,IAAA,mBACAA,IAAA,qBACAA,IAAA,qCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,+BACAA,IAAA,iCACAA,IAAA,mCACAA,IAAA,uCACAA,IAAA,iCACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,mBACAA,IAAA,iCACAA,IAAA,+BACAA,IAAA,qBACAA,IAAA,iBACAA,IAAA,+BACAA,IAAA,yBACAA,IAAA,2BACAA,IAAA,uBACAA,IAAA,6BACAA,IAAA,2BACAA,IAAA,mBACAA,IAAA,uBACAA,IAAA,qBACAA,IAAA,mBACAA,IAAA,2BACAA,IAAA,qBACAA,IAAA,yBACAA,IAAA,wBACA,EAjDD,CAAYA,MAAO,K,MCINC,EAAU,IAAIC,EAAyD,MAAOH,EAASC,U"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as o,H as r}from"./index-50adf9a0.js";import{w as t}from"./button-link-b0ebacde.js";import{n as l}from"./dev.utils-05f4e663.js";import{w as n}from"./prop.validators-8365f685.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";import"./a11y.tipps-5cdbd5e2.js";const a=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}:host>abbr{cursor:help}",e=class{constructor(o){i(this,o),this.nonce=l(),this._tooltipAlign="top",this._title=void 0,this.state={_title:"",_tooltipAlign:"top"}}render(){return o(r,null,o("abbr",{"aria-labelledby":this.nonce,role:"definition",title:this.state._title},o("span",{title:""},o("slot",null))),o("kol-tooltip",{_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._title}))}validateTitle(i){n(this,"_title",i,{required:!0})}validateTooltipAlign(i){t(this,"_tooltipAlign",i)}componentWillLoad(){this.validateTitle(this._title),this.validateTooltipAlign(this._tooltipAlign)}static get watchers(){return{_title:["validateTitle"],_tooltipAlign:["validateTooltipAlign"]}}};e.style={default:a};export{e as kol_abbr};
4
+ import{r as i,h as o,H as r}from"./index-50adf9a0.js";import{w as t}from"./button-link-3d1888e3.js";import{n as l}from"./dev.utils-05f4e663.js";import{w as a}from"./prop.validators-769a843a.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";import"./a11y.tipps-5cdbd5e2.js";const e=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}:host>abbr{cursor:help}",n=class{constructor(o){i(this,o),this.nonce=l(),this._tooltipAlign="top",this._title=void 0,this.state={_title:"",_tooltipAlign:"top"}}render(){return o(r,null,o("abbr",{"aria-labelledby":this.nonce,role:"definition",title:this.state._title},o("span",{title:""},o("slot",null))),o("kol-tooltip",{_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._title}))}validateTitle(i){a(this,"_title",i,{required:!0})}validateTooltipAlign(i){t(this,"_tooltipAlign",i)}componentWillLoad(){this.validateTitle(this._title),this.validateTooltipAlign(this._tooltipAlign)}static get watchers(){return{_title:["validateTitle"],_tooltipAlign:["validateTooltipAlign"]}}};n.style={default:e};export{n as kol_abbr};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolAbbr","this","nonce","_title","_tooltipAlign","render","h","Host","role","title","state","_align","_id","_label","validateTitle","value","watchString","required","validateTooltipAlign","watchTooltipAlignment","componentWillLoad"],"sources":["./src/components/abbr/style.css?tag=kol-abbr&mode=default&encapsulation=shadow","./src/components/abbr/component.tsx"],"sourcesContent":["@import '../style.css';\n\n:host > abbr {\n\tcursor: help;\n}\n","import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { Alignment } from '../../types/props/alignment';\nimport { nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\n\n/**\n * API\n */\ntype RequiredProps = {\n\ttitle: string;\n};\ntype OptionalProps = {\n\ttooltipAlign: Alignment;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-abbr',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolAbbr implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly nonce = nonce();\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<abbr aria-labelledby={this.nonce} role=\"definition\" title={this.state._title}>\n\t\t\t\t\t<span title=\"\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</span>\n\t\t\t\t</abbr>\n\t\t\t\t<kol-tooltip _align={this.state._tooltipAlign} _id={this.nonce} _label={this.state._title}></kol-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Dieses Property gibt die Beschreibung oder Erläuterung der Abkürzung an.\n\t */\n\t@Prop() public _title!: string;\n\n\t/**\n\t * Die State-Parameter repräsentieren den inneren State\n\t * einer Komponente.\n\t *\n\t * @see: https://stenciljs.com/docs/state\n\t */\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_title: '',\n\t\t_tooltipAlign: 'top',\n\t};\n\n\t/**\n\t * Die Watch-Methoden dienen der Möglichkeit zur\n\t * Validierung der Werte eines Properties und\n\t * dem Mapping dessen auf einen anderen internen\n\t * State-Typ.\n\t *\n\t * @see: https://stenciljs.com/docs/properties#prop-validation\n\t */\n\t@Watch('_title')\n\tpublic validateTitle(value?: string): void {\n\t\twatchString(this, '_title', 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('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateTitle(this._title);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t}\n}\n"],"mappings":";;;2RAAA,MAAMA,EAAkB,6hD,MC8BXC,EAAO,M,yBACFC,KAAAC,MAAQA,I,mBAkBkB,M,iCAgBX,CAC/BC,OAAQ,GACRC,cAAe,M,CAlCTC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,0BAAuBL,KAAKC,MAAOM,KAAK,aAAaC,MAAOR,KAAKS,MAAMP,QACtEG,EAAA,QAAMG,MAAM,IACXH,EAAA,eAGFA,EAAA,eAAaK,OAAQV,KAAKS,MAAMN,cAAeQ,IAAKX,KAAKC,MAAOW,OAAQZ,KAAKS,MAAMP,S,CAsC/EW,cAAcC,GACpBC,EAAYf,KAAM,SAAUc,EAAO,CAClCE,SAAU,M,CAQLC,qBAAqBH,GAC3BI,EAAsBlB,KAAM,gBAAiBc,E,CAMvCK,oBACNnB,KAAKa,cAAcb,KAAKE,QACxBF,KAAKiB,qBAAqBjB,KAAKG,c"}
1
+ {"version":3,"names":["defaultStyleCss","KolAbbr","this","nonce","_title","_tooltipAlign","render","h","Host","role","title","state","_align","_id","_label","validateTitle","value","watchString","required","validateTooltipAlign","watchTooltipAlignment","componentWillLoad"],"sources":["./src/components/abbr/style.css?tag=kol-abbr&mode=default&encapsulation=shadow","./src/components/abbr/component.tsx"],"sourcesContent":["@import '../style.css';\n\n:host > abbr {\n\tcursor: help;\n}\n","import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { Alignment } from '../../types/props/alignment';\nimport { nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\n\n/**\n * API\n */\ntype RequiredProps = {\n\ttitle: string;\n};\ntype OptionalProps = {\n\ttooltipAlign: Alignment;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\ntype States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-abbr',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolAbbr implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate readonly nonce = nonce();\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<abbr aria-labelledby={this.nonce} role=\"definition\" title={this.state._title}>\n\t\t\t\t\t<span title=\"\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</span>\n\t\t\t\t</abbr>\n\t\t\t\t<kol-tooltip _align={this.state._tooltipAlign} _id={this.nonce} _label={this.state._title}></kol-tooltip>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Alignment = 'top';\n\n\t/**\n\t * Dieses Property gibt die Beschreibung oder Erläuterung der Abkürzung an.\n\t */\n\t@Prop() public _title!: string;\n\n\t/**\n\t * Die State-Parameter repräsentieren den inneren State\n\t * einer Komponente.\n\t *\n\t * @see: https://stenciljs.com/docs/state\n\t */\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_title: '', // ⚠ required\n\t\t_tooltipAlign: 'top',\n\t};\n\n\t/**\n\t * Die Watch-Methoden dienen der Möglichkeit zur\n\t * Validierung der Werte eines Properties und\n\t * dem Mapping dessen auf einen anderen internen\n\t * State-Typ.\n\t *\n\t * @see: https://stenciljs.com/docs/properties#prop-validation\n\t */\n\t@Watch('_title')\n\tpublic validateTitle(value?: string): void {\n\t\twatchString(this, '_title', 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('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateTitle(this._title);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t}\n}\n"],"mappings":";;;2RAAA,MAAMA,EAAkB,u8C,MC8BXC,EAAO,M,yBACFC,KAAAC,MAAQA,I,mBAkBkB,M,iCAgBX,CAC/BC,OAAQ,IACRC,cAAe,M,CAlCTC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,0BAAuBL,KAAKC,MAAOM,KAAK,aAAaC,MAAOR,KAAKS,MAAMP,QACtEG,EAAA,QAAMG,MAAM,IACXH,EAAA,eAGFA,EAAA,eAAaK,OAAQV,KAAKS,MAAMN,cAAeQ,IAAKX,KAAKC,MAAOW,OAAQZ,KAAKS,MAAMP,S,CAsC/EW,cAAcC,GACpBC,EAAYf,KAAM,SAAUc,EAAO,CAClCE,SAAU,M,CAQLC,qBAAqBH,GAC3BI,EAAsBlB,KAAM,gBAAiBc,E,CAMvCK,oBACNnB,KAAKa,cAAcb,KAAKE,QACxBF,KAAKiB,qBAAqBjB,KAAKG,c"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as o,H as e}from"./index-50adf9a0.js";import{f as n}from"./a11y.tipps-5cdbd5e2.js";import{n as t}from"./dev.utils-05f4e663.js";import{w as r,s as a,b as s}from"./prop.validators-8365f685.js";import{w as l}from"./validation-fdaf7554.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const d=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}";n("[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"),n("[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.");const c=class{constructor(o){i(this,o),this.nonce=t(),this.catchAriaExpanded=i=>{i instanceof HTMLButtonElement&&(this.buttonRef=i,this.triggerAriaExpanded(i))},this.triggerAriaExpanded=i=>{i.setAttribute("aria-expanded",this.state._open?"true":"false")},this.onClick=i=>{this._open=!1===this._open;const o=setTimeout((()=>{var e;clearTimeout(o),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)&&this.state._on.onClick(i,!0===this._open),this.buttonRef instanceof HTMLButtonElement&&this.triggerAriaExpanded(this.buttonRef)}))},this._heading=void 0,this._level=1,this._on=void 0,this._open=!1,this.state={_heading:"",_level:1}}render(){return o(e,null,o("div",{part:"accordion "+(this.state._open?"open":"close")},o("kol-heading-wc",{_label:"",_level:this.state._level},o("button",{"aria-controls":this.nonce,ref:this.catchAriaExpanded,onClick:this.onClick},o("kol-icon",{_ariaLabel:"",_icon:this.state._open?"fa-solid fa-minus":"fa-solid fa-plus",_part:this.state._open?"close":"open"}),o("span",null,this.state._heading))),o("div",{part:"header"},o("slot",{name:"header"})),o("div",{id:this.nonce,part:"content",style:!1===this.state._open?{display:"none",height:"0",visibility:"hidden"}:void 0},o("slot",{name:"content"}))))}validateHeading(i){r(this,"_heading",i,{required:!0})}validateLevel(i){l(this,i)}validateOn(i){"object"==typeof i&&null!==i&&"function"==typeof i.onClick&&a(this,"_on",i)}validateOpen(i){s(this,"_open",i)}componentWillLoad(){this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateOpen(this._open)}static get watchers(){return{_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_open:["validateOpen"]}}};c.style={default:d};export{c as kol_accordion};
4
+ import{r as i,h as o,H as e}from"./index-50adf9a0.js";import{f as n}from"./a11y.tipps-5cdbd5e2.js";import{n as r}from"./dev.utils-05f4e663.js";import{w as t,s as a,b as s}from"./prop.validators-769a843a.js";import{w as l}from"./validation-d9821b54.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const d=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}:host{display:block}.accordion kol-heading-wc kol-button-wc button kol-span-wc{justify-items:start}";n("[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"),n("[KolAccordion] Tab-Sperre des Inhalts im geschlossenen Zustand.");const c=class{constructor(o){i(this,o),this.nonce=r(),this.onClick=i=>{this._open=!1===this._open;const o=setTimeout((()=>{var e;clearTimeout(o),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)&&this.state._on.onClick(i,!0===this._open)}))},this._heading=void 0,this._level=1,this._on=void 0,this._open=!1,this.state={_heading:"",_level:1}}render(){return o(e,null,o("div",{class:{accordion:!0,open:!0===this.state._open,close:!0!==this.state._open}},o("kol-heading-wc",{_headline:"",_level:this.state._level},o("kol-button-wc",{_ariaControls:this.nonce,_ariaExpanded:this.state._open,_icon:this.state._open?"codicon codicon-remove":"codicon codicon-add",_label:this.state._heading,_on:{onClick:this.onClick}})),o("div",{class:"header"},o("slot",{name:"header"})),o("div",{"aria-hidden":!1===this.state._open?"true":void 0,class:"content",id:this.nonce,hidden:!1===this.state._open,style:!1===this.state._open?{display:"none",height:"0",visibility:"hidden"}:void 0},o("slot",{name:"content"}))))}validateHeading(i){t(this,"_heading",i,{required:!0})}validateLevel(i){l(this,i)}validateOn(i){"object"==typeof i&&null!==i&&"function"==typeof i.onClick&&a(this,"_on",i)}validateOpen(i){s(this,"_open",i)}componentWillLoad(){this.validateHeading(this._heading),this.validateLevel(this._level),this.validateOn(this._on),this.validateOpen(this._open)}static get watchers(){return{_heading:["validateHeading"],_level:["validateLevel"],_on:["validateOn"],_open:["validateOpen"]}}};c.style={default:d};export{c as kol_accordion};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","nonce","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","id","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 { EventValueOrEventCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\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]?: EventValueOrEventCallback<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\tprivate readonly nonce = nonce();\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 aria-controls={this.nonce} 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\tid={this.nonce}\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":";;;oTAAA,MAAMA,EAAkB,sgDCaxBC,EAAY,+OAKZA,EAAY,mE,MAyCCC,EAAY,M,yBAEPC,KAAAC,MAAQA,IAGjBD,KAAAE,kBAAqBC,IAC5B,GAAIA,aAAkBC,kBAAmB,CACxCJ,KAAKK,UAAYF,EACjBH,KAAKM,oBAAoBH,E,GAGnBH,KAAAM,oBAAuBH,IAC9BA,EAAOI,aAAa,gBAAiBP,KAAKQ,MAAMC,MAAQ,OAAS,QAAQ,EA8HlET,KAAAU,QAAWC,IAClBX,KAAKS,MAAQT,KAAKS,QAAU,MAQ5B,MAAMG,EAAUC,YAAW,K,MAC1BC,aAAaF,GACb,WAAWG,EAAAf,KAAKQ,MAAMQ,OAAG,MAAAD,SAAA,SAAAA,EAAEL,WAAY,WAAY,CAClDV,KAAKQ,MAAMQ,IAAIN,QAAQC,EAAOX,KAAKS,QAAU,K,CAE9C,GAAIT,KAAKK,qBAAqBD,kBAAmB,CAChDJ,KAAKM,oBAAoBN,KAAKK,U,IAE9B,E,oCAnFoC,E,8BAU0B,M,WAKjC,CAC/BY,SAAU,IACVC,OAAQ,E,CA1EFC,SAEN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,KAAM,aAAatB,KAAKQ,MAAMC,MAAQ,OAAS,WACnDW,EAAA,kBAAgBG,OAAO,GAAGL,OAAQlB,KAAKQ,MAAMU,QAC5CE,EAAA,0BAAuBpB,KAAKC,MAAOuB,IAAKxB,KAAKE,kBAAmBQ,QAASV,KAAKU,SAC7EU,EAAA,YAAUK,WAAW,GAAGC,MAAO1B,KAAKQ,MAAMC,MAAQ,oBAAsB,mBAAoBkB,MAAO3B,KAAKQ,MAAMC,MAAQ,QAAU,SAChIW,EAAA,YAAOpB,KAAKQ,MAAMS,YAGpBG,EAAA,OAAKE,KAAK,UACTF,EAAA,QAAMQ,KAAK,YAEZR,EAAA,OACCS,GAAI7B,KAAKC,MACTqB,KAAK,UAELQ,MACC9B,KAAKQ,MAAMC,QAAU,MAClB,CACAsB,QAAS,OACTC,OAAQ,IACRC,WAAY,UAEZC,WAiBJd,EAAA,QAAMQ,KAAK,c,CAuCTO,gBAAgBC,GACtBC,EAAYrC,KAAM,WAAYoC,EAAO,CACpCE,SAAU,M,CAQLC,cAAcH,GACpBI,EAAkBxC,KAAMoC,E,CAOlBK,WAAWL,GACjB,UAAWA,IAAU,UAAYA,IAAU,aAAeA,EAAM1B,UAAY,WAAY,CACvFgC,EAAS1C,KAAM,MAAOoC,E,EAQjBO,aAAaP,GACnBQ,EAAa5C,KAAM,QAASoC,E,CAMtBS,oBACN7C,KAAKmC,gBAAgBnC,KAAKiB,UAC1BjB,KAAKuC,cAAcvC,KAAKkB,QACxBlB,KAAKyC,WAAWzC,KAAKgB,KACrBhB,KAAK2C,aAAa3C,KAAKS,M"}
1
+ {"version":3,"names":["defaultStyleCss","featureHint","KolAccordion","this","nonce","onClick","event","_open","timeout","setTimeout","clearTimeout","_a","state","_on","_heading","_level","render","h","Host","class","accordion","open","close","_headline","_ariaControls","_ariaExpanded","_icon","_label","name","undefined","id","hidden","style","display","height","visibility","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@import '../host-display-block.css';\n\n.accordion kol-heading-wc kol-button-wc button kol-span-wc {\n\tjustify-items: start;\n}\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 { EventValueOrEventCallback } from '../../types/callbacks';\nimport { HeadingLevel } from '../../types/heading-level';\nimport { featureHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\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]?: EventValueOrEventCallback<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 readonly nonce = nonce();\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\n\t\t\t\t\tclass={{\n\t\t\t\t\t\taccordion: true,\n\t\t\t\t\t\topen: this.state._open === true,\n\t\t\t\t\t\tclose: this.state._open !== true,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<kol-heading-wc _headline=\"\" _level={this.state._level}>\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\t// slot=\"expert\"\n\t\t\t\t\t\t\t_ariaControls={this.nonce}\n\t\t\t\t\t\t\t_ariaExpanded={this.state._open}\n\t\t\t\t\t\t\t_icon={this.state._open ? 'codicon codicon-remove' : 'codicon codicon-add'}\n\t\t\t\t\t\t\t_label={this.state._heading}\n\t\t\t\t\t\t\t_on={{ onClick: this.onClick }}\n\t\t\t\t\t\t></kol-button-wc>\n\t\t\t\t\t</kol-heading-wc>\n\t\t\t\t\t<div class=\"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\taria-hidden={this.state._open === false ? 'true' : undefined}\n\t\t\t\t\t\tclass=\"content\"\n\t\t\t\t\t\tid={this.nonce}\n\t\t\t\t\t\thidden={this.state._open === false}\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: '…', // required\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});\n\t};\n}\n"],"mappings":";;;oTAAA,MAAMA,EAAkB,mhDCaxBC,EAAY,+OAKZA,EAAY,mE,MAyCCC,EAAY,M,yBACPC,KAAAC,MAAQA,IAwIjBD,KAAAE,QAAWC,IAClBH,KAAKI,MAAQJ,KAAKI,QAAU,MAQ5B,MAAMC,EAAUC,YAAW,K,MAC1BC,aAAaF,GACb,WAAWG,EAAAR,KAAKS,MAAMC,OAAG,MAAAF,SAAA,SAAAA,EAAEN,WAAY,WAAY,CAClDF,KAAKS,MAAMC,IAAIR,QAAQC,EAAOH,KAAKI,QAAU,K,IAE7C,E,oCAhFoC,E,8BAU0B,M,WAKjC,CAC/BO,SAAU,IACVC,OAAQ,E,CArFFC,SAEN,OACCC,EAACC,EAAI,KACJD,EAAA,OACCE,MAAO,CACNC,UAAW,KACXC,KAAMlB,KAAKS,MAAML,QAAU,KAC3Be,MAAOnB,KAAKS,MAAML,QAAU,OAG7BU,EAAA,kBAAgBM,UAAU,GAAGR,OAAQZ,KAAKS,MAAMG,QAC/CE,EAAA,iBAECO,cAAerB,KAAKC,MACpBqB,cAAetB,KAAKS,MAAML,MAC1BmB,MAAOvB,KAAKS,MAAML,MAAQ,yBAA2B,sBACrDoB,OAAQxB,KAAKS,MAAME,SACnBD,IAAK,CAAER,QAASF,KAAKE,YAGvBY,EAAA,OAAKE,MAAM,UACVF,EAAA,QAAMW,KAAK,YAEZX,EAAA,qBACcd,KAAKS,MAAML,QAAU,MAAQ,OAASsB,UACnDV,MAAM,UACNW,GAAI3B,KAAKC,MACT2B,OAAQ5B,KAAKS,MAAML,QAAU,MAC7ByB,MACC7B,KAAKS,MAAML,QAAU,MAClB,CACA0B,QAAS,OACTC,OAAQ,IACRC,WAAY,UAEZN,WAiBJZ,EAAA,QAAMW,KAAK,c,CAuCTQ,gBAAgBC,GACtBC,EAAYnC,KAAM,WAAYkC,EAAO,CACpCE,SAAU,M,CAQLC,cAAcH,GACpBI,EAAkBtC,KAAMkC,E,CAOlBK,WAAWL,GACjB,UAAWA,IAAU,UAAYA,IAAU,aAAeA,EAAMhC,UAAY,WAAY,CACvFsC,EAASxC,KAAM,MAAOkC,E,EAQjBO,aAAaP,GACnBQ,EAAa1C,KAAM,QAASkC,E,CAMtBS,oBACN3C,KAAKiC,gBAAgBjC,KAAKW,UAC1BX,KAAKqC,cAAcrC,KAAKY,QACxBZ,KAAKuC,WAAWvC,KAAKU,KACrBV,KAAKyC,aAAazC,KAAKI,M"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as o,H as r}from"./index-50adf9a0.js";import{b as a,w as e,s as n,a as l}from"./prop.validators-8365f685.js";import{w as t}from"./validation-fdaf7554.js";import{a as s}from"./i18n-67083aee.js";import{L as c}from"./dev.utils-05f4e663.js";import"./index-676dbf61.js";import"./a11y.tipps-5cdbd5e2.js";import"./reuse-56bb5a4b.js";const d=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}:host{display:inline-block}:host>div{background-color:white;border-radius:var(--kolibri-border-radius);border-style:solid;border-width:calc(2 * var(--kolibri-border-width));display:inline-grid;place-items:stretch;overflow:hidden;width:100%}.heading{display:flex;gap:var(--kolibri-spacing);place-items:center}.heading>div{display:grid;gap:var(--kolibri-spacing);margin:var(--kolibri-spacing) var(--kolibri-spacing) var(--kolibri-spacing) 0}.heading .heading-icon{align-items:center;align-self:stretch;display:inline-flex;color:white;padding:calc(2 * var(--kolibri-spacing))}.card>.heading .heading-icon{border-radius:0 0 var(--kolibri-border-radius) 0}.heading .close button{min-width:44px;min-height:44px}.card>.content{padding:var(--kolibri-spacing)}.default{border-color:var(--kolibri-color-normal)}.default .heading-icon{background-color:var(--kolibri-color-normal)}.error{border-color:var(--kolibri-color-error)}.error .heading-icon{background-color:var(--kolibri-color-error)}.info{border-color:var(--kolibri-color-info)}.info .heading-icon{background-color:var(--kolibri-color-info)}.success{border-color:var(--kolibri-color-success)}.success .heading-icon{background-color:var(--kolibri-color-success)}.warning{border-color:var(--kolibri-color-warning)}.warning .heading-icon{background-color:var(--kolibri-color-warning)}",h=i=>o("kol-icon",{class:"heading-icon",_ariaLabel:"string"==typeof i.heading&&i.heading.length>0?"":i.ariaLabel,_icon:i.icon}),b=i=>{switch(i.type){case"error":return o(h,{ariaLabel:s("kol-error"),icon:"fa-solid fa-circle-xmark",heading:i.heading});case"info":return o(h,{ariaLabel:s("kol-info"),icon:"fa-solid fa-circle-info",heading:i.heading});case"warning":return o(h,{ariaLabel:s("kol-warning"),icon:"fa-solid fa-triangle-exclamation",heading:i.heading});case"success":return o(h,{ariaLabel:s("kol-success"),icon:"fa-solid fa-circle-check",heading:i.heading});default:return o(h,{ariaLabel:s("kol-message"),icon:"fa-regular fa-comment",heading:i.heading})}},f=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.validateOnValue=i=>"object"==typeof i&&null!==i&&"function"==typeof i.onClose,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(){var i;if(this.state._alert){try{c.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(i){c.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return o(r,null,o("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},o("div",{class:"heading"},o(b,{heading:this.state._heading,type:this.state._type}),o("div",null,"string"==typeof this.state._heading&&(null===(i=this.state._heading)||void 0===i?void 0:i.length)>0&&o("kol-heading-wc",{_label:this.state._heading,_level:this.state._level}),"msg"===this._variant&&o("div",{class:"content"},o("slot",null))),this.state._hasCloser&&o("kol-button-wc",{class:"close",_icon:{left:{icon:"fa-solid fa-xmark"}},_iconOnly:!0,_label:s("kol-close"),_on:this.on,_tooltipAlign:"left"})),"card"===this._variant&&o("div",{class:"content"},o("slot",null))))}validateAlert(i){a(this,"_alert",i)}validateHasCloser(i){a(this,"_hasCloser",i)}validateHeading(i){e(this,"_heading",i)}validateLevel(i){t(this,i)}validateOn(i){this.validateOnValue(i)&&n(this,"_on",{onClose:i.onClose})}validateType(i){l(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){l(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"]}}};f.style={default:d};export{f as kol_alert};
4
+ import{r as i,h as o,H as r}from"./index-50adf9a0.js";import{b as a,w as e,s as n,a as l}from"./prop.validators-769a843a.js";import{w as t}from"./validation-d9821b54.js";import{a as s}from"./i18n-8e14d822.js";import{L as c}from"./dev.utils-05f4e663.js";import"./index-676dbf61.js";import"./a11y.tipps-5cdbd5e2.js";import"./index-4f2a12cc.js";import"./reuse-56bb5a4b.js";const d=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}:host{display:block}:host>div{background-color:white;border-radius:var(--kolibri-border-radius);border-style:solid;border-width:calc(2 * var(--kolibri-border-width));display:inline-grid;place-items:stretch;overflow:hidden;width:100%}.heading{display:grid;gap:var(--kolibri-spacing);grid-template-columns:auto 1fr auto;place-items:center}.heading>div{display:grid;gap:var(--kolibri-spacing);justify-self:start;margin:var(--kolibri-spacing) 0}.heading .heading-icon{align-items:center;align-self:stretch;display:inline-flex;color:white;padding:calc(2 * var(--kolibri-spacing))}.card>.heading .heading-icon{border-radius:0 0 var(--kolibri-border-radius) 0}.heading .close button{min-width:44px;min-height:44px}.card>.content{padding:var(--kolibri-spacing)}.default{border-color:var(--kolibri-color-normal)}.default .heading-icon{background-color:var(--kolibri-color-normal)}.error{border-color:var(--kolibri-color-error)}.error .heading-icon{background-color:var(--kolibri-color-error)}.info{border-color:var(--kolibri-color-info)}.info .heading-icon{background-color:var(--kolibri-color-info)}.success{border-color:var(--kolibri-color-success)}.success .heading-icon{background-color:var(--kolibri-color-success)}.warning{border-color:var(--kolibri-color-warning)}.warning .heading-icon{background-color:var(--kolibri-color-warning)}",h=i=>o("kol-icon",{class:"heading-icon",_ariaLabel:"string"==typeof i.heading&&i.heading.length>0?"":i.ariaLabel,_icon:i.icon}),b=i=>{switch(i.type){case"error":return o(h,{ariaLabel:s("kol-error"),icon:"codicon codicon-error",heading:i.heading});case"info":return o(h,{ariaLabel:s("kol-info"),icon:"codicon codicon-info",heading:i.heading});case"warning":return o(h,{ariaLabel:s("kol-warning"),icon:"codicon codicon-warning",heading:i.heading});case"success":return o(h,{ariaLabel:s("kol-success"),icon:"codicon codicon-pass",heading:i.heading});default:return o(h,{ariaLabel:s("kol-message"),icon:"codicon codicon-comment",heading:i.heading})}},g=class{constructor(o){i(this,o),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.validateOnValue=i=>"object"==typeof i&&null!==i&&"function"==typeof i.onClose,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(){var i;if(this.state._alert){try{c.debug(["Navigator should vibrate ...",navigator.vibrate([100,75,100,75,100])])}catch(i){c.debug("Navigator does not support vibration.")}setTimeout((()=>{this.validateAlert(!1)}),1e4)}return o(r,null,o("div",{class:{[this.state._type]:!0,[this.state._variant]:!0},role:this.state._alert?"alert":void 0},o("div",{class:"heading"},o(b,{heading:this.state._heading,type:this.state._type}),o("div",null,"string"==typeof this.state._heading&&(null===(i=this.state._heading)||void 0===i?void 0:i.length)>0&&o("kol-heading-wc",{_headline:this.state._heading,_level:this.state._level}),"msg"===this._variant&&o("div",{class:"content"},o("slot",null))),this.state._hasCloser&&o("kol-button-wc",{class:"close",_icon:{left:{icon:"codicon codicon-close"}},_iconOnly:!0,_label:s("kol-close"),_on:this.on,_tooltipAlign:"left"})),"card"===this._variant&&o("div",{class:"content"},o("slot",null))))}validateAlert(i){a(this,"_alert",i)}validateHasCloser(i){a(this,"_hasCloser",i)}validateHeading(i){e(this,"_heading",i)}validateLevel(i){t(this,i)}validateOn(i){this.validateOnValue(i)&&n(this,"_on",{onClose:i.onClose})}validateType(i){l(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){l(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"]}}};g.style={default:d};export{g 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","validateOnValue","value","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_label","_hasCloser","left","_iconOnly","_tooltipAlign","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","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 {\n\tdisplay: inline-block;\n}\n:host > div {\n\tbackground-color: white;\n\tborder-radius: var(--kolibri-border-radius);\n\tborder-style: solid;\n\tborder-width: calc(2 * var(--kolibri-border-width));\n\tdisplay: inline-grid;\n\tplace-items: stretch;\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n.heading {\n\tdisplay: flex;\n\tgap: var(--kolibri-spacing);\n\tplace-items: center;\n}\n.heading > div {\n\tdisplay: grid;\n\tgap: var(--kolibri-spacing);\n\tmargin: var(--kolibri-spacing) var(--kolibri-spacing) var(--kolibri-spacing) 0;\n}\n.heading .heading-icon {\n\talign-items: center;\n\talign-self: stretch;\n\tdisplay: inline-flex;\n\tcolor: white;\n\tpadding: calc(2 * var(--kolibri-spacing));\n}\n.card > .heading .heading-icon {\n\tborder-radius: 0 0 var(--kolibri-border-radius) 0;\n}\n.heading .close button {\n\tmin-width: 44px;\n\tmin-height: 44px;\n}\n.card > .content {\n\tpadding: var(--kolibri-spacing);\n}\n.default {\n\tborder-color: var(--kolibri-color-normal);\n}\n.default .heading-icon {\n\tbackground-color: var(--kolibri-color-normal);\n}\n.error {\n\tborder-color: var(--kolibri-color-error);\n}\n.error .heading-icon {\n\tbackground-color: var(--kolibri-color-error);\n}\n.info {\n\tborder-color: var(--kolibri-color-info);\n}\n.info .heading-icon {\n\tbackground-color: var(--kolibri-color-info);\n}\n.success {\n\tborder-color: var(--kolibri-color-success);\n}\n.success .heading-icon {\n\tbackground-color: var(--kolibri-color-success);\n}\n.warning {\n\tborder-color: var(--kolibri-color-warning);\n}\n.warning .heading-icon {\n\tbackground-color: var(--kolibri-color-warning);\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 { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\nimport { Log } from '../../utils/dev.utils';\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=\"heading-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<div class=\"heading\">\n\t\t\t\t\t\t<AlertIcon heading={this.state._heading} type={this.state._type} />\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{typeof this.state._heading === 'string' && this.state._heading?.length > 0 && (\n\t\t\t\t\t\t\t\t<kol-heading-wc _label={this.state._heading} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._variant === 'msg' && (\n\t\t\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\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-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\t{this._variant === 'card' && (\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)}\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\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriAlertEventCallbacks).onClose === 'function';\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 (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriAlertEventCallbacks>(\n\t\t\t\tthis,\n\t\t\t\t'_on',\n\t\t\t\t{\n\t\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t\t}\n\t\t\t\t// {\n\t\t\t\t// \tafterPatch: (value: unknown) => {\n\t\t\t\t// \t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t);\n\t\t\t// } else {\n\t\t\t// \tsetState<KoliBriAlertEventCallbacks>(this, '_on', null, {\n\t\t\t// \t\tafterPatch: (value: unknown) => {\n\t\t\t// \t\t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t// \t\t},\n\t\t\t// \t});\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","validateOnValue","value","_level","render","state","_alert","Log","debug","navigator","vibrate","e","setTimeout","validateAlert","Host","_type","_variant","role","_heading","_headline","_hasCloser","left","_iconOnly","_label","_tooltipAlign","watchBoolean","validateHasCloser","validateHeading","watchString","validateLevel","watchHeadingLevel","validateOn","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@import '../host-display-block.css';\n\n:host > div {\n\tbackground-color: white;\n\tborder-radius: var(--kolibri-border-radius);\n\tborder-style: solid;\n\tborder-width: calc(2 * var(--kolibri-border-width));\n\tdisplay: inline-grid;\n\tplace-items: stretch;\n\toverflow: hidden;\n\twidth: 100%;\n}\n\n.heading {\n\tdisplay: grid;\n\tgap: var(--kolibri-spacing);\n\tgrid-template-columns: auto 1fr auto;\n\tplace-items: center;\n}\n.heading > div {\n\tdisplay: grid;\n\tgap: var(--kolibri-spacing);\n\tjustify-self: start;\n\tmargin: var(--kolibri-spacing) 0;\n}\n.heading .heading-icon {\n\talign-items: center;\n\talign-self: stretch;\n\tdisplay: inline-flex;\n\tcolor: white;\n\tpadding: calc(2 * var(--kolibri-spacing));\n}\n.card > .heading .heading-icon {\n\tborder-radius: 0 0 var(--kolibri-border-radius) 0;\n}\n.heading .close button {\n\tmin-width: 44px;\n\tmin-height: 44px;\n}\n.card > .content {\n\tpadding: var(--kolibri-spacing);\n}\n.default {\n\tborder-color: var(--kolibri-color-normal);\n}\n.default .heading-icon {\n\tbackground-color: var(--kolibri-color-normal);\n}\n.error {\n\tborder-color: var(--kolibri-color-error);\n}\n.error .heading-icon {\n\tbackground-color: var(--kolibri-color-error);\n}\n.info {\n\tborder-color: var(--kolibri-color-info);\n}\n.info .heading-icon {\n\tbackground-color: var(--kolibri-color-info);\n}\n.success {\n\tborder-color: var(--kolibri-color-success);\n}\n.success .heading-icon {\n\tbackground-color: var(--kolibri-color-success);\n}\n.warning {\n\tborder-color: var(--kolibri-color-warning);\n}\n.warning .heading-icon {\n\tbackground-color: var(--kolibri-color-warning);\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 { setState, watchBoolean, watchString, watchValidator } from '../../utils/prop.validators';\nimport { watchHeadingLevel } from '../heading/validation';\nimport { translate } from '../../i18n';\nimport { Log } from '../../utils/dev.utils';\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=\"heading-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=\"codicon codicon-error\" heading={props.heading} />;\n\t\tcase 'info':\n\t\t\treturn <Icon ariaLabel={translate('kol-info')} icon=\"codicon codicon-info\" heading={props.heading} />;\n\t\tcase 'warning':\n\t\t\treturn <Icon ariaLabel={translate('kol-warning')} icon=\"codicon codicon-warning\" heading={props.heading} />;\n\t\tcase 'success':\n\t\t\treturn <Icon ariaLabel={translate('kol-success')} icon=\"codicon codicon-pass\" heading={props.heading} />;\n\t\tdefault:\n\t\t\treturn <Icon ariaLabel={translate('kol-message')} icon=\"codicon codicon-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<div class=\"heading\">\n\t\t\t\t\t\t<AlertIcon heading={this.state._heading} type={this.state._type} />\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t{typeof this.state._heading === 'string' && this.state._heading?.length > 0 && (\n\t\t\t\t\t\t\t\t<kol-heading-wc _headline={this.state._heading} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._variant === 'msg' && (\n\t\t\t\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\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: 'codicon codicon-close',\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\t{this._variant === 'card' && (\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)}\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\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriAlertEventCallbacks).onClose === 'function';\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 (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriAlertEventCallbacks>(\n\t\t\t\tthis,\n\t\t\t\t'_on',\n\t\t\t\t{\n\t\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t\t}\n\t\t\t\t// {\n\t\t\t\t// \tafterPatch: (value: unknown) => {\n\t\t\t\t// \t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t);\n\t\t\t// } else {\n\t\t\t// \tsetState<KoliBriAlertEventCallbacks>(this, '_on', null, {\n\t\t\t// \t\tafterPatch: (value: unknown) => {\n\t\t\t// \t\t\tthis._hasCloser = this.validateOnValue(value);\n\t\t\t// \t\t},\n\t\t\t// \t});\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 o,h as i,H as t}from"./index-50adf9a0.js";import{f as r,d as a,a as s}from"./a11y.tipps-5cdbd5e2.js";import{r as n,c as e,a as l,o as c,p,s as d}from"./prop.validators-8365f685.js";import{v as h}from"./label-467917df.js";import{c as b}from"./index-d14da386.js";import"./dev.utils-05f4e663.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const f=(o,t,r)=>(299*o+587*t+114*r)/1e3>=128?-1:1,g=(o,t,r,a=1)=>{const i=[Math.max(Math.min(Math.round(t[0]+a*Math.max(1,t[0]/100)),255),0),Math.max(Math.min(Math.round(t[1]+a*Math.max(1,t[1]/100)),255),0),Math.max(Math.min(Math.round(t[2]+a*Math.max(1,t[2]/100)),255),0)],s=e(n.hex(`rgba(${o.join(",")},1)`),n.hex(`rgba(${i.join(",")},1)`)),l=i[0]+i[1]+i[2];return 0===l||765===l||s>r?{background:o,foreground:i,contrast:s}:g(o,i,r,a)},k=new Map,u=(o,t,r,a=1)=>{if(k.has(o))return k.get(o);const i=g(o,t,r,a);return k.set(o,i),i},m=(o,t=7)=>{let r=[0,0,0,1],a=[255,255,255,1];"string"==typeof o?(r=b(o),a=r):"object"==typeof o&&null!==o&&"string"==typeof o.background&&"string"==typeof o.foreground&&(r=b(o.background),a="string"==typeof o.foreground?b(o.foreground):r);const i=f(r[0],r[1],r[2]),s=u([r[0],r[1],r[2]],[a[0],a[1],a[2]],t,i);return a=[...s.foreground,1],{background:n.hex(`rgba(${r.join(",")})`),foreground:n.hex(`rgba(${a.join(",")})`),contrast:s.contrast}},y=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}:host{display:inline-block}:host>span{border-radius:var(--kolibri-border-radius);display:flex;line-height:calc(1rem + var(--kolibri-spacing));place-items:center}:host>span kol-span-wc{padding:var(--kolibri-spacing) calc(2 * var(--kolibri-spacing))}:host>span>kol-span-wc{align-items:center;font-style:normal;gap:calc(2 * var(--kolibri-spacing))}:host>span.smart-button>kol-span-wc{border-right:1px solid rgba(0, 0, 0, 0.25)}:host>span>kol-span-wc>span{display:flex;gap:var(--kolibri-spacing)}:host>span>kol-button-wc button{border-radius:0 var(--kolibri-spacing) var(--kolibri-spacing) 0;color:inherit}";r("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const v=/^([a-f0-9]{3}|[a-f0-9]{6})$/,w=class{constructor(t){o(this,t),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=o=>{let t,r=o;"string"==typeof r?(v.test(r)&&(a("[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}`),t=m(r)):t=m({background:r.backgroundColor,foreground:r.color}),t.contrast<7&&s(`[KolBadge] The contrast of ${t.contrast} (≥7, AAA) is too low, between the color pair ${t.background} and ${t.foreground}.`),this.bgColorStr=t.background,this.colorStr=t.foreground},this._color="#000",this._icon=void 0,this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000",_label:""}}render(){return i(t,null,i("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},i("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&i("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(o){l(this,"_color",(o=>"string"==typeof o||"object"==typeof o&&null!==o&&"string"==typeof o.backgroundColor&&"string"==typeof o.color),new Set(["string","KoliBriColor"]),o,{defaultValue:"#000",hooks:{beforePatch:this.handleColorChange}})}validateLabel(o){h(this,o,{hooks:{afterPatch:o=>{"string"==typeof o&&o.length>32&&s(`[KolBadge] The label is too long for a badge (${o.length} > 32).`)}}})}validateSmartButton(o){c(o,(()=>{try{o=p(o)}catch(o){}d(this,"_smartButton",o)}))}componentWillLoad(){this.validateColor(this._color),this.validateLabel(this._label),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_label:["validateLabel"],_smartButton:["validateSmartButton"]}}};w.style={default:y};export{w as kol_badge};
4
+ import{r as o,h as i,H as t}from"./index-50adf9a0.js";import{f as r,d as a,a as s}from"./a11y.tipps-5cdbd5e2.js";import{r as e,c as n,a as l,o as c,p as b,s as d}from"./prop.validators-769a843a.js";import{v as f}from"./label-ea9f2a1a.js";import{c as p}from"./index-d14da386.js";import"./dev.utils-05f4e663.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const h=(o,t,r)=>(299*o+587*t+114*r)/1e3>=128?-1:1,g=(o,t,r,a=1)=>{const i=[Math.max(Math.min(Math.round(t[0]+a*Math.max(1,t[0]/100)),255),0),Math.max(Math.min(Math.round(t[1]+a*Math.max(1,t[1]/100)),255),0),Math.max(Math.min(Math.round(t[2]+a*Math.max(1,t[2]/100)),255),0)],s=n(e.hex(`rgba(${o.join(",")},1)`),e.hex(`rgba(${i.join(",")},1)`)),l=i[0]+i[1]+i[2];return 0===l||765===l||s>r?{background:o,foreground:i,contrast:s}:g(o,i,r,a)},u=new Map,k=(o,t,r,a=1)=>{if(u.has(o))return u.get(o);const i=g(o,t,r,a);return u.set(o,i),i},m=(o,t=7)=>{let r=[0,0,0,1],a=[255,255,255,1];"string"==typeof o?(r=p(o),a=r):"object"==typeof o&&null!==o&&"string"==typeof o.background&&"string"==typeof o.foreground&&(r=p(o.background),a="string"==typeof o.foreground?p(o.foreground):r);const i=h(r[0],r[1],r[2]),s=k([r[0],r[1],r[2]],[a[0],a[1],a[2]],t,i);return a=[...s.foreground,1],{background:e.hex(`rgba(${r.join(",")})`),foreground:e.hex(`rgba(${a.join(",")})`),contrast:s.contrast}},y=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}:host>span{border-radius:var(--kolibri-border-radius);display:inline-flex;line-height:calc(1rem + var(--kolibri-spacing));place-items:center}:host>span kol-span-wc{padding:var(--kolibri-spacing) calc(2 * var(--kolibri-spacing))}:host>span.smart-button>kol-span-wc{border-right:1px solid rgba(0, 0, 0, 0.25)}:host>span>kol-button-wc button{border-radius:0 var(--kolibri-spacing) var(--kolibri-spacing) 0;color:inherit}";r("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const v=/^([a-f0-9]{3}|[a-f0-9]{6})$/,w=class{constructor(t){o(this,t),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=o=>{let t,r=o;"string"==typeof r?(v.test(r)&&(a("[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}`),t=m(r)):t=m({background:r.backgroundColor,foreground:r.color}),t.contrast<7&&s(`[KolBadge] The contrast of ${t.contrast} (≥7, AAA) is too low, between the color pair ${t.background} and ${t.foreground}.`),this.bgColorStr=t.background,this.colorStr=t.foreground},this._color="#000",this._icon=void 0,this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:"#000",_label:""}}render(){return i(t,null,i("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},i("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&i("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(o){l(this,"_color",(o=>"string"==typeof o||"object"==typeof o&&null!==o&&"string"==typeof o.backgroundColor&&"string"==typeof o.color),new Set(["string","KoliBriColor"]),o,{defaultValue:"#000",hooks:{beforePatch:this.handleColorChange}})}validateLabel(o){f(this,o,{hooks:{afterPatch:o=>{"string"==typeof o&&o.length>32&&s(`[KolBadge] The label is too long for a badge (${o.length} > 32).`)}}})}validateSmartButton(o){c(o,(()=>{try{o=b(o)}catch(o){}d(this,"_smartButton",o)}))}componentWillLoad(){this.validateColor(this._color),this.validateLabel(this._label),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_label:["validateLabel"],_smartButton:["validateSmartButton"]}}};w.style={default:y};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","_label","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateLabel","afterPatch","length","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 {\n\tdisplay: inline-block;\n}\n:host > span {\n\tborder-radius: var(--kolibri-border-radius);\n\tdisplay: flex;\n\t/* height: calc(1rem + 3 * var(--kolibri-spacing)); we could not limited the height */\n\tline-height: calc(1rem + var(--kolibri-spacing));\n\tplace-items: center;\n}\n:host > span kol-span-wc {\n\tpadding: var(--kolibri-spacing) calc(2 * var(--kolibri-spacing));\n}\n:host > span > kol-span-wc {\n\talign-items: center;\n\tfont-style: normal;\n\tgap: calc(2 * var(--kolibri-spacing));\n}\n:host > span.smart-button > kol-span-wc {\n\tborder-right: 1px solid rgba(0, 0, 0, 0.25);\n}\n:host > span > kol-span-wc > span {\n\tdisplay: flex;\n\tgap: var(--kolibri-spacing);\n}\n:host > span > kol-button-wc button {\n\tborder-radius: 0 var(--kolibri-spacing) var(--kolibri-spacing) 0;\n\tcolor: inherit;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { validateLabel } from '../../utils/validators/label';\nimport { ColorContrast, createContrastColorPair } from './contrast';\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\tlabel: string;\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.state._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 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\t_label: '',\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('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: (value) => {\n\t\t\t\t\tif (typeof value === 'string' && value.length > 32) {\n\t\t\t\t\t\ta11yHint(`[KolBadge] The label is too long for a badge (${value.length} > 32).`);\n\t\t\t\t\t}\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.validateLabel(this._label);\n\t\tthis.validateSmartButton(this._smartButton);\n\t}\n}\n"],"mappings":";;;yWAiCO,MAAMA,EAAiB,CAACC,EAAWC,EAAWC,KACpD,MAAMC,GAAOH,EAAI,IAAMC,EAAI,IAAMC,EAAI,KAAO,IAC5C,OAAOC,GAAO,KAAO,EAAI,CAAC,EAapB,MAAMC,EAAoB,CAACC,EAAgBC,EAAoBC,EAAeC,EAAM,KAC1F,MAAMC,EAAa,CAClBC,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,GAClGI,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,GAClGI,KAAKC,IAAID,KAAKE,IAAIF,KAAKG,MAAMP,EAAc,GAAKE,EAAME,KAAKC,IAAI,EAAGL,EAAc,GAAK,MAAO,KAAM,IAEnG,MAAMQ,EAAWC,EAAIC,EAAYD,IAAI,QAAQV,EAAUY,KAAK,WAAYD,EAAYD,IAAI,QAAQN,EAAMQ,KAAK,YAC3G,MAAMC,EAAQT,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAC1C,GAAIS,IAAU,GAAKA,IAAU,KAAOJ,EAAWP,EAAO,CACrD,MAAO,CACNY,WAAYd,EACZe,WAAYX,EACZK,W,KAEK,CACN,OAAOV,EAAkBC,EAAWI,EAAOF,EAAOC,E,GAIpD,MAAMa,EAA0C,IAAIC,IAG7C,MAAMC,EAAmB,CAAClB,EAAgBC,EAAoBC,EAAeC,EAAM,KACzF,GAAIa,EAAMG,IAAInB,GAAY,CACzB,OAAOgB,EAAMI,IAAIpB,E,CAElB,MAAMI,EAAQL,EAAkBC,EAAWC,EAAeC,EAAOC,GACjEa,EAAMK,IAAIrB,EAAWI,GACrB,OAAOA,CAAK,EAGN,MAAMkB,EAA0B,CAAClB,EAAmCmB,EAAgB,KAC1F,IAAIvB,EAAkB,CAAC,EAAG,EAAG,EAAG,GAChC,IAAIC,EAAsB,CAAC,IAAK,IAAK,IAAK,GAC1C,UAAWG,IAAU,SAAU,CAC9BJ,EAAYwB,EAAUpB,GACtBH,EAAgBD,C,MACV,UAAWI,IAAU,UAAYA,IAAU,aAAeA,EAAMU,aAAe,iBAAmBV,EAAMW,aAAe,SAAU,CACvIf,EAAYwB,EAAUpB,EAAMU,YAC5B,UAAWV,EAAMW,aAAe,SAAU,CACzCd,EAAgBuB,EAAUpB,EAAMW,W,KAC1B,CACNd,EAAgBD,C,EAGlB,MAAMF,EAAMJ,EAAeM,EAAU,GAAIA,EAAU,GAAIA,EAAU,IACjE,MAAMyB,EAAgBP,EACrB,CAAClB,EAAU,GAAIA,EAAU,GAAIA,EAAU,IACvC,CAACC,EAAc,GAAIA,EAAc,GAAIA,EAAc,IACnDsB,EACAzB,GAEDG,EAAgB,IAAIwB,EAAcV,WAAY,GAE9C,MAAO,CACND,WAAYH,EAAYD,IAAI,QAAQV,EAAUY,KAAK,SACnDG,WAAYJ,EAAYD,IAAI,QAAQT,EAAcW,KAAK,SACvDH,SAAUgB,EAAchB,SACxB,EC1GF,MAAMiB,EAAkB,gmECWxBC,EAAY,uEAEZ,MAAMC,EAAc,8B,MAqCPC,EAAQ,M,yBACZC,KAAAC,WAAa,OACbD,KAAAE,SAAW,OAmEXF,KAAAG,kBAAqBC,IAC5B,IAAI9B,EAAQ8B,EACZ,IAAIT,EACJ,UAAWrB,IAAU,SAAU,CAC9B,GAAIwB,EAAYO,KAAK/B,GAAQ,CAE5BgC,EACC,qJAEDhC,EAAQ,IAAIA,G,CAEbqB,EAAgBH,EAAwBlB,E,KAClC,CACNqB,EAAgBH,EAAwB,CACvCR,WAAYV,EAAMiC,gBAClBtB,WAAYX,EAAMA,O,CAGpB,GAAIqB,EAAchB,SAAW,EAAG,CAC/B6B,EACC,8BAA8Bb,EAAchB,yDAAyDgB,EAAcX,kBAAkBW,EAAcV,c,CAGrJe,KAAKC,WAAaN,EAAcX,WAChCgB,KAAKE,SAAWP,EAAcV,UAAU,E,YAtDO,O,oCAUM,M,6DAetB,CAC/BwB,OAAQ,OACRC,OAAQ,G,CA9DFC,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,QACCE,MAAO,CACN,sBAAuBd,KAAKe,MAAMC,eAAiB,UAAYhB,KAAKe,MAAMC,eAAiB,MAE5FC,MAAO,CACNV,gBAAiBP,KAAKC,WACtB3B,MAAO0B,KAAKE,WAGbU,EAAA,eAAaM,MAAOlB,KAAKkB,MAAOC,UAAWnB,KAAKmB,UAAWT,OAAQV,KAAKe,MAAML,gBACtEV,KAAKe,MAAMC,eAAiB,UAAYhB,KAAKe,MAAMC,eAAiB,MAC3EJ,EAAA,iBACCQ,WAAYpB,KAAKe,MAAMC,aAAaI,WACpCC,aAAcrB,KAAKe,MAAMC,aAAaK,aACtCC,UAAWtB,KAAKe,MAAMC,aAAaM,UACnCJ,MAAOlB,KAAKe,MAAMC,aAAaE,MAC/BC,UAAW,KACXI,IAAKvB,KAAKe,MAAMC,aAAaO,IAC7Bb,OAAQV,KAAKe,MAAMC,aAAaN,OAChCc,IAAKxB,KAAKe,MAAMC,aAAaQ,IAC7BC,cAAezB,KAAKe,MAAMC,aAAaS,cACvCC,SAAU1B,KAAKe,MAAMC,aAAaU,Y,CAwEjCC,cAAcvB,GACpBwB,EACC5B,KACA,UACCI,UACOA,IAAU,iBACTA,IAAU,UAAYA,IAAU,aAAeA,EAAMG,kBAAoB,iBAAmBH,EAAM9B,QAAU,UACrH,IAAIuD,IAAI,CAAC,SAAU,iBACnBzB,EACA,CACC0B,aAAc,OACdC,MAAO,CACNC,YAAahC,KAAKG,oB,CAUf8B,cAAc7B,GACpB6B,EAAcjC,KAAMI,EAAO,CAC1B2B,MAAO,CACNG,WAAa9B,IACZ,UAAWA,IAAU,UAAYA,EAAM+B,OAAS,GAAI,CACnD3B,EAAS,iDAAiDJ,EAAM+B,gB,MAW9DC,oBAAoBhC,GAC1BiC,EAAoBjC,GAAO,KAC1B,IACCA,EAAQkC,EAAuBlC,E,CAE9B,MAAOmC,G,CAGTC,EAASxC,KAAM,eAAgBI,EAAM,G,CAOhCqC,oBACNzC,KAAK2B,cAAc3B,KAAKS,QACxBT,KAAKiC,cAAcjC,KAAKU,QACxBV,KAAKoC,oBAAoBpC,KAAKgB,a"}
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","_label","render","h","Host","class","state","_smartButton","style","_icon","_iconOnly","_ariaLabel","_customClass","_disabled","_id","_on","_tooltipAlign","_variant","validateColor","watchValidator","Set","defaultValue","hooks","beforePatch","validateLabel","afterPatch","length","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\tborder-radius: var(--kolibri-border-radius);\n\tdisplay: inline-flex;\n\tline-height: calc(1rem + var(--kolibri-spacing));\n\tplace-items: center;\n}\n:host > span kol-span-wc {\n\tpadding: var(--kolibri-spacing) calc(2 * var(--kolibri-spacing));\n}\n:host > span.smart-button > kol-span-wc {\n\tborder-right: 1px solid rgba(0, 0, 0, 0.25);\n}\n:host > span > kol-button-wc button {\n\tborder-radius: 0 var(--kolibri-spacing) var(--kolibri-spacing) 0;\n\tcolor: inherit;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { ButtonProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { a11yHint, devHint, featureHint } from '../../utils/a11y.tipps';\nimport { objectObjectHandler, parseJson, setState, watchValidator } from '../../utils/prop.validators';\nimport { validateLabel } from '../../utils/validators/label';\nimport { ColorContrast, createContrastColorPair } from './contrast';\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\tlabel: string;\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.state._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 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\t_label: '…', // ⚠ required\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('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabel(this, value, {\n\t\t\thooks: {\n\t\t\t\tafterPatch: (value) => {\n\t\t\t\t\tif (typeof value === 'string' && value.length > 32) {\n\t\t\t\t\t\ta11yHint(`[KolBadge] The label is too long for a badge (${value.length} > 32).`);\n\t\t\t\t\t}\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.validateLabel(this._label);\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 i,h as o,F as r,H as a}from"./index-50adf9a0.js";import{b as e}from"./a11y.tipps-5cdbd5e2.js";import{w as l}from"./prop.validators-8365f685.js";import{w as n}from"./validation-3ea5cbb3.js";import"./dev.utils-05f4e663.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const t=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}ul,li{margin:0;padding:0;list-style:none;display:flex;gap:0.5em;flex-wrap:wrap;place-items:center}kol-icon::part(separator){font-weight:900;font-size:0.7em}kol-icon::part(separator)::before{content:'\\f054';font-family:'Font Awesome 6 Free'}",s=class{constructor(o){i(this,o),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const i=this.state._links.length-1;return o(a,null,o("nav",{"aria-label":this.state._ariaLabel},o("ul",null,0===this.state._links.length&&o("li",null,o("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-house"}),"…"),this.state._links.map(((a,l)=>o("li",{key:l},0!==l&&o("kol-icon",{_ariaLabel:"",_icon:"fa-solid fa-angle-right",_part:"separator",exportparts:"separator"}),l===i?o("span",null,a._iconOnly?o("kol-icon",{_ariaLabel:a._label,_icon:"string"==typeof a._icon?a._icon:"fa-solid fa-link-slash"}):o(r,null,a._label)):o("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},a,{_ariaLabel:a._label}),a._label)))))))}validateAriaLabel(i){l(this,"_ariaLabel",i,{required:!0}),e(i)}validateLinks(i){n("KolBreadcrumb",this,i)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};s.style={default:t};export{s as kol_breadcrumb};
4
+ import{r as i,h as o,F as r,H as a}from"./index-50adf9a0.js";import{b as e}from"./a11y.tipps-5cdbd5e2.js";import{w as l}from"./prop.validators-769a843a.js";import{w as n}from"./validation-f13f1eed.js";import"./dev.utils-05f4e663.js";import"./reuse-56bb5a4b.js";import"./index-676dbf61.js";const t=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}ul,li{margin:0;padding:0;list-style:none;display:flex;gap:0.5em;flex-wrap:wrap;place-items:center}kol-icon::part(separator){font-weight:900;font-size:0.7em}kol-icon::part(separator)::before{content:'\\f054';font-family:'Font Awesome 6 Free'}",s=class{constructor(o){i(this,o),this._ariaLabel=void 0,this._links=void 0,this.state={_ariaLabel:"…",_links:[]}}render(){const i=this.state._links.length-1;return o(a,null,o("nav",{"aria-label":this.state._ariaLabel},o("ul",null,0===this.state._links.length&&o("li",null,o("kol-icon",{_ariaLabel:"",_icon:"codicon codicon-home"}),"…"),this.state._links.map(((a,l)=>o("li",{key:l},0!==l&&o("kol-icon",{_ariaLabel:"",_icon:"codicon codicon-chevron-right",_part:"separator",exportparts:"separator"}),l===i?o("span",null,a._iconOnly?o("kol-icon",{_ariaLabel:a._label,_icon:"string"==typeof a._icon?a._icon:"codicon codicon-symbol-event"}):o(r,null,a._label)):o("kol-link",Object.assign({exportparts:"link",_useCase:"nav"},a,{_ariaLabel:a._label}),a._label)))))))}validateAriaLabel(i){l(this,"_ariaLabel",i,{required:!0}),e(i)}validateLinks(i){n("KolBreadcrumb",this,i)}componentWillLoad(){this.validateAriaLabel(this._ariaLabel),this.validateLinks(this._links)}static get watchers(){return{_ariaLabel:["validateAriaLabel"],_links:["validateLinks"]}}};s.style={default:t};export{s 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/breadcrumb/style.css?tag=kol-breadcrumb&mode=default&encapsulation=shadow","./src/components/breadcrumb/component.tsx"],"sourcesContent":["@import '../style.css';\n\nul,\nli {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tdisplay: flex;\n\tgap: 0.5em;\n\tflex-wrap: wrap;\n\tplace-items: center;\n}\n\nkol-icon::part(separator) {\n\tfont-weight: 900;\n\tfont-size: 0.7em;\n}\n\nkol-icon::part(separator)::before {\n\tcontent: '\\f054';\n\tfont-family: 'Font Awesome 6 Free';\n}\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,uvD,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\nul,\nli {\n\tmargin: 0;\n\tpadding: 0;\n\tlist-style: none;\n\tdisplay: flex;\n\tgap: 0.5em;\n\tflex-wrap: wrap;\n\tplace-items: center;\n}\n\nkol-icon::part(separator) {\n\tfont-weight: 900;\n\tfont-size: 0.7em;\n}\n\nkol-icon::part(separator)::before {\n\tcontent: '\\f054';\n\tfont-family: 'Font Awesome 6 Free';\n}\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=\"codicon codicon-home\" />…\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=\"codicon codicon-chevron-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 : 'codicon codicon-symbol-event'} />\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,iqD,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,yBAAyB,KAGxDL,KAAKC,MAAMJ,OAAOS,KAAI,CAACC,EAAMC,IAE5BL,EAAA,MAAIM,IAAKD,GACPA,IAAU,GAAKL,EAAA,YAAUP,WAAW,GAAGS,MAAM,gCAAgCK,MAAM,YAAYC,YAAY,cAC3GH,IAAUT,EACVI,EAAA,YACEI,EAAKK,UACLT,EAAA,YAAUP,WAAYW,EAAKM,OAAQR,aAAcE,EAAKF,QAAU,SAAWE,EAAKF,MAAQ,iCAExFF,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 as o,h as i,H as r}from"./index-50adf9a0.js";const n=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}:host>kol-button-group-wc{display:inline-flex;flex-wrap:wrap;gap:calc(2 * var(--kolibri-spacing))}",l=class{constructor(i){o(this,i)}render(){return i(r,null,i("kol-button-group-wc",null,i("slot",null)))}};l.style={default:n};export{l as kol_button_group};
4
+ import{r as o,h as i,H as r}from"./index-50adf9a0.js";const l=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}:host>kol-button-group-wc{display:inline-flex;flex-wrap:wrap;gap:calc(2 * var(--kolibri-spacing))}",n=class{constructor(i){o(this,i)}render(){return i(r,null,i("kol-button-group-wc",null,i("slot",null)))}};n.style={default:l};export{n as kol_button_group};
@@ -1 +1 @@
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,wmD,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,khD,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 o,H as n,g as e}from"./index-50adf9a0.js";import{a as t}from"./reuse-56bb5a4b.js";const r=":host{--kolibri-border-color:#666;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host{font-family:inherit;font-size:inherit}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-block}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color}:host{font-family:var(--kolibri-font-family);font-size:inherit}*{box-sizing:border-box}kol-icon{color:inherit}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>kol-icon,kol-span-wc>span>kol-icon{display:inline-grid;place-items:center;width:1em;height:1em}a,button,input,select,textarea{appearance:none;cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}h1,h2,h3,h4,h5,h6{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size);margin:0;padding:0}a,button{text-decoration-line:underline}a{display:inline-flex}button{display:inline-block;background-color:transparent;border:none}a:focus,a:hover,button:focus,button:hover{text-decoration-thickness:0.2em}kol-icon{display:inline-block;padding:0 var(--kolibri-spacing)}.hidden{display:none;visibility:hidden}.skip{left:-99999px;overflow:hidden;position:absolute;z-index:9999999;line-height:1em}.skip:focus{background-color:white;box-shadow:0 0 calc(2 * var(--kolibri-spacing)) calc(2 * var(--kolibri-spacing)) white;left:unset;position:unset}",s=class{constructor(o){i(this,o),this.catchRef=i=>{this.ref=i,t(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(n,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:"link",_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},o("slot",{name:"expert",slot:"expert"})))}get host(){return e(this)}};s.style={default:r};export{s as kol_button_link};
4
+ import{r as i,h as o,H as e,g as n}from"./index-50adf9a0.js";import{a as t}from"./reuse-56bb5a4b.js";const r=":host{--kolibri-border-color:#666;--kolibri-border-radius:0.125rem;--kolibri-border-width:1px;--kolibri-color-black:#000;--kolibri-color-white:#fff;--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-font-family:Verdana, Arial, Tahoma, Helvetica, sans-serif;--kolibri-font-size:16px;--kolibri-spacing:0.25rem}:host *{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}:host{display:inline-flex}a,button{background-color:transparent;border:none;font-size:inherit;margin:0;padding:0;transition-duration:0.5s;transition-property:background-color, color, border-color;width:100%}kol-icon.external-link-icon{display:inline-flex}:host{font-family:var(--kolibri-font-family);font-size:var(--kolibri-font-size)}*{box-sizing:border-box}kol-span-wc{display:grid;gap:var(--kolibri-spacing);place-items:center}kol-span-wc>span{display:flex;gap:var(--kolibri-spacing);place-items:center}kol-span-wc kol-icon{display:contents;padding:0 var(--kolibri-spacing)}a,button,input,select,textarea{appearance:none;cursor:pointer;font-family:var(--kolibri-font-family)}.icon-only>kol-span-wc>span>span{display:none}a,button{text-align:left;text-decoration-line:underline}a{display:inline-flex;gap:var(--kolibri-spacing);place-items:center}:is(a,button):is(:focus,:hover){text-decoration-thickness:0.2em}.hidden{display:none;visibility:hidden}.skip{left:-99999px;overflow:hidden;position:absolute;z-index:9999999;line-height:1em}.skip:focus{background-color:white;box-shadow:0 0 calc(2 * var(--kolibri-spacing)) calc(2 * var(--kolibri-spacing)) white;left:unset;position:unset}",s=class{constructor(o){i(this,o),this.catchRef=i=>{this.ref=i,t(this.host,this.ref)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,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:"link",_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},o("slot",{name:"expert",slot:"expert"})))}get host(){return n(this)}};s.style={default:r};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/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=\"link\"\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{/*\n\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen, da dadurch ermöglicht wird,\n\t\t\t\t\t\tdie Unterstützung hinsichtlich der Barrierefreiheit der Komponente zu umgehen.\n\t\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,miE,MCuBXC,EAAa,M,yBAIRC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAgBH,KAAKI,KAAMJ,KAAKE,IAAI,E,gIA+DiC,G,4CAUhB,M,oCAUA,M,6HA8BX,M,WAKA,S,sBAnHpCG,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,MAAM,OACNC,UAAWrB,KAAKqB,UAChBC,cAAetB,KAAKsB,cACpBC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,QAMblB,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=\"link\"\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{/*\n\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen, da dadurch ermöglicht wird,\n\t\t\t\t\t\tdie Unterstützung hinsichtlich der Barrierefreiheit der Komponente zu umgehen.\n\t\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,63D,MCuBXC,EAAa,M,yBAIRC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAgBH,KAAKI,KAAMJ,KAAKE,IAAI,E,sLAyEiB,M,oCAUA,M,6HA8BX,M,WAKA,S,sBAnHpCG,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,MAAM,OACNC,UAAWrB,KAAKqB,UAChBC,cAAetB,KAAKsB,cACpBC,MAAOvB,KAAKuB,MACZC,OAAQxB,KAAKwB,QAMblB,EAAA,QAAMmB,KAAK,SAASC,KAAK,Y"}