le-kit 0.5.2 → 0.5.4

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 (475) hide show
  1. package/LLM_CONTEXT.md +22 -33
  2. package/package.json +3 -1
  3. package/readme.md +2 -0
  4. package/dist/cjs/index-BzadfLTc.js +0 -1864
  5. package/dist/cjs/index-BzadfLTc.js.map +0 -1
  6. package/dist/cjs/index.cjs.js +0 -124
  7. package/dist/cjs/index.cjs.js.map +0 -1
  8. package/dist/cjs/le-bar_16.cjs.entry.js +0 -3709
  9. package/dist/cjs/le-box.cjs.entry.js +0 -184
  10. package/dist/cjs/le-card.cjs.entry.js +0 -29
  11. package/dist/cjs/le-code-input.cjs.entry.js +0 -181
  12. package/dist/cjs/le-combobox.cjs.entry.js +0 -237
  13. package/dist/cjs/le-header-placeholder.cjs.entry.js +0 -18
  14. package/dist/cjs/le-kit.cjs.js +0 -27
  15. package/dist/cjs/le-kit.cjs.js.map +0 -1
  16. package/dist/cjs/le-multiselect.cjs.entry.js +0 -306
  17. package/dist/cjs/le-number-input.cjs.entry.js +0 -202
  18. package/dist/cjs/le-round-progress.cjs.entry.js +0 -106
  19. package/dist/cjs/le-segmented-control.cjs.entry.js +0 -245
  20. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +0 -229
  21. package/dist/cjs/le-side-panel.cjs.entry.js +0 -546
  22. package/dist/cjs/le-stack.cjs.entry.js +0 -135
  23. package/dist/cjs/le-tab-bar.cjs.entry.js +0 -242
  24. package/dist/cjs/le-tab-panel.cjs.entry.js +0 -100
  25. package/dist/cjs/le-tab.cjs.entry.js +0 -136
  26. package/dist/cjs/le-tabs.cjs.entry.js +0 -307
  27. package/dist/cjs/le-tag.cjs.entry.js +0 -68
  28. package/dist/cjs/le-text.cjs.entry.js +0 -335
  29. package/dist/cjs/le-turntable.cjs.entry.js +0 -139
  30. package/dist/cjs/loader.cjs.js +0 -15
  31. package/dist/cjs/loader.cjs.js.map +0 -1
  32. package/dist/cjs/utils-Dxx9WhWK.js +0 -152
  33. package/dist/cjs/utils-Dxx9WhWK.js.map +0 -1
  34. package/dist/collection/assets/icons/chevron-down.svg +0 -3
  35. package/dist/collection/collection-manifest.json +0 -47
  36. package/dist/collection/components/le-bar/le-bar.css +0 -255
  37. package/dist/collection/components/le-bar/le-bar.js +0 -680
  38. package/dist/collection/components/le-bar/le-bar.js.map +0 -1
  39. package/dist/collection/components/le-box/le-box.css +0 -37
  40. package/dist/collection/components/le-box/le-box.js +0 -614
  41. package/dist/collection/components/le-box/le-box.js.map +0 -1
  42. package/dist/collection/components/le-button/le-button.css +0 -290
  43. package/dist/collection/components/le-button/le-button.js +0 -460
  44. package/dist/collection/components/le-button/le-button.js.map +0 -1
  45. package/dist/collection/components/le-card/le-card.css +0 -74
  46. package/dist/collection/components/le-card/le-card.js +0 -102
  47. package/dist/collection/components/le-card/le-card.js.map +0 -1
  48. package/dist/collection/components/le-checkbox/le-checkbox.css +0 -93
  49. package/dist/collection/components/le-checkbox/le-checkbox.js +0 -192
  50. package/dist/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  51. package/dist/collection/components/le-code-input/le-code-input.css +0 -106
  52. package/dist/collection/components/le-code-input/le-code-input.js +0 -466
  53. package/dist/collection/components/le-code-input/le-code-input.js.map +0 -1
  54. package/dist/collection/components/le-collapse/le-collapse.css +0 -31
  55. package/dist/collection/components/le-collapse/le-collapse.js +0 -184
  56. package/dist/collection/components/le-collapse/le-collapse.js.map +0 -1
  57. package/dist/collection/components/le-combobox/le-combobox.css +0 -144
  58. package/dist/collection/components/le-combobox/le-combobox.js +0 -659
  59. package/dist/collection/components/le-combobox/le-combobox.js.map +0 -1
  60. package/dist/collection/components/le-component/le-component.css +0 -189
  61. package/dist/collection/components/le-component/le-component.js +0 -367
  62. package/dist/collection/components/le-component/le-component.js.map +0 -1
  63. package/dist/collection/components/le-current-heading/le-current-heading.css +0 -13
  64. package/dist/collection/components/le-current-heading/le-current-heading.js +0 -130
  65. package/dist/collection/components/le-current-heading/le-current-heading.js.map +0 -1
  66. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +0 -167
  67. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +0 -761
  68. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +0 -1
  69. package/dist/collection/components/le-header/le-header.css +0 -120
  70. package/dist/collection/components/le-header/le-header.js +0 -508
  71. package/dist/collection/components/le-header/le-header.js.map +0 -1
  72. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +0 -21
  73. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +0 -1
  74. package/dist/collection/components/le-icon/le-icon.css +0 -13
  75. package/dist/collection/components/le-icon/le-icon.js +0 -185
  76. package/dist/collection/components/le-icon/le-icon.js.map +0 -1
  77. package/dist/collection/components/le-multiselect/le-multiselect.css +0 -163
  78. package/dist/collection/components/le-multiselect/le-multiselect.js +0 -734
  79. package/dist/collection/components/le-multiselect/le-multiselect.js.map +0 -1
  80. package/dist/collection/components/le-navigation/le-navigation.css +0 -330
  81. package/dist/collection/components/le-navigation/le-navigation.js +0 -700
  82. package/dist/collection/components/le-navigation/le-navigation.js.map +0 -1
  83. package/dist/collection/components/le-number-input/le-number-input.css +0 -135
  84. package/dist/collection/components/le-number-input/le-number-input.js +0 -515
  85. package/dist/collection/components/le-number-input/le-number-input.js.map +0 -1
  86. package/dist/collection/components/le-popover/le-popover.css +0 -163
  87. package/dist/collection/components/le-popover/le-popover.js +0 -853
  88. package/dist/collection/components/le-popover/le-popover.js.map +0 -1
  89. package/dist/collection/components/le-popup/le-popup.api.js +0 -102
  90. package/dist/collection/components/le-popup/le-popup.api.js.map +0 -1
  91. package/dist/collection/components/le-popup/le-popup.css +0 -222
  92. package/dist/collection/components/le-popup/le-popup.js +0 -626
  93. package/dist/collection/components/le-popup/le-popup.js.map +0 -1
  94. package/dist/collection/components/le-round-progress/le-round-progress.css +0 -34
  95. package/dist/collection/components/le-round-progress/le-round-progress.js +0 -184
  96. package/dist/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  97. package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +0 -29
  98. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +0 -186
  99. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +0 -1
  100. package/dist/collection/components/le-segmented-control/le-segmented-control.css +0 -78
  101. package/dist/collection/components/le-segmented-control/le-segmented-control.js +0 -445
  102. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +0 -1
  103. package/dist/collection/components/le-select/le-select.css +0 -121
  104. package/dist/collection/components/le-select/le-select.js +0 -578
  105. package/dist/collection/components/le-select/le-select.js.map +0 -1
  106. package/dist/collection/components/le-side-panel/le-side-panel.css +0 -193
  107. package/dist/collection/components/le-side-panel/le-side-panel.js +0 -953
  108. package/dist/collection/components/le-side-panel/le-side-panel.js.map +0 -1
  109. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +0 -610
  110. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +0 -1
  111. package/dist/collection/components/le-slot/le-slot.default.css +0 -222
  112. package/dist/collection/components/le-slot/le-slot.js +0 -638
  113. package/dist/collection/components/le-slot/le-slot.js.map +0 -1
  114. package/dist/collection/components/le-stack/le-stack.default.css +0 -37
  115. package/dist/collection/components/le-stack/le-stack.js +0 -389
  116. package/dist/collection/components/le-stack/le-stack.js.map +0 -1
  117. package/dist/collection/components/le-string-input/le-string-input.css +0 -83
  118. package/dist/collection/components/le-string-input/le-string-input.js +0 -413
  119. package/dist/collection/components/le-string-input/le-string-input.js.map +0 -1
  120. package/dist/collection/components/le-tab/le-tab.css +0 -289
  121. package/dist/collection/components/le-tab/le-tab.js +0 -565
  122. package/dist/collection/components/le-tab/le-tab.js.map +0 -1
  123. package/dist/collection/components/le-tab-bar/le-tab-bar.css +0 -89
  124. package/dist/collection/components/le-tab-bar/le-tab-bar.js +0 -467
  125. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +0 -1
  126. package/dist/collection/components/le-tab-panel/le-tab-panel.css +0 -30
  127. package/dist/collection/components/le-tab-panel/le-tab-panel.js +0 -302
  128. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +0 -1
  129. package/dist/collection/components/le-tabs/le-tabs.css +0 -146
  130. package/dist/collection/components/le-tabs/le-tabs.js +0 -588
  131. package/dist/collection/components/le-tabs/le-tabs.js.map +0 -1
  132. package/dist/collection/components/le-tag/le-tag.css +0 -139
  133. package/dist/collection/components/le-tag/le-tag.js +0 -266
  134. package/dist/collection/components/le-tag/le-tag.js.map +0 -1
  135. package/dist/collection/components/le-text/le-text.css +0 -169
  136. package/dist/collection/components/le-text/le-text.js +0 -475
  137. package/dist/collection/components/le-text/le-text.js.map +0 -1
  138. package/dist/collection/components/le-turntable/le-turntable.css +0 -10
  139. package/dist/collection/components/le-turntable/le-turntable.js +0 -210
  140. package/dist/collection/components/le-turntable/le-turntable.js.map +0 -1
  141. package/dist/collection/dist/components/assets/custom-elements.json +0 -11935
  142. package/dist/collection/dist/components/assets/icons/chevron-down.json +0 -13
  143. package/dist/collection/dist/components/assets/icons/chevron-down.svg +0 -3
  144. package/dist/collection/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  145. package/dist/collection/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  146. package/dist/collection/dist/components/assets/icons/hamburger.json +0 -14
  147. package/dist/collection/dist/components/assets/icons/side-panel.json +0 -61
  148. package/dist/collection/dist/themes/base.css +0 -89
  149. package/dist/collection/dist/themes/dark.css +0 -104
  150. package/dist/collection/dist/themes/default.css +0 -112
  151. package/dist/collection/dist/themes/gradient.css +0 -104
  152. package/dist/collection/dist/themes/index.css +0 -76
  153. package/dist/collection/dist/themes/minimal.css +0 -104
  154. package/dist/collection/dist/themes/warm.css +0 -104
  155. package/dist/collection/global/app.js +0 -177
  156. package/dist/collection/global/app.js.map +0 -1
  157. package/dist/collection/index.js +0 -16
  158. package/dist/collection/index.js.map +0 -1
  159. package/dist/collection/types/blocks.js +0 -115
  160. package/dist/collection/types/blocks.js.map +0 -1
  161. package/dist/collection/types/options.js +0 -2
  162. package/dist/collection/types/options.js.map +0 -1
  163. package/dist/collection/utils/utils.js +0 -141
  164. package/dist/collection/utils/utils.js.map +0 -1
  165. package/dist/components/app.js +0 -180
  166. package/dist/components/app.js.map +0 -1
  167. package/dist/components/assets/custom-elements.json +0 -11935
  168. package/dist/components/assets/icons/chevron-down.json +0 -13
  169. package/dist/components/assets/icons/chevron-down.svg +0 -3
  170. package/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  171. package/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  172. package/dist/components/assets/icons/hamburger.json +0 -14
  173. package/dist/components/assets/icons/side-panel.json +0 -61
  174. package/dist/components/index.d.ts +0 -33
  175. package/dist/components/index.js +0 -12
  176. package/dist/components/index.js.map +0 -1
  177. package/dist/components/le-bar.d.ts +0 -11
  178. package/dist/components/le-bar.js +0 -9
  179. package/dist/components/le-bar.js.map +0 -1
  180. package/dist/components/le-bar2.js +0 -506
  181. package/dist/components/le-bar2.js.map +0 -1
  182. package/dist/components/le-box.d.ts +0 -11
  183. package/dist/components/le-box.js +0 -273
  184. package/dist/components/le-box.js.map +0 -1
  185. package/dist/components/le-button.d.ts +0 -11
  186. package/dist/components/le-button.js +0 -9
  187. package/dist/components/le-button.js.map +0 -1
  188. package/dist/components/le-button2.js +0 -1791
  189. package/dist/components/le-button2.js.map +0 -1
  190. package/dist/components/le-card.d.ts +0 -11
  191. package/dist/components/le-card.js +0 -100
  192. package/dist/components/le-card.js.map +0 -1
  193. package/dist/components/le-checkbox.d.ts +0 -11
  194. package/dist/components/le-checkbox.js +0 -9
  195. package/dist/components/le-checkbox.js.map +0 -1
  196. package/dist/components/le-code-input.d.ts +0 -11
  197. package/dist/components/le-code-input.js +0 -265
  198. package/dist/components/le-code-input.js.map +0 -1
  199. package/dist/components/le-collapse.d.ts +0 -11
  200. package/dist/components/le-collapse.js +0 -9
  201. package/dist/components/le-collapse.js.map +0 -1
  202. package/dist/components/le-collapse2.js +0 -138
  203. package/dist/components/le-collapse2.js.map +0 -1
  204. package/dist/components/le-combobox.d.ts +0 -11
  205. package/dist/components/le-combobox.js +0 -326
  206. package/dist/components/le-combobox.js.map +0 -1
  207. package/dist/components/le-component.d.ts +0 -11
  208. package/dist/components/le-component.js +0 -9
  209. package/dist/components/le-component.js.map +0 -1
  210. package/dist/components/le-current-heading.d.ts +0 -11
  211. package/dist/components/le-current-heading.js +0 -93
  212. package/dist/components/le-current-heading.js.map +0 -1
  213. package/dist/components/le-dropdown-base.d.ts +0 -11
  214. package/dist/components/le-dropdown-base.js +0 -9
  215. package/dist/components/le-dropdown-base.js.map +0 -1
  216. package/dist/components/le-dropdown-base2.js +0 -393
  217. package/dist/components/le-dropdown-base2.js.map +0 -1
  218. package/dist/components/le-header-placeholder.d.ts +0 -11
  219. package/dist/components/le-header-placeholder.js +0 -37
  220. package/dist/components/le-header-placeholder.js.map +0 -1
  221. package/dist/components/le-header.d.ts +0 -11
  222. package/dist/components/le-header.js +0 -349
  223. package/dist/components/le-header.js.map +0 -1
  224. package/dist/components/le-icon.d.ts +0 -11
  225. package/dist/components/le-icon.js +0 -9
  226. package/dist/components/le-icon.js.map +0 -1
  227. package/dist/components/le-icon2.js +0 -150
  228. package/dist/components/le-icon2.js.map +0 -1
  229. package/dist/components/le-multiselect.d.ts +0 -11
  230. package/dist/components/le-multiselect.js +0 -405
  231. package/dist/components/le-multiselect.js.map +0 -1
  232. package/dist/components/le-navigation.d.ts +0 -11
  233. package/dist/components/le-navigation.js +0 -502
  234. package/dist/components/le-navigation.js.map +0 -1
  235. package/dist/components/le-number-input.d.ts +0 -11
  236. package/dist/components/le-number-input.js +0 -288
  237. package/dist/components/le-number-input.js.map +0 -1
  238. package/dist/components/le-popover.d.ts +0 -11
  239. package/dist/components/le-popover.js +0 -9
  240. package/dist/components/le-popover.js.map +0 -1
  241. package/dist/components/le-popover2.js +0 -667
  242. package/dist/components/le-popover2.js.map +0 -1
  243. package/dist/components/le-popup.api.js +0 -106
  244. package/dist/components/le-popup.api.js.map +0 -1
  245. package/dist/components/le-popup.d.ts +0 -11
  246. package/dist/components/le-popup.js +0 -9
  247. package/dist/components/le-popup.js.map +0 -1
  248. package/dist/components/le-round-progress.d.ts +0 -11
  249. package/dist/components/le-round-progress.js +0 -135
  250. package/dist/components/le-round-progress.js.map +0 -1
  251. package/dist/components/le-scroll-progress.d.ts +0 -11
  252. package/dist/components/le-scroll-progress.js +0 -142
  253. package/dist/components/le-scroll-progress.js.map +0 -1
  254. package/dist/components/le-segmented-control.d.ts +0 -11
  255. package/dist/components/le-segmented-control.js +0 -331
  256. package/dist/components/le-segmented-control.js.map +0 -1
  257. package/dist/components/le-select.d.ts +0 -11
  258. package/dist/components/le-select.js +0 -9
  259. package/dist/components/le-select.js.map +0 -1
  260. package/dist/components/le-side-panel-toggle.d.ts +0 -11
  261. package/dist/components/le-side-panel-toggle.js +0 -9
  262. package/dist/components/le-side-panel-toggle.js.map +0 -1
  263. package/dist/components/le-side-panel-toggle2.js +0 -311
  264. package/dist/components/le-side-panel-toggle2.js.map +0 -1
  265. package/dist/components/le-side-panel.d.ts +0 -11
  266. package/dist/components/le-side-panel.js +0 -660
  267. package/dist/components/le-side-panel.js.map +0 -1
  268. package/dist/components/le-slot.d.ts +0 -11
  269. package/dist/components/le-slot.js +0 -9
  270. package/dist/components/le-slot.js.map +0 -1
  271. package/dist/components/le-stack.d.ts +0 -11
  272. package/dist/components/le-stack.js +0 -215
  273. package/dist/components/le-stack.js.map +0 -1
  274. package/dist/components/le-string-input.d.ts +0 -11
  275. package/dist/components/le-string-input.js +0 -9
  276. package/dist/components/le-string-input.js.map +0 -1
  277. package/dist/components/le-tab-bar.d.ts +0 -11
  278. package/dist/components/le-tab-bar.js +0 -330
  279. package/dist/components/le-tab-bar.js.map +0 -1
  280. package/dist/components/le-tab-panel.d.ts +0 -11
  281. package/dist/components/le-tab-panel.js +0 -182
  282. package/dist/components/le-tab-panel.js.map +0 -1
  283. package/dist/components/le-tab.d.ts +0 -11
  284. package/dist/components/le-tab.js +0 -9
  285. package/dist/components/le-tab.js.map +0 -1
  286. package/dist/components/le-tab2.js +0 -220
  287. package/dist/components/le-tab2.js.map +0 -1
  288. package/dist/components/le-tabs.d.ts +0 -11
  289. package/dist/components/le-tabs.js +0 -397
  290. package/dist/components/le-tabs.js.map +0 -1
  291. package/dist/components/le-tag.d.ts +0 -11
  292. package/dist/components/le-tag.js +0 -9
  293. package/dist/components/le-tag.js.map +0 -1
  294. package/dist/components/le-tag2.js +0 -141
  295. package/dist/components/le-tag2.js.map +0 -1
  296. package/dist/components/le-text.d.ts +0 -11
  297. package/dist/components/le-text.js +0 -415
  298. package/dist/components/le-text.js.map +0 -1
  299. package/dist/components/le-turntable.d.ts +0 -11
  300. package/dist/components/le-turntable.js +0 -164
  301. package/dist/components/le-turntable.js.map +0 -1
  302. package/dist/components/utils.js +0 -146
  303. package/dist/components/utils.js.map +0 -1
  304. package/dist/docs.d.ts +0 -443
  305. package/dist/docs.json +0 -14289
  306. package/dist/esm/index-DFTm5BqT.js +0 -1844
  307. package/dist/esm/index-DFTm5BqT.js.map +0 -1
  308. package/dist/esm/index.js +0 -109
  309. package/dist/esm/index.js.map +0 -1
  310. package/dist/esm/le-bar_16.entry.js +0 -3692
  311. package/dist/esm/le-box.entry.js +0 -182
  312. package/dist/esm/le-box.entry.js.map +0 -1
  313. package/dist/esm/le-card.entry.js +0 -27
  314. package/dist/esm/le-card.entry.js.map +0 -1
  315. package/dist/esm/le-code-input.entry.js +0 -179
  316. package/dist/esm/le-code-input.entry.js.map +0 -1
  317. package/dist/esm/le-combobox.entry.js +0 -235
  318. package/dist/esm/le-combobox.entry.js.map +0 -1
  319. package/dist/esm/le-header-placeholder.entry.js +0 -16
  320. package/dist/esm/le-header-placeholder.entry.js.map +0 -1
  321. package/dist/esm/le-kit.js +0 -23
  322. package/dist/esm/le-kit.js.map +0 -1
  323. package/dist/esm/le-multiselect.entry.js +0 -304
  324. package/dist/esm/le-multiselect.entry.js.map +0 -1
  325. package/dist/esm/le-number-input.entry.js +0 -200
  326. package/dist/esm/le-number-input.entry.js.map +0 -1
  327. package/dist/esm/le-round-progress.entry.js +0 -104
  328. package/dist/esm/le-round-progress.entry.js.map +0 -1
  329. package/dist/esm/le-segmented-control.entry.js +0 -243
  330. package/dist/esm/le-segmented-control.entry.js.map +0 -1
  331. package/dist/esm/le-side-panel-toggle.entry.js +0 -227
  332. package/dist/esm/le-side-panel-toggle.entry.js.map +0 -1
  333. package/dist/esm/le-side-panel.entry.js +0 -544
  334. package/dist/esm/le-side-panel.entry.js.map +0 -1
  335. package/dist/esm/le-stack.entry.js +0 -133
  336. package/dist/esm/le-stack.entry.js.map +0 -1
  337. package/dist/esm/le-tab-bar.entry.js +0 -240
  338. package/dist/esm/le-tab-bar.entry.js.map +0 -1
  339. package/dist/esm/le-tab-panel.entry.js +0 -98
  340. package/dist/esm/le-tab-panel.entry.js.map +0 -1
  341. package/dist/esm/le-tab.entry.js +0 -134
  342. package/dist/esm/le-tab.entry.js.map +0 -1
  343. package/dist/esm/le-tabs.entry.js +0 -305
  344. package/dist/esm/le-tabs.entry.js.map +0 -1
  345. package/dist/esm/le-tag.entry.js +0 -66
  346. package/dist/esm/le-tag.entry.js.map +0 -1
  347. package/dist/esm/le-text.entry.js +0 -333
  348. package/dist/esm/le-text.entry.js.map +0 -1
  349. package/dist/esm/le-turntable.entry.js +0 -137
  350. package/dist/esm/le-turntable.entry.js.map +0 -1
  351. package/dist/esm/loader.js +0 -13
  352. package/dist/esm/loader.js.map +0 -1
  353. package/dist/esm/utils-DZYCZLrF.js +0 -146
  354. package/dist/esm/utils-DZYCZLrF.js.map +0 -1
  355. package/dist/index.cjs.js +0 -1
  356. package/dist/index.js +0 -1
  357. package/dist/le-kit/dist/components/assets/custom-elements.json +0 -11935
  358. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +0 -13
  359. package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +0 -3
  360. package/dist/le-kit/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  361. package/dist/le-kit/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  362. package/dist/le-kit/dist/components/assets/icons/hamburger.json +0 -14
  363. package/dist/le-kit/dist/components/assets/icons/side-panel.json +0 -61
  364. package/dist/le-kit/dist/themes/base.css +0 -89
  365. package/dist/le-kit/dist/themes/dark.css +0 -104
  366. package/dist/le-kit/dist/themes/default.css +0 -112
  367. package/dist/le-kit/dist/themes/gradient.css +0 -104
  368. package/dist/le-kit/dist/themes/index.css +0 -76
  369. package/dist/le-kit/dist/themes/minimal.css +0 -104
  370. package/dist/le-kit/dist/themes/warm.css +0 -104
  371. package/dist/le-kit/index.esm.js +0 -2
  372. package/dist/le-kit/index.esm.js.map +0 -1
  373. package/dist/le-kit/le-kit.css +0 -1
  374. package/dist/le-kit/le-kit.esm.js +0 -2
  375. package/dist/le-kit/le-kit.esm.js.map +0 -1
  376. package/dist/le-kit/loader.esm.js.map +0 -1
  377. package/dist/le-kit/p-221d379a.entry.js +0 -2
  378. package/dist/le-kit/p-221d379a.entry.js.map +0 -1
  379. package/dist/le-kit/p-24112ca3.entry.js +0 -2
  380. package/dist/le-kit/p-24112ca3.entry.js.map +0 -1
  381. package/dist/le-kit/p-2c6d080d.entry.js +0 -2
  382. package/dist/le-kit/p-2c6d080d.entry.js.map +0 -1
  383. package/dist/le-kit/p-46276e77.entry.js +0 -2
  384. package/dist/le-kit/p-46276e77.entry.js.map +0 -1
  385. package/dist/le-kit/p-516c8531.entry.js +0 -2
  386. package/dist/le-kit/p-516c8531.entry.js.map +0 -1
  387. package/dist/le-kit/p-6ae60ba5.entry.js +0 -2
  388. package/dist/le-kit/p-6ae60ba5.entry.js.map +0 -1
  389. package/dist/le-kit/p-6b69f9a2.entry.js +0 -2
  390. package/dist/le-kit/p-6b69f9a2.entry.js.map +0 -1
  391. package/dist/le-kit/p-6d14306f.entry.js +0 -2
  392. package/dist/le-kit/p-6d14306f.entry.js.map +0 -1
  393. package/dist/le-kit/p-7bcdf2d4.entry.js +0 -2
  394. package/dist/le-kit/p-7bcdf2d4.entry.js.map +0 -1
  395. package/dist/le-kit/p-7cf1e23c.entry.js +0 -2
  396. package/dist/le-kit/p-7cf1e23c.entry.js.map +0 -1
  397. package/dist/le-kit/p-85f2fd4d.entry.js +0 -2
  398. package/dist/le-kit/p-85f2fd4d.entry.js.map +0 -1
  399. package/dist/le-kit/p-98242429.entry.js +0 -2
  400. package/dist/le-kit/p-98242429.entry.js.map +0 -1
  401. package/dist/le-kit/p-D8RYDS9p.js +0 -2
  402. package/dist/le-kit/p-D8RYDS9p.js.map +0 -1
  403. package/dist/le-kit/p-DFTm5BqT.js +0 -3
  404. package/dist/le-kit/p-DFTm5BqT.js.map +0 -1
  405. package/dist/le-kit/p-ab6c1def.entry.js +0 -2
  406. package/dist/le-kit/p-ab6c1def.entry.js.map +0 -1
  407. package/dist/le-kit/p-ae4ead64.entry.js +0 -2
  408. package/dist/le-kit/p-ae4ead64.entry.js.map +0 -1
  409. package/dist/le-kit/p-b05d4511.entry.js +0 -2
  410. package/dist/le-kit/p-b05d4511.entry.js.map +0 -1
  411. package/dist/le-kit/p-b6ac02ff.entry.js +0 -2
  412. package/dist/le-kit/p-b6ac02ff.entry.js.map +0 -1
  413. package/dist/le-kit/p-c24769e2.entry.js +0 -2
  414. package/dist/le-kit/p-c24769e2.entry.js.map +0 -1
  415. package/dist/le-kit/p-dc0445ad.entry.js +0 -2
  416. package/dist/le-kit/p-dc0445ad.entry.js.map +0 -1
  417. package/dist/le-kit/p-eb5286f2.entry.js +0 -2
  418. package/dist/le-kit/p-eb5286f2.entry.js.map +0 -1
  419. package/dist/le-kit/p-f78b1ee6.entry.js +0 -2
  420. package/dist/le-kit/p-f78b1ee6.entry.js.map +0 -1
  421. package/dist/themes/base.css +0 -89
  422. package/dist/themes/dark.css +0 -104
  423. package/dist/themes/default.css +0 -112
  424. package/dist/themes/gradient.css +0 -104
  425. package/dist/themes/index.css +0 -76
  426. package/dist/themes/minimal.css +0 -104
  427. package/dist/themes/warm.css +0 -104
  428. package/dist/types/components/le-bar/le-bar.d.ts +0 -131
  429. package/dist/types/components/le-box/le-box.d.ts +0 -111
  430. package/dist/types/components/le-button/le-button.d.ts +0 -93
  431. package/dist/types/components/le-card/le-card.d.ts +0 -37
  432. package/dist/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  433. package/dist/types/components/le-code-input/le-code-input.d.ts +0 -102
  434. package/dist/types/components/le-collapse/le-collapse.d.ts +0 -43
  435. package/dist/types/components/le-combobox/le-combobox.d.ts +0 -128
  436. package/dist/types/components/le-component/le-component.d.ts +0 -115
  437. package/dist/types/components/le-current-heading/le-current-heading.d.ts +0 -25
  438. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +0 -118
  439. package/dist/types/components/le-header/le-header.d.ts +0 -115
  440. package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +0 -13
  441. package/dist/types/components/le-icon/le-icon.d.ts +0 -28
  442. package/dist/types/components/le-multiselect/le-multiselect.d.ts +0 -143
  443. package/dist/types/components/le-navigation/le-navigation.d.ts +0 -125
  444. package/dist/types/components/le-number-input/le-number-input.d.ts +0 -106
  445. package/dist/types/components/le-popover/le-popover.d.ts +0 -129
  446. package/dist/types/components/le-popup/le-popup.api.d.ts +0 -73
  447. package/dist/types/components/le-popup/le-popup.d.ts +0 -127
  448. package/dist/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  449. package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +0 -40
  450. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +0 -82
  451. package/dist/types/components/le-select/le-select.d.ts +0 -125
  452. package/dist/types/components/le-side-panel/le-side-panel.d.ts +0 -100
  453. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +0 -48
  454. package/dist/types/components/le-slot/le-slot.d.ts +0 -149
  455. package/dist/types/components/le-stack/le-stack.d.ts +0 -73
  456. package/dist/types/components/le-string-input/le-string-input.d.ts +0 -91
  457. package/dist/types/components/le-tab/le-tab.d.ts +0 -116
  458. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +0 -88
  459. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +0 -75
  460. package/dist/types/components/le-tabs/le-tabs.d.ts +0 -108
  461. package/dist/types/components/le-tag/le-tag.d.ts +0 -78
  462. package/dist/types/components/le-text/le-text.d.ts +0 -141
  463. package/dist/types/components/le-turntable/le-turntable.d.ts +0 -55
  464. package/dist/types/components.d.ts +0 -5716
  465. package/dist/types/global/app.d.ts +0 -96
  466. package/dist/types/index.d.ts +0 -16
  467. package/dist/types/stencil-public-runtime.d.ts +0 -1799
  468. package/dist/types/types/blocks.d.ts +0 -136
  469. package/dist/types/types/options.d.ts +0 -143
  470. package/dist/types/utils/utils.d.ts +0 -54
  471. package/loader/cdn.js +0 -1
  472. package/loader/index.cjs.js +0 -1
  473. package/loader/index.d.ts +0 -24
  474. package/loader/index.es2017.js +0 -1
  475. package/loader/index.js +0 -2
@@ -1,638 +0,0 @@
1
- import { h, Host, getAssetPath } from "@stencil/core";
2
- import { classnames, observeModeChanges } from "../../utils/utils";
3
- import { getLeKitConfig } from "../../global/app";
4
- /**
5
- * Slot placeholder component for admin/CMS mode.
6
- *
7
- * This component renders a visual placeholder for slots when in admin mode,
8
- * allowing CMS systems to show available drop zones for content or inline editing.
9
- *
10
- * In non-admin mode, this component renders nothing and acts as a passthrough.
11
- *
12
- * @slot - Default slot for placeholder content or drop zone UI
13
- *
14
- * @cmsInternal true
15
- * @cmsCategory System
16
- */
17
- export class LeSlot {
18
- el;
19
- /**
20
- * The type of slot content.
21
- * - `slot`: Default, shows a dropzone for components (default)
22
- * - `text`: Shows a single-line text input
23
- * - `textarea`: Shows a multi-line text area
24
- */
25
- type = 'slot';
26
- /**
27
- * The name of the slot this placeholder represents.
28
- * Should match the slot name in the parent component.
29
- */
30
- name = '';
31
- /**
32
- * Label to display in admin mode.
33
- * If not provided, the slot name will be used.
34
- */
35
- label;
36
- /**
37
- * Description of what content this slot accepts.
38
- * Shown in admin mode to guide content editors.
39
- */
40
- description;
41
- /**
42
- * Comma-separated list of allowed component tags for this slot.
43
- * Used by CMS to filter available components.
44
- *
45
- * @example "le-card,le-button,le-text"
46
- */
47
- allowedComponents;
48
- /**
49
- * Whether multiple components can be dropped in this slot.
50
- */
51
- multiple = true;
52
- /**
53
- * Whether this slot is required to have content.
54
- */
55
- required = false;
56
- /**
57
- * Placeholder text for text/textarea inputs in admin mode.
58
- */
59
- placeholder;
60
- /**
61
- * The HTML tag to create when there's no slotted element.
62
- * Used with type="text" or type="textarea" to auto-create elements.
63
- *
64
- * @example "h3" - creates <h3 slot="header">content</h3>
65
- * @example "p" - creates <p slot="content">content</p>
66
- */
67
- tag;
68
- /**
69
- * CSS styles for the slot dropzone container.
70
- * Useful for layouts - e.g., "flex-direction: row" for horizontal stacks.
71
- * Only applies in admin mode for type="slot".
72
- */
73
- slotStyle;
74
- /**
75
- * Internal state to track admin mode
76
- */
77
- adminMode = false;
78
- /**
79
- * Internal state for text input value (synced from slot content)
80
- */
81
- textValue = '';
82
- /**
83
- * Whether the current textValue contains valid HTML
84
- */
85
- isValidHtml = true;
86
- /**
87
- * Available components loaded from Custom Elements Manifest
88
- */
89
- availableComponents = [];
90
- /**
91
- * Whether the component picker popover is open
92
- */
93
- pickerOpen = false;
94
- /**
95
- * Reference to the slot element to access assignedNodes
96
- */
97
- slotRef;
98
- /**
99
- * The original slotted element (e.g., <h3 slot="header">)
100
- */
101
- slottedElement;
102
- /**
103
- * Emitted when text content changes in admin mode.
104
- * The event detail contains the new text value and validity.
105
- */
106
- leSlotChange;
107
- disconnectModeObserver;
108
- connectedCallback() {
109
- this.disconnectModeObserver = observeModeChanges(this.el, mode => {
110
- const wasAdmin = this.adminMode;
111
- this.adminMode = mode === 'admin';
112
- // When entering admin mode, read content from slotted elements
113
- if (this.adminMode && !wasAdmin) {
114
- // Need to wait for render to access slot ref
115
- requestAnimationFrame(() => this.readSlottedContent());
116
- // Load available components for the component picker
117
- if (this.type === 'slot') {
118
- this.loadAvailableComponents();
119
- }
120
- }
121
- });
122
- }
123
- disconnectedCallback() {
124
- this.disconnectModeObserver?.();
125
- }
126
- /**
127
- * Flag to prevent re-reading content right after we updated it
128
- */
129
- isUpdating = false;
130
- /**
131
- * Read content from slotted elements via assignedNodes()
132
- */
133
- readSlottedContent() {
134
- if (!this.slotRef)
135
- return;
136
- // Skip if we just updated the content ourselves
137
- if (this.isUpdating) {
138
- this.isUpdating = false;
139
- return;
140
- }
141
- const assignedNodes = this.slotRef.assignedNodes({ flatten: true });
142
- // For text/textarea types, we want to edit the innerHTML of slotted elements
143
- if (this.type === 'text' || this.type === 'textarea') {
144
- // Find the first element node (skip text nodes that are just whitespace)
145
- const elementNode = assignedNodes.find(node => node.nodeType === Node.ELEMENT_NODE);
146
- if (elementNode) {
147
- // Only update textValue if slotted element changed or we don't have one yet
148
- if (this.slottedElement !== elementNode) {
149
- this.slottedElement = elementNode;
150
- this.textValue = elementNode.innerHTML?.trim() || '';
151
- // console.log(`[le-slot "${this.name}"] Read slotted content:`, this.textValue);
152
- }
153
- }
154
- else {
155
- // No element, check for direct text content
156
- const textContent = assignedNodes
157
- .filter(node => node.nodeType === Node.TEXT_NODE)
158
- .map(node => node.textContent)
159
- .join('')
160
- .trim();
161
- if (textContent && !this.textValue) {
162
- this.textValue = textContent;
163
- // console.log(`[le-slot "${this.name}"] Read text content:`, this.textValue);
164
- }
165
- }
166
- }
167
- }
168
- /**
169
- * Validates if a string contains valid HTML
170
- */
171
- validateHtml(html) {
172
- // Empty string is valid
173
- if (!html.trim())
174
- return true;
175
- // Create a template element to parse the HTML
176
- const template = document.createElement('template');
177
- template.innerHTML = html;
178
- // Check that we don't have obviously broken HTML
179
- // Count opening and closing tags for common elements
180
- const openTags = (html.match(/<[a-z][^>]*(?<!\/)>/gi) || []).length;
181
- const closeTags = (html.match(/<\/[a-z][^>]*>/gi) || []).length;
182
- const selfClosing = (html.match(/<[a-z][^>]*\/>/gi) || []).length;
183
- // Simple validation: opening tags (minus self-closing) should roughly match closing tags
184
- // Allow some tolerance for void elements like <br>, <img>, etc.
185
- const voidElements = (html.match(/<(br|hr|img|input|meta|link|area|base|col|embed|param|source|track|wbr)[^>]*>/gi) || []).length;
186
- const effectiveOpenTags = openTags - selfClosing - voidElements;
187
- // If difference is too large, HTML is likely broken
188
- if (Math.abs(effectiveOpenTags - closeTags) > 1) {
189
- return false;
190
- }
191
- return true;
192
- }
193
- handleTextInput = (event) => {
194
- const target = event.target;
195
- this.textValue = target.value;
196
- this.isValidHtml = this.validateHtml(this.textValue);
197
- if (this.isValidHtml) {
198
- // Set flag to prevent slotchange from re-reading what we just wrote
199
- this.isUpdating = true;
200
- console.log('Updating text value:', this.textValue, 'slottedElement:', this.slottedElement);
201
- if (this.slottedElement) {
202
- // Update existing slotted element's innerHTML
203
- this.slottedElement.innerHTML = this.textValue;
204
- }
205
- else if (this.tag && this.textValue) {
206
- // No slotted element exists
207
- // If the slot doesn't have a name, then it's the default slot
208
- // remove the existing non-slotted content (text nodes and elements without slot attribute)
209
- const rootNode = this.el.getRootNode();
210
- if (!this.name && rootNode instanceof ShadowRoot) {
211
- const hostComponent = rootNode.host;
212
- Array.from(hostComponent.childNodes).forEach(node => {
213
- if (node.nodeType === Node.TEXT_NODE || (node.nodeType === Node.ELEMENT_NODE && !node.hasAttribute('slot'))) {
214
- node.remove();
215
- }
216
- });
217
- }
218
- // create one using the specified tag
219
- this.createSlottedElement();
220
- }
221
- else if (this.textValue) {
222
- // no tag specified - just replace everything in the host component
223
- const rootNode = this.el.getRootNode();
224
- if (rootNode instanceof ShadowRoot) {
225
- const hostComponent = rootNode.host;
226
- hostComponent.innerHTML = this.textValue;
227
- }
228
- }
229
- }
230
- this.leSlotChange.emit({
231
- name: this.name,
232
- value: this.textValue,
233
- isValid: this.isValidHtml,
234
- });
235
- };
236
- /**
237
- * Create a new slotted element when none exists.
238
- * The element is appended to the host component's light DOM.
239
- */
240
- createSlottedElement() {
241
- if (!this.tag)
242
- return;
243
- // Find the host component (le-card, etc.) by traversing up through shadow DOM
244
- // le-slot is inside le-card's shadow DOM, so we need to find le-card's host
245
- const rootNode = this.el.getRootNode();
246
- if (!(rootNode instanceof ShadowRoot))
247
- return;
248
- const hostComponent = rootNode.host;
249
- if (!hostComponent)
250
- return;
251
- // Create the new element
252
- const newElement = document.createElement(this.tag);
253
- newElement.innerHTML = this.textValue;
254
- // Set the slot attribute if this is a named slot
255
- if (this.name) {
256
- newElement.setAttribute('slot', this.name);
257
- }
258
- // Append to the host component's light DOM
259
- hostComponent.appendChild(newElement);
260
- // Store reference to the new element
261
- this.slottedElement = newElement;
262
- // console.log(`[le-slot "${this.name}"] Created new <${this.tag}> element`);
263
- }
264
- /**
265
- * Load available components from Custom Elements Manifest
266
- */
267
- async loadAvailableComponents() {
268
- try {
269
- const { manifestFile } = getLeKitConfig();
270
- const manifestFileResolved = getAssetPath(`./assets/${manifestFile}`);
271
- const response = await fetch(manifestFileResolved);
272
- const manifest = await response.json();
273
- const components = [];
274
- const allowedList = this.allowedComponents?.split(',').map(s => s.trim()) || [];
275
- for (const module of manifest.modules) {
276
- for (const declaration of module.declarations || []) {
277
- if (declaration.tagName && declaration.customElement) {
278
- // Skip internal components (le-slot, le-component, le-popover)
279
- const isInternal = ['le-slot', 'le-component', 'le-popover'].includes(declaration.tagName);
280
- if (isInternal)
281
- continue;
282
- // If allowedComponents is specified, filter by it
283
- if (allowedList.length > 0 && !allowedList.includes(declaration.tagName)) {
284
- continue;
285
- }
286
- components.push({
287
- tagName: declaration.tagName,
288
- name: this.formatComponentName(declaration.tagName),
289
- description: declaration.description || '',
290
- });
291
- }
292
- }
293
- }
294
- this.availableComponents = components || [];
295
- }
296
- catch (error) {
297
- console.warn('[le-slot] Failed to load component manifest:', error);
298
- }
299
- }
300
- /**
301
- * Format a tag name into a display name
302
- * e.g., 'le-card' -> 'Card'
303
- */
304
- formatComponentName(tagName) {
305
- return tagName
306
- .replace(/^le-/, '')
307
- .split('-')
308
- .map(word => word.charAt(0).toUpperCase() + word.slice(1))
309
- .join(' ');
310
- }
311
- /**
312
- * Add a new component to the slot
313
- */
314
- addComponent(tagName) {
315
- // Find the host component by traversing up through shadow DOM
316
- const rootNode = this.el.getRootNode();
317
- if (!(rootNode instanceof ShadowRoot))
318
- return;
319
- const hostComponent = rootNode.host;
320
- if (!hostComponent)
321
- return;
322
- // Create the new component element
323
- const newElement = document.createElement(tagName);
324
- // Set the slot attribute if this is a named slot
325
- if (this.name) {
326
- newElement.setAttribute('slot', this.name);
327
- }
328
- // Append to the host component's light DOM
329
- hostComponent.appendChild(newElement);
330
- // Emit change event so the page can save
331
- this.leSlotChange.emit({
332
- name: this.name,
333
- value: hostComponent.innerHTML,
334
- isValid: true,
335
- });
336
- }
337
- /**
338
- * Handle slot change event to re-read content when nodes are assigned
339
- */
340
- handleSlotChange = () => {
341
- this.readSlottedContent();
342
- };
343
- render() {
344
- const displayLabel = this.label || this.name;
345
- // Always render the same structure, CSS handles visibility via .admin-mode class
346
- return (h(Host, { key: '8a48f7865340d9a2e201a2f878b2f1c66c55d86c', class: {
347
- 'admin-mode': this.adminMode,
348
- 'invalid-html': !this.isValidHtml,
349
- }, role: this.adminMode ? 'region' : undefined, "aria-label": this.adminMode ? `Slot: ${displayLabel}` : undefined, "data-slot-name": this.name, "data-slot-type": this.type, "data-allowed": this.allowedComponents, "data-multiple": this.multiple, "data-required": this.required }, this.adminMode ? (h("div", { class: "le-slot-container" }, h("div", { class: classnames('le-slot-header', {
350
- 'le-slot-header-no-label': !displayLabel,
351
- 'le-slot-header-text': this.type === 'text',
352
- 'le-slot-header-error': !this.isValidHtml,
353
- }) }, displayLabel && (h("span", { class: "le-slot-label" }, displayLabel, this.required && h("span", { class: "le-slot-required" }, "*"))), !this.isValidHtml && h("span", { class: "le-slot-invalid" }, "\u26A0 Invalid HTML"), this.type === 'slot' && this.adminMode && (h("le-popover", { mode: "default", showClose: true, align: "start", position: "right", popoverTitle: "Add Component", open: this.pickerOpen, onLePopoverOpen: () => (this.pickerOpen = true), onLePopoverClose: () => (this.pickerOpen = false) }, h("le-button", { type: "button", class: "le-slot-button", slot: "trigger", variant: "clear", size: "small", "aria-label": "Add component", "icon-only": true }, h("span", { class: "le-slot-add-btn", slot: "icon-only" }, "+")), h("div", { class: "le-slot-picker" }, this.availableComponents.length > 0 ? (h("ul", { class: "le-slot-picker-list" }, this.availableComponents.map(component => (h("li", { key: component.tagName }, h("button", { class: "le-slot-picker-item", onClick: () => {
354
- this.addComponent(component.tagName);
355
- this.pickerOpen = false;
356
- } }, h("span", { class: "le-slot-picker-name" }, component.name), component.description && h("span", { class: "le-slot-picker-desc" }, component.description))))))) : (h("div", { class: "le-slot-picker-empty" }, "No components available")))))), this.renderContent())) : (
357
- // In default mode, just pass through the slot - slotted content renders naturally
358
- // Note: We use unnamed slot here because named slots from parent component
359
- // are passed as le-slot's light DOM children
360
- h("slot", null))));
361
- }
362
- renderContent() {
363
- // Create the slot element with ref for reading assignedNodes
364
- // Wrap in a hidden div since slot elements can't have style prop in Stencil
365
- // Note: We use unnamed slot here because named slots from parent component
366
- // are passed as le-slot's light DOM children
367
- const slotElement = (h("div", { class: "hidden-slot" }, h("slot", { ref: el => (this.slotRef = el), onSlotchange: this.handleSlotChange })));
368
- switch (this.type) {
369
- case 'text':
370
- return (h("div", { class: { 'le-slot-input': true, 'has-error': !this.isValidHtml } }, h("le-string-input", { mode: "default", value: this.textValue, placeholder: this.placeholder || `Enter ${this.label || this.name || 'text'}...`, onChange: this.handleTextInput }), slotElement));
371
- case 'textarea':
372
- return (h("div", { class: { 'le-slot-input': true, 'has-error': !this.isValidHtml } }, h("textarea", { value: this.textValue, placeholder: this.placeholder || `Enter ${this.label || this.name || 'text'}...`, onInput: this.handleTextInput, required: this.required, rows: 3 }), slotElement));
373
- case 'slot':
374
- default:
375
- // Parse slotStyle string into style object if provided
376
- const dropzoneStyle = {};
377
- if (this.slotStyle) {
378
- this.slotStyle.split(';').forEach(rule => {
379
- const [prop, value] = rule.split(':').map(s => s.trim());
380
- if (prop && value) {
381
- // Convert kebab-case to camelCase for style object
382
- const camelProp = prop.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
383
- dropzoneStyle[camelProp] = value;
384
- }
385
- });
386
- }
387
- return (h("div", { class: "le-slot-dropzone", style: dropzoneStyle }, h("slot", { ref: el => (this.slotRef = el), onSlotchange: this.handleSlotChange })));
388
- }
389
- }
390
- static get is() { return "le-slot"; }
391
- static get encapsulation() { return "shadow"; }
392
- static get originalStyleUrls() {
393
- return {
394
- "$": ["le-slot.default.css"]
395
- };
396
- }
397
- static get styleUrls() {
398
- return {
399
- "$": ["le-slot.default.css"]
400
- };
401
- }
402
- static get properties() {
403
- return {
404
- "type": {
405
- "type": "string",
406
- "mutable": false,
407
- "complexType": {
408
- "original": "'slot' | 'text' | 'textarea'",
409
- "resolved": "\"slot\" | \"text\" | \"textarea\"",
410
- "references": {}
411
- },
412
- "required": false,
413
- "optional": false,
414
- "docs": {
415
- "tags": [],
416
- "text": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area"
417
- },
418
- "getter": false,
419
- "setter": false,
420
- "reflect": false,
421
- "attribute": "type",
422
- "defaultValue": "'slot'"
423
- },
424
- "name": {
425
- "type": "string",
426
- "mutable": false,
427
- "complexType": {
428
- "original": "string",
429
- "resolved": "string",
430
- "references": {}
431
- },
432
- "required": false,
433
- "optional": false,
434
- "docs": {
435
- "tags": [],
436
- "text": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component."
437
- },
438
- "getter": false,
439
- "setter": false,
440
- "reflect": false,
441
- "attribute": "name",
442
- "defaultValue": "''"
443
- },
444
- "label": {
445
- "type": "string",
446
- "mutable": false,
447
- "complexType": {
448
- "original": "string",
449
- "resolved": "string",
450
- "references": {}
451
- },
452
- "required": false,
453
- "optional": true,
454
- "docs": {
455
- "tags": [],
456
- "text": "Label to display in admin mode.\nIf not provided, the slot name will be used."
457
- },
458
- "getter": false,
459
- "setter": false,
460
- "reflect": false,
461
- "attribute": "label"
462
- },
463
- "description": {
464
- "type": "string",
465
- "mutable": false,
466
- "complexType": {
467
- "original": "string",
468
- "resolved": "string",
469
- "references": {}
470
- },
471
- "required": false,
472
- "optional": true,
473
- "docs": {
474
- "tags": [],
475
- "text": "Description of what content this slot accepts.\nShown in admin mode to guide content editors."
476
- },
477
- "getter": false,
478
- "setter": false,
479
- "reflect": false,
480
- "attribute": "description"
481
- },
482
- "allowedComponents": {
483
- "type": "string",
484
- "mutable": false,
485
- "complexType": {
486
- "original": "string",
487
- "resolved": "string",
488
- "references": {}
489
- },
490
- "required": false,
491
- "optional": true,
492
- "docs": {
493
- "tags": [{
494
- "name": "example",
495
- "text": "\"le-card,le-button,le-text\""
496
- }],
497
- "text": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components."
498
- },
499
- "getter": false,
500
- "setter": false,
501
- "reflect": false,
502
- "attribute": "allowed-components"
503
- },
504
- "multiple": {
505
- "type": "boolean",
506
- "mutable": false,
507
- "complexType": {
508
- "original": "boolean",
509
- "resolved": "boolean",
510
- "references": {}
511
- },
512
- "required": false,
513
- "optional": false,
514
- "docs": {
515
- "tags": [],
516
- "text": "Whether multiple components can be dropped in this slot."
517
- },
518
- "getter": false,
519
- "setter": false,
520
- "reflect": false,
521
- "attribute": "multiple",
522
- "defaultValue": "true"
523
- },
524
- "required": {
525
- "type": "boolean",
526
- "mutable": false,
527
- "complexType": {
528
- "original": "boolean",
529
- "resolved": "boolean",
530
- "references": {}
531
- },
532
- "required": false,
533
- "optional": false,
534
- "docs": {
535
- "tags": [],
536
- "text": "Whether this slot is required to have content."
537
- },
538
- "getter": false,
539
- "setter": false,
540
- "reflect": false,
541
- "attribute": "required",
542
- "defaultValue": "false"
543
- },
544
- "placeholder": {
545
- "type": "string",
546
- "mutable": false,
547
- "complexType": {
548
- "original": "string",
549
- "resolved": "string",
550
- "references": {}
551
- },
552
- "required": false,
553
- "optional": true,
554
- "docs": {
555
- "tags": [],
556
- "text": "Placeholder text for text/textarea inputs in admin mode."
557
- },
558
- "getter": false,
559
- "setter": false,
560
- "reflect": false,
561
- "attribute": "placeholder"
562
- },
563
- "tag": {
564
- "type": "string",
565
- "mutable": false,
566
- "complexType": {
567
- "original": "string",
568
- "resolved": "string",
569
- "references": {}
570
- },
571
- "required": false,
572
- "optional": true,
573
- "docs": {
574
- "tags": [{
575
- "name": "example",
576
- "text": "\"h3\" - creates <h3 slot=\"header\">content</h3>"
577
- }, {
578
- "name": "example",
579
- "text": "\"p\" - creates <p slot=\"content\">content</p>"
580
- }],
581
- "text": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements."
582
- },
583
- "getter": false,
584
- "setter": false,
585
- "reflect": false,
586
- "attribute": "tag"
587
- },
588
- "slotStyle": {
589
- "type": "string",
590
- "mutable": false,
591
- "complexType": {
592
- "original": "string",
593
- "resolved": "string",
594
- "references": {}
595
- },
596
- "required": false,
597
- "optional": true,
598
- "docs": {
599
- "tags": [],
600
- "text": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\"."
601
- },
602
- "getter": false,
603
- "setter": false,
604
- "reflect": false,
605
- "attribute": "slot-style"
606
- }
607
- };
608
- }
609
- static get states() {
610
- return {
611
- "adminMode": {},
612
- "textValue": {},
613
- "isValidHtml": {},
614
- "availableComponents": {},
615
- "pickerOpen": {}
616
- };
617
- }
618
- static get events() {
619
- return [{
620
- "method": "leSlotChange",
621
- "name": "leSlotChange",
622
- "bubbles": true,
623
- "cancelable": true,
624
- "composed": true,
625
- "docs": {
626
- "tags": [],
627
- "text": "Emitted when text content changes in admin mode.\nThe event detail contains the new text value and validity."
628
- },
629
- "complexType": {
630
- "original": "{ name: string; value: string; isValid: boolean }",
631
- "resolved": "{ name: string; value: string; isValid: boolean; }",
632
- "references": {}
633
- }
634
- }];
635
- }
636
- static get elementRef() { return "el"; }
637
- }
638
- //# sourceMappingURL=le-slot.js.map