le-kit 0.1.13 → 0.1.15

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 (566) hide show
  1. package/dist/cjs/{index-o1DRKw1g.js → index-C3iQZ-Ja.js} +7 -7
  2. package/dist/cjs/index-C3iQZ-Ja.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +4 -3
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/le-box.cjs.entry.js +2 -2
  6. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.cjs.js.map +1 -0
  7. package/dist/cjs/{le-button_6.cjs.entry.js → le-button_7.cjs.entry.js} +279 -33
  8. package/dist/cjs/le-card.cjs.entry.js +2 -2
  9. package/dist/cjs/le-combobox.cjs.entry.js +237 -0
  10. package/dist/cjs/le-combobox.entry.cjs.js.map +1 -0
  11. package/dist/cjs/le-dropdown-base.cjs.entry.js +348 -0
  12. package/dist/cjs/le-dropdown-base.entry.cjs.js.map +1 -0
  13. package/dist/cjs/le-kit.cjs.js +2 -2
  14. package/dist/cjs/le-multiselect.cjs.entry.js +306 -0
  15. package/dist/cjs/le-multiselect.entry.cjs.js.map +1 -0
  16. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  17. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  18. package/dist/cjs/le-segmented-control.cjs.entry.js +245 -0
  19. package/dist/cjs/le-segmented-control.entry.cjs.js.map +1 -0
  20. package/dist/cjs/le-select.cjs.entry.js +188 -0
  21. package/dist/cjs/le-select.entry.cjs.js.map +1 -0
  22. package/dist/cjs/le-stack.cjs.entry.js +3 -3
  23. package/dist/cjs/le-tab-bar.cjs.entry.js +242 -0
  24. package/dist/cjs/le-tab-bar.entry.cjs.js.map +1 -0
  25. package/dist/cjs/le-tab-panel.cjs.entry.js +100 -0
  26. package/dist/cjs/le-tab-panel.entry.cjs.js.map +1 -0
  27. package/dist/cjs/le-tab.cjs.entry.js +133 -0
  28. package/dist/cjs/le-tab.entry.cjs.js.map +1 -0
  29. package/dist/cjs/le-tabs.cjs.entry.js +307 -0
  30. package/dist/cjs/le-tabs.entry.cjs.js.map +1 -0
  31. package/dist/cjs/le-tag.cjs.entry.js +68 -0
  32. package/dist/cjs/le-tag.entry.cjs.js.map +1 -0
  33. package/dist/cjs/le-text.cjs.entry.js +2 -2
  34. package/dist/cjs/le-turntable.cjs.entry.js +2 -2
  35. package/dist/cjs/loader.cjs.js +2 -2
  36. package/dist/cjs/{utils-DqhadIxH.js → utils-DjPcLPN9.js} +3 -3
  37. package/dist/cjs/{utils-DqhadIxH.js.map → utils-DjPcLPN9.js.map} +1 -1
  38. package/dist/collection/collection-manifest.json +10 -0
  39. package/dist/collection/components/le-button/{le-button.default.css → le-button.css} +57 -30
  40. package/dist/collection/components/le-button/le-button.js +105 -15
  41. package/dist/collection/components/le-button/le-button.js.map +1 -1
  42. package/dist/collection/components/le-combobox/le-combobox.css +144 -0
  43. package/dist/collection/components/le-combobox/le-combobox.js +659 -0
  44. package/dist/collection/components/le-combobox/le-combobox.js.map +1 -0
  45. package/dist/collection/components/le-component/le-component.js +7 -6
  46. package/dist/collection/components/le-component/le-component.js.map +1 -1
  47. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +163 -0
  48. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +761 -0
  49. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -0
  50. package/dist/collection/components/le-multiselect/le-multiselect.css +163 -0
  51. package/dist/collection/components/le-multiselect/le-multiselect.js +734 -0
  52. package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -0
  53. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  54. package/dist/collection/components/le-popover/le-popover.css +10 -0
  55. package/dist/collection/components/le-popover/le-popover.js +61 -10
  56. package/dist/collection/components/le-popover/le-popover.js.map +1 -1
  57. package/dist/collection/components/le-popup/le-popup.api.js +2 -1
  58. package/dist/collection/components/le-popup/le-popup.api.js.map +1 -1
  59. package/dist/collection/components/le-popup/le-popup.js +42 -12
  60. package/dist/collection/components/le-popup/le-popup.js.map +1 -1
  61. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  62. package/dist/collection/components/le-segmented-control/le-segmented-control.css +78 -0
  63. package/dist/collection/components/le-segmented-control/le-segmented-control.js +445 -0
  64. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -0
  65. package/dist/collection/components/le-select/le-select.css +121 -0
  66. package/dist/collection/components/le-select/le-select.js +578 -0
  67. package/dist/collection/components/le-select/le-select.js.map +1 -0
  68. package/dist/collection/components/le-slot/le-slot.js +4 -6
  69. package/dist/collection/components/le-slot/le-slot.js.map +1 -1
  70. package/dist/collection/components/le-stack/le-stack.js +1 -1
  71. package/dist/collection/components/le-string-input/le-string-input.js +59 -5
  72. package/dist/collection/components/le-string-input/le-string-input.js.map +1 -1
  73. package/dist/collection/components/le-tab/le-tab.css +289 -0
  74. package/dist/collection/components/le-tab/le-tab.js +565 -0
  75. package/dist/collection/components/le-tab/le-tab.js.map +1 -0
  76. package/dist/collection/components/le-tab-bar/le-tab-bar.css +89 -0
  77. package/dist/collection/components/le-tab-bar/le-tab-bar.js +467 -0
  78. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -0
  79. package/dist/collection/components/le-tab-panel/le-tab-panel.css +30 -0
  80. package/dist/collection/components/le-tab-panel/le-tab-panel.js +302 -0
  81. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -0
  82. package/dist/collection/components/le-tabs/le-tabs.css +146 -0
  83. package/dist/collection/components/le-tabs/le-tabs.js +588 -0
  84. package/dist/collection/components/le-tabs/le-tabs.js.map +1 -0
  85. package/dist/collection/components/le-tag/le-tag.css +139 -0
  86. package/dist/collection/components/le-tag/le-tag.js +266 -0
  87. package/dist/collection/components/le-tag/le-tag.js.map +1 -0
  88. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  89. package/dist/collection/dist/components/assets/.gitkeep +1 -0
  90. package/{custom-elements.json → dist/collection/dist/components/assets/custom-elements.json} +5274 -1409
  91. package/dist/{core/collection → collection/dist/components}/themes/base.css +44 -0
  92. package/dist/{core/collection → collection/dist/components}/themes/dark.css +4 -1
  93. package/dist/collection/{themes → dist/components/themes}/default.css +4 -1
  94. package/dist/collection/dist/{collection → components}/themes/gradient.css +4 -1
  95. package/dist/{core/collection → collection/dist/components}/themes/index.css +2 -0
  96. package/dist/collection/{themes → dist/components/themes}/minimal.css +4 -1
  97. package/dist/{core/collection → collection/dist/components}/themes/warm.css +4 -1
  98. package/dist/collection/global/app.js +4 -4
  99. package/dist/collection/global/app.js.map +1 -1
  100. package/dist/collection/types/options.js.map +1 -1
  101. package/dist/components/assets/.gitkeep +1 -0
  102. package/dist/{collection → components}/assets/custom-elements.json +5202 -1337
  103. package/dist/components/index.js +1 -103
  104. package/dist/components/index.js.map +1 -1
  105. package/dist/components/le-box.js +11 -6
  106. package/dist/components/le-box.js.map +1 -1
  107. package/dist/components/le-button.js +1 -1
  108. package/dist/components/le-button2.js +378 -45
  109. package/dist/components/le-button2.js.map +1 -1
  110. package/dist/components/le-card.js +11 -6
  111. package/dist/components/le-card.js.map +1 -1
  112. package/dist/components/le-checkbox.js +1 -1
  113. package/dist/components/le-combobox.d.ts +11 -0
  114. package/dist/components/le-combobox.js +321 -0
  115. package/dist/components/le-combobox.js.map +1 -0
  116. package/dist/components/le-component.js +1 -1
  117. package/dist/components/le-dropdown-base.d.ts +11 -0
  118. package/dist/components/le-dropdown-base.js +9 -0
  119. package/dist/components/le-dropdown-base.js.map +1 -0
  120. package/dist/components/le-dropdown-base2.js +393 -0
  121. package/dist/components/le-dropdown-base2.js.map +1 -0
  122. package/dist/components/le-multiselect.d.ts +11 -0
  123. package/dist/components/le-multiselect.js +400 -0
  124. package/dist/components/le-multiselect.js.map +1 -0
  125. package/dist/components/le-number-input.js +12 -7
  126. package/dist/components/le-number-input.js.map +1 -1
  127. package/dist/components/le-popover2.js +24 -11
  128. package/dist/components/le-popover2.js.map +1 -1
  129. package/dist/{core/collection/components/le-popup → components}/le-popup.api.js +9 -4
  130. package/dist/components/le-popup.api.js.map +1 -0
  131. package/dist/components/le-popup.js +1 -271
  132. package/dist/components/le-popup.js.map +1 -1
  133. package/dist/components/le-round-progress.js +1 -1
  134. package/dist/components/le-segmented-control.d.ts +11 -0
  135. package/dist/components/le-segmented-control.js +320 -0
  136. package/dist/components/le-segmented-control.js.map +1 -0
  137. package/dist/components/le-select.d.ts +11 -0
  138. package/dist/components/le-select.js +271 -0
  139. package/dist/components/le-select.js.map +1 -0
  140. package/dist/components/le-slot.js +1 -1
  141. package/dist/components/le-stack.js +12 -7
  142. package/dist/components/le-stack.js.map +1 -1
  143. package/dist/components/le-string-input.js +1 -1
  144. package/dist/components/le-tab-bar.d.ts +11 -0
  145. package/dist/components/le-tab-bar.js +319 -0
  146. package/dist/components/le-tab-bar.js.map +1 -0
  147. package/dist/components/le-tab-panel.d.ts +11 -0
  148. package/dist/components/le-tab-panel.js +171 -0
  149. package/dist/components/le-tab-panel.js.map +1 -0
  150. package/dist/components/le-tab.d.ts +11 -0
  151. package/dist/components/le-tab.js +9 -0
  152. package/dist/components/le-tab.js.map +1 -0
  153. package/dist/components/le-tab2.js +206 -0
  154. package/dist/components/le-tab2.js.map +1 -0
  155. package/dist/components/le-tabs.d.ts +11 -0
  156. package/dist/components/le-tabs.js +386 -0
  157. package/dist/components/le-tabs.js.map +1 -0
  158. package/dist/components/le-tag.d.ts +11 -0
  159. package/dist/components/le-tag.js +9 -0
  160. package/dist/components/le-tag.js.map +1 -0
  161. package/dist/components/le-tag2.js +130 -0
  162. package/dist/components/le-tag2.js.map +1 -0
  163. package/dist/components/le-text.js +11 -6
  164. package/dist/components/le-text.js.map +1 -1
  165. package/dist/components/le-turntable.js +1 -1
  166. package/dist/{le-kit/dist/collection → components}/themes/base.css +44 -0
  167. package/dist/{collection → components}/themes/dark.css +4 -1
  168. package/dist/{core/collection → components}/themes/default.css +4 -1
  169. package/dist/{core/collection → components}/themes/gradient.css +4 -1
  170. package/dist/{le-kit/dist/collection → components}/themes/index.css +2 -0
  171. package/dist/{collection/dist/collection → components}/themes/minimal.css +4 -1
  172. package/dist/{le-kit/dist/collection → components}/themes/warm.css +4 -1
  173. package/dist/components/utils.js +4 -4
  174. package/dist/components/utils.js.map +1 -1
  175. package/dist/docs.json +6674 -1371
  176. package/dist/esm/{index-CwNQ1GTa.js → index-DzgCnDLJ.js} +8 -8
  177. package/dist/esm/index-DzgCnDLJ.js.map +1 -0
  178. package/dist/esm/index.js +4 -3
  179. package/dist/esm/index.js.map +1 -1
  180. package/dist/esm/le-box.entry.js +2 -2
  181. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.js.map +1 -0
  182. package/dist/esm/{le-button_6.entry.js → le-button_7.entry.js} +279 -34
  183. package/dist/esm/le-card.entry.js +2 -2
  184. package/dist/esm/le-combobox.entry.js +235 -0
  185. package/dist/esm/le-combobox.entry.js.map +1 -0
  186. package/dist/esm/le-dropdown-base.entry.js +346 -0
  187. package/dist/esm/le-dropdown-base.entry.js.map +1 -0
  188. package/dist/esm/le-kit.js +3 -3
  189. package/dist/esm/le-multiselect.entry.js +304 -0
  190. package/dist/esm/le-multiselect.entry.js.map +1 -0
  191. package/dist/esm/le-number-input.entry.js +3 -3
  192. package/dist/esm/le-round-progress.entry.js +2 -2
  193. package/dist/esm/le-segmented-control.entry.js +243 -0
  194. package/dist/esm/le-segmented-control.entry.js.map +1 -0
  195. package/dist/esm/le-select.entry.js +186 -0
  196. package/dist/esm/le-select.entry.js.map +1 -0
  197. package/dist/esm/le-stack.entry.js +3 -3
  198. package/dist/esm/le-tab-bar.entry.js +240 -0
  199. package/dist/esm/le-tab-bar.entry.js.map +1 -0
  200. package/dist/esm/le-tab-panel.entry.js +98 -0
  201. package/dist/esm/le-tab-panel.entry.js.map +1 -0
  202. package/dist/esm/le-tab.entry.js +131 -0
  203. package/dist/esm/le-tab.entry.js.map +1 -0
  204. package/dist/esm/le-tabs.entry.js +305 -0
  205. package/dist/esm/le-tabs.entry.js.map +1 -0
  206. package/dist/esm/le-tag.entry.js +66 -0
  207. package/dist/esm/le-tag.entry.js.map +1 -0
  208. package/dist/esm/le-text.entry.js +2 -2
  209. package/dist/esm/le-turntable.entry.js +2 -2
  210. package/dist/esm/loader.js +3 -3
  211. package/dist/esm/{utils-Cf7fMI0j.js → utils-Dp5xFMCl.js} +3 -3
  212. package/dist/esm/{utils-Cf7fMI0j.js.map → utils-Dp5xFMCl.js.map} +1 -1
  213. package/dist/le-kit/dist/components/assets/.gitkeep +1 -0
  214. package/dist/{core/collection → le-kit/dist/components}/assets/custom-elements.json +5202 -1337
  215. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/base.css +44 -0
  216. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/dark.css +4 -1
  217. package/dist/le-kit/dist/{collection → components}/themes/default.css +4 -1
  218. package/dist/le-kit/dist/{collection → components}/themes/gradient.css +4 -1
  219. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/index.css +2 -0
  220. package/dist/{core/collection → le-kit/dist/components}/themes/minimal.css +4 -1
  221. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/warm.css +4 -1
  222. package/dist/le-kit/index.esm.js +1 -1
  223. package/dist/le-kit/index.esm.js.map +1 -1
  224. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.esm.js.map +1 -0
  225. package/dist/le-kit/le-combobox.entry.esm.js.map +1 -0
  226. package/dist/le-kit/le-dropdown-base.entry.esm.js.map +1 -0
  227. package/dist/le-kit/le-kit.css +1 -1
  228. package/dist/le-kit/le-kit.esm.js +1 -1
  229. package/dist/le-kit/le-multiselect.entry.esm.js.map +1 -0
  230. package/dist/le-kit/le-segmented-control.entry.esm.js.map +1 -0
  231. package/dist/le-kit/le-select.entry.esm.js.map +1 -0
  232. package/dist/le-kit/le-tab-bar.entry.esm.js.map +1 -0
  233. package/dist/le-kit/le-tab-panel.entry.esm.js.map +1 -0
  234. package/dist/le-kit/le-tab.entry.esm.js.map +1 -0
  235. package/dist/le-kit/le-tabs.entry.esm.js.map +1 -0
  236. package/dist/le-kit/le-tag.entry.esm.js.map +1 -0
  237. package/dist/{core/le-kit/p-df552906.entry.js → le-kit/p-0bd7803f.entry.js} +2 -2
  238. package/dist/le-kit/p-0bd7803f.entry.js.map +1 -0
  239. package/dist/le-kit/p-1f55a4a2.entry.js +2 -0
  240. package/dist/le-kit/p-1f55a4a2.entry.js.map +1 -0
  241. package/dist/le-kit/{p-79ec6f7c.entry.js → p-2c37f174.entry.js} +2 -2
  242. package/dist/le-kit/p-2c37f174.entry.js.map +1 -0
  243. package/dist/{core/le-kit/p-5ef81068.entry.js → le-kit/p-33612923.entry.js} +2 -2
  244. package/dist/le-kit/p-33612923.entry.js.map +1 -0
  245. package/dist/le-kit/{p-b8122ad6.entry.js → p-3a52c4de.entry.js} +2 -2
  246. package/dist/le-kit/p-3a52c4de.entry.js.map +1 -0
  247. package/dist/le-kit/p-4130c60b.entry.js +2 -0
  248. package/dist/le-kit/p-4130c60b.entry.js.map +1 -0
  249. package/dist/le-kit/{p-64374730.entry.js → p-432e8231.entry.js} +2 -2
  250. package/dist/le-kit/p-432e8231.entry.js.map +1 -0
  251. package/dist/le-kit/p-548d130b.entry.js +2 -0
  252. package/dist/le-kit/p-548d130b.entry.js.map +1 -0
  253. package/dist/le-kit/p-6ecdad85.entry.js +2 -0
  254. package/dist/le-kit/p-6ecdad85.entry.js.map +1 -0
  255. package/dist/le-kit/p-6ee06c44.entry.js +2 -0
  256. package/dist/le-kit/p-6ee06c44.entry.js.map +1 -0
  257. package/dist/le-kit/p-71c78784.entry.js +2 -0
  258. package/dist/le-kit/p-71c78784.entry.js.map +1 -0
  259. package/dist/le-kit/p-7b180d58.entry.js +2 -0
  260. package/dist/le-kit/p-7b180d58.entry.js.map +1 -0
  261. package/dist/le-kit/p-91993261.entry.js +2 -0
  262. package/dist/le-kit/p-91993261.entry.js.map +1 -0
  263. package/dist/le-kit/p-DaA5gINj.js +2 -0
  264. package/dist/le-kit/{p-y3FECAx9.js.map → p-DaA5gINj.js.map} +1 -1
  265. package/dist/le-kit/p-DzgCnDLJ.js +3 -0
  266. package/dist/le-kit/p-DzgCnDLJ.js.map +1 -0
  267. package/dist/le-kit/p-a5d31d40.entry.js +2 -0
  268. package/dist/le-kit/p-a5d31d40.entry.js.map +1 -0
  269. package/dist/le-kit/{p-ad398acd.entry.js → p-b66fd9e1.entry.js} +2 -2
  270. package/dist/le-kit/p-b66fd9e1.entry.js.map +1 -0
  271. package/dist/le-kit/{p-f9008505.entry.js → p-beb87e61.entry.js} +2 -2
  272. package/dist/le-kit/p-beb87e61.entry.js.map +1 -0
  273. package/dist/le-kit/p-cc0797b0.entry.js +2 -0
  274. package/dist/le-kit/p-cc0797b0.entry.js.map +1 -0
  275. package/dist/le-kit/p-d504a369.entry.js +2 -0
  276. package/dist/le-kit/p-d504a369.entry.js.map +1 -0
  277. package/dist/themes/base.css +44 -0
  278. package/dist/themes/dark.css +4 -1
  279. package/dist/themes/default.css +4 -1
  280. package/dist/themes/gradient.css +4 -1
  281. package/dist/themes/index.css +2 -0
  282. package/dist/themes/minimal.css +4 -1
  283. package/dist/themes/warm.css +4 -1
  284. package/dist/types/components/le-button/le-button.d.ts +19 -4
  285. package/dist/types/components/le-combobox/le-combobox.d.ts +128 -0
  286. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +118 -0
  287. package/dist/types/components/le-multiselect/le-multiselect.d.ts +143 -0
  288. package/dist/types/components/le-popover/le-popover.d.ts +13 -2
  289. package/dist/types/components/le-popup/le-popup.d.ts +5 -0
  290. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +82 -0
  291. package/dist/types/components/le-select/le-select.d.ts +125 -0
  292. package/dist/types/components/le-string-input/le-string-input.d.ts +8 -0
  293. package/dist/types/components/le-tab/le-tab.d.ts +116 -0
  294. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +88 -0
  295. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +75 -0
  296. package/dist/types/components/le-tabs/le-tabs.d.ts +108 -0
  297. package/dist/types/components/le-tag/le-tag.d.ts +78 -0
  298. package/dist/types/components.d.ts +2310 -40
  299. package/dist/types/global/app.d.ts +4 -4
  300. package/dist/types/types/options.d.ts +9 -0
  301. package/package.json +5 -21
  302. package/readme.md +2 -2
  303. package/dist/cjs/index-o1DRKw1g.js.map +0 -1
  304. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.cjs.js.map +0 -1
  305. package/dist/cjs/le-popup.cjs.entry.js +0 -212
  306. package/dist/cjs/le-popup.entry.cjs.js.map +0 -1
  307. package/dist/collection/dist/collection/themes/default.css +0 -108
  308. package/dist/collection/themes/base.css +0 -89
  309. package/dist/collection/themes/gradient.css +0 -100
  310. package/dist/collection/themes/index.css +0 -413
  311. package/dist/collection/themes/warm.css +0 -100
  312. package/dist/core/cjs/index-BsRb_UTe.js +0 -1835
  313. package/dist/core/cjs/index-BsRb_UTe.js.map +0 -1
  314. package/dist/core/cjs/index.cjs.js +0 -119
  315. package/dist/core/cjs/index.cjs.js.map +0 -1
  316. package/dist/core/cjs/le-box.cjs.entry.js +0 -184
  317. package/dist/core/cjs/le-box.entry.cjs.js.map +0 -1
  318. package/dist/core/cjs/le-button.cjs.entry.js +0 -92
  319. package/dist/core/cjs/le-button.entry.cjs.js.map +0 -1
  320. package/dist/core/cjs/le-card.cjs.entry.js +0 -29
  321. package/dist/core/cjs/le-card.entry.cjs.js.map +0 -1
  322. package/dist/core/cjs/le-checkbox.cjs.entry.js +0 -61
  323. package/dist/core/cjs/le-checkbox.entry.cjs.js.map +0 -1
  324. package/dist/core/cjs/le-kit.cjs.js +0 -25
  325. package/dist/core/cjs/le-kit.cjs.js.map +0 -1
  326. package/dist/core/cjs/le-number-input.cjs.entry.js +0 -202
  327. package/dist/core/cjs/le-number-input.entry.cjs.js.map +0 -1
  328. package/dist/core/cjs/le-popover.cjs.entry.js +0 -348
  329. package/dist/core/cjs/le-popover.entry.cjs.js.map +0 -1
  330. package/dist/core/cjs/le-popup.cjs.entry.js +0 -212
  331. package/dist/core/cjs/le-popup.entry.cjs.js.map +0 -1
  332. package/dist/core/cjs/le-round-progress.cjs.entry.js +0 -106
  333. package/dist/core/cjs/le-round-progress.entry.cjs.js.map +0 -1
  334. package/dist/core/cjs/le-stack.cjs.entry.js +0 -135
  335. package/dist/core/cjs/le-stack.entry.cjs.js.map +0 -1
  336. package/dist/core/cjs/le-string-input.cjs.entry.js +0 -95
  337. package/dist/core/cjs/le-string-input.entry.cjs.js.map +0 -1
  338. package/dist/core/cjs/le-text.cjs.entry.js +0 -335
  339. package/dist/core/cjs/le-text.entry.cjs.js.map +0 -1
  340. package/dist/core/cjs/le-turntable.cjs.entry.js +0 -139
  341. package/dist/core/cjs/le-turntable.entry.cjs.js.map +0 -1
  342. package/dist/core/cjs/loader.cjs.js +0 -13
  343. package/dist/core/cjs/loader.cjs.js.map +0 -1
  344. package/dist/core/cjs/utils-nsP8_w8_.js +0 -152
  345. package/dist/core/cjs/utils-nsP8_w8_.js.map +0 -1
  346. package/dist/core/collection/collection-manifest.json +0 -24
  347. package/dist/core/collection/components/le-box/le-box.default.css +0 -37
  348. package/dist/core/collection/components/le-box/le-box.js +0 -614
  349. package/dist/core/collection/components/le-box/le-box.js.map +0 -1
  350. package/dist/core/collection/components/le-button/le-button.default.css +0 -263
  351. package/dist/core/collection/components/le-button/le-button.js +0 -368
  352. package/dist/core/collection/components/le-button/le-button.js.map +0 -1
  353. package/dist/core/collection/components/le-card/le-card.default.css +0 -74
  354. package/dist/core/collection/components/le-card/le-card.js +0 -102
  355. package/dist/core/collection/components/le-card/le-card.js.map +0 -1
  356. package/dist/core/collection/components/le-checkbox/le-checkbox.css +0 -93
  357. package/dist/core/collection/components/le-checkbox/le-checkbox.js +0 -192
  358. package/dist/core/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  359. package/dist/core/collection/components/le-number-input/le-number-input.css +0 -135
  360. package/dist/core/collection/components/le-number-input/le-number-input.js +0 -515
  361. package/dist/core/collection/components/le-number-input/le-number-input.js.map +0 -1
  362. package/dist/core/collection/components/le-popover/le-popover.css +0 -143
  363. package/dist/core/collection/components/le-popover/le-popover.js +0 -693
  364. package/dist/core/collection/components/le-popover/le-popover.js.map +0 -1
  365. package/dist/core/collection/components/le-popup/le-popup.api.js.map +0 -1
  366. package/dist/core/collection/components/le-popup/le-popup.css +0 -222
  367. package/dist/core/collection/components/le-popup/le-popup.js +0 -596
  368. package/dist/core/collection/components/le-popup/le-popup.js.map +0 -1
  369. package/dist/core/collection/components/le-round-progress/le-round-progress.css +0 -34
  370. package/dist/core/collection/components/le-round-progress/le-round-progress.js +0 -184
  371. package/dist/core/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  372. package/dist/core/collection/components/le-stack/le-stack.default.css +0 -37
  373. package/dist/core/collection/components/le-stack/le-stack.js +0 -389
  374. package/dist/core/collection/components/le-stack/le-stack.js.map +0 -1
  375. package/dist/core/collection/components/le-string-input/le-string-input.css +0 -83
  376. package/dist/core/collection/components/le-string-input/le-string-input.js +0 -359
  377. package/dist/core/collection/components/le-string-input/le-string-input.js.map +0 -1
  378. package/dist/core/collection/components/le-text/le-text.default.css +0 -169
  379. package/dist/core/collection/components/le-text/le-text.js +0 -475
  380. package/dist/core/collection/components/le-text/le-text.js.map +0 -1
  381. package/dist/core/collection/components/le-turntable/le-turntable.css +0 -10
  382. package/dist/core/collection/components/le-turntable/le-turntable.js +0 -210
  383. package/dist/core/collection/components/le-turntable/le-turntable.js.map +0 -1
  384. package/dist/core/collection/global/app.js +0 -167
  385. package/dist/core/collection/global/app.js.map +0 -1
  386. package/dist/core/collection/index.js +0 -15
  387. package/dist/core/collection/index.js.map +0 -1
  388. package/dist/core/collection/types/blocks.js +0 -115
  389. package/dist/core/collection/types/blocks.js.map +0 -1
  390. package/dist/core/collection/types/options.js +0 -2
  391. package/dist/core/collection/types/options.js.map +0 -1
  392. package/dist/core/collection/utils/utils.js +0 -141
  393. package/dist/core/collection/utils/utils.js.map +0 -1
  394. package/dist/core/components/index.d.ts +0 -33
  395. package/dist/core/components/index.js +0 -113
  396. package/dist/core/components/index.js.map +0 -1
  397. package/dist/core/components/le-box.d.ts +0 -11
  398. package/dist/core/components/le-box.js +0 -225
  399. package/dist/core/components/le-box.js.map +0 -1
  400. package/dist/core/components/le-button.d.ts +0 -11
  401. package/dist/core/components/le-button.js +0 -9
  402. package/dist/core/components/le-button.js.map +0 -1
  403. package/dist/core/components/le-button2.js +0 -121
  404. package/dist/core/components/le-button2.js.map +0 -1
  405. package/dist/core/components/le-card.d.ts +0 -11
  406. package/dist/core/components/le-card.js +0 -52
  407. package/dist/core/components/le-card.js.map +0 -1
  408. package/dist/core/components/le-checkbox.d.ts +0 -11
  409. package/dist/core/components/le-checkbox.js +0 -87
  410. package/dist/core/components/le-checkbox.js.map +0 -1
  411. package/dist/core/components/le-number-input.d.ts +0 -11
  412. package/dist/core/components/le-number-input.js +0 -246
  413. package/dist/core/components/le-number-input.js.map +0 -1
  414. package/dist/core/components/le-popover.d.ts +0 -11
  415. package/dist/core/components/le-popover.js +0 -385
  416. package/dist/core/components/le-popover.js.map +0 -1
  417. package/dist/core/components/le-popup.d.ts +0 -11
  418. package/dist/core/components/le-popup.js +0 -253
  419. package/dist/core/components/le-popup.js.map +0 -1
  420. package/dist/core/components/le-round-progress.d.ts +0 -11
  421. package/dist/core/components/le-round-progress.js +0 -135
  422. package/dist/core/components/le-round-progress.js.map +0 -1
  423. package/dist/core/components/le-stack.d.ts +0 -11
  424. package/dist/core/components/le-stack.js +0 -167
  425. package/dist/core/components/le-stack.js.map +0 -1
  426. package/dist/core/components/le-string-input.d.ts +0 -11
  427. package/dist/core/components/le-string-input.js +0 -127
  428. package/dist/core/components/le-string-input.js.map +0 -1
  429. package/dist/core/components/le-text.d.ts +0 -11
  430. package/dist/core/components/le-text.js +0 -367
  431. package/dist/core/components/le-text.js.map +0 -1
  432. package/dist/core/components/le-turntable.d.ts +0 -11
  433. package/dist/core/components/le-turntable.js +0 -164
  434. package/dist/core/components/le-turntable.js.map +0 -1
  435. package/dist/core/components/utils.js +0 -310
  436. package/dist/core/components/utils.js.map +0 -1
  437. package/dist/core/esm/index-CJ-z5Zj1.js +0 -1818
  438. package/dist/core/esm/index-CJ-z5Zj1.js.map +0 -1
  439. package/dist/core/esm/index.js +0 -106
  440. package/dist/core/esm/index.js.map +0 -1
  441. package/dist/core/esm/le-box.entry.js +0 -182
  442. package/dist/core/esm/le-box.entry.js.map +0 -1
  443. package/dist/core/esm/le-button.entry.js +0 -90
  444. package/dist/core/esm/le-button.entry.js.map +0 -1
  445. package/dist/core/esm/le-card.entry.js +0 -27
  446. package/dist/core/esm/le-card.entry.js.map +0 -1
  447. package/dist/core/esm/le-checkbox.entry.js +0 -59
  448. package/dist/core/esm/le-checkbox.entry.js.map +0 -1
  449. package/dist/core/esm/le-kit.js +0 -21
  450. package/dist/core/esm/le-kit.js.map +0 -1
  451. package/dist/core/esm/le-number-input.entry.js +0 -200
  452. package/dist/core/esm/le-number-input.entry.js.map +0 -1
  453. package/dist/core/esm/le-popover.entry.js +0 -346
  454. package/dist/core/esm/le-popover.entry.js.map +0 -1
  455. package/dist/core/esm/le-popup.entry.js +0 -210
  456. package/dist/core/esm/le-popup.entry.js.map +0 -1
  457. package/dist/core/esm/le-round-progress.entry.js +0 -104
  458. package/dist/core/esm/le-round-progress.entry.js.map +0 -1
  459. package/dist/core/esm/le-stack.entry.js +0 -133
  460. package/dist/core/esm/le-stack.entry.js.map +0 -1
  461. package/dist/core/esm/le-string-input.entry.js +0 -93
  462. package/dist/core/esm/le-string-input.entry.js.map +0 -1
  463. package/dist/core/esm/le-text.entry.js +0 -333
  464. package/dist/core/esm/le-text.entry.js.map +0 -1
  465. package/dist/core/esm/le-turntable.entry.js +0 -137
  466. package/dist/core/esm/le-turntable.entry.js.map +0 -1
  467. package/dist/core/esm/loader.js +0 -11
  468. package/dist/core/esm/loader.js.map +0 -1
  469. package/dist/core/esm/utils-Bxmld82M.js +0 -146
  470. package/dist/core/esm/utils-Bxmld82M.js.map +0 -1
  471. package/dist/core/index.cjs.js +0 -1
  472. package/dist/core/index.js +0 -1
  473. package/dist/core/le-kit/index.esm.js +0 -2
  474. package/dist/core/le-kit/index.esm.js.map +0 -1
  475. package/dist/core/le-kit/le-box.entry.esm.js.map +0 -1
  476. package/dist/core/le-kit/le-button.entry.esm.js.map +0 -1
  477. package/dist/core/le-kit/le-card.entry.esm.js.map +0 -1
  478. package/dist/core/le-kit/le-checkbox.entry.esm.js.map +0 -1
  479. package/dist/core/le-kit/le-kit.css +0 -1
  480. package/dist/core/le-kit/le-kit.esm.js +0 -2
  481. package/dist/core/le-kit/le-kit.esm.js.map +0 -1
  482. package/dist/core/le-kit/le-number-input.entry.esm.js.map +0 -1
  483. package/dist/core/le-kit/le-popover.entry.esm.js.map +0 -1
  484. package/dist/core/le-kit/le-popup.entry.esm.js.map +0 -1
  485. package/dist/core/le-kit/le-round-progress.entry.esm.js.map +0 -1
  486. package/dist/core/le-kit/le-stack.entry.esm.js.map +0 -1
  487. package/dist/core/le-kit/le-string-input.entry.esm.js.map +0 -1
  488. package/dist/core/le-kit/le-text.entry.esm.js.map +0 -1
  489. package/dist/core/le-kit/le-turntable.entry.esm.js.map +0 -1
  490. package/dist/core/le-kit/loader.esm.js.map +0 -1
  491. package/dist/core/le-kit/p-0308bd1f.entry.js +0 -2
  492. package/dist/core/le-kit/p-0308bd1f.entry.js.map +0 -1
  493. package/dist/core/le-kit/p-257495cc.entry.js +0 -2
  494. package/dist/core/le-kit/p-257495cc.entry.js.map +0 -1
  495. package/dist/core/le-kit/p-2ac4789a.entry.js +0 -2
  496. package/dist/core/le-kit/p-2ac4789a.entry.js.map +0 -1
  497. package/dist/core/le-kit/p-45eace7c.entry.js +0 -2
  498. package/dist/core/le-kit/p-45eace7c.entry.js.map +0 -1
  499. package/dist/core/le-kit/p-556086ca.entry.js +0 -2
  500. package/dist/core/le-kit/p-556086ca.entry.js.map +0 -1
  501. package/dist/core/le-kit/p-5ef81068.entry.js.map +0 -1
  502. package/dist/core/le-kit/p-66d35f48.entry.js +0 -2
  503. package/dist/core/le-kit/p-66d35f48.entry.js.map +0 -1
  504. package/dist/core/le-kit/p-73682c5e.entry.js +0 -2
  505. package/dist/core/le-kit/p-73682c5e.entry.js.map +0 -1
  506. package/dist/core/le-kit/p-CJ-z5Zj1.js +0 -3
  507. package/dist/core/le-kit/p-CJ-z5Zj1.js.map +0 -1
  508. package/dist/core/le-kit/p-Drz36PDp.js +0 -2
  509. package/dist/core/le-kit/p-Drz36PDp.js.map +0 -1
  510. package/dist/core/le-kit/p-aa6e906f.entry.js +0 -2
  511. package/dist/core/le-kit/p-aa6e906f.entry.js.map +0 -1
  512. package/dist/core/le-kit/p-d75214f9.entry.js +0 -2
  513. package/dist/core/le-kit/p-d75214f9.entry.js.map +0 -1
  514. package/dist/core/le-kit/p-df552906.entry.js.map +0 -1
  515. package/dist/core/le-kit/p-e0861e82.entry.js +0 -2
  516. package/dist/core/le-kit/p-e0861e82.entry.js.map +0 -1
  517. package/dist/core/loader/cdn.js +0 -1
  518. package/dist/core/loader/index.cjs.js +0 -1
  519. package/dist/core/loader/index.d.ts +0 -24
  520. package/dist/core/loader/index.es2017.js +0 -1
  521. package/dist/core/loader/index.js +0 -2
  522. package/dist/core/types/components/le-box/le-box.d.ts +0 -111
  523. package/dist/core/types/components/le-button/le-button.d.ts +0 -78
  524. package/dist/core/types/components/le-card/le-card.d.ts +0 -37
  525. package/dist/core/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  526. package/dist/core/types/components/le-number-input/le-number-input.d.ts +0 -106
  527. package/dist/core/types/components/le-popover/le-popover.d.ts +0 -109
  528. package/dist/core/types/components/le-popup/le-popup.api.d.ts +0 -73
  529. package/dist/core/types/components/le-popup/le-popup.d.ts +0 -122
  530. package/dist/core/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  531. package/dist/core/types/components/le-stack/le-stack.d.ts +0 -73
  532. package/dist/core/types/components/le-string-input/le-string-input.d.ts +0 -83
  533. package/dist/core/types/components/le-text/le-text.d.ts +0 -141
  534. package/dist/core/types/components/le-turntable/le-turntable.d.ts +0 -55
  535. package/dist/core/types/components.d.ts +0 -1752
  536. package/dist/core/types/global/app.d.ts +0 -73
  537. package/dist/core/types/index.d.ts +0 -15
  538. package/dist/core/types/stencil-public-runtime.d.ts +0 -1756
  539. package/dist/core/types/types/blocks.d.ts +0 -136
  540. package/dist/core/types/types/options.d.ts +0 -124
  541. package/dist/core/types/utils/utils.d.ts +0 -54
  542. package/dist/esm/index-CwNQ1GTa.js.map +0 -1
  543. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.js.map +0 -1
  544. package/dist/esm/le-popup.entry.js +0 -210
  545. package/dist/esm/le-popup.entry.js.map +0 -1
  546. package/dist/le-kit/assets/custom-elements.json +0 -4305
  547. package/dist/le-kit/dist/collection/themes/dark.css +0 -100
  548. package/dist/le-kit/dist/collection/themes/minimal.css +0 -100
  549. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.esm.js.map +0 -1
  550. package/dist/le-kit/le-popup.entry.esm.js.map +0 -1
  551. package/dist/le-kit/p-08dbcc25.entry.js +0 -2
  552. package/dist/le-kit/p-08dbcc25.entry.js.map +0 -1
  553. package/dist/le-kit/p-5dc35729.entry.js +0 -2
  554. package/dist/le-kit/p-5dc35729.entry.js.map +0 -1
  555. package/dist/le-kit/p-64374730.entry.js.map +0 -1
  556. package/dist/le-kit/p-79ec6f7c.entry.js.map +0 -1
  557. package/dist/le-kit/p-8daf3c7f.entry.js +0 -2
  558. package/dist/le-kit/p-8daf3c7f.entry.js.map +0 -1
  559. package/dist/le-kit/p-9c69235d.entry.js +0 -2
  560. package/dist/le-kit/p-9c69235d.entry.js.map +0 -1
  561. package/dist/le-kit/p-CwNQ1GTa.js +0 -3
  562. package/dist/le-kit/p-CwNQ1GTa.js.map +0 -1
  563. package/dist/le-kit/p-ad398acd.entry.js.map +0 -1
  564. package/dist/le-kit/p-b8122ad6.entry.js.map +0 -1
  565. package/dist/le-kit/p-f9008505.entry.js.map +0 -1
  566. package/dist/le-kit/p-y3FECAx9.js +0 -2
@@ -0,0 +1,271 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$7, e as defineCustomElement$8, f as defineCustomElement$9 } from './le-button2.js';
3
+ import { d as defineCustomElement$6 } from './le-dropdown-base2.js';
4
+ import { d as defineCustomElement$5 } from './le-popover2.js';
5
+
6
+ const leSelectCss = ":host{display:inline-block;min-width:150px;--le-select-color:var(--le-color-text, #1f2937);--le-select-border-radius:var(--le-radius-md);--le-select-content-padding:var(--le-spacing-2)}:host([disabled]){opacity:0.5;pointer-events:none}:host([full-width]){width:100%}.select-trigger{display:flex;align-items:center;gap:0.5rem;width:100%;padding:0;--le-button-padding:var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-2);font-size:var(--le-select-font-size, 0.875rem);font-family:inherit;line-height:1.4;color:var(--le-select-color);background:var(--le-select-bg, var(--le-color-surface, #fff));border-radius:var(--le-select-border-radius);cursor:pointer;text-align:left;transition:border-color 0.15s ease, box-shadow 0.15s ease}.select-trigger:focus{outline:2px solid var(--le-color-focus);outline-offset:2px}.select-trigger:not(.has-value) .trigger-label{color:color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent)}.trigger-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem}.trigger-icon-end{width:16px;height:16px}.trigger-icon img{width:100%;height:100%;object-fit:contain}.trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--le-color-text)}.trigger-label::not(.has-value){color:var(--le-color-text-disabled, #9ca3af)}le-button::part(icon-end){display:flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;transition:transform 0.2s ease}le-button::part(icon-end) svg{width:1rem;height:1rem}le-button.is-open::part(icon-end){transform:rotate(180deg)}.search-input::part(container):focus-within{outline:none !important}.search-input{--le-input-radius:var(--le-radius-md)}";
7
+
8
+ const LeSelect$1 = /*@__PURE__*/ proxyCustomElement(class LeSelect extends HTMLElement {
9
+ constructor(registerHost) {
10
+ super();
11
+ if (registerHost !== false) {
12
+ this.__registerHost();
13
+ }
14
+ this.__attachShadow();
15
+ this.leChange = createEvent(this, "leChange", 7);
16
+ this.leOpen = createEvent(this, "leOpen", 7);
17
+ this.leClose = createEvent(this, "leClose", 7);
18
+ }
19
+ get el() { return this; }
20
+ /**
21
+ * The options to display in the dropdown.
22
+ */
23
+ options = [];
24
+ /**
25
+ * The currently selected value.
26
+ */
27
+ value;
28
+ /**
29
+ * Placeholder text when no option is selected.
30
+ */
31
+ placeholder = 'Select an option';
32
+ /**
33
+ * Whether the select is disabled.
34
+ */
35
+ disabled = false;
36
+ /**
37
+ * Whether selection is required.
38
+ */
39
+ required = false;
40
+ /**
41
+ * Name attribute for form submission.
42
+ */
43
+ name;
44
+ /**
45
+ * Whether the select should take full width of its container.
46
+ */
47
+ fullWidth = false;
48
+ /**
49
+ * Size variant of the select.
50
+ */
51
+ size = 'medium';
52
+ /**
53
+ * Visual variant of the select.
54
+ */
55
+ variant = 'default';
56
+ /**
57
+ * Whether the input is searchable.
58
+ */
59
+ searchable = false;
60
+ /**
61
+ * Text to show when no options match the search.
62
+ */
63
+ emptyText = 'No results found';
64
+ /**
65
+ * Whether the dropdown is currently open.
66
+ */
67
+ open = false;
68
+ /**
69
+ * Emitted when the selected value changes.
70
+ */
71
+ leChange;
72
+ /**
73
+ * Emitted when the dropdown opens.
74
+ */
75
+ leOpen;
76
+ /**
77
+ * Emitted when the dropdown closes.
78
+ */
79
+ leClose;
80
+ selectedOption;
81
+ searchQuery = '';
82
+ dropdownEl;
83
+ inputEl;
84
+ handleValueChange() {
85
+ this.updateSelectedOption();
86
+ }
87
+ handleOptionsChange() {
88
+ this.updateSelectedOption();
89
+ }
90
+ componentWillLoad() {
91
+ this.updateSelectedOption();
92
+ }
93
+ get parsedOptions() {
94
+ if (typeof this.options === 'string') {
95
+ try {
96
+ return JSON.parse(this.options);
97
+ }
98
+ catch {
99
+ return [];
100
+ }
101
+ }
102
+ return this.options;
103
+ }
104
+ updateSelectedOption() {
105
+ if (this.value !== undefined) {
106
+ this.selectedOption = this.parsedOptions.find(opt => (opt.value ?? opt.label) === this.value);
107
+ }
108
+ else {
109
+ this.selectedOption = undefined;
110
+ }
111
+ }
112
+ filterOption = (option, query) => {
113
+ if (!query)
114
+ return true;
115
+ const searchLower = query.toLowerCase();
116
+ return (option.label.toLowerCase().includes(searchLower) ||
117
+ (option.description?.toLowerCase().includes(searchLower) ?? false));
118
+ };
119
+ handleOptionSelect = (e) => {
120
+ this.value = e.detail.value;
121
+ this.selectedOption = e.detail.option;
122
+ this.leChange.emit(e.detail);
123
+ };
124
+ handleDropdownOpen = () => {
125
+ this.open = true;
126
+ this.leOpen.emit();
127
+ // Focus search input if searchable
128
+ if (this.searchable) {
129
+ setTimeout(() => {
130
+ this.inputEl?.focus();
131
+ }, 50);
132
+ }
133
+ };
134
+ handleDropdownClose = () => {
135
+ this.open = false;
136
+ this.leClose.emit();
137
+ };
138
+ handleTriggerClick = () => {
139
+ if (!this.disabled) {
140
+ this.dropdownEl?.toggle();
141
+ }
142
+ };
143
+ handleTriggerKeyDown = (e) => {
144
+ if (this.disabled)
145
+ return;
146
+ if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
147
+ e.preventDefault();
148
+ this.dropdownEl?.show();
149
+ }
150
+ };
151
+ handleSearchInput = (e) => {
152
+ const target = e.target;
153
+ this.searchQuery = target.value;
154
+ };
155
+ /**
156
+ * Opens the dropdown.
157
+ */
158
+ async showDropdown() {
159
+ await this.dropdownEl?.show();
160
+ }
161
+ /**
162
+ * Closes the dropdown.
163
+ */
164
+ async hideDropdown() {
165
+ await this.dropdownEl?.hide();
166
+ }
167
+ renderIcon(icon) {
168
+ if (!icon)
169
+ return null;
170
+ if (icon.startsWith('http') || icon.startsWith('/')) {
171
+ return h("img", { class: "trigger-icon", src: icon, alt: "" });
172
+ }
173
+ return h("span", { class: "trigger-icon" }, icon);
174
+ }
175
+ render() {
176
+ const hasValue = this.selectedOption !== undefined;
177
+ return (h("le-component", { key: 'c8ce895d257cb8e40f1f4d1181ece5db9c2df9f5', component: "le-select" }, h("le-dropdown-base", { key: 'f8ed2326295860fb658cca0eae4c153a2dbcb833', ref: el => (this.dropdownEl = el), options: this.parsedOptions, value: this.value, disabled: this.disabled, filterFn: this.searchable ? this.filterOption : undefined, filterQuery: this.searchQuery, onLeOptionSelect: this.handleOptionSelect, onLeDropdownOpen: this.handleDropdownOpen, onLeDropdownClose: this.handleDropdownClose, fullWidth: this.fullWidth }, h("le-button", { key: 'c72c327bfa5874f55defc08fe8057bb109a4b6c3', variant: this.variant && this.variant !== 'default' ? this.variant : 'outlined', slot: "trigger", align: "space-between", class: {
178
+ 'select-trigger': true,
179
+ 'has-value': hasValue,
180
+ 'is-open': this.open,
181
+ }, mode: "default", size: this.size, disabled: this.disabled, "aria-haspopup": "listbox", "aria-expanded": this.open ? 'true' : 'false', onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown, fullWidth: this.fullWidth, iconStart: hasValue && this.selectedOption?.iconStart
182
+ ? this.renderIcon(this.selectedOption.iconStart)
183
+ : null, iconEnd: h("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { d: "M4 6l4 4 4-4" })) }, h("span", { key: '717d9ea1dc386f4adf13aba94c82a1d8f8781c37', class: "trigger-label" }, hasValue ? this.selectedOption.label : this.placeholder)), this.searchable && this.open && (h("div", { key: '7833ecb5f569e05e04c606117bf87f82ae5a268c', class: "multiselect-search", slot: "header" }, h("le-string-input", { key: 'd8f4de77eb3079a11e1d707b74dca43f034ef85d', mode: "default", inputRef: el => (this.inputEl = el), class: "search-input", placeholder: "Search...", value: this.searchQuery, onInput: this.handleSearchInput })))), this.name && h("input", { key: 'caa92c54c78af922c471b1cb327969e83dea195b', type: "hidden", name: this.name, value: this.value?.toString() ?? '' })));
184
+ }
185
+ static get watchers() { return {
186
+ "value": ["handleValueChange"],
187
+ "options": ["handleOptionsChange"]
188
+ }; }
189
+ static get style() { return leSelectCss; }
190
+ }, [769, "le-select", {
191
+ "options": [1],
192
+ "value": [1032],
193
+ "placeholder": [1],
194
+ "disabled": [516],
195
+ "required": [4],
196
+ "name": [1],
197
+ "fullWidth": [4, "full-width"],
198
+ "size": [513],
199
+ "variant": [513],
200
+ "searchable": [4],
201
+ "emptyText": [1, "empty-text"],
202
+ "open": [1540],
203
+ "selectedOption": [32],
204
+ "searchQuery": [32],
205
+ "showDropdown": [64],
206
+ "hideDropdown": [64]
207
+ }, undefined, {
208
+ "value": ["handleValueChange"],
209
+ "options": ["handleOptionsChange"]
210
+ }]);
211
+ function defineCustomElement$1() {
212
+ if (typeof customElements === "undefined") {
213
+ return;
214
+ }
215
+ const components = ["le-select", "le-button", "le-checkbox", "le-component", "le-dropdown-base", "le-popover", "le-popup", "le-slot", "le-string-input"];
216
+ components.forEach(tagName => { switch (tagName) {
217
+ case "le-select":
218
+ if (!customElements.get(tagName)) {
219
+ customElements.define(tagName, LeSelect$1);
220
+ }
221
+ break;
222
+ case "le-button":
223
+ if (!customElements.get(tagName)) {
224
+ defineCustomElement$9();
225
+ }
226
+ break;
227
+ case "le-checkbox":
228
+ if (!customElements.get(tagName)) {
229
+ defineCustomElement$8();
230
+ }
231
+ break;
232
+ case "le-component":
233
+ if (!customElements.get(tagName)) {
234
+ defineCustomElement$7();
235
+ }
236
+ break;
237
+ case "le-dropdown-base":
238
+ if (!customElements.get(tagName)) {
239
+ defineCustomElement$6();
240
+ }
241
+ break;
242
+ case "le-popover":
243
+ if (!customElements.get(tagName)) {
244
+ defineCustomElement$5();
245
+ }
246
+ break;
247
+ case "le-popup":
248
+ if (!customElements.get(tagName)) {
249
+ defineCustomElement$4();
250
+ }
251
+ break;
252
+ case "le-slot":
253
+ if (!customElements.get(tagName)) {
254
+ defineCustomElement$3();
255
+ }
256
+ break;
257
+ case "le-string-input":
258
+ if (!customElements.get(tagName)) {
259
+ defineCustomElement$2();
260
+ }
261
+ break;
262
+ } });
263
+ }
264
+
265
+ const LeSelect = LeSelect$1;
266
+ const defineCustomElement = defineCustomElement$1;
267
+
268
+ export { LeSelect, defineCustomElement };
269
+ //# sourceMappingURL=le-select.js.map
270
+
271
+ //# sourceMappingURL=le-select.js.map
@@ -0,0 +1 @@
1
+ {"file":"le-select.js","mappings":"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","names":["LeSelect","__stencil_proxyCustomElement"],"sources":["src/components/le-select/le-select.css?tag=le-select&encapsulation=shadow","src/components/le-select/le-select.tsx"],"sourcesContent":["/**\n * le-select component styles\n *\n * CSS Custom Properties:\n * --le-select-height\n * --le-select-padding-x\n * --le-select-font-size\n * --le-select-border-radius\n * --le-select-border-color\n * --le-select-bg\n * --le-select-color\n */\n\n:host {\n display: inline-block;\n min-width: 150px;\n --le-select-color: var(--le-color-text, #1f2937);\n --le-select-border-radius: var(--le-radius-md);\n --le-select-content-padding: var(--le-spacing-2);\n}\n\n:host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n/* Trigger button */\n.select-trigger {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n padding: 0;\n --le-button-padding: var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-1) var(--le-spacing-2);\n font-size: var(--le-select-font-size, 0.875rem);\n font-family: inherit;\n line-height: 1.4;\n color: var(--le-select-color);\n background: var(--le-select-bg, var(--le-color-surface, #fff));\n border-radius: var(--le-select-border-radius);\n cursor: pointer;\n text-align: left;\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.select-trigger:focus {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n/* Placeholder state */\n.select-trigger:not(.has-value) .trigger-label {\n color: color-mix(in srgb, var(--le-color-text-secondary) 66%, transparent);\n}\n\n/* Trigger icon */\n.trigger-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1.25rem;\n height: 1.25rem;\n}\n\n.trigger-icon-end {\n width: 16px;\n height: 16px;\n}\n\n.trigger-icon img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n/* Trigger label */\n.trigger-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--le-color-text);\n}\n\n.trigger-label::not(.has-value) {\n color: var(--le-color-text-disabled, #9ca3af);\n}\n\n/* Arrow icon */\nle-button::part(icon-end) {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1.25rem;\n height: 1.25rem;\n margin-left: auto;\n transition: transform 0.2s ease;\n}\n\nle-button::part(icon-end) svg {\n width: 1rem;\n height: 1rem;\n}\n\nle-button.is-open::part(icon-end) {\n transform: rotate(180deg);\n}\n\n/* Search in dropdown */\n.search-input::part(container):focus-within {\n outline: none !important;\n}\n.search-input {\n --le-input-radius: var(--le-radius-md);\n}\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n Method,\n Element,\n Watch,\n h,\n} from '@stencil/core';\nimport { LeOption, LeOptionValue, LeOptionSelectDetail } from '../../types/options';\n\n/**\n * A select dropdown component for single selection.\n *\n * @cmsEditable true\n * @cmsCategory Form\n *\n * @example Basic select\n * ```html\n * <le-select\n * placeholder=\"Choose an option\"\n * options='[{\"label\": \"Option 1\", \"value\": \"1\"}, {\"label\": \"Option 2\", \"value\": \"2\"}]'\n * ></le-select>\n * ```\n *\n * @example With icons\n * ```html\n * <le-select\n * options='[\n * {\"label\": \"Apple\", \"value\": \"apple\", \"iconStart\": \"🍎\"},\n * {\"label\": \"Banana\", \"value\": \"banana\", \"iconStart\": \"🍌\"}\n * ]'\n * ></le-select>\n * ```\n *\n * @example Grouped options\n * ```html\n * <le-select\n * options='[\n * {\"label\": \"Apple\", \"value\": \"apple\", \"group\": \"Fruits\"},\n * {\"label\": \"Carrot\", \"value\": \"carrot\", \"group\": \"Vegetables\"}\n * ]'\n * ></le-select>\n * ```\n */\n@Component({\n tag: 'le-select',\n styleUrl: 'le-select.css',\n shadow: true,\n})\nexport class LeSelect {\n @Element() el: HTMLElement;\n\n /**\n * The options to display in the dropdown.\n */\n @Prop() options: LeOption[] | string = [];\n\n /**\n * The currently selected value.\n */\n @Prop({ mutable: true }) value?: LeOptionValue;\n\n /**\n * Placeholder text when no option is selected.\n */\n @Prop() placeholder: string = 'Select an option';\n\n /**\n * Whether the select is disabled.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether selection is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Name attribute for form submission.\n */\n @Prop() name?: string;\n\n /**\n * Whether the select should take full width of its container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Size variant of the select.\n */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Visual variant of the select.\n */\n @Prop({ reflect: true }) variant: 'default' | 'outlined' | 'solid' = 'default';\n\n /**\n * Whether the input is searchable.\n */\n @Prop() searchable: boolean = false;\n\n /**\n * Text to show when no options match the search.\n */\n @Prop() emptyText: string = 'No results found';\n\n /**\n * Whether the dropdown is currently open.\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Emitted when the selected value changes.\n */\n @Event() leChange: EventEmitter<LeOptionSelectDetail>;\n\n /**\n * Emitted when the dropdown opens.\n */\n @Event() leOpen: EventEmitter<void>;\n\n /**\n * Emitted when the dropdown closes.\n */\n @Event() leClose: EventEmitter<void>;\n\n @State() private selectedOption?: LeOption;\n\n @State() private searchQuery: string = '';\n\n private dropdownEl?: HTMLLeDropdownBaseElement;\n private inputEl?: HTMLInputElement;\n\n @Watch('value')\n handleValueChange() {\n this.updateSelectedOption();\n }\n\n @Watch('options')\n handleOptionsChange() {\n this.updateSelectedOption();\n }\n\n componentWillLoad() {\n this.updateSelectedOption();\n }\n\n private get parsedOptions(): LeOption[] {\n if (typeof this.options === 'string') {\n try {\n return JSON.parse(this.options);\n } catch {\n return [];\n }\n }\n return this.options;\n }\n\n private updateSelectedOption() {\n if (this.value !== undefined) {\n this.selectedOption = this.parsedOptions.find(opt => (opt.value ?? opt.label) === this.value);\n } else {\n this.selectedOption = undefined;\n }\n }\n\n private filterOption = (option: LeOption, query: string): boolean => {\n if (!query) return true;\n\n const searchLower = query.toLowerCase();\n return (\n option.label.toLowerCase().includes(searchLower) ||\n (option.description?.toLowerCase().includes(searchLower) ?? false)\n );\n };\n\n private handleOptionSelect = (e: CustomEvent<LeOptionSelectDetail>) => {\n this.value = e.detail.value;\n this.selectedOption = e.detail.option;\n this.leChange.emit(e.detail);\n };\n\n private handleDropdownOpen = () => {\n this.open = true;\n this.leOpen.emit();\n\n // Focus search input if searchable\n if (this.searchable) {\n setTimeout(() => {\n this.inputEl?.focus();\n }, 50);\n }\n };\n\n private handleDropdownClose = () => {\n this.open = false;\n this.leClose.emit();\n };\n\n private handleTriggerClick = () => {\n if (!this.disabled) {\n this.dropdownEl?.toggle();\n }\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n\n if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {\n e.preventDefault();\n this.dropdownEl?.show();\n }\n };\n\n private handleSearchInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n this.searchQuery = target.value;\n };\n\n /**\n * Opens the dropdown.\n */\n @Method()\n async showDropdown() {\n await this.dropdownEl?.show();\n }\n\n /**\n * Closes the dropdown.\n */\n @Method()\n async hideDropdown() {\n await this.dropdownEl?.hide();\n }\n\n private renderIcon(icon: string | undefined) {\n if (!icon) return null;\n\n if (icon.startsWith('http') || icon.startsWith('/')) {\n return <img class=\"trigger-icon\" src={icon} alt=\"\" />;\n }\n\n return <span class=\"trigger-icon\">{icon}</span>;\n }\n\n render() {\n const hasValue = this.selectedOption !== undefined;\n\n return (\n <le-component component=\"le-select\">\n <le-dropdown-base\n ref={el => (this.dropdownEl = el)}\n options={this.parsedOptions}\n value={this.value}\n disabled={this.disabled}\n filterFn={this.searchable ? this.filterOption : undefined}\n filterQuery={this.searchQuery}\n onLeOptionSelect={this.handleOptionSelect}\n onLeDropdownOpen={this.handleDropdownOpen}\n onLeDropdownClose={this.handleDropdownClose}\n fullWidth={this.fullWidth}\n >\n <le-button\n variant={this.variant && this.variant !== 'default' ? this.variant : 'outlined'}\n slot=\"trigger\"\n align=\"space-between\"\n class={{\n 'select-trigger': true,\n 'has-value': hasValue,\n 'is-open': this.open,\n }}\n mode=\"default\"\n size={this.size}\n disabled={this.disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? 'true' : 'false'}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n fullWidth={this.fullWidth}\n iconStart={\n hasValue && this.selectedOption?.iconStart\n ? this.renderIcon(this.selectedOption.iconStart)\n : null\n }\n iconEnd={\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n }\n >\n <span class=\"trigger-label\">\n {hasValue ? this.selectedOption!.label : this.placeholder}\n </span>\n </le-button>\n\n {/* Search input shown in dropdown header */}\n {this.searchable && this.open && (\n <div class=\"multiselect-search\" slot=\"header\">\n <le-string-input\n mode=\"default\"\n inputRef={el => (this.inputEl = el)}\n class=\"search-input\"\n placeholder=\"Search...\"\n value={this.searchQuery}\n onInput={this.handleSearchInput}\n />\n </div>\n )}\n </le-dropdown-base>\n\n {/* Hidden input for form submission */}\n {this.name && <input type=\"hidden\" name={this.name} value={this.value?.toString() ?? ''} />}\n </le-component>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { h as LeSlot$1, a as defineCustomElement$1 } from './le-button2.js';
1
+ import { j as LeSlot$1, a as defineCustomElement$1 } from './le-button2.js';
2
2
 
3
3
  const LeSlot = LeSlot$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
2
  import { h as classnames } from './utils.js';
3
- import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$5, c as defineCustomElement$6, e as defineCustomElement$7 } from './le-button2.js';
4
- import { d as defineCustomElement$4 } from './le-popover2.js';
3
+ import { d as defineCustomElement$2, a as defineCustomElement$3, b as defineCustomElement$4, c as defineCustomElement$6, e as defineCustomElement$7, f as defineCustomElement$8 } from './le-button2.js';
4
+ import { d as defineCustomElement$5 } from './le-popover2.js';
5
5
 
6
6
  const leStackDefaultCss = ":host{display:block}:host([hidden]){display:none}.stack{gap:var(--le-stack-gap, var(--le-space-md))}:host(.full-width){width:100%}:host(.full-height){height:100%}:host(.direction-horizontal) .stack{min-height:0}:host(.direction-vertical) .stack{min-width:0}";
7
7
 
@@ -130,7 +130,7 @@ const LeStack$1 = /*@__PURE__*/ proxyCustomElement(class LeStack extends HTMLEle
130
130
  });
131
131
  // Slot style for admin mode - make items display in the same direction
132
132
  const slotStyle = `display: flex; flex-direction: ${this.getFlexDirection()}; gap: ${this.gap || 'var(--le-space-md)'}; flex-wrap: ${this.wrap ? 'wrap' : 'nowrap'}; justify-content: ${this.getJustifyContent()}; align-items: ${this.getAlignItems()};`;
133
- return (h("le-component", { key: 'e1547512915e47e4c5ddbcbcbd3971579e45a140', component: "le-stack", hostClass: hostClass }, h("div", { key: '61a4fd57c61c56a8abac0ae2348e6e48034efc4d', class: "stack", part: "stack", style: style }, h("le-slot", { key: '0ef0f996ce0efcb20a47171197d82e5b326c7e8c', name: "", description: `Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`, type: "slot", "allowed-components": "le-text,le-box,le-card,le-button,le-stack", slotStyle: slotStyle }, h("slot", { key: 'f41f351d8b6dbdaf20756e9bc317a35a0424fc6c' })))));
133
+ return (h("le-component", { key: '22c1dddc31186f718f637888580dc13b8f38ae70', component: "le-stack", hostClass: hostClass }, h("div", { key: '68265d4b9999b4c5dac9f53432bebf39f0ab6bf3', class: "stack", part: "stack", style: style }, h("le-slot", { key: '01717eb67627d3dba0c48267e14a52d4424659ad', name: "", description: `Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`, type: "slot", "allowed-components": "le-text,le-box,le-card,le-button,le-stack", slotStyle: slotStyle }, h("slot", { key: 'b846cb2b46ee3240b288f9a5c112ffda3fdb26cc' })))));
134
134
  }
135
135
  static get style() { return leStackDefaultCss; }
136
136
  }, [769, "le-stack", {
@@ -150,7 +150,7 @@ function defineCustomElement$1() {
150
150
  if (typeof customElements === "undefined") {
151
151
  return;
152
152
  }
153
- const components = ["le-stack", "le-button", "le-checkbox", "le-component", "le-popover", "le-slot", "le-string-input"];
153
+ const components = ["le-stack", "le-button", "le-checkbox", "le-component", "le-popover", "le-popup", "le-slot", "le-string-input"];
154
154
  components.forEach(tagName => { switch (tagName) {
155
155
  case "le-stack":
156
156
  if (!customElements.get(tagName)) {
@@ -159,20 +159,25 @@ function defineCustomElement$1() {
159
159
  break;
160
160
  case "le-button":
161
161
  if (!customElements.get(tagName)) {
162
- defineCustomElement$7();
162
+ defineCustomElement$8();
163
163
  }
164
164
  break;
165
165
  case "le-checkbox":
166
166
  if (!customElements.get(tagName)) {
167
- defineCustomElement$6();
167
+ defineCustomElement$7();
168
168
  }
169
169
  break;
170
170
  case "le-component":
171
171
  if (!customElements.get(tagName)) {
172
- defineCustomElement$5();
172
+ defineCustomElement$6();
173
173
  }
174
174
  break;
175
175
  case "le-popover":
176
+ if (!customElements.get(tagName)) {
177
+ defineCustomElement$5();
178
+ }
179
+ break;
180
+ case "le-popup":
176
181
  if (!customElements.get(tagName)) {
177
182
  defineCustomElement$4();
178
183
  }
@@ -1 +1 @@
1
- {"file":"le-stack.js","mappings":"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","names":["LeStack","__stencil_proxyCustomElement"],"sources":["src/components/le-stack/le-stack.default.css?tag=le-stack&encapsulation=shadow","src/components/le-stack/le-stack.tsx"],"sourcesContent":["/**\n * le-stack default styles\n *\n * The component uses inline styles for flex properties to allow\n * dynamic prop-based configuration. This CSS handles theming.\n */\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/* Base stack container */\n.stack {\n gap: var(--le-stack-gap, var(--le-space-md));\n}\n\n/* Full width/height variants */\n:host(.full-width) {\n width: 100%;\n}\n\n:host(.full-height) {\n height: 100%;\n}\n\n/* Direction-specific defaults */\n:host(.direction-horizontal) .stack {\n min-height: 0;\n}\n\n:host(.direction-vertical) .stack {\n min-width: 0;\n}\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible stack layout component using CSS flexbox.\n *\n * `le-stack` arranges its children in a row (horizontal) or column (vertical)\n * with configurable spacing, alignment, and wrapping behavior. Perfect for\n * creating responsive layouts.\n *\n * @slot - Default slot for stack items (le-box components recommended)\n *\n * @cssprop --le-stack-gap - Gap between items (defaults to var(--le-space-md))\n *\n * @csspart stack - The main stack container\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-stack',\n styleUrl: 'le-stack.default.css',\n shadow: true,\n})\nexport class LeStack {\n @Element() el: HTMLElement;\n\n /**\n * Direction of the stack layout\n * @allowedValues horizontal | vertical\n */\n @Prop() direction: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')\n */\n @Prop() gap?: string;\n\n /**\n * Alignment of items on the cross axis\n * @allowedValues start | center | end | stretch | baseline\n */\n @Prop() align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch';\n\n /**\n * Distribution of items on the main axis\n * @allowedValues start | center | end | space-between | space-around | space-evenly\n */\n @Prop() justify: 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly' = 'start';\n\n /**\n * Whether items should wrap to multiple lines\n */\n @Prop() wrap: boolean = false;\n\n /**\n * Alignment of wrapped lines (only applies when wrap is true)\n * @allowedValues start | center | end | stretch | space-between | space-around\n */\n @Prop() alignContent: 'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around' = 'stretch';\n\n /**\n * Whether to reverse the order of items\n */\n @Prop() reverse: boolean = false;\n\n /**\n * Maximum number of items allowed in the stack (for CMS validation)\n * @min 1\n */\n @Prop() maxItems?: number;\n\n /**\n * Whether the stack should take full width of its container\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Whether the stack should take full height of its container\n */\n @Prop() fullHeight: boolean = false;\n\n /**\n * Padding inside the stack container (CSS value)\n */\n @Prop() padding?: string;\n\n private getFlexDirection(): string {\n const base = this.direction === 'vertical' ? 'column' : 'row';\n return this.reverse ? `${base}-reverse` : base;\n }\n\n private getAlignItems(): string {\n const alignMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n };\n return alignMap[this.align] || 'stretch';\n }\n\n private getJustifyContent(): string {\n const justifyMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n };\n return justifyMap[this.justify] || 'flex-start';\n }\n\n private getAlignContent(): string {\n const alignContentMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n };\n return alignContentMap[this.alignContent] || 'stretch';\n }\n\n render() {\n const style: { [key: string]: string } = {\n display: 'flex',\n flexDirection: this.getFlexDirection(),\n alignItems: this.getAlignItems(),\n justifyContent: this.getJustifyContent(),\n flexWrap: this.wrap ? 'wrap' : 'nowrap',\n };\n\n if (this.wrap) {\n style.alignContent = this.getAlignContent();\n }\n\n if (this.gap) {\n style.gap = this.gap;\n }\n\n if (this.padding) {\n style.padding = this.padding;\n }\n\n // if (this.fullWidth) {\n // style.width = '100%';\n // }\n\n // if (this.fullHeight) {\n // style.height = '100%';\n // }\n\n const hostClass = classnames(\n `direction-${this.direction}`,\n {\n 'wrap': this.wrap,\n 'reverse': this.reverse,\n 'full-width': this.fullWidth,\n 'full-height': this.fullHeight,\n }\n );\n\n // Slot style for admin mode - make items display in the same direction\n const slotStyle = `display: flex; flex-direction: ${this.getFlexDirection()}; gap: ${this.gap || 'var(--le-space-md)'}; flex-wrap: ${this.wrap ? 'wrap' : 'nowrap'}; justify-content: ${this.getJustifyContent()}; align-items: ${this.getAlignItems()};`;\n\n return (\n <le-component component=\"le-stack\" hostClass={hostClass}>\n <div class=\"stack\" part=\"stack\" style={style}>\n <le-slot\n name=\"\"\n description={`Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`}\n type=\"slot\"\n allowed-components=\"le-text,le-box,le-card,le-button,le-stack\"\n slotStyle={slotStyle}\n >\n <slot></slot>\n </le-slot>\n </div>\n </le-component>\n );\n }\n}\n"],"version":3}
1
+ {"file":"le-stack.js","mappings":"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","names":["LeStack","__stencil_proxyCustomElement"],"sources":["src/components/le-stack/le-stack.default.css?tag=le-stack&encapsulation=shadow","src/components/le-stack/le-stack.tsx"],"sourcesContent":["/**\n * le-stack default styles\n *\n * The component uses inline styles for flex properties to allow\n * dynamic prop-based configuration. This CSS handles theming.\n */\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/* Base stack container */\n.stack {\n gap: var(--le-stack-gap, var(--le-space-md));\n}\n\n/* Full width/height variants */\n:host(.full-width) {\n width: 100%;\n}\n\n:host(.full-height) {\n height: 100%;\n}\n\n/* Direction-specific defaults */\n:host(.direction-horizontal) .stack {\n min-height: 0;\n}\n\n:host(.direction-vertical) .stack {\n min-width: 0;\n}\n","import { Component, Prop, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible stack layout component using CSS flexbox.\n *\n * `le-stack` arranges its children in a row (horizontal) or column (vertical)\n * with configurable spacing, alignment, and wrapping behavior. Perfect for\n * creating responsive layouts.\n *\n * @slot - Default slot for stack items (le-box components recommended)\n *\n * @cssprop --le-stack-gap - Gap between items (defaults to var(--le-space-md))\n *\n * @csspart stack - The main stack container\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-stack',\n styleUrl: 'le-stack.default.css',\n shadow: true,\n})\nexport class LeStack {\n @Element() el: HTMLElement;\n\n /**\n * Direction of the stack layout\n * @allowedValues horizontal | vertical\n */\n @Prop() direction: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')\n */\n @Prop() gap?: string;\n\n /**\n * Alignment of items on the cross axis\n * @allowedValues start | center | end | stretch | baseline\n */\n @Prop() align: 'start' | 'center' | 'end' | 'stretch' | 'baseline' = 'stretch';\n\n /**\n * Distribution of items on the main axis\n * @allowedValues start | center | end | space-between | space-around | space-evenly\n */\n @Prop() justify: 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly' = 'start';\n\n /**\n * Whether items should wrap to multiple lines\n */\n @Prop() wrap: boolean = false;\n\n /**\n * Alignment of wrapped lines (only applies when wrap is true)\n * @allowedValues start | center | end | stretch | space-between | space-around\n */\n @Prop() alignContent: 'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around' = 'stretch';\n\n /**\n * Whether to reverse the order of items\n */\n @Prop() reverse: boolean = false;\n\n /**\n * Maximum number of items allowed in the stack (for CMS validation)\n * @min 1\n */\n @Prop() maxItems?: number;\n\n /**\n * Whether the stack should take full width of its container\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * Whether the stack should take full height of its container\n */\n @Prop() fullHeight: boolean = false;\n\n /**\n * Padding inside the stack container (CSS value)\n */\n @Prop() padding?: string;\n\n private getFlexDirection(): string {\n const base = this.direction === 'vertical' ? 'column' : 'row';\n return this.reverse ? `${base}-reverse` : base;\n }\n\n private getAlignItems(): string {\n const alignMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n baseline: 'baseline',\n };\n return alignMap[this.align] || 'stretch';\n }\n\n private getJustifyContent(): string {\n const justifyMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n 'space-evenly': 'space-evenly',\n };\n return justifyMap[this.justify] || 'flex-start';\n }\n\n private getAlignContent(): string {\n const alignContentMap: Record<string, string> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n 'space-between': 'space-between',\n 'space-around': 'space-around',\n };\n return alignContentMap[this.alignContent] || 'stretch';\n }\n\n render() {\n const style: { [key: string]: string } = {\n display: 'flex',\n flexDirection: this.getFlexDirection(),\n alignItems: this.getAlignItems(),\n justifyContent: this.getJustifyContent(),\n flexWrap: this.wrap ? 'wrap' : 'nowrap',\n };\n\n if (this.wrap) {\n style.alignContent = this.getAlignContent();\n }\n\n if (this.gap) {\n style.gap = this.gap;\n }\n\n if (this.padding) {\n style.padding = this.padding;\n }\n\n // if (this.fullWidth) {\n // style.width = '100%';\n // }\n\n // if (this.fullHeight) {\n // style.height = '100%';\n // }\n\n const hostClass = classnames(\n `direction-${this.direction}`,\n {\n 'wrap': this.wrap,\n 'reverse': this.reverse,\n 'full-width': this.fullWidth,\n 'full-height': this.fullHeight,\n }\n );\n\n // Slot style for admin mode - make items display in the same direction\n const slotStyle = `display: flex; flex-direction: ${this.getFlexDirection()}; gap: ${this.gap || 'var(--le-space-md)'}; flex-wrap: ${this.wrap ? 'wrap' : 'nowrap'}; justify-content: ${this.getJustifyContent()}; align-items: ${this.getAlignItems()};`;\n\n return (\n <le-component component=\"le-stack\" hostClass={hostClass}>\n <div class=\"stack\" part=\"stack\" style={style}>\n <le-slot\n name=\"\"\n description={`Items arranged ${this.direction}ly${this.maxItems ? ` (max ${this.maxItems})` : ''}`}\n type=\"slot\"\n allowed-components=\"le-text,le-box,le-card,le-button,le-stack\"\n slotStyle={slotStyle}\n >\n <slot></slot>\n </le-slot>\n </div>\n </le-component>\n );\n }\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
- import { i as LeStringInput$1, d as defineCustomElement$1 } from './le-button2.js';
1
+ import { k as LeStringInput$1, d as defineCustomElement$1 } from './le-button2.js';
2
2
 
3
3
  const LeStringInput = LeStringInput$1;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface LeTabBar extends Components.LeTabBar, HTMLElement {}
4
+ export const LeTabBar: {
5
+ prototype: LeTabBar;
6
+ new (): LeTabBar;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;