le-kit 0.5.2 → 0.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/LLM_CONTEXT.md +22 -0
  2. package/dist/cjs/le-bar_16.cjs.entry.js +945 -1257
  3. package/dist/cjs/le-box.cjs.entry.js +40 -88
  4. package/dist/cjs/le-breadcrumbs.cjs.entry.js +223 -0
  5. package/dist/cjs/le-card.cjs.entry.js +11 -11
  6. package/dist/cjs/le-code-input.cjs.entry.js +76 -110
  7. package/dist/cjs/le-combobox.cjs.entry.js +126 -153
  8. package/dist/cjs/le-header-placeholder.cjs.entry.js +1 -1
  9. package/dist/cjs/le-kit.cjs.js +1 -1
  10. package/dist/cjs/le-multiselect.cjs.entry.js +149 -171
  11. package/dist/cjs/le-number-input.cjs.entry.js +89 -129
  12. package/dist/cjs/le-round-progress.cjs.entry.js +6 -11
  13. package/dist/cjs/le-segmented-control.cjs.entry.js +77 -87
  14. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +59 -75
  15. package/dist/cjs/le-side-panel.cjs.entry.js +130 -137
  16. package/dist/cjs/le-stack.cjs.entry.js +38 -51
  17. package/dist/cjs/le-tab-bar.cjs.entry.js +80 -89
  18. package/dist/cjs/le-tab-panel.cjs.entry.js +21 -39
  19. package/dist/cjs/le-tab.cjs.entry.js +53 -91
  20. package/dist/cjs/le-tabs.cjs.entry.js +112 -122
  21. package/dist/cjs/le-tag.cjs.entry.js +23 -40
  22. package/dist/cjs/le-text.cjs.entry.js +131 -148
  23. package/dist/cjs/le-turntable.cjs.entry.js +17 -25
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +1 -0
  26. package/dist/collection/components/le-bar/le-bar.js +132 -139
  27. package/dist/collection/components/le-bar/le-bar.js.map +1 -1
  28. package/dist/collection/components/le-box/le-box.js +41 -88
  29. package/dist/collection/components/le-box/le-box.js.map +1 -1
  30. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.css +72 -0
  31. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js +372 -0
  32. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js.map +1 -0
  33. package/dist/collection/components/le-button/le-button.js +50 -79
  34. package/dist/collection/components/le-button/le-button.js.map +1 -1
  35. package/dist/collection/components/le-card/le-card.js +12 -11
  36. package/dist/collection/components/le-card/le-card.js.map +1 -1
  37. package/dist/collection/components/le-checkbox/le-checkbox.js +27 -42
  38. package/dist/collection/components/le-checkbox/le-checkbox.js.map +1 -1
  39. package/dist/collection/components/le-code-input/le-code-input.js +77 -110
  40. package/dist/collection/components/le-code-input/le-code-input.js.map +1 -1
  41. package/dist/collection/components/le-collapse/le-collapse.js +15 -14
  42. package/dist/collection/components/le-collapse/le-collapse.js.map +1 -1
  43. package/dist/collection/components/le-combobox/le-combobox.js +127 -153
  44. package/dist/collection/components/le-combobox/le-combobox.js.map +1 -1
  45. package/dist/collection/components/le-component/le-component.js +14 -38
  46. package/dist/collection/components/le-component/le-component.js.map +1 -1
  47. package/dist/collection/components/le-current-heading/le-current-heading.js +6 -5
  48. package/dist/collection/components/le-current-heading/le-current-heading.js.map +1 -1
  49. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +139 -165
  50. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -1
  51. package/dist/collection/components/le-header/le-header.js +22 -45
  52. package/dist/collection/components/le-header/le-header.js.map +1 -1
  53. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
  54. package/dist/collection/components/le-icon/le-icon.js +14 -14
  55. package/dist/collection/components/le-icon/le-icon.js.map +1 -1
  56. package/dist/collection/components/le-multiselect/le-multiselect.js +150 -171
  57. package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -1
  58. package/dist/collection/components/le-navigation/le-navigation.js +118 -128
  59. package/dist/collection/components/le-navigation/le-navigation.js.map +1 -1
  60. package/dist/collection/components/le-number-input/le-number-input.js +90 -129
  61. package/dist/collection/components/le-number-input/le-number-input.js.map +1 -1
  62. package/dist/collection/components/le-popover/le-popover.css +2 -1
  63. package/dist/collection/components/le-popover/le-popover.js +101 -126
  64. package/dist/collection/components/le-popover/le-popover.js.map +1 -1
  65. package/dist/collection/components/le-popup/le-popup.js +89 -115
  66. package/dist/collection/components/le-popup/le-popup.js.map +1 -1
  67. package/dist/collection/components/le-round-progress/le-round-progress.js +7 -12
  68. package/dist/collection/components/le-round-progress/le-round-progress.js.map +1 -1
  69. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +6 -7
  70. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +1 -1
  71. package/dist/collection/components/le-segmented-control/le-segmented-control.js +78 -87
  72. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -1
  73. package/dist/collection/components/le-select/le-select.js +88 -110
  74. package/dist/collection/components/le-select/le-select.js.map +1 -1
  75. package/dist/collection/components/le-side-panel/le-side-panel.css +10 -1
  76. package/dist/collection/components/le-side-panel/le-side-panel.js +131 -136
  77. package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -1
  78. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +60 -75
  79. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -1
  80. package/dist/collection/components/le-slot/le-slot.js +96 -144
  81. package/dist/collection/components/le-slot/le-slot.js.map +1 -1
  82. package/dist/collection/components/le-stack/le-stack.js +39 -51
  83. package/dist/collection/components/le-stack/le-stack.js.map +1 -1
  84. package/dist/collection/components/le-string-input/le-string-input.js +41 -84
  85. package/dist/collection/components/le-string-input/le-string-input.js.map +1 -1
  86. package/dist/collection/components/le-tab/le-tab.js +54 -91
  87. package/dist/collection/components/le-tab/le-tab.js.map +1 -1
  88. package/dist/collection/components/le-tab-bar/le-tab-bar.js +81 -89
  89. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -1
  90. package/dist/collection/components/le-tab-panel/le-tab-panel.js +22 -39
  91. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -1
  92. package/dist/collection/components/le-tabs/le-tabs.js +113 -122
  93. package/dist/collection/components/le-tabs/le-tabs.js.map +1 -1
  94. package/dist/collection/components/le-tag/le-tag.js +25 -40
  95. package/dist/collection/components/le-tag/le-tag.js.map +1 -1
  96. package/dist/collection/components/le-text/le-text.js +132 -148
  97. package/dist/collection/components/le-text/le-text.js.map +1 -1
  98. package/dist/collection/components/le-turntable/le-turntable.js +18 -26
  99. package/dist/collection/components/le-turntable/le-turntable.js.map +1 -1
  100. package/dist/collection/dist/components/assets/custom-elements.json +973 -645
  101. package/dist/collection/dist/components/assets/icons/arrow-left.json +21 -0
  102. package/dist/collection/dist/components/assets/icons/arrow-right.json +21 -0
  103. package/dist/collection/dist/components/assets/icons/check.json +12 -0
  104. package/dist/collection/dist/components/assets/icons/chevron-down.json +1 -2
  105. package/dist/collection/dist/components/assets/icons/chevron-left.json +12 -0
  106. package/dist/collection/dist/components/assets/icons/chevron-right.json +12 -0
  107. package/dist/collection/dist/components/assets/icons/chevron-up.json +12 -0
  108. package/dist/components/assets/custom-elements.json +973 -645
  109. package/dist/components/assets/icons/arrow-left.json +21 -0
  110. package/dist/components/assets/icons/arrow-right.json +21 -0
  111. package/dist/components/assets/icons/check.json +12 -0
  112. package/dist/components/assets/icons/chevron-down.json +1 -2
  113. package/dist/components/assets/icons/chevron-left.json +12 -0
  114. package/dist/components/assets/icons/chevron-right.json +12 -0
  115. package/dist/components/assets/icons/chevron-up.json +12 -0
  116. package/dist/components/le-bar2.js +132 -140
  117. package/dist/components/le-bar2.js.map +1 -1
  118. package/dist/components/le-box.js +41 -89
  119. package/dist/components/le-box.js.map +1 -1
  120. package/dist/components/le-breadcrumbs.d.ts +11 -0
  121. package/dist/components/le-breadcrumbs.js +327 -0
  122. package/dist/components/le-breadcrumbs.js.map +1 -0
  123. package/dist/components/le-button2.js +405 -619
  124. package/dist/components/le-button2.js.map +1 -1
  125. package/dist/components/le-card.js +12 -12
  126. package/dist/components/le-card.js.map +1 -1
  127. package/dist/components/le-code-input.js +77 -111
  128. package/dist/components/le-code-input.js.map +1 -1
  129. package/dist/components/le-collapse2.js +15 -15
  130. package/dist/components/le-collapse2.js.map +1 -1
  131. package/dist/components/le-combobox.js +127 -154
  132. package/dist/components/le-combobox.js.map +1 -1
  133. package/dist/components/le-current-heading.js +6 -6
  134. package/dist/components/le-current-heading.js.map +1 -1
  135. package/dist/components/le-dropdown-base2.js +139 -166
  136. package/dist/components/le-dropdown-base2.js.map +1 -1
  137. package/dist/components/le-header-placeholder.js +1 -1
  138. package/dist/components/le-header.js +22 -46
  139. package/dist/components/le-header.js.map +1 -1
  140. package/dist/components/le-icon2.js +14 -15
  141. package/dist/components/le-icon2.js.map +1 -1
  142. package/dist/components/le-multiselect.js +150 -172
  143. package/dist/components/le-multiselect.js.map +1 -1
  144. package/dist/components/le-navigation.js +1 -494
  145. package/dist/components/le-navigation.js.map +1 -1
  146. package/dist/components/le-navigation2.js +488 -0
  147. package/dist/components/le-navigation2.js.map +1 -0
  148. package/dist/components/le-number-input.js +90 -130
  149. package/dist/components/le-number-input.js.map +1 -1
  150. package/dist/components/le-popover2.js +103 -128
  151. package/dist/components/le-popover2.js.map +1 -1
  152. package/dist/components/le-round-progress.js +7 -12
  153. package/dist/components/le-round-progress.js.map +1 -1
  154. package/dist/components/le-scroll-progress.js +6 -8
  155. package/dist/components/le-scroll-progress.js.map +1 -1
  156. package/dist/components/le-segmented-control.js +78 -88
  157. package/dist/components/le-segmented-control.js.map +1 -1
  158. package/dist/components/le-side-panel-toggle2.js +60 -76
  159. package/dist/components/le-side-panel-toggle2.js.map +1 -1
  160. package/dist/components/le-side-panel.js +133 -139
  161. package/dist/components/le-side-panel.js.map +1 -1
  162. package/dist/components/le-stack.js +39 -52
  163. package/dist/components/le-stack.js.map +1 -1
  164. package/dist/components/le-tab-bar.js +81 -90
  165. package/dist/components/le-tab-bar.js.map +1 -1
  166. package/dist/components/le-tab-panel.js +22 -40
  167. package/dist/components/le-tab-panel.js.map +1 -1
  168. package/dist/components/le-tab2.js +54 -92
  169. package/dist/components/le-tab2.js.map +1 -1
  170. package/dist/components/le-tabs.js +113 -123
  171. package/dist/components/le-tabs.js.map +1 -1
  172. package/dist/components/le-tag2.js +24 -41
  173. package/dist/components/le-tag2.js.map +1 -1
  174. package/dist/components/le-text.js +132 -149
  175. package/dist/components/le-text.js.map +1 -1
  176. package/dist/components/le-turntable.js +18 -26
  177. package/dist/components/le-turntable.js.map +1 -1
  178. package/dist/docs.json +294 -2
  179. package/dist/esm/le-bar_16.entry.js +946 -1258
  180. package/dist/esm/le-box.entry.js +41 -89
  181. package/dist/esm/le-box.entry.js.map +1 -1
  182. package/dist/esm/le-breadcrumbs.entry.js +221 -0
  183. package/dist/esm/le-breadcrumbs.entry.js.map +1 -0
  184. package/dist/esm/le-card.entry.js +12 -12
  185. package/dist/esm/le-card.entry.js.map +1 -1
  186. package/dist/esm/le-code-input.entry.js +77 -111
  187. package/dist/esm/le-code-input.entry.js.map +1 -1
  188. package/dist/esm/le-combobox.entry.js +127 -154
  189. package/dist/esm/le-combobox.entry.js.map +1 -1
  190. package/dist/esm/le-header-placeholder.entry.js +1 -1
  191. package/dist/esm/le-kit.js +1 -1
  192. package/dist/esm/le-multiselect.entry.js +150 -172
  193. package/dist/esm/le-multiselect.entry.js.map +1 -1
  194. package/dist/esm/le-number-input.entry.js +90 -130
  195. package/dist/esm/le-number-input.entry.js.map +1 -1
  196. package/dist/esm/le-round-progress.entry.js +7 -12
  197. package/dist/esm/le-round-progress.entry.js.map +1 -1
  198. package/dist/esm/le-segmented-control.entry.js +78 -88
  199. package/dist/esm/le-segmented-control.entry.js.map +1 -1
  200. package/dist/esm/le-side-panel-toggle.entry.js +60 -76
  201. package/dist/esm/le-side-panel-toggle.entry.js.map +1 -1
  202. package/dist/esm/le-side-panel.entry.js +131 -138
  203. package/dist/esm/le-side-panel.entry.js.map +1 -1
  204. package/dist/esm/le-stack.entry.js +39 -52
  205. package/dist/esm/le-stack.entry.js.map +1 -1
  206. package/dist/esm/le-tab-bar.entry.js +81 -90
  207. package/dist/esm/le-tab-bar.entry.js.map +1 -1
  208. package/dist/esm/le-tab-panel.entry.js +22 -40
  209. package/dist/esm/le-tab-panel.entry.js.map +1 -1
  210. package/dist/esm/le-tab.entry.js +54 -92
  211. package/dist/esm/le-tab.entry.js.map +1 -1
  212. package/dist/esm/le-tabs.entry.js +113 -123
  213. package/dist/esm/le-tabs.entry.js.map +1 -1
  214. package/dist/esm/le-tag.entry.js +23 -40
  215. package/dist/esm/le-tag.entry.js.map +1 -1
  216. package/dist/esm/le-text.entry.js +132 -149
  217. package/dist/esm/le-text.entry.js.map +1 -1
  218. package/dist/esm/le-turntable.entry.js +18 -26
  219. package/dist/esm/le-turntable.entry.js.map +1 -1
  220. package/dist/esm/loader.js +1 -1
  221. package/dist/le-kit/dist/components/assets/custom-elements.json +973 -645
  222. package/dist/le-kit/dist/components/assets/icons/arrow-left.json +21 -0
  223. package/dist/le-kit/dist/components/assets/icons/arrow-right.json +21 -0
  224. package/dist/le-kit/dist/components/assets/icons/check.json +12 -0
  225. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +1 -2
  226. package/dist/le-kit/dist/components/assets/icons/chevron-left.json +12 -0
  227. package/dist/le-kit/dist/components/assets/icons/chevron-right.json +12 -0
  228. package/dist/le-kit/dist/components/assets/icons/chevron-up.json +12 -0
  229. package/dist/le-kit/le-kit.esm.js +1 -1
  230. package/dist/le-kit/p-3067b18f.entry.js +2 -0
  231. package/dist/le-kit/p-3067b18f.entry.js.map +1 -0
  232. package/dist/le-kit/p-34c4d97d.entry.js +2 -0
  233. package/dist/le-kit/p-34c4d97d.entry.js.map +1 -0
  234. package/dist/le-kit/p-45182541.entry.js +2 -0
  235. package/dist/le-kit/p-45182541.entry.js.map +1 -0
  236. package/dist/le-kit/p-52a41c96.entry.js +2 -0
  237. package/dist/le-kit/p-52a41c96.entry.js.map +1 -0
  238. package/dist/le-kit/p-55fb5dd2.entry.js +2 -0
  239. package/dist/le-kit/p-55fb5dd2.entry.js.map +1 -0
  240. package/dist/le-kit/{p-ab6c1def.entry.js → p-649025f4.entry.js} +2 -2
  241. package/dist/le-kit/p-649025f4.entry.js.map +1 -0
  242. package/dist/le-kit/p-67930309.entry.js +2 -0
  243. package/dist/le-kit/p-67930309.entry.js.map +1 -0
  244. package/dist/le-kit/p-6d222705.entry.js +2 -0
  245. package/dist/le-kit/p-6d222705.entry.js.map +1 -0
  246. package/dist/le-kit/p-8049e0c2.entry.js +2 -0
  247. package/dist/le-kit/p-8049e0c2.entry.js.map +1 -0
  248. package/dist/le-kit/p-884f57bd.entry.js +2 -0
  249. package/dist/le-kit/p-88c70f9d.entry.js +2 -0
  250. package/dist/le-kit/p-88c70f9d.entry.js.map +1 -0
  251. package/dist/le-kit/p-96610729.entry.js +2 -0
  252. package/dist/le-kit/p-96610729.entry.js.map +1 -0
  253. package/dist/le-kit/p-a34054e0.entry.js +2 -0
  254. package/dist/le-kit/p-a34054e0.entry.js.map +1 -0
  255. package/dist/le-kit/p-a388e46a.entry.js +2 -0
  256. package/dist/le-kit/p-a388e46a.entry.js.map +1 -0
  257. package/dist/le-kit/p-c0c53650.entry.js +2 -0
  258. package/dist/le-kit/p-c0c53650.entry.js.map +1 -0
  259. package/dist/le-kit/p-cbf17514.entry.js +2 -0
  260. package/dist/le-kit/p-cbf17514.entry.js.map +1 -0
  261. package/dist/le-kit/p-d934de74.entry.js +2 -0
  262. package/dist/le-kit/p-d934de74.entry.js.map +1 -0
  263. package/dist/le-kit/p-de72c8b5.entry.js +2 -0
  264. package/dist/le-kit/p-de72c8b5.entry.js.map +1 -0
  265. package/dist/le-kit/p-e3dd0f2a.entry.js +2 -0
  266. package/dist/le-kit/p-e3dd0f2a.entry.js.map +1 -0
  267. package/dist/le-kit/p-ee170967.entry.js +2 -0
  268. package/dist/le-kit/p-ee170967.entry.js.map +1 -0
  269. package/dist/le-kit/p-eedb2f75.entry.js +2 -0
  270. package/dist/le-kit/p-eedb2f75.entry.js.map +1 -0
  271. package/dist/types/components/le-breadcrumbs/le-breadcrumbs.d.ts +57 -0
  272. package/dist/types/components/le-side-panel/le-side-panel.d.ts +2 -0
  273. package/dist/types/components.d.ts +84 -0
  274. package/package.json +1 -1
  275. package/dist/collection/assets/icons/chevron-down.svg +0 -3
  276. package/dist/collection/dist/components/assets/icons/chevron-down.svg +0 -3
  277. package/dist/components/assets/icons/chevron-down.svg +0 -3
  278. package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +0 -3
  279. package/dist/le-kit/p-221d379a.entry.js +0 -2
  280. package/dist/le-kit/p-221d379a.entry.js.map +0 -1
  281. package/dist/le-kit/p-24112ca3.entry.js +0 -2
  282. package/dist/le-kit/p-24112ca3.entry.js.map +0 -1
  283. package/dist/le-kit/p-2c6d080d.entry.js +0 -2
  284. package/dist/le-kit/p-2c6d080d.entry.js.map +0 -1
  285. package/dist/le-kit/p-46276e77.entry.js +0 -2
  286. package/dist/le-kit/p-46276e77.entry.js.map +0 -1
  287. package/dist/le-kit/p-516c8531.entry.js +0 -2
  288. package/dist/le-kit/p-6ae60ba5.entry.js +0 -2
  289. package/dist/le-kit/p-6ae60ba5.entry.js.map +0 -1
  290. package/dist/le-kit/p-6b69f9a2.entry.js +0 -2
  291. package/dist/le-kit/p-6b69f9a2.entry.js.map +0 -1
  292. package/dist/le-kit/p-6d14306f.entry.js +0 -2
  293. package/dist/le-kit/p-6d14306f.entry.js.map +0 -1
  294. package/dist/le-kit/p-7bcdf2d4.entry.js +0 -2
  295. package/dist/le-kit/p-7bcdf2d4.entry.js.map +0 -1
  296. package/dist/le-kit/p-7cf1e23c.entry.js +0 -2
  297. package/dist/le-kit/p-7cf1e23c.entry.js.map +0 -1
  298. package/dist/le-kit/p-85f2fd4d.entry.js +0 -2
  299. package/dist/le-kit/p-85f2fd4d.entry.js.map +0 -1
  300. package/dist/le-kit/p-98242429.entry.js +0 -2
  301. package/dist/le-kit/p-98242429.entry.js.map +0 -1
  302. package/dist/le-kit/p-ab6c1def.entry.js.map +0 -1
  303. package/dist/le-kit/p-ae4ead64.entry.js +0 -2
  304. package/dist/le-kit/p-ae4ead64.entry.js.map +0 -1
  305. package/dist/le-kit/p-b05d4511.entry.js +0 -2
  306. package/dist/le-kit/p-b05d4511.entry.js.map +0 -1
  307. package/dist/le-kit/p-b6ac02ff.entry.js +0 -2
  308. package/dist/le-kit/p-b6ac02ff.entry.js.map +0 -1
  309. package/dist/le-kit/p-c24769e2.entry.js +0 -2
  310. package/dist/le-kit/p-c24769e2.entry.js.map +0 -1
  311. package/dist/le-kit/p-dc0445ad.entry.js +0 -2
  312. package/dist/le-kit/p-dc0445ad.entry.js.map +0 -1
  313. package/dist/le-kit/p-eb5286f2.entry.js +0 -2
  314. package/dist/le-kit/p-eb5286f2.entry.js.map +0 -1
  315. package/dist/le-kit/p-f78b1ee6.entry.js +0 -2
  316. package/dist/le-kit/p-f78b1ee6.entry.js.map +0 -1
  317. /package/dist/le-kit/{p-516c8531.entry.js.map → p-884f57bd.entry.js.map} +0 -0
@@ -10,82 +10,152 @@ const LeMultiselect = class {
10
10
  this.leChange = index.createEvent(this, "leChange");
11
11
  this.leOpen = index.createEvent(this, "leOpen");
12
12
  this.leClose = index.createEvent(this, "leClose");
13
+ /**
14
+ * The options to display in the dropdown.
15
+ */
16
+ this.options = [];
17
+ /**
18
+ * The currently selected values.
19
+ */
20
+ this.value = [];
21
+ /**
22
+ * Placeholder text when no options are selected.
23
+ */
24
+ this.placeholder = 'Select options...';
25
+ /**
26
+ * Whether the multiselect is disabled.
27
+ */
28
+ this.disabled = false;
29
+ /**
30
+ * Whether selection is required.
31
+ */
32
+ this.required = false;
33
+ /**
34
+ * Whether the multiselect should take full width of its container.
35
+ */
36
+ this.fullWidth = false;
37
+ /**
38
+ * Size variant of the multiselect.
39
+ */
40
+ this.size = 'medium';
41
+ /**
42
+ * Labels for the "Select All" option.
43
+ */
44
+ this.selectAllLabel = 'Select All';
45
+ this.deselectAllLabel = 'Deselect All';
46
+ /**
47
+ * Whether to show a "Select All" option.
48
+ * Also accepts a string or array of strings to customize the label(s).
49
+ */
50
+ this.showSelectAll = false;
51
+ /**
52
+ * Whether the input is searchable.
53
+ */
54
+ this.searchable = false;
55
+ /**
56
+ * Text to show when no options match the search.
57
+ */
58
+ this.emptyText = 'No results found';
59
+ /**
60
+ * Whether the dropdown is currently open.
61
+ */
62
+ this.open = false;
63
+ this.selectedOptions = [];
64
+ this.searchQuery = '';
65
+ this.filterOption = (option, query) => {
66
+ if (!query)
67
+ return true;
68
+ // Always show "Select All" option
69
+ if (option.value === '__select_all__')
70
+ return true;
71
+ const searchLower = query.toLowerCase();
72
+ return (option.label.toLowerCase().includes(searchLower) ||
73
+ (option.description?.toLowerCase().includes(searchLower) ?? false));
74
+ };
75
+ this.handleOptionSelect = (e) => {
76
+ const { value } = e.detail;
77
+ const enabledOptions = this.parsedOptions.filter(opt => !opt.disabled);
78
+ if (enabledOptions.length === 0)
79
+ return;
80
+ // Handle "Select All" option
81
+ if (value === '__select_all__') {
82
+ if (this.selectedOptions.length === enabledOptions.length) {
83
+ // Deselect all
84
+ this.value = [];
85
+ }
86
+ else {
87
+ // Select all (respect maxSelections)
88
+ const selectableOptions = this.maxSelections
89
+ ? enabledOptions.slice(0, this.maxSelections)
90
+ : enabledOptions;
91
+ this.value = selectableOptions.map(opt => opt.value ?? opt.label);
92
+ }
93
+ this.emitChange();
94
+ return;
95
+ }
96
+ const isSelected = this.value.includes(value);
97
+ if (isSelected) {
98
+ // Remove from selection
99
+ this.value = this.value.filter(v => v !== value);
100
+ this.selectedOptions = this.selectedOptions.filter(opt => (opt.value ?? opt.label) !== value);
101
+ }
102
+ else {
103
+ // Add to selection (if not at max)
104
+ if (this.maxSelections && this.value.length >= this.maxSelections) {
105
+ return; // Don't add more
106
+ }
107
+ this.value = [...this.value, value];
108
+ }
109
+ this.emitChange();
110
+ // Clear search after szelection
111
+ this.searchQuery = '';
112
+ };
113
+ this.handleDropdownOpen = () => {
114
+ this.open = true;
115
+ this.leOpen.emit();
116
+ // Focus search input if searchable
117
+ if (this.searchable) {
118
+ setTimeout(() => {
119
+ this.inputEl?.focus();
120
+ }, 50);
121
+ }
122
+ };
123
+ this.handleDropdownClose = () => {
124
+ this.open = false;
125
+ this.searchQuery = '';
126
+ this.leClose.emit();
127
+ };
128
+ this.handleTriggerClick = () => {
129
+ if (!this.disabled) {
130
+ this.dropdownEl?.toggle();
131
+ }
132
+ };
133
+ this.handleTriggerKeyDown = (e) => {
134
+ if (this.disabled)
135
+ return;
136
+ if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
137
+ e.preventDefault();
138
+ this.dropdownEl?.show();
139
+ }
140
+ };
141
+ this.handleTagDismiss = (option, e) => {
142
+ e.stopPropagation();
143
+ const value = option.value ?? option.label;
144
+ this.value = this.value.filter(v => v !== value);
145
+ this.selectedOptions = this.selectedOptions.filter(opt => opt !== option);
146
+ this.emitChange();
147
+ };
148
+ this.handleSearchInput = (e) => {
149
+ const target = e.target;
150
+ this.searchQuery = target.value;
151
+ };
152
+ this.handleClearAll = (e) => {
153
+ e.stopPropagation();
154
+ this.value = [];
155
+ this.selectedOptions = [];
156
+ this.emitChange();
157
+ };
13
158
  }
14
- get el() { return index.getElement(this); }
15
- /**
16
- * The options to display in the dropdown.
17
- */
18
- options = [];
19
- /**
20
- * The currently selected values.
21
- */
22
- value = [];
23
- /**
24
- * Placeholder text when no options are selected.
25
- */
26
- placeholder = 'Select options...';
27
- /**
28
- * Whether the multiselect is disabled.
29
- */
30
- disabled = false;
31
- /**
32
- * Whether selection is required.
33
- */
34
- required = false;
35
- /**
36
- * Name attribute for form submission.
37
- */
38
- name;
39
- /**
40
- * Whether the multiselect should take full width of its container.
41
- */
42
- fullWidth = false;
43
- /**
44
- * Size variant of the multiselect.
45
- */
46
- size = 'medium';
47
- /**
48
- * Maximum number of selections allowed.
49
- */
50
- maxSelections;
51
- /**
52
- * Labels for the "Select All" option.
53
- */
54
- selectAllLabel = 'Select All';
55
- deselectAllLabel = 'Deselect All';
56
- /**
57
- * Whether to show a "Select All" option.
58
- * Also accepts a string or array of strings to customize the label(s).
59
- */
60
- showSelectAll = false;
61
- /**
62
- * Whether the input is searchable.
63
- */
64
- searchable = false;
65
- /**
66
- * Text to show when no options match the search.
67
- */
68
- emptyText = 'No results found';
69
- /**
70
- * Whether the dropdown is currently open.
71
- */
72
- open = false;
73
- /**
74
- * Emitted when the selected values change.
75
- */
76
- leChange;
77
- /**
78
- * Emitted when the dropdown opens.
79
- */
80
- leOpen;
81
- /**
82
- * Emitted when the dropdown closes.
83
- */
84
- leClose;
85
- selectedOptions = [];
86
- searchQuery = '';
87
- dropdownEl;
88
- inputEl;
89
159
  handleValueChange() {
90
160
  this.updateSelectedOptions();
91
161
  }
@@ -158,105 +228,12 @@ const LeMultiselect = class {
158
228
  const valueArray = Array.isArray(this.value) ? this.value : [];
159
229
  this.selectedOptions = this.parsedOptions.filter(opt => valueArray.includes(opt.value ?? opt.label));
160
230
  }
161
- filterOption = (option, query) => {
162
- if (!query)
163
- return true;
164
- // Always show "Select All" option
165
- if (option.value === '__select_all__')
166
- return true;
167
- const searchLower = query.toLowerCase();
168
- return (option.label.toLowerCase().includes(searchLower) ||
169
- (option.description?.toLowerCase().includes(searchLower) ?? false));
170
- };
171
- handleOptionSelect = (e) => {
172
- const { value } = e.detail;
173
- const enabledOptions = this.parsedOptions.filter(opt => !opt.disabled);
174
- if (enabledOptions.length === 0)
175
- return;
176
- // Handle "Select All" option
177
- if (value === '__select_all__') {
178
- if (this.selectedOptions.length === enabledOptions.length) {
179
- // Deselect all
180
- this.value = [];
181
- }
182
- else {
183
- // Select all (respect maxSelections)
184
- const selectableOptions = this.maxSelections
185
- ? enabledOptions.slice(0, this.maxSelections)
186
- : enabledOptions;
187
- this.value = selectableOptions.map(opt => opt.value ?? opt.label);
188
- }
189
- this.emitChange();
190
- return;
191
- }
192
- const isSelected = this.value.includes(value);
193
- if (isSelected) {
194
- // Remove from selection
195
- this.value = this.value.filter(v => v !== value);
196
- this.selectedOptions = this.selectedOptions.filter(opt => (opt.value ?? opt.label) !== value);
197
- }
198
- else {
199
- // Add to selection (if not at max)
200
- if (this.maxSelections && this.value.length >= this.maxSelections) {
201
- return; // Don't add more
202
- }
203
- this.value = [...this.value, value];
204
- }
205
- this.emitChange();
206
- // Clear search after szelection
207
- this.searchQuery = '';
208
- };
209
231
  emitChange() {
210
232
  this.leChange.emit({
211
233
  values: this.value,
212
234
  options: this.selectedOptions,
213
235
  });
214
236
  }
215
- handleDropdownOpen = () => {
216
- this.open = true;
217
- this.leOpen.emit();
218
- // Focus search input if searchable
219
- if (this.searchable) {
220
- setTimeout(() => {
221
- this.inputEl?.focus();
222
- }, 50);
223
- }
224
- };
225
- handleDropdownClose = () => {
226
- this.open = false;
227
- this.searchQuery = '';
228
- this.leClose.emit();
229
- };
230
- handleTriggerClick = () => {
231
- if (!this.disabled) {
232
- this.dropdownEl?.toggle();
233
- }
234
- };
235
- handleTriggerKeyDown = (e) => {
236
- if (this.disabled)
237
- return;
238
- if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
239
- e.preventDefault();
240
- this.dropdownEl?.show();
241
- }
242
- };
243
- handleTagDismiss = (option, e) => {
244
- e.stopPropagation();
245
- const value = option.value ?? option.label;
246
- this.value = this.value.filter(v => v !== value);
247
- this.selectedOptions = this.selectedOptions.filter(opt => opt !== option);
248
- this.emitChange();
249
- };
250
- handleSearchInput = (e) => {
251
- const target = e.target;
252
- this.searchQuery = target.value;
253
- };
254
- handleClearAll = (e) => {
255
- e.stopPropagation();
256
- this.value = [];
257
- this.selectedOptions = [];
258
- this.emitChange();
259
- };
260
237
  /**
261
238
  * Opens the dropdown.
262
239
  */
@@ -286,14 +263,15 @@ const LeMultiselect = class {
286
263
  render() {
287
264
  const hasSelections = this.selectedOptions.length > 0;
288
265
  const atMaxSelections = this.maxSelections && this.value.length >= this.maxSelections;
289
- return (index.h("le-component", { key: 'e6183adb112775737e6a7f47b0be614a76a1c110', component: "le-multiselect" }, index.h("le-dropdown-base", { key: 'ee8ba9e02608a5c26d8a8b0a659e89e5631f3f6a', ref: el => (this.dropdownEl = el), options: this.effectiveOptions, value: this.value, multiple: true, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, emptyText: this.emptyText, showCheckboxes: true, fullWidth: this.fullWidth, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose }, index.h("div", { key: '4c87bf167dd876476dae3b0259cda2f28e3787a5', slot: "trigger", class: {
266
+ return (index.h("le-component", { key: 'b22fd0273666745ad4dcfaf5692102d4cbc1946c', component: "le-multiselect" }, index.h("le-dropdown-base", { key: 'e81736ecb7e4b50fe9d8ea19460271a705baeb80', ref: el => (this.dropdownEl = el), options: this.effectiveOptions, value: this.value, multiple: true, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, emptyText: this.emptyText, showCheckboxes: true, fullWidth: this.fullWidth, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose }, index.h("div", { key: 'cd3e45b676ee7b90c82ae0b2c18684d89bb3f3f8', slot: "trigger", class: {
290
267
  'multiselect-trigger': true,
291
268
  'has-selections': hasSelections,
292
269
  'is-open': this.open,
293
270
  'is-disabled': this.disabled,
294
- }, tabIndex: this.disabled ? -1 : 0, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.renderTags(), index.h("div", { key: 'be629671c75d408127edb480df54c6649e28ca2a', class: "multiselect-actions" }, hasSelections && !this.disabled && (index.h("button", { key: '67f4c2152e4b2f8f52b8b98093fbb238571f6105', type: "button", class: "multiselect-clear", onClick: this.handleClearAll, "aria-label": "Clear all", tabIndex: -1 }, index.h("svg", { key: '5894bfb10a310a29f21c865323b2175cde05173e', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { key: '50f7445b3627bf110a899dbba2b5f7244d706a49', d: "M4 4l8 8M12 4l-8 8" })))), index.h("span", { key: '58ef10834f74ce5b21b675b47a4c2a96df4bd173', class: "multiselect-arrow" }, index.h("svg", { key: '74a20681e12aff0295c219c8ff8f953908aa9a94', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { key: '8e48c5333f7f3035e4c4f80f7c3507e5d3d4caaa', d: "M4 6l4 4 4-4" }))))), this.searchable && this.open && (index.h("div", { key: '906f9596d6a0da2840d534570d38ea008d7cdb4b', class: "multiselect-search", slot: "header" }, index.h("le-string-input", { key: 'ccd7f1b2594be3440adb16ef5c001beaa5547396', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name &&
295
- this.value.map(val => (index.h("input", { type: "hidden", name: this.name, value: val.toString(), key: val.toString() }))), atMaxSelections && (index.h("span", { key: 'c329c06d0e00a1516c9d3323ad4a83b81a205f13', class: "multiselect-status" }, "Maximum ", this.maxSelections, " selections"))));
271
+ }, tabIndex: this.disabled ? -1 : 0, role: "combobox", "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, this.renderTags(), index.h("div", { key: 'dfcb6b8397aec56be4588421b7545ae6caae31b2', class: "multiselect-actions" }, hasSelections && !this.disabled && (index.h("button", { key: '3ddd374aa458784d7d19f52966ee4f4fa5ca93f1', type: "button", class: "multiselect-clear", onClick: this.handleClearAll, "aria-label": "Clear all", tabIndex: -1 }, index.h("svg", { key: '1687f1af7277b8489c6de841891439d5f4c77483', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { key: '864debd4e5ce7f93338bea67f24c1c43e63a4dc3', d: "M4 4l8 8M12 4l-8 8" })))), index.h("span", { key: '6d2fa2b5aaa3970068d40e4ec4db7c7809dc85cd', class: "multiselect-arrow" }, index.h("svg", { key: '2fb670f75e9d9ba726c320cfeb6b8d31dd3a6ac4', viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("path", { key: '70429d2d874f30a2a55ac57bf4d758663c048893', d: "M4 6l4 4 4-4" }))))), this.searchable && this.open && (index.h("div", { key: '1224afb258731403d9c95888b8b3b8fc0f0c1b03', class: "multiselect-search", slot: "header" }, index.h("le-string-input", { key: 'b8d592186887238ea1acbf5db8d8f9c9cca0656f', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name &&
272
+ this.value.map(val => (index.h("input", { type: "hidden", name: this.name, value: val.toString(), key: val.toString() }))), atMaxSelections && (index.h("span", { key: 'c47d74d5f40c30881e6b8bb35dafe80be85ee41a', class: "multiselect-status" }, "Maximum ", this.maxSelections, " selections"))));
296
273
  }
274
+ get el() { return index.getElement(this); }
297
275
  static get watchers() { return {
298
276
  "value": ["handleValueChange"],
299
277
  "options": ["handleOptionsChange"],
@@ -10,73 +10,94 @@ const LeNumberInput = class {
10
10
  index.registerInstance(this, hostRef);
11
11
  this.leChange = index.createEvent(this, "leChange");
12
12
  this.leInput = index.createEvent(this, "leInput");
13
+ /**
14
+ * Step value for increment/decrement
15
+ */
16
+ this.step = 1;
17
+ /**
18
+ * Whether the input is required
19
+ */
20
+ this.required = false;
21
+ /**
22
+ * Whether the input is disabled
23
+ */
24
+ this.disabled = false;
25
+ /**
26
+ * Whether the input is read-only
27
+ */
28
+ this.readonly = false;
29
+ /**
30
+ * Whether to show the spinner controls
31
+ */
32
+ this.showSpinners = true;
33
+ /**
34
+ * Internal validation state
35
+ */
36
+ this.isValid = true;
37
+ this.validationMessage = '';
38
+ this.handleInput = (ev) => {
39
+ const input = ev.target;
40
+ const val = parseFloat(input.value);
41
+ if (input.value === '') {
42
+ this.value = undefined;
43
+ }
44
+ else if (!isNaN(val)) {
45
+ this.value = val;
46
+ }
47
+ this.validate();
48
+ this.emitInput();
49
+ };
50
+ this.handleChange = () => {
51
+ this.validate();
52
+ this.emitChange();
53
+ };
54
+ this.handleKeyDown = (ev) => {
55
+ if (this.disabled || this.readonly)
56
+ return;
57
+ let multiplier = 1;
58
+ if (ev.shiftKey)
59
+ multiplier = 10;
60
+ if (ev.altKey)
61
+ multiplier = 0.1;
62
+ const current = this.value || 0;
63
+ if (ev.key === 'ArrowUp') {
64
+ ev.preventDefault();
65
+ this.updateValue(current + (this.step * multiplier));
66
+ }
67
+ else if (ev.key === 'ArrowDown') {
68
+ ev.preventDefault();
69
+ this.updateValue(current - (this.step * multiplier));
70
+ }
71
+ };
72
+ this.handleWheel = (ev) => {
73
+ if (this.disabled || this.readonly)
74
+ return;
75
+ // Only handle if input is focused to prevent accidental scrolling
76
+ if (document.activeElement !== ev.target)
77
+ return;
78
+ ev.preventDefault();
79
+ const current = this.value || 0;
80
+ if (ev.deltaY < 0) {
81
+ this.updateValue(current + this.step);
82
+ }
83
+ else {
84
+ this.updateValue(current - this.step);
85
+ }
86
+ };
87
+ this.increment = (ev) => {
88
+ ev.preventDefault(); // Prevent focus loss
89
+ const current = this.value || 0;
90
+ this.updateValue(current + this.step);
91
+ // Trigger change event for buttons as they are "final" actions usually
92
+ this.emitChange();
93
+ };
94
+ this.decrement = (ev) => {
95
+ ev.preventDefault();
96
+ const current = this.value || 0;
97
+ this.updateValue(current - this.step);
98
+ this.emitChange();
99
+ };
13
100
  }
14
- get el() { return index.getElement(this); }
15
- /**
16
- * The value of the input
17
- */
18
- value;
19
- /**
20
- * The name of the input
21
- */
22
- name;
23
- /**
24
- * Label for the input
25
- */
26
- label;
27
- /**
28
- * Placeholder text
29
- */
30
- placeholder;
31
- /**
32
- * Minimum allowed value
33
- */
34
- min;
35
- /**
36
- * Maximum allowed value
37
- */
38
- max;
39
- /**
40
- * Step value for increment/decrement
41
- */
42
- step = 1;
43
- /**
44
- * Whether the input is required
45
- */
46
- required = false;
47
- /**
48
- * Whether the input is disabled
49
- */
50
- disabled = false;
51
- /**
52
- * Whether the input is read-only
53
- */
54
- readonly = false;
55
- /**
56
- * Icon for the start icon
57
- */
58
- iconStart;
59
- /**
60
- * Whether to show the spinner controls
61
- */
62
- showSpinners = true;
63
- /**
64
- * External ID for linking with external systems
65
- */
66
- externalId;
67
- /**
68
- * Internal validation state
69
- */
70
- isValid = true;
71
- validationMessage = '';
72
- /**
73
- * Emitted when the value changes (on blur or Enter)
74
- */
75
- leChange;
76
- /**
77
- * Emitted when the input value changes (on keystroke/spin)
78
- */
79
- leInput;
80
101
  valueChanged() {
81
102
  this.validate();
82
103
  }
@@ -127,71 +148,10 @@ const LeNumberInput = class {
127
148
  this.validate();
128
149
  this.emitInput();
129
150
  }
130
- handleInput = (ev) => {
131
- const input = ev.target;
132
- const val = parseFloat(input.value);
133
- if (input.value === '') {
134
- this.value = undefined;
135
- }
136
- else if (!isNaN(val)) {
137
- this.value = val;
138
- }
139
- this.validate();
140
- this.emitInput();
141
- };
142
- handleChange = () => {
143
- this.validate();
144
- this.emitChange();
145
- };
146
- handleKeyDown = (ev) => {
147
- if (this.disabled || this.readonly)
148
- return;
149
- let multiplier = 1;
150
- if (ev.shiftKey)
151
- multiplier = 10;
152
- if (ev.altKey)
153
- multiplier = 0.1;
154
- const current = this.value || 0;
155
- if (ev.key === 'ArrowUp') {
156
- ev.preventDefault();
157
- this.updateValue(current + (this.step * multiplier));
158
- }
159
- else if (ev.key === 'ArrowDown') {
160
- ev.preventDefault();
161
- this.updateValue(current - (this.step * multiplier));
162
- }
163
- };
164
- handleWheel = (ev) => {
165
- if (this.disabled || this.readonly)
166
- return;
167
- // Only handle if input is focused to prevent accidental scrolling
168
- if (document.activeElement !== ev.target)
169
- return;
170
- ev.preventDefault();
171
- const current = this.value || 0;
172
- if (ev.deltaY < 0) {
173
- this.updateValue(current + this.step);
174
- }
175
- else {
176
- this.updateValue(current - this.step);
177
- }
178
- };
179
- increment = (ev) => {
180
- ev.preventDefault(); // Prevent focus loss
181
- const current = this.value || 0;
182
- this.updateValue(current + this.step);
183
- // Trigger change event for buttons as they are "final" actions usually
184
- this.emitChange();
185
- };
186
- decrement = (ev) => {
187
- ev.preventDefault();
188
- const current = this.value || 0;
189
- this.updateValue(current - this.step);
190
- this.emitChange();
191
- };
192
151
  render() {
193
- return (index.h("le-component", { key: '38670cabc16dd9a966a5f430e1d4d5e2fc618744', component: "le-number-input", hostClass: utils.classnames({ 'disabled': this.disabled }) }, index.h("div", { key: '473450ef637fa744c7a83416beabd87fe9540436', class: "le-input-wrapper" }, this.label && (index.h("label", { key: 'c74d4166c1925f02c743dc1250b574a679415ae8', class: "le-input-label", htmlFor: this.name }, this.label)), index.h("div", { key: '9066bfe0737700717bf902f46a6a6fa51b22a3a1', class: utils.classnames('le-input-container', { 'has-error': !this.isValid }) }, this.iconStart && (index.h("span", { key: 'dcabeda7256fc25dc8bacd4ecbd2cc2941ea02d7', class: "icon-start" }, this.iconStart)), index.h("input", { key: '85d9040a37f4f5cf5c8c403dd58a3b1e9947d21d', id: this.name, type: "number", name: this.name, placeholder: this.placeholder, min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, readOnly: this.readonly, required: this.required, onInput: this.handleInput, onChange: this.handleChange, onKeyDown: this.handleKeyDown, onWheel: this.handleWheel }), this.showSpinners && (index.h("div", { key: '9a197fc41798ff09b5618f5fb901b51ca2581d28', class: "le-input-controls" }, index.h("le-button", { key: '8befc86b373c03417ba87110d4092c8f6bf2f19c', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.increment, disabled: this.disabled || this.readonly || (this.max !== undefined && this.value >= this.max), tabindex: "-1" }, index.h("span", { key: '70b53c26b9e061cd747bd1ccaa39d14c4ac69b68', slot: "icon-only" }, "\u2191")), index.h("le-button", { key: '3f9f65048977127cc2faaf911b9db6861005e17d', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.decrement, disabled: this.disabled || this.readonly || (this.min !== undefined && this.value <= this.min), tabindex: "-1" }, index.h("span", { key: 'ecbdfd9a72b357b1daca7be54ba5188795a44929', slot: "icon-only" }, "\u2193"))))), !this.isValid && index.h("div", { key: '41b7315c03d7caba36a535375e6a4774f9ff82b9', class: "le-input-error" }, this.validationMessage), index.h("div", { key: '3eda10b4e02add4dd780f6b51b5fd9565882dba8', class: "le-input-description" }, index.h("le-slot", { key: '7f9d9e5299dde3bc2f003687830f6d26d9f234b1', name: "description", type: "text", tag: "p", label: "Description" }, index.h("slot", { key: 'a80e340b5ba3c4b84e6d684156ccdfae106d6fc0', name: "description" }))))));
152
+ return (index.h("le-component", { key: '3448b68633e7ebde8e6175f29047791c9094dc49', component: "le-number-input", hostClass: utils.classnames({ 'disabled': this.disabled }) }, index.h("div", { key: 'd941698c42e2dd9a5b2dbe60decfa9692c840c1a', class: "le-input-wrapper" }, this.label && (index.h("label", { key: 'c2b255bf365937e2233835ef6564b81f8a1872a5', class: "le-input-label", htmlFor: this.name }, this.label)), index.h("div", { key: '6090fe6737015bc1cd87ef881276975870e6797c', class: utils.classnames('le-input-container', { 'has-error': !this.isValid }) }, this.iconStart && (index.h("span", { key: 'e453aa8eb57857540b29d78c3f61ec371be6c71a', class: "icon-start" }, this.iconStart)), index.h("input", { key: '3e9d52dbfcc1bac000e0ca9663595aaac8f42d85', id: this.name, type: "number", name: this.name, placeholder: this.placeholder, min: this.min, max: this.max, step: this.step, value: this.value, disabled: this.disabled, readOnly: this.readonly, required: this.required, onInput: this.handleInput, onChange: this.handleChange, onKeyDown: this.handleKeyDown, onWheel: this.handleWheel }), this.showSpinners && (index.h("div", { key: 'dd4e42f8a9916574e61643dbe90bae50e2defb77', class: "le-input-controls" }, index.h("le-button", { key: '5aa823b516f6f71a26b5749959dec30fac2b65b3', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.increment, disabled: this.disabled || this.readonly || (this.max !== undefined && this.value >= this.max), tabindex: "-1" }, index.h("span", { key: 'c1858ce8cf23de1610ac6e957bd40ec2fe7a97ea', slot: "icon-only" }, "\u2191")), index.h("le-button", { key: '71982d4f725dc9a94144033e2b328f33699264e4', mode: "default", variant: "clear", size: "small", "icon-only": true, class: "le-input-control-btn", onClick: this.decrement, disabled: this.disabled || this.readonly || (this.min !== undefined && this.value <= this.min), tabindex: "-1" }, index.h("span", { key: '0c5225558cf4adf80e63dcfafe1bb83d80fbb7dd', slot: "icon-only" }, "\u2193"))))), !this.isValid && index.h("div", { key: 'd97bc87f564b9a23dac85b518895e7ffcbd72aa8', class: "le-input-error" }, this.validationMessage), index.h("div", { key: '257757f47a84f40c48e98672d6217ec565f37cce', class: "le-input-description" }, index.h("le-slot", { key: '89c69d0be6c3ef9975d2b2ab21f65c916067d452', name: "description", type: "text", tag: "p", label: "Description" }, index.h("slot", { key: '9dffb85d1c8e2463d05a514b1659d0ac3eee802e', name: "description" }))))));
194
153
  }
154
+ get el() { return index.getElement(this); }
195
155
  static get watchers() { return {
196
156
  "value": ["valueChanged"]
197
157
  }; }
@@ -7,27 +7,21 @@ const leRoundProgressCss = () => `.round-progress--container{position:relative}.
7
7
  const LeRoundProgress = class {
8
8
  constructor(hostRef) {
9
9
  index.registerInstance(this, hostRef);
10
+ // progress value coming from an attribute
11
+ this.value = 0;
12
+ // padding value coming from an attribute
13
+ this.padding = 0;
10
14
  }
11
- get el() { return index.getElement(this); }
12
- // progress value coming from an attribute
13
- value = 0;
14
15
  updateValue(newValue) {
15
16
  this.value = parseFloat(newValue);
16
17
  }
17
- // padding value coming from an attribute
18
- padding = 0;
19
18
  updatePadding(newValue) {
20
19
  this.padding = parseFloat(newValue);
21
20
  this.calcParams();
22
21
  }
23
- // the progress backgrounds can be as many as needed
24
- // but it should be JSON format: double quotes and strict commas
25
- paths;
26
22
  updateProgressBackgrounds(newValue) {
27
23
  this.progressPaths = JSON.parse(newValue);
28
24
  }
29
- progressPaths;
30
- params;
31
25
  /**
32
26
  * Component lifecycles
33
27
  *
@@ -92,8 +86,9 @@ const LeRoundProgress = class {
92
86
  return (index.h("svg", { viewBox: this.getViewBox(), class: "round-progress" }, paths));
93
87
  }
94
88
  render() {
95
- return (index.h("div", { key: 'dd678c7e3ff93c60f9eb6c2c09cbf1eab963ec69', class: "round-progress--container" }, this.getPaths(), index.h("svg", { key: '4a7fc03af132741d9bcddb10d94db800a51e53bc', viewBox: this.getViewBox(), class: "round-progress round-progress--progress" }, index.h("path", { key: 'd3091d22a5c5e696d0e58748f880471d99f4ac4d', class: "round-progress--circle", "stroke-dasharray": this.getStrokeDashArray(), d: this.getPath() })), index.h("slot", { key: '8dabb64461b68928e1e58c48dcaec84f504d4639' })));
89
+ return (index.h("div", { key: '5a51e57f587b1c065bc63091a4d824006ffb0547', class: "round-progress--container" }, this.getPaths(), index.h("svg", { key: '12ca2118e9f5ff3dc472f1d20a4a4d4dbd3b97c0', viewBox: this.getViewBox(), class: "round-progress round-progress--progress" }, index.h("path", { key: '7fb75f5b03fe34d4a0f9ecdba94db95ba59a7756', class: "round-progress--circle", "stroke-dasharray": this.getStrokeDashArray(), d: this.getPath() })), index.h("slot", { key: 'a855a01d4332479f6488d1e7a7760d70e29eb707' })));
96
90
  }
91
+ get el() { return index.getElement(this); }
97
92
  static get watchers() { return {
98
93
  "value": ["updateValue"],
99
94
  "padding": ["updatePadding"],