@public-ui/components 4.1.2-rc.2 → 4.1.2-rc.4

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 (897) hide show
  1. package/assets/kolicons/kolicons.eot +0 -0
  2. package/assets/kolicons/kolicons.ttf +0 -0
  3. package/assets/kolicons/kolicons.woff +0 -0
  4. package/assets/kolicons/kolicons.woff2 +0 -0
  5. package/assets/kolicons/style.css +6 -6
  6. package/custom-elements.json +40 -18
  7. package/dist/cjs/{Alert-B4Hj8NjA.js → Alert-XL-NcUjK.js} +1 -1
  8. package/dist/cjs/{Alert-B4Hj8NjA.js.map → Alert-XL-NcUjK.js.map} +1 -1
  9. package/dist/cjs/{Collapsible-Dijo3pX0.js → Collapsible-BS-ThqIJ.js} +1 -1
  10. package/dist/cjs/{Collapsible-Dijo3pX0.js.map → Collapsible-BS-ThqIJ.js.map} +1 -1
  11. package/dist/cjs/{CustomSuggestionsOptionsGroup-Mgl4AAEi.js → CustomSuggestionsOptionsGroup-Q_2NY_Rp.js} +1 -1
  12. package/dist/cjs/{CustomSuggestionsOptionsGroup-Mgl4AAEi.js.map → CustomSuggestionsOptionsGroup-Q_2NY_Rp.js.map} +1 -1
  13. package/dist/cjs/{FieldControlStateWrapper-x-Ky7VQD.js → FieldControlStateWrapper-Ci_ehxTT.js} +1 -1
  14. package/dist/cjs/{FieldControlStateWrapper-x-Ky7VQD.js.map → FieldControlStateWrapper-Ci_ehxTT.js.map} +1 -1
  15. package/dist/cjs/FormFieldStateWrapper-CUNDwsb8.js +4 -0
  16. package/dist/cjs/FormFieldStateWrapper-CUNDwsb8.js.map +1 -0
  17. package/dist/cjs/{Heading-BCb6_DOq.js → Heading-eutqOsUb.js} +1 -1
  18. package/dist/cjs/{Heading-BCb6_DOq.js.map → Heading-eutqOsUb.js.map} +1 -1
  19. package/dist/cjs/Input-DtBuyBDE.js +4 -0
  20. package/dist/cjs/{Input-B5i_1a7W.js.map → Input-DtBuyBDE.js.map} +1 -1
  21. package/dist/cjs/{InputStateWrapper-xtqqc1vC.js → InputStateWrapper-DVe-caWD.js} +1 -1
  22. package/dist/cjs/{InputStateWrapper-xtqqc1vC.js.map → InputStateWrapper-DVe-caWD.js.map} +1 -1
  23. package/dist/cjs/{app-globals-DVEVPuuO.js → app-globals-BjwGQk4H.js} +1 -1
  24. package/dist/cjs/{app-globals-DVEVPuuO.js.map → app-globals-BjwGQk4H.js.map} +1 -1
  25. package/dist/cjs/{associated.controller-CWsCf1nv.js → associated.controller-DmDwjGKd.js} +1 -1
  26. package/dist/cjs/{associated.controller-CWsCf1nv.js.map → associated.controller-DmDwjGKd.js.map} +1 -1
  27. package/dist/cjs/base-web-component-B9aGMyyU.js +4 -0
  28. package/dist/cjs/base-web-component-B9aGMyyU.js.map +1 -0
  29. package/dist/cjs/{bootstrap-CT2-lyBv.js → bootstrap-DDTG6qkT.js} +1 -1
  30. package/dist/cjs/{bootstrap-CT2-lyBv.js.map → bootstrap-DDTG6qkT.js.map} +1 -1
  31. package/dist/cjs/{component-BsaPD_xm.js → component-BTsFDJQd.js} +1 -1
  32. package/dist/cjs/{component-BsaPD_xm.js.map → component-BTsFDJQd.js.map} +1 -1
  33. package/dist/cjs/{component-g902nOgi.js → component-DoyTOLUJ.js} +1 -1
  34. package/dist/cjs/{component-g902nOgi.js.map → component-DoyTOLUJ.js.map} +1 -1
  35. package/dist/cjs/component-names-5aGrrIj9.js +4 -0
  36. package/dist/cjs/component-names-5aGrrIj9.js.map +1 -0
  37. package/dist/cjs/{controller-Btq8uSY3.js → controller-BhoKLrIq.js} +1 -1
  38. package/dist/cjs/{controller-Btq8uSY3.js.map → controller-BhoKLrIq.js.map} +1 -1
  39. package/dist/cjs/{controller-CkP5MO7F.js → controller-C8Z6GzRG.js} +1 -1
  40. package/dist/cjs/{controller-CkP5MO7F.js.map → controller-C8Z6GzRG.js.map} +1 -1
  41. package/dist/cjs/{controller-DFIu7HVA.js → controller-CsN2zb60.js} +1 -1
  42. package/dist/cjs/{controller-DFIu7HVA.js.map → controller-CsN2zb60.js.map} +1 -1
  43. package/dist/cjs/{controller-ChTDDlUI.js → controller-OnvNhQhj.js} +1 -1
  44. package/dist/cjs/{controller-ChTDDlUI.js.map → controller-OnvNhQhj.js.map} +1 -1
  45. package/dist/cjs/{controller-icon-ClEpzUUk.js → controller-icon-vu1iNrNh.js} +1 -1
  46. package/dist/cjs/controller-icon-vu1iNrNh.js.map +1 -0
  47. package/dist/cjs/{controller-Cuu9WuW7.js → controller-m7TFBG7Y.js} +1 -1
  48. package/dist/cjs/{controller-Cuu9WuW7.js.map → controller-m7TFBG7Y.js.map} +1 -1
  49. package/dist/cjs/{dev.utils-OOR6uYvl.js → dev.utils-BIh2Re9I.js} +1 -1
  50. package/dist/cjs/{dev.utils-OOR6uYvl.js.map → dev.utils-BIh2Re9I.js.map} +1 -1
  51. package/dist/cjs/{devtools-Crg6PzgP.js → devtools-Bs_e2B7S.js} +1 -1
  52. package/dist/cjs/{devtools-Crg6PzgP.js.map → devtools-Bs_e2B7S.js.map} +1 -1
  53. package/dist/cjs/element-focus-WQBz86oY.js +4 -0
  54. package/dist/cjs/element-focus-WQBz86oY.js.map +1 -0
  55. package/dist/{esm/index-C-7ueFeG.js → cjs/index-DiJqlVls.js} +1 -1
  56. package/dist/cjs/{index-DMu8_ik9.js.map → index-DiJqlVls.js.map} +1 -1
  57. package/dist/cjs/index.cjs.js +1 -1
  58. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  59. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  60. package/dist/cjs/kol-accordion.entry.cjs.js.map +1 -1
  61. package/dist/cjs/kol-alert-wc.cjs.entry.js +1 -1
  62. package/dist/cjs/kol-alert-wc.entry.cjs.js.map +1 -1
  63. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  64. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  65. package/dist/cjs/kol-avatar.entry.cjs.js.map +1 -1
  66. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  67. package/dist/cjs/kol-badge.entry.cjs.js.map +1 -1
  68. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  69. package/dist/cjs/kol-breadcrumb.entry.cjs.js.map +1 -1
  70. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  71. package/dist/cjs/kol-button-link.entry.cjs.js.map +1 -1
  72. package/dist/cjs/kol-button-wc.cjs.entry.js +1 -1
  73. package/dist/cjs/kol-button-wc.entry.cjs.js.map +1 -1
  74. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  75. package/dist/cjs/kol-button.entry.cjs.js.map +1 -1
  76. package/dist/cjs/kol-card-wc.cjs.entry.js +1 -1
  77. package/dist/cjs/kol-card-wc.entry.cjs.js.map +1 -1
  78. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  79. package/dist/cjs/kol-card.entry.cjs.js.map +1 -1
  80. package/dist/cjs/kol-click-button.cjs.entry.js +1 -1
  81. package/dist/cjs/kol-click-button.entry.cjs.js.map +1 -1
  82. package/dist/cjs/kol-combobox.cjs.entry.js +1 -1
  83. package/dist/cjs/kol-combobox.entry.cjs.js.map +1 -1
  84. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-details.entry.cjs.js.map +1 -1
  86. package/dist/cjs/kol-dialog-wc.cjs.entry.js +1 -1
  87. package/dist/cjs/kol-dialog.cjs.entry.js +1 -1
  88. package/dist/cjs/kol-dialog.entry.cjs.js.map +1 -1
  89. package/dist/cjs/kol-drawer.cjs.entry.js +1 -1
  90. package/dist/cjs/kol-drawer.entry.cjs.js.map +1 -1
  91. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  92. package/dist/cjs/kol-form.entry.cjs.js.map +1 -1
  93. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  94. package/dist/cjs/kol-heading.entry.cjs.js.map +1 -1
  95. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  96. package/dist/cjs/kol-icon.entry.cjs.js.map +1 -1
  97. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  98. package/dist/cjs/kol-image.entry.cjs.js.map +1 -1
  99. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  100. package/dist/cjs/kol-input-checkbox.entry.cjs.js.map +1 -1
  101. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  102. package/dist/cjs/kol-input-color.entry.cjs.js.map +1 -1
  103. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  104. package/dist/cjs/kol-input-date.entry.cjs.js.map +1 -1
  105. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  106. package/dist/cjs/kol-input-email.entry.cjs.js.map +1 -1
  107. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  108. package/dist/cjs/kol-input-file.entry.cjs.js.map +1 -1
  109. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  110. package/dist/cjs/kol-input-number.entry.cjs.js.map +1 -1
  111. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-input-password.entry.cjs.js.map +1 -1
  113. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  114. package/dist/cjs/kol-input-radio.entry.cjs.js.map +1 -1
  115. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  116. package/dist/cjs/kol-input-range.entry.cjs.js.map +1 -1
  117. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  118. package/dist/cjs/kol-input-text.entry.cjs.js.map +1 -1
  119. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  120. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  121. package/dist/cjs/kol-link-button.entry.cjs.js.map +1 -1
  122. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  123. package/dist/cjs/kol-link-wc.entry.cjs.js.map +1 -1
  124. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  125. package/dist/cjs/kol-link.entry.cjs.js.map +1 -1
  126. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  127. package/dist/cjs/kol-modal.entry.cjs.js.map +1 -1
  128. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  129. package/dist/cjs/kol-pagination-wc.cjs.entry.js +1 -1
  130. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  131. package/dist/cjs/kol-pagination.entry.cjs.js.map +1 -1
  132. package/dist/cjs/kol-popover-button-wc.cjs.entry.js +1 -1
  133. package/dist/cjs/kol-popover-button-wc.entry.cjs.js.map +1 -1
  134. package/dist/cjs/kol-popover-button.cjs.entry.js +1 -1
  135. package/dist/cjs/kol-popover-button.entry.cjs.js.map +1 -1
  136. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  137. package/dist/cjs/kol-progress.entry.cjs.js.map +1 -1
  138. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  139. package/dist/cjs/kol-quote.entry.cjs.js.map +1 -1
  140. package/dist/cjs/kol-select-wc.cjs.entry.js +1 -1
  141. package/dist/cjs/kol-select-wc.entry.cjs.js.map +1 -1
  142. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  143. package/dist/cjs/kol-select.entry.cjs.js.map +1 -1
  144. package/dist/cjs/kol-single-select.cjs.entry.js +1 -1
  145. package/dist/cjs/kol-single-select.entry.cjs.js.map +1 -1
  146. package/dist/cjs/kol-skeleton.cjs.entry.js +1 -1
  147. package/dist/cjs/kol-skeleton.entry.cjs.js.map +1 -1
  148. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  149. package/dist/cjs/kol-skip-nav.entry.cjs.js.map +1 -1
  150. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  151. package/dist/cjs/kol-spin.entry.cjs.js.map +1 -1
  152. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  153. package/dist/cjs/kol-split-button.entry.cjs.js.map +1 -1
  154. package/dist/cjs/kol-table-settings-wc.cjs.entry.js +1 -1
  155. package/dist/cjs/kol-table-stateful.cjs.entry.js +1 -1
  156. package/dist/cjs/kol-table-stateful.entry.cjs.js.map +1 -1
  157. package/dist/cjs/kol-table-stateless-wc.cjs.entry.js +1 -1
  158. package/dist/cjs/kol-table-stateless-wc.entry.cjs.js.map +1 -1
  159. package/dist/cjs/kol-table-stateless.cjs.entry.js +1 -1
  160. package/dist/cjs/kol-table-stateless.entry.cjs.js.map +1 -1
  161. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  162. package/dist/cjs/kol-tabs.entry.cjs.js.map +1 -1
  163. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  164. package/dist/cjs/kol-textarea.entry.cjs.js.map +1 -1
  165. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  166. package/dist/cjs/kol-toolbar.cjs.entry.js +1 -1
  167. package/dist/cjs/kol-toolbar.entry.cjs.js.map +1 -1
  168. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +1 -1
  169. package/dist/cjs/kol-tooltip-wc.entry.cjs.js.map +1 -1
  170. package/dist/cjs/kol-tree-item-wc.cjs.entry.js +1 -1
  171. package/dist/cjs/kol-tree-item-wc.entry.cjs.js.map +1 -1
  172. package/dist/cjs/kol-tree-item.cjs.entry.js +1 -1
  173. package/dist/cjs/kol-tree-item.entry.cjs.js.map +1 -1
  174. package/dist/cjs/kol-tree-wc.cjs.entry.js +1 -1
  175. package/dist/cjs/kol-tree-wc.entry.cjs.js.map +1 -1
  176. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  177. package/dist/cjs/kol-tree.entry.cjs.js.map +1 -1
  178. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  179. package/dist/cjs/kolibri.cjs.js +1 -1
  180. package/dist/cjs/label-BF7V8pKT.js +4 -0
  181. package/dist/cjs/{label-B_UDbK0o.js.map → label-BF7V8pKT.js.map} +1 -1
  182. package/dist/cjs/label-DBPPhxGb.js +4 -0
  183. package/dist/cjs/label-DBPPhxGb.js.map +1 -0
  184. package/dist/cjs/level-Cx2QUciw.js +4 -0
  185. package/dist/cjs/level-Cx2QUciw.js.map +1 -0
  186. package/dist/cjs/loader.cjs.js +1 -1
  187. package/dist/cjs/normalizers-CAkJKmom.js +4 -0
  188. package/dist/{kolibri/base-web-component-CWGkWR9Y.js.map → cjs/normalizers-CAkJKmom.js.map} +1 -1
  189. package/dist/cjs/src-DRDt5ioI.js +4 -0
  190. package/dist/cjs/{src-Ck6dV61v.js.map → src-DRDt5ioI.js.map} +1 -1
  191. package/dist/cjs/test-component.cjs.entry.js +1 -1
  192. package/dist/cjs/validation-BGCidVNn.js +4 -0
  193. package/dist/cjs/validation-BGCidVNn.js.map +1 -0
  194. package/dist/components/base-web-component.js +1 -1
  195. package/dist/components/base-web-component.js.map +1 -1
  196. package/dist/components/component-names.js +1 -1
  197. package/dist/components/component-names.js.map +1 -1
  198. package/dist/components/component.js +1 -1
  199. package/dist/components/component.js.map +1 -1
  200. package/dist/components/controller3.js +1 -1
  201. package/dist/components/controller3.js.map +1 -1
  202. package/dist/components/controller4.js +1 -1
  203. package/dist/components/element-focus.js +4 -0
  204. package/dist/components/element-focus.js.map +1 -0
  205. package/dist/components/kol-abbr.js +1 -1
  206. package/dist/components/kol-accordion.js +1 -1
  207. package/dist/components/kol-accordion.js.map +1 -1
  208. package/dist/components/kol-alert-wc.js +1 -1
  209. package/dist/components/kol-alert-wc.js.map +1 -1
  210. package/dist/components/kol-alert.js +1 -1
  211. package/dist/components/kol-avatar.js +1 -1
  212. package/dist/components/kol-avatar.js.map +1 -1
  213. package/dist/components/kol-badge.js +1 -1
  214. package/dist/components/kol-badge.js.map +1 -1
  215. package/dist/components/kol-breadcrumb.js +1 -1
  216. package/dist/components/kol-breadcrumb.js.map +1 -1
  217. package/dist/components/kol-button-link.js +1 -1
  218. package/dist/components/kol-button-link.js.map +1 -1
  219. package/dist/components/kol-button-wc.js +1 -1
  220. package/dist/components/kol-button-wc.js.map +1 -1
  221. package/dist/components/kol-button.js +1 -1
  222. package/dist/components/kol-button.js.map +1 -1
  223. package/dist/components/kol-card-wc.js +1 -1
  224. package/dist/components/kol-card.js +1 -1
  225. package/dist/components/kol-card.js.map +1 -1
  226. package/dist/components/kol-click-button.js +1 -1
  227. package/dist/components/kol-combobox.js +1 -1
  228. package/dist/components/kol-combobox.js.map +1 -1
  229. package/dist/components/kol-details.js +1 -1
  230. package/dist/components/kol-details.js.map +1 -1
  231. package/dist/components/kol-dialog.js +1 -1
  232. package/dist/components/kol-dialog.js.map +1 -1
  233. package/dist/components/kol-drawer.js +1 -1
  234. package/dist/components/kol-drawer.js.map +1 -1
  235. package/dist/components/kol-form.js +1 -1
  236. package/dist/components/kol-form.js.map +1 -1
  237. package/dist/components/kol-heading.js +1 -1
  238. package/dist/components/kol-heading.js.map +1 -1
  239. package/dist/components/kol-icon.js +1 -1
  240. package/dist/components/kol-icon.js.map +1 -1
  241. package/dist/components/kol-image.js +1 -1
  242. package/dist/components/kol-image.js.map +1 -1
  243. package/dist/components/kol-input-checkbox.js +1 -1
  244. package/dist/components/kol-input-checkbox.js.map +1 -1
  245. package/dist/components/kol-input-color.js +1 -1
  246. package/dist/components/kol-input-color.js.map +1 -1
  247. package/dist/components/kol-input-date.js +1 -1
  248. package/dist/components/kol-input-date.js.map +1 -1
  249. package/dist/components/kol-input-email.js +1 -1
  250. package/dist/components/kol-input-email.js.map +1 -1
  251. package/dist/components/kol-input-file.js +1 -1
  252. package/dist/components/kol-input-file.js.map +1 -1
  253. package/dist/components/kol-input-number.js +1 -1
  254. package/dist/components/kol-input-number.js.map +1 -1
  255. package/dist/components/kol-input-password.js +1 -1
  256. package/dist/components/kol-input-password.js.map +1 -1
  257. package/dist/components/kol-input-radio.js +1 -1
  258. package/dist/components/kol-input-radio.js.map +1 -1
  259. package/dist/components/kol-input-range.js +1 -1
  260. package/dist/components/kol-input-range.js.map +1 -1
  261. package/dist/components/kol-input-text.js +1 -1
  262. package/dist/components/kol-input-text.js.map +1 -1
  263. package/dist/components/kol-link-button.js +1 -1
  264. package/dist/components/kol-link-button.js.map +1 -1
  265. package/dist/components/kol-link-wc.js +1 -1
  266. package/dist/components/kol-link-wc.js.map +1 -1
  267. package/dist/components/kol-link.js +1 -1
  268. package/dist/components/kol-link.js.map +1 -1
  269. package/dist/components/kol-modal.js +1 -1
  270. package/dist/components/kol-modal.js.map +1 -1
  271. package/dist/components/kol-nav.js +1 -1
  272. package/dist/components/kol-pagination.js +1 -1
  273. package/dist/components/kol-pagination.js.map +1 -1
  274. package/dist/components/kol-popover-button-wc.js +1 -1
  275. package/dist/components/kol-popover-button-wc.js.map +1 -1
  276. package/dist/components/kol-popover-button.js +1 -1
  277. package/dist/components/kol-popover-button.js.map +1 -1
  278. package/dist/components/kol-progress.js +1 -1
  279. package/dist/components/kol-progress.js.map +1 -1
  280. package/dist/components/kol-quote.js +1 -1
  281. package/dist/components/kol-quote.js.map +1 -1
  282. package/dist/components/kol-select-wc.js +1 -1
  283. package/dist/components/kol-select-wc.js.map +1 -1
  284. package/dist/components/kol-select.js +1 -1
  285. package/dist/components/kol-select.js.map +1 -1
  286. package/dist/components/kol-single-select.js +1 -1
  287. package/dist/components/kol-single-select.js.map +1 -1
  288. package/dist/components/kol-skeleton.js +1 -1
  289. package/dist/components/kol-skeleton.js.map +1 -1
  290. package/dist/components/kol-skip-nav.js +1 -1
  291. package/dist/components/kol-skip-nav.js.map +1 -1
  292. package/dist/components/kol-spin.js +1 -1
  293. package/dist/components/kol-spin.js.map +1 -1
  294. package/dist/components/kol-split-button.js +1 -1
  295. package/dist/components/kol-split-button.js.map +1 -1
  296. package/dist/components/kol-table-settings-wc.js +1 -1
  297. package/dist/components/kol-table-stateful.js +1 -1
  298. package/dist/components/kol-table-stateful.js.map +1 -1
  299. package/dist/components/kol-table-stateless-wc.js +1 -1
  300. package/dist/components/kol-table-stateless-wc.js.map +1 -1
  301. package/dist/components/kol-table-stateless.js +1 -1
  302. package/dist/components/kol-table-stateless.js.map +1 -1
  303. package/dist/components/kol-tabs.js +1 -1
  304. package/dist/components/kol-tabs.js.map +1 -1
  305. package/dist/components/kol-textarea.js +1 -1
  306. package/dist/components/kol-textarea.js.map +1 -1
  307. package/dist/components/kol-toast-container.js +1 -1
  308. package/dist/components/kol-toolbar.js +1 -1
  309. package/dist/components/kol-toolbar.js.map +1 -1
  310. package/dist/components/kol-tooltip-wc.js +1 -1
  311. package/dist/components/kol-tooltip-wc.js.map +1 -1
  312. package/dist/components/kol-tree-item-wc.js +1 -1
  313. package/dist/components/kol-tree-item-wc.js.map +1 -1
  314. package/dist/components/kol-tree-item.js +1 -1
  315. package/dist/components/kol-tree-item.js.map +1 -1
  316. package/dist/components/kol-tree-wc.js +1 -1
  317. package/dist/components/kol-tree-wc.js.map +1 -1
  318. package/dist/components/kol-tree.js +1 -1
  319. package/dist/components/kol-tree.js.map +1 -1
  320. package/dist/components/kol-version.js +1 -1
  321. package/dist/components/label.js +1 -1
  322. package/dist/components/label.js.map +1 -1
  323. package/dist/components/label2.js +1 -1
  324. package/dist/components/level.js +4 -0
  325. package/dist/components/level.js.map +1 -0
  326. package/dist/components/normalizers.js +4 -0
  327. package/dist/components/normalizers.js.map +1 -0
  328. package/dist/components/src.js +1 -1
  329. package/dist/components/validation.js +1 -1
  330. package/dist/components/validation.js.map +1 -1
  331. package/dist/esm/{Alert-SEfIw75e.js → Alert-CORQhEOH.js} +1 -1
  332. package/dist/{kolibri/Alert-SEfIw75e.js.map → esm/Alert-CORQhEOH.js.map} +1 -1
  333. package/dist/esm/{Collapsible-BJmhBOFS.js → Collapsible-DABtrDt0.js} +1 -1
  334. package/dist/esm/{Collapsible-BJmhBOFS.js.map → Collapsible-DABtrDt0.js.map} +1 -1
  335. package/dist/esm/{CustomSuggestionsOptionsGroup-BLcy0M21.js → CustomSuggestionsOptionsGroup-z6yUfEq6.js} +1 -1
  336. package/dist/{kolibri/CustomSuggestionsOptionsGroup-BLcy0M21.js.map → esm/CustomSuggestionsOptionsGroup-z6yUfEq6.js.map} +1 -1
  337. package/dist/esm/{FieldControlStateWrapper-BB5w_l7S.js → FieldControlStateWrapper-Hw33niBe.js} +1 -1
  338. package/dist/{kolibri/FieldControlStateWrapper-BB5w_l7S.js.map → esm/FieldControlStateWrapper-Hw33niBe.js.map} +1 -1
  339. package/dist/esm/FormFieldStateWrapper-CMzIS3jo.js +4 -0
  340. package/dist/esm/FormFieldStateWrapper-CMzIS3jo.js.map +1 -0
  341. package/dist/esm/{Heading-CC-ueMZ4.js → Heading-DGA0Cfz4.js} +1 -1
  342. package/dist/esm/{Heading-CC-ueMZ4.js.map → Heading-DGA0Cfz4.js.map} +1 -1
  343. package/dist/esm/{Input-DITvkoGT.js → Input-CPh4PbnE.js} +1 -1
  344. package/dist/esm/{Input-DITvkoGT.js.map → Input-CPh4PbnE.js.map} +1 -1
  345. package/dist/esm/{InputStateWrapper-DnMUPWkd.js → InputStateWrapper-BpDvZdjV.js} +1 -1
  346. package/dist/{kolibri/InputStateWrapper-DnMUPWkd.js.map → esm/InputStateWrapper-BpDvZdjV.js.map} +1 -1
  347. package/dist/esm/{app-globals-BZVRuPmn.js → app-globals-CAX7ftHp.js} +1 -1
  348. package/dist/esm/{app-globals-BZVRuPmn.js.map → app-globals-CAX7ftHp.js.map} +1 -1
  349. package/dist/esm/{associated.controller-DCpxG_66.js → associated.controller-DKliwG01.js} +1 -1
  350. package/dist/esm/{associated.controller-DCpxG_66.js.map → associated.controller-DKliwG01.js.map} +1 -1
  351. package/dist/esm/base-web-component-CjUKwppg.js +4 -0
  352. package/dist/esm/base-web-component-CjUKwppg.js.map +1 -0
  353. package/dist/esm/{bootstrap-CyhVeeHa.js → bootstrap-7FNy-lUW.js} +1 -1
  354. package/dist/esm/{bootstrap-CyhVeeHa.js.map → bootstrap-7FNy-lUW.js.map} +1 -1
  355. package/dist/esm/{component-CraT9mqx.js → component-DAA4D_2G.js} +1 -1
  356. package/dist/esm/{component-CraT9mqx.js.map → component-DAA4D_2G.js.map} +1 -1
  357. package/dist/esm/{component-Hu7IB74c.js → component-Y0CenpG-.js} +1 -1
  358. package/dist/esm/{component-Hu7IB74c.js.map → component-Y0CenpG-.js.map} +1 -1
  359. package/dist/esm/component-names-C64MXeC1.js +4 -0
  360. package/dist/esm/component-names-C64MXeC1.js.map +1 -0
  361. package/dist/esm/{controller-D2K5zD5B.js → controller-BShVWk74.js} +1 -1
  362. package/dist/{kolibri/controller-D2K5zD5B.js.map → esm/controller-BShVWk74.js.map} +1 -1
  363. package/dist/esm/{controller-nDa_fsDo.js → controller-BZMujBp5.js} +1 -1
  364. package/dist/esm/{controller-nDa_fsDo.js.map → controller-BZMujBp5.js.map} +1 -1
  365. package/dist/esm/{controller-_xUb5o7B.js → controller-Cu00AgMb.js} +1 -1
  366. package/dist/{kolibri/controller-_xUb5o7B.js.map → esm/controller-Cu00AgMb.js.map} +1 -1
  367. package/dist/esm/{controller-D-JlwVeq.js → controller-DiBOXIb0.js} +1 -1
  368. package/dist/{kolibri/controller-D-JlwVeq.js.map → esm/controller-DiBOXIb0.js.map} +1 -1
  369. package/dist/esm/{controller-BycnRnHB.js → controller-DnEjIj63.js} +1 -1
  370. package/dist/esm/{controller-BycnRnHB.js.map → controller-DnEjIj63.js.map} +1 -1
  371. package/dist/esm/{controller-icon-CtBWDrG3.js → controller-icon-vljOlbY1.js} +1 -1
  372. package/dist/{kolibri/controller-icon-CtBWDrG3.js.map → esm/controller-icon-vljOlbY1.js.map} +1 -1
  373. package/dist/esm/{dev.utils-_tIxkFEq.js → dev.utils-IjSA8j2T.js} +1 -1
  374. package/dist/esm/{dev.utils-_tIxkFEq.js.map → dev.utils-IjSA8j2T.js.map} +1 -1
  375. package/dist/esm/{devtools-Shxsg0kz.js → devtools-C-hJnUOY.js} +1 -1
  376. package/dist/esm/{devtools-Shxsg0kz.js.map → devtools-C-hJnUOY.js.map} +1 -1
  377. package/dist/esm/element-focus-y2O-Z32P.js +4 -0
  378. package/dist/esm/element-focus-y2O-Z32P.js.map +1 -0
  379. package/dist/esm/index-B-M3er72.js +4 -0
  380. package/dist/{kolibri/index-C-7ueFeG.js.map → esm/index-B-M3er72.js.map} +1 -1
  381. package/dist/esm/index.js +1 -1
  382. package/dist/esm/kol-abbr.entry.js +1 -1
  383. package/dist/esm/kol-accordion.entry.js +1 -1
  384. package/dist/esm/kol-accordion.entry.js.map +1 -1
  385. package/dist/esm/kol-alert-wc.entry.js +1 -1
  386. package/dist/esm/kol-alert-wc.entry.js.map +1 -1
  387. package/dist/esm/kol-alert.entry.js +1 -1
  388. package/dist/esm/kol-avatar.entry.js +1 -1
  389. package/dist/esm/kol-avatar.entry.js.map +1 -1
  390. package/dist/esm/kol-badge.entry.js +1 -1
  391. package/dist/esm/kol-badge.entry.js.map +1 -1
  392. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  393. package/dist/esm/kol-breadcrumb.entry.js.map +1 -1
  394. package/dist/esm/kol-button-link.entry.js +1 -1
  395. package/dist/esm/kol-button-link.entry.js.map +1 -1
  396. package/dist/esm/kol-button-wc.entry.js +1 -1
  397. package/dist/esm/kol-button-wc.entry.js.map +1 -1
  398. package/dist/esm/kol-button.entry.js +1 -1
  399. package/dist/esm/kol-button.entry.js.map +1 -1
  400. package/dist/esm/kol-card-wc.entry.js +1 -1
  401. package/dist/esm/kol-card-wc.entry.js.map +1 -1
  402. package/dist/esm/kol-card.entry.js +1 -1
  403. package/dist/esm/kol-card.entry.js.map +1 -1
  404. package/dist/esm/kol-click-button.entry.js +1 -1
  405. package/dist/esm/kol-click-button.entry.js.map +1 -1
  406. package/dist/esm/kol-combobox.entry.js +1 -1
  407. package/dist/esm/kol-combobox.entry.js.map +1 -1
  408. package/dist/esm/kol-details.entry.js +1 -1
  409. package/dist/esm/kol-details.entry.js.map +1 -1
  410. package/dist/esm/kol-dialog-wc.entry.js +1 -1
  411. package/dist/esm/kol-dialog.entry.js +1 -1
  412. package/dist/esm/kol-dialog.entry.js.map +1 -1
  413. package/dist/esm/kol-drawer.entry.js +1 -1
  414. package/dist/esm/kol-drawer.entry.js.map +1 -1
  415. package/dist/esm/kol-form.entry.js +1 -1
  416. package/dist/esm/kol-form.entry.js.map +1 -1
  417. package/dist/esm/kol-heading.entry.js +1 -1
  418. package/dist/esm/kol-heading.entry.js.map +1 -1
  419. package/dist/esm/kol-icon.entry.js +1 -1
  420. package/dist/esm/kol-icon.entry.js.map +1 -1
  421. package/dist/esm/kol-image.entry.js +1 -1
  422. package/dist/esm/kol-image.entry.js.map +1 -1
  423. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  424. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  425. package/dist/esm/kol-input-color.entry.js +1 -1
  426. package/dist/esm/kol-input-color.entry.js.map +1 -1
  427. package/dist/esm/kol-input-date.entry.js +1 -1
  428. package/dist/esm/kol-input-date.entry.js.map +1 -1
  429. package/dist/esm/kol-input-email.entry.js +1 -1
  430. package/dist/esm/kol-input-email.entry.js.map +1 -1
  431. package/dist/esm/kol-input-file.entry.js +1 -1
  432. package/dist/esm/kol-input-file.entry.js.map +1 -1
  433. package/dist/esm/kol-input-number.entry.js +1 -1
  434. package/dist/esm/kol-input-number.entry.js.map +1 -1
  435. package/dist/esm/kol-input-password.entry.js +1 -1
  436. package/dist/esm/kol-input-password.entry.js.map +1 -1
  437. package/dist/esm/kol-input-radio.entry.js +1 -1
  438. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  439. package/dist/esm/kol-input-range.entry.js +1 -1
  440. package/dist/esm/kol-input-range.entry.js.map +1 -1
  441. package/dist/esm/kol-input-text.entry.js +1 -1
  442. package/dist/esm/kol-input-text.entry.js.map +1 -1
  443. package/dist/esm/kol-kolibri.entry.js +1 -1
  444. package/dist/esm/kol-link-button.entry.js +1 -1
  445. package/dist/esm/kol-link-button.entry.js.map +1 -1
  446. package/dist/esm/kol-link-wc.entry.js +1 -1
  447. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  448. package/dist/esm/kol-link.entry.js +1 -1
  449. package/dist/esm/kol-link.entry.js.map +1 -1
  450. package/dist/esm/kol-modal.entry.js +1 -1
  451. package/dist/esm/kol-modal.entry.js.map +1 -1
  452. package/dist/esm/kol-nav.entry.js +1 -1
  453. package/dist/esm/kol-pagination-wc.entry.js +1 -1
  454. package/dist/esm/kol-pagination.entry.js +1 -1
  455. package/dist/esm/kol-pagination.entry.js.map +1 -1
  456. package/dist/esm/kol-popover-button-wc.entry.js +1 -1
  457. package/dist/esm/kol-popover-button-wc.entry.js.map +1 -1
  458. package/dist/esm/kol-popover-button.entry.js +1 -1
  459. package/dist/esm/kol-popover-button.entry.js.map +1 -1
  460. package/dist/esm/kol-progress.entry.js +1 -1
  461. package/dist/esm/kol-progress.entry.js.map +1 -1
  462. package/dist/esm/kol-quote.entry.js +1 -1
  463. package/dist/esm/kol-quote.entry.js.map +1 -1
  464. package/dist/esm/kol-select-wc.entry.js +1 -1
  465. package/dist/esm/kol-select-wc.entry.js.map +1 -1
  466. package/dist/esm/kol-select.entry.js +1 -1
  467. package/dist/esm/kol-select.entry.js.map +1 -1
  468. package/dist/esm/kol-single-select.entry.js +1 -1
  469. package/dist/esm/kol-single-select.entry.js.map +1 -1
  470. package/dist/esm/kol-skeleton.entry.js +1 -1
  471. package/dist/esm/kol-skeleton.entry.js.map +1 -1
  472. package/dist/esm/kol-skip-nav.entry.js +1 -1
  473. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  474. package/dist/esm/kol-spin.entry.js +1 -1
  475. package/dist/esm/kol-spin.entry.js.map +1 -1
  476. package/dist/esm/kol-split-button.entry.js +1 -1
  477. package/dist/esm/kol-split-button.entry.js.map +1 -1
  478. package/dist/esm/kol-table-settings-wc.entry.js +1 -1
  479. package/dist/esm/kol-table-stateful.entry.js +1 -1
  480. package/dist/esm/kol-table-stateful.entry.js.map +1 -1
  481. package/dist/esm/kol-table-stateless-wc.entry.js +1 -1
  482. package/dist/esm/kol-table-stateless-wc.entry.js.map +1 -1
  483. package/dist/esm/kol-table-stateless.entry.js +1 -1
  484. package/dist/esm/kol-table-stateless.entry.js.map +1 -1
  485. package/dist/esm/kol-tabs.entry.js +1 -1
  486. package/dist/esm/kol-tabs.entry.js.map +1 -1
  487. package/dist/esm/kol-textarea.entry.js +1 -1
  488. package/dist/esm/kol-textarea.entry.js.map +1 -1
  489. package/dist/esm/kol-toast-container.entry.js +1 -1
  490. package/dist/esm/kol-toolbar.entry.js +1 -1
  491. package/dist/esm/kol-toolbar.entry.js.map +1 -1
  492. package/dist/esm/kol-tooltip-wc.entry.js +1 -1
  493. package/dist/esm/kol-tooltip-wc.entry.js.map +1 -1
  494. package/dist/esm/kol-tree-item-wc.entry.js +1 -1
  495. package/dist/esm/kol-tree-item-wc.entry.js.map +1 -1
  496. package/dist/esm/kol-tree-item.entry.js +1 -1
  497. package/dist/esm/kol-tree-item.entry.js.map +1 -1
  498. package/dist/esm/kol-tree-wc.entry.js +1 -1
  499. package/dist/esm/kol-tree-wc.entry.js.map +1 -1
  500. package/dist/esm/kol-tree.entry.js +1 -1
  501. package/dist/esm/kol-tree.entry.js.map +1 -1
  502. package/dist/esm/kol-version.entry.js +1 -1
  503. package/dist/esm/kolibri.js +1 -1
  504. package/dist/esm/label-BGZcz8ue.js +4 -0
  505. package/dist/esm/{label-YA4_eF9_.js.map → label-BGZcz8ue.js.map} +1 -1
  506. package/dist/esm/label-Cw7rCjUo.js +4 -0
  507. package/dist/esm/label-Cw7rCjUo.js.map +1 -0
  508. package/dist/esm/level-C5jpNYbv.js +4 -0
  509. package/dist/esm/level-C5jpNYbv.js.map +1 -0
  510. package/dist/esm/loader.js +1 -1
  511. package/dist/esm/{base-web-component-CWGkWR9Y.js → normalizers-MuBx2xIG.js} +1 -1
  512. package/dist/esm/{base-web-component-CWGkWR9Y.js.map → normalizers-MuBx2xIG.js.map} +1 -1
  513. package/dist/esm/src-BqFarDZ1.js +4 -0
  514. package/dist/esm/{src-BDjVUE1s.js.map → src-BqFarDZ1.js.map} +1 -1
  515. package/dist/esm/test-component.entry.js +1 -1
  516. package/dist/esm/validation-s-zBxvaI.js +4 -0
  517. package/dist/esm/validation-s-zBxvaI.js.map +1 -0
  518. package/dist/kolibri/{Alert-SEfIw75e.js → Alert-CORQhEOH.js} +1 -1
  519. package/dist/{esm/Alert-SEfIw75e.js.map → kolibri/Alert-CORQhEOH.js.map} +1 -1
  520. package/dist/kolibri/Collapsible-DABtrDt0.js +4 -0
  521. package/dist/kolibri/{Collapsible-BJmhBOFS.js.map → Collapsible-DABtrDt0.js.map} +1 -1
  522. package/dist/kolibri/CustomSuggestionsOptionsGroup-z6yUfEq6.js +4 -0
  523. package/dist/{esm/CustomSuggestionsOptionsGroup-BLcy0M21.js.map → kolibri/CustomSuggestionsOptionsGroup-z6yUfEq6.js.map} +1 -1
  524. package/dist/kolibri/FieldControlStateWrapper-Hw33niBe.js +4 -0
  525. package/dist/{esm/FieldControlStateWrapper-BB5w_l7S.js.map → kolibri/FieldControlStateWrapper-Hw33niBe.js.map} +1 -1
  526. package/dist/kolibri/FormFieldStateWrapper-CMzIS3jo.js +4 -0
  527. package/dist/kolibri/FormFieldStateWrapper-CMzIS3jo.js.map +1 -0
  528. package/dist/kolibri/Heading-DGA0Cfz4.js +4 -0
  529. package/dist/kolibri/{Heading-CC-ueMZ4.js.map → Heading-DGA0Cfz4.js.map} +1 -1
  530. package/dist/kolibri/Input-CPh4PbnE.js +4 -0
  531. package/dist/kolibri/{Input-DITvkoGT.js.map → Input-CPh4PbnE.js.map} +1 -1
  532. package/dist/kolibri/{InputStateWrapper-DnMUPWkd.js → InputStateWrapper-BpDvZdjV.js} +1 -1
  533. package/dist/{esm/InputStateWrapper-DnMUPWkd.js.map → kolibri/InputStateWrapper-BpDvZdjV.js.map} +1 -1
  534. package/dist/kolibri/app-globals-CAX7ftHp.js +4 -0
  535. package/dist/kolibri/{app-globals-BZVRuPmn.js.map → app-globals-CAX7ftHp.js.map} +1 -1
  536. package/dist/kolibri/{associated.controller-DCpxG_66.js → associated.controller-DKliwG01.js} +1 -1
  537. package/dist/kolibri/{associated.controller-DCpxG_66.js.map → associated.controller-DKliwG01.js.map} +1 -1
  538. package/dist/kolibri/base-web-component-CjUKwppg.js +4 -0
  539. package/dist/kolibri/base-web-component-CjUKwppg.js.map +1 -0
  540. package/dist/kolibri/{bootstrap-CyhVeeHa.js → bootstrap-7FNy-lUW.js} +1 -1
  541. package/dist/kolibri/{bootstrap-CyhVeeHa.js.map → bootstrap-7FNy-lUW.js.map} +1 -1
  542. package/dist/kolibri/component-DAA4D_2G.js +4 -0
  543. package/dist/kolibri/{component-CraT9mqx.js.map → component-DAA4D_2G.js.map} +1 -1
  544. package/dist/kolibri/{component-Hu7IB74c.js → component-Y0CenpG-.js} +1 -1
  545. package/dist/kolibri/{component-Hu7IB74c.js.map → component-Y0CenpG-.js.map} +1 -1
  546. package/dist/kolibri/component-names-C64MXeC1.js +4 -0
  547. package/dist/kolibri/component-names-C64MXeC1.js.map +1 -0
  548. package/dist/kolibri/{controller-D2K5zD5B.js → controller-BShVWk74.js} +1 -1
  549. package/dist/{esm/controller-D2K5zD5B.js.map → kolibri/controller-BShVWk74.js.map} +1 -1
  550. package/dist/kolibri/{controller-nDa_fsDo.js → controller-BZMujBp5.js} +1 -1
  551. package/dist/kolibri/{controller-nDa_fsDo.js.map → controller-BZMujBp5.js.map} +1 -1
  552. package/dist/kolibri/{controller-_xUb5o7B.js → controller-Cu00AgMb.js} +1 -1
  553. package/dist/{esm/controller-_xUb5o7B.js.map → kolibri/controller-Cu00AgMb.js.map} +1 -1
  554. package/dist/kolibri/{controller-D-JlwVeq.js → controller-DiBOXIb0.js} +1 -1
  555. package/dist/{esm/controller-D-JlwVeq.js.map → kolibri/controller-DiBOXIb0.js.map} +1 -1
  556. package/dist/kolibri/{controller-BycnRnHB.js → controller-DnEjIj63.js} +1 -1
  557. package/dist/kolibri/{controller-BycnRnHB.js.map → controller-DnEjIj63.js.map} +1 -1
  558. package/dist/kolibri/controller-icon-vljOlbY1.js +4 -0
  559. package/dist/{esm/controller-icon-CtBWDrG3.js.map → kolibri/controller-icon-vljOlbY1.js.map} +1 -1
  560. package/dist/kolibri/{dev.utils-_tIxkFEq.js → dev.utils-IjSA8j2T.js} +1 -1
  561. package/dist/kolibri/{dev.utils-_tIxkFEq.js.map → dev.utils-IjSA8j2T.js.map} +1 -1
  562. package/dist/kolibri/devtools-C-hJnUOY.js +4 -0
  563. package/dist/kolibri/{devtools-Shxsg0kz.js.map → devtools-C-hJnUOY.js.map} +1 -1
  564. package/dist/kolibri/element-focus-y2O-Z32P.js +4 -0
  565. package/dist/kolibri/element-focus-y2O-Z32P.js.map +1 -0
  566. package/dist/kolibri/{index-C-7ueFeG.js → index-B-M3er72.js} +1 -1
  567. package/dist/{esm/index-C-7ueFeG.js.map → kolibri/index-B-M3er72.js.map} +1 -1
  568. package/dist/kolibri/index.esm.js +1 -1
  569. package/dist/kolibri/kol-abbr.entry.js +1 -1
  570. package/dist/kolibri/kol-accordion.entry.esm.js.map +1 -1
  571. package/dist/kolibri/kol-accordion.entry.js +1 -1
  572. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  573. package/dist/kolibri/kol-alert-wc.entry.esm.js.map +1 -1
  574. package/dist/kolibri/kol-alert-wc.entry.js +1 -1
  575. package/dist/kolibri/kol-alert-wc.entry.js.map +1 -1
  576. package/dist/kolibri/kol-alert.entry.js +1 -1
  577. package/dist/kolibri/kol-avatar.entry.esm.js.map +1 -1
  578. package/dist/kolibri/kol-avatar.entry.js +1 -1
  579. package/dist/kolibri/kol-avatar.entry.js.map +1 -1
  580. package/dist/kolibri/kol-badge.entry.esm.js.map +1 -1
  581. package/dist/kolibri/kol-badge.entry.js +1 -1
  582. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  583. package/dist/kolibri/kol-breadcrumb.entry.esm.js.map +1 -1
  584. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  585. package/dist/kolibri/kol-breadcrumb.entry.js.map +1 -1
  586. package/dist/kolibri/kol-button-link.entry.esm.js.map +1 -1
  587. package/dist/kolibri/kol-button-link.entry.js +1 -1
  588. package/dist/kolibri/kol-button-link.entry.js.map +1 -1
  589. package/dist/kolibri/kol-button-wc.entry.esm.js.map +1 -1
  590. package/dist/kolibri/kol-button-wc.entry.js +1 -1
  591. package/dist/kolibri/kol-button-wc.entry.js.map +1 -1
  592. package/dist/kolibri/kol-button.entry.esm.js.map +1 -1
  593. package/dist/kolibri/kol-button.entry.js +1 -1
  594. package/dist/kolibri/kol-button.entry.js.map +1 -1
  595. package/dist/kolibri/kol-card-wc.entry.esm.js.map +1 -1
  596. package/dist/kolibri/kol-card-wc.entry.js +1 -1
  597. package/dist/kolibri/kol-card-wc.entry.js.map +1 -1
  598. package/dist/kolibri/kol-card.entry.esm.js.map +1 -1
  599. package/dist/kolibri/kol-card.entry.js +1 -1
  600. package/dist/kolibri/kol-card.entry.js.map +1 -1
  601. package/dist/kolibri/kol-click-button.entry.esm.js.map +1 -1
  602. package/dist/kolibri/kol-click-button.entry.js +1 -1
  603. package/dist/kolibri/kol-click-button.entry.js.map +1 -1
  604. package/dist/kolibri/kol-combobox.entry.esm.js.map +1 -1
  605. package/dist/kolibri/kol-combobox.entry.js +1 -1
  606. package/dist/kolibri/kol-combobox.entry.js.map +1 -1
  607. package/dist/kolibri/kol-details.entry.esm.js.map +1 -1
  608. package/dist/kolibri/kol-details.entry.js +1 -1
  609. package/dist/kolibri/kol-details.entry.js.map +1 -1
  610. package/dist/kolibri/kol-dialog-wc.entry.js +1 -1
  611. package/dist/kolibri/kol-dialog.entry.esm.js.map +1 -1
  612. package/dist/kolibri/kol-dialog.entry.js +1 -1
  613. package/dist/kolibri/kol-dialog.entry.js.map +1 -1
  614. package/dist/kolibri/kol-drawer.entry.esm.js.map +1 -1
  615. package/dist/kolibri/kol-drawer.entry.js +1 -1
  616. package/dist/kolibri/kol-drawer.entry.js.map +1 -1
  617. package/dist/kolibri/kol-form.entry.esm.js.map +1 -1
  618. package/dist/kolibri/kol-form.entry.js +1 -1
  619. package/dist/kolibri/kol-form.entry.js.map +1 -1
  620. package/dist/kolibri/kol-heading.entry.esm.js.map +1 -1
  621. package/dist/kolibri/kol-heading.entry.js +1 -1
  622. package/dist/kolibri/kol-heading.entry.js.map +1 -1
  623. package/dist/kolibri/kol-icon.entry.esm.js.map +1 -1
  624. package/dist/kolibri/kol-icon.entry.js +1 -1
  625. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  626. package/dist/kolibri/kol-image.entry.esm.js.map +1 -1
  627. package/dist/kolibri/kol-image.entry.js +1 -1
  628. package/dist/kolibri/kol-image.entry.js.map +1 -1
  629. package/dist/kolibri/kol-input-checkbox.entry.esm.js.map +1 -1
  630. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  631. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  632. package/dist/kolibri/kol-input-color.entry.esm.js.map +1 -1
  633. package/dist/kolibri/kol-input-color.entry.js +1 -1
  634. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  635. package/dist/kolibri/kol-input-date.entry.esm.js.map +1 -1
  636. package/dist/kolibri/kol-input-date.entry.js +1 -1
  637. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  638. package/dist/kolibri/kol-input-email.entry.esm.js.map +1 -1
  639. package/dist/kolibri/kol-input-email.entry.js +1 -1
  640. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  641. package/dist/kolibri/kol-input-file.entry.esm.js.map +1 -1
  642. package/dist/kolibri/kol-input-file.entry.js +1 -1
  643. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  644. package/dist/kolibri/kol-input-number.entry.esm.js.map +1 -1
  645. package/dist/kolibri/kol-input-number.entry.js +1 -1
  646. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  647. package/dist/kolibri/kol-input-password.entry.esm.js.map +1 -1
  648. package/dist/kolibri/kol-input-password.entry.js +1 -1
  649. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  650. package/dist/kolibri/kol-input-radio.entry.esm.js.map +1 -1
  651. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  652. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  653. package/dist/kolibri/kol-input-range.entry.esm.js.map +1 -1
  654. package/dist/kolibri/kol-input-range.entry.js +1 -1
  655. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  656. package/dist/kolibri/kol-input-text.entry.esm.js.map +1 -1
  657. package/dist/kolibri/kol-input-text.entry.js +1 -1
  658. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  659. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  660. package/dist/kolibri/kol-link-button.entry.esm.js.map +1 -1
  661. package/dist/kolibri/kol-link-button.entry.js +1 -1
  662. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  663. package/dist/kolibri/kol-link-wc.entry.esm.js.map +1 -1
  664. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  665. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  666. package/dist/kolibri/kol-link.entry.esm.js.map +1 -1
  667. package/dist/kolibri/kol-link.entry.js +1 -1
  668. package/dist/kolibri/kol-link.entry.js.map +1 -1
  669. package/dist/kolibri/kol-modal.entry.esm.js.map +1 -1
  670. package/dist/kolibri/kol-modal.entry.js +1 -1
  671. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  672. package/dist/kolibri/kol-nav.entry.js +1 -1
  673. package/dist/kolibri/kol-pagination-wc.entry.js +1 -1
  674. package/dist/kolibri/kol-pagination.entry.esm.js.map +1 -1
  675. package/dist/kolibri/kol-pagination.entry.js +1 -1
  676. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  677. package/dist/kolibri/kol-popover-button-wc.entry.esm.js.map +1 -1
  678. package/dist/kolibri/kol-popover-button-wc.entry.js +1 -1
  679. package/dist/kolibri/kol-popover-button-wc.entry.js.map +1 -1
  680. package/dist/kolibri/kol-popover-button.entry.esm.js.map +1 -1
  681. package/dist/kolibri/kol-popover-button.entry.js +1 -1
  682. package/dist/kolibri/kol-popover-button.entry.js.map +1 -1
  683. package/dist/kolibri/kol-progress.entry.esm.js.map +1 -1
  684. package/dist/kolibri/kol-progress.entry.js +1 -1
  685. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  686. package/dist/kolibri/kol-quote.entry.esm.js.map +1 -1
  687. package/dist/kolibri/kol-quote.entry.js +1 -1
  688. package/dist/kolibri/kol-quote.entry.js.map +1 -1
  689. package/dist/kolibri/kol-select-wc.entry.esm.js.map +1 -1
  690. package/dist/kolibri/kol-select-wc.entry.js +1 -1
  691. package/dist/kolibri/kol-select-wc.entry.js.map +1 -1
  692. package/dist/kolibri/kol-select.entry.esm.js.map +1 -1
  693. package/dist/kolibri/kol-select.entry.js +1 -1
  694. package/dist/kolibri/kol-select.entry.js.map +1 -1
  695. package/dist/kolibri/kol-single-select.entry.esm.js.map +1 -1
  696. package/dist/kolibri/kol-single-select.entry.js +1 -1
  697. package/dist/kolibri/kol-single-select.entry.js.map +1 -1
  698. package/dist/kolibri/kol-skeleton.entry.esm.js.map +1 -1
  699. package/dist/kolibri/kol-skeleton.entry.js +1 -1
  700. package/dist/kolibri/kol-skeleton.entry.js.map +1 -1
  701. package/dist/kolibri/kol-skip-nav.entry.esm.js.map +1 -1
  702. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  703. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  704. package/dist/kolibri/kol-spin.entry.esm.js.map +1 -1
  705. package/dist/kolibri/kol-spin.entry.js +1 -1
  706. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  707. package/dist/kolibri/kol-split-button.entry.esm.js.map +1 -1
  708. package/dist/kolibri/kol-split-button.entry.js +1 -1
  709. package/dist/kolibri/kol-split-button.entry.js.map +1 -1
  710. package/dist/kolibri/kol-table-settings-wc.entry.js +1 -1
  711. package/dist/kolibri/kol-table-stateful.entry.esm.js.map +1 -1
  712. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  713. package/dist/kolibri/kol-table-stateful.entry.js.map +1 -1
  714. package/dist/kolibri/kol-table-stateless-wc.entry.esm.js.map +1 -1
  715. package/dist/kolibri/kol-table-stateless-wc.entry.js +1 -1
  716. package/dist/kolibri/kol-table-stateless-wc.entry.js.map +1 -1
  717. package/dist/kolibri/kol-table-stateless.entry.esm.js.map +1 -1
  718. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  719. package/dist/kolibri/kol-table-stateless.entry.js.map +1 -1
  720. package/dist/kolibri/kol-tabs.entry.esm.js.map +1 -1
  721. package/dist/kolibri/kol-tabs.entry.js +1 -1
  722. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  723. package/dist/kolibri/kol-textarea.entry.esm.js.map +1 -1
  724. package/dist/kolibri/kol-textarea.entry.js +1 -1
  725. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  726. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  727. package/dist/kolibri/kol-toolbar.entry.esm.js.map +1 -1
  728. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  729. package/dist/kolibri/kol-toolbar.entry.js.map +1 -1
  730. package/dist/kolibri/kol-tooltip-wc.entry.esm.js.map +1 -1
  731. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  732. package/dist/kolibri/kol-tree-item-wc.entry.esm.js.map +1 -1
  733. package/dist/kolibri/kol-tree-item-wc.entry.js +1 -1
  734. package/dist/kolibri/kol-tree-item-wc.entry.js.map +1 -1
  735. package/dist/kolibri/kol-tree-item.entry.esm.js.map +1 -1
  736. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  737. package/dist/kolibri/kol-tree-item.entry.js.map +1 -1
  738. package/dist/kolibri/kol-tree-wc.entry.esm.js.map +1 -1
  739. package/dist/kolibri/kol-tree-wc.entry.js +1 -1
  740. package/dist/kolibri/kol-tree-wc.entry.js.map +1 -1
  741. package/dist/kolibri/kol-tree.entry.esm.js.map +1 -1
  742. package/dist/kolibri/kol-tree.entry.js +1 -1
  743. package/dist/kolibri/kol-tree.entry.js.map +1 -1
  744. package/dist/kolibri/kol-version.entry.js +1 -1
  745. package/dist/kolibri/kolibri.esm.js +1 -1
  746. package/dist/kolibri/label-BGZcz8ue.js +4 -0
  747. package/dist/kolibri/{label-YA4_eF9_.js.map → label-BGZcz8ue.js.map} +1 -1
  748. package/dist/kolibri/label-Cw7rCjUo.js +4 -0
  749. package/dist/kolibri/label-Cw7rCjUo.js.map +1 -0
  750. package/dist/kolibri/level-C5jpNYbv.js +4 -0
  751. package/dist/kolibri/level-C5jpNYbv.js.map +1 -0
  752. package/dist/kolibri/normalizers-MuBx2xIG.js +4 -0
  753. package/dist/{cjs/base-web-component-CTeSR5h4.js.map → kolibri/normalizers-MuBx2xIG.js.map} +1 -1
  754. package/dist/kolibri/src-BqFarDZ1.js +4 -0
  755. package/dist/kolibri/{src-BDjVUE1s.js.map → src-BqFarDZ1.js.map} +1 -1
  756. package/dist/kolibri/test-component.entry.js +1 -1
  757. package/dist/kolibri/validation-s-zBxvaI.js +4 -0
  758. package/dist/kolibri/validation-s-zBxvaI.js.map +1 -0
  759. package/dist/types/components/accordion/shadow.d.ts +2 -2
  760. package/dist/types/components/badge/shadow.d.ts +2 -1
  761. package/dist/types/components/button/component.d.ts +2 -0
  762. package/dist/types/components/button/shadow.d.ts +3 -2
  763. package/dist/types/components/button-link/shadow.d.ts +3 -2
  764. package/dist/types/components/combobox/shadow.d.ts +3 -3
  765. package/dist/types/components/component-list.d.ts +17 -2
  766. package/dist/types/components/details/shadow.d.ts +2 -2
  767. package/dist/types/components/heading/component.d.ts +16 -0
  768. package/dist/types/components/heading/validation.d.ts +1 -1
  769. package/dist/types/components/input-checkbox/shadow.d.ts +1 -1
  770. package/dist/types/components/input-color/shadow.d.ts +2 -2
  771. package/dist/types/components/input-date/shadow.d.ts +1 -1
  772. package/dist/types/components/input-email/shadow.d.ts +1 -1
  773. package/dist/types/components/input-file/shadow.d.ts +1 -1
  774. package/dist/types/components/input-number/shadow.d.ts +1 -1
  775. package/dist/types/components/input-password/shadow.d.ts +1 -1
  776. package/dist/types/components/input-radio/shadow.d.ts +2 -2
  777. package/dist/types/components/input-range/shadow.d.ts +2 -2
  778. package/dist/types/components/input-text/shadow.d.ts +1 -1
  779. package/dist/types/components/link/component.d.ts +2 -1
  780. package/dist/types/components/link/shadow.d.ts +3 -2
  781. package/dist/types/components/link-button/shadow.d.ts +3 -2
  782. package/dist/types/components/popover-button/component.d.ts +10 -11
  783. package/dist/types/components/popover-button/shadow.d.ts +5 -4
  784. package/dist/types/components/select/component.d.ts +1 -1
  785. package/dist/types/components/select/shadow.d.ts +3 -2
  786. package/dist/types/components/single-select/shadow.d.ts +3 -3
  787. package/dist/types/components/skip-nav/shadow.d.ts +4 -3
  788. package/dist/types/components/split-button/shadow.d.ts +8 -7
  789. package/dist/types/components/table-stateless/component.d.ts +1 -1
  790. package/dist/types/components/tabs/shadow.d.ts +5 -2
  791. package/dist/types/components/textarea/shadow.d.ts +1 -1
  792. package/dist/types/components/toolbar/shadow.d.ts +4 -3
  793. package/dist/types/components/tooltip/component.d.ts +1 -1
  794. package/dist/types/components/tree/component.d.ts +11 -4
  795. package/dist/types/components/tree/shadow.d.ts +6 -2
  796. package/dist/types/components/tree-item/component.d.ts +3 -2
  797. package/dist/types/components.d.ts +86 -89
  798. package/dist/types/core/component-names.d.ts +0 -1
  799. package/dist/types/internal/functional-components/heading/api.d.ts +6 -0
  800. package/dist/types/internal/functional-components/heading/component.d.ts +4 -0
  801. package/dist/types/internal/functional-components/heading/controller.d.ts +10 -0
  802. package/dist/types/internal/functional-components/popover/api.d.ts +5 -0
  803. package/dist/types/internal/functional-components/popover/component.d.ts +9 -0
  804. package/dist/types/internal/functional-components/popover/controller.d.ts +16 -0
  805. package/dist/types/internal/functional-components/popover/snapshot.test.d.ts +1 -0
  806. package/dist/types/internal/props/align.d.ts +4 -0
  807. package/dist/types/internal/props/index.d.ts +1 -1
  808. package/dist/types/internal/props/label-with-expert-slot.d.ts +3 -0
  809. package/dist/types/internal/props/level.d.ts +5 -0
  810. package/dist/types/internal/props/secondary-headline.d.ts +3 -0
  811. package/dist/types/schema/components/index.d.ts +1 -1
  812. package/dist/types/schema/props/index.d.ts +1 -1
  813. package/dist/types/schema/props/label.d.ts +0 -2
  814. package/dist/types/utils/element-focus.d.ts +2 -0
  815. package/doc/accordion.md +2 -2
  816. package/doc/button-link.md +2 -2
  817. package/doc/button.md +2 -2
  818. package/doc/details.md +2 -2
  819. package/doc/heading.md +3 -7
  820. package/doc/link-button.md +2 -2
  821. package/doc/link.md +2 -2
  822. package/doc/popover-button.md +11 -5
  823. package/doc/select.md +2 -2
  824. package/doc/skip-nav.md +2 -2
  825. package/doc/split-button.md +2 -2
  826. package/doc/tabs.md +13 -0
  827. package/doc/toolbar.md +13 -0
  828. package/doc/tree.md +13 -0
  829. package/package.json +5 -5
  830. package/vscode-custom-data.json +2 -2
  831. package/dist/cjs/FormFieldStateWrapper-C8Tav05H.js +0 -4
  832. package/dist/cjs/FormFieldStateWrapper-C8Tav05H.js.map +0 -1
  833. package/dist/cjs/Input-B5i_1a7W.js +0 -4
  834. package/dist/cjs/base-web-component-CTeSR5h4.js +0 -4
  835. package/dist/cjs/component-names--SvI3zRN.js +0 -4
  836. package/dist/cjs/component-names--SvI3zRN.js.map +0 -1
  837. package/dist/cjs/controller-icon-ClEpzUUk.js.map +0 -1
  838. package/dist/cjs/index-DMu8_ik9.js +0 -4
  839. package/dist/cjs/kol-popover-wc.cjs.entry.js +0 -4
  840. package/dist/cjs/kol-popover-wc.entry.cjs.js.map +0 -1
  841. package/dist/cjs/label-B_UDbK0o.js +0 -4
  842. package/dist/cjs/label-CU8lZiLE.js +0 -4
  843. package/dist/cjs/label-CU8lZiLE.js.map +0 -1
  844. package/dist/cjs/show-CCRUsfNF.js +0 -4
  845. package/dist/cjs/show-CCRUsfNF.js.map +0 -1
  846. package/dist/cjs/src-Ck6dV61v.js +0 -4
  847. package/dist/cjs/validation-30k-K_lm.js +0 -4
  848. package/dist/cjs/validation-30k-K_lm.js.map +0 -1
  849. package/dist/components/kol-popover-wc.d.ts +0 -11
  850. package/dist/components/kol-popover-wc.js +0 -4
  851. package/dist/components/kol-popover-wc.js.map +0 -1
  852. package/dist/components/show.js +0 -4
  853. package/dist/components/show.js.map +0 -1
  854. package/dist/esm/FormFieldStateWrapper-CgJ3zrOg.js +0 -4
  855. package/dist/esm/FormFieldStateWrapper-CgJ3zrOg.js.map +0 -1
  856. package/dist/esm/component-names-BQrMLr68.js +0 -4
  857. package/dist/esm/component-names-BQrMLr68.js.map +0 -1
  858. package/dist/esm/kol-popover-wc.entry.js +0 -4
  859. package/dist/esm/kol-popover-wc.entry.js.map +0 -1
  860. package/dist/esm/label-C18ud7Yt.js +0 -4
  861. package/dist/esm/label-C18ud7Yt.js.map +0 -1
  862. package/dist/esm/label-YA4_eF9_.js +0 -4
  863. package/dist/esm/show-DWCKSt29.js +0 -4
  864. package/dist/esm/show-DWCKSt29.js.map +0 -1
  865. package/dist/esm/src-BDjVUE1s.js +0 -4
  866. package/dist/esm/validation-QdERp-08.js +0 -4
  867. package/dist/esm/validation-QdERp-08.js.map +0 -1
  868. package/dist/kolibri/Collapsible-BJmhBOFS.js +0 -4
  869. package/dist/kolibri/CustomSuggestionsOptionsGroup-BLcy0M21.js +0 -4
  870. package/dist/kolibri/FieldControlStateWrapper-BB5w_l7S.js +0 -4
  871. package/dist/kolibri/FormFieldStateWrapper-CgJ3zrOg.js +0 -4
  872. package/dist/kolibri/FormFieldStateWrapper-CgJ3zrOg.js.map +0 -1
  873. package/dist/kolibri/Heading-CC-ueMZ4.js +0 -4
  874. package/dist/kolibri/Input-DITvkoGT.js +0 -4
  875. package/dist/kolibri/app-globals-BZVRuPmn.js +0 -4
  876. package/dist/kolibri/base-web-component-CWGkWR9Y.js +0 -4
  877. package/dist/kolibri/component-CraT9mqx.js +0 -4
  878. package/dist/kolibri/component-names-BQrMLr68.js +0 -4
  879. package/dist/kolibri/component-names-BQrMLr68.js.map +0 -1
  880. package/dist/kolibri/controller-icon-CtBWDrG3.js +0 -4
  881. package/dist/kolibri/devtools-Shxsg0kz.js +0 -4
  882. package/dist/kolibri/kol-popover-wc.entry.esm.js.map +0 -1
  883. package/dist/kolibri/kol-popover-wc.entry.js +0 -4
  884. package/dist/kolibri/kol-popover-wc.entry.js.map +0 -1
  885. package/dist/kolibri/label-C18ud7Yt.js +0 -4
  886. package/dist/kolibri/label-C18ud7Yt.js.map +0 -1
  887. package/dist/kolibri/label-YA4_eF9_.js +0 -4
  888. package/dist/kolibri/show-DWCKSt29.js +0 -4
  889. package/dist/kolibri/show-DWCKSt29.js.map +0 -1
  890. package/dist/kolibri/src-BDjVUE1s.js +0 -4
  891. package/dist/kolibri/validation-QdERp-08.js +0 -4
  892. package/dist/kolibri/validation-QdERp-08.js.map +0 -1
  893. package/dist/types/components/heading/shadow.d.ts +0 -13
  894. package/dist/types/components/popover/component.d.ts +0 -33
  895. package/dist/types/schema/components/popover.d.ts +0 -12
  896. package/dist/types/schema/props/level.d.ts +0 -7
  897. package/dist/types/schema/props/popover-callbacks.d.ts +0 -11
@@ -1 +1 @@
1
- {"file":"kol-tree-item-wc.js","mappings":"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","names":["KolTreeItemWc","__stencil_proxyCustomElement"],"sources":["src/schema/props/active.ts","src/components/tree-item/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchBooleanOptions } from '../utils';\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type ActivePropType = boolean;\n\n/**\n * Defines whether something is active.\n */\nexport type PropActive = {\n\tactive: ActivePropType;\n};\n\n/* validator */\nexport const validateActive = (component: Generic.Element.Component, value: ActivePropType, options?: WatchBooleanOptions): void => {\n\twatchBoolean(component, '_active', value, options);\n};\n","import { Component, Element, h, Host, type JSX, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { KolLinkWcTag, KolTreeTag } from '../../core/component-names';\nimport { IconFC } from '../../internal/functional-components/icon/component';\nimport type { ActivePropType, HrefPropType, LabelPropType, OpenPropType, TreeItemAPI, TreeItemStates } from '../../schema';\nimport { validateActive, validateHref, validateLabel, validateOpen } from '../../schema';\nimport clsx from '../../utils/clsx';\nimport { nonce } from '../../utils/dev.utils';\n\n/**\n * @internal\n */\n@Component({\n\ttag: `kol-tree-item-wc`,\n\tshadow: false,\n})\nexport class KolTreeItemWc implements TreeItemAPI {\n\tprivate linkElement?: HTMLKolLinkWcElement;\n\tprivate groupId = `tree-group-${nonce()}`;\n\n\t@State() private level?: number;\n\t@Element() host!: HTMLElement;\n\n\tpublic render(): JSX.Element {\n\t\tconst { _href, _active, _hasChildren, _open, _label } = this.state;\n\t\treturn (\n\t\t\t<Host onSlotchange={this.handleSlotchange.bind(this)}>\n\t\t\t\t<li\n\t\t\t\t\tclass=\"kol-tree-item\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t'--level': `${this.level}`,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<KolLinkWcTag\n\t\t\t\t\t\tclass={clsx('kol-tree-item__link', {\n\t\t\t\t\t\t\t'kol-tree-item__link--first-level': this.level === 0,\n\t\t\t\t\t\t\t'kol-tree-item__link--active': _active,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t_href={_href}\n\t\t\t\t\t\t_label=\"\"\n\t\t\t\t\t\t_role=\"treeitem\"\n\t\t\t\t\t\t_tabIndex={_active ? 0 : -1}\n\t\t\t\t\t\t_ariaExpanded={_hasChildren ? _open : undefined}\n\t\t\t\t\t\t_ariaOwns={_hasChildren ? this.groupId : undefined}\n\t\t\t\t\t\tref={(element?: HTMLKolLinkWcElement) => (this.linkElement = element!)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"kol-tree-item__link-inner\" slot=\"expert\">\n\t\t\t\t\t\t\t{_hasChildren ? (\n\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"kol-tree-item__toggle-button\"\n\t\t\t\t\t\t\t\t\tonClick={(event) => (_open ? void this.handleCollapseClick(event) : void this.handleExpandClick(event))}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<IconFC\n\t\t\t\t\t\t\t\t\t\tclass=\"kol-tree-item__toggle-button-icon\"\n\t\t\t\t\t\t\t\t\t\ticons={`kolicon kolicon-${_open ? 'chevron-down' : 'chevron-right'}`}\n\t\t\t\t\t\t\t\t\t\tlabel={'' /* Label deliberately left empty */}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span class=\"kol-tree-item__toggle-button-placeholder\"></span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<span class=\"kol-tree-item__text\">{_label}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</KolLinkWcTag>\n\t\t\t\t\t<ul class=\"kol-tree-item__children\" hidden={!_hasChildren || !_open} role=\"group\" id={this.groupId}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@State() public state: TreeItemStates = {\n\t\t_active: false,\n\t\t_hasChildren: false,\n\t\t_href: '',\n\t\t_label: '',\n\t\t_open: false,\n\t};\n\n\t/**\n\t * If set (to true) the tree item is the active one.\n\t */\n\t@Prop() _active?: OpenPropType;\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() _label!: LabelPropType;\n\n\t/**\n\t * Opens/expands the element when truthy, closes/collapses when falsy.\n\t */\n\t@Prop() _open?: OpenPropType;\n\n\t/**\n\t * Defines the target URI of the link.\n\t */\n\t@Prop() _href!: HrefPropType;\n\n\t@Watch('_active') validateActive(value?: ActivePropType): void {\n\t\tvalidateActive(this, value || false);\n\t}\n\n\t@Watch('_label') validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t@Watch('_open') validateOpen(value?: OpenPropType): void {\n\t\tvalidateOpen(this, value);\n\t}\n\n\t@Watch('_href') validateHref(value?: HrefPropType): void {\n\t\tvalidateHref(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateActive(this._active);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOpen(this._open);\n\t\tthis.validateHref(this._href);\n\n\t\tthis.checkForChildren();\n\t\tthis.determineTreeItemDepth();\n\t}\n\n\tprivate determineTreeItemDepth() {\n\t\tlet level = 0;\n\t\tlet traverseItem: HTMLElement | null = (this.host.parentNode as unknown as ShadowRoot).host.parentNode as HTMLElement;\n\t\twhile (traverseItem !== null && traverseItem.tagName.toLowerCase() !== KolTreeTag && traverseItem !== document.body) {\n\t\t\ttraverseItem = traverseItem.parentElement;\n\t\t\tlevel += 1;\n\t\t}\n\t\tthis.level = level;\n\t}\n\n\tprivate handleSlotchange() {\n\t\tthis.checkForChildren();\n\t}\n\n\tprivate checkForChildren() {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_hasChildren: Boolean(this.host.querySelector('slot')?.assignedElements?.().length),\n\t\t};\n\t}\n\n\t/**\n\t * Focuses the link element.\n\t */\n\t@Method() async focus() {\n\t\treturn Promise.resolve(this.linkElement?.focus());\n\t}\n\n\tprivate async handleExpandClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t\tawait this.linkElement?.focus();\n\t\tawait this.expand();\n\t}\n\n\t/**\n\t * Expands the tree item.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async expand() {\n\t\tif (this.state._hasChildren) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_open: true,\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async handleCollapseClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t\tawait this.linkElement?.focus();\n\t\tawait this.collapse();\n\t}\n\n\t/**\n\t * Collapses the tree item.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async collapse() {\n\t\tif (this.state._hasChildren) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_open: false,\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Returns whether the tree item is expanded.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async isOpen() {\n\t\treturn this.state._open ?? false;\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-tree-item-wc.js","mappings":"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","names":["KolTreeItemWc","__stencil_proxyCustomElement"],"sources":["src/schema/props/active.ts","src/components/tree-item/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchBooleanOptions } from '../utils';\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type ActivePropType = boolean;\n\n/**\n * Defines whether something is active.\n */\nexport type PropActive = {\n\tactive: ActivePropType;\n};\n\n/* validator */\nexport const validateActive = (component: Generic.Element.Component, value: ActivePropType, options?: WatchBooleanOptions): void => {\n\twatchBoolean(component, '_active', value, options);\n};\n","import { Component, Element, h, Host, type JSX, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { KolLinkWcTag, KolTreeTag } from '../../core/component-names';\nimport { IconFC } from '../../internal/functional-components/icon/component';\nimport type { ActivePropType, HrefPropType, LabelPropType, OpenPropType, TreeItemAPI, TreeItemStates } from '../../schema';\nimport { validateActive, validateHref, validateLabel, validateOpen } from '../../schema';\nimport clsx from '../../utils/clsx';\nimport { nonce } from '../../utils/dev.utils';\n\n/**\n * @internal\n */\n@Component({\n\ttag: `kol-tree-item-wc`,\n\tshadow: false,\n})\nexport class KolTreeItemWc implements TreeItemAPI {\n\t@Element() private readonly host?: HTMLKolTreeItemWcElement;\n\n\tprivate linkElement?: HTMLKolLinkWcElement;\n\tprivate groupId = `tree-group-${nonce()}`;\n\n\t@State() private level?: number;\n\n\tpublic render(): JSX.Element {\n\t\tconst { _href, _active, _hasChildren, _open, _label } = this.state;\n\t\treturn (\n\t\t\t<Host onSlotchange={this.handleSlotchange.bind(this)}>\n\t\t\t\t<li\n\t\t\t\t\tclass=\"kol-tree-item\"\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t'--level': `${this.level}`,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<KolLinkWcTag\n\t\t\t\t\t\tclass={clsx('kol-tree-item__link', {\n\t\t\t\t\t\t\t'kol-tree-item__link--first-level': this.level === 0,\n\t\t\t\t\t\t\t'kol-tree-item__link--active': _active,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t_href={_href}\n\t\t\t\t\t\t_label=\"\"\n\t\t\t\t\t\t_role=\"treeitem\"\n\t\t\t\t\t\t_tabIndex={_active ? 0 : -1}\n\t\t\t\t\t\t_ariaExpanded={_hasChildren ? _open : undefined}\n\t\t\t\t\t\t_ariaOwns={_hasChildren ? this.groupId : undefined}\n\t\t\t\t\t\tref={(element?: HTMLKolLinkWcElement) => (this.linkElement = element!)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"kol-tree-item__link-inner\" slot=\"expert\">\n\t\t\t\t\t\t\t{_hasChildren ? (\n\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"kol-tree-item__toggle-button\"\n\t\t\t\t\t\t\t\t\tonClick={(event) => (_open ? void this.handleCollapseClick(event) : void this.handleExpandClick(event))}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<IconFC\n\t\t\t\t\t\t\t\t\t\tclass=\"kol-tree-item__toggle-button-icon\"\n\t\t\t\t\t\t\t\t\t\ticons={`kolicon kolicon-${_open ? 'chevron-down' : 'chevron-right'}`}\n\t\t\t\t\t\t\t\t\t\tlabel={'' /* Label deliberately left empty */}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<span class=\"kol-tree-item__toggle-button-placeholder\"></span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<span class=\"kol-tree-item__text\">{_label}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</KolLinkWcTag>\n\t\t\t\t\t<ul class=\"kol-tree-item__children\" hidden={!_hasChildren || !_open} role=\"group\" id={this.groupId}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@State() public state: TreeItemStates = {\n\t\t_active: false,\n\t\t_hasChildren: false,\n\t\t_href: '',\n\t\t_label: '',\n\t\t_open: false,\n\t};\n\n\t/**\n\t * If set (to true) the tree item is the active one.\n\t */\n\t@Prop() _active?: OpenPropType;\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() _label!: LabelPropType;\n\n\t/**\n\t * Opens/expands the element when truthy, closes/collapses when falsy.\n\t */\n\t@Prop() _open?: OpenPropType;\n\n\t/**\n\t * Defines the target URI of the link.\n\t */\n\t@Prop() _href!: HrefPropType;\n\n\t@Watch('_active') validateActive(value?: ActivePropType): void {\n\t\tvalidateActive(this, value || false);\n\t}\n\n\t@Watch('_label') validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t@Watch('_open') validateOpen(value?: OpenPropType): void {\n\t\tvalidateOpen(this, value);\n\t}\n\n\t@Watch('_href') validateHref(value?: HrefPropType): void {\n\t\tvalidateHref(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateActive(this._active);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOpen(this._open);\n\t\tthis.validateHref(this._href);\n\n\t\tthis.checkForChildren();\n\t\tthis.determineTreeItemDepth();\n\t}\n\n\tprivate determineTreeItemDepth() {\n\t\tlet level = 0;\n\t\tlet traverseItem: HTMLElement | null = (this.host?.parentNode as unknown as ShadowRoot)?.host.parentNode as HTMLElement;\n\t\twhile (traverseItem !== null && traverseItem.tagName.toLowerCase() !== KolTreeTag && traverseItem !== document.body) {\n\t\t\ttraverseItem = traverseItem.parentElement;\n\t\t\tlevel += 1;\n\t\t}\n\t\tthis.level = level;\n\t}\n\n\tprivate handleSlotchange() {\n\t\tthis.checkForChildren();\n\t}\n\n\tprivate checkForChildren() {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_hasChildren: Boolean(this.host?.querySelector('slot')?.assignedElements?.().length),\n\t\t};\n\t}\n\n\tprivate getTreeParent(): (HTMLKolTreeWcElement & { invalidateOpenItemsCache(): void }) | undefined {\n\t\t// Traverse up through shadow boundaries manually\n\t\tlet element: Element | null | undefined = this.host;\n\t\twhile (element) {\n\t\t\t// Try closest in current DOM tree\n\t\t\tconst parent = element.closest(KolTreeTag);\n\t\t\tif (parent) {\n\t\t\t\t// Found kol-tree (shadow wrapper), now find kol-tree-wc in its shadow DOM\n\t\t\t\tconst treeWc = parent.shadowRoot?.querySelector('kol-tree-wc');\n\t\t\t\tif (treeWc) {\n\t\t\t\t\treturn treeWc as HTMLKolTreeWcElement & { invalidateOpenItemsCache(): void };\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\t// Cross shadow boundary: go to shadow host, then to its parent\n\t\t\tconst shadowHost: Element | undefined = (element.getRootNode() as ShadowRoot)?.host;\n\t\t\tif (!shadowHost || shadowHost === document.body) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telement = shadowHost.parentElement;\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Focuses the link element.\n\t */\n\t@Method() async focus() {\n\t\tif (this.host && this.linkElement) {\n\t\t\treturn Promise.resolve(this.linkElement.focus());\n\t\t}\n\t}\n\n\tprivate async handleExpandClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t\tif (this.host && this.linkElement) {\n\t\t\tawait this.linkElement.focus();\n\t\t}\n\t\tawait this.expand();\n\t}\n\n\t/**\n\t * Expands the tree item.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async expand() {\n\t\tif (this.state._hasChildren) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_open: true,\n\t\t\t};\n\t\t\t// Invalidate the tree's cache of open items\n\t\t\tvoid this.getTreeParent()?.invalidateOpenItemsCache?.();\n\t\t}\n\t}\n\n\tprivate async handleCollapseClick(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t\tif (this.host && this.linkElement) {\n\t\t\tawait this.linkElement.focus();\n\t\t}\n\t\tawait this.collapse();\n\t}\n\n\t/**\n\t * Collapses the tree item.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async collapse() {\n\t\tif (this.state._hasChildren) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_open: false,\n\t\t\t};\n\t\t\t// Invalidate the tree's cache of open items\n\t\t\tvoid this.getTreeParent()?.invalidateOpenItemsCache?.();\n\t\t}\n\t}\n\n\t/**\n\t * Returns whether the tree item is expanded.\n\t */\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async isOpen() {\n\t\treturn this.state._open ?? false;\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}from"@stencil/core/internal/client";import{u as KolTreeItemWcTag}from"./component-names.js";const defaultStyleCss='/* forward the rem function */\n/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type=\'checkbox\'], [type=\'radio\'], [type=\'range\']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}\n@font-face {\n font-family: "kolicons";\n src: url("kolicons.eot?t=1773990435463"); /* IE9*/\n src: url("kolicons.eot?t=1773990435463#iefix") format("embedded-opentype"), url("kolicons.woff2?t=1773990435463") format("woff2"), url("kolicons.woff?t=1773990435463") format("woff"), url("kolicons.ttf?t=1773990435463") format("truetype"), url("kolicons.svg?t=1773990435463#kolicons") format("svg"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=" kolicon-"] {\n font-family: "kolicons";\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: "\\ea01";\n}\n\n.kolicon-alert-info::before {\n content: "\\ea02";\n}\n\n.kolicon-alert-success::before {\n content: "\\ea03";\n}\n\n.kolicon-alert-warning::before {\n content: "\\ea04";\n}\n\n.kolicon-check::before {\n content: "\\ea05";\n}\n\n.kolicon-chevron-double-left::before {\n content: "\\ea06";\n}\n\n.kolicon-chevron-double-right::before {\n content: "\\ea07";\n}\n\n.kolicon-chevron-down::before {\n content: "\\ea08";\n}\n\n.kolicon-chevron-left::before {\n content: "\\ea09";\n}\n\n.kolicon-chevron-right::before {\n content: "\\ea0a";\n}\n\n.kolicon-chevron-up::before {\n content: "\\ea0b";\n}\n\n.kolicon-cogwheel::before {\n content: "\\ea0c";\n}\n\n.kolicon-cross::before {\n content: "\\ea0d";\n}\n\n.kolicon-eye-closed::before {\n content: "\\ea0e";\n}\n\n.kolicon-eye::before {\n content: "\\ea0f";\n}\n\n.kolicon-house::before {\n content: "\\ea10";\n}\n\n.kolicon-kolibri::before {\n content: "\\ea11";\n}\n\n.kolicon-link-external::before {\n content: "\\ea12";\n}\n\n.kolicon-link::before {\n content: "\\ea13";\n}\n\n.kolicon-minus::before {\n content: "\\ea14";\n}\n\n.kolicon-plus::before {\n content: "\\ea15";\n}\n\n.kolicon-settings::before {\n content: "\\ea16";\n}\n\n.kolicon-sort-asc::before {\n content: "\\ea17";\n}\n\n.kolicon-sort-desc::before {\n content: "\\ea18";\n}\n\n.kolicon-sort-neutral::before {\n content: "\\ea19";\n}\n\n.kolicon-up::before {\n content: "\\ea1a";\n}\n\n.kolicon-version::before {\n content: "\\ea1b";\n}\n\n@layer kol-component {\n .kol-icon {\n color: inherit;\n display: inline-block;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n .kol-tree-item {\n --indentation: var(--tree-item-indentation, calc(10 * 1rem / var(--kolibri-root-font-size, 16)));\n }\n .kol-tree-item__link .kol-link {\n display: inline-flex;\n min-height: var(--a11y-min-size);\n padding-right: calc(6 * 1rem / var(--kolibri-root-font-size, 16));\n padding-left: max(var(--indentation) * var(--level) + 8 * 1rem / var(--kolibri-root-font-size, 16), 8 * 1rem / var(--kolibri-root-font-size, 16));\n align-items: center;\n text-decoration: none;\n }\n .kol-tree-item__link--first-level .kol-link {\n padding-left: calc(6 * 1rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tree-item__link-inner {\n display: flex;\n align-items: center;\n }\n .kol-tree-item__children {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .kol-tree-item .kol-span {\n place-items: unset;\n }\n .kol-tree-item__toggle-button, .kol-tree-item__toggle-button-placeholder {\n display: inline-flex;\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n align-items: center;\n justify-content: center;\n }\n .kol-tree-item__text {\n text-decoration: underline;\n }\n}',KolTreeItem$1=proxyCustomElement(class extends HTMLElement{constructor(n){super(),!1!==n&&this.__registerHost(),this.__attachShadow()}async focus(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.focus())}async expand(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.expand())}async collapse(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.collapse())}async isOpen(){var n,e;return null!==(e=await(null===(n=this.element)||void 0===n?void 0:n.isOpen()))&&void 0!==e&&e}render(){return h(KolTreeItemWcTag,{key:"1fd84dd20ebe2a6082b026baa4acc28a5c50ab11",_active:this._active,_label:this._label,_open:this._open,_href:this._href,ref:n=>this.element=n},h("slot",{key:"04feee9cc8420f26d90ae4ad326ae5b18701893d"}))}static get style(){return{default:defaultStyleCss}}},[289,"kol-tree-item",{_active:[4],_label:[1],_open:[4],_href:[1],focus:[64],expand:[64],collapse:[64],isOpen:[64]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree-item"].forEach(n=>{if("kol-tree-item"===n)customElements.get(n)||customElements.define(n,KolTreeItem$1)})}const KolTreeItem=KolTreeItem$1,defineCustomElement=defineCustomElement$1;export{KolTreeItem,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h}from"@stencil/core/internal/client";import{t as KolTreeItemWcTag}from"./component-names.js";const defaultStyleCss='/* forward the rem function */\n/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type=\'checkbox\'], [type=\'radio\'], [type=\'range\']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}\n@font-face {\n font-family: "kolicons";\n src: url("kolicons.eot?t=1774611662986"); /* IE9*/\n src: url("kolicons.eot?t=1774611662986#iefix") format("embedded-opentype"), url("kolicons.woff2?t=1774611662986") format("woff2"), url("kolicons.woff?t=1774611662986") format("woff"), url("kolicons.ttf?t=1774611662986") format("truetype"), url("kolicons.svg?t=1774611662986#kolicons") format("svg"); /* iOS 4.1- */\n}\n[class^=kolicon-], [class*=" kolicon-"] {\n font-family: "kolicons";\n font-style: normal;\n font-weight: 400;\n line-height: 1em;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.kolicon-alert-error::before {\n content: "\\ea01";\n}\n\n.kolicon-alert-info::before {\n content: "\\ea02";\n}\n\n.kolicon-alert-success::before {\n content: "\\ea03";\n}\n\n.kolicon-alert-warning::before {\n content: "\\ea04";\n}\n\n.kolicon-check::before {\n content: "\\ea05";\n}\n\n.kolicon-chevron-double-left::before {\n content: "\\ea06";\n}\n\n.kolicon-chevron-double-right::before {\n content: "\\ea07";\n}\n\n.kolicon-chevron-down::before {\n content: "\\ea08";\n}\n\n.kolicon-chevron-left::before {\n content: "\\ea09";\n}\n\n.kolicon-chevron-right::before {\n content: "\\ea0a";\n}\n\n.kolicon-chevron-up::before {\n content: "\\ea0b";\n}\n\n.kolicon-cogwheel::before {\n content: "\\ea0c";\n}\n\n.kolicon-cross::before {\n content: "\\ea0d";\n}\n\n.kolicon-eye-closed::before {\n content: "\\ea0e";\n}\n\n.kolicon-eye::before {\n content: "\\ea0f";\n}\n\n.kolicon-house::before {\n content: "\\ea10";\n}\n\n.kolicon-kolibri::before {\n content: "\\ea11";\n}\n\n.kolicon-link-external::before {\n content: "\\ea12";\n}\n\n.kolicon-link::before {\n content: "\\ea13";\n}\n\n.kolicon-minus::before {\n content: "\\ea14";\n}\n\n.kolicon-plus::before {\n content: "\\ea15";\n}\n\n.kolicon-settings::before {\n content: "\\ea16";\n}\n\n.kolicon-sort-asc::before {\n content: "\\ea17";\n}\n\n.kolicon-sort-desc::before {\n content: "\\ea18";\n}\n\n.kolicon-sort-neutral::before {\n content: "\\ea19";\n}\n\n.kolicon-up::before {\n content: "\\ea1a";\n}\n\n.kolicon-version::before {\n content: "\\ea1b";\n}\n\n@layer kol-component {\n .kol-icon {\n color: inherit;\n display: inline-block;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n }\n .kol-tree-item__link .kol-link {\n display: inline-flex;\n min-height: var(--a11y-min-size);\n align-items: center;\n text-decoration: none;\n }\n .kol-tree-item__link-inner {\n display: flex;\n align-items: center;\n }\n .kol-tree-item__children {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .kol-tree-item .kol-span {\n place-items: unset;\n }\n .kol-tree-item__toggle-button, .kol-tree-item__toggle-button-placeholder {\n display: inline-flex;\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n align-items: center;\n justify-content: center;\n }\n .kol-tree-item__text {\n text-decoration: underline;\n }\n}',KolTreeItem$1=proxyCustomElement(class extends HTMLElement{constructor(n){super(),!1!==n&&this.__registerHost(),this.__attachShadow()}async focus(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.focus())}async expand(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.expand())}async collapse(){var n;return Promise.resolve(null===(n=this.element)||void 0===n?void 0:n.collapse())}async isOpen(){var n,e;return null!==(e=await(null===(n=this.element)||void 0===n?void 0:n.isOpen()))&&void 0!==e&&e}render(){return h(KolTreeItemWcTag,{key:"69f11891d14df276dfdaf32bdb1ef448eaff6167",_active:this._active,_label:this._label,_open:this._open,_href:this._href,ref:n=>this.element=n},h("slot",{key:"5994ecaba18fe6289827c57745aaaad5d422b855"}))}static get style(){return{default:defaultStyleCss}}},[289,"kol-tree-item",{_active:[4],_label:[1],_open:[4],_href:[1],focus:[64],expand:[64],collapse:[64],isOpen:[64]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree-item"].forEach(n=>{if("kol-tree-item"===n)customElements.get(n)||customElements.define(n,KolTreeItem$1)})}const KolTreeItem=KolTreeItem$1,defineCustomElement=defineCustomElement$1;export{KolTreeItem,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-tree-item.js","mappings":";;;;;;AAAA,MAAM,eAAe,GAAG,+xRAA+xR;;MCY1yRA,aAAW,GAAAC,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;;;;;;;;AA0Bb,IAAA,MAAM,KAAK,GAAA;;AACpB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;;AAMpC,IAAA,MAAM,MAAM,GAAA;;AACrB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,EAAE,CAAC;;AAMrC,IAAA,MAAM,QAAQ,GAAA;;AACvB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;;AAMvC,IAAA,MAAM,MAAM,GAAA;;QACrB,OAAO,CAAA,EAAA,IAAC,OAAM,MAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,EAAE,CAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK;;IAGxC,MAAM,GAAA;AACZ,QAAA,QACC,CAAC,CAAA,gBAAgB,qDAChB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,GAAG,EAAE,CAAC,OAAkC,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAA,EAErE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolTreeItem","__stencil_proxyCustomElement"],"sources":["src/components/tree-item/style.scss?tag=kol-tree-item&mode=default&encapsulation=shadow","src/components/tree-item/shadow.tsx"],"sourcesContent":["@use '../@shared/mixins' as *;\n@use '../@shared/global' as *;\n@use '../@shared/icon.mixin' as *;\n\n@layer kol-component {\n\t@include kol-icon-styles();\n\t$base-horizontal-padding: to-rem(8);\n\n\t.kol-tree-item {\n\t\t--indentation: var(--tree-item-indentation, #{to-rem(10)}); // Set `--tree-item-indentation` in themes to control padding\n\t\t$root: &;\n\n\t\t&__link {\n\t\t\t.kol-link {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmin-height: var(--a11y-min-size);\n\t\t\t\tpadding-right: to-rem(6);\n\t\t\t\tpadding-left: max(calc((var(--indentation) * var(--level)) + $base-horizontal-padding), $base-horizontal-padding);\n\t\t\t\talign-items: center;\n\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\n\t\t\t&--first-level .kol-link {\n\t\t\t\tpadding-left: to-rem(6);\n\t\t\t}\n\t\t}\n\n\t\t&__link-inner {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__children {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tlist-style: none;\n\t\t}\n\n\t\t.kol-span {\n\t\t\tplace-items: unset; // unset 'center' style from global layer\n\t\t}\n\n\t\t&__toggle-button,\n\t\t&__toggle-button-placeholder {\n\t\t\tdisplay: inline-flex;\n\t\t\tmin-width: var(--a11y-min-size);\n\t\t\tmin-height: var(--a11y-min-size);\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t}\n\n\t\t&__text {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n}\n","import { Component, h, type JSX, Method, Prop } from '@stencil/core';\n\nimport { KolTreeItemWcTag } from '../../core/component-names';\nimport type { HrefPropType, LabelPropType, OpenPropType, TreeItemProps } from '../../schema';\n\n@Component({\n\ttag: 'kol-tree-item', // keep in sync with `const TREE_ITEM_TAG_NAME`\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTreeItem implements TreeItemProps {\n\tprivate element?: HTMLKolTreeItemWcElement;\n\n\t/**\n\t * If set (to true) the tree item is the active one.\n\t */\n\t@Prop() _active?: OpenPropType;\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() _label!: LabelPropType;\n\n\t/**\n\t * Opens/expands the element when truthy, closes/collapses when falsy.\n\t */\n\t@Prop() _open?: OpenPropType;\n\n\t/**\n\t * Defines the target URI of the link.\n\t */\n\t@Prop() _href!: HrefPropType;\n\n\t/**\n\t * Focuses the link element.\n\t */\n\t@Method() async focus() {\n\t\treturn Promise.resolve(this.element?.focus());\n\t}\n\n\t/**\n\t * Expands the tree item.\n\t */\n\t@Method() async expand() {\n\t\treturn Promise.resolve(this.element?.expand());\n\t}\n\n\t/**\n\t * Collapses the tree item.\n\t */\n\t@Method() async collapse() {\n\t\treturn Promise.resolve(this.element?.collapse());\n\t}\n\n\t/**\n\t * Returns whether the tree item is expanded.\n\t */\n\t@Method() async isOpen() {\n\t\treturn (await this.element?.isOpen()) ?? false;\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<KolTreeItemWcTag\n\t\t\t\t_active={this._active}\n\t\t\t\t_label={this._label}\n\t\t\t\t_open={this._open}\n\t\t\t\t_href={this._href}\n\t\t\t\tref={(element?: HTMLKolTreeItemWcElement) => (this.element = element)}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</KolTreeItemWcTag>\n\t\t);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-tree-item.js","mappings":";;;;;;AAAA,MAAM,eAAe,GAAG,k0QAAk0Q;;MCY70QA,aAAW,GAAAC,kBAAA,CAAA,MAAA,WAAA,SAAA,WAAA,CAAA;;;;;;;;AA0Bb,IAAA,MAAM,KAAK,GAAA;;AACpB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;;AAMpC,IAAA,MAAM,MAAM,GAAA;;AACrB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,MAAM,EAAE,CAAC;;AAMrC,IAAA,MAAM,QAAQ,GAAA;;AACvB,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;;AAMvC,IAAA,MAAM,MAAM,GAAA;;QACrB,OAAO,CAAA,EAAA,IAAC,OAAM,MAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,EAAE,CAAA,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK;;IAGxC,MAAM,GAAA;AACZ,QAAA,QACC,CAAC,CAAA,gBAAgB,qDAChB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,GAAG,EAAE,CAAC,OAAkC,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,EAAA,EAErE,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolTreeItem","__stencil_proxyCustomElement"],"sources":["src/components/tree-item/style.scss?tag=kol-tree-item&mode=default&encapsulation=shadow","src/components/tree-item/shadow.tsx"],"sourcesContent":["@use '../@shared/mixins' as *;\n@use '../@shared/global' as *;\n@use '../@shared/icon.mixin' as *;\n\n@layer kol-component {\n\t@include kol-icon-styles();\n\n\t.kol-tree-item {\n\t\t$root: &;\n\n\t\t&__link {\n\t\t\t.kol-link {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\tmin-height: var(--a11y-min-size);\n\t\t\t\talign-items: center;\n\n\t\t\t\ttext-decoration: none;\n\t\t\t}\n\t\t}\n\n\t\t&__link-inner {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\n\t\t&__children {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tlist-style: none;\n\t\t}\n\n\t\t.kol-span {\n\t\t\tplace-items: unset; // unset 'center' style from global layer\n\t\t}\n\n\t\t&__toggle-button,\n\t\t&__toggle-button-placeholder {\n\t\t\tdisplay: inline-flex;\n\t\t\tmin-width: var(--a11y-min-size);\n\t\t\tmin-height: var(--a11y-min-size);\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t}\n\n\t\t&__text {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n}\n","import { Component, h, type JSX, Method, Prop } from '@stencil/core';\n\nimport { KolTreeItemWcTag } from '../../core/component-names';\nimport type { HrefPropType, LabelPropType, OpenPropType, TreeItemProps } from '../../schema';\n\n@Component({\n\ttag: 'kol-tree-item', // keep in sync with `const TREE_ITEM_TAG_NAME`\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTreeItem implements TreeItemProps {\n\tprivate element?: HTMLKolTreeItemWcElement;\n\n\t/**\n\t * If set (to true) the tree item is the active one.\n\t */\n\t@Prop() _active?: OpenPropType;\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() _label!: LabelPropType;\n\n\t/**\n\t * Opens/expands the element when truthy, closes/collapses when falsy.\n\t */\n\t@Prop() _open?: OpenPropType;\n\n\t/**\n\t * Defines the target URI of the link.\n\t */\n\t@Prop() _href!: HrefPropType;\n\n\t/**\n\t * Focuses the link element.\n\t */\n\t@Method() async focus() {\n\t\treturn Promise.resolve(this.element?.focus());\n\t}\n\n\t/**\n\t * Expands the tree item.\n\t */\n\t@Method() async expand() {\n\t\treturn Promise.resolve(this.element?.expand());\n\t}\n\n\t/**\n\t * Collapses the tree item.\n\t */\n\t@Method() async collapse() {\n\t\treturn Promise.resolve(this.element?.collapse());\n\t}\n\n\t/**\n\t * Returns whether the tree item is expanded.\n\t */\n\t@Method() async isOpen() {\n\t\treturn (await this.element?.isOpen()) ?? false;\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<KolTreeItemWcTag\n\t\t\t\t_active={this._active}\n\t\t\t\t_label={this._label}\n\t\t\t\t_open={this._open}\n\t\t\t\t_href={this._href}\n\t\t\t\tref={(element?: HTMLKolTreeItemWcElement) => (this.element = element)}\n\t\t\t>\n\t\t\t\t<slot />\n\t\t\t</KolTreeItemWcTag>\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{w as KolTreeItemTag,v as KolTreeTag}from"./component-names.js";import"./common.js";import{v as validateLabel}from"./label.js";const KolTreeWc$1=proxyCustomElement(class e extends HTMLElement{constructor(e){super(),!1!==e&&this.__registerHost(),this.state={_label:""}}validateLabel(e){validateLabel(this,e)}render(){return h(Host,{key:"35a6c7c7cf981eca928ad6e9a3e18c9ce9edf606",onSlotchange:this.handleSlotchange.bind(this)},h("nav",{key:"af115cf6342afeeffe2d4a8b119000f9685f3d26",class:"kol-tree","aria-label":this.state._label},h("ul",{key:"0d86cee9ca2ca5317bf40e7a5acc4adb554b4406",class:"kol-tree__treeview-navigation",role:"tree","aria-label":this.state._label},h("slot",{key:"0aa3900c280259281fe4caedfd62e1800eb193fe"}))))}static isTreeItem(e){return(null==e?void 0:e.tagName)===KolTreeItemTag.toUpperCase()}componentWillLoad(){this.validateLabel(this._label),this.handleTreeChange(),this.observeChildListMutations()}disconnectedCallback(){var e;null===(e=this.observer)||void 0===e||e.disconnect()}observeChildListMutations(){this.observer=new MutationObserver(this.handleTreeChange.bind(this)),this.observeTopLevelItems()}handleSlotchange(){this.observeTopLevelItems(),this.handleTreeChange()}observeTopLevelItems(){var e;null===(e=this.getTopLevelTreeItems())||void 0===e||e.forEach(e=>{var t;null===(t=this.observer)||void 0===t||t.observe(e,{childList:!0,subtree:!0})})}getTopLevelTreeItems(){var t,a,l;return null===(l=null===(a=null===(t=this.host.querySelector("slot"))||void 0===t?void 0:t.assignedNodes)||void 0===a?void 0:a.call(t))||void 0===l?void 0:l.filter(e.isTreeItem)}handleTreeChange(){this.treeItemElements=this.getTreeItemElements(),this.ensureActiveItemVisibility()}getTreeItemElements(){var e;return null===(e=this.getTopLevelTreeItems())||void 0===e?void 0:e.reduce((e,t)=>{const a=t.querySelectorAll(KolTreeItemTag);return[...e,t,...a]},[])}async getOpenTreeItemElements(){if(!this.treeItemElements)return;const t=async a=>!e.isTreeItem(a.parentElement)||await a.parentElement.isOpen()&&await t(a.parentElement);return(await Promise.all(this.treeItemElements.map(async e=>({value:e,include:await t(e)})))).filter(e=>e.include).map(e=>e.value)}async handleKeyDown(e){var t,a,l,i,n,o,s,r,c,d;const u=await this.getOpenTreeItemElements(),v=null===(t=document.activeElement)||void 0===t?void 0:t.closest(KolTreeItemTag),m=e.metaKey||e.altKey||e.ctrlKey||e.shiftKey;if(!u||!v)return;const h=null==u?void 0:u.findIndex(e=>e===v);switch(e.key){case"ArrowDown":await(null===(a=u[h+1])||void 0===a?void 0:a.focus()),e.preventDefault();break;case"ArrowUp":await(null===(l=u[h-1])||void 0===l?void 0:l.focus()),e.preventDefault();break;case"Right":case"ArrowRight":e.preventDefault(),await v.isOpen()?await(null===(i=u[h+1])||void 0===i?void 0:i.focus()):await v.expand();break;case"Left":case"ArrowLeft":if(e.preventDefault(),await v.isOpen())await v.collapse();else{const e=u.findIndex(e=>e===v.parentElement);-1!==e&&await(null===(n=u[e])||void 0===n?void 0:n.focus())}break;case"Home":await(null===(o=u[0])||void 0===o?void 0:o.focus()),e.preventDefault();break;case"End":await(null===(s=u[u.length-1])||void 0===s?void 0:s.focus()),e.preventDefault();break;case null===(r=e.key.match(/^[a-zA-Z0-9]$/))||void 0===r?void 0:r.input:if(!m){const t=e.key.toLowerCase(),a=u.indexOf(v)+1,l=u.concat(u),i=l.slice(a,a+u.length).findIndex(e=>{var a;return null===(a=e.getAttribute("_label"))||void 0===a?void 0:a.trim().toLowerCase().startsWith(t)});-1!==i&&(await(null===(c=l[a+i])||void 0===c?void 0:c.focus()),e.preventDefault())}break;case"*":{const e=null===(d=v.parentElement)||void 0===d?void 0:d.querySelectorAll(KolTreeItemTag);null==e||e.forEach(e=>{e.expand()});break}}}async handleFocusOut(e){e.relatedTarget&&!e.relatedTarget.closest(KolTreeTag)&&await this.ensureActiveItemVisibility()}async ensureActiveItemVisibility(){const t=a=>{e.isTreeItem(a.parentElement)&&(a.parentElement.expand(),t(a.parentElement))},a=(()=>{var t,a,l,i;const n=null!==(i=null===(l=null===(a=null===(t=this.host.querySelector("slot"))||void 0===t?void 0:t.assignedNodes)||void 0===a?void 0:a.call(t))||void 0===l?void 0:l.filter(e.isTreeItem))&&void 0!==i?i:[];for(const e of n){if(e._active)return e;const t=e.querySelector(`${KolTreeItemTag}[_active="true"]`);if(t&&t._active)return t}})();a&&t(a)}get host(){return this}static get watchers(){return{_label:["validateLabel"]}}},[260,"kol-tree-wc",{_label:[1],state:[32]},[[0,"keydown","handleKeyDown"],[0,"focusout","handleFocusOut"]],{_label:["validateLabel"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree-wc"].forEach(e=>{if("kol-tree-wc"===e)customElements.get(e)||customElements.define(e,KolTreeWc$1)})}const KolTreeWc=KolTreeWc$1,defineCustomElement=defineCustomElement$1;export{KolTreeWc,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{v as KolTreeItemTag,u as KolTreeTag}from"./component-names.js";import"./common.js";import{v as validateLabel}from"./label.js";const KolTreeWc$1=proxyCustomElement(class e extends HTMLElement{constructor(e){super(),!1!==e&&this.__registerHost(),this.state={_label:""},this.cacheValid=!1}validateLabel(e){validateLabel(this,e)}async focus(){var e;const t=await this.getOpenTreeItemElements();await(null===(e=null==t?void 0:t[0])||void 0===e?void 0:e.focus())}async invalidateOpenItemsCache(){await Promise.resolve(this.cacheValid=!1)}render(){return h(Host,{key:"636acab7d852b078c00f01e6d72fd95fcfcb74da",onSlotchange:this.handleSlotchange.bind(this)},h("nav",{key:"55cda41b0618a7150831099204fcbf42811e5b77",class:"kol-tree","aria-label":this.state._label},h("ul",{key:"b3f05a87934f6bc409e0699cf96adc595954f8fc",class:"kol-tree__treeview-navigation",role:"tree","aria-label":this.state._label},h("slot",{key:"6e85788adae9f7254ce2ef7723121dd31db6a52c"}))))}static isTreeItem(e){return(null==e?void 0:e.tagName)===KolTreeItemTag.toUpperCase()}componentWillLoad(){this.validateLabel(this._label),this.handleTreeChange(),this.observeChildListMutations()}disconnectedCallback(){var e;null===(e=this.observer)||void 0===e||e.disconnect(),void 0!==this.rafHandle&&(cancelAnimationFrame(this.rafHandle),this.rafHandle=void 0)}observeChildListMutations(){this.observer=new MutationObserver(()=>this.scheduleTreeChange()),this.observeTopLevelItems()}handleSlotchange(){this.observeTopLevelItems(),this.scheduleTreeChange()}observeTopLevelItems(){var e;null===(e=this.getTopLevelTreeItems())||void 0===e||e.forEach(e=>{var t;null===(t=this.observer)||void 0===t||t.observe(e,{childList:!0,subtree:!0})})}scheduleTreeChange(){this.rafHandle&&cancelAnimationFrame(this.rafHandle),this.rafHandle=requestAnimationFrame(()=>{this.handleTreeChange()})}getTopLevelTreeItems(){var t,a,i,l;return null===(l=null===(i=null===(a=null===(t=this.host)||void 0===t?void 0:t.querySelector("slot"))||void 0===a?void 0:a.assignedNodes)||void 0===i?void 0:i.call(a))||void 0===l?void 0:l.filter(e.isTreeItem)}handleTreeChange(){this.treeItemElements=this.getTreeItemElements(),this.cacheValid=!1,this.ensureActiveItemVisibility()}getTreeItemElements(){var e;return null===(e=this.getTopLevelTreeItems())||void 0===e?void 0:e.reduce((e,t)=>{const a=t.querySelectorAll(KolTreeItemTag);return[...e,t,...a]},[])}async getOpenTreeItemElements(){if(!this.treeItemElements)return;if(this.cacheValid&&this.cachedOpenItems)return this.cachedOpenItems;const t=async t=>{let a=t.parentElement;for(;a&&e.isTreeItem(a);){if(!await a.isOpen())return!1;a=a.parentElement}return!0};return this.cachedOpenItems=await Promise.all(this.treeItemElements.map(async e=>({item:e,isOpen:await t(e)}))).then(e=>e.filter(({isOpen:e})=>e).map(({item:e})=>e)),this.cacheValid=!0,this.cachedOpenItems}async handleKeyDown(e){var t,a,i,l,s,n,o,r,c,d;const u=await this.getOpenTreeItemElements(),v=null===(t=document.activeElement)||void 0===t?void 0:t.closest(KolTreeItemTag),h=e.metaKey||e.altKey||e.ctrlKey||e.shiftKey;if(!u||!v)return;const m=null==u?void 0:u.findIndex(e=>e===v);switch(e.key){case"ArrowDown":await(null===(a=u[m+1])||void 0===a?void 0:a.focus()),e.preventDefault();break;case"ArrowUp":await(null===(i=u[m-1])||void 0===i?void 0:i.focus()),e.preventDefault();break;case"Right":case"ArrowRight":e.preventDefault(),await v.isOpen()?await(null===(l=u[m+1])||void 0===l?void 0:l.focus()):await v.expand();break;case"Left":case"ArrowLeft":if(e.preventDefault(),await v.isOpen())await v.collapse();else{const e=v.parentElement,t=e?u.indexOf(e):-1;-1!==t&&await(null===(s=u[t])||void 0===s?void 0:s.focus())}break;case"Home":await(null===(n=u[0])||void 0===n?void 0:n.focus()),e.preventDefault();break;case"End":await(null===(o=u[u.length-1])||void 0===o?void 0:o.focus()),e.preventDefault();break;case null===(r=e.key.match(/^[a-zA-Z0-9]$/))||void 0===r?void 0:r.input:if(!h){const t=e.key.toLowerCase(),a=u.indexOf(v)+1;let i=u.slice(a).findIndex(e=>{var a;return null===(a=e.getAttribute("_label"))||void 0===a?void 0:a.trim().toLowerCase().startsWith(t)});-1===i?i=u.slice(0,a).findIndex(e=>{var a;return null===(a=e.getAttribute("_label"))||void 0===a?void 0:a.trim().toLowerCase().startsWith(t)}):i+=a,-1!==i&&(await(null===(c=u[i])||void 0===c?void 0:c.focus()),e.preventDefault())}break;case"*":{const e=null===(d=v.parentElement)||void 0===d?void 0:d.querySelectorAll(KolTreeItemTag);null==e||e.forEach(e=>{e.expand()});break}}}handleFocusIn(e){var t;e.target!==this.host||(null===(t=document.activeElement)||void 0===t?void 0:t.closest(KolTreeItemTag))||requestAnimationFrame(()=>{this.focus()})}handleFocusOut(e){e.relatedTarget&&!e.relatedTarget.closest(KolTreeTag)&&this.ensureActiveItemVisibility()}ensureActiveItemVisibility(){const t=a=>{e.isTreeItem(a.parentElement)&&(a.parentElement.expand(),t(a.parentElement))},a=(()=>{var t,a,i,l,s;const n=null!==(s=null===(l=null===(i=null===(a=null===(t=this.host)||void 0===t?void 0:t.querySelector("slot"))||void 0===a?void 0:a.assignedNodes)||void 0===i?void 0:i.call(a))||void 0===l?void 0:l.filter(e.isTreeItem))&&void 0!==s?s:[];for(const e of n){if(e._active)return e;const t=e.querySelector(`${KolTreeItemTag}[_active="true"]`);if(t&&t._active)return t}})();a&&t(a)}get host(){return this}static get watchers(){return{_label:["validateLabel"]}}},[260,"kol-tree-wc",{_label:[1],state:[32],focus:[64],invalidateOpenItemsCache:[64]},[[0,"keydown","handleKeyDown"],[0,"focusin","handleFocusIn"],[0,"focusout","handleFocusOut"]],{_label:["validateLabel"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree-wc"].forEach(e=>{if("kol-tree-wc"===e)customElements.get(e)||customElements.define(e,KolTreeWc$1)})}const KolTreeWc=KolTreeWc$1,defineCustomElement=defineCustomElement$1;export{KolTreeWc,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-tree-wc.js","mappings":"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","names":["KolTreeWc","__stencil_proxyCustomElement"],"sources":["src/components/tree/component.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { Component, Element, h, Host, Listen, Prop, State, Watch } from '@stencil/core';\n\nimport { KolTreeItemTag, KolTreeTag } from '../../core/component-names';\nimport type { LabelPropType, TreeAPI, TreeStates } from '../../schema';\nimport { validateLabel } from '../../schema';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-tree-wc',\n\tshadow: false,\n})\nexport class KolTreeWc implements TreeAPI {\n\t@Element() host!: HTMLElement;\n\n\t@State() public state: TreeStates = {\n\t\t_label: '',\n\t};\n\tprivate observer?: MutationObserver;\n\tprivate treeItemElements?: HTMLKolTreeItemElement[];\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() _label!: LabelPropType;\n\n\t@Watch('_label') validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host onSlotchange={this.handleSlotchange.bind(this)}>\n\t\t\t\t<nav class=\"kol-tree\" aria-label={this.state._label}>\n\t\t\t\t\t<ul class=\"kol-tree__treeview-navigation\" role=\"tree\" aria-label={this.state._label}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate static isTreeItem(this: void, element?: HTMLElement | null): element is HTMLKolTreeItemElement {\n\t\treturn element?.tagName === KolTreeItemTag.toUpperCase();\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label);\n\n\t\tthis.handleTreeChange();\n\t\tthis.observeChildListMutations();\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tthis.observer?.disconnect();\n\t}\n\n\tprivate observeChildListMutations() {\n\t\tthis.observer = new MutationObserver(this.handleTreeChange.bind(this));\n\t\tthis.observeTopLevelItems();\n\t}\n\n\tprivate handleSlotchange() {\n\t\tthis.observeTopLevelItems();\n\t\tthis.handleTreeChange();\n\t}\n\n\tprivate observeTopLevelItems() {\n\t\tthis.getTopLevelTreeItems()?.forEach((treeItem) => {\n\t\t\tthis.observer?.observe(treeItem, { childList: true, subtree: true });\n\t\t});\n\t}\n\n\tprivate getTopLevelTreeItems(): HTMLKolTreeItemElement[] {\n\t\treturn (this.host.querySelector('slot')?.assignedNodes?.() as HTMLElement[])?.filter(KolTreeWc.isTreeItem);\n\t}\n\n\tprivate handleTreeChange(): void {\n\t\tthis.treeItemElements = this.getTreeItemElements();\n\t\tvoid this.ensureActiveItemVisibility();\n\t}\n\n\t/**\n\t * Returns array of all TreeItem elements in the order they appear\n\t */\n\tprivate getTreeItemElements(): HTMLKolTreeItemElement[] {\n\t\treturn this.getTopLevelTreeItems()?.reduce((accumulator: HTMLKolTreeItemElement[], currentValue: HTMLKolTreeItemElement) => {\n\t\t\tconst children = currentValue.querySelectorAll(KolTreeItemTag);\n\n\t\t\treturn [...accumulator, currentValue, ...children];\n\t\t}, []);\n\t}\n\n\tprivate async getOpenTreeItemElements(): Promise<HTMLKolTreeItemElement[] | undefined> {\n\t\tif (!this.treeItemElements) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst areElementAndAllParentsOpen = async (element: HTMLKolTreeItemElement): Promise<boolean> => {\n\t\t\tif (!KolTreeWc.isTreeItem(element.parentElement)) {\n\t\t\t\t// parent is tree itself, top level is always open\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn (await element.parentElement.isOpen()) && (await areElementAndAllParentsOpen(element.parentElement));\n\t\t\t}\n\t\t};\n\n\t\tconst elementsWithInclude = await Promise.all(\n\t\t\tthis.treeItemElements.map(async (element) => ({\n\t\t\t\tvalue: element,\n\t\t\t\tinclude: await areElementAndAllParentsOpen(element),\n\t\t\t})),\n\t\t);\n\n\t\treturn elementsWithInclude.filter((element) => element.include).map((element) => element.value);\n\t}\n\n\t@Listen('keydown')\n\tpublic async handleKeyDown(event: KeyboardEvent) {\n\t\tconst openItems = await this.getOpenTreeItemElements();\n\t\tconst currentTreeItem: HTMLKolTreeItemElement | undefined | null = document.activeElement?.closest(KolTreeItemTag);\n\t\tconst hasModifierKeyPressed = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;\n\n\t\tif (!openItems || !currentTreeItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = openItems?.findIndex((elem) => elem === currentTreeItem);\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowDown': {\n\t\t\t\tawait openItems[currentIndex + 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'ArrowUp': {\n\t\t\t\tawait openItems[currentIndex - 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Right':\n\t\t\tcase 'ArrowRight': {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (await currentTreeItem.isOpen()) {\n\t\t\t\t\tawait openItems[currentIndex + 1]?.focus();\n\t\t\t\t} else {\n\t\t\t\t\tawait currentTreeItem.expand();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Left':\n\t\t\tcase 'ArrowLeft': {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (await currentTreeItem.isOpen()) {\n\t\t\t\t\tawait currentTreeItem.collapse();\n\t\t\t\t} else {\n\t\t\t\t\tconst parentIndex = openItems.findIndex((item) => item === currentTreeItem.parentElement);\n\t\t\t\t\tif (parentIndex !== -1) {\n\t\t\t\t\t\tawait openItems[parentIndex]?.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Home': {\n\t\t\t\tawait openItems[0]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'End': {\n\t\t\t\tawait openItems[openItems.length - 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase event.key.match(/^[a-zA-Z0-9]$/)?.input: {\n\t\t\t\t/* Ignore events with any modifier key to avoid breaking native browser or OS shortcuts such as ⌘+L */\n\t\t\t\tif (!hasModifierKeyPressed) {\n\t\t\t\t\tconst char = event.key.toLowerCase();\n\t\t\t\t\tconst startIndex = openItems.indexOf(currentTreeItem) + 1;\n\t\t\t\t\tconst wrapAroundItems = openItems.concat(openItems);\n\t\t\t\t\tconst matchIndex = wrapAroundItems\n\t\t\t\t\t\t.slice(startIndex, startIndex + openItems.length)\n\t\t\t\t\t\t.findIndex((item) => item.getAttribute('_label')?.trim().toLowerCase().startsWith(char));\n\n\t\t\t\t\tif (matchIndex !== -1) {\n\t\t\t\t\t\tawait wrapAroundItems[startIndex + matchIndex]?.focus();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase '*': {\n\t\t\t\tconst siblings = currentTreeItem.parentElement?.querySelectorAll(KolTreeItemTag);\n\t\t\t\tsiblings?.forEach((element) => {\n\t\t\t\t\tvoid element.expand();\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t@Listen('focusout')\n\tpublic async handleFocusOut(event: FocusEvent) {\n\t\tif (event.relatedTarget && !(event.relatedTarget as Element).closest(KolTreeTag)) {\n\t\t\t/* Tree lost focus */\n\t\t\tawait this.ensureActiveItemVisibility();\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tprivate async ensureActiveItemVisibility() {\n\t\tconst findActiveItem = (): HTMLKolTreeItemElement | undefined => {\n\t\t\tconst rootNodes = (this.host.querySelector('slot')?.assignedNodes?.() as HTMLElement[])?.filter(KolTreeWc.isTreeItem) ?? [];\n\t\t\tfor (const rootNode of rootNodes) {\n\t\t\t\tif (rootNode._active) {\n\t\t\t\t\treturn rootNode;\n\t\t\t\t}\n\t\t\t\tconst childMatch = rootNode.querySelector(`${KolTreeItemTag}[_active=\"true\"]`);\n\t\t\t\tif (childMatch && (childMatch as HTMLKolTreeItemElement)._active) {\n\t\t\t\t\treturn childMatch as HTMLKolTreeItemElement;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst expandParentElements = (element: HTMLKolTreeItemElement) => {\n\t\t\tif (KolTreeWc.isTreeItem(element.parentElement)) {\n\t\t\t\tvoid element.parentElement.expand();\n\t\t\t\texpandParentElements(element.parentElement);\n\t\t\t}\n\t\t};\n\n\t\tconst target = findActiveItem();\n\t\tif (target) {\n\t\t\texpandParentElements(target);\n\t\t}\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-tree-wc.js","mappings":"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","names":["KolTreeWc","__stencil_proxyCustomElement"],"sources":["src/components/tree/component.tsx"],"sourcesContent":["import type { JSX } from '@stencil/core';\nimport { Component, Element, h, Host, Listen, Method, Prop, State, Watch } from '@stencil/core';\n\nimport { KolTreeItemTag, KolTreeTag } from '../../core/component-names';\nimport type { FocusableElement, LabelPropType, TreeAPI, TreeStates } from '../../schema';\nimport { validateLabel } from '../../schema';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-tree-wc',\n\tshadow: false,\n})\nexport class KolTreeWc implements TreeAPI, FocusableElement {\n\t@Element() private readonly host?: HTMLKolTreeWcElement;\n\n\t@State() public state: TreeStates = {\n\t\t_label: '',\n\t};\n\tprivate observer?: MutationObserver;\n\tprivate treeItemElements?: HTMLKolTreeItemElement[];\n\tprivate cachedOpenItems?: HTMLKolTreeItemElement[] | undefined;\n\tprivate cacheValid = false;\n\tprivate rafHandle?: number;\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() _label!: LabelPropType;\n\n\t@Watch('_label') validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value);\n\t}\n\n\t/**\n\t * Sets focus on the first focusable tree item.\n\t */\n\t@Method()\n\tpublic async focus(): Promise<void> {\n\t\tconst openItems = await this.getOpenTreeItemElements();\n\t\tawait openItems?.[0]?.focus();\n\t}\n\n\t/**\n\t * Invalidates the cache for open tree items.\n\t * Called by tree-item when expand/collapse occurs.\n\t * @internal\n\t */\n\t@Method()\n\tpublic async invalidateOpenItemsCache(): Promise<void> {\n\t\tawait Promise.resolve((this.cacheValid = false));\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host onSlotchange={this.handleSlotchange.bind(this)}>\n\t\t\t\t<nav class=\"kol-tree\" aria-label={this.state._label}>\n\t\t\t\t\t<ul class=\"kol-tree__treeview-navigation\" role=\"tree\" aria-label={this.state._label}>\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\tprivate static isTreeItem(this: void, element?: HTMLElement | null): element is HTMLKolTreeItemElement {\n\t\treturn element?.tagName === KolTreeItemTag.toUpperCase();\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label);\n\n\t\tthis.handleTreeChange();\n\t\tthis.observeChildListMutations();\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tthis.observer?.disconnect();\n\t\tif (this.rafHandle !== undefined) {\n\t\t\tcancelAnimationFrame(this.rafHandle);\n\t\t\tthis.rafHandle = undefined;\n\t\t}\n\t}\n\n\tprivate observeChildListMutations() {\n\t\tthis.observer = new MutationObserver(() => this.scheduleTreeChange());\n\t\tthis.observeTopLevelItems();\n\t}\n\n\tprivate handleSlotchange() {\n\t\tthis.observeTopLevelItems();\n\t\tthis.scheduleTreeChange();\n\t}\n\n\tprivate observeTopLevelItems() {\n\t\tthis.getTopLevelTreeItems()?.forEach((treeItem) => {\n\t\t\tthis.observer?.observe(treeItem, { childList: true, subtree: true });\n\t\t});\n\t}\n\n\tprivate scheduleTreeChange() {\n\t\tif (this.rafHandle) cancelAnimationFrame(this.rafHandle);\n\t\tthis.rafHandle = requestAnimationFrame(() => {\n\t\t\tthis.handleTreeChange();\n\t\t});\n\t}\n\n\tprivate getTopLevelTreeItems(): HTMLKolTreeItemElement[] {\n\t\treturn (this.host?.querySelector('slot')?.assignedNodes?.() as HTMLElement[])?.filter(KolTreeWc.isTreeItem);\n\t}\n\n\tprivate handleTreeChange(): void {\n\t\tthis.treeItemElements = this.getTreeItemElements();\n\t\tthis.cacheValid = false;\n\t\tvoid this.ensureActiveItemVisibility();\n\t}\n\n\t/**\n\t * Returns array of all TreeItem elements in the order they appear\n\t */\n\tprivate getTreeItemElements(): HTMLKolTreeItemElement[] {\n\t\treturn this.getTopLevelTreeItems()?.reduce((accumulator: HTMLKolTreeItemElement[], currentValue: HTMLKolTreeItemElement) => {\n\t\t\tconst children = currentValue.querySelectorAll(KolTreeItemTag);\n\n\t\t\treturn [...accumulator, currentValue, ...children];\n\t\t}, []);\n\t}\n\n\tprivate async getOpenTreeItemElements(): Promise<HTMLKolTreeItemElement[] | undefined> {\n\t\tif (!this.treeItemElements) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Cache-Hit: Return cached result\n\t\tif (this.cacheValid && this.cachedOpenItems) {\n\t\t\treturn this.cachedOpenItems;\n\t\t}\n\n\t\tconst areAllParentsOpen = async (element: HTMLKolTreeItemElement): Promise<boolean> => {\n\t\t\tlet parent = element.parentElement as HTMLKolTreeItemElement | null;\n\t\t\twhile (parent && KolTreeWc.isTreeItem(parent)) {\n\t\t\t\tif (!(await parent.isOpen())) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tparent = parent.parentElement as HTMLKolTreeItemElement | null;\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\t// Cache the result\n\t\tthis.cachedOpenItems = await Promise.all(\n\t\t\tthis.treeItemElements.map(async (item) => ({\n\t\t\t\titem,\n\t\t\t\tisOpen: await areAllParentsOpen(item),\n\t\t\t})),\n\t\t).then((results) => results.filter(({ isOpen }) => isOpen).map(({ item }) => item));\n\t\tthis.cacheValid = true;\n\n\t\treturn this.cachedOpenItems;\n\t}\n\n\t@Listen('keydown')\n\tpublic async handleKeyDown(event: KeyboardEvent) {\n\t\tconst openItems = await this.getOpenTreeItemElements();\n\t\tconst currentTreeItem: HTMLKolTreeItemElement | undefined | null = document.activeElement?.closest(KolTreeItemTag);\n\t\tconst hasModifierKeyPressed = event.metaKey || event.altKey || event.ctrlKey || event.shiftKey;\n\n\t\tif (!openItems || !currentTreeItem) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentIndex = openItems?.findIndex((elem) => elem === currentTreeItem);\n\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowDown': {\n\t\t\t\tawait openItems[currentIndex + 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'ArrowUp': {\n\t\t\t\tawait openItems[currentIndex - 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Right':\n\t\t\tcase 'ArrowRight': {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (await currentTreeItem.isOpen()) {\n\t\t\t\t\tawait openItems[currentIndex + 1]?.focus();\n\t\t\t\t} else {\n\t\t\t\t\tawait currentTreeItem.expand();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Left':\n\t\t\tcase 'ArrowLeft': {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (await currentTreeItem.isOpen()) {\n\t\t\t\t\tawait currentTreeItem.collapse();\n\t\t\t\t} else {\n\t\t\t\t\tconst parentItem = currentTreeItem.parentElement as HTMLKolTreeItemElement | null;\n\t\t\t\t\tconst parentIndex = parentItem ? openItems.indexOf(parentItem) : -1;\n\t\t\t\t\tif (parentIndex !== -1) {\n\t\t\t\t\t\tawait openItems[parentIndex]?.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'Home': {\n\t\t\t\tawait openItems[0]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'End': {\n\t\t\t\tawait openItems[openItems.length - 1]?.focus();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase event.key.match(/^[a-zA-Z0-9]$/)?.input: {\n\t\t\t\t/* Ignore events with any modifier key to avoid breaking native browser or OS shortcuts such as ⌘+L */\n\t\t\t\tif (!hasModifierKeyPressed) {\n\t\t\t\t\tconst char = event.key.toLowerCase();\n\t\t\t\t\tconst startIndex = openItems.indexOf(currentTreeItem) + 1;\n\n\t\t\t\t\t// Search from startIndex to end\n\t\t\t\t\tlet matchIndex = openItems.slice(startIndex).findIndex((item) => item.getAttribute('_label')?.trim().toLowerCase().startsWith(char));\n\n\t\t\t\t\t// If not found, wrap around to beginning\n\t\t\t\t\tif (matchIndex === -1) {\n\t\t\t\t\t\tmatchIndex = openItems.slice(0, startIndex).findIndex((item) => item.getAttribute('_label')?.trim().toLowerCase().startsWith(char));\n\t\t\t\t\t\t// Adjust matchIndex if found in wrap-around\n\t\t\t\t\t\tif (matchIndex !== -1) {\n\t\t\t\t\t\t\t// matchIndex is already correct (0-based from slice(0, startIndex))\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// matchIndex is from slice(startIndex), so add startIndex to get actual index\n\t\t\t\t\t\tmatchIndex += startIndex;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (matchIndex !== -1) {\n\t\t\t\t\t\tawait openItems[matchIndex]?.focus();\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase '*': {\n\t\t\t\tconst siblings = currentTreeItem.parentElement?.querySelectorAll(KolTreeItemTag);\n\t\t\t\tsiblings?.forEach((element) => {\n\t\t\t\t\tvoid element.expand();\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t@Listen('focusin')\n\tpublic handleFocusIn(event: FocusEvent) {\n\t\t// Only delegate if no tree item is already focused\n\t\tif (event.target === this.host && !document.activeElement?.closest(KolTreeItemTag)) {\n\t\t\t// Defer to next frame to ensure tree is fully ready\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tvoid this.focus();\n\t\t\t});\n\t\t}\n\t}\n\n\t@Listen('focusout')\n\tpublic handleFocusOut(event: FocusEvent) {\n\t\tif (event.relatedTarget && !(event.relatedTarget as Element).closest(KolTreeTag)) {\n\t\t\t/* Tree lost focus */\n\t\t\tthis.ensureActiveItemVisibility();\n\t\t}\n\t}\n\n\tprivate ensureActiveItemVisibility() {\n\t\tconst findActiveItem = (): HTMLKolTreeItemElement | undefined => {\n\t\t\tconst rootNodes = (this.host?.querySelector('slot')?.assignedNodes?.() as HTMLElement[])?.filter(KolTreeWc.isTreeItem) ?? [];\n\t\t\tfor (const rootNode of rootNodes) {\n\t\t\t\tif (rootNode._active) {\n\t\t\t\t\treturn rootNode;\n\t\t\t\t}\n\t\t\t\tconst childMatch = rootNode.querySelector(`${KolTreeItemTag}[_active=\"true\"]`);\n\t\t\t\tif (childMatch && (childMatch as HTMLKolTreeItemElement)._active) {\n\t\t\t\t\treturn childMatch as HTMLKolTreeItemElement;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst expandParentElements = (element: HTMLKolTreeItemElement) => {\n\t\t\tif (KolTreeWc.isTreeItem(element.parentElement)) {\n\t\t\t\tvoid element.parentElement.expand();\n\t\t\t\texpandParentElements(element.parentElement);\n\t\t\t}\n\t\t};\n\n\t\tconst target = findActiveItem();\n\t\tif (target) {\n\t\t\texpandParentElements(target);\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}from"@stencil/core/internal/client";import{t as KolTreeWcTag}from"./component-names.js";const defaultStyleCss="/* forward the rem function */\n/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}\n@layer kol-component {\n .kol-tree__treeview-navigation {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .kol-tree:focus-within {\n outline: 1px solid;\n outline-offset: 2px;\n }\n}",KolTree$1=proxyCustomElement(class extends HTMLElement{constructor(n){super(),!1!==n&&this.__registerHost(),this.__attachShadow()}render(){return h(KolTreeWcTag,{key:"d80ef53eb88006c0247391eefe6e13dbcfb06b81",_label:this._label},h("slot",{key:"7bd6fbba7b91939d863f0048a06ce2a74d4524fa"}))}static get style(){return{default:defaultStyleCss}}},[289,"kol-tree",{_label:[1]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree"].forEach(n=>{if("kol-tree"===n)customElements.get(n)||customElements.define(n,KolTree$1)})}const KolTree=KolTree$1,defineCustomElement=defineCustomElement$1;export{KolTree,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h}from"@stencil/core/internal/client";import{r as KolTreeWcTag}from"./component-names.js";import{d as delegateFocus,s as setFocus}from"./element-focus.js";const defaultStyleCss="/* forward the rem function */\n/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}\n@layer kol-component {\n .kol-tree__treeview-navigation {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n .kol-tree:focus-within {\n outline: 1px solid;\n outline-offset: 2px;\n }\n}",KolTree$1=proxyCustomElement(class extends HTMLElement{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.setTreeWcRef=e=>{this.treeWcRef=e}}async focus(){return delegateFocus(this.host,()=>setFocus(this.treeWcRef))}render(){return h(KolTreeWcTag,{key:"7b6b9dfaee144719998aa82de51327e0d52cc559",_label:this._label,ref:this.setTreeWcRef},h("slot",{key:"37d6b152b229ce91b7e990efef85b86ed4f93415"}))}get host(){return this}static get style(){return{default:defaultStyleCss}}},[289,"kol-tree",{_label:[1],focus:[64]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-tree"].forEach(e=>{if("kol-tree"===e)customElements.get(e)||customElements.define(e,KolTree$1)})}const KolTree=KolTree$1,defineCustomElement=defineCustomElement$1;export{KolTree,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-tree.js","mappings":";;;;;;AAAA,MAAM,eAAe,GAAG,88KAA88K;;MCaz9KA,SAAO,GAAAC,kBAAA,CAAA,MAAA,OAAA,SAAA,WAAA,CAAA;;;;;;;;IAMZ,MAAM,GAAA;AACZ,QAAA,QACC,EAAC,YAAY,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,EAChC,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACM;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolTree","__stencil_proxyCustomElement"],"sources":["src/components/tree/style.scss?tag=kol-tree&mode=default&encapsulation=shadow","src/components/tree/shadow.tsx"],"sourcesContent":["@use '../@shared/mixins' as *;\n@use '../@shared/global' as *;\n\n@layer kol-component {\n\t.kol-tree {\n\t\t&__treeview-navigation {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tlist-style: none;\n\t\t}\n\n\t\t&:focus-within {\n\t\t\toutline: 1px solid;\n\t\t\toutline-offset: 2px;\n\t\t}\n\t}\n}\n","import type { JSX } from '@stencil/core';\nimport { Component, h, Prop } from '@stencil/core';\n\nimport { KolTreeWcTag } from '../../core/component-names';\nimport type { LabelPropType, TreeProps } from '../../schema';\n\n@Component({\n\ttag: 'kol-tree',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTree implements TreeProps {\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() _label!: LabelPropType;\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<KolTreeWcTag _label={this._label}>\n\t\t\t\t<slot />\n\t\t\t</KolTreeWcTag>\n\t\t);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-tree.js","mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,88KAA88K;;MCcz9KA,SAAO,GAAAC,kBAAA,CAAA,MAAA,OAAA,SAAA,WAAA,CAAA;AAPpB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;AAWkB,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,GAA0B,KAAI;AAC9D,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AACrB,SAAC;AAsBD;AAXO,IAAA,MAAM,KAAK,GAAA;AACjB,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,IAAK,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC;;IAG3D,MAAM,GAAA;AACZ,QAAA,QACC,CAAA,CAAC,YAAY,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,EAAA,EACxD,CAAQ,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolTree","__stencil_proxyCustomElement"],"sources":["src/components/tree/style.scss?tag=kol-tree&mode=default&encapsulation=shadow","src/components/tree/shadow.tsx"],"sourcesContent":["@use '../@shared/mixins' as *;\n@use '../@shared/global' as *;\n\n@layer kol-component {\n\t.kol-tree {\n\t\t&__treeview-navigation {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tlist-style: none;\n\t\t}\n\n\t\t&:focus-within {\n\t\t\toutline: 1px solid;\n\t\t\toutline-offset: 2px;\n\t\t}\n\t}\n}\n","import type { JSX } from '@stencil/core';\nimport { Component, Element, h, Method, Prop } from '@stencil/core';\n\nimport { KolTreeWcTag } from '../../core/component-names';\nimport type { FocusableElement, LabelPropType, TreeProps } from '../../schema';\nimport { delegateFocus, setFocus } from '../../utils/element-focus';\n\n@Component({\n\ttag: 'kol-tree',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolTree implements TreeProps, FocusableElement {\n\t@Element() private readonly host?: HTMLKolTreeElement;\n\tprivate treeWcRef?: HTMLKolTreeWcElement;\n\n\tprivate readonly setTreeWcRef = (ref?: HTMLKolTreeWcElement) => {\n\t\tthis.treeWcRef = ref;\n\t};\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() _label!: LabelPropType;\n\n\t/**\n\t * Sets focus on the first focusable tree item.\n\t */\n\t@Method()\n\tpublic async focus() {\n\t\treturn delegateFocus(this.host!, () => setFocus(this.treeWcRef!));\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<KolTreeWcTag _label={this._label} ref={this.setTreeWcRef}>\n\t\t\t\t<slot />\n\t\t\t</KolTreeWcTag>\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"./common.js";import{v as validateLabel}from"./label.js";import{t as translate}from"./i18n.js";import{x as KolBadgeTag}from"./component-names.js";const defaultStyleCss="/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/* forward the rem function */\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}",KolVersion$1=proxyCustomElement(class extends HTMLElement{constructor(n){super(),!1!==n&&this.__registerHost(),this.__attachShadow(),this.translateVersion=translate("kol-version"),this.state={_label:"0.0.0-alpha.0"}}render(){return h(Host,{key:"c8e72198321e8cdab71e9292a10c294f979daf51",class:"kol-version"},h(KolBadgeTag,{key:"9c1141344592a00a5d7e3081b397ecf13e8bf6b5",_color:"#bec5c9",_icons:{left:{icon:"kolicon-version",label:this.translateVersion}},_label:this.state._label}))}validateLabel(n){validateLabel(this,n,{required:!0})}componentWillLoad(){this.validateLabel(this._label)}static get watchers(){return{_label:["validateLabel"]}}static get style(){return{default:defaultStyleCss}}},[289,"kol-version",{_label:[1],state:[32]},void 0,{_label:["validateLabel"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-version"].forEach(n=>{if("kol-version"===n)customElements.get(n)||customElements.define(n,KolVersion$1)})}const KolVersion=KolVersion$1,defineCustomElement=defineCustomElement$1;export{KolVersion,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import"./common.js";import{v as validateLabel}from"./label.js";import{t as translate}from"./i18n.js";import{w as KolBadgeTag}from"./component-names.js";const defaultStyleCss="/*\n* This file defines the layer order for all CSS layers used in KoliBri.\n* The order is important as it determines the cascade priority.\n*\n* Layer order (lowest to highest priority):\n* 1. kol-a11y - Accessibility defaults and requirements\n* 2. kol-global - Global component styles and resets\n* 3. kol-component - Component-specific styles\n* 4. kol-theme-global - Theme-specific global styles\n* 5. kol-theme-component - Theme-specific component styles\n*/\n@layer kol-a11y, kol-global, kol-component, kol-theme-global, kol-theme-component;\n/* forward the rem function */\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-a11y {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44 * 1rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without verifying the contrast ratio of its background and font colors.\n * By initially setting the background color to white and the font color to black,\n * the contrast ratio is ensured and explicit adjustment is forced.\n */\n color: black;\n background-color: white;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n /*\n * Text should be aligned left by default to provide a predictable starting point.\n */\n text-align: left;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n }\n /*\n * All interactive elements should have a minimum size of to-rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n button,\n .kol-input .input {\n min-width: var(--a11y-min-size);\n min-height: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the text color from his parent element.\n */\n color: inherit;\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\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 position: fixed;\n top: 0;\n left: 0;\n width: 1px;\n height: 1px;\n overflow: hidden;\n white-space: nowrap;\n clip-path: inset(50%);\n }\n}\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n width: 100%;\n margin: 0;\n padding: 0;\n border: none;\n /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n .badge-text-hint {\n color: black;\n background-color: lightgray;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n font-size: calc(16 * 1rem / var(--kolibri-root-font-size, 16));\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: flex;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n align-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n opacity: 0.5;\n outline: none;\n cursor: not-allowed;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n .hastooltip {\n z-index: 900 !important;\n }\n}",KolVersion$1=proxyCustomElement(class extends HTMLElement{constructor(n){super(),!1!==n&&this.__registerHost(),this.__attachShadow(),this.translateVersion=translate("kol-version"),this.state={_label:"0.0.0-alpha.0"}}render(){return h(Host,{key:"366e90528852843f511d5f935511d55bd565957b",class:"kol-version"},h(KolBadgeTag,{key:"8d7a198cbf5b56ec5d0187b11d7e35f2205fbf0b",_color:"#bec5c9",_icons:{left:{icon:"kolicon-version",label:this.translateVersion}},_label:this.state._label}))}validateLabel(n){validateLabel(this,n,{required:!0})}componentWillLoad(){this.validateLabel(this._label)}static get watchers(){return{_label:["validateLabel"]}}static get style(){return{default:defaultStyleCss}}},[289,"kol-version",{_label:[1],state:[32]},void 0,{_label:["validateLabel"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-version"].forEach(n=>{if("kol-version"===n)customElements.get(n)||customElements.define(n,KolVersion$1)})}const KolVersion=KolVersion$1,defineCustomElement=defineCustomElement$1;export{KolVersion,defineCustomElement};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{b as watchValidator,t as a11yHint,u as uiUxHint}from"./common.js";const headingLevelOptions=[0,1,2,3,4,5,6],READABLE_CHARS=/[a-zA-Z0-9äöüÄÖÜß]/g,ONLY_NUMBERS=/^\d+$/;function countReadableChars(a){var t;return"string"==typeof a&&(null===(t=a.match(READABLE_CHARS))||void 0===t?void 0:t.length)||0}function hasEnoughReadableChars(a,t=1){return countReadableChars(a)>=t}function containsOnlyNumbers(a){return ONLY_NUMBERS.test(a)}function getValidationOptions(a){var t;return Object.assign(Object.assign({},a),{hooks:{afterPatch:(t,e,n,o)=>{var i,s;"function"==typeof(null===(i=a.hooks)||void 0===i?void 0:i.afterPatch)&&(null===(s=a.hooks)||void 0===s||s.afterPatch(t,e,n,o)),"string"==typeof t&&!1===hasEnoughReadableChars(t,3)&&!1===containsOnlyNumbers(t)&&a11yHint(`The heading or label ("${t}") is inaccessible. A label should consist of at least three readable characters.`),"string"==typeof t&&t.length>80&&uiUxHint("A heading or label should not be longer than 80 characters.")},beforePatch:null===(t=a.hooks)||void 0===t?void 0:t.beforePatch}})}const LABEL_VALUES=new Set(["string"]),validateLabel=(a,t,e={})=>{watchValidator(a,"_label",a=>"string"==typeof a,LABEL_VALUES,t,getValidationOptions(e))},validateLabelWithExpertSlot=validateLabel;export{validateLabelWithExpertSlot as a,hasEnoughReadableChars as b,containsOnlyNumbers as c,headingLevelOptions as h,validateLabel as v};
4
+ import{b as watchValidator,t as a11yHint,u as uiUxHint}from"./common.js";const READABLE_CHARS=/[a-zA-Z0-9äöüÄÖÜß]/g,ONLY_NUMBERS=/^\d+$/;function countReadableChars(a){var t;return"string"==typeof a&&(null===(t=a.match(READABLE_CHARS))||void 0===t?void 0:t.length)||0}function hasEnoughReadableChars(a,t=1){return countReadableChars(a)>=t}function containsOnlyNumbers(a){return ONLY_NUMBERS.test(a)}function getValidationOptions(a){var t;return Object.assign(Object.assign({},a),{hooks:{afterPatch:(t,e,n,o)=>{var i,s;"function"==typeof(null===(i=a.hooks)||void 0===i?void 0:i.afterPatch)&&(null===(s=a.hooks)||void 0===s||s.afterPatch(t,e,n,o)),"string"==typeof t&&!1===hasEnoughReadableChars(t,3)&&!1===containsOnlyNumbers(t)&&a11yHint(`The heading or label ("${t}") is inaccessible. A label should consist of at least three readable characters.`),"string"==typeof t&&t.length>80&&uiUxHint("A heading or label should not be longer than 80 characters.")},beforePatch:null===(t=a.hooks)||void 0===t?void 0:t.beforePatch}})}const LABEL_VALUES=new Set(["string"]),validateLabel=(a,t,e={})=>{watchValidator(a,"_label",a=>"string"==typeof a,LABEL_VALUES,t,getValidationOptions(e))},validateLabelWithExpertSlot=validateLabel;export{validateLabelWithExpertSlot as a,containsOnlyNumbers as c,hasEnoughReadableChars as h,validateLabel as v};
@@ -1 +1 @@
1
- {"file":"label.js","mappings":";;;;;AASa,MAAA,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAQvD,MAAM,cAAc,GAAG,qBAAqB;AAK5C,MAAM,YAAY,GAAG,OAAO;AAO5B,SAAS,kBAAkB,CAAC,GAAW,EAAA;;AACtC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,GAAG,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,KAAI,CAAC,GAAG,CAAC;AAC5E;SAQgB,sBAAsB,CAAC,GAAW,EAAE,GAAG,GAAG,CAAC,EAAA;AAC1D,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG;AACtC;AAOM,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC9C,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B;AAqCA,SAAS,oBAAoB,CAAC,OAA2B,EAAA;;AACxD,IAAA,OACI,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAI;;AAC5C,gBAAA,IAAI,QAAO,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,CAAA,KAAK,UAAU,EAAE;AACpD,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC;;gBAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;AACpH,oBAAA,QAAQ,CAAC,CAAA,uBAAA,EAA0B,KAAK,CAAA,iFAAA,CAAmF,CAAC;;gBAE7H,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;oBACnD,QAAQ,CAAC,CAA6D,2DAAA,CAAA,CAAC;;aAExE;YACD,WAAW,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,WAAW;AACvC,SAAA,EACA,CAAA;AACH;AAEA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,aAAa,GAAG,CAAC,SAAoC,EAAE,KAAqB,EAAE,OAAA,GAA8B,EAAE,KAAU;IACpI,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9H;AAMO,MAAM,2BAA2B,GAAG;;;;","names":[],"sources":["src/schema/props/label.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchStringOptions } from '../utils';\nimport { watchValidator } from '../utils';\nimport { a11yHint, uiUxHint } from '../utils/a11y.tipps';\n\n/**\n * Defines the heading level options.\n */\nexport const headingLevelOptions = [0, 1, 2, 3, 4, 5, 6] as const;\nexport type HeadingLevel = (typeof headingLevelOptions)[number];\n\n/**\n * This is a regular expression that matches all readable characters.\n *\n * Interesting: https://stackoverflow.com/questions/150033/regular-expression-to-match-non-english-characters\n */\nconst READABLE_CHARS = /[a-zA-Z0-9äöüÄÖÜß]/g;\n\n/**\n * This is a regular expression that matches only numbers.\n */\nconst ONLY_NUMBERS = /^\\d+$/;\n\n/**\n * This function counts the number of readable characters in a string.\n * @param str The string to count.\n * @returns The number of readable characters in the string.\n */\nfunction countReadableChars(str: string): number {\n\treturn typeof str === 'string' ? str.match(READABLE_CHARS)?.length || 0 : 0;\n}\n\n/**\n * This function checks if a string has at least a certain number of readable characters.\n * @param str The string to check.\n * @param min The minimum number of readable characters.\n * @returns True if the string has at least the minimum number of readable characters, false otherwise.\n */\nexport function hasEnoughReadableChars(str: string, min = 1): boolean {\n\treturn countReadableChars(str) >= min;\n}\n\n/**\n * This function checks if a string contains only numbers.\n * @param str The string to check.\n * @returns True if the string contains only numbers, false otherwise.\n */\nexport function containsOnlyNumbers(str: string): boolean {\n\treturn ONLY_NUMBERS.test(str);\n}\n\n/**\n * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n */\nexport type LabelPropType = string;\n\n/**\n * 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 */\nexport type LabelWithExpertSlotPropType = LabelPropType | '';\n\n/**\n * The label property is used to label different elements:\n * - abbr -> title text\n * - button -> label text\n * - heading -> headline text\n * - input, select and textarea -> label text\n * - summary -> summary text\n * - quote, table -> caption text\n * - version -> version text\n * - etc.\n *\n * The label is often a mandatory attribute. If the value of the label is false,\n * the expert-slot will be used. Otherwise, the value of the label must be a string\n * and the expert-slot will be ignored.\n */\nexport type PropLabel = {\n\tlabel: LabelPropType;\n};\nexport type PropLabelWithExpertSlot = {\n\tlabel: LabelWithExpertSlotPropType;\n};\n\nexport type LabelProp = Generic.Element.Members<PropLabel, unknown>;\n// type LabelWithExpertSlotProp = Generic.Element.Members<PropLabelWithExpertSlot, unknown>;\n\nfunction getValidationOptions(options: WatchStringOptions): WatchStringOptions {\n\treturn {\n\t\t...options,\n\t\thooks: {\n\t\t\tafterPatch: (value, state, component, key) => {\n\t\t\t\tif (typeof options.hooks?.afterPatch === 'function') {\n\t\t\t\t\toptions.hooks?.afterPatch(value, state, component, key);\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && hasEnoughReadableChars(value, 3) === false && containsOnlyNumbers(value) === false) {\n\t\t\t\t\ta11yHint(`The heading or label (\"${value}\") is inaccessible. A label should consist of at least three readable characters.`);\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && value.length > 80) {\n\t\t\t\t\tuiUxHint(`A heading or label should not be longer than 80 characters.`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tbeforePatch: options.hooks?.beforePatch,\n\t\t},\n\t};\n}\n\nconst LABEL_VALUES = new Set(['string']);\nexport const validateLabel = (component: Generic.Element.Component, value?: LabelPropType, options: WatchStringOptions = {}): void => {\n\twatchValidator(component, '_label', (value) => typeof value === 'string', LABEL_VALUES, value, getValidationOptions(options));\n};\n\n/**\n * This method name helps to differentiate between the label\n * and the label with expert slot usage.\n */\nexport const validateLabelWithExpertSlot = validateLabel;\n"],"version":3}
1
+ {"file":"label.js","mappings":";;;;;AAWA,MAAM,cAAc,GAAG,qBAAqB;AAK5C,MAAM,YAAY,GAAG,OAAO;AAO5B,SAAS,kBAAkB,CAAC,GAAW,EAAA;;AACtC,IAAA,OAAO,OAAO,GAAG,KAAK,QAAQ,GAAG,CAAA,CAAA,EAAA,GAAA,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,KAAI,CAAC,GAAG,CAAC;AAC5E;SAQgB,sBAAsB,CAAC,GAAW,EAAE,GAAG,GAAG,CAAC,EAAA;AAC1D,IAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,GAAG;AACtC;AAOM,SAAU,mBAAmB,CAAC,GAAW,EAAA;AAC9C,IAAA,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B;AAqCA,SAAS,oBAAoB,CAAC,OAA2B,EAAA;;AACxD,IAAA,OACI,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CACV,EAAA,EAAA,KAAK,EAAE;YACN,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAI;;AAC5C,gBAAA,IAAI,QAAO,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,UAAU,CAAA,KAAK,UAAU,EAAE;AACpD,oBAAA,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC;;gBAExD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,mBAAmB,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;AACpH,oBAAA,QAAQ,CAAC,CAAA,uBAAA,EAA0B,KAAK,CAAA,iFAAA,CAAmF,CAAC;;gBAE7H,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;oBACnD,QAAQ,CAAC,CAA6D,2DAAA,CAAA,CAAC;;aAExE;YACD,WAAW,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,0CAAE,WAAW;AACvC,SAAA,EACA,CAAA;AACH;AAEA,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,aAAa,GAAG,CAAC,SAAoC,EAAE,KAAqB,EAAE,OAAA,GAA8B,EAAE,KAAU;IACpI,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9H;AAMO,MAAM,2BAA2B,GAAG;;;;","names":[],"sources":["src/schema/props/label.ts"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchStringOptions } from '../utils';\nimport { watchValidator } from '../utils';\nimport { a11yHint, uiUxHint } from '../utils/a11y.tipps';\n\n/**\n * This is a regular expression that matches all readable characters.\n *\n * Interesting: https://stackoverflow.com/questions/150033/regular-expression-to-match-non-english-characters\n */\nconst READABLE_CHARS = /[a-zA-Z0-9äöüÄÖÜß]/g;\n\n/**\n * This is a regular expression that matches only numbers.\n */\nconst ONLY_NUMBERS = /^\\d+$/;\n\n/**\n * This function counts the number of readable characters in a string.\n * @param str The string to count.\n * @returns The number of readable characters in the string.\n */\nfunction countReadableChars(str: string): number {\n\treturn typeof str === 'string' ? str.match(READABLE_CHARS)?.length || 0 : 0;\n}\n\n/**\n * This function checks if a string has at least a certain number of readable characters.\n * @param str The string to check.\n * @param min The minimum number of readable characters.\n * @returns True if the string has at least the minimum number of readable characters, false otherwise.\n */\nexport function hasEnoughReadableChars(str: string, min = 1): boolean {\n\treturn countReadableChars(str) >= min;\n}\n\n/**\n * This function checks if a string contains only numbers.\n * @param str The string to check.\n * @returns True if the string contains only numbers, false otherwise.\n */\nexport function containsOnlyNumbers(str: string): boolean {\n\treturn ONLY_NUMBERS.test(str);\n}\n\n/**\n * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n */\nexport type LabelPropType = string;\n\n/**\n * 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 */\nexport type LabelWithExpertSlotPropType = LabelPropType | '';\n\n/**\n * The label property is used to label different elements:\n * - abbr -> title text\n * - button -> label text\n * - heading -> headline text\n * - input, select and textarea -> label text\n * - summary -> summary text\n * - quote, table -> caption text\n * - version -> version text\n * - etc.\n *\n * The label is often a mandatory attribute. If the value of the label is false,\n * the expert-slot will be used. Otherwise, the value of the label must be a string\n * and the expert-slot will be ignored.\n */\nexport type PropLabel = {\n\tlabel: LabelPropType;\n};\nexport type PropLabelWithExpertSlot = {\n\tlabel: LabelWithExpertSlotPropType;\n};\n\nexport type LabelProp = Generic.Element.Members<PropLabel, unknown>;\n// type LabelWithExpertSlotProp = Generic.Element.Members<PropLabelWithExpertSlot, unknown>;\n\nfunction getValidationOptions(options: WatchStringOptions): WatchStringOptions {\n\treturn {\n\t\t...options,\n\t\thooks: {\n\t\t\tafterPatch: (value, state, component, key) => {\n\t\t\t\tif (typeof options.hooks?.afterPatch === 'function') {\n\t\t\t\t\toptions.hooks?.afterPatch(value, state, component, key);\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && hasEnoughReadableChars(value, 3) === false && containsOnlyNumbers(value) === false) {\n\t\t\t\t\ta11yHint(`The heading or label (\"${value}\") is inaccessible. A label should consist of at least three readable characters.`);\n\t\t\t\t}\n\t\t\t\tif (typeof value === 'string' && value.length > 80) {\n\t\t\t\t\tuiUxHint(`A heading or label should not be longer than 80 characters.`);\n\t\t\t\t}\n\t\t\t},\n\t\t\tbeforePatch: options.hooks?.beforePatch,\n\t\t},\n\t};\n}\n\nconst LABEL_VALUES = new Set(['string']);\nexport const validateLabel = (component: Generic.Element.Component, value?: LabelPropType, options: WatchStringOptions = {}): void => {\n\twatchValidator(component, '_label', (value) => typeof value === 'string', LABEL_VALUES, value, getValidationOptions(options));\n};\n\n/**\n * This method name helps to differentiate between the label\n * and the label with expert slot usage.\n */\nexport const validateLabelWithExpertSlot = validateLabel;\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{c as createPropDefinition,n as normalizeString}from"./base-web-component.js";const labelProp=createPropDefinition("label","",normalizeString,e=>""===e||e.length>=2&&e.length<=80);export{labelProp as l};
4
+ import{c as createPropDefinition,n as normalizeString}from"./normalizers.js";const labelProp=createPropDefinition("label","",normalizeString,e=>""===e||e.length>=2&&e.length<=80);export{labelProp as l};
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{c as createPropDefinition,a as normalizeInteger}from"./normalizers.js";const headingLevelOptions=[0,1,2,3,4,5,6],levelProp=createPropDefinition("level",0,e=>normalizeInteger(e),e=>headingLevelOptions.includes(e));export{headingLevelOptions as h,levelProp as l};
@@ -0,0 +1 @@
1
+ {"file":"level.js","mappings":";;;;;AAIa,MAAA,mBAAmB,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAIhD,MAAM,SAAS,GAAG,oBAAoB,CAC5C,OAAO,EACP,CAAC,EACD,CAAC,KAAK,KAAK,gBAAgB,CAAC,KAAK,CAAiB,EAClD,CAAC,CAAC,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;;;;","names":[],"sources":["src/internal/props/level.ts"],"sourcesContent":["import type { SimpleProp } from './helpers/factory';\nimport { createPropDefinition } from './helpers/factory';\nimport { normalizeInteger } from './helpers/normalizers';\n\nexport const headingLevelOptions = [0, 1, 2, 3, 4, 5, 6] as const;\nexport type HeadingLevel = (typeof headingLevelOptions)[number];\n\nexport type LevelProp = SimpleProp<'level', HeadingLevel>;\nexport const levelProp = createPropDefinition<LevelProp>(\n\t'level',\n\t0,\n\t(value) => normalizeInteger(value) as HeadingLevel,\n\t(v) => headingLevelOptions.includes(v),\n);\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ import{L as Log}from"./common.js";import{g as getNative,e as eq,o as overArg,U as Uint8Array,i as isPrototype,a as getTag,b as baseUnary,n as nodeUtil,c as isBuffer,S as Stack,d as getAllKeys}from"./_Uint8Array.js";import{S as Symbol,i as isObjectLike,a as isArray}from"./isArray.js";import{i as isObject}from"./isObject.js";var objectCreate=Object.create,baseCreate=function(){function e(){}return function(a){if(!isObject(a))return{};if(objectCreate)return objectCreate(a);e.prototype=a;var t=new e;return e.prototype=void 0,t}}(),defineProperty=function(){try{var e=getNative(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();function arrayEach(e,a){for(var t=-1,r=null==e?0:e.length;++t<r&&!1!==a(e[t],t,e););return e}function baseAssignValue(e,a,t){"__proto__"==a&&defineProperty?defineProperty(e,a,{configurable:!0,enumerable:!0,value:t,writable:!0}):e[a]=t}var objectProto$1=Object.prototype,hasOwnProperty$1=objectProto$1.hasOwnProperty;function assignValue(e,a,t){var r=e[a];hasOwnProperty$1.call(e,a)&&eq(r,t)&&(void 0!==t||a in e)||baseAssignValue(e,a,t)}var getPrototype=overArg(Object.getPrototypeOf,Object),freeExports="object"==typeof exports&&exports&&!exports.nodeType&&exports;function cloneBuffer(e,a){return e.slice()}freeExports&&"object"==typeof module&&module&&!module.nodeType&&module;var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty;function initCloneArray(e){var a=e.length,t=new e.constructor(a);return a&&"string"==typeof e[0]&&hasOwnProperty.call(e,"index")&&(t.index=e.index,t.input=e.input),t}function cloneArrayBuffer(e){var a=new e.constructor(e.byteLength);return new Uint8Array(a).set(new Uint8Array(e)),a}function cloneDataView(e,a){var t=cloneArrayBuffer(e.buffer);return new e.constructor(t,e.byteOffset,e.byteLength)}var reFlags=/\w*$/;function cloneRegExp(e){var a=new e.constructor(e.source,reFlags.exec(e));return a.lastIndex=e.lastIndex,a}var symbolProto=Symbol?Symbol.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;function cloneSymbol(e){return symbolValueOf?Object(symbolValueOf.call(e)):{}}function cloneTypedArray(e,a){var t=cloneArrayBuffer(e.buffer);return new e.constructor(t,e.byteOffset,e.length)}var boolTag$1="[object Boolean]",dateTag$1="[object Date]",mapTag$2="[object Map]",numberTag$1="[object Number]",regexpTag$1="[object RegExp]",setTag$2="[object Set]",stringTag$1="[object String]",symbolTag$1="[object Symbol]",arrayBufferTag$1="[object ArrayBuffer]",dataViewTag$1="[object DataView]",float32Tag$1="[object Float32Array]",float64Tag$1="[object Float64Array]",int8Tag$1="[object Int8Array]",int16Tag$1="[object Int16Array]",int32Tag$1="[object Int32Array]",uint8Tag$1="[object Uint8Array]",uint8ClampedTag$1="[object Uint8ClampedArray]",uint16Tag$1="[object Uint16Array]",uint32Tag$1="[object Uint32Array]";function initCloneByTag(e,a,t){var r=e.constructor;switch(a){case arrayBufferTag$1:return cloneArrayBuffer(e);case boolTag$1:case dateTag$1:return new r(+e);case dataViewTag$1:return cloneDataView(e);case float32Tag$1:case float64Tag$1:case int8Tag$1:case int16Tag$1:case int32Tag$1:case uint8Tag$1:case uint8ClampedTag$1:case uint16Tag$1:case uint32Tag$1:return cloneTypedArray(e);case mapTag$2:return new r;case numberTag$1:case stringTag$1:return new r(e);case regexpTag$1:return cloneRegExp(e);case setTag$2:return new r;case symbolTag$1:return cloneSymbol(e)}}function initCloneObject(e){return"function"!=typeof e.constructor||isPrototype(e)?{}:baseCreate(getPrototype(e))}var mapTag$1="[object Map]";function baseIsMap(e){return isObjectLike(e)&&getTag(e)==mapTag$1}var nodeIsMap=nodeUtil&&nodeUtil.isMap,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,setTag$1="[object Set]";function baseIsSet(e){return isObjectLike(e)&&getTag(e)==setTag$1}var nodeIsSet=nodeUtil&&nodeUtil.isSet,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",cloneableTags={};function baseClone(e,a,t,r,n,o){var i;if(void 0!==i)return i;if(!isObject(e))return e;var c=isArray(e);if(c)i=initCloneArray(e);else{var s=getTag(e),l=s==funcTag||s==genTag;if(isBuffer(e))return cloneBuffer(e);if(s==objectTag||s==argsTag||l&&!n)i=l?{}:initCloneObject(e);else{if(!cloneableTags[s])return n?e:{};i=initCloneByTag(e,s)}}o||(o=new Stack);var g=o.get(e);if(g)return g;o.set(e,i),isSet(e)?e.forEach(function(r){i.add(baseClone(r,a,t,r,e,o))}):isMap(e)&&e.forEach(function(r,n){i.set(n,baseClone(r,a,t,n,e,o))});var b=c?void 0:getAllKeys(e);return arrayEach(b||e,function(r,n){b&&(r=e[n=r]),assignValue(i,n,baseClone(r,a,t,n,e,o))}),i}cloneableTags[argsTag]=cloneableTags[arrayTag]=cloneableTags[arrayBufferTag]=cloneableTags[dataViewTag]=cloneableTags[boolTag]=cloneableTags[dateTag]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag]=cloneableTags[numberTag]=cloneableTags[objectTag]=cloneableTags[regexpTag]=cloneableTags[setTag]=cloneableTags[stringTag]=cloneableTags[symbolTag]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0,cloneableTags[errorTag]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;var CLONE_DEEP_FLAG=1,CLONE_SYMBOLS_FLAG=4;function cloneDeep(e){return baseClone(e,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}function safeStringify(e){try{return JSON.stringify(e)}catch(e){return"[unserializable]"}}function createPropDefinition(e,a,t,r=()=>!0){return{propName:e,getDefaultValue:isObject(a)?()=>cloneDeep(a):()=>a,normalize:t,validate:r,apply(t,r){if(null!=t)try{const e=this.normalize(t);this.validate(e)&&r(e)}catch(e){Log.debug(e)}else{if(!this.validate(a))throw new Error(`Default value ${safeStringify(a)} is invalid for prop definition '${e}'.`);r(a)}}}}function createDependentPropDefinition(e,a,t,r=()=>!0){return{propName:e,getDefaultValue:isObject(a)?()=>cloneDeep(a):()=>a,normalize:t,validate:r,apply(t,r,n){if(null!=t)try{const e=this.normalize(t,n);this.validate(e,n)&&r(e)}catch(e){Log.debug(e)}else{if(!this.validate(a,n))throw new Error(`Default value ${safeStringify(a)} is invalid for prop definition '${e}' with dependencies ${safeStringify(n)}.`);r(a)}}}}function normalizeString(e){if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e||"bigint"==typeof e)return String(e);throw new Error(`Invalid string: ${e}`)}function normalizeInteger(e){if("number"==typeof e)return Number.isInteger(e)?e:Math.round(e);if("string"==typeof e){const a=parseInt(e,10);if(!isNaN(a))return a}throw new Error(`Invalid integer: ${e}`)}function normalizeNumber(e){if("number"==typeof e)return e;if("string"==typeof e){const a=Number(e);if(!isNaN(a))return a}throw new Error(`Invalid number: ${e}`)}export{normalizeInteger as a,normalizeNumber as b,createPropDefinition as c,createDependentPropDefinition as d,normalizeString as n};
@@ -0,0 +1 @@
1
+ {"file":"normalizers.js","mappings":"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","names":["objectProto","hasOwnProperty","boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag"],"sources":["../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js","../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js","src/internal/props/helpers/factory.ts","src/internal/props/helpers/normalizers.ts"],"sourcesContent":["import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import { cloneDeep, isObject } from 'lodash-es';\nimport { Log } from '../../../schema';\n\nfunction safeStringify(value: unknown): string {\n\ttry {\n\t\treturn JSON.stringify(value);\n\t} catch {\n\t\treturn '[unserializable]';\n\t}\n}\n\n/**\n * Definiert einen Prop-Typ mit internem und externem Typ.\n *\n * - K: der Property-Name\n * - TExternal: der externe Eingabe-Typ (Web Component)\n * - TInternal: der normalisierte Typ (Controller/FC), default = TExternal\n *\n * Phantom-Keys `__input_${K}` tragen den externen Typ auf Type-Ebene.\n * Der feste Phantom-Key `__propInternal__` trägt TInternal für eine zuverlässige Inferenz.\n */\nexport type Prop<K extends string, TExternal, TInternal> = {\n\t[P in K]: TInternal;\n} & {\n\t[P in K as `__input_${P}`]?: TExternal;\n} & {\n\treadonly __propInternal__?: TInternal;\n};\n\n/**\n * Shorthand for Prop when external and internal types are identical.\n *\n * - K: der Property-Name\n * - T: der Typ (verwendet für externe und interne Nutzung)\n */\nexport type SimpleProp<K extends string, T> = Prop<K, T, T>;\n\nexport type InternalPropValue<P extends Prop<string, unknown, unknown>> = NonNullable<P['__propInternal__']>;\n\nexport type ExtractPropKey<P extends Prop<string, unknown, unknown>> =\n\tExclude<\n\t\tkeyof P,\n\t\t| keyof {\n\t\t\t\t__propInternal__: unknown;\n\t\t }\n\t\t| `__input_${string}`\n\t> extends infer K extends string\n\t\t? K\n\t\t: never;\n\nexport type PropDefinition<TInternal, P extends Prop<string, unknown, unknown> = Prop<string, unknown, TInternal>> = {\n\treadonly __phantomProp__?: P;\n\treadonly propName: string;\n\tgetDefaultValue(): TInternal;\n\tnormalize: (value: unknown) => TInternal | never;\n\tvalidate: (value: TInternal) => boolean;\n\tapply: (value: unknown, callback: (normalized: TInternal) => void) => void;\n};\n\nexport function createPropDefinition<P extends Prop<string, unknown, unknown>, K extends ExtractPropKey<P> = ExtractPropKey<P>>(\n\tpropName: K,\n\tdefaultValue: InternalPropValue<P>,\n\tnormalize: (value: unknown) => InternalPropValue<P> | never,\n\tvalidate: (value: InternalPropValue<P>) => boolean = () => true,\n): PropDefinition<InternalPropValue<P>, P> {\n\treturn {\n\t\tpropName,\n\t\tgetDefaultValue: isObject(defaultValue) ? () => cloneDeep(defaultValue) : () => defaultValue,\n\t\tnormalize,\n\t\tvalidate,\n\t\tapply(value, callback) {\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\tif (this.validate(defaultValue)) {\n\t\t\t\t\tcallback(defaultValue);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(`Default value ${safeStringify(defaultValue)} is invalid for prop definition '${propName}'.`);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst normalized = this.normalize(value);\n\t\t\t\tif (this.validate(normalized)) {\n\t\t\t\t\tcallback(normalized);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug(e);\n\t\t\t}\n\t\t},\n\t};\n}\n\nexport type DependentPropDefinition<TInternal, TDeps, P extends Prop<string, unknown, unknown> = Prop<string, unknown, TInternal>> = {\n\treadonly __phantomProp__?: P;\n\treadonly propName: string;\n\tgetDefaultValue(): TInternal;\n\tnormalize: (value: unknown, deps: TDeps) => TInternal | never;\n\tvalidate: (value: TInternal, deps: TDeps) => boolean;\n\tapply: (value: unknown, callback: (normalized: TInternal) => void, deps: TDeps) => void;\n};\n\nexport function createDependentPropDefinition<P extends Prop<string, unknown, unknown>, TDeps = unknown>(\n\tpropName: ExtractPropKey<P>,\n\tdefaultValue: InternalPropValue<P>,\n\tnormalize: (value: unknown, deps: TDeps) => InternalPropValue<P> | never,\n\tvalidate: (value: InternalPropValue<P>, deps: TDeps) => boolean = () => true,\n): DependentPropDefinition<InternalPropValue<P>, TDeps, P> {\n\treturn {\n\t\tpropName,\n\t\tgetDefaultValue: isObject(defaultValue) ? () => cloneDeep(defaultValue) : () => defaultValue,\n\t\tnormalize,\n\t\tvalidate,\n\t\tapply(value, callback, deps: TDeps) {\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\tif (this.validate(defaultValue, deps)) {\n\t\t\t\t\tcallback(defaultValue);\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Default value ${safeStringify(defaultValue)} is invalid for prop definition '${propName}' with dependencies ${safeStringify(deps)}.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst normalized = this.normalize(value, deps);\n\t\t\t\tif (this.validate(normalized, deps)) {\n\t\t\t\t\tcallback(normalized);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tLog.debug(e);\n\t\t\t}\n\t\t},\n\t};\n}\n","import { isObject } from '../../../schema';\n\nexport function normalizeString(value?: unknown): string | never {\n\tif (typeof value === 'string') {\n\t\treturn value;\n\t}\n\tif (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') {\n\t\treturn String(value);\n\t}\n\tthrow new Error(`Invalid string: ${value as string}`);\n}\n\nexport function normalizeInteger(value?: unknown): number | never {\n\tif (typeof value === 'number') {\n\t\treturn Number.isInteger(value) ? value : Math.round(value);\n\t}\n\tif (typeof value === 'string') {\n\t\tconst parsed = parseInt(value, 10);\n\t\tif (!isNaN(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\t}\n\tthrow new Error(`Invalid integer: ${value as string}`);\n}\n\nexport function normalizeNumber(value?: unknown): number | never {\n\tif (typeof value === 'number') {\n\t\treturn value;\n\t}\n\tif (typeof value === 'string') {\n\t\tconst parsed = Number(value);\n\t\tif (!isNaN(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\t}\n\tthrow new Error(`Invalid number: ${value as string}`);\n}\n\nexport function normalizeBoolean(value?: unknown): boolean | never {\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\tif (typeof value === 'string') {\n\t\treturn value.toLowerCase() === 'true';\n\t}\n\tthrow new Error(`Invalid boolean: ${value as string}`);\n}\n\nexport function normalizeObject(value?: unknown): object | never {\n\tif (isObject(value)) {\n\t\treturn value as object;\n\t}\n\tif (typeof value === 'string') {\n\t\tconst parsed = JSON.parse(value) as unknown;\n\t\tif (isObject(parsed)) {\n\t\t\treturn parsed as object;\n\t\t}\n\t}\n\tthrow new Error(`Invalid object: ${value as string}`);\n}\n\nexport function normalizeArray(value?: unknown): unknown[] | never {\n\tif (isObject(value) && Array.isArray(value)) {\n\t\treturn value as unknown[];\n\t}\n\tif (typeof value === 'string') {\n\t\tconst parsed = JSON.parse(value) as unknown;\n\t\tif (isObject(parsed) && Array.isArray(parsed)) {\n\t\t\treturn parsed as unknown[];\n\t\t}\n\t}\n\tthrow new Error(`Invalid array: ${value as string}`);\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{c as createPropDefinition,n as normalizeString}from"./base-web-component.js";const srcProp=createPropDefinition("src","",normalizeString);export{srcProp as s};
4
+ import{c as createPropDefinition,n as normalizeString}from"./normalizers.js";const srcProp=createPropDefinition("src","",normalizeString);export{srcProp as s};
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{b as watchValidator}from"./common.js";import{h as headingLevelOptions}from"./label.js";const validateLevel=(e,a)=>{watchValidator(e,"_level",e=>"number"==typeof e&&headingLevelOptions.includes(e),new Set(headingLevelOptions.map(String)),a,{defaultValue:1,required:!0})},watchHeadingLevel=(e,a)=>{validateLevel(e,a)};export{watchHeadingLevel as w};
4
+ import{h as headingLevelOptions}from"./level.js";import{b as watchValidator}from"./common.js";const watchHeadingLevel=(e,a)=>{watchValidator(e,"_level",e=>"number"==typeof e&&headingLevelOptions.includes(e),new Set(headingLevelOptions.map(String)),a,{defaultValue:1,required:!0})};export{watchHeadingLevel as w};