le-kit 0.1.3 → 0.1.5

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 (257) hide show
  1. package/dist/le-kit/assets/custom-elements.json +4305 -0
  2. package/dist/le-kit/index-Da-89pOc.js +4522 -0
  3. package/dist/le-kit/{index-D21JjI31.js.map → index-Da-89pOc.js.map} +1 -1
  4. package/dist/le-kit/index.esm.js +116 -2
  5. package/dist/le-kit/index.esm.js.map +1 -1
  6. package/dist/{esm → le-kit}/le-box.entry.js +3 -3
  7. package/dist/le-kit/le-button.entry.esm.js.map +1 -0
  8. package/dist/le-kit/le-button.entry.js +90 -0
  9. package/dist/{esm → le-kit}/le-card.entry.js +3 -3
  10. package/dist/le-kit/le-checkbox.entry.esm.js.map +1 -0
  11. package/dist/le-kit/le-checkbox.entry.js +59 -0
  12. package/dist/le-kit/le-component.entry.esm.js.map +1 -0
  13. package/dist/{collection/components/le-component/le-component.js → le-kit/le-component.entry.js} +19 -134
  14. package/dist/le-kit/le-kit.css +1010 -1
  15. package/dist/le-kit/le-kit.esm.js +48 -2
  16. package/dist/le-kit/le-kit.esm.js.map +1 -1
  17. package/dist/{esm → le-kit}/le-number-input.entry.js +5 -5
  18. package/dist/le-kit/le-popover.entry.esm.js.map +1 -0
  19. package/dist/{components/le-popover2.js → le-kit/le-popover.entry.js} +9 -45
  20. package/dist/{esm → le-kit}/le-popup.entry.js +6 -6
  21. package/dist/{esm → le-kit}/le-round-progress.entry.js +2 -2
  22. package/dist/le-kit/le-slot.entry.esm.js.map +1 -0
  23. package/dist/{collection/components/le-slot/le-slot.js → le-kit/le-slot.entry.js} +30 -279
  24. package/dist/{esm → le-kit}/le-stack.entry.js +3 -3
  25. package/dist/le-kit/le-string-input.entry.esm.js.map +1 -0
  26. package/dist/le-kit/le-string-input.entry.js +93 -0
  27. package/dist/{esm → le-kit}/le-text.entry.js +3 -3
  28. package/dist/{esm → le-kit}/le-turntable.entry.js +2 -2
  29. package/dist/{esm/utils-CJLZrrdC.js → le-kit/utils-FDOApZ53.js} +3 -3
  30. package/dist/le-kit/{utils-apol-Xc_.js.map → utils-FDOApZ53.js.map} +1 -1
  31. package/package.json +3 -54
  32. package/readme.md +2 -35
  33. package/dist/admin/index.d.ts +0 -23
  34. package/dist/admin/index.js +0 -74
  35. package/dist/admin/loader.js +0 -9
  36. package/dist/cjs/index-CO4npcak.js +0 -1796
  37. package/dist/cjs/index-CO4npcak.js.map +0 -1
  38. package/dist/cjs/index.cjs.js +0 -117
  39. package/dist/cjs/index.cjs.js.map +0 -1
  40. package/dist/cjs/le-box.cjs.entry.js +0 -184
  41. package/dist/cjs/le-box.entry.cjs.js.map +0 -1
  42. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.cjs.js.map +0 -1
  43. package/dist/cjs/le-button_6.cjs.entry.js +0 -1199
  44. package/dist/cjs/le-card.cjs.entry.js +0 -29
  45. package/dist/cjs/le-card.entry.cjs.js.map +0 -1
  46. package/dist/cjs/le-kit.cjs.js +0 -25
  47. package/dist/cjs/le-kit.cjs.js.map +0 -1
  48. package/dist/cjs/le-number-input.cjs.entry.js +0 -202
  49. package/dist/cjs/le-number-input.entry.cjs.js.map +0 -1
  50. package/dist/cjs/le-popup.cjs.entry.js +0 -212
  51. package/dist/cjs/le-popup.entry.cjs.js.map +0 -1
  52. package/dist/cjs/le-round-progress.cjs.entry.js +0 -106
  53. package/dist/cjs/le-round-progress.entry.cjs.js.map +0 -1
  54. package/dist/cjs/le-stack.cjs.entry.js +0 -135
  55. package/dist/cjs/le-stack.entry.cjs.js.map +0 -1
  56. package/dist/cjs/le-text.cjs.entry.js +0 -335
  57. package/dist/cjs/le-text.entry.cjs.js.map +0 -1
  58. package/dist/cjs/le-turntable.cjs.entry.js +0 -139
  59. package/dist/cjs/le-turntable.entry.cjs.js.map +0 -1
  60. package/dist/cjs/loader.cjs.js +0 -13
  61. package/dist/cjs/loader.cjs.js.map +0 -1
  62. package/dist/cjs/utils-BeT0iyCQ.js +0 -152
  63. package/dist/cjs/utils-BeT0iyCQ.js.map +0 -1
  64. package/dist/collection/collection-manifest.json +0 -26
  65. package/dist/collection/components/le-box/le-box.default.css +0 -37
  66. package/dist/collection/components/le-box/le-box.js +0 -614
  67. package/dist/collection/components/le-box/le-box.js.map +0 -1
  68. package/dist/collection/components/le-button/le-button.default.css +0 -263
  69. package/dist/collection/components/le-button/le-button.js +0 -368
  70. package/dist/collection/components/le-button/le-button.js.map +0 -1
  71. package/dist/collection/components/le-card/le-card.default.css +0 -74
  72. package/dist/collection/components/le-card/le-card.js +0 -102
  73. package/dist/collection/components/le-card/le-card.js.map +0 -1
  74. package/dist/collection/components/le-checkbox/le-checkbox.css +0 -93
  75. package/dist/collection/components/le-checkbox/le-checkbox.js +0 -192
  76. package/dist/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  77. package/dist/collection/components/le-component/le-component.css +0 -189
  78. package/dist/collection/components/le-component/le-component.js.map +0 -1
  79. package/dist/collection/components/le-number-input/le-number-input.css +0 -135
  80. package/dist/collection/components/le-number-input/le-number-input.js +0 -515
  81. package/dist/collection/components/le-number-input/le-number-input.js.map +0 -1
  82. package/dist/collection/components/le-popover/le-popover.css +0 -143
  83. package/dist/collection/components/le-popover/le-popover.js +0 -693
  84. package/dist/collection/components/le-popover/le-popover.js.map +0 -1
  85. package/dist/collection/components/le-popup/le-popup.api.js +0 -101
  86. package/dist/collection/components/le-popup/le-popup.api.js.map +0 -1
  87. package/dist/collection/components/le-popup/le-popup.css +0 -222
  88. package/dist/collection/components/le-popup/le-popup.js +0 -596
  89. package/dist/collection/components/le-popup/le-popup.js.map +0 -1
  90. package/dist/collection/components/le-round-progress/le-round-progress.css +0 -34
  91. package/dist/collection/components/le-round-progress/le-round-progress.js +0 -184
  92. package/dist/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  93. package/dist/collection/components/le-slot/le-slot.default.css +0 -222
  94. package/dist/collection/components/le-slot/le-slot.js.map +0 -1
  95. package/dist/collection/components/le-stack/le-stack.default.css +0 -37
  96. package/dist/collection/components/le-stack/le-stack.js +0 -389
  97. package/dist/collection/components/le-stack/le-stack.js.map +0 -1
  98. package/dist/collection/components/le-string-input/le-string-input.css +0 -83
  99. package/dist/collection/components/le-string-input/le-string-input.js +0 -359
  100. package/dist/collection/components/le-string-input/le-string-input.js.map +0 -1
  101. package/dist/collection/components/le-text/le-text.default.css +0 -169
  102. package/dist/collection/components/le-text/le-text.js +0 -475
  103. package/dist/collection/components/le-text/le-text.js.map +0 -1
  104. package/dist/collection/components/le-turntable/le-turntable.css +0 -10
  105. package/dist/collection/components/le-turntable/le-turntable.js +0 -210
  106. package/dist/collection/components/le-turntable/le-turntable.js.map +0 -1
  107. package/dist/collection/global/app.js +0 -130
  108. package/dist/collection/global/app.js.map +0 -1
  109. package/dist/collection/index-admin.js +0 -27
  110. package/dist/collection/index-admin.js.map +0 -1
  111. package/dist/collection/index-core.js +0 -25
  112. package/dist/collection/index-core.js.map +0 -1
  113. package/dist/collection/index.js +0 -15
  114. package/dist/collection/index.js.map +0 -1
  115. package/dist/collection/types/blocks.js +0 -115
  116. package/dist/collection/types/blocks.js.map +0 -1
  117. package/dist/collection/types/options.js +0 -2
  118. package/dist/collection/types/options.js.map +0 -1
  119. package/dist/collection/utils/utils.js +0 -141
  120. package/dist/collection/utils/utils.js.map +0 -1
  121. package/dist/components/index.js +0 -127
  122. package/dist/components/index.js.map +0 -1
  123. package/dist/components/le-box.js +0 -256
  124. package/dist/components/le-box.js.map +0 -1
  125. package/dist/components/le-button.js +0 -9
  126. package/dist/components/le-button.js.map +0 -1
  127. package/dist/components/le-button2.js +0 -1408
  128. package/dist/components/le-button2.js.map +0 -1
  129. package/dist/components/le-card.js +0 -83
  130. package/dist/components/le-card.js.map +0 -1
  131. package/dist/components/le-checkbox.js +0 -9
  132. package/dist/components/le-checkbox.js.map +0 -1
  133. package/dist/components/le-component.js +0 -9
  134. package/dist/components/le-component.js.map +0 -1
  135. package/dist/components/le-number-input.js +0 -271
  136. package/dist/components/le-number-input.js.map +0 -1
  137. package/dist/components/le-popover.js +0 -9
  138. package/dist/components/le-popover.js.map +0 -1
  139. package/dist/components/le-popover2.js.map +0 -1
  140. package/dist/components/le-popup.js +0 -279
  141. package/dist/components/le-popup.js.map +0 -1
  142. package/dist/components/le-round-progress.js +0 -135
  143. package/dist/components/le-round-progress.js.map +0 -1
  144. package/dist/components/le-slot.js +0 -9
  145. package/dist/components/le-slot.js.map +0 -1
  146. package/dist/components/le-stack.js +0 -198
  147. package/dist/components/le-stack.js.map +0 -1
  148. package/dist/components/le-string-input.js +0 -9
  149. package/dist/components/le-string-input.js.map +0 -1
  150. package/dist/components/le-text.js +0 -398
  151. package/dist/components/le-text.js.map +0 -1
  152. package/dist/components/le-turntable.js +0 -164
  153. package/dist/components/le-turntable.js.map +0 -1
  154. package/dist/core/components/index.d.ts +0 -64
  155. package/dist/core/components/index.js +0 -125
  156. package/dist/core/components/index.js.map +0 -1
  157. package/dist/core/components/le-box.d.ts +0 -11
  158. package/dist/core/components/le-box.js +0 -246
  159. package/dist/core/components/le-box.js.map +0 -1
  160. package/dist/core/components/le-button.d.ts +0 -11
  161. package/dist/core/components/le-button.js +0 -9
  162. package/dist/core/components/le-button.js.map +0 -1
  163. package/dist/core/components/le-button2.js +0 -1358
  164. package/dist/core/components/le-button2.js.map +0 -1
  165. package/dist/core/components/le-card.d.ts +0 -11
  166. package/dist/core/components/le-card.js +0 -73
  167. package/dist/core/components/le-card.js.map +0 -1
  168. package/dist/core/components/le-checkbox.d.ts +0 -11
  169. package/dist/core/components/le-checkbox.js +0 -9
  170. package/dist/core/components/le-checkbox.js.map +0 -1
  171. package/dist/core/components/le-component.js.map +0 -1
  172. package/dist/core/components/le-number-input.d.ts +0 -11
  173. package/dist/core/components/le-number-input.js +0 -261
  174. package/dist/core/components/le-number-input.js.map +0 -1
  175. package/dist/core/components/le-popover.d.ts +0 -11
  176. package/dist/core/components/le-popover.js +0 -9
  177. package/dist/core/components/le-popover.js.map +0 -1
  178. package/dist/core/components/le-popover2.js +0 -382
  179. package/dist/core/components/le-popover2.js.map +0 -1
  180. package/dist/core/components/le-popup.d.ts +0 -11
  181. package/dist/core/components/le-popup.js +0 -269
  182. package/dist/core/components/le-popup.js.map +0 -1
  183. package/dist/core/components/le-round-progress.d.ts +0 -11
  184. package/dist/core/components/le-round-progress.js +0 -135
  185. package/dist/core/components/le-round-progress.js.map +0 -1
  186. package/dist/core/components/le-slot.js.map +0 -1
  187. package/dist/core/components/le-stack.d.ts +0 -11
  188. package/dist/core/components/le-stack.js +0 -188
  189. package/dist/core/components/le-stack.js.map +0 -1
  190. package/dist/core/components/le-string-input.d.ts +0 -11
  191. package/dist/core/components/le-string-input.js +0 -9
  192. package/dist/core/components/le-string-input.js.map +0 -1
  193. package/dist/core/components/le-text.d.ts +0 -11
  194. package/dist/core/components/le-text.js +0 -388
  195. package/dist/core/components/le-text.js.map +0 -1
  196. package/dist/core/components/le-turntable.d.ts +0 -11
  197. package/dist/core/components/le-turntable.js +0 -164
  198. package/dist/core/components/le-turntable.js.map +0 -1
  199. package/dist/core/index.d.ts +0 -21
  200. package/dist/core/index.js +0 -68
  201. package/dist/core/loader.js +0 -9
  202. package/dist/core/stencil-runtime.js +0 -1
  203. package/dist/docs.d.ts +0 -443
  204. package/dist/docs.json +0 -5185
  205. package/dist/esm/index-D71TXvJa.js +0 -1781
  206. package/dist/esm/index-D71TXvJa.js.map +0 -1
  207. package/dist/esm/index.js +0 -106
  208. package/dist/esm/index.js.map +0 -1
  209. package/dist/esm/le-box.entry.js.map +0 -1
  210. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.js.map +0 -1
  211. package/dist/esm/le-button_6.entry.js +0 -1192
  212. package/dist/esm/le-card.entry.js.map +0 -1
  213. package/dist/esm/le-kit.js +0 -21
  214. package/dist/esm/le-kit.js.map +0 -1
  215. package/dist/esm/le-number-input.entry.js.map +0 -1
  216. package/dist/esm/le-popup.entry.js.map +0 -1
  217. package/dist/esm/le-round-progress.entry.js.map +0 -1
  218. package/dist/esm/le-stack.entry.js.map +0 -1
  219. package/dist/esm/le-text.entry.js.map +0 -1
  220. package/dist/esm/le-turntable.entry.js.map +0 -1
  221. package/dist/esm/loader.js +0 -11
  222. package/dist/esm/loader.js.map +0 -1
  223. package/dist/esm/utils-CJLZrrdC.js.map +0 -1
  224. package/dist/index.cjs.js +0 -1
  225. package/dist/index.js +0 -1
  226. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-slot.le-string-input.entry.esm.js.map +0 -1
  227. package/dist/le-kit/p-024a764e.entry.js +0 -2
  228. package/dist/le-kit/p-024a764e.entry.js.map +0 -1
  229. package/dist/le-kit/p-073cf0b9.entry.js +0 -2
  230. package/dist/le-kit/p-073cf0b9.entry.js.map +0 -1
  231. package/dist/le-kit/p-0955b105.entry.js +0 -2
  232. package/dist/le-kit/p-0955b105.entry.js.map +0 -1
  233. package/dist/le-kit/p-18d79ee2.entry.js +0 -2
  234. package/dist/le-kit/p-18d79ee2.entry.js.map +0 -1
  235. package/dist/le-kit/p-4b1d3b6d.entry.js +0 -2
  236. package/dist/le-kit/p-4b1d3b6d.entry.js.map +0 -1
  237. package/dist/le-kit/p-79d179bd.entry.js +0 -2
  238. package/dist/le-kit/p-79d179bd.entry.js.map +0 -1
  239. package/dist/le-kit/p-D71TXvJa.js +0 -3
  240. package/dist/le-kit/p-D71TXvJa.js.map +0 -1
  241. package/dist/le-kit/p-c8a9288e.entry.js +0 -2
  242. package/dist/le-kit/p-c8a9288e.entry.js.map +0 -1
  243. package/dist/le-kit/p-cfc35bd3.entry.js +0 -2
  244. package/dist/le-kit/p-cfc35bd3.entry.js.map +0 -1
  245. package/dist/le-kit/p-d04da1f5.entry.js +0 -2
  246. package/dist/le-kit/p-d04da1f5.entry.js.map +0 -1
  247. package/dist/le-kit/p-qIai5-eB.js +0 -2
  248. package/dist/le-kit/p-qIai5-eB.js.map +0 -1
  249. package/dist/themes/base.css +0 -89
  250. package/dist/themes/dark.css +0 -100
  251. package/dist/themes/default.css +0 -108
  252. package/dist/themes/gradient.css +0 -100
  253. package/dist/themes/index.css +0 -413
  254. package/dist/themes/minimal.css +0 -100
  255. package/dist/themes/warm.css +0 -100
  256. package/dist/types/index-admin.d.ts +0 -29
  257. package/dist/types/index-core.d.ts +0 -27
@@ -1,74 +0,0 @@
1
- /**
2
- * Default mode styles for le-card
3
- * Uses global design tokens with component-specific overrides
4
- */
5
- :host {
6
- display: block;
7
-
8
- /* Component-specific tokens that map to global tokens */
9
- --le-card-bg: var(--le-color-surface);
10
- --le-card-border-radius: var(--le-radius-lg);
11
- --le-card-shadow: var(--le-shadow-md);
12
- --le-card-shadow-elevated: var(--le-shadow-lg);
13
- --le-card-shadow-hover: var(--le-shadow-xl);
14
- --le-card-padding: var(--le-space-md);
15
- --le-card-border-color: var(--le-color-border);
16
- --le-card-transition: var(--le-transition-normal);
17
- }
18
-
19
- .card {
20
- background: var(--le-card-bg);
21
- border-radius: var(--le-card-border-radius);
22
- overflow: hidden;
23
- color: var(--le-color-text);
24
- box-shadow: var(--le-card-shadow);
25
- }
26
-
27
- /* Variants - le-component gets the hostClass, so we use :host > le-component */
28
- :host > le-component.variant-outlined .card {
29
- border: 1px solid var(--le-card-border-color);
30
- box-shadow: none;
31
- }
32
-
33
- :host > le-component.variant-elevated .card {
34
- box-shadow: var(--le-card-shadow-elevated);
35
- }
36
-
37
- /* Interactive state */
38
- :host > le-component.interactive .card {
39
- cursor: pointer;
40
- transition: transform var(--le-card-transition), box-shadow var(--le-card-transition);
41
- }
42
-
43
- :host > le-component.interactive .card:hover {
44
- transform: translateY(-2px);
45
- box-shadow: var(--le-card-shadow-hover);
46
- }
47
-
48
- :host > le-component.interactive .card:focus-visible {
49
- outline: 2px solid var(--le-color-border-focus);
50
- outline-offset: 2px;
51
- }
52
-
53
- /* Sections */
54
- .card-header {
55
- padding: var(--le-card-padding);
56
- padding-bottom: 0;
57
- }
58
-
59
- .card-header:empty {
60
- display: none;
61
- }
62
-
63
- .card-content {
64
- padding: var(--le-card-padding);
65
- }
66
-
67
- .card-footer {
68
- padding: var(--le-card-padding);
69
- padding-top: 0;
70
- }
71
-
72
- .card-footer:empty {
73
- display: none;
74
- }
@@ -1,102 +0,0 @@
1
- import { h } from "@stencil/core";
2
- import { classnames } from "../../utils/utils";
3
- /**
4
- * A flexible card component with header, content, and footer slots.
5
- *
6
- * The card uses le-slot wrappers for each slot area. In admin mode,
7
- * le-slot shows placeholders for CMS editing. In default mode,
8
- * le-slot acts as a transparent passthrough.
9
- *
10
- * @slot header - Card header content (title, actions)
11
- * @slot - Default slot for main card content
12
- * @slot footer - Card footer content (buttons, links)
13
- *
14
- * @cssprop --le-card-bg - Card background color
15
- * @cssprop --le-card-border-radius - Card border radius
16
- * @cssprop --le-card-shadow - Card box shadow
17
- * @cssprop --le-card-padding - Card content padding
18
- *
19
- * @csspart card - The main card container
20
- * @csspart header - The card header section
21
- * @csspart content - The card content section
22
- * @csspart footer - The card footer section
23
- *
24
- * @cmsEditable true
25
- * @cmsCategory Layout
26
- */
27
- export class LeCard {
28
- el;
29
- /**
30
- * Card variant style
31
- * @allowedValues default | outlined | elevated
32
- */
33
- variant = 'default';
34
- /**
35
- * Whether the card is interactive (clickable)
36
- */
37
- interactive = false;
38
- render() {
39
- return (h("le-component", { key: '3878b21dafb24349fd9c178c784028302fb95214', component: "le-card", hostClass: classnames(`variant-${this.variant}`, { 'interactive': this.interactive }) }, h("div", { key: '41470ad363928c5a5f70947a1fc859db03cf7619', class: "card", part: "card" }, h("div", { key: '9e0d85016f98ee15eba90bbd4db004f9210b1bf3', class: "card-header", part: "header" }, h("le-slot", { key: 'dcd23b7da86e4026f2cc7fb62b410d7317ab2e2b', name: "header", label: "Header", description: "Card title", type: "text", tag: "h3" }, h("slot", { key: '0f2f616c950d7548484bd8c87befa7ecff6d374f', name: "header" }))), h("div", { key: '1d77598852e8755e477a505d29c77643cea446d4', class: "card-content", part: "content" }, h("le-slot", { key: 'fd94892b8489f727a3e951f1771cab53b0667799', name: "", label: "Content", description: "Card content", type: "textarea", tag: "p", required: true }, h("slot", { key: 'dc1c2deff9405fd838aee733bc6e4394f60fefd7' }))), h("div", { key: '2944fa4515119b1868567545fa131fe178d7a3cf', class: "card-footer", part: "footer" }, h("le-slot", { key: 'bdd9b5a1baf2ebf487120afa458ae85285b05fcf', name: "footer", label: "Footer", description: "Card footer with actions", "allowed-components": "le-button,le-link" }, h("slot", { key: '8a79b1baaf6720f1397c0bacf5f71dc97dff2777', name: "footer" }))))));
40
- }
41
- static get is() { return "le-card"; }
42
- static get encapsulation() { return "shadow"; }
43
- static get originalStyleUrls() {
44
- return {
45
- "$": ["le-card.default.css"]
46
- };
47
- }
48
- static get styleUrls() {
49
- return {
50
- "$": ["le-card.default.css"]
51
- };
52
- }
53
- static get properties() {
54
- return {
55
- "variant": {
56
- "type": "string",
57
- "mutable": false,
58
- "complexType": {
59
- "original": "'default' | 'outlined' | 'elevated'",
60
- "resolved": "\"default\" | \"elevated\" | \"outlined\"",
61
- "references": {}
62
- },
63
- "required": false,
64
- "optional": false,
65
- "docs": {
66
- "tags": [{
67
- "name": "allowedValues",
68
- "text": "default | outlined | elevated"
69
- }],
70
- "text": "Card variant style"
71
- },
72
- "getter": false,
73
- "setter": false,
74
- "reflect": false,
75
- "attribute": "variant",
76
- "defaultValue": "'default'"
77
- },
78
- "interactive": {
79
- "type": "boolean",
80
- "mutable": false,
81
- "complexType": {
82
- "original": "boolean",
83
- "resolved": "boolean",
84
- "references": {}
85
- },
86
- "required": false,
87
- "optional": false,
88
- "docs": {
89
- "tags": [],
90
- "text": "Whether the card is interactive (clickable)"
91
- },
92
- "getter": false,
93
- "setter": false,
94
- "reflect": false,
95
- "attribute": "interactive",
96
- "defaultValue": "false"
97
- }
98
- };
99
- }
100
- static get elementRef() { return "el"; }
101
- }
102
- //# sourceMappingURL=le-card.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-card.js","sourceRoot":"","sources":["../../../src/components/le-card/le-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAMH,MAAM,OAAO,MAAM;IACN,EAAE,CAAc;IAE3B;;;OAGG;IACK,OAAO,GAAwC,SAAS,CAAC;IAEjE;;OAEG;IACK,WAAW,GAAY,KAAK,CAAC;IAErC,MAAM;QACJ,OAAO,CACL,qEAAc,SAAS,EAAC,SAAS,EAAC,SAAS,EAAE,UAAU,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACrH,4DAAK,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM;gBAC3B,4DAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ;oBACpC,gEAAS,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,WAAW,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,IAAI;wBACjF,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACnB,CACN;gBAEN,4DAAK,KAAK,EAAC,cAAc,EAAC,IAAI,EAAC,SAAS;oBACtC,gEAAS,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,WAAW,EAAC,cAAc,EAAC,IAAI,EAAC,UAAU,EAAC,GAAG,EAAC,GAAG,EAAC,QAAQ;wBAC1F,8DAAa,CACL,CACN;gBAEN,4DAAK,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ;oBACpC,gEAAS,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,WAAW,EAAC,0BAA0B,wBAAoB,mBAAmB;wBACjH,6DAAM,IAAI,EAAC,QAAQ,GAAQ,CACnB,CACN,CACF,CACO,CAChB,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A flexible card component with header, content, and footer slots.\n *\n * The card uses le-slot wrappers for each slot area. In admin mode,\n * le-slot shows placeholders for CMS editing. In default mode,\n * le-slot acts as a transparent passthrough.\n *\n * @slot header - Card header content (title, actions)\n * @slot - Default slot for main card content\n * @slot footer - Card footer content (buttons, links)\n *\n * @cssprop --le-card-bg - Card background color\n * @cssprop --le-card-border-radius - Card border radius\n * @cssprop --le-card-shadow - Card box shadow\n * @cssprop --le-card-padding - Card content padding\n *\n * @csspart card - The main card container\n * @csspart header - The card header section\n * @csspart content - The card content section\n * @csspart footer - The card footer section\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-card',\n styleUrl: 'le-card.default.css',\n shadow: true,\n})\nexport class LeCard {\n @Element() el: HTMLElement;\n\n /**\n * Card variant style\n * @allowedValues default | outlined | elevated\n */\n @Prop() variant: 'default' | 'outlined' | 'elevated' = 'default';\n\n /**\n * Whether the card is interactive (clickable)\n */\n @Prop() interactive: boolean = false;\n\n render() {\n return (\n <le-component component=\"le-card\" hostClass={classnames(`variant-${this.variant}`, { 'interactive': this.interactive })}>\n <div class=\"card\" part=\"card\">\n <div class=\"card-header\" part=\"header\">\n <le-slot name=\"header\" label=\"Header\" description=\"Card title\" type=\"text\" tag=\"h3\">\n <slot name=\"header\"></slot>\n </le-slot>\n </div>\n\n <div class=\"card-content\" part=\"content\">\n <le-slot name=\"\" label=\"Content\" description=\"Card content\" type=\"textarea\" tag=\"p\" required>\n <slot></slot>\n </le-slot>\n </div>\n\n <div class=\"card-footer\" part=\"footer\">\n <le-slot name=\"footer\" label=\"Footer\" description=\"Card footer with actions\" allowed-components=\"le-button,le-link\">\n <slot name=\"footer\"></slot>\n </le-slot>\n </div>\n </div>\n </le-component>\n );\n }\n}\n"]}
@@ -1,93 +0,0 @@
1
- :host {
2
- display: block;
3
- --le-checkbox-size: 18px;
4
- --le-checkbox-color: var(--le-color-primary, #007bff);
5
- --le-checkbox-label-color: var(--le-color-text-primary, #333);
6
- --le-checkbox-desc-color: var(--le-color-text-secondary, #666);
7
- --le-checkbox-border-radius: var(--le-radius-sm, 2px);
8
- --le-checkbox-marker-color: var(--le-color-surface, #fff);
9
- }
10
-
11
- .le-checkbox-wrapper {
12
- display: flex;
13
- flex-direction: column;
14
- gap: 4px;
15
- }
16
-
17
- .le-checkbox-label {
18
- display: inline-flex;
19
- align-items: flex-start;
20
- gap: 8px;
21
- cursor: pointer;
22
- user-select: none;
23
- }
24
-
25
- :host([disabled]) .le-checkbox-label {
26
- cursor: not-allowed;
27
- opacity: 0.6;
28
- }
29
-
30
- .le-checkbox-input {
31
- display: flex;
32
- align-items: center;
33
- justify-content: center;
34
- min-height: 1.4em;
35
- }
36
-
37
- input[type="checkbox"] {
38
- appearance: none;
39
- -webkit-appearance: none;
40
- width: var(--le-checkbox-size);
41
- height: var(--le-checkbox-size);
42
- border: var(--le-border-width, 2px) solid var(--le-checkbox-color);
43
- border-radius: var(--le-checkbox-border-radius);
44
- margin: 0;
45
- margin-top: 2px; /* Align with text */
46
- position: relative;
47
- cursor: inherit;
48
- background-color: transparent;
49
- transition: background-color 0.2s, border-color 0.2s;
50
- }
51
-
52
- input[type="checkbox"]:checked {
53
- background-color: var(--le-checkbox-color);
54
- }
55
-
56
- input[type="checkbox"]:checked::after {
57
- content: '';
58
- position: absolute;
59
- left: 0;
60
- top: 0;
61
- bottom: calc(var(--le-checkbox-size) / 5);
62
- right: 0;
63
- margin: auto;
64
- width: calc(var(--le-checkbox-size) / 4);
65
- height: calc(var(--le-checkbox-size) / 2);
66
- border: solid var(--le-checkbox-marker-color, #fff);
67
- border-width: 0 calc(var(--le-checkbox-size) / 10) calc(var(--le-checkbox-size) / 10) 0;
68
- transform: rotate(45deg);
69
- }
70
-
71
- input[type="checkbox"]:focus-visible {
72
- outline: 2px solid var(--le-color-focus);
73
- outline-offset: 2px;
74
- }
75
-
76
- .le-checkbox-text {
77
- flex: 1;
78
- flex-wrap: wrap;
79
- color: var(--le-checkbox-label-color);
80
- line-height: 1.5;
81
- text-align: start;
82
- }
83
-
84
- .le-checkbox-description {
85
- margin-left: calc(var(--le-checkbox-size) + 8px);
86
- font-size: 0.875em;
87
- color: var(--le-checkbox-desc-color);
88
- line-height: 1.4;
89
- }
90
-
91
- :host [slot="description"] {
92
- margin: 0;
93
- }
@@ -1,192 +0,0 @@
1
- import { h } from "@stencil/core";
2
- import { classnames } from "../../utils/utils";
3
- /**
4
- * A checkbox component with support for labels, descriptions, and external IDs.
5
- *
6
- * @slot - The label text for the checkbox
7
- * @slot description - Additional description text displayed below the label
8
- *
9
- * @cssprop --le-checkbox-size - Size of the checkbox input
10
- * @cssprop --le-checkbox-color - Color of the checkbox when checked
11
- * @cssprop --le-checkbox-label-color - Color of the label text
12
- * @cssprop --le-checkbox-desc-color - Color of the description text
13
- */
14
- export class LeCheckbox {
15
- el;
16
- /**
17
- * Whether the checkbox is checked
18
- */
19
- checked = false;
20
- /**
21
- * Whether the checkbox is disabled
22
- */
23
- disabled = false;
24
- /**
25
- * The name of the checkbox input
26
- */
27
- name;
28
- /**
29
- * The value of the checkbox input
30
- */
31
- value;
32
- /**
33
- * External ID for linking with external systems (e.g. database ID, PDF form field ID)
34
- */
35
- externalId;
36
- /**
37
- * Emitted when the checked state changes
38
- */
39
- leChange;
40
- handleChange = (event) => {
41
- // We stop the internal button click from bubbling up
42
- event.stopPropagation();
43
- if (this.disabled) {
44
- event.preventDefault();
45
- return;
46
- }
47
- const input = event.target;
48
- this.checked = input.checked;
49
- this.leChange.emit({
50
- checked: this.checked,
51
- value: this.value,
52
- name: this.name,
53
- externalId: this.externalId
54
- });
55
- };
56
- render() {
57
- return (h("le-component", { key: '43399929e07835e0019d509803e50a151921fa72', component: "le-checkbox", hostClass: classnames({ 'disabled': this.disabled }) }, h("div", { key: '7ddbf2ac1690bb09082adfea70b9767c972d007a', class: "le-checkbox-wrapper" }, h("label", { key: '8eec4055c713e8b3b155695751b10bff64c9f903', class: "le-checkbox-label" }, h("span", { key: '2118b1cbe7911ff1674e522d723949d81cade185', class: "le-checkbox-input" }, h("input", { key: 'd0a30af5c14497fa6fa294c07ba74ae2e032481f', type: "checkbox", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.handleChange })), h("span", { key: '02cf9588431240039a53ee50e02b08ba5d63b974', class: "le-checkbox-text" }, h("le-slot", { key: 'e7d7b253deab72e627164eb72fc06109abfca6a5', name: "", type: "text", tag: "span" }, h("slot", { key: '1d8c443073e48848513a8a6d04cd7805a394e54e' })))), h("div", { key: '16c2c927dc0c0f7844a203a0628bf0e561009bd0', class: "le-checkbox-description" }, h("le-slot", { key: 'c6898ecc8992dce4786e68ab4b136bf5c3a4d3aa', name: "description", type: "text", tag: "div", label: "Description" }, h("slot", { key: '3342add8ed1400ab74681e445163eeb3dd415941', name: "description" }))))));
58
- }
59
- static get is() { return "le-checkbox"; }
60
- static get encapsulation() { return "shadow"; }
61
- static get originalStyleUrls() {
62
- return {
63
- "$": ["le-checkbox.css"]
64
- };
65
- }
66
- static get styleUrls() {
67
- return {
68
- "$": ["le-checkbox.css"]
69
- };
70
- }
71
- static get properties() {
72
- return {
73
- "checked": {
74
- "type": "boolean",
75
- "mutable": true,
76
- "complexType": {
77
- "original": "boolean",
78
- "resolved": "boolean",
79
- "references": {}
80
- },
81
- "required": false,
82
- "optional": false,
83
- "docs": {
84
- "tags": [],
85
- "text": "Whether the checkbox is checked"
86
- },
87
- "getter": false,
88
- "setter": false,
89
- "reflect": true,
90
- "attribute": "checked",
91
- "defaultValue": "false"
92
- },
93
- "disabled": {
94
- "type": "boolean",
95
- "mutable": false,
96
- "complexType": {
97
- "original": "boolean",
98
- "resolved": "boolean",
99
- "references": {}
100
- },
101
- "required": false,
102
- "optional": false,
103
- "docs": {
104
- "tags": [],
105
- "text": "Whether the checkbox is disabled"
106
- },
107
- "getter": false,
108
- "setter": false,
109
- "reflect": false,
110
- "attribute": "disabled",
111
- "defaultValue": "false"
112
- },
113
- "name": {
114
- "type": "string",
115
- "mutable": false,
116
- "complexType": {
117
- "original": "string",
118
- "resolved": "string",
119
- "references": {}
120
- },
121
- "required": false,
122
- "optional": false,
123
- "docs": {
124
- "tags": [],
125
- "text": "The name of the checkbox input"
126
- },
127
- "getter": false,
128
- "setter": false,
129
- "reflect": false,
130
- "attribute": "name"
131
- },
132
- "value": {
133
- "type": "string",
134
- "mutable": false,
135
- "complexType": {
136
- "original": "string",
137
- "resolved": "string",
138
- "references": {}
139
- },
140
- "required": false,
141
- "optional": false,
142
- "docs": {
143
- "tags": [],
144
- "text": "The value of the checkbox input"
145
- },
146
- "getter": false,
147
- "setter": false,
148
- "reflect": false,
149
- "attribute": "value"
150
- },
151
- "externalId": {
152
- "type": "string",
153
- "mutable": false,
154
- "complexType": {
155
- "original": "string",
156
- "resolved": "string",
157
- "references": {}
158
- },
159
- "required": false,
160
- "optional": false,
161
- "docs": {
162
- "tags": [],
163
- "text": "External ID for linking with external systems (e.g. database ID, PDF form field ID)"
164
- },
165
- "getter": false,
166
- "setter": false,
167
- "reflect": false,
168
- "attribute": "external-id"
169
- }
170
- };
171
- }
172
- static get events() {
173
- return [{
174
- "method": "leChange",
175
- "name": "change",
176
- "bubbles": true,
177
- "cancelable": true,
178
- "composed": true,
179
- "docs": {
180
- "tags": [],
181
- "text": "Emitted when the checked state changes"
182
- },
183
- "complexType": {
184
- "original": "{ checked: boolean; value: string; name: string; externalId: string }",
185
- "resolved": "{ checked: boolean; value: string; name: string; externalId: string; }",
186
- "references": {}
187
- }
188
- }];
189
- }
190
- static get elementRef() { return "el"; }
191
- }
192
- //# sourceMappingURL=le-checkbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"le-checkbox.js","sourceRoot":"","sources":["../../../src/components/le-checkbox/le-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAgB,CAAC,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;GAUG;AAMH,MAAM,OAAO,UAAU;IACV,EAAE,CAAc;IAE3B;;OAEG;IACqC,OAAO,GAAY,KAAK,CAAC;IAEjE;;OAEG;IACK,QAAQ,GAAY,KAAK,CAAC;IAElC;;OAEG;IACK,IAAI,CAAS;IAErB;;OAEG;IACK,KAAK,CAAS;IAEtB;;OAEG;IACK,UAAU,CAAS;IAE3B;;OAEG;IAC6B,QAAQ,CAAsF;IAEtH,YAAY,GAAG,CAAC,KAAY,EAAE,EAAE;QACtC,qDAAqD;QACrD,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM;QACJ,OAAO,CACL,qEAAc,SAAS,EAAC,aAAa,EAAC,SAAS,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxF,4DAAK,KAAK,EAAC,qBAAqB;gBAC9B,8DAAO,KAAK,EAAC,mBAAmB;oBAC9B,6DAAM,KAAK,EAAC,mBAAmB;wBAC7B,8DACE,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B,CACG;oBACP,6DAAM,KAAK,EAAC,kBAAkB;wBAC5B,gEAAS,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM;4BACrC,8DAAa,CACL,CACL,CACD;gBAER,4DAAK,KAAK,EAAC,yBAAyB;oBAClC,gEAAS,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,aAAa;wBACnE,6DAAM,IAAI,EAAC,aAAa,GAAQ,CACxB,CACN,CACF,CACO,CAChB,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, Event, EventEmitter, h, Element } from '@stencil/core';\nimport { classnames } from '../../utils/utils';\n\n/**\n * A checkbox component with support for labels, descriptions, and external IDs.\n *\n * @slot - The label text for the checkbox\n * @slot description - Additional description text displayed below the label\n *\n * @cssprop --le-checkbox-size - Size of the checkbox input\n * @cssprop --le-checkbox-color - Color of the checkbox when checked\n * @cssprop --le-checkbox-label-color - Color of the label text\n * @cssprop --le-checkbox-desc-color - Color of the description text\n */\n@Component({\n tag: 'le-checkbox',\n styleUrl: 'le-checkbox.css',\n shadow: true,\n})\nexport class LeCheckbox {\n @Element() el: HTMLElement;\n\n /**\n * Whether the checkbox is checked\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * Whether the checkbox is disabled\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The name of the checkbox input\n */\n @Prop() name: string;\n\n /**\n * The value of the checkbox input\n */\n @Prop() value: string;\n\n /**\n * External ID for linking with external systems (e.g. database ID, PDF form field ID)\n */\n @Prop() externalId: string;\n\n /**\n * Emitted when the checked state changes\n */\n @Event({ eventName: 'change' }) leChange: EventEmitter<{ checked: boolean; value: string; name: string; externalId: string }>;\n\n private handleChange = (event: Event) => {\n // We stop the internal button click from bubbling up\n event.stopPropagation();\n\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n\n const input = event.target as HTMLInputElement;\n this.checked = input.checked;\n this.leChange.emit({\n checked: this.checked,\n value: this.value,\n name: this.name,\n externalId: this.externalId\n });\n };\n\n render() {\n return (\n <le-component component=\"le-checkbox\" hostClass={classnames({ 'disabled': this.disabled })}>\n <div class=\"le-checkbox-wrapper\">\n <label class=\"le-checkbox-label\">\n <span class=\"le-checkbox-input\">\n <input\n type=\"checkbox\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n onChange={this.handleChange}\n />\n </span>\n <span class=\"le-checkbox-text\">\n <le-slot name=\"\" type=\"text\" tag=\"span\">\n <slot></slot>\n </le-slot>\n </span>\n </label>\n \n <div class=\"le-checkbox-description\">\n <le-slot name=\"description\" type=\"text\" tag=\"div\" label=\"Description\">\n <slot name=\"description\"></slot>\n </le-slot>\n </div>\n </div>\n </le-component>\n );\n }\n}\n"]}
@@ -1,189 +0,0 @@
1
- /**
2
- * le-component styles
3
- *
4
- * In default mode, the component is invisible (passthrough).
5
- * In admin mode, it shows a wrapper with header and settings.
6
- */
7
-
8
- :host {
9
- display: contents;
10
- }
11
-
12
- :host(.admin-mode) {
13
- display: block;
14
- }
15
-
16
- /* Admin mode wrapper */
17
- .le-component-wrapper {
18
- position: relative;
19
- border: 2px dashed var(--le-admin-border-color, #90caf9);
20
- border-radius: var(--le-radius-md, 8px);
21
- background: var(--le-admin-bg, rgba(144, 202, 249, 0.05));
22
- transition: border-color 0.2s ease, box-shadow 0.2s ease;
23
- }
24
-
25
- .le-component-wrapper:hover {
26
- border-color: var(--le-admin-border-hover, #42a5f5);
27
- box-shadow: 0 0 0 2px var(--le-admin-glow, rgba(66, 165, 245, 0.2));
28
- }
29
-
30
- /* Component header */
31
- .le-component-header {
32
- display: flex;
33
- align-items: center;
34
- justify-content: space-between;
35
- gap: var(--le-spacing-1, 4px);
36
- padding: 0 0 0 var(--le-spacing-1, 4px);
37
- background: var(--le-admin-header-bg, rgba(144, 202, 249, 0.15));
38
- border-bottom: 1px solid var(--le-admin-border-color, #90caf9);
39
- border-radius: var(--le-radius-md, 8px) var(--le-radius-md, 8px) 0 0;
40
- font-size: var(--le-font-size-xs, 11px);
41
- }
42
-
43
- .le-component-name {
44
- font-weight: var(--le-font-weight-medium, 500);
45
- color: var(--le-admin-text, #1976d2);
46
- text-transform: capitalize;
47
- text-align: start;
48
- overflow: hidden;
49
- width: 0;
50
- flex: 1 1 0%;
51
- }
52
-
53
- /* Component content area */
54
- .le-component-content {
55
- padding: var(--le-space-xs, 4px);
56
- }
57
-
58
- .le-component-trigger {
59
- font-size: 24px;
60
- line-height: 0px;
61
- width: 12px;
62
- height: 12px;
63
- }
64
- .le-component-button {
65
- width: 20px;
66
- }
67
-
68
- /* Property editor styles */
69
- .property-editor {
70
- display: flex;
71
- flex-direction: column;
72
- gap: var(--le-space-sm, 8px);
73
- max-width: 380px;
74
- }
75
-
76
- .property-field {
77
- display: flex;
78
- flex-direction: column;
79
- gap: var(--le-space-xs, 4px);
80
- }
81
-
82
- .property-field label {
83
- display: flex;
84
- flex-direction: column;
85
- gap: 2px;
86
- font-size: var(--le-font-size-sm, 13px);
87
- font-weight: var(--le-font-weight-medium, 500);
88
- color: var(--le-color-text, #333);
89
- }
90
-
91
- .property-hint {
92
- font-size: var(--le-font-size-xs, 11px);
93
- font-weight: normal;
94
- color: var(--le-color-text-secondary, #666);
95
- line-height: 1.3;
96
- }
97
-
98
- .property-field input[type="text"],
99
- .property-field input[type="number"],
100
- .property-field select {
101
- padding: var(--le-space-xs, 4px) var(--le-space-sm, 8px);
102
- border: 1px solid var(--le-color-border, #ddd);
103
- border-radius: var(--le-radius-md, 7px);
104
- font-size: var(--le-font-size-sm, 13px);
105
- font-family: inherit;
106
- background: var(--le-color-surface, #fff);
107
- color: var(--le-color-text, #333);
108
- transition: border-color 0.15s ease, box-shadow 0.15s ease;
109
- }
110
-
111
- .property-field input:focus,
112
- .property-field select:focus {
113
- outline: none;
114
- border-color: var(--le-color-primary, #1976d2);
115
- box-shadow: 0 0 0 2px var(--le-color-primary-light, rgba(25, 118, 210, 0.2));
116
- }
117
-
118
- /* Checkbox field */
119
- .property-field--checkbox {
120
- flex-direction: column;
121
- }
122
-
123
- .property-field--checkbox label {
124
- flex-direction: row;
125
- align-items: center;
126
- gap: var(--le-space-sm, 8px);
127
- cursor: pointer;
128
- }
129
-
130
- .property-field--checkbox input[type="checkbox"] {
131
- width: 16px;
132
- height: 16px;
133
- margin: 0;
134
- cursor: pointer;
135
- accent-color: var(--le-color-primary, #1976d2);
136
- }
137
-
138
- .property-field--checkbox .property-hint {
139
- margin-left: 24px;
140
- }
141
-
142
- /* No properties message */
143
- .no-properties {
144
- margin: 0;
145
- padding: var(--le-space-sm, 8px);
146
- font-size: var(--le-font-size-sm, 13px);
147
- color: var(--le-color-text-secondary, #666);
148
- text-align: center;
149
- }
150
-
151
- /* Property editor container */
152
- .property-editor-container {
153
- display: flex;
154
- flex-direction: column;
155
- gap: var(--le-space-md, 12px);
156
- }
157
-
158
- /* Actions section at bottom of editor */
159
- .property-editor-actions {
160
- padding-top: var(--le-space-sm, 8px);
161
- border-top: 1px solid var(--le-color-border, #e5e5e5);
162
- }
163
-
164
- /* Delete component button */
165
- .delete-component-btn {
166
- display: flex;
167
- align-items: center;
168
- justify-content: center;
169
- gap: var(--le-space-xs, 4px);
170
- width: 100%;
171
- padding: var(--le-space-sm, 8px) var(--le-space-md, 12px);
172
- border: 1px solid var(--le-color-danger, #e53935);
173
- border-radius: var(--le-radius-md, 6px);
174
- background: transparent;
175
- color: var(--le-color-danger, #e53935);
176
- font-size: var(--le-font-size-sm, 13px);
177
- font-weight: 500;
178
- cursor: pointer;
179
- transition: background-color 0.15s, color 0.15s;
180
- }
181
-
182
- .delete-component-btn:hover {
183
- background: var(--le-color-danger, #e53935);
184
- color: white;
185
- }
186
-
187
- .delete-component-btn:active {
188
- opacity: 0.9;
189
- }