le-kit 0.1.6 → 0.1.8

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 (289) hide show
  1. package/{dist/le-kit/assets/custom-elements.json → custom-elements.json} +889 -889
  2. package/dist/cjs/{index-WzJ78D5H.js → index-D7B9TPh8.js} +41 -9
  3. package/dist/cjs/index-D7B9TPh8.js.map +1 -0
  4. package/dist/cjs/index.cjs.js +4 -2
  5. package/dist/cjs/index.cjs.js.map +1 -1
  6. package/dist/cjs/le-box.cjs.entry.js +2 -2
  7. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.cjs.js.map +1 -1
  8. package/dist/cjs/le-button_6.cjs.entry.js +8 -10
  9. package/dist/cjs/le-card.cjs.entry.js +2 -2
  10. package/dist/cjs/le-kit.cjs.js +1 -1
  11. package/dist/cjs/le-number-input.cjs.entry.js +2 -2
  12. package/dist/cjs/le-popup.cjs.entry.js +1 -1
  13. package/dist/cjs/le-round-progress.cjs.entry.js +1 -1
  14. package/dist/cjs/le-stack.cjs.entry.js +2 -2
  15. package/dist/cjs/le-text.cjs.entry.js +2 -2
  16. package/dist/cjs/le-turntable.cjs.entry.js +1 -1
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/{utils-CBjH2E8A.js → utils-DrsoID-a.js} +3 -3
  19. package/dist/cjs/{utils-CBjH2E8A.js.map → utils-DrsoID-a.js.map} +1 -1
  20. package/dist/collection/components/le-component/le-component.js +5 -5
  21. package/dist/collection/components/le-component/le-component.js.map +1 -1
  22. package/dist/collection/components/le-popup/le-popup.js +7 -7
  23. package/dist/collection/components/le-slot/le-slot.js +5 -5
  24. package/dist/collection/components/le-slot/le-slot.js.map +1 -1
  25. package/dist/collection/global/app.js +37 -0
  26. package/dist/collection/global/app.js.map +1 -1
  27. package/dist/collection/index.js +1 -1
  28. package/dist/collection/index.js.map +1 -1
  29. package/dist/components/index.js +1 -1
  30. package/dist/components/index.js.map +1 -1
  31. package/dist/components/le-box.js +1 -1
  32. package/dist/components/le-button.js +1 -1
  33. package/dist/components/le-button2.js +45 -10
  34. package/dist/components/le-button2.js.map +1 -1
  35. package/dist/components/le-card.js +1 -1
  36. package/dist/components/le-checkbox.js +1 -1
  37. package/dist/components/le-component.js +1 -1
  38. package/dist/components/le-number-input.js +1 -1
  39. package/dist/components/le-popup.js +1 -1
  40. package/dist/components/le-slot.js +1 -1
  41. package/dist/components/le-stack.js +1 -1
  42. package/dist/components/le-string-input.js +1 -1
  43. package/dist/components/le-text.js +1 -1
  44. package/dist/core/cjs/index-D7B9TPh8.js +1835 -0
  45. package/dist/core/cjs/index-D7B9TPh8.js.map +1 -0
  46. package/dist/core/cjs/index.cjs.js +119 -0
  47. package/dist/core/cjs/index.cjs.js.map +1 -0
  48. package/dist/core/cjs/le-box.cjs.entry.js +184 -0
  49. package/dist/core/cjs/le-box.entry.cjs.js.map +1 -0
  50. package/dist/core/cjs/le-button.cjs.entry.js +92 -0
  51. package/dist/core/cjs/le-button.entry.cjs.js.map +1 -0
  52. package/dist/core/cjs/le-card.cjs.entry.js +29 -0
  53. package/dist/core/cjs/le-card.entry.cjs.js.map +1 -0
  54. package/dist/core/cjs/le-checkbox.cjs.entry.js +61 -0
  55. package/dist/core/cjs/le-checkbox.entry.cjs.js.map +1 -0
  56. package/dist/core/cjs/le-kit.cjs.js +25 -0
  57. package/dist/core/cjs/le-kit.cjs.js.map +1 -0
  58. package/dist/core/cjs/le-number-input.cjs.entry.js +202 -0
  59. package/dist/core/cjs/le-number-input.entry.cjs.js.map +1 -0
  60. package/dist/core/cjs/le-popover.cjs.entry.js +348 -0
  61. package/dist/core/cjs/le-popover.entry.cjs.js.map +1 -0
  62. package/dist/core/cjs/le-popup.cjs.entry.js +212 -0
  63. package/dist/core/cjs/le-popup.entry.cjs.js.map +1 -0
  64. package/dist/core/cjs/le-round-progress.cjs.entry.js +106 -0
  65. package/dist/core/cjs/le-round-progress.entry.cjs.js.map +1 -0
  66. package/dist/core/cjs/le-stack.cjs.entry.js +135 -0
  67. package/dist/core/cjs/le-stack.entry.cjs.js.map +1 -0
  68. package/dist/core/cjs/le-string-input.cjs.entry.js +95 -0
  69. package/dist/core/cjs/le-string-input.entry.cjs.js.map +1 -0
  70. package/dist/core/cjs/le-text.cjs.entry.js +335 -0
  71. package/dist/core/cjs/le-text.entry.cjs.js.map +1 -0
  72. package/dist/core/cjs/le-turntable.cjs.entry.js +139 -0
  73. package/dist/core/cjs/le-turntable.entry.cjs.js.map +1 -0
  74. package/dist/core/cjs/loader.cjs.js +13 -0
  75. package/dist/core/cjs/loader.cjs.js.map +1 -0
  76. package/dist/core/cjs/utils-DrsoID-a.js +152 -0
  77. package/dist/core/cjs/utils-DrsoID-a.js.map +1 -0
  78. package/dist/core/collection/collection-manifest.json +24 -0
  79. package/dist/core/collection/components/le-box/le-box.default.css +37 -0
  80. package/dist/core/collection/components/le-box/le-box.js +614 -0
  81. package/dist/core/collection/components/le-box/le-box.js.map +1 -0
  82. package/dist/core/collection/components/le-button/le-button.default.css +263 -0
  83. package/dist/core/collection/components/le-button/le-button.js +368 -0
  84. package/dist/core/collection/components/le-button/le-button.js.map +1 -0
  85. package/dist/core/collection/components/le-card/le-card.default.css +74 -0
  86. package/dist/core/collection/components/le-card/le-card.js +102 -0
  87. package/dist/core/collection/components/le-card/le-card.js.map +1 -0
  88. package/dist/core/collection/components/le-checkbox/le-checkbox.css +93 -0
  89. package/dist/core/collection/components/le-checkbox/le-checkbox.js +192 -0
  90. package/dist/core/collection/components/le-checkbox/le-checkbox.js.map +1 -0
  91. package/dist/core/collection/components/le-number-input/le-number-input.css +135 -0
  92. package/dist/core/collection/components/le-number-input/le-number-input.js +515 -0
  93. package/dist/core/collection/components/le-number-input/le-number-input.js.map +1 -0
  94. package/dist/core/collection/components/le-popover/le-popover.css +143 -0
  95. package/dist/core/collection/components/le-popover/le-popover.js +693 -0
  96. package/dist/core/collection/components/le-popover/le-popover.js.map +1 -0
  97. package/dist/core/collection/components/le-popup/le-popup.api.js +101 -0
  98. package/dist/core/collection/components/le-popup/le-popup.api.js.map +1 -0
  99. package/dist/core/collection/components/le-popup/le-popup.css +222 -0
  100. package/dist/core/collection/components/le-popup/le-popup.js +596 -0
  101. package/dist/core/collection/components/le-popup/le-popup.js.map +1 -0
  102. package/dist/core/collection/components/le-round-progress/le-round-progress.css +34 -0
  103. package/dist/core/collection/components/le-round-progress/le-round-progress.js +184 -0
  104. package/dist/core/collection/components/le-round-progress/le-round-progress.js.map +1 -0
  105. package/dist/core/collection/components/le-stack/le-stack.default.css +37 -0
  106. package/dist/core/collection/components/le-stack/le-stack.js +389 -0
  107. package/dist/core/collection/components/le-stack/le-stack.js.map +1 -0
  108. package/dist/core/collection/components/le-string-input/le-string-input.css +83 -0
  109. package/dist/core/collection/components/le-string-input/le-string-input.js +359 -0
  110. package/dist/core/collection/components/le-string-input/le-string-input.js.map +1 -0
  111. package/dist/core/collection/components/le-text/le-text.default.css +169 -0
  112. package/dist/core/collection/components/le-text/le-text.js +475 -0
  113. package/dist/core/collection/components/le-text/le-text.js.map +1 -0
  114. package/dist/core/collection/components/le-turntable/le-turntable.css +10 -0
  115. package/dist/core/collection/components/le-turntable/le-turntable.js +210 -0
  116. package/dist/core/collection/components/le-turntable/le-turntable.js.map +1 -0
  117. package/dist/core/collection/global/app.js +167 -0
  118. package/dist/core/collection/global/app.js.map +1 -0
  119. package/dist/core/collection/index.js +15 -0
  120. package/dist/core/collection/index.js.map +1 -0
  121. package/dist/core/collection/types/blocks.js +115 -0
  122. package/dist/core/collection/types/blocks.js.map +1 -0
  123. package/dist/core/collection/types/options.js +2 -0
  124. package/dist/core/collection/types/options.js.map +1 -0
  125. package/dist/core/collection/utils/utils.js +141 -0
  126. package/dist/core/collection/utils/utils.js.map +1 -0
  127. package/dist/{esm/index-CdjJ98OT.js → core/esm/index-PS-3Rz-c.js} +40 -9
  128. package/dist/core/esm/index-PS-3Rz-c.js.map +1 -0
  129. package/dist/core/esm/index.js +106 -0
  130. package/dist/core/esm/index.js.map +1 -0
  131. package/dist/core/esm/le-box.entry.js +182 -0
  132. package/dist/core/esm/le-box.entry.js.map +1 -0
  133. package/dist/core/esm/le-button.entry.js +90 -0
  134. package/dist/core/esm/le-button.entry.js.map +1 -0
  135. package/dist/core/esm/le-card.entry.js +27 -0
  136. package/dist/core/esm/le-card.entry.js.map +1 -0
  137. package/dist/core/esm/le-checkbox.entry.js +59 -0
  138. package/dist/core/esm/le-checkbox.entry.js.map +1 -0
  139. package/dist/core/esm/le-kit.js +21 -0
  140. package/dist/core/esm/le-kit.js.map +1 -0
  141. package/dist/core/esm/le-number-input.entry.js +200 -0
  142. package/dist/core/esm/le-number-input.entry.js.map +1 -0
  143. package/dist/core/esm/le-popover.entry.js +346 -0
  144. package/dist/core/esm/le-popover.entry.js.map +1 -0
  145. package/dist/core/esm/le-popup.entry.js +210 -0
  146. package/dist/core/esm/le-popup.entry.js.map +1 -0
  147. package/dist/core/esm/le-round-progress.entry.js +104 -0
  148. package/dist/core/esm/le-round-progress.entry.js.map +1 -0
  149. package/dist/core/esm/le-stack.entry.js +133 -0
  150. package/dist/core/esm/le-stack.entry.js.map +1 -0
  151. package/dist/core/esm/le-string-input.entry.js +93 -0
  152. package/dist/core/esm/le-string-input.entry.js.map +1 -0
  153. package/dist/core/esm/le-text.entry.js +333 -0
  154. package/dist/core/esm/le-text.entry.js.map +1 -0
  155. package/dist/core/esm/le-turntable.entry.js +137 -0
  156. package/dist/core/esm/le-turntable.entry.js.map +1 -0
  157. package/dist/core/esm/loader.js +11 -0
  158. package/dist/core/esm/loader.js.map +1 -0
  159. package/dist/{esm/utils-CzfSUhYB.js → core/esm/utils-lgjSfQP0.js} +3 -3
  160. package/dist/core/esm/utils-lgjSfQP0.js.map +1 -0
  161. package/dist/core/index.cjs.js +1 -0
  162. package/dist/core/index.js +1 -0
  163. package/dist/core/le-kit/index.esm.js +2 -0
  164. package/dist/core/le-kit/index.esm.js.map +1 -0
  165. package/dist/core/le-kit/le-box.entry.esm.js.map +1 -0
  166. package/dist/core/le-kit/le-button.entry.esm.js.map +1 -0
  167. package/dist/core/le-kit/le-card.entry.esm.js.map +1 -0
  168. package/dist/core/le-kit/le-checkbox.entry.esm.js.map +1 -0
  169. package/dist/core/le-kit/le-kit.css +1 -0
  170. package/dist/core/le-kit/le-kit.esm.js +2 -0
  171. package/dist/core/le-kit/le-kit.esm.js.map +1 -0
  172. package/dist/core/le-kit/le-number-input.entry.esm.js.map +1 -0
  173. package/dist/core/le-kit/le-popover.entry.esm.js.map +1 -0
  174. package/dist/core/le-kit/le-popup.entry.esm.js.map +1 -0
  175. package/dist/core/le-kit/le-round-progress.entry.esm.js.map +1 -0
  176. package/dist/core/le-kit/le-stack.entry.esm.js.map +1 -0
  177. package/dist/core/le-kit/le-string-input.entry.esm.js.map +1 -0
  178. package/dist/core/le-kit/le-text.entry.esm.js.map +1 -0
  179. package/dist/core/le-kit/le-turntable.entry.esm.js.map +1 -0
  180. package/dist/core/le-kit/loader.esm.js.map +1 -0
  181. package/dist/core/le-kit/p-1c5262eb.entry.js +2 -0
  182. package/dist/core/le-kit/p-1c5262eb.entry.js.map +1 -0
  183. package/dist/core/le-kit/p-32c08678.entry.js +2 -0
  184. package/dist/core/le-kit/p-32c08678.entry.js.map +1 -0
  185. package/dist/core/le-kit/p-38e7ec05.entry.js +2 -0
  186. package/dist/core/le-kit/p-38e7ec05.entry.js.map +1 -0
  187. package/dist/core/le-kit/p-4bf51acc.entry.js +2 -0
  188. package/dist/core/le-kit/p-4bf51acc.entry.js.map +1 -0
  189. package/dist/core/le-kit/p-86961f34.entry.js +2 -0
  190. package/dist/core/le-kit/p-86961f34.entry.js.map +1 -0
  191. package/dist/core/le-kit/p-9ee92c29.entry.js +2 -0
  192. package/dist/{le-kit/p-CvDc0yWN.js → core/le-kit/p-DN2JVY-7.js} +2 -2
  193. package/dist/core/le-kit/p-DN2JVY-7.js.map +1 -0
  194. package/dist/core/le-kit/p-PS-3Rz-c.js +3 -0
  195. package/dist/core/le-kit/p-PS-3Rz-c.js.map +1 -0
  196. package/dist/core/le-kit/p-a07048f8.entry.js +2 -0
  197. package/dist/core/le-kit/p-a07048f8.entry.js.map +1 -0
  198. package/dist/core/le-kit/p-a24b042d.entry.js +2 -0
  199. package/dist/core/le-kit/p-a24b042d.entry.js.map +1 -0
  200. package/dist/core/le-kit/p-bbc9e13e.entry.js +2 -0
  201. package/dist/core/le-kit/p-bbc9e13e.entry.js.map +1 -0
  202. package/dist/core/le-kit/p-c4223c60.entry.js +2 -0
  203. package/dist/core/le-kit/p-c4223c60.entry.js.map +1 -0
  204. package/dist/core/le-kit/p-dcf1343d.entry.js +2 -0
  205. package/dist/core/le-kit/p-fb4e68e0.entry.js +2 -0
  206. package/dist/core/le-kit/p-fb4e68e0.entry.js.map +1 -0
  207. package/dist/core/loader/cdn.js +1 -0
  208. package/dist/core/loader/index.cjs.js +1 -0
  209. package/dist/core/loader/index.d.ts +24 -0
  210. package/dist/core/loader/index.es2017.js +1 -0
  211. package/dist/core/loader/index.js +2 -0
  212. package/dist/core/types/components/le-box/le-box.d.ts +111 -0
  213. package/dist/core/types/components/le-button/le-button.d.ts +78 -0
  214. package/dist/core/types/components/le-card/le-card.d.ts +37 -0
  215. package/dist/core/types/components/le-checkbox/le-checkbox.d.ts +46 -0
  216. package/dist/core/types/components/le-number-input/le-number-input.d.ts +106 -0
  217. package/dist/core/types/components/le-popover/le-popover.d.ts +109 -0
  218. package/dist/core/types/components/le-popup/le-popup.api.d.ts +73 -0
  219. package/dist/core/types/components/le-popup/le-popup.d.ts +122 -0
  220. package/dist/core/types/components/le-round-progress/le-round-progress.d.ts +37 -0
  221. package/dist/core/types/components/le-stack/le-stack.d.ts +73 -0
  222. package/dist/core/types/components/le-string-input/le-string-input.d.ts +83 -0
  223. package/dist/core/types/components/le-text/le-text.d.ts +141 -0
  224. package/dist/core/types/components/le-turntable/le-turntable.d.ts +55 -0
  225. package/dist/core/types/components.d.ts +1752 -0
  226. package/dist/core/types/global/app.d.ts +73 -0
  227. package/dist/core/types/index.d.ts +15 -0
  228. package/dist/core/types/stencil-public-runtime.d.ts +1756 -0
  229. package/dist/core/types/types/blocks.d.ts +136 -0
  230. package/dist/core/types/types/options.d.ts +124 -0
  231. package/dist/core/types/utils/utils.d.ts +54 -0
  232. package/dist/docs.json +8 -8
  233. package/dist/esm/index-PS-3Rz-c.js +1818 -0
  234. package/dist/{le-kit/p-CdjJ98OT.js.map → esm/index-PS-3Rz-c.js.map} +1 -1
  235. package/dist/esm/index.js +2 -2
  236. package/dist/esm/le-box.entry.js +2 -2
  237. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.js.map +1 -1
  238. package/dist/esm/le-button_6.entry.js +8 -10
  239. package/dist/esm/le-card.entry.js +2 -2
  240. package/dist/esm/le-kit.js +2 -2
  241. package/dist/esm/le-number-input.entry.js +2 -2
  242. package/dist/esm/le-popup.entry.js +1 -1
  243. package/dist/esm/le-round-progress.entry.js +1 -1
  244. package/dist/esm/le-stack.entry.js +2 -2
  245. package/dist/esm/le-text.entry.js +2 -2
  246. package/dist/esm/le-turntable.entry.js +1 -1
  247. package/dist/esm/loader.js +2 -2
  248. package/dist/esm/utils-lgjSfQP0.js +146 -0
  249. package/dist/esm/{utils-CzfSUhYB.js.map → utils-lgjSfQP0.js.map} +1 -1
  250. package/dist/le-kit/index.esm.js +1 -1
  251. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.esm.js.map +1 -1
  252. package/dist/le-kit/le-kit.esm.js +1 -1
  253. package/dist/le-kit/p-27710b5b.entry.js +2 -0
  254. package/dist/le-kit/{p-0633b3ab.entry.js.map → p-27710b5b.entry.js.map} +1 -1
  255. package/dist/le-kit/{p-1452a995.entry.js → p-34102cef.entry.js} +2 -2
  256. package/dist/le-kit/{p-95764888.entry.js → p-56a80e6d.entry.js} +2 -2
  257. package/dist/le-kit/p-615ea10f.entry.js +2 -0
  258. package/dist/le-kit/p-615ea10f.entry.js.map +1 -0
  259. package/dist/le-kit/{p-bc20e30d.entry.js → p-935bb2d4.entry.js} +2 -2
  260. package/dist/le-kit/{p-220528ee.entry.js → p-9d3dc4e5.entry.js} +2 -2
  261. package/dist/le-kit/p-DN2JVY-7.js +2 -0
  262. package/dist/le-kit/{p-CvDc0yWN.js.map → p-DN2JVY-7.js.map} +1 -1
  263. package/dist/le-kit/p-PS-3Rz-c.js +3 -0
  264. package/dist/le-kit/p-PS-3Rz-c.js.map +1 -0
  265. package/dist/le-kit/{p-3551598e.entry.js → p-ccabc638.entry.js} +2 -2
  266. package/dist/le-kit/p-ccabc638.entry.js.map +1 -0
  267. package/dist/le-kit/{p-722899f0.entry.js → p-d8157b06.entry.js} +2 -2
  268. package/dist/le-kit/p-d8157b06.entry.js.map +1 -0
  269. package/dist/le-kit/p-e8c2ca0e.entry.js +2 -0
  270. package/dist/le-kit/{p-d32eddad.entry.js.map → p-e8c2ca0e.entry.js.map} +1 -1
  271. package/dist/types/global/app.d.ts +33 -0
  272. package/dist/types/index.d.ts +1 -1
  273. package/package.json +21 -3
  274. package/readme.md +22 -0
  275. package/dist/cjs/index-WzJ78D5H.js.map +0 -1
  276. package/dist/collection/assets/.gitkeep +0 -1
  277. package/dist/collection/assets/custom-elements.json +0 -4305
  278. package/dist/esm/index-CdjJ98OT.js.map +0 -1
  279. package/dist/le-kit/p-0633b3ab.entry.js +0 -2
  280. package/dist/le-kit/p-32ff3dbe.entry.js +0 -2
  281. package/dist/le-kit/p-32ff3dbe.entry.js.map +0 -1
  282. package/dist/le-kit/p-CdjJ98OT.js +0 -3
  283. package/dist/le-kit/p-d32eddad.entry.js +0 -2
  284. /package/dist/{le-kit/p-3551598e.entry.js.map → core/le-kit/p-9ee92c29.entry.js.map} +0 -0
  285. /package/dist/{le-kit/p-722899f0.entry.js.map → core/le-kit/p-dcf1343d.entry.js.map} +0 -0
  286. /package/dist/le-kit/{p-1452a995.entry.js.map → p-34102cef.entry.js.map} +0 -0
  287. /package/dist/le-kit/{p-95764888.entry.js.map → p-56a80e6d.entry.js.map} +0 -0
  288. /package/dist/le-kit/{p-bc20e30d.entry.js.map → p-935bb2d4.entry.js.map} +0 -0
  289. /package/dist/le-kit/{p-220528ee.entry.js.map → p-9d3dc4e5.entry.js.map} +0 -0
@@ -0,0 +1,83 @@
1
+ :host {
2
+ display: block;
3
+ --le-input-bg: var(--le-color-surface, #ffffff);
4
+ --le-input-color: var(--le-color-text-primary, #333333);
5
+ --le-input-border: var(--le-border-width, 2px) solid var(--le-color-border-input, #007bff);
6
+ --le-input-radius: var(--le-radius-sm, 4px);
7
+ --le-input-padding: 2px 6px;
8
+ --le-input-height: 1.5rem;
9
+ --le-input-label-color: var(--le-color-text-primary, #333333);
10
+ --le-input-desc-color: var(--le-color-text-secondary, #666666);
11
+ --le-input-placeholder-color: #999999;
12
+ }
13
+
14
+ .le-input-wrapper {
15
+ display: flex;
16
+ flex-direction: column;
17
+ gap: 2px;
18
+ }
19
+
20
+ .le-input-label {
21
+ display: block;
22
+ font-size: 0.9em;
23
+ font-weight: 500;
24
+ color: var(--le-input-label-color);
25
+ margin-bottom: 2px;
26
+ }
27
+
28
+ .le-input-container {
29
+ position: relative;
30
+ display: flex;
31
+ align-items: center;
32
+ background: var(--le-input-bg);
33
+ border: var(--le-input-border);
34
+ border-radius: var(--le-input-radius);
35
+ transition: border-color 0.2s;
36
+ }
37
+
38
+ .le-input-container:focus-within {
39
+ outline: 2px solid var(--le-color-focus);
40
+ outline-offset: 2px;
41
+ }
42
+
43
+
44
+ :host([disabled]) .le-input-container {
45
+ opacity: 0.6;
46
+ background-color: rgba(0,0,0,0.05);
47
+ cursor: not-allowed;
48
+ }
49
+
50
+ input {
51
+ flex: 1;
52
+ min-height: var(--le-input-height);
53
+ padding: var(--le-input-padding);
54
+ border: none;
55
+ background: transparent;
56
+ color: var(--le-input-color);
57
+ font-family: inherit;
58
+ font-size: inherit;
59
+ outline: none;
60
+ width: 100%;
61
+ }
62
+
63
+ input::placeholder {
64
+ color: var(--le-input-placeholder-color);
65
+ }
66
+
67
+ .icon-start, .icon-end {
68
+ display: flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ padding: 0 8px;
72
+ color: var(--le-input-desc-color);
73
+ }
74
+
75
+ .le-input-description {
76
+ font-size: 0.85em;
77
+ color: var(--le-input-desc-color);
78
+ margin-top: 2px;
79
+ }
80
+
81
+ .le-input-description::has(le-slot > slot[name=description]:empty) {
82
+ display: none;
83
+ }
@@ -0,0 +1,359 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { classnames } from "../../utils/utils";
3
+ /**
4
+ * A text input component with support for labels, descriptions, icons, and external IDs.
5
+ *
6
+ * @slot - The label text for the input
7
+ * @slot description - Additional description text displayed below the input
8
+ * @slot icon-start - Icon to display at the start of the input
9
+ * @slot icon-end - Icon to display at the end of the input
10
+ *
11
+ * @cssprop --le-input-bg - Input background color
12
+ * @cssprop --le-input-color - Input text color
13
+ * @cssprop --le-input-border - Input border style
14
+ * @cssprop --le-input-border-focus - Input border style when focused
15
+ * @cssprop --le-input-radius - Input border radius
16
+ * @cssprop --le-input-padding - Input padding
17
+ */
18
+ export class LeStringInput {
19
+ el;
20
+ /**
21
+ * Mode of the popover should be 'default' for internal use
22
+ */
23
+ mode;
24
+ /**
25
+ * The value of the input
26
+ */
27
+ value;
28
+ /**
29
+ * The name of the input
30
+ */
31
+ name;
32
+ /**
33
+ * The type of the input (text, email, password, etc.)
34
+ */
35
+ type = 'text';
36
+ /**
37
+ * Label for the input
38
+ */
39
+ label;
40
+ /**
41
+ * Icon for the start icon
42
+ */
43
+ iconStart;
44
+ /**
45
+ * Icon for the end icon
46
+ */
47
+ iconEnd;
48
+ /**
49
+ * Placeholder text
50
+ */
51
+ placeholder;
52
+ /**
53
+ * Whether the input is disabled
54
+ */
55
+ disabled = false;
56
+ /**
57
+ * Whether the input is read-only
58
+ */
59
+ readonly = false;
60
+ /**
61
+ * External ID for linking with external systems
62
+ */
63
+ externalId;
64
+ /**
65
+ * Emitted when the value changes (on blur or Enter)
66
+ */
67
+ leChange;
68
+ /**
69
+ * Emitted when the input value changes (on keystroke)
70
+ */
71
+ leInput;
72
+ handleInput = (ev) => {
73
+ const input = ev.target;
74
+ this.value = input.value;
75
+ this.leInput.emit({
76
+ value: this.value,
77
+ name: this.name,
78
+ externalId: this.externalId
79
+ });
80
+ };
81
+ handleChange = (ev) => {
82
+ const input = ev.target;
83
+ this.value = input.value;
84
+ this.leChange.emit({
85
+ value: this.value,
86
+ name: this.name,
87
+ externalId: this.externalId
88
+ });
89
+ };
90
+ handleClick = (ev) => {
91
+ ev.stopPropagation();
92
+ };
93
+ render() {
94
+ return (h(Host, { key: '5c841074ac9288c448c2c09e18530c91bc62e3da', class: classnames({ 'disabled': this.disabled }) }, h("div", { key: 'b2f7bea3e6c52033153caf9f18df4a815e9de14e', class: "le-input-wrapper" }, this.label && (h("label", { key: 'ce3cb46e176ec1016c93f5742ff0856badfe7d26', class: "le-input-label", htmlFor: this.name }, this.label)), h("div", { key: 'ea5cbbe1e178f964631aa67ec9833a17c3362be7', class: "le-input-container" }, this.iconStart && (h("span", { key: 'df8b39dcbe87ecb232ed23f2d965c707b16b1b50', class: "icon-start" }, this.iconStart)), 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 && (h("span", { key: 'a726a70aa97b74ecd1a69266bcbfff18b504266b', class: "icon-end" }, this.iconEnd))), h("div", { key: '950270b513255a6dd7a53b80d3827efe3b043aac', class: "le-input-description" }, h("slot", { key: 'cb083064937a07085c11d421d2f42cf700f47892', name: "description" })))));
95
+ }
96
+ static get is() { return "le-string-input"; }
97
+ static get encapsulation() { return "shadow"; }
98
+ static get originalStyleUrls() {
99
+ return {
100
+ "$": ["le-string-input.css"]
101
+ };
102
+ }
103
+ static get styleUrls() {
104
+ return {
105
+ "$": ["le-string-input.css"]
106
+ };
107
+ }
108
+ static get properties() {
109
+ return {
110
+ "mode": {
111
+ "type": "string",
112
+ "mutable": true,
113
+ "complexType": {
114
+ "original": "'default' | 'admin'",
115
+ "resolved": "\"admin\" | \"default\"",
116
+ "references": {}
117
+ },
118
+ "required": false,
119
+ "optional": false,
120
+ "docs": {
121
+ "tags": [],
122
+ "text": "Mode of the popover should be 'default' for internal use"
123
+ },
124
+ "getter": false,
125
+ "setter": false,
126
+ "reflect": true,
127
+ "attribute": "mode"
128
+ },
129
+ "value": {
130
+ "type": "string",
131
+ "mutable": true,
132
+ "complexType": {
133
+ "original": "string",
134
+ "resolved": "string",
135
+ "references": {}
136
+ },
137
+ "required": false,
138
+ "optional": false,
139
+ "docs": {
140
+ "tags": [],
141
+ "text": "The value of the input"
142
+ },
143
+ "getter": false,
144
+ "setter": false,
145
+ "reflect": true,
146
+ "attribute": "value"
147
+ },
148
+ "name": {
149
+ "type": "string",
150
+ "mutable": false,
151
+ "complexType": {
152
+ "original": "string",
153
+ "resolved": "string",
154
+ "references": {}
155
+ },
156
+ "required": false,
157
+ "optional": false,
158
+ "docs": {
159
+ "tags": [],
160
+ "text": "The name of the input"
161
+ },
162
+ "getter": false,
163
+ "setter": false,
164
+ "reflect": false,
165
+ "attribute": "name"
166
+ },
167
+ "type": {
168
+ "type": "string",
169
+ "mutable": false,
170
+ "complexType": {
171
+ "original": "'text' | 'email' | 'password' | 'tel' | 'url'",
172
+ "resolved": "\"email\" | \"password\" | \"tel\" | \"text\" | \"url\"",
173
+ "references": {}
174
+ },
175
+ "required": false,
176
+ "optional": false,
177
+ "docs": {
178
+ "tags": [],
179
+ "text": "The type of the input (text, email, password, etc.)"
180
+ },
181
+ "getter": false,
182
+ "setter": false,
183
+ "reflect": false,
184
+ "attribute": "type",
185
+ "defaultValue": "'text'"
186
+ },
187
+ "label": {
188
+ "type": "string",
189
+ "mutable": false,
190
+ "complexType": {
191
+ "original": "string",
192
+ "resolved": "string",
193
+ "references": {}
194
+ },
195
+ "required": false,
196
+ "optional": false,
197
+ "docs": {
198
+ "tags": [],
199
+ "text": "Label for the input"
200
+ },
201
+ "getter": false,
202
+ "setter": false,
203
+ "reflect": false,
204
+ "attribute": "label"
205
+ },
206
+ "iconStart": {
207
+ "type": "string",
208
+ "mutable": false,
209
+ "complexType": {
210
+ "original": "string",
211
+ "resolved": "string",
212
+ "references": {}
213
+ },
214
+ "required": false,
215
+ "optional": false,
216
+ "docs": {
217
+ "tags": [],
218
+ "text": "Icon for the start icon"
219
+ },
220
+ "getter": false,
221
+ "setter": false,
222
+ "reflect": false,
223
+ "attribute": "icon-start"
224
+ },
225
+ "iconEnd": {
226
+ "type": "string",
227
+ "mutable": false,
228
+ "complexType": {
229
+ "original": "string",
230
+ "resolved": "string",
231
+ "references": {}
232
+ },
233
+ "required": false,
234
+ "optional": false,
235
+ "docs": {
236
+ "tags": [],
237
+ "text": "Icon for the end icon"
238
+ },
239
+ "getter": false,
240
+ "setter": false,
241
+ "reflect": false,
242
+ "attribute": "icon-end"
243
+ },
244
+ "placeholder": {
245
+ "type": "string",
246
+ "mutable": false,
247
+ "complexType": {
248
+ "original": "string",
249
+ "resolved": "string",
250
+ "references": {}
251
+ },
252
+ "required": false,
253
+ "optional": false,
254
+ "docs": {
255
+ "tags": [],
256
+ "text": "Placeholder text"
257
+ },
258
+ "getter": false,
259
+ "setter": false,
260
+ "reflect": false,
261
+ "attribute": "placeholder"
262
+ },
263
+ "disabled": {
264
+ "type": "boolean",
265
+ "mutable": false,
266
+ "complexType": {
267
+ "original": "boolean",
268
+ "resolved": "boolean",
269
+ "references": {}
270
+ },
271
+ "required": false,
272
+ "optional": false,
273
+ "docs": {
274
+ "tags": [],
275
+ "text": "Whether the input is disabled"
276
+ },
277
+ "getter": false,
278
+ "setter": false,
279
+ "reflect": false,
280
+ "attribute": "disabled",
281
+ "defaultValue": "false"
282
+ },
283
+ "readonly": {
284
+ "type": "boolean",
285
+ "mutable": false,
286
+ "complexType": {
287
+ "original": "boolean",
288
+ "resolved": "boolean",
289
+ "references": {}
290
+ },
291
+ "required": false,
292
+ "optional": false,
293
+ "docs": {
294
+ "tags": [],
295
+ "text": "Whether the input is read-only"
296
+ },
297
+ "getter": false,
298
+ "setter": false,
299
+ "reflect": false,
300
+ "attribute": "readonly",
301
+ "defaultValue": "false"
302
+ },
303
+ "externalId": {
304
+ "type": "string",
305
+ "mutable": false,
306
+ "complexType": {
307
+ "original": "string",
308
+ "resolved": "string",
309
+ "references": {}
310
+ },
311
+ "required": false,
312
+ "optional": false,
313
+ "docs": {
314
+ "tags": [],
315
+ "text": "External ID for linking with external systems"
316
+ },
317
+ "getter": false,
318
+ "setter": false,
319
+ "reflect": false,
320
+ "attribute": "external-id"
321
+ }
322
+ };
323
+ }
324
+ static get events() {
325
+ return [{
326
+ "method": "leChange",
327
+ "name": "change",
328
+ "bubbles": true,
329
+ "cancelable": true,
330
+ "composed": true,
331
+ "docs": {
332
+ "tags": [],
333
+ "text": "Emitted when the value changes (on blur or Enter)"
334
+ },
335
+ "complexType": {
336
+ "original": "{ value: string; name: string; externalId: string }",
337
+ "resolved": "{ value: string; name: string; externalId: string; }",
338
+ "references": {}
339
+ }
340
+ }, {
341
+ "method": "leInput",
342
+ "name": "input",
343
+ "bubbles": true,
344
+ "cancelable": true,
345
+ "composed": true,
346
+ "docs": {
347
+ "tags": [],
348
+ "text": "Emitted when the input value changes (on keystroke)"
349
+ },
350
+ "complexType": {
351
+ "original": "{ value: string; name: string; externalId: string }",
352
+ "resolved": "{ value: string; name: string; externalId: string; }",
353
+ "references": {}
354
+ }
355
+ }];
356
+ }
357
+ static get elementRef() { return "el"; }
358
+ }
359
+ //# sourceMappingURL=le-string-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"le-string-input.js","sourceRoot":"","sources":["../../../src-core/components/le-string-input/le-string-input.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * le-text default styles
3
+ *
4
+ * Semantic text element with variant-based styling
5
+ */
6
+
7
+ :host {
8
+ display: block;
9
+ }
10
+
11
+ :host([hidden]) {
12
+ display: none;
13
+ }
14
+
15
+ /* Base text styles */
16
+ .le-text {
17
+ margin: 0;
18
+ color: var(--le-text-color, var(--le-color-text));
19
+ font-family: var(--le-font-family);
20
+ line-height: var(--le-text-line-height, 1.5);
21
+ }
22
+
23
+ /* Paragraph */
24
+ .variant-p {
25
+ font-size: var(--le-font-size-base, 1rem);
26
+ font-weight: var(--le-font-weight-normal, 400);
27
+ color: var(--le-color-text);
28
+ }
29
+
30
+ /* Headings */
31
+ .variant-h1 {
32
+ font-size: var(--le-font-size-4xl, 2.5rem);
33
+ font-weight: var(--le-font-weight-bold, 700);
34
+ line-height: 1.2;
35
+ color: var(--le-color-text);
36
+ letter-spacing: -0.02em;
37
+ }
38
+
39
+ .variant-h2 {
40
+ font-size: var(--le-font-size-3xl, 2rem);
41
+ font-weight: var(--le-font-weight-bold, 700);
42
+ line-height: 1.25;
43
+ color: var(--le-color-text);
44
+ letter-spacing: -0.01em;
45
+ }
46
+
47
+ .variant-h3 {
48
+ font-size: var(--le-font-size-2xl, 1.5rem);
49
+ font-weight: var(--le-font-weight-semibold, 600);
50
+ line-height: 1.3;
51
+ color: var(--le-color-text);
52
+ }
53
+
54
+ .variant-h4 {
55
+ font-size: var(--le-font-size-xl, 1.25rem);
56
+ font-weight: var(--le-font-weight-semibold, 600);
57
+ line-height: 1.35;
58
+ color: var(--le-color-text);
59
+ }
60
+
61
+ .variant-h5 {
62
+ font-size: var(--le-font-size-lg, 1.125rem);
63
+ font-weight: var(--le-font-weight-medium, 500);
64
+ line-height: 1.4;
65
+ color: var(--le-color-text);
66
+ }
67
+
68
+ .variant-h6 {
69
+ font-size: var(--le-font-size-base, 1rem);
70
+ font-weight: var(--le-font-weight-medium, 500);
71
+ line-height: 1.45;
72
+ color: var(--le-color-text);
73
+ text-transform: uppercase;
74
+ letter-spacing: 0.05em;
75
+ }
76
+
77
+ /* Code */
78
+ .variant-code {
79
+ font-family: var(--le-font-family-mono, 'SF Mono', 'Fira Code', 'Consolas', monospace);
80
+ font-size: var(--le-font-size-sm, 0.875rem);
81
+ background: var(--le-color-surface-alt, #f5f5f5);
82
+ padding: var(--le-space-md);
83
+ border-radius: var(--le-radius-md);
84
+ overflow-x: auto;
85
+ white-space: pre-wrap;
86
+ color: var(--le-color-text);
87
+ }
88
+
89
+ /* Quote */
90
+ .variant-quote {
91
+ font-size: var(--le-font-size-lg, 1.125rem);
92
+ font-style: italic;
93
+ color: var(--le-color-text-secondary);
94
+ border-left: 4px solid var(--le-color-primary);
95
+ padding-left: var(--le-space-lg);
96
+ margin-left: 0;
97
+ margin-right: 0;
98
+ }
99
+
100
+ /* Label */
101
+ .variant-label {
102
+ font-size: var(--le-font-size-sm, 0.875rem);
103
+ font-weight: var(--le-font-weight-medium, 500);
104
+ color: var(--le-color-text-secondary);
105
+ text-transform: uppercase;
106
+ letter-spacing: 0.05em;
107
+ }
108
+
109
+ /* Small */
110
+ .variant-small {
111
+ font-size: var(--le-font-size-sm, 0.875rem);
112
+ color: var(--le-color-text-secondary);
113
+ }
114
+
115
+ /* Truncation */
116
+ .truncate {
117
+ overflow: hidden;
118
+ text-overflow: ellipsis;
119
+ white-space: nowrap;
120
+ }
121
+
122
+ .truncate.max-lines-2,
123
+ .truncate.max-lines-3,
124
+ .truncate.max-lines-4,
125
+ .truncate.max-lines-5 {
126
+ white-space: normal;
127
+ display: -webkit-box;
128
+ -webkit-box-orient: vertical;
129
+ }
130
+
131
+ .truncate.max-lines-2 { -webkit-line-clamp: 2; line-clamp: 2; }
132
+ .truncate.max-lines-3 { -webkit-line-clamp: 3; line-clamp: 3; }
133
+ .truncate.max-lines-4 { -webkit-line-clamp: 4; line-clamp: 4; }
134
+ .truncate.max-lines-5 { -webkit-line-clamp: 5; line-clamp: 5; }
135
+
136
+ /* Alignment */
137
+ :host([align="center"]) .le-text { text-align: center; }
138
+ :host([align="right"]) .le-text { text-align: right; }
139
+ :host([align="justify"]) .le-text { text-align: justify; }
140
+
141
+ /* Links inside text */
142
+ .le-text a {
143
+ color: var(--le-color-primary);
144
+ text-decoration: underline;
145
+ }
146
+
147
+ .le-text a:hover {
148
+ color: var(--le-color-primary-dark);
149
+ }
150
+
151
+ /* Bold, italic, etc. */
152
+ .le-text strong,
153
+ .le-text b {
154
+ font-weight: var(--le-font-weight-bold, 700);
155
+ }
156
+
157
+ .le-text em,
158
+ .le-text i {
159
+ font-style: italic;
160
+ }
161
+
162
+ .le-text u {
163
+ text-decoration: underline;
164
+ }
165
+
166
+ .le-text s,
167
+ .le-text strike {
168
+ text-decoration: line-through;
169
+ }