@public-ui/components 3.0.0-rc.1 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1163) hide show
  1. package/custom-elements.json +16 -412
  2. package/dist/cjs/Alert-9bb150c8.js +4 -0
  3. package/dist/cjs/Alert-9bb150c8.js.map +1 -0
  4. package/dist/cjs/{Collapsible-af4ab103.js → Collapsible-a2871736.js} +1 -1
  5. package/dist/cjs/{Collapsible-af4ab103.js.map → Collapsible-a2871736.js.map} +1 -1
  6. package/dist/cjs/FormFieldMsg-b0b8219b.js +4 -0
  7. package/dist/cjs/FormFieldMsg-b0b8219b.js.map +1 -0
  8. package/dist/cjs/{Heading-5ab6ddeb.js → Heading-e094a82c.js} +1 -1
  9. package/dist/cjs/{Heading-5ab6ddeb.js.map → Heading-e094a82c.js.map} +1 -1
  10. package/dist/cjs/Icon-1c216a0b.js +4 -0
  11. package/dist/cjs/Icon-1c216a0b.js.map +1 -0
  12. package/dist/cjs/InputContainerStateWrapper-96ae5e62.js +4 -0
  13. package/dist/cjs/InputContainerStateWrapper-96ae5e62.js.map +1 -0
  14. package/dist/cjs/InputStateWrapper-2f2a6a4c.js +4 -0
  15. package/dist/cjs/InputStateWrapper-2f2a6a4c.js.map +1 -0
  16. package/dist/cjs/{InternalUnderlinedBadgeText-6a5d3caa.js → InternalUnderlinedBadgeText-40b98d06.js} +1 -1
  17. package/dist/cjs/{InternalUnderlinedBadgeText-6a5d3caa.js.map → InternalUnderlinedBadgeText-40b98d06.js.map} +1 -1
  18. package/dist/cjs/Span-ce0201ad.js +4 -0
  19. package/dist/cjs/Span-ce0201ad.js.map +1 -0
  20. package/dist/cjs/{access-and-short-key-4b185f62.js → access-and-short-key-12a097ab.js} +1 -1
  21. package/dist/cjs/{access-and-short-key-4b185f62.js.map → access-and-short-key-12a097ab.js.map} +1 -1
  22. package/dist/cjs/{align-f4f3dfb6.js → align-b9732b91.js} +1 -1
  23. package/dist/cjs/{align-f4f3dfb6.js.map → align-b9732b91.js.map} +1 -1
  24. package/dist/cjs/app-globals-f7cbe009.js +4 -0
  25. package/dist/cjs/{app-globals-0bc138e9.js.map → app-globals-f7cbe009.js.map} +1 -1
  26. package/dist/cjs/{associated.controller-e7a1e9af.js → associated.controller-5e3fde43.js} +1 -1
  27. package/dist/cjs/{associated.controller-e7a1e9af.js.map → associated.controller-5e3fde43.js.map} +1 -1
  28. package/dist/cjs/{button-variant-acac72ee.js → button-variant-cd1a80cf.js} +1 -1
  29. package/dist/cjs/{button-variant-acac72ee.js.map → button-variant-cd1a80cf.js.map} +1 -1
  30. package/dist/cjs/callback-ab215ba6.js +4 -0
  31. package/dist/cjs/callback-ab215ba6.js.map +1 -0
  32. package/dist/cjs/{color-5ddd375e.js → color-2c30c52b.js} +1 -1
  33. package/dist/cjs/{color-5ddd375e.js.map → color-2c30c52b.js.map} +1 -1
  34. package/dist/cjs/component-names-6f6ca767.js +4 -0
  35. package/dist/cjs/component-names-6f6ca767.js.map +1 -0
  36. package/dist/cjs/{controller-4ad095de.js → controller-05315f00.js} +1 -1
  37. package/dist/cjs/{controller-4ad095de.js.map → controller-05315f00.js.map} +1 -1
  38. package/dist/cjs/controller-2522dc37.js +4 -0
  39. package/dist/cjs/{controller-3ba0a95f.js.map → controller-2522dc37.js.map} +1 -1
  40. package/dist/cjs/controller-5e1e0ecf.js +4 -0
  41. package/dist/cjs/controller-5e1e0ecf.js.map +1 -0
  42. package/dist/cjs/controller-c1c74e71.js +4 -0
  43. package/dist/cjs/controller-c1c74e71.js.map +1 -0
  44. package/dist/cjs/{controller-59d57d18.js → controller-c8cdb299.js} +1 -1
  45. package/dist/cjs/{controller-59d57d18.js.map → controller-c8cdb299.js.map} +1 -1
  46. package/dist/cjs/{controller-2cf5be5c.js → controller-cdb37bb6.js} +1 -1
  47. package/dist/cjs/{controller-2cf5be5c.js.map → controller-cdb37bb6.js.map} +1 -1
  48. package/dist/cjs/{controller-icon-0a07b9d4.js → controller-icon-3e50b371.js} +1 -1
  49. package/dist/cjs/{controller-icon-0a07b9d4.js.map → controller-icon-3e50b371.js.map} +1 -1
  50. package/dist/cjs/custom-class-3a1c18f3.js +4 -0
  51. package/dist/cjs/{custom-class-d8a5e95d.js.map → custom-class-3a1c18f3.js.map} +1 -1
  52. package/dist/cjs/{dev.utils-dd5eab59.js → dev.utils-6469f442.js} +1 -1
  53. package/dist/cjs/{dev.utils-dd5eab59.js.map → dev.utils-6469f442.js.map} +1 -1
  54. package/dist/cjs/{devtools-1b7a5946.js → devtools-b2565951.js} +1 -1
  55. package/dist/cjs/{devtools-1b7a5946.js.map → devtools-b2565951.js.map} +1 -1
  56. package/dist/cjs/disabled-5a2e250c.js +4 -0
  57. package/dist/cjs/{disabled-5eb4fde5.js.map → disabled-5a2e250c.js.map} +1 -1
  58. package/dist/cjs/events-fc641593.js +4 -0
  59. package/dist/cjs/events-fc641593.js.map +1 -0
  60. package/dist/cjs/getRenderStates-5aea416a.js +4 -0
  61. package/dist/cjs/getRenderStates-5aea416a.js.map +1 -0
  62. package/dist/cjs/has-closer-9b3c14a7.js +4 -0
  63. package/dist/cjs/{has-closer-9e124723.js.map → has-closer-9b3c14a7.js.map} +1 -1
  64. package/dist/cjs/has-counter-7318f6f4.js +4 -0
  65. package/dist/cjs/{has-counter-576de43f.js.map → has-counter-7318f6f4.js.map} +1 -1
  66. package/dist/cjs/hide-label-b0063224.js +4 -0
  67. package/dist/cjs/{hide-label-1783d2a4.js.map → hide-label-b0063224.js.map} +1 -1
  68. package/dist/cjs/href-2485cb51.js +4 -0
  69. package/dist/cjs/{href-50c41695.js.map → href-2485cb51.js.map} +1 -1
  70. package/dist/cjs/{icons-3917f9e0.js → icons-310a07cc.js} +1 -1
  71. package/dist/cjs/{icons-3917f9e0.js.map → icons-310a07cc.js.map} +1 -1
  72. package/dist/cjs/image-source-27335383.js +4 -0
  73. package/dist/cjs/{image-source-546dd85b.js.map → image-source-27335383.js.map} +1 -1
  74. package/dist/cjs/index-38f5f0b2.js +4 -0
  75. package/dist/cjs/index-38f5f0b2.js.map +1 -0
  76. package/dist/cjs/index-56ff9cf2.js +4 -0
  77. package/dist/cjs/{index-c048b81b.js.map → index-56ff9cf2.js.map} +1 -1
  78. package/dist/cjs/index.cjs.js +1 -1
  79. package/dist/cjs/index.cjs.js.map +1 -1
  80. package/dist/cjs/isObject-6090b636.js +4 -0
  81. package/dist/cjs/isObject-6090b636.js.map +1 -0
  82. package/dist/cjs/isString-8ded65b8.js +4 -0
  83. package/dist/cjs/isString-8ded65b8.js.map +1 -0
  84. package/dist/cjs/kol-abbr.cjs.entry.js +1 -1
  85. package/dist/cjs/kol-abbr.cjs.entry.js.map +1 -1
  86. package/dist/cjs/kol-accordion.cjs.entry.js +1 -1
  87. package/dist/cjs/kol-accordion.cjs.entry.js.map +1 -1
  88. package/dist/cjs/kol-alert-wc.cjs.entry.js +1 -1
  89. package/dist/cjs/kol-alert-wc.cjs.entry.js.map +1 -1
  90. package/dist/cjs/kol-alert.cjs.entry.js +1 -1
  91. package/dist/cjs/kol-alert.cjs.entry.js.map +1 -1
  92. package/dist/cjs/kol-avatar-wc.cjs.entry.js +1 -1
  93. package/dist/cjs/kol-avatar.cjs.entry.js +1 -1
  94. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  95. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  96. package/dist/cjs/kol-breadcrumb.cjs.entry.js +1 -1
  97. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  98. package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
  99. package/dist/cjs/kol-button-wc.cjs.entry.js +1 -1
  100. package/dist/cjs/kol-button-wc.cjs.entry.js.map +1 -1
  101. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  102. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  103. package/dist/cjs/kol-card.cjs.entry.js +1 -1
  104. package/dist/cjs/kol-card.cjs.entry.js.map +1 -1
  105. package/dist/cjs/kol-combobox.cjs.entry.js +1 -1
  106. package/dist/cjs/kol-combobox.cjs.entry.js.map +1 -1
  107. package/dist/cjs/kol-details.cjs.entry.js +1 -1
  108. package/dist/cjs/kol-details.cjs.entry.js.map +1 -1
  109. package/dist/cjs/kol-drawer.cjs.entry.js +1 -1
  110. package/dist/cjs/kol-drawer.cjs.entry.js.map +1 -1
  111. package/dist/cjs/kol-form.cjs.entry.js +1 -1
  112. package/dist/cjs/kol-form.cjs.entry.js.map +1 -1
  113. package/dist/cjs/kol-heading.cjs.entry.js +1 -1
  114. package/dist/cjs/kol-icon.cjs.entry.js +1 -1
  115. package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
  116. package/dist/cjs/kol-image.cjs.entry.js +1 -1
  117. package/dist/cjs/kol-image.cjs.entry.js.map +1 -1
  118. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  119. package/dist/cjs/kol-input-checkbox.cjs.entry.js.map +1 -1
  120. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  121. package/dist/cjs/kol-input-color.cjs.entry.js.map +1 -1
  122. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  123. package/dist/cjs/kol-input-date.cjs.entry.js.map +1 -1
  124. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  125. package/dist/cjs/kol-input-email.cjs.entry.js.map +1 -1
  126. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  127. package/dist/cjs/kol-input-file.cjs.entry.js.map +1 -1
  128. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  129. package/dist/cjs/kol-input-number.cjs.entry.js.map +1 -1
  130. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  131. package/dist/cjs/kol-input-password.cjs.entry.js.map +1 -1
  132. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  133. package/dist/cjs/kol-input-radio.cjs.entry.js.map +1 -1
  134. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  135. package/dist/cjs/kol-input-range.cjs.entry.js.map +1 -1
  136. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  137. package/dist/cjs/kol-input-text.cjs.entry.js.map +1 -1
  138. package/dist/cjs/kol-input.cjs.entry.js +1 -1
  139. package/dist/cjs/kol-input.cjs.entry.js.map +1 -1
  140. package/dist/cjs/kol-kolibri.cjs.entry.js +1 -1
  141. package/dist/cjs/kol-kolibri.cjs.entry.js.map +1 -1
  142. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  143. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  144. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  145. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  146. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  147. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  148. package/dist/cjs/kol-modal.cjs.entry.js +1 -1
  149. package/dist/cjs/kol-modal.cjs.entry.js.map +1 -1
  150. package/dist/cjs/kol-nav.cjs.entry.js +1 -1
  151. package/dist/cjs/kol-nav.cjs.entry.js.map +1 -1
  152. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  153. package/dist/cjs/kol-pagination.cjs.entry.js.map +1 -1
  154. package/dist/cjs/kol-popover-wc.cjs.entry.js +1 -1
  155. package/dist/cjs/kol-popover-wc.cjs.entry.js.map +1 -1
  156. package/dist/cjs/kol-progress.cjs.entry.js +1 -1
  157. package/dist/cjs/kol-progress.cjs.entry.js.map +1 -1
  158. package/dist/cjs/kol-quote.cjs.entry.js +1 -1
  159. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  160. package/dist/cjs/kol-select.cjs.entry.js.map +1 -1
  161. package/dist/cjs/kol-single-select.cjs.entry.js +1 -1
  162. package/dist/cjs/kol-single-select.cjs.entry.js.map +1 -1
  163. package/dist/cjs/kol-skip-nav.cjs.entry.js +1 -1
  164. package/dist/cjs/kol-skip-nav.cjs.entry.js.map +1 -1
  165. package/dist/cjs/kol-spin.cjs.entry.js +1 -1
  166. package/dist/cjs/kol-spin.cjs.entry.js.map +1 -1
  167. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  168. package/dist/cjs/kol-split-button.cjs.entry.js.map +1 -1
  169. package/dist/cjs/kol-symbol.cjs.entry.js +1 -1
  170. package/dist/cjs/kol-table-stateful.cjs.entry.js +1 -1
  171. package/dist/cjs/kol-table-stateful.cjs.entry.js.map +1 -1
  172. package/dist/cjs/kol-table-stateless-wc.cjs.entry.js +1 -1
  173. package/dist/cjs/kol-table-stateless-wc.cjs.entry.js.map +1 -1
  174. package/dist/cjs/kol-table-stateless.cjs.entry.js +1 -1
  175. package/dist/cjs/kol-table-stateless.cjs.entry.js.map +1 -1
  176. package/dist/cjs/kol-tabs.cjs.entry.js +1 -1
  177. package/dist/cjs/kol-tabs.cjs.entry.js.map +1 -1
  178. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  179. package/dist/cjs/kol-textarea.cjs.entry.js.map +1 -1
  180. package/dist/cjs/kol-toast-container.cjs.entry.js +1 -1
  181. package/dist/cjs/kol-toast-container.cjs.entry.js.map +1 -1
  182. package/dist/cjs/kol-toolbar.cjs.entry.js +1 -1
  183. package/dist/cjs/kol-toolbar.cjs.entry.js.map +1 -1
  184. package/dist/cjs/kol-tooltip-wc.cjs.entry.js +1 -1
  185. package/dist/cjs/kol-tooltip-wc.cjs.entry.js.map +1 -1
  186. package/dist/cjs/kol-tree-item-wc.cjs.entry.js +1 -1
  187. package/dist/cjs/kol-tree-item-wc.cjs.entry.js.map +1 -1
  188. package/dist/cjs/kol-tree-item.cjs.entry.js +1 -1
  189. package/dist/cjs/kol-tree-item.cjs.entry.js.map +1 -1
  190. package/dist/cjs/kol-tree-wc.cjs.entry.js +1 -1
  191. package/dist/cjs/kol-tree-wc.cjs.entry.js.map +1 -1
  192. package/dist/cjs/kol-tree.cjs.entry.js +1 -1
  193. package/dist/cjs/kol-tree.cjs.entry.js.map +1 -1
  194. package/dist/cjs/kol-version.cjs.entry.js +1 -1
  195. package/dist/cjs/kolibri.cjs.js +1 -1
  196. package/dist/cjs/{label-d84e4f92.js → label-b8654499.js} +1 -1
  197. package/dist/cjs/{label-d84e4f92.js.map → label-b8654499.js.map} +1 -1
  198. package/dist/cjs/loader.cjs.js +1 -1
  199. package/dist/cjs/msg-d4ce9850.js +4 -0
  200. package/dist/cjs/msg-d4ce9850.js.map +1 -0
  201. package/dist/cjs/open-5c1af49f.js +4 -0
  202. package/dist/cjs/{open-19fa99c9.js.map → open-5c1af49f.js.map} +1 -1
  203. package/dist/cjs/{prop.validators-37d21dea.js → prop.validators-96dfedce.js} +1 -1
  204. package/dist/cjs/{prop.validators-37d21dea.js.map → prop.validators-96dfedce.js.map} +1 -1
  205. package/dist/cjs/rows-782313b6.js +4 -0
  206. package/dist/cjs/{rows-fd18fa20.js.map → rows-782313b6.js.map} +1 -1
  207. package/dist/cjs/show-5b2be58e.js +4 -0
  208. package/dist/cjs/{show-f204ce41.js.map → show-5b2be58e.js.map} +1 -1
  209. package/dist/cjs/spell-check-5c5eee25.js +4 -0
  210. package/dist/cjs/{spell-check-2c944775.js.map → spell-check-5c5eee25.js.map} +1 -1
  211. package/dist/cjs/{suggestions-38ae7a17.js → suggestions-cd0a843d.js} +1 -1
  212. package/dist/cjs/{suggestions-38ae7a17.js.map → suggestions-cd0a843d.js.map} +1 -1
  213. package/dist/cjs/test-component.cjs.entry.js +1 -1
  214. package/dist/cjs/tooltip-align-3b9a6bde.js +4 -0
  215. package/dist/cjs/{tooltip-align-70093437.js.map → tooltip-align-3b9a6bde.js.map} +1 -1
  216. package/dist/cjs/{validation-6f90f7a8.js → validation-7ea25fa6.js} +1 -1
  217. package/dist/cjs/{validation-6f90f7a8.js.map → validation-7ea25fa6.js.map} +1 -1
  218. package/dist/cjs/{validation-7592f880.js → validation-fbc2d426.js} +1 -1
  219. package/dist/cjs/{validation-7592f880.js.map → validation-fbc2d426.js.map} +1 -1
  220. package/dist/components/Alert.js +1 -1
  221. package/dist/components/Alert.js.map +1 -1
  222. package/dist/components/FormFieldMsg.js +1 -1
  223. package/dist/components/FormFieldMsg.js.map +1 -1
  224. package/dist/components/Icon.js +4 -0
  225. package/dist/components/Icon.js.map +1 -0
  226. package/dist/components/InputContainerStateWrapper.js +4 -0
  227. package/dist/components/InputContainerStateWrapper.js.map +1 -0
  228. package/dist/components/InputStateWrapper.js +4 -0
  229. package/dist/components/InputStateWrapper.js.map +1 -0
  230. package/dist/components/Span.js +1 -1
  231. package/dist/components/Span.js.map +1 -1
  232. package/dist/components/access-and-short-key.js +1 -1
  233. package/dist/components/associated.controller.js +1 -1
  234. package/dist/components/callback.js +4 -0
  235. package/dist/components/callback.js.map +1 -0
  236. package/dist/components/color.js +1 -1
  237. package/dist/components/component-names.js +1 -1
  238. package/dist/components/component-names.js.map +1 -1
  239. package/dist/components/controller-icon.js +1 -1
  240. package/dist/components/controller.js +1 -1
  241. package/dist/components/controller2.js +1 -1
  242. package/dist/components/controller2.js.map +1 -1
  243. package/dist/components/controller3.js +1 -1
  244. package/dist/components/controller3.js.map +1 -1
  245. package/dist/components/controller4.js +1 -1
  246. package/dist/components/controller4.js.map +1 -1
  247. package/dist/components/controller5.js +1 -1
  248. package/dist/components/controller5.js.map +1 -1
  249. package/dist/components/controller6.js +4 -0
  250. package/dist/components/controller6.js.map +1 -0
  251. package/dist/components/devtools.js +1 -1
  252. package/dist/components/events.js +1 -1
  253. package/dist/components/events.js.map +1 -1
  254. package/dist/components/getRenderStates.js +4 -0
  255. package/dist/components/getRenderStates.js.map +1 -0
  256. package/dist/components/index.js +1 -1
  257. package/dist/components/index.js.map +1 -1
  258. package/dist/components/isObject.js +4 -0
  259. package/dist/components/isObject.js.map +1 -0
  260. package/dist/components/isString.js +4 -0
  261. package/dist/components/isString.js.map +1 -0
  262. package/dist/components/kol-abbr.js +1 -1
  263. package/dist/components/kol-abbr.js.map +1 -1
  264. package/dist/components/kol-accordion.js +1 -1
  265. package/dist/components/kol-accordion.js.map +1 -1
  266. package/dist/components/kol-alert-wc.js +1 -1
  267. package/dist/components/kol-alert-wc.js.map +1 -1
  268. package/dist/components/kol-alert.js +1 -1
  269. package/dist/components/kol-alert.js.map +1 -1
  270. package/dist/components/kol-badge.js +1 -1
  271. package/dist/components/kol-badge.js.map +1 -1
  272. package/dist/components/kol-breadcrumb.js +1 -1
  273. package/dist/components/kol-button-link.js +1 -1
  274. package/dist/components/kol-button-link.js.map +1 -1
  275. package/dist/components/kol-button-wc.js +1 -1
  276. package/dist/components/kol-button-wc.js.map +1 -1
  277. package/dist/components/kol-button.js +1 -1
  278. package/dist/components/kol-button.js.map +1 -1
  279. package/dist/components/kol-card.js +1 -1
  280. package/dist/components/kol-card.js.map +1 -1
  281. package/dist/components/kol-combobox.js +1 -1
  282. package/dist/components/kol-combobox.js.map +1 -1
  283. package/dist/components/kol-details.js +1 -1
  284. package/dist/components/kol-details.js.map +1 -1
  285. package/dist/components/kol-drawer.js +1 -1
  286. package/dist/components/kol-drawer.js.map +1 -1
  287. package/dist/components/kol-form.js +1 -1
  288. package/dist/components/kol-form.js.map +1 -1
  289. package/dist/components/kol-heading.js +1 -1
  290. package/dist/components/kol-icon.js +1 -1
  291. package/dist/components/kol-icon.js.map +1 -1
  292. package/dist/components/kol-image.js +1 -1
  293. package/dist/components/kol-image.js.map +1 -1
  294. package/dist/components/kol-input-checkbox.js +1 -1
  295. package/dist/components/kol-input-checkbox.js.map +1 -1
  296. package/dist/components/kol-input-color.js +1 -1
  297. package/dist/components/kol-input-color.js.map +1 -1
  298. package/dist/components/kol-input-date.js +1 -1
  299. package/dist/components/kol-input-date.js.map +1 -1
  300. package/dist/components/kol-input-email.js +1 -1
  301. package/dist/components/kol-input-email.js.map +1 -1
  302. package/dist/components/kol-input-file.js +1 -1
  303. package/dist/components/kol-input-file.js.map +1 -1
  304. package/dist/components/kol-input-number.js +1 -1
  305. package/dist/components/kol-input-number.js.map +1 -1
  306. package/dist/components/kol-input-password.js +1 -1
  307. package/dist/components/kol-input-password.js.map +1 -1
  308. package/dist/components/kol-input-radio.js +1 -1
  309. package/dist/components/kol-input-radio.js.map +1 -1
  310. package/dist/components/kol-input-range.js +1 -1
  311. package/dist/components/kol-input-range.js.map +1 -1
  312. package/dist/components/kol-input-text.js +1 -1
  313. package/dist/components/kol-input-text.js.map +1 -1
  314. package/dist/components/kol-input.js +1 -1
  315. package/dist/components/kol-input.js.map +1 -1
  316. package/dist/components/kol-kolibri.js +1 -1
  317. package/dist/components/kol-kolibri.js.map +1 -1
  318. package/dist/components/kol-link-button.js +1 -1
  319. package/dist/components/kol-link-button.js.map +1 -1
  320. package/dist/components/kol-link-wc.js +1 -1
  321. package/dist/components/kol-link-wc.js.map +1 -1
  322. package/dist/components/kol-link.js +1 -1
  323. package/dist/components/kol-link.js.map +1 -1
  324. package/dist/components/kol-modal.js +1 -1
  325. package/dist/components/kol-modal.js.map +1 -1
  326. package/dist/components/kol-nav.js +1 -1
  327. package/dist/components/kol-nav.js.map +1 -1
  328. package/dist/components/kol-pagination.js +1 -1
  329. package/dist/components/kol-pagination.js.map +1 -1
  330. package/dist/components/kol-popover-wc.js +1 -1
  331. package/dist/components/kol-popover-wc.js.map +1 -1
  332. package/dist/components/kol-progress.js +1 -1
  333. package/dist/components/kol-progress.js.map +1 -1
  334. package/dist/components/kol-quote.js +1 -1
  335. package/dist/components/kol-select.js +1 -1
  336. package/dist/components/kol-select.js.map +1 -1
  337. package/dist/components/kol-single-select.js +1 -1
  338. package/dist/components/kol-single-select.js.map +1 -1
  339. package/dist/components/kol-skip-nav.js +1 -1
  340. package/dist/components/kol-skip-nav.js.map +1 -1
  341. package/dist/components/kol-spin.js +1 -1
  342. package/dist/components/kol-spin.js.map +1 -1
  343. package/dist/components/kol-split-button.js +1 -1
  344. package/dist/components/kol-split-button.js.map +1 -1
  345. package/dist/components/kol-symbol.js +1 -1
  346. package/dist/components/kol-table-stateful.js +1 -1
  347. package/dist/components/kol-table-stateful.js.map +1 -1
  348. package/dist/components/kol-table-stateless-wc.js +1 -1
  349. package/dist/components/kol-table-stateless-wc.js.map +1 -1
  350. package/dist/components/kol-table-stateless.js +1 -1
  351. package/dist/components/kol-table-stateless.js.map +1 -1
  352. package/dist/components/kol-tabs.js +1 -1
  353. package/dist/components/kol-tabs.js.map +1 -1
  354. package/dist/components/kol-textarea.js +1 -1
  355. package/dist/components/kol-textarea.js.map +1 -1
  356. package/dist/components/kol-toast-container.js +1 -1
  357. package/dist/components/kol-toast-container.js.map +1 -1
  358. package/dist/components/kol-toolbar.js +1 -1
  359. package/dist/components/kol-toolbar.js.map +1 -1
  360. package/dist/components/kol-tooltip-wc.js +1 -1
  361. package/dist/components/kol-tooltip-wc.js.map +1 -1
  362. package/dist/components/kol-tree-item-wc.js +1 -1
  363. package/dist/components/kol-tree-item-wc.js.map +1 -1
  364. package/dist/components/kol-tree-item.js +1 -1
  365. package/dist/components/kol-tree-item.js.map +1 -1
  366. package/dist/components/kol-tree-wc.js +1 -1
  367. package/dist/components/kol-tree-wc.js.map +1 -1
  368. package/dist/components/kol-tree.js +1 -1
  369. package/dist/components/kol-tree.js.map +1 -1
  370. package/dist/components/kol-version.js +1 -1
  371. package/dist/components/label.js +1 -1
  372. package/dist/components/msg.js +4 -0
  373. package/dist/components/msg.js.map +1 -0
  374. package/dist/components/prop.validators.js +1 -1
  375. package/dist/components/prop.validators.js.map +1 -1
  376. package/dist/components/rows.js +1 -1
  377. package/dist/components/suggestions.js +1 -1
  378. package/dist/components/validation2.js +1 -1
  379. package/dist/esm/Alert-210f80e8.js +4 -0
  380. package/dist/esm/Alert-210f80e8.js.map +1 -0
  381. package/dist/esm/{Collapsible-8a747ce1.js → Collapsible-83f17a92.js} +1 -1
  382. package/dist/esm/{Collapsible-8a747ce1.js.map → Collapsible-83f17a92.js.map} +1 -1
  383. package/dist/esm/FormFieldMsg-6dafd67d.js +4 -0
  384. package/dist/esm/FormFieldMsg-6dafd67d.js.map +1 -0
  385. package/dist/esm/{Heading-459bb069.js → Heading-def0af88.js} +1 -1
  386. package/dist/esm/{Heading-459bb069.js.map → Heading-def0af88.js.map} +1 -1
  387. package/dist/esm/Icon-5d99f9b6.js +4 -0
  388. package/dist/esm/Icon-5d99f9b6.js.map +1 -0
  389. package/dist/esm/InputContainerStateWrapper-a321a9b8.js +4 -0
  390. package/dist/esm/InputContainerStateWrapper-a321a9b8.js.map +1 -0
  391. package/dist/esm/InputStateWrapper-2307118b.js +4 -0
  392. package/dist/esm/InputStateWrapper-2307118b.js.map +1 -0
  393. package/dist/esm/{InternalUnderlinedBadgeText-9ed66543.js → InternalUnderlinedBadgeText-f618013b.js} +1 -1
  394. package/dist/esm/{InternalUnderlinedBadgeText-9ed66543.js.map → InternalUnderlinedBadgeText-f618013b.js.map} +1 -1
  395. package/dist/esm/Span-0619f989.js +4 -0
  396. package/dist/esm/Span-0619f989.js.map +1 -0
  397. package/dist/esm/{access-and-short-key-864aafba.js → access-and-short-key-9cca88b8.js} +1 -1
  398. package/dist/esm/{access-and-short-key-864aafba.js.map → access-and-short-key-9cca88b8.js.map} +1 -1
  399. package/dist/esm/{align-3f029493.js → align-4719d626.js} +1 -1
  400. package/dist/esm/{align-3f029493.js.map → align-4719d626.js.map} +1 -1
  401. package/dist/esm/app-globals-f90e0166.js +4 -0
  402. package/dist/esm/{app-globals-8c84e8a4.js.map → app-globals-f90e0166.js.map} +1 -1
  403. package/dist/esm/{associated.controller-bce3d721.js → associated.controller-52d302aa.js} +1 -1
  404. package/dist/esm/{associated.controller-bce3d721.js.map → associated.controller-52d302aa.js.map} +1 -1
  405. package/dist/esm/{button-variant-f5fd361b.js → button-variant-ce5f212b.js} +1 -1
  406. package/dist/esm/{button-variant-f5fd361b.js.map → button-variant-ce5f212b.js.map} +1 -1
  407. package/dist/esm/callback-fd6ab619.js +4 -0
  408. package/dist/esm/callback-fd6ab619.js.map +1 -0
  409. package/dist/esm/{color-cce3e447.js → color-62f7b76a.js} +1 -1
  410. package/dist/esm/{color-cce3e447.js.map → color-62f7b76a.js.map} +1 -1
  411. package/dist/esm/component-names-50e16b86.js +4 -0
  412. package/dist/esm/component-names-50e16b86.js.map +1 -0
  413. package/dist/esm/{controller-1739038d.js → controller-38dd835b.js} +1 -1
  414. package/dist/esm/{controller-1739038d.js.map → controller-38dd835b.js.map} +1 -1
  415. package/dist/esm/{controller-506a6c81.js → controller-4af5f563.js} +1 -1
  416. package/dist/esm/{controller-506a6c81.js.map → controller-4af5f563.js.map} +1 -1
  417. package/dist/esm/controller-654e5ee7.js +4 -0
  418. package/dist/esm/controller-654e5ee7.js.map +1 -0
  419. package/dist/esm/{controller-68fd9cd8.js → controller-768ea58e.js} +1 -1
  420. package/dist/esm/{controller-68fd9cd8.js.map → controller-768ea58e.js.map} +1 -1
  421. package/dist/esm/controller-cc41fe9f.js +4 -0
  422. package/dist/esm/controller-cc41fe9f.js.map +1 -0
  423. package/dist/esm/{controller-6c2714a5.js → controller-e3f702f2.js} +1 -1
  424. package/dist/esm/{controller-6c2714a5.js.map → controller-e3f702f2.js.map} +1 -1
  425. package/dist/esm/{controller-icon-e20e2d63.js → controller-icon-ebd41784.js} +1 -1
  426. package/dist/esm/{controller-icon-e20e2d63.js.map → controller-icon-ebd41784.js.map} +1 -1
  427. package/dist/esm/custom-class-ac49545a.js +4 -0
  428. package/dist/esm/{custom-class-9311655e.js.map → custom-class-ac49545a.js.map} +1 -1
  429. package/dist/esm/{dev.utils-945026e6.js → dev.utils-47d07d5b.js} +1 -1
  430. package/dist/esm/{dev.utils-945026e6.js.map → dev.utils-47d07d5b.js.map} +1 -1
  431. package/dist/esm/{devtools-6829b25d.js → devtools-17ed9dde.js} +1 -1
  432. package/dist/esm/{devtools-6829b25d.js.map → devtools-17ed9dde.js.map} +1 -1
  433. package/dist/esm/{disabled-5fc4b444.js → disabled-dad7478c.js} +1 -1
  434. package/dist/esm/{disabled-5fc4b444.js.map → disabled-dad7478c.js.map} +1 -1
  435. package/dist/esm/events-5adf6b62.js +4 -0
  436. package/dist/esm/events-5adf6b62.js.map +1 -0
  437. package/dist/esm/getRenderStates-b24b4a43.js +4 -0
  438. package/dist/esm/getRenderStates-b24b4a43.js.map +1 -0
  439. package/dist/esm/{has-closer-aa8f6369.js → has-closer-a4e62c58.js} +1 -1
  440. package/dist/esm/{has-closer-aa8f6369.js.map → has-closer-a4e62c58.js.map} +1 -1
  441. package/dist/esm/{has-counter-a9dacd37.js → has-counter-a43c36ef.js} +1 -1
  442. package/dist/esm/{has-counter-a9dacd37.js.map → has-counter-a43c36ef.js.map} +1 -1
  443. package/dist/esm/{hide-label-db0db59c.js → hide-label-429a15ea.js} +1 -1
  444. package/dist/esm/{hide-label-db0db59c.js.map → hide-label-429a15ea.js.map} +1 -1
  445. package/dist/esm/{href-31b01f08.js → href-d8ec67f8.js} +1 -1
  446. package/dist/esm/{href-31b01f08.js.map → href-d8ec67f8.js.map} +1 -1
  447. package/dist/esm/{icons-f3b7aabd.js → icons-199f1746.js} +1 -1
  448. package/dist/esm/{icons-f3b7aabd.js.map → icons-199f1746.js.map} +1 -1
  449. package/dist/esm/{image-source-a6af4847.js → image-source-320efd4f.js} +1 -1
  450. package/dist/esm/{image-source-a6af4847.js.map → image-source-320efd4f.js.map} +1 -1
  451. package/dist/esm/index-8a5f476c.js +4 -0
  452. package/dist/esm/{index-336d0fea.js.map → index-8a5f476c.js.map} +1 -1
  453. package/dist/esm/index-da3e0c00.js +4 -0
  454. package/dist/esm/index-da3e0c00.js.map +1 -0
  455. package/dist/esm/index.js +1 -1
  456. package/dist/esm/index.js.map +1 -1
  457. package/dist/esm/isObject-ffcbbb76.js +4 -0
  458. package/dist/esm/isObject-ffcbbb76.js.map +1 -0
  459. package/dist/esm/isString-5af96894.js +4 -0
  460. package/dist/esm/isString-5af96894.js.map +1 -0
  461. package/dist/esm/kol-abbr.entry.js +1 -1
  462. package/dist/esm/kol-abbr.entry.js.map +1 -1
  463. package/dist/esm/kol-accordion.entry.js +1 -1
  464. package/dist/esm/kol-accordion.entry.js.map +1 -1
  465. package/dist/esm/kol-alert-wc.entry.js +1 -1
  466. package/dist/esm/kol-alert-wc.entry.js.map +1 -1
  467. package/dist/esm/kol-alert.entry.js +1 -1
  468. package/dist/esm/kol-alert.entry.js.map +1 -1
  469. package/dist/esm/kol-avatar-wc.entry.js +1 -1
  470. package/dist/esm/kol-avatar.entry.js +1 -1
  471. package/dist/esm/kol-badge.entry.js +1 -1
  472. package/dist/esm/kol-badge.entry.js.map +1 -1
  473. package/dist/esm/kol-breadcrumb.entry.js +1 -1
  474. package/dist/esm/kol-button-link.entry.js +1 -1
  475. package/dist/esm/kol-button-link.entry.js.map +1 -1
  476. package/dist/esm/kol-button-wc.entry.js +1 -1
  477. package/dist/esm/kol-button-wc.entry.js.map +1 -1
  478. package/dist/esm/kol-button.entry.js +1 -1
  479. package/dist/esm/kol-button.entry.js.map +1 -1
  480. package/dist/esm/kol-card.entry.js +1 -1
  481. package/dist/esm/kol-card.entry.js.map +1 -1
  482. package/dist/esm/kol-combobox.entry.js +1 -1
  483. package/dist/esm/kol-combobox.entry.js.map +1 -1
  484. package/dist/esm/kol-details.entry.js +1 -1
  485. package/dist/esm/kol-details.entry.js.map +1 -1
  486. package/dist/esm/kol-drawer.entry.js +1 -1
  487. package/dist/esm/kol-drawer.entry.js.map +1 -1
  488. package/dist/esm/kol-form.entry.js +1 -1
  489. package/dist/esm/kol-form.entry.js.map +1 -1
  490. package/dist/esm/kol-heading.entry.js +1 -1
  491. package/dist/esm/kol-icon.entry.js +1 -1
  492. package/dist/esm/kol-icon.entry.js.map +1 -1
  493. package/dist/esm/kol-image.entry.js +1 -1
  494. package/dist/esm/kol-image.entry.js.map +1 -1
  495. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  496. package/dist/esm/kol-input-checkbox.entry.js.map +1 -1
  497. package/dist/esm/kol-input-color.entry.js +1 -1
  498. package/dist/esm/kol-input-color.entry.js.map +1 -1
  499. package/dist/esm/kol-input-date.entry.js +1 -1
  500. package/dist/esm/kol-input-date.entry.js.map +1 -1
  501. package/dist/esm/kol-input-email.entry.js +1 -1
  502. package/dist/esm/kol-input-email.entry.js.map +1 -1
  503. package/dist/esm/kol-input-file.entry.js +1 -1
  504. package/dist/esm/kol-input-file.entry.js.map +1 -1
  505. package/dist/esm/kol-input-number.entry.js +1 -1
  506. package/dist/esm/kol-input-number.entry.js.map +1 -1
  507. package/dist/esm/kol-input-password.entry.js +1 -1
  508. package/dist/esm/kol-input-password.entry.js.map +1 -1
  509. package/dist/esm/kol-input-radio.entry.js +1 -1
  510. package/dist/esm/kol-input-radio.entry.js.map +1 -1
  511. package/dist/esm/kol-input-range.entry.js +1 -1
  512. package/dist/esm/kol-input-range.entry.js.map +1 -1
  513. package/dist/esm/kol-input-text.entry.js +1 -1
  514. package/dist/esm/kol-input-text.entry.js.map +1 -1
  515. package/dist/esm/kol-input.entry.js +1 -1
  516. package/dist/esm/kol-input.entry.js.map +1 -1
  517. package/dist/esm/kol-kolibri.entry.js +1 -1
  518. package/dist/esm/kol-kolibri.entry.js.map +1 -1
  519. package/dist/esm/kol-link-button.entry.js +1 -1
  520. package/dist/esm/kol-link-button.entry.js.map +1 -1
  521. package/dist/esm/kol-link-wc.entry.js +1 -1
  522. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  523. package/dist/esm/kol-link.entry.js +1 -1
  524. package/dist/esm/kol-link.entry.js.map +1 -1
  525. package/dist/esm/kol-modal.entry.js +1 -1
  526. package/dist/esm/kol-modal.entry.js.map +1 -1
  527. package/dist/esm/kol-nav.entry.js +1 -1
  528. package/dist/esm/kol-nav.entry.js.map +1 -1
  529. package/dist/esm/kol-pagination.entry.js +1 -1
  530. package/dist/esm/kol-pagination.entry.js.map +1 -1
  531. package/dist/esm/kol-popover-wc.entry.js +1 -1
  532. package/dist/esm/kol-popover-wc.entry.js.map +1 -1
  533. package/dist/esm/kol-progress.entry.js +1 -1
  534. package/dist/esm/kol-progress.entry.js.map +1 -1
  535. package/dist/esm/kol-quote.entry.js +1 -1
  536. package/dist/esm/kol-select.entry.js +1 -1
  537. package/dist/esm/kol-select.entry.js.map +1 -1
  538. package/dist/esm/kol-single-select.entry.js +1 -1
  539. package/dist/esm/kol-single-select.entry.js.map +1 -1
  540. package/dist/esm/kol-skip-nav.entry.js +1 -1
  541. package/dist/esm/kol-skip-nav.entry.js.map +1 -1
  542. package/dist/esm/kol-spin.entry.js +1 -1
  543. package/dist/esm/kol-spin.entry.js.map +1 -1
  544. package/dist/esm/kol-split-button.entry.js +1 -1
  545. package/dist/esm/kol-split-button.entry.js.map +1 -1
  546. package/dist/esm/kol-symbol.entry.js +1 -1
  547. package/dist/esm/kol-table-stateful.entry.js +1 -1
  548. package/dist/esm/kol-table-stateful.entry.js.map +1 -1
  549. package/dist/esm/kol-table-stateless-wc.entry.js +1 -1
  550. package/dist/esm/kol-table-stateless-wc.entry.js.map +1 -1
  551. package/dist/esm/kol-table-stateless.entry.js +1 -1
  552. package/dist/esm/kol-table-stateless.entry.js.map +1 -1
  553. package/dist/esm/kol-tabs.entry.js +1 -1
  554. package/dist/esm/kol-tabs.entry.js.map +1 -1
  555. package/dist/esm/kol-textarea.entry.js +1 -1
  556. package/dist/esm/kol-textarea.entry.js.map +1 -1
  557. package/dist/esm/kol-toast-container.entry.js +1 -1
  558. package/dist/esm/kol-toast-container.entry.js.map +1 -1
  559. package/dist/esm/kol-toolbar.entry.js +1 -1
  560. package/dist/esm/kol-toolbar.entry.js.map +1 -1
  561. package/dist/esm/kol-tooltip-wc.entry.js +1 -1
  562. package/dist/esm/kol-tooltip-wc.entry.js.map +1 -1
  563. package/dist/esm/kol-tree-item-wc.entry.js +1 -1
  564. package/dist/esm/kol-tree-item-wc.entry.js.map +1 -1
  565. package/dist/esm/kol-tree-item.entry.js +1 -1
  566. package/dist/esm/kol-tree-item.entry.js.map +1 -1
  567. package/dist/esm/kol-tree-wc.entry.js +1 -1
  568. package/dist/esm/kol-tree-wc.entry.js.map +1 -1
  569. package/dist/esm/kol-tree.entry.js +1 -1
  570. package/dist/esm/kol-tree.entry.js.map +1 -1
  571. package/dist/esm/kol-version.entry.js +1 -1
  572. package/dist/esm/kolibri.js +1 -1
  573. package/dist/esm/{label-d70e7c34.js → label-d0315384.js} +1 -1
  574. package/dist/esm/{label-d70e7c34.js.map → label-d0315384.js.map} +1 -1
  575. package/dist/esm/loader.js +1 -1
  576. package/dist/esm/msg-93978a32.js +4 -0
  577. package/dist/esm/msg-93978a32.js.map +1 -0
  578. package/dist/esm/{open-f7031548.js → open-20d08415.js} +1 -1
  579. package/dist/esm/{open-f7031548.js.map → open-20d08415.js.map} +1 -1
  580. package/dist/esm/prop.validators-9feb1d92.js +4 -0
  581. package/dist/esm/{prop.validators-c5e6ad2d.js.map → prop.validators-9feb1d92.js.map} +1 -1
  582. package/dist/esm/{rows-64f9b5cb.js → rows-26af6558.js} +1 -1
  583. package/dist/esm/{rows-64f9b5cb.js.map → rows-26af6558.js.map} +1 -1
  584. package/dist/esm/show-484b637e.js +4 -0
  585. package/dist/esm/{show-5d826542.js.map → show-484b637e.js.map} +1 -1
  586. package/dist/esm/spell-check-60fa0b9f.js +4 -0
  587. package/dist/esm/{spell-check-5ac5a135.js.map → spell-check-60fa0b9f.js.map} +1 -1
  588. package/dist/esm/{suggestions-33f55ec2.js → suggestions-f139f5ec.js} +1 -1
  589. package/dist/esm/{suggestions-33f55ec2.js.map → suggestions-f139f5ec.js.map} +1 -1
  590. package/dist/esm/test-component.entry.js +1 -1
  591. package/dist/esm/{tooltip-align-c001aae2.js → tooltip-align-8e0fa436.js} +1 -1
  592. package/dist/esm/{tooltip-align-c001aae2.js.map → tooltip-align-8e0fa436.js.map} +1 -1
  593. package/dist/esm/{validation-1a210179.js → validation-0c197148.js} +1 -1
  594. package/dist/esm/{validation-1a210179.js.map → validation-0c197148.js.map} +1 -1
  595. package/dist/esm/{validation-e83461ea.js → validation-14b61e5a.js} +1 -1
  596. package/dist/esm/{validation-e83461ea.js.map → validation-14b61e5a.js.map} +1 -1
  597. package/dist/kolibri/Alert-210f80e8.js +4 -0
  598. package/dist/kolibri/Alert-210f80e8.js.map +1 -0
  599. package/dist/kolibri/{Collapsible-8a747ce1.js → Collapsible-83f17a92.js} +1 -1
  600. package/dist/kolibri/FormFieldMsg-6dafd67d.js +4 -0
  601. package/dist/kolibri/FormFieldMsg-6dafd67d.js.map +1 -0
  602. package/dist/kolibri/{Heading-459bb069.js → Heading-def0af88.js} +1 -1
  603. package/dist/kolibri/Icon-5d99f9b6.js +4 -0
  604. package/dist/kolibri/Icon-5d99f9b6.js.map +1 -0
  605. package/dist/kolibri/InputContainerStateWrapper-a321a9b8.js +4 -0
  606. package/dist/kolibri/InputContainerStateWrapper-a321a9b8.js.map +1 -0
  607. package/dist/kolibri/InputStateWrapper-2307118b.js +4 -0
  608. package/dist/kolibri/InputStateWrapper-2307118b.js.map +1 -0
  609. package/dist/kolibri/InternalUnderlinedBadgeText-f618013b.js +4 -0
  610. package/dist/kolibri/Span-0619f989.js +4 -0
  611. package/dist/kolibri/Span-0619f989.js.map +1 -0
  612. package/dist/kolibri/{access-and-short-key-864aafba.js → access-and-short-key-9cca88b8.js} +1 -1
  613. package/dist/kolibri/{align-3f029493.js → align-4719d626.js} +1 -1
  614. package/dist/kolibri/app-globals-f90e0166.js +4 -0
  615. package/dist/kolibri/{associated.controller-bce3d721.js → associated.controller-52d302aa.js} +1 -1
  616. package/dist/kolibri/{button-variant-f5fd361b.js → button-variant-ce5f212b.js} +1 -1
  617. package/dist/kolibri/callback-fd6ab619.js +4 -0
  618. package/dist/kolibri/callback-fd6ab619.js.map +1 -0
  619. package/dist/kolibri/{color-cce3e447.js → color-62f7b76a.js} +1 -1
  620. package/dist/kolibri/component-names-50e16b86.js +4 -0
  621. package/dist/kolibri/component-names-50e16b86.js.map +1 -0
  622. package/dist/kolibri/{controller-1739038d.js → controller-38dd835b.js} +1 -1
  623. package/dist/kolibri/{controller-506a6c81.js → controller-4af5f563.js} +1 -1
  624. package/dist/kolibri/controller-654e5ee7.js +4 -0
  625. package/dist/kolibri/controller-654e5ee7.js.map +1 -0
  626. package/dist/kolibri/{controller-68fd9cd8.js → controller-768ea58e.js} +1 -1
  627. package/dist/kolibri/controller-cc41fe9f.js +4 -0
  628. package/dist/kolibri/controller-cc41fe9f.js.map +1 -0
  629. package/dist/kolibri/{controller-6c2714a5.js → controller-e3f702f2.js} +1 -1
  630. package/dist/kolibri/controller-icon-ebd41784.js +4 -0
  631. package/dist/kolibri/custom-class-ac49545a.js +4 -0
  632. package/dist/kolibri/{dev.utils-945026e6.js → dev.utils-47d07d5b.js} +1 -1
  633. package/dist/kolibri/devtools-17ed9dde.js +4 -0
  634. package/dist/kolibri/{devtools-6829b25d.js.map → devtools-17ed9dde.js.map} +1 -1
  635. package/dist/kolibri/{disabled-5fc4b444.js → disabled-dad7478c.js} +1 -1
  636. package/dist/kolibri/events-5adf6b62.js +4 -0
  637. package/dist/kolibri/events-5adf6b62.js.map +1 -0
  638. package/dist/kolibri/getRenderStates-b24b4a43.js +4 -0
  639. package/dist/kolibri/getRenderStates-b24b4a43.js.map +1 -0
  640. package/dist/kolibri/has-closer-a4e62c58.js +4 -0
  641. package/dist/kolibri/has-counter-a43c36ef.js +4 -0
  642. package/dist/kolibri/hide-label-429a15ea.js +4 -0
  643. package/dist/kolibri/href-d8ec67f8.js +4 -0
  644. package/dist/kolibri/{icons-f3b7aabd.js → icons-199f1746.js} +1 -1
  645. package/dist/kolibri/image-source-320efd4f.js +4 -0
  646. package/dist/kolibri/{index-336d0fea.js → index-8a5f476c.js} +1 -1
  647. package/dist/kolibri/{index-336d0fea.js.map → index-8a5f476c.js.map} +1 -1
  648. package/dist/kolibri/index-da3e0c00.js +4 -0
  649. package/dist/kolibri/index-da3e0c00.js.map +1 -0
  650. package/dist/kolibri/index.esm.js +1 -1
  651. package/dist/kolibri/index.esm.js.map +1 -1
  652. package/dist/kolibri/isObject-ffcbbb76.js +4 -0
  653. package/dist/kolibri/isObject-ffcbbb76.js.map +1 -0
  654. package/dist/kolibri/isString-5af96894.js +4 -0
  655. package/dist/kolibri/isString-5af96894.js.map +1 -0
  656. package/dist/kolibri/kol-abbr.entry.js +1 -1
  657. package/dist/kolibri/kol-abbr.entry.js.map +1 -1
  658. package/dist/kolibri/kol-accordion.entry.js +1 -1
  659. package/dist/kolibri/kol-accordion.entry.js.map +1 -1
  660. package/dist/kolibri/kol-alert-wc.entry.js +1 -1
  661. package/dist/kolibri/kol-alert-wc.entry.js.map +1 -1
  662. package/dist/kolibri/kol-alert.entry.js +1 -1
  663. package/dist/kolibri/kol-alert.entry.js.map +1 -1
  664. package/dist/kolibri/kol-avatar-wc.entry.js +1 -1
  665. package/dist/kolibri/kol-avatar.entry.js +1 -1
  666. package/dist/kolibri/kol-badge.entry.js +1 -1
  667. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  668. package/dist/kolibri/kol-breadcrumb.entry.js +1 -1
  669. package/dist/kolibri/kol-button-link.entry.js +1 -1
  670. package/dist/kolibri/kol-button-link.entry.js.map +1 -1
  671. package/dist/kolibri/kol-button-wc.entry.js +1 -1
  672. package/dist/kolibri/kol-button-wc.entry.js.map +1 -1
  673. package/dist/kolibri/kol-button.entry.js +1 -1
  674. package/dist/kolibri/kol-button.entry.js.map +1 -1
  675. package/dist/kolibri/kol-card.entry.js +1 -1
  676. package/dist/kolibri/kol-card.entry.js.map +1 -1
  677. package/dist/kolibri/kol-combobox.entry.js +1 -1
  678. package/dist/kolibri/kol-combobox.entry.js.map +1 -1
  679. package/dist/kolibri/kol-details.entry.js +1 -1
  680. package/dist/kolibri/kol-details.entry.js.map +1 -1
  681. package/dist/kolibri/kol-drawer.entry.js +1 -1
  682. package/dist/kolibri/kol-drawer.entry.js.map +1 -1
  683. package/dist/kolibri/kol-form.entry.js +1 -1
  684. package/dist/kolibri/kol-form.entry.js.map +1 -1
  685. package/dist/kolibri/kol-heading.entry.js +1 -1
  686. package/dist/kolibri/kol-icon.entry.js +1 -1
  687. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  688. package/dist/kolibri/kol-image.entry.js +1 -1
  689. package/dist/kolibri/kol-image.entry.js.map +1 -1
  690. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  691. package/dist/kolibri/kol-input-checkbox.entry.js.map +1 -1
  692. package/dist/kolibri/kol-input-color.entry.js +1 -1
  693. package/dist/kolibri/kol-input-color.entry.js.map +1 -1
  694. package/dist/kolibri/kol-input-date.entry.js +1 -1
  695. package/dist/kolibri/kol-input-date.entry.js.map +1 -1
  696. package/dist/kolibri/kol-input-email.entry.js +1 -1
  697. package/dist/kolibri/kol-input-email.entry.js.map +1 -1
  698. package/dist/kolibri/kol-input-file.entry.js +1 -1
  699. package/dist/kolibri/kol-input-file.entry.js.map +1 -1
  700. package/dist/kolibri/kol-input-number.entry.js +1 -1
  701. package/dist/kolibri/kol-input-number.entry.js.map +1 -1
  702. package/dist/kolibri/kol-input-password.entry.js +1 -1
  703. package/dist/kolibri/kol-input-password.entry.js.map +1 -1
  704. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  705. package/dist/kolibri/kol-input-radio.entry.js.map +1 -1
  706. package/dist/kolibri/kol-input-range.entry.js +1 -1
  707. package/dist/kolibri/kol-input-range.entry.js.map +1 -1
  708. package/dist/kolibri/kol-input-text.entry.js +1 -1
  709. package/dist/kolibri/kol-input-text.entry.js.map +1 -1
  710. package/dist/kolibri/kol-input.entry.js +1 -1
  711. package/dist/kolibri/kol-input.entry.js.map +1 -1
  712. package/dist/kolibri/kol-kolibri.entry.js +1 -1
  713. package/dist/kolibri/kol-kolibri.entry.js.map +1 -1
  714. package/dist/kolibri/kol-link-button.entry.js +1 -1
  715. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  716. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  717. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  718. package/dist/kolibri/kol-link.entry.js +1 -1
  719. package/dist/kolibri/kol-link.entry.js.map +1 -1
  720. package/dist/kolibri/kol-modal.entry.js +1 -1
  721. package/dist/kolibri/kol-modal.entry.js.map +1 -1
  722. package/dist/kolibri/kol-nav.entry.js +1 -1
  723. package/dist/kolibri/kol-nav.entry.js.map +1 -1
  724. package/dist/kolibri/kol-pagination.entry.js +1 -1
  725. package/dist/kolibri/kol-pagination.entry.js.map +1 -1
  726. package/dist/kolibri/kol-popover-wc.entry.js +1 -1
  727. package/dist/kolibri/kol-popover-wc.entry.js.map +1 -1
  728. package/dist/kolibri/kol-progress.entry.js +1 -1
  729. package/dist/kolibri/kol-progress.entry.js.map +1 -1
  730. package/dist/kolibri/kol-quote.entry.js +1 -1
  731. package/dist/kolibri/kol-select.entry.js +1 -1
  732. package/dist/kolibri/kol-select.entry.js.map +1 -1
  733. package/dist/kolibri/kol-single-select.entry.js +1 -1
  734. package/dist/kolibri/kol-single-select.entry.js.map +1 -1
  735. package/dist/kolibri/kol-skip-nav.entry.js +1 -1
  736. package/dist/kolibri/kol-skip-nav.entry.js.map +1 -1
  737. package/dist/kolibri/kol-spin.entry.js +1 -1
  738. package/dist/kolibri/kol-spin.entry.js.map +1 -1
  739. package/dist/kolibri/kol-split-button.entry.js +1 -1
  740. package/dist/kolibri/kol-split-button.entry.js.map +1 -1
  741. package/dist/kolibri/kol-symbol.entry.js +1 -1
  742. package/dist/kolibri/kol-table-stateful.entry.js +1 -1
  743. package/dist/kolibri/kol-table-stateful.entry.js.map +1 -1
  744. package/dist/kolibri/kol-table-stateless-wc.entry.js +1 -1
  745. package/dist/kolibri/kol-table-stateless-wc.entry.js.map +1 -1
  746. package/dist/kolibri/kol-table-stateless.entry.js +1 -1
  747. package/dist/kolibri/kol-table-stateless.entry.js.map +1 -1
  748. package/dist/kolibri/kol-tabs.entry.js +1 -1
  749. package/dist/kolibri/kol-tabs.entry.js.map +1 -1
  750. package/dist/kolibri/kol-textarea.entry.js +1 -1
  751. package/dist/kolibri/kol-textarea.entry.js.map +1 -1
  752. package/dist/kolibri/kol-toast-container.entry.js +1 -1
  753. package/dist/kolibri/kol-toast-container.entry.js.map +1 -1
  754. package/dist/kolibri/kol-toolbar.entry.js +1 -1
  755. package/dist/kolibri/kol-toolbar.entry.js.map +1 -1
  756. package/dist/kolibri/kol-tooltip-wc.entry.js +1 -1
  757. package/dist/kolibri/kol-tooltip-wc.entry.js.map +1 -1
  758. package/dist/kolibri/kol-tree-item-wc.entry.js +1 -1
  759. package/dist/kolibri/kol-tree-item-wc.entry.js.map +1 -1
  760. package/dist/kolibri/kol-tree-item.entry.js +1 -1
  761. package/dist/kolibri/kol-tree-item.entry.js.map +1 -1
  762. package/dist/kolibri/kol-tree-wc.entry.js +1 -1
  763. package/dist/kolibri/kol-tree-wc.entry.js.map +1 -1
  764. package/dist/kolibri/kol-tree.entry.js +1 -1
  765. package/dist/kolibri/kol-tree.entry.js.map +1 -1
  766. package/dist/kolibri/kol-version.entry.js +1 -1
  767. package/dist/kolibri/kolibri.esm.js +1 -1
  768. package/dist/kolibri/kolibri.esm.js.map +1 -1
  769. package/dist/kolibri/label-d0315384.js +4 -0
  770. package/dist/kolibri/msg-93978a32.js +4 -0
  771. package/dist/kolibri/msg-93978a32.js.map +1 -0
  772. package/dist/kolibri/open-20d08415.js +4 -0
  773. package/dist/kolibri/{prop.validators-c5e6ad2d.js → prop.validators-9feb1d92.js} +1 -1
  774. package/dist/kolibri/rows-26af6558.js +4 -0
  775. package/dist/kolibri/show-484b637e.js +4 -0
  776. package/dist/kolibri/spell-check-60fa0b9f.js +4 -0
  777. package/dist/kolibri/{suggestions-33f55ec2.js → suggestions-f139f5ec.js} +1 -1
  778. package/dist/kolibri/test-component.entry.js +1 -1
  779. package/dist/kolibri/tooltip-align-8e0fa436.js +4 -0
  780. package/dist/kolibri/validation-0c197148.js +4 -0
  781. package/dist/kolibri/validation-14b61e5a.js +4 -0
  782. package/dist/types/components/@deprecated/input/controller.d.ts +1 -1
  783. package/dist/types/components/@deprecated/input/types.d.ts +0 -1
  784. package/dist/types/components/accordion/shadow.d.ts +1 -1
  785. package/dist/types/components/alert/component.d.ts +1 -0
  786. package/dist/types/components/button/component.d.ts +1 -0
  787. package/dist/types/components/button/shadow.d.ts +0 -1
  788. package/dist/types/components/button-link/shadow.d.ts +0 -1
  789. package/dist/types/components/card/shadow.d.ts +1 -0
  790. package/dist/types/components/combobox/shadow.d.ts +0 -2
  791. package/dist/types/components/component-list.d.ts +16 -2
  792. package/dist/types/components/details/shadow.d.ts +1 -2
  793. package/dist/types/components/drawer/shadow.d.ts +2 -2
  794. package/dist/types/components/form/shadow.d.ts +1 -0
  795. package/dist/types/components/input/types.d.ts +2 -2
  796. package/dist/types/components/input-adapter-leanup/controller.d.ts +0 -1
  797. package/dist/types/components/input-adapter-leanup/types.d.ts +0 -1
  798. package/dist/types/components/input-checkbox/shadow.d.ts +5 -7
  799. package/dist/types/components/input-color/shadow.d.ts +5 -5
  800. package/dist/types/components/input-date/shadow.d.ts +4 -5
  801. package/dist/types/components/input-email/shadow.d.ts +3 -6
  802. package/dist/types/components/input-file/controller.d.ts +0 -1
  803. package/dist/types/components/input-file/shadow.d.ts +3 -8
  804. package/dist/types/components/input-number/shadow.d.ts +4 -6
  805. package/dist/types/components/input-password/shadow.d.ts +4 -6
  806. package/dist/types/components/input-radio/shadow.d.ts +5 -7
  807. package/dist/types/components/input-range/shadow.d.ts +6 -6
  808. package/dist/types/components/input-text/shadow.d.ts +5 -6
  809. package/dist/types/components/link/component.d.ts +2 -1
  810. package/dist/types/components/link/shadow.d.ts +0 -1
  811. package/dist/types/components/link-button/shadow.d.ts +0 -1
  812. package/dist/types/components/modal/shadow.d.ts +1 -3
  813. package/dist/types/components/pagination/shadow.d.ts +1 -0
  814. package/dist/types/components/select/shadow.d.ts +3 -7
  815. package/dist/types/components/single-select/shadow.d.ts +1 -2
  816. package/dist/types/components/table-stateful/shadow.d.ts +1 -5
  817. package/dist/types/components/table-stateless/component.d.ts +1 -0
  818. package/dist/types/components/textarea/shadow.d.ts +3 -6
  819. package/dist/types/components.d.ts +2 -623
  820. package/dist/types/core/component-names.d.ts +0 -7
  821. package/dist/types/e2e/index.d.ts +1 -0
  822. package/dist/types/e2e/input-callbacks-and-events.d.ts +9 -0
  823. package/dist/types/e2e/input-value-reflection.d.ts +5 -0
  824. package/dist/types/e2e/utils/FillAction.d.ts +4 -0
  825. package/dist/types/e2e/utils/inputsSelector.d.ts +2 -0
  826. package/dist/types/functional-component-wrappers/FormFieldStateWrapper/FormFieldStateWrapper.d.ts +9 -0
  827. package/dist/types/functional-component-wrappers/FormFieldStateWrapper/index.d.ts +1 -0
  828. package/dist/types/functional-component-wrappers/InputContainerStateWrapper/InputContainerStateWrapper.d.ts +9 -0
  829. package/dist/types/functional-component-wrappers/InputContainerStateWrapper/index.d.ts +1 -0
  830. package/dist/types/functional-component-wrappers/InputStateWrapper/InputStateWrapper.d.ts +9 -0
  831. package/dist/types/functional-component-wrappers/InputStateWrapper/index.d.ts +1 -0
  832. package/dist/types/functional-component-wrappers/SelectStateWrapper/SelectStateWrapper.d.ts +8 -0
  833. package/dist/types/functional-component-wrappers/SelectStateWrapper/index.d.ts +1 -0
  834. package/dist/types/functional-component-wrappers/TextAreaStateWrapper/TextAreaStateWrapper.d.ts +8 -0
  835. package/dist/types/functional-component-wrappers/TextAreaStateWrapper/index.d.ts +1 -0
  836. package/dist/types/functional-component-wrappers/_helpers/getRenderStates.d.ts +11 -0
  837. package/dist/types/functional-components/Button/Button.d.ts +9 -0
  838. package/dist/types/functional-components/Button/index.d.ts +1 -0
  839. package/dist/types/functional-components/Button/tests/snapshot.test.d.ts +1 -0
  840. package/dist/types/functional-components/FormField/FormField.d.ts +40 -0
  841. package/dist/types/functional-components/FormField/index.d.ts +1 -0
  842. package/dist/types/functional-components/FormField/tests/snapshot.test.d.ts +1 -0
  843. package/dist/types/functional-components/FormFieldCounter/FormFieldCounter.d.ts +8 -0
  844. package/dist/types/functional-components/FormFieldCounter/index.d.ts +1 -0
  845. package/dist/types/functional-components/FormFieldCounter/tests/snapshot.test.d.ts +1 -0
  846. package/dist/types/functional-components/FormFieldHint/FormFieldHint.d.ts +7 -0
  847. package/dist/types/functional-components/FormFieldHint/index.d.ts +1 -0
  848. package/dist/types/functional-components/FormFieldHint/tests/snapshot.test.d.ts +1 -0
  849. package/dist/types/functional-components/FormFieldLabel/FormFieldLabel.d.ts +15 -0
  850. package/dist/types/functional-components/FormFieldLabel/index.d.ts +1 -0
  851. package/dist/types/functional-components/FormFieldLabel/tests/snapshot.test.d.ts +1 -0
  852. package/dist/types/functional-components/FormFieldMsg/FormFieldMsg.d.ts +7 -6
  853. package/dist/types/functional-components/FormFieldMsg/tests/snapshort.test.d.ts +1 -0
  854. package/dist/types/functional-components/FormFieldTooltip/FormFieldTooltip.d.ts +12 -0
  855. package/dist/types/functional-components/FormFieldTooltip/index.d.ts +1 -0
  856. package/dist/types/functional-components/FormFieldTooltip/tests/snapshort.test.d.ts +1 -0
  857. package/dist/types/functional-components/Icon/tests/snapshot.test.d.ts +1 -0
  858. package/dist/types/functional-components/IconButton/IconButton.d.ts +19 -0
  859. package/dist/types/functional-components/IconButton/index.d.ts +1 -0
  860. package/dist/types/functional-components/IconButton/tests/snapshot.test.d.ts +1 -0
  861. package/dist/types/functional-components/InputAdornment/InputAdornment.d.ts +7 -0
  862. package/dist/types/functional-components/InputAdornment/index.d.ts +1 -0
  863. package/dist/types/functional-components/InputAdornment/tests/snapshot.test.d.ts +1 -0
  864. package/dist/types/functional-components/InputContainer/InputContainer.d.ts +9 -0
  865. package/dist/types/functional-components/InputContainer/index.d.ts +1 -0
  866. package/dist/types/functional-components/InputContainer/tests/snapshot.test.d.ts +1 -0
  867. package/dist/types/functional-components/Suggestions/Suggestions.d.ts +9 -0
  868. package/dist/types/functional-components/Suggestions/index.d.ts +1 -0
  869. package/dist/types/functional-components/Suggestions/tests/snapshot.test.d.ts +1 -0
  870. package/dist/types/functional-components/index.d.ts +1 -1
  871. package/dist/types/functional-components/inputs/Combobox/Combobox.d.ts +10 -0
  872. package/dist/types/functional-components/inputs/Input/Input.d.ts +13 -0
  873. package/dist/types/functional-components/inputs/Input/index.d.ts +1 -0
  874. package/dist/types/functional-components/inputs/Input/tests/snapshot.test.d.ts +1 -0
  875. package/dist/types/functional-components/inputs/NativeOption/NativeOption.d.ts +11 -0
  876. package/dist/types/functional-components/inputs/NativeOption/index.d.ts +1 -0
  877. package/dist/types/functional-components/inputs/NativeOption/tests/snapshot.test.d.ts +1 -0
  878. package/dist/types/functional-components/inputs/NativeOptionList/NativeOptionList.d.ts +13 -0
  879. package/dist/types/functional-components/inputs/NativeOptionList/index.d.ts +1 -0
  880. package/dist/types/functional-components/inputs/NativeOptionList/tests/snapshot.test.d.ts +1 -0
  881. package/dist/types/functional-components/inputs/NativeSelect/NativeSelect.d.ts +8 -0
  882. package/dist/types/functional-components/inputs/NativeSelect/index.d.ts +1 -0
  883. package/dist/types/functional-components/inputs/NativeSelect/tests/snapshot.test.d.ts +1 -0
  884. package/dist/types/functional-components/inputs/TextArea/TextArea.d.ts +8 -0
  885. package/dist/types/functional-components/inputs/TextArea/index.d.ts +1 -0
  886. package/dist/types/functional-components/inputs/TextArea/tests/snapshot.test.d.ts +1 -0
  887. package/dist/types/functional-components/inputs/_helpers/getDefaultProps.d.ts +11 -0
  888. package/dist/types/functional-components/inputs/_helpers/getDefaultProps.test.d.ts +1 -0
  889. package/dist/types/functional-components/inputs/_types/index.d.ts +6 -0
  890. package/dist/types/index.d.ts +1 -0
  891. package/dist/types/schema/components/button.d.ts +1 -0
  892. package/dist/types/schema/components/combobox.d.ts +0 -1
  893. package/dist/types/schema/components/form.d.ts +3 -3
  894. package/dist/types/schema/components/index.d.ts +1 -1
  895. package/dist/types/schema/components/input-checkbox.d.ts +0 -3
  896. package/dist/types/schema/components/input-color.d.ts +0 -3
  897. package/dist/types/schema/components/input-date.d.ts +0 -2
  898. package/dist/types/schema/components/input-email.d.ts +0 -3
  899. package/dist/types/schema/components/input-file.d.ts +0 -5
  900. package/dist/types/schema/components/input-number.d.ts +0 -2
  901. package/dist/types/schema/components/input-password.d.ts +0 -3
  902. package/dist/types/schema/components/input-radio.d.ts +0 -3
  903. package/dist/types/schema/components/input-range.d.ts +0 -3
  904. package/dist/types/schema/components/input-text.d.ts +0 -3
  905. package/dist/types/schema/components/input.d.ts +2 -3
  906. package/dist/types/schema/components/modal.d.ts +0 -2
  907. package/dist/types/schema/components/pagination.d.ts +2 -2
  908. package/dist/types/schema/components/select.d.ts +0 -4
  909. package/dist/types/schema/components/single-select.d.ts +0 -2
  910. package/dist/types/schema/components/table.d.ts +0 -9
  911. package/dist/types/schema/components/tabs.d.ts +3 -3
  912. package/dist/types/schema/components/textarea.d.ts +0 -4
  913. package/dist/types/schema/components/toaster.d.ts +0 -2
  914. package/dist/types/schema/enums/{events.d.ts → callback.d.ts} +6 -4
  915. package/dist/types/schema/enums/index.d.ts +1 -1
  916. package/dist/types/schema/index.d.ts +1 -1
  917. package/dist/types/schema/props/accordion-callbacks.d.ts +2 -2
  918. package/dist/types/schema/props/alert.d.ts +0 -2
  919. package/dist/types/schema/props/button-callbacks.d.ts +3 -3
  920. package/dist/types/schema/props/details-callbacks.d.ts +2 -2
  921. package/dist/types/schema/props/link-on-callbacks.d.ts +2 -2
  922. package/dist/types/schema/props/msg.d.ts +6 -1
  923. package/dist/types/schema/props/popover-callbacks.d.ts +2 -2
  924. package/dist/types/schema/props/table-callbacks.d.ts +4 -4
  925. package/dist/types/schema/tag-names.d.ts +44 -47
  926. package/dist/types/schema/types/input/control/number.d.ts +0 -2
  927. package/dist/types/schema/types/input/types.d.ts +6 -6
  928. package/dist/types/utils/events.d.ts +19 -5
  929. package/dist/types/utils/transformObjectProperties.d.ts +5 -0
  930. package/dist/types/utils/transformObjectProperties.test.d.ts +1 -0
  931. package/doc/accordion.md +0 -10
  932. package/doc/button-link.md +0 -10
  933. package/doc/button.md +0 -10
  934. package/doc/combobox.md +21 -22
  935. package/doc/details.md +0 -10
  936. package/doc/input-checkbox.md +26 -38
  937. package/doc/input-color.md +21 -33
  938. package/doc/input-date.md +27 -39
  939. package/doc/input-email.md +28 -40
  940. package/doc/input-file.md +21 -34
  941. package/doc/input-number.md +27 -39
  942. package/doc/input-password.md +27 -39
  943. package/doc/input-radio.md +20 -32
  944. package/doc/input-range.md +23 -35
  945. package/doc/input-text.md +29 -41
  946. package/doc/link-button.md +0 -10
  947. package/doc/link.md +0 -10
  948. package/doc/modal.md +5 -6
  949. package/doc/select.md +22 -34
  950. package/doc/single-select.md +21 -22
  951. package/doc/textarea.md +1 -13
  952. package/doc/toaster.md +3 -3
  953. package/package.json +2 -2
  954. package/vscode-custom-data.json +42 -309
  955. package/dist/cjs/Alert-52cba055.js +0 -4
  956. package/dist/cjs/Alert-52cba055.js.map +0 -1
  957. package/dist/cjs/FormFieldMsg-c7ea9101.js +0 -4
  958. package/dist/cjs/FormFieldMsg-c7ea9101.js.map +0 -1
  959. package/dist/cjs/Span-e42fa129.js +0 -4
  960. package/dist/cjs/Span-e42fa129.js.map +0 -1
  961. package/dist/cjs/app-globals-0bc138e9.js +0 -4
  962. package/dist/cjs/bund-4be96755.js +0 -4
  963. package/dist/cjs/bund-4be96755.js.map +0 -1
  964. package/dist/cjs/component-names-7808fb62.js +0 -4
  965. package/dist/cjs/component-names-7808fb62.js.map +0 -1
  966. package/dist/cjs/controller-3ba0a95f.js +0 -4
  967. package/dist/cjs/controller-c08f0c47.js +0 -4
  968. package/dist/cjs/controller-c08f0c47.js.map +0 -1
  969. package/dist/cjs/custom-class-d8a5e95d.js +0 -4
  970. package/dist/cjs/disabled-5eb4fde5.js +0 -4
  971. package/dist/cjs/events-221fcb43.js +0 -4
  972. package/dist/cjs/events-221fcb43.js.map +0 -1
  973. package/dist/cjs/events-4981f0c3.js +0 -4
  974. package/dist/cjs/events-4981f0c3.js.map +0 -1
  975. package/dist/cjs/has-closer-9e124723.js +0 -4
  976. package/dist/cjs/has-counter-576de43f.js +0 -4
  977. package/dist/cjs/hide-label-1783d2a4.js +0 -4
  978. package/dist/cjs/href-50c41695.js +0 -4
  979. package/dist/cjs/image-source-546dd85b.js +0 -4
  980. package/dist/cjs/index-bf4a6924.js +0 -4
  981. package/dist/cjs/index-bf4a6924.js.map +0 -1
  982. package/dist/cjs/index-c048b81b.js +0 -4
  983. package/dist/cjs/kol-button-group-wc.cjs.entry.js +0 -4
  984. package/dist/cjs/kol-button-group-wc.cjs.entry.js.map +0 -1
  985. package/dist/cjs/kol-button-group.cjs.entry.js +0 -4
  986. package/dist/cjs/kol-button-group.cjs.entry.js.map +0 -1
  987. package/dist/cjs/kol-indented-text-wc.cjs.entry.js +0 -4
  988. package/dist/cjs/kol-indented-text-wc.cjs.entry.js.map +0 -1
  989. package/dist/cjs/kol-indented-text.cjs.entry.js +0 -4
  990. package/dist/cjs/kol-indented-text.cjs.entry.js.map +0 -1
  991. package/dist/cjs/kol-link-group.cjs.entry.js +0 -4
  992. package/dist/cjs/kol-link-group.cjs.entry.js.map +0 -1
  993. package/dist/cjs/kol-logo.cjs.entry.js +0 -4
  994. package/dist/cjs/kol-logo.cjs.entry.js.map +0 -1
  995. package/dist/cjs/kol-table.cjs.entry.js +0 -4
  996. package/dist/cjs/kol-table.cjs.entry.js.map +0 -1
  997. package/dist/cjs/open-19fa99c9.js +0 -4
  998. package/dist/cjs/rows-fd18fa20.js +0 -4
  999. package/dist/cjs/show-f204ce41.js +0 -4
  1000. package/dist/cjs/spell-check-2c944775.js +0 -4
  1001. package/dist/cjs/tooltip-align-70093437.js +0 -4
  1002. package/dist/components/bund.js +0 -4
  1003. package/dist/components/bund.js.map +0 -1
  1004. package/dist/components/events2.js +0 -4
  1005. package/dist/components/events2.js.map +0 -1
  1006. package/dist/components/kol-button-group-wc.d.ts +0 -11
  1007. package/dist/components/kol-button-group-wc.js +0 -4
  1008. package/dist/components/kol-button-group-wc.js.map +0 -1
  1009. package/dist/components/kol-button-group.d.ts +0 -11
  1010. package/dist/components/kol-button-group.js +0 -4
  1011. package/dist/components/kol-button-group.js.map +0 -1
  1012. package/dist/components/kol-indented-text-wc.d.ts +0 -11
  1013. package/dist/components/kol-indented-text-wc.js +0 -4
  1014. package/dist/components/kol-indented-text-wc.js.map +0 -1
  1015. package/dist/components/kol-indented-text.d.ts +0 -11
  1016. package/dist/components/kol-indented-text.js +0 -4
  1017. package/dist/components/kol-indented-text.js.map +0 -1
  1018. package/dist/components/kol-link-group.d.ts +0 -11
  1019. package/dist/components/kol-link-group.js +0 -4
  1020. package/dist/components/kol-link-group.js.map +0 -1
  1021. package/dist/components/kol-logo.d.ts +0 -11
  1022. package/dist/components/kol-logo.js +0 -4
  1023. package/dist/components/kol-logo.js.map +0 -1
  1024. package/dist/components/kol-table.d.ts +0 -11
  1025. package/dist/components/kol-table.js +0 -4
  1026. package/dist/components/kol-table.js.map +0 -1
  1027. package/dist/esm/Alert-7691addd.js +0 -4
  1028. package/dist/esm/Alert-7691addd.js.map +0 -1
  1029. package/dist/esm/FormFieldMsg-47200fd1.js +0 -4
  1030. package/dist/esm/FormFieldMsg-47200fd1.js.map +0 -1
  1031. package/dist/esm/Span-10295f84.js +0 -4
  1032. package/dist/esm/Span-10295f84.js.map +0 -1
  1033. package/dist/esm/app-globals-8c84e8a4.js +0 -4
  1034. package/dist/esm/bund-ad41b762.js +0 -4
  1035. package/dist/esm/bund-ad41b762.js.map +0 -1
  1036. package/dist/esm/component-names-aa3cbc3c.js +0 -4
  1037. package/dist/esm/component-names-aa3cbc3c.js.map +0 -1
  1038. package/dist/esm/controller-64301c42.js +0 -4
  1039. package/dist/esm/controller-64301c42.js.map +0 -1
  1040. package/dist/esm/custom-class-9311655e.js +0 -4
  1041. package/dist/esm/events-29e84d75.js +0 -4
  1042. package/dist/esm/events-29e84d75.js.map +0 -1
  1043. package/dist/esm/events-3111c1e8.js +0 -4
  1044. package/dist/esm/events-3111c1e8.js.map +0 -1
  1045. package/dist/esm/index-336d0fea.js +0 -4
  1046. package/dist/esm/index-541b643a.js +0 -4
  1047. package/dist/esm/index-541b643a.js.map +0 -1
  1048. package/dist/esm/kol-button-group-wc.entry.js +0 -4
  1049. package/dist/esm/kol-button-group-wc.entry.js.map +0 -1
  1050. package/dist/esm/kol-button-group.entry.js +0 -4
  1051. package/dist/esm/kol-button-group.entry.js.map +0 -1
  1052. package/dist/esm/kol-indented-text-wc.entry.js +0 -4
  1053. package/dist/esm/kol-indented-text-wc.entry.js.map +0 -1
  1054. package/dist/esm/kol-indented-text.entry.js +0 -4
  1055. package/dist/esm/kol-indented-text.entry.js.map +0 -1
  1056. package/dist/esm/kol-link-group.entry.js +0 -4
  1057. package/dist/esm/kol-link-group.entry.js.map +0 -1
  1058. package/dist/esm/kol-logo.entry.js +0 -4
  1059. package/dist/esm/kol-logo.entry.js.map +0 -1
  1060. package/dist/esm/kol-table.entry.js +0 -4
  1061. package/dist/esm/kol-table.entry.js.map +0 -1
  1062. package/dist/esm/prop.validators-c5e6ad2d.js +0 -4
  1063. package/dist/esm/show-5d826542.js +0 -4
  1064. package/dist/esm/spell-check-5ac5a135.js +0 -4
  1065. package/dist/kolibri/Alert-7691addd.js +0 -4
  1066. package/dist/kolibri/Alert-7691addd.js.map +0 -1
  1067. package/dist/kolibri/FormFieldMsg-47200fd1.js +0 -4
  1068. package/dist/kolibri/FormFieldMsg-47200fd1.js.map +0 -1
  1069. package/dist/kolibri/InternalUnderlinedBadgeText-9ed66543.js +0 -4
  1070. package/dist/kolibri/Span-10295f84.js +0 -4
  1071. package/dist/kolibri/Span-10295f84.js.map +0 -1
  1072. package/dist/kolibri/app-globals-8c84e8a4.js +0 -4
  1073. package/dist/kolibri/bund-ad41b762.js +0 -4
  1074. package/dist/kolibri/bund-ad41b762.js.map +0 -1
  1075. package/dist/kolibri/component-names-aa3cbc3c.js +0 -4
  1076. package/dist/kolibri/component-names-aa3cbc3c.js.map +0 -1
  1077. package/dist/kolibri/controller-64301c42.js +0 -4
  1078. package/dist/kolibri/controller-64301c42.js.map +0 -1
  1079. package/dist/kolibri/controller-icon-e20e2d63.js +0 -4
  1080. package/dist/kolibri/custom-class-9311655e.js +0 -4
  1081. package/dist/kolibri/devtools-6829b25d.js +0 -4
  1082. package/dist/kolibri/events-29e84d75.js +0 -4
  1083. package/dist/kolibri/events-29e84d75.js.map +0 -1
  1084. package/dist/kolibri/events-3111c1e8.js +0 -4
  1085. package/dist/kolibri/events-3111c1e8.js.map +0 -1
  1086. package/dist/kolibri/has-closer-aa8f6369.js +0 -4
  1087. package/dist/kolibri/has-counter-a9dacd37.js +0 -4
  1088. package/dist/kolibri/hide-label-db0db59c.js +0 -4
  1089. package/dist/kolibri/href-31b01f08.js +0 -4
  1090. package/dist/kolibri/image-source-a6af4847.js +0 -4
  1091. package/dist/kolibri/index-541b643a.js +0 -4
  1092. package/dist/kolibri/index-541b643a.js.map +0 -1
  1093. package/dist/kolibri/kol-button-group-wc.entry.js +0 -4
  1094. package/dist/kolibri/kol-button-group-wc.entry.js.map +0 -1
  1095. package/dist/kolibri/kol-button-group.entry.js +0 -4
  1096. package/dist/kolibri/kol-button-group.entry.js.map +0 -1
  1097. package/dist/kolibri/kol-indented-text-wc.entry.js +0 -4
  1098. package/dist/kolibri/kol-indented-text-wc.entry.js.map +0 -1
  1099. package/dist/kolibri/kol-indented-text.entry.js +0 -4
  1100. package/dist/kolibri/kol-indented-text.entry.js.map +0 -1
  1101. package/dist/kolibri/kol-link-group.entry.js +0 -4
  1102. package/dist/kolibri/kol-link-group.entry.js.map +0 -1
  1103. package/dist/kolibri/kol-logo.entry.js +0 -4
  1104. package/dist/kolibri/kol-logo.entry.js.map +0 -1
  1105. package/dist/kolibri/kol-table.entry.js +0 -4
  1106. package/dist/kolibri/kol-table.entry.js.map +0 -1
  1107. package/dist/kolibri/label-d70e7c34.js +0 -4
  1108. package/dist/kolibri/open-f7031548.js +0 -4
  1109. package/dist/kolibri/rows-64f9b5cb.js +0 -4
  1110. package/dist/kolibri/show-5d826542.js +0 -4
  1111. package/dist/kolibri/spell-check-5ac5a135.js +0 -4
  1112. package/dist/kolibri/tooltip-align-c001aae2.js +0 -4
  1113. package/dist/kolibri/validation-1a210179.js +0 -4
  1114. package/dist/kolibri/validation-e83461ea.js +0 -4
  1115. package/dist/types/components/button-group/component.d.ts +0 -6
  1116. package/dist/types/components/button-group/shadow.d.ts +0 -5
  1117. package/dist/types/components/indented-text/component.d.ts +0 -6
  1118. package/dist/types/components/indented-text/shadow.d.ts +0 -5
  1119. package/dist/types/components/link-group/shadow.d.ts +0 -17
  1120. package/dist/types/components/logo/shadow.d.ts +0 -10
  1121. package/dist/types/components/logo/types.d.ts +0 -11
  1122. package/dist/types/components/table/shadow.d.ts +0 -15
  1123. package/dist/types/schema/components/button-group.d.ts +0 -9
  1124. package/dist/types/schema/components/indented-text.d.ts +0 -9
  1125. package/dist/types/schema/components/link-group.d.ts +0 -22
  1126. package/doc/button-group.md +0 -8
  1127. package/doc/indented-text.md +0 -17
  1128. package/doc/link-group.md +0 -18
  1129. package/doc/logo.md +0 -67
  1130. package/doc/table.md +0 -26
  1131. /package/dist/kolibri/{Collapsible-8a747ce1.js.map → Collapsible-83f17a92.js.map} +0 -0
  1132. /package/dist/kolibri/{Heading-459bb069.js.map → Heading-def0af88.js.map} +0 -0
  1133. /package/dist/kolibri/{InternalUnderlinedBadgeText-9ed66543.js.map → InternalUnderlinedBadgeText-f618013b.js.map} +0 -0
  1134. /package/dist/kolibri/{access-and-short-key-864aafba.js.map → access-and-short-key-9cca88b8.js.map} +0 -0
  1135. /package/dist/kolibri/{align-3f029493.js.map → align-4719d626.js.map} +0 -0
  1136. /package/dist/kolibri/{app-globals-8c84e8a4.js.map → app-globals-f90e0166.js.map} +0 -0
  1137. /package/dist/kolibri/{associated.controller-bce3d721.js.map → associated.controller-52d302aa.js.map} +0 -0
  1138. /package/dist/kolibri/{button-variant-f5fd361b.js.map → button-variant-ce5f212b.js.map} +0 -0
  1139. /package/dist/kolibri/{color-cce3e447.js.map → color-62f7b76a.js.map} +0 -0
  1140. /package/dist/kolibri/{controller-1739038d.js.map → controller-38dd835b.js.map} +0 -0
  1141. /package/dist/kolibri/{controller-506a6c81.js.map → controller-4af5f563.js.map} +0 -0
  1142. /package/dist/kolibri/{controller-68fd9cd8.js.map → controller-768ea58e.js.map} +0 -0
  1143. /package/dist/kolibri/{controller-6c2714a5.js.map → controller-e3f702f2.js.map} +0 -0
  1144. /package/dist/kolibri/{controller-icon-e20e2d63.js.map → controller-icon-ebd41784.js.map} +0 -0
  1145. /package/dist/kolibri/{custom-class-9311655e.js.map → custom-class-ac49545a.js.map} +0 -0
  1146. /package/dist/kolibri/{dev.utils-945026e6.js.map → dev.utils-47d07d5b.js.map} +0 -0
  1147. /package/dist/kolibri/{disabled-5fc4b444.js.map → disabled-dad7478c.js.map} +0 -0
  1148. /package/dist/kolibri/{has-closer-aa8f6369.js.map → has-closer-a4e62c58.js.map} +0 -0
  1149. /package/dist/kolibri/{has-counter-a9dacd37.js.map → has-counter-a43c36ef.js.map} +0 -0
  1150. /package/dist/kolibri/{hide-label-db0db59c.js.map → hide-label-429a15ea.js.map} +0 -0
  1151. /package/dist/kolibri/{href-31b01f08.js.map → href-d8ec67f8.js.map} +0 -0
  1152. /package/dist/kolibri/{icons-f3b7aabd.js.map → icons-199f1746.js.map} +0 -0
  1153. /package/dist/kolibri/{image-source-a6af4847.js.map → image-source-320efd4f.js.map} +0 -0
  1154. /package/dist/kolibri/{label-d70e7c34.js.map → label-d0315384.js.map} +0 -0
  1155. /package/dist/kolibri/{open-f7031548.js.map → open-20d08415.js.map} +0 -0
  1156. /package/dist/kolibri/{prop.validators-c5e6ad2d.js.map → prop.validators-9feb1d92.js.map} +0 -0
  1157. /package/dist/kolibri/{rows-64f9b5cb.js.map → rows-26af6558.js.map} +0 -0
  1158. /package/dist/kolibri/{show-5d826542.js.map → show-484b637e.js.map} +0 -0
  1159. /package/dist/kolibri/{spell-check-5ac5a135.js.map → spell-check-60fa0b9f.js.map} +0 -0
  1160. /package/dist/kolibri/{suggestions-33f55ec2.js.map → suggestions-f139f5ec.js.map} +0 -0
  1161. /package/dist/kolibri/{tooltip-align-c001aae2.js.map → tooltip-align-8e0fa436.js.map} +0 -0
  1162. /package/dist/kolibri/{validation-1a210179.js.map → validation-0c197148.js.map} +0 -0
  1163. /package/dist/kolibri/{validation-e83461ea.js.map → validation-14b61e5a.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"kol-modal.js","mappings":";;;;;;;AAAA,MAAM,eAAe,GAAG,0zIAA0zI,CAAC;AACn1I,8BAAe,eAAe;;MCiBjBA,UAAQ;;;;;;;;sBAwEa,MAAM;qBAEF;YACpC,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;SACd;;IA3EM,kBAAkB;;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;YAC9B,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,EAAE,CAAC;SAC5B;KACD;IAEM,oBAAoB;QAC1B,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;KACvB;IAEO,sBAAsB;;QAC7B,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,OAAO,kDAAI,CAAC;KAC5B;IAID,MAAM,SAAS;;QACd,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,EAAE,CAAC;KAC5B;IAIM,MAAM,UAAU;;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAG3B,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,kDAAI,CAAC;KAC1B;IAEM,MAAM;QACZ,QACC,+DACC,KAAK,EAAC,WAAW,EACjB,GAAG,EAAE,CAAC,EAAE;gBACP,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACpB,EACD,KAAK,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aACxB,gBACW,IAAI,CAAC,KAAK,CAAC,MAAM,EAC7B,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAG/C,8DACC,8DAAQ,CACH,CACE,EACR;KACF;IA8BM,qBAAqB,CAAC,KAA0B;QACtD,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,KAAK,KAAc,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE;YAChJ,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE;gBACN,UAAU,EAAE;oBACX,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;wBAC9B,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;qBACtB;yBAAM;wBACN,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;qBACvB;iBACD;aACD;SACD,CAAC,CAAC;KACH;IAGM,aAAa,CAAC,KAAqB;QACzC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1B,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;KACH;IAGM,UAAU,CAAC,KAAkC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAChD,MAAM,SAAS,GAA+B,EAAE,CAAC;YACjD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;gBAClE,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aAClC;YACD,QAAQ,CAA6B,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7D;KACD;IAGM,aAAa,CAAC,KAAc;QAClC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,YAAY,EAAE,MAAM;SACpB,CAAC,CAAC;KACH;IAEM,iBAAiB;QACvB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolModal"],"sources":["src/components/modal/style.scss?tag=kol-modal&mode=default&encapsulation=shadow","src/components/modal/shadow.tsx"],"sourcesContent":["@import '../@shared/mixins';\n@import '../style';\n\n@layer kol-component {\n\t:host {\n\t\tfont-size: rem(16);\n\t}\n\n\t.kol-modal {\n\t\tborder: 0;\n\t\tpadding: 0;\n\n\t\t&::backdrop {\n\t\t\tbackground-color: rgba(0, 0, 0, 0.33);\n\t\t}\n\t}\n}\n","import type { KoliBriModalEventCallbacks, LabelPropType, ModalAPI, ModalStates } from '../../schema';\nimport { setState, validateLabel, watchString, watchValidator } from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Method } from '@stencil/core';\nimport { Component, h, Prop, State, Watch } from '@stencil/core';\n\n/**\n * https://en.wikipedia.org/wiki/Modal_window\n *\n * @slot - The modal's contents.\n */\n@Component({\n\ttag: 'kol-modal',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolModal implements ModalAPI {\n\tprivate refDialog?: HTMLDialogElement;\n\n\tpublic componentDidRender(): void {\n\t\tif (this.state._activeElement) {\n\t\t\tthis.refDialog?.showModal();\n\t\t}\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tvoid this.closeModal();\n\t}\n\n\tprivate handleNativeCloseEvent() {\n\t\tthis.state._on?.onClose?.();\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tasync openModal() {\n\t\tthis.refDialog?.showModal();\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async closeModal() {\n\t\tthis._activeElement = null;\n\n\t\t/* The optional chaining for the `close` method is not strictly necessary, but a simple/lazy workaround for HTMLDialog not being implemented in jsdom, causing Jest tests to fail. It may be removed in the future. */\n\t\tthis.refDialog?.close?.();\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<dialog\n\t\t\t\tclass=\"kol-modal\"\n\t\t\t\tref={(el) => {\n\t\t\t\t\tthis.refDialog = el;\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: this.state._width,\n\t\t\t\t}}\n\t\t\t\taria-label={this.state._label}\n\t\t\t\tonClose={this.handleNativeCloseEvent.bind(this)}\n\t\t\t>\n\t\t\t\t{/* It's necessary to have a block element container for cross-browser compatibility. The display property for the slot content is unknown and could be inline. */}\n\t\t\t\t<div>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</dialog>\n\t\t);\n\t}\n\n\t/**\n\t * Legacy property - while set to an HTMLElement, the modal is open.\n\t * @deprecated Use methode `openModal` and `closeModal` instead.\n\t */\n\t@Prop({ mutable: true }) public _activeElement?: HTMLElement | null;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the modal callback functions.\n\t */\n\t@Prop() public _on?: KoliBriModalEventCallbacks;\n\n\t/**\n\t * Defines the width of the modal. (max-width: 100%)\n\t */\n\t@Prop() public _width?: string = '100%';\n\n\t@State() public state: ModalStates = {\n\t\t_activeElement: null,\n\t\t_label: '', // ⚠ required\n\t\t_width: '100%',\n\t};\n\n\t@Watch('_activeElement')\n\tpublic validateActiveElement(value?: HTMLElement | null): void {\n\t\twatchValidator(this, '_activeElement', (value): boolean => typeof value === 'object' || value === null, new Set(['HTMLElement', 'null']), value, {\n\t\t\tdefaultValue: null,\n\t\t\thooks: {\n\t\t\t\tafterPatch: () => {\n\t\t\t\t\tif (this.state._activeElement) {\n\t\t\t\t\t\tvoid this.openModal();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvoid this.closeModal();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriModalEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tconst callbacks: KoliBriModalEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriModalEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t@Watch('_width')\n\tpublic validateWidth(value?: string): void {\n\t\twatchString(this, '_width', value, {\n\t\t\tdefaultValue: '100%',\n\t\t});\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateActiveElement(this._activeElement);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateWidth(this._width);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-modal.js","mappings":";;;;;;;;AAAA,MAAM,eAAe,GAAG,0yIAA0yI,CAAC;AACn0I,8BAAe,eAAe;;MCiBjBA,UAAQ;;;;;;;sBA8Da,MAAM;qBAEF;YACpC,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,MAAM;SACd;;IA/DM,oBAAoB;QAC1B,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;KACvB;IAEO,sBAAsB;;QAC7B,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,GAAG,0CAAE,OAAO,kDAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC5C;KACD;IAID,MAAM,SAAS;;QACd,MAAA,IAAI,CAAC,SAAS,0CAAE,SAAS,EAAE,CAAC;KAC5B;IAIM,MAAM,UAAU;;QAEtB,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,kDAAI,CAAC;KAC1B;IAEM,MAAM;QACZ,QACC,+DACC,KAAK,EAAC,WAAW,EACjB,GAAG,EAAE,CAAC,EAAE;gBACP,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACpB,EACD,KAAK,EAAE;gBACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aACxB,gBACW,IAAI,CAAC,KAAK,CAAC,MAAM,EAC7B,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAG/C,8DACC,8DAAQ,CACH,CACE,EACR;KACF;IAuBM,aAAa,CAAC,KAAqB;QACzC,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1B,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;KACH;IAGM,UAAU,CAAC,KAAkC;QACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;YAChD,MAAM,SAAS,GAA+B,EAAE,CAAC;YACjD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;gBAClE,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aAClC;YACD,QAAQ,CAA6B,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SAC7D;KACD;IAGM,aAAa,CAAC,KAAc;QAClC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,YAAY,EAAE,MAAM;SACpB,CAAC,CAAC;KACH;IAEM,iBAAiB;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolModal"],"sources":["src/components/modal/style.scss?tag=kol-modal&mode=default&encapsulation=shadow","src/components/modal/shadow.tsx"],"sourcesContent":["@import '../@shared/mixins';\n@import '../style';\n\n@layer kol-component {\n\t.kol-modal {\n\t\tborder: 0;\n\t\tpadding: 0;\n\t\tfont-size: rem(16);\n\n\t\t&::backdrop {\n\t\t\tbackground-color: rgba(0, 0, 0, 0.33);\n\t\t}\n\t}\n}\n","import type { KoliBriModalEventCallbacks, LabelPropType, ModalAPI, ModalStates } from '../../schema';\nimport { setState, validateLabel, watchString } from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, Element, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\n\n/**\n * https://en.wikipedia.org/wiki/Modal_window\n *\n * @slot - The modal's contents.\n */\n@Component({\n\ttag: 'kol-modal',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolModal implements ModalAPI {\n\t@Element() private readonly host?: HTMLKolModalElement;\n\tprivate refDialog?: HTMLDialogElement;\n\n\tpublic disconnectedCallback(): void {\n\t\tvoid this.closeModal();\n\t}\n\n\tprivate handleNativeCloseEvent() {\n\t\tthis.state._on?.onClose?.();\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tasync openModal() {\n\t\tthis.refDialog?.showModal();\n\t}\n\n\t@Method()\n\t// eslint-disable-next-line @typescript-eslint/require-await\n\tpublic async closeModal() {\n\t\t/* The optional chaining for the `close` method is not strictly necessary, but a simple/lazy workaround for HTMLDialog not being implemented in jsdom, causing Jest tests to fail. It may be removed in the future. */\n\t\tthis.refDialog?.close?.();\n\t}\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<dialog\n\t\t\t\tclass=\"kol-modal\"\n\t\t\t\tref={(el) => {\n\t\t\t\t\tthis.refDialog = el;\n\t\t\t\t}}\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: this.state._width,\n\t\t\t\t}}\n\t\t\t\taria-label={this.state._label}\n\t\t\t\tonClose={this.handleNativeCloseEvent.bind(this)}\n\t\t\t>\n\t\t\t\t{/* It's necessary to have a block element container for cross-browser compatibility. The display property for the slot content is unknown and could be inline. */}\n\t\t\t\t<div>\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</dialog>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the modal callback functions.\n\t */\n\t@Prop() public _on?: KoliBriModalEventCallbacks;\n\n\t/**\n\t * Defines the width of the modal. (max-width: 100%)\n\t */\n\t@Prop() public _width?: string = '100%';\n\n\t@State() public state: ModalStates = {\n\t\t_label: '', // ⚠ required\n\t\t_width: '100%',\n\t};\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType): void {\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriModalEventCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tconst callbacks: KoliBriModalEventCallbacks = {};\n\t\t\tif (typeof value.onClose === 'function' || value.onClose === true) {\n\t\t\t\tcallbacks.onClose = value.onClose;\n\t\t\t}\n\t\t\tsetState<KoliBriModalEventCallbacks>(this, '_on', callbacks);\n\t\t}\n\t}\n\n\t@Watch('_width')\n\tpublic validateWidth(value?: string): void {\n\t\twatchString(this, '_width', value, {\n\t\t\tdefaultValue: '100%',\n\t\t});\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateWidth(this._width);\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{t as translate}from"./i18n2.js";import{r as removeNavLabel,a as addNavLabel}from"./unique-nav-labels.js";import{w as watchNavLinks}from"./validation2.js";import{j as KolLinkWcTag,a as KolButtonWcTag,l as KolButtonTag}from"./component-names.js";import{c as watchBoolean,t as devWarning,h as a11yHintLabelingLandmarks,q as devHint,w as watchValidator}from"./prop.validators.js";import{v as validateHideLabel}from"./hide-label.js";import{v as validateLabel}from"./label.js";const validateCollapsible=(n,e)=>{watchBoolean(n,"_collapsible",e)},validateHasCompactButton=(n,e)=>{watchBoolean(n,"_hasCompactButton",e)},validateHasIconsWhenExpanded=(n,e)=>{watchBoolean(n,"_hasIconsWhenExpanded",e)},defaultStyleCss="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\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 * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\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 * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: 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 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}\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 clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\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 border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 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}\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 }\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: grid;\n place-items: 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 place-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 cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip-wc {\n display: contents;\n }\n .kol-tooltip-wc .tooltip-floating {\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n /* Shared between content and arrow */\n .kol-tooltip-wc .tooltip-area {\n background-color: #fff;\n color: #000;\n }\n .kol-tooltip-wc .tooltip-arrow {\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip-wc .tooltip-content {\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n :host > div {\n display: grid;\n place-items: center;\n }\n :not(.is-compact) nav {\n width: 100%;\n }\n .list {\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .list.vertical {\n flex-direction: column;\n }\n .list.horizontal {\n flex-wrap: wrap;\n }\n .entry {\n display: flex;\n }\n .entry-item {\n flex-grow: 1;\n }\n}",KolNavDefaultStyle0=defaultStyleCss,entryIsLink=n=>"string"==typeof n._href,entryIsButton=n=>{var e;return void 0===n._href&&"function"==typeof(null===(e=n._on)||void 0===e?void 0:e.onClick)},KolNav$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.handleToggleExpansionClick=n=>{n&&(this.state._expandedChildren.includes(n)?this.collapseChildren(n):this.expandChildren(n))},this.linkList=n=>h("ul",{class:"list "+(0===n.deep&&"horizontal"===n.orientation?" horizontal":" vertical"),"data-deep":n.deep},n.links.map(((e,t)=>this.li(n.collapsible,n.hideLabel,n.deep,t,e,n.orientation)))),this._collapsible=!0,this._hasCompactButton=!1,this._hasIconsWhenExpanded=!1,this._hideLabel=!1,this._label=void 0,this._links=void 0,this._orientation="vertical",this.state={_collapsible:!0,_hasCompactButton:!1,_hasIconsWhenExpanded:!1,_hideLabel:!1,_label:"",_links:[],_orientation:"vertical",_expandedChildren:[]}}expandChildren(n){this.state=Object.assign(Object.assign({},this.state),{_expandedChildren:[...this.state._expandedChildren,n]})}collapseChildren(n){this.state=Object.assign(Object.assign({},this.state),{_expandedChildren:this.state._expandedChildren.filter((e=>e!=n))})}entry(n,e,t,a,i){const o=this.state._hasIconsWhenExpanded||this.state._hideLabel?a._icons||(this.state._hideLabel?"codicon codicon-symbol-method":void 0):void 0;return h("div",{class:{entry:!0,"hide-label":e}},entryIsLink(a)?h(KolLinkWcTag,Object.assign({class:"entry-item"},a,{_hideLabel:e,_icons:o})):h(KolButtonWcTag,{class:"entry-item",_label:a._label,_hideLabel:e,_icons:o,_on:{onClick:(n,e)=>{entryIsButton(a)&&"function"==typeof a._on.onClick?a._on.onClick(n,e):this.handleToggleExpansionClick(a._children)}}}),t?this.expandButton(n,a,i):"")}expandButton(n,e,t){return h(KolButtonWcTag,{class:"expand-button",_ariaExpanded:t,_disabled:!n,_icons:"codicon codicon-"+(t?"remove":"add"),_hideLabel:!0,_label:`${translate(t?"kol-nav-label-close":"kol-nav-label-open",{placeholders:{label:e._label}})}`,_on:{onClick:()=>this.handleToggleExpansionClick(e._children)}})}li(n,e,t,a,i,o){const l=!!i._active,s=Array.isArray(i._children)&&i._children.length>0,d=Boolean(i._children&&this.state._expandedChildren.includes(i._children));return h("li",{class:{active:l,expanded:d,"has-children":s},key:a},this.entry(n,e,s,i,d),d&&h(this.linkList,{collapsible:n,hideLabel:e,deep:t+1,links:i._children||[],orientation:o}))}initializeExpandedChildren(){const n=e=>{if(e._active)return e._children&&this.expandChildren(e._children),!0;if(e._children)for(const t of e._children)if(n(t))return this.expandChildren(e._children),!0;return!1};this.state._links.forEach(n)}render(){let n=this.state._hasCompactButton;"horizontal"===this.state._orientation&&!0===this.state._hasCompactButton&&(n=!1,devWarning("[KolNav] Wenn eine horizontale Navigation verwendet wird, kann die Option _hasCompactButton nicht aktiviert werden."));const e=!0===this.state._collapsible,t=!0===this.state._hideLabel,a=this.state._orientation;return h(Host,{key:"d7c265412b6656ef68b80155f73ef99611a6e808",class:"kol-nav"},h("div",{key:"714a6a5c822350ed82c5a513484249985ec3082e",class:{nav:!0,[a]:!0,"is-compact":this.state._hideLabel}},h("nav",{key:"881cbfcac784eafa3c297f663c0e0208e5fc643c","aria-label":this.state._label,id:"nav"},h(this.linkList,{key:"2021744a6ee72e120521b0c82fec7f39947b95e6",collapsible:e,hideLabel:t,deep:0,links:this.state._links,orientation:a})),n&&h("div",{key:"d6293f421835fd7886ca1479470d8a0efe591701",class:"compact"},h(KolButtonTag,{key:"f63d831cb2bda9c7726881d989927e4c6696cd88",_ariaControls:"nav",_ariaExpanded:!t,_icons:t?"codicon codicon-chevron-right":"codicon codicon-chevron-left",_hideLabel:!0,_label:translate(t?"kol-nav-maximize":"kol-nav-minimize"),_on:{onClick:()=>{this.state=Object.assign(Object.assign({},this.state),{_hideLabel:!1===this.state._hideLabel})}},_tooltipAlign:"right",_variant:"ghost"}))))}validateCollapsible(n){validateCollapsible(this,n)}validateHasCompactButton(n){validateHasCompactButton(this,n)}validateHasIconsWhenExpanded(n){validateHasIconsWhenExpanded(this,n)}validateHideLabel(n){validateHideLabel(this,n)}validateLabel(n,e,t=!1){t||removeNavLabel(this.state._label),validateLabel(this,n,{required:!0}),a11yHintLabelingLandmarks(n),addNavLabel(this.state._label)}validateLinks(n){watchNavLinks("KolNav",this,n),devHint("[KolNav] The navigation structure is not yet validated recursively.")}validateOrientation(n){watchValidator(this,"_orientation",(n=>"horizontal"===n||"vertical"===n),new Set(["Orientation {horizontal, vertical}"]),n,{defaultValue:"vertical"})}componentWillLoad(){this.validateCollapsible(this._collapsible),this.validateHideLabel(this._hideLabel),this.validateHasCompactButton(this._hasCompactButton),this.validateHasIconsWhenExpanded(this._hasIconsWhenExpanded),this.validateLabel(this._label,void 0,!0),this.validateLinks(this._links),this.validateOrientation(this._orientation),this.initializeExpandedChildren()}disconnectedCallback(){removeNavLabel(this.state._label)}static get watchers(){return{_collapsible:["validateCollapsible"],_hasCompactButton:["validateHasCompactButton"],_hasIconsWhenExpanded:["validateHasIconsWhenExpanded"],_hideLabel:["validateHideLabel"],_label:["validateLabel"],_links:["validateLinks"],_orientation:["validateOrientation"]}}static get style(){return{default:KolNavDefaultStyle0}}},[33,"kol-nav",{_collapsible:[4],_hasCompactButton:[4,"_has-compact-button"],_hasIconsWhenExpanded:[4,"_has-icons-when-expanded"],_hideLabel:[4,"_hide-label"],_label:[1],_links:[1],_orientation:[1],state:[32]},void 0,{_collapsible:["validateCollapsible"],_hasCompactButton:["validateHasCompactButton"],_hasIconsWhenExpanded:["validateHasIconsWhenExpanded"],_hideLabel:["validateHideLabel"],_label:["validateLabel"],_links:["validateLinks"],_orientation:["validateOrientation"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-nav"].forEach((n=>{if("kol-nav"===n)customElements.get(n)||customElements.define(n,KolNav$1)}))}const KolNav=KolNav$1,defineCustomElement=defineCustomElement$1;export{KolNav,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h}from"@stencil/core/internal/client";import{t as translate}from"./i18n2.js";import{r as removeNavLabel,a as addNavLabel}from"./unique-nav-labels.js";import{w as watchNavLinks}from"./validation2.js";import{i as KolLinkWcTag,a as KolButtonWcTag,j as KolButtonTag}from"./component-names.js";import{c as clsx}from"./clsx.js";import{c as watchBoolean,v as devWarning,i as a11yHintLabelingLandmarks,t as devHint,w as watchValidator}from"./prop.validators.js";import{v as validateHideLabel}from"./hide-label.js";import{v as validateLabel}from"./label.js";const validateCollapsible=(n,e)=>{watchBoolean(n,"_collapsible",e)},validateHasCompactButton=(n,e)=>{watchBoolean(n,"_hasCompactButton",e)},validateHasIconsWhenExpanded=(n,e)=>{watchBoolean(n,"_hasIconsWhenExpanded",e)},defaultStyleCss="/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\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 * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\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 * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: 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 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}\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 clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\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 border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 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}\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 }\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: grid;\n place-items: 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 place-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 cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n .kol-nav {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n display: grid;\n place-items: center;\n }\n .kol-nav--horizontal {\n width: 100%;\n }\n .kol-nav:not(.kol-nav--is-compact) .kol-nav__navigation {\n width: 100%;\n }\n .kol-nav__list {\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .kol-nav__list--vertical {\n flex-direction: column;\n }\n .kol-nav__list--horizontal {\n flex-wrap: wrap;\n }\n .kol-nav__entry-wrapper {\n display: flex;\n }\n .kol-nav__entry {\n flex-grow: 1;\n }\n}",KolNavDefaultStyle0=defaultStyleCss,entryIsLink=n=>"string"==typeof n._href,entryIsButton=n=>{var e;return void 0===n._href&&"function"==typeof(null===(e=n._on)||void 0===e?void 0:e.onClick)},KolNav$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.handleToggleExpansionClick=n=>{n&&(this.state._expandedChildren.includes(n)?this.collapseChildren(n):this.expandChildren(n))},this.linkList=n=>h("ul",{class:clsx("kol-nav__list",{"kol-nav__list--nested":n.deep>0,"kol-nav__list--horizontal":0===n.deep&&"horizontal"===n.orientation,"kol-nav__list--vertical":0!==n.deep||"vertical"===n.orientation}),"data-deep":n.deep},n.links.map(((e,t)=>this.li(n.collapsible,n.hideLabel,n.deep,t,e,n.orientation)))),this._collapsible=!0,this._hasCompactButton=!1,this._hasIconsWhenExpanded=!1,this._hideLabel=!1,this._label=void 0,this._links=void 0,this._orientation="vertical",this.state={_collapsible:!0,_hasCompactButton:!1,_hasIconsWhenExpanded:!1,_hideLabel:!1,_label:"",_links:[],_orientation:"vertical",_expandedChildren:[]}}expandChildren(n){this.state=Object.assign(Object.assign({},this.state),{_expandedChildren:[...this.state._expandedChildren,n]})}collapseChildren(n){this.state=Object.assign(Object.assign({},this.state),{_expandedChildren:this.state._expandedChildren.filter((e=>e!=n))})}entry(n,e,t,a,i){const o=this.state._hasIconsWhenExpanded||this.state._hideLabel?a._icons||(this.state._hideLabel?"codicon codicon-symbol-method":void 0):void 0;return h("div",{class:"kol-nav__entry-wrapper"},entryIsLink(a)?h(KolLinkWcTag,Object.assign({class:"kol-nav__entry kol-nav__entry--link"},a,{_hideLabel:e,_icons:o})):h(KolButtonWcTag,{class:"kol-nav__entry kol-nav__entry--button",_label:a._label,_hideLabel:e,_icons:o,_on:{onClick:(n,e)=>{entryIsButton(a)&&"function"==typeof a._on.onClick?a._on.onClick(n,e):this.handleToggleExpansionClick(a._children)}}}),t?this.expandButton(n,a,i):"")}expandButton(n,e,t){return h(KolButtonWcTag,{class:clsx("kol-nav__expand-button",{"kol-nav__expand-button--expanded":t}),_ariaExpanded:t,_disabled:!n,_icons:"codicon codicon-"+(t?"remove":"add"),_hideLabel:!0,_label:`${translate(t?"kol-nav-label-close":"kol-nav-label-open",{placeholders:{label:e._label}})}`,_on:{onClick:()=>this.handleToggleExpansionClick(e._children)}})}li(n,e,t,a,i,o){const l=!!i._active,s=Array.isArray(i._children)&&i._children.length>0,d=Boolean(i._children&&this.state._expandedChildren.includes(i._children));return h("li",{class:clsx("kol-nav__list-item",{"kol-nav__list-item--active":l,"kol-nav__list-item--expanded":d,"kol-nav__list-item--has-children":s}),key:a},this.entry(n,e,s,i,d),d&&h(this.linkList,{collapsible:n,hideLabel:e,deep:t+1,links:i._children||[],orientation:o}))}initializeExpandedChildren(){const n=e=>{if(e._active)return e._children&&this.expandChildren(e._children),!0;if(e._children)for(const t of e._children)if(n(t))return this.expandChildren(e._children),!0;return!1};this.state._links.forEach(n)}render(){let n=this.state._hasCompactButton;"horizontal"===this.state._orientation&&!0===this.state._hasCompactButton&&(n=!1,devWarning("[KolNav] Wenn eine horizontale Navigation verwendet wird, kann die Option _hasCompactButton nicht aktiviert werden."));const e=!0===this.state._collapsible,t=!0===this.state._hideLabel,a=this.state._orientation;return h("div",{key:"5ced20f4887b595e83a889f427162a6359b7f707",class:clsx("kol-nav",`kol-nav--${a}`,{"kol-nav--is-compact":this.state._hideLabel})},h("nav",{key:"6dc53fe56f8e47e627665f205a2a3ad1fe9b2949",class:"kol-nav__navigation","aria-label":this.state._label,id:"nav"},h(this.linkList,{key:"a73045d2406f42318c5762d54ebd897ac022b7bd",collapsible:e,hideLabel:t,deep:0,links:this.state._links,orientation:a})),n&&h("div",{key:"c2f5af3fb89230f37b3713c44706ac8317d4c5d7",class:"kol-nav__compact"},h(KolButtonTag,{key:"878f2c9cc89b570deb04982e402cb1c1ad1db65f",_ariaControls:"nav",_ariaExpanded:!t,_icons:t?"codicon codicon-chevron-right":"codicon codicon-chevron-left",_hideLabel:!0,_label:translate(t?"kol-nav-maximize":"kol-nav-minimize"),_on:{onClick:()=>{this.state=Object.assign(Object.assign({},this.state),{_hideLabel:!1===this.state._hideLabel})}},_tooltipAlign:"right",_variant:"ghost"})))}validateCollapsible(n){validateCollapsible(this,n)}validateHasCompactButton(n){validateHasCompactButton(this,n)}validateHasIconsWhenExpanded(n){validateHasIconsWhenExpanded(this,n)}validateHideLabel(n){validateHideLabel(this,n)}validateLabel(n,e,t=!1){t||removeNavLabel(this.state._label),validateLabel(this,n,{required:!0}),a11yHintLabelingLandmarks(n),addNavLabel(this.state._label)}validateLinks(n){watchNavLinks("KolNav",this,n),devHint("[KolNav] The navigation structure is not yet validated recursively.")}validateOrientation(n){watchValidator(this,"_orientation",(n=>"horizontal"===n||"vertical"===n),new Set(["Orientation {horizontal, vertical}"]),n,{defaultValue:"vertical"})}componentWillLoad(){this.validateCollapsible(this._collapsible),this.validateHideLabel(this._hideLabel),this.validateHasCompactButton(this._hasCompactButton),this.validateHasIconsWhenExpanded(this._hasIconsWhenExpanded),this.validateLabel(this._label,void 0,!0),this.validateLinks(this._links),this.validateOrientation(this._orientation),this.initializeExpandedChildren()}disconnectedCallback(){removeNavLabel(this.state._label)}static get watchers(){return{_collapsible:["validateCollapsible"],_hasCompactButton:["validateHasCompactButton"],_hasIconsWhenExpanded:["validateHasIconsWhenExpanded"],_hideLabel:["validateHideLabel"],_label:["validateLabel"],_links:["validateLinks"],_orientation:["validateOrientation"]}}static get style(){return{default:KolNavDefaultStyle0}}},[33,"kol-nav",{_collapsible:[4],_hasCompactButton:[4,"_has-compact-button"],_hasIconsWhenExpanded:[4,"_has-icons-when-expanded"],_hideLabel:[4,"_hide-label"],_label:[1],_links:[1],_orientation:[1],state:[32]},void 0,{_collapsible:["validateCollapsible"],_hasCompactButton:["validateHasCompactButton"],_hasIconsWhenExpanded:["validateHasIconsWhenExpanded"],_hideLabel:["validateHideLabel"],_label:["validateLabel"],_links:["validateLinks"],_orientation:["validateOrientation"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-nav"].forEach((n=>{if("kol-nav"===n)customElements.get(n)||customElements.define(n,KolNav$1)}))}const KolNav=KolNav$1,defineCustomElement=defineCustomElement$1;export{KolNav,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-nav.js","mappings":";;;;;;;;;;;;AAeO,MAAM,mBAAmB,GAAG,CAAC,SAAoC,EAAE,KAA2B;IACpG,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;;ACHM,MAAM,wBAAwB,GAAG,CAAC,SAAoC,EAAE,KAAgC;IAC9G,YAAY,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;;ACDM,MAAM,4BAA4B,GAAG,CAAC,SAAoC,EAAE,KAAoC;IACtH,YAAY,CAAC,SAAS,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;;ACjBD,MAAM,eAAe,GAAG,60LAA60L,CAAC;AACt2L,4BAAe,eAAe;;ACiD9B,MAAM,WAAW,GAAG,CAAC,UAA+C;IACnE,OAAO,OAAQ,UAAwB,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,UAA+C;;IACrE,OAAQ,UAAwB,CAAC,KAAK,KAAK,SAAS,IAAI,QAAO,MAAC,UAAsC,CAAC,GAAG,0CAAE,OAAO,CAAA,KAAK,UAAU,CAAC;AACpI,CAAC,CAAC;MASWA,QAAM;;;;;QAcD,+BAA0B,GAAG,CAAC,QAAgD;YAC9F,IAAI,QAAQ,EAAE;gBACb,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACpD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;iBAChC;qBAAM;oBACN,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iBAC9B;aACD;SACD,CAAC;QAiFM,aAAQ,GAAG,CAAC,KAMnB;YACA,QACC,UAAI,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,YAAY,GAAG,aAAa,GAAG,WAAW,EAAE,eAAa,KAAK,CAAC,IAAI,IAC9H,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAa;gBACpC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;aAC/F,CAAC,CACE,EACJ;SACF,CAAC;4BA8EsC,IAAI;iCAKC,KAAK;qCAKD,KAAK;0BAOhB,KAAK;;;4BAeC,UAAU;qBAEnB;YAClC,YAAY,EAAE,IAAI;YAClB,iBAAiB,EAAE,KAAK;YACxB,qBAAqB,EAAE,KAAK;YAC5B,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,UAAU;YACxB,iBAAiB,EAAE,EAAE;SACrB;;IA7OO,cAAc,CAAC,QAA+C;QACrE,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,KACb,iBAAiB,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,GAC9D,CAAC;KACF;IACO,gBAAgB,CAAC,QAA+C;QACvE,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,KACb,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,cAAc,KAAK,cAAc,IAAI,QAAQ,CAAC,GACtG,CAAC;KACF;IAYO,KAAK,CACZ,WAAoB,EACpB,SAA4B,EAC5B,WAAoB,EACpB,KAA0C,EAC1C,QAAiB;QAEjB,MAAM,KAAK,GACV,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU;cACtD,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,+BAA+B,GAAG,SAAS,CAAC;cACrF,SAAS,CAAC;QAEd,QACC,WAAK,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,IAClD,WAAW,CAAC,KAAK,CAAC,IAClB,EAAC,YAAY,kBAAC,KAAK,EAAC,YAAY,IAAK,KAAK,IAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,KAEpF,EAAC,cAAc,IACd,KAAK,EAAC,YAAY,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,KAAK,EACb,GAAG,EAAE;gBACJ,OAAO,EAAE,CAAC,KAAiB,EAAE,KAAkC;oBAC9D,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,UAAU,EAAE;wBACpE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;qBAChC;yBAAM;wBACN,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;qBACjD;iBACD;aACD,GACA,CACF,EAEA,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAgC,EAAE,QAAQ,CAAC,GAAG,EAAE,CACzF,EACL;KACF;IAEO,YAAY,CAAC,WAAoB,EAAE,IAA6B,EAAE,QAAiB;QAC1F,QACC,EAAC,cAAc,IACd,KAAK,EAAC,eAAe,EACrB,aAAa,EAAE,QAAQ,EACvB,SAAS,EAAE,CAAC,WAAW,EACvB,MAAM,EAAE,kBAAkB,IAAI,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,EAC1D,UAAU,QACV,MAAM,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC,qBAAqB,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,oBAAoB,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,EAC9K,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GACtD,EACjB;KACF;IAEO,EAAE,CACT,WAAoB,EACpB,SAA4B,EAC5B,IAAY,EACZ,KAAa,EACb,IAAyC,EACzC,WAAwB;QAExB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClG,QACC,UACC,KAAK,EAAE;gBACN,MAAM;gBACN,QAAQ;gBACR,cAAc,EAAE,WAAW;aAC3B,EACD,GAAG,EAAE,KAAK,IAET,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,EAC/D,QAAQ,IAAI,EAAC,IAAI,CAAC,QAAQ,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,GAAI,CACjJ,EACJ;KACF;IAkBO,0BAA0B;QAMjC,MAAM,YAAY,GAAG,CAAC,MAA2C;YAChE,IAAI,MAAM,CAAC,OAAO,EAAE;gBACnB,IAAI,MAAM,CAAC,SAAS,EAAE;oBACrB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;iBACtC;gBACD,OAAO,IAAI,CAAC;aACZ;iBAAM,IAAI,MAAM,CAAC,SAAS,EAAE;gBAC5B,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,SAAS,EAAE;oBAC3C,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;wBAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBACtC,OAAO,IAAI,CAAC;qBACZ;iBACD;aACD;YACD,OAAO,KAAK,CAAC;SACb,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KACxC;IAEM,MAAM;QACZ,IAAI,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,IAAI,EAAE;YACtF,gBAAgB,GAAG,KAAK,CAAC;YACzB,UAAU,CAAC,qHAAqH,CAAC,CAAC;SAClI;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAC5C,QACC,EAAC,IAAI,qDAAC,KAAK,EAAC,SAAS,IACpB,4DACC,KAAK,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,CAAC,WAAW,GAAG,IAAI;gBACnB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;aACnC,IAED,0EAAiB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAC,KAAK,IAC3C,EAAC,IAAI,CAAC,QAAQ,qDAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,GAAkB,CACvI,EACL,gBAAgB,KAChB,4DAAK,KAAK,EAAC,SAAS,IACnB,EAAC,YAAY,qDACZ,aAAa,EAAC,KAAK,EACnB,aAAa,EAAE,CAAC,SAAS,EACzB,MAAM,EAAE,SAAS,GAAG,+BAA+B,GAAG,8BAA8B,EACpF,UAAU,QACV,MAAM,EAAE,SAAS,CAAC,SAAS,GAAG,kBAAkB,GAAG,kBAAkB,CAAC,EACtE,GAAG,EAAE;gBACJ,OAAO,EAAE;oBACR,IAAI,CAAC,KAAK,mCACN,IAAI,CAAC,KAAK,KACb,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,GAC3C,CAAC;iBACF;aACD,EACD,aAAa,EAAC,OAAO,EACrB,QAAQ,EAAC,OAAO,GACD,CACX,CACN,CACI,CACA,EACN;KACF;IAoDM,mBAAmB,CAAC,KAA2B;QACrD,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACjC;IAGM,wBAAwB,CAAC,KAAe;QAC9C,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACtC;IAGM,4BAA4B,CAAC,KAAe;QAClD,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC1C;IAGM,iBAAiB,CAAC,KAAyB;QACjD,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KAC/B;IAGM,aAAa,CAAC,KAAqB,EAAE,SAAyB,EAAE,OAAO,GAAG,KAAK;QACrF,IAAI,CAAC,OAAO,EAAE;YACb,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAClC;QACD,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1B,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;QACH,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC/B;IAGM,aAAa,CAAC,KAA0D;QAC9E,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,CAAC,qEAAqE,CAAC,CAAC;KAC/E;IAGM,mBAAmB,CAAC,KAAmB;QAC7C,cAAc,CACb,IAAI,EACJ,cAAc,EACd,CAAC,KAAK,KAAc,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,UAAU,EAClE,IAAI,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAC,EAC/C,KAAK,EACL;YACC,YAAY,EAAE,UAAU;SACxB,CACD,CAAC;KACF;IAEM,iBAAiB;QACvB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,CAAC,0BAA0B,EAAE,CAAC;KAClC;IAEM,oBAAoB;QAC1B,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["KolNav"],"sources":["src/schema/props/collapsible.ts","src/schema/props/has-compact-button.ts","src/schema/props/has-icons-when-expanded.ts","src/components/nav/style.scss?tag=kol-nav&mode=default&encapsulation=shadow","src/components/nav/shadow.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type CollapsiblePropType = boolean;\n\n/**\n * Defines if navigation nodes can be collapsed or not.\n */\nexport type PropCollapsible = {\n\tcollapsible: CollapsiblePropType;\n};\n\n/* validator */\nexport const validateCollapsible = (component: Generic.Element.Component, value?: CollapsiblePropType): void => {\n\twatchBoolean(component, '_collapsible', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\ntype HasCompactButtonPropType = boolean;\n\n/**\n * Creates a button below the navigation, that toggles _collapsible. Only available for _orientation=\"vertical\".\n */\nexport type PropHasCompactButton = {\n\thasCompactButton: HasCompactButtonPropType;\n};\n\n/* validator */\nexport const validateHasCompactButton = (component: Generic.Element.Component, value?: HasCompactButtonPropType): void => {\n\twatchBoolean(component, '_hasCompactButton', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type HasIconsWhenExpandedPropType = boolean;\n\n/**\n * Shows icons next to the navigation item labels, even when the navigation is not collapsed.\n */\nexport type PropHasIconsWhenExpanded = {\n\thasIconsWhenExpanded: HasIconsWhenExpandedPropType;\n};\n\n/* validator */\nexport const validateHasIconsWhenExpanded = (component: Generic.Element.Component, value?: HasIconsWhenExpandedPropType): void => {\n\twatchBoolean(component, '_hasIconsWhenExpanded', value);\n};\n","@import '../@shared/mixins';\n@import '../style';\n@import '../tooltip/style.scss';\n\n@layer kol-component {\n\t:host {\n\t\tfont-size: rem(16);\n\t}\n\n\t:host > div {\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\t}\n\n\t:not(.is-compact) nav {\n\t\twidth: 100%;\n\t}\n\n\t.list {\n\t\tdisplay: flex;\n\t\tlist-style: none;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.list.vertical {\n\t\tflex-direction: column;\n\t}\n\n\t.list.horizontal {\n\t\tflex-wrap: wrap;\n\t}\n\n\t.entry {\n\t\tdisplay: flex;\n\t}\n\n\t.entry-item {\n\t\tflex-grow: 1;\n\t}\n}\n","import type {\n\tButtonOrLinkOrTextWithChildrenProps,\n\tButtonWithChildrenProps,\n\tCollapsiblePropType,\n\tHideLabelPropType,\n\tLabelPropType,\n\tLinkProps,\n\tLinkWithChildrenProps,\n\tNavAPI,\n\tNavStates,\n\tOrientation,\n\tStringified,\n} from '../../schema';\nimport {\n\ta11yHintLabelingLandmarks,\n\tdevHint,\n\tdevWarning,\n\tvalidateCollapsible,\n\tvalidateHasCompactButton,\n\tvalidateHasIconsWhenExpanded,\n\tvalidateHideLabel,\n\tvalidateLabel,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { watchNavLinks } from './validation';\nimport { KolButtonTag, KolButtonWcTag, KolLinkWcTag } from '../../core/component-names';\nimport type { StencilUnknown } from '../../schema';\n\nconst linkValidator = (link: ButtonOrLinkOrTextWithChildrenProps): boolean => {\n\tif (typeof link === 'object' && typeof link._label === 'string' /* && typeof newLink._href === 'string' */) {\n\t\tif (Array.isArray(link._children)) {\n\t\t\treturn linksValidator(link._children);\n\t\t}\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nconst linksValidator = (links: ButtonOrLinkOrTextWithChildrenProps[]): boolean => {\n\tif (Array.isArray(links)) {\n\t\treturn links.find(linkValidator) !== undefined;\n\t}\n\treturn true;\n};\n\nconst entryIsLink = (entryProps: ButtonOrLinkOrTextWithChildrenProps): entryProps is LinkWithChildrenProps => {\n\treturn typeof (entryProps as LinkProps)._href === 'string';\n};\n\nconst entryIsButton = (entryProps: ButtonOrLinkOrTextWithChildrenProps): entryProps is ButtonWithChildrenProps => {\n\treturn (entryProps as LinkProps)._href === undefined && typeof (entryProps as ButtonWithChildrenProps)._on?.onClick === 'function';\n};\n\n@Component({\n\ttag: 'kol-nav',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolNav implements NavAPI {\n\tprivate expandChildren(children: ButtonOrLinkOrTextWithChildrenProps[]) {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_expandedChildren: [...this.state._expandedChildren, children],\n\t\t};\n\t}\n\tprivate collapseChildren(children: ButtonOrLinkOrTextWithChildrenProps[]) {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_expandedChildren: this.state._expandedChildren.filter((searchChildren) => searchChildren != children),\n\t\t};\n\t}\n\n\tprivate readonly handleToggleExpansionClick = (children?: ButtonOrLinkOrTextWithChildrenProps[]): void => {\n\t\tif (children) {\n\t\t\tif (this.state._expandedChildren.includes(children)) {\n\t\t\t\tthis.collapseChildren(children);\n\t\t\t} else {\n\t\t\t\tthis.expandChildren(children);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate entry(\n\t\tcollapsible: boolean,\n\t\thideLabel: HideLabelPropType,\n\t\thasChildren: boolean,\n\t\tentry: ButtonOrLinkOrTextWithChildrenProps,\n\t\texpanded: boolean,\n\t): JSX.Element {\n\t\tconst icons =\n\t\t\tthis.state._hasIconsWhenExpanded || this.state._hideLabel\n\t\t\t\t? entry._icons || (this.state._hideLabel ? 'codicon codicon-symbol-method' : undefined)\n\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t<div class={{ entry: true, 'hide-label': hideLabel }}>\n\t\t\t\t{entryIsLink(entry) ? (\n\t\t\t\t\t<KolLinkWcTag class=\"entry-item\" {...entry} _hideLabel={hideLabel} _icons={icons} />\n\t\t\t\t) : (\n\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\tclass=\"entry-item\"\n\t\t\t\t\t\t_label={entry._label}\n\t\t\t\t\t\t_hideLabel={hideLabel}\n\t\t\t\t\t\t_icons={icons}\n\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\tonClick: (event: MouseEvent, value: Stringified<StencilUnknown>) => {\n\t\t\t\t\t\t\t\tif (entryIsButton(entry) && typeof entry._on.onClick === 'function') {\n\t\t\t\t\t\t\t\t\tentry._on.onClick(event, value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.handleToggleExpansionClick(entry._children);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{hasChildren ? this.expandButton(collapsible, entry as ButtonWithChildrenProps, expanded) : ''}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate expandButton(collapsible: boolean, link: ButtonWithChildrenProps, expanded: boolean): JSX.Element {\n\t\treturn (\n\t\t\t<KolButtonWcTag\n\t\t\t\tclass=\"expand-button\"\n\t\t\t\t_ariaExpanded={expanded}\n\t\t\t\t_disabled={!collapsible}\n\t\t\t\t_icons={'codicon codicon-' + (expanded ? 'remove' : 'add')}\n\t\t\t\t_hideLabel\n\t\t\t\t_label={`${expanded ? translate('kol-nav-label-close', { placeholders: { label: link._label } }) : translate('kol-nav-label-open', { placeholders: { label: link._label } })}`}\n\t\t\t\t_on={{ onClick: () => this.handleToggleExpansionClick(link._children) }}\n\t\t\t></KolButtonWcTag>\n\t\t);\n\t}\n\n\tprivate li(\n\t\tcollapsible: boolean,\n\t\thideLabel: HideLabelPropType,\n\t\tdeep: number,\n\t\tindex: number,\n\t\tlink: ButtonOrLinkOrTextWithChildrenProps,\n\t\torientation: Orientation,\n\t): JSX.Element {\n\t\tconst active = !!link._active;\n\t\tconst hasChildren = Array.isArray(link._children) && link._children.length > 0;\n\t\tconst expanded = Boolean(link._children && this.state._expandedChildren.includes(link._children));\n\t\treturn (\n\t\t\t<li\n\t\t\t\tclass={{\n\t\t\t\t\tactive,\n\t\t\t\t\texpanded,\n\t\t\t\t\t'has-children': hasChildren,\n\t\t\t\t}}\n\t\t\t\tkey={index}\n\t\t\t>\n\t\t\t\t{this.entry(collapsible, hideLabel, hasChildren, link, expanded)}\n\t\t\t\t{expanded && <this.linkList collapsible={collapsible} hideLabel={hideLabel} deep={deep + 1} links={link._children || []} orientation={orientation} />}\n\t\t\t</li>\n\t\t);\n\t}\n\n\tprivate linkList = (props: {\n\t\tcollapsible: boolean;\n\t\thideLabel: HideLabelPropType;\n\t\tdeep: number;\n\t\tlinks: ButtonOrLinkOrTextWithChildrenProps[];\n\t\torientation: Orientation;\n\t}): JSX.Element => {\n\t\treturn (\n\t\t\t<ul class={`list ${props.deep === 0 && props.orientation === 'horizontal' ? ' horizontal' : ' vertical'}`} data-deep={props.deep}>\n\t\t\t\t{props.links.map((link, index: number) => {\n\t\t\t\t\treturn this.li(props.collapsible, props.hideLabel, props.deep, index, link, props.orientation);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t);\n\t};\n\n\tprivate initializeExpandedChildren() {\n\t\t/**\n\t\t * Recursively process branches and expand branches which are active or have active children somewhere in the tree.\n\t\t * @param {ButtonOrLinkOrTextWithChildrenProps} branch\n\t\t * @return boolean - true indicates that the current branch or a child branch is active\n\t\t */\n\t\tconst handleBranch = (branch: ButtonOrLinkOrTextWithChildrenProps) => {\n\t\t\tif (branch._active) {\n\t\t\t\tif (branch._children) {\n\t\t\t\t\tthis.expandChildren(branch._children);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} else if (branch._children) {\n\t\t\t\tfor (const childBranch of branch._children) {\n\t\t\t\t\tif (handleBranch(childBranch)) {\n\t\t\t\t\t\tthis.expandChildren(branch._children);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tthis.state._links.forEach(handleBranch);\n\t}\n\n\tpublic render(): JSX.Element {\n\t\tlet hasCompactButton = this.state._hasCompactButton;\n\t\tif (this.state._orientation === 'horizontal' && this.state._hasCompactButton === true) {\n\t\t\thasCompactButton = false;\n\t\t\tdevWarning(`[KolNav] Wenn eine horizontale Navigation verwendet wird, kann die Option _hasCompactButton nicht aktiviert werden.`);\n\t\t}\n\t\tconst collapsible = this.state._collapsible === true;\n\t\tconst hideLabel = this.state._hideLabel === true;\n\t\tconst orientation = this.state._orientation;\n\t\treturn (\n\t\t\t<Host class=\"kol-nav\">\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\tnav: true,\n\t\t\t\t\t\t[orientation]: true,\n\t\t\t\t\t\t'is-compact': this.state._hideLabel,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<nav aria-label={this.state._label} id=\"nav\">\n\t\t\t\t\t\t<this.linkList collapsible={collapsible} hideLabel={hideLabel} deep={0} links={this.state._links} orientation={orientation}></this.linkList>\n\t\t\t\t\t</nav>\n\t\t\t\t\t{hasCompactButton && (\n\t\t\t\t\t\t<div class=\"compact\">\n\t\t\t\t\t\t\t<KolButtonTag\n\t\t\t\t\t\t\t\t_ariaControls=\"nav\"\n\t\t\t\t\t\t\t\t_ariaExpanded={!hideLabel}\n\t\t\t\t\t\t\t\t_icons={hideLabel ? 'codicon codicon-chevron-right' : 'codicon codicon-chevron-left'}\n\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t_label={translate(hideLabel ? 'kol-nav-maximize' : 'kol-nav-minimize')}\n\t\t\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t\t_hideLabel: this.state._hideLabel === false,\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t_tooltipAlign=\"right\"\n\t\t\t\t\t\t\t\t_variant=\"ghost\"\n\t\t\t\t\t\t\t></KolButtonTag>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines if navigation nodes can be collapsed or not. Enabled by default.\n\t * @TODO: Change type back to `CollapsiblePropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _collapsible?: boolean = true;\n\n\t/**\n\t * Creates a button below the navigation, that toggles _collapsible. Only available for _orientation=\"vertical\".\n\t */\n\t@Prop() public _hasCompactButton?: boolean = false;\n\n\t/**\n\t * Shows icons next to the navigation item labels, even when the navigation is not collapsed.\n\t */\n\t@Prop() public _hasIconsWhenExpanded?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the list of links, buttons or texts to render.\n\t */\n\t@Prop() public _links!: Stringified<ButtonOrLinkOrTextWithChildrenProps[]>;\n\n\t/**\n\t * Defines whether the orientation of the component is horizontal or vertical.\n\t */\n\t@Prop() public _orientation?: Orientation = 'vertical';\n\n\t@State() public state: NavStates = {\n\t\t_collapsible: true,\n\t\t_hasCompactButton: false,\n\t\t_hasIconsWhenExpanded: false,\n\t\t_hideLabel: false,\n\t\t_label: '', // ⚠ required\n\t\t_links: [],\n\t\t_orientation: 'vertical',\n\t\t_expandedChildren: [],\n\t};\n\n\t@Watch('_collapsible')\n\tpublic validateCollapsible(value?: CollapsiblePropType): void {\n\t\tvalidateCollapsible(this, value);\n\t}\n\n\t@Watch('_hasCompactButton')\n\tpublic validateHasCompactButton(value?: boolean): void {\n\t\tvalidateHasCompactButton(this, value);\n\t}\n\n\t@Watch('_hasIconsWhenExpanded')\n\tpublic validateHasIconsWhenExpanded(value?: boolean): void {\n\t\tvalidateHasIconsWhenExpanded(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: HideLabelPropType) {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType, _oldValue?: LabelPropType, initial = false): void {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label); // remove the current\n\t\t}\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<ButtonOrLinkOrTextWithChildrenProps[]>): void {\n\t\twatchNavLinks('KolNav', this, value);\n\t\tdevHint(`[KolNav] The navigation structure is not yet validated recursively.`);\n\t}\n\n\t@Watch('_orientation')\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateCollapsible(this._collapsible);\n\t\tthis.validateHideLabel(this._hideLabel);\n\t\tthis.validateHasCompactButton(this._hasCompactButton);\n\t\tthis.validateHasIconsWhenExpanded(this._hasIconsWhenExpanded);\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateLinks(this._links);\n\t\tthis.validateOrientation(this._orientation);\n\t\tthis.initializeExpandedChildren();\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n\n// console.log(\n// stringifyJson([\n// { _label: '1 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed', _target: 'asdasd' },\n// { _label: '2 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed' },\n// {\n// _active: true,\n// _label: '3 Navigationspunkt',\n// _href: '#abc',\n// _icons: 'codicon codicon-folder-closed',\n// _children: [\n// { _label: '3.1 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed' },\n// { _label: '3.2 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed', _target: 'asdasd' },\n// {\n// _active: true,\n// _label: '3.3 Navigationspunkt',\n// _href: '#abc',\n// _children: [\n// { _active: true, _label: '3.3.1 Navigationspunkt (aktiv)', _href: '#abc' },\n// { _label: '3.3.2 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// {\n// _label: '3.4 Navigationspunkt',\n// _href: '#abc',\n// _children: [\n// { _label: '3.4.1 Navigationspunkt', _href: '#abc' },\n// { _label: '3.4.2 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// { _label: '3.5 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// { _label: '4 Navigationspunkt', _href: '#abc' },\n// ])\n// );\n"],"version":3}
1
+ {"file":"kol-nav.js","mappings":"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","names":["KolNav"],"sources":["src/schema/props/collapsible.ts","src/schema/props/has-compact-button.ts","src/schema/props/has-icons-when-expanded.ts","src/components/nav/style.scss?tag=kol-nav&mode=default&encapsulation=shadow","src/components/nav/shadow.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type CollapsiblePropType = boolean;\n\n/**\n * Defines if navigation nodes can be collapsed or not.\n */\nexport type PropCollapsible = {\n\tcollapsible: CollapsiblePropType;\n};\n\n/* validator */\nexport const validateCollapsible = (component: Generic.Element.Component, value?: CollapsiblePropType): void => {\n\twatchBoolean(component, '_collapsible', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\ntype HasCompactButtonPropType = boolean;\n\n/**\n * Creates a button below the navigation, that toggles _collapsible. Only available for _orientation=\"vertical\".\n */\nexport type PropHasCompactButton = {\n\thasCompactButton: HasCompactButtonPropType;\n};\n\n/* validator */\nexport const validateHasCompactButton = (component: Generic.Element.Component, value?: HasCompactButtonPropType): void => {\n\twatchBoolean(component, '_hasCompactButton', value);\n};\n","import type { Generic } from 'adopted-style-sheets';\n\nimport { watchBoolean } from '../utils';\n\n/* types */\nexport type HasIconsWhenExpandedPropType = boolean;\n\n/**\n * Shows icons next to the navigation item labels, even when the navigation is not collapsed.\n */\nexport type PropHasIconsWhenExpanded = {\n\thasIconsWhenExpanded: HasIconsWhenExpandedPropType;\n};\n\n/* validator */\nexport const validateHasIconsWhenExpanded = (component: Generic.Element.Component, value?: HasIconsWhenExpandedPropType): void => {\n\twatchBoolean(component, '_hasIconsWhenExpanded', value);\n};\n","@import '../@shared/mixins';\n@import '../style';\n@import '../tooltip/style.scss';\n\n@layer kol-component {\n\t.kol-nav {\n\t\t$root: &;\n\n\t\tfont-size: rem(16);\n\t\tdisplay: grid;\n\t\tplace-items: center;\n\n\t\t&--horizontal {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&__navigation {\n\t\t\t#{$root}:not(#{$root}--is-compact) & {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\n\t\t&__list {\n\t\t\tdisplay: flex;\n\t\t\tlist-style: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\n\t\t\t&--vertical {\n\t\t\t\tflex-direction: column;\n\t\t\t}\n\n\t\t\t&--horizontal {\n\t\t\t\tflex-wrap: wrap;\n\t\t\t}\n\t\t}\n\n\t\t&__entry-wrapper {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t&__entry {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n}\n","import type {\n\tButtonOrLinkOrTextWithChildrenProps,\n\tButtonWithChildrenProps,\n\tCollapsiblePropType,\n\tHideLabelPropType,\n\tLabelPropType,\n\tLinkProps,\n\tLinkWithChildrenProps,\n\tNavAPI,\n\tNavStates,\n\tOrientation,\n\tStringified,\n} from '../../schema';\nimport {\n\ta11yHintLabelingLandmarks,\n\tdevHint,\n\tdevWarning,\n\tvalidateCollapsible,\n\tvalidateHasCompactButton,\n\tvalidateHasIconsWhenExpanded,\n\tvalidateHideLabel,\n\tvalidateLabel,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { watchNavLinks } from './validation';\nimport { KolButtonTag, KolButtonWcTag, KolLinkWcTag } from '../../core/component-names';\nimport type { StencilUnknown } from '../../schema';\nimport clsx from 'clsx';\n\nconst linkValidator = (link: ButtonOrLinkOrTextWithChildrenProps): boolean => {\n\tif (typeof link === 'object' && typeof link._label === 'string' /* && typeof newLink._href === 'string' */) {\n\t\tif (Array.isArray(link._children)) {\n\t\t\treturn linksValidator(link._children);\n\t\t}\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nconst linksValidator = (links: ButtonOrLinkOrTextWithChildrenProps[]): boolean => {\n\tif (Array.isArray(links)) {\n\t\treturn links.find(linkValidator) !== undefined;\n\t}\n\treturn true;\n};\n\nconst entryIsLink = (entryProps: ButtonOrLinkOrTextWithChildrenProps): entryProps is LinkWithChildrenProps => {\n\treturn typeof (entryProps as LinkProps)._href === 'string';\n};\n\nconst entryIsButton = (entryProps: ButtonOrLinkOrTextWithChildrenProps): entryProps is ButtonWithChildrenProps => {\n\treturn (entryProps as LinkProps)._href === undefined && typeof (entryProps as ButtonWithChildrenProps)._on?.onClick === 'function';\n};\n\n@Component({\n\ttag: 'kol-nav',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolNav implements NavAPI {\n\tprivate expandChildren(children: ButtonOrLinkOrTextWithChildrenProps[]) {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_expandedChildren: [...this.state._expandedChildren, children],\n\t\t};\n\t}\n\tprivate collapseChildren(children: ButtonOrLinkOrTextWithChildrenProps[]) {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_expandedChildren: this.state._expandedChildren.filter((searchChildren) => searchChildren != children),\n\t\t};\n\t}\n\n\tprivate readonly handleToggleExpansionClick = (children?: ButtonOrLinkOrTextWithChildrenProps[]): void => {\n\t\tif (children) {\n\t\t\tif (this.state._expandedChildren.includes(children)) {\n\t\t\t\tthis.collapseChildren(children);\n\t\t\t} else {\n\t\t\t\tthis.expandChildren(children);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate entry(\n\t\tcollapsible: boolean,\n\t\thideLabel: HideLabelPropType,\n\t\thasChildren: boolean,\n\t\tentry: ButtonOrLinkOrTextWithChildrenProps,\n\t\texpanded: boolean,\n\t): JSX.Element {\n\t\tconst icons =\n\t\t\tthis.state._hasIconsWhenExpanded || this.state._hideLabel\n\t\t\t\t? entry._icons || (this.state._hideLabel ? 'codicon codicon-symbol-method' : undefined)\n\t\t\t\t: undefined;\n\n\t\treturn (\n\t\t\t<div class=\"kol-nav__entry-wrapper\">\n\t\t\t\t{entryIsLink(entry) ? (\n\t\t\t\t\t<KolLinkWcTag class=\"kol-nav__entry kol-nav__entry--link\" {...entry} _hideLabel={hideLabel} _icons={icons} />\n\t\t\t\t) : (\n\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\tclass=\"kol-nav__entry kol-nav__entry--button\"\n\t\t\t\t\t\t_label={entry._label}\n\t\t\t\t\t\t_hideLabel={hideLabel}\n\t\t\t\t\t\t_icons={icons}\n\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\tonClick: (event: MouseEvent, value: Stringified<StencilUnknown>) => {\n\t\t\t\t\t\t\t\tif (entryIsButton(entry) && typeof entry._on.onClick === 'function') {\n\t\t\t\t\t\t\t\t\tentry._on.onClick(event, value);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.handleToggleExpansionClick(entry._children);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{hasChildren ? this.expandButton(collapsible, entry as ButtonWithChildrenProps, expanded) : ''}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate expandButton(collapsible: boolean, link: ButtonWithChildrenProps, expanded: boolean): JSX.Element {\n\t\treturn (\n\t\t\t<KolButtonWcTag\n\t\t\t\tclass={clsx('kol-nav__expand-button', {\n\t\t\t\t\t'kol-nav__expand-button--expanded': expanded,\n\t\t\t\t})}\n\t\t\t\t_ariaExpanded={expanded}\n\t\t\t\t_disabled={!collapsible}\n\t\t\t\t_icons={'codicon codicon-' + (expanded ? 'remove' : 'add')}\n\t\t\t\t_hideLabel\n\t\t\t\t_label={`${expanded ? translate('kol-nav-label-close', { placeholders: { label: link._label } }) : translate('kol-nav-label-open', { placeholders: { label: link._label } })}`}\n\t\t\t\t_on={{ onClick: () => this.handleToggleExpansionClick(link._children) }}\n\t\t\t></KolButtonWcTag>\n\t\t);\n\t}\n\n\tprivate li(\n\t\tcollapsible: boolean,\n\t\thideLabel: HideLabelPropType,\n\t\tdeep: number,\n\t\tindex: number,\n\t\tlink: ButtonOrLinkOrTextWithChildrenProps,\n\t\torientation: Orientation,\n\t): JSX.Element {\n\t\tconst active = !!link._active;\n\t\tconst hasChildren = Array.isArray(link._children) && link._children.length > 0;\n\t\tconst expanded = Boolean(link._children && this.state._expandedChildren.includes(link._children));\n\t\treturn (\n\t\t\t<li\n\t\t\t\tclass={clsx('kol-nav__list-item', {\n\t\t\t\t\t'kol-nav__list-item--active': active,\n\t\t\t\t\t'kol-nav__list-item--expanded': expanded,\n\t\t\t\t\t'kol-nav__list-item--has-children': hasChildren,\n\t\t\t\t})}\n\t\t\t\tkey={index}\n\t\t\t>\n\t\t\t\t{this.entry(collapsible, hideLabel, hasChildren, link, expanded)}\n\t\t\t\t{expanded && <this.linkList collapsible={collapsible} hideLabel={hideLabel} deep={deep + 1} links={link._children || []} orientation={orientation} />}\n\t\t\t</li>\n\t\t);\n\t}\n\n\tprivate linkList = (props: {\n\t\tcollapsible: boolean;\n\t\thideLabel: HideLabelPropType;\n\t\tdeep: number;\n\t\tlinks: ButtonOrLinkOrTextWithChildrenProps[];\n\t\torientation: Orientation;\n\t}): JSX.Element => {\n\t\treturn (\n\t\t\t<ul\n\t\t\t\tclass={clsx('kol-nav__list', {\n\t\t\t\t\t'kol-nav__list--nested': props.deep > 0,\n\t\t\t\t\t'kol-nav__list--horizontal': props.deep === 0 && props.orientation === 'horizontal',\n\t\t\t\t\t'kol-nav__list--vertical': props.deep !== 0 || props.orientation === 'vertical',\n\t\t\t\t})}\n\t\t\t\tdata-deep={props.deep}\n\t\t\t>\n\t\t\t\t{props.links.map((link, index: number) => {\n\t\t\t\t\treturn this.li(props.collapsible, props.hideLabel, props.deep, index, link, props.orientation);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t);\n\t};\n\n\tprivate initializeExpandedChildren() {\n\t\t/**\n\t\t * Recursively process branches and expand branches which are active or have active children somewhere in the tree.\n\t\t * @param {ButtonOrLinkOrTextWithChildrenProps} branch\n\t\t * @return boolean - true indicates that the current branch or a child branch is active\n\t\t */\n\t\tconst handleBranch = (branch: ButtonOrLinkOrTextWithChildrenProps) => {\n\t\t\tif (branch._active) {\n\t\t\t\tif (branch._children) {\n\t\t\t\t\tthis.expandChildren(branch._children);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t} else if (branch._children) {\n\t\t\t\tfor (const childBranch of branch._children) {\n\t\t\t\t\tif (handleBranch(childBranch)) {\n\t\t\t\t\t\tthis.expandChildren(branch._children);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t\tthis.state._links.forEach(handleBranch);\n\t}\n\n\tpublic render(): JSX.Element {\n\t\tlet hasCompactButton = this.state._hasCompactButton;\n\t\tif (this.state._orientation === 'horizontal' && this.state._hasCompactButton === true) {\n\t\t\thasCompactButton = false;\n\t\t\tdevWarning(`[KolNav] Wenn eine horizontale Navigation verwendet wird, kann die Option _hasCompactButton nicht aktiviert werden.`);\n\t\t}\n\t\tconst collapsible = this.state._collapsible === true;\n\t\tconst hideLabel = this.state._hideLabel === true;\n\t\tconst orientation = this.state._orientation;\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass={clsx('kol-nav', `kol-nav--${orientation}`, {\n\t\t\t\t\t'kol-nav--is-compact': this.state._hideLabel,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<nav class=\"kol-nav__navigation\" aria-label={this.state._label} id=\"nav\">\n\t\t\t\t\t<this.linkList collapsible={collapsible} hideLabel={hideLabel} deep={0} links={this.state._links} orientation={orientation}></this.linkList>\n\t\t\t\t</nav>\n\t\t\t\t{hasCompactButton && (\n\t\t\t\t\t<div class=\"kol-nav__compact\">\n\t\t\t\t\t\t<KolButtonTag\n\t\t\t\t\t\t\t_ariaControls=\"nav\"\n\t\t\t\t\t\t\t_ariaExpanded={!hideLabel}\n\t\t\t\t\t\t\t_icons={hideLabel ? 'codicon codicon-chevron-right' : 'codicon codicon-chevron-left'}\n\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t_label={translate(hideLabel ? 'kol-nav-maximize' : 'kol-nav-minimize')}\n\t\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\t\tonClick: (): void => {\n\t\t\t\t\t\t\t\t\tthis.state = {\n\t\t\t\t\t\t\t\t\t\t...this.state,\n\t\t\t\t\t\t\t\t\t\t_hideLabel: this.state._hideLabel === false,\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t_tooltipAlign=\"right\"\n\t\t\t\t\t\t\t_variant=\"ghost\"\n\t\t\t\t\t\t></KolButtonTag>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\t/**\n\t * Defines if navigation nodes can be collapsed or not. Enabled by default.\n\t * @TODO: Change type back to `CollapsiblePropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _collapsible?: boolean = true;\n\n\t/**\n\t * Creates a button below the navigation, that toggles _collapsible. Only available for _orientation=\"vertical\".\n\t */\n\t@Prop() public _hasCompactButton?: boolean = false;\n\n\t/**\n\t * Shows icons next to the navigation item labels, even when the navigation is not collapsed.\n\t */\n\t@Prop() public _hasIconsWhenExpanded?: boolean = false;\n\n\t/**\n\t * Hides the caption by default and displays the caption text with a tooltip when the\n\t * interactive element is focused or the mouse is over it.\n\t * @TODO: Change type back to `HideLabelPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop() public _hideLabel?: boolean = false;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label!: LabelPropType;\n\n\t/**\n\t * Defines the list of links, buttons or texts to render.\n\t */\n\t@Prop() public _links!: Stringified<ButtonOrLinkOrTextWithChildrenProps[]>;\n\n\t/**\n\t * Defines whether the orientation of the component is horizontal or vertical.\n\t */\n\t@Prop() public _orientation?: Orientation = 'vertical';\n\n\t@State() public state: NavStates = {\n\t\t_collapsible: true,\n\t\t_hasCompactButton: false,\n\t\t_hasIconsWhenExpanded: false,\n\t\t_hideLabel: false,\n\t\t_label: '', // ⚠ required\n\t\t_links: [],\n\t\t_orientation: 'vertical',\n\t\t_expandedChildren: [],\n\t};\n\n\t@Watch('_collapsible')\n\tpublic validateCollapsible(value?: CollapsiblePropType): void {\n\t\tvalidateCollapsible(this, value);\n\t}\n\n\t@Watch('_hasCompactButton')\n\tpublic validateHasCompactButton(value?: boolean): void {\n\t\tvalidateHasCompactButton(this, value);\n\t}\n\n\t@Watch('_hasIconsWhenExpanded')\n\tpublic validateHasIconsWhenExpanded(value?: boolean): void {\n\t\tvalidateHasIconsWhenExpanded(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: HideLabelPropType) {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: LabelPropType, _oldValue?: LabelPropType, initial = false): void {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label); // remove the current\n\t\t}\n\t\tvalidateLabel(this, value, {\n\t\t\trequired: true,\n\t\t});\n\t\ta11yHintLabelingLandmarks(value);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_links')\n\tpublic validateLinks(value?: Stringified<ButtonOrLinkOrTextWithChildrenProps[]>): void {\n\t\twatchNavLinks('KolNav', this, value);\n\t\tdevHint(`[KolNav] The navigation structure is not yet validated recursively.`);\n\t}\n\n\t@Watch('_orientation')\n\tpublic validateOrientation(value?: Orientation): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_orientation',\n\t\t\t(value): boolean => value === 'horizontal' || value === 'vertical',\n\t\t\tnew Set(['Orientation {horizontal, vertical}']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\tdefaultValue: 'vertical',\n\t\t\t},\n\t\t);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateCollapsible(this._collapsible);\n\t\tthis.validateHideLabel(this._hideLabel);\n\t\tthis.validateHasCompactButton(this._hasCompactButton);\n\t\tthis.validateHasIconsWhenExpanded(this._hasIconsWhenExpanded);\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateLinks(this._links);\n\t\tthis.validateOrientation(this._orientation);\n\t\tthis.initializeExpandedChildren();\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n\n// console.log(\n// stringifyJson([\n// { _label: '1 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed', _target: 'asdasd' },\n// { _label: '2 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed' },\n// {\n// _active: true,\n// _label: '3 Navigationspunkt',\n// _href: '#abc',\n// _icons: 'codicon codicon-folder-closed',\n// _children: [\n// { _label: '3.1 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed' },\n// { _label: '3.2 Navigationspunkt', _href: '#abc', _icons: 'codicon codicon-folder-closed', _target: 'asdasd' },\n// {\n// _active: true,\n// _label: '3.3 Navigationspunkt',\n// _href: '#abc',\n// _children: [\n// { _active: true, _label: '3.3.1 Navigationspunkt (aktiv)', _href: '#abc' },\n// { _label: '3.3.2 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// {\n// _label: '3.4 Navigationspunkt',\n// _href: '#abc',\n// _children: [\n// { _label: '3.4.1 Navigationspunkt', _href: '#abc' },\n// { _label: '3.4.2 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// { _label: '3.5 Navigationspunkt', _href: '#abc' },\n// ],\n// },\n// { _label: '4 Navigationspunkt', _href: '#abc' },\n// ])\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{t as translate}from"./i18n2.js";import{n as nonce}from"./dev.utils2.js";import{r as removeNavLabel,a as addNavLabel}from"./unique-nav-labels.js";import{a as KolButtonWcTag,m as KolSelectTag}from"./component-names.js";import{S as STATE_CHANGE_EVENT}from"./common.js";import{v as watchNumber,w as watchValidator,i as watchJsonArrayString,p as parseJson}from"./prop.validators.js";import{v as validateCustomClass}from"./custom-class.js";import{v as validateLabel}from"./label.js";import{v as validateTooltipAlign}from"./tooltip-align.js";const validateMax=(t,e,n)=>{watchNumber(t,"_max",e,n)},defaultStyleCss="@charset \"UTF-8\";\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\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 * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\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 * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: 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 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}\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 clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\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 border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 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}\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 }\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: grid;\n place-items: 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 place-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 cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip-wc {\n display: contents;\n }\n .kol-tooltip-wc .tooltip-floating {\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n /* Shared between content and arrow */\n .kol-tooltip-wc .tooltip-area {\n background-color: #fff;\n color: #000;\n }\n .kol-tooltip-wc .tooltip-arrow {\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip-wc .tooltip-content {\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n /* TODO. Once #7126 is completed, move :host block into .kol-pagination */\n :host {\n align-items: center;\n display: grid;\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n gap: calc(16rem / var(--kolibri-root-font-size, 16));\n grid-template-columns: 1fr auto;\n }\n .kol-pagination__navigation-list {\n align-items: center;\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0.5em;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .kol-pagination__separator:before {\n content: \"•••\";\n }\n}",KolPaginationDefaultStyle0=defaultStyleCss,leftDoubleArrowIcon={left:"codicon codicon-debug-reverse-continue"},leftSingleArrow={left:"codicon codicon-chevron-left"},rightSingleArrowIcon={right:"codicon codicon-chevron-right"},rightDoubleArrowIcon={right:"codicon codicon-debug-continue"};function getUserLanguage(){const t=navigator.language||"de-DE";return t.includes("-")?t:`${t}-${t.toUpperCase()}`}const userLanguage=getUserLanguage(),NUMBER_FORMATTER=new Intl.NumberFormat(userLanguage,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0}),KolPagination$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.nonce=nonce(),this.calcCount=(t,e=1)=>Math.ceil(t/e),this.getCount=()=>this.calcCount(this.state._max,this.state._pageSize),this.onClick=(t,e)=>{"function"==typeof this.state._on.onClick&&this.state._on.onClick(t,e),this.onChangePage(t,e)},this.onChangePage=(t,e)=>{const n=setTimeout((()=>{clearTimeout(n),"function"==typeof this.state._on.onChangePage&&this.state._on.onChangePage(t,e)}))},this.onChangePageSize=(t,e)=>{if("number"==typeof(e=parseInt(e[0]))&&e>0&&this._pageSize!==e){this._pageSize=e;const n=setTimeout((()=>{clearTimeout(n),"function"==typeof this.state._on.onChangePageSize&&this.state._on.onChangePageSize(t,this._pageSize)}))}},this.onGoToFirst={onClick:t=>{this.onClick(t,1)}},this.onGoToEnd={onClick:t=>{this.onClick(t,this.getCount())}},this.onGoBackward={onClick:t=>{this.onClick(t,this.state._page-1)}},this.onGoForward={onClick:t=>{this.onClick(t,this.state._page+1)}},this.beforePageSize=(t,e)=>{let n=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize;const a=e.has("_pageSizeOptions")?e.get("_pageSizeOptions"):this.state._pageSizeOptions;if(Array.isArray(a)&&a.length>0){const t=a.find((t=>t.value===n));n=void 0===t?a[0].value:t.value,e.set("_pageSize",n)}const i=e.has("_page")?e.get("_page"):this.state._page,o=e.has("_max")?e.get("_max"):this.state._max;this.syncPage(e,i,e.get("_pageSize"),o)},this.syncPage=(t,e,n,a)=>{if(a>0){const i=this.calcCount(a,n);i>0&&(e>i?(t.set("_page",i),this.onChangePage(STATE_CHANGE_EVENT,i)):e<1&&(t.set("_page",1),this.onChangePage(STATE_CHANGE_EVENT,1)))}},this.beforePageSizeOptions=(t,e)=>{const n=[];if(Array.isArray(t))for(const e of t)"number"==typeof e&&n.push({label:translate("kol-page-per-site",{placeholders:{entries:`${e}`}}),value:e});e.set("_pageSizeOptions",n),this.beforePageSize(n,e)},this._boundaryCount=1,this._customClass=void 0,this._label=void 0,this._hasButtons=!0,this._page=void 0,this._pageSize=1,this._pageSizeOptions=[],this._on=void 0,this._siblingCount=1,this._tooltipAlign="top",this._max=void 0,this.state={_boundaryCount:1,_label:translate("kol-pagination"),_hasButtons:{first:!0,last:!0,next:!0,previous:!0},_on:{onClick:()=>null},_page:0,_pageSize:1,_pageSizeOptions:[],_siblingCount:1,_max:0}}render(){var t;let e=!1;const n=this.getCount(),a=Array.from(Array(n).keys()).map((t=>t+1)).map((t=>t<=this.state._boundaryCount||t>n-this.state._boundaryCount||t>=this.state._page-this.state._siblingCount&&t<=this.state._page+this.state._siblingCount?(e=!0,this.state._page===t?this.getSelectedPageButton(t):this.getUnselectedPageButton(t)):!0===e?(e=!1,h("li",{key:nonce()},h("span",{class:"kol-pagination__separator","aria-hidden":"true"}))):null));return h(Host,{class:"kol-pagination"},h("nav",{"aria-label":this.state._label},h("ul",{class:"kol-pagination__navigation-list"},this.state._hasButtons.first&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--first",exportparts:"icon",_customClass:this.state._customClass,_disabled:this.state._page<=1,_icons:leftDoubleArrowIcon,_hideLabel:!0,_label:translate("kol-page-first"),_on:this.onGoToFirst,_tooltipAlign:this.state._tooltipAlign})),this.state._hasButtons.previous&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--previous",exportparts:"icon",_customClass:this.state._customClass,_disabled:this.state._page<=1,_icons:leftSingleArrow,_hideLabel:!0,_label:translate("kol-page-back"),_on:this.onGoBackward,_tooltipAlign:this.state._tooltipAlign})),a,this.state._hasButtons.next&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--next",exportparts:"icon",_customClass:this.state._customClass,_disabled:n<=this.state._page,_icons:rightSingleArrowIcon,_hideLabel:!0,_label:translate("kol-page-next"),_on:this.onGoForward,_tooltipAlign:this.state._tooltipAlign})),this.state._hasButtons.last&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--last",exportparts:"icon",_customClass:this.state._customClass,_disabled:n<=this.state._page,_icons:rightDoubleArrowIcon,_hideLabel:!0,_label:translate("kol-page-last"),_on:this.onGoToEnd,_tooltipAlign:this.state._tooltipAlign})))),(null===(t=this.state._pageSizeOptions)||void 0===t?void 0:t.length)>0&&h(KolSelectTag,{_hideLabel:!0,_id:`pagination-size-${this.nonce}`,_label:translate("kol-entries-per-site"),_options:this.state._pageSizeOptions,_on:{onChange:this.onChangePageSize},_value:[this.state._pageSize]}))}getUnselectedPageButton(t){return h("li",{key:nonce()},h(KolButtonWcTag,{exportparts:"icon",_customClass:this.state._customClass,_label:"",_on:{onClick:e=>{this.onClick(e,t)}}},h("span",{slot:"expert"},h("span",{class:"visually-hidden"},translate("kol-page"))," ",NUMBER_FORMATTER.format(t))))}getSelectedPageButton(t){return h("li",{key:nonce()},h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--selected",_customClass:this.state._customClass,_disabled:!0,_label:""},h("span",{slot:"expert"},h("span",{class:"visually-hidden"},translate("kol-page"))," ",NUMBER_FORMATTER.format(t))))}validateBoundaryCount(t){watchNumber(this,"_boundaryCount",Math.max(0,null!=t?t:1))}validateCustomClass(t){validateCustomClass(this,t)}validateLabel(t,e,n=!1){n||removeNavLabel(this.state._label),validateLabel(this,t),addNavLabel(this.state._label)}validateHasButtons(t){watchValidator(this,"_hasButtons",(t=>"boolean"==typeof t||"string"==typeof t||"object"==typeof t&&null!==t),new Set(["Boolean","PaginationHasButton"]),t,{hooks:{beforePatch:(t,e)=>{if("boolean"==typeof t)e.set("_hasButtons",{first:t,last:t,next:t,previous:t});else{if("string"==typeof t)try{t=parseJson(t)}catch(t){e.delete("_hasButtons")}"object"==typeof t&&null!==t&&e.set("_hasButtons",Object.assign(Object.assign({},this.state._hasButtons),{first:"boolean"==typeof t.first?!0===t.first:this.state._hasButtons.first,last:"boolean"==typeof t.last?!0===t.last:this.state._hasButtons.last,next:"boolean"==typeof t.next?!0===t.next:this.state._hasButtons.next,previous:"boolean"==typeof t.previous?!0===t.previous:this.state._hasButtons.previous}))}}}})}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validatePage(t){watchNumber(this,"_page",t,{hooks:{beforePatch:(t,e)=>{const n=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize,a=e.has("_max")?e.get("_max"):this.state._max;this.syncPage(e,t,n,a)}}})}validatePageSize(t){watchNumber(this,"_pageSize",t,{hooks:{beforePatch:this.beforePageSize}})}validatePageSizeOptions(t){watchJsonArrayString(this,"_pageSizeOptions",(t=>"number"==typeof t),t,void 0,{hooks:{beforePatch:this.beforePageSizeOptions}})}validateSiblingCount(t){watchNumber(this,"_siblingCount",Math.max(0,null!=t?t:1))}validateMax(t){validateMax(this,t,{hooks:{beforePatch:(t,e)=>{const n=e.has("_page")?e.get("_page"):this.state._page,a=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize;this.syncPage(e,n,a,t)}}})}validateTooltipAlign(t){validateTooltipAlign(this,t)}componentWillLoad(){this.validateBoundaryCount(this._boundaryCount),this.validateCustomClass(this._customClass),this.validateHasButtons(this._hasButtons),this.validateLabel(this._label,void 0,!0),this.validateOn(this._on),this.validatePage(this._page),this.validatePageSize(this._pageSize),this.validatePageSizeOptions(this._pageSizeOptions),this.validateSiblingCount(this._siblingCount),this.validateTooltipAlign(this._tooltipAlign),this.validateMax(this._max),this.validatePage(this._page)}disconnectedCallback(){removeNavLabel(this.state._label)}static get watchers(){return{_boundaryCount:["validateBoundaryCount"],_customClass:["validateCustomClass"],_label:["validateLabel"],_hasButtons:["validateHasButtons"],_on:["validateOn"],_page:["validatePage"],_pageSize:["validatePageSize"],_pageSizeOptions:["validatePageSizeOptions"],_siblingCount:["validateSiblingCount"],_max:["validateMax"],_tooltipAlign:["validateTooltipAlign"]}}static get style(){return{default:KolPaginationDefaultStyle0}}},[33,"kol-pagination",{_boundaryCount:[2,"_boundary-count"],_customClass:[1,"_custom-class"],_label:[1],_hasButtons:[8,"_has-buttons"],_page:[2],_pageSize:[1026,"_page-size"],_pageSizeOptions:[1,"_page-size-options"],_on:[16],_siblingCount:[2,"_sibling-count"],_tooltipAlign:[1,"_tooltip-align"],_max:[2],state:[32]},void 0,{_boundaryCount:["validateBoundaryCount"],_customClass:["validateCustomClass"],_label:["validateLabel"],_hasButtons:["validateHasButtons"],_on:["validateOn"],_page:["validatePage"],_pageSize:["validatePageSize"],_pageSizeOptions:["validatePageSizeOptions"],_siblingCount:["validateSiblingCount"],_max:["validateMax"],_tooltipAlign:["validateTooltipAlign"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-pagination"].forEach((t=>{if("kol-pagination"===t)customElements.get(t)||customElements.define(t,KolPagination$1)}))}const KolPagination=KolPagination$1,defineCustomElement=defineCustomElement$1;export{KolPagination,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{t as translate}from"./i18n2.js";import{n as nonce}from"./dev.utils2.js";import{r as removeNavLabel,a as addNavLabel}from"./unique-nav-labels.js";import{a as KolButtonWcTag,k as KolSelectTag}from"./component-names.js";import{d as dispatchDomEvent,K as KolEvent}from"./events.js";import{S as STATE_CHANGE_EVENT}from"./common.js";import{x as watchNumber,w as watchValidator,j as watchJsonArrayString,p as parseJson}from"./prop.validators.js";import{v as validateCustomClass}from"./custom-class.js";import{v as validateLabel}from"./label.js";import{v as validateTooltipAlign}from"./tooltip-align.js";const validateMax=(t,e,n)=>{watchNumber(t,"_max",e,n)},defaultStyleCss="@charset \"UTF-8\";\n/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\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 * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\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 * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]),\n .kol-input .input {\n min-height: var(--a11y-min-size);\n min-width: 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 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}\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 clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\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 border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 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}\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 }\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: grid;\n place-items: 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 place-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 cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.5s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n /* TODO. Once #7126 is completed, move :host block into .kol-pagination */\n :host {\n align-items: center;\n display: grid;\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n gap: calc(16rem / var(--kolibri-root-font-size, 16));\n grid-template-columns: 1fr auto;\n }\n .kol-pagination__navigation-list {\n align-items: center;\n display: inline-flex;\n flex-wrap: wrap;\n gap: 0.5em;\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .kol-pagination__separator:before {\n content: \"•••\";\n }\n}",KolPaginationDefaultStyle0=defaultStyleCss,leftDoubleArrowIcon={left:"codicon codicon-debug-reverse-continue"},leftSingleArrow={left:"codicon codicon-chevron-left"},rightSingleArrowIcon={right:"codicon codicon-chevron-right"},rightDoubleArrowIcon={right:"codicon codicon-debug-continue"};function getUserLanguage(){const t=navigator.language||"de-DE";return t.includes("-")?t:`${t}-${t.toUpperCase()}`}const userLanguage=getUserLanguage(),NUMBER_FORMATTER=new Intl.NumberFormat(userLanguage,{style:"decimal",minimumFractionDigits:0,maximumFractionDigits:0}),KolPagination$1=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.nonce=nonce(),this.calcCount=(t,e=1)=>Math.ceil(t/e),this.getCount=()=>this.calcCount(this.state._max,this.state._pageSize),this.onClick=(t,e)=>{"function"==typeof this.state._on.onClick&&this.state._on.onClick(t,e),this.host&&dispatchDomEvent(this.host,KolEvent.click,e),this.onChangePage(t,e)},this.onChangePage=(t,e)=>{const n=setTimeout((()=>{clearTimeout(n),"function"==typeof this.state._on.onChangePage&&this.state._on.onChangePage(t,e),this.host&&dispatchDomEvent(this.host,KolEvent.changePage,e)}))},this.onChangePageSize=(t,e)=>{if("number"==typeof(e=parseInt(e[0]))&&e>0&&this._pageSize!==e){this._pageSize=e;const n=setTimeout((()=>{clearTimeout(n),"function"==typeof this.state._on.onChangePageSize&&this.state._on.onChangePageSize(t,this._pageSize),this.host&&dispatchDomEvent(this.host,KolEvent.changePageSize,this._pageSize)}))}},this.onGoToFirst={onClick:t=>{this.onClick(t,1)}},this.onGoToEnd={onClick:t=>{this.onClick(t,this.getCount())}},this.onGoBackward={onClick:t=>{this.onClick(t,this.state._page-1)}},this.onGoForward={onClick:t=>{this.onClick(t,this.state._page+1)}},this.beforePageSize=(t,e)=>{let n=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize;const a=e.has("_pageSizeOptions")?e.get("_pageSizeOptions"):this.state._pageSizeOptions;if(Array.isArray(a)&&a.length>0){const t=a.find((t=>t.value===n));n=void 0===t?a[0].value:t.value,e.set("_pageSize",n)}const i=e.has("_page")?e.get("_page"):this.state._page,o=e.has("_max")?e.get("_max"):this.state._max;this.syncPage(e,i,e.get("_pageSize"),o)},this.syncPage=(t,e,n,a)=>{if(a>0){const i=this.calcCount(a,n);i>0&&(e>i?(t.set("_page",i),this.onChangePage(STATE_CHANGE_EVENT,i)):e<1&&(t.set("_page",1),this.onChangePage(STATE_CHANGE_EVENT,1)))}},this.beforePageSizeOptions=(t,e)=>{const n=[];if(Array.isArray(t))for(const e of t)"number"==typeof e&&n.push({label:translate("kol-page-per-site",{placeholders:{entries:`${e}`}}),value:e});e.set("_pageSizeOptions",n),this.beforePageSize(n,e)},this._boundaryCount=1,this._customClass=void 0,this._label=void 0,this._hasButtons=!0,this._page=void 0,this._pageSize=1,this._pageSizeOptions=[],this._on=void 0,this._siblingCount=1,this._tooltipAlign="top",this._max=void 0,this.state={_boundaryCount:1,_label:translate("kol-pagination"),_hasButtons:{first:!0,last:!0,next:!0,previous:!0},_on:{onClick:()=>null},_page:0,_pageSize:1,_pageSizeOptions:[],_siblingCount:1,_max:0}}render(){var t;let e=!1;const n=this.getCount(),a=Array.from(Array(n).keys()).map((t=>t+1)).map((t=>t<=this.state._boundaryCount||t>n-this.state._boundaryCount||t>=this.state._page-this.state._siblingCount&&t<=this.state._page+this.state._siblingCount?(e=!0,this.state._page===t?this.getSelectedPageButton(t):this.getUnselectedPageButton(t)):!0===e?(e=!1,h("li",{key:nonce()},h("span",{class:"kol-pagination__separator","aria-hidden":"true"}))):null));return h(Host,{class:"kol-pagination"},h("nav",{"aria-label":this.state._label},h("ul",{class:"kol-pagination__navigation-list"},this.state._hasButtons.first&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--first",exportparts:"icon",_customClass:this.state._customClass,_disabled:this.state._page<=1,_icons:leftDoubleArrowIcon,_hideLabel:!0,_label:translate("kol-page-first"),_on:this.onGoToFirst,_tooltipAlign:this.state._tooltipAlign})),this.state._hasButtons.previous&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--previous",exportparts:"icon",_customClass:this.state._customClass,_disabled:this.state._page<=1,_icons:leftSingleArrow,_hideLabel:!0,_label:translate("kol-page-back"),_on:this.onGoBackward,_tooltipAlign:this.state._tooltipAlign})),a,this.state._hasButtons.next&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--next",exportparts:"icon",_customClass:this.state._customClass,_disabled:n<=this.state._page,_icons:rightSingleArrowIcon,_hideLabel:!0,_label:translate("kol-page-next"),_on:this.onGoForward,_tooltipAlign:this.state._tooltipAlign})),this.state._hasButtons.last&&h("li",null,h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--last",exportparts:"icon",_customClass:this.state._customClass,_disabled:n<=this.state._page,_icons:rightDoubleArrowIcon,_hideLabel:!0,_label:translate("kol-page-last"),_on:this.onGoToEnd,_tooltipAlign:this.state._tooltipAlign})))),(null===(t=this.state._pageSizeOptions)||void 0===t?void 0:t.length)>0&&h(KolSelectTag,{_hideLabel:!0,_id:`pagination-size-${this.nonce}`,_label:translate("kol-entries-per-site"),_options:this.state._pageSizeOptions,_on:{onChange:this.onChangePageSize},_value:[this.state._pageSize]}))}getUnselectedPageButton(t){return h("li",{key:nonce()},h(KolButtonWcTag,{exportparts:"icon",_customClass:this.state._customClass,_label:"",_on:{onClick:e=>{this.onClick(e,t)}}},h("span",{slot:"expert"},h("span",{class:"visually-hidden"},translate("kol-page"))," ",NUMBER_FORMATTER.format(t))))}getSelectedPageButton(t){return h("li",{key:nonce()},h(KolButtonWcTag,{class:"kol-pagination__button kol-pagination__button--selected",_customClass:this.state._customClass,_disabled:!0,_label:""},h("span",{slot:"expert"},h("span",{class:"visually-hidden"},translate("kol-page"))," ",NUMBER_FORMATTER.format(t))))}validateBoundaryCount(t){watchNumber(this,"_boundaryCount",Math.max(0,null!=t?t:1))}validateCustomClass(t){validateCustomClass(this,t)}validateLabel(t,e,n=!1){n||removeNavLabel(this.state._label),validateLabel(this,t),addNavLabel(this.state._label)}validateHasButtons(t){watchValidator(this,"_hasButtons",(t=>"boolean"==typeof t||"string"==typeof t||"object"==typeof t&&null!==t),new Set(["Boolean","PaginationHasButton"]),t,{hooks:{beforePatch:(t,e)=>{if("boolean"==typeof t)e.set("_hasButtons",{first:t,last:t,next:t,previous:t});else{if("string"==typeof t)try{t=parseJson(t)}catch(t){e.delete("_hasButtons")}"object"==typeof t&&null!==t&&e.set("_hasButtons",Object.assign(Object.assign({},this.state._hasButtons),{first:"boolean"==typeof t.first?!0===t.first:this.state._hasButtons.first,last:"boolean"==typeof t.last?!0===t.last:this.state._hasButtons.last,next:"boolean"==typeof t.next?!0===t.next:this.state._hasButtons.next,previous:"boolean"==typeof t.previous?!0===t.previous:this.state._hasButtons.previous}))}}}})}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validatePage(t){watchNumber(this,"_page",t,{hooks:{beforePatch:(t,e)=>{const n=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize,a=e.has("_max")?e.get("_max"):this.state._max;this.syncPage(e,t,n,a)}}})}validatePageSize(t){watchNumber(this,"_pageSize",t,{hooks:{beforePatch:this.beforePageSize}})}validatePageSizeOptions(t){watchJsonArrayString(this,"_pageSizeOptions",(t=>"number"==typeof t),t,void 0,{hooks:{beforePatch:this.beforePageSizeOptions}})}validateSiblingCount(t){watchNumber(this,"_siblingCount",Math.max(0,null!=t?t:1))}validateMax(t){validateMax(this,t,{hooks:{beforePatch:(t,e)=>{const n=e.has("_page")?e.get("_page"):this.state._page,a=e.has("_pageSize")?e.get("_pageSize"):this.state._pageSize;this.syncPage(e,n,a,t)}}})}validateTooltipAlign(t){validateTooltipAlign(this,t)}componentWillLoad(){this.validateBoundaryCount(this._boundaryCount),this.validateCustomClass(this._customClass),this.validateHasButtons(this._hasButtons),this.validateLabel(this._label,void 0,!0),this.validateOn(this._on),this.validatePage(this._page),this.validatePageSize(this._pageSize),this.validatePageSizeOptions(this._pageSizeOptions),this.validateSiblingCount(this._siblingCount),this.validateTooltipAlign(this._tooltipAlign),this.validateMax(this._max),this.validatePage(this._page)}disconnectedCallback(){removeNavLabel(this.state._label)}get host(){return this}static get watchers(){return{_boundaryCount:["validateBoundaryCount"],_customClass:["validateCustomClass"],_label:["validateLabel"],_hasButtons:["validateHasButtons"],_on:["validateOn"],_page:["validatePage"],_pageSize:["validatePageSize"],_pageSizeOptions:["validatePageSizeOptions"],_siblingCount:["validateSiblingCount"],_max:["validateMax"],_tooltipAlign:["validateTooltipAlign"]}}static get style(){return{default:KolPaginationDefaultStyle0}}},[33,"kol-pagination",{_boundaryCount:[2,"_boundary-count"],_customClass:[1,"_custom-class"],_label:[1],_hasButtons:[8,"_has-buttons"],_page:[2],_pageSize:[1026,"_page-size"],_pageSizeOptions:[1,"_page-size-options"],_on:[16],_siblingCount:[2,"_sibling-count"],_tooltipAlign:[1,"_tooltip-align"],_max:[2],state:[32]},void 0,{_boundaryCount:["validateBoundaryCount"],_customClass:["validateCustomClass"],_label:["validateLabel"],_hasButtons:["validateHasButtons"],_on:["validateOn"],_page:["validatePage"],_pageSize:["validatePageSize"],_pageSizeOptions:["validatePageSizeOptions"],_siblingCount:["validateSiblingCount"],_max:["validateMax"],_tooltipAlign:["validateTooltipAlign"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-pagination"].forEach((t=>{if("kol-pagination"===t)customElements.get(t)||customElements.define(t,KolPagination$1)}))}const KolPagination=KolPagination$1,defineCustomElement=defineCustomElement$1;export{KolPagination,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-pagination.js","mappings":"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","names":["KolPagination"],"sources":["src/schema/props/max.ts","src/components/pagination/style.scss?tag=kol-pagination&mode=default&encapsulation=shadow","src/components/pagination/shadow.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchNumberOptions } from '../utils';\nimport { watchNumber } from '../utils';\n\nimport type { RowsPropType } from './rows';\n\n/* types */\nexport type MaxPropType = number;\n\n/**\n * Number of rows of the input element that should be visible at the same time.\n */\nexport type PropMax = {\n\tmax: MaxPropType;\n};\n\n/* validator */\nexport const validateMax = (component: Generic.Element.Component, value?: RowsPropType, options?: WatchNumberOptions): void => {\n\twatchNumber(component, '_max', value, options);\n};\n","@import '../@shared/mixins';\n@import '../style';\n@import '../tooltip/style.scss';\n\n@layer kol-component {\n\t/* TODO. Once #7126 is completed, move :host block into .kol-pagination */\n\t:host {\n\t\talign-items: center;\n\t\tdisplay: grid;\n\t\tfont-size: rem(16);\n\t\tgap: rem(16);\n\t\tgrid-template-columns: 1fr auto;\n\t}\n\n\t.kol-pagination {\n\t\t&__navigation-list {\n\t\t\talign-items: center;\n\t\t\tdisplay: inline-flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 0.5em;\n\t\t\tlist-style: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&__separator:before {\n\t\t\tcontent: '•••';\n\t\t}\n\t}\n}\n","import type {\n\tCustomClassPropType,\n\tKoliBriPaginationButtonCallbacks,\n\tLabelPropType,\n\tMaxPropType,\n\tOption,\n\tPaginationAPI,\n\tPaginationHasButton,\n\tPaginationStates,\n\tStringified,\n\tTooltipAlignPropType,\n} from '../../schema';\nimport {\n\tparseJson,\n\tSTATE_CHANGE_EVENT,\n\tvalidateCustomClass,\n\tvalidateLabel,\n\tvalidateMax,\n\tvalidateTooltipAlign,\n\twatchJsonArrayString,\n\twatchNumber,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { nonce } from '../../utils/dev.utils';\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { KolButtonWcTag, KolSelectTag } from '../../core/component-names';\n\nconst leftDoubleArrowIcon = {\n\tleft: 'codicon codicon-debug-reverse-continue',\n};\nconst leftSingleArrow = {\n\tleft: 'codicon codicon-chevron-left',\n};\nconst rightSingleArrowIcon = {\n\tright: 'codicon codicon-chevron-right',\n};\nconst rightDoubleArrowIcon = {\n\tright: 'codicon codicon-debug-continue',\n};\n\nfunction getUserLanguage(): string {\n\tconst userLanguage = navigator.language || 'de-DE';\n\tconst normalizedLanguage = userLanguage.includes('-') ? userLanguage : `${userLanguage}-${userLanguage.toUpperCase()}`;\n\treturn normalizedLanguage;\n}\nconst userLanguage = getUserLanguage();\nconst NUMBER_FORMATTER = new Intl.NumberFormat(userLanguage, {\n\tstyle: 'decimal',\n\tminimumFractionDigits: 0,\n\tmaximumFractionDigits: 0,\n});\n\n@Component({\n\ttag: 'kol-pagination',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolPagination implements PaginationAPI {\n\tprivate readonly nonce = nonce();\n\n\tprivate readonly calcCount = (total: number, pageSize = 1): number => Math.ceil(total / pageSize);\n\n\tprivate readonly getCount = (): number => this.calcCount(this.state._max, this.state._pageSize);\n\n\tpublic render(): JSX.Element {\n\t\tlet ellipsis = false;\n\t\tconst count = this.getCount();\n\t\tconst pageButtons = Array.from(Array(count).keys())\n\t\t\t.map((index: number) => index + 1)\n\t\t\t.map((page: number) => {\n\t\t\t\tif (\n\t\t\t\t\tpage <= this.state._boundaryCount ||\n\t\t\t\t\tpage > count - this.state._boundaryCount ||\n\t\t\t\t\t(page >= this.state._page - this.state._siblingCount && page <= this.state._page + this.state._siblingCount)\n\t\t\t\t) {\n\t\t\t\t\tellipsis = true;\n\t\t\t\t\tif (this.state._page === page) {\n\t\t\t\t\t\treturn this.getSelectedPageButton(page);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.getUnselectedPageButton(page);\n\t\t\t\t\t}\n\t\t\t\t} else if (ellipsis === true) {\n\t\t\t\t\tellipsis = false;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={nonce()}>\n\t\t\t\t\t\t\t<span class=\"kol-pagination__separator\" aria-hidden=\"true\"></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn (\n\t\t\t<Host class=\"kol-pagination\">\n\t\t\t\t<nav aria-label={this.state._label}>\n\t\t\t\t\t<ul class=\"kol-pagination__navigation-list\">\n\t\t\t\t\t\t{this.state._hasButtons.first && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--first\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={this.state._page <= 1}\n\t\t\t\t\t\t\t\t\t_icons={leftDoubleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-first')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoToFirst}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._hasButtons.previous && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--previous\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={this.state._page <= 1}\n\t\t\t\t\t\t\t\t\t_icons={leftSingleArrow}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-back')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoBackward}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{pageButtons}\n\t\t\t\t\t\t{this.state._hasButtons.next && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--next\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={count <= this.state._page}\n\t\t\t\t\t\t\t\t\t_icons={rightSingleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-next')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoForward}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._hasButtons.last && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--last\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={count <= this.state._page}\n\t\t\t\t\t\t\t\t\t_icons={rightDoubleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-last')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoToEnd}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t\t{this.state._pageSizeOptions?.length > 0 && (\n\t\t\t\t\t<KolSelectTag\n\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t_id={`pagination-size-${this.nonce}`}\n\t\t\t\t\t\t_label={translate('kol-entries-per-site')}\n\t\t\t\t\t\t_options={this.state._pageSizeOptions}\n\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\tonChange: this.onChangePageSize,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_value={[this.state._pageSize]}\n\t\t\t\t\t></KolSelectTag>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the amount of pages to show next to the outer arrow buttons.\n\t */\n\t@Prop() public _boundaryCount?: number = 1;\n\n\t/**\n\t * Defines the custom class attribute if _variant=\"custom\" is set.\n\t */\n\t@Prop() public _customClass?: CustomClassPropType;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label?: LabelPropType;\n\n\t/**\n\t * Defines which navigation buttons to render (first, last, next, previous buttons).\n\t */\n\t@Prop() public _hasButtons?: boolean | Stringified<PaginationHasButton> = true;\n\n\t/**\n\t * Defines the current page.\n\t */\n\t@Prop() public _page!: number;\n\n\t/**\n\t * Defines the amount of entries to show per page.\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _pageSize = 1;\n\n\t/**\n\t * Defines the options for the page-size-select.\n\t */\n\t@Prop() public _pageSizeOptions: Stringified<number[]> = [];\n\n\t/**\n\t * Gibt an, auf welche Callback-Events reagiert werden.\n\t */\n\t@Prop() public _on!: KoliBriPaginationButtonCallbacks;\n\n\t/**\n\t * Defines the amount of pages to show next to the current page.\n\t */\n\t@Prop() public _siblingCount?: number = 1;\n\n\t/**\n\t * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines the maximum number of pages.\n\t */\n\t@Prop() public _max!: MaxPropType;\n\n\t@State() public state: PaginationStates = {\n\t\t_boundaryCount: 1,\n\t\t_label: translate('kol-pagination'),\n\t\t_hasButtons: {\n\t\t\tfirst: true,\n\t\t\tlast: true,\n\t\t\tnext: true,\n\t\t\tprevious: true,\n\t\t},\n\t\t_on: {\n\t\t\tonClick: () => null,\n\t\t},\n\t\t_page: 0,\n\t\t_pageSize: 1,\n\t\t_pageSizeOptions: [],\n\t\t_siblingCount: 1,\n\t\t_max: 0,\n\t};\n\n\tprivate onClick = (event: Event, page: number) => {\n\t\tif (typeof this.state._on.onClick === 'function') {\n\t\t\tthis.state._on.onClick(event, page);\n\t\t}\n\t\tthis.onChangePage(event, page);\n\t};\n\n\tprivate onChangePage = (event: Event, page: number) => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (typeof this.state._on.onChangePage === 'function') {\n\t\t\t\tthis.state._on.onChangePage(event, page);\n\t\t\t}\n\t\t});\n\t};\n\n\tprivate onChangePageSize = (event: Event, value: unknown) => {\n\t\tvalue = parseInt((value as string[])[0]);\n\t\tif (typeof value === 'number' && value > 0 && this._pageSize !== value) {\n\t\t\tthis._pageSize = value;\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tif (typeof this.state._on.onChangePageSize === 'function') {\n\t\t\t\t\tthis.state._on.onChangePageSize(event, this._pageSize);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tprivate readonly onGoToFirst = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, 1);\n\t\t},\n\t};\n\tprivate readonly onGoToEnd = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.getCount());\n\t\t},\n\t};\n\tprivate readonly onGoBackward = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.state._page - 1);\n\t\t},\n\t};\n\tprivate readonly onGoForward = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.state._page + 1);\n\t\t},\n\t};\n\n\tprivate getUnselectedPageButton(page: number): JSX.Element {\n\t\treturn (\n\t\t\t<li key={nonce()}>\n\t\t\t\t<KolButtonWcTag\n\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t_label=\"\"\n\t\t\t\t\t_on={{\n\t\t\t\t\t\tonClick: (event: Event) => {\n\t\t\t\t\t\t\tthis.onClick(event, page);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<span slot=\"expert\">\n\t\t\t\t\t\t<span class=\"visually-hidden\">{translate('kol-page')}</span> {NUMBER_FORMATTER.format(page)}\n\t\t\t\t\t</span>\n\t\t\t\t</KolButtonWcTag>\n\t\t\t</li>\n\t\t);\n\t}\n\n\tprivate getSelectedPageButton(page: number): JSX.Element {\n\t\treturn (\n\t\t\t<li key={nonce()}>\n\t\t\t\t<KolButtonWcTag class=\"kol-pagination__button kol-pagination__button--selected\" _customClass={this.state._customClass} _disabled={true} _label=\"\">\n\t\t\t\t\t<span slot=\"expert\">\n\t\t\t\t\t\t<span class=\"visually-hidden\">{translate('kol-page')}</span> {NUMBER_FORMATTER.format(page)}\n\t\t\t\t\t</span>\n\t\t\t\t</KolButtonWcTag>\n\t\t\t</li>\n\t\t);\n\t}\n\n\t@Watch('_boundaryCount')\n\tpublic validateBoundaryCount(value?: number): void {\n\t\twatchNumber(this, '_boundaryCount', Math.max(0, value ?? 1));\n\t}\n\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: CustomClassPropType): void {\n\t\tvalidateCustomClass(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(label?: LabelPropType, _oldValue?: LabelPropType, initial = false) {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label);\n\t\t}\n\t\tvalidateLabel(this, label);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_hasButtons')\n\tpublic validateHasButtons(value?: string | boolean | Stringified<PaginationHasButton>): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_hasButtons',\n\t\t\t(value) => typeof value === 'boolean' || typeof value === 'string' || (typeof value === 'object' && value !== null),\n\t\t\tnew Set(['Boolean', 'PaginationHasButton']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (typeof nextValue === 'boolean') {\n\t\t\t\t\t\t\tnextState.set('_hasButtons', {\n\t\t\t\t\t\t\t\tfirst: nextValue,\n\t\t\t\t\t\t\t\tlast: nextValue,\n\t\t\t\t\t\t\t\tnext: nextValue,\n\t\t\t\t\t\t\t\tprevious: nextValue,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof nextValue === 'string') {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tnextValue = parseJson<PaginationHasButton>(nextValue);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tnextState.delete('_hasButtons');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof nextValue === 'object' && nextValue !== null) {\n\t\t\t\t\t\t\t\tnextState.set('_hasButtons', {\n\t\t\t\t\t\t\t\t\t...this.state._hasButtons,\n\t\t\t\t\t\t\t\t\tfirst:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).first === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).first === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.first,\n\t\t\t\t\t\t\t\t\tlast:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).last === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).last === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.last,\n\t\t\t\t\t\t\t\t\tnext:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).next === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).next === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.next,\n\t\t\t\t\t\t\t\t\tprevious:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).previous === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).previous === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.previous,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriPaginationButtonCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_page')\n\tpublic validatePage(value?: number): void {\n\t\twatchNumber(this, '_page', value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\tconst pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\t\t\t\tconst total = nextState.has('_max') ? (nextState.get('_max') as number) : this.state._max;\n\t\t\t\t\tthis.syncPage(nextState, _nextValue as number, pageSize, total);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate beforePageSize = (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\tlet pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\tconst pageSizeOptions = nextState.has('_pageSizeOptions') ? (nextState.get('_pageSizeOptions') as Option<number>[]) : this.state._pageSizeOptions;\n\t\tif (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {\n\t\t\tconst find = pageSizeOptions.find((option) => option.value === pageSize);\n\t\t\tif (find === undefined) {\n\t\t\t\tpageSize = pageSizeOptions[0].value;\n\t\t\t} else {\n\t\t\t\tpageSize = find.value;\n\t\t\t}\n\t\t\tnextState.set('_pageSize', pageSize);\n\t\t}\n\t\tconst page = nextState.has('_page') ? (nextState.get('_page') as number) : this.state._page;\n\t\tconst total = nextState.has('_max') ? (nextState.get('_max') as number) : this.state._max;\n\t\tthis.syncPage(nextState, page, nextState.get('_pageSize') as number, total);\n\t};\n\n\tprivate syncPage = (nextState: Map<string, unknown>, page: number, pageSize: number, total: number) => {\n\t\t// count === 0 means no data\n\t\tif (total > 0) {\n\t\t\tconst count = this.calcCount(total, pageSize);\n\t\t\tif (count > 0) {\n\t\t\t\tif (page > count) {\n\t\t\t\t\tnextState.set('_page', count);\n\t\t\t\t\tthis.onChangePage(STATE_CHANGE_EVENT, count);\n\t\t\t\t} else if (page < 1) {\n\t\t\t\t\tnextState.set('_page', 1);\n\t\t\t\t\tthis.onChangePage(STATE_CHANGE_EVENT, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate beforePageSizeOptions = (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\tconst options: Option<number>[] = [];\n\t\tif (Array.isArray(nextValue)) {\n\t\t\tfor (const value of nextValue) {\n\t\t\t\tif (typeof value === 'number') {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tlabel: translate('kol-page-per-site', { placeholders: { entries: `${value}` } }),\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnextState.set('_pageSizeOptions', options);\n\t\tthis.beforePageSize(options, nextState);\n\t};\n\n\t@Watch('_pageSize')\n\tpublic validatePageSize(value?: number): void {\n\t\twatchNumber(this, '_pageSize', value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePageSize,\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_pageSizeOptions')\n\tpublic validatePageSizeOptions(value?: Stringified<number[]>): void {\n\t\twatchJsonArrayString(this, '_pageSizeOptions', (value) => typeof value === 'number', value, undefined, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePageSizeOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_siblingCount')\n\tpublic validateSiblingCount(value?: number): void {\n\t\twatchNumber(this, '_siblingCount', Math.max(0, value ?? 1));\n\t}\n\n\t@Watch('_max')\n\tpublic validateMax(value?: MaxPropType): void {\n\t\tvalidateMax(this, value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\tconst page = nextState.has('_page') ? (nextState.get('_page') as number) : this.state._page;\n\t\t\t\t\tconst pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\t\t\t\tthis.syncPage(nextState, page, pageSize, _nextValue as number);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: TooltipAlignPropType): void {\n\t\tvalidateTooltipAlign(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateBoundaryCount(this._boundaryCount);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateHasButtons(this._hasButtons);\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateOn(this._on);\n\t\tthis.validatePage(this._page);\n\t\tthis.validatePageSize(this._pageSize);\n\t\tthis.validatePageSizeOptions(this._pageSizeOptions);\n\t\tthis.validateSiblingCount(this._siblingCount);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateMax(this._max);\n\n\t\t/**\n\t\t * Die Seite muss als letztes gesetzt werden, da sonst die Seite\n\t\t * nicht korrekt berechnet wird.\n\t\t */\n\t\tthis.validatePage(this._page);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-pagination.js","mappings":"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","names":["KolPagination"],"sources":["src/schema/props/max.ts","src/components/pagination/style.scss?tag=kol-pagination&mode=default&encapsulation=shadow","src/components/pagination/shadow.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\n\nimport type { WatchNumberOptions } from '../utils';\nimport { watchNumber } from '../utils';\n\nimport type { RowsPropType } from './rows';\n\n/* types */\nexport type MaxPropType = number;\n\n/**\n * Number of rows of the input element that should be visible at the same time.\n */\nexport type PropMax = {\n\tmax: MaxPropType;\n};\n\n/* validator */\nexport const validateMax = (component: Generic.Element.Component, value?: RowsPropType, options?: WatchNumberOptions): void => {\n\twatchNumber(component, '_max', value, options);\n};\n","@import '../@shared/mixins';\n@import '../style';\n@import '../tooltip/style.scss';\n\n@layer kol-component {\n\t/* TODO. Once #7126 is completed, move :host block into .kol-pagination */\n\t:host {\n\t\talign-items: center;\n\t\tdisplay: grid;\n\t\tfont-size: rem(16);\n\t\tgap: rem(16);\n\t\tgrid-template-columns: 1fr auto;\n\t}\n\n\t.kol-pagination {\n\t\t&__navigation-list {\n\t\t\talign-items: center;\n\t\t\tdisplay: inline-flex;\n\t\t\tflex-wrap: wrap;\n\t\t\tgap: 0.5em;\n\t\t\tlist-style: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&__separator:before {\n\t\t\tcontent: '•••';\n\t\t}\n\t}\n}\n","import type {\n\tCustomClassPropType,\n\tKoliBriPaginationButtonCallbacks,\n\tLabelPropType,\n\tMaxPropType,\n\tOption,\n\tPaginationAPI,\n\tPaginationHasButton,\n\tPaginationStates,\n\tStringified,\n\tTooltipAlignPropType,\n} from '../../schema';\nimport {\n\tparseJson,\n\tSTATE_CHANGE_EVENT,\n\tvalidateCustomClass,\n\tvalidateLabel,\n\tvalidateMax,\n\tvalidateTooltipAlign,\n\twatchJsonArrayString,\n\twatchNumber,\n\twatchValidator,\n} from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { translate } from '../../i18n';\nimport { nonce } from '../../utils/dev.utils';\nimport { addNavLabel, removeNavLabel } from '../../utils/unique-nav-labels';\nimport { KolButtonWcTag, KolSelectTag } from '../../core/component-names';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\n\nconst leftDoubleArrowIcon = {\n\tleft: 'codicon codicon-debug-reverse-continue',\n};\nconst leftSingleArrow = {\n\tleft: 'codicon codicon-chevron-left',\n};\nconst rightSingleArrowIcon = {\n\tright: 'codicon codicon-chevron-right',\n};\nconst rightDoubleArrowIcon = {\n\tright: 'codicon codicon-debug-continue',\n};\n\nfunction getUserLanguage(): string {\n\tconst userLanguage = navigator.language || 'de-DE';\n\tconst normalizedLanguage = userLanguage.includes('-') ? userLanguage : `${userLanguage}-${userLanguage.toUpperCase()}`;\n\treturn normalizedLanguage;\n}\nconst userLanguage = getUserLanguage();\nconst NUMBER_FORMATTER = new Intl.NumberFormat(userLanguage, {\n\tstyle: 'decimal',\n\tminimumFractionDigits: 0,\n\tmaximumFractionDigits: 0,\n});\n\n@Component({\n\ttag: 'kol-pagination',\n\tstyleUrls: {\n\t\tdefault: './style.scss',\n\t},\n\tshadow: true,\n})\nexport class KolPagination implements PaginationAPI {\n\t@Element() private readonly host?: HTMLKolTextareaElement;\n\n\tprivate readonly nonce = nonce();\n\n\tprivate readonly calcCount = (total: number, pageSize = 1): number => Math.ceil(total / pageSize);\n\n\tprivate readonly getCount = (): number => this.calcCount(this.state._max, this.state._pageSize);\n\n\tpublic render(): JSX.Element {\n\t\tlet ellipsis = false;\n\t\tconst count = this.getCount();\n\t\tconst pageButtons = Array.from(Array(count).keys())\n\t\t\t.map((index: number) => index + 1)\n\t\t\t.map((page: number) => {\n\t\t\t\tif (\n\t\t\t\t\tpage <= this.state._boundaryCount ||\n\t\t\t\t\tpage > count - this.state._boundaryCount ||\n\t\t\t\t\t(page >= this.state._page - this.state._siblingCount && page <= this.state._page + this.state._siblingCount)\n\t\t\t\t) {\n\t\t\t\t\tellipsis = true;\n\t\t\t\t\tif (this.state._page === page) {\n\t\t\t\t\t\treturn this.getSelectedPageButton(page);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn this.getUnselectedPageButton(page);\n\t\t\t\t\t}\n\t\t\t\t} else if (ellipsis === true) {\n\t\t\t\t\tellipsis = false;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={nonce()}>\n\t\t\t\t\t\t\t<span class=\"kol-pagination__separator\" aria-hidden=\"true\"></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t});\n\n\t\treturn (\n\t\t\t<Host class=\"kol-pagination\">\n\t\t\t\t<nav aria-label={this.state._label}>\n\t\t\t\t\t<ul class=\"kol-pagination__navigation-list\">\n\t\t\t\t\t\t{this.state._hasButtons.first && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--first\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={this.state._page <= 1}\n\t\t\t\t\t\t\t\t\t_icons={leftDoubleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-first')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoToFirst}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._hasButtons.previous && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--previous\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={this.state._page <= 1}\n\t\t\t\t\t\t\t\t\t_icons={leftSingleArrow}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-back')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoBackward}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{pageButtons}\n\t\t\t\t\t\t{this.state._hasButtons.next && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--next\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={count <= this.state._page}\n\t\t\t\t\t\t\t\t\t_icons={rightSingleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-next')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoForward}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{this.state._hasButtons.last && (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<KolButtonWcTag\n\t\t\t\t\t\t\t\t\tclass=\"kol-pagination__button kol-pagination__button--last\"\n\t\t\t\t\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t\t\t\t\t_disabled={count <= this.state._page}\n\t\t\t\t\t\t\t\t\t_icons={rightDoubleArrowIcon}\n\t\t\t\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t\t\t\t_label={translate('kol-page-last')}\n\t\t\t\t\t\t\t\t\t_on={this.onGoToEnd}\n\t\t\t\t\t\t\t\t\t_tooltipAlign={this.state._tooltipAlign}\n\t\t\t\t\t\t\t\t></KolButtonWcTag>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</ul>\n\t\t\t\t</nav>\n\t\t\t\t{this.state._pageSizeOptions?.length > 0 && (\n\t\t\t\t\t<KolSelectTag\n\t\t\t\t\t\t_hideLabel\n\t\t\t\t\t\t_id={`pagination-size-${this.nonce}`}\n\t\t\t\t\t\t_label={translate('kol-entries-per-site')}\n\t\t\t\t\t\t_options={this.state._pageSizeOptions}\n\t\t\t\t\t\t_on={{\n\t\t\t\t\t\t\tonChange: this.onChangePageSize,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_value={[this.state._pageSize]}\n\t\t\t\t\t></KolSelectTag>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the amount of pages to show next to the outer arrow buttons.\n\t */\n\t@Prop() public _boundaryCount?: number = 1;\n\n\t/**\n\t * Defines the custom class attribute if _variant=\"custom\" is set.\n\t */\n\t@Prop() public _customClass?: CustomClassPropType;\n\n\t/**\n\t * Defines the visible or semantic label of the component (e.g. aria-label, label, headline, caption, summary, etc.).\n\t */\n\t@Prop() public _label?: LabelPropType;\n\n\t/**\n\t * Defines which navigation buttons to render (first, last, next, previous buttons).\n\t */\n\t@Prop() public _hasButtons?: boolean | Stringified<PaginationHasButton> = true;\n\n\t/**\n\t * Defines the current page.\n\t */\n\t@Prop() public _page!: number;\n\n\t/**\n\t * Defines the amount of entries to show per page.\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _pageSize = 1;\n\n\t/**\n\t * Defines the options for the page-size-select.\n\t */\n\t@Prop() public _pageSizeOptions: Stringified<number[]> = [];\n\n\t/**\n\t * Gibt an, auf welche Callback-Events reagiert werden.\n\t */\n\t@Prop() public _on!: KoliBriPaginationButtonCallbacks;\n\n\t/**\n\t * Defines the amount of pages to show next to the current page.\n\t */\n\t@Prop() public _siblingCount?: number = 1;\n\n\t/**\n\t * Defines where to show the Tooltip preferably: top, right, bottom or left.\n\t */\n\t@Prop() public _tooltipAlign?: TooltipAlignPropType = 'top';\n\n\t/**\n\t * Defines the maximum number of pages.\n\t */\n\t@Prop() public _max!: MaxPropType;\n\n\t@State() public state: PaginationStates = {\n\t\t_boundaryCount: 1,\n\t\t_label: translate('kol-pagination'),\n\t\t_hasButtons: {\n\t\t\tfirst: true,\n\t\t\tlast: true,\n\t\t\tnext: true,\n\t\t\tprevious: true,\n\t\t},\n\t\t_on: {\n\t\t\tonClick: () => null,\n\t\t},\n\t\t_page: 0,\n\t\t_pageSize: 1,\n\t\t_pageSizeOptions: [],\n\t\t_siblingCount: 1,\n\t\t_max: 0,\n\t};\n\n\tprivate onClick = (event: Event, page: number) => {\n\t\tif (typeof this.state._on.onClick === 'function') {\n\t\t\tthis.state._on.onClick(event, page);\n\t\t}\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.click, page);\n\t\t}\n\t\tthis.onChangePage(event, page);\n\t};\n\n\tprivate onChangePage = (event: Event, page: number) => {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tif (typeof this.state._on.onChangePage === 'function') {\n\t\t\t\tthis.state._on.onChangePage(event, page);\n\t\t\t}\n\t\t\tif (this.host) {\n\t\t\t\tdispatchDomEvent(this.host, KolEvent.changePage, page);\n\t\t\t}\n\t\t});\n\t};\n\n\tprivate onChangePageSize = (event: Event, value: unknown) => {\n\t\tvalue = parseInt((value as string[])[0]);\n\t\tif (typeof value === 'number' && value > 0 && this._pageSize !== value) {\n\t\t\tthis._pageSize = value;\n\t\t\tconst timeout = setTimeout(() => {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t\tif (typeof this.state._on.onChangePageSize === 'function') {\n\t\t\t\t\tthis.state._on.onChangePageSize(event, this._pageSize);\n\t\t\t\t}\n\t\t\t\tif (this.host) {\n\t\t\t\t\tdispatchDomEvent(this.host, KolEvent.changePageSize, this._pageSize);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tprivate readonly onGoToFirst = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, 1);\n\t\t},\n\t};\n\tprivate readonly onGoToEnd = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.getCount());\n\t\t},\n\t};\n\tprivate readonly onGoBackward = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.state._page - 1);\n\t\t},\n\t};\n\tprivate readonly onGoForward = {\n\t\tonClick: (event: Event) => {\n\t\t\tthis.onClick(event, this.state._page + 1);\n\t\t},\n\t};\n\n\tprivate getUnselectedPageButton(page: number): JSX.Element {\n\t\treturn (\n\t\t\t<li key={nonce()}>\n\t\t\t\t<KolButtonWcTag\n\t\t\t\t\texportparts=\"icon\"\n\t\t\t\t\t_customClass={this.state._customClass}\n\t\t\t\t\t_label=\"\"\n\t\t\t\t\t_on={{\n\t\t\t\t\t\tonClick: (event: Event) => {\n\t\t\t\t\t\t\tthis.onClick(event, page);\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<span slot=\"expert\">\n\t\t\t\t\t\t<span class=\"visually-hidden\">{translate('kol-page')}</span> {NUMBER_FORMATTER.format(page)}\n\t\t\t\t\t</span>\n\t\t\t\t</KolButtonWcTag>\n\t\t\t</li>\n\t\t);\n\t}\n\n\tprivate getSelectedPageButton(page: number): JSX.Element {\n\t\treturn (\n\t\t\t<li key={nonce()}>\n\t\t\t\t<KolButtonWcTag class=\"kol-pagination__button kol-pagination__button--selected\" _customClass={this.state._customClass} _disabled={true} _label=\"\">\n\t\t\t\t\t<span slot=\"expert\">\n\t\t\t\t\t\t<span class=\"visually-hidden\">{translate('kol-page')}</span> {NUMBER_FORMATTER.format(page)}\n\t\t\t\t\t</span>\n\t\t\t\t</KolButtonWcTag>\n\t\t\t</li>\n\t\t);\n\t}\n\n\t@Watch('_boundaryCount')\n\tpublic validateBoundaryCount(value?: number): void {\n\t\twatchNumber(this, '_boundaryCount', Math.max(0, value ?? 1));\n\t}\n\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: CustomClassPropType): void {\n\t\tvalidateCustomClass(this, value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(label?: LabelPropType, _oldValue?: LabelPropType, initial = false) {\n\t\tif (!initial) {\n\t\t\tremoveNavLabel(this.state._label);\n\t\t}\n\t\tvalidateLabel(this, label);\n\t\taddNavLabel(this.state._label); // add the state instead of prop, because the prop could be invalid and not set as new label\n\t}\n\n\t@Watch('_hasButtons')\n\tpublic validateHasButtons(value?: string | boolean | Stringified<PaginationHasButton>): void {\n\t\twatchValidator(\n\t\t\tthis,\n\t\t\t'_hasButtons',\n\t\t\t(value) => typeof value === 'boolean' || typeof value === 'string' || (typeof value === 'object' && value !== null),\n\t\t\tnew Set(['Boolean', 'PaginationHasButton']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (typeof nextValue === 'boolean') {\n\t\t\t\t\t\t\tnextState.set('_hasButtons', {\n\t\t\t\t\t\t\t\tfirst: nextValue,\n\t\t\t\t\t\t\t\tlast: nextValue,\n\t\t\t\t\t\t\t\tnext: nextValue,\n\t\t\t\t\t\t\t\tprevious: nextValue,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (typeof nextValue === 'string') {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tnextValue = parseJson<PaginationHasButton>(nextValue);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\tnextState.delete('_hasButtons');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (typeof nextValue === 'object' && nextValue !== null) {\n\t\t\t\t\t\t\t\tnextState.set('_hasButtons', {\n\t\t\t\t\t\t\t\t\t...this.state._hasButtons,\n\t\t\t\t\t\t\t\t\tfirst:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).first === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).first === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.first,\n\t\t\t\t\t\t\t\t\tlast:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).last === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).last === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.last,\n\t\t\t\t\t\t\t\t\tnext:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).next === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).next === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.next,\n\t\t\t\t\t\t\t\t\tprevious:\n\t\t\t\t\t\t\t\t\t\ttypeof (nextValue as PaginationHasButton).previous === 'boolean'\n\t\t\t\t\t\t\t\t\t\t\t? (nextValue as PaginationHasButton).previous === true\n\t\t\t\t\t\t\t\t\t\t\t: this.state._hasButtons.previous,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: KoliBriPaginationButtonCallbacks): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_page')\n\tpublic validatePage(value?: number): void {\n\t\twatchNumber(this, '_page', value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\tconst pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\t\t\t\tconst total = nextState.has('_max') ? (nextState.get('_max') as number) : this.state._max;\n\t\t\t\t\tthis.syncPage(nextState, _nextValue as number, pageSize, total);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate beforePageSize = (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\tlet pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\tconst pageSizeOptions = nextState.has('_pageSizeOptions') ? (nextState.get('_pageSizeOptions') as Option<number>[]) : this.state._pageSizeOptions;\n\t\tif (Array.isArray(pageSizeOptions) && pageSizeOptions.length > 0) {\n\t\t\tconst find = pageSizeOptions.find((option) => option.value === pageSize);\n\t\t\tif (find === undefined) {\n\t\t\t\tpageSize = pageSizeOptions[0].value;\n\t\t\t} else {\n\t\t\t\tpageSize = find.value;\n\t\t\t}\n\t\t\tnextState.set('_pageSize', pageSize);\n\t\t}\n\t\tconst page = nextState.has('_page') ? (nextState.get('_page') as number) : this.state._page;\n\t\tconst total = nextState.has('_max') ? (nextState.get('_max') as number) : this.state._max;\n\t\tthis.syncPage(nextState, page, nextState.get('_pageSize') as number, total);\n\t};\n\n\tprivate syncPage = (nextState: Map<string, unknown>, page: number, pageSize: number, total: number) => {\n\t\t// count === 0 means no data\n\t\tif (total > 0) {\n\t\t\tconst count = this.calcCount(total, pageSize);\n\t\t\tif (count > 0) {\n\t\t\t\tif (page > count) {\n\t\t\t\t\tnextState.set('_page', count);\n\t\t\t\t\tthis.onChangePage(STATE_CHANGE_EVENT, count);\n\t\t\t\t} else if (page < 1) {\n\t\t\t\t\tnextState.set('_page', 1);\n\t\t\t\t\tthis.onChangePage(STATE_CHANGE_EVENT, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate beforePageSizeOptions = (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\tconst options: Option<number>[] = [];\n\t\tif (Array.isArray(nextValue)) {\n\t\t\tfor (const value of nextValue) {\n\t\t\t\tif (typeof value === 'number') {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tlabel: translate('kol-page-per-site', { placeholders: { entries: `${value}` } }),\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tnextState.set('_pageSizeOptions', options);\n\t\tthis.beforePageSize(options, nextState);\n\t};\n\n\t@Watch('_pageSize')\n\tpublic validatePageSize(value?: number): void {\n\t\twatchNumber(this, '_pageSize', value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePageSize,\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_pageSizeOptions')\n\tpublic validatePageSizeOptions(value?: Stringified<number[]>): void {\n\t\twatchJsonArrayString(this, '_pageSizeOptions', (value) => typeof value === 'number', value, undefined, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: this.beforePageSizeOptions,\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_siblingCount')\n\tpublic validateSiblingCount(value?: number): void {\n\t\twatchNumber(this, '_siblingCount', Math.max(0, value ?? 1));\n\t}\n\n\t@Watch('_max')\n\tpublic validateMax(value?: MaxPropType): void {\n\t\tvalidateMax(this, value, {\n\t\t\thooks: {\n\t\t\t\tbeforePatch: (_nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\tconst page = nextState.has('_page') ? (nextState.get('_page') as number) : this.state._page;\n\t\t\t\t\tconst pageSize = nextState.has('_pageSize') ? (nextState.get('_pageSize') as number) : this.state._pageSize;\n\t\t\t\t\tthis.syncPage(nextState, page, pageSize, _nextValue as number);\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: TooltipAlignPropType): void {\n\t\tvalidateTooltipAlign(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateBoundaryCount(this._boundaryCount);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateHasButtons(this._hasButtons);\n\t\tthis.validateLabel(this._label, undefined, true);\n\t\tthis.validateOn(this._on);\n\t\tthis.validatePage(this._page);\n\t\tthis.validatePageSize(this._pageSize);\n\t\tthis.validatePageSizeOptions(this._pageSizeOptions);\n\t\tthis.validateSiblingCount(this._siblingCount);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateMax(this._max);\n\n\t\t/**\n\t\t * Die Seite muss als letztes gesetzt werden, da sonst die Seite\n\t\t * nicht korrekt berechnet wird.\n\t\t */\n\t\tthis.validatePage(this._page);\n\t}\n\n\tpublic disconnectedCallback(): void {\n\t\tremoveNavLabel(this.state._label);\n\t}\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as alignFloatingElements}from"./align-floating-elements.js";import{w as watchValidator}from"./prop.validators.js";import{v as validateShow}from"./show.js";import{g as getDocument}from"./dev.utils.js";import{a as validateAlign}from"./align.js";const validatePopoverCallbacks=(e,t)=>{watchValidator(e,"_on",(e=>"object"==typeof e&&null!==e),new Set(["PopoverCallbacksPropType {Events.onClose}"]),t)},KolPopover=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.hidePopoverByEscape=e=>{"Escape"===e.key&&this.hidePopover(e)},this.hidePopoverByClickOutside=e=>{this.host&&!this.host.contains(e.target)&&this.hidePopover(e)},this.catchHostAndTriggerElement=e=>{e&&(this.host=e,this.triggerElement=e.previousElementSibling)},this.catchPopoverElement=e=>{this.popoverElement=e},this.catchArrowElement=e=>{this.arrowElement=e},this._align="top",this._on=void 0,this._show=!1,this.state={_align:"top",_on:{},_show:!1,_visible:!1}}async showPopover(){this.addListenersToBody(),this.triggerElement&&this.popoverElement&&(await alignFloatingElements({align:this._align,referenceElement:this.triggerElement,arrowElement:this.arrowElement,floatingElement:this.popoverElement}),this.state=Object.assign(Object.assign({},this.state),{_visible:!0}))}hidePopover(e){var t,o,i;this.state=Object.assign(Object.assign({},this.state),{_visible:!1}),this._show=!1,null===(t=this.triggerElement)||void 0===t||t.focus(),this.removeListenersToBody(),null===(i=null===(o=this.state._on)||void 0===o?void 0:o.onClose)||void 0===i||i.call(o,e)}addListenersToBody(){var e;const t=getDocument().body;t.addEventListener("keyup",this.hidePopoverByEscape),t.addEventListener("click",this.hidePopoverByClickOutside),null===(e=document.scrollingElement)||void 0===e||e.addEventListener("scroll",(()=>{this.showPopover()}),{passive:!0})}removeListenersToBody(){var e;const t=getDocument().body;t.removeEventListener("keyup",this.hidePopoverByEscape),t.removeEventListener("click",this.hidePopoverByClickOutside),null===(e=document.scrollingElement)||void 0===e||e.removeEventListener("scroll",(()=>{this.showPopover()}))}render(){return h(Host,{key:"26c30eb96d859b81b44e0f0ab462b24354bfc1e7",ref:this.catchHostAndTriggerElement,class:"kol-popover"},h("div",{key:"8126ab5d1f8e12d3fa008f713c2fd7578b30bef4",class:{popover:!0,show:this.state._visible},ref:this.catchPopoverElement,hidden:!this.state._show},h("div",{key:"0684249e8ee6f69117269aec03cb8e18d3b76603",class:`arrow ${this.state._align}`,ref:this.catchArrowElement}),h("slot",{key:"939d6c9656aaae0aba5809d80e82a4510a42a410"})))}validateAlign(e){validateAlign(this,e)}validateOn(e){validatePopoverCallbacks(this,e)}validateShow(e){validateShow(this,e),e&&this.showPopover()}componentWillLoad(){this.validateAlign(this._align),this.validateShow(this._show)}static get watchers(){return{_align:["validateAlign"],_on:["validateOn"],_show:["validateShow"]}}},[4,"kol-popover-wc",{_align:[1],_on:[16],_show:[1540],state:[32]},void 0,{_align:["validateAlign"],_on:["validateOn"],_show:["validateShow"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-popover-wc"].forEach((e=>{if("kol-popover-wc"===e)customElements.get(e)||customElements.define(e,KolPopover)}))}const KolPopoverWc=KolPopover,defineCustomElement=defineCustomElement$1;export{KolPopoverWc,defineCustomElement};
4
+ import{proxyCustomElement,HTMLElement,h,Host}from"@stencil/core/internal/client";import{a as alignFloatingElements}from"./align-floating-elements.js";import{c as clsx}from"./clsx.js";import{d as dispatchDomEvent,K as KolEvent}from"./events.js";import{w as watchValidator}from"./prop.validators.js";import{v as validateShow}from"./show.js";import{g as getDocument}from"./dev.utils.js";import{a as validateAlign}from"./align.js";const validatePopoverCallbacks=(e,t)=>{watchValidator(e,"_on",(e=>"object"==typeof e&&null!==e),new Set(["PopoverCallbacksPropType {Events.onClose}"]),t)},KolPopover=proxyCustomElement(class extends HTMLElement{constructor(){super(),this.__registerHost(),this.hidePopoverByEscape=e=>{"Escape"===e.key&&this.hidePopover(e)},this.hidePopoverByClickOutside=e=>{this.host&&!this.host.contains(e.target)&&this.hidePopover(e)},this.catchHostAndTriggerElement=e=>{e&&(this.host=e,this.triggerElement=e.previousElementSibling)},this.catchPopoverElement=e=>{this.popoverElement=e},this.catchArrowElement=e=>{this.arrowElement=e},this._align="top",this._on=void 0,this._show=!1,this.state={_align:"top",_on:{},_show:!1,_visible:!1}}async showPopover(){this.addListenersToBody(),this.triggerElement&&this.popoverElement&&(await alignFloatingElements({align:this._align,referenceElement:this.triggerElement,arrowElement:this.arrowElement,floatingElement:this.popoverElement}),this.state=Object.assign(Object.assign({},this.state),{_visible:!0}))}hidePopover(e){var t,o,s;this.state=Object.assign(Object.assign({},this.state),{_visible:!1}),this._show=!1,null===(t=this.triggerElement)||void 0===t||t.focus(),this.removeListenersToBody(),null===(s=null===(o=this.state._on)||void 0===o?void 0:o.onClose)||void 0===s||s.call(o,e),this.host&&dispatchDomEvent(this.host,KolEvent.close)}addListenersToBody(){var e;const t=getDocument().body;t.addEventListener("keyup",this.hidePopoverByEscape),t.addEventListener("click",this.hidePopoverByClickOutside),null===(e=document.scrollingElement)||void 0===e||e.addEventListener("scroll",(()=>{this.showPopover()}),{passive:!0})}removeListenersToBody(){var e;const t=getDocument().body;t.removeEventListener("keyup",this.hidePopoverByEscape),t.removeEventListener("click",this.hidePopoverByClickOutside),null===(e=document.scrollingElement)||void 0===e||e.removeEventListener("scroll",(()=>{this.showPopover()}))}render(){return h(Host,{key:"739d2b554941a7170c3c3c4bf1ececc7bf800e38",ref:this.catchHostAndTriggerElement,class:"kol-popover"},h("div",{key:"2d3abe3f399a2de9e1f9db563c333b2b970100ba",class:clsx("kol-popover__content",{"kol-popover__content--visible":this.state._visible}),ref:this.catchPopoverElement,hidden:!this.state._show},h("div",{key:"9c9309220c41cb4909e626f0d71aeeaede078464",class:clsx("kol-popover__arrow",`kol-popover__arrow--${this.state._align}`),ref:this.catchArrowElement}),h("slot",{key:"72ccc70cee01440a8b6f7c201073fa51a98ca0f7"})))}validateAlign(e){validateAlign(this,e)}validateOn(e){validatePopoverCallbacks(this,e)}validateShow(e){validateShow(this,e),e&&this.showPopover()}componentWillLoad(){this.validateAlign(this._align),this.validateShow(this._show)}static get watchers(){return{_align:["validateAlign"],_on:["validateOn"],_show:["validateShow"]}}},[4,"kol-popover-wc",{_align:[1],_on:[16],_show:[1540],state:[32]},void 0,{_align:["validateAlign"],_on:["validateOn"],_show:["validateShow"]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-popover-wc"].forEach((e=>{if("kol-popover-wc"===e)customElements.get(e)||customElements.define(e,KolPopover)}))}const KolPopoverWc=KolPopover,defineCustomElement=defineCustomElement$1;export{KolPopoverWc,defineCustomElement};
@@ -1 +1 @@
1
- {"file":"kol-popover-wc.js","mappings":"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","names":[],"sources":["src/schema/props/popover-callbacks.ts","src/components/popover/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\nimport type { Events } from '../enums';\nimport type { EventCallback } from '../types/callbacks';\nimport { watchValidator } from '../utils';\n\n/* types */\nexport type PopoverCallbacksPropType = {\n\t[Events.onClose]?: EventCallback<MouseEvent | KeyboardEvent>;\n};\n\n/**\n * Defines the callback functions for popover events.\n */\nexport type PropPopoverCallbacks = {\n\ton: PopoverCallbacksPropType;\n};\n\n/* validator */\nexport const validatePopoverCallbacks = (component: Generic.Element.Component, value?: PopoverCallbacksPropType): void => {\n\twatchValidator(component, `_on`, (value) => typeof value === 'object' && value !== null, new Set(['PopoverCallbacksPropType {Events.onClose}']), value);\n};\n","import type { AlignPropType, PopoverAPI, PopoverCallbacksPropType, PopoverStates, ShowPropType } from '../../schema';\nimport { getDocument, validateAlign, validatePopoverCallbacks, validateShow } from '../../schema';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { alignFloatingElements } from '../../utils/align-floating-elements';\n\nimport type { JSX } from '@stencil/core';\n\n/**\n * @internal\n * @slot - Der Inhalt des Popover.\n */\n@Component({\n\ttag: 'kol-popover-wc',\n\tshadow: false,\n})\nexport class KolPopover implements PopoverAPI {\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate popoverElement?: HTMLDivElement;\n\tprivate triggerElement?: HTMLElement | null;\n\tprivate host?: HTMLElement;\n\n\tprivate async showPopover(): Promise<void> {\n\t\tthis.addListenersToBody();\n\n\t\tif (this.triggerElement && this.popoverElement) {\n\t\t\tawait alignFloatingElements({\n\t\t\t\talign: this._align,\n\t\t\t\treferenceElement: this.triggerElement,\n\t\t\t\tarrowElement: this.arrowElement,\n\t\t\t\tfloatingElement: this.popoverElement,\n\t\t\t});\n\t\t\tthis.state = { ...this.state, _visible: true };\n\t\t}\n\t}\n\tprivate hidePopover(event: MouseEvent | KeyboardEvent): void {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_visible: false,\n\t\t};\n\t\tthis._show = false;\n\t\tthis.triggerElement?.focus();\n\t\tthis.removeListenersToBody();\n\n\t\tthis.state._on?.onClose?.(event);\n\t}\n\n\tprivate hidePopoverByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') this.hidePopover(event);\n\t};\n\n\tprivate hidePopoverByClickOutside = (event: MouseEvent): void => {\n\t\tif (this.host && !this.host.contains(event.target as HTMLElement)) {\n\t\t\tthis.hidePopover(event);\n\t\t}\n\t};\n\n\t/* EventListener functions */\n\tprivate addListenersToBody(): void {\n\t\tconst body = getDocument().body;\n\t\tbody.addEventListener('keyup', this.hidePopoverByEscape);\n\t\tbody.addEventListener('click', this.hidePopoverByClickOutside);\n\t\tdocument.scrollingElement?.addEventListener(\n\t\t\t'scroll',\n\t\t\t() => {\n\t\t\t\tvoid this.showPopover();\n\t\t\t},\n\t\t\t{ passive: true },\n\t\t);\n\t}\n\tprivate removeListenersToBody(): void {\n\t\tconst body = getDocument().body;\n\t\tbody.removeEventListener('keyup', this.hidePopoverByEscape);\n\t\tbody.removeEventListener('click', this.hidePopoverByClickOutside);\n\t\tdocument.scrollingElement?.removeEventListener('scroll', () => {\n\t\t\tvoid this.showPopover();\n\t\t});\n\t}\n\n\t/* catchElement functions */\n\tprivate catchHostAndTriggerElement = (element: HTMLElement | null): void => {\n\t\tif (element) {\n\t\t\tthis.host = element;\n\t\t\tthis.triggerElement = element.previousElementSibling as HTMLElement | null;\n\t\t}\n\t};\n\tprivate catchPopoverElement = (element?: HTMLDivElement): void => {\n\t\tthis.popoverElement = element;\n\t};\n\tprivate catchArrowElement = (element?: HTMLDivElement): void => {\n\t\tthis.arrowElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host ref={this.catchHostAndTriggerElement} class=\"kol-popover\">\n\t\t\t\t<div class={{ popover: true, show: this.state._visible }} ref={this.catchPopoverElement} hidden={!this.state._show}>\n\t\t\t\t\t<div class={`arrow ${this.state._align}`} ref={this.catchArrowElement} />\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the alignment of the tooltip, popover or tabs in relation to the element.\n\t */\n\t@Prop() public _align?: AlignPropType = 'top';\n\n\t/**\n\t * Defines the callback functions for popover events.\n\t */\n\t@Prop() public _on?: PopoverCallbacksPropType;\n\n\t/**\n\t * Makes the element show up.\n\t * @TODO: Change type back to `ShowPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _show?: boolean = false;\n\n\t@State() public state: PopoverStates = {\n\t\t_align: 'top',\n\t\t_on: {},\n\t\t_show: false,\n\t\t_visible: false,\n\t};\n\n\t@Watch('_align')\n\tpublic validateAlign(value?: AlignPropType): void {\n\t\tvalidateAlign(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: PopoverCallbacksPropType): void {\n\t\tvalidatePopoverCallbacks(this, value);\n\t}\n\n\t@Watch('_show')\n\tpublic validateShow(value?: ShowPropType): void {\n\t\tvalidateShow(this, value);\n\t\tif (value) void this.showPopover();\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateShow(this._show);\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-popover-wc.js","mappings":"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","names":[],"sources":["src/schema/props/popover-callbacks.ts","src/components/popover/component.tsx"],"sourcesContent":["import type { Generic } from 'adopted-style-sheets';\nimport type { Callback } from '../enums';\nimport type { EventCallback } from '../types/callbacks';\nimport { watchValidator } from '../utils';\n\n/* types */\nexport type PopoverCallbacksPropType = {\n\t[Callback.onClose]?: EventCallback<MouseEvent | KeyboardEvent>;\n};\n\n/**\n * Defines the callback functions for popover events.\n */\nexport type PropPopoverCallbacks = {\n\ton: PopoverCallbacksPropType;\n};\n\n/* validator */\nexport const validatePopoverCallbacks = (component: Generic.Element.Component, value?: PopoverCallbacksPropType): void => {\n\twatchValidator(component, `_on`, (value) => typeof value === 'object' && value !== null, new Set(['PopoverCallbacksPropType {Events.onClose}']), value);\n};\n","import type { AlignPropType, PopoverAPI, PopoverCallbacksPropType, PopoverStates, ShowPropType } from '../../schema';\nimport { getDocument, validateAlign, validatePopoverCallbacks, validateShow } from '../../schema';\nimport type { JSX } from '@stencil/core';\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport { alignFloatingElements } from '../../utils/align-floating-elements';\nimport clsx from 'clsx';\nimport { dispatchDomEvent, KolEvent } from '../../utils/events';\n\n/**\n * @internal\n * @slot - Der Inhalt des Popover.\n */\n@Component({\n\ttag: 'kol-popover-wc',\n\tshadow: false,\n})\nexport class KolPopover implements PopoverAPI {\n\tprivate arrowElement?: HTMLDivElement;\n\tprivate popoverElement?: HTMLDivElement;\n\tprivate triggerElement?: HTMLElement | null;\n\tprivate host?: HTMLElement;\n\n\tprivate async showPopover(): Promise<void> {\n\t\tthis.addListenersToBody();\n\n\t\tif (this.triggerElement && this.popoverElement) {\n\t\t\tawait alignFloatingElements({\n\t\t\t\talign: this._align,\n\t\t\t\treferenceElement: this.triggerElement,\n\t\t\t\tarrowElement: this.arrowElement,\n\t\t\t\tfloatingElement: this.popoverElement,\n\t\t\t});\n\t\t\tthis.state = { ...this.state, _visible: true };\n\t\t}\n\t}\n\tprivate hidePopover(event: MouseEvent | KeyboardEvent): void {\n\t\tthis.state = {\n\t\t\t...this.state,\n\t\t\t_visible: false,\n\t\t};\n\t\tthis._show = false;\n\t\tthis.triggerElement?.focus();\n\t\tthis.removeListenersToBody();\n\n\t\tthis.state._on?.onClose?.(event);\n\t\tif (this.host) {\n\t\t\tdispatchDomEvent(this.host, KolEvent.close);\n\t\t}\n\t}\n\n\tprivate hidePopoverByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') this.hidePopover(event);\n\t};\n\n\tprivate hidePopoverByClickOutside = (event: MouseEvent): void => {\n\t\tif (this.host && !this.host.contains(event.target as HTMLElement)) {\n\t\t\tthis.hidePopover(event);\n\t\t}\n\t};\n\n\t/* EventListener functions */\n\tprivate addListenersToBody(): void {\n\t\tconst body = getDocument().body;\n\t\tbody.addEventListener('keyup', this.hidePopoverByEscape);\n\t\tbody.addEventListener('click', this.hidePopoverByClickOutside);\n\t\tdocument.scrollingElement?.addEventListener(\n\t\t\t'scroll',\n\t\t\t() => {\n\t\t\t\tvoid this.showPopover();\n\t\t\t},\n\t\t\t{ passive: true },\n\t\t);\n\t}\n\tprivate removeListenersToBody(): void {\n\t\tconst body = getDocument().body;\n\t\tbody.removeEventListener('keyup', this.hidePopoverByEscape);\n\t\tbody.removeEventListener('click', this.hidePopoverByClickOutside);\n\t\tdocument.scrollingElement?.removeEventListener('scroll', () => {\n\t\t\tvoid this.showPopover();\n\t\t});\n\t}\n\n\t/* catchElement functions */\n\tprivate catchHostAndTriggerElement = (element: HTMLElement | null): void => {\n\t\tif (element) {\n\t\t\tthis.host = element;\n\t\t\tthis.triggerElement = element.previousElementSibling as HTMLElement | null;\n\t\t}\n\t};\n\tprivate catchPopoverElement = (element?: HTMLDivElement): void => {\n\t\tthis.popoverElement = element;\n\t};\n\tprivate catchArrowElement = (element?: HTMLDivElement): void => {\n\t\tthis.arrowElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host ref={this.catchHostAndTriggerElement} class=\"kol-popover\">\n\t\t\t\t<div\n\t\t\t\t\tclass={clsx('kol-popover__content', { 'kol-popover__content--visible': this.state._visible })}\n\t\t\t\t\tref={this.catchPopoverElement}\n\t\t\t\t\thidden={!this.state._show}\n\t\t\t\t>\n\t\t\t\t\t<div class={clsx('kol-popover__arrow', `kol-popover__arrow--${this.state._align}`)} ref={this.catchArrowElement} />\n\t\t\t\t\t<slot />\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Defines the alignment of the tooltip, popover or tabs in relation to the element.\n\t */\n\t@Prop() public _align?: AlignPropType = 'top';\n\n\t/**\n\t * Defines the callback functions for popover events.\n\t */\n\t@Prop() public _on?: PopoverCallbacksPropType;\n\n\t/**\n\t * Makes the element show up.\n\t * @TODO: Change type back to `ShowPropType` after Stencil#4663 has been resolved.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _show?: boolean = false;\n\n\t@State() public state: PopoverStates = {\n\t\t_align: 'top',\n\t\t_on: {},\n\t\t_show: false,\n\t\t_visible: false,\n\t};\n\n\t@Watch('_align')\n\tpublic validateAlign(value?: AlignPropType): void {\n\t\tvalidateAlign(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: PopoverCallbacksPropType): void {\n\t\tvalidatePopoverCallbacks(this, value);\n\t}\n\n\t@Watch('_show')\n\tpublic validateShow(value?: ShowPropType): void {\n\t\tvalidateShow(this, value);\n\t\tif (value) void this.showPopover();\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateShow(this._show);\n\t}\n}\n"],"version":3}