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
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-button.entry.esm.js","sources":["src/components/le-button/le-button.default.css?tag=le-button&encapsulation=shadow","src/components/le-button/le-button.tsx"],"sourcesContent":["/**\n * Default mode styles for le-button\n * Uses global design tokens with component-specific overrides\n */\n:host {\n display: inline-block;\n \n /* Component-specific tokens */\n --le-button-border-radius: var(--le-radius-md);\n --le-button-padding-x: 0.4rem;\n --le-button-padding-y: 0.4rem;\n --le-button-small-padding: 0.25rem;\n --le-button-font-size: var(--le-font-size-md);\n --le-button-font-weight: var(--le-font-weight-medium);\n --le-button-transition: var(--le-transition-fast);\n --le-button-icon-aspect-ratio: 1;\n \n /* Internal state variables - set by color classes */\n --_btn-bg: var(--le-color-primary);\n --_btn-bg-hover: var(--le-color-primary-dark);\n --_btn-bg-system: var(--le-color-black);\n --_btn-color: var(--le-color-primary-contrast);\n --_btn-border-color: var(--le-color-primary);\n}\n\n:host([full-width]) {\n display: block;\n width: 100%;\n}\n\n.button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--le-spacing-3);\n width: 100%;\n padding: var(--le-button-padding-y) var(--le-button-padding-x);\n border: 1px solid var(--_btn-border-color);\n border-radius: var(--le-button-border-radius);\n background: var(--_btn-bg);\n color: var(--_btn-color);\n font-family: var(--le-font-family-base);\n font-size: var(--le-button-font-size);\n font-weight: var(--le-button-font-weight);\n line-height: var(--le-line-height-tight);\n text-decoration: none;\n cursor: pointer;\n transition: \n background-color var(--le-button-transition) var(--le-transition-easing),\n border-color var(--le-button-transition) var(--le-transition-easing),\n box-shadow var(--le-button-transition) var(--le-transition-easing),\n transform var(--le-button-transition) var(--le-transition-easing);\n}\n\n.button:hover:not(:disabled) {\n background: var(--_btn-bg-hover);\n border-color: var(--_btn-bg-hover);\n}\n\n.button:active:not(:disabled) {\n transform: translateY(1px);\n}\n\n.button:focus-visible {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* ===========================================\n * COLOR VARIANTS - Use theme semantic colors\n * =========================================== */\n\n/* Primary (default) */\n:host > le-component.color-primary {\n --_btn-bg: var(--le-color-primary);\n --_btn-bg-hover: var(--le-color-primary-dark);\n --_btn-color: var(--le-color-primary-contrast);\n --_btn-border-color: var(--le-color-primary);\n}\n\n/* Secondary */\n:host > le-component.color-secondary {\n --_btn-bg: var(--le-color-secondary);\n --_btn-bg-hover: var(--le-color-secondary-dark);\n --_btn-color: var(--le-color-secondary-contrast);\n --_btn-border-color: var(--le-color-secondary);\n}\n\n/* Success */\n:host > le-component.color-success {\n --_btn-bg: var(--le-color-success);\n --_btn-bg-hover: var(--le-color-success-dark);\n --_btn-color: var(--le-color-success-contrast);\n --_btn-border-color: var(--le-color-success);\n}\n\n/* Warning */\n:host > le-component.color-warning {\n --_btn-bg: var(--le-color-warning);\n --_btn-bg-hover: var(--le-color-warning-dark);\n --_btn-color: var(--le-color-warning-contrast);\n --_btn-border-color: var(--le-color-warning);\n}\n\n/* Danger */\n:host > le-component.color-danger {\n --_btn-bg: var(--le-color-danger);\n --_btn-bg-hover: var(--le-color-danger-dark);\n --_btn-color: var(--le-color-danger-contrast);\n --_btn-border-color: var(--le-color-danger);\n}\n\n/* Info */\n:host > le-component.color-info {\n --_btn-bg: var(--le-color-info);\n --_btn-bg-hover: var(--le-color-info-dark);\n --_btn-color: var(--le-color-info-contrast);\n --_btn-border-color: var(--le-color-info);\n}\n\n/* ===========================================\n * STYLE VARIANTS\n * =========================================== */\n\n/* Solid (default) - already styled by color classes */\n:host > le-component.variant-solid .button {\n box-shadow: var(--le-shadow-sm);\n}\n\n:host > le-component.variant-solid .button:hover:not(:disabled) {\n box-shadow: var(--le-shadow-md);\n}\n\n/* Outlined */\n:host > le-component.variant-outlined .button {\n background: transparent;\n color: var(--_btn-bg);\n border-color: var(--_btn-border-color);\n}\n\n:host > le-component.variant-outlined .button:hover:not(:disabled) {\n background: var(--_btn-bg);\n color: var(--_btn-color);\n}\n\n/* Clear (ghost) */\n:host > le-component.variant-clear .button {\n background: transparent;\n color: var(--_btn-bg);\n border-color: transparent;\n}\n\n:host > le-component.variant-clear .button:hover:not(:disabled) {\n background: var(--le-color-gray-100);\n border-color: transparent;\n}\n\n/* System (controls without access) */\n:host > le-component.variant-system .button {\n background: transparent;\n color: var(--_btn-bg-system);\n border-color: transparent;\n}\n\n/* ===========================================\n * SIZES\n * =========================================== */\n:host > le-component.size-small .button {\n --le-button-padding-x: 0.4rem;\n --le-button-padding-y: 0.3rem;\n --le-button-padding-top: 0.35rem;\n --le-button-font-size: var(--le-button-small-font-size, var(--le-font-size-xs));\n}\n\n:host > le-component.size-large .button {\n --le-button-padding-x: 0.9rem;\n --le-button-padding-y: 0.6rem;\n --le-button-font-size: var(--le-font-size-xl);\n}\n\n/* ===========================================\n * STATES & MODIFIERS\n * =========================================== */\n\n/* Full width */\n:host > le-component.full-width {\n display: block;\n width: 100%;\n}\n\n/* Selected state */\n:host > le-component.selected .button {\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);\n}\n\n:host > le-component.variant-outlined.selected .button,\n:host > le-component.variant-clear.selected .button {\n background: var(--_btn-bg);\n color: var(--_btn-color);\n}\n\n/* Icon only */\n:host > le-component.icon-only .button {\n padding: 0.5rem;\n padding-bottom: 0.6rem;\n aspect-ratio: var(--le-button-icon-aspect-ratio, 1);\n}\n\n:host > le-component.icon-only.size-small .button {\n padding: var(--le-button-small-padding, 0.25rem);\n}\n\n:host > le-component.icon-only.size-large .button {\n padding: 0.75rem;\n}\n\n/* Hide content in icon-only mode */\n:host > le-component.icon-only .content {\n display: none;\n}\n\n/* ===========================================\n * CONTENT (le-slot wrapper)\n * =========================================== */\n.content {\n display: inline;\n}\n\n.content:empty {\n display: none;\n}\n\n/* ===========================================\n * ICON WRAPPERS & SLOTS\n * =========================================== */\n.icon-start,\n.icon-only,\n.icon-end {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.icon-start:empty,\n.icon-only:empty,\n.icon-end:empty {\n display: none;\n}\n\n::slotted([slot=\"icon-start\"]),\n::slotted([slot=\"icon-only\"]),\n::slotted([slot=\"icon-end\"]) {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.125em;\n height: 1.125em;\n}\n","import { Component, Prop, h, Element, Fragment, Event, EventEmitter } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible button component with multiple variants and states.\n *\n * @slot - Button text content\n * @slot icon-start - Icon before the text\n * @slot icon-end - Icon after the text\n *\n * @cssprop --le-button-bg - Button background color\n * @cssprop --le-button-color - Button text color\n * @cssprop --le-button-border-radius - Button border radius\n * @cssprop --le-button-padding-x - Button horizontal padding\n * @cssprop --le-button-padding-y - Button vertical padding\n *\n * @csspart button - The native button element\n * @csspart content - The button content wrapper\n *\n * @cmsEditable true\n * @cmsCategory Actions\n */\n@Component({\n tag: 'le-button',\n styleUrl: 'le-button.default.css',\n shadow: true,\n})\nexport class LeButton {\n @Element() el: HTMLElement;\n\n /**\n * Mode of the popover should be 'default' for internal use\n */\n @Prop({ mutable: true, reflect: true }) mode: 'default' | 'admin';\n\n /**\n * Button variant style\n * @allowedValues solid | outlined | clear\n */\n @Prop() variant: 'solid' | 'outlined' | 'clear' | 'system' = 'solid';\n\n /**\n * Button color theme (uses theme semantic colors)\n * @allowedValues primary | secondary | success | warning | danger | info\n */\n @Prop() color: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' = 'primary';\n\n /**\n * Button size\n * @allowedValues small | medium | large\n */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether the button is in a selected/active state\n */\n @Prop() selected: boolean = false;\n\n /**\n * Whether the button takes full width of its container\n */\n @Prop({ reflect: true }) fullWidth: boolean = false;\n\n /**\n * Whether the button displays only an icon (square aspect ratio)\n */\n @Prop() iconOnly: boolean = false;\n\n /**\n * Whether the button is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The button type attribute\n * @allowedValues button | submit | reset\n */\n @Prop() type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Optional href to make the button act as a link\n */\n @Prop() href?: string;\n\n /**\n * Link target when href is set\n */\n @Prop() target?: string;\n\n /**\n * Emitted when the button is clicked.\n * This is a custom event that wraps the native click but ensures the target is the le-button.\n */\n @Event({ eventName: 'click' }) leClick: EventEmitter<PointerEvent>;\n\n private handleClick = (event: PointerEvent) => {\n // We stop the internal button click from bubbling up\n event.stopPropagation();\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n \n // And emit our own click event from the host element\n this.leClick.emit(event);\n };\n\n render() {\n const classes = classnames(`variant-${this.variant}`, `color-${this.color}`, `size-${this.size}`, {\n 'selected': this.selected,\n 'full-width': this.fullWidth,\n 'icon-only': this.iconOnly,\n 'disabled': this.disabled,\n });\n\n const TagType = this.href ? 'a' : 'button';\n const attrs = this.href ? { href: this.href, target: this.target, role: 'button' } : { type: this.type, disabled: this.disabled };\n\n return (\n <le-component component=\"le-button\" hostClass={classes}>\n <TagType class=\"button\" part=\"button\" {...attrs} onClick={this.handleClick}>\n {this.iconOnly ? (\n <span class=\"icon-start\">\n <slot name=\"icon-only\"></slot>\n </span>\n ) : (\n <Fragment>\n <span class=\"icon-start\">\n <slot name=\"icon-start\"></slot>\n </span>\n <le-slot name=\"\" description=\"Button text\" type=\"text\" class=\"content\" part=\"content\">\n <slot></slot>\n </le-slot>\n <span class=\"icon-end\">\n <slot name=\"icon-end\"></slot>\n </span>\n </Fragment>\n )}\n </TagType>\n </le-component>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,q4JAAq4J;;MC2Bn5J,QAAQ,GAAA,MAAA;;;;;;AAGnB;;AAEG;AACqC,IAAA,IAAI;AAE5C;;;AAGG;IACK,OAAO,GAA8C,OAAO;AAEpE;;;AAGG;IACK,KAAK,GAAwE,SAAS;AAE9F;;;AAGG;IACK,IAAI,GAAiC,QAAQ;AAErD;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACsB,SAAS,GAAY,KAAK;AAEnD;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;;AAGG;IACK,IAAI,GAAkC,QAAQ;AAEtD;;AAEG;AACK,IAAA,IAAI;AAEZ;;AAEG;AACK,IAAA,MAAM;AAEd;;;AAGG;AAC4B,IAAA,OAAO;AAE9B,IAAA,WAAW,GAAG,CAAC,KAAmB,KAAI;;QAE5C,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE;YACtB;;;AAIF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,KAAC;IAED,MAAM,GAAA;QACJ,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,SAAS,IAAI,CAAC,KAAK,CAAE,CAAA,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAA,CAAE,EAAE;YAChG,UAAU,EAAE,IAAI,CAAC,QAAQ;YACzB,YAAY,EAAE,IAAI,CAAC,SAAS;YAC5B,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,UAAU,EAAE,IAAI,CAAC,QAAQ;AAC1B,SAAA,CAAC;AAEF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AAEjI,QAAA,QACE,qEAAc,SAAS,EAAC,WAAW,EAAC,SAAS,EAAE,OAAO,EAAA,EACpD,CAAA,CAAC,OAAO,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAA,GAAK,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAA,EACvE,IAAI,CAAC,QAAQ,IACZ,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,YAAY,EAAA,EACtB,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,WAAW,EAAQ,CAAA,CACzB,KAEP,CAAA,CAAC,QAAQ,EAAA,IAAA,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACtB,CAAA,CAAA,MAAA,EAAA,EAAM,IAAI,EAAC,YAAY,EAAA,CAAQ,CAC1B,EACP,CAAA,CAAA,SAAA,EAAA,EAAS,IAAI,EAAC,EAAE,EAAC,WAAW,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAA,EACnF,CAAA,CAAA,MAAA,EAAA,IAAA,CAAa,CACL,EACV,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,UAAU,EAAA,EACpB,CAAM,CAAA,MAAA,EAAA,EAAA,IAAI,EAAC,UAAU,EAAQ,CAAA,CACxB,CACE,CACZ,CACO,CACG;;;;;;;"}
@@ -1,90 +0,0 @@
1
- import { r as registerInstance, m as createEvent, j as getElement, k as h, F as Fragment } from './index-CAY3Hk_i.js';
2
- import { c as classnames } from './utils-cwSNy7ZS.js';
3
-
4
- const leButtonDefaultCss = ":host{display:inline-block;--le-button-border-radius:var(--le-radius-md);--le-button-padding-x:0.4rem;--le-button-padding-y:0.4rem;--le-button-small-padding:0.25rem;--le-button-font-size:var(--le-font-size-md);--le-button-font-weight:var(--le-font-weight-medium);--le-button-transition:var(--le-transition-fast);--le-button-icon-aspect-ratio:1;--_btn-bg:var(--le-color-primary);--_btn-bg-hover:var(--le-color-primary-dark);--_btn-bg-system:var(--le-color-black);--_btn-color:var(--le-color-primary-contrast);--_btn-border-color:var(--le-color-primary)}:host([full-width]){display:block;width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--le-spacing-3);width:100%;padding:var(--le-button-padding-y) var(--le-button-padding-x);border:1px solid var(--_btn-border-color);border-radius:var(--le-button-border-radius);background:var(--_btn-bg);color:var(--_btn-color);font-family:var(--le-font-family-base);font-size:var(--le-button-font-size);font-weight:var(--le-button-font-weight);line-height:var(--le-line-height-tight);text-decoration:none;cursor:pointer;transition:background-color var(--le-button-transition) var(--le-transition-easing),\n border-color var(--le-button-transition) var(--le-transition-easing),\n box-shadow var(--le-button-transition) var(--le-transition-easing),\n transform var(--le-button-transition) var(--le-transition-easing)}.button:hover:not(:disabled){background:var(--_btn-bg-hover);border-color:var(--_btn-bg-hover)}.button:active:not(:disabled){transform:translateY(1px)}.button:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.button:disabled{opacity:0.5;cursor:not-allowed}:host>le-component.color-primary{--_btn-bg:var(--le-color-primary);--_btn-bg-hover:var(--le-color-primary-dark);--_btn-color:var(--le-color-primary-contrast);--_btn-border-color:var(--le-color-primary)}:host>le-component.color-secondary{--_btn-bg:var(--le-color-secondary);--_btn-bg-hover:var(--le-color-secondary-dark);--_btn-color:var(--le-color-secondary-contrast);--_btn-border-color:var(--le-color-secondary)}:host>le-component.color-success{--_btn-bg:var(--le-color-success);--_btn-bg-hover:var(--le-color-success-dark);--_btn-color:var(--le-color-success-contrast);--_btn-border-color:var(--le-color-success)}:host>le-component.color-warning{--_btn-bg:var(--le-color-warning);--_btn-bg-hover:var(--le-color-warning-dark);--_btn-color:var(--le-color-warning-contrast);--_btn-border-color:var(--le-color-warning)}:host>le-component.color-danger{--_btn-bg:var(--le-color-danger);--_btn-bg-hover:var(--le-color-danger-dark);--_btn-color:var(--le-color-danger-contrast);--_btn-border-color:var(--le-color-danger)}:host>le-component.color-info{--_btn-bg:var(--le-color-info);--_btn-bg-hover:var(--le-color-info-dark);--_btn-color:var(--le-color-info-contrast);--_btn-border-color:var(--le-color-info)}:host>le-component.variant-solid .button{box-shadow:var(--le-shadow-sm)}:host>le-component.variant-solid .button:hover:not(:disabled){box-shadow:var(--le-shadow-md)}:host>le-component.variant-outlined .button{background:transparent;color:var(--_btn-bg);border-color:var(--_btn-border-color)}:host>le-component.variant-outlined .button:hover:not(:disabled){background:var(--_btn-bg);color:var(--_btn-color)}:host>le-component.variant-clear .button{background:transparent;color:var(--_btn-bg);border-color:transparent}:host>le-component.variant-clear .button:hover:not(:disabled){background:var(--le-color-gray-100);border-color:transparent}:host>le-component.variant-system .button{background:transparent;color:var(--_btn-bg-system);border-color:transparent}:host>le-component.size-small .button{--le-button-padding-x:0.4rem;--le-button-padding-y:0.3rem;--le-button-padding-top:0.35rem;--le-button-font-size:var(--le-button-small-font-size, var(--le-font-size-xs))}:host>le-component.size-large .button{--le-button-padding-x:0.9rem;--le-button-padding-y:0.6rem;--le-button-font-size:var(--le-font-size-xl)}:host>le-component.full-width{display:block;width:100%}:host>le-component.selected .button{box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.2)}:host>le-component.variant-outlined.selected .button,:host>le-component.variant-clear.selected .button{background:var(--_btn-bg);color:var(--_btn-color)}:host>le-component.icon-only .button{padding:0.5rem;padding-bottom:0.6rem;aspect-ratio:var(--le-button-icon-aspect-ratio, 1)}:host>le-component.icon-only.size-small .button{padding:var(--le-button-small-padding, 0.25rem)}:host>le-component.icon-only.size-large .button{padding:0.75rem}:host>le-component.icon-only .content{display:none}.content{display:inline}.content:empty{display:none}.icon-start,.icon-only,.icon-end{display:flex;align-items:center;justify-content:center}.icon-start:empty,.icon-only:empty,.icon-end:empty{display:none}::slotted([slot=\"icon-start\"]),::slotted([slot=\"icon-only\"]),::slotted([slot=\"icon-end\"]){display:flex;align-items:center;justify-content:center;width:1.125em;height:1.125em}";
5
-
6
- const LeButton = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.leClick = createEvent(this, "click", 7);
10
- }
11
- get el() { return getElement(this); }
12
- /**
13
- * Mode of the popover should be 'default' for internal use
14
- */
15
- mode;
16
- /**
17
- * Button variant style
18
- * @allowedValues solid | outlined | clear
19
- */
20
- variant = 'solid';
21
- /**
22
- * Button color theme (uses theme semantic colors)
23
- * @allowedValues primary | secondary | success | warning | danger | info
24
- */
25
- color = 'primary';
26
- /**
27
- * Button size
28
- * @allowedValues small | medium | large
29
- */
30
- size = 'medium';
31
- /**
32
- * Whether the button is in a selected/active state
33
- */
34
- selected = false;
35
- /**
36
- * Whether the button takes full width of its container
37
- */
38
- fullWidth = false;
39
- /**
40
- * Whether the button displays only an icon (square aspect ratio)
41
- */
42
- iconOnly = false;
43
- /**
44
- * Whether the button is disabled
45
- */
46
- disabled = false;
47
- /**
48
- * The button type attribute
49
- * @allowedValues button | submit | reset
50
- */
51
- type = 'button';
52
- /**
53
- * Optional href to make the button act as a link
54
- */
55
- href;
56
- /**
57
- * Link target when href is set
58
- */
59
- target;
60
- /**
61
- * Emitted when the button is clicked.
62
- * This is a custom event that wraps the native click but ensures the target is the le-button.
63
- */
64
- leClick;
65
- handleClick = (event) => {
66
- // We stop the internal button click from bubbling up
67
- event.stopPropagation();
68
- if (this.disabled) {
69
- event.preventDefault();
70
- return;
71
- }
72
- // And emit our own click event from the host element
73
- this.leClick.emit(event);
74
- };
75
- render() {
76
- const classes = classnames(`variant-${this.variant}`, `color-${this.color}`, `size-${this.size}`, {
77
- 'selected': this.selected,
78
- 'full-width': this.fullWidth,
79
- 'icon-only': this.iconOnly,
80
- 'disabled': this.disabled,
81
- });
82
- const TagType = this.href ? 'a' : 'button';
83
- const attrs = this.href ? { href: this.href, target: this.target, role: 'button' } : { type: this.type, disabled: this.disabled };
84
- return (h("le-component", { key: '363dbfddf4a765bfd6f36ed16d0912e281153806', component: "le-button", hostClass: classes }, h(TagType, { key: 'e112acdff4278e976ad767bd1ea7c9ced5e85f43', class: "button", part: "button", ...attrs, onClick: this.handleClick }, this.iconOnly ? (h("span", { class: "icon-start" }, h("slot", { name: "icon-only" }))) : (h(Fragment, null, h("span", { class: "icon-start" }, h("slot", { name: "icon-start" })), h("le-slot", { name: "", description: "Button text", type: "text", class: "content", part: "content" }, h("slot", null)), h("span", { class: "icon-end" }, h("slot", { name: "icon-end" })))))));
85
- }
86
- };
87
- LeButton.style = leButtonDefaultCss;
88
-
89
- export { LeButton as le_button };
90
- //# sourceMappingURL=le-button.entry.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-checkbox.entry.esm.js","sources":["src/components/le-checkbox/le-checkbox.css?tag=le-checkbox&encapsulation=shadow","src/components/le-checkbox/le-checkbox.tsx"],"sourcesContent":[":host {\n display: block;\n --le-checkbox-size: 18px;\n --le-checkbox-color: var(--le-color-primary, #007bff);\n --le-checkbox-label-color: var(--le-color-text-primary, #333);\n --le-checkbox-desc-color: var(--le-color-text-secondary, #666);\n --le-checkbox-border-radius: var(--le-radius-sm, 2px);\n --le-checkbox-marker-color: var(--le-color-surface, #fff);\n}\n\n.le-checkbox-wrapper {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.le-checkbox-label {\n display: inline-flex;\n align-items: flex-start;\n gap: 8px;\n cursor: pointer;\n user-select: none;\n}\n\n:host([disabled]) .le-checkbox-label {\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.le-checkbox-input {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 1.4em;\n}\n\ninput[type=\"checkbox\"] {\n appearance: none;\n -webkit-appearance: none;\n width: var(--le-checkbox-size);\n height: var(--le-checkbox-size);\n border: var(--le-border-width, 2px) solid var(--le-checkbox-color);\n border-radius: var(--le-checkbox-border-radius);\n margin: 0;\n margin-top: 2px; /* Align with text */\n position: relative;\n cursor: inherit;\n background-color: transparent;\n transition: background-color 0.2s, border-color 0.2s;\n}\n\ninput[type=\"checkbox\"]:checked {\n background-color: var(--le-checkbox-color);\n}\n\ninput[type=\"checkbox\"]:checked::after {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n bottom: calc(var(--le-checkbox-size) / 5);\n right: 0;\n margin: auto;\n width: calc(var(--le-checkbox-size) / 4);\n height: calc(var(--le-checkbox-size) / 2);\n border: solid var(--le-checkbox-marker-color, #fff);\n border-width: 0 calc(var(--le-checkbox-size) / 10) calc(var(--le-checkbox-size) / 10) 0;\n transform: rotate(45deg);\n}\n\ninput[type=\"checkbox\"]:focus-visible {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.le-checkbox-text {\n flex: 1;\n flex-wrap: wrap;\n color: var(--le-checkbox-label-color);\n line-height: 1.5;\n text-align: start;\n}\n\n.le-checkbox-description {\n margin-left: calc(var(--le-checkbox-size) + 8px);\n font-size: 0.875em;\n color: var(--le-checkbox-desc-color);\n line-height: 1.4;\n}\n\n:host [slot=\"description\"] {\n margin: 0;\n}\n","import { Component, Prop, Event, EventEmitter, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A checkbox component with support for labels, descriptions, and external IDs.\n *\n * @slot - The label text for the checkbox\n * @slot description - Additional description text displayed below the label\n *\n * @cssprop --le-checkbox-size - Size of the checkbox input\n * @cssprop --le-checkbox-color - Color of the checkbox when checked\n * @cssprop --le-checkbox-label-color - Color of the label text\n * @cssprop --le-checkbox-desc-color - Color of the description text\n */\n@Component({\n tag: 'le-checkbox',\n styleUrl: 'le-checkbox.css',\n shadow: true,\n})\nexport class LeCheckbox {\n @Element() el: HTMLElement;\n\n /**\n * Whether the checkbox is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the checkbox is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The name of the checkbox input\n */\n @Prop() name: string;\n\n /**\n * The value of the checkbox input\n */\n @Prop() value: string;\n\n /**\n * External ID for linking with external systems (e.g. database ID, PDF form field ID)\n */\n @Prop() externalId: string;\n\n /**\n * Emitted when the checked state changes\n */\n @Event({ eventName: 'change' }) leChange: EventEmitter<{ checked: boolean; value: string; name: string; externalId: string }>;\n\n private handleChange = (event: Event) => {\n // We stop the internal button click from bubbling up\n event.stopPropagation();\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.leChange.emit({\n checked: this.checked,\n value: this.value,\n name: this.name,\n externalId: this.externalId\n });\n };\n\n render() {\n return (\n <le-component component=\"le-checkbox\" hostClass={classnames({ 'disabled': this.disabled })}>\n <div class=\"le-checkbox-wrapper\">\n <label class=\"le-checkbox-label\">\n <span class=\"le-checkbox-input\">\n <input\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n onChange={this.handleChange}\n />\n </span>\n <span class=\"le-checkbox-text\">\n <le-slot name=\"\" type=\"text\" tag=\"span\">\n <slot></slot>\n </le-slot>\n </span>\n </label>\n \n <div class=\"le-checkbox-description\">\n <le-slot name=\"description\" type=\"text\" tag=\"div\" label=\"Description\">\n <slot name=\"description\"></slot>\n </le-slot>\n </div>\n </div>\n </le-component>\n );\n }\n}\n"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG,41DAA41D;;MCmBr2D,UAAU,GAAA,MAAA;;;;;;AAGrB;;AAEG;IACqC,OAAO,GAAY,KAAK;AAEhE;;AAEG;IACK,QAAQ,GAAY,KAAK;AAEjC;;AAEG;AACK,IAAA,IAAI;AAEZ;;AAEG;AACK,IAAA,KAAK;AAEb;;AAEG;AACK,IAAA,UAAU;AAElB;;AAEG;AAC6B,IAAA,QAAQ;AAEhC,IAAA,YAAY,GAAG,CAAC,KAAY,KAAI;;QAEtC,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE;YACtB;;AAGF,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B;AAC9C,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;AAC5B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC;AAClB,SAAA,CAAC;AACJ,KAAC;IAED,MAAM,GAAA;QACJ,QACE,CAAc,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,SAAS,EAAC,aAAa,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAA,EACxF,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,qBAAqB,EAAA,EAC9B,CAAO,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC9B,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,mBAAmB,EAAA,EAC7B,CAAA,CAAA,OAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B,CACG,EACP,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,kBAAkB,EAAA,EAC5B,CAAS,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAA,EACrC,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACL,CACL,CACD,EAER,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,yBAAyB,EAAA,EAClC,CAAA,CAAA,SAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAS,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,aAAa,EAAA,EACnE,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,aAAa,EAAA,CAAQ,CACxB,CACN,CACF,CACO;;;;;;;"}
@@ -1,59 +0,0 @@
1
- import { r as registerInstance, m as createEvent, j as getElement, k as h } from './index-CAY3Hk_i.js';
2
- import { c as classnames } from './utils-cwSNy7ZS.js';
3
-
4
- const leCheckboxCss = ":host{display:block;--le-checkbox-size:18px;--le-checkbox-color:var(--le-color-primary, #007bff);--le-checkbox-label-color:var(--le-color-text-primary, #333);--le-checkbox-desc-color:var(--le-color-text-secondary, #666);--le-checkbox-border-radius:var(--le-radius-sm, 2px);--le-checkbox-marker-color:var(--le-color-surface, #fff)}.le-checkbox-wrapper{display:flex;flex-direction:column;gap:4px}.le-checkbox-label{display:inline-flex;align-items:flex-start;gap:8px;cursor:pointer;user-select:none}:host([disabled]) .le-checkbox-label{cursor:not-allowed;opacity:0.6}.le-checkbox-input{display:flex;align-items:center;justify-content:center;min-height:1.4em}input[type=\"checkbox\"]{appearance:none;-webkit-appearance:none;width:var(--le-checkbox-size);height:var(--le-checkbox-size);border:var(--le-border-width, 2px) solid var(--le-checkbox-color);border-radius:var(--le-checkbox-border-radius);margin:0;margin-top:2px;position:relative;cursor:inherit;background-color:transparent;transition:background-color 0.2s, border-color 0.2s}input[type=\"checkbox\"]:checked{background-color:var(--le-checkbox-color)}input[type=\"checkbox\"]:checked::after{content:'';position:absolute;left:0;top:0;bottom:calc(var(--le-checkbox-size) / 5);right:0;margin:auto;width:calc(var(--le-checkbox-size) / 4);height:calc(var(--le-checkbox-size) / 2);border:solid var(--le-checkbox-marker-color, #fff);border-width:0 calc(var(--le-checkbox-size) / 10) calc(var(--le-checkbox-size) / 10) 0;transform:rotate(45deg)}input[type=\"checkbox\"]:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.le-checkbox-text{flex:1;flex-wrap:wrap;color:var(--le-checkbox-label-color);line-height:1.5;text-align:start}.le-checkbox-description{margin-left:calc(var(--le-checkbox-size) + 8px);font-size:0.875em;color:var(--le-checkbox-desc-color);line-height:1.4}:host [slot=\"description\"]{margin:0}";
5
-
6
- const LeCheckbox = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.leChange = createEvent(this, "change", 7);
10
- }
11
- get el() { return getElement(this); }
12
- /**
13
- * Whether the checkbox is checked
14
- */
15
- checked = false;
16
- /**
17
- * Whether the checkbox is disabled
18
- */
19
- disabled = false;
20
- /**
21
- * The name of the checkbox input
22
- */
23
- name;
24
- /**
25
- * The value of the checkbox input
26
- */
27
- value;
28
- /**
29
- * External ID for linking with external systems (e.g. database ID, PDF form field ID)
30
- */
31
- externalId;
32
- /**
33
- * Emitted when the checked state changes
34
- */
35
- leChange;
36
- handleChange = (event) => {
37
- // We stop the internal button click from bubbling up
38
- event.stopPropagation();
39
- if (this.disabled) {
40
- event.preventDefault();
41
- return;
42
- }
43
- const input = event.target;
44
- this.checked = input.checked;
45
- this.leChange.emit({
46
- checked: this.checked,
47
- value: this.value,
48
- name: this.name,
49
- externalId: this.externalId
50
- });
51
- };
52
- render() {
53
- return (h("le-component", { key: '43399929e07835e0019d509803e50a151921fa72', component: "le-checkbox", hostClass: classnames({ 'disabled': this.disabled }) }, h("div", { key: '7ddbf2ac1690bb09082adfea70b9767c972d007a', class: "le-checkbox-wrapper" }, h("label", { key: '8eec4055c713e8b3b155695751b10bff64c9f903', class: "le-checkbox-label" }, h("span", { key: '2118b1cbe7911ff1674e522d723949d81cade185', class: "le-checkbox-input" }, h("input", { key: 'd0a30af5c14497fa6fa294c07ba74ae2e032481f', type: "checkbox", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.handleChange })), h("span", { key: '02cf9588431240039a53ee50e02b08ba5d63b974', class: "le-checkbox-text" }, h("le-slot", { key: 'e7d7b253deab72e627164eb72fc06109abfca6a5', name: "", type: "text", tag: "span" }, h("slot", { key: '1d8c443073e48848513a8a6d04cd7805a394e54e' })))), h("div", { key: '16c2c927dc0c0f7844a203a0628bf0e561009bd0', class: "le-checkbox-description" }, h("le-slot", { key: 'c6898ecc8992dce4786e68ab4b136bf5c3a4d3aa', name: "description", type: "text", tag: "div", label: "Description" }, h("slot", { key: '3342add8ed1400ab74681e445163eeb3dd415941', name: "description" }))))));
54
- }
55
- };
56
- LeCheckbox.style = leCheckboxCss;
57
-
58
- export { LeCheckbox as le_checkbox };
59
- //# sourceMappingURL=le-checkbox.entry.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-component.entry.esm.js","sources":["src/components/le-component/le-component.css?tag=le-component&encapsulation=shadow","src/components/le-component/le-component.tsx"],"sourcesContent":["/**\n * le-component styles\n * \n * In default mode, the component is invisible (passthrough).\n * In admin mode, it shows a wrapper with header and settings.\n */\n\n:host {\n display: contents;\n}\n\n:host(.admin-mode) {\n display: block;\n}\n\n/* Admin mode wrapper */\n.le-component-wrapper {\n position: relative;\n border: 2px dashed var(--le-admin-border-color, #90caf9);\n border-radius: var(--le-radius-md, 8px);\n background: var(--le-admin-bg, rgba(144, 202, 249, 0.05));\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n}\n\n.le-component-wrapper:hover {\n border-color: var(--le-admin-border-hover, #42a5f5);\n box-shadow: 0 0 0 2px var(--le-admin-glow, rgba(66, 165, 245, 0.2));\n}\n\n/* Component header */\n.le-component-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--le-spacing-1, 4px);\n padding: 0 0 0 var(--le-spacing-1, 4px);\n background: var(--le-admin-header-bg, rgba(144, 202, 249, 0.15));\n border-bottom: 1px solid var(--le-admin-border-color, #90caf9);\n border-radius: var(--le-radius-md, 8px) var(--le-radius-md, 8px) 0 0;\n font-size: var(--le-font-size-xs, 11px);\n}\n\n.le-component-name {\n font-weight: var(--le-font-weight-medium, 500);\n color: var(--le-admin-text, #1976d2);\n text-transform: capitalize;\n text-align: start;\n overflow: hidden;\n width: 0;\n flex: 1 1 0%;\n}\n\n/* Component content area */\n.le-component-content {\n padding: var(--le-space-xs, 4px);\n}\n\n.le-component-trigger {\n font-size: 24px;\n line-height: 0px;\n width: 12px;\n height: 12px;\n}\n.le-component-button {\n width: 20px;\n}\n\n/* Property editor styles */\n.property-editor {\n display: flex;\n flex-direction: column;\n gap: var(--le-space-sm, 8px);\n max-width: 380px;\n}\n\n.property-field {\n display: flex;\n flex-direction: column;\n gap: var(--le-space-xs, 4px);\n}\n\n.property-field label {\n display: flex;\n flex-direction: column;\n gap: 2px;\n font-size: var(--le-font-size-sm, 13px);\n font-weight: var(--le-font-weight-medium, 500);\n color: var(--le-color-text, #333);\n}\n\n.property-hint {\n font-size: var(--le-font-size-xs, 11px);\n font-weight: normal;\n color: var(--le-color-text-secondary, #666);\n line-height: 1.3;\n}\n\n.property-field input[type=\"text\"],\n.property-field input[type=\"number\"],\n.property-field select {\n padding: var(--le-space-xs, 4px) var(--le-space-sm, 8px);\n border: 1px solid var(--le-color-border, #ddd);\n border-radius: var(--le-radius-md, 7px);\n font-size: var(--le-font-size-sm, 13px);\n font-family: inherit;\n background: var(--le-color-surface, #fff);\n color: var(--le-color-text, #333);\n transition: border-color 0.15s ease, box-shadow 0.15s ease;\n}\n\n.property-field input:focus,\n.property-field select:focus {\n outline: none;\n border-color: var(--le-color-primary, #1976d2);\n box-shadow: 0 0 0 2px var(--le-color-primary-light, rgba(25, 118, 210, 0.2));\n}\n\n/* Checkbox field */\n.property-field--checkbox {\n flex-direction: column;\n}\n\n.property-field--checkbox label {\n flex-direction: row;\n align-items: center;\n gap: var(--le-space-sm, 8px);\n cursor: pointer;\n}\n\n.property-field--checkbox input[type=\"checkbox\"] {\n width: 16px;\n height: 16px;\n margin: 0;\n cursor: pointer;\n accent-color: var(--le-color-primary, #1976d2);\n}\n\n.property-field--checkbox .property-hint {\n margin-left: 24px;\n}\n\n/* No properties message */\n.no-properties {\n margin: 0;\n padding: var(--le-space-sm, 8px);\n font-size: var(--le-font-size-sm, 13px);\n color: var(--le-color-text-secondary, #666);\n text-align: center;\n}\n\n/* Property editor container */\n.property-editor-container {\n display: flex;\n flex-direction: column;\n gap: var(--le-space-md, 12px);\n}\n\n/* Actions section at bottom of editor */\n.property-editor-actions {\n padding-top: var(--le-space-sm, 8px);\n border-top: 1px solid var(--le-color-border, #e5e5e5);\n}\n\n/* Delete component button */\n.delete-component-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--le-space-xs, 4px);\n width: 100%;\n padding: var(--le-space-sm, 8px) var(--le-space-md, 12px);\n border: 1px solid var(--le-color-danger, #e53935);\n border-radius: var(--le-radius-md, 6px);\n background: transparent;\n color: var(--le-color-danger, #e53935);\n font-size: var(--le-font-size-sm, 13px);\n font-weight: 500;\n cursor: pointer;\n transition: background-color 0.15s, color 0.15s;\n}\n\n.delete-component-btn:hover {\n background: var(--le-color-danger, #e53935);\n color: white;\n}\n\n.delete-component-btn:active {\n opacity: 0.9;\n}\n","import { Component, Prop, State, h, Host, Element, getAssetPath } from '@stencil/core';\nimport { classnames, observeModeChanges } from '../../utils/utils';\nimport { getLeKitConfig } from '../../global/app';\n\n/**\n * Component wrapper for admin mode editing.\n *\n * This component is used internally by other components to provide admin-mode\n * editing capabilities. It wraps the component's rendered output and shows\n * a settings popover for editing properties.\n *\n * In default mode, it acts as a simple passthrough (display: contents).\n * In admin mode, it shows a border, component name header, and settings popover.\n *\n * The host element is found automatically by traversing up through the shadow DOM.\n *\n * Usage inside a component's render method:\n * ```tsx\n * render() {\n * return (\n * <le-component component=\"le-card\">\n * <Host>...</Host>\n * </le-component>\n * );\n * }\n * ```\n *\n * @slot - The component's rendered content\n *\n * @cmsInternal true\n * @cmsCategory System\n */\n@Component({\n tag: 'le-component',\n styleUrl: 'le-component.css',\n shadow: true,\n assetsDirs: ['assets'],\n})\nexport class LeComponent {\n @Element() el: HTMLElement;\n\n /**\n * The tag name of the component (e.g., 'le-card').\n * Used to look up property metadata and display the component name.\n */\n @Prop() component!: string;\n\n /**\n * Optional display name for the component.\n * If not provided, the tag name will be formatted as the display name.\n */\n @Prop() displayName?: string;\n\n /**\n * Classes to apply to the host element.\n * Allows parent components to pass their styling classes.\n */\n @Prop() hostClass?: string;\n\n /**\n * Inline styles to apply to the host element.\n * Allows parent components to pass dynamic styles (e.g., flex properties).\n */\n @Prop() hostStyle?: { [key: string]: string };\n\n /**\n * Reference to the host element (found automatically from parent)\n */\n private hostElement?: HTMLElement;\n\n /**\n * Internal state to track admin mode\n */\n @State() private adminMode: boolean = false;\n\n /**\n * Component metadata loaded from Custom Elements Manifest\n */\n @State() private componentMeta: ComponentMetadata | null = null;\n\n /**\n * Current property values of the host component\n */\n @State() private propertyValues: Record<string, any> = {};\n\n private disconnectModeObserver?: () => void;\n\n connectedCallback() {\n // Find the host element - le-component is rendered inside the component's shadow DOM,\n // so we need to find the shadow root's host element\n this.findHostElement();\n\n this.disconnectModeObserver = observeModeChanges(this.el, mode => {\n this.adminMode = mode === 'admin';\n // Load metadata and refresh property values only when entering admin mode\n if (this.adminMode) {\n if (!this.componentMeta) {\n this.loadComponentMetadata();\n } else {\n this.readPropertyValues();\n }\n }\n });\n }\n\n /**\n * Find the host element by traversing up through shadow DOM\n */\n private findHostElement() {\n // Get the shadow root that contains this le-component\n const rootNode = this.el.getRootNode();\n if (rootNode instanceof ShadowRoot) {\n // The host of this shadow root is our target component (e.g., le-card)\n this.hostElement = rootNode.host as HTMLElement;\n }\n }\n\n componentDidLoad() {\n // Read initial property values from the host element\n this.readPropertyValues();\n }\n\n disconnectedCallback() {\n this.disconnectModeObserver?.();\n }\n\n /**\n * Formats a tag name into a display name\n * e.g., 'le-card' -> 'Card'\n */\n private formatDisplayName(tagName: string): string {\n return tagName\n .replace(/^le-/, '') // Remove 'le-' prefix\n .split('-')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n }\n\n /**\n * Load component metadata from the Custom Elements Manifest\n */\n private async loadComponentMetadata() {\n try {\n // Fetch the manifest from configured URL\n const { manifestFile } = getLeKitConfig();\n const manifestFileResolved = getAssetPath(`./assets/${manifestFile}`)\n const response = await fetch(manifestFileResolved);\n const manifest = await response.json();\n\n // Find the component definition\n for (const module of manifest.modules) {\n for (const declaration of module.declarations || []) {\n if (declaration.tagName === this.component) {\n const attributes = (declaration.attributes || []).filter((attr: AttributeMetadata) => !this.isInternalAttribute(attr.name));\n this.componentMeta = {\n tagName: declaration.tagName,\n description: declaration.description,\n attributes,\n };\n // console.log(`[le-component] Loaded metadata for ${this.component}:`, this.componentMeta);\n // Read property values after metadata is loaded\n this.readPropertyValues();\n return;\n }\n }\n }\n // console.warn(`[le-component] No metadata found for component: ${this.component}`);\n } catch (error) {\n // console.warn(`[le-component] Failed to load metadata for component: ${this.component}`, error);\n }\n }\n\n /**\n * Check if an attribute is internal (should not be shown in editor)\n */\n private isInternalAttribute(name: string): boolean {\n const internalAttrs = ['mode', 'theme', 'class', 'style', 'id', 'slot'];\n return internalAttrs.includes(name);\n }\n\n /**\n * Read current property values from the host element\n */\n private readPropertyValues() {\n if (!this.hostElement || !this.componentMeta) return;\n\n const values: Record<string, any> = {};\n for (const attr of this.componentMeta.attributes) {\n const value = this.hostElement.getAttribute(attr.name);\n values[attr.name] = this.parseAttributeValue(value, attr.type?.text);\n }\n this.propertyValues = values;\n }\n\n /**\n * Parse an attribute value based on its type\n */\n private parseAttributeValue(value: string | null, type?: string): any {\n if (value === null) return undefined;\n\n if (type === 'boolean') {\n return value !== null && value !== 'false';\n }\n if (type === 'number') {\n return parseFloat(value);\n }\n return value;\n }\n\n /**\n * Handle property value changes from the editor\n */\n private handlePropertyChange(attrName: string, value: any, type?: string) {\n if (!this.hostElement) return;\n\n // Update the host element's attribute\n if (type === 'boolean') {\n if (value) {\n this.hostElement.setAttribute(attrName, '');\n } else {\n this.hostElement.removeAttribute(attrName);\n }\n } else if (value === undefined || value === '') {\n this.hostElement.removeAttribute(attrName);\n } else {\n this.hostElement.setAttribute(attrName, String(value));\n }\n\n // Update local state\n this.propertyValues = { ...this.propertyValues, [attrName]: value };\n }\n\n /**\n * Delete this component from the DOM\n */\n private deleteComponent() {\n if (!this.hostElement) return;\n\n // Confirm deletion\n const name = this.displayName || this.formatDisplayName(this.component);\n if (!confirm(`Delete this ${name}?`)) return;\n\n // Remove the host element from its parent\n const parent = this.hostElement.parentElement;\n if (parent) {\n this.hostElement.remove();\n }\n }\n\n /**\n * Render the property editor form\n */\n private renderPropertyEditor() {\n const hasProperties = this.componentMeta && this.componentMeta.attributes.length > 0;\n\n return (\n <div class=\"property-editor-container\">\n {hasProperties ? (\n <form class=\"property-editor\" onSubmit={e => e.preventDefault()}>\n {this.componentMeta!.attributes.map(attr => this.renderPropertyField(attr))}\n </form>\n ) : (\n <p class=\"no-properties\">No editable properties</p>\n )}\n <div class=\"property-editor-actions\">\n <le-button type=\"button\" variant=\"outlined\" color=\"danger\" full-width onClick={() => this.deleteComponent()}>\n <span slot=\"icon-start\">🗑️</span>\n <span>Delete Component</span>\n </le-button>\n </div>\n </div>\n );\n }\n\n /**\n * Render a single property field based on its type\n */\n private renderPropertyField(attr: AttributeMetadata) {\n const value = this.propertyValues[attr.name];\n const type = attr.type?.text || 'string';\n\n // Check if type is a union of string literals (e.g., \"'default' | 'outlined' | 'elevated'\")\n const enumMatch = type.match(/^'[^']+'/);\n if (enumMatch) {\n const options = type.split('|').map(opt => opt.trim().replace(/'/g, ''));\n return (\n <div class=\"property-field\">\n <label htmlFor={`prop-${attr.name}`}>\n {attr.name}\n {attr.description && <span class=\"property-hint\">{attr.description}</span>}\n </label>\n <select id={`prop-${attr.name}`} onChange={e => this.handlePropertyChange(attr.name, (e.target as HTMLSelectElement).value, type)}>\n {options.map(opt => (\n <option value={opt} selected={value === opt || (!value && attr.default?.replace(/'/g, '') === opt)}>\n {opt}\n </option>\n ))}\n </select>\n </div>\n );\n }\n\n // Boolean type\n if (type === 'boolean') {\n return (\n <div class=\"property-field property-field--checkbox\">\n <le-checkbox\n name={`prop-${attr.name}`}\n checked={value === true || value === ''}\n onChange={e => this.handlePropertyChange(attr.name, (e.target as HTMLInputElement).checked, type)}\n >\n {attr.name}\n {attr.description && <div slot=\"description\">{attr.description}</div>}\n </le-checkbox>\n </div>\n );\n }\n\n // Number type\n if (type === 'number') {\n return (\n <div class=\"property-field\">\n <label htmlFor={`prop-${attr.name}`}>\n {attr.name}\n {attr.description && <span class=\"property-hint\">{attr.description}</span>}\n </label>\n <input\n type=\"number\"\n id={`prop-${attr.name}`}\n value={value ?? ''}\n placeholder={attr.default}\n onChange={e => this.handlePropertyChange(attr.name, (e.target as HTMLInputElement).value, type)}\n />\n </div>\n );\n }\n\n // Default: string/text input\n return (\n <div class=\"property-field\">\n <le-string-input\n name={`prop-${attr.name}`}\n label={attr.name}\n value={value ?? ''}\n placeholder={attr.default?.replace(/'/g, '')}\n onChange={(e: any) => this.handlePropertyChange(attr.name, e.detail.value, type)}\n >\n <span slot=\"description\">{attr.description}</span>\n </le-string-input>\n </div>\n );\n }\n\n render() {\n const name = this.displayName || this.formatDisplayName(this.component);\n\n // In default mode, just pass through content with host classes\n if (!this.adminMode) {\n return (\n <Host class={classnames(this.component, this.hostClass)} style={this.hostStyle}>\n <slot></slot>\n </Host>\n );\n }\n\n // In admin mode, show wrapper with header and settings\n return (\n <Host class={classnames(this.component, this.hostClass, 'admin-mode')} style={this.hostStyle}>\n <div class=\"le-component-wrapper\">\n <div class=\"le-component-header\">\n <span class=\"le-component-name\">{name}</span>\n <le-popover popoverTitle={`${name} Settings`} position=\"right\" align=\"start\" min-width=\"300px\" mode=\"default\">\n <le-button type=\"button\" class=\"le-component-button\" slot=\"trigger\" variant=\"clear\" size=\"small\" aria-label=\"Edit component properties\" icon-only>\n <span class=\"le-component-trigger\" slot=\"icon-only\">\n ⚙\n </span>\n </le-button>\n {this.renderPropertyEditor()}\n </le-popover>\n </div>\n <div class=\"le-component-content\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n\n/**\n * Type definitions for component metadata\n */\ninterface ComponentMetadata {\n tagName: string;\n description?: string;\n attributes: AttributeMetadata[];\n}\n\ninterface AttributeMetadata {\n name: string;\n fieldName?: string;\n description?: string;\n default?: string;\n type?: {\n text: string;\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-popover.entry.esm.js","sources":["src/components/le-popover/le-popover.css?tag=le-popover&encapsulation=shadow","src/components/le-popover/le-popover.tsx"],"sourcesContent":["/* ============================================\n le-popover.css\n Popover using native HTML Popover API\n ============================================ */\n\n:host {\n display: inline-block;\n position: relative;\n}\n\n/* ============================================\n Trigger\n ============================================ */\n\n.le-popover-trigger {\n display: inline-flex;\n cursor: pointer;\n}\n\n.le-popover-default-trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: 1px solid var(--le-color-border, #e0e0e0);\n border-radius: var(--le-radius-md, 6px);\n background: var(--le-color-surface, #fff);\n color: var(--le-color-text-secondary, #666);\n font-size: 16px;\n cursor: pointer;\n transition: all var(--le-transition-fast, 0.15s ease);\n}\n\n.le-popover-default-trigger:hover {\n border-color: var(--le-color-primary, #2196f3);\n color: var(--le-color-primary, #2196f3);\n background: var(--le-color-primary-light, rgba(33, 150, 243, 0.1));\n}\n\n/* ============================================\n Popover Content (native popover)\n ============================================ */\n\n.le-popover-content {\n /* Reset native popover defaults */\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n \n /* Positioning - will be set via JS */\n position: fixed;\n inset: unset;\n \n /* Styling */\n background: var(--le-color-surface, #ffffff);\n border: 1px solid var(--le-color-border, #e0e0e0);\n border-radius: var(--le-radius-lg, 8px);\n box-shadow: var(--le-shadow-lg, 0 4px 12px rgba(0, 0, 0, 0.15));\n overflow: hidden;\n font-family: var(--le-font-family, system-ui, -apple-system, sans-serif);\n font-size: var(--le-font-size-sm, 0.875rem);\n color: var(--le-color-text, #333);\n \n /* Animation */\n opacity: 0;\n transform: scale(0.95);\n transition: opacity 0.15s ease, transform 0.15s ease, display 0.15s ease allow-discrete;\n}\n\n/* When popover is open */\n.le-popover-content:popover-open {\n opacity: 1;\n transform: scale(1);\n}\n\n/* Starting style for animation (CSS Anchor Positioning spec) */\n@starting-style {\n .le-popover-content:popover-open {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n/* ============================================\n Header\n ============================================ */\n\n.le-popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--le-space-xs, 4px) var(--le-space-xs, 4px) var(--le-space-xs, 4px) var(--le-space-sm, 8px);\n border-bottom: 1px solid var(--le-color-border, #e0e0e0);\n background: var(--le-color-surface-alt, #f9f9f9);\n min-height: 32px;\n}\n\n.le-popover-title {\n font-weight: var(--le-font-weight-semibold, 600);\n font-size: var(--le-font-size-sm, 0.875rem);\n color: var(--le-color-text, #333);\n}\n\n.le-popover-close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: none;\n background: transparent;\n color: var(--le-color-text-secondary, #666);\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: var(--le-radius-sm, 4px);\n transition: background-color 0.15s, color 0.15s;\n}\n\n.le-popover-close:hover {\n background: var(--le-color-surface-hover, rgba(0, 0, 0, 0.05));\n color: var(--le-color-text, #333);\n}\n\n/* ============================================\n Body\n ============================================ */\n\n.le-popover-body {\n padding: var(--le-space-md, 12px);\n}\n\n/* ============================================\n Scrollable content\n ============================================ */\n\n.le-popover-content[style*=\"overflow-y: auto\"] .le-popover-body {\n overflow-y: auto;\n}\n","import { Component, Prop, Method, Event, EventEmitter, State, h, Element } from '@stencil/core';\n\n/**\n * A popover component for displaying floating content.\n * \n * Uses the native HTML Popover API for proper layering with dialogs\n * and other top-layer elements. Falls back gracefully in older browsers.\n *\n * @slot - Content to display inside the popover\n * @slot trigger - Element that triggers the popover (optional)\n * \n * @cmsInternal true\n * @cmsCategory System\n */\n@Component({\n tag: 'le-popover',\n styleUrl: 'le-popover.css',\n shadow: true,\n})\nexport class LePopover {\n @Element() el: HTMLElement;\n\n /**\n * Mode of the popover should be 'default' for internal use\n */\n @Prop({ mutable: true, reflect: true }) mode: 'default' | 'admin';\n\n /**\n * Whether the popover is currently open\n */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /**\n * Position of the popover relative to its trigger\n */\n @Prop() position: 'top' | 'bottom' | 'left' | 'right' | 'auto' = 'bottom';\n\n /**\n * Alignment of the popover\n */\n @Prop() align: 'start' | 'center' | 'end' = 'start';\n\n /**\n * Optional title for the popover header\n */\n @Prop() popoverTitle?: string;\n\n /**\n * Whether to show a close button in the header\n */\n @Prop() showClose: boolean = true;\n\n /**\n * Whether clicking outside closes the popover\n */\n @Prop() closeOnClickOutside: boolean = true;\n\n /**\n * Whether pressing Escape closes the popover\n */\n @Prop() closeOnEscape: boolean = true;\n\n /**\n * Offset from the trigger element (in pixels)\n */\n @Prop() offset: number = 8;\n\n /**\n * Fixed width for the popover (e.g., '300px', '20rem')\n */\n @Prop() width?: string;\n\n /**\n * Minimum width for the popover (e.g., '200px', '15rem')\n */\n @Prop() minWidth?: string = '200px';\n\n /**\n * Maximum width for the popover (e.g., '400px', '25rem')\n */\n @Prop() maxWidth?: string;\n\n /**\n * Emitted when the popover opens\n */\n @Event() lePopoverOpen: EventEmitter<void>;\n\n /**\n * Emitted when the popover closes\n */\n @Event() lePopoverClose: EventEmitter<void>;\n\n @State() private isPositioned: boolean = false;\n\n private triggerEl?: HTMLElement;\n private popoverEl?: HTMLElement;\n private uniqueId: string = `le-popover-${Math.random().toString(36).substr(2, 9)}`;\n private scrollParents: Element[] = [];\n\n componentDidLoad() {\n // Listen for toggle events from the native popover API\n this.popoverEl?.addEventListener('toggle', this.handlePopoverToggle as EventListener);\n \n // Listen for other popovers opening to close this one\n document.addEventListener('le-popover-will-open', this.handleOtherPopoverOpen);\n }\n\n disconnectedCallback() {\n this.popoverEl?.removeEventListener('toggle', this.handlePopoverToggle as EventListener);\n document.removeEventListener('le-popover-will-open', this.handleOtherPopoverOpen);\n this.removeScrollListeners();\n }\n\n /**\n * Find all scrollable parent elements\n */\n private getScrollParents(element: Element): Element[] {\n const scrollParents: Element[] = [];\n let parent = element.parentElement;\n \n while (parent) {\n const style = getComputedStyle(parent);\n const overflow = style.overflow + style.overflowY + style.overflowX;\n if (/(auto|scroll)/.test(overflow)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n \n // Always include window for page scroll\n return scrollParents;\n }\n\n /**\n * Add scroll listeners to all scrollable parents\n */\n private addScrollListeners() {\n if (!this.triggerEl) return;\n \n this.scrollParents = this.getScrollParents(this.triggerEl);\n \n // Listen to each scroll parent\n this.scrollParents.forEach(parent => {\n parent.addEventListener('scroll', this.handleScroll, { passive: true });\n });\n \n // Also listen to window scroll and resize\n window.addEventListener('scroll', this.handleScroll, { passive: true });\n window.addEventListener('resize', this.handleScroll, { passive: true });\n }\n\n /**\n * Remove scroll listeners\n */\n private removeScrollListeners() {\n this.scrollParents.forEach(parent => {\n parent.removeEventListener('scroll', this.handleScroll);\n });\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleScroll);\n this.scrollParents = [];\n }\n\n private handleScroll = () => {\n if (this.open) {\n this.updatePosition();\n }\n };\n\n private handlePopoverToggle = (event: ToggleEvent) => {\n if (event.newState === 'open') {\n this.open = true;\n this.addScrollListeners();\n this.updatePosition();\n this.lePopoverOpen.emit();\n } else {\n this.open = false;\n this.isPositioned = false;\n this.removeScrollListeners();\n this.lePopoverClose.emit();\n }\n };\n\n private handleOtherPopoverOpen = (event: Event) => {\n const customEvent = event as CustomEvent;\n if (customEvent.detail?.popover === this.el) return;\n \n if (this.open) {\n this.hide();\n }\n };\n\n /**\n * Opens the popover\n */\n @Method()\n async show() {\n document.dispatchEvent(new CustomEvent('le-popover-will-open', {\n detail: { popover: this.el }\n }));\n \n this.popoverEl?.showPopover();\n }\n\n /**\n * Closes the popover\n */\n @Method()\n async hide() {\n this.popoverEl?.hidePopover();\n }\n\n /**\n * Toggles the popover\n */\n @Method()\n async toggle() {\n if (this.open) {\n await this.hide();\n } else {\n await this.show();\n }\n }\n\n private handleTriggerClick = (event: MouseEvent) => {\n event.stopPropagation();\n this.toggle();\n };\n\n private updatePosition() {\n if (!this.triggerEl || !this.popoverEl) return;\n\n const triggerRect = this.triggerEl.getBoundingClientRect();\n const popoverRect = this.popoverEl.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const viewportPadding = 8;\n\n let position = this.position;\n let align = this.align;\n\n // Auto-position logic\n const spaceBelow = viewportHeight - triggerRect.bottom - viewportPadding;\n const spaceAbove = triggerRect.top - viewportPadding;\n const spaceRight = viewportWidth - triggerRect.right - viewportPadding;\n const spaceLeft = triggerRect.left - viewportPadding;\n\n if (position === 'auto') {\n if (spaceBelow >= popoverRect.height + this.offset) {\n position = 'bottom';\n } else if (spaceAbove >= popoverRect.height + this.offset) {\n position = 'top';\n } else if (spaceRight >= popoverRect.width + this.offset) {\n position = 'right';\n } else if (spaceLeft >= popoverRect.width + this.offset) {\n position = 'left';\n } else {\n const maxSpace = Math.max(spaceBelow, spaceAbove, spaceRight, spaceLeft);\n if (maxSpace === spaceBelow) position = 'bottom';\n else if (maxSpace === spaceAbove) position = 'top';\n else if (maxSpace === spaceRight) position = 'right';\n else position = 'left';\n }\n }\n\n // Adjust alignment for horizontal overflow\n if (position === 'top' || position === 'bottom') {\n if (align === 'start' && triggerRect.left + popoverRect.width > viewportWidth - viewportPadding) {\n align = 'end';\n } else if (align === 'end' && triggerRect.right - popoverRect.width < viewportPadding) {\n align = 'start';\n } else if (align === 'center') {\n const triggerCenter = triggerRect.left + triggerRect.width / 2;\n if (triggerCenter - popoverRect.width / 2 < viewportPadding) {\n align = 'start';\n } else if (triggerCenter + popoverRect.width / 2 > viewportWidth - viewportPadding) {\n align = 'end';\n }\n }\n }\n\n // Calculate position\n let top: number = 0;\n let left: number = 0;\n let maxHeight: number | null = null;\n\n switch (position) {\n case 'top':\n top = triggerRect.top - popoverRect.height - this.offset;\n if (top < viewportPadding) {\n maxHeight = triggerRect.top - this.offset - viewportPadding * 2;\n top = viewportPadding;\n }\n break;\n case 'bottom':\n top = triggerRect.bottom + this.offset;\n if (top + popoverRect.height > viewportHeight - viewportPadding) {\n maxHeight = viewportHeight - top - viewportPadding;\n }\n break;\n case 'left':\n left = triggerRect.left - popoverRect.width - this.offset;\n top = triggerRect.top;\n if (left < viewportPadding) left = viewportPadding;\n break;\n case 'right':\n left = triggerRect.right + this.offset;\n top = triggerRect.top;\n if (left + popoverRect.width > viewportWidth - viewportPadding) {\n left = viewportWidth - popoverRect.width - viewportPadding;\n }\n break;\n }\n\n // Calculate horizontal alignment for top/bottom\n if (position === 'top' || position === 'bottom') {\n switch (align) {\n case 'start':\n left = triggerRect.left;\n break;\n case 'center':\n left = triggerRect.left + triggerRect.width / 2 - popoverRect.width / 2;\n break;\n case 'end':\n left = triggerRect.right - popoverRect.width;\n break;\n }\n \n // Constrain to viewport\n if (left < viewportPadding) {\n left = viewportPadding;\n } else if (left + popoverRect.width > viewportWidth - viewportPadding) {\n left = viewportWidth - popoverRect.width - viewportPadding;\n }\n }\n\n // Calculate vertical alignment for left/right\n if (position === 'left' || position === 'right') {\n switch (align) {\n case 'start':\n top = triggerRect.top;\n break;\n case 'center':\n top = triggerRect.top + triggerRect.height / 2 - popoverRect.height / 2;\n break;\n case 'end':\n top = triggerRect.bottom - popoverRect.height;\n break;\n }\n \n if (top < viewportPadding) top = viewportPadding;\n if (top + popoverRect.height > viewportHeight - viewportPadding) {\n maxHeight = viewportHeight - top - viewportPadding;\n }\n }\n\n // Apply styles\n this.popoverEl.style.top = `${top}px`;\n this.popoverEl.style.left = `${left}px`;\n \n if (maxHeight !== null && maxHeight > 100) {\n this.popoverEl.style.maxHeight = `${maxHeight}px`;\n this.popoverEl.style.overflowY = 'auto';\n } else {\n this.popoverEl.style.maxHeight = '';\n this.popoverEl.style.overflowY = '';\n }\n\n this.isPositioned = true;\n }\n\n render() {\n const popoverStyles: Record<string, string> = {\n visibility: this.isPositioned ? 'visible' : 'hidden',\n };\n \n if (this.width) popoverStyles.width = this.width;\n if (this.minWidth) popoverStyles.minWidth = this.minWidth;\n if (this.maxWidth) popoverStyles.maxWidth = this.maxWidth;\n\n return [\n <div \n class=\"le-popover-trigger\" \n ref={(el) => (this.triggerEl = el)}\n onClick={this.handleTriggerClick}\n >\n <slot name=\"trigger\">\n <button type=\"button\" class=\"le-popover-default-trigger\">\n <span>⊕</span>\n </button>\n </slot>\n </div>,\n \n <div\n id={this.uniqueId}\n class=\"le-popover-content\"\n popover={this.closeOnClickOutside ? 'auto' : 'manual'}\n ref={(el) => (this.popoverEl = el)}\n style={popoverStyles}\n >\n {(this.popoverTitle || this.showClose) && (\n <div class=\"le-popover-header\">\n {this.popoverTitle && <span class=\"le-popover-title\">{this.popoverTitle}</span>}\n {this.showClose && (\n <button \n type=\"button\" \n class=\"le-popover-close\"\n onClick={() => this.hide()}\n aria-label=\"Close\"\n >\n ×\n </button>\n )}\n </div>\n )}\n <div class=\"le-popover-body\">\n <slot></slot>\n </div>\n </div>\n ];\n }\n}\n"],"names":[],"mappings":"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"}