le-kit 0.3.4 → 0.4.0

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 (224) hide show
  1. package/dist/cjs/{index-BPF04Jvb.js → index-BzadfLTc.js} +6 -3
  2. package/dist/cjs/index-BzadfLTc.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-bar_16.cjs.entry.js +23 -23
  5. package/dist/cjs/le-box.cjs.entry.js +5 -5
  6. package/dist/cjs/le-card.cjs.entry.js +5 -5
  7. package/dist/cjs/le-combobox.cjs.entry.js +2 -2
  8. package/dist/cjs/le-header-placeholder.cjs.entry.js +2 -2
  9. package/dist/cjs/le-kit.cjs.js +2 -2
  10. package/dist/cjs/le-multiselect.cjs.entry.js +4 -4
  11. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  12. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  13. package/dist/cjs/le-segmented-control.cjs.entry.js +2 -2
  14. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +229 -0
  15. package/dist/cjs/le-side-panel.cjs.entry.js +546 -0
  16. package/dist/cjs/le-stack.cjs.entry.js +3 -3
  17. package/dist/cjs/le-tab-bar.cjs.entry.js +2 -2
  18. package/dist/cjs/le-tab-panel.cjs.entry.js +3 -3
  19. package/dist/cjs/le-tab.cjs.entry.js +3 -3
  20. package/dist/cjs/le-tabs.cjs.entry.js +4 -4
  21. package/dist/cjs/le-tag.cjs.entry.js +2 -2
  22. package/dist/cjs/le-text.cjs.entry.js +8 -8
  23. package/dist/cjs/le-turntable.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +2 -2
  25. package/dist/cjs/{utils-BYsLPHN1.js → utils-Dxx9WhWK.js} +3 -3
  26. package/dist/cjs/{utils-BYsLPHN1.js.map → utils-Dxx9WhWK.js.map} +1 -1
  27. package/dist/collection/collection-manifest.json +2 -0
  28. package/dist/collection/components/le-box/le-box.js +3 -3
  29. package/dist/collection/components/le-box/le-box.js.map +1 -1
  30. package/dist/collection/components/le-button/le-button.css +2 -2
  31. package/dist/collection/components/le-button/le-button.js +1 -1
  32. package/dist/collection/components/le-card/le-card.js +3 -3
  33. package/dist/collection/components/le-card/le-card.js.map +1 -1
  34. package/dist/collection/components/le-checkbox/le-checkbox.js +1 -1
  35. package/dist/collection/components/le-collapse/le-collapse.js +1 -1
  36. package/dist/collection/components/le-combobox/le-combobox.js +1 -1
  37. package/dist/collection/components/le-current-heading/le-current-heading.js +1 -1
  38. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +1 -1
  39. package/dist/collection/components/le-header/le-header.js +2 -2
  40. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
  41. package/dist/collection/components/le-icon/le-icon.js +1 -1
  42. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  43. package/dist/collection/components/le-navigation/le-navigation.css +19 -6
  44. package/dist/collection/components/le-navigation/le-navigation.js +2 -2
  45. package/dist/collection/components/le-navigation/le-navigation.js.map +1 -1
  46. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  47. package/dist/collection/components/le-popover/le-popover.js +3 -3
  48. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  49. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
  50. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  51. package/dist/collection/components/le-select/le-select.js +2 -2
  52. package/dist/collection/components/le-side-panel/le-side-panel.css +193 -0
  53. package/dist/collection/components/le-side-panel/le-side-panel.js +953 -0
  54. package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -0
  55. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +610 -0
  56. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -0
  57. package/dist/collection/components/le-slot/le-slot.js +1 -1
  58. package/dist/collection/components/le-stack/le-stack.js +1 -1
  59. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  60. package/dist/collection/components/le-tab/le-tab.js +1 -1
  61. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  62. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  63. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  64. package/dist/collection/components/le-tag/le-tag.js +1 -1
  65. package/dist/collection/components/le-text/le-text.js +7 -7
  66. package/dist/collection/components/le-text/le-text.js.map +1 -1
  67. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  68. package/dist/collection/dist/components/assets/custom-elements.json +1618 -602
  69. package/dist/collection/dist/components/assets/icons/side-panel.json +61 -0
  70. package/dist/collection/dist/themes/dark.css +1 -0
  71. package/dist/collection/dist/themes/default.css +1 -0
  72. package/dist/collection/dist/themes/gradient.css +1 -0
  73. package/dist/collection/dist/themes/minimal.css +1 -0
  74. package/dist/collection/dist/themes/warm.css +1 -0
  75. package/dist/components/assets/custom-elements.json +1618 -602
  76. package/dist/components/assets/icons/side-panel.json +61 -0
  77. package/dist/components/index.js.map +1 -1
  78. package/dist/components/le-box.js +3 -3
  79. package/dist/components/le-box.js.map +1 -1
  80. package/dist/components/le-button2.js +8 -8
  81. package/dist/components/le-button2.js.map +1 -1
  82. package/dist/components/le-card.js +3 -3
  83. package/dist/components/le-card.js.map +1 -1
  84. package/dist/components/le-collapse2.js +1 -1
  85. package/dist/components/le-combobox.js +1 -1
  86. package/dist/components/le-current-heading.js +1 -1
  87. package/dist/components/le-dropdown-base2.js +1 -1
  88. package/dist/components/le-header-placeholder.js +1 -1
  89. package/dist/components/le-header.js +2 -2
  90. package/dist/components/le-icon2.js +1 -1
  91. package/dist/components/le-multiselect.js +3 -3
  92. package/dist/components/le-navigation.js +3 -3
  93. package/dist/components/le-navigation.js.map +1 -1
  94. package/dist/components/le-number-input.js +1 -1
  95. package/dist/components/le-popover2.js +3 -3
  96. package/dist/components/le-round-progress.js +1 -1
  97. package/dist/components/le-scroll-progress.js +1 -1
  98. package/dist/components/le-segmented-control.js +1 -1
  99. package/dist/components/le-side-panel-toggle.d.ts +11 -0
  100. package/dist/components/le-side-panel-toggle.js +9 -0
  101. package/dist/components/le-side-panel-toggle.js.map +1 -0
  102. package/dist/components/le-side-panel-toggle2.js +311 -0
  103. package/dist/components/le-side-panel-toggle2.js.map +1 -0
  104. package/dist/components/le-side-panel.d.ts +11 -0
  105. package/dist/components/le-side-panel.js +660 -0
  106. package/dist/components/le-side-panel.js.map +1 -0
  107. package/dist/components/le-stack.js +1 -1
  108. package/dist/components/le-tab-bar.js +1 -1
  109. package/dist/components/le-tab-panel.js +2 -2
  110. package/dist/components/le-tab2.js +1 -1
  111. package/dist/components/le-tabs.js +2 -2
  112. package/dist/components/le-tag2.js +1 -1
  113. package/dist/components/le-text.js +6 -6
  114. package/dist/components/le-text.js.map +1 -1
  115. package/dist/components/le-turntable.js +1 -1
  116. package/dist/docs.json +1397 -130
  117. package/dist/esm/{index-C-Chwj1b.js → index-DFTm5BqT.js} +7 -4
  118. package/dist/esm/index-DFTm5BqT.js.map +1 -0
  119. package/dist/esm/index.js +2 -2
  120. package/dist/esm/le-bar_16.entry.js +23 -23
  121. package/dist/esm/le-box.entry.js +5 -5
  122. package/dist/esm/le-box.entry.js.map +1 -1
  123. package/dist/esm/le-card.entry.js +5 -5
  124. package/dist/esm/le-card.entry.js.map +1 -1
  125. package/dist/esm/le-combobox.entry.js +2 -2
  126. package/dist/esm/le-header-placeholder.entry.js +2 -2
  127. package/dist/esm/le-kit.js +3 -3
  128. package/dist/esm/le-multiselect.entry.js +4 -4
  129. package/dist/esm/le-number-input.entry.js +3 -3
  130. package/dist/esm/le-round-progress.entry.js +2 -2
  131. package/dist/esm/le-segmented-control.entry.js +2 -2
  132. package/dist/esm/le-side-panel-toggle.entry.js +227 -0
  133. package/dist/esm/le-side-panel-toggle.entry.js.map +1 -0
  134. package/dist/esm/le-side-panel.entry.js +544 -0
  135. package/dist/esm/le-side-panel.entry.js.map +1 -0
  136. package/dist/esm/le-stack.entry.js +3 -3
  137. package/dist/esm/le-tab-bar.entry.js +2 -2
  138. package/dist/esm/le-tab-panel.entry.js +3 -3
  139. package/dist/esm/le-tab.entry.js +3 -3
  140. package/dist/esm/le-tabs.entry.js +4 -4
  141. package/dist/esm/le-tag.entry.js +2 -2
  142. package/dist/esm/le-text.entry.js +8 -8
  143. package/dist/esm/le-text.entry.js.map +1 -1
  144. package/dist/esm/le-turntable.entry.js +2 -2
  145. package/dist/esm/loader.js +3 -3
  146. package/dist/esm/{utils-B3alHV04.js → utils-DZYCZLrF.js} +3 -3
  147. package/dist/esm/{utils-B3alHV04.js.map → utils-DZYCZLrF.js.map} +1 -1
  148. package/dist/le-kit/dist/components/assets/custom-elements.json +1618 -602
  149. package/dist/le-kit/dist/components/assets/icons/side-panel.json +61 -0
  150. package/dist/le-kit/dist/themes/dark.css +1 -0
  151. package/dist/le-kit/dist/themes/default.css +1 -0
  152. package/dist/le-kit/dist/themes/gradient.css +1 -0
  153. package/dist/le-kit/dist/themes/minimal.css +1 -0
  154. package/dist/le-kit/dist/themes/warm.css +1 -0
  155. package/dist/le-kit/index.esm.js +1 -1
  156. package/dist/le-kit/le-kit.css +1 -1
  157. package/dist/le-kit/le-kit.esm.js +1 -1
  158. package/dist/le-kit/p-221d379a.entry.js +2 -0
  159. package/dist/le-kit/p-221d379a.entry.js.map +1 -0
  160. package/dist/le-kit/{p-d161946c.entry.js → p-33a24394.entry.js} +2 -2
  161. package/dist/le-kit/{p-3d22aeb2.entry.js → p-36f126bb.entry.js} +2 -2
  162. package/dist/le-kit/p-3f26be75.entry.js +2 -0
  163. package/dist/le-kit/{p-9880466c.entry.js.map → p-3f26be75.entry.js.map} +1 -1
  164. package/dist/le-kit/{p-3d873cdb.entry.js → p-3f31e31b.entry.js} +2 -2
  165. package/dist/le-kit/{p-ea71f22c.entry.js → p-46276e77.entry.js} +2 -2
  166. package/dist/le-kit/p-46276e77.entry.js.map +1 -0
  167. package/dist/le-kit/p-69dd089a.entry.js +2 -0
  168. package/dist/le-kit/{p-f8034500.entry.js.map → p-69dd089a.entry.js.map} +1 -1
  169. package/dist/le-kit/p-6da2d81a.entry.js +2 -0
  170. package/dist/le-kit/{p-06d2d79c.entry.js.map → p-6da2d81a.entry.js.map} +1 -1
  171. package/dist/le-kit/{p-2230ecd7.entry.js → p-7201ae65.entry.js} +2 -2
  172. package/dist/le-kit/p-7a60bfff.entry.js +2 -0
  173. package/dist/le-kit/p-98242429.entry.js +2 -0
  174. package/dist/le-kit/p-98242429.entry.js.map +1 -0
  175. package/dist/le-kit/{p-923828fe.entry.js → p-9863d6fb.entry.js} +2 -2
  176. package/dist/le-kit/{p-DFr88Szp.js → p-D8RYDS9p.js} +2 -2
  177. package/dist/le-kit/{p-DFr88Szp.js.map → p-D8RYDS9p.js.map} +1 -1
  178. package/dist/le-kit/{p-C-Chwj1b.js → p-DFTm5BqT.js} +3 -3
  179. package/dist/le-kit/p-DFTm5BqT.js.map +1 -0
  180. package/dist/le-kit/{p-be2a7276.entry.js → p-bf66757c.entry.js} +2 -2
  181. package/dist/le-kit/p-c4975e66.entry.js +2 -0
  182. package/dist/le-kit/{p-e1846fc2.entry.js.map → p-c4975e66.entry.js.map} +1 -1
  183. package/dist/le-kit/p-cd38c01b.entry.js +2 -0
  184. package/dist/le-kit/{p-33c2168a.entry.js.map → p-cd38c01b.entry.js.map} +1 -1
  185. package/dist/le-kit/{p-68d836a3.entry.js → p-d1eee582.entry.js} +2 -2
  186. package/dist/le-kit/{p-e6b2cf9a.entry.js → p-d449a88b.entry.js} +2 -2
  187. package/dist/le-kit/p-eb710c8e.entry.js +2 -0
  188. package/dist/le-kit/p-eb710c8e.entry.js.map +1 -0
  189. package/dist/le-kit/{p-5d72c894.entry.js → p-f78b1ee6.entry.js} +2 -2
  190. package/dist/le-kit/p-f78b1ee6.entry.js.map +1 -0
  191. package/dist/themes/dark.css +1 -0
  192. package/dist/themes/default.css +1 -0
  193. package/dist/themes/gradient.css +1 -0
  194. package/dist/themes/minimal.css +1 -0
  195. package/dist/themes/warm.css +1 -0
  196. package/dist/types/components/le-side-panel/le-side-panel.d.ts +100 -0
  197. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +48 -0
  198. package/dist/types/components.d.ts +336 -2
  199. package/package.json +1 -1
  200. package/dist/cjs/index-BPF04Jvb.js.map +0 -1
  201. package/dist/esm/index-C-Chwj1b.js.map +0 -1
  202. package/dist/le-kit/p-05ccab91.entry.js +0 -2
  203. package/dist/le-kit/p-05ccab91.entry.js.map +0 -1
  204. package/dist/le-kit/p-06d2d79c.entry.js +0 -2
  205. package/dist/le-kit/p-33c2168a.entry.js +0 -2
  206. package/dist/le-kit/p-4a45ff67.entry.js +0 -2
  207. package/dist/le-kit/p-5d72c894.entry.js.map +0 -1
  208. package/dist/le-kit/p-9880466c.entry.js +0 -2
  209. package/dist/le-kit/p-C-Chwj1b.js.map +0 -1
  210. package/dist/le-kit/p-e1846fc2.entry.js +0 -2
  211. package/dist/le-kit/p-ea71f22c.entry.js.map +0 -1
  212. package/dist/le-kit/p-f8034500.entry.js +0 -2
  213. /package/dist/collection/components/le-box/{le-box.default.css → le-box.css} +0 -0
  214. /package/dist/collection/components/le-card/{le-card.default.css → le-card.css} +0 -0
  215. /package/dist/collection/components/le-text/{le-text.default.css → le-text.css} +0 -0
  216. /package/dist/le-kit/{p-d161946c.entry.js.map → p-33a24394.entry.js.map} +0 -0
  217. /package/dist/le-kit/{p-3d22aeb2.entry.js.map → p-36f126bb.entry.js.map} +0 -0
  218. /package/dist/le-kit/{p-3d873cdb.entry.js.map → p-3f31e31b.entry.js.map} +0 -0
  219. /package/dist/le-kit/{p-2230ecd7.entry.js.map → p-7201ae65.entry.js.map} +0 -0
  220. /package/dist/le-kit/{p-4a45ff67.entry.js.map → p-7a60bfff.entry.js.map} +0 -0
  221. /package/dist/le-kit/{p-923828fe.entry.js.map → p-9863d6fb.entry.js.map} +0 -0
  222. /package/dist/le-kit/{p-be2a7276.entry.js.map → p-bf66757c.entry.js.map} +0 -0
  223. /package/dist/le-kit/{p-68d836a3.entry.js.map → p-d1eee582.entry.js.map} +0 -0
  224. /package/dist/le-kit/{p-e6b2cf9a.entry.js.map → p-d449a88b.entry.js.map} +0 -0
@@ -527,139 +527,6 @@
527
527
  }
528
528
  ]
529
529
  },
530
- {
531
- "kind": "javascript-module",
532
- "path": "src/components/le-card/le-card.tsx",
533
- "declarations": [
534
- {
535
- "kind": "class",
536
- "description": "A flexible card component with header, content, and footer slots.\n\nThe card uses le-slot wrappers for each slot area. In admin mode,\nle-slot shows placeholders for CMS editing. In default mode,\nle-slot acts as a transparent passthrough.",
537
- "name": "LeCard",
538
- "cssProperties": [
539
- {
540
- "description": "Card background color",
541
- "name": "--le-card-bg"
542
- },
543
- {
544
- "description": "Card border radius",
545
- "name": "--le-card-border-radius"
546
- },
547
- {
548
- "description": "Card box shadow",
549
- "name": "--le-card-shadow"
550
- },
551
- {
552
- "description": "Card content padding",
553
- "name": "--le-card-padding"
554
- }
555
- ],
556
- "cssParts": [
557
- {
558
- "description": "The main card container",
559
- "name": "card"
560
- },
561
- {
562
- "description": "The card header section",
563
- "name": "header"
564
- },
565
- {
566
- "description": "The card content section",
567
- "name": "content"
568
- },
569
- {
570
- "description": "The card footer section",
571
- "name": "footer"
572
- }
573
- ],
574
- "slots": [
575
- {
576
- "description": "Card header content (title, actions)",
577
- "name": "header"
578
- },
579
- {
580
- "description": "Default slot for main card content",
581
- "name": ""
582
- },
583
- {
584
- "description": "Card footer content (buttons, links)",
585
- "name": "footer"
586
- }
587
- ],
588
- "members": [
589
- {
590
- "kind": "field",
591
- "name": "el",
592
- "type": {
593
- "text": "HTMLElement"
594
- }
595
- },
596
- {
597
- "kind": "field",
598
- "name": "variant",
599
- "type": {
600
- "text": "'default' | 'outlined' | 'elevated'"
601
- },
602
- "default": "'default'",
603
- "description": "Card variant style"
604
- },
605
- {
606
- "kind": "field",
607
- "name": "interactive",
608
- "type": {
609
- "text": "boolean"
610
- },
611
- "default": "false",
612
- "description": "Whether the card is interactive (clickable)"
613
- },
614
- {
615
- "kind": "method",
616
- "name": "render"
617
- }
618
- ],
619
- "attributes": [
620
- {
621
- "name": "variant",
622
- "fieldName": "variant",
623
- "default": "'default'",
624
- "description": "Card variant style",
625
- "type": {
626
- "text": "'default' | 'outlined' | 'elevated'"
627
- }
628
- },
629
- {
630
- "name": "interactive",
631
- "fieldName": "interactive",
632
- "default": "false",
633
- "description": "Whether the card is interactive (clickable)",
634
- "type": {
635
- "text": "boolean"
636
- }
637
- }
638
- ],
639
- "tagName": "le-card",
640
- "events": [],
641
- "customElement": true
642
- }
643
- ],
644
- "exports": [
645
- {
646
- "kind": "js",
647
- "name": "LeCard",
648
- "declaration": {
649
- "name": "LeCard",
650
- "module": "src/components/le-card/le-card.tsx"
651
- }
652
- },
653
- {
654
- "kind": "custom-element-definition",
655
- "name": "le-card",
656
- "declaration": {
657
- "name": "LeCard",
658
- "module": "src/components/le-card/le-card.tsx"
659
- }
660
- }
661
- ]
662
- },
663
530
  {
664
531
  "kind": "javascript-module",
665
532
  "path": "src/components/le-box/le-box.tsx",
@@ -1105,60 +972,60 @@
1105
972
  },
1106
973
  {
1107
974
  "kind": "javascript-module",
1108
- "path": "src/components/le-button/le-button.tsx",
975
+ "path": "src/components/le-card/le-card.tsx",
1109
976
  "declarations": [
1110
977
  {
1111
978
  "kind": "class",
1112
- "description": "A flexible button component with multiple variants and states.",
1113
- "name": "LeButton",
979
+ "description": "A flexible card component with header, content, and footer slots.\n\nThe card uses le-slot wrappers for each slot area. In admin mode,\nle-slot shows placeholders for CMS editing. In default mode,\nle-slot acts as a transparent passthrough.",
980
+ "name": "LeCard",
1114
981
  "cssProperties": [
1115
982
  {
1116
- "description": "Button background color",
1117
- "name": "--le-button-bg"
1118
- },
1119
- {
1120
- "description": "Button text color",
1121
- "name": "--le-button-color"
983
+ "description": "Card background color",
984
+ "name": "--le-card-bg"
1122
985
  },
1123
986
  {
1124
- "description": "Button border radius",
1125
- "name": "--le-button-border-radius"
987
+ "description": "Card border radius",
988
+ "name": "--le-card-border-radius"
1126
989
  },
1127
990
  {
1128
- "description": "Button horizontal padding",
1129
- "name": "--le-button-padding-x"
991
+ "description": "Card box shadow",
992
+ "name": "--le-card-shadow"
1130
993
  },
1131
994
  {
1132
- "description": "Button vertical padding",
1133
- "name": "--le-button-padding-y"
995
+ "description": "Card content padding",
996
+ "name": "--le-card-padding"
1134
997
  }
1135
998
  ],
1136
999
  "cssParts": [
1137
1000
  {
1138
- "description": "The native button element",
1139
- "name": "button"
1001
+ "description": "The main card container",
1002
+ "name": "card"
1140
1003
  },
1141
1004
  {
1142
- "description": "The button content wrapper",
1143
- "name": "content"
1005
+ "description": "The card header section",
1006
+ "name": "header"
1144
1007
  },
1145
1008
  {
1146
- "description": "The start icon slot",
1147
- "name": "icon-start"
1009
+ "description": "The card content section",
1010
+ "name": "content"
1148
1011
  },
1149
1012
  {
1150
- "description": "The end icon slot",
1151
- "name": "icon-end"
1013
+ "description": "The card footer section",
1014
+ "name": "footer"
1152
1015
  }
1153
1016
  ],
1154
1017
  "slots": [
1155
1018
  {
1156
- "description": "Button text content",
1019
+ "description": "Card header content (title, actions)",
1020
+ "name": "header"
1021
+ },
1022
+ {
1023
+ "description": "Default slot for main card content",
1157
1024
  "name": ""
1158
1025
  },
1159
1026
  {
1160
- "description": "Icon for icon-only buttons",
1161
- "name": "icon-only"
1027
+ "description": "Card footer content (buttons, links)",
1028
+ "name": "footer"
1162
1029
  }
1163
1030
  ],
1164
1031
  "members": [
@@ -1169,76 +1036,209 @@
1169
1036
  "text": "HTMLElement"
1170
1037
  }
1171
1038
  },
1172
- {
1173
- "kind": "field",
1174
- "name": "mode",
1175
- "type": {
1176
- "text": "'default' | 'admin'"
1177
- },
1178
- "description": "Mode of the popover should be 'default' for internal use"
1179
- },
1180
1039
  {
1181
1040
  "kind": "field",
1182
1041
  "name": "variant",
1183
1042
  "type": {
1184
- "text": "'solid' | 'outlined' | 'clear' | 'system'"
1185
- },
1186
- "default": "'solid'",
1187
- "description": "Button variant style"
1188
- },
1189
- {
1190
- "kind": "field",
1191
- "name": "color",
1192
- "type": {
1193
- "text": "'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'"
1194
- },
1195
- "default": "'primary'",
1196
- "description": "Button color theme (uses theme semantic colors)"
1197
- },
1198
- {
1199
- "kind": "field",
1200
- "name": "size",
1201
- "type": {
1202
- "text": "'small' | 'medium' | 'large'"
1043
+ "text": "'default' | 'outlined' | 'elevated'"
1203
1044
  },
1204
- "default": "'medium'",
1205
- "description": "Button size"
1045
+ "default": "'default'",
1046
+ "description": "Card variant style"
1206
1047
  },
1207
1048
  {
1208
1049
  "kind": "field",
1209
- "name": "selected",
1050
+ "name": "interactive",
1210
1051
  "type": {
1211
1052
  "text": "boolean"
1212
1053
  },
1213
1054
  "default": "false",
1214
- "description": "Whether the button is in a selected/active state"
1055
+ "description": "Whether the card is interactive (clickable)"
1215
1056
  },
1216
1057
  {
1217
- "kind": "field",
1218
- "name": "fullWidth",
1219
- "type": {
1220
- "text": "boolean"
1221
- },
1222
- "default": "false",
1223
- "description": "Whether the button takes full width of its container"
1224
- },
1058
+ "kind": "method",
1059
+ "name": "render"
1060
+ }
1061
+ ],
1062
+ "attributes": [
1225
1063
  {
1226
- "kind": "field",
1227
- "name": "iconOnly",
1064
+ "name": "variant",
1065
+ "fieldName": "variant",
1066
+ "default": "'default'",
1067
+ "description": "Card variant style",
1228
1068
  "type": {
1229
- "text": "string | Node | undefined"
1230
- },
1231
- "description": "Icon only button image or emoji\nif this prop is set, the button will render only the icon slot"
1069
+ "text": "'default' | 'outlined' | 'elevated'"
1070
+ }
1232
1071
  },
1233
1072
  {
1234
- "kind": "field",
1235
- "name": "iconStart",
1073
+ "name": "interactive",
1074
+ "fieldName": "interactive",
1075
+ "default": "false",
1076
+ "description": "Whether the card is interactive (clickable)",
1236
1077
  "type": {
1237
- "text": "string | Node | undefined"
1238
- },
1239
- "description": "Start icon image or emoji"
1240
- },
1241
- {
1078
+ "text": "boolean"
1079
+ }
1080
+ }
1081
+ ],
1082
+ "tagName": "le-card",
1083
+ "events": [],
1084
+ "customElement": true
1085
+ }
1086
+ ],
1087
+ "exports": [
1088
+ {
1089
+ "kind": "js",
1090
+ "name": "LeCard",
1091
+ "declaration": {
1092
+ "name": "LeCard",
1093
+ "module": "src/components/le-card/le-card.tsx"
1094
+ }
1095
+ },
1096
+ {
1097
+ "kind": "custom-element-definition",
1098
+ "name": "le-card",
1099
+ "declaration": {
1100
+ "name": "LeCard",
1101
+ "module": "src/components/le-card/le-card.tsx"
1102
+ }
1103
+ }
1104
+ ]
1105
+ },
1106
+ {
1107
+ "kind": "javascript-module",
1108
+ "path": "src/components/le-button/le-button.tsx",
1109
+ "declarations": [
1110
+ {
1111
+ "kind": "class",
1112
+ "description": "A flexible button component with multiple variants and states.",
1113
+ "name": "LeButton",
1114
+ "cssProperties": [
1115
+ {
1116
+ "description": "Button background color",
1117
+ "name": "--le-button-bg"
1118
+ },
1119
+ {
1120
+ "description": "Button text color",
1121
+ "name": "--le-button-color"
1122
+ },
1123
+ {
1124
+ "description": "Button border radius",
1125
+ "name": "--le-button-border-radius"
1126
+ },
1127
+ {
1128
+ "description": "Button horizontal padding",
1129
+ "name": "--le-button-padding-x"
1130
+ },
1131
+ {
1132
+ "description": "Button vertical padding",
1133
+ "name": "--le-button-padding-y"
1134
+ }
1135
+ ],
1136
+ "cssParts": [
1137
+ {
1138
+ "description": "The native button element",
1139
+ "name": "button"
1140
+ },
1141
+ {
1142
+ "description": "The button content wrapper",
1143
+ "name": "content"
1144
+ },
1145
+ {
1146
+ "description": "The start icon slot",
1147
+ "name": "icon-start"
1148
+ },
1149
+ {
1150
+ "description": "The end icon slot",
1151
+ "name": "icon-end"
1152
+ }
1153
+ ],
1154
+ "slots": [
1155
+ {
1156
+ "description": "Button text content",
1157
+ "name": ""
1158
+ },
1159
+ {
1160
+ "description": "Icon for icon-only buttons",
1161
+ "name": "icon-only"
1162
+ }
1163
+ ],
1164
+ "members": [
1165
+ {
1166
+ "kind": "field",
1167
+ "name": "el",
1168
+ "type": {
1169
+ "text": "HTMLElement"
1170
+ }
1171
+ },
1172
+ {
1173
+ "kind": "field",
1174
+ "name": "mode",
1175
+ "type": {
1176
+ "text": "'default' | 'admin'"
1177
+ },
1178
+ "description": "Mode of the popover should be 'default' for internal use"
1179
+ },
1180
+ {
1181
+ "kind": "field",
1182
+ "name": "variant",
1183
+ "type": {
1184
+ "text": "'solid' | 'outlined' | 'clear' | 'system'"
1185
+ },
1186
+ "default": "'solid'",
1187
+ "description": "Button variant style"
1188
+ },
1189
+ {
1190
+ "kind": "field",
1191
+ "name": "color",
1192
+ "type": {
1193
+ "text": "'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'"
1194
+ },
1195
+ "default": "'primary'",
1196
+ "description": "Button color theme (uses theme semantic colors)"
1197
+ },
1198
+ {
1199
+ "kind": "field",
1200
+ "name": "size",
1201
+ "type": {
1202
+ "text": "'small' | 'medium' | 'large'"
1203
+ },
1204
+ "default": "'medium'",
1205
+ "description": "Button size"
1206
+ },
1207
+ {
1208
+ "kind": "field",
1209
+ "name": "selected",
1210
+ "type": {
1211
+ "text": "boolean"
1212
+ },
1213
+ "default": "false",
1214
+ "description": "Whether the button is in a selected/active state"
1215
+ },
1216
+ {
1217
+ "kind": "field",
1218
+ "name": "fullWidth",
1219
+ "type": {
1220
+ "text": "boolean"
1221
+ },
1222
+ "default": "false",
1223
+ "description": "Whether the button takes full width of its container"
1224
+ },
1225
+ {
1226
+ "kind": "field",
1227
+ "name": "iconOnly",
1228
+ "type": {
1229
+ "text": "string | Node | undefined"
1230
+ },
1231
+ "description": "Icon only button image or emoji\nif this prop is set, the button will render only the icon slot"
1232
+ },
1233
+ {
1234
+ "kind": "field",
1235
+ "name": "iconStart",
1236
+ "type": {
1237
+ "text": "string | Node | undefined"
1238
+ },
1239
+ "description": "Start icon image or emoji"
1240
+ },
1241
+ {
1242
1242
  "kind": "field",
1243
1243
  "name": "iconEnd",
1244
1244
  "type": {
@@ -7313,18 +7313,12 @@
7313
7313
  },
7314
7314
  {
7315
7315
  "kind": "javascript-module",
7316
- "path": "src/components/le-slot/le-slot.tsx",
7316
+ "path": "src/components/le-side-panel/le-side-panel.tsx",
7317
7317
  "declarations": [
7318
7318
  {
7319
7319
  "kind": "class",
7320
- "description": "Slot placeholder component for admin/CMS mode.\n\nThis component renders a visual placeholder for slots when in admin mode,\nallowing CMS systems to show available drop zones for content or inline editing.\n\nIn non-admin mode, this component renders nothing and acts as a passthrough.",
7321
- "name": "LeSlot",
7322
- "slots": [
7323
- {
7324
- "description": "Default slot for placeholder content or drop zone UI",
7325
- "name": ""
7326
- }
7327
- ],
7320
+ "description": "",
7321
+ "name": "LeSidePanel",
7328
7322
  "members": [
7329
7323
  {
7330
7324
  "kind": "field",
@@ -7335,163 +7329,1185 @@
7335
7329
  },
7336
7330
  {
7337
7331
  "kind": "field",
7338
- "name": "type",
7339
- "type": {
7340
- "text": "'slot' | 'text' | 'textarea'"
7341
- },
7342
- "default": "'slot'",
7343
- "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area"
7344
- },
7345
- {
7346
- "kind": "field",
7347
- "name": "name",
7332
+ "name": "panelId",
7348
7333
  "type": {
7349
- "text": "string"
7334
+ "text": "string | undefined"
7350
7335
  },
7351
- "default": "''",
7352
- "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component."
7336
+ "description": "Optional id used to match toggle requests.\nIf set, the panel only responds to toggle events with the same `panelId`."
7353
7337
  },
7354
7338
  {
7355
7339
  "kind": "field",
7356
- "name": "label",
7340
+ "name": "side",
7357
7341
  "type": {
7358
- "text": "string | undefined"
7342
+ "text": "LeSidePanelSide"
7359
7343
  },
7360
- "description": "Label to display in admin mode.\nIf not provided, the slot name will be used."
7344
+ "default": "'start'",
7345
+ "description": "Which side the panel is attached to."
7361
7346
  },
7362
7347
  {
7363
7348
  "kind": "field",
7364
- "name": "description",
7349
+ "name": "collapseAt",
7365
7350
  "type": {
7366
7351
  "text": "string | undefined"
7367
7352
  },
7368
- "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors."
7353
+ "description": "Width breakpoint (in px or a CSS var like `--le-breakpoint-md`) below which the panel enters \"narrow\" mode."
7369
7354
  },
7370
7355
  {
7371
7356
  "kind": "field",
7372
- "name": "allowedComponents",
7357
+ "name": "narrowBehavior",
7373
7358
  "type": {
7374
- "text": "string | undefined"
7359
+ "text": "LeSidePanelNarrowBehavior"
7375
7360
  },
7376
- "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components."
7361
+ "default": "'overlay'",
7362
+ "description": "Behavior when in narrow mode."
7377
7363
  },
7378
7364
  {
7379
7365
  "kind": "field",
7380
- "name": "multiple",
7366
+ "name": "open",
7381
7367
  "type": {
7382
7368
  "text": "boolean"
7383
7369
  },
7384
- "default": "true",
7385
- "description": "Whether multiple components can be dropped in this slot."
7370
+ "default": "false",
7371
+ "description": "Panel open state for narrow mode.\n- overlay: controls modal drawer visibility\n- push: controls whether panel is shown (non-modal)"
7386
7372
  },
7387
7373
  {
7388
7374
  "kind": "field",
7389
- "name": "required",
7375
+ "name": "collapsed",
7390
7376
  "type": {
7391
7377
  "text": "boolean"
7392
7378
  },
7393
7379
  "default": "false",
7394
- "description": "Whether this slot is required to have content."
7380
+ "description": "Panel collapsed state for wide mode (fully hidden)."
7395
7381
  },
7396
7382
  {
7397
7383
  "kind": "field",
7398
- "name": "placeholder",
7384
+ "name": "panelWidth",
7399
7385
  "type": {
7400
- "text": "string | undefined"
7386
+ "text": "number"
7401
7387
  },
7402
- "description": "Placeholder text for text/textarea inputs in admin mode."
7388
+ "default": "280",
7389
+ "description": "Default panel width in pixels."
7403
7390
  },
7404
7391
  {
7405
7392
  "kind": "field",
7406
- "name": "tag",
7393
+ "name": "minPanelWidth",
7407
7394
  "type": {
7408
- "text": "string | undefined"
7395
+ "text": "number"
7409
7396
  },
7410
- "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements."
7397
+ "default": "220",
7398
+ "description": "Minimum allowed width when resizable."
7411
7399
  },
7412
7400
  {
7413
7401
  "kind": "field",
7414
- "name": "slotStyle",
7402
+ "name": "maxPanelWidth",
7415
7403
  "type": {
7416
- "text": "string | undefined"
7404
+ "text": "number"
7417
7405
  },
7418
- "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\"."
7406
+ "default": "420",
7407
+ "description": "Maximum allowed width when resizable."
7419
7408
  },
7420
7409
  {
7421
7410
  "kind": "field",
7422
- "name": "adminMode",
7411
+ "name": "resizable",
7423
7412
  "type": {
7424
7413
  "text": "boolean"
7425
7414
  },
7426
- "privacy": "private",
7427
7415
  "default": "false",
7428
- "description": "Internal state to track admin mode"
7416
+ "description": "Allows users to resize the panel by dragging its edge."
7429
7417
  },
7430
7418
  {
7431
7419
  "kind": "field",
7432
- "name": "textValue",
7420
+ "name": "persistKey",
7433
7421
  "type": {
7434
- "text": "string"
7422
+ "text": "string | undefined"
7435
7423
  },
7436
- "privacy": "private",
7437
- "default": "''",
7438
- "description": "Internal state for text input value (synced from slot content)"
7424
+ "description": "When set, panel width + collapsed state are persisted in localStorage."
7439
7425
  },
7440
7426
  {
7441
7427
  "kind": "field",
7442
- "name": "isValidHtml",
7428
+ "name": "showCloseButton",
7443
7429
  "type": {
7444
7430
  "text": "boolean"
7445
7431
  },
7446
- "privacy": "private",
7447
7432
  "default": "true",
7448
- "description": "Whether the current textValue contains valid HTML"
7433
+ "description": "Show a close button inside the panel (primarily used in narrow overlay mode)."
7449
7434
  },
7450
7435
  {
7451
7436
  "kind": "field",
7452
- "name": "availableComponents",
7437
+ "name": "autoShowOnWide",
7453
7438
  "type": {
7454
- "text": "ComponentInfo[]"
7439
+ "text": "boolean"
7455
7440
  },
7456
- "privacy": "private",
7457
- "default": "[]",
7458
- "description": "Available components loaded from Custom Elements Manifest"
7441
+ "default": "true",
7442
+ "description": "When crossing to wide mode, automatically show the panel (collapsed=false)."
7459
7443
  },
7460
7444
  {
7461
7445
  "kind": "field",
7462
- "name": "pickerOpen",
7446
+ "name": "autoHideOnNarrow",
7463
7447
  "type": {
7464
7448
  "text": "boolean"
7465
7449
  },
7466
- "privacy": "private",
7467
- "default": "false",
7468
- "description": "Whether the component picker popover is open"
7450
+ "default": "true",
7451
+ "description": "When crossing to narrow mode, automatically hide the panel (open=false)."
7469
7452
  },
7470
7453
  {
7471
7454
  "kind": "field",
7472
- "name": "slotRef",
7455
+ "name": "panelLabel",
7473
7456
  "type": {
7474
- "text": "HTMLSlotElement | undefined"
7457
+ "text": "string"
7475
7458
  },
7476
- "privacy": "private",
7477
- "description": "Reference to the slot element to access assignedNodes"
7459
+ "default": "'Navigation'",
7460
+ "description": "Accessible label for the panel navigation region."
7478
7461
  },
7479
7462
  {
7480
7463
  "kind": "field",
7481
- "name": "slottedElement",
7464
+ "name": "isNarrow",
7482
7465
  "type": {
7483
- "text": "Element | undefined"
7466
+ "text": "boolean"
7484
7467
  },
7485
7468
  "privacy": "private",
7486
- "description": "The original slotted element (e.g., <h3 slot=\"header\">)"
7469
+ "default": "false"
7487
7470
  },
7488
7471
  {
7489
7472
  "kind": "field",
7490
- "name": "disconnectModeObserver",
7473
+ "name": "responsiveReady",
7491
7474
  "type": {
7492
- "text": "() => void | undefined"
7475
+ "text": "boolean"
7493
7476
  },
7494
- "privacy": "private"
7477
+ "privacy": "private",
7478
+ "default": "false"
7479
+ },
7480
+ {
7481
+ "kind": "field",
7482
+ "name": "overlayMounted",
7483
+ "type": {
7484
+ "text": "boolean"
7485
+ },
7486
+ "privacy": "private",
7487
+ "default": "false"
7488
+ },
7489
+ {
7490
+ "kind": "field",
7491
+ "name": "overlayVisible",
7492
+ "type": {
7493
+ "text": "boolean"
7494
+ },
7495
+ "privacy": "private",
7496
+ "default": "false"
7497
+ },
7498
+ {
7499
+ "kind": "field",
7500
+ "name": "currentWidthPx",
7501
+ "type": {
7502
+ "text": "number"
7503
+ },
7504
+ "privacy": "private"
7505
+ },
7506
+ {
7507
+ "kind": "field",
7508
+ "name": "resizing",
7509
+ "type": {
7510
+ "text": "boolean"
7511
+ },
7512
+ "privacy": "private",
7513
+ "default": "false"
7514
+ },
7515
+ {
7516
+ "kind": "field",
7517
+ "name": "resizeObserver",
7518
+ "type": {
7519
+ "text": "ResizeObserver | undefined"
7520
+ },
7521
+ "privacy": "private"
7522
+ },
7523
+ {
7524
+ "kind": "field",
7525
+ "name": "panelEl",
7526
+ "type": {
7527
+ "text": "HTMLElement | undefined"
7528
+ },
7529
+ "privacy": "private"
7530
+ },
7531
+ {
7532
+ "kind": "field",
7533
+ "name": "overlayWrapEl",
7534
+ "type": {
7535
+ "text": "HTMLElement | undefined"
7536
+ },
7537
+ "privacy": "private"
7538
+ },
7539
+ {
7540
+ "kind": "field",
7541
+ "name": "focusedBeforeOpen",
7542
+ "type": {
7543
+ "text": "HTMLElement | null | undefined"
7544
+ },
7545
+ "privacy": "private"
7546
+ },
7547
+ {
7548
+ "kind": "field",
7549
+ "name": "dragPointerId",
7550
+ "type": {
7551
+ "text": "number | undefined"
7552
+ },
7553
+ "privacy": "private"
7554
+ },
7555
+ {
7556
+ "kind": "field",
7557
+ "name": "dragStartX",
7558
+ "type": {
7559
+ "text": "number | undefined"
7560
+ },
7561
+ "privacy": "private"
7562
+ },
7563
+ {
7564
+ "kind": "field",
7565
+ "name": "dragStartWidth",
7566
+ "type": {
7567
+ "text": "number | undefined"
7568
+ },
7569
+ "privacy": "private"
7570
+ },
7571
+ {
7572
+ "kind": "method",
7573
+ "name": "isModalOverlayActive",
7574
+ "privacy": "private",
7575
+ "return": {
7576
+ "type": {
7577
+ "text": "boolean"
7578
+ }
7579
+ }
7580
+ },
7581
+ {
7582
+ "kind": "method",
7583
+ "name": "syncOverlayToState",
7584
+ "privacy": "private"
7585
+ },
7586
+ {
7587
+ "kind": "method",
7588
+ "name": "onPanelWidthChanged",
7589
+ "privacy": "protected"
7590
+ },
7591
+ {
7592
+ "kind": "method",
7593
+ "name": "onCollapsedChanged",
7594
+ "privacy": "protected"
7595
+ },
7596
+ {
7597
+ "kind": "method",
7598
+ "name": "onOpenChanged",
7599
+ "privacy": "protected",
7600
+ "parameters": [
7601
+ {
7602
+ "name": "newValue",
7603
+ "type": {
7604
+ "text": "boolean"
7605
+ }
7606
+ }
7607
+ ]
7608
+ },
7609
+ {
7610
+ "kind": "method",
7611
+ "name": "onResponsivePropChanged",
7612
+ "privacy": "protected"
7613
+ },
7614
+ {
7615
+ "kind": "method",
7616
+ "name": "onDocumentKeyDown",
7617
+ "privacy": "protected",
7618
+ "parameters": [
7619
+ {
7620
+ "name": "ev",
7621
+ "type": {
7622
+ "text": "KeyboardEvent"
7623
+ }
7624
+ }
7625
+ ]
7626
+ },
7627
+ {
7628
+ "kind": "method",
7629
+ "name": "onToggleRequest",
7630
+ "privacy": "protected",
7631
+ "parameters": [
7632
+ {
7633
+ "name": "ev",
7634
+ "type": {
7635
+ "text": "CustomEvent<LeSidePanelRequestToggleDetail>"
7636
+ }
7637
+ }
7638
+ ]
7639
+ },
7640
+ {
7641
+ "kind": "method",
7642
+ "name": "applyActionToOpen",
7643
+ "privacy": "private",
7644
+ "parameters": [
7645
+ {
7646
+ "name": "action",
7647
+ "type": {
7648
+ "text": "LeSidePanelToggleAction"
7649
+ }
7650
+ }
7651
+ ]
7652
+ },
7653
+ {
7654
+ "kind": "method",
7655
+ "name": "applyActionToCollapsed",
7656
+ "privacy": "private",
7657
+ "parameters": [
7658
+ {
7659
+ "name": "action",
7660
+ "type": {
7661
+ "text": "LeSidePanelToggleAction"
7662
+ }
7663
+ }
7664
+ ]
7665
+ },
7666
+ {
7667
+ "kind": "method",
7668
+ "name": "recomputeNarrow",
7669
+ "privacy": "private"
7670
+ },
7671
+ {
7672
+ "kind": "method",
7673
+ "name": "restorePersistedState",
7674
+ "privacy": "private"
7675
+ },
7676
+ {
7677
+ "kind": "method",
7678
+ "name": "persistState",
7679
+ "privacy": "private"
7680
+ },
7681
+ {
7682
+ "kind": "method",
7683
+ "name": "focusFirstInsidePanel",
7684
+ "privacy": "private"
7685
+ },
7686
+ {
7687
+ "kind": "method",
7688
+ "name": "getFocusableElements",
7689
+ "privacy": "private",
7690
+ "return": {
7691
+ "type": {
7692
+ "text": "HTMLElement[]"
7693
+ }
7694
+ },
7695
+ "parameters": [
7696
+ {
7697
+ "name": "root",
7698
+ "type": {
7699
+ "text": "HTMLElement"
7700
+ }
7701
+ }
7702
+ ]
7703
+ },
7704
+ {
7705
+ "kind": "method",
7706
+ "name": "restoreFocusAfterClose",
7707
+ "privacy": "private"
7708
+ },
7709
+ {
7710
+ "kind": "field",
7711
+ "name": "onOverlayTransitionEnd",
7712
+ "privacy": "private"
7713
+ },
7714
+ {
7715
+ "kind": "field",
7716
+ "name": "onOverlayPointerDown",
7717
+ "privacy": "private"
7718
+ },
7719
+ {
7720
+ "kind": "field",
7721
+ "name": "startResizeDrag",
7722
+ "privacy": "private"
7723
+ },
7724
+ {
7725
+ "kind": "field",
7726
+ "name": "onResizeDragMove",
7727
+ "privacy": "private"
7728
+ },
7729
+ {
7730
+ "kind": "field",
7731
+ "name": "onResizeDragEnd",
7732
+ "privacy": "private"
7733
+ },
7734
+ {
7735
+ "kind": "method",
7736
+ "name": "teardownDragListeners",
7737
+ "privacy": "private"
7738
+ },
7739
+ {
7740
+ "kind": "method",
7741
+ "name": "renderPanelInner",
7742
+ "privacy": "private",
7743
+ "parameters": [
7744
+ {
7745
+ "name": "opts",
7746
+ "optional": true,
7747
+ "type": {
7748
+ "text": "{ renderPanelSlot?: boolean }"
7749
+ }
7750
+ }
7751
+ ]
7752
+ },
7753
+ {
7754
+ "kind": "method",
7755
+ "name": "render"
7756
+ }
7757
+ ],
7758
+ "attributes": [
7759
+ {
7760
+ "name": "panel-id",
7761
+ "fieldName": "panelId",
7762
+ "description": "Optional id used to match toggle requests.\nIf set, the panel only responds to toggle events with the same `panelId`.",
7763
+ "type": {
7764
+ "text": "string"
7765
+ }
7766
+ },
7767
+ {
7768
+ "name": "side",
7769
+ "fieldName": "side",
7770
+ "default": "'start'",
7771
+ "description": "Which side the panel is attached to.",
7772
+ "type": {
7773
+ "text": "LeSidePanelSide"
7774
+ }
7775
+ },
7776
+ {
7777
+ "name": "collapse-at",
7778
+ "fieldName": "collapseAt",
7779
+ "description": "Width breakpoint (in px or a CSS var like `--le-breakpoint-md`) below which the panel enters \"narrow\" mode.",
7780
+ "type": {
7781
+ "text": "string"
7782
+ }
7783
+ },
7784
+ {
7785
+ "name": "narrow-behavior",
7786
+ "fieldName": "narrowBehavior",
7787
+ "default": "'overlay'",
7788
+ "description": "Behavior when in narrow mode.",
7789
+ "type": {
7790
+ "text": "LeSidePanelNarrowBehavior"
7791
+ }
7792
+ },
7793
+ {
7794
+ "name": "open",
7795
+ "fieldName": "open",
7796
+ "default": "false",
7797
+ "description": "Panel open state for narrow mode.\n- overlay: controls modal drawer visibility\n- push: controls whether panel is shown (non-modal)",
7798
+ "type": {
7799
+ "text": "boolean"
7800
+ }
7801
+ },
7802
+ {
7803
+ "name": "collapsed",
7804
+ "fieldName": "collapsed",
7805
+ "default": "false",
7806
+ "description": "Panel collapsed state for wide mode (fully hidden).",
7807
+ "type": {
7808
+ "text": "boolean"
7809
+ }
7810
+ },
7811
+ {
7812
+ "name": "panel-width",
7813
+ "fieldName": "panelWidth",
7814
+ "default": "280",
7815
+ "description": "Default panel width in pixels.",
7816
+ "type": {
7817
+ "text": "number"
7818
+ }
7819
+ },
7820
+ {
7821
+ "name": "min-panel-width",
7822
+ "fieldName": "minPanelWidth",
7823
+ "default": "220",
7824
+ "description": "Minimum allowed width when resizable.",
7825
+ "type": {
7826
+ "text": "number"
7827
+ }
7828
+ },
7829
+ {
7830
+ "name": "max-panel-width",
7831
+ "fieldName": "maxPanelWidth",
7832
+ "default": "420",
7833
+ "description": "Maximum allowed width when resizable.",
7834
+ "type": {
7835
+ "text": "number"
7836
+ }
7837
+ },
7838
+ {
7839
+ "name": "resizable",
7840
+ "fieldName": "resizable",
7841
+ "default": "false",
7842
+ "description": "Allows users to resize the panel by dragging its edge.",
7843
+ "type": {
7844
+ "text": "boolean"
7845
+ }
7846
+ },
7847
+ {
7848
+ "name": "persist-key",
7849
+ "fieldName": "persistKey",
7850
+ "description": "When set, panel width + collapsed state are persisted in localStorage.",
7851
+ "type": {
7852
+ "text": "string"
7853
+ }
7854
+ },
7855
+ {
7856
+ "name": "show-close-button",
7857
+ "fieldName": "showCloseButton",
7858
+ "default": "true",
7859
+ "description": "Show a close button inside the panel (primarily used in narrow overlay mode).",
7860
+ "type": {
7861
+ "text": "boolean"
7862
+ }
7863
+ },
7864
+ {
7865
+ "name": "auto-show-on-wide",
7866
+ "fieldName": "autoShowOnWide",
7867
+ "default": "true",
7868
+ "description": "When crossing to wide mode, automatically show the panel (collapsed=false).",
7869
+ "type": {
7870
+ "text": "boolean"
7871
+ }
7872
+ },
7873
+ {
7874
+ "name": "auto-hide-on-narrow",
7875
+ "fieldName": "autoHideOnNarrow",
7876
+ "default": "true",
7877
+ "description": "When crossing to narrow mode, automatically hide the panel (open=false).",
7878
+ "type": {
7879
+ "text": "boolean"
7880
+ }
7881
+ },
7882
+ {
7883
+ "name": "panel-label",
7884
+ "fieldName": "panelLabel",
7885
+ "default": "'Navigation'",
7886
+ "description": "Accessible label for the panel navigation region.",
7887
+ "type": {
7888
+ "text": "string"
7889
+ }
7890
+ }
7891
+ ],
7892
+ "tagName": "le-side-panel",
7893
+ "events": [
7894
+ {
7895
+ "name": "leSidePanelOpenChange",
7896
+ "type": {
7897
+ "text": "EventEmitter<{ open: boolean; panelId?: string }>"
7898
+ }
7899
+ },
7900
+ {
7901
+ "name": "leSidePanelCollapsedChange",
7902
+ "type": {
7903
+ "text": "EventEmitter<{ collapsed: boolean; panelId?: string }>"
7904
+ }
7905
+ },
7906
+ {
7907
+ "name": "leSidePanelWidthChange",
7908
+ "type": {
7909
+ "text": "EventEmitter<{ width: number; panelId?: string }>"
7910
+ }
7911
+ }
7912
+ ],
7913
+ "customElement": true
7914
+ }
7915
+ ],
7916
+ "exports": [
7917
+ {
7918
+ "kind": "js",
7919
+ "name": "LeSidePanel",
7920
+ "declaration": {
7921
+ "name": "LeSidePanel",
7922
+ "module": "src/components/le-side-panel/le-side-panel.tsx"
7923
+ }
7924
+ },
7925
+ {
7926
+ "kind": "custom-element-definition",
7927
+ "name": "le-side-panel",
7928
+ "declaration": {
7929
+ "name": "LeSidePanel",
7930
+ "module": "src/components/le-side-panel/le-side-panel.tsx"
7931
+ }
7932
+ }
7933
+ ]
7934
+ },
7935
+ {
7936
+ "kind": "javascript-module",
7937
+ "path": "src/components/le-side-panel-toggle/le-side-panel-toggle.tsx",
7938
+ "declarations": [
7939
+ {
7940
+ "kind": "class",
7941
+ "description": "",
7942
+ "name": "LeSidePanelToggle",
7943
+ "members": [
7944
+ {
7945
+ "kind": "field",
7946
+ "name": "el",
7947
+ "type": {
7948
+ "text": "HTMLElement"
7949
+ }
7950
+ },
7951
+ {
7952
+ "kind": "field",
7953
+ "name": "panelId",
7954
+ "type": {
7955
+ "text": "string | undefined"
7956
+ },
7957
+ "description": "Optional id used to target a specific panel."
7958
+ },
7959
+ {
7960
+ "kind": "field",
7961
+ "name": "action",
7962
+ "type": {
7963
+ "text": "LeSidePanelToggleAction"
7964
+ },
7965
+ "default": "'toggle'",
7966
+ "description": "Action to emit. Default toggles the panel."
7967
+ },
7968
+ {
7969
+ "kind": "field",
7970
+ "name": "shortcut",
7971
+ "type": {
7972
+ "text": "string | undefined"
7973
+ },
7974
+ "description": "Optional keyboard shortcut like `Mod+B` or `Alt+N`."
7975
+ },
7976
+ {
7977
+ "kind": "field",
7978
+ "name": "disabled",
7979
+ "type": {
7980
+ "text": "boolean"
7981
+ },
7982
+ "default": "false",
7983
+ "description": "Disables the toggle."
7984
+ },
7985
+ {
7986
+ "kind": "field",
7987
+ "name": "mode",
7988
+ "type": {
7989
+ "text": "'default' | 'admin'"
7990
+ }
7991
+ },
7992
+ {
7993
+ "kind": "field",
7994
+ "name": "variant",
7995
+ "type": {
7996
+ "text": "'solid' | 'outlined' | 'clear' | 'system'"
7997
+ },
7998
+ "default": "'solid'"
7999
+ },
8000
+ {
8001
+ "kind": "field",
8002
+ "name": "color",
8003
+ "type": {
8004
+ "text": "'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'"
8005
+ },
8006
+ "default": "'primary'"
8007
+ },
8008
+ {
8009
+ "kind": "field",
8010
+ "name": "size",
8011
+ "type": {
8012
+ "text": "'small' | 'medium' | 'large'"
8013
+ },
8014
+ "default": "'medium'"
8015
+ },
8016
+ {
8017
+ "kind": "field",
8018
+ "name": "selected",
8019
+ "type": {
8020
+ "text": "boolean"
8021
+ },
8022
+ "default": "false"
8023
+ },
8024
+ {
8025
+ "kind": "field",
8026
+ "name": "fullWidth",
8027
+ "type": {
8028
+ "text": "boolean"
8029
+ },
8030
+ "default": "false"
8031
+ },
8032
+ {
8033
+ "kind": "field",
8034
+ "name": "iconOnly",
8035
+ "type": {
8036
+ "text": "string | Node | undefined"
8037
+ }
8038
+ },
8039
+ {
8040
+ "kind": "field",
8041
+ "name": "iconStart",
8042
+ "type": {
8043
+ "text": "string | Node | undefined"
8044
+ }
8045
+ },
8046
+ {
8047
+ "kind": "field",
8048
+ "name": "iconEnd",
8049
+ "type": {
8050
+ "text": "string | Node | undefined"
8051
+ }
8052
+ },
8053
+ {
8054
+ "kind": "field",
8055
+ "name": "type",
8056
+ "type": {
8057
+ "text": "'button' | 'submit' | 'reset'"
8058
+ },
8059
+ "default": "'button'"
8060
+ },
8061
+ {
8062
+ "kind": "field",
8063
+ "name": "href",
8064
+ "type": {
8065
+ "text": "string | undefined"
8066
+ }
8067
+ },
8068
+ {
8069
+ "kind": "field",
8070
+ "name": "target",
8071
+ "type": {
8072
+ "text": "string | undefined"
8073
+ }
8074
+ },
8075
+ {
8076
+ "kind": "field",
8077
+ "name": "align",
8078
+ "type": {
8079
+ "text": "'start' | 'center' | 'space-between' | 'end'"
8080
+ },
8081
+ "default": "'center'"
8082
+ },
8083
+ {
8084
+ "kind": "field",
8085
+ "name": "shortcutSpec",
8086
+ "type": {
8087
+ "text": "ShortcutSpec | undefined"
8088
+ },
8089
+ "privacy": "private"
8090
+ },
8091
+ {
8092
+ "kind": "field",
8093
+ "name": "expanded",
8094
+ "type": {
8095
+ "text": "boolean | undefined"
8096
+ },
8097
+ "privacy": "private"
8098
+ },
8099
+ {
8100
+ "kind": "field",
8101
+ "name": "buttonEl",
8102
+ "type": {
8103
+ "text": "HTMLElement | undefined"
8104
+ },
8105
+ "privacy": "private"
8106
+ },
8107
+ {
8108
+ "kind": "field",
8109
+ "name": "forwardedNodes",
8110
+ "type": {
8111
+ "text": "ChildNode[] | undefined"
8112
+ },
8113
+ "privacy": "private"
8114
+ },
8115
+ {
8116
+ "kind": "method",
8117
+ "name": "onShortcutChanged",
8118
+ "privacy": "protected"
8119
+ },
8120
+ {
8121
+ "kind": "method",
8122
+ "name": "syncShortcutListener",
8123
+ "privacy": "private"
8124
+ },
8125
+ {
8126
+ "kind": "method",
8127
+ "name": "getResolvedPanelId",
8128
+ "privacy": "private",
8129
+ "return": {
8130
+ "type": {
8131
+ "text": "string | undefined"
8132
+ }
8133
+ }
8134
+ },
8135
+ {
8136
+ "kind": "method",
8137
+ "name": "emitRequest",
8138
+ "privacy": "private"
8139
+ },
8140
+ {
8141
+ "kind": "field",
8142
+ "name": "onDocumentKeyDown",
8143
+ "privacy": "private"
8144
+ },
8145
+ {
8146
+ "kind": "field",
8147
+ "name": "onPanelStateChange",
8148
+ "privacy": "private"
8149
+ },
8150
+ {
8151
+ "kind": "method",
8152
+ "name": "syncForwardedNodesIntoButton",
8153
+ "privacy": "private"
8154
+ },
8155
+ {
8156
+ "kind": "method",
8157
+ "name": "syncAriaExpanded",
8158
+ "privacy": "private"
8159
+ },
8160
+ {
8161
+ "kind": "method",
8162
+ "name": "render"
8163
+ }
8164
+ ],
8165
+ "attributes": [
8166
+ {
8167
+ "name": "panel-id",
8168
+ "fieldName": "panelId",
8169
+ "description": "Optional id used to target a specific panel.",
8170
+ "type": {
8171
+ "text": "string"
8172
+ }
8173
+ },
8174
+ {
8175
+ "name": "action",
8176
+ "fieldName": "action",
8177
+ "default": "'toggle'",
8178
+ "description": "Action to emit. Default toggles the panel.",
8179
+ "type": {
8180
+ "text": "LeSidePanelToggleAction"
8181
+ }
8182
+ },
8183
+ {
8184
+ "name": "shortcut",
8185
+ "fieldName": "shortcut",
8186
+ "description": "Optional keyboard shortcut like `Mod+B` or `Alt+N`.",
8187
+ "type": {
8188
+ "text": "string"
8189
+ }
8190
+ },
8191
+ {
8192
+ "name": "disabled",
8193
+ "fieldName": "disabled",
8194
+ "default": "false",
8195
+ "description": "Disables the toggle.",
8196
+ "type": {
8197
+ "text": "boolean"
8198
+ }
8199
+ },
8200
+ {
8201
+ "name": "mode",
8202
+ "fieldName": "mode",
8203
+ "type": {
8204
+ "text": "'default' | 'admin'"
8205
+ }
8206
+ },
8207
+ {
8208
+ "name": "variant",
8209
+ "fieldName": "variant",
8210
+ "default": "'solid'",
8211
+ "type": {
8212
+ "text": "'solid' | 'outlined' | 'clear' | 'system'"
8213
+ }
8214
+ },
8215
+ {
8216
+ "name": "color",
8217
+ "fieldName": "color",
8218
+ "default": "'primary'",
8219
+ "type": {
8220
+ "text": "'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info'"
8221
+ }
8222
+ },
8223
+ {
8224
+ "name": "size",
8225
+ "fieldName": "size",
8226
+ "default": "'medium'",
8227
+ "type": {
8228
+ "text": "'small' | 'medium' | 'large'"
8229
+ }
8230
+ },
8231
+ {
8232
+ "name": "selected",
8233
+ "fieldName": "selected",
8234
+ "default": "false",
8235
+ "type": {
8236
+ "text": "boolean"
8237
+ }
8238
+ },
8239
+ {
8240
+ "name": "full-width",
8241
+ "fieldName": "fullWidth",
8242
+ "default": "false",
8243
+ "type": {
8244
+ "text": "boolean"
8245
+ }
8246
+ },
8247
+ {
8248
+ "name": "icon-only",
8249
+ "fieldName": "iconOnly",
8250
+ "type": {
8251
+ "text": "string | Node"
8252
+ }
8253
+ },
8254
+ {
8255
+ "name": "icon-start",
8256
+ "fieldName": "iconStart",
8257
+ "type": {
8258
+ "text": "string | Node"
8259
+ }
8260
+ },
8261
+ {
8262
+ "name": "icon-end",
8263
+ "fieldName": "iconEnd",
8264
+ "type": {
8265
+ "text": "string | Node"
8266
+ }
8267
+ },
8268
+ {
8269
+ "name": "type",
8270
+ "fieldName": "type",
8271
+ "default": "'button'",
8272
+ "type": {
8273
+ "text": "'button' | 'submit' | 'reset'"
8274
+ }
8275
+ },
8276
+ {
8277
+ "name": "href",
8278
+ "fieldName": "href",
8279
+ "type": {
8280
+ "text": "string"
8281
+ }
8282
+ },
8283
+ {
8284
+ "name": "target",
8285
+ "fieldName": "target",
8286
+ "type": {
8287
+ "text": "string"
8288
+ }
8289
+ },
8290
+ {
8291
+ "name": "align",
8292
+ "fieldName": "align",
8293
+ "default": "'center'",
8294
+ "type": {
8295
+ "text": "'start' | 'center' | 'space-between' | 'end'"
8296
+ }
8297
+ }
8298
+ ],
8299
+ "tagName": "le-side-panel-toggle",
8300
+ "events": [
8301
+ {
8302
+ "name": "leSidePanelRequestToggle",
8303
+ "type": {
8304
+ "text": "EventEmitter<LeSidePanelRequestToggleDetail>"
8305
+ }
8306
+ }
8307
+ ],
8308
+ "customElement": true
8309
+ }
8310
+ ],
8311
+ "exports": [
8312
+ {
8313
+ "kind": "js",
8314
+ "name": "LeSidePanelToggle",
8315
+ "declaration": {
8316
+ "name": "LeSidePanelToggle",
8317
+ "module": "src/components/le-side-panel-toggle/le-side-panel-toggle.tsx"
8318
+ }
8319
+ },
8320
+ {
8321
+ "kind": "custom-element-definition",
8322
+ "name": "le-side-panel-toggle",
8323
+ "declaration": {
8324
+ "name": "LeSidePanelToggle",
8325
+ "module": "src/components/le-side-panel-toggle/le-side-panel-toggle.tsx"
8326
+ }
8327
+ }
8328
+ ]
8329
+ },
8330
+ {
8331
+ "kind": "javascript-module",
8332
+ "path": "src/components/le-slot/le-slot.tsx",
8333
+ "declarations": [
8334
+ {
8335
+ "kind": "class",
8336
+ "description": "Slot placeholder component for admin/CMS mode.\n\nThis component renders a visual placeholder for slots when in admin mode,\nallowing CMS systems to show available drop zones for content or inline editing.\n\nIn non-admin mode, this component renders nothing and acts as a passthrough.",
8337
+ "name": "LeSlot",
8338
+ "slots": [
8339
+ {
8340
+ "description": "Default slot for placeholder content or drop zone UI",
8341
+ "name": ""
8342
+ }
8343
+ ],
8344
+ "members": [
8345
+ {
8346
+ "kind": "field",
8347
+ "name": "el",
8348
+ "type": {
8349
+ "text": "HTMLElement"
8350
+ }
8351
+ },
8352
+ {
8353
+ "kind": "field",
8354
+ "name": "type",
8355
+ "type": {
8356
+ "text": "'slot' | 'text' | 'textarea'"
8357
+ },
8358
+ "default": "'slot'",
8359
+ "description": "The type of slot content.\n- `slot`: Default, shows a dropzone for components (default)\n- `text`: Shows a single-line text input\n- `textarea`: Shows a multi-line text area"
8360
+ },
8361
+ {
8362
+ "kind": "field",
8363
+ "name": "name",
8364
+ "type": {
8365
+ "text": "string"
8366
+ },
8367
+ "default": "''",
8368
+ "description": "The name of the slot this placeholder represents.\nShould match the slot name in the parent component."
8369
+ },
8370
+ {
8371
+ "kind": "field",
8372
+ "name": "label",
8373
+ "type": {
8374
+ "text": "string | undefined"
8375
+ },
8376
+ "description": "Label to display in admin mode.\nIf not provided, the slot name will be used."
8377
+ },
8378
+ {
8379
+ "kind": "field",
8380
+ "name": "description",
8381
+ "type": {
8382
+ "text": "string | undefined"
8383
+ },
8384
+ "description": "Description of what content this slot accepts.\nShown in admin mode to guide content editors."
8385
+ },
8386
+ {
8387
+ "kind": "field",
8388
+ "name": "allowedComponents",
8389
+ "type": {
8390
+ "text": "string | undefined"
8391
+ },
8392
+ "description": "Comma-separated list of allowed component tags for this slot.\nUsed by CMS to filter available components."
8393
+ },
8394
+ {
8395
+ "kind": "field",
8396
+ "name": "multiple",
8397
+ "type": {
8398
+ "text": "boolean"
8399
+ },
8400
+ "default": "true",
8401
+ "description": "Whether multiple components can be dropped in this slot."
8402
+ },
8403
+ {
8404
+ "kind": "field",
8405
+ "name": "required",
8406
+ "type": {
8407
+ "text": "boolean"
8408
+ },
8409
+ "default": "false",
8410
+ "description": "Whether this slot is required to have content."
8411
+ },
8412
+ {
8413
+ "kind": "field",
8414
+ "name": "placeholder",
8415
+ "type": {
8416
+ "text": "string | undefined"
8417
+ },
8418
+ "description": "Placeholder text for text/textarea inputs in admin mode."
8419
+ },
8420
+ {
8421
+ "kind": "field",
8422
+ "name": "tag",
8423
+ "type": {
8424
+ "text": "string | undefined"
8425
+ },
8426
+ "description": "The HTML tag to create when there's no slotted element.\nUsed with type=\"text\" or type=\"textarea\" to auto-create elements."
8427
+ },
8428
+ {
8429
+ "kind": "field",
8430
+ "name": "slotStyle",
8431
+ "type": {
8432
+ "text": "string | undefined"
8433
+ },
8434
+ "description": "CSS styles for the slot dropzone container.\nUseful for layouts - e.g., \"flex-direction: row\" for horizontal stacks.\nOnly applies in admin mode for type=\"slot\"."
8435
+ },
8436
+ {
8437
+ "kind": "field",
8438
+ "name": "adminMode",
8439
+ "type": {
8440
+ "text": "boolean"
8441
+ },
8442
+ "privacy": "private",
8443
+ "default": "false",
8444
+ "description": "Internal state to track admin mode"
8445
+ },
8446
+ {
8447
+ "kind": "field",
8448
+ "name": "textValue",
8449
+ "type": {
8450
+ "text": "string"
8451
+ },
8452
+ "privacy": "private",
8453
+ "default": "''",
8454
+ "description": "Internal state for text input value (synced from slot content)"
8455
+ },
8456
+ {
8457
+ "kind": "field",
8458
+ "name": "isValidHtml",
8459
+ "type": {
8460
+ "text": "boolean"
8461
+ },
8462
+ "privacy": "private",
8463
+ "default": "true",
8464
+ "description": "Whether the current textValue contains valid HTML"
8465
+ },
8466
+ {
8467
+ "kind": "field",
8468
+ "name": "availableComponents",
8469
+ "type": {
8470
+ "text": "ComponentInfo[]"
8471
+ },
8472
+ "privacy": "private",
8473
+ "default": "[]",
8474
+ "description": "Available components loaded from Custom Elements Manifest"
8475
+ },
8476
+ {
8477
+ "kind": "field",
8478
+ "name": "pickerOpen",
8479
+ "type": {
8480
+ "text": "boolean"
8481
+ },
8482
+ "privacy": "private",
8483
+ "default": "false",
8484
+ "description": "Whether the component picker popover is open"
8485
+ },
8486
+ {
8487
+ "kind": "field",
8488
+ "name": "slotRef",
8489
+ "type": {
8490
+ "text": "HTMLSlotElement | undefined"
8491
+ },
8492
+ "privacy": "private",
8493
+ "description": "Reference to the slot element to access assignedNodes"
8494
+ },
8495
+ {
8496
+ "kind": "field",
8497
+ "name": "slottedElement",
8498
+ "type": {
8499
+ "text": "Element | undefined"
8500
+ },
8501
+ "privacy": "private",
8502
+ "description": "The original slotted element (e.g., <h3 slot=\"header\">)"
8503
+ },
8504
+ {
8505
+ "kind": "field",
8506
+ "name": "disconnectModeObserver",
8507
+ "type": {
8508
+ "text": "() => void | undefined"
8509
+ },
8510
+ "privacy": "private"
7495
8511
  },
7496
8512
  {
7497
8513
  "kind": "field",
@@ -7714,28 +8730,54 @@
7714
8730
  },
7715
8731
  {
7716
8732
  "kind": "javascript-module",
7717
- "path": "src/components/le-stack/le-stack.tsx",
8733
+ "path": "src/components/le-string-input/le-string-input.tsx",
7718
8734
  "declarations": [
7719
8735
  {
7720
8736
  "kind": "class",
7721
- "description": "A flexible stack layout component using CSS flexbox.\n\n`le-stack` arranges its children in a row (horizontal) or column (vertical)\nwith configurable spacing, alignment, and wrapping behavior. Perfect for\ncreating responsive layouts.",
7722
- "name": "LeStack",
8737
+ "description": "A text input component with support for labels, descriptions, icons, and external IDs.",
8738
+ "name": "LeStringInput",
7723
8739
  "cssProperties": [
7724
8740
  {
7725
- "description": "Gap between items (defaults to var(--le-space-md))",
7726
- "name": "--le-stack-gap"
7727
- }
7728
- ],
7729
- "cssParts": [
8741
+ "description": "Input background color",
8742
+ "name": "--le-input-bg"
8743
+ },
7730
8744
  {
7731
- "description": "The main stack container",
7732
- "name": "stack"
8745
+ "description": "Input text color",
8746
+ "name": "--le-input-color"
8747
+ },
8748
+ {
8749
+ "description": "Input border style",
8750
+ "name": "--le-input-border"
8751
+ },
8752
+ {
8753
+ "description": "Input border style when focused",
8754
+ "name": "--le-input-border-focus"
8755
+ },
8756
+ {
8757
+ "description": "Input border radius",
8758
+ "name": "--le-input-radius"
8759
+ },
8760
+ {
8761
+ "description": "Input padding",
8762
+ "name": "--le-input-padding"
7733
8763
  }
7734
8764
  ],
7735
8765
  "slots": [
7736
8766
  {
7737
- "description": "Default slot for stack items (le-box components recommended)",
8767
+ "description": "The label text for the input",
7738
8768
  "name": ""
8769
+ },
8770
+ {
8771
+ "description": "Additional description text displayed below the input",
8772
+ "name": "description"
8773
+ },
8774
+ {
8775
+ "description": "Icon to display at the start of the input",
8776
+ "name": "icon-start"
8777
+ },
8778
+ {
8779
+ "description": "Icon to display at the end of the input",
8780
+ "name": "icon-end"
7739
8781
  }
7740
8782
  ],
7741
8783
  "members": [
@@ -7748,139 +8790,126 @@
7748
8790
  },
7749
8791
  {
7750
8792
  "kind": "field",
7751
- "name": "direction",
8793
+ "name": "inputRef",
7752
8794
  "type": {
7753
- "text": "'horizontal' | 'vertical'"
8795
+ "text": "(el: HTMLInputElement) => void | undefined"
7754
8796
  },
7755
- "default": "'horizontal'",
7756
- "description": "Direction of the stack layout"
8797
+ "description": "Pass the ref of the input element to the parent component"
7757
8798
  },
7758
8799
  {
7759
8800
  "kind": "field",
7760
- "name": "gap",
8801
+ "name": "mode",
7761
8802
  "type": {
7762
- "text": "string | undefined"
8803
+ "text": "'default' | 'admin'"
7763
8804
  },
7764
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
8805
+ "description": "Mode of the popover should be 'default' for internal use"
7765
8806
  },
7766
8807
  {
7767
8808
  "kind": "field",
7768
- "name": "align",
8809
+ "name": "value",
7769
8810
  "type": {
7770
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
8811
+ "text": "string"
7771
8812
  },
7772
- "default": "'stretch'",
7773
- "description": "Alignment of items on the cross axis"
8813
+ "description": "The value of the input"
7774
8814
  },
7775
8815
  {
7776
8816
  "kind": "field",
7777
- "name": "justify",
8817
+ "name": "name",
7778
8818
  "type": {
7779
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
8819
+ "text": "string"
7780
8820
  },
7781
- "default": "'start'",
7782
- "description": "Distribution of items on the main axis"
8821
+ "description": "The name of the input"
7783
8822
  },
7784
8823
  {
7785
8824
  "kind": "field",
7786
- "name": "wrap",
8825
+ "name": "type",
7787
8826
  "type": {
7788
- "text": "boolean"
8827
+ "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
7789
8828
  },
7790
- "default": "false",
7791
- "description": "Whether items should wrap to multiple lines"
8829
+ "default": "'text'",
8830
+ "description": "The type of the input (text, email, password, etc.)"
7792
8831
  },
7793
8832
  {
7794
8833
  "kind": "field",
7795
- "name": "alignContent",
8834
+ "name": "label",
7796
8835
  "type": {
7797
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
8836
+ "text": "string"
7798
8837
  },
7799
- "default": "'stretch'",
7800
- "description": "Alignment of wrapped lines (only applies when wrap is true)"
8838
+ "description": "Label for the input"
7801
8839
  },
7802
8840
  {
7803
8841
  "kind": "field",
7804
- "name": "reverse",
8842
+ "name": "iconStart",
7805
8843
  "type": {
7806
- "text": "boolean"
8844
+ "text": "string"
7807
8845
  },
7808
- "default": "false",
7809
- "description": "Whether to reverse the order of items"
8846
+ "description": "Icon for the start icon"
7810
8847
  },
7811
8848
  {
7812
8849
  "kind": "field",
7813
- "name": "maxItems",
8850
+ "name": "iconEnd",
7814
8851
  "type": {
7815
- "text": "number | undefined"
8852
+ "text": "string"
7816
8853
  },
7817
- "description": "Maximum number of items allowed in the stack (for CMS validation)"
8854
+ "description": "Icon for the end icon"
8855
+ },
8856
+ {
8857
+ "kind": "field",
8858
+ "name": "placeholder",
8859
+ "type": {
8860
+ "text": "string"
8861
+ },
8862
+ "description": "Placeholder text"
8863
+ },
8864
+ {
8865
+ "kind": "field",
8866
+ "name": "hideDescription",
8867
+ "type": {
8868
+ "text": "boolean"
8869
+ },
8870
+ "default": "false",
8871
+ "description": "Hide description slot"
7818
8872
  },
7819
8873
  {
7820
8874
  "kind": "field",
7821
- "name": "fullWidth",
8875
+ "name": "disabled",
7822
8876
  "type": {
7823
8877
  "text": "boolean"
7824
8878
  },
7825
8879
  "default": "false",
7826
- "description": "Whether the stack should take full width of its container"
8880
+ "description": "Whether the input is disabled"
7827
8881
  },
7828
8882
  {
7829
8883
  "kind": "field",
7830
- "name": "fullHeight",
8884
+ "name": "readonly",
7831
8885
  "type": {
7832
8886
  "text": "boolean"
7833
8887
  },
7834
8888
  "default": "false",
7835
- "description": "Whether the stack should take full height of its container"
8889
+ "description": "Whether the input is read-only"
7836
8890
  },
7837
8891
  {
7838
8892
  "kind": "field",
7839
- "name": "padding",
8893
+ "name": "externalId",
7840
8894
  "type": {
7841
- "text": "string | undefined"
8895
+ "text": "string"
7842
8896
  },
7843
- "description": "Padding inside the stack container (CSS value)"
7844
- },
7845
- {
7846
- "kind": "method",
7847
- "name": "getFlexDirection",
7848
- "privacy": "private",
7849
- "return": {
7850
- "type": {
7851
- "text": "string"
7852
- }
7853
- }
8897
+ "description": "External ID for linking with external systems"
7854
8898
  },
7855
8899
  {
7856
- "kind": "method",
7857
- "name": "getAlignItems",
7858
- "privacy": "private",
7859
- "return": {
7860
- "type": {
7861
- "text": "string"
7862
- }
7863
- }
8900
+ "kind": "field",
8901
+ "name": "handleInput",
8902
+ "privacy": "private"
7864
8903
  },
7865
8904
  {
7866
- "kind": "method",
7867
- "name": "getJustifyContent",
7868
- "privacy": "private",
7869
- "return": {
7870
- "type": {
7871
- "text": "string"
7872
- }
7873
- }
8905
+ "kind": "field",
8906
+ "name": "handleChange",
8907
+ "privacy": "private"
7874
8908
  },
7875
8909
  {
7876
- "kind": "method",
7877
- "name": "getAlignContent",
7878
- "privacy": "private",
7879
- "return": {
7880
- "type": {
7881
- "text": "string"
7882
- }
7883
- }
8910
+ "kind": "field",
8911
+ "name": "handleClick",
8912
+ "privacy": "private"
7884
8913
  },
7885
8914
  {
7886
8915
  "kind": "method",
@@ -7889,308 +8918,322 @@
7889
8918
  ],
7890
8919
  "attributes": [
7891
8920
  {
7892
- "name": "direction",
7893
- "fieldName": "direction",
7894
- "default": "'horizontal'",
7895
- "description": "Direction of the stack layout",
8921
+ "name": "input-ref",
8922
+ "fieldName": "inputRef",
8923
+ "description": "Pass the ref of the input element to the parent component",
7896
8924
  "type": {
7897
- "text": "'horizontal' | 'vertical'"
8925
+ "text": "(el: HTMLInputElement) => void"
7898
8926
  }
7899
8927
  },
7900
8928
  {
7901
- "name": "gap",
7902
- "fieldName": "gap",
7903
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
8929
+ "name": "mode",
8930
+ "fieldName": "mode",
8931
+ "description": "Mode of the popover should be 'default' for internal use",
8932
+ "type": {
8933
+ "text": "'default' | 'admin'"
8934
+ }
8935
+ },
8936
+ {
8937
+ "name": "value",
8938
+ "fieldName": "value",
8939
+ "description": "The value of the input",
7904
8940
  "type": {
7905
8941
  "text": "string"
7906
8942
  }
7907
8943
  },
7908
8944
  {
7909
- "name": "align",
7910
- "fieldName": "align",
7911
- "default": "'stretch'",
7912
- "description": "Alignment of items on the cross axis",
8945
+ "name": "name",
8946
+ "fieldName": "name",
8947
+ "description": "The name of the input",
7913
8948
  "type": {
7914
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
8949
+ "text": "string"
7915
8950
  }
7916
8951
  },
7917
8952
  {
7918
- "name": "justify",
7919
- "fieldName": "justify",
7920
- "default": "'start'",
7921
- "description": "Distribution of items on the main axis",
8953
+ "name": "type",
8954
+ "fieldName": "type",
8955
+ "default": "'text'",
8956
+ "description": "The type of the input (text, email, password, etc.)",
7922
8957
  "type": {
7923
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
8958
+ "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
7924
8959
  }
7925
8960
  },
7926
8961
  {
7927
- "name": "wrap",
7928
- "fieldName": "wrap",
7929
- "default": "false",
7930
- "description": "Whether items should wrap to multiple lines",
8962
+ "name": "label",
8963
+ "fieldName": "label",
8964
+ "description": "Label for the input",
7931
8965
  "type": {
7932
- "text": "boolean"
8966
+ "text": "string"
7933
8967
  }
7934
8968
  },
7935
8969
  {
7936
- "name": "align-content",
7937
- "fieldName": "alignContent",
7938
- "default": "'stretch'",
7939
- "description": "Alignment of wrapped lines (only applies when wrap is true)",
8970
+ "name": "icon-start",
8971
+ "fieldName": "iconStart",
8972
+ "description": "Icon for the start icon",
7940
8973
  "type": {
7941
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
8974
+ "text": "string"
7942
8975
  }
7943
8976
  },
7944
8977
  {
7945
- "name": "reverse",
7946
- "fieldName": "reverse",
7947
- "default": "false",
7948
- "description": "Whether to reverse the order of items",
8978
+ "name": "icon-end",
8979
+ "fieldName": "iconEnd",
8980
+ "description": "Icon for the end icon",
7949
8981
  "type": {
7950
- "text": "boolean"
8982
+ "text": "string"
7951
8983
  }
7952
8984
  },
7953
8985
  {
7954
- "name": "max-items",
7955
- "fieldName": "maxItems",
7956
- "description": "Maximum number of items allowed in the stack (for CMS validation)",
8986
+ "name": "placeholder",
8987
+ "fieldName": "placeholder",
8988
+ "description": "Placeholder text",
7957
8989
  "type": {
7958
- "text": "number"
8990
+ "text": "string"
7959
8991
  }
7960
8992
  },
7961
8993
  {
7962
- "name": "full-width",
7963
- "fieldName": "fullWidth",
8994
+ "name": "hide-description",
8995
+ "fieldName": "hideDescription",
7964
8996
  "default": "false",
7965
- "description": "Whether the stack should take full width of its container",
8997
+ "description": "Hide description slot",
7966
8998
  "type": {
7967
8999
  "text": "boolean"
7968
9000
  }
7969
9001
  },
7970
9002
  {
7971
- "name": "full-height",
7972
- "fieldName": "fullHeight",
9003
+ "name": "disabled",
9004
+ "fieldName": "disabled",
7973
9005
  "default": "false",
7974
- "description": "Whether the stack should take full height of its container",
9006
+ "description": "Whether the input is disabled",
7975
9007
  "type": {
7976
9008
  "text": "boolean"
7977
9009
  }
7978
9010
  },
7979
9011
  {
7980
- "name": "padding",
7981
- "fieldName": "padding",
7982
- "description": "Padding inside the stack container (CSS value)",
9012
+ "name": "readonly",
9013
+ "fieldName": "readonly",
9014
+ "default": "false",
9015
+ "description": "Whether the input is read-only",
9016
+ "type": {
9017
+ "text": "boolean"
9018
+ }
9019
+ },
9020
+ {
9021
+ "name": "external-id",
9022
+ "fieldName": "externalId",
9023
+ "description": "External ID for linking with external systems",
7983
9024
  "type": {
7984
9025
  "text": "string"
7985
9026
  }
7986
9027
  }
7987
9028
  ],
7988
- "tagName": "le-stack",
7989
- "events": [],
9029
+ "tagName": "le-string-input",
9030
+ "events": [
9031
+ {
9032
+ "name": "change",
9033
+ "type": {
9034
+ "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
9035
+ },
9036
+ "description": "Emitted when the value changes (on blur or Enter)"
9037
+ },
9038
+ {
9039
+ "name": "input",
9040
+ "type": {
9041
+ "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
9042
+ },
9043
+ "description": "Emitted when the input value changes (on keystroke)"
9044
+ }
9045
+ ],
7990
9046
  "customElement": true
7991
9047
  }
7992
9048
  ],
7993
9049
  "exports": [
7994
9050
  {
7995
9051
  "kind": "js",
7996
- "name": "LeStack",
9052
+ "name": "LeStringInput",
7997
9053
  "declaration": {
7998
- "name": "LeStack",
7999
- "module": "src/components/le-stack/le-stack.tsx"
9054
+ "name": "LeStringInput",
9055
+ "module": "src/components/le-string-input/le-string-input.tsx"
8000
9056
  }
8001
9057
  },
8002
9058
  {
8003
9059
  "kind": "custom-element-definition",
8004
- "name": "le-stack",
9060
+ "name": "le-string-input",
8005
9061
  "declaration": {
8006
- "name": "LeStack",
8007
- "module": "src/components/le-stack/le-stack.tsx"
9062
+ "name": "LeStringInput",
9063
+ "module": "src/components/le-string-input/le-string-input.tsx"
8008
9064
  }
8009
9065
  }
8010
9066
  ]
8011
9067
  },
8012
9068
  {
8013
9069
  "kind": "javascript-module",
8014
- "path": "src/components/le-string-input/le-string-input.tsx",
9070
+ "path": "src/components/le-stack/le-stack.tsx",
8015
9071
  "declarations": [
8016
9072
  {
8017
9073
  "kind": "class",
8018
- "description": "A text input component with support for labels, descriptions, icons, and external IDs.",
8019
- "name": "LeStringInput",
9074
+ "description": "A flexible stack layout component using CSS flexbox.\n\n`le-stack` arranges its children in a row (horizontal) or column (vertical)\nwith configurable spacing, alignment, and wrapping behavior. Perfect for\ncreating responsive layouts.",
9075
+ "name": "LeStack",
8020
9076
  "cssProperties": [
8021
9077
  {
8022
- "description": "Input background color",
8023
- "name": "--le-input-bg"
8024
- },
8025
- {
8026
- "description": "Input text color",
8027
- "name": "--le-input-color"
8028
- },
8029
- {
8030
- "description": "Input border style",
8031
- "name": "--le-input-border"
8032
- },
8033
- {
8034
- "description": "Input border style when focused",
8035
- "name": "--le-input-border-focus"
8036
- },
8037
- {
8038
- "description": "Input border radius",
8039
- "name": "--le-input-radius"
8040
- },
9078
+ "description": "Gap between items (defaults to var(--le-space-md))",
9079
+ "name": "--le-stack-gap"
9080
+ }
9081
+ ],
9082
+ "cssParts": [
8041
9083
  {
8042
- "description": "Input padding",
8043
- "name": "--le-input-padding"
9084
+ "description": "The main stack container",
9085
+ "name": "stack"
8044
9086
  }
8045
9087
  ],
8046
9088
  "slots": [
8047
9089
  {
8048
- "description": "The label text for the input",
9090
+ "description": "Default slot for stack items (le-box components recommended)",
8049
9091
  "name": ""
8050
- },
8051
- {
8052
- "description": "Additional description text displayed below the input",
8053
- "name": "description"
8054
- },
8055
- {
8056
- "description": "Icon to display at the start of the input",
8057
- "name": "icon-start"
8058
- },
8059
- {
8060
- "description": "Icon to display at the end of the input",
8061
- "name": "icon-end"
8062
9092
  }
8063
9093
  ],
8064
- "members": [
8065
- {
8066
- "kind": "field",
8067
- "name": "el",
8068
- "type": {
8069
- "text": "HTMLElement"
8070
- }
8071
- },
8072
- {
8073
- "kind": "field",
8074
- "name": "inputRef",
8075
- "type": {
8076
- "text": "(el: HTMLInputElement) => void | undefined"
8077
- },
8078
- "description": "Pass the ref of the input element to the parent component"
8079
- },
9094
+ "members": [
8080
9095
  {
8081
9096
  "kind": "field",
8082
- "name": "mode",
9097
+ "name": "el",
8083
9098
  "type": {
8084
- "text": "'default' | 'admin'"
8085
- },
8086
- "description": "Mode of the popover should be 'default' for internal use"
9099
+ "text": "HTMLElement"
9100
+ }
8087
9101
  },
8088
9102
  {
8089
9103
  "kind": "field",
8090
- "name": "value",
9104
+ "name": "direction",
8091
9105
  "type": {
8092
- "text": "string"
9106
+ "text": "'horizontal' | 'vertical'"
8093
9107
  },
8094
- "description": "The value of the input"
9108
+ "default": "'horizontal'",
9109
+ "description": "Direction of the stack layout"
8095
9110
  },
8096
9111
  {
8097
9112
  "kind": "field",
8098
- "name": "name",
9113
+ "name": "gap",
8099
9114
  "type": {
8100
- "text": "string"
9115
+ "text": "string | undefined"
8101
9116
  },
8102
- "description": "The name of the input"
9117
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
8103
9118
  },
8104
9119
  {
8105
9120
  "kind": "field",
8106
- "name": "type",
9121
+ "name": "align",
8107
9122
  "type": {
8108
- "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
9123
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
8109
9124
  },
8110
- "default": "'text'",
8111
- "description": "The type of the input (text, email, password, etc.)"
9125
+ "default": "'stretch'",
9126
+ "description": "Alignment of items on the cross axis"
8112
9127
  },
8113
9128
  {
8114
9129
  "kind": "field",
8115
- "name": "label",
9130
+ "name": "justify",
8116
9131
  "type": {
8117
- "text": "string"
9132
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
8118
9133
  },
8119
- "description": "Label for the input"
9134
+ "default": "'start'",
9135
+ "description": "Distribution of items on the main axis"
8120
9136
  },
8121
9137
  {
8122
9138
  "kind": "field",
8123
- "name": "iconStart",
9139
+ "name": "wrap",
8124
9140
  "type": {
8125
- "text": "string"
9141
+ "text": "boolean"
8126
9142
  },
8127
- "description": "Icon for the start icon"
9143
+ "default": "false",
9144
+ "description": "Whether items should wrap to multiple lines"
8128
9145
  },
8129
9146
  {
8130
9147
  "kind": "field",
8131
- "name": "iconEnd",
9148
+ "name": "alignContent",
8132
9149
  "type": {
8133
- "text": "string"
9150
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
8134
9151
  },
8135
- "description": "Icon for the end icon"
9152
+ "default": "'stretch'",
9153
+ "description": "Alignment of wrapped lines (only applies when wrap is true)"
8136
9154
  },
8137
9155
  {
8138
9156
  "kind": "field",
8139
- "name": "placeholder",
9157
+ "name": "reverse",
8140
9158
  "type": {
8141
- "text": "string"
9159
+ "text": "boolean"
8142
9160
  },
8143
- "description": "Placeholder text"
9161
+ "default": "false",
9162
+ "description": "Whether to reverse the order of items"
8144
9163
  },
8145
9164
  {
8146
9165
  "kind": "field",
8147
- "name": "hideDescription",
9166
+ "name": "maxItems",
8148
9167
  "type": {
8149
- "text": "boolean"
9168
+ "text": "number | undefined"
8150
9169
  },
8151
- "default": "false",
8152
- "description": "Hide description slot"
9170
+ "description": "Maximum number of items allowed in the stack (for CMS validation)"
8153
9171
  },
8154
9172
  {
8155
9173
  "kind": "field",
8156
- "name": "disabled",
9174
+ "name": "fullWidth",
8157
9175
  "type": {
8158
9176
  "text": "boolean"
8159
9177
  },
8160
9178
  "default": "false",
8161
- "description": "Whether the input is disabled"
9179
+ "description": "Whether the stack should take full width of its container"
8162
9180
  },
8163
9181
  {
8164
9182
  "kind": "field",
8165
- "name": "readonly",
9183
+ "name": "fullHeight",
8166
9184
  "type": {
8167
9185
  "text": "boolean"
8168
9186
  },
8169
9187
  "default": "false",
8170
- "description": "Whether the input is read-only"
9188
+ "description": "Whether the stack should take full height of its container"
8171
9189
  },
8172
9190
  {
8173
9191
  "kind": "field",
8174
- "name": "externalId",
9192
+ "name": "padding",
8175
9193
  "type": {
8176
- "text": "string"
9194
+ "text": "string | undefined"
8177
9195
  },
8178
- "description": "External ID for linking with external systems"
9196
+ "description": "Padding inside the stack container (CSS value)"
8179
9197
  },
8180
9198
  {
8181
- "kind": "field",
8182
- "name": "handleInput",
8183
- "privacy": "private"
9199
+ "kind": "method",
9200
+ "name": "getFlexDirection",
9201
+ "privacy": "private",
9202
+ "return": {
9203
+ "type": {
9204
+ "text": "string"
9205
+ }
9206
+ }
8184
9207
  },
8185
9208
  {
8186
- "kind": "field",
8187
- "name": "handleChange",
8188
- "privacy": "private"
9209
+ "kind": "method",
9210
+ "name": "getAlignItems",
9211
+ "privacy": "private",
9212
+ "return": {
9213
+ "type": {
9214
+ "text": "string"
9215
+ }
9216
+ }
8189
9217
  },
8190
9218
  {
8191
- "kind": "field",
8192
- "name": "handleClick",
8193
- "privacy": "private"
9219
+ "kind": "method",
9220
+ "name": "getJustifyContent",
9221
+ "privacy": "private",
9222
+ "return": {
9223
+ "type": {
9224
+ "text": "string"
9225
+ }
9226
+ }
9227
+ },
9228
+ {
9229
+ "kind": "method",
9230
+ "name": "getAlignContent",
9231
+ "privacy": "private",
9232
+ "return": {
9233
+ "type": {
9234
+ "text": "string"
9235
+ }
9236
+ }
8194
9237
  },
8195
9238
  {
8196
9239
  "kind": "method",
@@ -8199,149 +9242,122 @@
8199
9242
  ],
8200
9243
  "attributes": [
8201
9244
  {
8202
- "name": "input-ref",
8203
- "fieldName": "inputRef",
8204
- "description": "Pass the ref of the input element to the parent component",
8205
- "type": {
8206
- "text": "(el: HTMLInputElement) => void"
8207
- }
8208
- },
8209
- {
8210
- "name": "mode",
8211
- "fieldName": "mode",
8212
- "description": "Mode of the popover should be 'default' for internal use",
8213
- "type": {
8214
- "text": "'default' | 'admin'"
8215
- }
8216
- },
8217
- {
8218
- "name": "value",
8219
- "fieldName": "value",
8220
- "description": "The value of the input",
9245
+ "name": "direction",
9246
+ "fieldName": "direction",
9247
+ "default": "'horizontal'",
9248
+ "description": "Direction of the stack layout",
8221
9249
  "type": {
8222
- "text": "string"
9250
+ "text": "'horizontal' | 'vertical'"
8223
9251
  }
8224
9252
  },
8225
9253
  {
8226
- "name": "name",
8227
- "fieldName": "name",
8228
- "description": "The name of the input",
9254
+ "name": "gap",
9255
+ "fieldName": "gap",
9256
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
8229
9257
  "type": {
8230
9258
  "text": "string"
8231
9259
  }
8232
9260
  },
8233
9261
  {
8234
- "name": "type",
8235
- "fieldName": "type",
8236
- "default": "'text'",
8237
- "description": "The type of the input (text, email, password, etc.)",
9262
+ "name": "align",
9263
+ "fieldName": "align",
9264
+ "default": "'stretch'",
9265
+ "description": "Alignment of items on the cross axis",
8238
9266
  "type": {
8239
- "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
9267
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
8240
9268
  }
8241
9269
  },
8242
9270
  {
8243
- "name": "label",
8244
- "fieldName": "label",
8245
- "description": "Label for the input",
9271
+ "name": "justify",
9272
+ "fieldName": "justify",
9273
+ "default": "'start'",
9274
+ "description": "Distribution of items on the main axis",
8246
9275
  "type": {
8247
- "text": "string"
9276
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
8248
9277
  }
8249
9278
  },
8250
9279
  {
8251
- "name": "icon-start",
8252
- "fieldName": "iconStart",
8253
- "description": "Icon for the start icon",
9280
+ "name": "wrap",
9281
+ "fieldName": "wrap",
9282
+ "default": "false",
9283
+ "description": "Whether items should wrap to multiple lines",
8254
9284
  "type": {
8255
- "text": "string"
9285
+ "text": "boolean"
8256
9286
  }
8257
9287
  },
8258
9288
  {
8259
- "name": "icon-end",
8260
- "fieldName": "iconEnd",
8261
- "description": "Icon for the end icon",
9289
+ "name": "align-content",
9290
+ "fieldName": "alignContent",
9291
+ "default": "'stretch'",
9292
+ "description": "Alignment of wrapped lines (only applies when wrap is true)",
8262
9293
  "type": {
8263
- "text": "string"
9294
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
8264
9295
  }
8265
9296
  },
8266
9297
  {
8267
- "name": "placeholder",
8268
- "fieldName": "placeholder",
8269
- "description": "Placeholder text",
9298
+ "name": "reverse",
9299
+ "fieldName": "reverse",
9300
+ "default": "false",
9301
+ "description": "Whether to reverse the order of items",
8270
9302
  "type": {
8271
- "text": "string"
9303
+ "text": "boolean"
8272
9304
  }
8273
9305
  },
8274
9306
  {
8275
- "name": "hide-description",
8276
- "fieldName": "hideDescription",
8277
- "default": "false",
8278
- "description": "Hide description slot",
9307
+ "name": "max-items",
9308
+ "fieldName": "maxItems",
9309
+ "description": "Maximum number of items allowed in the stack (for CMS validation)",
8279
9310
  "type": {
8280
- "text": "boolean"
9311
+ "text": "number"
8281
9312
  }
8282
9313
  },
8283
9314
  {
8284
- "name": "disabled",
8285
- "fieldName": "disabled",
9315
+ "name": "full-width",
9316
+ "fieldName": "fullWidth",
8286
9317
  "default": "false",
8287
- "description": "Whether the input is disabled",
9318
+ "description": "Whether the stack should take full width of its container",
8288
9319
  "type": {
8289
9320
  "text": "boolean"
8290
9321
  }
8291
9322
  },
8292
9323
  {
8293
- "name": "readonly",
8294
- "fieldName": "readonly",
9324
+ "name": "full-height",
9325
+ "fieldName": "fullHeight",
8295
9326
  "default": "false",
8296
- "description": "Whether the input is read-only",
9327
+ "description": "Whether the stack should take full height of its container",
8297
9328
  "type": {
8298
9329
  "text": "boolean"
8299
9330
  }
8300
9331
  },
8301
9332
  {
8302
- "name": "external-id",
8303
- "fieldName": "externalId",
8304
- "description": "External ID for linking with external systems",
9333
+ "name": "padding",
9334
+ "fieldName": "padding",
9335
+ "description": "Padding inside the stack container (CSS value)",
8305
9336
  "type": {
8306
9337
  "text": "string"
8307
9338
  }
8308
9339
  }
8309
9340
  ],
8310
- "tagName": "le-string-input",
8311
- "events": [
8312
- {
8313
- "name": "change",
8314
- "type": {
8315
- "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
8316
- },
8317
- "description": "Emitted when the value changes (on blur or Enter)"
8318
- },
8319
- {
8320
- "name": "input",
8321
- "type": {
8322
- "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
8323
- },
8324
- "description": "Emitted when the input value changes (on keystroke)"
8325
- }
8326
- ],
9341
+ "tagName": "le-stack",
9342
+ "events": [],
8327
9343
  "customElement": true
8328
9344
  }
8329
9345
  ],
8330
9346
  "exports": [
8331
9347
  {
8332
9348
  "kind": "js",
8333
- "name": "LeStringInput",
9349
+ "name": "LeStack",
8334
9350
  "declaration": {
8335
- "name": "LeStringInput",
8336
- "module": "src/components/le-string-input/le-string-input.tsx"
9351
+ "name": "LeStack",
9352
+ "module": "src/components/le-stack/le-stack.tsx"
8337
9353
  }
8338
9354
  },
8339
9355
  {
8340
9356
  "kind": "custom-element-definition",
8341
- "name": "le-string-input",
9357
+ "name": "le-stack",
8342
9358
  "declaration": {
8343
- "name": "LeStringInput",
8344
- "module": "src/components/le-string-input/le-string-input.tsx"
9359
+ "name": "LeStack",
9360
+ "module": "src/components/le-stack/le-stack.tsx"
8345
9361
  }
8346
9362
  }
8347
9363
  ]
@@ -10003,7 +11019,7 @@
10003
11019
  "kind": "field",
10004
11020
  "name": "variant",
10005
11021
  "type": {
10006
- "text": "'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'code' | 'quote' | 'label' | 'small'"
11022
+ "text": "| 'p'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'code'\n | 'quote'\n | 'label'\n | 'small'"
10007
11023
  },
10008
11024
  "default": "'p'",
10009
11025
  "description": "The semantic variant/type of text element"
@@ -10259,7 +11275,7 @@
10259
11275
  "default": "'p'",
10260
11276
  "description": "The semantic variant/type of text element",
10261
11277
  "type": {
10262
- "text": "'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'code' | 'quote' | 'label' | 'small'"
11278
+ "text": "| 'p'\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'code'\n | 'quote'\n | 'label'\n | 'small'"
10263
11279
  }
10264
11280
  },
10265
11281
  {