@lmvz-ds/components 0.17.3 → 0.18.1

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 (302) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +3 -0
  3. package/cjs/{aria-loader-W9Zvc9e-.js → aria-loader-CfFuAbJn.js} +2 -2
  4. package/cjs/icons-swqMn6s2.js +163 -0
  5. package/cjs/{index-BNm4PQrX.js → index--7IqZZqn.js} +12179 -516
  6. package/cjs/index.cjs.js +6 -85
  7. package/cjs/lmvz-action.cjs.entry.js +1 -1
  8. package/cjs/lmvz-button.cjs.entry.js +4 -4
  9. package/cjs/lmvz-card.cjs.entry.js +24 -4
  10. package/cjs/lmvz-chip.cjs.entry.js +1 -1
  11. package/cjs/lmvz-components.cjs.js +1 -1
  12. package/cjs/lmvz-header_2.cjs.entry.js +5 -5
  13. package/cjs/lmvz-icon.cjs.entry.js +24 -13
  14. package/cjs/lmvz-input.cjs.entry.js +5 -5
  15. package/cjs/lmvz-menuitem.cjs.entry.js +4 -4
  16. package/cjs/lmvz-select.cjs.entry.js +4 -4
  17. package/cjs/loader.cjs.js +1 -1
  18. package/cjs/logger-Bn2yoZGP.js +7189 -0
  19. package/cjs/{reactive-controller-host-B_davRfI.js → reactive-controller-host-CtaVAiYJ.js} +27 -23
  20. package/collection/api/ds.constants.js +0 -66
  21. package/collection/collection-manifest.json +1 -1
  22. package/collection/components/lmvz-action/lmvz-action.js +1 -1
  23. package/collection/components/lmvz-button/lmvz-button.css +2 -2
  24. package/collection/components/lmvz-button/lmvz-button.js +5 -5
  25. package/collection/components/lmvz-card/lmvz-card.css +5 -5
  26. package/collection/components/lmvz-card/lmvz-card.js +1 -1
  27. package/collection/components/lmvz-chip/lmvz-chip.js +1 -1
  28. package/collection/components/lmvz-header/lmvz-header.js +2 -2
  29. package/collection/components/lmvz-icon/lmvz-icon.css +13 -13
  30. package/collection/components/lmvz-icon/lmvz-icon.js +49 -18
  31. package/collection/components/lmvz-input/lmvz-input.css +1 -1
  32. package/collection/components/lmvz-input/lmvz-input.js +6 -6
  33. package/collection/components/lmvz-menuitem/lmvz-menuitem.css +2 -2
  34. package/collection/components/lmvz-menuitem/lmvz-menuitem.js +1 -1
  35. package/collection/components/lmvz-select/lmvz-select.css +3 -3
  36. package/collection/components/lmvz-select/lmvz-select.js +1 -1
  37. package/collection/index.js +1 -2
  38. package/collection/integration/header-integration/header-integration.js +51 -0
  39. package/collection/utils/aria/aria-validation-controller.js +27 -23
  40. package/collection/utils/http.js +10 -13
  41. package/collection/utils/icons/icons-registry.js +34 -0
  42. package/collection/utils/icons/icons.js +49 -0
  43. package/collection/utils/icons/icons.unit.js +73 -0
  44. package/collection/utils/icons/public.js +2 -0
  45. package/collection/utils/public.js +1 -1
  46. package/components/index.d.ts +9 -9
  47. package/components/index.d.ts.bak +10 -10
  48. package/components/index.js +1 -1
  49. package/components/lmvz-action.d.ts +1 -1
  50. package/components/lmvz-action.d.ts.bak +11 -0
  51. package/components/lmvz-action.js +1 -1
  52. package/components/lmvz-button.d.ts +1 -1
  53. package/components/lmvz-button.d.ts.bak +11 -0
  54. package/components/lmvz-button.js +1 -1
  55. package/components/lmvz-card.d.ts +1 -1
  56. package/components/lmvz-card.d.ts.bak +11 -0
  57. package/components/lmvz-card.js +1 -1
  58. package/components/lmvz-chip.d.ts +1 -1
  59. package/components/lmvz-chip.d.ts.bak +11 -0
  60. package/components/lmvz-chip.js +1 -1
  61. package/components/lmvz-header.d.ts +1 -1
  62. package/components/lmvz-header.d.ts.bak +11 -0
  63. package/components/lmvz-header.js +1 -1
  64. package/components/lmvz-icon.d.ts +1 -1
  65. package/components/lmvz-icon.d.ts.bak +11 -0
  66. package/components/lmvz-icon.js +1 -1
  67. package/components/lmvz-input.d.ts +1 -1
  68. package/components/lmvz-input.d.ts.bak +11 -0
  69. package/components/lmvz-input.js +1 -1
  70. package/components/lmvz-menuitem.d.ts +1 -1
  71. package/components/lmvz-menuitem.d.ts.bak +11 -0
  72. package/components/lmvz-menuitem.js +1 -1
  73. package/components/lmvz-select.d.ts +1 -1
  74. package/components/lmvz-select.d.ts.bak +11 -0
  75. package/components/lmvz-select.js +1 -1
  76. package/components/{p-Clo63DJF.js → p-CBLAeife.js} +1 -1
  77. package/components/p-DXOTa5VF.js +12 -0
  78. package/components/p-fiRXhuXK.js +1 -0
  79. package/esm/{aria-loader-D9aySMw6.js → aria-loader-BF_AYtbb.js} +2 -2
  80. package/esm/icons-Ca8oMiRa.js +157 -0
  81. package/esm/{index-n6jVNpyp.js → index-7Ru1khgk.js} +11972 -309
  82. package/esm/index.js +4 -80
  83. package/esm/lmvz-action.entry.js +1 -1
  84. package/esm/lmvz-button.entry.js +4 -4
  85. package/esm/lmvz-card.entry.js +23 -4
  86. package/esm/lmvz-chip.entry.js +1 -1
  87. package/esm/lmvz-components.js +1 -1
  88. package/esm/lmvz-header_2.entry.js +5 -5
  89. package/esm/lmvz-icon.entry.js +24 -13
  90. package/esm/lmvz-input.entry.js +5 -5
  91. package/esm/lmvz-menuitem.entry.js +4 -4
  92. package/esm/lmvz-select.entry.js +4 -4
  93. package/esm/loader.js +1 -1
  94. package/esm/logger-fiRXhuXK.js +6990 -0
  95. package/esm/{reactive-controller-host-ByKmPKq1.js → reactive-controller-host-sR2jJxNG.js} +27 -23
  96. package/hydrate/index.js +78 -3842
  97. package/hydrate/index.mjs +78 -3842
  98. package/lmvz-components/index.esm.js +1 -1
  99. package/lmvz-components/lmvz-components.esm.js +1 -1
  100. package/lmvz-components/p-0f645295.entry.js +1 -0
  101. package/lmvz-components/{p-986acfd0.entry.js → p-1506fa34.entry.js} +1 -1
  102. package/lmvz-components/p-658c5c34.entry.js +1 -0
  103. package/lmvz-components/{p-1bda378c.entry.js → p-80675ee5.entry.js} +1 -1
  104. package/lmvz-components/p-872e2106.entry.js +1 -0
  105. package/lmvz-components/p-93038c98.entry.js +1 -0
  106. package/lmvz-components/{p-CU4XwA2K.js → p-B3dnXEPG.js} +1 -1
  107. package/lmvz-components/p-Bh2Epkwf.js +1 -0
  108. package/lmvz-components/{p-DPHHQR5F.js → p-Bkfdgg0T.js} +1 -1
  109. package/lmvz-components/p-DXOTa5VF.js +12 -0
  110. package/lmvz-components/p-bbab5471.entry.js +1 -0
  111. package/lmvz-components/p-c7e368c4.entry.js +1 -0
  112. package/lmvz-components/{p-b704eca8.entry.js → p-ff6a0267.entry.js} +1 -1
  113. package/lmvz-components/p-fiRXhuXK.js +1 -0
  114. package/manifest.json +64 -283
  115. package/package.json +4 -2
  116. package/types/api/ds.constants.d.ts +22 -1
  117. package/types/api/ds.types.d.ts +3 -38
  118. package/types/api/index.d.ts +0 -1
  119. package/types/components/lmvz-action/lmvz-action.d.ts +1 -0
  120. package/types/components/lmvz-button/lmvz-button.d.ts +2 -2
  121. package/types/components/lmvz-card/lmvz-card.d.ts +1 -0
  122. package/types/components/lmvz-chip/lmvz-chip.d.ts +1 -0
  123. package/types/components/lmvz-header/lmvz-header.d.ts +1 -0
  124. package/types/components/lmvz-icon/lmvz-icon.d.ts +4 -1
  125. package/types/components/lmvz-input/lmvz-input.d.ts +1 -0
  126. package/types/components/lmvz-menuitem/lmvz-menuitem.d.ts +1 -0
  127. package/types/components/lmvz-select/lmvz-select.d.ts +1 -0
  128. package/types/components.d.ts +747 -931
  129. package/types/index.d.ts +2 -2
  130. package/types/utils/aria/aria-validation-controller.d.ts +1 -0
  131. package/types/utils/aria/element-activation-controller.d.ts +1 -0
  132. package/types/utils/aria/list-keyboard-controller.d.ts +1 -0
  133. package/types/utils/assets.d.ts +1 -0
  134. package/types/utils/component.d.ts +2 -4
  135. package/types/utils/environment.d.ts +1 -0
  136. package/types/utils/http.d.ts +11 -8
  137. package/types/utils/http.unit.d.ts +1 -0
  138. package/types/utils/icons/icons-registry.d.ts +13 -0
  139. package/types/utils/icons/icons.d.ts +8 -0
  140. package/types/utils/icons/icons.unit.d.ts +8 -0
  141. package/types/utils/icons/public.d.ts +4 -0
  142. package/types/utils/public.d.ts +2 -1
  143. package/types/utils/reactive-controller-host.d.ts +1 -0
  144. package/assets/.DS_Store +0 -0
  145. package/assets/icons/.DS_Store +0 -0
  146. package/assets/icons/actions.svg +0 -5
  147. package/assets/icons/adduser.svg +0 -3
  148. package/assets/icons/alert.svg +0 -3
  149. package/assets/icons/apple.svg +0 -3
  150. package/assets/icons/arrow-down.svg +0 -3
  151. package/assets/icons/arrow-left.svg +0 -3
  152. package/assets/icons/arrow-right.svg +0 -3
  153. package/assets/icons/arrow-up.svg +0 -3
  154. package/assets/icons/book.svg +0 -3
  155. package/assets/icons/bookmark.svg +0 -3
  156. package/assets/icons/checkmark.svg +0 -3
  157. package/assets/icons/chevron-left.svg +0 -3
  158. package/assets/icons/chevron-right.svg +0 -3
  159. package/assets/icons/chevron-up.svg +0 -3
  160. package/assets/icons/close-l.svg +0 -3
  161. package/assets/icons/close-sm.svg +0 -3
  162. package/assets/icons/cog.svg +0 -4
  163. package/assets/icons/computer.svg +0 -3
  164. package/assets/icons/dashboard.svg +0 -6
  165. package/assets/icons/delete.svg +0 -3
  166. package/assets/icons/download.svg +0 -3
  167. package/assets/icons/edit.svg +0 -3
  168. package/assets/icons/external.svg +0 -3
  169. package/assets/icons/facebook.svg +0 -3
  170. package/assets/icons/favorite.svg +0 -3
  171. package/assets/icons/filter.svg +0 -3
  172. package/assets/icons/group.svg +0 -3
  173. package/assets/icons/hide.svg +0 -3
  174. package/assets/icons/home.svg +0 -3
  175. package/assets/icons/info.svg +0 -3
  176. package/assets/icons/instagram.svg +0 -3
  177. package/assets/icons/letter.svg +0 -3
  178. package/assets/icons/linkedin.svg +0 -5
  179. package/assets/icons/logout.svg +0 -3
  180. package/assets/icons/map.svg +0 -3
  181. package/assets/icons/minus.svg +0 -3
  182. package/assets/icons/navigation.svg +0 -3
  183. package/assets/icons/plus.svg +0 -3
  184. package/assets/icons/qr-scan.svg +0 -3
  185. package/assets/icons/question.svg +0 -10
  186. package/assets/icons/reader.svg +0 -3
  187. package/assets/icons/reset.svg +0 -3
  188. package/assets/icons/school.svg +0 -3
  189. package/assets/icons/search.svg +0 -3
  190. package/assets/icons/send.svg +0 -3
  191. package/assets/icons/settings.svg +0 -3
  192. package/assets/icons/share.svg +0 -10
  193. package/assets/icons/shopping-cart.svg +0 -3
  194. package/assets/icons/show.svg +0 -3
  195. package/assets/icons/snapchat.svg +0 -3
  196. package/assets/icons/sort.svg +0 -3
  197. package/assets/icons/speech-bubble.svg +0 -3
  198. package/assets/icons/star.svg +0 -3
  199. package/assets/icons/student.svg +0 -3
  200. package/assets/icons/upload.svg +0 -3
  201. package/assets/icons/user.svg +0 -3
  202. package/assets/icons/warn-circle.svg +0 -3
  203. package/assets/icons/warn-triangle.svg +0 -3
  204. package/assets/icons/whatsapp.svg +0 -4
  205. package/assets/icons/world.svg +0 -10
  206. package/assets/icons/x.svg +0 -3
  207. package/assets/icons/youtube.svg +0 -3
  208. package/cjs/Effect-YVFLBEfy.js +0 -19037
  209. package/cjs/assets-DxYhun-q.js +0 -26
  210. package/cjs/icons-DgYgcKGK.js +0 -653
  211. package/collection/api/index.js +0 -1
  212. package/collection/assets/.DS_Store +0 -0
  213. package/collection/assets/icons/.DS_Store +0 -0
  214. package/collection/assets/icons/actions.svg +0 -5
  215. package/collection/assets/icons/adduser.svg +0 -3
  216. package/collection/assets/icons/alert.svg +0 -3
  217. package/collection/assets/icons/apple.svg +0 -3
  218. package/collection/assets/icons/arrow-down.svg +0 -3
  219. package/collection/assets/icons/arrow-left.svg +0 -3
  220. package/collection/assets/icons/arrow-right.svg +0 -3
  221. package/collection/assets/icons/arrow-up.svg +0 -3
  222. package/collection/assets/icons/book.svg +0 -3
  223. package/collection/assets/icons/bookmark.svg +0 -3
  224. package/collection/assets/icons/checkmark.svg +0 -3
  225. package/collection/assets/icons/chevron-left.svg +0 -3
  226. package/collection/assets/icons/chevron-right.svg +0 -3
  227. package/collection/assets/icons/chevron-up.svg +0 -3
  228. package/collection/assets/icons/close-l.svg +0 -3
  229. package/collection/assets/icons/close-sm.svg +0 -3
  230. package/collection/assets/icons/cog.svg +0 -4
  231. package/collection/assets/icons/computer.svg +0 -3
  232. package/collection/assets/icons/dashboard.svg +0 -6
  233. package/collection/assets/icons/delete.svg +0 -3
  234. package/collection/assets/icons/download.svg +0 -3
  235. package/collection/assets/icons/edit.svg +0 -3
  236. package/collection/assets/icons/external.svg +0 -3
  237. package/collection/assets/icons/facebook.svg +0 -3
  238. package/collection/assets/icons/favorite.svg +0 -3
  239. package/collection/assets/icons/filter.svg +0 -3
  240. package/collection/assets/icons/group.svg +0 -3
  241. package/collection/assets/icons/hide.svg +0 -3
  242. package/collection/assets/icons/home.svg +0 -3
  243. package/collection/assets/icons/info.svg +0 -3
  244. package/collection/assets/icons/instagram.svg +0 -3
  245. package/collection/assets/icons/letter.svg +0 -3
  246. package/collection/assets/icons/linkedin.svg +0 -5
  247. package/collection/assets/icons/logout.svg +0 -3
  248. package/collection/assets/icons/map.svg +0 -3
  249. package/collection/assets/icons/minus.svg +0 -3
  250. package/collection/assets/icons/navigation.svg +0 -3
  251. package/collection/assets/icons/plus.svg +0 -3
  252. package/collection/assets/icons/qr-scan.svg +0 -3
  253. package/collection/assets/icons/question.svg +0 -10
  254. package/collection/assets/icons/reader.svg +0 -3
  255. package/collection/assets/icons/reset.svg +0 -3
  256. package/collection/assets/icons/school.svg +0 -3
  257. package/collection/assets/icons/search.svg +0 -3
  258. package/collection/assets/icons/send.svg +0 -3
  259. package/collection/assets/icons/settings.svg +0 -3
  260. package/collection/assets/icons/share.svg +0 -10
  261. package/collection/assets/icons/shopping-cart.svg +0 -3
  262. package/collection/assets/icons/show.svg +0 -3
  263. package/collection/assets/icons/snapchat.svg +0 -3
  264. package/collection/assets/icons/sort.svg +0 -3
  265. package/collection/assets/icons/speech-bubble.svg +0 -3
  266. package/collection/assets/icons/star.svg +0 -3
  267. package/collection/assets/icons/student.svg +0 -3
  268. package/collection/assets/icons/upload.svg +0 -3
  269. package/collection/assets/icons/user.svg +0 -3
  270. package/collection/assets/icons/warn-circle.svg +0 -3
  271. package/collection/assets/icons/warn-triangle.svg +0 -3
  272. package/collection/assets/icons/whatsapp.svg +0 -4
  273. package/collection/assets/icons/world.svg +0 -10
  274. package/collection/assets/icons/x.svg +0 -3
  275. package/collection/assets/icons/youtube.svg +0 -3
  276. package/collection/components/lmvz-icon/icons.js +0 -36
  277. package/collection/components/lmvz-icon/public.js +0 -1
  278. package/collection/components/lmvz-icon/test/icons.unit.js +0 -98
  279. package/collection/integration/header-integration.js +0 -46
  280. package/collection/utils/effect.js +0 -6
  281. package/collection/utils/validation/svg.js +0 -24
  282. package/components/p-CYcWxAp5.js +0 -1
  283. package/components/p-DHtXOUVf.js +0 -1
  284. package/components/p-VkiNs_yz.js +0 -12
  285. package/esm/Effect-DkwJP3kx.js +0 -18828
  286. package/esm/assets-_WDisN-f.js +0 -23
  287. package/esm/icons-Crg18Lio.js +0 -649
  288. package/lmvz-components/p-121f74d8.entry.js +0 -1
  289. package/lmvz-components/p-373a9cbf.entry.js +0 -1
  290. package/lmvz-components/p-43e295ba.entry.js +0 -1
  291. package/lmvz-components/p-5f150890.entry.js +0 -1
  292. package/lmvz-components/p-6d5fa8c4.entry.js +0 -1
  293. package/lmvz-components/p-BT8PQPMJ.js +0 -1
  294. package/lmvz-components/p-BxiCs9Wn.js +0 -1
  295. package/lmvz-components/p-CXQcJLbG.js +0 -12
  296. package/lmvz-components/p-DkwJP3kx.js +0 -1
  297. package/lmvz-components/p-abbfa6aa.entry.js +0 -1
  298. package/types/components/lmvz-icon/icons.d.ts +0 -8
  299. package/types/components/lmvz-icon/public.d.ts +0 -1
  300. package/types/components/lmvz-icon/test/icons.unit.d.ts +0 -1
  301. package/types/utils/effect.d.ts +0 -3
  302. package/types/utils/validation/svg.d.ts +0 -11
@@ -1,931 +1,747 @@
1
- /* eslint-disable */
2
- /* tslint:disable */
3
- /**
4
- * This is an autogenerated file created by the Stencil compiler.
5
- * It contains typing information for all components that exist in this project.
6
- */
7
- import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
- import { Button, Icon, Input } from "./api";
9
- import { FormRef } from "./utils/component";
10
- export { Button, Icon, Input } from "./api";
11
- export { FormRef } from "./utils/component";
12
- export namespace Components {
13
- interface LmvzAction {
14
- }
15
- interface LmvzButton {
16
- /**
17
- * Whether the button is disabled
18
- * @default false
19
- */
20
- "disabled": boolean;
21
- /**
22
- * The HTML form element or form element id. Used to submit a form when the button is not a child of the form.
23
- */
24
- "form"?: FormRef;
25
- /**
26
- * Scale of the button
27
- * @default 'default'
28
- */
29
- "scale": Button.Scale;
30
- /**
31
- * @readonly
32
- * @default 0
33
- */
34
- "ti": number;
35
- /**
36
- * @default 'button'
37
- */
38
- "type": 'submit' | 'button';
39
- /**
40
- * Variant of the button
41
- * @default 'secondary', since the primary button should be marked as such in context
42
- */
43
- "variant": Button.Variant;
44
- }
45
- interface LmvzCard {
46
- /**
47
- * Card title (required)
48
- */
49
- "cardTitle": string;
50
- /**
51
- * Optional description
52
- */
53
- "description"?: string;
54
- /**
55
- * Optional image URL; placeholder used if omitted
56
- */
57
- "imageUrl"?: string;
58
- /**
59
- * Primary action button label
60
- * @default ''
61
- */
62
- "primaryActionLabel": string;
63
- }
64
- interface LmvzChip {
65
- "text": string;
66
- }
67
- /**
68
- * An accessible, application-style navigation header component, that renders two connected levels of navigation.
69
- */
70
- interface LmvzHeader {
71
- "lmvzActiveNav"?: string;
72
- /**
73
- * @readonly
74
- * @default 'banner'
75
- */
76
- "role": string;
77
- }
78
- /**
79
- * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from our predefined icon set.
80
- * It uses an IntersectionObserver to defer loading the icon until it becomes visible in the viewport. Once loaded, icon data is cached across instances.
81
- */
82
- interface LmvzIcon {
83
- "ariaLabel"?: string;
84
- /**
85
- * The name of the icon to display (required).
86
- */
87
- "icon": Icon.IconName;
88
- /**
89
- * The size of the icon (optional, default is 'md').
90
- * @default 'md'
91
- */
92
- "size"?: Icon.Size;
93
- /**
94
- * The weight/style of the icon (optional, default is 'medium').
95
- * @default 'medium'
96
- */
97
- "weight"?: Icon.IconWeight;
98
- }
99
- /**
100
- * Input component with floating label, (form) validation, and slotted content support.
101
- * @example ```html
102
- * <lmvz-input
103
- * label="Email"
104
- * type="email"
105
- * required
106
- * autocomplete="email"
107
- * helper-text="We'll never share your email"
108
- * ></lmvz-input>
109
- * ```
110
- * @example ```typescript
111
- * const input = document.querySelector('lmvz-input');
112
- * input.addEventListener('input', (e) => console.log(e.target.value));
113
- * await input.focus();
114
- * ```
115
- */
116
- interface LmvzInput {
117
- /**
118
- * Autocapitalize attribute for mobile keyboards
119
- * @default undefined
120
- */
121
- "autocapitalize"?: Input.Autocapitalize;
122
- /**
123
- * Autocomplete attribute for form autofill
124
- */
125
- "autocomplete"?: Input.Autocomplete;
126
- /**
127
- * Autocorrect attribute for mobile keyboards
128
- * @default undefined
129
- */
130
- "autocorrect"?: 'on' | 'off';
131
- /**
132
- * Whether the input should autofocus
133
- * @default false
134
- */
135
- "autofocus": boolean;
136
- /**
137
- * Removes focus from the input
138
- */
139
- "blurInput": () => Promise<void>;
140
- /**
141
- * Returns whether the input satisfies its validation constraints
142
- */
143
- "checkValidity": () => Promise<boolean>;
144
- /**
145
- * Whether the input is disabled
146
- * @default false
147
- */
148
- "disabled": boolean;
149
- /**
150
- * Whether the input is in an error state When not set manually, this will automatically reflect native HTML5 validation state
151
- * @default false
152
- */
153
- "error": boolean;
154
- /**
155
- * Error message to display when error is true
156
- */
157
- "errorMessage"?: string;
158
- /**
159
- * Sets focus on the input
160
- */
161
- "focusInput": () => Promise<void>;
162
- /**
163
- * Form id to associate with
164
- */
165
- "form"?: string;
166
- /**
167
- * Returns the native HTMLInputElement. Promise resolves when the element is ready and the input is available. If the input is not yet rendered, it waits for the component to be ready.
168
- */
169
- "getInputElement": () => Promise<HTMLInputElement | undefined>;
170
- /**
171
- * Helper text displayed below the input
172
- */
173
- "helperText"?: string;
174
- /**
175
- * Input mode for mobile keyboards
176
- */
177
- "inputmode"?: Input.Inputmode;
178
- /**
179
- * Label text for the input
180
- */
181
- "label": string;
182
- /**
183
- * Maximum value for number/date inputs
184
- */
185
- "max"?: number | string;
186
- /**
187
- * Maximum length for text inputs
188
- */
189
- "maxlength"?: number;
190
- /**
191
- * Minimum value for number/date inputs
192
- */
193
- "min"?: number | string;
194
- /**
195
- * Minimum length for text inputs
196
- */
197
- "minlength"?: number;
198
- /**
199
- * Name attribute for the input
200
- */
201
- "name"?: string;
202
- /**
203
- * Validation pattern (regex)
204
- */
205
- "pattern"?: string;
206
- /**
207
- * Placeholder text
208
- */
209
- "placeholder"?: string;
210
- /**
211
- * Whether the input is readonly
212
- * @default false
213
- */
214
- "readonly": boolean;
215
- /**
216
- * Reports validation errors to the user
217
- */
218
- "reportValidity": () => Promise<boolean>;
219
- /**
220
- * Whether the input is required
221
- * @default false
222
- */
223
- "required": boolean;
224
- /**
225
- * Selects the text in the input
226
- */
227
- "select": () => Promise<void>;
228
- "setValue": (newValue: string | undefined) => Promise<void>;
229
- /**
230
- * Spellcheck attribute
231
- * @default undefined
232
- */
233
- "spellcheck"?: boolean;
234
- /**
235
- * Step interval for number inputs
236
- */
237
- "step"?: number | string;
238
- /**
239
- * Type of the input
240
- * @default 'text'
241
- */
242
- "type": Input.Type;
243
- /**
244
- * Value of the input
245
- */
246
- "value"?: string;
247
- }
248
- /**
249
- * A menu item component to be used within the `lmvz-header` component's navigation slots.
250
- */
251
- interface LmvzMenuitem {
252
- /**
253
- * @readonly
254
- * @default 'menuitem'
255
- */
256
- "role": string;
257
- /**
258
- * @readonly
259
- * @default 0
260
- */
261
- "ti": number;
262
- }
263
- /**
264
- * Select component with floating label and pill-shaped trigger.
265
- * Wraps a native `<select>` element for full keyboard and form support.
266
- * @example ```html
267
- * <lmvz-select label="Country" name="country">
268
- * <option value="ch">Switzerland</option>
269
- * <option value="de">Germany</option>
270
- * <option value="at">Austria</option>
271
- * </lmvz-select>
272
- * ```
273
- * @example ```typescript
274
- * const select = document.querySelector('lmvz-select');
275
- * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
276
- * ```
277
- */
278
- interface LmvzSelect {
279
- /**
280
- * Whether the select is disabled.
281
- * @default false
282
- */
283
- "disabled": boolean;
284
- /**
285
- * Helper text displayed below the select field.
286
- */
287
- "helperText"?: string;
288
- /**
289
- * Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
290
- */
291
- "label": string;
292
- /**
293
- * Name attribute passed to the native select for form submission.
294
- */
295
- "name"?: string;
296
- /**
297
- * Whether a value is required.
298
- * @default false
299
- */
300
- "required": boolean;
301
- /**
302
- * Currently selected value.
303
- */
304
- "value"?: string;
305
- }
306
- }
307
- export interface LmvzActionCustomEvent<T> extends CustomEvent<T> {
308
- detail: T;
309
- target: HTMLLmvzActionElement;
310
- }
311
- export interface LmvzButtonCustomEvent<T> extends CustomEvent<T> {
312
- detail: T;
313
- target: HTMLLmvzButtonElement;
314
- }
315
- export interface LmvzCardCustomEvent<T> extends CustomEvent<T> {
316
- detail: T;
317
- target: HTMLLmvzCardElement;
318
- }
319
- export interface LmvzInputCustomEvent<T> extends CustomEvent<T> {
320
- detail: T;
321
- target: HTMLLmvzInputElement;
322
- }
323
- export interface LmvzMenuitemCustomEvent<T> extends CustomEvent<T> {
324
- detail: T;
325
- target: HTMLLmvzMenuitemElement;
326
- }
327
- export interface LmvzSelectCustomEvent<T> extends CustomEvent<T> {
328
- detail: T;
329
- target: HTMLLmvzSelectElement;
330
- }
331
- declare global {
332
- interface HTMLLmvzActionElementEventMap {
333
- "actionClick": MouseEvent;
334
- }
335
- interface HTMLLmvzActionElement extends Components.LmvzAction, HTMLStencilElement {
336
- addEventListener<K extends keyof HTMLLmvzActionElementEventMap>(type: K, listener: (this: HTMLLmvzActionElement, ev: LmvzActionCustomEvent<HTMLLmvzActionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
337
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
338
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
339
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
340
- removeEventListener<K extends keyof HTMLLmvzActionElementEventMap>(type: K, listener: (this: HTMLLmvzActionElement, ev: LmvzActionCustomEvent<HTMLLmvzActionElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
341
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
342
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
343
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
344
- }
345
- var HTMLLmvzActionElement: {
346
- prototype: HTMLLmvzActionElement;
347
- new (): HTMLLmvzActionElement;
348
- };
349
- interface HTMLLmvzButtonElementEventMap {
350
- "lmvzActivation": void;
351
- }
352
- interface HTMLLmvzButtonElement extends Components.LmvzButton, HTMLStencilElement {
353
- addEventListener<K extends keyof HTMLLmvzButtonElementEventMap>(type: K, listener: (this: HTMLLmvzButtonElement, ev: LmvzButtonCustomEvent<HTMLLmvzButtonElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
354
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
355
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
356
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
357
- removeEventListener<K extends keyof HTMLLmvzButtonElementEventMap>(type: K, listener: (this: HTMLLmvzButtonElement, ev: LmvzButtonCustomEvent<HTMLLmvzButtonElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
358
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
359
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
360
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
361
- }
362
- var HTMLLmvzButtonElement: {
363
- prototype: HTMLLmvzButtonElement;
364
- new (): HTMLLmvzButtonElement;
365
- };
366
- interface HTMLLmvzCardElementEventMap {
367
- "primaryAction": PointerEvent;
368
- }
369
- interface HTMLLmvzCardElement extends Components.LmvzCard, HTMLStencilElement {
370
- addEventListener<K extends keyof HTMLLmvzCardElementEventMap>(type: K, listener: (this: HTMLLmvzCardElement, ev: LmvzCardCustomEvent<HTMLLmvzCardElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
371
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
372
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
373
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
374
- removeEventListener<K extends keyof HTMLLmvzCardElementEventMap>(type: K, listener: (this: HTMLLmvzCardElement, ev: LmvzCardCustomEvent<HTMLLmvzCardElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
375
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
376
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
377
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
378
- }
379
- var HTMLLmvzCardElement: {
380
- prototype: HTMLLmvzCardElement;
381
- new (): HTMLLmvzCardElement;
382
- };
383
- interface HTMLLmvzChipElement extends Components.LmvzChip, HTMLStencilElement {
384
- }
385
- var HTMLLmvzChipElement: {
386
- prototype: HTMLLmvzChipElement;
387
- new (): HTMLLmvzChipElement;
388
- };
389
- /**
390
- * An accessible, application-style navigation header component, that renders two connected levels of navigation.
391
- */
392
- interface HTMLLmvzHeaderElement extends Components.LmvzHeader, HTMLStencilElement {
393
- }
394
- var HTMLLmvzHeaderElement: {
395
- prototype: HTMLLmvzHeaderElement;
396
- new (): HTMLLmvzHeaderElement;
397
- };
398
- /**
399
- * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from our predefined icon set.
400
- * It uses an IntersectionObserver to defer loading the icon until it becomes visible in the viewport. Once loaded, icon data is cached across instances.
401
- */
402
- interface HTMLLmvzIconElement extends Components.LmvzIcon, HTMLStencilElement {
403
- }
404
- var HTMLLmvzIconElement: {
405
- prototype: HTMLLmvzIconElement;
406
- new (): HTMLLmvzIconElement;
407
- };
408
- interface HTMLLmvzInputElementEventMap {
409
- "lmvzInput": string;
410
- }
411
- /**
412
- * Input component with floating label, (form) validation, and slotted content support.
413
- * @example ```html
414
- * <lmvz-input
415
- * label="Email"
416
- * type="email"
417
- * required
418
- * autocomplete="email"
419
- * helper-text="We'll never share your email"
420
- * ></lmvz-input>
421
- * ```
422
- * @example ```typescript
423
- * const input = document.querySelector('lmvz-input');
424
- * input.addEventListener('input', (e) => console.log(e.target.value));
425
- * await input.focus();
426
- * ```
427
- */
428
- interface HTMLLmvzInputElement extends Components.LmvzInput, HTMLStencilElement {
429
- addEventListener<K extends keyof HTMLLmvzInputElementEventMap>(type: K, listener: (this: HTMLLmvzInputElement, ev: LmvzInputCustomEvent<HTMLLmvzInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
430
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
431
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
432
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
433
- removeEventListener<K extends keyof HTMLLmvzInputElementEventMap>(type: K, listener: (this: HTMLLmvzInputElement, ev: LmvzInputCustomEvent<HTMLLmvzInputElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
434
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
435
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
436
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
437
- }
438
- var HTMLLmvzInputElement: {
439
- prototype: HTMLLmvzInputElement;
440
- new (): HTMLLmvzInputElement;
441
- };
442
- interface HTMLLmvzMenuitemElementEventMap {
443
- "lmvzActivation": void;
444
- }
445
- /**
446
- * A menu item component to be used within the `lmvz-header` component's navigation slots.
447
- */
448
- interface HTMLLmvzMenuitemElement extends Components.LmvzMenuitem, HTMLStencilElement {
449
- addEventListener<K extends keyof HTMLLmvzMenuitemElementEventMap>(type: K, listener: (this: HTMLLmvzMenuitemElement, ev: LmvzMenuitemCustomEvent<HTMLLmvzMenuitemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
450
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
451
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
452
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
453
- removeEventListener<K extends keyof HTMLLmvzMenuitemElementEventMap>(type: K, listener: (this: HTMLLmvzMenuitemElement, ev: LmvzMenuitemCustomEvent<HTMLLmvzMenuitemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
454
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
455
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
456
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
457
- }
458
- var HTMLLmvzMenuitemElement: {
459
- prototype: HTMLLmvzMenuitemElement;
460
- new (): HTMLLmvzMenuitemElement;
461
- };
462
- interface HTMLLmvzSelectElementEventMap {
463
- "lmvzChange": string;
464
- }
465
- /**
466
- * Select component with floating label and pill-shaped trigger.
467
- * Wraps a native `<select>` element for full keyboard and form support.
468
- * @example ```html
469
- * <lmvz-select label="Country" name="country">
470
- * <option value="ch">Switzerland</option>
471
- * <option value="de">Germany</option>
472
- * <option value="at">Austria</option>
473
- * </lmvz-select>
474
- * ```
475
- * @example ```typescript
476
- * const select = document.querySelector('lmvz-select');
477
- * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
478
- * ```
479
- */
480
- interface HTMLLmvzSelectElement extends Components.LmvzSelect, HTMLStencilElement {
481
- addEventListener<K extends keyof HTMLLmvzSelectElementEventMap>(type: K, listener: (this: HTMLLmvzSelectElement, ev: LmvzSelectCustomEvent<HTMLLmvzSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
482
- addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
483
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
484
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
485
- removeEventListener<K extends keyof HTMLLmvzSelectElementEventMap>(type: K, listener: (this: HTMLLmvzSelectElement, ev: LmvzSelectCustomEvent<HTMLLmvzSelectElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
486
- removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
487
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
488
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
489
- }
490
- var HTMLLmvzSelectElement: {
491
- prototype: HTMLLmvzSelectElement;
492
- new (): HTMLLmvzSelectElement;
493
- };
494
- interface HTMLElementTagNameMap {
495
- "lmvz-action": HTMLLmvzActionElement;
496
- "lmvz-button": HTMLLmvzButtonElement;
497
- "lmvz-card": HTMLLmvzCardElement;
498
- "lmvz-chip": HTMLLmvzChipElement;
499
- "lmvz-header": HTMLLmvzHeaderElement;
500
- "lmvz-icon": HTMLLmvzIconElement;
501
- "lmvz-input": HTMLLmvzInputElement;
502
- "lmvz-menuitem": HTMLLmvzMenuitemElement;
503
- "lmvz-select": HTMLLmvzSelectElement;
504
- }
505
- }
506
- declare namespace LocalJSX {
507
- type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
508
-
509
- interface LmvzAction {
510
- "onActionClick"?: (event: LmvzActionCustomEvent<MouseEvent>) => void;
511
- }
512
- interface LmvzButton {
513
- /**
514
- * Whether the button is disabled
515
- * @default false
516
- */
517
- "disabled"?: boolean;
518
- /**
519
- * The HTML form element or form element id. Used to submit a form when the button is not a child of the form.
520
- */
521
- "form"?: FormRef;
522
- /**
523
- * Event emitted when the button is activated, either by a click or by pressing "Enter" when the button is focused.
524
- */
525
- "onLmvzActivation"?: (event: LmvzButtonCustomEvent<void>) => void;
526
- /**
527
- * Scale of the button
528
- * @default 'default'
529
- */
530
- "scale"?: Button.Scale;
531
- /**
532
- * @readonly
533
- * @default 0
534
- */
535
- "ti"?: number;
536
- /**
537
- * @default 'button'
538
- */
539
- "type"?: 'submit' | 'button';
540
- /**
541
- * Variant of the button
542
- * @default 'secondary', since the primary button should be marked as such in context
543
- */
544
- "variant"?: Button.Variant;
545
- }
546
- interface LmvzCard {
547
- /**
548
- * Card title (required)
549
- */
550
- "cardTitle": string;
551
- /**
552
- * Optional description
553
- */
554
- "description"?: string;
555
- /**
556
- * Optional image URL; placeholder used if omitted
557
- */
558
- "imageUrl"?: string;
559
- /**
560
- * Event emitted when primary button is clicked
561
- */
562
- "onPrimaryAction"?: (event: LmvzCardCustomEvent<PointerEvent>) => void;
563
- /**
564
- * Primary action button label
565
- * @default ''
566
- */
567
- "primaryActionLabel"?: string;
568
- }
569
- interface LmvzChip {
570
- "text": string;
571
- }
572
- /**
573
- * An accessible, application-style navigation header component, that renders two connected levels of navigation.
574
- */
575
- interface LmvzHeader {
576
- "lmvzActiveNav"?: string;
577
- /**
578
- * @readonly
579
- * @default 'banner'
580
- */
581
- "role"?: string;
582
- }
583
- /**
584
- * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from our predefined icon set.
585
- * It uses an IntersectionObserver to defer loading the icon until it becomes visible in the viewport. Once loaded, icon data is cached across instances.
586
- */
587
- interface LmvzIcon {
588
- "ariaLabel"?: string;
589
- /**
590
- * The name of the icon to display (required).
591
- */
592
- "icon": Icon.IconName;
593
- /**
594
- * The size of the icon (optional, default is 'md').
595
- * @default 'md'
596
- */
597
- "size"?: Icon.Size;
598
- /**
599
- * The weight/style of the icon (optional, default is 'medium').
600
- * @default 'medium'
601
- */
602
- "weight"?: Icon.IconWeight;
603
- }
604
- /**
605
- * Input component with floating label, (form) validation, and slotted content support.
606
- * @example ```html
607
- * <lmvz-input
608
- * label="Email"
609
- * type="email"
610
- * required
611
- * autocomplete="email"
612
- * helper-text="We'll never share your email"
613
- * ></lmvz-input>
614
- * ```
615
- * @example ```typescript
616
- * const input = document.querySelector('lmvz-input');
617
- * input.addEventListener('input', (e) => console.log(e.target.value));
618
- * await input.focus();
619
- * ```
620
- */
621
- interface LmvzInput {
622
- /**
623
- * Autocapitalize attribute for mobile keyboards
624
- * @default undefined
625
- */
626
- "autocapitalize"?: Input.Autocapitalize;
627
- /**
628
- * Autocomplete attribute for form autofill
629
- */
630
- "autocomplete"?: Input.Autocomplete;
631
- /**
632
- * Autocorrect attribute for mobile keyboards
633
- * @default undefined
634
- */
635
- "autocorrect"?: 'on' | 'off';
636
- /**
637
- * Whether the input should autofocus
638
- * @default false
639
- */
640
- "autofocus"?: boolean;
641
- /**
642
- * Whether the input is disabled
643
- * @default false
644
- */
645
- "disabled"?: boolean;
646
- /**
647
- * Whether the input is in an error state When not set manually, this will automatically reflect native HTML5 validation state
648
- * @default false
649
- */
650
- "error"?: boolean;
651
- /**
652
- * Error message to display when error is true
653
- */
654
- "errorMessage"?: string;
655
- /**
656
- * Form id to associate with
657
- */
658
- "form"?: string;
659
- /**
660
- * Helper text displayed below the input
661
- */
662
- "helperText"?: string;
663
- /**
664
- * Input mode for mobile keyboards
665
- */
666
- "inputmode"?: Input.Inputmode;
667
- /**
668
- * Label text for the input
669
- */
670
- "label": string;
671
- /**
672
- * Maximum value for number/date inputs
673
- */
674
- "max"?: number | string;
675
- /**
676
- * Maximum length for text inputs
677
- */
678
- "maxlength"?: number;
679
- /**
680
- * Minimum value for number/date inputs
681
- */
682
- "min"?: number | string;
683
- /**
684
- * Minimum length for text inputs
685
- */
686
- "minlength"?: number;
687
- /**
688
- * Name attribute for the input
689
- */
690
- "name"?: string;
691
- "onLmvzInput"?: (event: LmvzInputCustomEvent<string>) => void;
692
- /**
693
- * Validation pattern (regex)
694
- */
695
- "pattern"?: string;
696
- /**
697
- * Placeholder text
698
- */
699
- "placeholder"?: string;
700
- /**
701
- * Whether the input is readonly
702
- * @default false
703
- */
704
- "readonly"?: boolean;
705
- /**
706
- * Whether the input is required
707
- * @default false
708
- */
709
- "required"?: boolean;
710
- /**
711
- * Spellcheck attribute
712
- * @default undefined
713
- */
714
- "spellcheck"?: boolean;
715
- /**
716
- * Step interval for number inputs
717
- */
718
- "step"?: number | string;
719
- /**
720
- * Type of the input
721
- * @default 'text'
722
- */
723
- "type"?: Input.Type;
724
- /**
725
- * Value of the input
726
- */
727
- "value"?: string;
728
- }
729
- /**
730
- * A menu item component to be used within the `lmvz-header` component's navigation slots.
731
- */
732
- interface LmvzMenuitem {
733
- /**
734
- * Event emitted when the menu item is activated, either by a click or by pressing "Enter" or "Space" while the menu item is focused.
735
- */
736
- "onLmvzActivation"?: (event: LmvzMenuitemCustomEvent<void>) => void;
737
- /**
738
- * @readonly
739
- * @default 'menuitem'
740
- */
741
- "role"?: string;
742
- /**
743
- * @readonly
744
- * @default 0
745
- */
746
- "ti"?: number;
747
- }
748
- /**
749
- * Select component with floating label and pill-shaped trigger.
750
- * Wraps a native `<select>` element for full keyboard and form support.
751
- * @example ```html
752
- * <lmvz-select label="Country" name="country">
753
- * <option value="ch">Switzerland</option>
754
- * <option value="de">Germany</option>
755
- * <option value="at">Austria</option>
756
- * </lmvz-select>
757
- * ```
758
- * @example ```typescript
759
- * const select = document.querySelector('lmvz-select');
760
- * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
761
- * ```
762
- */
763
- interface LmvzSelect {
764
- /**
765
- * Whether the select is disabled.
766
- * @default false
767
- */
768
- "disabled"?: boolean;
769
- /**
770
- * Helper text displayed below the select field.
771
- */
772
- "helperText"?: string;
773
- /**
774
- * Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
775
- */
776
- "label": string;
777
- /**
778
- * Name attribute passed to the native select for form submission.
779
- */
780
- "name"?: string;
781
- /**
782
- * Emitted when the user selects a new option. Detail contains the new value.
783
- */
784
- "onLmvzChange"?: (event: LmvzSelectCustomEvent<string>) => void;
785
- /**
786
- * Whether a value is required.
787
- * @default false
788
- */
789
- "required"?: boolean;
790
- /**
791
- * Currently selected value.
792
- */
793
- "value"?: string;
794
- }
795
-
796
- interface LmvzButtonAttributes {
797
- "ti": number;
798
- "scale": Button.Scale;
799
- "variant": Button.Variant;
800
- "disabled": boolean;
801
- "type": 'submit' | 'button';
802
- "form": FormRef;
803
- }
804
- interface LmvzCardAttributes {
805
- "cardTitle": string;
806
- "imageUrl": string;
807
- "description": string;
808
- "primaryActionLabel": string;
809
- }
810
- interface LmvzChipAttributes {
811
- "text": string;
812
- }
813
- interface LmvzHeaderAttributes {
814
- "role": string;
815
- "lmvzActiveNav": string;
816
- }
817
- interface LmvzIconAttributes {
818
- "icon": Icon.IconName;
819
- "weight": Icon.IconWeight;
820
- "size": Icon.Size;
821
- "ariaLabel": string;
822
- }
823
- interface LmvzInputAttributes {
824
- "value": string;
825
- "label": string;
826
- "helperText": string;
827
- "placeholder": string;
828
- "disabled": boolean;
829
- "readonly": boolean;
830
- "required": boolean;
831
- "name": string;
832
- "type": Input.Type;
833
- "errorMessage": string;
834
- "autocomplete": Input.Autocomplete;
835
- "inputmode": Input.Inputmode;
836
- "autocorrect": 'on' | 'off';
837
- "autocapitalize": Input.Autocapitalize;
838
- "spellcheck": boolean;
839
- "autofocus": boolean;
840
- "minlength": number;
841
- "maxlength": number;
842
- "pattern": string;
843
- "min": string;
844
- "max": string;
845
- "step": string;
846
- "form": string;
847
- "error": boolean;
848
- }
849
- interface LmvzMenuitemAttributes {
850
- "role": string;
851
- "ti": number;
852
- }
853
- interface LmvzSelectAttributes {
854
- "value": string;
855
- "label": string;
856
- "helperText": string;
857
- "disabled": boolean;
858
- "required": boolean;
859
- "name": string;
860
- }
861
-
862
- interface IntrinsicElements {
863
- "lmvz-action": LmvzAction;
864
- "lmvz-button": Omit<LmvzButton, keyof LmvzButtonAttributes> & { [K in keyof LmvzButton & keyof LmvzButtonAttributes]?: LmvzButton[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `attr:${K}`]?: LmvzButtonAttributes[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `prop:${K}`]?: LmvzButton[K] };
865
- "lmvz-card": Omit<LmvzCard, keyof LmvzCardAttributes> & { [K in keyof LmvzCard & keyof LmvzCardAttributes]?: LmvzCard[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `attr:${K}`]?: LmvzCardAttributes[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `prop:${K}`]?: LmvzCard[K] } & OneOf<"cardTitle", LmvzCard["cardTitle"], LmvzCardAttributes["cardTitle"]>;
866
- "lmvz-chip": Omit<LmvzChip, keyof LmvzChipAttributes> & { [K in keyof LmvzChip & keyof LmvzChipAttributes]?: LmvzChip[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `attr:${K}`]?: LmvzChipAttributes[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `prop:${K}`]?: LmvzChip[K] } & OneOf<"text", LmvzChip["text"], LmvzChipAttributes["text"]>;
867
- "lmvz-header": Omit<LmvzHeader, keyof LmvzHeaderAttributes> & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes]?: LmvzHeader[K] } & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes as `attr:${K}`]?: LmvzHeaderAttributes[K] } & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes as `prop:${K}`]?: LmvzHeader[K] };
868
- "lmvz-icon": Omit<LmvzIcon, keyof LmvzIconAttributes> & { [K in keyof LmvzIcon & keyof LmvzIconAttributes]?: LmvzIcon[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `attr:${K}`]?: LmvzIconAttributes[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `prop:${K}`]?: LmvzIcon[K] } & OneOf<"icon", LmvzIcon["icon"], LmvzIconAttributes["icon"]>;
869
- "lmvz-input": Omit<LmvzInput, keyof LmvzInputAttributes> & { [K in keyof LmvzInput & keyof LmvzInputAttributes]?: LmvzInput[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `attr:${K}`]?: LmvzInputAttributes[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `prop:${K}`]?: LmvzInput[K] } & OneOf<"label", LmvzInput["label"], LmvzInputAttributes["label"]>;
870
- "lmvz-menuitem": Omit<LmvzMenuitem, keyof LmvzMenuitemAttributes> & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes]?: LmvzMenuitem[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `attr:${K}`]?: LmvzMenuitemAttributes[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `prop:${K}`]?: LmvzMenuitem[K] };
871
- "lmvz-select": Omit<LmvzSelect, keyof LmvzSelectAttributes> & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes]?: LmvzSelect[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `attr:${K}`]?: LmvzSelectAttributes[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `prop:${K}`]?: LmvzSelect[K] } & OneOf<"label", LmvzSelect["label"], LmvzSelectAttributes["label"]>;
872
- }
873
- }
874
- export { LocalJSX as JSX };
875
- declare module "@stencil/core" {
876
- export namespace JSX {
877
- interface IntrinsicElements {
878
- "lmvz-action": LocalJSX.IntrinsicElements["lmvz-action"] & JSXBase.HTMLAttributes<HTMLLmvzActionElement>;
879
- "lmvz-button": LocalJSX.IntrinsicElements["lmvz-button"] & JSXBase.HTMLAttributes<HTMLLmvzButtonElement>;
880
- "lmvz-card": LocalJSX.IntrinsicElements["lmvz-card"] & JSXBase.HTMLAttributes<HTMLLmvzCardElement>;
881
- "lmvz-chip": LocalJSX.IntrinsicElements["lmvz-chip"] & JSXBase.HTMLAttributes<HTMLLmvzChipElement>;
882
- /**
883
- * An accessible, application-style navigation header component, that renders two connected levels of navigation.
884
- */
885
- "lmvz-header": LocalJSX.IntrinsicElements["lmvz-header"] & JSXBase.HTMLAttributes<HTMLLmvzHeaderElement>;
886
- /**
887
- * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from our predefined icon set.
888
- * It uses an IntersectionObserver to defer loading the icon until it becomes visible in the viewport. Once loaded, icon data is cached across instances.
889
- */
890
- "lmvz-icon": LocalJSX.IntrinsicElements["lmvz-icon"] & JSXBase.HTMLAttributes<HTMLLmvzIconElement>;
891
- /**
892
- * Input component with floating label, (form) validation, and slotted content support.
893
- * @example ```html
894
- * <lmvz-input
895
- * label="Email"
896
- * type="email"
897
- * required
898
- * autocomplete="email"
899
- * helper-text="We'll never share your email"
900
- * ></lmvz-input>
901
- * ```
902
- * @example ```typescript
903
- * const input = document.querySelector('lmvz-input');
904
- * input.addEventListener('input', (e) => console.log(e.target.value));
905
- * await input.focus();
906
- * ```
907
- */
908
- "lmvz-input": LocalJSX.IntrinsicElements["lmvz-input"] & JSXBase.HTMLAttributes<HTMLLmvzInputElement>;
909
- /**
910
- * A menu item component to be used within the `lmvz-header` component's navigation slots.
911
- */
912
- "lmvz-menuitem": LocalJSX.IntrinsicElements["lmvz-menuitem"] & JSXBase.HTMLAttributes<HTMLLmvzMenuitemElement>;
913
- /**
914
- * Select component with floating label and pill-shaped trigger.
915
- * Wraps a native `<select>` element for full keyboard and form support.
916
- * @example ```html
917
- * <lmvz-select label="Country" name="country">
918
- * <option value="ch">Switzerland</option>
919
- * <option value="de">Germany</option>
920
- * <option value="at">Austria</option>
921
- * </lmvz-select>
922
- * ```
923
- * @example ```typescript
924
- * const select = document.querySelector('lmvz-select');
925
- * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
926
- * ```
927
- */
928
- "lmvz-select": LocalJSX.IntrinsicElements["lmvz-select"] & JSXBase.HTMLAttributes<HTMLLmvzSelectElement>;
929
- }
930
- }
931
- }
1
+ import type { Brand } from 'effect';
2
+
3
+ export declare namespace Button {
4
+ export type Scale = (typeof scaleValues)[number];
5
+ export type Variant = LmvzDS.Variant;
6
+ }
7
+
8
+ export declare namespace Components {
9
+ export interface LmvzAction {
10
+ }
11
+ export interface LmvzButton {
12
+ /**
13
+ * Whether the button is disabled
14
+ * @default false
15
+ */
16
+ "disabled": boolean;
17
+ /**
18
+ * The HTML form element or form element id. Used to submit a form when the button is not a child of the form.
19
+ */
20
+ "form"?: FormRef;
21
+ /**
22
+ * Scale of the button
23
+ * @default 'default'
24
+ */
25
+ "scale": Button.Scale;
26
+ /**
27
+ * @readonly
28
+ * @default 0
29
+ */
30
+ "ti": number;
31
+ /**
32
+ * @default 'button'
33
+ */
34
+ "type": 'submit' | 'button';
35
+ /**
36
+ * Variant of the button
37
+ * @default 'secondary', since the primary button should be marked as such in context
38
+ */
39
+ "variant": Button.Variant;
40
+ }
41
+ export interface LmvzCard {
42
+ /**
43
+ * Card title (required)
44
+ */
45
+ "cardTitle": string;
46
+ /**
47
+ * Optional description
48
+ */
49
+ "description"?: string;
50
+ /**
51
+ * Optional image URL; placeholder used if omitted
52
+ */
53
+ "imageUrl"?: string;
54
+ /**
55
+ * Primary action button label
56
+ * @default ''
57
+ */
58
+ "primaryActionLabel": string;
59
+ }
60
+ export interface LmvzChip {
61
+ "text": string;
62
+ }
63
+ /**
64
+ * An accessible, application-style navigation header component, that renders two connected levels of navigation.
65
+ */
66
+ export interface LmvzHeader {
67
+ "lmvzActiveNav"?: string;
68
+ /**
69
+ * @readonly
70
+ * @default 'banner'
71
+ */
72
+ "role": string;
73
+ }
74
+ /**
75
+ * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from the given icon set.
76
+ * It requires a provider to be registered in the application (once), which will supply the icon data based on the `icon` prop, for its `iconset`.
77
+ * Loading is deferred, using an IntersectionObserver, until the instance becomes visible in the viewport.
78
+ */
79
+ export interface LmvzIcon {
80
+ "ariaLabel"?: string;
81
+ /**
82
+ * Required Either a valid name from a registered iconset, or the icon's SVG content (inline). Will be checked against the (default) iconset.
83
+ */
84
+ "icon": SVGString | string;
85
+ /**
86
+ * Optional custom icon iconset id. Must reference a registered custom iconset by its exported name.
87
+ */
88
+ "iconset"?: string;
89
+ /**
90
+ * The size of the icon (optional, default is 'md').
91
+ * @default 'md'
92
+ */
93
+ "size"?: Icon.Size;
94
+ /**
95
+ * The weight/style of the icon (optional, default is 'medium').
96
+ * @default 'medium'
97
+ */
98
+ "weight"?: Icon.IconWeight;
99
+ }
100
+ /**
101
+ * Input component with floating label, (form) validation, and slotted content support.
102
+ * @example ```html
103
+ * <lmvz-input
104
+ * label="Email"
105
+ * type="email"
106
+ * required
107
+ * autocomplete="email"
108
+ * helper-text="We'll never share your email"
109
+ * ></lmvz-input>
110
+ * ```
111
+ * @example ```typescript
112
+ * const input = document.querySelector('lmvz-input');
113
+ * input.addEventListener('input', (e) => console.log(e.target.value));
114
+ * await input.focus();
115
+ * ```
116
+ */
117
+ export interface LmvzInput {
118
+ /**
119
+ * Autocapitalize attribute for mobile keyboards
120
+ * @default undefined
121
+ */
122
+ "autocapitalize"?: Input.Autocapitalize;
123
+ /**
124
+ * Autocomplete attribute for form autofill
125
+ */
126
+ "autocomplete"?: Input.Autocomplete;
127
+ /**
128
+ * Autocorrect attribute for mobile keyboards
129
+ * @default undefined
130
+ */
131
+ "autocorrect"?: 'on' | 'off';
132
+ /**
133
+ * Whether the input should autofocus
134
+ * @default false
135
+ */
136
+ "autofocus": boolean;
137
+ /**
138
+ * Removes focus from the input
139
+ */
140
+ "blurInput": () => Promise<void>;
141
+ /**
142
+ * Returns whether the input satisfies its validation constraints
143
+ */
144
+ "checkValidity": () => Promise<boolean>;
145
+ /**
146
+ * Whether the input is disabled
147
+ * @default false
148
+ */
149
+ "disabled": boolean;
150
+ /**
151
+ * Whether the input is in an error state When not set manually, this will automatically reflect native HTML5 validation state
152
+ * @default false
153
+ */
154
+ "error": boolean;
155
+ /**
156
+ * Error message to display when error is true
157
+ */
158
+ "errorMessage"?: string;
159
+ /**
160
+ * Sets focus on the input
161
+ */
162
+ "focusInput": () => Promise<void>;
163
+ /**
164
+ * Form id to associate with
165
+ */
166
+ "form"?: string;
167
+ /**
168
+ * Returns the native HTMLInputElement. Promise resolves when the element is ready and the input is available. If the input is not yet rendered, it waits for the component to be ready.
169
+ */
170
+ "getInputElement": () => Promise<HTMLInputElement | undefined>;
171
+ /**
172
+ * Helper text displayed below the input
173
+ */
174
+ "helperText"?: string;
175
+ /**
176
+ * Input mode for mobile keyboards
177
+ */
178
+ "inputmode"?: Input.Inputmode;
179
+ /**
180
+ * Label text for the input
181
+ */
182
+ "label": string;
183
+ /**
184
+ * Maximum value for number/date inputs
185
+ */
186
+ "max"?: number | string;
187
+ /**
188
+ * Maximum length for text inputs
189
+ */
190
+ "maxlength"?: number;
191
+ /**
192
+ * Minimum value for number/date inputs
193
+ */
194
+ "min"?: number | string;
195
+ /**
196
+ * Minimum length for text inputs
197
+ */
198
+ "minlength"?: number;
199
+ /**
200
+ * Name attribute for the input
201
+ */
202
+ "name"?: string;
203
+ /**
204
+ * Validation pattern (regex)
205
+ */
206
+ "pattern"?: string;
207
+ /**
208
+ * Placeholder text
209
+ */
210
+ "placeholder"?: string;
211
+ /**
212
+ * Whether the input is readonly
213
+ * @default false
214
+ */
215
+ "readonly": boolean;
216
+ /**
217
+ * Reports validation errors to the user
218
+ */
219
+ "reportValidity": () => Promise<boolean>;
220
+ /**
221
+ * Whether the input is required
222
+ * @default false
223
+ */
224
+ "required": boolean;
225
+ /**
226
+ * Selects the text in the input
227
+ */
228
+ "select": () => Promise<void>;
229
+ "setValue": (newValue: string | undefined) => Promise<void>;
230
+ /**
231
+ * Spellcheck attribute
232
+ * @default undefined
233
+ */
234
+ "spellcheck"?: boolean;
235
+ /**
236
+ * Step interval for number inputs
237
+ */
238
+ "step"?: number | string;
239
+ /**
240
+ * Type of the input
241
+ * @default 'text'
242
+ */
243
+ "type": Input.Type;
244
+ /**
245
+ * Value of the input
246
+ */
247
+ "value"?: string;
248
+ }
249
+ /**
250
+ * A menu item component to be used within the `lmvz-header` component's navigation slots.
251
+ */
252
+ export interface LmvzMenuitem {
253
+ /**
254
+ * @readonly
255
+ * @default 'menuitem'
256
+ */
257
+ "role": string;
258
+ /**
259
+ * @readonly
260
+ * @default 0
261
+ */
262
+ "ti": number;
263
+ }
264
+ /**
265
+ * Select component with floating label and pill-shaped trigger.
266
+ * Wraps a native `<select>` element for full keyboard and form support.
267
+ * @example ```html
268
+ * <lmvz-select label="Country" name="country">
269
+ * <option value="ch">Switzerland</option>
270
+ * <option value="de">Germany</option>
271
+ * <option value="at">Austria</option>
272
+ * </lmvz-select>
273
+ * ```
274
+ * @example ```typescript
275
+ * const select = document.querySelector('lmvz-select');
276
+ * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
277
+ * ```
278
+ */
279
+ export interface LmvzSelect {
280
+ /**
281
+ * Whether the select is disabled.
282
+ * @default false
283
+ */
284
+ "disabled": boolean;
285
+ /**
286
+ * Helper text displayed below the select field.
287
+ */
288
+ "helperText"?: string;
289
+ /**
290
+ * Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
291
+ */
292
+ "label": string;
293
+ /**
294
+ * Name attribute passed to the native select for form submission.
295
+ */
296
+ "name"?: string;
297
+ /**
298
+ * Whether a value is required.
299
+ * @default false
300
+ */
301
+ "required": boolean;
302
+ /**
303
+ * Currently selected value.
304
+ */
305
+ "value"?: string;
306
+ }
307
+ }
308
+
309
+ export declare type FormRef = string | HTMLFormElement | undefined;
310
+
311
+ export declare namespace Icon {
312
+ export type Size = (typeof iconSizes)[number];
313
+ export type IconWeight = (typeof iconWeights)[number];
314
+ }
315
+
316
+ declare const iconSizes: readonly ["xs", "sm", "md", "lg", "inherit"];
317
+
318
+ declare const iconWeights: readonly ["thin", "medium", "bold", "filled"];
319
+
320
+ export declare namespace Input {
321
+ export type Type = (typeof inputTypes)[number];
322
+ export type Autocomplete = HTMLInputElement['autocomplete'];
323
+ export type Inputmode = 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url';
324
+ export type Autocapitalize = 'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters';
325
+ }
326
+
327
+ declare const inputTypes: readonly ["text", "email", "password", "tel", "url", "search", "number"];
328
+
329
+ export declare namespace JSX {
330
+ export type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
331
+
332
+ export interface LmvzAction {
333
+ "onActionClick"?: (event: LmvzActionCustomEvent<MouseEvent>) => void;
334
+ }
335
+ export interface LmvzButton {
336
+ /**
337
+ * Whether the button is disabled
338
+ * @default false
339
+ */
340
+ "disabled"?: boolean;
341
+ /**
342
+ * The HTML form element or form element id. Used to submit a form when the button is not a child of the form.
343
+ */
344
+ "form"?: FormRef;
345
+ /**
346
+ * Event emitted when the button is activated, either by a click or by pressing "Enter" when the button is focused.
347
+ */
348
+ "onLmvzActivation"?: (event: LmvzButtonCustomEvent<void>) => void;
349
+ /**
350
+ * Scale of the button
351
+ * @default 'default'
352
+ */
353
+ "scale"?: Button.Scale;
354
+ /**
355
+ * @readonly
356
+ * @default 0
357
+ */
358
+ "ti"?: number;
359
+ /**
360
+ * @default 'button'
361
+ */
362
+ "type"?: 'submit' | 'button';
363
+ /**
364
+ * Variant of the button
365
+ * @default 'secondary', since the primary button should be marked as such in context
366
+ */
367
+ "variant"?: Button.Variant;
368
+ }
369
+ export interface LmvzCard {
370
+ /**
371
+ * Card title (required)
372
+ */
373
+ "cardTitle": string;
374
+ /**
375
+ * Optional description
376
+ */
377
+ "description"?: string;
378
+ /**
379
+ * Optional image URL; placeholder used if omitted
380
+ */
381
+ "imageUrl"?: string;
382
+ /**
383
+ * Event emitted when primary button is clicked
384
+ */
385
+ "onPrimaryAction"?: (event: LmvzCardCustomEvent<PointerEvent>) => void;
386
+ /**
387
+ * Primary action button label
388
+ * @default ''
389
+ */
390
+ "primaryActionLabel"?: string;
391
+ }
392
+ export interface LmvzChip {
393
+ "text": string;
394
+ }
395
+ /**
396
+ * An accessible, application-style navigation header component, that renders two connected levels of navigation.
397
+ */
398
+ export interface LmvzHeader {
399
+ "lmvzActiveNav"?: string;
400
+ /**
401
+ * @readonly
402
+ * @default 'banner'
403
+ */
404
+ "role"?: string;
405
+ }
406
+ /**
407
+ * `lmvz-icon` is a web component that lazy-loads and displays an SVG icon from the given icon set.
408
+ * It requires a provider to be registered in the application (once), which will supply the icon data based on the `icon` prop, for its `iconset`.
409
+ * Loading is deferred, using an IntersectionObserver, until the instance becomes visible in the viewport.
410
+ */
411
+ export interface LmvzIcon {
412
+ "ariaLabel"?: string;
413
+ /**
414
+ * Required Either a valid name from a registered iconset, or the icon's SVG content (inline). Will be checked against the (default) iconset.
415
+ */
416
+ "icon": SVGString | string;
417
+ /**
418
+ * Optional custom icon iconset id. Must reference a registered custom iconset by its exported name.
419
+ */
420
+ "iconset"?: string;
421
+ /**
422
+ * The size of the icon (optional, default is 'md').
423
+ * @default 'md'
424
+ */
425
+ "size"?: Icon.Size;
426
+ /**
427
+ * The weight/style of the icon (optional, default is 'medium').
428
+ * @default 'medium'
429
+ */
430
+ "weight"?: Icon.IconWeight;
431
+ }
432
+ /**
433
+ * Input component with floating label, (form) validation, and slotted content support.
434
+ * @example ```html
435
+ * <lmvz-input
436
+ * label="Email"
437
+ * type="email"
438
+ * required
439
+ * autocomplete="email"
440
+ * helper-text="We'll never share your email"
441
+ * ></lmvz-input>
442
+ * ```
443
+ * @example ```typescript
444
+ * const input = document.querySelector('lmvz-input');
445
+ * input.addEventListener('input', (e) => console.log(e.target.value));
446
+ * await input.focus();
447
+ * ```
448
+ */
449
+ export interface LmvzInput {
450
+ /**
451
+ * Autocapitalize attribute for mobile keyboards
452
+ * @default undefined
453
+ */
454
+ "autocapitalize"?: Input.Autocapitalize;
455
+ /**
456
+ * Autocomplete attribute for form autofill
457
+ */
458
+ "autocomplete"?: Input.Autocomplete;
459
+ /**
460
+ * Autocorrect attribute for mobile keyboards
461
+ * @default undefined
462
+ */
463
+ "autocorrect"?: 'on' | 'off';
464
+ /**
465
+ * Whether the input should autofocus
466
+ * @default false
467
+ */
468
+ "autofocus"?: boolean;
469
+ /**
470
+ * Whether the input is disabled
471
+ * @default false
472
+ */
473
+ "disabled"?: boolean;
474
+ /**
475
+ * Whether the input is in an error state When not set manually, this will automatically reflect native HTML5 validation state
476
+ * @default false
477
+ */
478
+ "error"?: boolean;
479
+ /**
480
+ * Error message to display when error is true
481
+ */
482
+ "errorMessage"?: string;
483
+ /**
484
+ * Form id to associate with
485
+ */
486
+ "form"?: string;
487
+ /**
488
+ * Helper text displayed below the input
489
+ */
490
+ "helperText"?: string;
491
+ /**
492
+ * Input mode for mobile keyboards
493
+ */
494
+ "inputmode"?: Input.Inputmode;
495
+ /**
496
+ * Label text for the input
497
+ */
498
+ "label": string;
499
+ /**
500
+ * Maximum value for number/date inputs
501
+ */
502
+ "max"?: number | string;
503
+ /**
504
+ * Maximum length for text inputs
505
+ */
506
+ "maxlength"?: number;
507
+ /**
508
+ * Minimum value for number/date inputs
509
+ */
510
+ "min"?: number | string;
511
+ /**
512
+ * Minimum length for text inputs
513
+ */
514
+ "minlength"?: number;
515
+ /**
516
+ * Name attribute for the input
517
+ */
518
+ "name"?: string;
519
+ "onLmvzInput"?: (event: LmvzInputCustomEvent<string>) => void;
520
+ /**
521
+ * Validation pattern (regex)
522
+ */
523
+ "pattern"?: string;
524
+ /**
525
+ * Placeholder text
526
+ */
527
+ "placeholder"?: string;
528
+ /**
529
+ * Whether the input is readonly
530
+ * @default false
531
+ */
532
+ "readonly"?: boolean;
533
+ /**
534
+ * Whether the input is required
535
+ * @default false
536
+ */
537
+ "required"?: boolean;
538
+ /**
539
+ * Spellcheck attribute
540
+ * @default undefined
541
+ */
542
+ "spellcheck"?: boolean;
543
+ /**
544
+ * Step interval for number inputs
545
+ */
546
+ "step"?: number | string;
547
+ /**
548
+ * Type of the input
549
+ * @default 'text'
550
+ */
551
+ "type"?: Input.Type;
552
+ /**
553
+ * Value of the input
554
+ */
555
+ "value"?: string;
556
+ }
557
+ /**
558
+ * A menu item component to be used within the `lmvz-header` component's navigation slots.
559
+ */
560
+ export interface LmvzMenuitem {
561
+ /**
562
+ * Event emitted when the menu item is activated, either by a click or by pressing "Enter" or "Space" while the menu item is focused.
563
+ */
564
+ "onLmvzActivation"?: (event: LmvzMenuitemCustomEvent<void>) => void;
565
+ /**
566
+ * @readonly
567
+ * @default 'menuitem'
568
+ */
569
+ "role"?: string;
570
+ /**
571
+ * @readonly
572
+ * @default 0
573
+ */
574
+ "ti"?: number;
575
+ }
576
+ /**
577
+ * Select component with floating label and pill-shaped trigger.
578
+ * Wraps a native `<select>` element for full keyboard and form support.
579
+ * @example ```html
580
+ * <lmvz-select label="Country" name="country">
581
+ * <option value="ch">Switzerland</option>
582
+ * <option value="de">Germany</option>
583
+ * <option value="at">Austria</option>
584
+ * </lmvz-select>
585
+ * ```
586
+ * @example ```typescript
587
+ * const select = document.querySelector('lmvz-select');
588
+ * select.addEventListener('lmvzChange', (e) => console.log(e.detail));
589
+ * ```
590
+ */
591
+ export interface LmvzSelect {
592
+ /**
593
+ * Whether the select is disabled.
594
+ * @default false
595
+ */
596
+ "disabled"?: boolean;
597
+ /**
598
+ * Helper text displayed below the select field.
599
+ */
600
+ "helperText"?: string;
601
+ /**
602
+ * Label text displayed as a placeholder when no value is selected, and floated above the trigger when a value is present.
603
+ */
604
+ "label": string;
605
+ /**
606
+ * Name attribute passed to the native select for form submission.
607
+ */
608
+ "name"?: string;
609
+ /**
610
+ * Emitted when the user selects a new option. Detail contains the new value.
611
+ */
612
+ "onLmvzChange"?: (event: LmvzSelectCustomEvent<string>) => void;
613
+ /**
614
+ * Whether a value is required.
615
+ * @default false
616
+ */
617
+ "required"?: boolean;
618
+ /**
619
+ * Currently selected value.
620
+ */
621
+ "value"?: string;
622
+ }
623
+
624
+ export interface LmvzButtonAttributes {
625
+ "ti": number;
626
+ "scale": Button.Scale;
627
+ "variant": Button.Variant;
628
+ "disabled": boolean;
629
+ "type": 'submit' | 'button';
630
+ "form": FormRef;
631
+ }
632
+ export interface LmvzCardAttributes {
633
+ "cardTitle": string;
634
+ "imageUrl": string;
635
+ "description": string;
636
+ "primaryActionLabel": string;
637
+ }
638
+ export interface LmvzChipAttributes {
639
+ "text": string;
640
+ }
641
+ export interface LmvzHeaderAttributes {
642
+ "role": string;
643
+ "lmvzActiveNav": string;
644
+ }
645
+ export interface LmvzIconAttributes {
646
+ "icon": SVGString | string;
647
+ "weight": Icon.IconWeight;
648
+ "size": Icon.Size;
649
+ "iconset": string;
650
+ "ariaLabel": string;
651
+ }
652
+ export interface LmvzInputAttributes {
653
+ "value": string;
654
+ "label": string;
655
+ "helperText": string;
656
+ "placeholder": string;
657
+ "disabled": boolean;
658
+ "readonly": boolean;
659
+ "required": boolean;
660
+ "name": string;
661
+ "type": Input.Type;
662
+ "errorMessage": string;
663
+ "autocomplete": Input.Autocomplete;
664
+ "inputmode": Input.Inputmode;
665
+ "autocorrect": 'on' | 'off';
666
+ "autocapitalize": Input.Autocapitalize;
667
+ "spellcheck": boolean;
668
+ "autofocus": boolean;
669
+ "minlength": number;
670
+ "maxlength": number;
671
+ "pattern": string;
672
+ "min": string;
673
+ "max": string;
674
+ "step": string;
675
+ "form": string;
676
+ "error": boolean;
677
+ }
678
+ export interface LmvzMenuitemAttributes {
679
+ "role": string;
680
+ "ti": number;
681
+ }
682
+ export interface LmvzSelectAttributes {
683
+ "value": string;
684
+ "label": string;
685
+ "helperText": string;
686
+ "disabled": boolean;
687
+ "required": boolean;
688
+ "name": string;
689
+ }
690
+
691
+ export interface IntrinsicElements {
692
+ "lmvz-action": LmvzAction;
693
+ "lmvz-button": Omit<LmvzButton, keyof LmvzButtonAttributes> & { [K in keyof LmvzButton & keyof LmvzButtonAttributes]?: LmvzButton[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `attr:${K}`]?: LmvzButtonAttributes[K] } & { [K in keyof LmvzButton & keyof LmvzButtonAttributes as `prop:${K}`]?: LmvzButton[K] };
694
+ "lmvz-card": Omit<LmvzCard, keyof LmvzCardAttributes> & { [K in keyof LmvzCard & keyof LmvzCardAttributes]?: LmvzCard[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `attr:${K}`]?: LmvzCardAttributes[K] } & { [K in keyof LmvzCard & keyof LmvzCardAttributes as `prop:${K}`]?: LmvzCard[K] } & OneOf<"cardTitle", LmvzCard["cardTitle"], LmvzCardAttributes["cardTitle"]>;
695
+ "lmvz-chip": Omit<LmvzChip, keyof LmvzChipAttributes> & { [K in keyof LmvzChip & keyof LmvzChipAttributes]?: LmvzChip[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `attr:${K}`]?: LmvzChipAttributes[K] } & { [K in keyof LmvzChip & keyof LmvzChipAttributes as `prop:${K}`]?: LmvzChip[K] } & OneOf<"text", LmvzChip["text"], LmvzChipAttributes["text"]>;
696
+ "lmvz-header": Omit<LmvzHeader, keyof LmvzHeaderAttributes> & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes]?: LmvzHeader[K] } & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes as `attr:${K}`]?: LmvzHeaderAttributes[K] } & { [K in keyof LmvzHeader & keyof LmvzHeaderAttributes as `prop:${K}`]?: LmvzHeader[K] };
697
+ "lmvz-icon": Omit<LmvzIcon, keyof LmvzIconAttributes> & { [K in keyof LmvzIcon & keyof LmvzIconAttributes]?: LmvzIcon[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `attr:${K}`]?: LmvzIconAttributes[K] } & { [K in keyof LmvzIcon & keyof LmvzIconAttributes as `prop:${K}`]?: LmvzIcon[K] } & OneOf<"icon", LmvzIcon["icon"], LmvzIconAttributes["icon"]>;
698
+ "lmvz-input": Omit<LmvzInput, keyof LmvzInputAttributes> & { [K in keyof LmvzInput & keyof LmvzInputAttributes]?: LmvzInput[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `attr:${K}`]?: LmvzInputAttributes[K] } & { [K in keyof LmvzInput & keyof LmvzInputAttributes as `prop:${K}`]?: LmvzInput[K] } & OneOf<"label", LmvzInput["label"], LmvzInputAttributes["label"]>;
699
+ "lmvz-menuitem": Omit<LmvzMenuitem, keyof LmvzMenuitemAttributes> & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes]?: LmvzMenuitem[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `attr:${K}`]?: LmvzMenuitemAttributes[K] } & { [K in keyof LmvzMenuitem & keyof LmvzMenuitemAttributes as `prop:${K}`]?: LmvzMenuitem[K] };
700
+ "lmvz-select": Omit<LmvzSelect, keyof LmvzSelectAttributes> & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes]?: LmvzSelect[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `attr:${K}`]?: LmvzSelectAttributes[K] } & { [K in keyof LmvzSelect & keyof LmvzSelectAttributes as `prop:${K}`]?: LmvzSelect[K] } & OneOf<"label", LmvzSelect["label"], LmvzSelectAttributes["label"]>;
701
+ }
702
+ }
703
+
704
+ export declare interface LmvzActionCustomEvent<T> extends CustomEvent<T> {
705
+ detail: T;
706
+ target: HTMLLmvzActionElement;
707
+ }
708
+
709
+ export declare interface LmvzButtonCustomEvent<T> extends CustomEvent<T> {
710
+ detail: T;
711
+ target: HTMLLmvzButtonElement;
712
+ }
713
+
714
+ export declare interface LmvzCardCustomEvent<T> extends CustomEvent<T> {
715
+ detail: T;
716
+ target: HTMLLmvzCardElement;
717
+ }
718
+
719
+ declare namespace LmvzDS {
720
+ type Variant = (typeof variants)[number];
721
+ type Size = (typeof sizes)[number];
722
+ }
723
+
724
+ export declare interface LmvzInputCustomEvent<T> extends CustomEvent<T> {
725
+ detail: T;
726
+ target: HTMLLmvzInputElement;
727
+ }
728
+
729
+ export declare interface LmvzMenuitemCustomEvent<T> extends CustomEvent<T> {
730
+ detail: T;
731
+ target: HTMLLmvzMenuitemElement;
732
+ }
733
+
734
+ export declare interface LmvzSelectCustomEvent<T> extends CustomEvent<T> {
735
+ detail: T;
736
+ target: HTMLLmvzSelectElement;
737
+ }
738
+
739
+ declare const scaleValues: readonly ["small", "default", "large"];
740
+
741
+ declare const sizes: readonly ["xs", "sm", "md", "lg"];
742
+
743
+ export declare type SVGString = string & Brand.Brand<'SVG'>;
744
+
745
+ declare const variants: readonly ["primary", "secondary", "tertiary"];
746
+
747
+ export { }