@public-ui/components 2.0.4 → 2.0.6

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 (722) hide show
  1. package/custom-elements.json +184 -3
  2. package/dist/cjs/{InternalUnderlinedAccessKey-7ae57f5a.js → InternalUnderlinedAccessKey-129a07ae.js} +1 -1
  3. package/dist/cjs/{InternalUnderlinedAccessKey-7ae57f5a.js.map → InternalUnderlinedAccessKey-129a07ae.js.map} +1 -1
  4. package/dist/cjs/align-floating-elements-a2defb7a.js +4 -0
  5. package/dist/cjs/align-floating-elements-a2defb7a.js.map +1 -0
  6. package/dist/cjs/app-globals-199449c5.js +4 -0
  7. package/dist/cjs/app-globals-199449c5.js.map +1 -0
  8. package/dist/cjs/associated.controller-9ab5fcdd.js +4 -0
  9. package/dist/cjs/associated.controller-9ab5fcdd.js.map +1 -0
  10. package/dist/cjs/{controller-3967f9ab.js → controller-35af34ae.js} +1 -1
  11. package/dist/cjs/{controller-3967f9ab.js.map → controller-35af34ae.js.map} +1 -1
  12. package/dist/cjs/controller-3e0a6924.js +4 -0
  13. package/dist/cjs/controller-3e0a6924.js.map +1 -0
  14. package/dist/cjs/{controller-f9770277.js → controller-3ebac0f5.js} +1 -1
  15. package/dist/cjs/{controller-f9770277.js.map → controller-3ebac0f5.js.map} +1 -1
  16. package/dist/cjs/{controller-e048eb24.js → controller-abce4008.js} +1 -1
  17. package/dist/cjs/{controller-e048eb24.js.map → controller-abce4008.js.map} +1 -1
  18. package/dist/cjs/controller-e3bbc6e9.js +4 -0
  19. package/dist/cjs/controller-e3bbc6e9.js.map +1 -0
  20. package/dist/cjs/{controller-icon-ae4c45b7.js → controller-icon-fbbc139a.js} +1 -1
  21. package/dist/cjs/{controller-icon-ae4c45b7.js.map → controller-icon-fbbc139a.js.map} +1 -1
  22. package/dist/cjs/dev.utils-0c521af5.js +4 -0
  23. package/dist/cjs/dev.utils-0c521af5.js.map +1 -0
  24. package/dist/cjs/devtools-51056247.js +4 -0
  25. package/dist/cjs/devtools-51056247.js.map +1 -0
  26. package/dist/cjs/events-221fcb43.js +4 -0
  27. package/dist/cjs/events-221fcb43.js.map +1 -0
  28. package/dist/cjs/form-field-msg-e7415486.js +4 -0
  29. package/dist/cjs/form-field-msg-e7415486.js.map +1 -0
  30. package/dist/cjs/i18n-411431b1.js +4 -0
  31. package/dist/cjs/i18n-411431b1.js.map +1 -0
  32. package/dist/cjs/index-7215e5f8.js +4 -0
  33. package/dist/cjs/index-7215e5f8.js.map +1 -0
  34. package/dist/cjs/index-d6d9ba30.js +4 -0
  35. package/dist/cjs/index-d6d9ba30.js.map +1 -0
  36. package/dist/cjs/index-daeff106.js +4 -0
  37. package/dist/cjs/index-daeff106.js.map +1 -0
  38. package/dist/cjs/index.cjs.js +1 -1
  39. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  40. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  41. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  42. package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
  43. package/dist/cjs/kol-alert-wc_3.cjs.entry.js +1 -1
  44. package/dist/cjs/kol-alert-wc_3.cjs.entry.js.map +1 -1
  45. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  46. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  47. package/dist/cjs/kol-avatar-wc.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  49. package/dist/cjs/kol-avatar.cjs.entry.js.map +1 -1
  50. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  51. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  52. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  53. package/dist/cjs/kol-breadcrumb.cjs.entry.js.map +1 -1
  54. package/dist/cjs/kol-button-group-wc.cjs.entry.js +1 -1
  55. package/dist/cjs/kol-button-group.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-button-group.cjs.entry.js.map +1 -1
  57. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
  59. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  61. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
  63. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  64. package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
  65. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  66. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  67. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  68. package/dist/cjs/kol-heading.cjs.entry.js.map +1 -1
  69. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  70. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-indented-text.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-indented-text.cjs.entry.js.map +1 -1
  73. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
  75. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
  77. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  78. package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
  79. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  80. package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
  81. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  82. package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
  83. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  84. package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
  85. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  86. package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
  87. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  88. package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
  89. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  90. package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
  91. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  92. package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
  93. package/dist/cjs/kol-input.cjs.entry.js +1 -1
  94. package/dist/cjs/kol-input.cjs.entry.js.map +1 -1
  95. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  96. package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
  97. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  98. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  99. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  100. package/dist/cjs/kol-link-group.cjs.entry.js.map +1 -1
  101. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  102. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  103. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  104. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  105. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  106. package/dist/cjs/kol-logo.cjs.entry.js.map +1 -1
  107. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  108. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  109. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  110. package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
  111. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  113. package/dist/cjs/kol-popover-wc.cjs.entry.js +1 -1
  114. package/dist/cjs/kol-popover-wc.cjs.entry.js.map +1 -1
  115. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  116. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  117. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  118. package/dist/cjs/kol-quote.cjs.entry.js.map +1 -1
  119. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  120. package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
  121. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  122. package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
  123. package/dist/cjs/kol-span-wc_2.cjs.entry.js +1 -1
  124. package/dist/cjs/kol-span-wc_2.cjs.entry.js.map +1 -1
  125. package/dist/cjs/kol-span.cjs.entry.js +1 -1
  126. package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
  127. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  128. package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
  129. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  130. package/dist/cjs/kol-split-button.cjs.entry.js.map +1 -1
  131. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  132. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  133. package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
  134. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  135. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  136. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  137. package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
  138. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  139. package/dist/cjs/kol-toast-container.cjs.entry.js.map +1 -1
  140. package/dist/cjs/kol-tree-item-wc.cjs.entry.js +4 -0
  141. package/dist/cjs/kol-tree-item-wc.cjs.entry.js.map +1 -0
  142. package/dist/cjs/kol-tree-item.cjs.entry.js +4 -0
  143. package/dist/cjs/kol-tree-item.cjs.entry.js.map +1 -0
  144. package/dist/cjs/kol-tree-wc.cjs.entry.js +4 -0
  145. package/dist/cjs/kol-tree-wc.cjs.entry.js.map +1 -0
  146. package/dist/cjs/kol-tree.cjs.entry.js +4 -0
  147. package/dist/cjs/kol-tree.cjs.entry.js.map +1 -0
  148. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  149. package/dist/cjs/kol-version.cjs.entry.js.map +1 -1
  150. package/dist/cjs/kolibri.cjs.js +1 -1
  151. package/dist/cjs/loader.cjs.js +1 -1
  152. package/dist/cjs/{validation-0bd89158.js → validation-e44562d8.js} +1 -1
  153. package/dist/cjs/{validation-0bd89158.js.map → validation-e44562d8.js.map} +1 -1
  154. package/dist/cjs/validation-ea46d26d.js +4 -0
  155. package/dist/cjs/{validation-db3a9e1a.js.map → validation-ea46d26d.js.map} +1 -1
  156. package/dist/components/align-floating-elements.js +1 -1
  157. package/dist/components/align-floating-elements.js.map +1 -1
  158. package/dist/components/component11.js +1 -1
  159. package/dist/components/component11.js.map +1 -1
  160. package/dist/components/component12.js +1 -1
  161. package/dist/components/component12.js.map +1 -1
  162. package/dist/components/component13.js +1 -1
  163. package/dist/components/component13.js.map +1 -1
  164. package/dist/components/component14.js +1 -1
  165. package/dist/components/component14.js.map +1 -1
  166. package/dist/components/component15.js +4 -0
  167. package/dist/components/component15.js.map +1 -0
  168. package/dist/components/component16.js +4 -0
  169. package/dist/components/component16.js.map +1 -0
  170. package/dist/components/component2.js +1 -1
  171. package/dist/components/component2.js.map +1 -1
  172. package/dist/components/component3.js +1 -1
  173. package/dist/components/component3.js.map +1 -1
  174. package/dist/components/component4.js +1 -1
  175. package/dist/components/component5.js +1 -1
  176. package/dist/components/component5.js.map +1 -1
  177. package/dist/components/component6.js +1 -1
  178. package/dist/components/component6.js.map +1 -1
  179. package/dist/components/component7.js +1 -1
  180. package/dist/components/component8.js +1 -1
  181. package/dist/components/component8.js.map +1 -1
  182. package/dist/components/component9.js +1 -1
  183. package/dist/components/component9.js.map +1 -1
  184. package/dist/components/controller-icon.js +1 -1
  185. package/dist/components/controller.js +1 -1
  186. package/dist/components/controller2.js +1 -1
  187. package/dist/components/controller2.js.map +1 -1
  188. package/dist/components/controller3.js +1 -1
  189. package/dist/components/controller4.js +1 -1
  190. package/dist/components/dev.utils.js +1 -1
  191. package/dist/components/dev.utils.js.map +1 -1
  192. package/dist/components/devtools.js +1 -1
  193. package/dist/components/devtools.js.map +1 -1
  194. package/dist/components/events.js +1 -1
  195. package/dist/components/events.js.map +1 -1
  196. package/dist/components/i18n.js +1 -1
  197. package/dist/components/i18n.js.map +1 -1
  198. package/dist/components/index.js +1 -1
  199. package/dist/components/index.js.map +1 -1
  200. package/dist/components/index2.js +1 -1
  201. package/dist/components/index2.js.map +1 -1
  202. package/dist/components/kol-abbr.js +1 -1
  203. package/dist/components/kol-abbr.js.map +1 -1
  204. package/dist/components/kol-accordion.js +1 -1
  205. package/dist/components/kol-accordion.js.map +1 -1
  206. package/dist/components/kol-avatar.js +1 -1
  207. package/dist/components/kol-avatar.js.map +1 -1
  208. package/dist/components/kol-breadcrumb.js +1 -1
  209. package/dist/components/kol-breadcrumb.js.map +1 -1
  210. package/dist/components/kol-button-group.js +1 -1
  211. package/dist/components/kol-button-group.js.map +1 -1
  212. package/dist/components/kol-button-link.js +1 -1
  213. package/dist/components/kol-button-link.js.map +1 -1
  214. package/dist/components/kol-card.js +1 -1
  215. package/dist/components/kol-card.js.map +1 -1
  216. package/dist/components/kol-details.js +1 -1
  217. package/dist/components/kol-details.js.map +1 -1
  218. package/dist/components/kol-form.js +1 -1
  219. package/dist/components/kol-form.js.map +1 -1
  220. package/dist/components/kol-heading.js +1 -1
  221. package/dist/components/kol-heading.js.map +1 -1
  222. package/dist/components/kol-image.js +1 -1
  223. package/dist/components/kol-input-checkbox.js +1 -1
  224. package/dist/components/kol-input-checkbox.js.map +1 -1
  225. package/dist/components/kol-input-color.js +1 -1
  226. package/dist/components/kol-input-color.js.map +1 -1
  227. package/dist/components/kol-input-date.js +1 -1
  228. package/dist/components/kol-input-date.js.map +1 -1
  229. package/dist/components/kol-input-email.js +1 -1
  230. package/dist/components/kol-input-email.js.map +1 -1
  231. package/dist/components/kol-input-file.js +1 -1
  232. package/dist/components/kol-input-file.js.map +1 -1
  233. package/dist/components/kol-input-number.js +1 -1
  234. package/dist/components/kol-input-number.js.map +1 -1
  235. package/dist/components/kol-input-password.js +1 -1
  236. package/dist/components/kol-input-password.js.map +1 -1
  237. package/dist/components/kol-input-radio.js +1 -1
  238. package/dist/components/kol-input-radio.js.map +1 -1
  239. package/dist/components/kol-input-range.js +1 -1
  240. package/dist/components/kol-input-range.js.map +1 -1
  241. package/dist/components/kol-input-text.js +1 -1
  242. package/dist/components/kol-input-text.js.map +1 -1
  243. package/dist/components/kol-kolibri.js +1 -1
  244. package/dist/components/kol-kolibri.js.map +1 -1
  245. package/dist/components/kol-link-button.js +1 -1
  246. package/dist/components/kol-link-button.js.map +1 -1
  247. package/dist/components/kol-link-group.js +1 -1
  248. package/dist/components/kol-link-group.js.map +1 -1
  249. package/dist/components/kol-logo.js +1 -1
  250. package/dist/components/kol-logo.js.map +1 -1
  251. package/dist/components/kol-modal.js +1 -1
  252. package/dist/components/kol-modal.js.map +1 -1
  253. package/dist/components/kol-nav.js +1 -1
  254. package/dist/components/kol-nav.js.map +1 -1
  255. package/dist/components/kol-popover-wc.js +1 -1
  256. package/dist/components/kol-popover-wc.js.map +1 -1
  257. package/dist/components/kol-progress.js +1 -1
  258. package/dist/components/kol-progress.js.map +1 -1
  259. package/dist/components/kol-quote.js +1 -1
  260. package/dist/components/kol-quote.js.map +1 -1
  261. package/dist/components/kol-skip-nav.js +1 -1
  262. package/dist/components/kol-skip-nav.js.map +1 -1
  263. package/dist/components/kol-span.js +1 -1
  264. package/dist/components/kol-span.js.map +1 -1
  265. package/dist/components/kol-spin.js +1 -1
  266. package/dist/components/kol-spin.js.map +1 -1
  267. package/dist/components/kol-split-button.js +1 -1
  268. package/dist/components/kol-split-button.js.map +1 -1
  269. package/dist/components/kol-table.js +1 -1
  270. package/dist/components/kol-table.js.map +1 -1
  271. package/dist/components/kol-tabs.js +1 -1
  272. package/dist/components/kol-tabs.js.map +1 -1
  273. package/dist/components/kol-textarea.js +1 -1
  274. package/dist/components/kol-textarea.js.map +1 -1
  275. package/dist/components/kol-toast-container.js.map +1 -1
  276. package/dist/components/kol-tree-item-wc.d.ts +11 -0
  277. package/dist/components/kol-tree-item-wc.js +4 -0
  278. package/dist/components/kol-tree-item-wc.js.map +1 -0
  279. package/dist/components/kol-tree-item.d.ts +11 -0
  280. package/dist/components/kol-tree-item.js +4 -0
  281. package/dist/components/kol-tree-item.js.map +1 -0
  282. package/dist/components/kol-tree-wc.d.ts +11 -0
  283. package/dist/components/kol-tree-wc.js +4 -0
  284. package/dist/components/kol-tree-wc.js.map +1 -0
  285. package/dist/components/kol-tree.d.ts +11 -0
  286. package/dist/components/kol-tree.js +4 -0
  287. package/dist/components/kol-tree.js.map +1 -0
  288. package/dist/components/kol-version.js +1 -1
  289. package/dist/components/kol-version.js.map +1 -1
  290. package/dist/components/shadow.js +1 -1
  291. package/dist/components/shadow.js.map +1 -1
  292. package/dist/components/shadow2.js +1 -1
  293. package/dist/components/shadow2.js.map +1 -1
  294. package/dist/components/shadow3.js +1 -1
  295. package/dist/components/shadow3.js.map +1 -1
  296. package/dist/components/validation.js +1 -1
  297. package/dist/esm/{InternalUnderlinedAccessKey-43e30086.js → InternalUnderlinedAccessKey-af163f50.js} +1 -1
  298. package/dist/esm/{InternalUnderlinedAccessKey-43e30086.js.map → InternalUnderlinedAccessKey-af163f50.js.map} +1 -1
  299. package/dist/esm/align-floating-elements-f3802656.js +4 -0
  300. package/dist/esm/align-floating-elements-f3802656.js.map +1 -0
  301. package/dist/esm/app-globals-2acbdec3.js +4 -0
  302. package/dist/esm/app-globals-2acbdec3.js.map +1 -0
  303. package/dist/esm/associated.controller-1c0a6905.js +4 -0
  304. package/dist/esm/associated.controller-1c0a6905.js.map +1 -0
  305. package/dist/esm/controller-1dd244e1.js +4 -0
  306. package/dist/esm/{controller-57209260.js.map → controller-1dd244e1.js.map} +1 -1
  307. package/dist/esm/{controller-04bfb6e9.js → controller-a5087ab9.js} +1 -1
  308. package/dist/esm/{controller-04bfb6e9.js.map → controller-a5087ab9.js.map} +1 -1
  309. package/dist/esm/controller-af0e42cc.js +4 -0
  310. package/dist/esm/{controller-657d41f2.js.map → controller-af0e42cc.js.map} +1 -1
  311. package/dist/esm/controller-b7dcc094.js +4 -0
  312. package/dist/{cjs/controller-bb17ecb2.js.map → esm/controller-b7dcc094.js.map} +1 -1
  313. package/dist/esm/controller-fd4e097d.js +4 -0
  314. package/dist/esm/controller-fd4e097d.js.map +1 -0
  315. package/dist/esm/controller-icon-1883d4c6.js +4 -0
  316. package/dist/esm/{controller-icon-78968844.js.map → controller-icon-1883d4c6.js.map} +1 -1
  317. package/dist/esm/dev.utils-c7d151c6.js +4 -0
  318. package/dist/esm/dev.utils-c7d151c6.js.map +1 -0
  319. package/dist/esm/devtools-4bcff5b1.js +4 -0
  320. package/dist/esm/devtools-4bcff5b1.js.map +1 -0
  321. package/dist/esm/events-29e84d75.js +4 -0
  322. package/dist/esm/events-29e84d75.js.map +1 -0
  323. package/dist/esm/form-field-msg-fc7cec72.js +4 -0
  324. package/dist/esm/form-field-msg-fc7cec72.js.map +1 -0
  325. package/dist/esm/i18n-73edd5e1.js +4 -0
  326. package/dist/esm/i18n-73edd5e1.js.map +1 -0
  327. package/dist/esm/index-a5e15b1e.js +4 -0
  328. package/dist/esm/index-a5e15b1e.js.map +1 -0
  329. package/dist/esm/index-c3ae175d.js +4 -0
  330. package/dist/esm/index-c3ae175d.js.map +1 -0
  331. package/dist/esm/index-eb50dd62.js +4 -0
  332. package/dist/esm/index-eb50dd62.js.map +1 -0
  333. package/dist/esm/index.js +1 -1
  334. package/dist/esm/kol-abbr.entry.js +1 -1
  335. package/dist/esm/kol-abbr.entry.js.map +1 -1
  336. package/dist/esm/kol-accordion.entry.js +1 -1
  337. package/dist/esm/kol-accordion.entry.js.map +1 -1
  338. package/dist/esm/kol-alert-wc_3.entry.js +1 -1
  339. package/dist/esm/kol-alert-wc_3.entry.js.map +1 -1
  340. package/dist/esm/kol-alert.entry.js +1 -1
  341. package/dist/esm/kol-alert.entry.js.map +1 -1
  342. package/dist/esm/kol-avatar-wc.entry.js +1 -1
  343. package/dist/esm/kol-avatar.entry.js +1 -1
  344. package/dist/esm/kol-avatar.entry.js.map +1 -1
  345. package/dist/esm/kol-badge.entry.js +1 -1
  346. package/dist/esm/kol-badge.entry.js.map +1 -1
  347. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  348. package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
  349. package/dist/esm/kol-button-group-wc.entry.js +1 -1
  350. package/dist/esm/kol-button-group.entry.js +1 -1
  351. package/dist/esm/kol-button-group.entry.js.map +1 -1
  352. package/dist/esm/kol-button-link.entry.js +1 -1
  353. package/dist/esm/kol-button-link.entry.js.map +1 -1
  354. package/dist/esm/kol-button.entry.js +1 -1
  355. package/dist/esm/kol-button.entry.js.map +1 -1
  356. package/dist/esm/kol-card.entry.js +1 -1
  357. package/dist/esm/kol-card.entry.js.map +1 -1
  358. package/dist/esm/kol-details.entry.js +1 -1
  359. package/dist/esm/kol-details.entry.js.map +1 -1
  360. package/dist/esm/kol-form.entry.js +1 -1
  361. package/dist/esm/kol-form.entry.js.map +1 -1
  362. package/dist/esm/kol-heading.entry.js +1 -1
  363. package/dist/esm/kol-heading.entry.js.map +1 -1
  364. package/dist/esm/kol-icon.entry.js +1 -1
  365. package/dist/esm/kol-image.entry.js +1 -1
  366. package/dist/esm/kol-indented-text.entry.js +1 -1
  367. package/dist/esm/kol-indented-text.entry.js.map +1 -1
  368. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  369. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  370. package/dist/esm/kol-input-color.entry.js +1 -1
  371. package/dist/esm/kol-input-color.entry.js.map +1 -1
  372. package/dist/esm/kol-input-date.entry.js +1 -1
  373. package/dist/esm/kol-input-date.entry.js.map +1 -1
  374. package/dist/esm/kol-input-email.entry.js +1 -1
  375. package/dist/esm/kol-input-email.entry.js.map +1 -1
  376. package/dist/esm/kol-input-file.entry.js +1 -1
  377. package/dist/esm/kol-input-file.entry.js.map +1 -1
  378. package/dist/esm/kol-input-number.entry.js +1 -1
  379. package/dist/esm/kol-input-number.entry.js.map +1 -1
  380. package/dist/esm/kol-input-password.entry.js +1 -1
  381. package/dist/esm/kol-input-password.entry.js.map +1 -1
  382. package/dist/esm/kol-input-radio.entry.js +1 -1
  383. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  384. package/dist/esm/kol-input-range.entry.js +1 -1
  385. package/dist/esm/kol-input-range.entry.js.map +1 -1
  386. package/dist/esm/kol-input-text.entry.js +1 -1
  387. package/dist/esm/kol-input-text.entry.js.map +1 -1
  388. package/dist/esm/kol-input.entry.js +1 -1
  389. package/dist/esm/kol-input.entry.js.map +1 -1
  390. package/dist/esm/kol-kolibri.entry.js +1 -1
  391. package/dist/esm/kol-kolibri.entry.js.map +1 -1
  392. package/dist/esm/kol-link-button.entry.js +1 -1
  393. package/dist/esm/kol-link-button.entry.js.map +1 -1
  394. package/dist/esm/kol-link-group.entry.js +1 -1
  395. package/dist/esm/kol-link-group.entry.js.map +1 -1
  396. package/dist/esm/kol-link-wc.entry.js +1 -1
  397. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  398. package/dist/esm/kol-link.entry.js +1 -1
  399. package/dist/esm/kol-link.entry.js.map +1 -1
  400. package/dist/esm/kol-logo.entry.js +1 -1
  401. package/dist/esm/kol-logo.entry.js.map +1 -1
  402. package/dist/esm/kol-modal.entry.js +1 -1
  403. package/dist/esm/kol-modal.entry.js.map +1 -1
  404. package/dist/esm/kol-nav.entry.js +1 -1
  405. package/dist/esm/kol-nav.entry.js.map +1 -1
  406. package/dist/esm/kol-pagination.entry.js +1 -1
  407. package/dist/esm/kol-pagination.entry.js.map +1 -1
  408. package/dist/esm/kol-popover-wc.entry.js +1 -1
  409. package/dist/esm/kol-popover-wc.entry.js.map +1 -1
  410. package/dist/esm/kol-progress.entry.js +1 -1
  411. package/dist/esm/kol-progress.entry.js.map +1 -1
  412. package/dist/esm/kol-quote.entry.js +1 -1
  413. package/dist/esm/kol-quote.entry.js.map +1 -1
  414. package/dist/esm/kol-select.entry.js +1 -1
  415. package/dist/esm/kol-select.entry.js.map +1 -1
  416. package/dist/esm/kol-skip-nav.entry.js +1 -1
  417. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  418. package/dist/esm/kol-span-wc_2.entry.js +1 -1
  419. package/dist/esm/kol-span-wc_2.entry.js.map +1 -1
  420. package/dist/esm/kol-span.entry.js +1 -1
  421. package/dist/esm/kol-span.entry.js.map +1 -1
  422. package/dist/esm/kol-spin.entry.js +1 -1
  423. package/dist/esm/kol-spin.entry.js.map +1 -1
  424. package/dist/esm/kol-split-button.entry.js +1 -1
  425. package/dist/esm/kol-split-button.entry.js.map +1 -1
  426. package/dist/esm/kol-symbol.entry.js +1 -1
  427. package/dist/esm/kol-table.entry.js +1 -1
  428. package/dist/esm/kol-table.entry.js.map +1 -1
  429. package/dist/esm/kol-tabs.entry.js +1 -1
  430. package/dist/esm/kol-tabs.entry.js.map +1 -1
  431. package/dist/esm/kol-textarea.entry.js +1 -1
  432. package/dist/esm/kol-textarea.entry.js.map +1 -1
  433. package/dist/esm/kol-toast-container.entry.js +1 -1
  434. package/dist/esm/kol-toast-container.entry.js.map +1 -1
  435. package/dist/esm/kol-tree-item-wc.entry.js +4 -0
  436. package/dist/esm/kol-tree-item-wc.entry.js.map +1 -0
  437. package/dist/esm/kol-tree-item.entry.js +4 -0
  438. package/dist/esm/kol-tree-item.entry.js.map +1 -0
  439. package/dist/esm/kol-tree-wc.entry.js +4 -0
  440. package/dist/esm/kol-tree-wc.entry.js.map +1 -0
  441. package/dist/esm/kol-tree.entry.js +4 -0
  442. package/dist/esm/kol-tree.entry.js.map +1 -0
  443. package/dist/esm/kol-version.entry.js +1 -1
  444. package/dist/esm/kol-version.entry.js.map +1 -1
  445. package/dist/esm/kolibri.js +1 -1
  446. package/dist/esm/loader.js +1 -1
  447. package/dist/esm/validation-005508b2.js +4 -0
  448. package/dist/esm/{validation-223a4d10.js.map → validation-005508b2.js.map} +1 -1
  449. package/dist/esm/validation-f540005c.js +4 -0
  450. package/dist/esm/{validation-e8916c82.js.map → validation-f540005c.js.map} +1 -1
  451. package/dist/kolibri/{InternalUnderlinedAccessKey-43e30086.js → InternalUnderlinedAccessKey-af163f50.js} +1 -1
  452. package/dist/kolibri/align-floating-elements-f3802656.js +4 -0
  453. package/dist/kolibri/align-floating-elements-f3802656.js.map +1 -0
  454. package/dist/kolibri/app-globals-2acbdec3.js +4 -0
  455. package/dist/kolibri/app-globals-2acbdec3.js.map +1 -0
  456. package/dist/kolibri/associated.controller-1c0a6905.js +4 -0
  457. package/dist/kolibri/associated.controller-1c0a6905.js.map +1 -0
  458. package/dist/kolibri/controller-1dd244e1.js +4 -0
  459. package/dist/kolibri/{controller-57209260.js.map → controller-1dd244e1.js.map} +1 -1
  460. package/dist/kolibri/controller-a5087ab9.js +4 -0
  461. package/dist/kolibri/{controller-04bfb6e9.js.map → controller-a5087ab9.js.map} +1 -1
  462. package/dist/kolibri/controller-af0e42cc.js +4 -0
  463. package/dist/kolibri/{controller-657d41f2.js.map → controller-af0e42cc.js.map} +1 -1
  464. package/dist/kolibri/controller-b7dcc094.js +4 -0
  465. package/dist/kolibri/controller-b7dcc094.js.map +1 -0
  466. package/dist/kolibri/controller-fd4e097d.js +4 -0
  467. package/dist/kolibri/controller-fd4e097d.js.map +1 -0
  468. package/dist/kolibri/controller-icon-1883d4c6.js +4 -0
  469. package/dist/kolibri/{controller-icon-78968844.js.map → controller-icon-1883d4c6.js.map} +1 -1
  470. package/dist/kolibri/dev.utils-c7d151c6.js +4 -0
  471. package/dist/kolibri/dev.utils-c7d151c6.js.map +1 -0
  472. package/dist/kolibri/devtools-4bcff5b1.js +4 -0
  473. package/dist/kolibri/devtools-4bcff5b1.js.map +1 -0
  474. package/dist/kolibri/events-29e84d75.js +4 -0
  475. package/dist/kolibri/events-29e84d75.js.map +1 -0
  476. package/dist/kolibri/form-field-msg-fc7cec72.js +4 -0
  477. package/dist/kolibri/form-field-msg-fc7cec72.js.map +1 -0
  478. package/dist/kolibri/i18n-73edd5e1.js +4 -0
  479. package/dist/kolibri/i18n-73edd5e1.js.map +1 -0
  480. package/dist/kolibri/index-a5e15b1e.js +5 -0
  481. package/dist/kolibri/index-a5e15b1e.js.map +1 -0
  482. package/dist/kolibri/index-c3ae175d.js +4 -0
  483. package/dist/kolibri/index-c3ae175d.js.map +1 -0
  484. package/dist/kolibri/index-eb50dd62.js +4 -0
  485. package/dist/kolibri/index-eb50dd62.js.map +1 -0
  486. package/dist/kolibri/index.esm.js +1 -1
  487. package/dist/kolibri/kol-abbr.entry.js +1 -1
  488. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  489. package/dist/kolibri/kol-accordion.entry.js +1 -1
  490. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  491. package/dist/kolibri/kol-alert-wc_3.entry.js +1 -1
  492. package/dist/kolibri/kol-alert-wc_3.entry.js.map +1 -1
  493. package/dist/kolibri/kol-alert.entry.js +1 -1
  494. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  495. package/dist/kolibri/kol-avatar-wc.entry.js +1 -1
  496. package/dist/kolibri/kol-avatar.entry.js +1 -1
  497. package/dist/kolibri/kol-avatar.entry.js.map +1 -1
  498. package/dist/kolibri/kol-badge.entry.js +1 -1
  499. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  500. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  501. package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
  502. package/dist/kolibri/kol-button-group-wc.entry.js +1 -1
  503. package/dist/kolibri/kol-button-group.entry.js +1 -1
  504. package/dist/kolibri/kol-button-group.entry.js.map +1 -1
  505. package/dist/kolibri/kol-button-link.entry.js +1 -1
  506. package/dist/kolibri/kol-button-link.entry.js.map +1 -1
  507. package/dist/kolibri/kol-button.entry.js +1 -1
  508. package/dist/kolibri/kol-button.entry.js.map +1 -1
  509. package/dist/kolibri/kol-card.entry.js +1 -1
  510. package/dist/kolibri/kol-card.entry.js.map +1 -1
  511. package/dist/kolibri/kol-details.entry.js +1 -1
  512. package/dist/kolibri/kol-details.entry.js.map +1 -1
  513. package/dist/kolibri/kol-form.entry.js +1 -1
  514. package/dist/kolibri/kol-form.entry.js.map +1 -1
  515. package/dist/kolibri/kol-heading.entry.js +1 -1
  516. package/dist/kolibri/kol-heading.entry.js.map +1 -1
  517. package/dist/kolibri/kol-icon.entry.js +1 -1
  518. package/dist/kolibri/kol-image.entry.js +1 -1
  519. package/dist/kolibri/kol-indented-text.entry.js +1 -1
  520. package/dist/kolibri/kol-indented-text.entry.js.map +1 -1
  521. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  522. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  523. package/dist/kolibri/kol-input-color.entry.js +1 -1
  524. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  525. package/dist/kolibri/kol-input-date.entry.js +1 -1
  526. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  527. package/dist/kolibri/kol-input-email.entry.js +1 -1
  528. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  529. package/dist/kolibri/kol-input-file.entry.js +1 -1
  530. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  531. package/dist/kolibri/kol-input-number.entry.js +1 -1
  532. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  533. package/dist/kolibri/kol-input-password.entry.js +1 -1
  534. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  535. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  536. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  537. package/dist/kolibri/kol-input-range.entry.js +1 -1
  538. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  539. package/dist/kolibri/kol-input-text.entry.js +1 -1
  540. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  541. package/dist/kolibri/kol-input.entry.js +1 -1
  542. package/dist/kolibri/kol-input.entry.js.map +1 -1
  543. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  544. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  545. package/dist/kolibri/kol-link-button.entry.js +1 -1
  546. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  547. package/dist/kolibri/kol-link-group.entry.js +1 -1
  548. package/dist/kolibri/kol-link-group.entry.js.map +1 -1
  549. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  550. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  551. package/dist/kolibri/kol-link.entry.js +1 -1
  552. package/dist/kolibri/kol-link.entry.js.map +1 -1
  553. package/dist/kolibri/kol-logo.entry.js +1 -1
  554. package/dist/kolibri/kol-logo.entry.js.map +1 -1
  555. package/dist/kolibri/kol-modal.entry.js +1 -1
  556. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  557. package/dist/kolibri/kol-nav.entry.js +1 -1
  558. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  559. package/dist/kolibri/kol-pagination.entry.js +1 -1
  560. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  561. package/dist/kolibri/kol-popover-wc.entry.js +1 -1
  562. package/dist/kolibri/kol-popover-wc.entry.js.map +1 -1
  563. package/dist/kolibri/kol-progress.entry.js +1 -1
  564. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  565. package/dist/kolibri/kol-quote.entry.js +1 -1
  566. package/dist/kolibri/kol-quote.entry.js.map +1 -1
  567. package/dist/kolibri/kol-select.entry.js +1 -1
  568. package/dist/kolibri/kol-select.entry.js.map +1 -1
  569. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  570. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  571. package/dist/kolibri/kol-span-wc_2.entry.js +1 -1
  572. package/dist/kolibri/kol-span-wc_2.entry.js.map +1 -1
  573. package/dist/kolibri/kol-span.entry.js +1 -1
  574. package/dist/kolibri/kol-span.entry.js.map +1 -1
  575. package/dist/kolibri/kol-spin.entry.js +1 -1
  576. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  577. package/dist/kolibri/kol-split-button.entry.js +1 -1
  578. package/dist/kolibri/kol-split-button.entry.js.map +1 -1
  579. package/dist/kolibri/kol-symbol.entry.js +1 -1
  580. package/dist/kolibri/kol-table.entry.js +1 -1
  581. package/dist/kolibri/kol-table.entry.js.map +1 -1
  582. package/dist/kolibri/kol-tabs.entry.js +1 -1
  583. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  584. package/dist/kolibri/kol-textarea.entry.js +1 -1
  585. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  586. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  587. package/dist/kolibri/kol-toast-container.entry.js.map +1 -1
  588. package/dist/kolibri/kol-tree-item-wc.entry.js +4 -0
  589. package/dist/kolibri/kol-tree-item-wc.entry.js.map +1 -0
  590. package/dist/kolibri/kol-tree-item.entry.js +4 -0
  591. package/dist/kolibri/kol-tree-item.entry.js.map +1 -0
  592. package/dist/kolibri/kol-tree-wc.entry.js +4 -0
  593. package/dist/kolibri/kol-tree-wc.entry.js.map +1 -0
  594. package/dist/kolibri/kol-tree.entry.js +4 -0
  595. package/dist/kolibri/kol-tree.entry.js.map +1 -0
  596. package/dist/kolibri/kol-version.entry.js +1 -1
  597. package/dist/kolibri/kol-version.entry.js.map +1 -1
  598. package/dist/kolibri/kolibri.esm.js +1 -1
  599. package/dist/kolibri/kolibri.esm.js.map +1 -1
  600. package/dist/kolibri/validation-005508b2.js +4 -0
  601. package/dist/kolibri/{validation-e8916c82.js → validation-f540005c.js} +1 -1
  602. package/dist/types/components/@shared/form-field-msg.d.ts +10 -0
  603. package/dist/types/components/accordion/component.d.ts +3 -1
  604. package/dist/types/components/details/DetailsAnimationController.d.ts +1 -1
  605. package/dist/types/components/details/component.d.ts +6 -1
  606. package/dist/types/components/form/component.d.ts +2 -0
  607. package/dist/types/components/input-adapter-leanup/associated.controller.d.ts +1 -0
  608. package/dist/types/components/input-radio/controller.d.ts +1 -0
  609. package/dist/types/components/link/component.d.ts +3 -1
  610. package/dist/types/components/link/shadow.d.ts +1 -0
  611. package/dist/types/components/link-button/component.d.ts +1 -0
  612. package/dist/types/components/nav/component.d.ts +2 -0
  613. package/dist/types/components/select/controller.d.ts +1 -0
  614. package/dist/types/components/tooltip/component.d.ts +6 -3
  615. package/dist/types/components/tree/component.d.ts +24 -0
  616. package/dist/types/components/tree/constants.d.ts +1 -0
  617. package/dist/types/components/tree/shadow.d.ts +6 -0
  618. package/dist/types/components/tree-item/component.d.ts +25 -0
  619. package/dist/types/components/tree-item/shadow.d.ts +14 -0
  620. package/dist/types/components.d.ts +192 -4
  621. package/dist/types/i18n.d.ts +1 -1
  622. package/dist/types/locales/de.d.ts +1 -0
  623. package/dist/types/locales/en.d.ts +1 -0
  624. package/dist/types/utils/dev.utils.d.ts +0 -22
  625. package/dist/types/utils/events.d.ts +1 -0
  626. package/doc/accordion.md +7 -6
  627. package/doc/button-group.md +6 -6
  628. package/doc/details.md +6 -5
  629. package/doc/link-button.md +1 -0
  630. package/doc/link.md +3 -3
  631. package/doc/nav.md +9 -8
  632. package/doc/table.md +54 -0
  633. package/doc/tree-item.md +85 -0
  634. package/doc/tree.md +32 -0
  635. package/package.json +1 -1
  636. package/vscode-custom-data.json +98 -2
  637. package/dist/cjs/align-floating-elements-6dbaaa59.js +0 -4
  638. package/dist/cjs/align-floating-elements-6dbaaa59.js.map +0 -1
  639. package/dist/cjs/app-globals-e9fc6d21.js +0 -4
  640. package/dist/cjs/app-globals-e9fc6d21.js.map +0 -1
  641. package/dist/cjs/associated.controller-31ecb2c1.js +0 -4
  642. package/dist/cjs/associated.controller-31ecb2c1.js.map +0 -1
  643. package/dist/cjs/controller-458fb514.js +0 -4
  644. package/dist/cjs/controller-458fb514.js.map +0 -1
  645. package/dist/cjs/controller-bb17ecb2.js +0 -4
  646. package/dist/cjs/dev.utils-a62aae5d.js +0 -4
  647. package/dist/cjs/dev.utils-a62aae5d.js.map +0 -1
  648. package/dist/cjs/devtools-bc91efcc.js +0 -4
  649. package/dist/cjs/devtools-bc91efcc.js.map +0 -1
  650. package/dist/cjs/events-e348a615.js +0 -4
  651. package/dist/cjs/events-e348a615.js.map +0 -1
  652. package/dist/cjs/i18n-9ed77419.js +0 -4
  653. package/dist/cjs/i18n-9ed77419.js.map +0 -1
  654. package/dist/cjs/index-26a16cf8.js +0 -4
  655. package/dist/cjs/index-26a16cf8.js.map +0 -1
  656. package/dist/cjs/index-323319ca.js +0 -4
  657. package/dist/cjs/index-323319ca.js.map +0 -1
  658. package/dist/cjs/index-bc8c7a6b.js +0 -4
  659. package/dist/cjs/index-bc8c7a6b.js.map +0 -1
  660. package/dist/cjs/validation-db3a9e1a.js +0 -4
  661. package/dist/esm/align-floating-elements-e01b2462.js +0 -4
  662. package/dist/esm/align-floating-elements-e01b2462.js.map +0 -1
  663. package/dist/esm/app-globals-28862c38.js +0 -4
  664. package/dist/esm/app-globals-28862c38.js.map +0 -1
  665. package/dist/esm/associated.controller-ac43f4c8.js +0 -4
  666. package/dist/esm/associated.controller-ac43f4c8.js.map +0 -1
  667. package/dist/esm/controller-57209260.js +0 -4
  668. package/dist/esm/controller-657d41f2.js +0 -4
  669. package/dist/esm/controller-90bf3a75.js +0 -4
  670. package/dist/esm/controller-90bf3a75.js.map +0 -1
  671. package/dist/esm/controller-fcfaa4fe.js +0 -4
  672. package/dist/esm/controller-fcfaa4fe.js.map +0 -1
  673. package/dist/esm/controller-icon-78968844.js +0 -4
  674. package/dist/esm/dev.utils-69ed2492.js +0 -4
  675. package/dist/esm/dev.utils-69ed2492.js.map +0 -1
  676. package/dist/esm/devtools-29c45907.js +0 -4
  677. package/dist/esm/devtools-29c45907.js.map +0 -1
  678. package/dist/esm/events-fa760b68.js +0 -4
  679. package/dist/esm/events-fa760b68.js.map +0 -1
  680. package/dist/esm/i18n-6e523906.js +0 -4
  681. package/dist/esm/i18n-6e523906.js.map +0 -1
  682. package/dist/esm/index-0b7aa54b.js +0 -4
  683. package/dist/esm/index-0b7aa54b.js.map +0 -1
  684. package/dist/esm/index-7c986198.js +0 -4
  685. package/dist/esm/index-7c986198.js.map +0 -1
  686. package/dist/esm/index-807d8631.js +0 -4
  687. package/dist/esm/index-807d8631.js.map +0 -1
  688. package/dist/esm/validation-223a4d10.js +0 -4
  689. package/dist/esm/validation-e8916c82.js +0 -4
  690. package/dist/kolibri/align-floating-elements-e01b2462.js +0 -4
  691. package/dist/kolibri/align-floating-elements-e01b2462.js.map +0 -1
  692. package/dist/kolibri/app-globals-28862c38.js +0 -4
  693. package/dist/kolibri/app-globals-28862c38.js.map +0 -1
  694. package/dist/kolibri/associated.controller-ac43f4c8.js +0 -4
  695. package/dist/kolibri/associated.controller-ac43f4c8.js.map +0 -1
  696. package/dist/kolibri/controller-04bfb6e9.js +0 -4
  697. package/dist/kolibri/controller-57209260.js +0 -4
  698. package/dist/kolibri/controller-657d41f2.js +0 -4
  699. package/dist/kolibri/controller-90bf3a75.js +0 -4
  700. package/dist/kolibri/controller-90bf3a75.js.map +0 -1
  701. package/dist/kolibri/controller-fcfaa4fe.js +0 -4
  702. package/dist/kolibri/controller-fcfaa4fe.js.map +0 -1
  703. package/dist/kolibri/controller-icon-78968844.js +0 -4
  704. package/dist/kolibri/dev.utils-69ed2492.js +0 -4
  705. package/dist/kolibri/dev.utils-69ed2492.js.map +0 -1
  706. package/dist/kolibri/devtools-29c45907.js +0 -4
  707. package/dist/kolibri/devtools-29c45907.js.map +0 -1
  708. package/dist/kolibri/events-fa760b68.js +0 -4
  709. package/dist/kolibri/events-fa760b68.js.map +0 -1
  710. package/dist/kolibri/i18n-6e523906.js +0 -4
  711. package/dist/kolibri/i18n-6e523906.js.map +0 -1
  712. package/dist/kolibri/index-0b7aa54b.js +0 -5
  713. package/dist/kolibri/index-0b7aa54b.js.map +0 -1
  714. package/dist/kolibri/index-7c986198.js +0 -4
  715. package/dist/kolibri/index-7c986198.js.map +0 -1
  716. package/dist/kolibri/index-807d8631.js +0 -4
  717. package/dist/kolibri/index-807d8631.js.map +0 -1
  718. package/dist/kolibri/validation-223a4d10.js +0 -4
  719. package/dist/types/utils/color.utils.d.ts +0 -15
  720. /package/dist/kolibri/{InternalUnderlinedAccessKey-43e30086.js.map → InternalUnderlinedAccessKey-af163f50.js.map} +0 -0
  721. /package/dist/kolibri/{validation-223a4d10.js.map → validation-005508b2.js.map} +0 -0
  722. /package/dist/kolibri/{validation-e8916c82.js.map → validation-f540005c.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolBreadcrumbDefaultStyle0","KolBreadcrumb","this","renderLink","link","index","lastIndex","state","_links","length","h","key","_label","_icons","_hideLabel","Fragment","Object","assign","render","Host","map","validateLabel","value","_oldValue","initial","removeNavLabel","required","a11yHintLabelingLandmarks","addNavLabel","validateLinks","watchNavLinks","componentWillLoad","undefined","disconnectedCallback"],"sources":["src/components/breadcrumb/style.css?tag=kol-breadcrumb&mode=default&encapsulation=shadow","src/components/breadcrumb/component.tsx"],"sourcesContent":["@import url(../style.css);\n@layer kol-component {\n\tli,\n\tul {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tlist-style: none;\n\t\tdisplay: flex;\n\t\tgap: 0.5em;\n\t\tflex-wrap: wrap;\n\t\tplace-items: center;\n\t}\n\n\tkol-icon::part(separator) {\n\t\tfont-weight: 900;\n\t\tfont-size: 0.7em;\n\t}\n\n\tkol-icon::part(separator):before {\n\t\tcontent: '\\f054';\n\t\tfont-family: 'Font Awesome 6 Free';\n\t}\n}\n","import type { BreadcrumbAPI, BreadcrumbLinkProps, BreadcrumbStates, LabelPropType, LinkProps, Stringified } from '@public-ui/schema';\nimport { a11yHintLabelingLandmarks, validateLabel } from '@public-ui/schema';\nimport { Component, Fragment, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { watchNavLinks } from '../nav/validation';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-breadcrumb',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolBreadcrumb implements BreadcrumbAPI {\n\tprivate readonly renderLink = (link: BreadcrumbLinkProps, index: number): JSX.Element => {\n\t\tconst lastIndex = this.state._links.length - 1;\n\t\treturn (\n\t\t\t<li key={index}>\n\t\t\t\t{index !== 0 && <kol-icon _label=\"\" _icons=\"codicon codicon-chevron-right\" />}\n\t\t\t\t{index === lastIndex ? (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{link._hideLabel ? (\n\t\t\t\t\t\t\t<kol-icon _label={link._label} _icons={typeof link._icons === 'string' ? link._icons : 'codicon codicon-symbol-event'} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>{link._label}</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<kol-link {...link}></kol-link>\n\t\t\t\t)}\n\t\t\t</li>\n\t\t);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<nav aria-label={this.state._label}>\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 _label=\"\" _icons=\"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(this.renderLink)}\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 * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the list of links combined with their labels to render.\n\t */\n\t@Prop() public _links!: Stringified<BreadcrumbLinkProps[]>;\n\n\t@State() public state: BreadcrumbStates = {\n\t\t_label: '', // ⚠ required\n\t\t_links: [],\n\t};\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType, _oldValue?: LabelPropType, initial = false): void {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label); // remove the current\n\t\t}\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<LinkProps[]>): void {\n\t\twatchNavLinks('KolBreadcrumb', this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateLinks(this._links);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n"],"mappings":";;;oNAAA,MAAMA,EAAkB,29HACxB,MAAAC,EAAeD,E,MCcFE,EAAa,M,yBACRC,KAAAC,WAAa,CAACC,EAA2BC,KACzD,MAAMC,EAAYJ,KAAKK,MAAMC,OAAOC,OAAS,EAC7C,OACCC,EAAA,MAAIC,IAAKN,GACPA,IAAU,GAAKK,EAAA,YAAUE,OAAO,GAAGC,OAAO,kCAC1CR,IAAUC,EACVI,EAAA,YACEN,EAAKU,WACLJ,EAAA,YAAUE,OAAQR,EAAKQ,OAAQC,cAAeT,EAAKS,SAAW,SAAWT,EAAKS,OAAS,iCAEvFH,EAAAK,EAAA,KAAGX,EAAKQ,SAIVF,EAAA,WAAAM,OAAAC,OAAA,GAAcb,IAEX,E,uDA+BmC,CACzCQ,OAAQ,GACRJ,OAAQ,G,CA7BF,MAAAU,GACN,OACCR,EAACS,EAAI,KACJT,EAAA,oBAAiBR,KAAKK,MAAMK,QAC3BF,EAAA,UACER,KAAKK,MAAMC,OAAOC,SAAW,GAC7BC,EAAA,UACCA,EAAA,YAAUE,OAAO,GAAGC,OAAO,yBAAyB,KAGrDX,KAAKK,MAAMC,OAAOY,IAAIlB,KAAKC,c,CAuB1B,aAAAkB,CAAcC,EAAuBC,EAA2BC,EAAU,OAChF,IAAKA,EAAS,CACbC,EAAevB,KAAKK,MAAMK,O,CAE3BS,EAAcnB,KAAMoB,EAAO,CAC1BI,SAAU,OAEXC,EAA0BL,GAC1BM,EAAY1B,KAAKK,MAAMK,O,CAIjB,aAAAiB,CAAcP,GACpBQ,EAAc,gBAAiB5B,KAAMoB,E,CAG/B,iBAAAS,GACN7B,KAAKmB,cAAcnB,KAAKU,OAAQoB,UAAW,MAC3C9B,KAAK2B,cAAc3B,KAAKM,O,CAGlB,oBAAAyB,GACNR,EAAevB,KAAKK,MAAMK,O"}
1
+ {"version":3,"names":["defaultStyleCss","KolBreadcrumbDefaultStyle0","KolBreadcrumb","this","renderLink","link","index","lastIndex","state","_links","length","h","key","_label","_icons","_hideLabel","Fragment","Object","assign","render","Host","map","validateLabel","value","_oldValue","initial","removeNavLabel","required","a11yHintLabelingLandmarks","addNavLabel","validateLinks","watchNavLinks","componentWillLoad","undefined","disconnectedCallback"],"sources":["src/components/breadcrumb/style.css?tag=kol-breadcrumb&mode=default&encapsulation=shadow","src/components/breadcrumb/component.tsx"],"sourcesContent":["@import url(../style.css);\n@layer kol-component {\n\tli,\n\tul {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tlist-style: none;\n\t\tdisplay: flex;\n\t\tgap: 0.5em;\n\t\tflex-wrap: wrap;\n\t\tplace-items: center;\n\t}\n\n\tkol-icon::part(separator) {\n\t\tfont-weight: 900;\n\t\tfont-size: 0.7em;\n\t}\n\n\tkol-icon::part(separator):before {\n\t\tcontent: '\\f054';\n\t\tfont-family: 'Font Awesome 6 Free';\n\t}\n}\n","import type { BreadcrumbAPI, BreadcrumbLinkProps, BreadcrumbStates, LabelPropType, LinkProps, Stringified } from '@public-ui/schema';\nimport { a11yHintLabelingLandmarks, validateLabel } from '@public-ui/schema';\nimport { Component, Fragment, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { watchNavLinks } from '../nav/validation';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-breadcrumb',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolBreadcrumb implements BreadcrumbAPI {\n\tprivate readonly renderLink = (link: BreadcrumbLinkProps, index: number): JSX.Element => {\n\t\tconst lastIndex = this.state._links.length - 1;\n\t\treturn (\n\t\t\t<li key={index}>\n\t\t\t\t{index !== 0 && <kol-icon _label=\"\" _icons=\"codicon codicon-chevron-right\" />}\n\t\t\t\t{index === lastIndex ? (\n\t\t\t\t\t<span>\n\t\t\t\t\t\t{link._hideLabel ? (\n\t\t\t\t\t\t\t<kol-icon _label={link._label} _icons={typeof link._icons === 'string' ? link._icons : 'codicon codicon-symbol-event'} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>{link._label}</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\t<kol-link {...link}></kol-link>\n\t\t\t\t)}\n\t\t\t</li>\n\t\t);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<nav aria-label={this.state._label}>\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 _label=\"\" _icons=\"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(this.renderLink)}\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 * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the list of links combined with their labels to render.\n\t */\n\t@Prop() public _links!: Stringified<BreadcrumbLinkProps[]>;\n\n\t@State() public state: BreadcrumbStates = {\n\t\t_label: '', // ⚠ required\n\t\t_links: [],\n\t};\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType, _oldValue?: LabelPropType, initial = false): void {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label); // remove the current\n\t\t}\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<LinkProps[]>): void {\n\t\twatchNavLinks('KolBreadcrumb', this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateLinks(this._links);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n"],"mappings":";;;oNAAA,MAAMA,EAAkB,oqIACxB,MAAAC,EAAeD,E,MCcFE,EAAa,M,yBACRC,KAAAC,WAAa,CAACC,EAA2BC,KACzD,MAAMC,EAAYJ,KAAKK,MAAMC,OAAOC,OAAS,EAC7C,OACCC,EAAA,MAAIC,IAAKN,GACPA,IAAU,GAAKK,EAAA,YAAUE,OAAO,GAAGC,OAAO,kCAC1CR,IAAUC,EACVI,EAAA,YACEN,EAAKU,WACLJ,EAAA,YAAUE,OAAQR,EAAKQ,OAAQC,cAAeT,EAAKS,SAAW,SAAWT,EAAKS,OAAS,iCAEvFH,EAAAK,EAAA,KAAGX,EAAKQ,SAIVF,EAAA,WAAAM,OAAAC,OAAA,GAAcb,IAEX,E,uDA+BmC,CACzCQ,OAAQ,GACRJ,OAAQ,G,CA7BF,MAAAU,GACN,OACCR,EAACS,EAAI,KACJT,EAAA,oBAAiBR,KAAKK,MAAMK,QAC3BF,EAAA,UACER,KAAKK,MAAMC,OAAOC,SAAW,GAC7BC,EAAA,UACCA,EAAA,YAAUE,OAAO,GAAGC,OAAO,yBAAyB,KAGrDX,KAAKK,MAAMC,OAAOY,IAAIlB,KAAKC,c,CAuB1B,aAAAkB,CAAcC,EAAuBC,EAA2BC,EAAU,OAChF,IAAKA,EAAS,CACbC,EAAevB,KAAKK,MAAMK,O,CAE3BS,EAAcnB,KAAMoB,EAAO,CAC1BI,SAAU,OAEXC,EAA0BL,GAC1BM,EAAY1B,KAAKK,MAAMK,O,CAIjB,aAAAiB,CAAcP,GACpBQ,EAAc,gBAAiB5B,KAAMoB,E,CAG/B,iBAAAS,GACN7B,KAAKmB,cAAcnB,KAAKU,OAAQoB,UAAW,MAC3C9B,KAAK2B,cAAc3B,KAAKM,O,CAGlB,oBAAAyB,GACNR,EAAevB,KAAKK,MAAMK,O"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r,h as s,H as t}from"./index-0b7aa54b.js";const o=class{constructor(s){r(this,s),this.state={}}render(){return s(t,null,s("slot",null))}};export{o as kol_button_group_wc};
4
+ import{r,h as s,H as t}from"./index-a5e15b1e.js";const o=class{constructor(s){r(this,s),this.state={}}render(){return s(t,null,s("slot",null))}};export{o as kol_button_group_wc};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n,H as e}from"./index-0b7aa54b.js";const i="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t:host > kol-button-group-wc {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n}\n",o=i,a=class{constructor(n){t(this,n)}render(){return n(e,null,n("kol-button-group-wc",null,n("slot",null)))}};a.style={default:o};export{a as kol_button_group};
4
+ import{r as t,h as n,H as e}from"./index-a5e15b1e.js";const i="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n@layer kol-component {\n\t:host > kol-button-group-wc {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n}\n",o=i,a=class{constructor(n){t(this,n)}render(){return n(e,null,n("kol-button-group-wc",null,n("slot",null)))}};a.style={default:o};export{a as kol_button_group};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolButtonGroupDefaultStyle0","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 url(../style.css);\n@layer kol-component {\n\t:host > kol-button-group-wc {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n}\n","import type { ButtonGroupProps } from '@public-ui/schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host } from '@stencil/core';\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 ButtonGroupProps {\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,wsHACxB,MAAAC,EAAeD,E,MCUFE,EAAc,M,yBACnB,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,2BACCA,EAAA,c"}
1
+ {"version":3,"names":["defaultStyleCss","KolButtonGroupDefaultStyle0","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 url(../style.css);\n@layer kol-component {\n\t:host > kol-button-group-wc {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n}\n","import type { ButtonGroupProps } from '@public-ui/schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host } from '@stencil/core';\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 ButtonGroupProps {\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,i5HACxB,MAAAC,EAAeD,E,MCUFE,EAAc,M,yBACnB,MAAAC,GACN,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 t,h as n,H as e,g as i}from"./index-0b7aa54b.js";import{b as o}from"./index-807d8631.js";const s="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: inline-block;\n\t}\n\n\t:is(a, button) {\n\t\talign-items: baseline;\n\t\tdisplay: inline-flex;\n\t\tplace-items: center;\n\t\ttext-align: left;\n\t\ttext-decoration-line: underline;\n\t}\n\n\t:is(a, button):is(:focus, :hover) {\n\t\ttext-decoration-thickness: 0.2em;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t.skip {\n\t\tleft: -99999px;\n\t\toverflow: hidden;\n\t\tposition: absolute;\n\t\tz-index: 9999999;\n\t\tline-height: 1em;\n\t}\n\n\t.skip:focus {\n\t\tbackground-color: #fff;\n\t\tleft: unset;\n\t\tpadding: 1em;\n\t\tposition: unset;\n\t}\n\n\tkol-icon.external-link-icon {\n\t\tdisplay: inline-flex;\n\t}\n}\n\n",a=s,l=class{constructor(n){t(this,n),this.catchRef=t=>{o(this.host,t)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaExpanded=void 0,this._ariaSelected=void 0,this._disabled=!1,this._hideLabel=!1,this._icons=void 0,this._id=void 0,this._label=void 0,this._name=void 0,this._on=void 0,this._role=void 0,this._syncValueBySelector=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0}async getValue(){return this._value}render(){return n(e,null,n("kol-button-wc",{ref:this.catchRef,_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaExpanded:this._ariaExpanded,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_icons:this._icons,_hideLabel:this._hideLabel,_id:this._id,_label:this._label,_name:this._name,_on:this._on,_role:"link",_syncValueBySelector:this._syncValueBySelector,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},n("slot",{name:"expert",slot:"expert"})))}get host(){return i(this)}};l.style={default:a};export{l as kol_button_link};
4
+ import{r as t,h as n,H as e,g as i}from"./index-a5e15b1e.js";import{k as o}from"./index-c3ae175d.js";const s="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: inline-block;\n\t}\n\n\t:is(a, button) {\n\t\talign-items: baseline;\n\t\tdisplay: inline-flex;\n\t\tplace-items: center;\n\t\ttext-align: left;\n\t\ttext-decoration-line: underline;\n\t}\n\n\ta:is(:focus, :hover):not([aria-disabled]),\n\tbutton:is(:focus, :hover):not([disabled]) {\n\t\ttext-decoration-thickness: 0.2em;\n\t}\n\n\t.skip {\n\t\tleft: -99999px;\n\t\toverflow: hidden;\n\t\tposition: absolute;\n\t\tz-index: 9999999;\n\t\tline-height: 1em;\n\t}\n\n\t.skip:focus {\n\t\tbackground-color: #fff;\n\t\tleft: unset;\n\t\tpadding: 1em;\n\t\tposition: unset;\n\t}\n\n\tkol-icon.external-link-icon {\n\t\tdisplay: inline-flex;\n\t}\n}\n\n",a=s,l=class{constructor(n){t(this,n),this.catchRef=t=>{o(this.host,t)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaExpanded=void 0,this._ariaSelected=void 0,this._disabled=!1,this._hideLabel=!1,this._icons=void 0,this._id=void 0,this._label=void 0,this._name=void 0,this._on=void 0,this._role=void 0,this._syncValueBySelector=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0}async getValue(){return this._value}render(){return n(e,null,n("kol-button-wc",{ref:this.catchRef,_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaExpanded:this._ariaExpanded,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_icons:this._icons,_hideLabel:this._hideLabel,_id:this._id,_label:this._label,_name:this._name,_on:this._on,_role:"link",_syncValueBySelector:this._syncValueBySelector,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value},n("slot",{name:"expert",slot:"expert"})))}get host(){return i(this)}};l.style={default:a};export{l as kol_button_link};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolButtonLinkDefaultStyle0","KolButtonLink","this","catchRef","ref","propagateFocus","host","getValue","_value","render","h","Host","_accessKey","_ariaControls","_ariaExpanded","_ariaSelected","_disabled","_icons","_hideLabel","_id","_label","_name","_on","_role","_syncValueBySelector","_tabIndex","_tooltipAlign","_type","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 url(../link.css);\n","import type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tButtonCallbacksPropType,\n\tButtonLinkProps,\n\tButtonTypePropType,\n\tIconsPropType,\n\tIdPropType,\n\tLabelWithExpertSlotPropType,\n\tNamePropType,\n\tStencilUnknown,\n\tStringified,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n} from '@public-ui/schema';\nimport { propagateFocus } from '@public-ui/schema';\nimport { Component, Element, h, Host, Method, Prop } from '@stencil/core';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-button-link',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButtonLink implements ButtonLinkProps {\n\t@Element() private readonly host?: HTMLKolButtonLinkElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tpropagateFocus(this.host, ref);\n\t};\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\t@Method()\n\tpublic async getValue(): Promise<Stringified<StencilUnknown> | undefined> {\n\t\treturn this._value;\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_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icons={this._icons}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_name={this._name}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role=\"link\"\n\t\t\t\t\t_syncValueBySelector={this._syncValueBySelector}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the elements access key.\n\t */\n\t@Prop() public _accessKey?: AccessKeyPropType;\n\n\t/**\n\t * Defines which elements are controlled by this component. (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 * Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t * @TODO: Change type back to `AriaExpandedPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _ariaExpanded?: boolean;\n\n\t/**\n\t * Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t * @TODO: Change type back to `AriaSelectedPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _ariaSelected?: boolean;\n\n\t/**\n\t * Makes the element not focusable and ignore all events.\n\t * @TODO: Change type back to `DisabledPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _disabled?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: IconsPropType;\n\n\t/**\n\t * Defines the internal ID of the primary component element.\n\t */\n\t@Prop() public _id?: IdPropType;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines the technical name of an input field.\n\t */\n\t@Prop() public _name?: NamePropType;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: ButtonCallbacksPropType<StencilUnknown>;\n\n\t/**\n\t * Defines the role of the components primary element.\n\t */\n\t@Prop() public _role?: AlternativeButtonLinkRolePropType;\n\n\t/**\n\t * Selector for synchronizing the value with another input element.\n\t * @internal\n\t */\n\t@Prop() public _syncValueBySelector?: SyncValueBySelectorPropType;\n\n\t/**\n\t * Defines which tab-index the primary element of the component has. (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 * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines either the type of the component or of the components interactive element.\n\t */\n\t@Prop() public _type?: ButtonTypePropType = 'button';\n\n\t/**\n\t * Defines the value that the button emits on click.\n\t */\n\t@Prop() public _value?: Stringified<StencilUnknown>;\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,6xIACxB,MAAAC,EAAeD,E,MCyBFE,EAAa,M,yBAGRC,KAAAC,SAAYC,IAC5BC,EAAeH,KAAKI,KAAMF,EAAI,E,gIAgEM,M,gBAOC,M,4MA8CgB,M,WAKV,S,sBArHrC,cAAMG,GACZ,OAAOL,KAAKM,M,CAGN,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCN,IAAKF,KAAKC,SACVS,WAAYV,KAAKU,WACjBC,cAAeX,KAAKW,cACpBC,cAAeZ,KAAKY,cACpBC,cAAeb,KAAKa,cACpBC,UAAWd,KAAKc,UAChBC,OAAQf,KAAKe,OACbC,WAAYhB,KAAKgB,WACjBC,IAAKjB,KAAKiB,IACVC,OAAQlB,KAAKkB,OACbC,MAAOnB,KAAKmB,MACZC,IAAKpB,KAAKoB,IACVC,MAAM,OACNC,qBAAsBtB,KAAKsB,qBAC3BC,UAAWvB,KAAKuB,UAChBC,cAAexB,KAAKwB,cACpBC,MAAOzB,KAAKyB,MACZnB,OAAQN,KAAKM,QAEbE,EAAA,QAAMkB,KAAK,SAASC,KAAK,Y"}
1
+ {"version":3,"names":["defaultStyleCss","KolButtonLinkDefaultStyle0","KolButtonLink","this","catchRef","ref","propagateFocus","host","getValue","_value","render","h","Host","_accessKey","_ariaControls","_ariaExpanded","_ariaSelected","_disabled","_icons","_hideLabel","_id","_label","_name","_on","_role","_syncValueBySelector","_tabIndex","_tooltipAlign","_type","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 url(../link.css);\n","import type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tButtonCallbacksPropType,\n\tButtonLinkProps,\n\tButtonTypePropType,\n\tIconsPropType,\n\tIdPropType,\n\tLabelWithExpertSlotPropType,\n\tNamePropType,\n\tStencilUnknown,\n\tStringified,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n} from '@public-ui/schema';\nimport { propagateFocus } from '@public-ui/schema';\nimport { Component, Element, h, Host, Method, Prop } from '@stencil/core';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-button-link',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButtonLink implements ButtonLinkProps {\n\t@Element() private readonly host?: HTMLKolButtonLinkElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tpropagateFocus(this.host, ref);\n\t};\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async getValue(): Promise<Stringified<StencilUnknown> | undefined> {\n\t\treturn this._value;\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_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icons={this._icons}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_name={this._name}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role=\"link\"\n\t\t\t\t\t_syncValueBySelector={this._syncValueBySelector}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the elements access key.\n\t */\n\t@Prop() public _accessKey?: AccessKeyPropType;\n\n\t/**\n\t * Defines which elements are controlled by this component. (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 * Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t * @TODO: Change type back to `AriaExpandedPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _ariaExpanded?: boolean;\n\n\t/**\n\t * Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t * @TODO: Change type back to `AriaSelectedPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _ariaSelected?: boolean;\n\n\t/**\n\t * Makes the element not focusable and ignore all events.\n\t * @TODO: Change type back to `DisabledPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _disabled?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: IconsPropType;\n\n\t/**\n\t * Defines the internal ID of the primary component element.\n\t */\n\t@Prop() public _id?: IdPropType;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines the technical name of an input field.\n\t */\n\t@Prop() public _name?: NamePropType;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: ButtonCallbacksPropType<StencilUnknown>;\n\n\t/**\n\t * Defines the role of the components primary element.\n\t */\n\t@Prop() public _role?: AlternativeButtonLinkRolePropType;\n\n\t/**\n\t * Selector for synchronizing the value with another input element.\n\t * @internal\n\t */\n\t@Prop() public _syncValueBySelector?: SyncValueBySelectorPropType;\n\n\t/**\n\t * Defines which tab-index the primary element of the component has. (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 * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines either the type of the component or of the components interactive element.\n\t */\n\t@Prop() public _type?: ButtonTypePropType = 'button';\n\n\t/**\n\t * Defines the value that the button emits on click.\n\t */\n\t@Prop() public _value?: Stringified<StencilUnknown>;\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,29IACxB,MAAAC,EAAeD,E,MCyBFE,EAAa,M,yBAGRC,KAAAC,SAAYC,IAC5BC,EAAeH,KAAKI,KAAMF,EAAI,E,gIAgEM,M,gBAOC,M,4MA8CgB,M,WAKV,S,sBArHrC,cAAMG,GACZ,OAAOL,KAAKM,M,CAGN,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCN,IAAKF,KAAKC,SACVS,WAAYV,KAAKU,WACjBC,cAAeX,KAAKW,cACpBC,cAAeZ,KAAKY,cACpBC,cAAeb,KAAKa,cACpBC,UAAWd,KAAKc,UAChBC,OAAQf,KAAKe,OACbC,WAAYhB,KAAKgB,WACjBC,IAAKjB,KAAKiB,IACVC,OAAQlB,KAAKkB,OACbC,MAAOnB,KAAKmB,MACZC,IAAKpB,KAAKoB,IACVC,MAAM,OACNC,qBAAsBtB,KAAKsB,qBAC3BC,UAAWvB,KAAKuB,UAChBC,cAAexB,KAAKwB,cACpBC,MAAOzB,KAAKyB,MACZnB,OAAQN,KAAKM,QAEbE,EAAA,QAAMkB,KAAK,SAASC,KAAK,Y"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n,H as e,g as i}from"./index-0b7aa54b.js";import{b as s}from"./index-807d8631.js";const o="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: inline-block;\n\t}\n\t:is(a, button) {\n\t\tdisplay: inline-flex;\n\t\tplace-items: center;\n\t\ttext-align: center;\n\t\ttext-decoration-line: none;\n\n\t\t&::before {\n\t\t\t/* Render zero-width character as first element to set the baseline correctly. */\n\t\t\tcontent: '\\200B';\n\t\t}\n\t}\n\t/* TODO: Why we need this? */\n\t:is(a, button) > kol-span-wc {\n\t\tmargin: auto;\n\t\twidth: 100%;\n\t}\n\t:is(button):disabled {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t}\n}\n\n",a=o,l=class{constructor(n){t(this,n),this.catchRef=t=>{s(this.host,t)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaExpanded=void 0,this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._hideLabel=!1,this._icons=void 0,this._id=void 0,this._label=void 0,this._name=void 0,this._on=void 0,this._role=void 0,this._syncValueBySelector=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal"}async getValue(){return this._value}render(){return n(e,null,n("kol-button-wc",{ref:this.catchRef,class:{button:!0,[this._variant]:"custom"!==this._variant,[this._customClass]:"custom"===this._variant&&"string"==typeof this._customClass&&this._customClass.length>0},_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaExpanded:this._ariaExpanded,_ariaSelected:this._ariaSelected,_customClass:this._customClass,_disabled:this._disabled,_hideLabel:this._hideLabel,_icons:this._icons,_id:this._id,_label:this._label,_name:this._name,_on:this._on,_role:this._role,_syncValueBySelector:this._syncValueBySelector,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value,_variant:this._variant},n("slot",{name:"expert",slot:"expert"})))}get host(){return i(this)}};l.style={default:a};export{l as kol_button};
4
+ import{r as t,h as n,H as e,g as i}from"./index-a5e15b1e.js";import{k as s}from"./index-c3ae175d.js";const o="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: inline-block;\n\t}\n\t:is(a, button) {\n\t\tdisplay: inline-flex;\n\t\tplace-items: center;\n\t\ttext-align: center;\n\t\ttext-decoration-line: none;\n\n\t\t&::before {\n\t\t\t/* Render zero-width character as first element to set the baseline correctly. */\n\t\t\tcontent: '\\200B';\n\t\t}\n\t}\n\t/* TODO: Why we need this? */\n\t:is(a, button) > kol-span-wc {\n\t\tmargin: auto;\n\t\twidth: 100%;\n\t}\n}\n\n",a=o,l=class{constructor(n){t(this,n),this.catchRef=t=>{s(this.host,t)},this._accessKey=void 0,this._ariaControls=void 0,this._ariaExpanded=void 0,this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._hideLabel=!1,this._icons=void 0,this._id=void 0,this._label=void 0,this._name=void 0,this._on=void 0,this._role=void 0,this._syncValueBySelector=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal"}async getValue(){return this._value}render(){return n(e,null,n("kol-button-wc",{ref:this.catchRef,class:{button:!0,[this._variant]:"custom"!==this._variant,[this._customClass]:"custom"===this._variant&&"string"==typeof this._customClass&&this._customClass.length>0},_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaExpanded:this._ariaExpanded,_ariaSelected:this._ariaSelected,_customClass:this._customClass,_disabled:this._disabled,_hideLabel:this._hideLabel,_icons:this._icons,_id:this._id,_label:this._label,_name:this._name,_on:this._on,_role:this._role,_syncValueBySelector:this._syncValueBySelector,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value,_variant:this._variant},n("slot",{name:"expert",slot:"expert"})))}get host(){return i(this)}};l.style={default:a};export{l as kol_button};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolButtonDefaultStyle0","KolButton","this","catchRef","ref","propagateFocus","host","getValue","_value","render","h","Host","class","button","_variant","_customClass","length","_accessKey","_ariaControls","_ariaExpanded","_ariaSelected","_disabled","_hideLabel","_icons","_id","_label","_name","_on","_role","_syncValueBySelector","_tabIndex","_tooltipAlign","_type","name","slot"],"sources":["src/components/button/style.css?tag=kol-button&mode=default&encapsulation=shadow","src/components/button/shadow.tsx"],"sourcesContent":["@import url(../button.css);\n","import type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tButtonCallbacksPropType,\n\tButtonProps,\n\tButtonTypePropType,\n\tButtonVariantPropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tLabelWithExpertSlotPropType,\n\tStencilUnknown,\n\tStringified,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n} from '@public-ui/schema';\nimport { propagateFocus } from '@public-ui/schema';\nimport { Component, Element, h, Host, Method, Prop } from '@stencil/core';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-button',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButton implements ButtonProps {\n\t@Element() private readonly host?: HTMLKolButtonElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tpropagateFocus(this.host, ref);\n\t};\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\t@Method()\n\tpublic async getValue(): Promise<Stringified<StencilUnknown> | undefined> {\n\t\treturn this._value;\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\tclass={{\n\t\t\t\t\t\tbutton: true,\n\t\t\t\t\t\t[this._variant as string]: this._variant !== 'custom',\n\t\t\t\t\t\t[this._customClass as string]: this._variant === 'custom' && typeof this._customClass === 'string' && this._customClass.length > 0,\n\t\t\t\t\t}}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_customClass={this._customClass}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_icons={this._icons}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_name={this._name}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_syncValueBySelector={this._syncValueBySelector}\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\t_variant={this._variant}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the elements access key.\n\t */\n\t@Prop() public _accessKey?: AccessKeyPropType;\n\n\t/**\n\t * Defines which elements are controlled by this component. (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 * Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop() public _ariaExpanded?: boolean;\n\n\t/**\n\t * Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop() public _ariaSelected?: boolean;\n\n\t/**\n\t * Defines the custom class attribute if _variant=\"custom\" is set.\n\t */\n\t@Prop() public _customClass?: CustomClassPropType;\n\n\t/**\n\t * Makes the element not focusable and ignore all events.\n\t */\n\t@Prop() public _disabled?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: IconsPropType;\n\n\t/**\n\t * Defines the internal ID of the primary component element.\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines the technical name of an input field.\n\t */\n\t@Prop() public _name?: string;\n\n\t/**\n\t * Defines the callback functions for button events.\n\t */\n\t@Prop() public _on?: ButtonCallbacksPropType<StencilUnknown>;\n\n\t/**\n\t * Defines the role of the components primary element.\n\t */\n\t@Prop() public _role?: AlternativeButtonLinkRolePropType;\n\n\t/**\n\t * Selector for synchronizing the value with another input element.\n\t * @internal\n\t */\n\t@Prop() public _syncValueBySelector?: SyncValueBySelectorPropType;\n\n\t/**\n\t * Defines which tab-index the primary element of the component has. (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 * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines either the type of the component or of the components interactive element.\n\t */\n\t@Prop() public _type?: ButtonTypePropType = 'button';\n\n\t/**\n\t * Defines the value that the button emits on click.\n\t */\n\t@Prop() public _value?: Stringified<StencilUnknown>;\n\n\t/**\n\t * Defines which variant should be used for presentation.\n\t */\n\t@Prop() public _variant?: ButtonVariantPropType = 'normal';\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,onIACxB,MAAAC,EAAeD,E,MCyBFE,EAAS,M,yBAGJC,KAAAC,SAAYC,IAC5BC,EAAeH,KAAKI,KAAMF,EAAI,E,4JAyEM,M,gBAOC,M,4MA8CgB,M,WAKV,S,oCAUM,Q,CAxI3C,cAAMG,GACZ,OAAOL,KAAKM,M,CAGN,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCN,IAAKF,KAAKC,SACVS,MAAO,CACNC,OAAQ,KACR,CAACX,KAAKY,UAAqBZ,KAAKY,WAAa,SAC7C,CAACZ,KAAKa,cAAyBb,KAAKY,WAAa,iBAAmBZ,KAAKa,eAAiB,UAAYb,KAAKa,aAAaC,OAAS,GAElIC,WAAYf,KAAKe,WACjBC,cAAehB,KAAKgB,cACpBC,cAAejB,KAAKiB,cACpBC,cAAelB,KAAKkB,cACpBL,aAAcb,KAAKa,aACnBM,UAAWnB,KAAKmB,UAChBC,WAAYpB,KAAKoB,WACjBC,OAAQrB,KAAKqB,OACbC,IAAKtB,KAAKsB,IACVC,OAAQvB,KAAKuB,OACbC,MAAOxB,KAAKwB,MACZC,IAAKzB,KAAKyB,IACVC,MAAO1B,KAAK0B,MACZC,qBAAsB3B,KAAK2B,qBAC3BC,UAAW5B,KAAK4B,UAChBC,cAAe7B,KAAK6B,cACpBC,MAAO9B,KAAK8B,MACZxB,OAAQN,KAAKM,OACbM,SAAUZ,KAAKY,UAEfJ,EAAA,QAAMuB,KAAK,SAASC,KAAK,Y"}
1
+ {"version":3,"names":["defaultStyleCss","KolButtonDefaultStyle0","KolButton","this","catchRef","ref","propagateFocus","host","getValue","_value","render","h","Host","class","button","_variant","_customClass","length","_accessKey","_ariaControls","_ariaExpanded","_ariaSelected","_disabled","_hideLabel","_icons","_id","_label","_name","_on","_role","_syncValueBySelector","_tabIndex","_tooltipAlign","_type","name","slot"],"sources":["src/components/button/style.css?tag=kol-button&mode=default&encapsulation=shadow","src/components/button/shadow.tsx"],"sourcesContent":["@import url(../button.css);\n","import type {\n\tAccessKeyPropType,\n\tAlternativeButtonLinkRolePropType,\n\tButtonCallbacksPropType,\n\tButtonProps,\n\tButtonTypePropType,\n\tButtonVariantPropType,\n\tCustomClassPropType,\n\tIconsPropType,\n\tLabelWithExpertSlotPropType,\n\tStencilUnknown,\n\tStringified,\n\tSyncValueBySelectorPropType,\n\tTooltipAlignPropType,\n} from '@public-ui/schema';\nimport { propagateFocus } from '@public-ui/schema';\nimport { Component, Element, h, Host, Method, Prop } from '@stencil/core';\n\nimport type { JSX } from '@stencil/core';\n@Component({\n\ttag: 'kol-button',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolButton implements ButtonProps {\n\t@Element() private readonly host?: HTMLKolButtonElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolButtonWcElement) => {\n\t\tpropagateFocus(this.host, ref);\n\t};\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async getValue(): Promise<Stringified<StencilUnknown> | undefined> {\n\t\treturn this._value;\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\tclass={{\n\t\t\t\t\t\tbutton: true,\n\t\t\t\t\t\t[this._variant as string]: this._variant !== 'custom',\n\t\t\t\t\t\t[this._customClass as string]: this._variant === 'custom' && typeof this._customClass === 'string' && this._customClass.length > 0,\n\t\t\t\t\t}}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_customClass={this._customClass}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_icons={this._icons}\n\t\t\t\t\t_id={this._id}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_name={this._name}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_syncValueBySelector={this._syncValueBySelector}\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\t_variant={this._variant}\n\t\t\t\t>\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t</kol-button-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the elements access key.\n\t */\n\t@Prop() public _accessKey?: AccessKeyPropType;\n\n\t/**\n\t * Defines which elements are controlled by this component. (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 * Defines whether the interactive element of the component expanded something. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop() public _ariaExpanded?: boolean;\n\n\t/**\n\t * Defines whether the interactive element of the component is selected (e.g. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop() public _ariaSelected?: boolean;\n\n\t/**\n\t * Defines the custom class attribute if _variant=\"custom\" is set.\n\t */\n\t@Prop() public _customClass?: CustomClassPropType;\n\n\t/**\n\t * Makes the element not focusable and ignore all events.\n\t */\n\t@Prop() public _disabled?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: IconsPropType;\n\n\t/**\n\t * Defines the internal ID of the primary component element.\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines the technical name of an input field.\n\t */\n\t@Prop() public _name?: string;\n\n\t/**\n\t * Defines the callback functions for button events.\n\t */\n\t@Prop() public _on?: ButtonCallbacksPropType<StencilUnknown>;\n\n\t/**\n\t * Defines the role of the components primary element.\n\t */\n\t@Prop() public _role?: AlternativeButtonLinkRolePropType;\n\n\t/**\n\t * Selector for synchronizing the value with another input element.\n\t * @internal\n\t */\n\t@Prop() public _syncValueBySelector?: SyncValueBySelectorPropType;\n\n\t/**\n\t * Defines which tab-index the primary element of the component has. (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 * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines either the type of the component or of the components interactive element.\n\t */\n\t@Prop() public _type?: ButtonTypePropType = 'button';\n\n\t/**\n\t * Defines the value that the button emits on click.\n\t */\n\t@Prop() public _value?: Stringified<StencilUnknown>;\n\n\t/**\n\t * Defines which variant should be used for presentation.\n\t */\n\t@Prop() public _variant?: ButtonVariantPropType = 'normal';\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,ivIACxB,MAAAC,EAAeD,E,MCyBFE,EAAS,M,yBAGJC,KAAAC,SAAYC,IAC5BC,EAAeH,KAAKI,KAAMF,EAAI,E,4JAyEM,M,gBAOC,M,4MA8CgB,M,WAKV,S,oCAUM,Q,CAxI3C,cAAMG,GACZ,OAAOL,KAAKM,M,CAGN,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,iBACCN,IAAKF,KAAKC,SACVS,MAAO,CACNC,OAAQ,KACR,CAACX,KAAKY,UAAqBZ,KAAKY,WAAa,SAC7C,CAACZ,KAAKa,cAAyBb,KAAKY,WAAa,iBAAmBZ,KAAKa,eAAiB,UAAYb,KAAKa,aAAaC,OAAS,GAElIC,WAAYf,KAAKe,WACjBC,cAAehB,KAAKgB,cACpBC,cAAejB,KAAKiB,cACpBC,cAAelB,KAAKkB,cACpBL,aAAcb,KAAKa,aACnBM,UAAWnB,KAAKmB,UAChBC,WAAYpB,KAAKoB,WACjBC,OAAQrB,KAAKqB,OACbC,IAAKtB,KAAKsB,IACVC,OAAQvB,KAAKuB,OACbC,MAAOxB,KAAKwB,MACZC,IAAKzB,KAAKyB,IACVC,MAAO1B,KAAK0B,MACZC,qBAAsB3B,KAAK2B,qBAC3BC,UAAW5B,KAAK4B,UAChBC,cAAe7B,KAAK6B,cACpBC,MAAO9B,KAAK8B,MACZxB,OAAQN,KAAKM,OACbM,SAAUZ,KAAKY,UAEfJ,EAAA,QAAMuB,KAAK,SAASC,KAAK,Y"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n,H as e}from"./index-0b7aa54b.js";import{s as i,m as o,v as s}from"./index-807d8631.js";import{a}from"./i18n-6e523906.js";import{w as l}from"./validation-223a4d10.js";import"./index-7c986198.js";import"./dev.utils-69ed2492.js";const r="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t:host > div.card {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toutline: transparent solid 1px; /* Visible with forced colors */\n\t}\n\n\t.close {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t}\n}\n",h=r,d=class{constructor(n){t(this,n),this.close=()=>{var t;void 0!==(null===(t=this._on)||void 0===t?void 0:t.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this.validateOnValue=t=>"object"==typeof t&&null!==t&&"function"==typeof t.onClose,this._on=void 0,this._hasCloser=!1,this._label=void 0,this._level=1,this.state={_label:""}}render(){return n(e,null,n("div",{class:"card"},n("div",{class:"header"},n("kol-heading-wc",{_label:this.state._label,_level:this.state._level})),n("div",{class:"content"},n("slot",null)),this.state._hasCloser&&n("kol-button-wc",{class:"close",_hideLabel:!0,_icons:{left:{icon:"codicon codicon-close"}},_label:a("kol-close"),_on:this.on,_tooltipAlign:"left"})))}validateOn(t){this.validateOnValue(t)&&i(this,"_on",{onClose:t.onClose})}validateHasCloser(t){o(this,t)}validateLabel(t){s(this,t,{required:!0})}validateLevel(t){l(this,t)}componentWillLoad(){this.validateHasCloser(this._hasCloser),this.validateLabel(this._label),this.validateLevel(this._level),this.validateOn(this._on)}static get watchers(){return{_on:["validateOn"],_hasCloser:["validateHasCloser"],_label:["validateLabel"],_level:["validateLevel"]}}};d.style={default:h};export{d as kol_card};
4
+ import{r as t,h as n,H as e}from"./index-a5e15b1e.js";import{m as i,A as o,v as s}from"./index-c3ae175d.js";import{a}from"./i18n-73edd5e1.js";import{w as l}from"./validation-005508b2.js";import"./index-eb50dd62.js";import"./dev.utils-c7d151c6.js";const r="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n@layer kol-component {\n\t:host > div.card {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toutline: transparent solid 1px; /* Visible with forced colors */\n\t}\n\n\t.close {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t}\n}\n",d=r,h=class{constructor(n){t(this,n),this.close=()=>{var t;void 0!==(null===(t=this._on)||void 0===t?void 0:t.onClose)&&this._on.onClose(new Event("Close"))},this.on={onClick:this.close},this.validateOnValue=t=>"object"==typeof t&&null!==t&&"function"==typeof t.onClose,this._on=void 0,this._hasCloser=!1,this._label=void 0,this._level=1,this.state={_label:""}}render(){return n(e,null,n("div",{class:"card"},n("div",{class:"header"},n("kol-heading-wc",{_label:this.state._label,_level:this.state._level})),n("div",{class:"content"},n("slot",null)),this.state._hasCloser&&n("kol-button-wc",{class:"close",_hideLabel:!0,_icons:{left:{icon:"codicon codicon-close"}},_label:a("kol-close"),_on:this.on,_tooltipAlign:"left"})))}validateOn(t){this.validateOnValue(t)&&i(this,"_on",{onClose:t.onClose})}validateHasCloser(t){o(this,t)}validateLabel(t){s(this,t,{required:!0})}validateLevel(t){l(this,t)}componentWillLoad(){this.validateHasCloser(this._hasCloser),this.validateLabel(this._label),this.validateLevel(this._level),this.validateOn(this._on)}static get watchers(){return{_on:["validateOn"],_hasCloser:["validateHasCloser"],_label:["validateLabel"],_level:["validateLevel"]}}};h.style={default:d};export{h as kol_card};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolCardDefaultStyle0","KolCard","this","close","_a","_on","onClose","undefined","Event","on","onClick","validateOnValue","value","_label","render","h","Host","class","state","_level","_hasCloser","_hideLabel","_icons","left","icon","translate","_tooltipAlign","validateOn","setState","validateHasCloser","validateLabel","required","validateLevel","watchHeadingLevel","componentWillLoad"],"sources":["src/components/card/style.css?tag=kol-card&mode=default&encapsulation=shadow","src/components/card/component.tsx"],"sourcesContent":["@import url(../style.css);\n@layer kol-component {\n\t:host > div.card {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toutline: transparent solid 1px; /* Visible with forced colors */\n\t}\n\n\t.close {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t}\n}\n","import type {\n\tCardAPI,\n\tCardStates,\n\tHasCloserPropType,\n\tHeadingLevel,\n\tKoliBriAlertEventCallbacks,\n\tKoliBriCardEventCallbacks,\n\tLabelPropType,\n} from '@public-ui/schema';\nimport { setState, validateHasCloser, validateLabel } from '@public-ui/schema';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { watchHeadingLevel } from '../heading/validation';\n\nimport type { JSX } from '@stencil/core';\n/**\n * @slot - Ermöglicht das Einfügen beliebigen HTML's in den Inhaltsbereich der Card.\n */\n@Component({\n\ttag: 'kol-card',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolCard implements CardAPI {\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\treturn (\n\t\t\t<Host>\n\t\t\t\t<div class=\"card\">\n\t\t\t\t\t<div class=\"header\">\n\t\t\t\t\t\t<kol-heading-wc _label={this.state._label} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t_icons={{\n\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\ticon: 'codicon codicon-close',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t></kol-button-wc>\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 * Defines the event callback functions for the component.\n\t */\n\t@Prop() public _on?: KoliBriCardEventCallbacks;\n\n\t/**\n\t * Defines whether the element can be closed.\n\t * @TODO: Change type back to `HasCloserPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hasCloser?: boolean = false;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t@State() public state: CardStates = {\n\t\t_label: '', // ⚠ required\n\t};\n\n\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriCardEventCallbacks).onClose === 'function';\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriCardEventCallbacks): void {\n\t\tif (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriCardEventCallbacks>(this, '_on', {\n\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t});\n\t\t}\n\t}\n\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: HasCloserPropType): void {\n\t\tvalidateHasCloser(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t}\n}\n"],"mappings":";;;uPAAA,MAAMA,EAAkB,80HACxB,MAAAC,EAAeD,E,MCyBFE,EAAO,M,yBACFC,KAAAC,MAAQ,K,MACxB,KAAIC,EAAAF,KAAKG,OAAG,MAAAD,SAAA,SAAAA,EAAEE,WAAYC,UAAW,CACpCL,KAAKG,IAAIC,QAAQ,IAAIE,MAAM,S,GAIZN,KAAAO,GAAK,CACrBC,QAASR,KAAKC,OAyDPD,KAAAS,gBAAmBC,UACnBA,IAAU,UAAYA,IAAU,aAAgBA,EAAoCN,UAAY,W,mCAjBlE,M,kCAUC,E,WAEH,CACnCO,OAAQ,G,CAnDF,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,MAAM,QACVF,EAAA,OAAKE,MAAM,UACVF,EAAA,kBAAgBF,OAAQX,KAAKgB,MAAML,OAAQM,OAAQjB,KAAKgB,MAAMC,UAE/DJ,EAAA,OAAKE,MAAM,WACVF,EAAA,cAEAb,KAAKgB,MAAME,YACXL,EAAA,iBACCE,MAAM,QACNI,WAAU,KACVC,OAAQ,CACPC,KAAM,CACLC,KAAM,0BAGRX,OAAQY,EAAU,aAClBpB,IAAKH,KAAKO,GACViB,cAAc,U,CAqCb,UAAAC,CAAWf,GACjB,GAAIV,KAAKS,gBAAgBC,GAAQ,CAChCgB,EAAoC1B,KAAM,MAAO,CAChDI,QAAUM,EAAqCN,S,EAM3C,iBAAAuB,CAAkBjB,GACxBiB,EAAkB3B,KAAMU,E,CAIlB,aAAAkB,CAAclB,GACpBkB,EAAc5B,KAAMU,EAAO,CAC1BmB,SAAU,M,CAKL,aAAAC,CAAcpB,GACpBqB,EAAkB/B,KAAMU,E,CAGlB,iBAAAsB,GACNhC,KAAK2B,kBAAkB3B,KAAKkB,YAC5BlB,KAAK4B,cAAc5B,KAAKW,QACxBX,KAAK8B,cAAc9B,KAAKiB,QACxBjB,KAAKyB,WAAWzB,KAAKG,I"}
1
+ {"version":3,"names":["defaultStyleCss","KolCardDefaultStyle0","KolCard","this","close","_a","_on","onClose","undefined","Event","on","onClick","validateOnValue","value","_label","render","h","Host","class","state","_level","_hasCloser","_hideLabel","_icons","left","icon","translate","_tooltipAlign","validateOn","setState","validateHasCloser","validateLabel","required","validateLevel","watchHeadingLevel","componentWillLoad"],"sources":["src/components/card/style.css?tag=kol-card&mode=default&encapsulation=shadow","src/components/card/component.tsx"],"sourcesContent":["@import url(../style.css);\n@layer kol-component {\n\t:host > div.card {\n\t\theight: 100%;\n\t\tposition: relative;\n\t\toutline: transparent solid 1px; /* Visible with forced colors */\n\t}\n\n\t.close {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tright: 0;\n\t}\n}\n","import type {\n\tCardAPI,\n\tCardStates,\n\tHasCloserPropType,\n\tHeadingLevel,\n\tKoliBriAlertEventCallbacks,\n\tKoliBriCardEventCallbacks,\n\tLabelPropType,\n} from '@public-ui/schema';\nimport { setState, validateHasCloser, validateLabel } from '@public-ui/schema';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { watchHeadingLevel } from '../heading/validation';\n\nimport type { JSX } from '@stencil/core';\n/**\n * @slot - Ermöglicht das Einfügen beliebigen HTML's in den Inhaltsbereich der Card.\n */\n@Component({\n\ttag: 'kol-card',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolCard implements CardAPI {\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\treturn (\n\t\t\t<Host>\n\t\t\t\t<div class=\"card\">\n\t\t\t\t\t<div class=\"header\">\n\t\t\t\t\t\t<kol-heading-wc _label={this.state._label} _level={this.state._level}></kol-heading-wc>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.state._hasCloser && (\n\t\t\t\t\t\t<kol-button-wc\n\t\t\t\t\t\t\tclass=\"close\"\n\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t_icons={{\n\t\t\t\t\t\t\t\tleft: {\n\t\t\t\t\t\t\t\t\ticon: 'codicon codicon-close',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t_label={translate('kol-close')}\n\t\t\t\t\t\t\t_on={this.on}\n\t\t\t\t\t\t\t_tooltipAlign=\"left\"\n\t\t\t\t\t\t></kol-button-wc>\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 * Defines the event callback functions for the component.\n\t */\n\t@Prop() public _on?: KoliBriCardEventCallbacks;\n\n\t/**\n\t * Defines whether the element can be closed.\n\t * @TODO: Change type back to `HasCloserPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hasCloser?: boolean = false;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text.\n\t */\n\t@Prop() public _level?: HeadingLevel = 1;\n\n\t@State() public state: CardStates = {\n\t\t_label: '', // ⚠ required\n\t};\n\n\tprivate validateOnValue = (value: unknown): boolean =>\n\t\ttypeof value === 'object' && value !== null && typeof (value as KoliBriCardEventCallbacks).onClose === 'function';\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriCardEventCallbacks): void {\n\t\tif (this.validateOnValue(value)) {\n\t\t\tsetState<KoliBriCardEventCallbacks>(this, '_on', {\n\t\t\t\tonClose: (value as KoliBriAlertEventCallbacks).onClose,\n\t\t\t});\n\t\t}\n\t}\n\n\t@Watch('_hasCloser')\n\tpublic validateHasCloser(value?: HasCloserPropType): void {\n\t\tvalidateHasCloser(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_level')\n\tpublic validateLevel(value?: HeadingLevel): void {\n\t\twatchHeadingLevel(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHasCloser(this._hasCloser);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateLevel(this._level);\n\t\tthis.validateOn(this._on);\n\t}\n}\n"],"mappings":";;;uPAAA,MAAMA,EAAkB,uhIACxB,MAAAC,EAAeD,E,MCyBFE,EAAO,M,yBACFC,KAAAC,MAAQ,K,MACxB,KAAIC,EAAAF,KAAKG,OAAG,MAAAD,SAAA,SAAAA,EAAEE,WAAYC,UAAW,CACpCL,KAAKG,IAAIC,QAAQ,IAAIE,MAAM,S,GAIZN,KAAAO,GAAK,CACrBC,QAASR,KAAKC,OAyDPD,KAAAS,gBAAmBC,UACnBA,IAAU,UAAYA,IAAU,aAAgBA,EAAoCN,UAAY,W,mCAjBlE,M,kCAUC,E,WAEH,CACnCO,OAAQ,G,CAnDF,MAAAC,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,OAAKE,MAAM,QACVF,EAAA,OAAKE,MAAM,UACVF,EAAA,kBAAgBF,OAAQX,KAAKgB,MAAML,OAAQM,OAAQjB,KAAKgB,MAAMC,UAE/DJ,EAAA,OAAKE,MAAM,WACVF,EAAA,cAEAb,KAAKgB,MAAME,YACXL,EAAA,iBACCE,MAAM,QACNI,WAAU,KACVC,OAAQ,CACPC,KAAM,CACLC,KAAM,0BAGRX,OAAQY,EAAU,aAClBpB,IAAKH,KAAKO,GACViB,cAAc,U,CAqCb,UAAAC,CAAWf,GACjB,GAAIV,KAAKS,gBAAgBC,GAAQ,CAChCgB,EAAoC1B,KAAM,MAAO,CAChDI,QAAUM,EAAqCN,S,EAM3C,iBAAAuB,CAAkBjB,GACxBiB,EAAkB3B,KAAMU,E,CAIlB,aAAAkB,CAAclB,GACpBkB,EAAc5B,KAAMU,EAAO,CAC1BmB,SAAU,M,CAKL,aAAAC,CAAcpB,GACpBqB,EAAkB/B,KAAMU,E,CAGlB,iBAAAsB,GACNhC,KAAK2B,kBAAkB3B,KAAKkB,YAC5BlB,KAAK4B,cAAc5B,KAAKW,QACxBX,KAAK8B,cAAc9B,KAAKiB,QACxBjB,KAAKyB,WAAWzB,KAAKG,I"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n,H as e,g as i}from"./index-0b7aa54b.js";import{b as s,v as o,s as a,c as l}from"./index-807d8631.js";import{t as h}from"./events-fa760b68.js";class r{constructor(t,n,e){this.detailsElement=t,this.summaryElement=n,this.contentElement=e,this.isClosing=!1,this.isExpanding=!1,this.summaryElement.addEventListener("click",this.handleSummaryClick.bind(this))}handleSummaryClick(t){t.preventDefault(),this.isClosing||!this.detailsElement.open?this.open():(this.isExpanding||this.detailsElement.open)&&this.collapse()}open(){this.detailsElement.open=!0,window.requestAnimationFrame(this.expand.bind(this))}expand(){this.isExpanding=!0,this.animateContentHeight("expand")}collapse(){this.isClosing=!0,this.animateContentHeight("collapse")}animateContentHeight(t){let n="expand"===t?0:this.contentElement.offsetHeight,e="expand"===t?this.contentElement.offsetHeight:0;this.animation&&(n=this.contentElement.offsetHeight,this.animation.cancel(),"expand"===t&&(e=this.contentElement.offsetHeight)),this.animation=this.contentElement.animate({height:[`${n}px`,`${e}px`]},{duration:matchMedia("(prefers-reduced-motion)").matches?0:250,easing:"ease-out"}),this.animation.addEventListener("finish",(()=>{this.onAnimationFinish()}),{once:!0}),this.animation.addEventListener("cancel",(()=>{"expand"===t?this.isExpanding=!1:this.isClosing=!1}),{once:!0})}onAnimationFinish(){this.detailsElement.open=this.isExpanding,this.animation=void 0,this.isClosing=!1,this.isExpanding=!1}}const d="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tdetails {\n\t\tdisplay: grid;\n\t}\n\n\tdetails > summary {\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\tdetails > summary > span {\n\t\tborder-bottom-color: grey;\n\t\tborder-bottom-style: solid;\n\t}\n\n\tdetails > summary:focus > span,\n\tdetails > summary:hover > span,\n\tdetails[open] > summary > span {\n\t\tborder-bottom-color: #000;\n\t}\n\n\t.content {\n\t\toverflow: hidden;\n\t}\n\n\tdetails > kol-indented-text {\n\t\tmargin: 0.25em 0 0 0.5em;\n\t}\n\n\t.icon.is-open::part(icon) {\n\t\ttransform: rotate(90deg);\n\t}\n}\n",c=d,p=class{constructor(n){t(this,n),this.catchRef=t=>{this.summaryElement=t,s(this.host,this.summaryElement)},this.handleToggle=t=>{clearTimeout(this.toggleTimeout),this.toggleTimeout=setTimeout((()=>{var n,e,i,o;Boolean(null===(n=this.detailsElement)||void 0===n?void 0:n.open)!==this.state._open&&(this._open=Boolean(null===(e=this.detailsElement)||void 0===e?void 0:e.open),h("toggle",this.host,this._open),"function"==typeof(null===(i=this.state._on)||void 0===i?void 0:i.onToggle)&&(null===(o=this.state._on)||void 0===o||o.onToggle(t,this._open)))}),25)},this._label=void 0,this._on=void 0,this._open=!1,this.state={_label:"",_on:{}}}render(){return n(e,null,n("details",{ref:t=>{this.detailsElement=t},onToggle:this.handleToggle},n("summary",{ref:this.catchRef},n("kol-icon",{_label:"",_icons:"codicon codicon-chevron-right",class:"icon "+(this.state._open?"is-open":"")}),n("span",null,this.state._label)),n("div",{"aria-hidden":!1===this.state._open?"true":void 0,class:"content",ref:t=>this.contentElement=t},n("kol-indented-text",null,n("slot",null)))))}validateLabel(t){o(this,t,{required:!0})}validateOn(t){"object"==typeof t&&null!==t&&"function"==typeof t.onToggle&&a(this,"_on",t)}validateOpen(t){l(this,t)}componentWillLoad(){this.validateLabel(this._label),this.validateOn(this._on),this.validateOpen(this._open)}componentDidLoad(){if(this.detailsElement&&this.summaryElement&&this.contentElement){const t=new r(this.detailsElement,this.summaryElement,this.contentElement);this.state._open&&t.open()}}get host(){return i(this)}static get watchers(){return{_label:["validateLabel"],_on:["validateOn"],_open:["validateOpen"]}}};p.style={default:c};export{p as kol_details};
4
+ import{r as t,h as n,H as e,g as i}from"./index-a5e15b1e.js";import{k as s,l as o,v as a,m as l,n as h}from"./index-c3ae175d.js";import{p as r,t as d}from"./events-29e84d75.js";class c{constructor(t,n,e){this.detailsElement=t,this.summaryElement=n,this.contentElement=e,this.isClosing=!1,this.isExpanding=!1,this.summaryElement.addEventListener("click",this.handleSummaryClick.bind(this))}handleSummaryClick(t){t.preventDefault(),this.isClosing||!this.detailsElement.open?this.open():(this.isExpanding||this.detailsElement.open)&&this.collapse()}open(){this.detailsElement.open=!0,window.requestAnimationFrame(this.expand.bind(this))}expand(){this.isExpanding=!0,this.animateContentHeight("expand")}collapse(){this.isClosing=!0,this.animateContentHeight("collapse")}animateContentHeight(t){let n="expand"===t?0:this.contentElement.offsetHeight,e="expand"===t?this.contentElement.offsetHeight:0;this.animation&&(n=this.contentElement.offsetHeight,this.animation.cancel(),"expand"===t&&(e=this.contentElement.offsetHeight)),this.animation=this.contentElement.animate({height:[`${n}px`,`${e}px`]},{duration:matchMedia("(prefers-reduced-motion)").matches?0:250,easing:"ease-out"}),this.animation.addEventListener("finish",(()=>{this.onAnimationFinish()}),{once:!0}),this.animation.addEventListener("cancel",(()=>{"expand"===t?this.isExpanding=!1:this.isClosing=!1}),{once:!0})}onAnimationFinish(){this.detailsElement.open=this.isExpanding,this.animation=void 0,this.isClosing=!1,this.isExpanding=!1}}const p="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n@layer kol-component {\n\t:host {\n\t\tdisplay: block;\n\t}\n}\n\n@layer kol-component {\n\tdetails {\n\t\tdisplay: grid;\n\t}\n\n\tdetails > summary {\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\tdetails > summary > span {\n\t\tborder-bottom-color: grey;\n\t\tborder-bottom-style: solid;\n\t}\n\n\tdetails > summary:focus > span,\n\tdetails > summary:hover > span,\n\tdetails[open] > summary > span {\n\t\tborder-bottom-color: #000;\n\t}\n\n\t.content {\n\t\toverflow: hidden;\n\t}\n\n\tdetails > kol-indented-text {\n\t\tmargin: 0.25em 0 0 0.5em;\n\t}\n\n\t.icon.is-open::part(icon) {\n\t\ttransform: rotate(90deg);\n\t}\n}\n",u=p,m=class{constructor(n){t(this,n),this.catchDetails=t=>{this.detailsElement=t},this.catchSummary=t=>{this.summaryElement=t,s(this.host,this.summaryElement)},this.preventToggleIfDisabled=t=>{!0===this.state._disabled&&r(t)},this.handleToggle=t=>{clearTimeout(this.toggleTimeout),this.toggleTimeout=setTimeout((()=>{var n,e,i,s;Boolean(null===(n=this.detailsElement)||void 0===n?void 0:n.open)!==this.state._open&&(this._open=Boolean(null===(e=this.detailsElement)||void 0===e?void 0:e.open),d("toggle",this.host,this._open),"function"==typeof(null===(i=this.state._on)||void 0===i?void 0:i.onToggle)&&(null===(s=this.state._on)||void 0===s||s.onToggle(t,this._open)))}),25)},this._disabled=!1,this._label=void 0,this._on=void 0,this._open=!1,this.state={_label:"",_on:{}}}render(){return n(e,null,n("details",{ref:this.catchDetails,class:{disabled:!0===this.state._disabled,open:!0===this.state._open},onToggle:this.handleToggle},n("summary",{ref:this.catchSummary,"aria-disabled":this.state._disabled?"true":void 0,onClick:this.preventToggleIfDisabled,onKeyPress:this.preventToggleIfDisabled,tabIndex:this.state._disabled?-1:void 0},n("kol-icon",{_label:"",_icons:"codicon codicon-chevron-right",class:"icon "+(this.state._open?"is-open":"")}),n("span",null,this.state._label)),n("div",{"aria-hidden":!1===this.state._open?"true":void 0,class:"content",ref:t=>this.contentElement=t},n("kol-indented-text",null,n("slot",null)))))}validateDisabled(t){o(this,t)}validateLabel(t){a(this,t,{required:!0})}validateOn(t){"object"==typeof t&&null!==t&&"function"==typeof t.onToggle&&l(this,"_on",t)}validateOpen(t){h(this,t)}componentWillLoad(){this.validateDisabled(this._disabled),this.validateLabel(this._label),this.validateOn(this._on),this.validateOpen(this._open)}componentDidLoad(){if(this.detailsElement&&this.summaryElement&&this.contentElement){const t=new c(this.detailsElement,this.summaryElement,this.contentElement);this.state._open&&t.open()}}get host(){return i(this)}static get watchers(){return{_disabled:["validateDisabled"],_label:["validateLabel"],_on:["validateOn"],_open:["validateOpen"]}}};m.style={default:u};export{m as kol_details};
@@ -1 +1 @@
1
- {"version":3,"names":["DetailsAnimationController","constructor","detailsElement","summaryElement","contentElement","this","isClosing","isExpanding","addEventListener","handleSummaryClick","bind","event","preventDefault","open","collapse","window","requestAnimationFrame","expand","animateContentHeight","direction","startHeight","offsetHeight","endHeight","animation","cancel","animate","height","duration","matchMedia","matches","easing","onAnimationFinish","once","undefined","defaultStyleCss","KolDetailsDefaultStyle0","KolDetails","catchRef","ref","propagateFocus","host","handleToggle","clearTimeout","toggleTimeout","setTimeout","Boolean","_a","state","_open","_b","tryToDispatchKoliBriEvent","_c","_on","onToggle","_d","_label","render","h","Host","el","_icons","class","element","validateLabel","value","required","validateOn","on","setState","validateOpen","componentWillLoad","componentDidLoad","animationController"],"sources":["src/components/details/DetailsAnimationController.ts","src/components/details/style.css?tag=kol-details&mode=default&encapsulation=shadow","src/components/details/component.tsx"],"sourcesContent":["/* Heavily inspired by: https://codepen.io/Mamboleoo/pen/QWEpLqm */\n\nexport default class DetailsAnimationController {\n\tprivate animation?: Animation;\n\tprivate isClosing = false;\n\tprivate isExpanding = false;\n\n\tconstructor(private detailsElement: HTMLDetailsElement, private summaryElement: HTMLElement, private contentElement: HTMLElement) {\n\t\tthis.summaryElement.addEventListener('click', this.handleSummaryClick.bind(this));\n\t}\n\n\tprivate handleSummaryClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\n\t\tif (this.isClosing || !this.detailsElement.open) {\n\t\t\tthis.open();\n\t\t} else if (this.isExpanding || this.detailsElement.open) {\n\t\t\tthis.collapse();\n\t\t}\n\t}\n\n\tpublic open() {\n\t\tthis.detailsElement.open = true;\n\t\twindow.requestAnimationFrame(this.expand.bind(this));\n\t}\n\n\tprivate expand() {\n\t\tthis.isExpanding = true;\n\t\tthis.animateContentHeight('expand');\n\t}\n\n\tprivate collapse() {\n\t\tthis.isClosing = true;\n\t\tthis.animateContentHeight('collapse');\n\t}\n\n\tprivate animateContentHeight(direction: 'expand' | 'collapse') {\n\t\tlet startHeight = direction === 'expand' ? 0 : this.contentElement.offsetHeight;\n\t\tlet endHeight = direction === 'expand' ? this.contentElement.offsetHeight : 0;\n\n\t\t/**\n\t\t * Override start and end height, when an animation is ongoing. During the animation, offsetHeight reflects the actual current height as it's being animated.\n\t\t * After canceling the animation, it reverts to the full height of the content container.\n\t\t */\n\t\tif (this.animation) {\n\t\t\tstartHeight = this.contentElement.offsetHeight;\n\t\t\tthis.animation.cancel();\n\t\t\tif (direction === 'expand') {\n\t\t\t\tendHeight = this.contentElement.offsetHeight;\n\t\t\t}\n\t\t}\n\n\t\tthis.animation = this.contentElement.animate(\n\t\t\t{\n\t\t\t\theight: [`${startHeight}px`, `${endHeight}px`],\n\t\t\t},\n\t\t\t{\n\t\t\t\tduration: matchMedia('(prefers-reduced-motion)').matches ? 0 : 250,\n\t\t\t\teasing: 'ease-out',\n\t\t\t}\n\t\t);\n\n\t\tthis.animation.addEventListener(\n\t\t\t'finish',\n\t\t\t() => {\n\t\t\t\tthis.onAnimationFinish();\n\t\t\t},\n\t\t\t{ once: true }\n\t\t);\n\t\tthis.animation.addEventListener(\n\t\t\t'cancel',\n\t\t\t() => {\n\t\t\t\tif (direction === 'expand') {\n\t\t\t\t\tthis.isExpanding = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.isClosing = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ once: true }\n\t\t);\n\t}\n\n\tprivate onAnimationFinish() {\n\t\tthis.detailsElement.open = this.isExpanding;\n\t\tthis.animation = undefined;\n\t\tthis.isClosing = false;\n\t\tthis.isExpanding = false;\n\t}\n}\n","@import url(../style.css);\n@import url(../host-display-block.css);\n@layer kol-component {\n\tdetails {\n\t\tdisplay: grid;\n\t}\n\n\tdetails > summary {\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\tdetails > summary > span {\n\t\tborder-bottom-color: grey;\n\t\tborder-bottom-style: solid;\n\t}\n\n\tdetails > summary:focus > span,\n\tdetails > summary:hover > span,\n\tdetails[open] > summary > span {\n\t\tborder-bottom-color: #000;\n\t}\n\n\t.content {\n\t\toverflow: hidden;\n\t}\n\n\tdetails > kol-indented-text {\n\t\tmargin: 0.25em 0 0 0.5em;\n\t}\n\n\t.icon.is-open::part(icon) {\n\t\ttransform: rotate(90deg);\n\t}\n}\n","import type { DetailsAPI, DetailsStates, EventCallbacks, LabelPropType } from '@public-ui/schema';\nimport { propagateFocus, setState, validateLabel, validateOpen } from '@public-ui/schema';\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { tryToDispatchKoliBriEvent } from '../../utils/events';\nimport DetailsAnimationController from './DetailsAnimationController';\n\nimport type { JSX } from '@stencil/core';\n/**\n * @slot - Der Inhalt, der in der Detailbeschreibung angezeigt wird.\n */\n@Component({\n\ttag: 'kol-details',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolDetails implements DetailsAPI {\n\t@Element() private readonly host?: HTMLKolDetailsElement;\n\tprivate detailsElement?: HTMLDetailsElement;\n\tprivate summaryElement?: HTMLElement;\n\tprivate contentElement?: HTMLElement;\n\n\tprivate readonly catchRef = (ref?: HTMLElement) => {\n\t\tthis.summaryElement = ref;\n\t\tpropagateFocus(this.host, this.summaryElement);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<details\n\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\tthis.detailsElement = el as HTMLDetailsElement;\n\t\t\t\t\t}}\n\t\t\t\t\tonToggle={this.handleToggle}\n\t\t\t\t>\n\t\t\t\t\t<summary ref={this.catchRef}>\n\t\t\t\t\t\t<kol-icon _label=\"\" _icons=\"codicon codicon-chevron-right\" class={`icon ${this.state._open ? 'is-open' : ''}`} />\n\t\t\t\t\t\t<span>{this.state._label}</span>\n\t\t\t\t\t</summary>\n\t\t\t\t\t<div aria-hidden={this.state._open === false ? 'true' : undefined} class=\"content\" ref={(element) => (this.contentElement = element)}>\n\t\t\t\t\t\t<kol-indented-text>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</kol-indented-text>\n\t\t\t\t\t</div>\n\t\t\t\t</details>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the callback functions for details.\n\t */\n\t@Prop() public _on?: EventCallbacks;\n\n\t/**\n\t * If set (to true) opens/expands the element, closes if not set (or set to false).\n\t * @TODO: Change type back to `OpenPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _open?: boolean = false;\n\n\t@State() public state: DetailsStates = {\n\t\t_label: '', // ⚠ required\n\t\t_on: {},\n\t};\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(on?: EventCallbacks) {\n\t\tif (typeof on === 'object' && on !== null && typeof on.onToggle === 'function') {\n\t\t\tsetState<EventCallbacks>(this, '_on', on);\n\t\t}\n\t}\n\n\t@Watch('_open')\n\tpublic validateOpen(value?: boolean): void {\n\t\tvalidateOpen(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateOpen(this._open);\n\t}\n\n\tpublic componentDidLoad() {\n\t\tif (this.detailsElement && this.summaryElement && this.contentElement) {\n\t\t\tconst animationController = new DetailsAnimationController(this.detailsElement, this.summaryElement, this.contentElement);\n\t\t\tif (this.state._open) {\n\t\t\t\tanimationController.open();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate toggleTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate handleToggle = (event: Event) => {\n\t\tclearTimeout(this.toggleTimeout);\n\t\tthis.toggleTimeout = setTimeout(() => {\n\t\t\tconst open = Boolean(this.detailsElement?.open);\n\t\t\tif (open !== this.state._open) {\n\t\t\t\t// Update state\n\t\t\t\tthis._open = Boolean(this.detailsElement?.open);\n\n\t\t\t\t// Event handling\n\t\t\t\ttryToDispatchKoliBriEvent('toggle', this.host, this._open);\n\n\t\t\t\t// Callback\n\t\t\t\tif (typeof this.state._on?.onToggle === 'function') {\n\t\t\t\t\tthis.state._on?.onToggle(event, this._open);\n\t\t\t\t}\n\t\t\t}\n\t\t}, 25);\n\t};\n}\n"],"mappings":";;;yKAEqBA,EAKpB,WAAAC,CAAoBC,EAA4CC,EAAqCC,GAAjFC,KAAAH,iBAA4CG,KAAAF,iBAAqCE,KAAAD,iBAH7FC,KAAAC,UAAY,MACZD,KAAAE,YAAc,MAGrBF,KAAKF,eAAeK,iBAAiB,QAASH,KAAKI,mBAAmBC,KAAKL,M,CAGpE,kBAAAI,CAAmBE,GAC1BA,EAAMC,iBAEN,GAAIP,KAAKC,YAAcD,KAAKH,eAAeW,KAAM,CAChDR,KAAKQ,M,MACC,GAAIR,KAAKE,aAAeF,KAAKH,eAAeW,KAAM,CACxDR,KAAKS,U,EAIA,IAAAD,GACNR,KAAKH,eAAeW,KAAO,KAC3BE,OAAOC,sBAAsBX,KAAKY,OAAOP,KAAKL,M,CAGvC,MAAAY,GACPZ,KAAKE,YAAc,KACnBF,KAAKa,qBAAqB,S,CAGnB,QAAAJ,GACPT,KAAKC,UAAY,KACjBD,KAAKa,qBAAqB,W,CAGnB,oBAAAA,CAAqBC,GAC5B,IAAIC,EAAcD,IAAc,SAAW,EAAId,KAAKD,eAAeiB,aACnE,IAAIC,EAAYH,IAAc,SAAWd,KAAKD,eAAeiB,aAAe,EAM5E,GAAIhB,KAAKkB,UAAW,CACnBH,EAAcf,KAAKD,eAAeiB,aAClChB,KAAKkB,UAAUC,SACf,GAAIL,IAAc,SAAU,CAC3BG,EAAYjB,KAAKD,eAAeiB,Y,EAIlChB,KAAKkB,UAAYlB,KAAKD,eAAeqB,QACpC,CACCC,OAAQ,CAAC,GAAGN,MAAiB,GAAGE,QAEjC,CACCK,SAAUC,WAAW,4BAA4BC,QAAU,EAAI,IAC/DC,OAAQ,aAIVzB,KAAKkB,UAAUf,iBACd,UACA,KACCH,KAAK0B,mBAAmB,GAEzB,CAAEC,KAAM,OAET3B,KAAKkB,UAAUf,iBACd,UACA,KACC,GAAIW,IAAc,SAAU,CAC3Bd,KAAKE,YAAc,K,KACb,CACNF,KAAKC,UAAY,K,IAGnB,CAAE0B,KAAM,M,CAIF,iBAAAD,GACP1B,KAAKH,eAAeW,KAAOR,KAAKE,YAChCF,KAAKkB,UAAYU,UACjB5B,KAAKC,UAAY,MACjBD,KAAKE,YAAc,K,ECtFrB,MAAM2B,EAAkB,ivIACxB,MAAAC,EAAeD,E,MCiBFE,EAAU,M,yBAML/B,KAAAgC,SAAYC,IAC5BjC,KAAKF,eAAiBmC,EACtBC,EAAelC,KAAKmC,KAAMnC,KAAKF,eAAe,EAmFvCE,KAAAoC,aAAgB9B,IACvB+B,aAAarC,KAAKsC,eAClBtC,KAAKsC,cAAgBC,YAAW,K,YAC/B,MAAM/B,EAAOgC,SAAQC,EAAAzC,KAAKH,kBAAc,MAAA4C,SAAA,SAAAA,EAAEjC,MAC1C,GAAIA,IAASR,KAAK0C,MAAMC,MAAO,CAE9B3C,KAAK2C,MAAQH,SAAQI,EAAA5C,KAAKH,kBAAc,MAAA+C,SAAA,SAAAA,EAAEpC,MAG1CqC,EAA0B,SAAU7C,KAAKmC,KAAMnC,KAAK2C,OAGpD,WAAWG,EAAA9C,KAAK0C,MAAMK,OAAG,MAAAD,SAAA,SAAAA,EAAEE,YAAa,WAAY,EACnDC,EAAAjD,KAAK0C,MAAMK,OAAG,MAAAE,SAAA,SAAAA,EAAED,SAAS1C,EAAON,KAAK2C,M,KAGrC,GAAG,E,oDA3D0D,M,WAE1B,CACtCO,OAAQ,GACRH,IAAK,G,CAzCC,MAAAI,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,WACCnB,IAAMqB,IACLtD,KAAKH,eAAiByD,CAAwB,EAE/CN,SAAUhD,KAAKoC,cAEfgB,EAAA,WAASnB,IAAKjC,KAAKgC,UAClBoB,EAAA,YAAUF,OAAO,GAAGK,OAAO,gCAAgCC,MAAO,QAAQxD,KAAK0C,MAAMC,MAAQ,UAAY,OACzGS,EAAA,YAAOpD,KAAK0C,MAAMQ,SAEnBE,EAAA,qBAAkBpD,KAAK0C,MAAMC,QAAU,MAAQ,OAASf,UAAW4B,MAAM,UAAUvB,IAAMwB,GAAazD,KAAKD,eAAiB0D,GAC3HL,EAAA,yBACCA,EAAA,gB,CA8BC,aAAAM,CAAcC,GACpBD,EAAc1D,KAAM2D,EAAO,CAC1BC,SAAU,M,CAKL,UAAAC,CAAWC,GACjB,UAAWA,IAAO,UAAYA,IAAO,aAAeA,EAAGd,WAAa,WAAY,CAC/Ee,EAAyB/D,KAAM,MAAO8D,E,EAKjC,YAAAE,CAAaL,GACnBK,EAAahE,KAAM2D,E,CAGb,iBAAAM,GACNjE,KAAK0D,cAAc1D,KAAKkD,QACxBlD,KAAK6D,WAAW7D,KAAK+C,KACrB/C,KAAKgE,aAAahE,KAAK2C,M,CAGjB,gBAAAuB,GACN,GAAIlE,KAAKH,gBAAkBG,KAAKF,gBAAkBE,KAAKD,eAAgB,CACtE,MAAMoE,EAAsB,IAAIxE,EAA2BK,KAAKH,eAAgBG,KAAKF,eAAgBE,KAAKD,gBAC1G,GAAIC,KAAK0C,MAAMC,MAAO,CACrBwB,EAAoB3D,M"}
1
+ {"version":3,"names":["DetailsAnimationController","constructor","detailsElement","summaryElement","contentElement","this","isClosing","isExpanding","addEventListener","handleSummaryClick","bind","event","preventDefault","open","collapse","window","requestAnimationFrame","expand","animateContentHeight","direction","startHeight","offsetHeight","endHeight","animation","cancel","animate","height","duration","matchMedia","matches","easing","onAnimationFinish","once","undefined","defaultStyleCss","KolDetailsDefaultStyle0","KolDetails","catchDetails","ref","catchSummary","propagateFocus","host","preventToggleIfDisabled","state","_disabled","preventDefaultAndStopPropagation","handleToggle","clearTimeout","toggleTimeout","setTimeout","Boolean","_a","_open","_b","tryToDispatchKoliBriEvent","_c","_on","onToggle","_d","_label","render","h","Host","class","disabled","onClick","onKeyPress","tabIndex","_icons","element","validateDisabled","value","validateLabel","required","validateOn","on","setState","validateOpen","componentWillLoad","componentDidLoad","animationController"],"sources":["src/components/details/DetailsAnimationController.ts","src/components/details/style.css?tag=kol-details&mode=default&encapsulation=shadow","src/components/details/component.tsx"],"sourcesContent":["/* Heavily inspired by: https://codepen.io/Mamboleoo/pen/QWEpLqm */\n\nexport class DetailsAnimationController {\n\tprivate animation?: Animation;\n\tprivate isClosing = false;\n\tprivate isExpanding = false;\n\n\tconstructor(private detailsElement: HTMLDetailsElement, private summaryElement: HTMLElement, private contentElement: HTMLElement) {\n\t\tthis.summaryElement.addEventListener('click', this.handleSummaryClick.bind(this));\n\t}\n\n\tprivate handleSummaryClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\n\t\tif (this.isClosing || !this.detailsElement.open) {\n\t\t\tthis.open();\n\t\t} else if (this.isExpanding || this.detailsElement.open) {\n\t\t\tthis.collapse();\n\t\t}\n\t}\n\n\tpublic open() {\n\t\tthis.detailsElement.open = true;\n\t\twindow.requestAnimationFrame(this.expand.bind(this));\n\t}\n\n\tprivate expand() {\n\t\tthis.isExpanding = true;\n\t\tthis.animateContentHeight('expand');\n\t}\n\n\tprivate collapse() {\n\t\tthis.isClosing = true;\n\t\tthis.animateContentHeight('collapse');\n\t}\n\n\tprivate animateContentHeight(direction: 'expand' | 'collapse') {\n\t\tlet startHeight = direction === 'expand' ? 0 : this.contentElement.offsetHeight;\n\t\tlet endHeight = direction === 'expand' ? this.contentElement.offsetHeight : 0;\n\n\t\t/**\n\t\t * Override start and end height, when an animation is ongoing. During the animation, offsetHeight reflects the actual current height as it's being animated.\n\t\t * After canceling the animation, it reverts to the full height of the content container.\n\t\t */\n\t\tif (this.animation) {\n\t\t\tstartHeight = this.contentElement.offsetHeight;\n\t\t\tthis.animation.cancel();\n\t\t\tif (direction === 'expand') {\n\t\t\t\tendHeight = this.contentElement.offsetHeight;\n\t\t\t}\n\t\t}\n\n\t\tthis.animation = this.contentElement.animate(\n\t\t\t{\n\t\t\t\theight: [`${startHeight}px`, `${endHeight}px`],\n\t\t\t},\n\t\t\t{\n\t\t\t\tduration: matchMedia('(prefers-reduced-motion)').matches ? 0 : 250,\n\t\t\t\teasing: 'ease-out',\n\t\t\t}\n\t\t);\n\n\t\tthis.animation.addEventListener(\n\t\t\t'finish',\n\t\t\t() => {\n\t\t\t\tthis.onAnimationFinish();\n\t\t\t},\n\t\t\t{ once: true }\n\t\t);\n\t\tthis.animation.addEventListener(\n\t\t\t'cancel',\n\t\t\t() => {\n\t\t\t\tif (direction === 'expand') {\n\t\t\t\t\tthis.isExpanding = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.isClosing = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ once: true }\n\t\t);\n\t}\n\n\tprivate onAnimationFinish() {\n\t\tthis.detailsElement.open = this.isExpanding;\n\t\tthis.animation = undefined;\n\t\tthis.isClosing = false;\n\t\tthis.isExpanding = false;\n\t}\n}\n","@import url(../style.css);\n@import url(../host-display-block.css);\n@layer kol-component {\n\tdetails {\n\t\tdisplay: grid;\n\t}\n\n\tdetails > summary {\n\t\tcursor: pointer;\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\tdetails > summary > span {\n\t\tborder-bottom-color: grey;\n\t\tborder-bottom-style: solid;\n\t}\n\n\tdetails > summary:focus > span,\n\tdetails > summary:hover > span,\n\tdetails[open] > summary > span {\n\t\tborder-bottom-color: #000;\n\t}\n\n\t.content {\n\t\toverflow: hidden;\n\t}\n\n\tdetails > kol-indented-text {\n\t\tmargin: 0.25em 0 0 0.5em;\n\t}\n\n\t.icon.is-open::part(icon) {\n\t\ttransform: rotate(90deg);\n\t}\n}\n","import type { DetailsAPI, DetailsStates, EventCallbacks, LabelPropType } from '@public-ui/schema';\nimport { propagateFocus, setState, validateLabel, validateOpen } from '@public-ui/schema';\nimport { Component, Element, Host, Prop, State, Watch, h } from '@stencil/core';\n\nimport { tryToDispatchKoliBriEvent } from '../../utils/events';\nimport { DetailsAnimationController } from './DetailsAnimationController';\n\nimport type { DisabledPropType } from '@public-ui/schema';\nimport { validateDisabled } from '@public-ui/schema';\nimport type { JSX } from '@stencil/core';\nimport { preventDefaultAndStopPropagation } from '../../utils/events';\n\n/**\n * @slot - Der Inhalt, der in der Detailbeschreibung angezeigt wird.\n */\n@Component({\n\ttag: 'kol-details',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolDetails implements DetailsAPI {\n\t@Element() private readonly host?: HTMLKolDetailsElement;\n\tprivate detailsElement?: HTMLDetailsElement;\n\tprivate summaryElement?: HTMLElement;\n\tprivate contentElement?: HTMLElement;\n\n\tprivate readonly catchDetails = (ref?: HTMLElement) => {\n\t\tthis.detailsElement = ref as HTMLDetailsElement;\n\t};\n\n\tprivate readonly catchSummary = (ref?: HTMLElement) => {\n\t\tthis.summaryElement = ref;\n\t\tpropagateFocus(this.host, this.summaryElement);\n\t};\n\n\t/**\n\t * Handle disabled, because the toggle event is to late.\n\t */\n\tprivate readonly preventToggleIfDisabled = (event: Event) => {\n\t\tif (this.state._disabled === true) {\n\t\t\tpreventDefaultAndStopPropagation(event);\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<details\n\t\t\t\t\tref={this.catchDetails}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\tdisabled: this.state._disabled === true,\n\t\t\t\t\t\topen: this.state._open === true,\n\t\t\t\t\t}}\n\t\t\t\t\tonToggle={this.handleToggle}\n\t\t\t\t>\n\t\t\t\t\t{/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n\t\t\t\t\t<summary\n\t\t\t\t\t\tref={this.catchSummary}\n\t\t\t\t\t\taria-disabled={this.state._disabled ? 'true' : undefined}\n\t\t\t\t\t\tonClick={this.preventToggleIfDisabled}\n\t\t\t\t\t\tonKeyPress={this.preventToggleIfDisabled}\n\t\t\t\t\t\ttabIndex={this.state._disabled ? -1 : undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t<kol-icon _label=\"\" _icons=\"codicon codicon-chevron-right\" class={`icon ${this.state._open ? 'is-open' : ''}`} />\n\t\t\t\t\t\t<span>{this.state._label}</span>\n\t\t\t\t\t</summary>\n\t\t\t\t\t<div aria-hidden={this.state._open === false ? 'true' : undefined} class=\"content\" ref={(element) => (this.contentElement = element)}>\n\t\t\t\t\t\t<kol-indented-text>\n\t\t\t\t\t\t\t<slot />\n\t\t\t\t\t\t</kol-indented-text>\n\t\t\t\t\t</div>\n\t\t\t\t</details>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Makes the element not focusable and ignore all events.\n\t */\n\t@Prop() public _disabled?: boolean = false;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the callback functions for details.\n\t */\n\t@Prop() public _on?: EventCallbacks;\n\n\t/**\n\t * If set (to true) opens/expands the element, closes if not set (or set to false).\n\t * @TODO: Change type back to `OpenPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _open?: boolean = false;\n\n\t@State() public state: DetailsStates = {\n\t\t_label: '', // ⚠ required\n\t\t_on: {},\n\t};\n\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: DisabledPropType): void {\n\t\tvalidateDisabled(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(on?: EventCallbacks) {\n\t\tif (typeof on === 'object' && on !== null && typeof on.onToggle === 'function') {\n\t\t\tsetState<EventCallbacks>(this, '_on', on);\n\t\t}\n\t}\n\n\t@Watch('_open')\n\tpublic validateOpen(value?: boolean): void {\n\t\tvalidateOpen(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateOpen(this._open);\n\t}\n\n\tpublic componentDidLoad() {\n\t\tif (this.detailsElement && this.summaryElement && this.contentElement) {\n\t\t\tconst animationController = new DetailsAnimationController(this.detailsElement, this.summaryElement, this.contentElement);\n\t\t\tif (this.state._open) {\n\t\t\t\tanimationController.open();\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate toggleTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate handleToggle = (event: Event) => {\n\t\tclearTimeout(this.toggleTimeout);\n\t\tthis.toggleTimeout = setTimeout(() => {\n\t\t\tconst open = Boolean(this.detailsElement?.open);\n\t\t\tif (open !== this.state._open) {\n\t\t\t\t// Update state\n\t\t\t\tthis._open = Boolean(this.detailsElement?.open);\n\n\t\t\t\t// Event handling\n\t\t\t\ttryToDispatchKoliBriEvent('toggle', this.host, this._open);\n\n\t\t\t\t// Callback\n\t\t\t\tif (typeof this.state._on?.onToggle === 'function') {\n\t\t\t\t\tthis.state._on?.onToggle(event, this._open);\n\t\t\t\t}\n\t\t\t}\n\t\t}, 25);\n\t};\n}\n"],"mappings":";;;uLAEaA,EAKZ,WAAAC,CAAoBC,EAA4CC,EAAqCC,GAAjFC,KAAAH,iBAA4CG,KAAAF,iBAAqCE,KAAAD,iBAH7FC,KAAAC,UAAY,MACZD,KAAAE,YAAc,MAGrBF,KAAKF,eAAeK,iBAAiB,QAASH,KAAKI,mBAAmBC,KAAKL,M,CAGpE,kBAAAI,CAAmBE,GAC1BA,EAAMC,iBAEN,GAAIP,KAAKC,YAAcD,KAAKH,eAAeW,KAAM,CAChDR,KAAKQ,M,MACC,GAAIR,KAAKE,aAAeF,KAAKH,eAAeW,KAAM,CACxDR,KAAKS,U,EAIA,IAAAD,GACNR,KAAKH,eAAeW,KAAO,KAC3BE,OAAOC,sBAAsBX,KAAKY,OAAOP,KAAKL,M,CAGvC,MAAAY,GACPZ,KAAKE,YAAc,KACnBF,KAAKa,qBAAqB,S,CAGnB,QAAAJ,GACPT,KAAKC,UAAY,KACjBD,KAAKa,qBAAqB,W,CAGnB,oBAAAA,CAAqBC,GAC5B,IAAIC,EAAcD,IAAc,SAAW,EAAId,KAAKD,eAAeiB,aACnE,IAAIC,EAAYH,IAAc,SAAWd,KAAKD,eAAeiB,aAAe,EAM5E,GAAIhB,KAAKkB,UAAW,CACnBH,EAAcf,KAAKD,eAAeiB,aAClChB,KAAKkB,UAAUC,SACf,GAAIL,IAAc,SAAU,CAC3BG,EAAYjB,KAAKD,eAAeiB,Y,EAIlChB,KAAKkB,UAAYlB,KAAKD,eAAeqB,QACpC,CACCC,OAAQ,CAAC,GAAGN,MAAiB,GAAGE,QAEjC,CACCK,SAAUC,WAAW,4BAA4BC,QAAU,EAAI,IAC/DC,OAAQ,aAIVzB,KAAKkB,UAAUf,iBACd,UACA,KACCH,KAAK0B,mBAAmB,GAEzB,CAAEC,KAAM,OAET3B,KAAKkB,UAAUf,iBACd,UACA,KACC,GAAIW,IAAc,SAAU,CAC3Bd,KAAKE,YAAc,K,KACb,CACNF,KAAKC,UAAY,K,IAGnB,CAAE0B,KAAM,M,CAIF,iBAAAD,GACP1B,KAAKH,eAAeW,KAAOR,KAAKE,YAChCF,KAAKkB,UAAYU,UACjB5B,KAAKC,UAAY,MACjBD,KAAKE,YAAc,K,ECtFrB,MAAM2B,EAAkB,07IACxB,MAAAC,EAAeD,E,MCqBFE,EAAU,M,yBAML/B,KAAAgC,aAAgBC,IAChCjC,KAAKH,eAAiBoC,CAAyB,EAG/BjC,KAAAkC,aAAgBD,IAChCjC,KAAKF,eAAiBmC,EACtBE,EAAenC,KAAKoC,KAAMpC,KAAKF,eAAe,EAM9BE,KAAAqC,wBAA2B/B,IAC3C,GAAIN,KAAKsC,MAAMC,YAAc,KAAM,CAClCC,EAAiClC,E,GAwG3BN,KAAAyC,aAAgBnC,IACvBoC,aAAa1C,KAAK2C,eAClB3C,KAAK2C,cAAgBC,YAAW,K,YAC/B,MAAMpC,EAAOqC,SAAQC,EAAA9C,KAAKH,kBAAc,MAAAiD,SAAA,SAAAA,EAAEtC,MAC1C,GAAIA,IAASR,KAAKsC,MAAMS,MAAO,CAE9B/C,KAAK+C,MAAQF,SAAQG,EAAAhD,KAAKH,kBAAc,MAAAmD,SAAA,SAAAA,EAAExC,MAG1CyC,EAA0B,SAAUjD,KAAKoC,KAAMpC,KAAK+C,OAGpD,WAAWG,EAAAlD,KAAKsC,MAAMa,OAAG,MAAAD,SAAA,SAAAA,EAAEE,YAAa,WAAY,EACnDC,EAAArD,KAAKsC,MAAMa,OAAG,MAAAE,SAAA,SAAAA,EAAED,SAAS9C,EAAON,KAAK+C,M,KAGrC,GAAG,E,eAjF8B,M,oDAgB4B,M,WAE1B,CACtCO,OAAQ,GACRH,IAAK,G,CAvDC,MAAAI,GACN,OACCC,EAACC,EAAI,KACJD,EAAA,WACCvB,IAAKjC,KAAKgC,aACV0B,MAAO,CACNC,SAAU3D,KAAKsC,MAAMC,YAAc,KACnC/B,KAAMR,KAAKsC,MAAMS,QAAU,MAE5BK,SAAUpD,KAAKyC,cAGfe,EAAA,WACCvB,IAAKjC,KAAKkC,aAAY,gBACPlC,KAAKsC,MAAMC,UAAY,OAASX,UAC/CgC,QAAS5D,KAAKqC,wBACdwB,WAAY7D,KAAKqC,wBACjByB,SAAU9D,KAAKsC,MAAMC,WAAa,EAAIX,WAEtC4B,EAAA,YAAUF,OAAO,GAAGS,OAAO,gCAAgCL,MAAO,QAAQ1D,KAAKsC,MAAMS,MAAQ,UAAY,OACzGS,EAAA,YAAOxD,KAAKsC,MAAMgB,SAEnBE,EAAA,qBAAkBxD,KAAKsC,MAAMS,QAAU,MAAQ,OAASnB,UAAW8B,MAAM,UAAUzB,IAAM+B,GAAahE,KAAKD,eAAiBiE,GAC3HR,EAAA,yBACCA,EAAA,gB,CAmCC,gBAAAS,CAAiBC,GACvBD,EAAiBjE,KAAMkE,E,CAIjB,aAAAC,CAAcD,GACpBC,EAAcnE,KAAMkE,EAAO,CAC1BE,SAAU,M,CAKL,UAAAC,CAAWC,GACjB,UAAWA,IAAO,UAAYA,IAAO,aAAeA,EAAGlB,WAAa,WAAY,CAC/EmB,EAAyBvE,KAAM,MAAOsE,E,EAKjC,YAAAE,CAAaN,GACnBM,EAAaxE,KAAMkE,E,CAGb,iBAAAO,GACNzE,KAAKiE,iBAAiBjE,KAAKuC,WAC3BvC,KAAKmE,cAAcnE,KAAKsD,QACxBtD,KAAKqE,WAAWrE,KAAKmD,KACrBnD,KAAKwE,aAAaxE,KAAK+C,M,CAGjB,gBAAA2B,GACN,GAAI1E,KAAKH,gBAAkBG,KAAKF,gBAAkBE,KAAKD,eAAgB,CACtE,MAAM4E,EAAsB,IAAIhF,EAA2BK,KAAKH,eAAgBG,KAAKF,eAAgBE,KAAKD,gBAC1G,GAAIC,KAAKsC,MAAMS,MAAO,CACrB4B,EAAoBnE,M"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as i}from"./index-0b7aa54b.js";import{n as e,q as o,r as s}from"./index-807d8631.js";import{a as r}from"./i18n-6e523906.js";import"./index-7c986198.js";import"./dev.utils-69ed2492.js";const l=class{constructor(e){t(this,e),this.onSubmit=t=>{var e,i;t.preventDefault(),t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onSubmit)&&(null===(i=this.state._on)||void 0===i||i.onSubmit(t))},this.onReset=t=>{var e,i;t.preventDefault(),t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onReset)&&(null===(i=this.state._on)||void 0===i||i.onReset(t))},this.handleLinkClick=t=>{var e;const i=null===(e=t.target)||void 0===e?void 0:e.href;if(i){const t=new URL(i),e=document.querySelector(t.hash);e&&"function"==typeof e.focus&&(e.scrollIntoView({behavior:"smooth"}),e.focus())}},this._on=void 0,this._requiredText=!0,this._errorList=void 0,this.state={}}render(){return i("form",{method:"post",onSubmit:this.onSubmit,onReset:this.onReset,autoComplete:"off",noValidate:!0},this._errorList&&this._errorList.length>0&&i("kol-alert",{_type:"error"},r("kol-error-list-message"),i("nav",{"aria-label":r("kol-error-list")},i("ul",null,this._errorList.map(((t,e)=>i("li",{key:e},i("kol-link",{_href:t.selector,_label:t.message,_on:{onClick:this.handleLinkClick}}))))))),!0===this.state._requiredText?i("p",null,i("kol-indented-text",null,r("kol-form-description"))):"string"==typeof this.state._requiredText&&this.state._requiredText.length>0?i("p",null,i("kol-indented-text",null,this.state._requiredText)):null,i("slot",null))}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRequiredText(t){"boolean"==typeof t?e(this,"_requiredText",t):o(this,"_requiredText",t)}validateErrorList(t){s(this,t)}componentWillLoad(){this.validateOn(this._on),this.validateRequiredText(this._requiredText),this.validateErrorList(this._errorList)}static get watchers(){return{_on:["validateOn"],_requiredText:["validateRequiredText"],_errorList:["validateErrorList"]}}};export{l as kol_form};
4
+ import{r as t,h as i}from"./index-a5e15b1e.js";import{B as e,C as o,D as s}from"./index-c3ae175d.js";import{a as r}from"./i18n-73edd5e1.js";import"./index-eb50dd62.js";import"./dev.utils-c7d151c6.js";const l=class{constructor(e){t(this,e),this.onSubmit=t=>{var e,i;t.preventDefault(),t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onSubmit)&&(null===(i=this.state._on)||void 0===i||i.onSubmit(t))},this.onReset=t=>{var e,i;t.preventDefault(),t.stopPropagation(),"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onReset)&&(null===(i=this.state._on)||void 0===i||i.onReset(t))},this.handleLinkClick=t=>{var e;const i=null===(e=t.target)||void 0===e?void 0:e.href;if(i){const t=new URL(i),e=document.querySelector(t.hash);e&&"function"==typeof e.focus&&(e.scrollIntoView({behavior:"smooth"}),e.focus())}},this._on=void 0,this._requiredText=!0,this._errorList=void 0,this.state={}}render(){return i("form",{method:"post",onSubmit:this.onSubmit,onReset:this.onReset,autoComplete:"off",noValidate:!0},this._errorList&&this._errorList.length>0&&i("kol-alert",{_type:"error"},r("kol-error-list-message"),i("nav",{"aria-label":r("kol-error-list")},i("ul",null,this._errorList.map(((t,e)=>i("li",{key:e},i("kol-link",{_href:t.selector,_label:t.message,_on:{onClick:this.handleLinkClick},ref:t=>{0===e&&(this.errorListElement=t)}}))))))),!0===this.state._requiredText?i("p",null,i("kol-indented-text",null,r("kol-form-description"))):"string"==typeof this.state._requiredText&&this.state._requiredText.length>0?i("p",null,i("kol-indented-text",null,this.state._requiredText)):null,i("slot",null))}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRequiredText(t){"boolean"==typeof t?e(this,"_requiredText",t):o(this,"_requiredText",t)}validateErrorList(t){s(this,t)}componentWillLoad(){this.validateOn(this._on),this.validateRequiredText(this._requiredText),this.validateErrorList(this._errorList)}componentDidRender(){var t;this._errorList&&this._errorList.length>0&&(null===(t=this.errorListElement)||void 0===t||t.focus())}static get watchers(){return{_on:["validateOn"],_requiredText:["validateRequiredText"],_errorList:["validateErrorList"]}}};export{l as kol_form};
@@ -1 +1 @@
1
- {"version":3,"names":["KolForm","this","onSubmit","event","preventDefault","stopPropagation","_a","state","_on","_b","onReset","handleLinkClick","href","target","hrefUrl","URL","targetElement","document","querySelector","hash","focus","scrollIntoView","behavior","render","h","method","autoComplete","noValidate","_errorList","length","_type","translate","map","error","index","key","_href","selector","_label","message","onClick","_requiredText","validateOn","value","Object","assign","validateRequiredText","watchBoolean","watchString","validateErrorList","componentWillLoad"],"sources":["src/components/form/component.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { validateErrorList, watchBoolean, watchString } from '@public-ui/schema';\nimport { Component, h, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\n\nimport type { ErrorListPropType, FormAPI, FormStates, KoliBriFormCallbacks, Stringified } from '@public-ui/schema';\n/**\n * @slot - Inhalt der Form.\n */\n@Component({\n\ttag: 'kol-form',\n\tshadow: true,\n})\nexport class KolForm implements FormAPI {\n\tprivate readonly onSubmit = (event: Event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tif (typeof this.state._on?.onSubmit === 'function') {\n\t\t\tthis.state._on?.onSubmit(event as SubmitEvent);\n\t\t}\n\t};\n\tprivate readonly onReset = (event: Event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tif (typeof this.state._on?.onReset === 'function') {\n\t\t\tthis.state._on?.onReset(event);\n\t\t}\n\t};\n\n\tprivate readonly handleLinkClick = (event: Event) => {\n\t\tconst href = (event.target as HTMLAnchorElement | undefined)?.href;\n\t\tif (href) {\n\t\t\tconst hrefUrl = new URL(href);\n\n\t\t\tconst targetElement = document.querySelector<HTMLElement>(hrefUrl.hash);\n\t\t\tif (targetElement && typeof targetElement.focus === 'function') {\n\t\t\t\ttargetElement.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\ttargetElement.focus();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<form method=\"post\" onSubmit={this.onSubmit} onReset={this.onReset} autoComplete=\"off\" noValidate>\n\t\t\t\t{this._errorList && this._errorList.length > 0 && (\n\t\t\t\t\t<kol-alert _type=\"error\">\n\t\t\t\t\t\t{translate('kol-error-list-message')}\n\t\t\t\t\t\t<nav aria-label={translate('kol-error-list')}>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{this._errorList.map((error, index) => (\n\t\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t\t<kol-link _href={error.selector} _label={error.message} _on={{ onClick: this.handleLinkClick }} />\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t</kol-alert>\n\t\t\t\t)}\n\t\t\t\t{this.state._requiredText === true ? (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<kol-indented-text>{translate('kol-form-description')}</kol-indented-text>\n\t\t\t\t\t</p>\n\t\t\t\t) : typeof this.state._requiredText === 'string' && this.state._requiredText.length > 0 ? (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<kol-indented-text>{this.state._requiredText}</kol-indented-text>\n\t\t\t\t\t</p>\n\t\t\t\t) : null}\n\t\t\t\t<slot />\n\t\t\t</form>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Form-Events an.\n\t */\n\t@Prop() public _on?: KoliBriFormCallbacks;\n\n\t/**\n\t * Defines whether the mandatory-fields-hint should be shown. A string overrides the default text.\n\t */\n\t@Prop() public _requiredText?: Stringified<boolean> = true;\n\t/**\n\t * A list of error objects that each describe an issue encountered in the form.\n\t * Each error object contains a message and a selector for identifying the form element related to the error.\n\t */\n\t@Prop() public _errorList?: ErrorListPropType[];\n\n\t@State() public state: FormStates = {};\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriFormCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_requiredText')\n\tpublic validateRequiredText(value?: Stringified<boolean>): void {\n\t\tif (typeof value === 'boolean') {\n\t\t\twatchBoolean(this, '_requiredText', value);\n\t\t} else {\n\t\t\twatchString(this, '_requiredText', value);\n\t\t}\n\t}\n\n\t@Watch('_errorList')\n\tpublic validateErrorList(value?: ErrorListPropType[]): void {\n\t\tvalidateErrorList(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRequiredText(this._requiredText);\n\t\tthis.validateErrorList(this._errorList);\n\t}\n}\n"],"mappings":";;;8MAcaA,EAAO,M,yBACFC,KAAAC,SAAYC,I,QAC5BA,EAAMC,iBACND,EAAME,kBACN,WAAWC,EAAAL,KAAKM,MAAMC,OAAG,MAAAF,SAAA,SAAAA,EAAEJ,YAAa,WAAY,EACnDO,EAAAR,KAAKM,MAAMC,OAAG,MAAAC,SAAA,SAAAA,EAAEP,SAASC,E,GAGVF,KAAAS,QAAWP,I,QAC3BA,EAAMC,iBACND,EAAME,kBACN,WAAWC,EAAAL,KAAKM,MAAMC,OAAG,MAAAF,SAAA,SAAAA,EAAEI,WAAY,WAAY,EAClDD,EAAAR,KAAKM,MAAMC,OAAG,MAAAC,SAAA,SAAAA,EAAEC,QAAQP,E,GAITF,KAAAU,gBAAmBR,I,MACnC,MAAMS,GAAON,EAACH,EAAMU,UAAwC,MAAAP,SAAA,SAAAA,EAAEM,KAC9D,GAAIA,EAAM,CACT,MAAME,EAAU,IAAIC,IAAIH,GAExB,MAAMI,EAAgBC,SAASC,cAA2BJ,EAAQK,MAClE,GAAIH,UAAwBA,EAAcI,QAAU,WAAY,CAC/DJ,EAAcK,eAAe,CAAEC,SAAU,WACzCN,EAAcI,O,0CA4CqC,K,qCAOlB,E,CA9C7B,MAAAG,GACN,OACCC,EAAA,QAAMC,OAAO,OAAOvB,SAAUD,KAAKC,SAAUQ,QAAST,KAAKS,QAASgB,aAAa,MAAMC,WAAU,MAC/F1B,KAAK2B,YAAc3B,KAAK2B,WAAWC,OAAS,GAC5CL,EAAA,aAAWM,MAAM,SACfC,EAAU,0BACXP,EAAA,oBAAiBO,EAAU,mBAC1BP,EAAA,UACEvB,KAAK2B,WAAWI,KAAI,CAACC,EAAOC,IAC5BV,EAAA,MAAIW,IAAKD,GACRV,EAAA,YAAUY,MAAOH,EAAMI,SAAUC,OAAQL,EAAMM,QAAS/B,IAAK,CAAEgC,QAASvC,KAAKU,yBAOlFV,KAAKM,MAAMkC,gBAAkB,KAC7BjB,EAAA,SACCA,EAAA,yBAAoBO,EAAU,iCAErB9B,KAAKM,MAAMkC,gBAAkB,UAAYxC,KAAKM,MAAMkC,cAAcZ,OAAS,EACrFL,EAAA,SACCA,EAAA,yBAAoBvB,KAAKM,MAAMkC,gBAE7B,KACJjB,EAAA,a,CAuBI,UAAAkB,CAAWC,GACjB,UAAWA,IAAU,UAAYA,IAAU,KAAM,CAChD1C,KAAKM,MAAKqC,OAAAC,OAAAD,OAAAC,OAAA,GACN5C,KAAKM,OAAK,CACbC,IAAKmC,G,EAMD,oBAAAG,CAAqBH,GAC3B,UAAWA,IAAU,UAAW,CAC/BI,EAAa9C,KAAM,gBAAiB0C,E,KAC9B,CACNK,EAAY/C,KAAM,gBAAiB0C,E,EAK9B,iBAAAM,CAAkBN,GACxBM,EAAkBhD,KAAM0C,E,CAGlB,iBAAAO,GACNjD,KAAKyC,WAAWzC,KAAKO,KACrBP,KAAK6C,qBAAqB7C,KAAKwC,eAC/BxC,KAAKgD,kBAAkBhD,KAAK2B,W"}
1
+ {"version":3,"names":["KolForm","this","onSubmit","event","preventDefault","stopPropagation","_a","state","_on","_b","onReset","handleLinkClick","href","target","hrefUrl","URL","targetElement","document","querySelector","hash","focus","scrollIntoView","behavior","render","h","method","autoComplete","noValidate","_errorList","length","_type","translate","map","error","index","key","_href","selector","_label","message","onClick","ref","el","errorListElement","_requiredText","validateOn","value","Object","assign","validateRequiredText","watchBoolean","watchString","validateErrorList","componentWillLoad","componentDidRender"],"sources":["src/components/form/component.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { validateErrorList, watchBoolean, watchString } from '@public-ui/schema';\nimport { Component, h, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\n\nimport type { ErrorListPropType, FormAPI, FormStates, KoliBriFormCallbacks, Stringified } from '@public-ui/schema';\n/**\n * @slot - Inhalt der Form.\n */\n@Component({\n\ttag: 'kol-form',\n\tshadow: true,\n})\nexport class KolForm implements FormAPI {\n\terrorListElement?: HTMLElement;\n\n\tprivate readonly onSubmit = (event: Event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tif (typeof this.state._on?.onSubmit === 'function') {\n\t\t\tthis.state._on?.onSubmit(event as SubmitEvent);\n\t\t}\n\t};\n\tprivate readonly onReset = (event: Event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tif (typeof this.state._on?.onReset === 'function') {\n\t\t\tthis.state._on?.onReset(event);\n\t\t}\n\t};\n\n\tprivate readonly handleLinkClick = (event: Event) => {\n\t\tconst href = (event.target as HTMLAnchorElement | undefined)?.href;\n\t\tif (href) {\n\t\t\tconst hrefUrl = new URL(href);\n\n\t\t\tconst targetElement = document.querySelector<HTMLElement>(hrefUrl.hash);\n\t\t\tif (targetElement && typeof targetElement.focus === 'function') {\n\t\t\t\ttargetElement.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\ttargetElement.focus();\n\t\t\t}\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<form method=\"post\" onSubmit={this.onSubmit} onReset={this.onReset} autoComplete=\"off\" noValidate>\n\t\t\t\t{this._errorList && this._errorList.length > 0 && (\n\t\t\t\t\t<kol-alert _type=\"error\">\n\t\t\t\t\t\t{translate('kol-error-list-message')}\n\t\t\t\t\t\t<nav aria-label={translate('kol-error-list')}>\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{this._errorList.map((error, index) => (\n\t\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t\t<kol-link\n\t\t\t\t\t\t\t\t\t\t\t_href={error.selector}\n\t\t\t\t\t\t\t\t\t\t\t_label={error.message}\n\t\t\t\t\t\t\t\t\t\t\t_on={{ onClick: this.handleLinkClick }}\n\t\t\t\t\t\t\t\t\t\t\tref={(el) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (index === 0) this.errorListElement = el as HTMLElement;\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</nav>\n\t\t\t\t\t</kol-alert>\n\t\t\t\t)}\n\t\t\t\t{this.state._requiredText === true ? (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<kol-indented-text>{translate('kol-form-description')}</kol-indented-text>\n\t\t\t\t\t</p>\n\t\t\t\t) : typeof this.state._requiredText === 'string' && this.state._requiredText.length > 0 ? (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t<kol-indented-text>{this.state._requiredText}</kol-indented-text>\n\t\t\t\t\t</p>\n\t\t\t\t) : null}\n\t\t\t\t<slot />\n\t\t\t</form>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Form-Events an.\n\t */\n\t@Prop() public _on?: KoliBriFormCallbacks;\n\n\t/**\n\t * Defines whether the mandatory-fields-hint should be shown. A string overrides the default text.\n\t */\n\t@Prop() public _requiredText?: Stringified<boolean> = true;\n\t/**\n\t * A list of error objects that each describe an issue encountered in the form.\n\t * Each error object contains a message and a selector for identifying the form element related to the error.\n\t */\n\t@Prop() public _errorList?: ErrorListPropType[];\n\n\t@State() public state: FormStates = {};\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriFormCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_requiredText')\n\tpublic validateRequiredText(value?: Stringified<boolean>): void {\n\t\tif (typeof value === 'boolean') {\n\t\t\twatchBoolean(this, '_requiredText', value);\n\t\t} else {\n\t\t\twatchString(this, '_requiredText', value);\n\t\t}\n\t}\n\n\t@Watch('_errorList')\n\tpublic validateErrorList(value?: ErrorListPropType[]): void {\n\t\tvalidateErrorList(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRequiredText(this._requiredText);\n\t\tthis.validateErrorList(this._errorList);\n\t}\n\n\tpublic componentDidRender() {\n\t\tif (this._errorList && this._errorList.length > 0) {\n\t\t\tthis.errorListElement?.focus();\n\t\t}\n\t}\n}\n"],"mappings":";;;8MAcaA,EAAO,M,yBAGFC,KAAAC,SAAYC,I,QAC5BA,EAAMC,iBACND,EAAME,kBACN,WAAWC,EAAAL,KAAKM,MAAMC,OAAG,MAAAF,SAAA,SAAAA,EAAEJ,YAAa,WAAY,EACnDO,EAAAR,KAAKM,MAAMC,OAAG,MAAAC,SAAA,SAAAA,EAAEP,SAASC,E,GAGVF,KAAAS,QAAWP,I,QAC3BA,EAAMC,iBACND,EAAME,kBACN,WAAWC,EAAAL,KAAKM,MAAMC,OAAG,MAAAF,SAAA,SAAAA,EAAEI,WAAY,WAAY,EAClDD,EAAAR,KAAKM,MAAMC,OAAG,MAAAC,SAAA,SAAAA,EAAEC,QAAQP,E,GAITF,KAAAU,gBAAmBR,I,MACnC,MAAMS,GAAON,EAACH,EAAMU,UAAwC,MAAAP,SAAA,SAAAA,EAAEM,KAC9D,GAAIA,EAAM,CACT,MAAME,EAAU,IAAIC,IAAIH,GAExB,MAAMI,EAAgBC,SAASC,cAA2BJ,EAAQK,MAClE,GAAIH,UAAwBA,EAAcI,QAAU,WAAY,CAC/DJ,EAAcK,eAAe,CAAEC,SAAU,WACzCN,EAAcI,O,0CAmDqC,K,qCAOlB,E,CArD7B,MAAAG,GACN,OACCC,EAAA,QAAMC,OAAO,OAAOvB,SAAUD,KAAKC,SAAUQ,QAAST,KAAKS,QAASgB,aAAa,MAAMC,WAAU,MAC/F1B,KAAK2B,YAAc3B,KAAK2B,WAAWC,OAAS,GAC5CL,EAAA,aAAWM,MAAM,SACfC,EAAU,0BACXP,EAAA,oBAAiBO,EAAU,mBAC1BP,EAAA,UACEvB,KAAK2B,WAAWI,KAAI,CAACC,EAAOC,IAC5BV,EAAA,MAAIW,IAAKD,GACRV,EAAA,YACCY,MAAOH,EAAMI,SACbC,OAAQL,EAAMM,QACd/B,IAAK,CAAEgC,QAASvC,KAAKU,iBACrB8B,IAAMC,IACL,GAAIR,IAAU,EAAGjC,KAAK0C,iBAAmBD,CAAiB,UASjEzC,KAAKM,MAAMqC,gBAAkB,KAC7BpB,EAAA,SACCA,EAAA,yBAAoBO,EAAU,iCAErB9B,KAAKM,MAAMqC,gBAAkB,UAAY3C,KAAKM,MAAMqC,cAAcf,OAAS,EACrFL,EAAA,SACCA,EAAA,yBAAoBvB,KAAKM,MAAMqC,gBAE7B,KACJpB,EAAA,a,CAuBI,UAAAqB,CAAWC,GACjB,UAAWA,IAAU,UAAYA,IAAU,KAAM,CAChD7C,KAAKM,MAAKwC,OAAAC,OAAAD,OAAAC,OAAA,GACN/C,KAAKM,OAAK,CACbC,IAAKsC,G,EAMD,oBAAAG,CAAqBH,GAC3B,UAAWA,IAAU,UAAW,CAC/BI,EAAajD,KAAM,gBAAiB6C,E,KAC9B,CACNK,EAAYlD,KAAM,gBAAiB6C,E,EAK9B,iBAAAM,CAAkBN,GACxBM,EAAkBnD,KAAM6C,E,CAGlB,iBAAAO,GACNpD,KAAK4C,WAAW5C,KAAKO,KACrBP,KAAKgD,qBAAqBhD,KAAK2C,eAC/B3C,KAAKmD,kBAAkBnD,KAAK2B,W,CAGtB,kBAAA0B,G,MACN,GAAIrD,KAAK2B,YAAc3B,KAAK2B,WAAWC,OAAS,EAAG,EAClDvB,EAAAL,KAAK0C,oBAAgB,MAAArC,SAAA,SAAAA,EAAEc,O"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n}from"./index-0b7aa54b.js";const e="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t/* This is the text label. */\n\t.icon-only > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n}\n\n",i=e,o=class{constructor(n){t(this,n),this._label=void 0,this._level=void 0,this._secondaryHeadline=void 0,this._variant=void 0}render(){return n("kol-heading-wc",{_label:this._label,_level:this._level,_secondaryHeadline:this._secondaryHeadline,_variant:this._variant},n("slot",{name:"expert",slot:"expert"}))}};o.style={default:i};export{o as kol_heading};
4
+ import{r as t,h as n}from"./index-a5e15b1e.js";const e="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * Minimum size of interactive elements.\n\t\t */\n\t\t--a11y-min-size: 44px;\n\t\t/*\n\t\t * No element should be used without a background and font color whose contrast ratio has\n\t\t * not been checked. By initially setting the background color to white and the font color\n\t\t * to black, the contrast ratio is ensured and explicit adjustment is forced.\n\t\t */\n\t\tbackground-color: white;\n\t\tcolor: black;\n\t\t/*\n\t\t * Verdana is an accessible font that can be used without requiring additional loading time.\n\t\t */\n\t\tfont-family: Verdana;\n\t}\n\n\t* {\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\thyphens: auto;\n\t\t/*\n\t\t * Letter spacing is required for all texts.\n\t\t */\n\t\tletter-spacing: inherit;\n\t\t/*\n\t\t * This rule enables the word dividing for all texts. That is important for high zoom levels.\n\t\t */\n\t\tword-break: break-word;\n\t\t/*\n\t\t * Word spacing is required for all texts.\n\t\t */\n\t\tword-spacing: inherit;\n\t}\n\n\t/*\n\t * All interactive elements should have a minimum size of 44px.\n\t */\n\t/* input:not([type='checkbox'], [type='radio'], [type='range']), */\n\t/* option, */\n\t/* select, */\n\t/* textarea, */\n\t[role='button'],\n\tbutton:not([role='link']),\n\tkol-input .input {\n\t\tmin-height: var(--a11y-min-size);\n\t\tmin-width: var(--a11y-min-size);\n\t}\n\n\t/*\n\t * Some interactive elements should not inherit the font-family and font-size.\n\t */\n\ta,\n\tbutton,\n\th1,\n\th2,\n\th3,\n\th4,\n\th5,\n\th6,\n\tinput,\n\toption,\n\tselect,\n\ttextarea {\n\t\t/*\n\t\t * All elements should inherit the font family from his parent element.\n\t\t */\n\t\tfont-family: inherit;\n\t\t/*\n\t\t * All elements should inherit the font size from his parent element.\n\t\t */\n\t\tfont-size: inherit;\n\t}\n}\n\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n\tclip: rect(0 0 0 0);\n\tclip-path: inset(50%);\n\theight: 1px;\n\toverflow: hidden;\n\tposition: absolute;\n\twhite-space: nowrap;\n\twidth: 1px;\n}\n\n@layer kol-global {\n\t/*\n\t * Dieses CSS stellt sicher, dass der Standard-Style\n\t * von A und Button resettet werden.\n\t */\n\t:is(a, button) {\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100%; /* 100% needed for custom width from outside */\n\t}\n\n\t/*\n\t * Ensure elements with hidden attribute to be actually not visible\n\t * @see https://meowni.ca/hidden.is.a.lie.html\n\t */\n\t[hidden] {\n\t\tdisplay: none !important;\n\t}\n}\n\n@layer kol-global {\n\t:host {\n\t\t/*\n\t\t * The max-width is needed to prevent the table from overflowing the\n\t\t * parent node, if the table is wider than the parent node.\n\t\t */\n\t\tmax-width: 100%;\n\t}\n\n\t* {\n\t\t/*\n\t\t * We prefer to box-sizing: border-box for all elements.\n\t\t */\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n\tkol-span-wc {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t/* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n\tkol-span-wc > span {\n\t\tdisplay: flex;\n\t\tplace-items: center;\n\t}\n\n\ta,\n\tbutton {\n\t\tcursor: pointer;\n\t}\n\n\t.hidden {\n\t\tdisplay: none;\n\t\tvisibility: hidden;\n\t}\n\n\t/* This is the text label. */\n\t.hide-label > kol-span-wc > span > span {\n\t\tdisplay: none;\n\t}\n\n\t.disabled label,\n\t[aria-disabled='true'],\n\t[disabled] {\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\toutline: none;\n\t}\n}\n\n",i=e,o=class{constructor(n){t(this,n),this._label=void 0,this._level=void 0,this._secondaryHeadline=void 0,this._variant=void 0}render(){return n("kol-heading-wc",{_label:this._label,_level:this._level,_secondaryHeadline:this._secondaryHeadline,_variant:this._variant},n("slot",{name:"expert",slot:"expert"}))}};o.style={default:i};export{o as kol_heading};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolHeadingDefaultStyle0","KolHeading","render","h","_label","this","_level","_secondaryHeadline","_variant","name","slot"],"sources":["src/components/heading/style.css?tag=kol-heading&mode=default&encapsulation=shadow","src/components/heading/shadow.tsx"],"sourcesContent":["@import url(../style.css);\n","import type { HeadingLevel, HeadingProps, HeadingVariantPropType, LabelWithExpertSlotPropType } from '@public-ui/schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Prop } from '@stencil/core';\n\n/**\n * @slot headline - Content of the headline.\n */\n@Component({\n\ttag: 'kol-heading',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolHeading implements HeadingProps {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<kol-heading-wc _label={this._label} _level={this._level} _secondaryHeadline={this._secondaryHeadline} _variant={this._variant}>\n\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t</kol-heading-wc>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text.\n\t */\n\t@Prop() public _level?: HeadingLevel;\n\n\t/**\n\t * Defines the text of the secondary headline.\n\t */\n\t@Prop() public _secondaryHeadline?: string;\n\n\t/**\n\t * Defines which variant should be used for presentation.\n\t */\n\t@Prop() public _variant?: HeadingVariantPropType;\n}\n"],"mappings":";;;+CAAA,MAAMA,EAAkB,6lHACxB,MAAAC,EAAeD,E,MCaFE,EAAU,M,+HACf,MAAAC,GACN,OACCC,EAAA,kBAAgBC,OAAQC,KAAKD,OAAQE,OAAQD,KAAKC,OAAQC,mBAAoBF,KAAKE,mBAAoBC,SAAUH,KAAKG,UACrHL,EAAA,QAAMM,KAAK,SAASC,KAAK,W"}
1
+ {"version":3,"names":["defaultStyleCss","KolHeadingDefaultStyle0","KolHeading","render","h","_label","this","_level","_secondaryHeadline","_variant","name","slot"],"sources":["src/components/heading/style.css?tag=kol-heading&mode=default&encapsulation=shadow","src/components/heading/shadow.tsx"],"sourcesContent":["@import url(../style.css);\n","import type { HeadingLevel, HeadingProps, HeadingVariantPropType, LabelWithExpertSlotPropType } from '@public-ui/schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Prop } from '@stencil/core';\n\n/**\n * @slot headline - Content of the headline.\n */\n@Component({\n\ttag: 'kol-heading',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolHeading implements HeadingProps {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<kol-heading-wc _label={this._label} _level={this._level} _secondaryHeadline={this._secondaryHeadline} _variant={this._variant}>\n\t\t\t\t<slot name=\"expert\" slot=\"expert\" />\n\t\t\t</kol-heading-wc>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.). Set to `false` to enable the expert slot.\n\t */\n\t@Prop() public _label!: LabelWithExpertSlotPropType;\n\n\t/**\n\t * Defines which H-level from 1-6 the heading has. 0 specifies no heading and is shown as bold text.\n\t */\n\t@Prop() public _level?: HeadingLevel;\n\n\t/**\n\t * Defines the text of the secondary headline.\n\t */\n\t@Prop() public _secondaryHeadline?: string;\n\n\t/**\n\t * Defines which variant should be used for presentation.\n\t */\n\t@Prop() public _variant?: HeadingVariantPropType;\n}\n"],"mappings":";;;+CAAA,MAAMA,EAAkB,syHACxB,MAAAC,EAAeD,E,MCaFE,EAAU,M,+HACf,MAAAC,GACN,OACCC,EAAA,kBAAgBC,OAAQC,KAAKD,OAAQE,OAAQD,KAAKC,OAAQC,mBAAoBF,KAAKE,mBAAoBC,SAAUH,KAAKG,UACrHL,EAAA,QAAMM,KAAK,SAASC,KAAK,W"}