@lmvz-ds/components 0.17.1 → 0.18.0

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 (383) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/{readme.md → README.md} +3 -0
  3. package/assets/.DS_Store +0 -0
  4. package/assets/icons/.DS_Store +0 -0
  5. package/{dist/cjs/aria-loader-BRxRUIyi.js → cjs/aria-loader-CfFuAbJn.js} +2 -2
  6. package/cjs/icons-swqMn6s2.js +163 -0
  7. package/{dist/cjs/index-BBqtydE-.js → cjs/index--7IqZZqn.js} +22965 -11151
  8. package/{dist/cjs/index-CH-YLRgg.js → cjs/index-C2yDXRqP.js} +45 -10
  9. package/cjs/index.cjs.js +25 -0
  10. package/{dist/cjs → cjs}/lmvz-action.cjs.entry.js +2 -2
  11. package/{dist/cjs → cjs}/lmvz-button.cjs.entry.js +4 -4
  12. package/{dist/cjs → cjs}/lmvz-card.cjs.entry.js +24 -4
  13. package/{dist/cjs → cjs}/lmvz-chip.cjs.entry.js +2 -2
  14. package/{dist/cjs → cjs}/lmvz-components.cjs.js +3 -3
  15. package/{dist/cjs → cjs}/lmvz-header_2.cjs.entry.js +6 -6
  16. package/{dist/cjs → cjs}/lmvz-icon.cjs.entry.js +25 -14
  17. package/{dist/cjs → cjs}/lmvz-input.cjs.entry.js +5 -5
  18. package/{dist/cjs → cjs}/lmvz-menuitem.cjs.entry.js +4 -4
  19. package/{dist/cjs → cjs}/lmvz-select.cjs.entry.js +4 -4
  20. package/cjs/loader.cjs.js +13 -0
  21. package/cjs/logger-Bn2yoZGP.js +7189 -0
  22. package/{dist/cjs/reactive-controller-host-vy1TIIXv.js → cjs/reactive-controller-host-CtaVAiYJ.js} +30 -26
  23. package/collection/api/ds.constants.js +7 -0
  24. package/collection/assets/.DS_Store +0 -0
  25. package/collection/assets/icons/.DS_Store +0 -0
  26. package/{dist/collection → collection}/collection-manifest.json +2 -2
  27. package/{dist/collection → collection}/components/lmvz-action/lmvz-action.js +1 -1
  28. package/{dist/collection → collection}/components/lmvz-button/lmvz-button.js +5 -5
  29. package/{dist/collection → collection}/components/lmvz-card/lmvz-card.js +1 -1
  30. package/{dist/collection → collection}/components/lmvz-chip/lmvz-chip.js +1 -1
  31. package/{dist/collection → collection}/components/lmvz-header/lmvz-header.js +2 -2
  32. package/{dist/collection → collection}/components/lmvz-icon/lmvz-icon.css +5 -5
  33. package/{dist/collection → collection}/components/lmvz-icon/lmvz-icon.js +49 -18
  34. package/{dist/collection → collection}/components/lmvz-input/lmvz-input.js +6 -6
  35. package/{dist/collection → collection}/components/lmvz-menuitem/lmvz-menuitem.js +1 -1
  36. package/{dist/collection → collection}/components/lmvz-select/lmvz-select.js +1 -1
  37. package/collection/index.js +3 -0
  38. package/collection/integration/header-integration/header-integration.js +51 -0
  39. package/{dist/collection → collection}/utils/aria/aria-validation-controller.js +29 -25
  40. package/collection/utils/http.js +21 -0
  41. package/{dist/collection → collection}/utils/http.unit.js +5 -5
  42. package/collection/utils/icons/icons-registry.js +34 -0
  43. package/collection/utils/icons/icons.js +49 -0
  44. package/collection/utils/icons/icons.unit.js +73 -0
  45. package/collection/utils/icons/public.js +2 -0
  46. package/collection/utils/public.js +1 -0
  47. package/components/index.d.ts.bak +55 -0
  48. package/components/index.js +1 -0
  49. package/components/lmvz-action.d.ts.bak +11 -0
  50. package/components/lmvz-action.js +1 -0
  51. package/components/lmvz-button.d.ts.bak +11 -0
  52. package/{dist/components → components}/lmvz-button.js +1 -1
  53. package/components/lmvz-card.d.ts.bak +11 -0
  54. package/components/lmvz-card.js +1 -0
  55. package/components/lmvz-chip.d.ts.bak +11 -0
  56. package/{dist/components → components}/lmvz-chip.js +1 -1
  57. package/components/lmvz-header.d.ts.bak +11 -0
  58. package/{dist/components → components}/lmvz-header.js +1 -1
  59. package/components/lmvz-icon.d.ts.bak +11 -0
  60. package/components/lmvz-icon.js +1 -0
  61. package/components/lmvz-input.d.ts.bak +11 -0
  62. package/{dist/components → components}/lmvz-input.js +1 -1
  63. package/components/lmvz-menuitem.d.ts.bak +11 -0
  64. package/{dist/components → components}/lmvz-menuitem.js +1 -1
  65. package/components/lmvz-select.d.ts.bak +11 -0
  66. package/{dist/components → components}/lmvz-select.js +1 -1
  67. package/components/p-CBLAeife.js +1 -0
  68. package/components/p-C_bScbrd.js +1 -0
  69. package/components/p-DXOTa5VF.js +12 -0
  70. package/components/p-fiRXhuXK.js +1 -0
  71. package/{dist/esm/aria-loader-JxXwTAe5.js → esm/aria-loader-BF_AYtbb.js} +2 -2
  72. package/esm/icons-Ca8oMiRa.js +157 -0
  73. package/{dist/esm/index-BW1YMEA3.js → esm/index-7Ru1khgk.js} +23076 -11262
  74. package/{dist/esm/index-CQb-mBBB.js → esm/index-saW7O-EW.js} +45 -10
  75. package/esm/index.js +11 -0
  76. package/{dist/esm → esm}/lmvz-action.entry.js +2 -2
  77. package/{dist/esm → esm}/lmvz-button.entry.js +4 -4
  78. package/{dist/esm → esm}/lmvz-card.entry.js +22 -3
  79. package/{dist/esm → esm}/lmvz-chip.entry.js +2 -2
  80. package/esm/lmvz-components.js +21 -0
  81. package/{dist/esm → esm}/lmvz-header_2.entry.js +6 -6
  82. package/{dist/esm → esm}/lmvz-icon.entry.js +25 -14
  83. package/{dist/esm → esm}/lmvz-input.entry.js +5 -5
  84. package/{dist/esm → esm}/lmvz-menuitem.entry.js +4 -4
  85. package/{dist/esm → esm}/lmvz-select.entry.js +4 -4
  86. package/esm/loader.js +11 -0
  87. package/esm/logger-fiRXhuXK.js +6990 -0
  88. package/{dist/esm/reactive-controller-host-OhKYwMvP.js → esm/reactive-controller-host-sR2jJxNG.js} +30 -26
  89. package/hydrate/index.js +183 -3898
  90. package/hydrate/index.mjs +183 -3898
  91. package/lmvz-components/index.esm.js +1 -0
  92. package/lmvz-components/lmvz-components.esm.js +1 -0
  93. package/{dist/lmvz-components/p-b8926640.entry.js → lmvz-components/p-30b99f11.entry.js} +1 -1
  94. package/lmvz-components/p-43e295ba.entry.js +1 -0
  95. package/lmvz-components/p-5f150890.entry.js +1 -0
  96. package/{dist/lmvz-components/p-b9d1953f.entry.js → lmvz-components/p-77007422.entry.js} +1 -1
  97. package/{dist/lmvz-components/p-Bx29-tJt.js → lmvz-components/p-B3dnXEPG.js} +1 -1
  98. package/lmvz-components/p-Bh2Epkwf.js +1 -0
  99. package/lmvz-components/p-Bkfdgg0T.js +1 -0
  100. package/lmvz-components/p-DXOTa5VF.js +12 -0
  101. package/lmvz-components/p-ae4aeb0a.entry.js +1 -0
  102. package/lmvz-components/p-b0208356.entry.js +1 -0
  103. package/{dist/lmvz-components/p-4530f088.entry.js → lmvz-components/p-bfd7db0a.entry.js} +1 -1
  104. package/{dist/lmvz-components/p-150ecfb6.entry.js → lmvz-components/p-d2e42f6a.entry.js} +1 -1
  105. package/{dist/lmvz-components/p-47d7ed0e.entry.js → lmvz-components/p-ffa21507.entry.js} +1 -1
  106. package/lmvz-components/p-fiRXhuXK.js +1 -0
  107. package/lmvz-components/p-saW7O-EW.js +2 -0
  108. package/loader/cdn.js +1 -1
  109. package/loader/index.cjs.js +1 -1
  110. package/loader/index.d.ts +1 -1
  111. package/loader/index.es2017.js +1 -1
  112. package/loader/index.js +1 -1
  113. package/{dist/manifest.json → manifest.json} +65 -284
  114. package/package.json +44 -105
  115. package/types/api/ds.constants.d.ts +29 -0
  116. package/types/api/ds.types.d.ts +4 -0
  117. package/{dist/types → types}/api/index.d.ts +0 -1
  118. package/{dist/types → types}/components/lmvz-action/lmvz-action.d.ts +1 -0
  119. package/{dist/types → types}/components/lmvz-button/lmvz-button.d.ts +2 -2
  120. package/{dist/types → types}/components/lmvz-card/lmvz-card.d.ts +1 -0
  121. package/{dist/types → types}/components/lmvz-chip/lmvz-chip.d.ts +1 -0
  122. package/{dist/types → types}/components/lmvz-header/lmvz-header.d.ts +1 -0
  123. package/{dist/types → types}/components/lmvz-icon/lmvz-icon.d.ts +4 -1
  124. package/{dist/types → types}/components/lmvz-input/lmvz-input.d.ts +1 -0
  125. package/{dist/types → types}/components/lmvz-menuitem/lmvz-menuitem.d.ts +1 -0
  126. package/{dist/types → types}/components/lmvz-select/lmvz-select.d.ts +1 -0
  127. package/types/components.d.ts +747 -0
  128. package/{dist/types → types}/index.d.ts +2 -2
  129. package/{dist/types → types}/utils/aria/aria-validation-controller.d.ts +1 -0
  130. package/{dist/types → types}/utils/aria/element-activation-controller.d.ts +1 -0
  131. package/{dist/types → types}/utils/aria/list-keyboard-controller.d.ts +1 -0
  132. package/{dist/types → types}/utils/assets.d.ts +1 -0
  133. package/{dist/types → types}/utils/component.d.ts +2 -4
  134. package/{dist/types → types}/utils/environment.d.ts +1 -0
  135. package/types/utils/http.d.ts +27 -0
  136. package/types/utils/http.unit.d.ts +2 -0
  137. package/types/utils/icons/icons-registry.d.ts +13 -0
  138. package/types/utils/icons/icons.d.ts +8 -0
  139. package/types/utils/icons/icons.unit.d.ts +8 -0
  140. package/types/utils/icons/public.d.ts +4 -0
  141. package/types/utils/public.d.ts +2 -0
  142. package/{dist/types → types}/utils/reactive-controller-host.d.ts +1 -0
  143. package/assets/icons/actions.svg +0 -5
  144. package/assets/icons/adduser.svg +0 -3
  145. package/assets/icons/alert.svg +0 -3
  146. package/assets/icons/apple.svg +0 -3
  147. package/assets/icons/arrow-down.svg +0 -3
  148. package/assets/icons/arrow-left.svg +0 -3
  149. package/assets/icons/arrow-right.svg +0 -3
  150. package/assets/icons/arrow-up.svg +0 -3
  151. package/assets/icons/book.svg +0 -3
  152. package/assets/icons/bookmark.svg +0 -3
  153. package/assets/icons/checkmark.svg +0 -3
  154. package/assets/icons/chevron-left.svg +0 -3
  155. package/assets/icons/chevron-right.svg +0 -3
  156. package/assets/icons/chevron-up.svg +0 -3
  157. package/assets/icons/close-l.svg +0 -3
  158. package/assets/icons/close-sm.svg +0 -3
  159. package/assets/icons/cog.svg +0 -4
  160. package/assets/icons/computer.svg +0 -3
  161. package/assets/icons/dashboard.svg +0 -6
  162. package/assets/icons/delete.svg +0 -3
  163. package/assets/icons/download.svg +0 -3
  164. package/assets/icons/edit.svg +0 -3
  165. package/assets/icons/external.svg +0 -3
  166. package/assets/icons/facebook.svg +0 -3
  167. package/assets/icons/favorite.svg +0 -3
  168. package/assets/icons/filter.svg +0 -3
  169. package/assets/icons/group.svg +0 -3
  170. package/assets/icons/hide.svg +0 -3
  171. package/assets/icons/home.svg +0 -3
  172. package/assets/icons/info.svg +0 -3
  173. package/assets/icons/instagram.svg +0 -3
  174. package/assets/icons/letter.svg +0 -3
  175. package/assets/icons/linkedin.svg +0 -5
  176. package/assets/icons/logout.svg +0 -3
  177. package/assets/icons/map.svg +0 -3
  178. package/assets/icons/minus.svg +0 -3
  179. package/assets/icons/navigation.svg +0 -3
  180. package/assets/icons/plus.svg +0 -3
  181. package/assets/icons/qr-scan.svg +0 -3
  182. package/assets/icons/question.svg +0 -10
  183. package/assets/icons/reader.svg +0 -3
  184. package/assets/icons/reset.svg +0 -3
  185. package/assets/icons/school.svg +0 -3
  186. package/assets/icons/search.svg +0 -3
  187. package/assets/icons/send.svg +0 -3
  188. package/assets/icons/settings.svg +0 -3
  189. package/assets/icons/share.svg +0 -10
  190. package/assets/icons/shopping-cart.svg +0 -3
  191. package/assets/icons/show.svg +0 -3
  192. package/assets/icons/snapchat.svg +0 -3
  193. package/assets/icons/sort.svg +0 -3
  194. package/assets/icons/speech-bubble.svg +0 -3
  195. package/assets/icons/star.svg +0 -3
  196. package/assets/icons/student.svg +0 -3
  197. package/assets/icons/upload.svg +0 -3
  198. package/assets/icons/user.svg +0 -3
  199. package/assets/icons/warn-circle.svg +0 -3
  200. package/assets/icons/warn-triangle.svg +0 -3
  201. package/assets/icons/whatsapp.svg +0 -4
  202. package/assets/icons/world.svg +0 -10
  203. package/assets/icons/x.svg +0 -3
  204. package/assets/icons/youtube.svg +0 -3
  205. package/dist/cjs/Effect-DdYOHaR4.js +0 -19037
  206. package/dist/cjs/assets-OvQ-WUwR.js +0 -26
  207. package/dist/cjs/icons-EHBLbidD.js +0 -653
  208. package/dist/cjs/index.cjs.js +0 -104
  209. package/dist/cjs/loader.cjs.js +0 -13
  210. package/dist/collection/api/ds.constants.js +0 -73
  211. package/dist/collection/api/index.js +0 -1
  212. package/dist/collection/assets/icons/actions.svg +0 -5
  213. package/dist/collection/assets/icons/adduser.svg +0 -3
  214. package/dist/collection/assets/icons/alert.svg +0 -3
  215. package/dist/collection/assets/icons/apple.svg +0 -3
  216. package/dist/collection/assets/icons/arrow-down.svg +0 -3
  217. package/dist/collection/assets/icons/arrow-left.svg +0 -3
  218. package/dist/collection/assets/icons/arrow-right.svg +0 -3
  219. package/dist/collection/assets/icons/arrow-up.svg +0 -3
  220. package/dist/collection/assets/icons/book.svg +0 -3
  221. package/dist/collection/assets/icons/bookmark.svg +0 -3
  222. package/dist/collection/assets/icons/checkmark.svg +0 -3
  223. package/dist/collection/assets/icons/chevron-left.svg +0 -3
  224. package/dist/collection/assets/icons/chevron-right.svg +0 -3
  225. package/dist/collection/assets/icons/chevron-up.svg +0 -3
  226. package/dist/collection/assets/icons/close-l.svg +0 -3
  227. package/dist/collection/assets/icons/close-sm.svg +0 -3
  228. package/dist/collection/assets/icons/cog.svg +0 -4
  229. package/dist/collection/assets/icons/computer.svg +0 -3
  230. package/dist/collection/assets/icons/dashboard.svg +0 -6
  231. package/dist/collection/assets/icons/delete.svg +0 -3
  232. package/dist/collection/assets/icons/download.svg +0 -3
  233. package/dist/collection/assets/icons/edit.svg +0 -3
  234. package/dist/collection/assets/icons/external.svg +0 -3
  235. package/dist/collection/assets/icons/facebook.svg +0 -3
  236. package/dist/collection/assets/icons/favorite.svg +0 -3
  237. package/dist/collection/assets/icons/filter.svg +0 -3
  238. package/dist/collection/assets/icons/group.svg +0 -3
  239. package/dist/collection/assets/icons/hide.svg +0 -3
  240. package/dist/collection/assets/icons/home.svg +0 -3
  241. package/dist/collection/assets/icons/info.svg +0 -3
  242. package/dist/collection/assets/icons/instagram.svg +0 -3
  243. package/dist/collection/assets/icons/letter.svg +0 -3
  244. package/dist/collection/assets/icons/linkedin.svg +0 -5
  245. package/dist/collection/assets/icons/logout.svg +0 -3
  246. package/dist/collection/assets/icons/map.svg +0 -3
  247. package/dist/collection/assets/icons/minus.svg +0 -3
  248. package/dist/collection/assets/icons/navigation.svg +0 -3
  249. package/dist/collection/assets/icons/plus.svg +0 -3
  250. package/dist/collection/assets/icons/qr-scan.svg +0 -3
  251. package/dist/collection/assets/icons/question.svg +0 -10
  252. package/dist/collection/assets/icons/reader.svg +0 -3
  253. package/dist/collection/assets/icons/reset.svg +0 -3
  254. package/dist/collection/assets/icons/school.svg +0 -3
  255. package/dist/collection/assets/icons/search.svg +0 -3
  256. package/dist/collection/assets/icons/send.svg +0 -3
  257. package/dist/collection/assets/icons/settings.svg +0 -3
  258. package/dist/collection/assets/icons/share.svg +0 -10
  259. package/dist/collection/assets/icons/shopping-cart.svg +0 -3
  260. package/dist/collection/assets/icons/show.svg +0 -3
  261. package/dist/collection/assets/icons/snapchat.svg +0 -3
  262. package/dist/collection/assets/icons/sort.svg +0 -3
  263. package/dist/collection/assets/icons/speech-bubble.svg +0 -3
  264. package/dist/collection/assets/icons/star.svg +0 -3
  265. package/dist/collection/assets/icons/student.svg +0 -3
  266. package/dist/collection/assets/icons/upload.svg +0 -3
  267. package/dist/collection/assets/icons/user.svg +0 -3
  268. package/dist/collection/assets/icons/warn-circle.svg +0 -3
  269. package/dist/collection/assets/icons/warn-triangle.svg +0 -3
  270. package/dist/collection/assets/icons/whatsapp.svg +0 -4
  271. package/dist/collection/assets/icons/world.svg +0 -10
  272. package/dist/collection/assets/icons/x.svg +0 -3
  273. package/dist/collection/assets/icons/youtube.svg +0 -3
  274. package/dist/collection/components/lmvz-icon/icons.js +0 -36
  275. package/dist/collection/components/lmvz-icon/public.js +0 -1
  276. package/dist/collection/components/lmvz-icon/test/icons.unit.js +0 -98
  277. package/dist/collection/index.js +0 -4
  278. package/dist/collection/integration/header-integration.js +0 -46
  279. package/dist/collection/utils/effect.js +0 -6
  280. package/dist/collection/utils/http.js +0 -24
  281. package/dist/collection/utils/public.js +0 -1
  282. package/dist/collection/utils/validation/svg.js +0 -24
  283. package/dist/components/index.js +0 -1
  284. package/dist/components/lmvz-action.js +0 -1
  285. package/dist/components/lmvz-card.js +0 -1
  286. package/dist/components/lmvz-icon.js +0 -1
  287. package/dist/components/p-BsHYIl56.js +0 -1
  288. package/dist/components/p-CKtksB0G.js +0 -1
  289. package/dist/components/p-CahBdGGN.js +0 -1
  290. package/dist/components/p-GKEnURpp.js +0 -1
  291. package/dist/components/p-vIq2biqy.js +0 -12
  292. package/dist/esm/Effect-9SROYpxM.js +0 -18828
  293. package/dist/esm/assets-CNHv_WMG.js +0 -23
  294. package/dist/esm/icons-B255FOe4.js +0 -649
  295. package/dist/esm/index.js +0 -87
  296. package/dist/esm/lmvz-components.js +0 -21
  297. package/dist/esm/loader.js +0 -11
  298. package/dist/ext-libs.d.ts +0 -1
  299. package/dist/lmvz-components/index.esm.js +0 -1
  300. package/dist/lmvz-components/lmvz-components.esm.js +0 -1
  301. package/dist/lmvz-components/p-22f67eff.entry.js +0 -1
  302. package/dist/lmvz-components/p-5c3f1404.entry.js +0 -1
  303. package/dist/lmvz-components/p-8d51e396.entry.js +0 -1
  304. package/dist/lmvz-components/p-9SROYpxM.js +0 -1
  305. package/dist/lmvz-components/p-CQb-mBBB.js +0 -2
  306. package/dist/lmvz-components/p-Cp76bcGb.js +0 -1
  307. package/dist/lmvz-components/p-Cp7cp10e.js +0 -12
  308. package/dist/lmvz-components/p-DyO6wO4l.js +0 -1
  309. package/dist/lmvz-components/p-d9c3f542.entry.js +0 -1
  310. package/dist/lmvz-components/p-i2508Ct1.js +0 -1
  311. package/dist/stencil.config.base.js +0 -44
  312. package/dist/stencil.config.dev.js +0 -21
  313. package/dist/stencil.config.integration.js +0 -26
  314. package/dist/stencil.config.js +0 -15
  315. package/dist/stencil.config.prod.js +0 -29
  316. package/dist/types/api/ds.constants.d.ts +0 -8
  317. package/dist/types/api/ds.types.d.ts +0 -39
  318. package/dist/types/components/lmvz-icon/icons.d.ts +0 -8
  319. package/dist/types/components/lmvz-icon/public.d.ts +0 -1
  320. package/dist/types/components/lmvz-icon/test/icons.unit.d.ts +0 -1
  321. package/dist/types/components.d.ts +0 -931
  322. package/dist/types/opt/atlassian/pipelines/agent/build/packages/components/.stencil/stencil.config.base.d.ts +0 -2
  323. package/dist/types/opt/atlassian/pipelines/agent/build/packages/components/.stencil/stencil.config.d.ts +0 -2
  324. package/dist/types/opt/atlassian/pipelines/agent/build/packages/components/.stencil/stencil.config.dev.d.ts +0 -2
  325. package/dist/types/opt/atlassian/pipelines/agent/build/packages/components/.stencil/stencil.config.integration.d.ts +0 -2
  326. package/dist/types/opt/atlassian/pipelines/agent/build/packages/components/.stencil/stencil.config.prod.d.ts +0 -2
  327. package/dist/types/utils/effect.d.ts +0 -3
  328. package/dist/types/utils/http.d.ts +0 -24
  329. package/dist/types/utils/http.unit.d.ts +0 -1
  330. package/dist/types/utils/public.d.ts +0 -1
  331. package/dist/types/utils/validation/svg.d.ts +0 -11
  332. /package/{dist/cjs → cjs}/app-globals-V2Kpy_OQ.js +0 -0
  333. /package/{dist/cjs → cjs}/component-Csg9MtNK.js +0 -0
  334. /package/{dist/cjs → cjs}/element-activation-controller-DC_6T0Rt.js +0 -0
  335. /package/{dist/cjs → cjs}/index-Bp6Dd2i1.js +0 -0
  336. /package/{dist/collection → collection}/assets/LMVZ_logo_175.svg +0 -0
  337. /package/{dist/collection → collection}/assets/card-placeholder.svg +0 -0
  338. /package/{dist/collection → collection}/assets/fonts/Router-Bold.woff +0 -0
  339. /package/{dist/collection → collection}/assets/fonts/Router-Book.woff +0 -0
  340. /package/{dist/collection → collection}/assets/fonts/Router-Medium.woff +0 -0
  341. /package/{dist/collection → collection}/assets/icons/Logo.svg +0 -0
  342. /package/{dist/collection → collection}/assets/icons/chevron-down.svg +0 -0
  343. /package/{dist/collection → collection}/assets/zukunftslinie.svg +0 -0
  344. /package/{dist/collection → collection}/components/lmvz-action/lmvz-action.css +0 -0
  345. /package/{dist/collection → collection}/components/lmvz-button/lmvz-button.css +0 -0
  346. /package/{dist/collection → collection}/components/lmvz-card/lmvz-card.css +0 -0
  347. /package/{dist/collection → collection}/components/lmvz-chip/lmvz-chip.css +0 -0
  348. /package/{dist/collection → collection}/components/lmvz-header/lmvz-header.css +0 -0
  349. /package/{dist/collection → collection}/components/lmvz-input/lmvz-input.css +0 -0
  350. /package/{dist/collection → collection}/components/lmvz-menuitem/lmvz-menuitem.css +0 -0
  351. /package/{dist/collection → collection}/components/lmvz-select/lmvz-select.css +0 -0
  352. /package/{dist/collection → collection}/utils/aria/element-activation-controller.js +0 -0
  353. /package/{dist/collection → collection}/utils/aria/list-keyboard-controller.js +0 -0
  354. /package/{dist/collection → collection}/utils/assets.js +0 -0
  355. /package/{dist/collection → collection}/utils/component.js +0 -0
  356. /package/{dist/collection → collection}/utils/environment.js +0 -0
  357. /package/{dist/collection → collection}/utils/reactive-controller-host.js +0 -0
  358. /package/{dist/components → components}/index.d.ts +0 -0
  359. /package/{dist/components → components}/lmvz-action.d.ts +0 -0
  360. /package/{dist/components → components}/lmvz-button.d.ts +0 -0
  361. /package/{dist/components → components}/lmvz-card.d.ts +0 -0
  362. /package/{dist/components → components}/lmvz-chip.d.ts +0 -0
  363. /package/{dist/components → components}/lmvz-header.d.ts +0 -0
  364. /package/{dist/components → components}/lmvz-icon.d.ts +0 -0
  365. /package/{dist/components → components}/lmvz-input.d.ts +0 -0
  366. /package/{dist/components → components}/lmvz-menuitem.d.ts +0 -0
  367. /package/{dist/components → components}/lmvz-select.d.ts +0 -0
  368. /package/{dist/components → components}/p-BfTCfPZ1.js +0 -0
  369. /package/{dist/components → components}/p-CN0JX9-m.js +0 -0
  370. /package/{dist/components → components}/p-DQEkWkMh.js +0 -0
  371. /package/{dist/esm → esm}/app-globals-DQuL1Twl.js +0 -0
  372. /package/{dist/esm → esm}/component-DIrAQ4IB.js +0 -0
  373. /package/{dist/esm → esm}/element-activation-controller-CN0JX9-m.js +0 -0
  374. /package/{dist/esm → esm}/index-BfTCfPZ1.js +0 -0
  375. /package/{dist/index.cjs.js → index.cjs.js} +0 -0
  376. /package/{dist/index.js → index.js} +0 -0
  377. /package/{dist/lmvz-components → lmvz-components}/p-BfTCfPZ1.js +0 -0
  378. /package/{dist/lmvz-components → lmvz-components}/p-CN0JX9-m.js +0 -0
  379. /package/{dist/lmvz-components → lmvz-components}/p-DIrAQ4IB.js +0 -0
  380. /package/{dist/lmvz-components → lmvz-components}/p-DQuL1Twl.js +0 -0
  381. /package/{dist/manifest.d.ts → manifest.d.ts} +0 -0
  382. /package/{dist/types → types}/api/aria-types.d.ts +0 -0
  383. /package/{dist/types → types}/stencil-public-runtime.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { ARIA_VALIDATION_RUNTIME_CHANGED_EVENT, enableAriaValidation, isAriaValidationEnabled, queueValidation, useVerboseLogging, } from "@lmvz-ds/aria-validation";
2
2
  import { Build } from "@stencil/core";
3
- if (Build.isDev) {
3
+ if (Build.isDev && Build.isBrowser) {
4
4
  enableAriaValidation();
5
5
  }
6
6
  export class AriaValidationController {
@@ -37,7 +37,7 @@ export class AriaValidationController {
37
37
  this.observeSlot();
38
38
  return;
39
39
  }
40
- if (!this.host.validationEl?.checkVisibility() || this.config?.validationTiming !== 'load') {
40
+ if (!this.host.validationEl?.checkVisibility?.() || this.config?.validationTiming !== 'load') {
41
41
  this.observeVisibilityOnce();
42
42
  return;
43
43
  }
@@ -59,32 +59,34 @@ export class AriaValidationController {
59
59
  this.host.validationSlot?.addEventListener('slotchange', this.enqueueValidation.bind(this));
60
60
  }
61
61
  observeVisibilityOnce() {
62
- window.setTimeout(() => {
63
- if (!this.host.validationEl)
64
- return;
65
- this.visibilityObserver = new IntersectionObserver((entries) => {
66
- for (const entry of entries) {
67
- if (entry.target !== this.host.validationEl)
68
- continue;
69
- if (!entry.isIntersecting)
70
- continue;
71
- this.checkLazyValidation();
72
- this.discardVisibilityObserver();
73
- }
74
- }, {
75
- root: this.host.validationEl?.parentElement,
76
- rootMargin: '0px',
77
- threshold: 0.01,
62
+ if (Build.isBrowser) {
63
+ window.setTimeout(() => {
64
+ if (!this.host.validationEl)
65
+ return;
66
+ this.visibilityObserver = new IntersectionObserver((entries) => {
67
+ for (const entry of entries) {
68
+ if (entry.target !== this.host.validationEl)
69
+ continue;
70
+ if (!entry.isIntersecting)
71
+ continue;
72
+ this.checkLazyValidation();
73
+ this.discardVisibilityObserver();
74
+ }
75
+ }, {
76
+ root: this.host.validationEl?.parentElement,
77
+ rootMargin: '0px',
78
+ threshold: 0.01,
79
+ });
80
+ this.visibilityObserver.observe(this.host.validationEl);
78
81
  });
79
- this.visibilityObserver.observe(this.host.validationEl);
80
- });
82
+ }
81
83
  }
82
84
  checkLazyValidation() {
83
85
  if (!this.elementLoaded)
84
86
  return;
85
87
  if (!this.config?.reValidateOnPropChanges && (this.elementQueued || this.elementValidated))
86
88
  return;
87
- if (!this.host.validationEl?.checkVisibility())
89
+ if (!this.host.validationEl?.checkVisibility?.())
88
90
  return;
89
91
  this.enqueueValidation();
90
92
  }
@@ -138,9 +140,11 @@ export class AriaValidationController {
138
140
  });
139
141
  }
140
142
  discardVisibilityObserver() {
141
- if (!this.visibilityObserver)
142
- return;
143
- this.visibilityObserver.disconnect();
144
- this.visibilityObserver = undefined;
143
+ if (Build.isBrowser) {
144
+ if (!this.visibilityObserver)
145
+ return;
146
+ this.visibilityObserver.disconnect();
147
+ this.visibilityObserver = undefined;
148
+ }
145
149
  }
146
150
  }
@@ -0,0 +1,21 @@
1
+ import { Micro } from "effect";
2
+ export class FetchError extends Micro.TaggedError('FetchError') {
3
+ }
4
+ export class NotFoundError extends Micro.TaggedError('NotFoundError') {
5
+ }
6
+ export const httpClient = (input, init) => Micro.gen(function* () {
7
+ const response = yield* Micro.tryPromise({
8
+ try: () => fetch(input, init),
9
+ catch: (error) => new FetchError({ cause: error }),
10
+ });
11
+ if (response.status === 404) {
12
+ return yield* Micro.fail(new NotFoundError({ url: response.url }));
13
+ }
14
+ return response;
15
+ });
16
+ export class ResponseTextError extends Micro.TaggedError('ResponseTextError') {
17
+ }
18
+ export const responseAsText = (res) => Micro.tryPromise({
19
+ try: () => res.text(),
20
+ catch: (error) => new ResponseTextError({ message: 'Failed to read response text', cause: error }),
21
+ });
@@ -5,29 +5,29 @@ describe('Http Utils', () => {
5
5
  describe('httpClient', () => {
6
6
  it('should return response on successful fetch', async () => {
7
7
  const mockResponse = { status: 200, url: 'https://example.com' };
8
- global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
8
+ globalThis.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
9
9
  const result = await Effect.runPromise(httpClient('https://example.com'));
10
10
  expect(result).toEqual(mockResponse);
11
11
  });
12
12
  it('should handle fetch errors', async () => {
13
13
  const error = new Error('Network error');
14
- global.fetch = vi.fn().mockRejectedValueOnce(error);
14
+ globalThis.fetch = vi.fn().mockRejectedValueOnce(error);
15
15
  const result = await Effect.runPromise(Effect.flip(httpClient('https://example.com')));
16
16
  expect(result).toBeInstanceOf(FetchError);
17
17
  expect(result.cause).toBe(error);
18
18
  });
19
19
  it('should return NotFoundError on 404 status', async () => {
20
20
  const mockResponse = { status: 404, url: 'https://example.com/notfound' };
21
- global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
21
+ globalThis.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
22
22
  const result = await Effect.runPromise(Effect.flip(httpClient('https://example.com/notfound')));
23
23
  expect(result).toBeInstanceOf(NotFoundError);
24
24
  });
25
25
  it('should pass RequestInit options to fetch', async () => {
26
26
  const mockResponse = { status: 200, url: 'https://example.com' };
27
- global.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
27
+ globalThis.fetch = vi.fn().mockResolvedValueOnce(mockResponse);
28
28
  const init = { method: 'POST', headers: { 'Content-Type': 'application/json' } };
29
29
  await Effect.runPromise(httpClient('https://example.com', init));
30
- expect(global.fetch).toHaveBeenCalledWith('https://example.com', init);
30
+ expect(globalThis.fetch).toHaveBeenCalledWith('https://example.com', init);
31
31
  });
32
32
  });
33
33
  describe('responseAsText', () => {
@@ -0,0 +1,34 @@
1
+ const IconProviderRegistryKey = Symbol.for('LMVZ__iconProviderRegistry');
2
+ const inMemoryRegistry = {};
3
+ function getRegistry() {
4
+ if (typeof window === 'undefined') {
5
+ return inMemoryRegistry;
6
+ }
7
+ return window[IconProviderRegistryKey] ?? (window[IconProviderRegistryKey] = {});
8
+ }
9
+ export function registerIconProvider(id, provider) {
10
+ const registry = getRegistry();
11
+ const providerName = id;
12
+ if (Object.prototype.hasOwnProperty.call(registry, providerName)) {
13
+ console.warn(`Icon provider with name "${providerName}" is already registered. Overwriting existing provider.`);
14
+ }
15
+ registry[providerName] = provider;
16
+ }
17
+ export function getRegisteredIconProvider(id) {
18
+ const registry = getRegistry();
19
+ if (id) {
20
+ return registry[id];
21
+ }
22
+ const providerNames = Object.keys(registry);
23
+ if (providerNames.length === 0) {
24
+ return undefined;
25
+ }
26
+ if (providerNames.length > 1) {
27
+ console.warn(`Multiple icon providers registered (${providerNames.join(', ')}). Using the first one: "${providerNames[0]}".`);
28
+ }
29
+ const firstProviderName = providerNames[0];
30
+ if (!firstProviderName) {
31
+ return undefined;
32
+ }
33
+ return registry[firstProviderName];
34
+ }
@@ -0,0 +1,49 @@
1
+ import { createValidSVGString, SVGString as SVGFactory } from "@lmvz-ds/lib-ts/validation/svg.js";
2
+ import { Micro } from "effect";
3
+ import { getRegisteredIconProvider } from "./icons-registry";
4
+ export const emptyDefaultSvg = () => SVGFactory(`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"></svg>`);
5
+ async function toValidSvgStringWithFallback(value) {
6
+ try {
7
+ return await Micro.runPromise(createValidSVGString(value));
8
+ }
9
+ catch {
10
+ console.error('Invalid SVG string:', value);
11
+ return emptyDefaultSvg();
12
+ }
13
+ }
14
+ export async function resolveIconSvg(options) {
15
+ const { icon, iconset } = options;
16
+ const iconSvg = await (async () => {
17
+ const provider = getRegisteredIconProvider(iconset);
18
+ if (!provider) {
19
+ console.warn(`No icon provider registered. Unable to resolve icon "${icon}"${iconset ? ` from set "${iconset}"` : ''}. Using default icon.`);
20
+ return;
21
+ }
22
+ try {
23
+ const resolved = await Promise.resolve(provider.resolve(icon));
24
+ if (!resolved?.svg) {
25
+ console.warn(`Icon "${icon}"${iconset ? ` from set "${iconset}"` : ''} not found in provider. Using default icon.`);
26
+ return;
27
+ }
28
+ const validated = await toValidSvgStringWithFallback(resolved.svg);
29
+ if (validated) {
30
+ return validated;
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.error(`Error resolving icon "${icon}" with provider:`, error);
35
+ return;
36
+ }
37
+ return;
38
+ })();
39
+ if (iconSvg)
40
+ return iconSvg;
41
+ console.error(`Icon "${icon}" not found${iconset ? ` in set "${iconset}"` : ''}. Using default icon.`);
42
+ return emptyDefaultSvg();
43
+ }
44
+ export function typedIconFromSet(iconset, icon) {
45
+ return {
46
+ iconset,
47
+ icon,
48
+ };
49
+ }
@@ -0,0 +1,73 @@
1
+ import { SVGString } from "@lmvz-ds/lib-ts/validation/svg.js";
2
+ import { beforeAll, beforeEach, describe, expect, test, vi } from "@stencil/vitest";
3
+ import { emptyDefaultSvg, resolveIconSvg } from "./icons";
4
+ import { registerIconProvider } from "./icons-registry";
5
+ const fetchMock = vi.fn();
6
+ describe('icon utils:', () => {
7
+ beforeAll(() => {
8
+ vi.stubGlobal('DOMParser', class {
9
+ parseFromString(str, _type) {
10
+ return {
11
+ documentElement: {
12
+ nodeName: typeof str === 'string' && str.trimStart().startsWith('<svg') ? 'svg' : 'not-svg',
13
+ },
14
+ };
15
+ }
16
+ });
17
+ });
18
+ beforeEach(() => {
19
+ vi.clearAllMocks();
20
+ fetchMock.mockReset();
21
+ vi.stubGlobal('fetch', fetchMock);
22
+ });
23
+ const validSvg = '<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg>';
24
+ const invalidSvg = '<div>not an svg</div>';
25
+ test('SVGString branding enforces valid SVG', () => {
26
+ expect(() => SVGString(validSvg)).not.toThrow();
27
+ expect(() => SVGString(invalidSvg)).toThrow();
28
+ expect(() => SVGString('')).toThrow();
29
+ expect(() => SVGString(123)).toThrow();
30
+ });
31
+ test('emptyDefaultSvg is a valid branded SVGString', () => {
32
+ expect(() => SVGString(emptyDefaultSvg())).not.toThrow();
33
+ expect(emptyDefaultSvg()).toContain('<svg');
34
+ });
35
+ test('resolveIconSvg fails loading "book" with no iconset/provider and falls back to default', async () => {
36
+ const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
37
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
38
+ const resolved = await resolveIconSvg({ icon: 'book' });
39
+ expect(resolved).toBe(emptyDefaultSvg());
40
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('No icon provider registered.'));
41
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Using default icon.'));
42
+ warnSpy.mockRestore();
43
+ errorSpy.mockRestore();
44
+ });
45
+ test('resolveIconSvg resolves icon from a valid iconset provider', async () => {
46
+ registerIconProvider('test-set-success', {
47
+ resolve(name) {
48
+ if (name === 'test-icon') {
49
+ return { name, svg: validSvg };
50
+ }
51
+ return undefined;
52
+ },
53
+ });
54
+ const resolved = await resolveIconSvg({ iconset: 'test-set-success', icon: 'test-icon' });
55
+ expect(resolved).toContain('<svg');
56
+ expect(() => SVGString(resolved)).not.toThrow();
57
+ });
58
+ test('resolveIconSvg falls back when icon is missing in a valid iconset provider', async () => {
59
+ const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => undefined);
60
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
61
+ registerIconProvider('test-set-miss', {
62
+ resolve(name) {
63
+ return name;
64
+ },
65
+ });
66
+ const resolved = await resolveIconSvg({ iconset: 'test-set-miss', icon: 'book' });
67
+ expect(resolved).toBe(emptyDefaultSvg());
68
+ expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('not found in provider'));
69
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Using default icon.'));
70
+ warnSpy.mockRestore();
71
+ errorSpy.mockRestore();
72
+ });
73
+ });
@@ -0,0 +1,2 @@
1
+ export { getRegisteredIconProvider, registerIconProvider } from './icons-registry.js';
2
+ export { typedIconFromSet } from './icons.js';
@@ -0,0 +1 @@
1
+ export * from './icons/public';
@@ -0,0 +1,55 @@
1
+ /* LmvzComponents custom elements */
2
+ export { LmvzAction as LmvzAction } from '../types/components/lmvz-action/lmvz-action';
3
+ export { defineCustomElement as defineCustomElementLmvzAction } from './lmvz-action';
4
+ export { LmvzButton as LmvzButton } from '../types/components/lmvz-button/lmvz-button';
5
+ export { defineCustomElement as defineCustomElementLmvzButton } from './lmvz-button';
6
+ export { LmvzCard as LmvzCard } from '../types/components/lmvz-card/lmvz-card';
7
+ export { defineCustomElement as defineCustomElementLmvzCard } from './lmvz-card';
8
+ export { LmvzChip as LmvzChip } from '../types/components/lmvz-chip/lmvz-chip';
9
+ export { defineCustomElement as defineCustomElementLmvzChip } from './lmvz-chip';
10
+ export { LmvzHeader as LmvzHeader } from '../types/components/lmvz-header/lmvz-header';
11
+ export { defineCustomElement as defineCustomElementLmvzHeader } from './lmvz-header';
12
+ export { LmvzIcon as LmvzIcon } from '../types/components/lmvz-icon/lmvz-icon';
13
+ export { defineCustomElement as defineCustomElementLmvzIcon } from './lmvz-icon';
14
+ export { LmvzInput as LmvzInput } from '../types/components/lmvz-input/lmvz-input';
15
+ export { defineCustomElement as defineCustomElementLmvzInput } from './lmvz-input';
16
+ export { LmvzMenuItem as LmvzMenuitem } from '../types/components/lmvz-menuitem/lmvz-menuitem';
17
+ export { defineCustomElement as defineCustomElementLmvzMenuitem } from './lmvz-menuitem';
18
+ export { LmvzSelect as LmvzSelect } from '../types/components/lmvz-select/lmvz-select';
19
+ export { defineCustomElement as defineCustomElementLmvzSelect } from './lmvz-select';
20
+
21
+ /**
22
+ * Get the base path to where the assets can be found. Use "setAssetPath(path)"
23
+ * if the path needs to be customized.
24
+ */
25
+ export declare const getAssetPath: (path: string) => string;
26
+
27
+ /**
28
+ * Used to manually set the base path where assets can be found.
29
+ * If the script is used as "module", it's recommended to use "import.meta.url",
30
+ * such as "setAssetPath(import.meta.url)". Other options include
31
+ * "setAssetPath(document.currentScript.src)", or using a bundler's replace plugin to
32
+ * dynamically set the path at build time, such as "setAssetPath(process.env.ASSET_PATH)".
33
+ * But do note that this configuration depends on how your script is bundled, or lack of
34
+ * bundling, and where your assets can be loaded from. Additionally custom bundling
35
+ * will have to ensure the static assets are copied to its build directory.
36
+ */
37
+ export declare const setAssetPath: (path: string) => void;
38
+
39
+ /**
40
+ * Used to specify a nonce value that corresponds with an application's CSP.
41
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
42
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
43
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
44
+ * will result in the same behavior.
45
+ */
46
+ export declare const setNonce: (nonce: string) => void
47
+
48
+ export interface SetPlatformOptions {
49
+ raf?: (c: FrameRequestCallback) => number;
50
+ ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
51
+ rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
52
+ }
53
+ export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
54
+
55
+ export * from '../types';
@@ -0,0 +1 @@
1
+ export{g as getAssetPath,r as render,s as setAssetPath,a as setNonce,b as setPlatformOptions}from"./p-C_bScbrd.js";export{A as ARIA_VALIDATION_RUNTIME_CHANGED_EVENT,d as disableAriaValidation,e as enableAriaValidation,i as isAriaValidationEnabled,q as queueValidation,u as useVerboseLogging}from"./p-CBLAeife.js";export{LmvzIcon,defineCustomElement as defineCustomElementLmvzIcon,g as getRegisteredIconProvider,r as registerIconProvider,t as typedIconFromSet}from"./lmvz-icon.js";export{LmvzAction,defineCustomElement as defineCustomElementLmvzAction}from"./lmvz-action.js";export{LmvzButton,defineCustomElement as defineCustomElementLmvzButton}from"./lmvz-button.js";export{LmvzCard,defineCustomElement as defineCustomElementLmvzCard}from"./lmvz-card.js";export{LmvzChip,defineCustomElement as defineCustomElementLmvzChip}from"./lmvz-chip.js";export{LmvzHeader,defineCustomElement as defineCustomElementLmvzHeader}from"./lmvz-header.js";export{LmvzInput,defineCustomElement as defineCustomElementLmvzInput}from"./lmvz-input.js";export{LmvzMenuitem,defineCustomElement as defineCustomElementLmvzMenuitem}from"./lmvz-menuitem.js";export{LmvzSelect,defineCustomElement as defineCustomElementLmvzSelect}from"./lmvz-select.js";const m=["xs","sm","md","lg"],n=[...m,"xl"],o=["text","email","password","tel","url","search","number"],l=[...m,"inherit"],f=["thin","medium","bold","filled"];export{l as iconSizes,f as iconWeights,o as inputTypes,n as textSizes}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzAction extends Components.LmvzAction, HTMLElement {}
4
+ export const LmvzAction: {
5
+ prototype: LmvzAction;
6
+ new (): LmvzAction;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1 @@
1
+ import{p as t,H as s,c,h as e,d as i,t as o}from"./p-C_bScbrd.js";const n=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.actionClick=c(this,"actionClick")}actionClick;_onClick(t){this.actionClick.emit(t)}render(){return e(i,{key:"15c0f20e08cd5019abfd3bb71ec69d175dc5ba48",onClick:this._onClick.bind(this)},e("slot",{key:"f71a7853168d1b66b0a50b0f971d140385530ac3"}))}static get style(){return":host{display:block}"}},[257,"lmvz-action"]),a=n,l=function(){"undefined"!=typeof customElements&&["lmvz-action"].forEach((t=>{"lmvz-action"===t&&(customElements.get(o(t))||customElements.define(o(t),n))}))};export{a as LmvzAction,l as defineCustomElement}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzButton extends Components.LmvzButton, HTMLElement {}
4
+ export const LmvzButton: {
5
+ prototype: LmvzButton;
6
+ new (): LmvzButton;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -1 +1 @@
1
- import{p as t,c as o,h as e,d as r,t as n}from"./p-CahBdGGN.js";import{c as a}from"./p-BfTCfPZ1.js";import{R as l,a as m}from"./p-GKEnURpp.js";import{E as i}from"./p-CN0JX9-m.js";import{i as s,f as d}from"./p-DQEkWkMh.js";const c=t(class extends l{get el(){return this}validationEl;inheritedAttributes={};formEl=null;formButtonEl=null;lmvzActivation;get ti(){return 0}scale="default";variant="secondary";disabled=!1;type="button";form;constructor(t){super(!1),!1!==t&&this.__registerHost(),this.__attachShadow(),this.lmvzActivation=o(this,"lmvzActivation"),this.addController(new m(this)),this.addController(new i(this,{localHandler:this.handleClick.bind(this),keys:["Enter"]}))}connectedCallback(){this.inheritedAttributes=s(this.el),super.connectedCallback()}renderHiddenButton(){const t=this.formEl=d(this.form,this.el);if(!t)return;const{formButtonEl:o}=this;if(null!==o&&t.contains(o))return;const e=this.formButtonEl=document.createElement("button");e.type="submit",e.style.display="none",e.disabled=this.disabled,t.appendChild(e)}submitForm(t){this.formEl&&this.formButtonEl&&(t.preventDefault(),this.formButtonEl.click())}handleClick=t=>{"submit"===this.type&&this.submitForm(t)};render(){return this.renderHiddenButton(),e(r,{key:"9fb3bb6cc21e7d87fddb0313fd552e7070850881","aria-disabled":this.disabled?"true":null},e("button",{key:"906117a1bb57fcc7e66a79be73959331066886be",ref:t=>this.validationEl=t,disabled:this.disabled,class:a(this.variant,{[this.scale??""]:!!this.scale,disabled:this.disabled}),...this.inheritedAttributes},e("slot",{key:"7028560eef75c978bea0ba3931100d4a6816ba37"})))}static get delegatesFocus(){return!0}static get style(){return" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } "}},[785,"lmvz-button",{ti:[2562,"tabindex"],scale:[513],variant:[513],disabled:[516],type:[1],form:[1]}]),v=c,u=function(){"undefined"!=typeof customElements&&["lmvz-button"].forEach((t=>{"lmvz-button"===t&&(customElements.get(n(t))||customElements.define(n(t),c))}))};export{v as LmvzButton,u as defineCustomElement}
1
+ import{p as t,c as o,h as r,d as e,t as n}from"./p-C_bScbrd.js";import{c as a}from"./p-BfTCfPZ1.js";import{R as l,a as m}from"./p-CBLAeife.js";import{E as i}from"./p-CN0JX9-m.js";import{i as s,f as d}from"./p-DQEkWkMh.js";const c=t(class extends l{get el(){return this}validationEl;inheritedAttributes={};formEl=null;formButtonEl=null;lmvzActivation;get ti(){return 0}scale="default";variant="secondary";disabled=!1;type="button";form;constructor(t){super(!1),!1!==t&&this.__registerHost(),this.__attachShadow(),this.lmvzActivation=o(this,"lmvzActivation"),this.addController(new m(this)),this.addController(new i(this,{localHandler:this.handleClick.bind(this),keys:["Enter"]}))}connectedCallback(){this.inheritedAttributes=s(this.el),super.connectedCallback()}renderHiddenButton(){const t=this.formEl=d(this.form,this.el);if(!t)return;const{formButtonEl:o}=this;if(null!==o&&t.contains(o))return;const r=this.formButtonEl=document.createElement("button");r.type="submit",r.style.display="none",r.disabled=this.disabled,t.appendChild(r)}submitForm(t){this.formEl&&this.formButtonEl&&(t.preventDefault(),this.formButtonEl.click())}handleClick=t=>{"submit"===this.type&&this.submitForm(t)};render(){return this.renderHiddenButton(),r(e,{key:"2897a943aca62561b0e78b5b3f2b7b85d76f4e78","aria-disabled":this.disabled?"true":null},r("button",{key:"92555224e33b00fb2602fdb2d19075145c0d9097",ref:t=>this.validationEl=t,disabled:this.disabled,class:a(this.variant,{[this.scale??""]:!!this.scale,disabled:this.disabled}),...this.inheritedAttributes},r("slot",{key:"637a03a73db84a63bf1e3165d57c474151f87783"})))}static get delegatesFocus(){return!0}static get style(){return" @layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } :host { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: contents; } ::slotted(*) { --lmvz-component-color: var(--lmvz-button-color); } "}},[785,"lmvz-button",{ti:[2562,"tabindex"],scale:[513],variant:[513],disabled:[516],type:[1],form:[1]}]),v=c,u=function(){"undefined"!=typeof customElements&&["lmvz-button"].forEach((t=>{"lmvz-button"===t&&(customElements.get(n(t))||customElements.define(n(t),c))}))};export{v as LmvzButton,u as defineCustomElement}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzCard extends Components.LmvzCard, HTMLElement {}
4
+ export const LmvzCard: {
5
+ prototype: LmvzCard;
6
+ new (): LmvzCard;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1 @@
1
+ import{g as e,p as t,H as r,c as a,h as o,d as n,t as l}from"./p-C_bScbrd.js";const m=t(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.primaryAction=a(this,"primaryAction")}cardTitle;imageUrl;description;primaryActionLabel="";primaryAction;get fallbackImage(){return((t,r)=>{const a=function(...e){return e.filter(Boolean).join("/").replace("//","/").replace("/./","/")}("../../assets",r,t);try{return e(a)}catch{return console.warn(`Failed to create URL for asset "${t}" in path "${r}".\n Please provide an absolute URL in your app's 'setAssetPath(...)' configuration! Falling back to a relative URL, which may work in some environments but is not guaranteed to be correct.`),new URL(a,import.meta?.url??window?.location?.origin??"")}})("card-placeholder.svg")}_onPrimaryClick(){this.primaryAction.emit()}_onOverflowClick(e){console.log(e)}render(){return o(n,{key:"46c2832b4f90b9eb222749632bc7ad59cd645e10",role:"article"},o("div",{key:"cc387fe96cff2dd04c24f75cf838a2bf6f438279",class:"top"},o("div",{key:"f9a54a5f81378ef4265e1d74c36c78af002e8874",class:"image-wrapper",style:{backgroundImage:`url(${this.imageUrl??this.fallbackImage})`}},o("div",{key:"76daed00408f7ae9ee46977637ddcd3d4f846380",class:"chip-slot"},o("slot",{key:"6ad522ef7428166b876d0218ef8d801c4ef337f1",name:"chip"})))),o("div",{key:"9c9799668ac199cfecbe10061e271d70d70e2d07",class:"bottom"},o("header",{key:"1bec743235bea5c7ab163225ffbd7bc6cf11f754"},o("h2",{key:"06f8e14153328bc5ca920e71e09d9343047c440c",class:"title"},this.cardTitle)),o("p",{key:"86b95db4e6464ca3236b4a03798013c3580819bf",class:"description"},this.description),o("div",{key:"553dc998d5318a4730196baa0b9baff3a0a3369f",class:"actions"},o("button",{key:"7532d01b46769198c23a1b1015c187fdefce146a",class:"primary",onClick:this._onPrimaryClick.bind(this),"data-testid":"primary"},this.primaryActionLabel),o("button",{key:"633d679ae59b1896aa2a06e04b4564569cf27a7d",class:"tertiary","aria-label":"More actions",onClick:this._onOverflowClick},o("span",{key:"b72c45f93d259502b9d7c5ffb19e292a53c60ec6",class:"icon-placeholder"},"...")))))}static get assetsDirs(){return["../../assets"]}static get style(){return"@layer lmvz-ds.reset, lmvz-ds.theme, lmvz-ds.components, lmvz-ds.overrides; @layer lmvz-ds.theme { @font-face { font-family: Router; src: local('Router-Book'), url('/assets/fonts/Router-Book.woff') format('woff'), local('Router'); font-weight: 400 normal; } @font-face { font-family: Router; src: local('Router-Medium'), url('/assets/fonts/Router-Medium.woff') format('woff'), local('Router'); font-weight: 500; } @font-face { font-family: Router; src: local('Router-Bold'), url('/assets/fonts/Router-Bold.woff') format('woff'), local('Router'); font-weight: 700 bold; } } @layer lmvz-ds.reset { body { margin: 0; } h1, h2, h3, h4, h5, h6 { margin: 0; } } .sc-lmvz-card-h { button { --lmvz-button-color: var(--lmvz-component-color, var(--lmvz-semantic-color-int-on-primary, #ffffff)); --lmvz-button-padding-inline: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-x, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-padding-block: var(--lmvz-button-padding, var(--lmvz-component-input-md-padding-y, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))); --lmvz-button-gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); --lmvz-button-radius: var(--lmvz-component-input-radius-default, 999px); --lmvz-button-border-width: 0; --lmvz-button-border-color: transparent; --lmvz-button-background: var(--lmvz-semantic-color-int-primary, #000000); display: inline-flex; align-items: center; justify-content: center; gap: var(--lmvz-button-gap); padding-block: var(--lmvz-button-padding-block); padding-inline: var(--lmvz-button-padding-inline); border-radius: var(--lmvz-button-radius); border: var(--lmvz-button-border-width) solid var(--lmvz-button-border-color); background-color: var(--lmvz-button-background); color: var(--lmvz-button-color); cursor: pointer; font: var(--lmvz-button-font); text-align: center; text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; } button > * { font: inherit; color: inherit; } button:focus-visible { outline: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-status-selected, #f1f9fe); outline-offset: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); } button:is([disabled], .disabled) { cursor: not-allowed; pointer-events: none; opacity: var(--lmvz-component-input-disabled-opacity, 40%); } button:not([disabled]):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-hover, #2e2e2e); } button:not([disabled]):active { --lmvz-button-background: var(--lmvz-semantic-color-int-primary-active, #545454); } button.secondary { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary, #f0f0f0); --lmvz-button-color: var(--lmvz-semantic-color-int-on-secondary, #000000); --lmvz-button-border-width: var(--lmvz-semantic-border-width-default, 1px); --lmvz-button-border-color: var(--lmvz-semantic-color-border-default, #e0e0e0); } button.secondary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-hover, #e0e0e0); --lmvz-button-border-color: var(--lmvz-semantic-color-border-hover, #c7c7c7); } button.secondary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-secondary-active, #d4d4d4); --lmvz-button-border-color: var(--lmvz-semantic-color-border-active, #d4d4d4); } button.tertiary { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary, #ffffff); --lmvz-button-color: var(--lmvz-semantic-color-int-on-tertiary, #545454); } button.tertiary:not([disabled], .disabled):hover { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-hover, #f0f0f0); } button.tertiary:not([disabled], .disabled):active { --lmvz-button-background: var(--lmvz-semantic-color-int-tertiary-active, #e0e0e0); } button.small { --lmvz-button-padding-inline: var(--lmvz-component-input-sm-padding-x, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-padding-block: var(--lmvz-component-input-sm-padding-y, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); --lmvz-button-gap: var(--lmvz-component-input-sm-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } button.large { --lmvz-button-padding-inline: var(--lmvz-component-input-lg-padding-x, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-padding-block: var(--lmvz-component-input-lg-padding-y, clamp(0.88rem, 0.78rem + 0.39vw, 1.25rem)); --lmvz-button-gap: var(--lmvz-component-input-lg-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); --lmvz-button-font: var(--lmvz-typography-body-lg, 400 clamp(1rem, 0.97rem + 0.13vw, 1.13rem) / 1.4 Router); } display: flex; min-width: var(--lmvz-other-component-card-minwidth, 20.4375rem); max-width: var(--lmvz-other-component-card-maxwidth, 21.6875rem); flex-direction: column; align-items: flex-start; border-radius: var(--lmvz-semantic-border-radius-lg, 14px); border: var(--lmvz-semantic-border-width-default, 1px) solid var(--lmvz-semantic-color-border-default, #e0e0e0); background: var(--lmvz-semantic-color-surface-primary, #ffffff); } *.sc-lmvz-card { color: var(--lmvz-semantic-color-on-surface-primary, #000000); font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .top.sc-lmvz-card { display: flex; padding: var(--lmvz-dimension-8-12, clamp(0.5rem, 0.44rem + 0.26vw, 0.75rem)); flex-direction: column; justify-content: center; align-items: center; align-self: stretch; } .bottom.sc-lmvz-card { display: flex; min-width: 150px; padding: var(--lmvz-dimension-4-6, clamp(0.25rem, 0.22rem + 0.13vw, 0.38rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)) var(--lmvz-dimension-10-14, clamp(0.63rem, 0.56rem + 0.26vw, 0.88rem)); flex-direction: column; align-items: flex-start; align-self: stretch; } .title.sc-lmvz-card { margin: 0; display: flex; justify-content: center; align-items: center; align-self: stretch; padding-bottom: var(--lmvz-global-s4, 4px); overflow-wrap: break-word; font: var(--lmvz-typography-heading-2xl, 500 clamp(2rem, 1.94rem + 0.26vw, 2.25rem) / 1.2 Router); } .description.sc-lmvz-card { display: flex; margin: 0; padding-bottom: var(--lmvz-component-body-sm-padding-bottom, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-items: flex-start; align-self: stretch; white-space: pre-line; font: var(--lmvz-typography-body-md, 400 clamp(0.88rem, 0.84rem + 0.13vw, 1rem) / 1.4 Router); } .image-wrapper.sc-lmvz-card { aspect-ratio: 4 / 3; width: 100%; background-size: cover; background-position: center; flex: 1 0 0; align-self: stretch; border-radius: var(--lmvz-semantic-border-radius-md, 6px); } .actions.sc-lmvz-card { margin-top: var(--lmvz-component-form-wrapper-gap-y, clamp(1.13rem, 0.97rem + 0.65vw, 1.75rem)); display: flex; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); align-self: stretch; } button.primary.sc-lmvz-card, lmvz-button.primary.sc-lmvz-card { display: flex; justify-content: center; align-items: center; gap: var(--lmvz-component-input-md-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem)); flex: 1 0 0; }"}},[774,"lmvz-card",{cardTitle:[1,"card-title"],imageUrl:[1,"image-url"],description:[1],primaryActionLabel:[1,"primary-action-label"]}]),i=m,c=function(){"undefined"!=typeof customElements&&["lmvz-card"].forEach((e=>{"lmvz-card"===e&&(customElements.get(l(e))||customElements.define(l(e),m))}))};export{i as LmvzCard,c as defineCustomElement}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzChip extends Components.LmvzChip, HTMLElement {}
4
+ export const LmvzChip: {
5
+ prototype: LmvzChip;
6
+ new (): LmvzChip;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -1 +1 @@
1
- import{p as t,H as e,h as s,d as c,t as n}from"./p-CahBdGGN.js";const o=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}text;render(){return s(c,{key:"134d510fe3a04b989b0005bf31358149a9661cb2"},this.text)}static get style(){return":host{display:block}"}},[513,"lmvz-chip",{text:[1]}]),r=o,i=function(){"undefined"!=typeof customElements&&["lmvz-chip"].forEach((t=>{"lmvz-chip"===t&&(customElements.get(n(t))||customElements.define(n(t),o))}))};export{r as LmvzChip,i as defineCustomElement}
1
+ import{p as t,H as e,h as s,d as c,t as n}from"./p-C_bScbrd.js";const o=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow()}text;render(){return s(c,{key:"d128e24bb90891ebd13d13a8e27c06782363cace"},this.text)}static get style(){return":host{display:block}"}},[513,"lmvz-chip",{text:[1]}]),r=o,i=function(){"undefined"!=typeof customElements&&["lmvz-chip"].forEach((t=>{"lmvz-chip"===t&&(customElements.get(n(t))||customElements.define(n(t),o))}))};export{r as LmvzChip,i as defineCustomElement}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzHeader extends Components.LmvzHeader, HTMLElement {}
4
+ export const LmvzHeader: {
5
+ prototype: LmvzHeader;
6
+ new (): LmvzHeader;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -1 +1 @@
1
- import{p as M,h as N,d as e,t as I}from"./p-CahBdGGN.js";import{R as j,a as D}from"./p-GKEnURpp.js";import{g,c as a}from"./p-DQEkWkMh.js";class i{host;elements=[];constructor(M){this.host=M}hostDidRender(){this.host.el.addEventListener("keydown",this.handleKeydown)}updateElements(M){this.elements=M}handleKeydown=M=>{const{key:N}=M;if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft"].includes(N))return;const e=g(document),I=this.getNextFocusableElement(e,["ArrowDown","ArrowRight"].includes(N)?"down":"up");I&&(M.preventDefault(),I.focus?.())};getNextFocusableElement(M,N){if(!M)return;const{elements:e}=this,I=e.indexOf(M);if(-1===I)return;let j;if("down"===N?j=(I+1)%e.length:"up"===N&&(j=(I-1+e.length)%e.length),null==j)return;const D=e[j];return a(D)?D:this.getNextFocusableElement(D,N)}}const u=M(class extends j{get el(){return this}get validationEl(){return this.el}primarySlot;secondarySlot;secondaryNav;keyboardNavigationController=new i(this);get primaryMenuitems(){return this.primarySlot?.assignedElements({flatten:!1})||[]}get secondaryMenuitems(){return this.secondarySlot?.assignedElements({flatten:!0})||[]}get role(){return"banner"}lmvzActiveNav;get secondarySlotName(){return"connect-nav-"+this.lmvzActiveNav}constructor(M){super(!1),!1!==M&&this.__registerHost(),this.__attachShadow(),this.addController(new D(this,{reValidateOnPropChanges:!0})),this.addController(this.keyboardNavigationController)}handleActiveNavChange(){this.updateElementsActive()}componentDidLoad(){this.primarySlot?.addEventListener("slotchange",this.handlePrimaryNavItemsChange.bind(this)),this.handlePrimaryNavItemsChange(),this.secondarySlot?.addEventListener("slotchange",this.handleSecondaryNavItemsChange.bind(this)),super.componentDidLoad()}handlePrimaryNavItemsChange(){const M=this.primaryMenuitems;M.length?(M.forEach((M=>{M.setAttribute("aria-haspopup","true"),M.setAttribute("aria-controls","nav-secondary")})),this.updateElementsActive(),this.updateKeyboardNavSubjects()):console.warn("Primary slot has no assigned elements. Please add navigation items to the primary slot.")}handleSecondaryNavItemsChange(){this.secondaryMenuitems.length&&this.updateKeyboardNavSubjects()}updateKeyboardNavSubjects(){this.keyboardNavigationController.updateElements([...this.primaryMenuitems,...this.secondaryMenuitems])}updateElementsActive(){const M=this.primaryMenuitems;if(!M.length)return;let N="";M.forEach((M=>{const e=M.id===this.lmvzActiveNav;e&&(N=M.textContent||M.id),M.setAttribute("aria-expanded",e?"true":"false")})),N&&this.secondaryNav?.setAttribute("aria-label","Untermenü für "+N)}delegateFocus(){const M=this.primaryMenuitems[0];M&&M.focus()}render(){return N(e,{key:"3189d1bd21fb5bd8f30b27cbfb6e49648b0e70c4",onFocus:this.delegateFocus.bind(this)},N("div",{key:"57c27e85c0d6292f0c39a850bad5d59de4cf8743",class:"brand"},N("slot",{key:"13ea794d470861e25dc249c3174d2a5f2ba25096",name:"brand"},N("img",{key:"37bea67eea1a2971a7502f6e9a5a2a28d3eec114",id:"fallback-logo-lmvz",src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCA0NiA3MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI3Ml80MDUpIj4KPHBhdGggZD0iTTEyLjUgMjAuNjVDMTMuMSAyMC42NSAxNC4yIDIwLjM1IDE0LjcgMjAuMzVDMTYuMSAyMC4zNSAxNy4yIDIxLjQ1IDE3LjIgMjIuODVDMTcuMiAyNC4yNSAxNi4xIDI1LjM1IDE0LjcgMjUuMzVIMi44QzEuMiAyNS4zNSAwIDI0LjE1IDAgMjIuNTVDMCAyMS45NSAwLjIgMjAuNjUgMC4yIDIwLjA1VjUuODQ5OTlDMC4yIDUuMTQ5OTkgMCAzLjk0OTk5IDAgMy4zNDk5OUMwIDEuNzQ5OTkgMS4yIDAuNTQ5OTg4IDIuOCAwLjU0OTk4OEM0LjMgMC41NDk5ODggNS42IDEuNzQ5OTkgNS42IDMuMzQ5OTlDNS42IDMuOTQ5OTkgNS40IDUuMTQ5OTkgNS40IDUuODQ5OTlWMjAuNTVIMTIuNVYyMC42NVpNMjIuMSAyMi43NUMyMi4xIDIyLjE1IDIyLjMgMjAuOTUgMjIuMyAyMC4yNVY1Ljg0OTk5QzIyLjMgNS4xNDk5OSAyMi4xIDMuOTQ5OTkgMjIuMSAzLjQ0OTk5QzIyLjEgMS45NDk5OSAyMy4yIDAuNzQ5OTg4IDI0LjYgMC43NDk5ODhIMjUuMkMyNi40IDAuNzQ5OTg4IDI3LjIgMS41NDk5OSAyNy42IDIuNjQ5OTlMMjggMy40NDk5OUwzMi45IDE0LjA1QzMzLjMgMTQuOTUgMzMuNyAxNi4wNSAzNCAxNi43NUMzNC4zIDE2LjA1IDM0LjcgMTQuOTUgMzUuMSAxNC4wNUw0MCAzLjU0OTk5TDQwLjMgMi41NDk5OUM0MC43IDEuNTQ5OTkgNDEuNSAwLjY0OTk4OCA0Mi42IDAuNjQ5OTg4SDQzLjJDNDQuNyAwLjY0OTk4OCA0NS43IDEuODQ5OTkgNDUuNyAzLjM0OTk5QzQ1LjcgMy45NDk5OSA0NS41IDUuMTQ5OTkgNDUuNSA1Ljc0OTk5VjIwLjE1QzQ1LjUgMjAuODUgNDUuNyAyMi4wNSA0NS43IDIyLjY1QzQ1LjcgMjQuMjUgNDQuNSAyNS40NSA0MyAyNS40NUM0MS40IDI1LjQ1IDQwLjMgMjQuMjUgNDAuMyAyMi42NUM0MC4zIDIxLjk1IDQwLjQgMjAuNzUgNDAuNCAyMC4xNUw0MC42IDE0LjA1QzQwLjYgMTMuMTUgNDAuNyAxMS43NSA0MC43IDEwLjY1TDM3IDE5LjA1QzM2LjcgMTkuNzUgMzYuNiAxOS45NSAzNi40IDIwLjM1QzM2IDIxLjI1IDM1LjMgMjEuODUgMzMuOSAyMS44NUMzMi41IDIxLjg1IDMxLjggMjEuMjUgMzEuNCAyMC40NUMzMS4yIDIwLjA1IDMxLjIgMTkuNzUgMzAuOCAxOS4wNUwyNyAxMC43NUMyNyAxMC43NSAyNy4xIDEzLjE1IDI3LjIgMTQuMDVMMjcuNCAyMC4xNUMyNy40IDIwLjg1IDI3LjUgMjEuOTUgMjcuNSAyMi42NUMyNy41IDI0LjI1IDI2LjQgMjUuNDUgMjQuOCAyNS40NUMyMy4zIDI1LjU1IDIyLjEgMjQuMjUgMjIuMSAyMi43NVpNMjguNyAzMi45NUMyOS4xIDMyLjk1IDMwLjIgMzMuMTUgMzAuNyAzMy4xNUg0MS44QzQyLjMgMzMuMTUgNDMuMiAzMi45NSA0My43IDMyLjk1QzQ0LjkgMzIuOTUgNDUuOCAzMy44NSA0NS44IDM1LjA1QzQ1LjggMzYuMTUgNDQuOSAzNy4xNSA0My43IDM3LjE1QzQzLjMgMzcuMTUgNDIuMyAzNi45NSA0MS44IDM2Ljk1SDMwLjhDMzAuMyAzNi45NSAyOS4yIDM3LjE1IDI4LjggMzcuMTVDMjcuNiAzNy4xNSAyNi43IDM2LjI1IDI2LjcgMzUuMDVDMjYuNiAzMy45NSAyNy41IDMyLjk1IDI4LjcgMzIuOTVaTTIuMSA2Ny4yNUMyLjUgNjcuMjUgMy42IDY3LjQ1IDQuMSA2Ny40NUgxOC41QzE5IDY3LjQ1IDE5LjkgNjcuMjUgMjAuNCA2Ny4yNUMyMS42IDY3LjI1IDIyLjUgNjguMTUgMjIuNSA2OS4zNUMyMi41IDcwLjQ1IDIxLjYgNzEuNDUgMjAuNCA3MS40NUMyMCA3MS40NSAxOSA3MS4yNSAxOC41IDcxLjI1SDQuMUMzLjYgNzEuMjUgMi41IDcxLjQ1IDIuMSA3MS40NUMwLjkgNzEuNDUgMCA3MC41NSAwIDY5LjM1QzAgNjguMjUgMC45IDY3LjI1IDIuMSA2Ny4yNVpNMjEuOSAzNS42NUMyMS45IDM1Ljk1IDIxLjggMzYuMzUgMjEuNiAzNi43NUMyMS4zIDM3LjQ1IDIwLjkgMzguMzUgMjAuNyAzOC44NUwxNC43IDU0LjY1QzE0LjUgNTUuMDUgMTQuNCA1NS41NSAxNC4yIDU2LjM1QzEzLjggNTcuNjUgMTIuNiA1OC4yNSAxMS4yIDU4LjI1SDEwLjhDOS40IDU4LjI1IDguMiA1Ny43NSA3LjggNTYuMzVDNy42IDU1LjU1IDcuNCA1NS4xNSA3LjIgNTQuNjVMMS4yIDM4Ljg1QzEgMzguMzUgMC42IDM3LjU1IDAuMiAzNi44NUMwLjEgMzYuNDUgMCAzNS45NSAwIDM1LjY1QzAgMzQuMTUgMS4yIDMyLjg1IDIuOCAzMi44NUMzLjkgMzIuODUgNSAzMy41NSA1LjMgMzQuNzVDNS41IDM1LjU1IDUuNSAzNi4xNSA2IDM3LjU1TDEwLjIgNDkuNDVDMTAuNSA1MC4zNSAxMC45IDUxLjQ1IDExLjEgNTIuMzVDMTEuMyA1MS40NSAxMS42IDUwLjQ1IDExLjkgNDkuNTVMMTYgMzcuNTVDMTYuNSAzNi4wNSAxNi40IDM1LjY1IDE2LjcgMzQuODVDMTcuMSAzMy42NSAxOC4xIDMyLjg1IDE5LjMgMzIuODVDMjAuOSAzMi44NSAyMS45IDM0LjE1IDIxLjkgMzUuNjVaTTI5LjcgNzEuNDVDMjguMiA3MS40NSAyNy4yIDcwLjQ1IDI3LjIgNjkuMTVDMjcuMiA2OC43NSAyNy4yIDY4LjI1IDI3LjggNjcuNDVMMzcuNCA1My40NUMzNy45IDUyLjc1IDM4LjUgNTIuMDUgMzkuMSA1MS4zNUgzMi4yQzMxLjUgNTEuMzUgMzAuNyA1MS42NSAzMC4xIDUxLjY1QzI4LjcgNTEuNjUgMjcuNiA1MC43NSAyNy42IDQ5LjM1QzI3LjYgNDcuOTUgMjguNyA0Ni45NSAzMC4xIDQ2Ljk1SDQyLjdDNDQuMiA0Ni45NSA0NS4yIDQ3Ljg1IDQ1LjIgNDkuMjVDNDUuMiA0OS42NSA0NSA1MC4zNSA0NC41IDUxLjA1TDM1LjIgNjQuODVDMzQuNyA2NS42NSAzNC4xIDY2LjQ1IDMzLjUgNjcuMDVINDEuMUM0MS45IDY3LjA1IDQyLjcgNjYuNzUgNDMuMyA2Ni43NUM0NC43IDY2Ljc1IDQ1LjcgNjcuNzUgNDUuNyA2OS4wNUM0NS43IDcwLjU1IDQ0LjUgNzEuNTUgNDMuMiA3MS41NUgyOS43VjcxLjQ1WiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yNzJfNDA1Ij4KPHJlY3Qgd2lkdGg9IjQ2IiBoZWlnaHQ9IjcyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",alt:"Lehrmittelverlag Zürich"}))),N("nav",{key:"59b1679357cd4dbef737f90f4b4ff5c80a4efa06","aria-label":"Hauptnavigation"},N("div",{key:"51ce71eed0f31ef4dbfbeb72dffed87797462487",role:"menubar",class:"primary-menubar"},N("slot",{key:"ac3357828b95a5aa6261c611612fb76f55bf92ee",name:"nav-primary",ref:M=>this.primarySlot=M}),N("div",{key:"b78f2ad43e03f40d65c69674b94a295e72366c8e",role:"menu",id:"nav-secondary",class:"secondary-menubar",hidden:!this.lmvzActiveNav,ref:M=>this.secondaryNav=M},N("slot",{key:"d2cc74ff24cf10f0f958cea986149f3f03054291",name:this.secondarySlotName,ref:M=>this.secondarySlot=M})))),N("div",{key:"cc6e0c0a32e51d3fa0d7f1865023f03434458217",class:"actions"},N("slot",{key:"8504df5d1970ac856a237cbb0dcce5a2707b7cab",name:"actions"})))}static get watchers(){return{lmvzActiveNav:[{handleActiveNavChange:0}]}}static get style(){return":host{display:flex;width:100vw;flex-direction:row;align-items:center;box-sizing:border-box;background-color:var(--lmvz-semantic-color-surface-primary, #ffffff);--lmvz-header-x-spacing-level-1:var(--lmvz-dimension-8-28, clamp(0.5rem, 0.2rem + 1.29vw, 1.75rem));--lmvz-header-x-spacing-level-2:var(--lmvz-component-buttongroup-wrapper-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem));padding:var(--lmvz-dimension-8-16, clamp(0.5rem, 0.38rem + 0.52vw, 1rem)) var(--lmvz-header-x-spacing-level-1);gap:var(--lmvz-header-x-spacing-level-1);.brand{display:inline-flex;justify-content:center;align-items:center}#fallback-logo-lmvz{height:34px;width:auto}nav{flex-grow:1}.primary-menubar{display:flex;flex-direction:row;align-items:center}.secondary-menubar{display:flex;flex-direction:row;align-items:center;margin-left:var(--lmvz-header-x-spacing-level-2);padding-left:var(--lmvz-header-x-spacing-level-2);border-left:1px solid var(--lmvz-semantic-color-border-default, #e0e0e0)}}"}},[769,"lmvz-header",{role:[2561],lmvzActiveNav:[1,"lmvz-active-nav"]},void 0,{lmvzActiveNav:[{handleActiveNavChange:0}]}]),t=u,A=function(){"undefined"!=typeof customElements&&["lmvz-header"].forEach((M=>{"lmvz-header"===M&&(customElements.get(I(M))||customElements.define(I(M),u))}))};export{t as LmvzHeader,A as defineCustomElement}
1
+ import{p as M,h as N,d as e,t as I}from"./p-C_bScbrd.js";import{R as j,a as D}from"./p-CBLAeife.js";import{g,c as i}from"./p-DQEkWkMh.js";class u{host;elements=[];constructor(M){this.host=M}hostDidRender(){this.host.el.addEventListener("keydown",this.handleKeydown)}updateElements(M){this.elements=M}handleKeydown=M=>{const{key:N}=M;if(!["ArrowDown","ArrowRight","ArrowUp","ArrowLeft"].includes(N))return;const e=g(document),I=this.getNextFocusableElement(e,["ArrowDown","ArrowRight"].includes(N)?"down":"up");I&&(M.preventDefault(),I.focus?.())};getNextFocusableElement(M,N){if(!M)return;const{elements:e}=this,I=e.indexOf(M);if(-1===I)return;let j;if("down"===N?j=(I+1)%e.length:"up"===N&&(j=(I-1+e.length)%e.length),null==j)return;const D=e[j];return i(D)?D:this.getNextFocusableElement(D,N)}}const a=M(class extends j{get el(){return this}get validationEl(){return this.el}primarySlot;secondarySlot;secondaryNav;keyboardNavigationController=new u(this);get primaryMenuitems(){return this.primarySlot?.assignedElements({flatten:!1})||[]}get secondaryMenuitems(){return this.secondarySlot?.assignedElements({flatten:!0})||[]}get role(){return"banner"}lmvzActiveNav;get secondarySlotName(){return"connect-nav-"+this.lmvzActiveNav}constructor(M){super(!1),!1!==M&&this.__registerHost(),this.__attachShadow(),this.addController(new D(this,{reValidateOnPropChanges:!0})),this.addController(this.keyboardNavigationController)}handleActiveNavChange(){this.updateElementsActive()}componentDidLoad(){this.primarySlot?.addEventListener("slotchange",this.handlePrimaryNavItemsChange.bind(this)),this.handlePrimaryNavItemsChange(),this.secondarySlot?.addEventListener("slotchange",this.handleSecondaryNavItemsChange.bind(this)),super.componentDidLoad()}handlePrimaryNavItemsChange(){const M=this.primaryMenuitems;M.length?(M.forEach((M=>{M.setAttribute("aria-haspopup","true"),M.setAttribute("aria-controls","nav-secondary")})),this.updateElementsActive(),this.updateKeyboardNavSubjects()):console.warn("Primary slot has no assigned elements. Please add navigation items to the primary slot.")}handleSecondaryNavItemsChange(){this.secondaryMenuitems.length&&this.updateKeyboardNavSubjects()}updateKeyboardNavSubjects(){this.keyboardNavigationController.updateElements([...this.primaryMenuitems,...this.secondaryMenuitems])}updateElementsActive(){const M=this.primaryMenuitems;if(!M.length)return;let N="";M.forEach((M=>{const e=M.id===this.lmvzActiveNav;e&&(N=M.textContent||M.id),M.setAttribute("aria-expanded",e?"true":"false")})),N&&this.secondaryNav?.setAttribute("aria-label","Untermenü für "+N)}delegateFocus(){const M=this.primaryMenuitems[0];M&&M.focus()}render(){return N(e,{key:"96626b8d29cdefc8ed97a7bb68a689ff6155d2c7",onFocus:this.delegateFocus.bind(this)},N("div",{key:"41ac004bdc6c2c6a1f8e3d293f6b0c3727c27aff",class:"brand"},N("slot",{key:"8e33150a54c8b8070b22db51c8584e06dd06dd5c",name:"brand"},N("img",{key:"889955c7335d64f2c8d0b2e032db3dd64a27cbd2",id:"fallback-logo-lmvz",src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDYiIGhlaWdodD0iNzIiIHZpZXdCb3g9IjAgMCA0NiA3MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI3Ml80MDUpIj4KPHBhdGggZD0iTTEyLjUgMjAuNjVDMTMuMSAyMC42NSAxNC4yIDIwLjM1IDE0LjcgMjAuMzVDMTYuMSAyMC4zNSAxNy4yIDIxLjQ1IDE3LjIgMjIuODVDMTcuMiAyNC4yNSAxNi4xIDI1LjM1IDE0LjcgMjUuMzVIMi44QzEuMiAyNS4zNSAwIDI0LjE1IDAgMjIuNTVDMCAyMS45NSAwLjIgMjAuNjUgMC4yIDIwLjA1VjUuODQ5OTlDMC4yIDUuMTQ5OTkgMCAzLjk0OTk5IDAgMy4zNDk5OUMwIDEuNzQ5OTkgMS4yIDAuNTQ5OTg4IDIuOCAwLjU0OTk4OEM0LjMgMC41NDk5ODggNS42IDEuNzQ5OTkgNS42IDMuMzQ5OTlDNS42IDMuOTQ5OTkgNS40IDUuMTQ5OTkgNS40IDUuODQ5OTlWMjAuNTVIMTIuNVYyMC42NVpNMjIuMSAyMi43NUMyMi4xIDIyLjE1IDIyLjMgMjAuOTUgMjIuMyAyMC4yNVY1Ljg0OTk5QzIyLjMgNS4xNDk5OSAyMi4xIDMuOTQ5OTkgMjIuMSAzLjQ0OTk5QzIyLjEgMS45NDk5OSAyMy4yIDAuNzQ5OTg4IDI0LjYgMC43NDk5ODhIMjUuMkMyNi40IDAuNzQ5OTg4IDI3LjIgMS41NDk5OSAyNy42IDIuNjQ5OTlMMjggMy40NDk5OUwzMi45IDE0LjA1QzMzLjMgMTQuOTUgMzMuNyAxNi4wNSAzNCAxNi43NUMzNC4zIDE2LjA1IDM0LjcgMTQuOTUgMzUuMSAxNC4wNUw0MCAzLjU0OTk5TDQwLjMgMi41NDk5OUM0MC43IDEuNTQ5OTkgNDEuNSAwLjY0OTk4OCA0Mi42IDAuNjQ5OTg4SDQzLjJDNDQuNyAwLjY0OTk4OCA0NS43IDEuODQ5OTkgNDUuNyAzLjM0OTk5QzQ1LjcgMy45NDk5OSA0NS41IDUuMTQ5OTkgNDUuNSA1Ljc0OTk5VjIwLjE1QzQ1LjUgMjAuODUgNDUuNyAyMi4wNSA0NS43IDIyLjY1QzQ1LjcgMjQuMjUgNDQuNSAyNS40NSA0MyAyNS40NUM0MS40IDI1LjQ1IDQwLjMgMjQuMjUgNDAuMyAyMi42NUM0MC4zIDIxLjk1IDQwLjQgMjAuNzUgNDAuNCAyMC4xNUw0MC42IDE0LjA1QzQwLjYgMTMuMTUgNDAuNyAxMS43NSA0MC43IDEwLjY1TDM3IDE5LjA1QzM2LjcgMTkuNzUgMzYuNiAxOS45NSAzNi40IDIwLjM1QzM2IDIxLjI1IDM1LjMgMjEuODUgMzMuOSAyMS44NUMzMi41IDIxLjg1IDMxLjggMjEuMjUgMzEuNCAyMC40NUMzMS4yIDIwLjA1IDMxLjIgMTkuNzUgMzAuOCAxOS4wNUwyNyAxMC43NUMyNyAxMC43NSAyNy4xIDEzLjE1IDI3LjIgMTQuMDVMMjcuNCAyMC4xNUMyNy40IDIwLjg1IDI3LjUgMjEuOTUgMjcuNSAyMi42NUMyNy41IDI0LjI1IDI2LjQgMjUuNDUgMjQuOCAyNS40NUMyMy4zIDI1LjU1IDIyLjEgMjQuMjUgMjIuMSAyMi43NVpNMjguNyAzMi45NUMyOS4xIDMyLjk1IDMwLjIgMzMuMTUgMzAuNyAzMy4xNUg0MS44QzQyLjMgMzMuMTUgNDMuMiAzMi45NSA0My43IDMyLjk1QzQ0LjkgMzIuOTUgNDUuOCAzMy44NSA0NS44IDM1LjA1QzQ1LjggMzYuMTUgNDQuOSAzNy4xNSA0My43IDM3LjE1QzQzLjMgMzcuMTUgNDIuMyAzNi45NSA0MS44IDM2Ljk1SDMwLjhDMzAuMyAzNi45NSAyOS4yIDM3LjE1IDI4LjggMzcuMTVDMjcuNiAzNy4xNSAyNi43IDM2LjI1IDI2LjcgMzUuMDVDMjYuNiAzMy45NSAyNy41IDMyLjk1IDI4LjcgMzIuOTVaTTIuMSA2Ny4yNUMyLjUgNjcuMjUgMy42IDY3LjQ1IDQuMSA2Ny40NUgxOC41QzE5IDY3LjQ1IDE5LjkgNjcuMjUgMjAuNCA2Ny4yNUMyMS42IDY3LjI1IDIyLjUgNjguMTUgMjIuNSA2OS4zNUMyMi41IDcwLjQ1IDIxLjYgNzEuNDUgMjAuNCA3MS40NUMyMCA3MS40NSAxOSA3MS4yNSAxOC41IDcxLjI1SDQuMUMzLjYgNzEuMjUgMi41IDcxLjQ1IDIuMSA3MS40NUMwLjkgNzEuNDUgMCA3MC41NSAwIDY5LjM1QzAgNjguMjUgMC45IDY3LjI1IDIuMSA2Ny4yNVpNMjEuOSAzNS42NUMyMS45IDM1Ljk1IDIxLjggMzYuMzUgMjEuNiAzNi43NUMyMS4zIDM3LjQ1IDIwLjkgMzguMzUgMjAuNyAzOC44NUwxNC43IDU0LjY1QzE0LjUgNTUuMDUgMTQuNCA1NS41NSAxNC4yIDU2LjM1QzEzLjggNTcuNjUgMTIuNiA1OC4yNSAxMS4yIDU4LjI1SDEwLjhDOS40IDU4LjI1IDguMiA1Ny43NSA3LjggNTYuMzVDNy42IDU1LjU1IDcuNCA1NS4xNSA3LjIgNTQuNjVMMS4yIDM4Ljg1QzEgMzguMzUgMC42IDM3LjU1IDAuMiAzNi44NUMwLjEgMzYuNDUgMCAzNS45NSAwIDM1LjY1QzAgMzQuMTUgMS4yIDMyLjg1IDIuOCAzMi44NUMzLjkgMzIuODUgNSAzMy41NSA1LjMgMzQuNzVDNS41IDM1LjU1IDUuNSAzNi4xNSA2IDM3LjU1TDEwLjIgNDkuNDVDMTAuNSA1MC4zNSAxMC45IDUxLjQ1IDExLjEgNTIuMzVDMTEuMyA1MS40NSAxMS42IDUwLjQ1IDExLjkgNDkuNTVMMTYgMzcuNTVDMTYuNSAzNi4wNSAxNi40IDM1LjY1IDE2LjcgMzQuODVDMTcuMSAzMy42NSAxOC4xIDMyLjg1IDE5LjMgMzIuODVDMjAuOSAzMi44NSAyMS45IDM0LjE1IDIxLjkgMzUuNjVaTTI5LjcgNzEuNDVDMjguMiA3MS40NSAyNy4yIDcwLjQ1IDI3LjIgNjkuMTVDMjcuMiA2OC43NSAyNy4yIDY4LjI1IDI3LjggNjcuNDVMMzcuNCA1My40NUMzNy45IDUyLjc1IDM4LjUgNTIuMDUgMzkuMSA1MS4zNUgzMi4yQzMxLjUgNTEuMzUgMzAuNyA1MS42NSAzMC4xIDUxLjY1QzI4LjcgNTEuNjUgMjcuNiA1MC43NSAyNy42IDQ5LjM1QzI3LjYgNDcuOTUgMjguNyA0Ni45NSAzMC4xIDQ2Ljk1SDQyLjdDNDQuMiA0Ni45NSA0NS4yIDQ3Ljg1IDQ1LjIgNDkuMjVDNDUuMiA0OS42NSA0NSA1MC4zNSA0NC41IDUxLjA1TDM1LjIgNjQuODVDMzQuNyA2NS42NSAzNC4xIDY2LjQ1IDMzLjUgNjcuMDVINDEuMUM0MS45IDY3LjA1IDQyLjcgNjYuNzUgNDMuMyA2Ni43NUM0NC43IDY2Ljc1IDQ1LjcgNjcuNzUgNDUuNyA2OS4wNUM0NS43IDcwLjU1IDQ0LjUgNzEuNTUgNDMuMiA3MS41NUgyOS43VjcxLjQ1WiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yNzJfNDA1Ij4KPHJlY3Qgd2lkdGg9IjQ2IiBoZWlnaHQ9IjcyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=",alt:"Lehrmittelverlag Zürich"}))),N("nav",{key:"37b6ef465d320c325e0c830bcc91ea3a575d2690","aria-label":"Hauptnavigation"},N("div",{key:"7a0ec1a78d6eee3b3e37f55f872806b0791c2156",role:"menubar",class:"primary-menubar"},N("slot",{key:"e0403633c6acd137c94b1552cc7f08e3549550d3",name:"nav-primary",ref:M=>this.primarySlot=M}),N("div",{key:"4e377f38a0b94a766f9001174729e5763fa0a194",role:"menu",id:"nav-secondary",class:"secondary-menubar",hidden:!this.lmvzActiveNav,ref:M=>this.secondaryNav=M},N("slot",{key:"368e461f239498c706a3c9bb27a7b05de2b79cac",name:this.secondarySlotName,ref:M=>this.secondarySlot=M})))),N("div",{key:"8ffaf8d6f1254644b48dc0a40b9f552339ecc690",class:"actions"},N("slot",{key:"5b679885e4fa111d66e993458ab7f5092d8179d4",name:"actions"})))}static get watchers(){return{lmvzActiveNav:[{handleActiveNavChange:0}]}}static get style(){return":host{display:flex;width:100vw;flex-direction:row;align-items:center;box-sizing:border-box;background-color:var(--lmvz-semantic-color-surface-primary, #ffffff);--lmvz-header-x-spacing-level-1:var(--lmvz-dimension-8-28, clamp(0.5rem, 0.2rem + 1.29vw, 1.75rem));--lmvz-header-x-spacing-level-2:var(--lmvz-component-buttongroup-wrapper-gap-x, clamp(0.25rem, 0.16rem + 0.39vw, 0.63rem));padding:var(--lmvz-dimension-8-16, clamp(0.5rem, 0.38rem + 0.52vw, 1rem)) var(--lmvz-header-x-spacing-level-1);gap:var(--lmvz-header-x-spacing-level-1);.brand{display:inline-flex;justify-content:center;align-items:center}#fallback-logo-lmvz{height:34px;width:auto}nav{flex-grow:1}.primary-menubar{display:flex;flex-direction:row;align-items:center}.secondary-menubar{display:flex;flex-direction:row;align-items:center;margin-left:var(--lmvz-header-x-spacing-level-2);padding-left:var(--lmvz-header-x-spacing-level-2);border-left:1px solid var(--lmvz-semantic-color-border-default, #e0e0e0)}}"}},[769,"lmvz-header",{role:[2561],lmvzActiveNav:[1,"lmvz-active-nav"]},void 0,{lmvzActiveNav:[{handleActiveNavChange:0}]}]),t=a,A=function(){"undefined"!=typeof customElements&&["lmvz-header"].forEach((M=>{"lmvz-header"===M&&(customElements.get(I(M))||customElements.define(I(M),a))}))};export{t as LmvzHeader,A as defineCustomElement}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzIcon extends Components.LmvzIcon, HTMLElement {}
4
+ export const LmvzIcon: {
5
+ prototype: LmvzIcon;
6
+ new (): LmvzIcon;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1 @@
1
+ import{p as i,h as e,d as t,t as n}from"./p-C_bScbrd.js";import{g as o,r as s,l as r,i as c,a,b as l,m,t as h,T as v,c as d}from"./p-fiRXhuXK.js";import{R as g,a as p}from"./p-CBLAeife.js";const u=Symbol.for("effect/Brand/Refined"),w=function(...i){const e=2===i.length?e=>i[0](e)?s(e):r(i[1](e)):e=>m(i[0](e),{onNone:()=>s(e),onSome:r});return Object.assign((i=>o(e(i),c)),{[u]:u,option:i=>l(e(i)),either:e,is:i=>a(e(i))})}(z,(()=>[{message:"SVG data is malformed",meta:void 0}]));class f extends(v("BrandValidationError")){constructor(i,e){super(Error(`Brand validation failed for type ${e}.`,{cause:i}))}}function z(i){if("string"!=typeof i)return!1;try{return"svg"===(new DOMParser).parseFromString(i,"image/svg+xml").documentElement.nodeName}catch{return!1}}const b=Symbol.for("LMVZ__iconProviderRegistry"),y={};function $(){return"undefined"==typeof window?y:window[b]??(window[b]={})}function x(i,e){const t=$(),n=i;Object.prototype.hasOwnProperty.call(t,n)&&console.warn(`Icon provider with name "${n}" is already registered. Overwriting existing provider.`),t[n]=e}function k(i){const e=$();if(i)return e[i];const t=Object.keys(e);if(0===t.length)return;t.length>1&&console.warn(`Multiple icon providers registered (${t.join(", ")}). Using the first one: "${t[0]}".`);const n=t[0];return n?e[n]:void 0}const I=()=>w('<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"></svg>');function D(i,e){return{iconset:i,icon:e}}const P=i(class extends g{intersectionObserver;ariaValidationController=new p(this);get el(){return this}validationEl;icon;weight="medium";size="md";iconset;iconData;visible=!1;ariaLabel;get ariaHidden(){return!this.ariaLabel}constructor(i){super(!1),!1!==i&&this.__registerHost(),this.addController(this.ariaValidationController)}connectedCallback(){this.waitUntilVisible((()=>{this.visible=!0,this.loadIconPathData()})),super.connectedCallback()}disconnectedCallback(){this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,super.disconnectedCallback()}async loadIconPathData(){const{icon:i,iconset:e,visible:t}=this;i&&t&&(this.iconData=z(i)?i:await async function(i){const{icon:e,iconset:t}=i;return await(async()=>{const i=k(t);if(i)try{const n=await Promise.resolve(i.resolve(e));if(!n?.svg)return void console.warn(`Icon "${e}"${t?` from set "${t}"`:""} not found in provider. Using default icon.`);const o=await async function(i){try{return await d((i=>h({try:()=>w(i),catch:i=>new f(i,"SVGString")}))(i))}catch{return console.error("Invalid SVG string:",i),I()}}(n.svg);if(o)return o}catch(i){return void console.error(`Error resolving icon "${e}" with provider:`,i)}else console.warn(`No icon provider registered. Unable to resolve icon "${e}"${t?` from set "${t}"`:""}. Using default icon.`)})()||(console.error(`Icon "${e}" not found${t?` in set "${t}"`:""}. Using default icon.`),I())}({icon:i,iconset:e}))}componentDidRender(){this.validationEl=this.el.querySelector("svg"),this.ariaValidationController.revalidateAria(),super.componentDidRender()}render(){return e(t,{key:"6022ed0e30bcdd13455ccaae65784ac70abcb349",role:"img","aria-hidden":""+this.ariaHidden,innerHTML:this.iconData})}waitUntilVisible(i,e=50){"undefined"!=typeof window&&window.IntersectionObserver?(this.intersectionObserver=new IntersectionObserver((e=>{e.some((e=>!!e.isIntersecting&&(this.intersectionObserver&&"function"==typeof this.intersectionObserver.disconnect&&this.intersectionObserver.disconnect(),this.intersectionObserver=void 0,i(),!0)))}),{rootMargin:e+"px"}),this.intersectionObserver.observe(this.el)):i()}static get watchers(){return{icon:[{loadIconPathData:0}],iconset:[{loadIconPathData:0}]}}static get style(){return".sc-lmvz-icon-h{--lmvz-icon-color:var(--lmvz-component-color, var(--lmvz-semantic-color-on-surface-input-primary, #000000));display:inline-block;line-height:0;svg{display:block}svg path{stroke:var(--lmvz-icon-color);fill:none}}[size='xs'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem));height:var(--lmvz-component-icon-size-xs, clamp(0.75rem, 0.69rem + 0.26vw, 1rem))}}[size='sm'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.81rem + 0.26vw, 1.13rem));height:var(--lmvz-component-icon-size-sm, clamp(0.88rem, 0.81rem + 0.26vw, 1.13rem))}}[size='md'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-md, clamp(1rem, 0.88rem + 0.52vw, 1.5rem));height:var(--lmvz-component-icon-size-md, clamp(1rem, 0.88rem + 0.52vw, 1.5rem))}}[size='lg'].sc-lmvz-icon-h{svg{width:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.38rem + 0.52vw, 2rem));height:var(--lmvz-component-icon-size-lg, clamp(1.5rem, 1.38rem + 0.52vw, 2rem))}}[size='inherit'].sc-lmvz-icon-h{svg{width:inherit;height:inherit}}[weight='light'].sc-lmvz-icon-h{svg path{stroke-width:1}}[weight='medium'].sc-lmvz-icon-h{svg path{stroke-width:1.5}}[weight='bold'].sc-lmvz-icon-h{svg path{stroke-width:2}}[weight='filled'].sc-lmvz-icon-h{svg path{stroke-width:2;fill:var(--lmvz-icon-color)}}"}},[514,"lmvz-icon",{icon:[513],weight:[513],size:[513],iconset:[513],ariaLabel:[513,"aria-label"],iconData:[32],visible:[32]},void 0,{icon:[{loadIconPathData:0}],iconset:[{loadIconPathData:0}]}]),S=P,E=function(){"undefined"!=typeof customElements&&["lmvz-icon"].forEach((i=>{"lmvz-icon"===i&&(customElements.get(n(i))||customElements.define(n(i),P))}))};export{S as LmvzIcon,E as defineCustomElement,k as g,x as r,D as t}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LmvzInput extends Components.LmvzInput, HTMLElement {}
4
+ export const LmvzInput: {
5
+ prototype: LmvzInput;
6
+ new (): LmvzInput;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;