le-kit 0.1.14 → 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 (538) hide show
  1. package/dist/{core/cjs/index-B0mg71He.js → cjs/index-C3iQZ-Ja.js} +10 -3
  2. package/dist/cjs/index-C3iQZ-Ja.js.map +1 -0
  3. package/dist/{core/cjs → cjs}/index.cjs.js +4 -3
  4. package/dist/cjs/index.cjs.js.map +1 -0
  5. package/dist/{core/cjs → cjs}/le-box.cjs.entry.js +3 -3
  6. package/dist/cjs/le-box.entry.cjs.js.map +1 -0
  7. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.cjs.js.map +1 -0
  8. package/dist/cjs/le-button_7.cjs.entry.js +1452 -0
  9. package/dist/cjs/le-card.cjs.entry.js +29 -0
  10. package/dist/cjs/le-card.entry.cjs.js.map +1 -0
  11. package/dist/cjs/le-combobox.cjs.entry.js +237 -0
  12. package/dist/cjs/le-combobox.entry.cjs.js.map +1 -0
  13. package/dist/cjs/le-dropdown-base.cjs.entry.js +348 -0
  14. package/dist/cjs/le-dropdown-base.entry.cjs.js.map +1 -0
  15. package/dist/cjs/le-kit.cjs.js +25 -0
  16. package/dist/cjs/le-multiselect.cjs.entry.js +306 -0
  17. package/dist/cjs/le-multiselect.entry.cjs.js.map +1 -0
  18. package/dist/{core/cjs → cjs}/le-number-input.cjs.entry.js +3 -3
  19. package/dist/cjs/le-number-input.entry.cjs.js.map +1 -0
  20. package/dist/{core/cjs → cjs}/le-round-progress.cjs.entry.js +2 -2
  21. package/dist/cjs/le-round-progress.entry.cjs.js.map +1 -0
  22. package/dist/cjs/le-segmented-control.cjs.entry.js +245 -0
  23. package/dist/cjs/le-segmented-control.entry.cjs.js.map +1 -0
  24. package/dist/cjs/le-select.cjs.entry.js +188 -0
  25. package/dist/cjs/le-select.entry.cjs.js.map +1 -0
  26. package/dist/{core/cjs → cjs}/le-stack.cjs.entry.js +4 -4
  27. package/dist/cjs/le-stack.entry.cjs.js.map +1 -0
  28. package/dist/cjs/le-tab-bar.cjs.entry.js +242 -0
  29. package/dist/cjs/le-tab-bar.entry.cjs.js.map +1 -0
  30. package/dist/cjs/le-tab-panel.cjs.entry.js +100 -0
  31. package/dist/cjs/le-tab-panel.entry.cjs.js.map +1 -0
  32. package/dist/cjs/le-tab.cjs.entry.js +133 -0
  33. package/dist/cjs/le-tab.entry.cjs.js.map +1 -0
  34. package/dist/cjs/le-tabs.cjs.entry.js +307 -0
  35. package/dist/cjs/le-tabs.entry.cjs.js.map +1 -0
  36. package/dist/cjs/le-tag.cjs.entry.js +68 -0
  37. package/dist/cjs/le-tag.entry.cjs.js.map +1 -0
  38. package/dist/{core/cjs → cjs}/le-text.cjs.entry.js +3 -3
  39. package/dist/cjs/le-text.entry.cjs.js.map +1 -0
  40. package/dist/{core/cjs → cjs}/le-turntable.cjs.entry.js +2 -2
  41. package/dist/cjs/le-turntable.entry.cjs.js.map +1 -0
  42. package/dist/cjs/loader.cjs.js +13 -0
  43. package/dist/{core/cjs/utils-jdqP71LP.js → cjs/utils-DjPcLPN9.js} +3 -3
  44. package/dist/cjs/utils-DjPcLPN9.js.map +1 -0
  45. package/dist/{core/collection → collection}/collection-manifest.json +12 -0
  46. package/dist/{core/collection → collection}/components/le-box/le-box.js +1 -1
  47. package/dist/collection/components/le-box/le-box.js.map +1 -0
  48. package/dist/{core/collection/components/le-button/le-button.default.css → collection/components/le-button/le-button.css} +65 -38
  49. package/dist/{core/collection → collection}/components/le-button/le-button.js +106 -16
  50. package/dist/collection/components/le-button/le-button.js.map +1 -0
  51. package/dist/{core/collection → collection}/components/le-card/le-card.default.css +6 -6
  52. package/dist/{core/collection → collection}/components/le-card/le-card.js +2 -2
  53. package/dist/collection/components/le-card/le-card.js.map +1 -0
  54. package/dist/{core/collection → collection}/components/le-checkbox/le-checkbox.js +2 -2
  55. package/dist/collection/components/le-checkbox/le-checkbox.js.map +1 -0
  56. package/dist/collection/components/le-combobox/le-combobox.css +144 -0
  57. package/dist/collection/components/le-combobox/le-combobox.js +659 -0
  58. package/dist/collection/components/le-combobox/le-combobox.js.map +1 -0
  59. package/dist/collection/components/le-component/le-component.css +189 -0
  60. package/dist/{le-kit/le-component.entry.js → collection/components/le-component/le-component.js} +136 -16
  61. package/dist/collection/components/le-component/le-component.js.map +1 -0
  62. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +163 -0
  63. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +761 -0
  64. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -0
  65. package/dist/collection/components/le-multiselect/le-multiselect.css +163 -0
  66. package/dist/collection/components/le-multiselect/le-multiselect.js +734 -0
  67. package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -0
  68. package/dist/{core/collection → collection}/components/le-number-input/le-number-input.js +2 -2
  69. package/dist/collection/components/le-number-input/le-number-input.js.map +1 -0
  70. package/dist/{core/collection → collection}/components/le-popover/le-popover.css +10 -0
  71. package/dist/{core/collection → collection}/components/le-popover/le-popover.js +61 -10
  72. package/dist/collection/components/le-popover/le-popover.js.map +1 -0
  73. package/dist/{core/collection → collection}/components/le-popup/le-popup.api.js +2 -1
  74. package/dist/collection/components/le-popup/le-popup.api.js.map +1 -0
  75. package/dist/{core/collection → collection}/components/le-popup/le-popup.js +49 -19
  76. package/dist/collection/components/le-popup/le-popup.js.map +1 -0
  77. package/dist/{core/collection → collection}/components/le-round-progress/le-round-progress.js +1 -1
  78. package/dist/collection/components/le-round-progress/le-round-progress.js.map +1 -0
  79. package/dist/collection/components/le-segmented-control/le-segmented-control.css +78 -0
  80. package/dist/collection/components/le-segmented-control/le-segmented-control.js +445 -0
  81. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -0
  82. package/dist/collection/components/le-select/le-select.css +121 -0
  83. package/dist/collection/components/le-select/le-select.js +578 -0
  84. package/dist/collection/components/le-select/le-select.js.map +1 -0
  85. package/dist/collection/components/le-slot/le-slot.default.css +222 -0
  86. package/dist/{le-kit/le-slot.entry.js → collection/components/le-slot/le-slot.js} +268 -17
  87. package/dist/collection/components/le-slot/le-slot.js.map +1 -0
  88. package/dist/{core/collection → collection}/components/le-stack/le-stack.js +2 -2
  89. package/dist/collection/components/le-stack/le-stack.js.map +1 -0
  90. package/dist/{core/collection → collection}/components/le-string-input/le-string-input.css +1 -1
  91. package/dist/{core/collection → collection}/components/le-string-input/le-string-input.js +60 -6
  92. package/dist/collection/components/le-string-input/le-string-input.js.map +1 -0
  93. package/dist/collection/components/le-tab/le-tab.css +289 -0
  94. package/dist/collection/components/le-tab/le-tab.js +565 -0
  95. package/dist/collection/components/le-tab/le-tab.js.map +1 -0
  96. package/dist/collection/components/le-tab-bar/le-tab-bar.css +89 -0
  97. package/dist/collection/components/le-tab-bar/le-tab-bar.js +467 -0
  98. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -0
  99. package/dist/collection/components/le-tab-panel/le-tab-panel.css +30 -0
  100. package/dist/collection/components/le-tab-panel/le-tab-panel.js +302 -0
  101. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -0
  102. package/dist/collection/components/le-tabs/le-tabs.css +146 -0
  103. package/dist/collection/components/le-tabs/le-tabs.js +588 -0
  104. package/dist/collection/components/le-tabs/le-tabs.js.map +1 -0
  105. package/dist/collection/components/le-tag/le-tag.css +139 -0
  106. package/dist/collection/components/le-tag/le-tag.js +266 -0
  107. package/dist/collection/components/le-tag/le-tag.js.map +1 -0
  108. package/dist/{core/collection → collection}/components/le-text/le-text.js +1 -1
  109. package/dist/collection/components/le-text/le-text.js.map +1 -0
  110. package/dist/{core/collection → collection}/components/le-turntable/le-turntable.js +1 -1
  111. package/dist/collection/components/le-turntable/le-turntable.js.map +1 -0
  112. package/dist/collection/dist/components/assets/.gitkeep +1 -0
  113. package/dist/{le-kit → collection/dist/components}/assets/custom-elements.json +5064 -1199
  114. package/dist/collection/dist/components/themes/base.css +133 -0
  115. package/dist/collection/dist/components/themes/dark.css +103 -0
  116. package/dist/collection/dist/components/themes/default.css +111 -0
  117. package/dist/collection/dist/components/themes/gradient.css +103 -0
  118. package/dist/collection/dist/components/themes/index.css +415 -0
  119. package/dist/collection/dist/components/themes/minimal.css +103 -0
  120. package/dist/collection/dist/components/themes/warm.css +103 -0
  121. package/dist/collection/global/app.js.map +1 -0
  122. package/dist/collection/index.js.map +1 -0
  123. package/dist/collection/types/blocks.js.map +1 -0
  124. package/dist/collection/types/options.js.map +1 -0
  125. package/dist/collection/utils/utils.js.map +1 -0
  126. package/dist/components/assets/.gitkeep +1 -0
  127. package/dist/components/assets/custom-elements.json +8170 -0
  128. package/dist/components/index.js +11 -0
  129. package/dist/components/index.js.map +1 -0
  130. package/dist/{core/components → components}/le-box.js +11 -6
  131. package/dist/components/le-box.js.map +1 -0
  132. package/dist/{core/components → components}/le-button.js +1 -1
  133. package/dist/{core/components → components}/le-button2.js +371 -35
  134. package/dist/components/le-button2.js.map +1 -0
  135. package/dist/{core/components → components}/le-card.js +11 -6
  136. package/dist/components/le-card.js.map +1 -0
  137. package/dist/{core/components → components}/le-checkbox.js +1 -1
  138. package/dist/components/le-combobox.d.ts +11 -0
  139. package/dist/components/le-combobox.js +321 -0
  140. package/dist/components/le-combobox.js.map +1 -0
  141. package/dist/{core/components → components}/le-component.js +1 -1
  142. package/dist/components/le-dropdown-base.d.ts +11 -0
  143. package/dist/components/le-dropdown-base.js +9 -0
  144. package/dist/components/le-dropdown-base.js.map +1 -0
  145. package/dist/components/le-dropdown-base2.js +393 -0
  146. package/dist/components/le-dropdown-base2.js.map +1 -0
  147. package/dist/components/le-multiselect.d.ts +11 -0
  148. package/dist/components/le-multiselect.js +400 -0
  149. package/dist/components/le-multiselect.js.map +1 -0
  150. package/dist/{core/components → components}/le-number-input.js +12 -7
  151. package/dist/components/le-number-input.js.map +1 -0
  152. package/dist/{core/components → components}/le-popover2.js +24 -11
  153. package/dist/components/le-popover2.js.map +1 -0
  154. package/dist/{core/components/index.js → components/le-popup.api.js} +5 -12
  155. package/dist/components/le-popup.api.js.map +1 -0
  156. package/dist/components/le-popup.js +9 -0
  157. package/dist/components/le-popup.js.map +1 -0
  158. package/dist/{core/components → components}/le-round-progress.js +1 -1
  159. package/dist/components/le-segmented-control.d.ts +11 -0
  160. package/dist/components/le-segmented-control.js +320 -0
  161. package/dist/components/le-segmented-control.js.map +1 -0
  162. package/dist/components/le-select.d.ts +11 -0
  163. package/dist/components/le-select.js +271 -0
  164. package/dist/components/le-select.js.map +1 -0
  165. package/dist/{core/components → components}/le-slot.js +1 -1
  166. package/dist/{core/components → components}/le-stack.js +12 -7
  167. package/dist/components/le-stack.js.map +1 -0
  168. package/dist/{core/components → components}/le-string-input.js +1 -1
  169. package/dist/components/le-tab-bar.d.ts +11 -0
  170. package/dist/components/le-tab-bar.js +319 -0
  171. package/dist/components/le-tab-bar.js.map +1 -0
  172. package/dist/components/le-tab-panel.d.ts +11 -0
  173. package/dist/components/le-tab-panel.js +171 -0
  174. package/dist/components/le-tab-panel.js.map +1 -0
  175. package/dist/components/le-tab.d.ts +11 -0
  176. package/dist/components/le-tab.js +9 -0
  177. package/dist/components/le-tab.js.map +1 -0
  178. package/dist/components/le-tab2.js +206 -0
  179. package/dist/components/le-tab2.js.map +1 -0
  180. package/dist/components/le-tabs.d.ts +11 -0
  181. package/dist/components/le-tabs.js +386 -0
  182. package/dist/components/le-tabs.js.map +1 -0
  183. package/dist/components/le-tag.d.ts +11 -0
  184. package/dist/components/le-tag.js +9 -0
  185. package/dist/components/le-tag.js.map +1 -0
  186. package/dist/components/le-tag2.js +130 -0
  187. package/dist/components/le-tag2.js.map +1 -0
  188. package/dist/{core/components → components}/le-text.js +11 -6
  189. package/dist/components/le-text.js.map +1 -0
  190. package/dist/{core/components → components}/le-turntable.js +1 -1
  191. package/dist/components/themes/base.css +44 -0
  192. package/dist/components/themes/dark.css +4 -1
  193. package/dist/components/themes/default.css +4 -1
  194. package/dist/components/themes/gradient.css +4 -1
  195. package/dist/components/themes/index.css +2 -0
  196. package/dist/components/themes/minimal.css +4 -1
  197. package/dist/components/themes/warm.css +4 -1
  198. package/dist/docs.d.ts +443 -0
  199. package/dist/docs.json +10488 -0
  200. package/dist/{core/esm/index-SKsXnjWI.js → esm/index-DzgCnDLJ.js} +10 -4
  201. package/dist/esm/index-DzgCnDLJ.js.map +1 -0
  202. package/dist/{core/esm → esm}/index.js +4 -3
  203. package/dist/esm/index.js.map +1 -0
  204. package/dist/{le-kit → esm}/le-box.entry.js +3 -3
  205. package/dist/esm/le-box.entry.js.map +1 -0
  206. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.js.map +1 -0
  207. package/dist/esm/le-button_7.entry.js +1444 -0
  208. package/dist/{le-kit → esm}/le-card.entry.js +3 -3
  209. package/dist/esm/le-card.entry.js.map +1 -0
  210. package/dist/esm/le-combobox.entry.js +235 -0
  211. package/dist/esm/le-combobox.entry.js.map +1 -0
  212. package/dist/esm/le-dropdown-base.entry.js +346 -0
  213. package/dist/esm/le-dropdown-base.entry.js.map +1 -0
  214. package/dist/esm/le-kit.js +21 -0
  215. package/dist/esm/le-multiselect.entry.js +304 -0
  216. package/dist/esm/le-multiselect.entry.js.map +1 -0
  217. package/dist/{le-kit → esm}/le-number-input.entry.js +6 -6
  218. package/dist/esm/le-number-input.entry.js.map +1 -0
  219. package/dist/{core/esm → esm}/le-round-progress.entry.js +2 -2
  220. package/dist/esm/le-round-progress.entry.js.map +1 -0
  221. package/dist/esm/le-segmented-control.entry.js +243 -0
  222. package/dist/esm/le-segmented-control.entry.js.map +1 -0
  223. package/dist/esm/le-select.entry.js +186 -0
  224. package/dist/esm/le-select.entry.js.map +1 -0
  225. package/dist/{le-kit → esm}/le-stack.entry.js +4 -4
  226. package/dist/esm/le-stack.entry.js.map +1 -0
  227. package/dist/esm/le-tab-bar.entry.js +240 -0
  228. package/dist/esm/le-tab-bar.entry.js.map +1 -0
  229. package/dist/esm/le-tab-panel.entry.js +98 -0
  230. package/dist/esm/le-tab-panel.entry.js.map +1 -0
  231. package/dist/esm/le-tab.entry.js +131 -0
  232. package/dist/esm/le-tab.entry.js.map +1 -0
  233. package/dist/esm/le-tabs.entry.js +305 -0
  234. package/dist/esm/le-tabs.entry.js.map +1 -0
  235. package/dist/esm/le-tag.entry.js +66 -0
  236. package/dist/esm/le-tag.entry.js.map +1 -0
  237. package/dist/{le-kit → esm}/le-text.entry.js +3 -3
  238. package/dist/esm/le-text.entry.js.map +1 -0
  239. package/dist/{core/esm → esm}/le-turntable.entry.js +2 -2
  240. package/dist/esm/le-turntable.entry.js.map +1 -0
  241. package/dist/esm/loader.js +11 -0
  242. package/dist/{le-kit/utils-cwSNy7ZS.js → esm/utils-Dp5xFMCl.js} +3 -3
  243. package/dist/{le-kit/utils-cwSNy7ZS.js.map → esm/utils-Dp5xFMCl.js.map} +1 -1
  244. package/dist/le-kit/dist/components/assets/.gitkeep +1 -0
  245. package/dist/le-kit/dist/components/assets/custom-elements.json +8170 -0
  246. package/dist/le-kit/dist/components/themes/base.css +44 -0
  247. package/dist/le-kit/dist/components/themes/dark.css +4 -1
  248. package/dist/le-kit/dist/components/themes/default.css +4 -1
  249. package/dist/le-kit/dist/components/themes/gradient.css +4 -1
  250. package/dist/le-kit/dist/components/themes/index.css +2 -0
  251. package/dist/le-kit/dist/components/themes/minimal.css +4 -1
  252. package/dist/le-kit/dist/components/themes/warm.css +4 -1
  253. package/dist/le-kit/index.esm.js +2 -116
  254. package/dist/le-kit/index.esm.js.map +1 -1
  255. 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
  256. package/dist/le-kit/le-combobox.entry.esm.js.map +1 -0
  257. package/dist/le-kit/le-dropdown-base.entry.esm.js.map +1 -0
  258. package/dist/le-kit/le-kit.css +1 -1010
  259. package/dist/le-kit/le-kit.esm.js +2 -48
  260. package/dist/le-kit/le-kit.esm.js.map +1 -1
  261. package/dist/le-kit/le-multiselect.entry.esm.js.map +1 -0
  262. package/dist/le-kit/le-segmented-control.entry.esm.js.map +1 -0
  263. package/dist/le-kit/le-select.entry.esm.js.map +1 -0
  264. package/dist/le-kit/le-tab-bar.entry.esm.js.map +1 -0
  265. package/dist/le-kit/le-tab-panel.entry.esm.js.map +1 -0
  266. package/dist/le-kit/le-tab.entry.esm.js.map +1 -0
  267. package/dist/le-kit/le-tabs.entry.esm.js.map +1 -0
  268. package/dist/le-kit/le-tag.entry.esm.js.map +1 -0
  269. package/dist/{core/le-kit/p-55f70091.entry.js → le-kit/p-0bd7803f.entry.js} +2 -2
  270. package/dist/le-kit/p-0bd7803f.entry.js.map +1 -0
  271. package/dist/le-kit/p-1f55a4a2.entry.js +2 -0
  272. package/dist/le-kit/p-1f55a4a2.entry.js.map +1 -0
  273. package/dist/{core/le-kit/p-a9d05ef6.entry.js → le-kit/p-2c37f174.entry.js} +2 -2
  274. package/dist/le-kit/p-2c37f174.entry.js.map +1 -0
  275. package/dist/{core/le-kit/p-6e414a5c.entry.js → le-kit/p-33612923.entry.js} +2 -2
  276. package/dist/le-kit/p-33612923.entry.js.map +1 -0
  277. package/dist/le-kit/p-3a52c4de.entry.js +2 -0
  278. package/dist/le-kit/p-3a52c4de.entry.js.map +1 -0
  279. package/dist/le-kit/p-4130c60b.entry.js +2 -0
  280. package/dist/le-kit/p-4130c60b.entry.js.map +1 -0
  281. package/dist/le-kit/p-432e8231.entry.js +2 -0
  282. package/dist/le-kit/p-432e8231.entry.js.map +1 -0
  283. package/dist/le-kit/p-548d130b.entry.js +2 -0
  284. package/dist/le-kit/p-548d130b.entry.js.map +1 -0
  285. package/dist/le-kit/p-6ecdad85.entry.js +2 -0
  286. package/dist/le-kit/p-6ecdad85.entry.js.map +1 -0
  287. package/dist/le-kit/p-6ee06c44.entry.js +2 -0
  288. package/dist/le-kit/p-6ee06c44.entry.js.map +1 -0
  289. package/dist/le-kit/p-71c78784.entry.js +2 -0
  290. package/dist/le-kit/p-71c78784.entry.js.map +1 -0
  291. package/dist/le-kit/p-7b180d58.entry.js +2 -0
  292. package/dist/le-kit/p-7b180d58.entry.js.map +1 -0
  293. package/dist/le-kit/p-91993261.entry.js +2 -0
  294. package/dist/le-kit/p-91993261.entry.js.map +1 -0
  295. package/dist/{core/le-kit/p--VxUdzYV.js → le-kit/p-DaA5gINj.js} +2 -2
  296. package/dist/le-kit/p-DaA5gINj.js.map +1 -0
  297. package/dist/le-kit/p-DzgCnDLJ.js +3 -0
  298. package/dist/le-kit/p-DzgCnDLJ.js.map +1 -0
  299. package/dist/le-kit/p-a5d31d40.entry.js +2 -0
  300. package/dist/le-kit/p-a5d31d40.entry.js.map +1 -0
  301. package/dist/{core/le-kit/p-4f133e72.entry.js → le-kit/p-b66fd9e1.entry.js} +2 -2
  302. package/dist/le-kit/p-b66fd9e1.entry.js.map +1 -0
  303. package/dist/le-kit/p-beb87e61.entry.js +2 -0
  304. package/dist/le-kit/p-beb87e61.entry.js.map +1 -0
  305. package/dist/le-kit/p-cc0797b0.entry.js +2 -0
  306. package/dist/le-kit/p-cc0797b0.entry.js.map +1 -0
  307. package/dist/le-kit/p-d504a369.entry.js +2 -0
  308. package/dist/le-kit/p-d504a369.entry.js.map +1 -0
  309. package/dist/themes/base.css +133 -0
  310. package/dist/themes/dark.css +103 -0
  311. package/dist/themes/default.css +111 -0
  312. package/dist/themes/gradient.css +103 -0
  313. package/dist/themes/index.css +415 -0
  314. package/dist/themes/minimal.css +103 -0
  315. package/dist/themes/warm.css +103 -0
  316. package/dist/types/components/le-button/le-button.d.ts +19 -4
  317. package/dist/types/components/le-combobox/le-combobox.d.ts +128 -0
  318. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +118 -0
  319. package/dist/types/components/le-multiselect/le-multiselect.d.ts +143 -0
  320. package/dist/types/components/le-popover/le-popover.d.ts +13 -2
  321. package/dist/types/components/le-popup/le-popup.d.ts +5 -0
  322. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +82 -0
  323. package/dist/types/components/le-select/le-select.d.ts +125 -0
  324. package/dist/types/components/le-string-input/le-string-input.d.ts +8 -0
  325. package/dist/types/components/le-tab/le-tab.d.ts +116 -0
  326. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +88 -0
  327. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +75 -0
  328. package/dist/types/components/le-tabs/le-tabs.d.ts +108 -0
  329. package/dist/types/components/le-tag/le-tag.d.ts +78 -0
  330. package/dist/types/components.d.ts +2310 -40
  331. package/dist/types/types/options.d.ts +9 -0
  332. package/package.json +3 -18
  333. package/dist/core/cjs/index-B0mg71He.js.map +0 -1
  334. package/dist/core/cjs/index.cjs.js.map +0 -1
  335. package/dist/core/cjs/le-box.entry.cjs.js.map +0 -1
  336. package/dist/core/cjs/le-button.cjs.entry.js +0 -92
  337. package/dist/core/cjs/le-button.entry.cjs.js.map +0 -1
  338. package/dist/core/cjs/le-card.cjs.entry.js +0 -29
  339. package/dist/core/cjs/le-card.entry.cjs.js.map +0 -1
  340. package/dist/core/cjs/le-checkbox.cjs.entry.js +0 -61
  341. package/dist/core/cjs/le-checkbox.entry.cjs.js.map +0 -1
  342. package/dist/core/cjs/le-kit.cjs.js +0 -25
  343. package/dist/core/cjs/le-number-input.entry.cjs.js.map +0 -1
  344. package/dist/core/cjs/le-popover.cjs.entry.js +0 -348
  345. package/dist/core/cjs/le-popover.entry.cjs.js.map +0 -1
  346. package/dist/core/cjs/le-popup.cjs.entry.js +0 -212
  347. package/dist/core/cjs/le-popup.entry.cjs.js.map +0 -1
  348. package/dist/core/cjs/le-round-progress.entry.cjs.js.map +0 -1
  349. package/dist/core/cjs/le-stack.entry.cjs.js.map +0 -1
  350. package/dist/core/cjs/le-string-input.cjs.entry.js +0 -95
  351. package/dist/core/cjs/le-string-input.entry.cjs.js.map +0 -1
  352. package/dist/core/cjs/le-text.entry.cjs.js.map +0 -1
  353. package/dist/core/cjs/le-turntable.entry.cjs.js.map +0 -1
  354. package/dist/core/cjs/loader.cjs.js +0 -13
  355. package/dist/core/cjs/utils-jdqP71LP.js.map +0 -1
  356. package/dist/core/collection/components/le-box/le-box.js.map +0 -1
  357. package/dist/core/collection/components/le-button/le-button.js.map +0 -1
  358. package/dist/core/collection/components/le-card/le-card.js.map +0 -1
  359. package/dist/core/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  360. package/dist/core/collection/components/le-number-input/le-number-input.js.map +0 -1
  361. package/dist/core/collection/components/le-popover/le-popover.js.map +0 -1
  362. package/dist/core/collection/components/le-popup/le-popup.api.js.map +0 -1
  363. package/dist/core/collection/components/le-popup/le-popup.js.map +0 -1
  364. package/dist/core/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  365. package/dist/core/collection/components/le-stack/le-stack.js.map +0 -1
  366. package/dist/core/collection/components/le-string-input/le-string-input.js.map +0 -1
  367. package/dist/core/collection/components/le-text/le-text.js.map +0 -1
  368. package/dist/core/collection/components/le-turntable/le-turntable.js.map +0 -1
  369. package/dist/core/collection/global/app.js.map +0 -1
  370. package/dist/core/collection/index.js.map +0 -1
  371. package/dist/core/collection/types/blocks.js.map +0 -1
  372. package/dist/core/collection/types/options.js.map +0 -1
  373. package/dist/core/collection/utils/utils.js.map +0 -1
  374. package/dist/core/components/index.d.ts +0 -33
  375. package/dist/core/components/index.js.map +0 -1
  376. package/dist/core/components/le-box.d.ts +0 -11
  377. package/dist/core/components/le-box.js.map +0 -1
  378. package/dist/core/components/le-button.d.ts +0 -11
  379. package/dist/core/components/le-button2.js.map +0 -1
  380. package/dist/core/components/le-card.d.ts +0 -11
  381. package/dist/core/components/le-card.js.map +0 -1
  382. package/dist/core/components/le-checkbox.d.ts +0 -11
  383. package/dist/core/components/le-component.d.ts +0 -11
  384. package/dist/core/components/le-number-input.d.ts +0 -11
  385. package/dist/core/components/le-number-input.js.map +0 -1
  386. package/dist/core/components/le-popover.d.ts +0 -11
  387. package/dist/core/components/le-popover2.js.map +0 -1
  388. package/dist/core/components/le-popup.d.ts +0 -11
  389. package/dist/core/components/le-popup.js +0 -279
  390. package/dist/core/components/le-popup.js.map +0 -1
  391. package/dist/core/components/le-round-progress.d.ts +0 -11
  392. package/dist/core/components/le-slot.d.ts +0 -11
  393. package/dist/core/components/le-stack.d.ts +0 -11
  394. package/dist/core/components/le-stack.js.map +0 -1
  395. package/dist/core/components/le-string-input.d.ts +0 -11
  396. package/dist/core/components/le-text.d.ts +0 -11
  397. package/dist/core/components/le-text.js.map +0 -1
  398. package/dist/core/components/le-turntable.d.ts +0 -11
  399. package/dist/core/esm/index-SKsXnjWI.js.map +0 -1
  400. package/dist/core/esm/index.js.map +0 -1
  401. package/dist/core/esm/le-box.entry.js +0 -182
  402. package/dist/core/esm/le-box.entry.js.map +0 -1
  403. package/dist/core/esm/le-button.entry.js +0 -90
  404. package/dist/core/esm/le-button.entry.js.map +0 -1
  405. package/dist/core/esm/le-card.entry.js +0 -27
  406. package/dist/core/esm/le-card.entry.js.map +0 -1
  407. package/dist/core/esm/le-checkbox.entry.js +0 -59
  408. package/dist/core/esm/le-checkbox.entry.js.map +0 -1
  409. package/dist/core/esm/le-kit.js +0 -21
  410. package/dist/core/esm/le-number-input.entry.js +0 -200
  411. package/dist/core/esm/le-number-input.entry.js.map +0 -1
  412. package/dist/core/esm/le-popover.entry.js +0 -346
  413. package/dist/core/esm/le-popover.entry.js.map +0 -1
  414. package/dist/core/esm/le-popup.entry.js +0 -210
  415. package/dist/core/esm/le-popup.entry.js.map +0 -1
  416. package/dist/core/esm/le-round-progress.entry.js.map +0 -1
  417. package/dist/core/esm/le-stack.entry.js +0 -133
  418. package/dist/core/esm/le-stack.entry.js.map +0 -1
  419. package/dist/core/esm/le-string-input.entry.js +0 -93
  420. package/dist/core/esm/le-string-input.entry.js.map +0 -1
  421. package/dist/core/esm/le-text.entry.js +0 -333
  422. package/dist/core/esm/le-text.entry.js.map +0 -1
  423. package/dist/core/esm/le-turntable.entry.js.map +0 -1
  424. package/dist/core/esm/loader.js +0 -11
  425. package/dist/core/esm/utils-DZdP1JiG.js +0 -146
  426. package/dist/core/esm/utils-DZdP1JiG.js.map +0 -1
  427. package/dist/core/le-kit/index.esm.js +0 -2
  428. package/dist/core/le-kit/index.esm.js.map +0 -1
  429. package/dist/core/le-kit/le-box.entry.esm.js.map +0 -1
  430. package/dist/core/le-kit/le-button.entry.esm.js.map +0 -1
  431. package/dist/core/le-kit/le-card.entry.esm.js.map +0 -1
  432. package/dist/core/le-kit/le-checkbox.entry.esm.js.map +0 -1
  433. package/dist/core/le-kit/le-kit.css +0 -1
  434. package/dist/core/le-kit/le-kit.esm.js +0 -2
  435. package/dist/core/le-kit/le-kit.esm.js.map +0 -1
  436. package/dist/core/le-kit/le-number-input.entry.esm.js.map +0 -1
  437. package/dist/core/le-kit/le-popover.entry.esm.js.map +0 -1
  438. package/dist/core/le-kit/le-popup.entry.esm.js.map +0 -1
  439. package/dist/core/le-kit/le-round-progress.entry.esm.js.map +0 -1
  440. package/dist/core/le-kit/le-stack.entry.esm.js.map +0 -1
  441. package/dist/core/le-kit/le-string-input.entry.esm.js.map +0 -1
  442. package/dist/core/le-kit/le-text.entry.esm.js.map +0 -1
  443. package/dist/core/le-kit/le-turntable.entry.esm.js.map +0 -1
  444. package/dist/core/le-kit/loader.esm.js.map +0 -1
  445. package/dist/core/le-kit/p--VxUdzYV.js.map +0 -1
  446. package/dist/core/le-kit/p-189cb775.entry.js +0 -2
  447. package/dist/core/le-kit/p-189cb775.entry.js.map +0 -1
  448. package/dist/core/le-kit/p-35c1d413.entry.js +0 -2
  449. package/dist/core/le-kit/p-35c1d413.entry.js.map +0 -1
  450. package/dist/core/le-kit/p-4f133e72.entry.js.map +0 -1
  451. package/dist/core/le-kit/p-55f70091.entry.js.map +0 -1
  452. package/dist/core/le-kit/p-5fd7b23a.entry.js +0 -2
  453. package/dist/core/le-kit/p-5fd7b23a.entry.js.map +0 -1
  454. package/dist/core/le-kit/p-6e414a5c.entry.js.map +0 -1
  455. package/dist/core/le-kit/p-7b121ca7.entry.js +0 -2
  456. package/dist/core/le-kit/p-7b121ca7.entry.js.map +0 -1
  457. package/dist/core/le-kit/p-8c81fa95.entry.js +0 -2
  458. package/dist/core/le-kit/p-8c81fa95.entry.js.map +0 -1
  459. package/dist/core/le-kit/p-9aa81442.entry.js +0 -2
  460. package/dist/core/le-kit/p-9aa81442.entry.js.map +0 -1
  461. package/dist/core/le-kit/p-SKsXnjWI.js +0 -3
  462. package/dist/core/le-kit/p-SKsXnjWI.js.map +0 -1
  463. package/dist/core/le-kit/p-a9d05ef6.entry.js.map +0 -1
  464. package/dist/core/le-kit/p-b2bd2a80.entry.js +0 -2
  465. package/dist/core/le-kit/p-b2bd2a80.entry.js.map +0 -1
  466. package/dist/core/le-kit/p-ccac9611.entry.js +0 -2
  467. package/dist/core/le-kit/p-ccac9611.entry.js.map +0 -1
  468. package/dist/core/loader/cdn.js +0 -1
  469. package/dist/core/loader/index.cjs.js +0 -1
  470. package/dist/core/loader/index.d.ts +0 -24
  471. package/dist/core/loader/index.es2017.js +0 -1
  472. package/dist/core/loader/index.js +0 -2
  473. package/dist/core/types/components/le-box/le-box.d.ts +0 -111
  474. package/dist/core/types/components/le-button/le-button.d.ts +0 -78
  475. package/dist/core/types/components/le-card/le-card.d.ts +0 -37
  476. package/dist/core/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  477. package/dist/core/types/components/le-number-input/le-number-input.d.ts +0 -106
  478. package/dist/core/types/components/le-popover/le-popover.d.ts +0 -109
  479. package/dist/core/types/components/le-popup/le-popup.api.d.ts +0 -73
  480. package/dist/core/types/components/le-popup/le-popup.d.ts +0 -122
  481. package/dist/core/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  482. package/dist/core/types/components/le-stack/le-stack.d.ts +0 -73
  483. package/dist/core/types/components/le-string-input/le-string-input.d.ts +0 -83
  484. package/dist/core/types/components/le-text/le-text.d.ts +0 -141
  485. package/dist/core/types/components/le-turntable/le-turntable.d.ts +0 -55
  486. package/dist/core/types/components.d.ts +0 -1752
  487. package/dist/core/types/global/app.d.ts +0 -73
  488. package/dist/core/types/index.d.ts +0 -15
  489. package/dist/core/types/stencil-public-runtime.d.ts +0 -1756
  490. package/dist/core/types/types/blocks.d.ts +0 -136
  491. package/dist/core/types/types/options.d.ts +0 -124
  492. package/dist/core/types/utils/utils.d.ts +0 -54
  493. package/dist/le-kit/index-CAY3Hk_i.js +0 -4559
  494. package/dist/le-kit/index-CAY3Hk_i.js.map +0 -1
  495. package/dist/le-kit/le-button.entry.esm.js.map +0 -1
  496. package/dist/le-kit/le-button.entry.js +0 -90
  497. package/dist/le-kit/le-checkbox.entry.esm.js.map +0 -1
  498. package/dist/le-kit/le-checkbox.entry.js +0 -59
  499. package/dist/le-kit/le-component.entry.esm.js.map +0 -1
  500. package/dist/le-kit/le-popover.entry.esm.js.map +0 -1
  501. package/dist/le-kit/le-popover.entry.js +0 -346
  502. package/dist/le-kit/le-popup.entry.esm.js.map +0 -1
  503. package/dist/le-kit/le-popup.entry.js +0 -210
  504. package/dist/le-kit/le-round-progress.entry.js +0 -104
  505. package/dist/le-kit/le-slot.entry.esm.js.map +0 -1
  506. package/dist/le-kit/le-string-input.entry.esm.js.map +0 -1
  507. package/dist/le-kit/le-string-input.entry.js +0 -93
  508. package/dist/le-kit/le-turntable.entry.js +0 -137
  509. /package/dist/{core/cjs → cjs}/le-kit.cjs.js.map +0 -0
  510. /package/dist/{core/cjs → cjs}/loader.cjs.js.map +0 -0
  511. /package/dist/{core/collection → collection}/components/le-box/le-box.default.css +0 -0
  512. /package/dist/{core/collection → collection}/components/le-checkbox/le-checkbox.css +0 -0
  513. /package/dist/{core/collection → collection}/components/le-number-input/le-number-input.css +0 -0
  514. /package/dist/{core/collection → collection}/components/le-popup/le-popup.css +0 -0
  515. /package/dist/{core/collection → collection}/components/le-round-progress/le-round-progress.css +0 -0
  516. /package/dist/{core/collection → collection}/components/le-stack/le-stack.default.css +0 -0
  517. /package/dist/{core/collection → collection}/components/le-text/le-text.default.css +0 -0
  518. /package/dist/{core/collection → collection}/components/le-turntable/le-turntable.css +0 -0
  519. /package/dist/{core/collection → collection}/global/app.js +0 -0
  520. /package/dist/{core/collection → collection}/index.js +0 -0
  521. /package/dist/{core/collection → collection}/types/blocks.js +0 -0
  522. /package/dist/{core/collection → collection}/types/options.js +0 -0
  523. /package/dist/{core/collection → collection}/utils/utils.js +0 -0
  524. /package/dist/{core/components → components}/le-button.js.map +0 -0
  525. /package/dist/{core/components → components}/le-checkbox.js.map +0 -0
  526. /package/dist/{core/components → components}/le-component.js.map +0 -0
  527. /package/dist/{core/components → components}/le-popover.js +0 -0
  528. /package/dist/{core/components → components}/le-popover.js.map +0 -0
  529. /package/dist/{core/components → components}/le-round-progress.js.map +0 -0
  530. /package/dist/{core/components → components}/le-slot.js.map +0 -0
  531. /package/dist/{core/components → components}/le-string-input.js.map +0 -0
  532. /package/dist/{core/components → components}/le-turntable.js.map +0 -0
  533. /package/dist/{core/components → components}/utils.js +0 -0
  534. /package/dist/{core/components → components}/utils.js.map +0 -0
  535. /package/dist/{core/esm → esm}/le-kit.js.map +0 -0
  536. /package/dist/{core/esm → esm}/loader.js.map +0 -0
  537. /package/dist/{core/index.cjs.js → index.cjs.js} +0 -0
  538. /package/dist/{core/index.js → index.js} +0 -0
@@ -0,0 +1,761 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import { generateId } from "../../utils/utils";
3
+ /**
4
+ * Internal dropdown base component that provides shared functionality
5
+ * for select, combobox, and multiselect components.
6
+ *
7
+ * Wraps le-popover for positioning and provides:
8
+ * - Option list rendering with groups
9
+ * - Keyboard navigation (↑↓, Enter, Escape, Home/End)
10
+ * - Option filtering support
11
+ * - Single and multi-select modes
12
+ *
13
+ * @cmsInternal true
14
+ * @cmsCategory System
15
+ *
16
+ * @slot trigger - The element that triggers the dropdown
17
+ */
18
+ export class LeDropdownBase {
19
+ el;
20
+ /**
21
+ * The options to display in the dropdown.
22
+ */
23
+ options = [];
24
+ /**
25
+ * Current value(s) - single value or array for multiselect.
26
+ */
27
+ value;
28
+ /**
29
+ * Whether multiple selection is allowed.
30
+ */
31
+ multiple = false;
32
+ /**
33
+ * Whether the dropdown is open.
34
+ */
35
+ open = false;
36
+ /**
37
+ * Whether the dropdown is disabled.
38
+ */
39
+ disabled = false;
40
+ /**
41
+ * Filter function for options.
42
+ * Return true to include the option.
43
+ */
44
+ filterFn;
45
+ /**
46
+ * Current filter query string.
47
+ */
48
+ filterQuery = '';
49
+ /**
50
+ * Placeholder text when no options match filter.
51
+ */
52
+ emptyText = 'No options';
53
+ /**
54
+ * Whether to show checkboxes for multiselect mode.
55
+ */
56
+ showCheckboxes = true;
57
+ /**
58
+ * Maximum height of the dropdown list.
59
+ */
60
+ maxHeight = '300px';
61
+ /**
62
+ * Width of the dropdown. If not set, matches trigger width.
63
+ */
64
+ width;
65
+ /**
66
+ * Sets the dropdown to full width of the trigger.
67
+ */
68
+ fullWidth = false;
69
+ /**
70
+ * Whether to close the dropdown when clicking outside.
71
+ * (used to support combobox with input focus)
72
+ */
73
+ closeOnClickOutside = true;
74
+ /**
75
+ * Emitted when an option is selected.
76
+ */
77
+ leOptionSelect;
78
+ /**
79
+ * Emitted when the dropdown opens.
80
+ */
81
+ leDropdownOpen;
82
+ /**
83
+ * Emitted when the dropdown closes.
84
+ */
85
+ leDropdownClose;
86
+ focusedIndex = -1;
87
+ filteredOptions = [];
88
+ popoverEl;
89
+ listEl;
90
+ triggerWidth = 0;
91
+ handleOptionsChange() {
92
+ this.updateFilteredOptions();
93
+ }
94
+ componentWillLoad() {
95
+ this.updateFilteredOptions();
96
+ }
97
+ updateFilteredOptions() {
98
+ // Remember previously focused option
99
+ const focusedOption = this.filteredOptions[this.focusedIndex];
100
+ if (!this.filterQuery || !this.filterFn) {
101
+ this.filteredOptions = this.options;
102
+ }
103
+ else {
104
+ this.filteredOptions = this.options.filter(opt => this.filterFn(opt, this.filterQuery));
105
+ }
106
+ // try to maintain focus on same option if still present
107
+ if (focusedOption) {
108
+ const newIndex = this.filteredOptions.indexOf(focusedOption);
109
+ this.focusedIndex = newIndex >= 0 ? newIndex : this.getInitialFocusIndex();
110
+ }
111
+ else {
112
+ this.focusedIndex = -1;
113
+ }
114
+ }
115
+ getSelectableOptions() {
116
+ return this.filteredOptions.filter(opt => !opt.disabled);
117
+ }
118
+ isSelected(option) {
119
+ const optValue = option.value ?? option.label;
120
+ if (this.multiple && Array.isArray(this.value)) {
121
+ setTimeout(() => {
122
+ this.popoverEl?.updatePosition();
123
+ }, 50);
124
+ return this.value.includes(optValue);
125
+ }
126
+ return this.value === optValue;
127
+ }
128
+ handleOptionClick(option, e) {
129
+ e.preventDefault();
130
+ e.stopPropagation();
131
+ if (option.disabled)
132
+ return;
133
+ this.leOptionSelect.emit({
134
+ value: option.value ?? option.label,
135
+ option,
136
+ });
137
+ // Close dropdown for single select
138
+ if (!this.multiple) {
139
+ this.hide();
140
+ }
141
+ }
142
+ handleKeyDown = (e) => {
143
+ if (!this.open)
144
+ return;
145
+ const optionCount = this.filteredOptions.length;
146
+ switch (e.key) {
147
+ case 'ArrowDown':
148
+ e.preventDefault();
149
+ // check for the next non-disabled option and focus
150
+ let nextIndex = this.focusedIndex < optionCount - 1 ? this.focusedIndex + 1 : 0;
151
+ while (this.filteredOptions[nextIndex].disabled) {
152
+ nextIndex = ++nextIndex < optionCount ? nextIndex : 0;
153
+ }
154
+ this.focusedIndex = nextIndex;
155
+ this.scrollToFocused();
156
+ break;
157
+ case 'ArrowUp':
158
+ e.preventDefault();
159
+ // check for the previous non-disabled option and focus
160
+ let prevIndex = this.focusedIndex > 0 ? this.focusedIndex - 1 : optionCount - 1;
161
+ while (this.filteredOptions[prevIndex].disabled) {
162
+ prevIndex = --prevIndex >= 0 ? prevIndex : optionCount - 1;
163
+ }
164
+ this.focusedIndex = prevIndex;
165
+ this.scrollToFocused();
166
+ break;
167
+ case 'Home':
168
+ e.preventDefault();
169
+ // check for the first non-disabled option and focus
170
+ let firstIndex = 0;
171
+ while (this.filteredOptions[firstIndex].disabled) {
172
+ firstIndex++;
173
+ if (firstIndex >= optionCount) {
174
+ firstIndex = -1;
175
+ break;
176
+ }
177
+ }
178
+ this.focusedIndex = firstIndex;
179
+ this.scrollToFocused();
180
+ break;
181
+ case 'End':
182
+ e.preventDefault();
183
+ // check for the last non-disabled option and focus
184
+ let lastIndex = optionCount - 1;
185
+ while (this.filteredOptions[lastIndex].disabled) {
186
+ lastIndex--;
187
+ if (lastIndex < 0) {
188
+ lastIndex = -1;
189
+ break;
190
+ }
191
+ }
192
+ this.focusedIndex = lastIndex;
193
+ this.scrollToFocused();
194
+ break;
195
+ case 'Enter':
196
+ case ' ':
197
+ e.preventDefault();
198
+ if (this.focusedIndex >= 0 && this.focusedIndex < optionCount) {
199
+ const option = this.filteredOptions[this.focusedIndex];
200
+ if (!option || option.disabled)
201
+ return;
202
+ this.leOptionSelect.emit({
203
+ value: option.value ?? option.label,
204
+ option,
205
+ });
206
+ if (!this.multiple) {
207
+ this.hide();
208
+ }
209
+ }
210
+ break;
211
+ case 'Escape':
212
+ e.preventDefault();
213
+ this.hide();
214
+ break;
215
+ case 'Tab':
216
+ this.hide();
217
+ break;
218
+ }
219
+ };
220
+ scrollToFocused() {
221
+ if (!this.listEl || this.focusedIndex < 0)
222
+ return;
223
+ const focusedEl = this.listEl.querySelector(`[data-index="${this.focusedIndex}"]`);
224
+ if (focusedEl) {
225
+ focusedEl.scrollIntoView({ block: 'nearest' });
226
+ }
227
+ }
228
+ handlePopoverOpen = () => {
229
+ this.open = true;
230
+ this.focusedIndex = this.getInitialFocusIndex();
231
+ this.leDropdownOpen.emit();
232
+ // Add keyboard listener
233
+ document.addEventListener('keydown', this.handleKeyDown);
234
+ };
235
+ handlePopoverClose = () => {
236
+ this.open = false;
237
+ this.focusedIndex = -1;
238
+ this.leDropdownClose.emit();
239
+ // Remove keyboard listener
240
+ document.removeEventListener('keydown', this.handleKeyDown);
241
+ };
242
+ getInitialFocusIndex() {
243
+ // Focus on first selected option, or first option
244
+ const selectableOptions = this.getSelectableOptions();
245
+ const selectedIndex = selectableOptions.findIndex(opt => this.isSelected(opt));
246
+ return selectedIndex >= 0 ? selectedIndex : 0;
247
+ }
248
+ /**
249
+ * Opens the dropdown.
250
+ */
251
+ async show() {
252
+ if (this.disabled)
253
+ return;
254
+ // Capture trigger width for matching dropdown width
255
+ const trigger = this.el.querySelector('[slot="trigger"]');
256
+ if (trigger) {
257
+ this.triggerWidth = trigger.offsetWidth;
258
+ }
259
+ await this.popoverEl?.show();
260
+ }
261
+ /**
262
+ * Closes the dropdown.
263
+ */
264
+ async hide() {
265
+ await this.popoverEl?.hide();
266
+ }
267
+ /**
268
+ * Toggles the dropdown.
269
+ */
270
+ async toggle() {
271
+ if (this.open) {
272
+ await this.hide();
273
+ }
274
+ else {
275
+ await this.show();
276
+ }
277
+ }
278
+ renderIcon(icon, className) {
279
+ if (!icon)
280
+ return null;
281
+ if (icon.startsWith('http') || icon.startsWith('/')) {
282
+ return h("img", { class: className, src: icon, alt: "" });
283
+ }
284
+ return h("span", { class: className }, icon);
285
+ }
286
+ renderOption(option, index) {
287
+ const isSelected = this.isSelected(option);
288
+ const isFocused = index === this.focusedIndex;
289
+ const optionId = option.id || generateId();
290
+ return (h("div", { class: {
291
+ 'dropdown-option': true,
292
+ 'is-selected': isSelected,
293
+ 'is-focused': isFocused,
294
+ 'is-disabled': !!option.disabled,
295
+ }, role: "option", id: optionId, "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": option.disabled ? 'true' : undefined, "data-index": index, onClick: e => this.handleOptionClick(option, e), onMouseEnter: () => {
296
+ if (!option.disabled) {
297
+ this.focusedIndex = index;
298
+ }
299
+ } }, this.renderIcon(option.iconStart, 'option-icon-start'), h("div", { class: "option-content" }, h("span", { class: "option-label" }, option.label), option.description && h("span", { class: "option-description" }, option.description)), this.renderIcon(option.iconEnd, 'option-icon-end'), (!this.multiple || this.showCheckboxes) && isSelected && (h("span", { class: "option-check" }, h("svg", { viewBox: "0 0 16 16", fill: "currentColor" }, h("path", { d: "M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z" }))))));
300
+ }
301
+ renderOptions() {
302
+ if (this.filteredOptions.length === 0) {
303
+ return h("div", { class: "dropdown-empty" }, this.emptyText);
304
+ }
305
+ // Group options if they have group property
306
+ const grouped = new Map();
307
+ const ungrouped = [];
308
+ this.filteredOptions.forEach(opt => {
309
+ if (opt.group) {
310
+ const group = grouped.get(opt.group) || [];
311
+ group.push(opt);
312
+ grouped.set(opt.group, group);
313
+ }
314
+ else {
315
+ ungrouped.push(opt);
316
+ }
317
+ });
318
+ // Build flat list with group headers for index tracking
319
+ let globalIndex = 0;
320
+ const elements = [];
321
+ // Render ungrouped options first
322
+ ungrouped.forEach(opt => {
323
+ if (opt.separator === 'before') {
324
+ elements.push(h("div", { class: "dropdown-separator", role: "separator" }));
325
+ }
326
+ elements.push(this.renderOption(opt, globalIndex++));
327
+ if (opt.separator === 'after') {
328
+ elements.push(h("div", { class: "dropdown-separator", role: "separator" }));
329
+ }
330
+ });
331
+ // Render grouped options
332
+ grouped.forEach((options, groupLabel) => {
333
+ elements.push(h("div", { class: "dropdown-group-header", role: "presentation" }, groupLabel));
334
+ options.forEach(opt => {
335
+ elements.push(this.renderOption(opt, globalIndex++));
336
+ });
337
+ });
338
+ return elements;
339
+ }
340
+ render() {
341
+ const dropdownWidth = this.width || (this.triggerWidth ? `${this.triggerWidth}px` : undefined);
342
+ return (h(Host, { key: 'c074cbfbc9a802ed01935b27baa6d0074d87c2e1' }, h("le-popover", { key: 'c5ff7f61f81df0f482e6a809a85f29ac73674de6', ref: el => (this.popoverEl = el), position: "bottom", align: "start", showClose: false, closeOnClickOutside: this.closeOnClickOutside, closeOnEscape: true, offset: 4, width: dropdownWidth, minWidth: "150px", "trigger-full-width": this.fullWidth, onLePopoverOpen: this.handlePopoverOpen, onLePopoverClose: this.handlePopoverClose }, h("slot", { key: 'b5ce8dba5357be102e282f10d0041cdd5ee11cb4', name: "trigger", slot: "trigger" }), h("slot", { key: '2534ee79fab3b7a1a44c61ab7e977c6f2f2be4d7', name: "header" }), h("div", { key: 'fd37d09cca2c96557030df201e095fab7a441fd9', class: "dropdown-list", role: "listbox", "aria-multiselectable": this.multiple ? 'true' : undefined, ref: el => (this.listEl = el), style: { maxHeight: this.maxHeight } }, this.renderOptions()))));
343
+ }
344
+ static get is() { return "le-dropdown-base"; }
345
+ static get encapsulation() { return "shadow"; }
346
+ static get originalStyleUrls() {
347
+ return {
348
+ "$": ["le-dropdown-base.css"]
349
+ };
350
+ }
351
+ static get styleUrls() {
352
+ return {
353
+ "$": ["le-dropdown-base.css"]
354
+ };
355
+ }
356
+ static get properties() {
357
+ return {
358
+ "options": {
359
+ "type": "unknown",
360
+ "mutable": false,
361
+ "complexType": {
362
+ "original": "LeOption[]",
363
+ "resolved": "LeOption[]",
364
+ "references": {
365
+ "LeOption": {
366
+ "location": "import",
367
+ "path": "../../types/options",
368
+ "id": "src/types/options.ts::LeOption"
369
+ }
370
+ }
371
+ },
372
+ "required": false,
373
+ "optional": false,
374
+ "docs": {
375
+ "tags": [],
376
+ "text": "The options to display in the dropdown."
377
+ },
378
+ "getter": false,
379
+ "setter": false,
380
+ "defaultValue": "[]"
381
+ },
382
+ "value": {
383
+ "type": "any",
384
+ "mutable": false,
385
+ "complexType": {
386
+ "original": "LeOptionValue | LeOptionValue[]",
387
+ "resolved": "LeOptionValue[] | number | string",
388
+ "references": {
389
+ "LeOptionValue": {
390
+ "location": "import",
391
+ "path": "../../types/options",
392
+ "id": "src/types/options.ts::LeOptionValue"
393
+ }
394
+ }
395
+ },
396
+ "required": false,
397
+ "optional": true,
398
+ "docs": {
399
+ "tags": [],
400
+ "text": "Current value(s) - single value or array for multiselect."
401
+ },
402
+ "getter": false,
403
+ "setter": false,
404
+ "reflect": false,
405
+ "attribute": "value"
406
+ },
407
+ "multiple": {
408
+ "type": "boolean",
409
+ "mutable": false,
410
+ "complexType": {
411
+ "original": "boolean",
412
+ "resolved": "boolean",
413
+ "references": {}
414
+ },
415
+ "required": false,
416
+ "optional": false,
417
+ "docs": {
418
+ "tags": [],
419
+ "text": "Whether multiple selection is allowed."
420
+ },
421
+ "getter": false,
422
+ "setter": false,
423
+ "reflect": false,
424
+ "attribute": "multiple",
425
+ "defaultValue": "false"
426
+ },
427
+ "open": {
428
+ "type": "boolean",
429
+ "mutable": true,
430
+ "complexType": {
431
+ "original": "boolean",
432
+ "resolved": "boolean",
433
+ "references": {}
434
+ },
435
+ "required": false,
436
+ "optional": false,
437
+ "docs": {
438
+ "tags": [],
439
+ "text": "Whether the dropdown is open."
440
+ },
441
+ "getter": false,
442
+ "setter": false,
443
+ "reflect": true,
444
+ "attribute": "open",
445
+ "defaultValue": "false"
446
+ },
447
+ "disabled": {
448
+ "type": "boolean",
449
+ "mutable": false,
450
+ "complexType": {
451
+ "original": "boolean",
452
+ "resolved": "boolean",
453
+ "references": {}
454
+ },
455
+ "required": false,
456
+ "optional": false,
457
+ "docs": {
458
+ "tags": [],
459
+ "text": "Whether the dropdown is disabled."
460
+ },
461
+ "getter": false,
462
+ "setter": false,
463
+ "reflect": true,
464
+ "attribute": "disabled",
465
+ "defaultValue": "false"
466
+ },
467
+ "filterFn": {
468
+ "type": "unknown",
469
+ "mutable": false,
470
+ "complexType": {
471
+ "original": "(option: LeOption, query: string) => boolean",
472
+ "resolved": "(option: LeOption, query: string) => boolean",
473
+ "references": {
474
+ "LeOption": {
475
+ "location": "import",
476
+ "path": "../../types/options",
477
+ "id": "src/types/options.ts::LeOption"
478
+ }
479
+ }
480
+ },
481
+ "required": false,
482
+ "optional": true,
483
+ "docs": {
484
+ "tags": [],
485
+ "text": "Filter function for options.\nReturn true to include the option."
486
+ },
487
+ "getter": false,
488
+ "setter": false
489
+ },
490
+ "filterQuery": {
491
+ "type": "string",
492
+ "mutable": false,
493
+ "complexType": {
494
+ "original": "string",
495
+ "resolved": "string",
496
+ "references": {}
497
+ },
498
+ "required": false,
499
+ "optional": false,
500
+ "docs": {
501
+ "tags": [],
502
+ "text": "Current filter query string."
503
+ },
504
+ "getter": false,
505
+ "setter": false,
506
+ "reflect": false,
507
+ "attribute": "filter-query",
508
+ "defaultValue": "''"
509
+ },
510
+ "emptyText": {
511
+ "type": "string",
512
+ "mutable": false,
513
+ "complexType": {
514
+ "original": "string",
515
+ "resolved": "string",
516
+ "references": {}
517
+ },
518
+ "required": false,
519
+ "optional": false,
520
+ "docs": {
521
+ "tags": [],
522
+ "text": "Placeholder text when no options match filter."
523
+ },
524
+ "getter": false,
525
+ "setter": false,
526
+ "reflect": false,
527
+ "attribute": "empty-text",
528
+ "defaultValue": "'No options'"
529
+ },
530
+ "showCheckboxes": {
531
+ "type": "boolean",
532
+ "mutable": false,
533
+ "complexType": {
534
+ "original": "boolean",
535
+ "resolved": "boolean",
536
+ "references": {}
537
+ },
538
+ "required": false,
539
+ "optional": false,
540
+ "docs": {
541
+ "tags": [],
542
+ "text": "Whether to show checkboxes for multiselect mode."
543
+ },
544
+ "getter": false,
545
+ "setter": false,
546
+ "reflect": false,
547
+ "attribute": "show-checkboxes",
548
+ "defaultValue": "true"
549
+ },
550
+ "maxHeight": {
551
+ "type": "string",
552
+ "mutable": false,
553
+ "complexType": {
554
+ "original": "string",
555
+ "resolved": "string",
556
+ "references": {}
557
+ },
558
+ "required": false,
559
+ "optional": false,
560
+ "docs": {
561
+ "tags": [],
562
+ "text": "Maximum height of the dropdown list."
563
+ },
564
+ "getter": false,
565
+ "setter": false,
566
+ "reflect": false,
567
+ "attribute": "max-height",
568
+ "defaultValue": "'300px'"
569
+ },
570
+ "width": {
571
+ "type": "string",
572
+ "mutable": false,
573
+ "complexType": {
574
+ "original": "string",
575
+ "resolved": "string",
576
+ "references": {}
577
+ },
578
+ "required": false,
579
+ "optional": true,
580
+ "docs": {
581
+ "tags": [],
582
+ "text": "Width of the dropdown. If not set, matches trigger width."
583
+ },
584
+ "getter": false,
585
+ "setter": false,
586
+ "reflect": false,
587
+ "attribute": "width"
588
+ },
589
+ "fullWidth": {
590
+ "type": "boolean",
591
+ "mutable": false,
592
+ "complexType": {
593
+ "original": "boolean",
594
+ "resolved": "boolean",
595
+ "references": {}
596
+ },
597
+ "required": false,
598
+ "optional": false,
599
+ "docs": {
600
+ "tags": [],
601
+ "text": "Sets the dropdown to full width of the trigger."
602
+ },
603
+ "getter": false,
604
+ "setter": false,
605
+ "reflect": false,
606
+ "attribute": "full-width",
607
+ "defaultValue": "false"
608
+ },
609
+ "closeOnClickOutside": {
610
+ "type": "boolean",
611
+ "mutable": false,
612
+ "complexType": {
613
+ "original": "boolean",
614
+ "resolved": "boolean",
615
+ "references": {}
616
+ },
617
+ "required": false,
618
+ "optional": false,
619
+ "docs": {
620
+ "tags": [],
621
+ "text": "Whether to close the dropdown when clicking outside.\n(used to support combobox with input focus)"
622
+ },
623
+ "getter": false,
624
+ "setter": false,
625
+ "reflect": false,
626
+ "attribute": "close-on-click-outside",
627
+ "defaultValue": "true"
628
+ }
629
+ };
630
+ }
631
+ static get states() {
632
+ return {
633
+ "focusedIndex": {},
634
+ "filteredOptions": {}
635
+ };
636
+ }
637
+ static get events() {
638
+ return [{
639
+ "method": "leOptionSelect",
640
+ "name": "leOptionSelect",
641
+ "bubbles": true,
642
+ "cancelable": true,
643
+ "composed": true,
644
+ "docs": {
645
+ "tags": [],
646
+ "text": "Emitted when an option is selected."
647
+ },
648
+ "complexType": {
649
+ "original": "LeOptionSelectDetail",
650
+ "resolved": "LeOptionSelectDetail",
651
+ "references": {
652
+ "LeOptionSelectDetail": {
653
+ "location": "import",
654
+ "path": "../../types/options",
655
+ "id": "src/types/options.ts::LeOptionSelectDetail"
656
+ }
657
+ }
658
+ }
659
+ }, {
660
+ "method": "leDropdownOpen",
661
+ "name": "leDropdownOpen",
662
+ "bubbles": true,
663
+ "cancelable": true,
664
+ "composed": true,
665
+ "docs": {
666
+ "tags": [],
667
+ "text": "Emitted when the dropdown opens."
668
+ },
669
+ "complexType": {
670
+ "original": "void",
671
+ "resolved": "void",
672
+ "references": {}
673
+ }
674
+ }, {
675
+ "method": "leDropdownClose",
676
+ "name": "leDropdownClose",
677
+ "bubbles": true,
678
+ "cancelable": true,
679
+ "composed": true,
680
+ "docs": {
681
+ "tags": [],
682
+ "text": "Emitted when the dropdown closes."
683
+ },
684
+ "complexType": {
685
+ "original": "void",
686
+ "resolved": "void",
687
+ "references": {}
688
+ }
689
+ }];
690
+ }
691
+ static get methods() {
692
+ return {
693
+ "show": {
694
+ "complexType": {
695
+ "signature": "() => Promise<void>",
696
+ "parameters": [],
697
+ "references": {
698
+ "Promise": {
699
+ "location": "global",
700
+ "id": "global::Promise"
701
+ },
702
+ "HTMLElement": {
703
+ "location": "global",
704
+ "id": "global::HTMLElement"
705
+ }
706
+ },
707
+ "return": "Promise<void>"
708
+ },
709
+ "docs": {
710
+ "text": "Opens the dropdown.",
711
+ "tags": []
712
+ }
713
+ },
714
+ "hide": {
715
+ "complexType": {
716
+ "signature": "() => Promise<void>",
717
+ "parameters": [],
718
+ "references": {
719
+ "Promise": {
720
+ "location": "global",
721
+ "id": "global::Promise"
722
+ }
723
+ },
724
+ "return": "Promise<void>"
725
+ },
726
+ "docs": {
727
+ "text": "Closes the dropdown.",
728
+ "tags": []
729
+ }
730
+ },
731
+ "toggle": {
732
+ "complexType": {
733
+ "signature": "() => Promise<void>",
734
+ "parameters": [],
735
+ "references": {
736
+ "Promise": {
737
+ "location": "global",
738
+ "id": "global::Promise"
739
+ }
740
+ },
741
+ "return": "Promise<void>"
742
+ },
743
+ "docs": {
744
+ "text": "Toggles the dropdown.",
745
+ "tags": []
746
+ }
747
+ }
748
+ };
749
+ }
750
+ static get elementRef() { return "el"; }
751
+ static get watchers() {
752
+ return [{
753
+ "propName": "options",
754
+ "methodName": "handleOptionsChange"
755
+ }, {
756
+ "propName": "filterQuery",
757
+ "methodName": "handleOptionsChange"
758
+ }];
759
+ }
760
+ }
761
+ //# sourceMappingURL=le-dropdown-base.js.map