le-kit 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/dist/cjs/{index-o1DRKw1g.js → index-C3iQZ-Ja.js} +7 -7
  2. package/dist/cjs/index-C3iQZ-Ja.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +4 -3
  4. package/dist/cjs/index.cjs.js.map +1 -1
  5. package/dist/cjs/le-box.cjs.entry.js +2 -2
  6. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.cjs.js.map +1 -0
  7. package/dist/cjs/{le-button_6.cjs.entry.js → le-button_7.cjs.entry.js} +279 -33
  8. package/dist/cjs/le-card.cjs.entry.js +2 -2
  9. package/dist/cjs/le-combobox.cjs.entry.js +237 -0
  10. package/dist/cjs/le-combobox.entry.cjs.js.map +1 -0
  11. package/dist/cjs/le-dropdown-base.cjs.entry.js +348 -0
  12. package/dist/cjs/le-dropdown-base.entry.cjs.js.map +1 -0
  13. package/dist/cjs/le-kit.cjs.js +2 -2
  14. package/dist/cjs/le-multiselect.cjs.entry.js +306 -0
  15. package/dist/cjs/le-multiselect.entry.cjs.js.map +1 -0
  16. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  17. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  18. package/dist/cjs/le-segmented-control.cjs.entry.js +245 -0
  19. package/dist/cjs/le-segmented-control.entry.cjs.js.map +1 -0
  20. package/dist/cjs/le-select.cjs.entry.js +188 -0
  21. package/dist/cjs/le-select.entry.cjs.js.map +1 -0
  22. package/dist/cjs/le-stack.cjs.entry.js +3 -3
  23. package/dist/cjs/le-tab-bar.cjs.entry.js +242 -0
  24. package/dist/cjs/le-tab-bar.entry.cjs.js.map +1 -0
  25. package/dist/cjs/le-tab-panel.cjs.entry.js +100 -0
  26. package/dist/cjs/le-tab-panel.entry.cjs.js.map +1 -0
  27. package/dist/cjs/le-tab.cjs.entry.js +133 -0
  28. package/dist/cjs/le-tab.entry.cjs.js.map +1 -0
  29. package/dist/cjs/le-tabs.cjs.entry.js +307 -0
  30. package/dist/cjs/le-tabs.entry.cjs.js.map +1 -0
  31. package/dist/cjs/le-tag.cjs.entry.js +68 -0
  32. package/dist/cjs/le-tag.entry.cjs.js.map +1 -0
  33. package/dist/cjs/le-text.cjs.entry.js +2 -2
  34. package/dist/cjs/le-turntable.cjs.entry.js +2 -2
  35. package/dist/cjs/loader.cjs.js +2 -2
  36. package/dist/cjs/{utils-DqhadIxH.js → utils-DjPcLPN9.js} +3 -3
  37. package/dist/cjs/{utils-DqhadIxH.js.map → utils-DjPcLPN9.js.map} +1 -1
  38. package/dist/collection/collection-manifest.json +10 -0
  39. package/dist/collection/components/le-button/{le-button.default.css → le-button.css} +57 -30
  40. package/dist/collection/components/le-button/le-button.js +105 -15
  41. package/dist/collection/components/le-button/le-button.js.map +1 -1
  42. package/dist/collection/components/le-combobox/le-combobox.css +144 -0
  43. package/dist/collection/components/le-combobox/le-combobox.js +659 -0
  44. package/dist/collection/components/le-combobox/le-combobox.js.map +1 -0
  45. package/dist/collection/components/le-component/le-component.js +7 -6
  46. package/dist/collection/components/le-component/le-component.js.map +1 -1
  47. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +163 -0
  48. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +761 -0
  49. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -0
  50. package/dist/collection/components/le-multiselect/le-multiselect.css +163 -0
  51. package/dist/collection/components/le-multiselect/le-multiselect.js +734 -0
  52. package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -0
  53. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  54. package/dist/collection/components/le-popover/le-popover.css +10 -0
  55. package/dist/collection/components/le-popover/le-popover.js +61 -10
  56. package/dist/collection/components/le-popover/le-popover.js.map +1 -1
  57. package/dist/collection/components/le-popup/le-popup.api.js +2 -1
  58. package/dist/collection/components/le-popup/le-popup.api.js.map +1 -1
  59. package/dist/collection/components/le-popup/le-popup.js +42 -12
  60. package/dist/collection/components/le-popup/le-popup.js.map +1 -1
  61. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  62. package/dist/collection/components/le-segmented-control/le-segmented-control.css +78 -0
  63. package/dist/collection/components/le-segmented-control/le-segmented-control.js +445 -0
  64. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -0
  65. package/dist/collection/components/le-select/le-select.css +121 -0
  66. package/dist/collection/components/le-select/le-select.js +578 -0
  67. package/dist/collection/components/le-select/le-select.js.map +1 -0
  68. package/dist/collection/components/le-slot/le-slot.js +4 -6
  69. package/dist/collection/components/le-slot/le-slot.js.map +1 -1
  70. package/dist/collection/components/le-stack/le-stack.js +1 -1
  71. package/dist/collection/components/le-string-input/le-string-input.js +59 -5
  72. package/dist/collection/components/le-string-input/le-string-input.js.map +1 -1
  73. package/dist/collection/components/le-tab/le-tab.css +289 -0
  74. package/dist/collection/components/le-tab/le-tab.js +565 -0
  75. package/dist/collection/components/le-tab/le-tab.js.map +1 -0
  76. package/dist/collection/components/le-tab-bar/le-tab-bar.css +89 -0
  77. package/dist/collection/components/le-tab-bar/le-tab-bar.js +467 -0
  78. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -0
  79. package/dist/collection/components/le-tab-panel/le-tab-panel.css +30 -0
  80. package/dist/collection/components/le-tab-panel/le-tab-panel.js +302 -0
  81. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -0
  82. package/dist/collection/components/le-tabs/le-tabs.css +146 -0
  83. package/dist/collection/components/le-tabs/le-tabs.js +588 -0
  84. package/dist/collection/components/le-tabs/le-tabs.js.map +1 -0
  85. package/dist/collection/components/le-tag/le-tag.css +139 -0
  86. package/dist/collection/components/le-tag/le-tag.js +266 -0
  87. package/dist/collection/components/le-tag/le-tag.js.map +1 -0
  88. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  89. package/dist/collection/dist/components/assets/.gitkeep +1 -0
  90. package/{custom-elements.json → dist/collection/dist/components/assets/custom-elements.json} +5274 -1409
  91. package/dist/{core/collection → collection/dist/components}/themes/base.css +44 -0
  92. package/dist/{core/collection → collection/dist/components}/themes/dark.css +4 -1
  93. package/dist/collection/{themes → dist/components/themes}/default.css +4 -1
  94. package/dist/collection/dist/{collection → components}/themes/gradient.css +4 -1
  95. package/dist/{core/collection → collection/dist/components}/themes/index.css +2 -0
  96. package/dist/collection/{themes → dist/components/themes}/minimal.css +4 -1
  97. package/dist/{core/collection → collection/dist/components}/themes/warm.css +4 -1
  98. package/dist/collection/global/app.js +4 -4
  99. package/dist/collection/global/app.js.map +1 -1
  100. package/dist/collection/types/options.js.map +1 -1
  101. package/dist/components/assets/.gitkeep +1 -0
  102. package/dist/{collection → components}/assets/custom-elements.json +5202 -1337
  103. package/dist/components/index.js +1 -103
  104. package/dist/components/index.js.map +1 -1
  105. package/dist/components/le-box.js +11 -6
  106. package/dist/components/le-box.js.map +1 -1
  107. package/dist/components/le-button.js +1 -1
  108. package/dist/components/le-button2.js +378 -45
  109. package/dist/components/le-button2.js.map +1 -1
  110. package/dist/components/le-card.js +11 -6
  111. package/dist/components/le-card.js.map +1 -1
  112. package/dist/components/le-checkbox.js +1 -1
  113. package/dist/components/le-combobox.d.ts +11 -0
  114. package/dist/components/le-combobox.js +321 -0
  115. package/dist/components/le-combobox.js.map +1 -0
  116. package/dist/components/le-component.js +1 -1
  117. package/dist/components/le-dropdown-base.d.ts +11 -0
  118. package/dist/components/le-dropdown-base.js +9 -0
  119. package/dist/components/le-dropdown-base.js.map +1 -0
  120. package/dist/components/le-dropdown-base2.js +393 -0
  121. package/dist/components/le-dropdown-base2.js.map +1 -0
  122. package/dist/components/le-multiselect.d.ts +11 -0
  123. package/dist/components/le-multiselect.js +400 -0
  124. package/dist/components/le-multiselect.js.map +1 -0
  125. package/dist/components/le-number-input.js +12 -7
  126. package/dist/components/le-number-input.js.map +1 -1
  127. package/dist/components/le-popover2.js +24 -11
  128. package/dist/components/le-popover2.js.map +1 -1
  129. package/dist/{core/collection/components/le-popup → components}/le-popup.api.js +9 -4
  130. package/dist/components/le-popup.api.js.map +1 -0
  131. package/dist/components/le-popup.js +1 -271
  132. package/dist/components/le-popup.js.map +1 -1
  133. package/dist/components/le-round-progress.js +1 -1
  134. package/dist/components/le-segmented-control.d.ts +11 -0
  135. package/dist/components/le-segmented-control.js +320 -0
  136. package/dist/components/le-segmented-control.js.map +1 -0
  137. package/dist/components/le-select.d.ts +11 -0
  138. package/dist/components/le-select.js +271 -0
  139. package/dist/components/le-select.js.map +1 -0
  140. package/dist/components/le-slot.js +1 -1
  141. package/dist/components/le-stack.js +12 -7
  142. package/dist/components/le-stack.js.map +1 -1
  143. package/dist/components/le-string-input.js +1 -1
  144. package/dist/components/le-tab-bar.d.ts +11 -0
  145. package/dist/components/le-tab-bar.js +319 -0
  146. package/dist/components/le-tab-bar.js.map +1 -0
  147. package/dist/components/le-tab-panel.d.ts +11 -0
  148. package/dist/components/le-tab-panel.js +171 -0
  149. package/dist/components/le-tab-panel.js.map +1 -0
  150. package/dist/components/le-tab.d.ts +11 -0
  151. package/dist/components/le-tab.js +9 -0
  152. package/dist/components/le-tab.js.map +1 -0
  153. package/dist/components/le-tab2.js +206 -0
  154. package/dist/components/le-tab2.js.map +1 -0
  155. package/dist/components/le-tabs.d.ts +11 -0
  156. package/dist/components/le-tabs.js +386 -0
  157. package/dist/components/le-tabs.js.map +1 -0
  158. package/dist/components/le-tag.d.ts +11 -0
  159. package/dist/components/le-tag.js +9 -0
  160. package/dist/components/le-tag.js.map +1 -0
  161. package/dist/components/le-tag2.js +130 -0
  162. package/dist/components/le-tag2.js.map +1 -0
  163. package/dist/components/le-text.js +11 -6
  164. package/dist/components/le-text.js.map +1 -1
  165. package/dist/components/le-turntable.js +1 -1
  166. package/dist/{le-kit/dist/collection → components}/themes/base.css +44 -0
  167. package/dist/{collection → components}/themes/dark.css +4 -1
  168. package/dist/{core/collection → components}/themes/default.css +4 -1
  169. package/dist/{core/collection → components}/themes/gradient.css +4 -1
  170. package/dist/{le-kit/dist/collection → components}/themes/index.css +2 -0
  171. package/dist/{collection/dist/collection → components}/themes/minimal.css +4 -1
  172. package/dist/{le-kit/dist/collection → components}/themes/warm.css +4 -1
  173. package/dist/components/utils.js +4 -4
  174. package/dist/components/utils.js.map +1 -1
  175. package/dist/docs.json +6674 -1371
  176. package/dist/esm/{index-CwNQ1GTa.js → index-DzgCnDLJ.js} +8 -8
  177. package/dist/esm/index-DzgCnDLJ.js.map +1 -0
  178. package/dist/esm/index.js +4 -3
  179. package/dist/esm/index.js.map +1 -1
  180. package/dist/esm/le-box.entry.js +2 -2
  181. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.js.map +1 -0
  182. package/dist/esm/{le-button_6.entry.js → le-button_7.entry.js} +279 -34
  183. package/dist/esm/le-card.entry.js +2 -2
  184. package/dist/esm/le-combobox.entry.js +235 -0
  185. package/dist/esm/le-combobox.entry.js.map +1 -0
  186. package/dist/esm/le-dropdown-base.entry.js +346 -0
  187. package/dist/esm/le-dropdown-base.entry.js.map +1 -0
  188. package/dist/esm/le-kit.js +3 -3
  189. package/dist/esm/le-multiselect.entry.js +304 -0
  190. package/dist/esm/le-multiselect.entry.js.map +1 -0
  191. package/dist/esm/le-number-input.entry.js +3 -3
  192. package/dist/esm/le-round-progress.entry.js +2 -2
  193. package/dist/esm/le-segmented-control.entry.js +243 -0
  194. package/dist/esm/le-segmented-control.entry.js.map +1 -0
  195. package/dist/esm/le-select.entry.js +186 -0
  196. package/dist/esm/le-select.entry.js.map +1 -0
  197. package/dist/esm/le-stack.entry.js +3 -3
  198. package/dist/esm/le-tab-bar.entry.js +240 -0
  199. package/dist/esm/le-tab-bar.entry.js.map +1 -0
  200. package/dist/esm/le-tab-panel.entry.js +98 -0
  201. package/dist/esm/le-tab-panel.entry.js.map +1 -0
  202. package/dist/esm/le-tab.entry.js +131 -0
  203. package/dist/esm/le-tab.entry.js.map +1 -0
  204. package/dist/esm/le-tabs.entry.js +305 -0
  205. package/dist/esm/le-tabs.entry.js.map +1 -0
  206. package/dist/esm/le-tag.entry.js +66 -0
  207. package/dist/esm/le-tag.entry.js.map +1 -0
  208. package/dist/esm/le-text.entry.js +2 -2
  209. package/dist/esm/le-turntable.entry.js +2 -2
  210. package/dist/esm/loader.js +3 -3
  211. package/dist/esm/{utils-Cf7fMI0j.js → utils-Dp5xFMCl.js} +3 -3
  212. package/dist/esm/{utils-Cf7fMI0j.js.map → utils-Dp5xFMCl.js.map} +1 -1
  213. package/dist/le-kit/dist/components/assets/.gitkeep +1 -0
  214. package/dist/{core/collection → le-kit/dist/components}/assets/custom-elements.json +5202 -1337
  215. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/base.css +44 -0
  216. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/dark.css +4 -1
  217. package/dist/le-kit/dist/{collection → components}/themes/default.css +4 -1
  218. package/dist/le-kit/dist/{collection → components}/themes/gradient.css +4 -1
  219. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/index.css +2 -0
  220. package/dist/{core/collection → le-kit/dist/components}/themes/minimal.css +4 -1
  221. package/dist/{collection/dist/collection → le-kit/dist/components}/themes/warm.css +4 -1
  222. package/dist/le-kit/index.esm.js +1 -1
  223. package/dist/le-kit/index.esm.js.map +1 -1
  224. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.esm.js.map +1 -0
  225. package/dist/le-kit/le-combobox.entry.esm.js.map +1 -0
  226. package/dist/le-kit/le-dropdown-base.entry.esm.js.map +1 -0
  227. package/dist/le-kit/le-kit.css +1 -1
  228. package/dist/le-kit/le-kit.esm.js +1 -1
  229. package/dist/le-kit/le-multiselect.entry.esm.js.map +1 -0
  230. package/dist/le-kit/le-segmented-control.entry.esm.js.map +1 -0
  231. package/dist/le-kit/le-select.entry.esm.js.map +1 -0
  232. package/dist/le-kit/le-tab-bar.entry.esm.js.map +1 -0
  233. package/dist/le-kit/le-tab-panel.entry.esm.js.map +1 -0
  234. package/dist/le-kit/le-tab.entry.esm.js.map +1 -0
  235. package/dist/le-kit/le-tabs.entry.esm.js.map +1 -0
  236. package/dist/le-kit/le-tag.entry.esm.js.map +1 -0
  237. package/dist/{core/le-kit/p-df552906.entry.js → le-kit/p-0bd7803f.entry.js} +2 -2
  238. package/dist/le-kit/p-0bd7803f.entry.js.map +1 -0
  239. package/dist/le-kit/p-1f55a4a2.entry.js +2 -0
  240. package/dist/le-kit/p-1f55a4a2.entry.js.map +1 -0
  241. package/dist/le-kit/{p-79ec6f7c.entry.js → p-2c37f174.entry.js} +2 -2
  242. package/dist/le-kit/p-2c37f174.entry.js.map +1 -0
  243. package/dist/{core/le-kit/p-5ef81068.entry.js → le-kit/p-33612923.entry.js} +2 -2
  244. package/dist/le-kit/p-33612923.entry.js.map +1 -0
  245. package/dist/le-kit/{p-b8122ad6.entry.js → p-3a52c4de.entry.js} +2 -2
  246. package/dist/le-kit/p-3a52c4de.entry.js.map +1 -0
  247. package/dist/le-kit/p-4130c60b.entry.js +2 -0
  248. package/dist/le-kit/p-4130c60b.entry.js.map +1 -0
  249. package/dist/le-kit/{p-64374730.entry.js → p-432e8231.entry.js} +2 -2
  250. package/dist/le-kit/p-432e8231.entry.js.map +1 -0
  251. package/dist/le-kit/p-548d130b.entry.js +2 -0
  252. package/dist/le-kit/p-548d130b.entry.js.map +1 -0
  253. package/dist/le-kit/p-6ecdad85.entry.js +2 -0
  254. package/dist/le-kit/p-6ecdad85.entry.js.map +1 -0
  255. package/dist/le-kit/p-6ee06c44.entry.js +2 -0
  256. package/dist/le-kit/p-6ee06c44.entry.js.map +1 -0
  257. package/dist/le-kit/p-71c78784.entry.js +2 -0
  258. package/dist/le-kit/p-71c78784.entry.js.map +1 -0
  259. package/dist/le-kit/p-7b180d58.entry.js +2 -0
  260. package/dist/le-kit/p-7b180d58.entry.js.map +1 -0
  261. package/dist/le-kit/p-91993261.entry.js +2 -0
  262. package/dist/le-kit/p-91993261.entry.js.map +1 -0
  263. package/dist/le-kit/p-DaA5gINj.js +2 -0
  264. package/dist/le-kit/{p-y3FECAx9.js.map → p-DaA5gINj.js.map} +1 -1
  265. package/dist/le-kit/p-DzgCnDLJ.js +3 -0
  266. package/dist/le-kit/p-DzgCnDLJ.js.map +1 -0
  267. package/dist/le-kit/p-a5d31d40.entry.js +2 -0
  268. package/dist/le-kit/p-a5d31d40.entry.js.map +1 -0
  269. package/dist/le-kit/{p-ad398acd.entry.js → p-b66fd9e1.entry.js} +2 -2
  270. package/dist/le-kit/p-b66fd9e1.entry.js.map +1 -0
  271. package/dist/le-kit/{p-f9008505.entry.js → p-beb87e61.entry.js} +2 -2
  272. package/dist/le-kit/p-beb87e61.entry.js.map +1 -0
  273. package/dist/le-kit/p-cc0797b0.entry.js +2 -0
  274. package/dist/le-kit/p-cc0797b0.entry.js.map +1 -0
  275. package/dist/le-kit/p-d504a369.entry.js +2 -0
  276. package/dist/le-kit/p-d504a369.entry.js.map +1 -0
  277. package/dist/themes/base.css +44 -0
  278. package/dist/themes/dark.css +4 -1
  279. package/dist/themes/default.css +4 -1
  280. package/dist/themes/gradient.css +4 -1
  281. package/dist/themes/index.css +2 -0
  282. package/dist/themes/minimal.css +4 -1
  283. package/dist/themes/warm.css +4 -1
  284. package/dist/types/components/le-button/le-button.d.ts +19 -4
  285. package/dist/types/components/le-combobox/le-combobox.d.ts +128 -0
  286. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +118 -0
  287. package/dist/types/components/le-multiselect/le-multiselect.d.ts +143 -0
  288. package/dist/types/components/le-popover/le-popover.d.ts +13 -2
  289. package/dist/types/components/le-popup/le-popup.d.ts +5 -0
  290. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +82 -0
  291. package/dist/types/components/le-select/le-select.d.ts +125 -0
  292. package/dist/types/components/le-string-input/le-string-input.d.ts +8 -0
  293. package/dist/types/components/le-tab/le-tab.d.ts +116 -0
  294. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +88 -0
  295. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +75 -0
  296. package/dist/types/components/le-tabs/le-tabs.d.ts +108 -0
  297. package/dist/types/components/le-tag/le-tag.d.ts +78 -0
  298. package/dist/types/components.d.ts +2310 -40
  299. package/dist/types/global/app.d.ts +4 -4
  300. package/dist/types/types/options.d.ts +9 -0
  301. package/package.json +5 -21
  302. package/readme.md +2 -2
  303. package/dist/cjs/index-o1DRKw1g.js.map +0 -1
  304. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.cjs.js.map +0 -1
  305. package/dist/cjs/le-popup.cjs.entry.js +0 -212
  306. package/dist/cjs/le-popup.entry.cjs.js.map +0 -1
  307. package/dist/collection/dist/collection/themes/default.css +0 -108
  308. package/dist/collection/themes/base.css +0 -89
  309. package/dist/collection/themes/gradient.css +0 -100
  310. package/dist/collection/themes/index.css +0 -413
  311. package/dist/collection/themes/warm.css +0 -100
  312. package/dist/core/cjs/index-BsRb_UTe.js +0 -1835
  313. package/dist/core/cjs/index-BsRb_UTe.js.map +0 -1
  314. package/dist/core/cjs/index.cjs.js +0 -119
  315. package/dist/core/cjs/index.cjs.js.map +0 -1
  316. package/dist/core/cjs/le-box.cjs.entry.js +0 -184
  317. package/dist/core/cjs/le-box.entry.cjs.js.map +0 -1
  318. package/dist/core/cjs/le-button.cjs.entry.js +0 -92
  319. package/dist/core/cjs/le-button.entry.cjs.js.map +0 -1
  320. package/dist/core/cjs/le-card.cjs.entry.js +0 -29
  321. package/dist/core/cjs/le-card.entry.cjs.js.map +0 -1
  322. package/dist/core/cjs/le-checkbox.cjs.entry.js +0 -61
  323. package/dist/core/cjs/le-checkbox.entry.cjs.js.map +0 -1
  324. package/dist/core/cjs/le-kit.cjs.js +0 -25
  325. package/dist/core/cjs/le-kit.cjs.js.map +0 -1
  326. package/dist/core/cjs/le-number-input.cjs.entry.js +0 -202
  327. package/dist/core/cjs/le-number-input.entry.cjs.js.map +0 -1
  328. package/dist/core/cjs/le-popover.cjs.entry.js +0 -348
  329. package/dist/core/cjs/le-popover.entry.cjs.js.map +0 -1
  330. package/dist/core/cjs/le-popup.cjs.entry.js +0 -212
  331. package/dist/core/cjs/le-popup.entry.cjs.js.map +0 -1
  332. package/dist/core/cjs/le-round-progress.cjs.entry.js +0 -106
  333. package/dist/core/cjs/le-round-progress.entry.cjs.js.map +0 -1
  334. package/dist/core/cjs/le-stack.cjs.entry.js +0 -135
  335. package/dist/core/cjs/le-stack.entry.cjs.js.map +0 -1
  336. package/dist/core/cjs/le-string-input.cjs.entry.js +0 -95
  337. package/dist/core/cjs/le-string-input.entry.cjs.js.map +0 -1
  338. package/dist/core/cjs/le-text.cjs.entry.js +0 -335
  339. package/dist/core/cjs/le-text.entry.cjs.js.map +0 -1
  340. package/dist/core/cjs/le-turntable.cjs.entry.js +0 -139
  341. package/dist/core/cjs/le-turntable.entry.cjs.js.map +0 -1
  342. package/dist/core/cjs/loader.cjs.js +0 -13
  343. package/dist/core/cjs/loader.cjs.js.map +0 -1
  344. package/dist/core/cjs/utils-nsP8_w8_.js +0 -152
  345. package/dist/core/cjs/utils-nsP8_w8_.js.map +0 -1
  346. package/dist/core/collection/collection-manifest.json +0 -24
  347. package/dist/core/collection/components/le-box/le-box.default.css +0 -37
  348. package/dist/core/collection/components/le-box/le-box.js +0 -614
  349. package/dist/core/collection/components/le-box/le-box.js.map +0 -1
  350. package/dist/core/collection/components/le-button/le-button.default.css +0 -263
  351. package/dist/core/collection/components/le-button/le-button.js +0 -368
  352. package/dist/core/collection/components/le-button/le-button.js.map +0 -1
  353. package/dist/core/collection/components/le-card/le-card.default.css +0 -74
  354. package/dist/core/collection/components/le-card/le-card.js +0 -102
  355. package/dist/core/collection/components/le-card/le-card.js.map +0 -1
  356. package/dist/core/collection/components/le-checkbox/le-checkbox.css +0 -93
  357. package/dist/core/collection/components/le-checkbox/le-checkbox.js +0 -192
  358. package/dist/core/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  359. package/dist/core/collection/components/le-number-input/le-number-input.css +0 -135
  360. package/dist/core/collection/components/le-number-input/le-number-input.js +0 -515
  361. package/dist/core/collection/components/le-number-input/le-number-input.js.map +0 -1
  362. package/dist/core/collection/components/le-popover/le-popover.css +0 -143
  363. package/dist/core/collection/components/le-popover/le-popover.js +0 -693
  364. package/dist/core/collection/components/le-popover/le-popover.js.map +0 -1
  365. package/dist/core/collection/components/le-popup/le-popup.api.js.map +0 -1
  366. package/dist/core/collection/components/le-popup/le-popup.css +0 -222
  367. package/dist/core/collection/components/le-popup/le-popup.js +0 -596
  368. package/dist/core/collection/components/le-popup/le-popup.js.map +0 -1
  369. package/dist/core/collection/components/le-round-progress/le-round-progress.css +0 -34
  370. package/dist/core/collection/components/le-round-progress/le-round-progress.js +0 -184
  371. package/dist/core/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  372. package/dist/core/collection/components/le-stack/le-stack.default.css +0 -37
  373. package/dist/core/collection/components/le-stack/le-stack.js +0 -389
  374. package/dist/core/collection/components/le-stack/le-stack.js.map +0 -1
  375. package/dist/core/collection/components/le-string-input/le-string-input.css +0 -83
  376. package/dist/core/collection/components/le-string-input/le-string-input.js +0 -359
  377. package/dist/core/collection/components/le-string-input/le-string-input.js.map +0 -1
  378. package/dist/core/collection/components/le-text/le-text.default.css +0 -169
  379. package/dist/core/collection/components/le-text/le-text.js +0 -475
  380. package/dist/core/collection/components/le-text/le-text.js.map +0 -1
  381. package/dist/core/collection/components/le-turntable/le-turntable.css +0 -10
  382. package/dist/core/collection/components/le-turntable/le-turntable.js +0 -210
  383. package/dist/core/collection/components/le-turntable/le-turntable.js.map +0 -1
  384. package/dist/core/collection/global/app.js +0 -167
  385. package/dist/core/collection/global/app.js.map +0 -1
  386. package/dist/core/collection/index.js +0 -15
  387. package/dist/core/collection/index.js.map +0 -1
  388. package/dist/core/collection/types/blocks.js +0 -115
  389. package/dist/core/collection/types/blocks.js.map +0 -1
  390. package/dist/core/collection/types/options.js +0 -2
  391. package/dist/core/collection/types/options.js.map +0 -1
  392. package/dist/core/collection/utils/utils.js +0 -141
  393. package/dist/core/collection/utils/utils.js.map +0 -1
  394. package/dist/core/components/index.d.ts +0 -33
  395. package/dist/core/components/index.js +0 -113
  396. package/dist/core/components/index.js.map +0 -1
  397. package/dist/core/components/le-box.d.ts +0 -11
  398. package/dist/core/components/le-box.js +0 -225
  399. package/dist/core/components/le-box.js.map +0 -1
  400. package/dist/core/components/le-button.d.ts +0 -11
  401. package/dist/core/components/le-button.js +0 -9
  402. package/dist/core/components/le-button.js.map +0 -1
  403. package/dist/core/components/le-button2.js +0 -121
  404. package/dist/core/components/le-button2.js.map +0 -1
  405. package/dist/core/components/le-card.d.ts +0 -11
  406. package/dist/core/components/le-card.js +0 -52
  407. package/dist/core/components/le-card.js.map +0 -1
  408. package/dist/core/components/le-checkbox.d.ts +0 -11
  409. package/dist/core/components/le-checkbox.js +0 -87
  410. package/dist/core/components/le-checkbox.js.map +0 -1
  411. package/dist/core/components/le-number-input.d.ts +0 -11
  412. package/dist/core/components/le-number-input.js +0 -246
  413. package/dist/core/components/le-number-input.js.map +0 -1
  414. package/dist/core/components/le-popover.d.ts +0 -11
  415. package/dist/core/components/le-popover.js +0 -385
  416. package/dist/core/components/le-popover.js.map +0 -1
  417. package/dist/core/components/le-popup.d.ts +0 -11
  418. package/dist/core/components/le-popup.js +0 -253
  419. package/dist/core/components/le-popup.js.map +0 -1
  420. package/dist/core/components/le-round-progress.d.ts +0 -11
  421. package/dist/core/components/le-round-progress.js +0 -135
  422. package/dist/core/components/le-round-progress.js.map +0 -1
  423. package/dist/core/components/le-stack.d.ts +0 -11
  424. package/dist/core/components/le-stack.js +0 -167
  425. package/dist/core/components/le-stack.js.map +0 -1
  426. package/dist/core/components/le-string-input.d.ts +0 -11
  427. package/dist/core/components/le-string-input.js +0 -127
  428. package/dist/core/components/le-string-input.js.map +0 -1
  429. package/dist/core/components/le-text.d.ts +0 -11
  430. package/dist/core/components/le-text.js +0 -367
  431. package/dist/core/components/le-text.js.map +0 -1
  432. package/dist/core/components/le-turntable.d.ts +0 -11
  433. package/dist/core/components/le-turntable.js +0 -164
  434. package/dist/core/components/le-turntable.js.map +0 -1
  435. package/dist/core/components/utils.js +0 -310
  436. package/dist/core/components/utils.js.map +0 -1
  437. package/dist/core/esm/index-CJ-z5Zj1.js +0 -1818
  438. package/dist/core/esm/index-CJ-z5Zj1.js.map +0 -1
  439. package/dist/core/esm/index.js +0 -106
  440. package/dist/core/esm/index.js.map +0 -1
  441. package/dist/core/esm/le-box.entry.js +0 -182
  442. package/dist/core/esm/le-box.entry.js.map +0 -1
  443. package/dist/core/esm/le-button.entry.js +0 -90
  444. package/dist/core/esm/le-button.entry.js.map +0 -1
  445. package/dist/core/esm/le-card.entry.js +0 -27
  446. package/dist/core/esm/le-card.entry.js.map +0 -1
  447. package/dist/core/esm/le-checkbox.entry.js +0 -59
  448. package/dist/core/esm/le-checkbox.entry.js.map +0 -1
  449. package/dist/core/esm/le-kit.js +0 -21
  450. package/dist/core/esm/le-kit.js.map +0 -1
  451. package/dist/core/esm/le-number-input.entry.js +0 -200
  452. package/dist/core/esm/le-number-input.entry.js.map +0 -1
  453. package/dist/core/esm/le-popover.entry.js +0 -346
  454. package/dist/core/esm/le-popover.entry.js.map +0 -1
  455. package/dist/core/esm/le-popup.entry.js +0 -210
  456. package/dist/core/esm/le-popup.entry.js.map +0 -1
  457. package/dist/core/esm/le-round-progress.entry.js +0 -104
  458. package/dist/core/esm/le-round-progress.entry.js.map +0 -1
  459. package/dist/core/esm/le-stack.entry.js +0 -133
  460. package/dist/core/esm/le-stack.entry.js.map +0 -1
  461. package/dist/core/esm/le-string-input.entry.js +0 -93
  462. package/dist/core/esm/le-string-input.entry.js.map +0 -1
  463. package/dist/core/esm/le-text.entry.js +0 -333
  464. package/dist/core/esm/le-text.entry.js.map +0 -1
  465. package/dist/core/esm/le-turntable.entry.js +0 -137
  466. package/dist/core/esm/le-turntable.entry.js.map +0 -1
  467. package/dist/core/esm/loader.js +0 -11
  468. package/dist/core/esm/loader.js.map +0 -1
  469. package/dist/core/esm/utils-Bxmld82M.js +0 -146
  470. package/dist/core/esm/utils-Bxmld82M.js.map +0 -1
  471. package/dist/core/index.cjs.js +0 -1
  472. package/dist/core/index.js +0 -1
  473. package/dist/core/le-kit/index.esm.js +0 -2
  474. package/dist/core/le-kit/index.esm.js.map +0 -1
  475. package/dist/core/le-kit/le-box.entry.esm.js.map +0 -1
  476. package/dist/core/le-kit/le-button.entry.esm.js.map +0 -1
  477. package/dist/core/le-kit/le-card.entry.esm.js.map +0 -1
  478. package/dist/core/le-kit/le-checkbox.entry.esm.js.map +0 -1
  479. package/dist/core/le-kit/le-kit.css +0 -1
  480. package/dist/core/le-kit/le-kit.esm.js +0 -2
  481. package/dist/core/le-kit/le-kit.esm.js.map +0 -1
  482. package/dist/core/le-kit/le-number-input.entry.esm.js.map +0 -1
  483. package/dist/core/le-kit/le-popover.entry.esm.js.map +0 -1
  484. package/dist/core/le-kit/le-popup.entry.esm.js.map +0 -1
  485. package/dist/core/le-kit/le-round-progress.entry.esm.js.map +0 -1
  486. package/dist/core/le-kit/le-stack.entry.esm.js.map +0 -1
  487. package/dist/core/le-kit/le-string-input.entry.esm.js.map +0 -1
  488. package/dist/core/le-kit/le-text.entry.esm.js.map +0 -1
  489. package/dist/core/le-kit/le-turntable.entry.esm.js.map +0 -1
  490. package/dist/core/le-kit/loader.esm.js.map +0 -1
  491. package/dist/core/le-kit/p-0308bd1f.entry.js +0 -2
  492. package/dist/core/le-kit/p-0308bd1f.entry.js.map +0 -1
  493. package/dist/core/le-kit/p-257495cc.entry.js +0 -2
  494. package/dist/core/le-kit/p-257495cc.entry.js.map +0 -1
  495. package/dist/core/le-kit/p-2ac4789a.entry.js +0 -2
  496. package/dist/core/le-kit/p-2ac4789a.entry.js.map +0 -1
  497. package/dist/core/le-kit/p-45eace7c.entry.js +0 -2
  498. package/dist/core/le-kit/p-45eace7c.entry.js.map +0 -1
  499. package/dist/core/le-kit/p-556086ca.entry.js +0 -2
  500. package/dist/core/le-kit/p-556086ca.entry.js.map +0 -1
  501. package/dist/core/le-kit/p-5ef81068.entry.js.map +0 -1
  502. package/dist/core/le-kit/p-66d35f48.entry.js +0 -2
  503. package/dist/core/le-kit/p-66d35f48.entry.js.map +0 -1
  504. package/dist/core/le-kit/p-73682c5e.entry.js +0 -2
  505. package/dist/core/le-kit/p-73682c5e.entry.js.map +0 -1
  506. package/dist/core/le-kit/p-CJ-z5Zj1.js +0 -3
  507. package/dist/core/le-kit/p-CJ-z5Zj1.js.map +0 -1
  508. package/dist/core/le-kit/p-Drz36PDp.js +0 -2
  509. package/dist/core/le-kit/p-Drz36PDp.js.map +0 -1
  510. package/dist/core/le-kit/p-aa6e906f.entry.js +0 -2
  511. package/dist/core/le-kit/p-aa6e906f.entry.js.map +0 -1
  512. package/dist/core/le-kit/p-d75214f9.entry.js +0 -2
  513. package/dist/core/le-kit/p-d75214f9.entry.js.map +0 -1
  514. package/dist/core/le-kit/p-df552906.entry.js.map +0 -1
  515. package/dist/core/le-kit/p-e0861e82.entry.js +0 -2
  516. package/dist/core/le-kit/p-e0861e82.entry.js.map +0 -1
  517. package/dist/core/loader/cdn.js +0 -1
  518. package/dist/core/loader/index.cjs.js +0 -1
  519. package/dist/core/loader/index.d.ts +0 -24
  520. package/dist/core/loader/index.es2017.js +0 -1
  521. package/dist/core/loader/index.js +0 -2
  522. package/dist/core/types/components/le-box/le-box.d.ts +0 -111
  523. package/dist/core/types/components/le-button/le-button.d.ts +0 -78
  524. package/dist/core/types/components/le-card/le-card.d.ts +0 -37
  525. package/dist/core/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  526. package/dist/core/types/components/le-number-input/le-number-input.d.ts +0 -106
  527. package/dist/core/types/components/le-popover/le-popover.d.ts +0 -109
  528. package/dist/core/types/components/le-popup/le-popup.api.d.ts +0 -73
  529. package/dist/core/types/components/le-popup/le-popup.d.ts +0 -122
  530. package/dist/core/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  531. package/dist/core/types/components/le-stack/le-stack.d.ts +0 -73
  532. package/dist/core/types/components/le-string-input/le-string-input.d.ts +0 -83
  533. package/dist/core/types/components/le-text/le-text.d.ts +0 -141
  534. package/dist/core/types/components/le-turntable/le-turntable.d.ts +0 -55
  535. package/dist/core/types/components.d.ts +0 -1752
  536. package/dist/core/types/global/app.d.ts +0 -73
  537. package/dist/core/types/index.d.ts +0 -15
  538. package/dist/core/types/stencil-public-runtime.d.ts +0 -1756
  539. package/dist/core/types/types/blocks.d.ts +0 -136
  540. package/dist/core/types/types/options.d.ts +0 -124
  541. package/dist/core/types/utils/utils.d.ts +0 -54
  542. package/dist/esm/index-CwNQ1GTa.js.map +0 -1
  543. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.js.map +0 -1
  544. package/dist/esm/le-popup.entry.js +0 -210
  545. package/dist/esm/le-popup.entry.js.map +0 -1
  546. package/dist/le-kit/assets/custom-elements.json +0 -4305
  547. package/dist/le-kit/dist/collection/themes/dark.css +0 -100
  548. package/dist/le-kit/dist/collection/themes/minimal.css +0 -100
  549. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.esm.js.map +0 -1
  550. package/dist/le-kit/le-popup.entry.esm.js.map +0 -1
  551. package/dist/le-kit/p-08dbcc25.entry.js +0 -2
  552. package/dist/le-kit/p-08dbcc25.entry.js.map +0 -1
  553. package/dist/le-kit/p-5dc35729.entry.js +0 -2
  554. package/dist/le-kit/p-5dc35729.entry.js.map +0 -1
  555. package/dist/le-kit/p-64374730.entry.js.map +0 -1
  556. package/dist/le-kit/p-79ec6f7c.entry.js.map +0 -1
  557. package/dist/le-kit/p-8daf3c7f.entry.js +0 -2
  558. package/dist/le-kit/p-8daf3c7f.entry.js.map +0 -1
  559. package/dist/le-kit/p-9c69235d.entry.js +0 -2
  560. package/dist/le-kit/p-9c69235d.entry.js.map +0 -1
  561. package/dist/le-kit/p-CwNQ1GTa.js +0 -3
  562. package/dist/le-kit/p-CwNQ1GTa.js.map +0 -1
  563. package/dist/le-kit/p-ad398acd.entry.js.map +0 -1
  564. package/dist/le-kit/p-b8122ad6.entry.js.map +0 -1
  565. package/dist/le-kit/p-f9008505.entry.js.map +0 -1
  566. package/dist/le-kit/p-y3FECAx9.js +0 -2
@@ -1,95 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BsRb_UTe.js');
4
- var utils = require('./utils-nsP8_w8_.js');
5
-
6
- const leStringInputCss = ":host{display:block;--le-input-bg:var(--le-color-surface, #ffffff);--le-input-color:var(--le-color-text-primary, #333333);--le-input-border:var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);--le-input-radius:var(--le-radius-sm, 4px);--le-input-padding:2px 6px;--le-input-height:1.5rem;--le-input-label-color:var(--le-color-text-primary, #333333);--le-input-desc-color:var(--le-color-text-secondary, #666666);--le-input-placeholder-color:#999999}.le-input-wrapper{display:flex;flex-direction:column;gap:2px}.le-input-label{display:block;font-size:0.9em;font-weight:500;color:var(--le-input-label-color);margin-bottom:2px}.le-input-container{position:relative;display:flex;align-items:center;background:var(--le-input-bg);border:var(--le-input-border);border-radius:var(--le-input-radius);transition:border-color 0.2s}.le-input-container:focus-within{outline:2px solid var(--le-color-focus);outline-offset:2px}:host([disabled]) .le-input-container{opacity:0.6;background-color:rgba(0,0,0,0.05);cursor:not-allowed}input{flex:1;min-height:var(--le-input-height);padding:var(--le-input-padding);border:none;background:transparent;color:var(--le-input-color);font-family:inherit;font-size:inherit;outline:none;width:100%}input::placeholder{color:var(--le-input-placeholder-color)}.icon-start,.icon-end{display:flex;align-items:center;justify-content:center;padding:0 8px;color:var(--le-input-desc-color)}.le-input-description{font-size:0.85em;color:var(--le-input-desc-color);margin-top:2px}.le-input-description::has(slot[name=description]:empty){display:none}";
7
-
8
- const LeStringInput = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- this.leChange = index.createEvent(this, "change");
12
- this.leInput = index.createEvent(this, "input");
13
- }
14
- get el() { return index.getElement(this); }
15
- /**
16
- * Mode of the popover should be 'default' for internal use
17
- */
18
- mode;
19
- /**
20
- * The value of the input
21
- */
22
- value;
23
- /**
24
- * The name of the input
25
- */
26
- name;
27
- /**
28
- * The type of the input (text, email, password, etc.)
29
- */
30
- type = 'text';
31
- /**
32
- * Label for the input
33
- */
34
- label;
35
- /**
36
- * Icon for the start icon
37
- */
38
- iconStart;
39
- /**
40
- * Icon for the end icon
41
- */
42
- iconEnd;
43
- /**
44
- * Placeholder text
45
- */
46
- placeholder;
47
- /**
48
- * Whether the input is disabled
49
- */
50
- disabled = false;
51
- /**
52
- * Whether the input is read-only
53
- */
54
- readonly = false;
55
- /**
56
- * External ID for linking with external systems
57
- */
58
- externalId;
59
- /**
60
- * Emitted when the value changes (on blur or Enter)
61
- */
62
- leChange;
63
- /**
64
- * Emitted when the input value changes (on keystroke)
65
- */
66
- leInput;
67
- handleInput = (ev) => {
68
- const input = ev.target;
69
- this.value = input.value;
70
- this.leInput.emit({
71
- value: this.value,
72
- name: this.name,
73
- externalId: this.externalId
74
- });
75
- };
76
- handleChange = (ev) => {
77
- const input = ev.target;
78
- this.value = input.value;
79
- this.leChange.emit({
80
- value: this.value,
81
- name: this.name,
82
- externalId: this.externalId
83
- });
84
- };
85
- handleClick = (ev) => {
86
- ev.stopPropagation();
87
- };
88
- render() {
89
- return (index.h(index.Host, { key: '5c841074ac9288c448c2c09e18530c91bc62e3da', class: utils.classnames({ 'disabled': this.disabled }) }, index.h("div", { key: 'b2f7bea3e6c52033153caf9f18df4a815e9de14e', class: "le-input-wrapper" }, this.label && (index.h("label", { key: 'ce3cb46e176ec1016c93f5742ff0856badfe7d26', class: "le-input-label", htmlFor: this.name }, this.label)), index.h("div", { key: 'ea5cbbe1e178f964631aa67ec9833a17c3362be7', class: "le-input-container" }, this.iconStart && (index.h("span", { key: 'df8b39dcbe87ecb232ed23f2d965c707b16b1b50', class: "icon-start" }, this.iconStart)), index.h("input", { key: '53aff08b71412d2676c3ff90dc9af6e45d8aa438', id: this.name, type: this.type, name: this.name, value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, onInput: this.handleInput, onChange: this.handleChange, onClick: this.handleClick }), this.iconEnd && (index.h("span", { key: 'a726a70aa97b74ecd1a69266bcbfff18b504266b', class: "icon-end" }, this.iconEnd))), index.h("div", { key: '950270b513255a6dd7a53b80d3827efe3b043aac', class: "le-input-description" }, index.h("slot", { key: 'cb083064937a07085c11d421d2f42cf700f47892', name: "description" })))));
90
- }
91
- };
92
- LeStringInput.style = leStringInputCss;
93
-
94
- exports.le_string_input = LeStringInput;
95
- //# sourceMappingURL=le-string-input.entry.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-string-input.entry.cjs.js","sources":["src-core/components/le-string-input/le-string-input.css?tag=le-string-input&encapsulation=shadow","src-core/components/le-string-input/le-string-input.tsx"],"sourcesContent":[":host {\n display: block;\n --le-input-bg: var(--le-color-surface, #ffffff);\n --le-input-color: var(--le-color-text-primary, #333333);\n --le-input-border: var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);\n --le-input-radius: var(--le-radius-sm, 4px);\n --le-input-padding: 2px 6px;\n --le-input-height: 1.5rem;\n --le-input-label-color: var(--le-color-text-primary, #333333);\n --le-input-desc-color: var(--le-color-text-secondary, #666666);\n --le-input-placeholder-color: #999999;\n}\n\n.le-input-wrapper {\n display: flex;\n flex-direction: column;\n gap: 2px;\n}\n\n.le-input-label {\n display: block;\n font-size: 0.9em;\n font-weight: 500;\n color: var(--le-input-label-color);\n margin-bottom: 2px;\n}\n\n.le-input-container {\n position: relative;\n display: flex;\n align-items: center;\n background: var(--le-input-bg);\n border: var(--le-input-border);\n border-radius: var(--le-input-radius);\n transition: border-color 0.2s;\n}\n\n.le-input-container:focus-within {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n\n:host([disabled]) .le-input-container {\n opacity: 0.6;\n background-color: rgba(0,0,0,0.05);\n cursor: not-allowed;\n}\n\ninput {\n flex: 1;\n min-height: var(--le-input-height);\n padding: var(--le-input-padding);\n border: none;\n background: transparent;\n color: var(--le-input-color);\n font-family: inherit;\n font-size: inherit;\n outline: none;\n width: 100%;\n}\n\ninput::placeholder {\n color: var(--le-input-placeholder-color);\n}\n\n.icon-start, .icon-end {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 8px;\n color: var(--le-input-desc-color);\n}\n\n.le-input-description {\n font-size: 0.85em;\n color: var(--le-input-desc-color);\n margin-top: 2px;\n}\n\n.le-input-description::has(slot[name=description]:empty) {\n display: none;\n}\n","import { Component, Prop, Event, EventEmitter, h, Element , Host } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A text input component with support for labels, descriptions, icons, and external IDs.\n *\n * @slot - The label text for the input\n * @slot description - Additional description text displayed below the input\n * @slot icon-start - Icon to display at the start of the input\n * @slot icon-end - Icon to display at the end of the input\n *\n * @cssprop --le-input-bg - Input background color\n * @cssprop --le-input-color - Input text color\n * @cssprop --le-input-border - Input border style\n * @cssprop --le-input-border-focus - Input border style when focused\n * @cssprop --le-input-radius - Input border radius\n * @cssprop --le-input-padding - Input padding\n */\n@Component({\n tag: 'le-string-input',\n styleUrl: 'le-string-input.css',\n shadow: true,\n})\nexport class LeStringInput {\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 * The value of the input\n */\n @Prop({ mutable: true, reflect: true }) value: string;\n\n /**\n * The name of the input\n */\n @Prop() name: string;\n\n /**\n * The type of the input (text, email, password, etc.)\n */\n @Prop() type: 'text' | 'email' | 'password' | 'tel' | 'url' = 'text';\n\n /**\n * Label for the input\n */\n @Prop() label: string;\n\n /**\n * Icon for the start icon\n */\n @Prop() iconStart: string;\n\n /**\n * Icon for the end icon\n */\n @Prop() iconEnd: string;\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string;\n\n /**\n * Whether the input is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Whether the input is read-only\n */\n @Prop() readonly: boolean = false;\n\n /**\n * External ID for linking with external systems\n */\n @Prop() externalId: string;\n\n /**\n * Emitted when the value changes (on blur or Enter)\n */\n @Event({ eventName: 'change' }) leChange: EventEmitter<{ value: string; name: string; externalId: string }>;\n\n /**\n * Emitted when the input value changes (on keystroke)\n */\n @Event({ eventName: 'input' }) leInput: EventEmitter<{ value: string; name: string; externalId: string }>;\n\n private handleInput = (ev: Event) => {\n const input = ev.target as HTMLInputElement;\n this.value = input.value;\n this.leInput.emit({\n value: this.value,\n name: this.name,\n externalId: this.externalId\n });\n };\n\n private handleChange = (ev: Event) => {\n const input = ev.target as HTMLInputElement;\n this.value = input.value;\n this.leChange.emit({\n value: this.value,\n name: this.name,\n externalId: this.externalId\n });\n };\n\n private handleClick = (ev: Event) => {\n ev.stopPropagation();\n };\n\n render() {\n return (\n <Host class={classnames({ 'disabled': this.disabled })}>\n <div class=\"le-input-wrapper\">\n {this.label && (\n <label class=\"le-input-label\" htmlFor={this.name}>{this.label}</label>\n )}\n \n <div class=\"le-input-container\">\n {this.iconStart && (\n <span class=\"icon-start\">{this.iconStart}</span>\n )}\n <input\n id={this.name}\n type={this.type}\n name={this.name}\n value={this.value}\n placeholder={this.placeholder}\n disabled={this.disabled}\n readOnly={this.readonly}\n onInput={this.handleInput}\n onChange={this.handleChange}\n onClick={this.handleClick}\n />\n {this.iconEnd && (\n <span class=\"icon-end\">{this.iconEnd}</span>\n )}\n </div>\n\n <div class=\"le-input-description\">\n \n <slot name=\"description\"></slot>\n \n </div>\n </div>\n </Host>\n );\n }\n}\n"],"names":["h","Host","classnames"],"mappings":"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"}
@@ -1,335 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BsRb_UTe.js');
4
- var utils = require('./utils-nsP8_w8_.js');
5
-
6
- const leTextDefaultCss = ":host{display:block}:host([hidden]){display:none}.le-text{margin:0;color:var(--le-text-color, var(--le-color-text));font-family:var(--le-font-family);line-height:var(--le-text-line-height, 1.5)}.variant-p{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-normal, 400);color:var(--le-color-text)}.variant-h1{font-size:var(--le-font-size-4xl, 2.5rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.2;color:var(--le-color-text);letter-spacing:-0.02em}.variant-h2{font-size:var(--le-font-size-3xl, 2rem);font-weight:var(--le-font-weight-bold, 700);line-height:1.25;color:var(--le-color-text);letter-spacing:-0.01em}.variant-h3{font-size:var(--le-font-size-2xl, 1.5rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.3;color:var(--le-color-text)}.variant-h4{font-size:var(--le-font-size-xl, 1.25rem);font-weight:var(--le-font-weight-semibold, 600);line-height:1.35;color:var(--le-color-text)}.variant-h5{font-size:var(--le-font-size-lg, 1.125rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.4;color:var(--le-color-text)}.variant-h6{font-size:var(--le-font-size-base, 1rem);font-weight:var(--le-font-weight-medium, 500);line-height:1.45;color:var(--le-color-text);text-transform:uppercase;letter-spacing:0.05em}.variant-code{font-family:var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);font-size:var(--le-font-size-sm, 0.875rem);background:var(--le-color-surface-alt, #f5f5f5);padding:var(--le-space-md);border-radius:var(--le-radius-md);overflow-x:auto;white-space:pre-wrap;color:var(--le-color-text)}.variant-quote{font-size:var(--le-font-size-lg, 1.125rem);font-style:italic;color:var(--le-color-text-secondary);border-left:4px solid var(--le-color-primary);padding-left:var(--le-space-lg);margin-left:0;margin-right:0}.variant-label{font-size:var(--le-font-size-sm, 0.875rem);font-weight:var(--le-font-weight-medium, 500);color:var(--le-color-text-secondary);text-transform:uppercase;letter-spacing:0.05em}.variant-small{font-size:var(--le-font-size-sm, 0.875rem);color:var(--le-color-text-secondary)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate.max-lines-2,.truncate.max-lines-3,.truncate.max-lines-4,.truncate.max-lines-5{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical}.truncate.max-lines-2{-webkit-line-clamp:2;line-clamp:2}.truncate.max-lines-3{-webkit-line-clamp:3;line-clamp:3}.truncate.max-lines-4{-webkit-line-clamp:4;line-clamp:4}.truncate.max-lines-5{-webkit-line-clamp:5;line-clamp:5}:host([align=\"center\"]) .le-text{text-align:center}:host([align=\"right\"]) .le-text{text-align:right}:host([align=\"justify\"]) .le-text{text-align:justify}.le-text a{color:var(--le-color-primary);text-decoration:underline}.le-text a:hover{color:var(--le-color-primary-dark)}.le-text strong,.le-text b{font-weight:var(--le-font-weight-bold, 700)}.le-text em,.le-text i{font-style:italic}.le-text u{text-decoration:underline}.le-text s,.le-text strike{text-decoration:line-through}";
7
-
8
- const LeText = class {
9
- constructor(hostRef) {
10
- index.registerInstance(this, hostRef);
11
- }
12
- get el() { return index.getElement(this); }
13
- /**
14
- * The semantic variant/type of text element
15
- * @allowedValues p | h1 | h2 | h3 | h4 | h5 | h6 | code | quote | label | small
16
- */
17
- variant = 'p';
18
- /**
19
- * Text alignment
20
- * @allowedValues left | center | right | justify
21
- */
22
- align = 'left';
23
- /**
24
- * Text color (CSS value or theme token)
25
- */
26
- color;
27
- /**
28
- * Whether the text should truncate with ellipsis
29
- */
30
- truncate = false;
31
- /**
32
- * Maximum number of lines before truncating (requires truncate=true)
33
- */
34
- maxLines;
35
- /**
36
- * Internal state to track admin mode
37
- */
38
- adminMode = false;
39
- /**
40
- * The HTML content being edited
41
- */
42
- content = '';
43
- /**
44
- * Whether the editor is focused (shows toolbar)
45
- */
46
- isFocused = false;
47
- /**
48
- * Current selection state for toolbar button highlighting
49
- */
50
- selectionState = {
51
- isBold: false,
52
- isItalic: false,
53
- isUnderline: false,
54
- isStrikethrough: false,
55
- isLink: false,
56
- blockType: 'p',
57
- };
58
- /**
59
- * Reference to the contenteditable element
60
- */
61
- editorRef;
62
- /**
63
- * Reference to the slot element
64
- */
65
- slotRef;
66
- disconnectModeObserver;
67
- connectedCallback() {
68
- this.disconnectModeObserver = utils.observeModeChanges(this.el, (mode) => {
69
- const wasAdmin = this.adminMode;
70
- this.adminMode = mode === 'admin';
71
- if (this.adminMode && !wasAdmin) {
72
- // Entering admin mode - read content from slot
73
- requestAnimationFrame(() => this.readSlottedContent());
74
- }
75
- else if (!this.adminMode && wasAdmin) {
76
- // Leaving admin mode - sync content back to slot
77
- this.syncContentToSlot();
78
- }
79
- });
80
- }
81
- disconnectedCallback() {
82
- this.disconnectModeObserver?.();
83
- }
84
- onVariantChange() {
85
- // When variant changes in admin mode, update the content wrapper
86
- if (this.adminMode && this.editorRef) {
87
- this.syncContentToSlot();
88
- }
89
- }
90
- /**
91
- * Read content from slotted elements
92
- */
93
- readSlottedContent() {
94
- if (!this.slotRef)
95
- return;
96
- const assignedNodes = this.slotRef.assignedNodes({ flatten: true });
97
- // Collect all content from assigned nodes
98
- let html = '';
99
- assignedNodes.forEach(node => {
100
- if (node.nodeType === Node.TEXT_NODE) {
101
- html += node.textContent;
102
- }
103
- else if (node.nodeType === Node.ELEMENT_NODE) {
104
- html += node.innerHTML || node.textContent;
105
- }
106
- });
107
- this.content = html.trim();
108
- }
109
- /**
110
- * Sync edited content back to the slot
111
- */
112
- syncContentToSlot() {
113
- if (!this.editorRef)
114
- return;
115
- const newContent = this.editorRef.innerHTML;
116
- // Update the light DOM content
117
- // We need to update the actual slotted content
118
- const slot = this.slotRef;
119
- if (slot) {
120
- const assignedNodes = slot.assignedNodes({ flatten: true });
121
- if (assignedNodes.length > 0) {
122
- const firstNode = assignedNodes[0];
123
- if (firstNode.nodeType === Node.ELEMENT_NODE) {
124
- firstNode.innerHTML = newContent;
125
- }
126
- else if (firstNode.nodeType === Node.TEXT_NODE) {
127
- // Replace text node with the new content
128
- const parent = firstNode.parentNode;
129
- if (parent) {
130
- // Create a temporary element to parse HTML
131
- const temp = document.createElement('span');
132
- temp.innerHTML = newContent;
133
- // Replace the text node
134
- parent.replaceChild(temp, firstNode);
135
- // Unwrap the span if it only contains text
136
- if (temp.childNodes.length === 1 && temp.firstChild?.nodeType === Node.TEXT_NODE) {
137
- parent.replaceChild(temp.firstChild, temp);
138
- }
139
- }
140
- }
141
- }
142
- else {
143
- // No assigned nodes, set innerHTML on the host's light DOM
144
- this.el.innerHTML = newContent;
145
- }
146
- }
147
- }
148
- /**
149
- * Handle input in the contenteditable
150
- */
151
- handleInput = () => {
152
- if (this.editorRef) {
153
- this.content = this.editorRef.innerHTML;
154
- this.updateSelectionState();
155
- }
156
- };
157
- /**
158
- * Handle focus on the editor
159
- */
160
- handleFocus = () => {
161
- this.isFocused = true;
162
- this.updateSelectionState();
163
- };
164
- /**
165
- * Handle blur on the editor
166
- */
167
- handleBlur = (e) => {
168
- // Check if focus moved to toolbar
169
- const relatedTarget = e.relatedTarget;
170
- const toolbar = this.el.shadowRoot?.querySelector('.le-text-toolbar');
171
- if (toolbar?.contains(relatedTarget)) {
172
- // Focus moved to toolbar, keep it open
173
- return;
174
- }
175
- // Small delay to allow toolbar clicks to register
176
- setTimeout(() => {
177
- if (!this.el.shadowRoot?.activeElement) {
178
- this.isFocused = false;
179
- this.syncContentToSlot();
180
- }
181
- }, 150);
182
- };
183
- /**
184
- * Handle selection change to update toolbar state
185
- */
186
- handleSelectionChange = () => {
187
- this.updateSelectionState();
188
- };
189
- /**
190
- * Update the selection state for toolbar highlighting
191
- */
192
- updateSelectionState() {
193
- const selection = window.getSelection();
194
- if (!selection || selection.rangeCount === 0)
195
- return;
196
- this.selectionState = {
197
- isBold: document.queryCommandState('bold'),
198
- isItalic: document.queryCommandState('italic'),
199
- isUnderline: document.queryCommandState('underline'),
200
- isStrikethrough: document.queryCommandState('strikeThrough'),
201
- isLink: this.isSelectionInLink(selection),
202
- blockType: this.variant,
203
- };
204
- }
205
- /**
206
- * Check if current selection is within a link
207
- */
208
- isSelectionInLink(selection) {
209
- if (!selection.anchorNode)
210
- return false;
211
- let node = selection.anchorNode;
212
- while (node && node !== this.editorRef) {
213
- if (node.nodeName === 'A')
214
- return true;
215
- node = node.parentNode;
216
- }
217
- return false;
218
- }
219
- /**
220
- * Execute a formatting command
221
- */
222
- execCommand(command, value) {
223
- // Focus the editor first
224
- this.editorRef?.focus();
225
- // Execute the command
226
- document.execCommand(command, false, value);
227
- // Update state
228
- this.handleInput();
229
- this.updateSelectionState();
230
- }
231
- /**
232
- * Toggle bold formatting
233
- */
234
- toggleBold = (e) => {
235
- e.preventDefault();
236
- this.execCommand('bold');
237
- };
238
- /**
239
- * Toggle italic formatting
240
- */
241
- toggleItalic = (e) => {
242
- e.preventDefault();
243
- this.execCommand('italic');
244
- };
245
- /**
246
- * Toggle underline formatting
247
- */
248
- toggleUnderline = (e) => {
249
- e.preventDefault();
250
- this.execCommand('underline');
251
- };
252
- /**
253
- * Toggle strikethrough formatting
254
- */
255
- toggleStrikethrough = (e) => {
256
- e.preventDefault();
257
- this.execCommand('strikeThrough');
258
- };
259
- /**
260
- * Add or edit a link
261
- */
262
- toggleLink = (e) => {
263
- e.preventDefault();
264
- if (this.selectionState.isLink) {
265
- // Remove link
266
- this.execCommand('unlink');
267
- }
268
- else {
269
- // Add link
270
- const url = prompt('Enter URL:', 'https://');
271
- if (url) {
272
- this.execCommand('createLink', url);
273
- }
274
- }
275
- };
276
- /**
277
- * Change the block type/variant
278
- */
279
- changeVariant = (e) => {
280
- const select = e.target;
281
- this.variant = select.value;
282
- };
283
- /**
284
- * Render the formatting toolbar
285
- */
286
- renderToolbar() {
287
- return (index.h("div", { class: "le-text-toolbar" }, index.h("select", { class: "le-text-toolbar-select", onChange: this.changeVariant, onMouseDown: (e) => e.preventDefault() }, index.h("option", { value: "p", selected: this.variant === 'p' }, "Paragraph"), index.h("option", { value: "h1", selected: this.variant === 'h1' }, "Heading 1"), index.h("option", { value: "h2", selected: this.variant === 'h2' }, "Heading 2"), index.h("option", { value: "h3", selected: this.variant === 'h3' }, "Heading 3"), index.h("option", { value: "h4", selected: this.variant === 'h4' }, "Heading 4"), index.h("option", { value: "h5", selected: this.variant === 'h5' }, "Heading 5"), index.h("option", { value: "h6", selected: this.variant === 'h6' }, "Heading 6"), index.h("option", { value: "quote", selected: this.variant === 'quote' }, "Quote"), index.h("option", { value: "code", selected: this.variant === 'code' }, "Code"), index.h("option", { value: "label", selected: this.variant === 'label' }, "Label"), index.h("option", { value: "small", selected: this.variant === 'small' }, "Small")), index.h("div", { class: "le-text-toolbar-divider" }), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isBold }, onMouseDown: this.toggleBold, title: "Bold (Ctrl+B)" }, index.h("strong", null, "B")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isItalic }, onMouseDown: this.toggleItalic, title: "Italic (Ctrl+I)" }, index.h("em", null, "I")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isUnderline }, onMouseDown: this.toggleUnderline, title: "Underline (Ctrl+U)" }, index.h("span", { style: { textDecoration: 'underline' } }, "U")), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isStrikethrough }, onMouseDown: this.toggleStrikethrough, title: "Strikethrough" }, index.h("span", { style: { textDecoration: 'line-through' } }, "S")), index.h("div", { class: "le-text-toolbar-divider" }), index.h("button", { type: "button", class: { 'le-text-toolbar-btn': true, 'active': this.selectionState.isLink }, onMouseDown: this.toggleLink, title: this.selectionState.isLink ? 'Remove link' : 'Add link' }, "\uD83D\uDD17")));
288
- }
289
- /**
290
- * Get the semantic tag for the current variant
291
- */
292
- getTag() {
293
- switch (this.variant) {
294
- case 'quote':
295
- return 'blockquote';
296
- case 'code':
297
- return 'pre';
298
- case 'label':
299
- return 'label';
300
- case 'small':
301
- return 'small';
302
- default:
303
- return this.variant; // h1-h6, p
304
- }
305
- }
306
- render() {
307
- const Tag = this.getTag();
308
- const textStyle = {};
309
- if (this.color) {
310
- textStyle.color = this.color;
311
- }
312
- if (this.align) {
313
- textStyle.textAlign = this.align;
314
- }
315
- const textClass = {
316
- 'le-text': true,
317
- [`variant-${this.variant}`]: true,
318
- 'truncate': this.truncate,
319
- [`max-lines-${this.maxLines}`]: this.truncate && this.maxLines,
320
- };
321
- // Admin mode - show rich text editor
322
- if (this.adminMode) {
323
- return (index.h(index.Host, { class: "admin-mode" }, index.h("div", { class: "le-text-editor-wrapper" }, this.isFocused && this.renderToolbar(), index.h(Tag, { class: textClass, part: "text", style: textStyle }, index.h("div", { ref: (el) => this.editorRef = el, class: "le-text-editor", contentEditable: true, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onKeyUp: this.handleSelectionChange, onMouseUp: this.handleSelectionChange, innerHTML: this.content })), index.h("div", { class: "hidden-slot" }, index.h("slot", { ref: (el) => this.slotRef = el, onSlotchange: () => this.readSlottedContent() })))));
324
- }
325
- // Default mode - render semantic element with slotted content
326
- return (index.h(index.Host, null, index.h(Tag, { class: textClass, part: "text", style: textStyle }, index.h("slot", { ref: (el) => this.slotRef = el }))));
327
- }
328
- static get watchers() { return {
329
- "variant": ["onVariantChange"]
330
- }; }
331
- };
332
- LeText.style = leTextDefaultCss;
333
-
334
- exports.le_text = LeText;
335
- //# sourceMappingURL=le-text.entry.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-text.entry.cjs.js","sources":["src-core/components/le-text/le-text.default.css?tag=le-text&encapsulation=shadow","src-core/components/le-text/le-text.tsx"],"sourcesContent":["/**\n * le-text default styles\n *\n * Semantic text element with variant-based styling\n */\n\n:host {\n display: block;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n/* Base text styles */\n.le-text {\n margin: 0;\n color: var(--le-text-color, var(--le-color-text));\n font-family: var(--le-font-family);\n line-height: var(--le-text-line-height, 1.5);\n}\n\n/* Paragraph */\n.variant-p {\n font-size: var(--le-font-size-base, 1rem);\n font-weight: var(--le-font-weight-normal, 400);\n color: var(--le-color-text);\n}\n\n/* Headings */\n.variant-h1 {\n font-size: var(--le-font-size-4xl, 2.5rem);\n font-weight: var(--le-font-weight-bold, 700);\n line-height: 1.2;\n color: var(--le-color-text);\n letter-spacing: -0.02em;\n}\n\n.variant-h2 {\n font-size: var(--le-font-size-3xl, 2rem);\n font-weight: var(--le-font-weight-bold, 700);\n line-height: 1.25;\n color: var(--le-color-text);\n letter-spacing: -0.01em;\n}\n\n.variant-h3 {\n font-size: var(--le-font-size-2xl, 1.5rem);\n font-weight: var(--le-font-weight-semibold, 600);\n line-height: 1.3;\n color: var(--le-color-text);\n}\n\n.variant-h4 {\n font-size: var(--le-font-size-xl, 1.25rem);\n font-weight: var(--le-font-weight-semibold, 600);\n line-height: 1.35;\n color: var(--le-color-text);\n}\n\n.variant-h5 {\n font-size: var(--le-font-size-lg, 1.125rem);\n font-weight: var(--le-font-weight-medium, 500);\n line-height: 1.4;\n color: var(--le-color-text);\n}\n\n.variant-h6 {\n font-size: var(--le-font-size-base, 1rem);\n font-weight: var(--le-font-weight-medium, 500);\n line-height: 1.45;\n color: var(--le-color-text);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n/* Code */\n.variant-code {\n font-family: var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);\n font-size: var(--le-font-size-sm, 0.875rem);\n background: var(--le-color-surface-alt, #f5f5f5);\n padding: var(--le-space-md);\n border-radius: var(--le-radius-md);\n overflow-x: auto;\n white-space: pre-wrap;\n color: var(--le-color-text);\n}\n\n/* Quote */\n.variant-quote {\n font-size: var(--le-font-size-lg, 1.125rem);\n font-style: italic;\n color: var(--le-color-text-secondary);\n border-left: 4px solid var(--le-color-primary);\n padding-left: var(--le-space-lg);\n margin-left: 0;\n margin-right: 0;\n}\n\n/* Label */\n.variant-label {\n font-size: var(--le-font-size-sm, 0.875rem);\n font-weight: var(--le-font-weight-medium, 500);\n color: var(--le-color-text-secondary);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n/* Small */\n.variant-small {\n font-size: var(--le-font-size-sm, 0.875rem);\n color: var(--le-color-text-secondary);\n}\n\n/* Truncation */\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.truncate.max-lines-2,\n.truncate.max-lines-3,\n.truncate.max-lines-4,\n.truncate.max-lines-5 {\n white-space: normal;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n\n.truncate.max-lines-2 { -webkit-line-clamp: 2; line-clamp: 2; }\n.truncate.max-lines-3 { -webkit-line-clamp: 3; line-clamp: 3; }\n.truncate.max-lines-4 { -webkit-line-clamp: 4; line-clamp: 4; }\n.truncate.max-lines-5 { -webkit-line-clamp: 5; line-clamp: 5; }\n\n/* Alignment */\n:host([align=\"center\"]) .le-text { text-align: center; }\n:host([align=\"right\"]) .le-text { text-align: right; }\n:host([align=\"justify\"]) .le-text { text-align: justify; }\n\n/* Links inside text */\n.le-text a {\n color: var(--le-color-primary);\n text-decoration: underline;\n}\n\n.le-text a:hover {\n color: var(--le-color-primary-dark);\n}\n\n/* Bold, italic, etc. */\n.le-text strong,\n.le-text b {\n font-weight: var(--le-font-weight-bold, 700);\n}\n\n.le-text em,\n.le-text i {\n font-style: italic;\n}\n\n.le-text u {\n text-decoration: underline;\n}\n\n.le-text s,\n.le-text strike {\n text-decoration: line-through;\n}\n","import { Component, Prop, State, h, Host, Element, Watch } from '@stencil/core';\nimport { observeModeChanges } from '../../utils/utils';\n\n/**\n * A text component with rich text editing capabilities in admin mode.\n *\n * `le-text` renders semantic text elements (headings, paragraphs, code, quotes)\n * and provides a Notion-like rich text editor in admin mode with formatting\n * toolbar for bold, italic, links, and paragraph type selection.\n *\n * @slot - Default slot for text content\n *\n * @cssprop --le-text-color - Text color\n * @cssprop --le-text-font-size - Font size\n * @cssprop --le-text-line-height - Line height\n * @cssprop --le-text-font-weight - Font weight\n *\n * @csspart text - The text container element\n *\n * @cmsEditable true\n * @cmsCategory Content\n */\n@Component({\n tag: 'le-text',\n styleUrl: 'le-text.default.css',\n shadow: true,\n})\nexport class LeText {\n @Element() el: HTMLElement;\n\n /**\n * The semantic variant/type of text element\n * @allowedValues p | h1 | h2 | h3 | h4 | h5 | h6 | code | quote | label | small\n */\n @Prop({ mutable: true, reflect: true }) variant: 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'code' | 'quote' | 'label' | 'small' = 'p';\n\n /**\n * Text alignment\n * @allowedValues left | center | right | justify\n */\n @Prop({ reflect: true }) align: 'left' | 'center' | 'right' | 'justify' = 'left';\n\n /**\n * Text color (CSS value or theme token)\n */\n @Prop() color?: string;\n\n /**\n * Whether the text should truncate with ellipsis\n */\n @Prop() truncate: boolean = false;\n\n /**\n * Maximum number of lines before truncating (requires truncate=true)\n */\n @Prop() maxLines?: number;\n\n /**\n * Internal state to track admin mode\n */\n @State() private adminMode: boolean = false;\n\n /**\n * The HTML content being edited\n */\n @State() private content: string = '';\n\n /**\n * Whether the editor is focused (shows toolbar)\n */\n @State() private isFocused: boolean = false;\n\n /**\n * Current selection state for toolbar button highlighting\n */\n @State() private selectionState: SelectionState = {\n isBold: false,\n isItalic: false,\n isUnderline: false,\n isStrikethrough: false,\n isLink: false,\n blockType: 'p',\n };\n\n /**\n * Reference to the contenteditable element\n */\n private editorRef?: HTMLDivElement;\n\n /**\n * Reference to the slot element\n */\n private slotRef?: HTMLSlotElement;\n\n private disconnectModeObserver?: () => void;\n\n connectedCallback() {\n this.disconnectModeObserver = observeModeChanges(this.el, (mode) => {\n const wasAdmin = this.adminMode;\n this.adminMode = mode === 'admin';\n \n if (this.adminMode && !wasAdmin) {\n // Entering admin mode - read content from slot\n requestAnimationFrame(() => this.readSlottedContent());\n } else if (!this.adminMode && wasAdmin) {\n // Leaving admin mode - sync content back to slot\n this.syncContentToSlot();\n }\n });\n }\n\n disconnectedCallback() {\n this.disconnectModeObserver?.();\n }\n\n @Watch('variant')\n onVariantChange() {\n // When variant changes in admin mode, update the content wrapper\n if (this.adminMode && this.editorRef) {\n this.syncContentToSlot();\n }\n }\n\n /**\n * Read content from slotted elements\n */\n private readSlottedContent() {\n if (!this.slotRef) return;\n \n const assignedNodes = this.slotRef.assignedNodes({ flatten: true });\n \n // Collect all content from assigned nodes\n let html = '';\n assignedNodes.forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n html += node.textContent;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n html += (node as Element).innerHTML || node.textContent;\n }\n });\n \n this.content = html.trim();\n }\n\n /**\n * Sync edited content back to the slot\n */\n private syncContentToSlot() {\n if (!this.editorRef) return;\n \n const newContent = this.editorRef.innerHTML;\n \n // Update the light DOM content\n // We need to update the actual slotted content\n const slot = this.slotRef;\n if (slot) {\n const assignedNodes = slot.assignedNodes({ flatten: true });\n if (assignedNodes.length > 0) {\n const firstNode = assignedNodes[0];\n if (firstNode.nodeType === Node.ELEMENT_NODE) {\n (firstNode as Element).innerHTML = newContent;\n } else if (firstNode.nodeType === Node.TEXT_NODE) {\n // Replace text node with the new content\n const parent = firstNode.parentNode;\n if (parent) {\n // Create a temporary element to parse HTML\n const temp = document.createElement('span');\n temp.innerHTML = newContent;\n // Replace the text node\n parent.replaceChild(temp, firstNode);\n // Unwrap the span if it only contains text\n if (temp.childNodes.length === 1 && temp.firstChild?.nodeType === Node.TEXT_NODE) {\n parent.replaceChild(temp.firstChild, temp);\n }\n }\n }\n } else {\n // No assigned nodes, set innerHTML on the host's light DOM\n this.el.innerHTML = newContent;\n }\n }\n }\n\n /**\n * Handle input in the contenteditable\n */\n private handleInput = () => {\n if (this.editorRef) {\n this.content = this.editorRef.innerHTML;\n this.updateSelectionState();\n }\n };\n\n /**\n * Handle focus on the editor\n */\n private handleFocus = () => {\n this.isFocused = true;\n this.updateSelectionState();\n };\n\n /**\n * Handle blur on the editor\n */\n private handleBlur = (e: FocusEvent) => {\n // Check if focus moved to toolbar\n const relatedTarget = e.relatedTarget as HTMLElement;\n const toolbar = this.el.shadowRoot?.querySelector('.le-text-toolbar');\n \n if (toolbar?.contains(relatedTarget)) {\n // Focus moved to toolbar, keep it open\n return;\n }\n \n // Small delay to allow toolbar clicks to register\n setTimeout(() => {\n if (!this.el.shadowRoot?.activeElement) {\n this.isFocused = false;\n this.syncContentToSlot();\n }\n }, 150);\n };\n\n /**\n * Handle selection change to update toolbar state\n */\n private handleSelectionChange = () => {\n this.updateSelectionState();\n };\n\n /**\n * Update the selection state for toolbar highlighting\n */\n private updateSelectionState() {\n const selection = window.getSelection();\n if (!selection || selection.rangeCount === 0) return;\n\n this.selectionState = {\n isBold: document.queryCommandState('bold'),\n isItalic: document.queryCommandState('italic'),\n isUnderline: document.queryCommandState('underline'),\n isStrikethrough: document.queryCommandState('strikeThrough'),\n isLink: this.isSelectionInLink(selection),\n blockType: this.variant,\n };\n }\n\n /**\n * Check if current selection is within a link\n */\n private isSelectionInLink(selection: Selection): boolean {\n if (!selection.anchorNode) return false;\n \n let node: Node | null = selection.anchorNode;\n while (node && node !== this.editorRef) {\n if (node.nodeName === 'A') return true;\n node = node.parentNode;\n }\n return false;\n }\n\n /**\n * Execute a formatting command\n */\n private execCommand(command: string, value?: string) {\n // Focus the editor first\n this.editorRef?.focus();\n \n // Execute the command\n document.execCommand(command, false, value);\n \n // Update state\n this.handleInput();\n this.updateSelectionState();\n }\n\n /**\n * Toggle bold formatting\n */\n private toggleBold = (e: Event) => {\n e.preventDefault();\n this.execCommand('bold');\n };\n\n /**\n * Toggle italic formatting\n */\n private toggleItalic = (e: Event) => {\n e.preventDefault();\n this.execCommand('italic');\n };\n\n /**\n * Toggle underline formatting\n */\n private toggleUnderline = (e: Event) => {\n e.preventDefault();\n this.execCommand('underline');\n };\n\n /**\n * Toggle strikethrough formatting\n */\n private toggleStrikethrough = (e: Event) => {\n e.preventDefault();\n this.execCommand('strikeThrough');\n };\n\n /**\n * Add or edit a link\n */\n private toggleLink = (e: Event) => {\n e.preventDefault();\n \n if (this.selectionState.isLink) {\n // Remove link\n this.execCommand('unlink');\n } else {\n // Add link\n const url = prompt('Enter URL:', 'https://');\n if (url) {\n this.execCommand('createLink', url);\n }\n }\n };\n\n /**\n * Change the block type/variant\n */\n private changeVariant = (e: Event) => {\n const select = e.target as HTMLSelectElement;\n this.variant = select.value as typeof this.variant;\n };\n\n /**\n * Render the formatting toolbar\n */\n private renderToolbar() {\n return (\n <div class=\"le-text-toolbar\">\n <select \n class=\"le-text-toolbar-select\"\n onChange={this.changeVariant}\n onMouseDown={(e) => e.preventDefault()}\n >\n <option value=\"p\" selected={this.variant === 'p'}>Paragraph</option>\n <option value=\"h1\" selected={this.variant === 'h1'}>Heading 1</option>\n <option value=\"h2\" selected={this.variant === 'h2'}>Heading 2</option>\n <option value=\"h3\" selected={this.variant === 'h3'}>Heading 3</option>\n <option value=\"h4\" selected={this.variant === 'h4'}>Heading 4</option>\n <option value=\"h5\" selected={this.variant === 'h5'}>Heading 5</option>\n <option value=\"h6\" selected={this.variant === 'h6'}>Heading 6</option>\n <option value=\"quote\" selected={this.variant === 'quote'}>Quote</option>\n <option value=\"code\" selected={this.variant === 'code'}>Code</option>\n <option value=\"label\" selected={this.variant === 'label'}>Label</option>\n <option value=\"small\" selected={this.variant === 'small'}>Small</option>\n </select>\n \n <div class=\"le-text-toolbar-divider\"></div>\n \n <button\n type=\"button\"\n class={{ 'le-text-toolbar-btn': true, 'active': this.selectionState.isBold }}\n onMouseDown={this.toggleBold}\n title=\"Bold (Ctrl+B)\"\n >\n <strong>B</strong>\n </button>\n \n <button\n type=\"button\"\n class={{ 'le-text-toolbar-btn': true, 'active': this.selectionState.isItalic }}\n onMouseDown={this.toggleItalic}\n title=\"Italic (Ctrl+I)\"\n >\n <em>I</em>\n </button>\n \n <button\n type=\"button\"\n class={{ 'le-text-toolbar-btn': true, 'active': this.selectionState.isUnderline }}\n onMouseDown={this.toggleUnderline}\n title=\"Underline (Ctrl+U)\"\n >\n <span style={{ textDecoration: 'underline' }}>U</span>\n </button>\n \n <button\n type=\"button\"\n class={{ 'le-text-toolbar-btn': true, 'active': this.selectionState.isStrikethrough }}\n onMouseDown={this.toggleStrikethrough}\n title=\"Strikethrough\"\n >\n <span style={{ textDecoration: 'line-through' }}>S</span>\n </button>\n \n <div class=\"le-text-toolbar-divider\"></div>\n \n <button\n type=\"button\"\n class={{ 'le-text-toolbar-btn': true, 'active': this.selectionState.isLink }}\n onMouseDown={this.toggleLink}\n title={this.selectionState.isLink ? 'Remove link' : 'Add link'}\n >\n 🔗\n </button>\n </div>\n );\n }\n\n /**\n * Get the semantic tag for the current variant\n */\n private getTag(): string {\n switch (this.variant) {\n case 'quote':\n return 'blockquote';\n case 'code':\n return 'pre';\n case 'label':\n return 'label';\n case 'small':\n return 'small';\n default:\n return this.variant; // h1-h6, p\n }\n }\n\n render() {\n const Tag = this.getTag();\n \n const textStyle: { [key: string]: string } = {};\n if (this.color) {\n textStyle.color = this.color;\n }\n if (this.align) {\n textStyle.textAlign = this.align;\n }\n\n const textClass = {\n 'le-text': true,\n [`variant-${this.variant}`]: true,\n 'truncate': this.truncate,\n [`max-lines-${this.maxLines}`]: this.truncate && this.maxLines,\n };\n\n // Admin mode - show rich text editor\n if (this.adminMode) {\n return (\n <Host class=\"admin-mode\">\n \n <div class=\"le-text-editor-wrapper\">\n {this.isFocused && this.renderToolbar()}\n <Tag \n class={textClass}\n part=\"text\"\n style={textStyle}\n >\n <div\n ref={(el) => this.editorRef = el}\n class=\"le-text-editor\"\n contentEditable={true}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onKeyUp={this.handleSelectionChange}\n onMouseUp={this.handleSelectionChange}\n innerHTML={this.content}\n ></div>\n </Tag>\n {/* Hidden slot to receive light DOM content */}\n <div class=\"hidden-slot\">\n <slot \n ref={(el) => this.slotRef = el as HTMLSlotElement}\n onSlotchange={() => this.readSlottedContent()}\n ></slot>\n </div>\n </div>\n \n </Host>\n );\n }\n\n // Default mode - render semantic element with slotted content\n return (\n <Host>\n <Tag \n class={textClass}\n part=\"text\"\n style={textStyle}\n >\n <slot ref={(el) => this.slotRef = el as HTMLSlotElement}></slot>\n </Tag>\n </Host>\n );\n }\n}\n\n/**\n * Selection state for toolbar\n */\ninterface SelectionState {\n isBold: boolean;\n isItalic: boolean;\n isUnderline: boolean;\n isStrikethrough: boolean;\n isLink: boolean;\n blockType: string;\n}\n"],"names":["observeModeChanges","h","Host"],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BsRb_UTe.js');
4
-
5
- const leTurntableCss = ":host{display:block;cursor:grab}div.turntable{width:100%;height:100%;padding:1px}";
6
-
7
- const LeTurntable = class {
8
- constructor(hostRef) {
9
- index.registerInstance(this, hostRef);
10
- }
11
- get el() { return index.getElement(this); }
12
- // transform origin
13
- // gets the same values as transform-origin css property
14
- center = 'center';
15
- // transform rotate
16
- value = 0;
17
- updateValue(newValue) {
18
- if (!this.rotating) {
19
- this.currentAngle = parseFloat(newValue);
20
- this.setAngle(this.currentAngle);
21
- }
22
- }
23
- /**
24
- * Internal state
25
- *
26
- * using properties instead of @State decoratorm
27
- * because we are only changing styles of the element and don't
28
- * need the element to be rerendered
29
- */
30
- // indicates is the element being manually rotated right now
31
- rotating = false;
32
- // coordinates of the transform origin in pixels
33
- centerX;
34
- centerY;
35
- // element page (body?) offset in pixels
36
- pageX;
37
- pageY;
38
- currentAngle = 0;
39
- // angle at the start of the drag
40
- startAngle;
41
- /**
42
- * Event listeners
43
- */
44
- handleMouseDown(evt) {
45
- // set rotating mode on
46
- this.rotating = true;
47
- // get start angle
48
- // getting pageX/Y, because when the element is transformed
49
- // relative values are useless
50
- this.startAngle = this.getAngle(evt.pageX, evt.pageY);
51
- // cancel the event to prevent text selection
52
- evt.preventDefault();
53
- evt.stopPropagation();
54
- return false;
55
- }
56
- /**
57
- * Fires when the mouse moves
58
- * checks is the element rotating right now and if it is
59
- * then calc the current angle and rotate the element
60
- *
61
- * TODO: attach events only after the dragStart?
62
- */
63
- handleMouseMove(evt) {
64
- if (this.rotating) {
65
- // calc angle update and rotate element
66
- this.setAngle(this.currentAngle + (this.getAngle(evt.pageX, evt.pageY) - this.startAngle));
67
- return false;
68
- }
69
- }
70
- handleMouseUp(evt) {
71
- if (this.rotating) {
72
- const angle = this.currentAngle + (this.getAngle(evt.pageX, evt.pageY) - this.startAngle);
73
- this.setAngle(angle);
74
- this.currentAngle = angle;
75
- this.rotating = false;
76
- return false;
77
- }
78
- }
79
- // on window resize the center should be recalculated
80
- handleWindowResize() {
81
- this.getTransformOrigin();
82
- }
83
- /**
84
- * Component lifecycles
85
- */
86
- componentDidLoad() {
87
- this.el.style.transformOrigin = this.center;
88
- this.currentAngle = this.value;
89
- this.getTransformOrigin();
90
- this.setAngle(this.currentAngle);
91
- }
92
- componentDidUpdate() {
93
- this.getTransformOrigin();
94
- }
95
- /**
96
- * Calculates the transform origin of the component
97
- * and the page offset in pixels
98
- *
99
- * We'll need these values to calculate the angle of pointer event
100
- */
101
- getTransformOrigin() {
102
- // transform origin
103
- [this.centerX, this.centerY] = window
104
- .getComputedStyle(this.el, null)
105
- .transformOrigin.split(' ')
106
- .map(val => Math.round(parseFloat(val)));
107
- // page offset
108
- let t = null;
109
- const scrollContainer = ((t = document.documentElement) || (t = document.body.parentNode)) && typeof t.scrollLeft === 'number' ? t : document.body;
110
- const clientRects = this.el.getBoundingClientRect();
111
- this.pageX = Math.round(clientRects.left + scrollContainer.scrollLeft);
112
- this.pageY = Math.round(clientRects.top + scrollContainer.scrollTop);
113
- }
114
- /**
115
- * Calculates current angle
116
- *
117
- * @param {number} posX horizontal mouse position
118
- * @param {number} posY vertical mouse position
119
- */
120
- getAngle(posX, posY) {
121
- const x = posX - this.pageX - this.centerX;
122
- const y = posY - this.pageY - this.centerY;
123
- const angle = Math.round(((Math.atan2(y, x) * 180) / Math.PI) * 100) / 100;
124
- return angle;
125
- }
126
- setAngle(angle) {
127
- this.el.style.transform = `rotate(${angle}deg)`;
128
- }
129
- render() {
130
- return (index.h("div", { key: '6ac04c3dfb7d2cd26000d1497122fc8c9ba775d3', class: "turntable", onMouseDown: this.handleMouseDown.bind(this) }, index.h("slot", { key: '18bb701a32e9b3be8e3522351bec99b74d29335d' })));
131
- }
132
- static get watchers() { return {
133
- "value": ["updateValue"]
134
- }; }
135
- };
136
- LeTurntable.style = leTurntableCss;
137
-
138
- exports.le_turntable = LeTurntable;
139
- //# sourceMappingURL=le-turntable.entry.cjs.js.map