@public-ui/components 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/custom-elements.json +1 -15
  2. package/dist/cjs/{a11y.tipps-bde4c917.js → a11y.tipps-a9c5bee3.js} +1 -1
  3. package/dist/cjs/{a11y.tipps-bde4c917.js.map → a11y.tipps-a9c5bee3.js.map} +1 -1
  4. package/dist/cjs/access-key-41cf20c4.js +4 -0
  5. package/dist/cjs/{access-key-0cc8c925.js.map → access-key-41cf20c4.js.map} +1 -1
  6. package/dist/cjs/{alignment-ed625336.js → alignment-33970e77.js} +1 -1
  7. package/dist/cjs/{alignment-ed625336.js.map → alignment-33970e77.js.map} +1 -1
  8. package/dist/cjs/alternative-button-link-role-85dd7d3a.js +4 -0
  9. package/dist/cjs/{alternative-button-link-role-d4424d08.js.map → alternative-button-link-role-85dd7d3a.js.map} +1 -1
  10. package/dist/cjs/{app-globals-0b0132d3.js → app-globals-99df1ec2.js} +1 -1
  11. package/dist/cjs/{app-globals-0b0132d3.js.map → app-globals-99df1ec2.js.map} +1 -1
  12. package/dist/cjs/{associated.controller-b24b75d0.js → associated.controller-476bc975.js} +1 -1
  13. package/dist/cjs/{associated.controller-b24b75d0.js.map → associated.controller-476bc975.js.map} +1 -1
  14. package/dist/cjs/{color-7a4690e4.js → color-9547694e.js} +1 -1
  15. package/dist/cjs/{color-7a4690e4.js.map → color-9547694e.js.map} +1 -1
  16. package/dist/cjs/{controller-2d5e8b0b.js → controller-aad33907.js} +1 -1
  17. package/dist/cjs/{controller-2d5e8b0b.js.map → controller-aad33907.js.map} +1 -1
  18. package/dist/cjs/{controller-924d172b.js → controller-b2299d8a.js} +1 -1
  19. package/dist/cjs/{controller-924d172b.js.map → controller-b2299d8a.js.map} +1 -1
  20. package/dist/cjs/{controller-e36ad432.js → controller-cbff0599.js} +1 -1
  21. package/dist/cjs/{controller-e36ad432.js.map → controller-cbff0599.js.map} +1 -1
  22. package/dist/cjs/{controller-0ccb739c.js → controller-d0ce6c05.js} +1 -1
  23. package/dist/cjs/{controller-0ccb739c.js.map → controller-d0ce6c05.js.map} +1 -1
  24. package/dist/cjs/{controller-3c7a8401.js → controller-fe8411e5.js} +1 -1
  25. package/dist/cjs/{controller-3c7a8401.js.map → controller-fe8411e5.js.map} +1 -1
  26. package/dist/cjs/{controller-icon-71e37377.js → controller-icon-ecb716a5.js} +1 -1
  27. package/dist/cjs/{controller-icon-71e37377.js.map → controller-icon-ecb716a5.js.map} +1 -1
  28. package/dist/cjs/custom-class-80a19309.js +4 -0
  29. package/dist/cjs/{custom-class-00d4c432.js.map → custom-class-80a19309.js.map} +1 -1
  30. package/dist/cjs/{dev.utils-a6b6f115.js → dev.utils-4be23d2e.js} +1 -1
  31. package/dist/cjs/{dev.utils-a6b6f115.js.map → dev.utils-4be23d2e.js.map} +1 -1
  32. package/dist/cjs/{devtools-5d316ec1.js → devtools-f550a928.js} +1 -1
  33. package/dist/cjs/{devtools-5d316ec1.js.map → devtools-f550a928.js.map} +1 -1
  34. package/dist/cjs/has-closer-fcae7da6.js +4 -0
  35. package/dist/cjs/{has-closer-135c8b18.js.map → has-closer-fcae7da6.js.map} +1 -1
  36. package/dist/cjs/hide-label-b7ee1c01.js +4 -0
  37. package/dist/cjs/{hide-label-869c662f.js.map → hide-label-b7ee1c01.js.map} +1 -1
  38. package/dist/cjs/i18n-8fb14ebf.js +4 -0
  39. package/dist/cjs/i18n-8fb14ebf.js.map +1 -0
  40. package/dist/cjs/{icons-cd5e767b.js → icons-5cf7c0e6.js} +1 -1
  41. package/dist/cjs/{icons-cd5e767b.js.map → icons-5cf7c0e6.js.map} +1 -1
  42. package/dist/cjs/image-source-8aa35f38.js +4 -0
  43. package/dist/cjs/{image-source-4b6e0c0e.js.map → image-source-8aa35f38.js.map} +1 -1
  44. package/dist/cjs/{index-e779e8b0.js → index-2f27254e.js} +1 -1
  45. package/dist/cjs/index-2f27254e.js.map +1 -0
  46. package/dist/cjs/index.cjs.js +1 -1
  47. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  48. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  49. package/dist/cjs/kol-alert-wc_2.cjs.entry.js +1 -1
  50. package/dist/cjs/kol-avatar-wc.cjs.entry.js +1 -1
  51. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  52. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  53. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  54. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  55. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  56. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  57. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  58. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  59. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  61. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  63. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  64. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  65. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  66. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  67. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  68. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  70. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-input.cjs.entry.js +1 -1
  72. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  73. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  74. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  75. package/dist/cjs/kol-link-group.cjs.entry.js +1 -1
  76. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  77. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  78. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  80. package/dist/cjs/kol-logo.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  82. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  83. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  84. package/dist/cjs/kol-popover-wc.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  86. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  87. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  88. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  89. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  90. package/dist/cjs/kol-span-wc.cjs.entry.js +1 -1
  91. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  92. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  93. package/dist/cjs/kol-table.cjs.entry.js +1 -1
  94. package/dist/cjs/kol-table.cjs.entry.js.map +1 -1
  95. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  96. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  97. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  98. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  99. package/dist/cjs/kolibri.cjs.js +1 -1
  100. package/dist/cjs/{label-a5fa1288.js → label-945b341f.js} +1 -1
  101. package/dist/cjs/{label-a5fa1288.js.map → label-945b341f.js.map} +1 -1
  102. package/dist/cjs/loader.cjs.js +1 -1
  103. package/dist/cjs/open-882be22c.js +4 -0
  104. package/dist/cjs/{open-ca19e687.js.map → open-882be22c.js.map} +1 -1
  105. package/dist/cjs/{prop.validators-03eee51d.js → prop.validators-461024d1.js} +1 -1
  106. package/dist/cjs/{prop.validators-03eee51d.js.map → prop.validators-461024d1.js.map} +1 -1
  107. package/dist/cjs/rows-ad9a160c.js +4 -0
  108. package/dist/cjs/{rows-7e3a7f8b.js.map → rows-ad9a160c.js.map} +1 -1
  109. package/dist/cjs/show-9f618ffc.js +4 -0
  110. package/dist/cjs/{show-48f559f5.js.map → show-9f618ffc.js.map} +1 -1
  111. package/dist/cjs/suggestions-9885b2f9.js +4 -0
  112. package/dist/cjs/{suggestions-2d56c664.js.map → suggestions-9885b2f9.js.map} +1 -1
  113. package/dist/cjs/{tab-index-3943c150.js → tab-index-5ab3d038.js} +1 -1
  114. package/dist/cjs/{tab-index-3943c150.js.map → tab-index-5ab3d038.js.map} +1 -1
  115. package/dist/cjs/{tooltip-align-d904bd68.js → tooltip-align-a996d985.js} +1 -1
  116. package/dist/cjs/{tooltip-align-d904bd68.js.map → tooltip-align-a996d985.js.map} +1 -1
  117. package/dist/cjs/{validation-a0c362ef.js → validation-045dfb7f.js} +1 -1
  118. package/dist/cjs/{validation-a0c362ef.js.map → validation-045dfb7f.js.map} +1 -1
  119. package/dist/cjs/{validation-c3b2105a.js → validation-91e840dd.js} +1 -1
  120. package/dist/cjs/{validation-c3b2105a.js.map → validation-91e840dd.js.map} +1 -1
  121. package/dist/components/component3.js +1 -1
  122. package/dist/components/component3.js.map +1 -1
  123. package/dist/components/component9.js +1 -1
  124. package/dist/components/component9.js.map +1 -1
  125. package/dist/components/i18n.js +1 -1
  126. package/dist/components/i18n.js.map +1 -1
  127. package/dist/components/kol-form.js +1 -1
  128. package/dist/components/kol-form.js.map +1 -1
  129. package/dist/components/kol-link-button.js +1 -1
  130. package/dist/components/kol-link-button.js.map +1 -1
  131. package/dist/components/kol-progress.js +1 -1
  132. package/dist/components/kol-progress.js.map +1 -1
  133. package/dist/components/kol-table.js +1 -1
  134. package/dist/components/kol-table.js.map +1 -1
  135. package/dist/components/prop.validators.js +1 -1
  136. package/dist/components/prop.validators.js.map +1 -1
  137. package/dist/components/shadow2.js +1 -1
  138. package/dist/components/shadow2.js.map +1 -1
  139. package/dist/esm/{a11y.tipps-f14bff66.js → a11y.tipps-2a54fd3e.js} +1 -1
  140. package/dist/esm/{a11y.tipps-f14bff66.js.map → a11y.tipps-2a54fd3e.js.map} +1 -1
  141. package/dist/esm/{access-key-d9d3ed1b.js → access-key-65ff36eb.js} +1 -1
  142. package/dist/esm/{access-key-d9d3ed1b.js.map → access-key-65ff36eb.js.map} +1 -1
  143. package/dist/esm/{alignment-3d2d9391.js → alignment-3ca6c7b4.js} +1 -1
  144. package/dist/esm/{alignment-3d2d9391.js.map → alignment-3ca6c7b4.js.map} +1 -1
  145. package/dist/esm/alternative-button-link-role-03c7dc90.js +4 -0
  146. package/dist/esm/{alternative-button-link-role-30b77bb6.js.map → alternative-button-link-role-03c7dc90.js.map} +1 -1
  147. package/dist/esm/app-globals-b4b6e633.js +4 -0
  148. package/dist/esm/{app-globals-b8186895.js.map → app-globals-b4b6e633.js.map} +1 -1
  149. package/dist/esm/{associated.controller-e642039e.js → associated.controller-4abb0353.js} +1 -1
  150. package/dist/esm/{associated.controller-e642039e.js.map → associated.controller-4abb0353.js.map} +1 -1
  151. package/dist/esm/{color-d4c99af3.js → color-2aa7218a.js} +1 -1
  152. package/dist/esm/{color-d4c99af3.js.map → color-2aa7218a.js.map} +1 -1
  153. package/dist/esm/{controller-8698d9f4.js → controller-34abd025.js} +1 -1
  154. package/dist/esm/{controller-8698d9f4.js.map → controller-34abd025.js.map} +1 -1
  155. package/dist/esm/{controller-9df5563d.js → controller-7cdc3635.js} +1 -1
  156. package/dist/esm/{controller-9df5563d.js.map → controller-7cdc3635.js.map} +1 -1
  157. package/dist/esm/{controller-3577ccfd.js → controller-b209b2d8.js} +1 -1
  158. package/dist/esm/{controller-3577ccfd.js.map → controller-b209b2d8.js.map} +1 -1
  159. package/dist/esm/{controller-7d1c3e92.js → controller-d02635bf.js} +1 -1
  160. package/dist/esm/{controller-7d1c3e92.js.map → controller-d02635bf.js.map} +1 -1
  161. package/dist/esm/{controller-b2e189a7.js → controller-fe294c60.js} +1 -1
  162. package/dist/esm/{controller-b2e189a7.js.map → controller-fe294c60.js.map} +1 -1
  163. package/dist/esm/{controller-icon-508a2cb1.js → controller-icon-5be90e84.js} +1 -1
  164. package/dist/esm/{controller-icon-508a2cb1.js.map → controller-icon-5be90e84.js.map} +1 -1
  165. package/dist/esm/custom-class-c7f11511.js +4 -0
  166. package/dist/esm/{custom-class-6cd3b804.js.map → custom-class-c7f11511.js.map} +1 -1
  167. package/dist/esm/{dev.utils-889226ab.js → dev.utils-a1ddacb2.js} +1 -1
  168. package/dist/esm/{dev.utils-889226ab.js.map → dev.utils-a1ddacb2.js.map} +1 -1
  169. package/dist/esm/{devtools-cc168b70.js → devtools-f30e7098.js} +1 -1
  170. package/dist/esm/{devtools-cc168b70.js.map → devtools-f30e7098.js.map} +1 -1
  171. package/dist/esm/{has-closer-0601d93e.js → has-closer-213e1f60.js} +1 -1
  172. package/dist/esm/{has-closer-0601d93e.js.map → has-closer-213e1f60.js.map} +1 -1
  173. package/dist/esm/{hide-label-6593df3f.js → hide-label-12ff810a.js} +1 -1
  174. package/dist/esm/{hide-label-6593df3f.js.map → hide-label-12ff810a.js.map} +1 -1
  175. package/dist/esm/i18n-565c326b.js +4 -0
  176. package/dist/esm/i18n-565c326b.js.map +1 -0
  177. package/dist/esm/{icons-44b68720.js → icons-5c4d2e57.js} +1 -1
  178. package/dist/esm/{icons-44b68720.js.map → icons-5c4d2e57.js.map} +1 -1
  179. package/dist/esm/{image-source-4b04e9f2.js → image-source-fc1918e2.js} +1 -1
  180. package/dist/esm/{image-source-4b04e9f2.js.map → image-source-fc1918e2.js.map} +1 -1
  181. package/dist/esm/{index-12eec578.js → index-b99a7aa5.js} +1 -1
  182. package/dist/esm/index-b99a7aa5.js.map +1 -0
  183. package/dist/esm/index.js +1 -1
  184. package/dist/esm/kol-abbr.entry.js +1 -1
  185. package/dist/esm/kol-accordion.entry.js +1 -1
  186. package/dist/esm/kol-alert-wc_2.entry.js +1 -1
  187. package/dist/esm/kol-avatar-wc.entry.js +1 -1
  188. package/dist/esm/kol-badge.entry.js +1 -1
  189. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  190. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  191. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  192. package/dist/esm/kol-card.entry.js +1 -1
  193. package/dist/esm/kol-details.entry.js +1 -1
  194. package/dist/esm/kol-form.entry.js +1 -1
  195. package/dist/esm/kol-form.entry.js.map +1 -1
  196. package/dist/esm/kol-icon.entry.js +1 -1
  197. package/dist/esm/kol-image.entry.js +1 -1
  198. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  199. package/dist/esm/kol-input-color.entry.js +1 -1
  200. package/dist/esm/kol-input-date.entry.js +1 -1
  201. package/dist/esm/kol-input-email.entry.js +1 -1
  202. package/dist/esm/kol-input-file.entry.js +1 -1
  203. package/dist/esm/kol-input-number.entry.js +1 -1
  204. package/dist/esm/kol-input-password.entry.js +1 -1
  205. package/dist/esm/kol-input-radio.entry.js +1 -1
  206. package/dist/esm/kol-input-range.entry.js +1 -1
  207. package/dist/esm/kol-input-text.entry.js +1 -1
  208. package/dist/esm/kol-input.entry.js +1 -1
  209. package/dist/esm/kol-kolibri.entry.js +1 -1
  210. package/dist/esm/kol-link-button.entry.js +1 -1
  211. package/dist/esm/kol-link-button.entry.js.map +1 -1
  212. package/dist/esm/kol-link-group.entry.js +1 -1
  213. package/dist/esm/kol-link-wc.entry.js +1 -1
  214. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  215. package/dist/esm/kol-link.entry.js +1 -1
  216. package/dist/esm/kol-link.entry.js.map +1 -1
  217. package/dist/esm/kol-logo.entry.js +1 -1
  218. package/dist/esm/kol-modal.entry.js +1 -1
  219. package/dist/esm/kol-nav.entry.js +1 -1
  220. package/dist/esm/kol-pagination.entry.js +1 -1
  221. package/dist/esm/kol-popover-wc.entry.js +1 -1
  222. package/dist/esm/kol-progress.entry.js +1 -1
  223. package/dist/esm/kol-progress.entry.js.map +1 -1
  224. package/dist/esm/kol-quote.entry.js +1 -1
  225. package/dist/esm/kol-select.entry.js +1 -1
  226. package/dist/esm/kol-skip-nav.entry.js +1 -1
  227. package/dist/esm/kol-span-wc.entry.js +1 -1
  228. package/dist/esm/kol-spin.entry.js +1 -1
  229. package/dist/esm/kol-symbol.entry.js +1 -1
  230. package/dist/esm/kol-table.entry.js +1 -1
  231. package/dist/esm/kol-table.entry.js.map +1 -1
  232. package/dist/esm/kol-tabs.entry.js +1 -1
  233. package/dist/esm/kol-textarea.entry.js +1 -1
  234. package/dist/esm/kol-toast-container.entry.js +1 -1
  235. package/dist/esm/kol-version.entry.js +1 -1
  236. package/dist/esm/kolibri.js +1 -1
  237. package/dist/esm/{label-8258848f.js → label-5f92bb62.js} +1 -1
  238. package/dist/esm/{label-8258848f.js.map → label-5f92bb62.js.map} +1 -1
  239. package/dist/esm/loader.js +1 -1
  240. package/dist/esm/{open-329b7907.js → open-215a7ce8.js} +1 -1
  241. package/dist/esm/{open-329b7907.js.map → open-215a7ce8.js.map} +1 -1
  242. package/dist/esm/{prop.validators-c12923a5.js → prop.validators-c9100bb0.js} +1 -1
  243. package/dist/esm/{prop.validators-c12923a5.js.map → prop.validators-c9100bb0.js.map} +1 -1
  244. package/dist/esm/{rows-14d6fb92.js → rows-5e4dff0c.js} +1 -1
  245. package/dist/esm/{rows-14d6fb92.js.map → rows-5e4dff0c.js.map} +1 -1
  246. package/dist/esm/{show-9a06c90e.js → show-509c0941.js} +1 -1
  247. package/dist/esm/{show-9a06c90e.js.map → show-509c0941.js.map} +1 -1
  248. package/dist/esm/{suggestions-dc12a293.js → suggestions-9923bbe2.js} +1 -1
  249. package/dist/esm/{suggestions-dc12a293.js.map → suggestions-9923bbe2.js.map} +1 -1
  250. package/dist/esm/{tab-index-9e8a3c00.js → tab-index-4eba9292.js} +1 -1
  251. package/dist/esm/{tab-index-9e8a3c00.js.map → tab-index-4eba9292.js.map} +1 -1
  252. package/dist/esm/{tooltip-align-a3d27a89.js → tooltip-align-36b445e5.js} +1 -1
  253. package/dist/esm/{tooltip-align-a3d27a89.js.map → tooltip-align-36b445e5.js.map} +1 -1
  254. package/dist/esm/{validation-3c0b31d7.js → validation-406b3d9a.js} +1 -1
  255. package/dist/esm/{validation-3c0b31d7.js.map → validation-406b3d9a.js.map} +1 -1
  256. package/dist/esm/validation-7eedde02.js +4 -0
  257. package/dist/esm/{validation-17e52787.js.map → validation-7eedde02.js.map} +1 -1
  258. package/dist/kolibri/{a11y.tipps-f14bff66.js → a11y.tipps-2a54fd3e.js} +1 -1
  259. package/dist/kolibri/access-key-65ff36eb.js +4 -0
  260. package/dist/kolibri/alignment-3ca6c7b4.js +4 -0
  261. package/dist/kolibri/alternative-button-link-role-03c7dc90.js +4 -0
  262. package/dist/kolibri/app-globals-b4b6e633.js +4 -0
  263. package/dist/kolibri/{app-globals-b8186895.js.map → app-globals-b4b6e633.js.map} +1 -1
  264. package/dist/kolibri/{associated.controller-e642039e.js → associated.controller-4abb0353.js} +1 -1
  265. package/dist/kolibri/{color-d4c99af3.js → color-2aa7218a.js} +1 -1
  266. package/dist/kolibri/{controller-8698d9f4.js → controller-34abd025.js} +1 -1
  267. package/dist/kolibri/{controller-9df5563d.js → controller-7cdc3635.js} +1 -1
  268. package/dist/kolibri/{controller-3577ccfd.js → controller-b209b2d8.js} +1 -1
  269. package/dist/kolibri/{controller-7d1c3e92.js → controller-d02635bf.js} +1 -1
  270. package/dist/kolibri/{controller-b2e189a7.js → controller-fe294c60.js} +1 -1
  271. package/dist/kolibri/controller-icon-5be90e84.js +4 -0
  272. package/dist/kolibri/custom-class-c7f11511.js +4 -0
  273. package/dist/kolibri/{dev.utils-889226ab.js → dev.utils-a1ddacb2.js} +1 -1
  274. package/dist/kolibri/{dev.utils-889226ab.js.map → dev.utils-a1ddacb2.js.map} +1 -1
  275. package/dist/kolibri/{devtools-cc168b70.js → devtools-f30e7098.js} +1 -1
  276. package/dist/kolibri/has-closer-213e1f60.js +4 -0
  277. package/dist/kolibri/{has-closer-0601d93e.js.map → has-closer-213e1f60.js.map} +1 -1
  278. package/dist/kolibri/hide-label-12ff810a.js +4 -0
  279. package/dist/kolibri/i18n-565c326b.js +4 -0
  280. package/dist/kolibri/i18n-565c326b.js.map +1 -0
  281. package/dist/kolibri/{icons-44b68720.js → icons-5c4d2e57.js} +1 -1
  282. package/dist/kolibri/image-source-fc1918e2.js +4 -0
  283. package/dist/kolibri/{index-12eec578.js → index-b99a7aa5.js} +1 -1
  284. package/dist/kolibri/index-b99a7aa5.js.map +1 -0
  285. package/dist/kolibri/index.esm.js +1 -1
  286. package/dist/kolibri/kol-abbr.entry.js +1 -1
  287. package/dist/kolibri/kol-accordion.entry.js +1 -1
  288. package/dist/kolibri/kol-alert-wc_2.entry.js +1 -1
  289. package/dist/kolibri/kol-avatar-wc.entry.js +1 -1
  290. package/dist/kolibri/kol-badge.entry.js +1 -1
  291. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  292. package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
  293. package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
  294. package/dist/kolibri/kol-card.entry.js +1 -1
  295. package/dist/kolibri/kol-details.entry.js +1 -1
  296. package/dist/kolibri/kol-form.entry.js +1 -1
  297. package/dist/kolibri/kol-form.entry.js.map +1 -1
  298. package/dist/kolibri/kol-icon.entry.js +1 -1
  299. package/dist/kolibri/kol-image.entry.js +1 -1
  300. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  301. package/dist/kolibri/kol-input-color.entry.js +1 -1
  302. package/dist/kolibri/kol-input-date.entry.js +1 -1
  303. package/dist/kolibri/kol-input-email.entry.js +1 -1
  304. package/dist/kolibri/kol-input-file.entry.js +1 -1
  305. package/dist/kolibri/kol-input-number.entry.js +1 -1
  306. package/dist/kolibri/kol-input-password.entry.js +1 -1
  307. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  308. package/dist/kolibri/kol-input-range.entry.js +1 -1
  309. package/dist/kolibri/kol-input-text.entry.js +1 -1
  310. package/dist/kolibri/kol-input.entry.js +1 -1
  311. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  312. package/dist/kolibri/kol-link-button.entry.js +1 -1
  313. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  314. package/dist/kolibri/kol-link-group.entry.js +1 -1
  315. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  316. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  317. package/dist/kolibri/kol-link.entry.js +1 -1
  318. package/dist/kolibri/kol-link.entry.js.map +1 -1
  319. package/dist/kolibri/kol-logo.entry.js +1 -1
  320. package/dist/kolibri/kol-modal.entry.js +1 -1
  321. package/dist/kolibri/kol-nav.entry.js +1 -1
  322. package/dist/kolibri/kol-pagination.entry.js +1 -1
  323. package/dist/kolibri/kol-popover-wc.entry.js +1 -1
  324. package/dist/kolibri/kol-progress.entry.js +1 -1
  325. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  326. package/dist/kolibri/kol-quote.entry.js +1 -1
  327. package/dist/kolibri/kol-select.entry.js +1 -1
  328. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  329. package/dist/kolibri/kol-span-wc.entry.js +1 -1
  330. package/dist/kolibri/kol-spin.entry.js +1 -1
  331. package/dist/kolibri/kol-symbol.entry.js +1 -1
  332. package/dist/kolibri/kol-symbol.entry.js.map +1 -1
  333. package/dist/kolibri/kol-table.entry.js +1 -1
  334. package/dist/kolibri/kol-table.entry.js.map +1 -1
  335. package/dist/kolibri/kol-tabs.entry.js +1 -1
  336. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  337. package/dist/kolibri/kol-textarea.entry.js +1 -1
  338. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  339. package/dist/kolibri/kol-version.entry.js +1 -1
  340. package/dist/kolibri/kolibri.esm.js +1 -1
  341. package/dist/kolibri/kolibri.esm.js.map +1 -1
  342. package/dist/kolibri/{label-8258848f.js → label-5f92bb62.js} +1 -1
  343. package/dist/kolibri/open-215a7ce8.js +4 -0
  344. package/dist/kolibri/{prop.validators-c12923a5.js → prop.validators-c9100bb0.js} +1 -1
  345. package/dist/kolibri/rows-5e4dff0c.js +4 -0
  346. package/dist/kolibri/show-509c0941.js +4 -0
  347. package/dist/kolibri/{suggestions-dc12a293.js → suggestions-9923bbe2.js} +1 -1
  348. package/dist/kolibri/{tab-index-9e8a3c00.js → tab-index-4eba9292.js} +1 -1
  349. package/dist/kolibri/tooltip-align-36b445e5.js +4 -0
  350. package/dist/kolibri/{validation-3c0b31d7.js → validation-406b3d9a.js} +1 -1
  351. package/dist/kolibri/validation-7eedde02.js +4 -0
  352. package/dist/types/components/form/component.d.ts +4 -0
  353. package/dist/types/components/form/types.d.ts +2 -1
  354. package/dist/types/components/link/component.d.ts +0 -2
  355. package/dist/types/components/link/shadow.d.ts +0 -1
  356. package/dist/types/components/link/types.d.ts +0 -1
  357. package/dist/types/components/link-button/component.d.ts +0 -1
  358. package/dist/types/components/table/component.d.ts +0 -1
  359. package/dist/types/components.d.ts +10 -24
  360. package/dist/types/i18n.d.ts +1 -1
  361. package/dist/types/locales/de.d.ts +2 -8
  362. package/dist/types/locales/en.d.ts +2 -8
  363. package/dist/types/types/button-link-text.d.ts +0 -1
  364. package/dist/types/types/props/error-list.d.ts +9 -0
  365. package/doc/abbr.md +1 -1
  366. package/doc/accordion.md +1 -1
  367. package/doc/alert.md +1 -1
  368. package/doc/avatar.md +1 -1
  369. package/doc/badge.md +1 -1
  370. package/doc/breadcrumb.md +1 -1
  371. package/doc/button-group.md +1 -1
  372. package/doc/button-link.md +1 -1
  373. package/doc/button.md +1 -1
  374. package/doc/card.md +1 -1
  375. package/doc/details.md +1 -1
  376. package/doc/form.md +22 -5
  377. package/doc/heading.md +1 -1
  378. package/doc/icon.md +1 -1
  379. package/doc/indented-text.md +1 -1
  380. package/doc/input-checkbox.md +1 -1
  381. package/doc/input-color.md +1 -1
  382. package/doc/input-date.md +1 -1
  383. package/doc/input-email.md +1 -1
  384. package/doc/input-file.md +1 -1
  385. package/doc/input-number.md +1 -1
  386. package/doc/input-password.md +1 -1
  387. package/doc/input-radio.md +1 -1
  388. package/doc/input-range.md +1 -1
  389. package/doc/input-text.md +1 -1
  390. package/doc/link-button.md +17 -18
  391. package/doc/link-group.md +1 -1
  392. package/doc/link.md +17 -16
  393. package/doc/nav.md +1 -1
  394. package/doc/pagination.md +1 -1
  395. package/doc/quote.md +1 -1
  396. package/doc/select.md +1 -1
  397. package/doc/skip-nav.md +1 -1
  398. package/doc/span.md +1 -1
  399. package/doc/split-button.md +1 -1
  400. package/doc/table.md +3 -1
  401. package/doc/tabs.md +1 -1
  402. package/doc/textarea.md +1 -1
  403. package/doc/toaster.md +1 -1
  404. package/doc/tooltip.md +1 -1
  405. package/doc/version.md +1 -1
  406. package/package.json +1 -1
  407. package/vscode-custom-data.json +0 -8
  408. package/dist/cjs/access-key-0cc8c925.js +0 -4
  409. package/dist/cjs/alternative-button-link-role-d4424d08.js +0 -4
  410. package/dist/cjs/custom-class-00d4c432.js +0 -4
  411. package/dist/cjs/has-closer-135c8b18.js +0 -4
  412. package/dist/cjs/hide-label-869c662f.js +0 -4
  413. package/dist/cjs/i18n-3094a3c4.js +0 -4
  414. package/dist/cjs/i18n-3094a3c4.js.map +0 -1
  415. package/dist/cjs/image-source-4b6e0c0e.js +0 -4
  416. package/dist/cjs/index-e779e8b0.js.map +0 -1
  417. package/dist/cjs/open-ca19e687.js +0 -4
  418. package/dist/cjs/rows-7e3a7f8b.js +0 -4
  419. package/dist/cjs/show-48f559f5.js +0 -4
  420. package/dist/cjs/suggestions-2d56c664.js +0 -4
  421. package/dist/esm/alternative-button-link-role-30b77bb6.js +0 -4
  422. package/dist/esm/app-globals-b8186895.js +0 -4
  423. package/dist/esm/custom-class-6cd3b804.js +0 -4
  424. package/dist/esm/i18n-9a4c8edc.js +0 -4
  425. package/dist/esm/i18n-9a4c8edc.js.map +0 -1
  426. package/dist/esm/index-12eec578.js.map +0 -1
  427. package/dist/esm/validation-17e52787.js +0 -4
  428. package/dist/kolibri/access-key-d9d3ed1b.js +0 -4
  429. package/dist/kolibri/alignment-3d2d9391.js +0 -4
  430. package/dist/kolibri/alternative-button-link-role-30b77bb6.js +0 -4
  431. package/dist/kolibri/app-globals-b8186895.js +0 -4
  432. package/dist/kolibri/controller-icon-508a2cb1.js +0 -4
  433. package/dist/kolibri/custom-class-6cd3b804.js +0 -4
  434. package/dist/kolibri/has-closer-0601d93e.js +0 -4
  435. package/dist/kolibri/hide-label-6593df3f.js +0 -4
  436. package/dist/kolibri/i18n-9a4c8edc.js +0 -4
  437. package/dist/kolibri/i18n-9a4c8edc.js.map +0 -1
  438. package/dist/kolibri/image-source-4b04e9f2.js +0 -4
  439. package/dist/kolibri/index-12eec578.js.map +0 -1
  440. package/dist/kolibri/open-329b7907.js +0 -4
  441. package/dist/kolibri/rows-14d6fb92.js +0 -4
  442. package/dist/kolibri/show-9a06c90e.js +0 -4
  443. package/dist/kolibri/tooltip-align-a3d27a89.js +0 -4
  444. package/dist/kolibri/validation-17e52787.js +0 -4
  445. /package/dist/kolibri/{a11y.tipps-f14bff66.js.map → a11y.tipps-2a54fd3e.js.map} +0 -0
  446. /package/dist/kolibri/{access-key-d9d3ed1b.js.map → access-key-65ff36eb.js.map} +0 -0
  447. /package/dist/kolibri/{alignment-3d2d9391.js.map → alignment-3ca6c7b4.js.map} +0 -0
  448. /package/dist/kolibri/{alternative-button-link-role-30b77bb6.js.map → alternative-button-link-role-03c7dc90.js.map} +0 -0
  449. /package/dist/kolibri/{associated.controller-e642039e.js.map → associated.controller-4abb0353.js.map} +0 -0
  450. /package/dist/kolibri/{color-d4c99af3.js.map → color-2aa7218a.js.map} +0 -0
  451. /package/dist/kolibri/{controller-8698d9f4.js.map → controller-34abd025.js.map} +0 -0
  452. /package/dist/kolibri/{controller-9df5563d.js.map → controller-7cdc3635.js.map} +0 -0
  453. /package/dist/kolibri/{controller-3577ccfd.js.map → controller-b209b2d8.js.map} +0 -0
  454. /package/dist/kolibri/{controller-7d1c3e92.js.map → controller-d02635bf.js.map} +0 -0
  455. /package/dist/kolibri/{controller-b2e189a7.js.map → controller-fe294c60.js.map} +0 -0
  456. /package/dist/kolibri/{controller-icon-508a2cb1.js.map → controller-icon-5be90e84.js.map} +0 -0
  457. /package/dist/kolibri/{custom-class-6cd3b804.js.map → custom-class-c7f11511.js.map} +0 -0
  458. /package/dist/kolibri/{devtools-cc168b70.js.map → devtools-f30e7098.js.map} +0 -0
  459. /package/dist/kolibri/{hide-label-6593df3f.js.map → hide-label-12ff810a.js.map} +0 -0
  460. /package/dist/kolibri/{icons-44b68720.js.map → icons-5c4d2e57.js.map} +0 -0
  461. /package/dist/kolibri/{image-source-4b04e9f2.js.map → image-source-fc1918e2.js.map} +0 -0
  462. /package/dist/kolibri/{label-8258848f.js.map → label-5f92bb62.js.map} +0 -0
  463. /package/dist/kolibri/{open-329b7907.js.map → open-215a7ce8.js.map} +0 -0
  464. /package/dist/kolibri/{prop.validators-c12923a5.js.map → prop.validators-c9100bb0.js.map} +0 -0
  465. /package/dist/kolibri/{rows-14d6fb92.js.map → rows-5e4dff0c.js.map} +0 -0
  466. /package/dist/kolibri/{show-9a06c90e.js.map → show-509c0941.js.map} +0 -0
  467. /package/dist/kolibri/{suggestions-dc12a293.js.map → suggestions-9923bbe2.js.map} +0 -0
  468. /package/dist/kolibri/{tab-index-9e8a3c00.js.map → tab-index-4eba9292.js.map} +0 -0
  469. /package/dist/kolibri/{tooltip-align-a3d27a89.js.map → tooltip-align-36b445e5.js.map} +0 -0
  470. /package/dist/kolibri/{validation-3c0b31d7.js.map → validation-406b3d9a.js.map} +0 -0
  471. /package/dist/kolibri/{validation-17e52787.js.map → validation-7eedde02.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"show-48f559f5.js","mappings":";;;;;;;MAea,YAAY,GAAG,CAAC,SAAoC,EAAE,KAAoB,EAAE,KAA2B;IACnHA,4BAAY,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAChD;;;;","names":["watchBoolean"],"sources":["src/types/props/show.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean, WatchBooleanOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type ShowPropType = boolean;\n\n/**\n * Makes the element show up.\n */\nexport type PropShow = {\n\tshow: ShowPropType;\n};\n\n/* validator */\nexport const validateShow = (component: Generic.Element.Component, value?: ShowPropType, hooks?: WatchBooleanOptions): void => {\n\twatchBoolean(component, '_show', value, hooks);\n};\n"],"version":3}
1
+ {"file":"show-9f618ffc.js","mappings":";;;;;;;MAea,YAAY,GAAG,CAAC,SAAoC,EAAE,KAAoB,EAAE,KAA2B;IACnHA,4BAAY,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAChD;;;;","names":["watchBoolean"],"sources":["src/types/props/show.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean, WatchBooleanOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type ShowPropType = boolean;\n\n/**\n * Makes the element show up.\n */\nexport type PropShow = {\n\tshow: ShowPropType;\n};\n\n/* validator */\nexport const validateShow = (component: Generic.Element.Component, value?: ShowPropType, hooks?: WatchBooleanOptions): void => {\n\twatchBoolean(component, '_show', value, hooks);\n};\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ "use strict";const prop_validators=require("./prop.validators-461024d1.js"),a11y_tipps=require("./a11y.tipps-a9c5bee3.js"),validateSuggestions=(s,t)=>{prop_validators.watchJsonArrayString(s,"_suggestions",(s=>"string"==typeof s||"number"==typeof s),t,void 0,{hooks:{afterPatch:s=>{Array.isArray(s)&&s.length&&a11y_tipps.a11yHint("Property suggestions: Options have accessibility issues in how browsers implemented them and should not be used for now.")}}})};exports.validateSuggestions=validateSuggestions;
@@ -1 +1 @@
1
- {"file":"suggestions-2d56c664.js","mappings":";;;;;;;;MAkBa,mBAAmB,GAAG,CAAC,SAAoC,EAAE,KAA2B;IACpGA,oCAAoB,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,IAAmB,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;QAChJ,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAc;gBAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;oBACzCC,mBAAQ,CAAC,0HAA0H,CAAC,CAAC;iBACrI;aACD;SACD;KACD,CAAC,CAAC;AACJ;;;;","names":["watchJsonArrayString","a11yHint"],"sources":["src/types/props/suggestions.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString } from '../../utils/prop.validators';\nimport { Stringified } from '../common';\nimport { W3CInputValue } from '../w3c';\nimport { a11yHint } from '../../utils/a11y.tipps';\n\n/* types */\nexport type SuggestionsPropType = Stringified<W3CInputValue[]>;\n\n/**\n * Suggestions to provide for an input.\n */\nexport type PropSuggestions = {\n\tsuggestions: SuggestionsPropType;\n};\n\n/* validator */\nexport const validateSuggestions = (component: Generic.Element.Component, value?: SuggestionsPropType): void => {\n\twatchJsonArrayString(component, '_suggestions', (item: W3CInputValue) => typeof item === 'string' || typeof item === 'number', value, undefined, {\n\t\thooks: {\n\t\t\tafterPatch: (value: unknown) => {\n\t\t\t\tif (Array.isArray(value) && value.length) {\n\t\t\t\t\ta11yHint('Property suggestions: Options have accessibility issues in how browsers implemented them and should not be used for now.');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t});\n};\n"],"version":3}
1
+ {"file":"suggestions-9885b2f9.js","mappings":";;;;;;;;MAkBa,mBAAmB,GAAG,CAAC,SAAoC,EAAE,KAA2B;IACpGA,oCAAoB,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC,IAAmB,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;QAChJ,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAc;gBAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;oBACzCC,mBAAQ,CAAC,0HAA0H,CAAC,CAAC;iBACrI;aACD;SACD;KACD,CAAC,CAAC;AACJ;;;;","names":["watchJsonArrayString","a11yHint"],"sources":["src/types/props/suggestions.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchJsonArrayString } from '../../utils/prop.validators';\nimport { Stringified } from '../common';\nimport { W3CInputValue } from '../w3c';\nimport { a11yHint } from '../../utils/a11y.tipps';\n\n/* types */\nexport type SuggestionsPropType = Stringified<W3CInputValue[]>;\n\n/**\n * Suggestions to provide for an input.\n */\nexport type PropSuggestions = {\n\tsuggestions: SuggestionsPropType;\n};\n\n/* validator */\nexport const validateSuggestions = (component: Generic.Element.Component, value?: SuggestionsPropType): void => {\n\twatchJsonArrayString(component, '_suggestions', (item: W3CInputValue) => typeof item === 'string' || typeof item === 'number', value, undefined, {\n\t\thooks: {\n\t\t\tafterPatch: (value: unknown) => {\n\t\t\t\tif (Array.isArray(value) && value.length) {\n\t\t\t\t\ta11yHint('Property suggestions: Options have accessibility issues in how browsers implemented them and should not be used for now.');\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t});\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const a11y_tipps=require("./a11y.tipps-bde4c917.js"),prop_validators=require("./prop.validators-03eee51d.js"),options={hooks:{afterPatch:a=>{-1!==a&&0!==a&&a11y_tipps.a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(a,t)=>{prop_validators.watchNumber(a,"_tabIndex",t,options)};exports.validateTabIndex=validateTabIndex;
4
+ "use strict";const a11y_tipps=require("./a11y.tipps-a9c5bee3.js"),prop_validators=require("./prop.validators-461024d1.js"),options={hooks:{afterPatch:a=>{-1!==a&&0!==a&&a11y_tipps.a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(a,t)=>{prop_validators.watchNumber(a,"_tabIndex",t,options)};exports.validateTabIndex=validateTabIndex;
@@ -1 +1 @@
1
- {"file":"tab-index-3943c150.js","mappings":";;;;;;;;AAUA,MAAM,OAAO,GAAuB;IACnC,KAAK,EAAE;QACN,UAAU,EAAE,CAAC,KAAK;YACjB,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBAChCA,mBAAQ,CAAC,4GAA4G,CAAC,CAAC;aACvH;SACD;KACD;CACD,CAAC;MAKW,gBAAgB,GAAG,CAAC,SAAoC,EAAE,KAAc;IACpFC,2BAAW,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrD;;;;","names":["a11yHint","watchNumber"],"sources":["src/utils/validators/tab-index.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { a11yHint } from '../a11y.tipps';\nimport { watchNumber, WatchNumberOptions } from '../prop.validators';\n\n/**\n * Accessibility hints\n * - https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html\n */\n\nconst options: WatchNumberOptions = {\n\thooks: {\n\t\tafterPatch: (value) => {\n\t\t\tif (value !== -1 && value !== 0) {\n\t\t\t\ta11yHint(`Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html`);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/**\n * Diese Methode validiert das Property und setzt den State, wenn es valide ist.\n */\nexport const validateTabIndex = (component: Generic.Element.Component, value?: number): void => {\n\twatchNumber(component, '_tabIndex', value, options);\n};\n"],"version":3}
1
+ {"file":"tab-index-5ab3d038.js","mappings":";;;;;;;;AAUA,MAAM,OAAO,GAAuB;IACnC,KAAK,EAAE;QACN,UAAU,EAAE,CAAC,KAAK;YACjB,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBAChCA,mBAAQ,CAAC,4GAA4G,CAAC,CAAC;aACvH;SACD;KACD;CACD,CAAC;MAKW,gBAAgB,GAAG,CAAC,SAAoC,EAAE,KAAc;IACpFC,2BAAW,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrD;;;;","names":["a11yHint","watchNumber"],"sources":["src/utils/validators/tab-index.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { a11yHint } from '../a11y.tipps';\nimport { watchNumber, WatchNumberOptions } from '../prop.validators';\n\n/**\n * Accessibility hints\n * - https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html\n */\n\nconst options: WatchNumberOptions = {\n\thooks: {\n\t\tafterPatch: (value) => {\n\t\t\tif (value !== -1 && value !== 0) {\n\t\t\t\ta11yHint(`Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html`);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/**\n * Diese Methode validiert das Property und setzt den State, wenn es valide ist.\n */\nexport const validateTabIndex = (component: Generic.Element.Component, value?: number): void => {\n\twatchNumber(component, '_tabIndex', value, options);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const alignment=require("./alignment-ed625336.js"),validateTooltipAlign=(i,t)=>{alignment.validateAlignment(i,"_tooltipAlign",t)};exports.validateTooltipAlign=validateTooltipAlign;
4
+ "use strict";const alignment=require("./alignment-33970e77.js"),validateTooltipAlign=(i,t)=>{alignment.validateAlignment(i,"_tooltipAlign",t)};exports.validateTooltipAlign=validateTooltipAlign;
@@ -1 +1 @@
1
- {"file":"tooltip-align-d904bd68.js","mappings":";;;;;;;MAgBa,oBAAoB,GAAG,CAAC,SAAoC,EAAE,KAA4B;IACtGA,2BAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtD;;;;","names":["validateAlignment"],"sources":["src/types/props/tooltip-align.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { validateAlignment } from '../../utils/validators/alignment';\nimport { AlignPropType } from './align';\n\n/* types */\nexport type TooltipAlignPropType = AlignPropType;\n\n/**\n * Defines where to show the Tooltip preferably: top, right, bottom or left.\n */\nexport type PropTooltipAlign = {\n\ttooltipAlign: TooltipAlignPropType;\n};\n\n/* validator */\nexport const validateTooltipAlign = (component: Generic.Element.Component, value?: TooltipAlignPropType): void => {\n\tvalidateAlignment(component, '_tooltipAlign', value);\n};\n"],"version":3}
1
+ {"file":"tooltip-align-a996d985.js","mappings":";;;;;;;MAgBa,oBAAoB,GAAG,CAAC,SAAoC,EAAE,KAA4B;IACtGA,2BAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AACtD;;;;","names":["validateAlignment"],"sources":["src/types/props/tooltip-align.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { validateAlignment } from '../../utils/validators/alignment';\nimport { AlignPropType } from './align';\n\n/* types */\nexport type TooltipAlignPropType = AlignPropType;\n\n/**\n * Defines where to show the Tooltip preferably: top, right, bottom or left.\n */\nexport type PropTooltipAlign = {\n\ttooltipAlign: TooltipAlignPropType;\n};\n\n/* validator */\nexport const validateTooltipAlign = (component: Generic.Element.Component, value?: TooltipAlignPropType): void => {\n\tvalidateAlignment(component, '_tooltipAlign', value);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const prop_validators=require("./prop.validators-03eee51d.js"),headingLevelOptions=[0,1,2,3,4,5,6],watchHeadingLevel=(e,a)=>{prop_validators.watchValidator(e,"_level",(e=>"number"==typeof e&&headingLevelOptions.includes(e)),new Set([`Number {${headingLevelOptions.join(", ")}`]),a,{defaultValue:1,required:!0})};exports.watchHeadingLevel=watchHeadingLevel;
4
+ "use strict";const prop_validators=require("./prop.validators-461024d1.js"),headingLevelOptions=[0,1,2,3,4,5,6],watchHeadingLevel=(e,a)=>{prop_validators.watchValidator(e,"_level",(e=>"number"==typeof e&&headingLevelOptions.includes(e)),new Set([`Number {${headingLevelOptions.join(", ")}`]),a,{defaultValue:1,required:!0})};exports.watchHeadingLevel=watchHeadingLevel;
@@ -1 +1 @@
1
- {"file":"validation-a0c362ef.js","mappings":";;;;;;;AAAO,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU;;MCKpD,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAoB;IAC3FA,8BAAc,CACb,SAAS,EACT,QAAQ,EACR,CAAC,KAAoB;QACpB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxE,EACD,IAAI,GAAG,CAAC,CAAC,WAAW,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACtD,KAAK,EACL;QAEC,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH;;;;","names":["watchValidator"],"sources":["src/types/heading-level.ts","src/components/heading/validation.ts"],"sourcesContent":["export const headingLevelOptions = [0, 1, 2, 3, 4, 5, 6] as const;\nexport type HeadingLevel = (typeof headingLevelOptions)[number];\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchValidator } from '../../utils/prop.validators';\nimport { HeadingLevel, headingLevelOptions } from '../../types/heading-level';\n\nexport const watchHeadingLevel = (component: Generic.Element.Component, value?: HeadingLevel): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t'_level',\n\t\t(value?: HeadingLevel): boolean => {\n\t\t\treturn typeof value === 'number' && headingLevelOptions.includes(value);\n\t\t},\n\t\tnew Set([`Number {${headingLevelOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\t// TODO: options not in the validator\n\t\t\tdefaultValue: 1,\n\t\t\trequired: true,\n\t\t}\n\t);\n};\n"],"version":3}
1
+ {"file":"validation-045dfb7f.js","mappings":";;;;;;;AAAO,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAU;;MCKpD,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAoB;IAC3FA,8BAAc,CACb,SAAS,EACT,QAAQ,EACR,CAAC,KAAoB;QACpB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KACxE,EACD,IAAI,GAAG,CAAC,CAAC,WAAW,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EACtD,KAAK,EACL;QAEC,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;AACH;;;;","names":["watchValidator"],"sources":["src/types/heading-level.ts","src/components/heading/validation.ts"],"sourcesContent":["export const headingLevelOptions = [0, 1, 2, 3, 4, 5, 6] as const;\nexport type HeadingLevel = (typeof headingLevelOptions)[number];\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchValidator } from '../../utils/prop.validators';\nimport { HeadingLevel, headingLevelOptions } from '../../types/heading-level';\n\nexport const watchHeadingLevel = (component: Generic.Element.Component, value?: HeadingLevel): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t'_level',\n\t\t(value?: HeadingLevel): boolean => {\n\t\t\treturn typeof value === 'number' && headingLevelOptions.includes(value);\n\t\t},\n\t\tnew Set([`Number {${headingLevelOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\t// TODO: options not in the validator\n\t\t\tdefaultValue: 1,\n\t\t\trequired: true,\n\t\t}\n\t);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const a11y_tipps=require("./a11y.tipps-bde4c917.js"),prop_validators=require("./prop.validators-03eee51d.js"),watchNavLinks=(t,s,a)=>{prop_validators.watchJsonArrayString(s,"_links",(t=>"object"==typeof t&&("string"==typeof t._href||"string"==typeof t._label)),a),a11y_tipps.uiUxHintMillerscheZahl(t,s.state._links.length)};exports.watchNavLinks=watchNavLinks;
4
+ "use strict";const a11y_tipps=require("./a11y.tipps-a9c5bee3.js"),prop_validators=require("./prop.validators-461024d1.js"),watchNavLinks=(t,s,a)=>{prop_validators.watchJsonArrayString(s,"_links",(t=>"object"==typeof t&&("string"==typeof t._href||"string"==typeof t._label)),a),a11y_tipps.uiUxHintMillerscheZahl(t,s.state._links.length)};exports.watchNavLinks=watchNavLinks;
@@ -1 +1 @@
1
- {"file":"validation-c3b2105a.js","mappings":";;;;;;;;MAUa,aAAa,GAAG,CAC5B,SAAiB,EACjB,SAIC,EACD,KAAsC;IAEtCA,oCAAoB,CACnB,SAAS,EACT,QAAQ,EACR,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,KAAK,OAAQ,IAAiB,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAQ,IAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,EACtI,KAAK,CACL,CAAC;IACFC,iCAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;;;;","names":["watchJsonArrayString","uiUxHintMillerscheZahl"],"sources":["src/components/nav/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { HrefProp } from '../../types/props/href';\nimport { LabelProp } from '../../types/props/label';\nimport { uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { watchJsonArrayString } from '../../utils/prop.validators';\n\ntype HrefOrLabelProp = HrefProp | LabelProp;\n\nexport const watchNavLinks = (\n\tclassName: string,\n\tcomponent: Generic.Element.Component & {\n\t\tstate: {\n\t\t\t_links: HrefOrLabelProp[];\n\t\t};\n\t},\n\tvalue?: Stringified<HrefOrLabelProp[]>\n): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_links',\n\t\t(link) => typeof link === 'object' && (typeof (link as HrefProp)._href === 'string' || typeof (link as LabelProp)._label === 'string'),\n\t\tvalue\n\t);\n\tuiUxHintMillerscheZahl(className, component.state._links.length);\n};\n"],"version":3}
1
+ {"file":"validation-91e840dd.js","mappings":";;;;;;;;MAUa,aAAa,GAAG,CAC5B,SAAiB,EACjB,SAIC,EACD,KAAsC;IAEtCA,oCAAoB,CACnB,SAAS,EACT,QAAQ,EACR,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,QAAQ,KAAK,OAAQ,IAAiB,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAQ,IAAkB,CAAC,MAAM,KAAK,QAAQ,CAAC,EACtI,KAAK,CACL,CAAC;IACFC,iCAAsB,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;;;;","names":["watchJsonArrayString","uiUxHintMillerscheZahl"],"sources":["src/components/nav/validation.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { Stringified } from '../../types/common';\nimport { HrefProp } from '../../types/props/href';\nimport { LabelProp } from '../../types/props/label';\nimport { uiUxHintMillerscheZahl } from '../../utils/a11y.tipps';\nimport { watchJsonArrayString } from '../../utils/prop.validators';\n\ntype HrefOrLabelProp = HrefProp | LabelProp;\n\nexport const watchNavLinks = (\n\tclassName: string,\n\tcomponent: Generic.Element.Component & {\n\t\tstate: {\n\t\t\t_links: HrefOrLabelProp[];\n\t\t};\n\t},\n\tvalue?: Stringified<HrefOrLabelProp[]>\n): void => {\n\twatchJsonArrayString(\n\t\tcomponent,\n\t\t'_links',\n\t\t(link) => typeof link === 'object' && (typeof (link as HrefProp)._href === 'string' || typeof (link as LabelProp)._label === 'string'),\n\t\tvalue\n\t);\n\tuiUxHintMillerscheZahl(className, component.state._links.length);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as autoUpdate,b as alignFloatingElements,c as validateAlign}from"./align-floating-elements.js";import{b as watchString,m as getDocument,n as nonce}from"./prop.validators.js";import{v as validateLabel}from"./label.js";import{v as validateAccessKey,d as defineCustomElement$1}from"./component2.js";import{d as defineCustomElement$2}from"./component.js";const validateId=(t,e)=>{watchString(t,"_id",e)},VISIBLE_OVERLAYS=new Set;function showOverlay(t){VISIBLE_OVERLAYS.forEach((t=>{t.style.setProperty("z-index","999")})),VISIBLE_OVERLAYS.add(t),t.style.setProperty("z-index","1000")}function hideOverlay(t){if(VISIBLE_OVERLAYS.delete(t),VISIBLE_OVERLAYS.size>0){const t=Array.from(VISIBLE_OVERLAYS).pop();t&&t.style.setProperty("z-index","1000")}}const styleCss="/*\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\tkol-tooltip-wc {\n\t\tdisplay: contents;\n\t}\n\n\tkol-tooltip-wc .tooltip-floating {\n\t\tanimation-duration: 0.5s;\n\t\tanimation-iteration-count: 1;\n\t\tanimation-name: fadeInOpacity;\n\t\tanimation-timing-function: ease-in;\n\t\tbox-sizing: border-box;\n\t\tdisplay: none;\n\t\tposition: fixed;\n\t\tvisibility: hidden;\n\t\t/* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tmax-width: 90vw;\n\t\tmax-height: 90vh;\n\t\twidth: var(--kol-tooltip-width); /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n\t}\n\n\t/* Shared between content and arrow */\n\tkol-tooltip-wc .tooltip-area {\n\t\tbackground-color: #fff;\n\t\tcolor: #000;\n\t}\n\n\tkol-tooltip-wc .tooltip-arrow {\n\t\theight: 10px;\n\t\tposition: fixed;\n\t\ttransform: rotate(45deg);\n\t\twidth: 10px;\n\t\tz-index: 999;\n\t}\n\n\tkol-tooltip-wc .tooltip-content {\n\t\tposition: relative;\n\t\tz-index: 1000;\n\t}\n\n\t@keyframes fadeInOpacity {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n",KolTooltip=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.showTooltip=()=>{if(this.previousSibling&&this.tooltipElement){showOverlay(this.tooltipElement),this.tooltipElement.style.setProperty("display","block"),getDocument().addEventListener("keyup",this.hideTooltipByEscape);const t=this.previousSibling,e=this.tooltipElement;this.cleanupAutoPositioning=autoUpdate(t,e,(()=>{this.alignTooltip()}))}},this.hideTooltip=()=>{this.tooltipElement&&(hideOverlay(this.tooltipElement),this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),this.cleanupAutoPositioning&&(this.cleanupAutoPositioning(),this.cleanupAutoPositioning=void 0)),getDocument().removeEventListener("keyup",this.hideTooltipByEscape)},this.hideTooltipByEscape=t=>{"Escape"===t.key&&this.hideTooltip()},this.addListeners=t=>{t.addEventListener("mouseover",this.incrementOverFocusCount),t.addEventListener("focus",this.incrementOverFocusCount),t.addEventListener("focusin",this.incrementOverFocusCount),t.addEventListener("mouseout",this.decrementOverFocusCount),t.addEventListener("blur",this.decrementOverFocusCount),t.addEventListener("focusout",this.decrementOverFocusCount)},this.removeListeners=t=>{t.removeEventListener("mouseover",this.incrementOverFocusCount),t.removeEventListener("focus",this.incrementOverFocusCount),t.removeEventListener("focusin",this.incrementOverFocusCount),t.removeEventListener("mouseout",this.decrementOverFocusCount),t.removeEventListener("blur",this.decrementOverFocusCount),t.addEventListener("focusout",this.decrementOverFocusCount)},this.resyncListeners=(t,e,n=!1)=>{t&&this.removeListeners(t),e&&(n&&(this.previousSibling=e),this.addListeners(e))},this.catchTooltipElement=t=>{this.tooltipElement=t},this.catchArrowElement=t=>{this.arrowElement=t},this.overFocusCount=0,this.incrementOverFocusCount=()=>{this.overFocusCount++,this.showOrHideTooltip()},this.decrementOverFocusCount=()=>{this.overFocusCount--,this.showOrHideTooltip()},this.showOrHideTooltip=()=>{clearTimeout(this.overFocusTimeout),this.overFocusTimeout=setTimeout((()=>{clearTimeout(this.overFocusTimeout),this.overFocusCount>0?this.showTooltip():this.hideTooltip()}),250)},this._accessKey=void 0,this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:nonce(),_label:"…"}}async alignTooltip(){this.tooltipElement&&this.previousSibling&&await alignFloatingElements({align:this._align,referenceElement:this.previousSibling,arrowElement:this.arrowElement,floatingElement:this.tooltipElement})}render(){return h(Host,null,""!==this.state._label&&h("div",{class:"tooltip-floating",ref:this.catchTooltipElement},h("div",{class:"tooltip-area tooltip-arrow",ref:this.catchArrowElement}),h("kol-span-wc",{class:"tooltip-area tooltip-content",id:this.state._id,_accessKey:this._accessKey,_label:this.state._label})))}validateAccessKey(t){validateAccessKey(this,t)}validateAlign(t){validateAlign(this,t)}validateId(t){validateId(this,t)}validateLabel(t){validateLabel(this,t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label)}handleEventListeners(){var t;this.resyncListeners(this.previousSibling,null===(t=this.host)||void 0===t?void 0:t.previousElementSibling,!0),this.resyncListeners(this.tooltipElement,this.tooltipElement)}connectedCallback(){var t;this.previousSibling=null===(t=this.host)||void 0===t?void 0:t.previousElementSibling,this.handleEventListeners()}componentDidRender(){this.handleEventListeners()}disconnectedCallback(){this.previousSibling&&(this.removeListeners(this.previousSibling),this.previousSibling=void 0),this.tooltipElement&&this.removeListeners(this.tooltipElement),this.cleanupAutoPositioning&&this.cleanupAutoPositioning()}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}static get style(){return styleCss}},[0,"kol-tooltip-wc",{_accessKey:[1,"_access-key"],_align:[1],_id:[1],_label:[1],state:[32]},void 0,{_accessKey:["validateAccessKey"],_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-tooltip-wc","kol-icon","kol-span-wc"].forEach((t=>{switch(t){case"kol-tooltip-wc":customElements.get(t)||customElements.define(t,KolTooltip);break;case"kol-icon":customElements.get(t)||defineCustomElement$2();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$1()}}))}export{KolTooltip as K,defineCustomElement as d};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as autoUpdate,b as alignFloatingElements,c as validateAlign}from"./align-floating-elements.js";import{b as watchString,m as getDocument,n as nonce}from"./prop.validators.js";import{v as validateLabel}from"./label.js";import{v as validateAccessKey,d as defineCustomElement$1}from"./component2.js";import{d as defineCustomElement$2}from"./component.js";const validateId=(t,e)=>{watchString(t,"_id",e)},VISIBLE_OVERLAYS=new Set;function showOverlay(t){VISIBLE_OVERLAYS.forEach((t=>{t.style.setProperty("z-index","999")})),VISIBLE_OVERLAYS.add(t),t.style.setProperty("z-index","1000")}function hideOverlay(t){if(VISIBLE_OVERLAYS.delete(t),VISIBLE_OVERLAYS.size>0){const t=Array.from(VISIBLE_OVERLAYS).pop();t&&t.style.setProperty("z-index","1000")}}const styleCss="/*\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\tkol-tooltip-wc {\n\t\tdisplay: contents;\n\t}\n\n\tkol-tooltip-wc .tooltip-floating {\n\t\tanimation-duration: 0.5s;\n\t\tanimation-iteration-count: 1;\n\t\tanimation-name: fadeInOpacity;\n\t\tanimation-timing-function: ease-in;\n\t\tbox-sizing: border-box;\n\t\tdisplay: none;\n\t\tposition: fixed;\n\t\tvisibility: hidden;\n\t\t/* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tmax-width: 90vw;\n\t\tmax-height: 90vh;\n\t\twidth: var(--kol-tooltip-width); /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n\t}\n\n\t/* Shared between content and arrow */\n\tkol-tooltip-wc .tooltip-area {\n\t\tbackground-color: #fff;\n\t\tcolor: #000;\n\t}\n\n\tkol-tooltip-wc .tooltip-arrow {\n\t\theight: 10px;\n\t\tposition: absolute;\n\t\ttransform: rotate(45deg);\n\t\twidth: 10px;\n\t\tz-index: 999;\n\t}\n\n\tkol-tooltip-wc .tooltip-content {\n\t\tposition: relative;\n\t\tz-index: 1000;\n\t}\n\n\t@keyframes fadeInOpacity {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n",KolTooltip=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.showTooltip=()=>{if(this.previousSibling&&this.tooltipElement){showOverlay(this.tooltipElement),this.tooltipElement.style.setProperty("display","block"),getDocument().addEventListener("keyup",this.hideTooltipByEscape);const t=this.previousSibling,e=this.tooltipElement;this.cleanupAutoPositioning=autoUpdate(t,e,(()=>{this.alignTooltip()}))}},this.hideTooltip=()=>{this.tooltipElement&&(hideOverlay(this.tooltipElement),this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),this.cleanupAutoPositioning&&(this.cleanupAutoPositioning(),this.cleanupAutoPositioning=void 0)),getDocument().removeEventListener("keyup",this.hideTooltipByEscape)},this.hideTooltipByEscape=t=>{"Escape"===t.key&&this.hideTooltip()},this.addListeners=t=>{t.addEventListener("mouseover",this.incrementOverFocusCount),t.addEventListener("focus",this.incrementOverFocusCount),t.addEventListener("focusin",this.incrementOverFocusCount),t.addEventListener("mouseout",this.decrementOverFocusCount),t.addEventListener("blur",this.decrementOverFocusCount),t.addEventListener("focusout",this.decrementOverFocusCount)},this.removeListeners=t=>{t.removeEventListener("mouseover",this.incrementOverFocusCount),t.removeEventListener("focus",this.incrementOverFocusCount),t.removeEventListener("focusin",this.incrementOverFocusCount),t.removeEventListener("mouseout",this.decrementOverFocusCount),t.removeEventListener("blur",this.decrementOverFocusCount),t.addEventListener("focusout",this.decrementOverFocusCount)},this.resyncListeners=(t,e,n=!1)=>{t&&this.removeListeners(t),e&&(n&&(this.previousSibling=e),this.addListeners(e))},this.catchTooltipElement=t=>{this.tooltipElement=t},this.catchArrowElement=t=>{this.arrowElement=t},this.overFocusCount=0,this.incrementOverFocusCount=()=>{this.overFocusCount++,this.showOrHideTooltip()},this.decrementOverFocusCount=()=>{this.overFocusCount--,this.showOrHideTooltip()},this.showOrHideTooltip=()=>{clearTimeout(this.overFocusTimeout),this.overFocusTimeout=setTimeout((()=>{clearTimeout(this.overFocusTimeout),this.overFocusCount>0?this.showTooltip():this.hideTooltip()}),250)},this._accessKey=void 0,this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:nonce(),_label:"…"}}async alignTooltip(){this.tooltipElement&&this.previousSibling&&await alignFloatingElements({align:this._align,referenceElement:this.previousSibling,arrowElement:this.arrowElement,floatingElement:this.tooltipElement})}render(){return h(Host,null,""!==this.state._label&&h("div",{class:"tooltip-floating",ref:this.catchTooltipElement},h("div",{class:"tooltip-area tooltip-arrow",ref:this.catchArrowElement}),h("kol-span-wc",{class:"tooltip-area tooltip-content",id:this.state._id,_accessKey:this._accessKey,_label:this.state._label})))}validateAccessKey(t){validateAccessKey(this,t)}validateAlign(t){validateAlign(this,t)}validateId(t){validateId(this,t)}validateLabel(t){validateLabel(this,t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label)}handleEventListeners(){var t;this.resyncListeners(this.previousSibling,null===(t=this.host)||void 0===t?void 0:t.previousElementSibling,!0),this.resyncListeners(this.tooltipElement,this.tooltipElement)}connectedCallback(){var t;this.previousSibling=null===(t=this.host)||void 0===t?void 0:t.previousElementSibling,this.handleEventListeners()}componentDidRender(){this.handleEventListeners()}disconnectedCallback(){this.previousSibling&&(this.removeListeners(this.previousSibling),this.previousSibling=void 0),this.tooltipElement&&this.removeListeners(this.tooltipElement),this.cleanupAutoPositioning&&this.cleanupAutoPositioning()}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}static get style(){return styleCss}},[0,"kol-tooltip-wc",{_accessKey:[1,"_access-key"],_align:[1],_id:[1],_label:[1],state:[32]},void 0,{_accessKey:["validateAccessKey"],_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-tooltip-wc","kol-icon","kol-span-wc"].forEach((t=>{switch(t){case"kol-tooltip-wc":customElements.get(t)||customElements.define(t,KolTooltip);break;case"kol-icon":customElements.get(t)||defineCustomElement$2();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$1()}}))}export{KolTooltip as K,defineCustomElement as d};
@@ -1 +1 @@
1
- {"file":"component3.js","mappings":"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","names":[],"sources":["src/types/props/id.ts","src/utils/overlay.ts","src/components/tooltip/style.css?tag=kol-tooltip-wc","src/components/tooltip/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString } from '../../utils/prop.validators';\n\n/* types */\nexport type IdPropType = string;\n\n/**\n * Defines the internal ID of the primary component element.\n */\nexport type PropId = {\n\tid: IdPropType;\n};\n\n/* validator */\nexport const validateId = (component: Generic.Element.Component, value?: IdPropType): void => {\n\twatchString(component, '_id', value);\n};\n","/**\n * This file contains the functions used to manage the visible overlays.\n */\n\n/**\n * This set contains all the visible overlays.\n */\nconst VISIBLE_OVERLAYS: Set<HTMLElement> = new Set();\n\n/**\n * This function is used to add an overlay to the visible overlay list.\n * All overlays in the list will have a z-index of 999, except the last\n * one, which will have a z-index of 1000.\n *\n * @param overlay Get the overlay element reference\n */\nexport function showOverlay(overlay: HTMLElement): void {\n\tVISIBLE_OVERLAYS.forEach((visibleOverlay) => {\n\t\tvisibleOverlay.style.setProperty('z-index', '999');\n\t});\n\tVISIBLE_OVERLAYS.add(overlay);\n\toverlay.style.setProperty('z-index', '1000');\n}\n\n/**\n * This function is used to remove an overlay from the visible overlay list.\n * All overlays in the list will have a z-index of 999, except the last\n * one, which will have a z-index of 1000.\n *\n * @param overlay Get the overlay element reference\n */\nexport function hideOverlay(overlay: HTMLElement): void {\n\tVISIBLE_OVERLAYS.delete(overlay);\n\tif (VISIBLE_OVERLAYS.size > 0) {\n\t\tconst last = Array.from(VISIBLE_OVERLAYS).pop();\n\t\tif (last) {\n\t\t\tlast.style.setProperty('z-index', '1000');\n\t\t}\n\t}\n}\n","@import url(../style.css);\n@layer kol-component {\n\tkol-tooltip-wc {\n\t\tdisplay: contents;\n\t}\n\n\tkol-tooltip-wc .tooltip-floating {\n\t\tanimation-duration: 0.5s;\n\t\tanimation-iteration-count: 1;\n\t\tanimation-name: fadeInOpacity;\n\t\tanimation-timing-function: ease-in;\n\t\tbox-sizing: border-box;\n\t\tdisplay: none;\n\t\tposition: fixed;\n\t\tvisibility: hidden;\n\t\t/* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tmax-width: 90vw;\n\t\tmax-height: 90vh;\n\t\twidth: var(--kol-tooltip-width); /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n\t}\n\n\t/* Shared between content and arrow */\n\tkol-tooltip-wc .tooltip-area {\n\t\tbackground-color: #fff;\n\t\tcolor: #000;\n\t}\n\n\tkol-tooltip-wc .tooltip-arrow {\n\t\theight: 10px;\n\t\tposition: fixed;\n\t\ttransform: rotate(45deg);\n\t\twidth: 10px;\n\t\tz-index: 999;\n\t}\n\n\tkol-tooltip-wc .tooltip-content {\n\t\tposition: relative;\n\t\tz-index: 1000;\n\t}\n\n\t@keyframes fadeInOpacity {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n","import { autoUpdate } from '@floating-ui/dom';\nimport { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { AlignPropType, validateAlign } from '../../types/props/align';\nimport { IdPropType, validateId } from '../../types/props/id';\nimport { LabelPropType, validateLabel } from '../../types/props/label';\nimport { getDocument, nonce } from '../../utils/dev.utils';\nimport { hideOverlay, showOverlay } from '../../utils/overlay';\nimport { API, States } from './types';\nimport { AccessKeyPropType, validateAccessKey } from '../../types/props/access-key';\nimport { alignFloatingElements } from '../../utils/align-floating-elements';\n\n@Component({\n\ttag: 'kol-tooltip-wc',\n\tstyleUrl: './style.css',\n\tshadow: false,\n})\nexport class KolTooltip implements API {\n\t@Element() private host!: HTMLKolTooltipWcElement;\n\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate previousSibling?: Element | null;\n\tprivate tooltipElement?: HTMLDivElement;\n\n\tprivate cleanupAutoPositioning?: () => void;\n\n\tprivate async alignTooltip(): Promise<void> {\n\t\tif (this.tooltipElement && this.previousSibling) {\n\t\t\tawait alignFloatingElements({\n\t\t\t\talign: this._align,\n\t\t\t\treferenceElement: this.previousSibling,\n\t\t\t\tarrowElement: this.arrowElement,\n\t\t\t\tfloatingElement: this.tooltipElement,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate showTooltip = (): void => {\n\t\tif (this.previousSibling && this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tshowOverlay(this.tooltipElement);\n\t\t\tthis.tooltipElement.style.setProperty('display', 'block');\n\t\t\tgetDocument().addEventListener('keyup', this.hideTooltipByEscape);\n\n\t\t\tconst target = this.previousSibling;\n\t\t\tconst tooltipEl = this.tooltipElement;\n\t\t\tthis.cleanupAutoPositioning = autoUpdate(target, tooltipEl, () => {\n\t\t\t\tvoid this.alignTooltip();\n\t\t\t});\n\t\t}\n\t};\n\n\tprivate hideTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\thideOverlay(this.tooltipElement);\n\t\t\tthis.tooltipElement.style.setProperty('display', 'none');\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'hidden');\n\t\t\tif (this.cleanupAutoPositioning) {\n\t\t\t\tthis.cleanupAutoPositioning();\n\t\t\t\tthis.cleanupAutoPositioning = undefined;\n\t\t\t}\n\t\t}\n\t\tgetDocument().removeEventListener('keyup', this.hideTooltipByEscape);\n\t};\n\n\tprivate hideTooltipByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') {\n\t\t\tthis.hideTooltip();\n\t\t}\n\t};\n\n\tprivate addListeners = (el: Element): void => {\n\t\tel.addEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.addEventListener('focus', this.incrementOverFocusCount);\n\t\tel.addEventListener('focusin', this.incrementOverFocusCount);\n\t\tel.addEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.addEventListener('blur', this.decrementOverFocusCount);\n\t\tel.addEventListener('focusout', this.decrementOverFocusCount);\n\t};\n\n\tprivate removeListeners = (el: Element): void => {\n\t\tel.removeEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.removeEventListener('focus', this.incrementOverFocusCount);\n\t\tel.removeEventListener('focusin', this.incrementOverFocusCount);\n\t\tel.removeEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.removeEventListener('blur', this.decrementOverFocusCount);\n\t\tel.addEventListener('focusout', this.decrementOverFocusCount);\n\t};\n\n\tprivate resyncListeners = (last?: Element | null, next?: Element | null, replacePreviousSibling = false): void => {\n\t\tif (last) {\n\t\t\tthis.removeListeners(last);\n\t\t}\n\t\tif (next) {\n\t\t\t/**\n\t\t\t * This makes the next element to the last element for the next resync cycle.\n\t\t\t */\n\t\t\tif (replacePreviousSibling) {\n\t\t\t\tthis.previousSibling = next;\n\t\t\t}\n\t\t\tthis.addListeners(next);\n\t\t}\n\t};\n\n\tprivate catchTooltipElement = (el?: HTMLDivElement): void => {\n\t\tthis.tooltipElement = el;\n\t};\n\tprivate catchArrowElement = (element?: HTMLDivElement): void => {\n\t\tthis.arrowElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.state._label !== '' && (\n\t\t\t\t\t<div class=\"tooltip-floating\" ref={this.catchTooltipElement}>\n\t\t\t\t\t\t<div class=\"tooltip-area tooltip-arrow\" ref={this.catchArrowElement} />\n\t\t\t\t\t\t<kol-span-wc class=\"tooltip-area tooltip-content\" id={this.state._id} _accessKey={this._accessKey} _label={this.state._label}></kol-span-wc>\n\t\t\t\t\t</div>\n\t\t\t\t)}\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 the alignment of the tooltip, popover or tabs in relation to the element.\n\t */\n\t@Prop() public _align?: AlignPropType = 'top';\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.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t@State() public state: States = {\n\t\t_align: 'top',\n\t\t_id: nonce(),\n\t\t_label: '…', // ⚠ required\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: AccessKeyPropType): void {\n\t\tvalidateAccessKey(this, value);\n\t}\n\n\t@Watch('_align')\n\tpublic validateAlign(value?: AlignPropType): void {\n\t\tvalidateAlign(this, value);\n\t}\n\n\t@Watch('_id')\n\tpublic validateId(value?: IdPropType): void {\n\t\tvalidateId(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\tprivate overFocusCount = 0;\n\tprivate overFocusTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate incrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount++;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate decrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount--;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate showOrHideTooltip = (): void => {\n\t\tclearTimeout(this.overFocusTimeout);\n\t\tthis.overFocusTimeout = setTimeout(() => {\n\t\t\tclearTimeout(this.overFocusTimeout);\n\t\t\tif (this.overFocusCount > 0) {\n\t\t\t\tthis.showTooltip();\n\t\t\t} else {\n\t\t\t\tthis.hideTooltip();\n\t\t\t}\n\t\t}, 250);\n\t};\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t}\n\n\tprivate handleEventListeners(): void {\n\t\tthis.resyncListeners(this.previousSibling, this.host?.previousElementSibling, true);\n\t\tthis.resyncListeners(this.tooltipElement, this.tooltipElement);\n\t}\n\n\tpublic connectedCallback(): void {\n\t\tthis.previousSibling = this.host?.previousElementSibling;\n\t\tthis.handleEventListeners();\n\t}\n\n\tpublic componentDidRender(): void {\n\t\tthis.handleEventListeners();\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentDidLoad)\n\t */\n\tpublic disconnectedCallback(): void {\n\t\tif (this.previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.previousSibling);\n\t\t\tthis.previousSibling = undefined;\n\t\t}\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.tooltipElement);\n\t\t}\n\t\tif (this.cleanupAutoPositioning) {\n\t\t\tthis.cleanupAutoPositioning();\n\t\t}\n\t}\n}\n"],"version":3}
1
+ {"file":"component3.js","mappings":"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","names":[],"sources":["src/types/props/id.ts","src/utils/overlay.ts","src/components/tooltip/style.css?tag=kol-tooltip-wc","src/components/tooltip/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString } from '../../utils/prop.validators';\n\n/* types */\nexport type IdPropType = string;\n\n/**\n * Defines the internal ID of the primary component element.\n */\nexport type PropId = {\n\tid: IdPropType;\n};\n\n/* validator */\nexport const validateId = (component: Generic.Element.Component, value?: IdPropType): void => {\n\twatchString(component, '_id', value);\n};\n","/**\n * This file contains the functions used to manage the visible overlays.\n */\n\n/**\n * This set contains all the visible overlays.\n */\nconst VISIBLE_OVERLAYS: Set<HTMLElement> = new Set();\n\n/**\n * This function is used to add an overlay to the visible overlay list.\n * All overlays in the list will have a z-index of 999, except the last\n * one, which will have a z-index of 1000.\n *\n * @param overlay Get the overlay element reference\n */\nexport function showOverlay(overlay: HTMLElement): void {\n\tVISIBLE_OVERLAYS.forEach((visibleOverlay) => {\n\t\tvisibleOverlay.style.setProperty('z-index', '999');\n\t});\n\tVISIBLE_OVERLAYS.add(overlay);\n\toverlay.style.setProperty('z-index', '1000');\n}\n\n/**\n * This function is used to remove an overlay from the visible overlay list.\n * All overlays in the list will have a z-index of 999, except the last\n * one, which will have a z-index of 1000.\n *\n * @param overlay Get the overlay element reference\n */\nexport function hideOverlay(overlay: HTMLElement): void {\n\tVISIBLE_OVERLAYS.delete(overlay);\n\tif (VISIBLE_OVERLAYS.size > 0) {\n\t\tconst last = Array.from(VISIBLE_OVERLAYS).pop();\n\t\tif (last) {\n\t\t\tlast.style.setProperty('z-index', '1000');\n\t\t}\n\t}\n}\n","@import url(../style.css);\n@layer kol-component {\n\tkol-tooltip-wc {\n\t\tdisplay: contents;\n\t}\n\n\tkol-tooltip-wc .tooltip-floating {\n\t\tanimation-duration: 0.5s;\n\t\tanimation-iteration-count: 1;\n\t\tanimation-name: fadeInOpacity;\n\t\tanimation-timing-function: ease-in;\n\t\tbox-sizing: border-box;\n\t\tdisplay: none;\n\t\tposition: fixed;\n\t\tvisibility: hidden;\n\t\t/* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tmax-width: 90vw;\n\t\tmax-height: 90vh;\n\t\twidth: var(--kol-tooltip-width); /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n\t}\n\n\t/* Shared between content and arrow */\n\tkol-tooltip-wc .tooltip-area {\n\t\tbackground-color: #fff;\n\t\tcolor: #000;\n\t}\n\n\tkol-tooltip-wc .tooltip-arrow {\n\t\theight: 10px;\n\t\tposition: absolute;\n\t\ttransform: rotate(45deg);\n\t\twidth: 10px;\n\t\tz-index: 999;\n\t}\n\n\tkol-tooltip-wc .tooltip-content {\n\t\tposition: relative;\n\t\tz-index: 1000;\n\t}\n\n\t@keyframes fadeInOpacity {\n\t\t0% {\n\t\t\topacity: 0;\n\t\t}\n\t\t100% {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n","import { autoUpdate } from '@floating-ui/dom';\nimport { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { AlignPropType, validateAlign } from '../../types/props/align';\nimport { IdPropType, validateId } from '../../types/props/id';\nimport { LabelPropType, validateLabel } from '../../types/props/label';\nimport { getDocument, nonce } from '../../utils/dev.utils';\nimport { hideOverlay, showOverlay } from '../../utils/overlay';\nimport { API, States } from './types';\nimport { AccessKeyPropType, validateAccessKey } from '../../types/props/access-key';\nimport { alignFloatingElements } from '../../utils/align-floating-elements';\n\n@Component({\n\ttag: 'kol-tooltip-wc',\n\tstyleUrl: './style.css',\n\tshadow: false,\n})\nexport class KolTooltip implements API {\n\t@Element() private host!: HTMLKolTooltipWcElement;\n\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate previousSibling?: Element | null;\n\tprivate tooltipElement?: HTMLDivElement;\n\n\tprivate cleanupAutoPositioning?: () => void;\n\n\tprivate async alignTooltip(): Promise<void> {\n\t\tif (this.tooltipElement && this.previousSibling) {\n\t\t\tawait alignFloatingElements({\n\t\t\t\talign: this._align,\n\t\t\t\treferenceElement: this.previousSibling,\n\t\t\t\tarrowElement: this.arrowElement,\n\t\t\t\tfloatingElement: this.tooltipElement,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate showTooltip = (): void => {\n\t\tif (this.previousSibling && this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tshowOverlay(this.tooltipElement);\n\t\t\tthis.tooltipElement.style.setProperty('display', 'block');\n\t\t\tgetDocument().addEventListener('keyup', this.hideTooltipByEscape);\n\n\t\t\tconst target = this.previousSibling;\n\t\t\tconst tooltipEl = this.tooltipElement;\n\t\t\tthis.cleanupAutoPositioning = autoUpdate(target, tooltipEl, () => {\n\t\t\t\tvoid this.alignTooltip();\n\t\t\t});\n\t\t}\n\t};\n\n\tprivate hideTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\thideOverlay(this.tooltipElement);\n\t\t\tthis.tooltipElement.style.setProperty('display', 'none');\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'hidden');\n\t\t\tif (this.cleanupAutoPositioning) {\n\t\t\t\tthis.cleanupAutoPositioning();\n\t\t\t\tthis.cleanupAutoPositioning = undefined;\n\t\t\t}\n\t\t}\n\t\tgetDocument().removeEventListener('keyup', this.hideTooltipByEscape);\n\t};\n\n\tprivate hideTooltipByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') {\n\t\t\tthis.hideTooltip();\n\t\t}\n\t};\n\n\tprivate addListeners = (el: Element): void => {\n\t\tel.addEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.addEventListener('focus', this.incrementOverFocusCount);\n\t\tel.addEventListener('focusin', this.incrementOverFocusCount);\n\t\tel.addEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.addEventListener('blur', this.decrementOverFocusCount);\n\t\tel.addEventListener('focusout', this.decrementOverFocusCount);\n\t};\n\n\tprivate removeListeners = (el: Element): void => {\n\t\tel.removeEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.removeEventListener('focus', this.incrementOverFocusCount);\n\t\tel.removeEventListener('focusin', this.incrementOverFocusCount);\n\t\tel.removeEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.removeEventListener('blur', this.decrementOverFocusCount);\n\t\tel.addEventListener('focusout', this.decrementOverFocusCount);\n\t};\n\n\tprivate resyncListeners = (last?: Element | null, next?: Element | null, replacePreviousSibling = false): void => {\n\t\tif (last) {\n\t\t\tthis.removeListeners(last);\n\t\t}\n\t\tif (next) {\n\t\t\t/**\n\t\t\t * This makes the next element to the last element for the next resync cycle.\n\t\t\t */\n\t\t\tif (replacePreviousSibling) {\n\t\t\t\tthis.previousSibling = next;\n\t\t\t}\n\t\t\tthis.addListeners(next);\n\t\t}\n\t};\n\n\tprivate catchTooltipElement = (el?: HTMLDivElement): void => {\n\t\tthis.tooltipElement = el;\n\t};\n\tprivate catchArrowElement = (element?: HTMLDivElement): void => {\n\t\tthis.arrowElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t{this.state._label !== '' && (\n\t\t\t\t\t<div class=\"tooltip-floating\" ref={this.catchTooltipElement}>\n\t\t\t\t\t\t<div class=\"tooltip-area tooltip-arrow\" ref={this.catchArrowElement} />\n\t\t\t\t\t\t<kol-span-wc class=\"tooltip-area tooltip-content\" id={this.state._id} _accessKey={this._accessKey} _label={this.state._label}></kol-span-wc>\n\t\t\t\t\t</div>\n\t\t\t\t)}\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 the alignment of the tooltip, popover or tabs in relation to the element.\n\t */\n\t@Prop() public _align?: AlignPropType = 'top';\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.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t@State() public state: States = {\n\t\t_align: 'top',\n\t\t_id: nonce(),\n\t\t_label: '…', // ⚠ required\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: AccessKeyPropType): void {\n\t\tvalidateAccessKey(this, value);\n\t}\n\n\t@Watch('_align')\n\tpublic validateAlign(value?: AlignPropType): void {\n\t\tvalidateAlign(this, value);\n\t}\n\n\t@Watch('_id')\n\tpublic validateId(value?: IdPropType): void {\n\t\tvalidateId(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\tprivate overFocusCount = 0;\n\tprivate overFocusTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate incrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount++;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate decrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount--;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate showOrHideTooltip = (): void => {\n\t\tclearTimeout(this.overFocusTimeout);\n\t\tthis.overFocusTimeout = setTimeout(() => {\n\t\t\tclearTimeout(this.overFocusTimeout);\n\t\t\tif (this.overFocusCount > 0) {\n\t\t\t\tthis.showTooltip();\n\t\t\t} else {\n\t\t\t\tthis.hideTooltip();\n\t\t\t}\n\t\t}, 250);\n\t};\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t}\n\n\tprivate handleEventListeners(): void {\n\t\tthis.resyncListeners(this.previousSibling, this.host?.previousElementSibling, true);\n\t\tthis.resyncListeners(this.tooltipElement, this.tooltipElement);\n\t}\n\n\tpublic connectedCallback(): void {\n\t\tthis.previousSibling = this.host?.previousElementSibling;\n\t\tthis.handleEventListeners();\n\t}\n\n\tpublic componentDidRender(): void {\n\t\tthis.handleEventListeners();\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentDidLoad)\n\t */\n\tpublic disconnectedCallback(): void {\n\t\tif (this.previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.previousSibling);\n\t\t\tthis.previousSibling = undefined;\n\t\t}\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.tooltipElement);\n\t\t}\n\t\tif (this.cleanupAutoPositioning) {\n\t\t\tthis.cleanupAutoPositioning();\n\t\t}\n\t}\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as translate}from"./i18n.js";import{v as validateAlternativeButtonLinkRole,a as validateTabIndex}from"./tab-index.js";import{b as watchString,w as watchValidator,r as propagateFocus,v as setEventTarget,d as devHint,s as showExpertSlot}from"./prop.validators.js";import{v as validateAccessKey,a as validateHideLabel,b as validateIcons,d as defineCustomElement$2}from"./component2.js";import{a as validateLabelWithExpertSlot}from"./label.js";import{v as validateTooltipAlign}from"./tooltip-align.js";import{o as onLocationChange}from"./ariaCurrentService.js";import{d as defineCustomElement$3}from"./component.js";import{d as defineCustomElement$1}from"./component3.js";const validateDownload=(t,e)=>{watchString(t,"_download",e)},validateHref=(t,e,a={})=>{watchString(t,"_href",e,a)},validateLinkCallbacks=(t,e)=>{"object"==typeof e&&"function"==typeof(null==e?void 0:e.onClick)&&(t.state=Object.assign(Object.assign({},t.state),{_on:e}))},validateLinkTarget=(t,e)=>{watchString(t,"_target",e)},ariaCurrentValuePropTypeOptions=["date","location","page","step","time","true","false"],validateAriaCurrentValue=(t,e)=>{watchValidator(t,"_ariaCurrentValue",(t=>"string"==typeof t&&ariaCurrentValuePropTypeOptions.includes(t)),new Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(", ")}`]),e,{defaultValue:"page"})},KolLinkWc=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.catchRef=t=>{this.ref=t,propagateFocus(this.host,this.ref)},this.onClick=t=>{var e,a;"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)&&(t.preventDefault(),t.stopPropagation(),setEventTarget(t,this.ref),null===(a=this.state._on)||void 0===a||a.onClick(t,this.state._href))},this.getRenderValues=()=>{const t="string"==typeof this.state._target&&"_self"!==this.state._target,e={href:"string"==typeof this.state._href&&this.state._href.length>0?this.state._href:"javascript:void(0);",target:"string"==typeof this.state._target&&this.state._target.length>0?this.state._target:void 0,rel:t?"noopener":void 0,download:"string"==typeof this.state._download?this.state._download:void 0};return!0!==this.state._hideLabel||this.state._label||devHint("[KolLink] Es muss ein Aria-Label gesetzt werden _hide-label gesetzt ist."),{isExternal:t,tagAttrs:e}},this._accessKey=void 0,this._ariaCurrentValue=void 0,this._download=void 0,this._hideLabel=!1,this._href=void 0,this._icons=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._target=void 0,this._targetDescription=translate("kol-open-link-in-tab"),this._tooltipAlign="right",this.state={_href:"…",_icons:{},_ariaCurrentValue:"page"}}render(){const{isExternal:t,tagAttrs:e}=this.getRenderValues(),a=showExpertSlot(this.state._label);return h(Host,null,h("a",Object.assign({ref:this.catchRef},e,{accessKey:this.state._accessKey,"aria-current":this.state._ariaCurrent,"aria-label":this.state._hideLabel&&"string"==typeof this.state._label?this.state._label:void 0,class:{"external-link":t,"hide-label":!0===this.state._hideLabel}},this.state._on,{onClick:this.onClick,onKeyPress:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex}),h("kol-span-wc",{_accessKey:this.state._accessKey,_icons:this.state._icons,_hideLabel:this.state._hideLabel,_label:a?"":this.state._label||this.state._href},h("slot",{name:"expert",slot:"expert"})),t&&h("kol-icon",{class:"external-link-icon",_label:this.state._targetDescription,_icons:"codicon codicon-link-external"})),h("kol-tooltip-wc",{"aria-hidden":"true",hidden:a||!this.state._hideLabel,_accessKey:this.state._accessKey,_align:this.state._tooltipAlign,_label:this.state._label||this.state._href}))}validateAccessKey(t){validateAccessKey(this,t)}validateAriaCurrentValue(t){validateAriaCurrentValue(this,t)}validateDownload(t){validateDownload(this,t)}validateHideLabel(t){validateHideLabel(this,t)}validateHref(t){validateHref(this,t)}validateIcons(t){validateIcons(this,t)}validateLabel(t){validateLabelWithExpertSlot(this,t)}validateOn(t){validateLinkCallbacks(this,t)}validateRole(t){validateAlternativeButtonLinkRole(this,t)}validateTabIndex(t){validateTabIndex(this,t)}validateTarget(t){validateLinkTarget(this,t)}validateTargetDescription(t){watchString(this,"_targetDescription",t)}validateTooltipAlign(t){validateTooltipAlign(this,t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaCurrentValue(this._ariaCurrentValue),this.validateDownload(this._download),this.validateHideLabel(this._hideLabel),this.validateHref(this._href),this.validateIcons(this._icons),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTarget(this._target),this.validateTargetDescription(this._targetDescription),this.validateTooltipAlign(this._tooltipAlign),this.unsubscribeOnLocationChange=onLocationChange((t=>{this.state._ariaCurrent=t===this.state._href?this.state._ariaCurrentValue:void 0}))}disconnectedCallback(){this.unsubscribeOnLocationChange&&this.unsubscribeOnLocationChange()}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_targetDescription:["validateTargetDescription"],_tooltipAlign:["validateTooltipAlign"]}}},[4,"kol-link-wc",{_accessKey:[1,"_access-key"],_ariaCurrentValue:[1,"_aria-current-value"],_download:[1],_hideLabel:[4,"_hide-label"],_href:[1],_icons:[1],_label:[1],_on:[16],_role:[1],_tabIndex:[2,"_tab-index"],_target:[1],_targetDescription:[1,"_target-description"],_tooltipAlign:[1,"_tooltip-align"],state:[32]},void 0,{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_targetDescription:["validateTargetDescription"],_tooltipAlign:["validateTooltipAlign"]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-link-wc","kol-icon","kol-span-wc","kol-tooltip-wc"].forEach((t=>{switch(t){case"kol-link-wc":customElements.get(t)||customElements.define(t,KolLinkWc);break;case"kol-icon":customElements.get(t)||defineCustomElement$3();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$2();break;case"kol-tooltip-wc":customElements.get(t)||defineCustomElement$1()}}))}export{KolLinkWc as K,defineCustomElement as d};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as translate}from"./i18n.js";import{v as validateAlternativeButtonLinkRole,a as validateTabIndex}from"./tab-index.js";import{b as watchString,w as watchValidator,r as propagateFocus,v as setEventTarget,d as devHint,s as showExpertSlot}from"./prop.validators.js";import{v as validateAccessKey,a as validateHideLabel,b as validateIcons,d as defineCustomElement$2}from"./component2.js";import{a as validateLabelWithExpertSlot}from"./label.js";import{v as validateTooltipAlign}from"./tooltip-align.js";import{o as onLocationChange}from"./ariaCurrentService.js";import{d as defineCustomElement$3}from"./component.js";import{d as defineCustomElement$1}from"./component3.js";const validateDownload=(t,e)=>{watchString(t,"_download",e)},validateHref=(t,e,a={})=>{watchString(t,"_href",e,a)},validateLinkCallbacks=(t,e)=>{"object"==typeof e&&"function"==typeof(null==e?void 0:e.onClick)&&(t.state=Object.assign(Object.assign({},t.state),{_on:e}))},validateLinkTarget=(t,e)=>{watchString(t,"_target",e)},ariaCurrentValuePropTypeOptions=["date","location","page","step","time","true","false"],validateAriaCurrentValue=(t,e)=>{watchValidator(t,"_ariaCurrentValue",(t=>"string"==typeof t&&ariaCurrentValuePropTypeOptions.includes(t)),new Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(", ")}`]),e,{defaultValue:"page"})},KolLinkWc=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.catchRef=t=>{this.ref=t,propagateFocus(this.host,this.ref)},this.onClick=t=>{var e,a;"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)&&(t.preventDefault(),t.stopPropagation(),setEventTarget(t,this.ref),null===(a=this.state._on)||void 0===a||a.onClick(t,this.state._href))},this.getRenderValues=()=>{const t="string"==typeof this.state._target&&"_self"!==this.state._target,e={href:"string"==typeof this.state._href&&this.state._href.length>0?this.state._href:"javascript:void(0);",target:"string"==typeof this.state._target&&this.state._target.length>0?this.state._target:void 0,rel:t?"noopener":void 0,download:"string"==typeof this.state._download?this.state._download:void 0};return!0!==this.state._hideLabel||this.state._label||devHint("[KolLink] Es muss ein Aria-Label gesetzt werden, wenn _hide-label gesetzt ist."),{isExternal:t,tagAttrs:e}},this._accessKey=void 0,this._ariaCurrentValue=void 0,this._download=void 0,this._hideLabel=!1,this._href=void 0,this._icons=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._target=void 0,this._tooltipAlign="right",this.state={_href:"…",_icons:{},_ariaCurrentValue:"page"}}render(){const{isExternal:t,tagAttrs:e}=this.getRenderValues(),a=showExpertSlot(this.state._label);return h(Host,null,h("a",Object.assign({ref:this.catchRef},e,{accessKey:this.state._accessKey,"aria-current":this.state._ariaCurrent,"aria-label":t&&this.state._hideLabel&&"string"==typeof this.state._label?`${this.state._label} (${translate("kol-open-link-in-tab")})`:void 0,class:{"external-link":t,"hide-label":!0===this.state._hideLabel}},this.state._on,{onClick:this.onClick,onKeyPress:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex}),h("kol-span-wc",{_accessKey:this.state._accessKey,_icons:this.state._icons,_hideLabel:this.state._hideLabel,_label:a?"":this.state._label||this.state._href},h("slot",{name:"expert",slot:"expert"})),t&&h("kol-icon",{class:"external-link-icon",_label:translate("kol-open-link-in-tab"),_icons:"codicon codicon-link-external","aria-hidden":this.state._hideLabel})),h("kol-tooltip-wc",{"aria-hidden":"true",hidden:a||!this.state._hideLabel,_accessKey:this.state._accessKey,_align:this.state._tooltipAlign,_label:this.state._label||this.state._href}))}validateAccessKey(t){validateAccessKey(this,t)}validateAriaCurrentValue(t){validateAriaCurrentValue(this,t)}validateDownload(t){validateDownload(this,t)}validateHideLabel(t){validateHideLabel(this,t)}validateHref(t){validateHref(this,t)}validateIcons(t){validateIcons(this,t)}validateLabel(t){validateLabelWithExpertSlot(this,t)}validateOn(t){validateLinkCallbacks(this,t)}validateRole(t){validateAlternativeButtonLinkRole(this,t)}validateTabIndex(t){validateTabIndex(this,t)}validateTarget(t){validateLinkTarget(this,t)}validateTooltipAlign(t){validateTooltipAlign(this,t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaCurrentValue(this._ariaCurrentValue),this.validateDownload(this._download),this.validateHideLabel(this._hideLabel),this.validateHref(this._href),this.validateIcons(this._icons),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTarget(this._target),this.validateTooltipAlign(this._tooltipAlign),this.unsubscribeOnLocationChange=onLocationChange((t=>{this.state._ariaCurrent=t===this.state._href?this.state._ariaCurrentValue:void 0}))}disconnectedCallback(){this.unsubscribeOnLocationChange&&this.unsubscribeOnLocationChange()}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_tooltipAlign:["validateTooltipAlign"]}}},[4,"kol-link-wc",{_accessKey:[1,"_access-key"],_ariaCurrentValue:[1,"_aria-current-value"],_download:[1],_hideLabel:[4,"_hide-label"],_href:[1],_icons:[1],_label:[1],_on:[16],_role:[1],_tabIndex:[2,"_tab-index"],_target:[1],_tooltipAlign:[1,"_tooltip-align"],state:[32]},void 0,{_accessKey:["validateAccessKey"],_ariaCurrentValue:["validateAriaCurrentValue"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icons:["validateIcons"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_tooltipAlign:["validateTooltipAlign"]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-link-wc","kol-icon","kol-span-wc","kol-tooltip-wc"].forEach((t=>{switch(t){case"kol-link-wc":customElements.get(t)||customElements.define(t,KolLinkWc);break;case"kol-icon":customElements.get(t)||defineCustomElement$3();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$2();break;case"kol-tooltip-wc":customElements.get(t)||defineCustomElement$1()}}))}export{KolLinkWc as K,defineCustomElement as d};
@@ -1 +1 @@
1
- {"file":"component9.js","mappings":"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","names":[],"sources":["src/types/props/download.ts","src/types/props/href.ts","src/types/props/link-on-callbacks.ts","src/types/props/link-target.ts","src/types/props/aria-current-value.ts","src/components/link/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString } from '../../utils/prop.validators';\n\n/* types */\n\nexport type DownloadPropType = string;\n\n/**\n * Tells the browser that the link contains a file. Optionally sets the filename.\n */\nexport type PropDownload = {\n\tdownload?: DownloadPropType;\n};\n\n/* validator */\nexport const validateDownload = (component: Generic.Element.Component, value?: DownloadPropType): void => {\n\twatchString(component, '_download', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString, WatchStringOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type HrefPropType = string;\n\n/**\n * This property is used for a link from a reference to the target URL.\n */\nexport type PropHref = {\n\thref: HrefPropType;\n};\n\nexport type HrefProp = Generic.Element.Members<PropHref, unknown>;\n\n/* validator */\nexport const validateHref = (component: Generic.Element.Component, value?: HrefPropType, options: WatchStringOptions = {}): void => {\n\twatchString(component, '_href', value, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\nimport { Events } from '../../enums/events';\nimport { EventValueOrEventCallback } from '../callbacks';\n\n/* types */\nexport type LinkOnCallbacksPropType = {\n\t[Events.onClick]?: EventValueOrEventCallback<Event, string>;\n};\n\n/**\n * Defines the callback functions for links.\n */\nexport type PropLinkOnCallbacks = {\n\ton: LinkOnCallbacksPropType;\n};\n\n/* validator */\nexport const validateLinkCallbacks = (component: Generic.Element.Component, value?: LinkOnCallbacksPropType): void => {\n\tif (typeof value === 'object' && typeof value?.onClick === 'function') {\n\t\tcomponent.state = {\n\t\t\t...component.state,\n\t\t\t_on: value,\n\t\t};\n\t}\n};\n","/* types */\n\n// https://www.w3schools.com/tags/att_a_target.asp\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchString } from '../../utils/prop.validators';\n\nexport type LinkTargetPropType = '_blank' | '_parent' | '_self' | '_top' | string;\n\n/**\n * Defines where to open the link.\n */\nexport type PropLinkTarget = {\n\ttarget: LinkTargetPropType;\n};\n\n/* validator */\nexport const validateLinkTarget = (component: Generic.Element.Component, value?: LinkTargetPropType): void => {\n\twatchString(component, '_target', value);\n};\n","/* types */\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchValidator } from '../../utils/prop.validators';\n\n/**\n * Defines the value for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n * @see https://www.aditus.io/aria/aria-current/\n */\nconst ariaCurrentValuePropTypeOptions = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ariaCurrentValuePropTypeOptions)[number];\n\nexport type PropAriaCurrentValue = {\n\tariaCurrentValue: AriaCurrentValuePropType;\n};\n\n/* validator */\nexport const validateAriaCurrentValue = (component: Generic.Element.Component, value?: AriaCurrentValuePropType): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t`_ariaCurrentValue`,\n\t\t(value) => typeof value === 'string' && ariaCurrentValuePropTypeOptions.includes(value),\n\t\tnew Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\tdefaultValue: 'page',\n\t\t}\n\t);\n};\n","import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconsProp } from '../../types/icons';\nimport { AlternativeButtonLinkRolePropType, validateAlternativeButtonLinkRole } from '../../types/props/alternative-button-link-role';\nimport { DownloadPropType, validateDownload } from '../../types/props/download';\nimport { HrefPropType, validateHref } from '../../types/props/href';\nimport { validateIcons } from '../../types/props/icons';\nimport { LabelWithExpertSlotPropType, validateLabelWithExpertSlot } from '../../types/props/label';\nimport { LinkOnCallbacksPropType, validateLinkCallbacks } from '../../types/props/link-on-callbacks';\nimport { LinkTargetPropType, validateLinkTarget } from '../../types/props/link-target';\nimport { TooltipAlignPropType, validateTooltipAlign } from '../../types/props/tooltip-align';\nimport { devHint } from '../../utils/a11y.tipps';\nimport { setEventTarget, watchString } from '../../utils/prop.validators';\nimport { propagateFocus, showExpertSlot } from '../../utils/reuse';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { States as LinkStates } from '../link/types';\nimport { API } from './types';\nimport { validateHideLabel } from '../../types/props/hide-label';\nimport { AccessKeyPropType, validateAccessKey } from '../../types/props/access-key';\nimport { onLocationChange, UnsubscribeFunction } from './ariaCurrentService';\nimport { AriaCurrentValuePropType, validateAriaCurrentValue } from '../../types/props/aria-current-value';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-link-wc',\n\tshadow: false,\n})\nexport class KolLinkWc implements API {\n\t@Element() private readonly host?: HTMLKolLinkWcElement;\n\tprivate ref?: HTMLAnchorElement;\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\tprivate readonly catchRef = (ref?: HTMLAnchorElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: Event) => {\n\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tsetEventTarget(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._href);\n\t\t}\n\t};\n\n\tprivate readonly getRenderValues = () => {\n\t\t/**\n\t\t * DX\n\t\t * Das möchte ich ungern für HTML machen, sondern nur für Barrierefreiheitsthemen.\n\t\t */\n\t\t// if (typeof this.state._href === 'string' && this.state._href.length > 0) {\n\t\t// console.error('Setz den URL.');\n\t\t// throw new Error('Setz den URL.');\n\t\t// }\n\n\t\t// switch (this.state._target) {\n\t\t// case '_blank':\n\t\t// case '_self':\n\t\t// break;\n\t\t// default:\n\t\t// console.error('Fehlerhaftes Target.');\n\t\t// throw new Error('Fehlerhaftes Target.');\n\t\t// }\n\n\t\t// ROBUSTHEIT durch Validierung\n\t\tconst isExternal = typeof this.state._target === 'string' && this.state._target !== '_self';\n\n\t\tconst tagAttrs = {\n\t\t\thref: typeof this.state._href === 'string' && this.state._href.length > 0 ? this.state._href : 'javascript:void(0);',\n\t\t\ttarget: typeof this.state._target === 'string' && this.state._target.length > 0 ? this.state._target : undefined,\n\t\t\trel: isExternal ? 'noopener' : undefined,\n\t\t\tdownload: typeof this.state._download === 'string' ? this.state._download : undefined,\n\t\t};\n\n\t\tif (this.state._hideLabel === true && !this.state._label) {\n\t\t\tdevHint(`[KolLink] Es muss ein Aria-Label gesetzt werden _hide-label gesetzt ist.`);\n\t\t}\n\t\treturn { isExternal, tagAttrs };\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst { isExternal, tagAttrs } = this.getRenderValues();\n\t\tconst hasExpertSlot = showExpertSlot(this.state._label);\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<a\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t{...tagAttrs}\n\t\t\t\t\taccessKey={this.state._accessKey}\n\t\t\t\t\taria-current={this.state._ariaCurrent}\n\t\t\t\t\taria-label={this.state._hideLabel && typeof this.state._label === 'string' ? this.state._label : undefined}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'external-link': isExternal,\n\t\t\t\t\t\t'hide-label': this.state._hideLabel === true,\n\t\t\t\t\t}}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\t// https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\tonKeyPress={this.onClick}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc\n\t\t\t\t\t\t_accessKey={this.state._accessKey}\n\t\t\t\t\t\t_icons={this.state._icons}\n\t\t\t\t\t\t_hideLabel={this.state._hideLabel}\n\t\t\t\t\t\t_label={hasExpertSlot ? '' : this.state._label || this.state._href}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t\t{isExternal && <kol-icon class=\"external-link-icon\" _label={this.state._targetDescription as string} _icons={'codicon codicon-link-external'} />}\n\t\t\t\t</a>\n\t\t\t\t<kol-tooltip-wc\n\t\t\t\t\t/**\n\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t */\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\thidden={hasExpertSlot || !this.state._hideLabel}\n\t\t\t\t\t_accessKey={this.state._accessKey}\n\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t_label={this.state._label || this.state._href}\n\t\t\t\t></kol-tooltip-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 the value for the aria-current attribute.\n\t */\n\t@Prop() public _ariaCurrentValue?: AriaCurrentValuePropType;\n\n\t/**\n\t * Tells the browser that the link contains a file. Optionally sets the filename.\n\t */\n\t@Prop() public _download?: DownloadPropType;\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 * Sets the target URI of the link or citation source.\n\t */\n\t@Prop() public _href!: HrefPropType;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: Stringified<KoliBriIconsProp>;\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 callback functions for links.\n\t */\n\t@Prop() public _on?: LinkOnCallbacksPropType;\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 * 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 open the link.\n\t */\n\t@Prop() public _target?: LinkTargetPropType;\n\n\t/**\n\t * Defines the description to use when the link is going to be opened in another application.\n\t */\n\t@Prop() public _targetDescription?: string = translate('kol-open-link-in-tab');\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 = 'right';\n\n\t@State() public state: LinkStates = {\n\t\t_href: '…', // ⚠ required\n\t\t_icons: {}, // ⚠ required\n\t\t_ariaCurrentValue: 'page', // ⚠ required\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: AccessKeyPropType): void {\n\t\tvalidateAccessKey(this, value);\n\t}\n\n\t@Watch('_ariaCurrentValue')\n\tpublic validateAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tvalidateAriaCurrentValue(this, value);\n\t}\n\n\t@Watch('_download')\n\tpublic validateDownload(value?: DownloadPropType): void {\n\t\tvalidateDownload(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_href')\n\tpublic validateHref(value?: string): void {\n\t\tvalidateHref(this, value);\n\t}\n\n\t@Watch('_icons')\n\tpublic validateIcons(value?: KoliBriIconsProp): void {\n\t\tvalidateIcons(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tvalidateLabelWithExpertSlot(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: LinkOnCallbacksPropType): void {\n\t\tvalidateLinkCallbacks(this, value);\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tvalidateAlternativeButtonLinkRole(this, value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_target')\n\tpublic validateTarget(value?: LinkTargetPropType): void {\n\t\tvalidateLinkTarget(this, value);\n\t}\n\n\t@Watch('_targetDescription')\n\tpublic validateTargetDescription(value?: string): void {\n\t\twatchString(this, '_targetDescription', value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: TooltipAlignPropType): void {\n\t\tvalidateTooltipAlign(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaCurrentValue(this._ariaCurrentValue);\n\t\tthis.validateDownload(this._download);\n\t\tthis.validateHideLabel(this._hideLabel);\n\t\tthis.validateHref(this._href);\n\t\tthis.validateIcons(this._icons);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTarget(this._target);\n\t\tthis.validateTargetDescription(this._targetDescription);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tthis.state._ariaCurrent = location === this.state._href ? this.state._ariaCurrentValue : undefined;\n\t\t});\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t}\n\t}\n}\n"],"version":3}
1
+ {"file":"component9.js","mappings":"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","names":[],"sources":["src/types/props/download.ts","src/types/props/href.ts","src/types/props/link-on-callbacks.ts","src/types/props/link-target.ts","src/types/props/aria-current-value.ts","src/components/link/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString } from '../../utils/prop.validators';\n\n/* types */\n\nexport type DownloadPropType = string;\n\n/**\n * Tells the browser that the link contains a file. Optionally sets the filename.\n */\nexport type PropDownload = {\n\tdownload?: DownloadPropType;\n};\n\n/* validator */\nexport const validateDownload = (component: Generic.Element.Component, value?: DownloadPropType): void => {\n\twatchString(component, '_download', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchString, WatchStringOptions } from '../../utils/prop.validators';\n\n/* types */\nexport type HrefPropType = string;\n\n/**\n * This property is used for a link from a reference to the target URL.\n */\nexport type PropHref = {\n\thref: HrefPropType;\n};\n\nexport type HrefProp = Generic.Element.Members<PropHref, unknown>;\n\n/* validator */\nexport const validateHref = (component: Generic.Element.Component, value?: HrefPropType, options: WatchStringOptions = {}): void => {\n\twatchString(component, '_href', value, options);\n};\n","import type { Generic } from 'adopted-style-sheets';\nimport { Events } from '../../enums/events';\nimport { EventValueOrEventCallback } from '../callbacks';\n\n/* types */\nexport type LinkOnCallbacksPropType = {\n\t[Events.onClick]?: EventValueOrEventCallback<Event, string>;\n};\n\n/**\n * Defines the callback functions for links.\n */\nexport type PropLinkOnCallbacks = {\n\ton: LinkOnCallbacksPropType;\n};\n\n/* validator */\nexport const validateLinkCallbacks = (component: Generic.Element.Component, value?: LinkOnCallbacksPropType): void => {\n\tif (typeof value === 'object' && typeof value?.onClick === 'function') {\n\t\tcomponent.state = {\n\t\t\t...component.state,\n\t\t\t_on: value,\n\t\t};\n\t}\n};\n","/* types */\n\n// https://www.w3schools.com/tags/att_a_target.asp\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchString } from '../../utils/prop.validators';\n\nexport type LinkTargetPropType = '_blank' | '_parent' | '_self' | '_top' | string;\n\n/**\n * Defines where to open the link.\n */\nexport type PropLinkTarget = {\n\ttarget: LinkTargetPropType;\n};\n\n/* validator */\nexport const validateLinkTarget = (component: Generic.Element.Component, value?: LinkTargetPropType): void => {\n\twatchString(component, '_target', value);\n};\n","/* types */\nimport type { Generic } from 'adopted-style-sheets';\nimport { watchValidator } from '../../utils/prop.validators';\n\n/**\n * Defines the value for the aria-current attribute.\n * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current\n * @see https://www.aditus.io/aria/aria-current/\n */\nconst ariaCurrentValuePropTypeOptions = ['date', 'location', 'page', 'step', 'time', 'true', 'false'] as const;\nexport type AriaCurrentValuePropType = (typeof ariaCurrentValuePropTypeOptions)[number];\n\nexport type PropAriaCurrentValue = {\n\tariaCurrentValue: AriaCurrentValuePropType;\n};\n\n/* validator */\nexport const validateAriaCurrentValue = (component: Generic.Element.Component, value?: AriaCurrentValuePropType): void => {\n\twatchValidator(\n\t\tcomponent,\n\t\t`_ariaCurrentValue`,\n\t\t(value) => typeof value === 'string' && ariaCurrentValuePropTypeOptions.includes(value),\n\t\tnew Set([`AriaCurrentValue {${ariaCurrentValuePropTypeOptions.join(', ')}`]),\n\t\tvalue,\n\t\t{\n\t\t\tdefaultValue: 'page',\n\t\t}\n\t);\n};\n","import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconsProp } from '../../types/icons';\nimport { AlternativeButtonLinkRolePropType, validateAlternativeButtonLinkRole } from '../../types/props/alternative-button-link-role';\nimport { DownloadPropType, validateDownload } from '../../types/props/download';\nimport { HrefPropType, validateHref } from '../../types/props/href';\nimport { validateIcons } from '../../types/props/icons';\nimport { LabelWithExpertSlotPropType, validateLabelWithExpertSlot } from '../../types/props/label';\nimport { LinkOnCallbacksPropType, validateLinkCallbacks } from '../../types/props/link-on-callbacks';\nimport { LinkTargetPropType, validateLinkTarget } from '../../types/props/link-target';\nimport { TooltipAlignPropType, validateTooltipAlign } from '../../types/props/tooltip-align';\nimport { devHint } from '../../utils/a11y.tipps';\nimport { setEventTarget } from '../../utils/prop.validators';\nimport { propagateFocus, showExpertSlot } from '../../utils/reuse';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { States as LinkStates } from '../link/types';\nimport { API } from './types';\nimport { validateHideLabel } from '../../types/props/hide-label';\nimport { AccessKeyPropType, validateAccessKey } from '../../types/props/access-key';\nimport { onLocationChange, UnsubscribeFunction } from './ariaCurrentService';\nimport { AriaCurrentValuePropType, validateAriaCurrentValue } from '../../types/props/aria-current-value';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-link-wc',\n\tshadow: false,\n})\nexport class KolLinkWc implements API {\n\t@Element() private readonly host?: HTMLKolLinkWcElement;\n\tprivate ref?: HTMLAnchorElement;\n\tprivate unsubscribeOnLocationChange?: UnsubscribeFunction;\n\n\tprivate readonly catchRef = (ref?: HTMLAnchorElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: Event) => {\n\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tsetEventTarget(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._href);\n\t\t}\n\t};\n\n\tprivate readonly getRenderValues = () => {\n\t\t/**\n\t\t * DX\n\t\t * Das möchte ich ungern für HTML machen, sondern nur für Barrierefreiheitsthemen.\n\t\t */\n\t\t// if (typeof this.state._href === 'string' && this.state._href.length > 0) {\n\t\t// console.error('Setz den URL.');\n\t\t// throw new Error('Setz den URL.');\n\t\t// }\n\n\t\t// switch (this.state._target) {\n\t\t// case '_blank':\n\t\t// case '_self':\n\t\t// break;\n\t\t// default:\n\t\t// console.error('Fehlerhaftes Target.');\n\t\t// throw new Error('Fehlerhaftes Target.');\n\t\t// }\n\n\t\t// ROBUSTHEIT durch Validierung\n\t\tconst isExternal = typeof this.state._target === 'string' && this.state._target !== '_self';\n\n\t\tconst tagAttrs = {\n\t\t\thref: typeof this.state._href === 'string' && this.state._href.length > 0 ? this.state._href : 'javascript:void(0);',\n\t\t\ttarget: typeof this.state._target === 'string' && this.state._target.length > 0 ? this.state._target : undefined,\n\t\t\trel: isExternal ? 'noopener' : undefined,\n\t\t\tdownload: typeof this.state._download === 'string' ? this.state._download : undefined,\n\t\t};\n\n\t\tif (this.state._hideLabel === true && !this.state._label) {\n\t\t\tdevHint(`[KolLink] Es muss ein Aria-Label gesetzt werden, wenn _hide-label gesetzt ist.`);\n\t\t}\n\t\treturn { isExternal, tagAttrs };\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst { isExternal, tagAttrs } = this.getRenderValues();\n\t\tconst hasExpertSlot = showExpertSlot(this.state._label);\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<a\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t{...tagAttrs}\n\t\t\t\t\taccessKey={this.state._accessKey}\n\t\t\t\t\taria-current={this.state._ariaCurrent}\n\t\t\t\t\taria-label={\n\t\t\t\t\t\tisExternal && this.state._hideLabel && typeof this.state._label === 'string'\n\t\t\t\t\t\t\t? `${this.state._label} (${translate('kol-open-link-in-tab')})`\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'external-link': isExternal,\n\t\t\t\t\t\t'hide-label': this.state._hideLabel === true,\n\t\t\t\t\t}}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\t// https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\tonKeyPress={this.onClick}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc\n\t\t\t\t\t\t_accessKey={this.state._accessKey}\n\t\t\t\t\t\t_icons={this.state._icons}\n\t\t\t\t\t\t_hideLabel={this.state._hideLabel}\n\t\t\t\t\t\t_label={hasExpertSlot ? '' : this.state._label || this.state._href}\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t\t{isExternal && (\n\t\t\t\t\t\t<kol-icon\n\t\t\t\t\t\t\tclass=\"external-link-icon\"\n\t\t\t\t\t\t\t_label={translate('kol-open-link-in-tab')}\n\t\t\t\t\t\t\t_icons={'codicon codicon-link-external'}\n\t\t\t\t\t\t\taria-hidden={this.state._hideLabel}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</a>\n\t\t\t\t<kol-tooltip-wc\n\t\t\t\t\t/**\n\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t */\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\thidden={hasExpertSlot || !this.state._hideLabel}\n\t\t\t\t\t_accessKey={this.state._accessKey}\n\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t_label={this.state._label || this.state._href}\n\t\t\t\t></kol-tooltip-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 the value for the aria-current attribute.\n\t */\n\t@Prop() public _ariaCurrentValue?: AriaCurrentValuePropType;\n\n\t/**\n\t * Tells the browser that the link contains a file. Optionally sets the filename.\n\t */\n\t@Prop() public _download?: DownloadPropType;\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 * Sets the target URI of the link or citation source.\n\t */\n\t@Prop() public _href!: HrefPropType;\n\n\t/**\n\t * Defines the icon classnames (e.g. `_icons=\"fa-solid fa-user\"`).\n\t */\n\t@Prop() public _icons?: Stringified<KoliBriIconsProp>;\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 callback functions for links.\n\t */\n\t@Prop() public _on?: LinkOnCallbacksPropType;\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 * 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 open the link.\n\t */\n\t@Prop() public _target?: LinkTargetPropType;\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 = 'right';\n\n\t@State() public state: LinkStates = {\n\t\t_href: '…', // ⚠ required\n\t\t_icons: {}, // ⚠ required\n\t\t_ariaCurrentValue: 'page', // ⚠ required\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: AccessKeyPropType): void {\n\t\tvalidateAccessKey(this, value);\n\t}\n\n\t@Watch('_ariaCurrentValue')\n\tpublic validateAriaCurrentValue(value?: AriaCurrentValuePropType): void {\n\t\tvalidateAriaCurrentValue(this, value);\n\t}\n\n\t@Watch('_download')\n\tpublic validateDownload(value?: DownloadPropType): void {\n\t\tvalidateDownload(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_href')\n\tpublic validateHref(value?: string): void {\n\t\tvalidateHref(this, value);\n\t}\n\n\t@Watch('_icons')\n\tpublic validateIcons(value?: KoliBriIconsProp): void {\n\t\tvalidateIcons(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelWithExpertSlotPropType): void {\n\t\tvalidateLabelWithExpertSlot(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: LinkOnCallbacksPropType): void {\n\t\tvalidateLinkCallbacks(this, value);\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativeButtonLinkRolePropType): void {\n\t\tvalidateAlternativeButtonLinkRole(this, value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_target')\n\tpublic validateTarget(value?: LinkTargetPropType): void {\n\t\tvalidateLinkTarget(this, value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: TooltipAlignPropType): void {\n\t\tvalidateTooltipAlign(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaCurrentValue(this._ariaCurrentValue);\n\t\tthis.validateDownload(this._download);\n\t\tthis.validateHideLabel(this._hideLabel);\n\t\tthis.validateHref(this._href);\n\t\tthis.validateIcons(this._icons);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTarget(this._target);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.unsubscribeOnLocationChange = onLocationChange((location) => {\n\t\t\tthis.state._ariaCurrent = location === this.state._href ? this.state._ariaCurrentValue : undefined;\n\t\t});\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tif (this.unsubscribeOnLocationChange) {\n\t\t\tthis.unsubscribeOnLocationChange();\n\t\t}\n\t}\n}\n"],"version":3}