le-kit 0.1.15 → 0.1.16

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 (235) hide show
  1. package/dist/cjs/{index-C3iQZ-Ja.js → index-CHzu3ydp.js} +3 -3
  2. package/dist/cjs/index-CHzu3ydp.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-box.cjs.entry.js +2 -2
  5. package/dist/cjs/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.cjs.js.map +1 -0
  6. package/dist/cjs/{le-button_7.cjs.entry.js → le-button_13.cjs.entry.js} +1148 -21
  7. package/dist/cjs/le-card.cjs.entry.js +2 -2
  8. package/dist/cjs/le-combobox.cjs.entry.js +2 -2
  9. package/dist/cjs/le-header-placeholder.cjs.entry.js +18 -0
  10. package/dist/cjs/le-header-placeholder.entry.cjs.js.map +1 -0
  11. package/dist/cjs/le-kit.cjs.js +2 -2
  12. package/dist/cjs/le-multiselect.cjs.entry.js +4 -4
  13. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  14. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  15. package/dist/cjs/le-segmented-control.cjs.entry.js +2 -2
  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 +2 -2
  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-DjPcLPN9.js → utils-CYOKcOW8.js} +3 -3
  26. package/dist/cjs/{utils-DjPcLPN9.js.map → utils-CYOKcOW8.js.map} +1 -1
  27. package/dist/collection/collection-manifest.json +5 -0
  28. package/dist/collection/components/le-collapse/le-collapse.css +31 -0
  29. package/dist/collection/components/le-collapse/le-collapse.js +188 -0
  30. package/dist/collection/components/le-collapse/le-collapse.js.map +1 -0
  31. package/dist/collection/components/le-combobox/le-combobox.js +1 -1
  32. package/dist/collection/components/le-component/le-component.js +1 -1
  33. package/dist/collection/components/le-component/le-component.js.map +1 -1
  34. package/dist/collection/components/le-current-heading/le-current-heading.css +12 -0
  35. package/dist/collection/components/le-current-heading/le-current-heading.js +130 -0
  36. package/dist/collection/components/le-current-heading/le-current-heading.js.map +1 -0
  37. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +4 -0
  38. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +1 -1
  39. package/dist/collection/components/le-header/le-header.css +120 -0
  40. package/dist/collection/components/le-header/le-header.js +508 -0
  41. package/dist/collection/components/le-header/le-header.js.map +1 -0
  42. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +21 -0
  43. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +1 -0
  44. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  45. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  46. package/dist/collection/components/le-popover/le-popover.css +10 -0
  47. package/dist/collection/components/le-popover/le-popover.js +122 -13
  48. package/dist/collection/components/le-popover/le-popover.js.map +1 -1
  49. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  50. package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +29 -0
  51. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +186 -0
  52. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +1 -0
  53. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  54. package/dist/collection/components/le-select/le-select.js +2 -2
  55. package/dist/collection/components/le-slot/le-slot.js +1 -1
  56. package/dist/collection/components/le-stack/le-stack.js +1 -1
  57. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  58. package/dist/collection/components/le-tab/le-tab.js +1 -1
  59. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  60. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  61. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  62. package/dist/collection/components/le-tag/le-tag.js +1 -1
  63. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  64. package/dist/collection/dist/components/assets/custom-elements.json +2029 -965
  65. package/dist/collection/dist/components/themes/base.css +4 -48
  66. package/dist/collection/dist/components/themes/index.css +3 -342
  67. package/dist/components/assets/custom-elements.json +2029 -965
  68. package/dist/components/index.js.map +1 -1
  69. package/dist/components/le-box.js +18 -7
  70. package/dist/components/le-box.js.map +1 -1
  71. package/dist/components/le-button.js +1 -1
  72. package/dist/components/le-button2.js +331 -31
  73. package/dist/components/le-button2.js.map +1 -1
  74. package/dist/components/le-card.js +18 -7
  75. package/dist/components/le-card.js.map +1 -1
  76. package/dist/components/le-checkbox.js +1 -1
  77. package/dist/components/le-collapse.d.ts +11 -0
  78. package/dist/components/le-collapse.js +144 -0
  79. package/dist/components/le-collapse.js.map +1 -0
  80. package/dist/components/le-combobox.js +15 -10
  81. package/dist/components/le-combobox.js.map +1 -1
  82. package/dist/components/le-component.js +1 -1
  83. package/dist/components/le-current-heading.d.ts +11 -0
  84. package/dist/components/le-current-heading.js +93 -0
  85. package/dist/components/le-current-heading.js.map +1 -0
  86. package/dist/components/le-dropdown-base2.js +2 -2
  87. package/dist/components/le-dropdown-base2.js.map +1 -1
  88. package/dist/components/le-header-placeholder.d.ts +11 -0
  89. package/dist/components/le-header-placeholder.js +37 -0
  90. package/dist/components/le-header-placeholder.js.map +1 -0
  91. package/dist/components/le-header.d.ts +11 -0
  92. package/dist/components/le-header.js +347 -0
  93. package/dist/components/le-header.js.map +1 -0
  94. package/dist/components/le-multiselect.js +17 -12
  95. package/dist/components/le-multiselect.js.map +1 -1
  96. package/dist/components/le-number-input.js +19 -8
  97. package/dist/components/le-number-input.js.map +1 -1
  98. package/dist/components/le-popover2.js +123 -14
  99. package/dist/components/le-popover2.js.map +1 -1
  100. package/dist/components/le-popup.js +1 -1
  101. package/dist/components/le-round-progress.js +1 -1
  102. package/dist/components/le-scroll-progress.d.ts +11 -0
  103. package/dist/components/le-scroll-progress.js +142 -0
  104. package/dist/components/le-scroll-progress.js.map +1 -0
  105. package/dist/components/le-segmented-control.js +19 -8
  106. package/dist/components/le-segmented-control.js.map +1 -1
  107. package/dist/components/le-select.js +1 -263
  108. package/dist/components/le-select.js.map +1 -1
  109. package/dist/components/le-slot.js +1 -1
  110. package/dist/components/le-stack.js +19 -8
  111. package/dist/components/le-stack.js.map +1 -1
  112. package/dist/components/le-string-input.js +1 -1
  113. package/dist/components/le-tab-bar.js +19 -8
  114. package/dist/components/le-tab-bar.js.map +1 -1
  115. package/dist/components/le-tab-panel.js +20 -9
  116. package/dist/components/le-tab-panel.js.map +1 -1
  117. package/dist/components/le-tab2.js +19 -8
  118. package/dist/components/le-tab2.js.map +1 -1
  119. package/dist/components/le-tabs.js +20 -9
  120. package/dist/components/le-tabs.js.map +1 -1
  121. package/dist/components/le-tag2.js +19 -8
  122. package/dist/components/le-tag2.js.map +1 -1
  123. package/dist/components/le-text.js +18 -7
  124. package/dist/components/le-text.js.map +1 -1
  125. package/dist/components/le-turntable.js +1 -1
  126. package/dist/components/themes/base.css +4 -48
  127. package/dist/components/themes/index.css +3 -342
  128. package/dist/docs.json +1089 -30
  129. package/dist/esm/{index-DzgCnDLJ.js → index-hmBwv43R.js} +3 -3
  130. package/dist/esm/index-hmBwv43R.js.map +1 -0
  131. package/dist/esm/index.js +2 -2
  132. package/dist/esm/le-box.entry.js +2 -2
  133. package/dist/esm/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.js.map +1 -0
  134. package/dist/esm/{le-button_7.entry.js → le-button_13.entry.js} +1143 -22
  135. package/dist/esm/le-card.entry.js +2 -2
  136. package/dist/esm/le-combobox.entry.js +2 -2
  137. package/dist/esm/le-header-placeholder.entry.js +16 -0
  138. package/dist/esm/le-header-placeholder.entry.js.map +1 -0
  139. package/dist/esm/le-kit.js +3 -3
  140. package/dist/esm/le-multiselect.entry.js +4 -4
  141. package/dist/esm/le-number-input.entry.js +3 -3
  142. package/dist/esm/le-round-progress.entry.js +2 -2
  143. package/dist/esm/le-segmented-control.entry.js +2 -2
  144. package/dist/esm/le-stack.entry.js +3 -3
  145. package/dist/esm/le-tab-bar.entry.js +2 -2
  146. package/dist/esm/le-tab-panel.entry.js +3 -3
  147. package/dist/esm/le-tab.entry.js +3 -3
  148. package/dist/esm/le-tabs.entry.js +4 -4
  149. package/dist/esm/le-tag.entry.js +2 -2
  150. package/dist/esm/le-text.entry.js +2 -2
  151. package/dist/esm/le-turntable.entry.js +2 -2
  152. package/dist/esm/loader.js +3 -3
  153. package/dist/esm/{utils-Dp5xFMCl.js → utils-DRTFlnxz.js} +3 -3
  154. package/dist/esm/{utils-Dp5xFMCl.js.map → utils-DRTFlnxz.js.map} +1 -1
  155. package/dist/le-kit/dist/components/assets/custom-elements.json +2029 -965
  156. package/dist/le-kit/dist/components/themes/base.css +4 -48
  157. package/dist/le-kit/dist/components/themes/index.css +3 -342
  158. package/dist/le-kit/index.esm.js +1 -1
  159. package/dist/le-kit/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.esm.js.map +1 -0
  160. package/dist/le-kit/le-header-placeholder.entry.esm.js.map +1 -0
  161. package/dist/le-kit/le-kit.css +1 -1
  162. package/dist/le-kit/le-kit.esm.js +1 -1
  163. package/dist/le-kit/{p-1f55a4a2.entry.js → p-13a4dc1d.entry.js} +2 -2
  164. package/dist/le-kit/{p-0bd7803f.entry.js → p-1a9e65d0.entry.js} +2 -2
  165. package/dist/le-kit/p-2708dc65.entry.js +2 -0
  166. package/dist/le-kit/p-2708dc65.entry.js.map +1 -0
  167. package/dist/le-kit/p-2b96a5bd.entry.js +2 -0
  168. package/dist/le-kit/p-2b96a5bd.entry.js.map +1 -0
  169. package/dist/le-kit/{p-7b180d58.entry.js → p-32cbb683.entry.js} +2 -2
  170. package/dist/le-kit/{p-71c78784.entry.js → p-476e1886.entry.js} +2 -2
  171. package/dist/le-kit/p-67d702f9.entry.js +2 -0
  172. package/dist/le-kit/{p-33612923.entry.js → p-6884e3e8.entry.js} +2 -2
  173. package/dist/le-kit/{p-6ecdad85.entry.js → p-704ad5e0.entry.js} +2 -2
  174. package/dist/le-kit/{p-432e8231.entry.js → p-88f9aa40.entry.js} +2 -2
  175. package/dist/le-kit/{p-91993261.entry.js → p-8dd8a487.entry.js} +2 -2
  176. package/dist/le-kit/{p-6ee06c44.entry.js → p-97b7658a.entry.js} +2 -2
  177. package/dist/le-kit/{p-a5d31d40.entry.js → p-c0925e92.entry.js} +2 -2
  178. package/dist/le-kit/{p-548d130b.entry.js → p-c2494a0d.entry.js} +2 -2
  179. package/dist/le-kit/{p-3a52c4de.entry.js → p-ded51018.entry.js} +2 -2
  180. package/dist/le-kit/{p-2c37f174.entry.js → p-e3db7974.entry.js} +2 -2
  181. package/dist/le-kit/{p-b66fd9e1.entry.js → p-f9b03aec.entry.js} +2 -2
  182. package/dist/le-kit/p-hmBwv43R.js +3 -0
  183. package/dist/le-kit/p-hmBwv43R.js.map +1 -0
  184. package/dist/le-kit/p-txKmCJHv.js +2 -0
  185. package/dist/le-kit/{p-DaA5gINj.js.map → p-txKmCJHv.js.map} +1 -1
  186. package/dist/themes/base.css +4 -48
  187. package/dist/themes/index.css +3 -342
  188. package/dist/types/components/le-collapse/le-collapse.d.ts +41 -0
  189. package/dist/types/components/le-current-heading/le-current-heading.d.ts +25 -0
  190. package/dist/types/components/le-header/le-header.d.ts +115 -0
  191. package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +13 -0
  192. package/dist/types/components/le-popover/le-popover.d.ts +9 -0
  193. package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +40 -0
  194. package/dist/types/components.d.ts +518 -0
  195. package/package.json +1 -1
  196. package/dist/cjs/index-C3iQZ-Ja.js.map +0 -1
  197. package/dist/cjs/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.cjs.js.map +0 -1
  198. package/dist/cjs/le-dropdown-base.cjs.entry.js +0 -348
  199. package/dist/cjs/le-dropdown-base.entry.cjs.js.map +0 -1
  200. package/dist/cjs/le-select.cjs.entry.js +0 -188
  201. package/dist/cjs/le-select.entry.cjs.js.map +0 -1
  202. package/dist/esm/index-DzgCnDLJ.js.map +0 -1
  203. package/dist/esm/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.js.map +0 -1
  204. package/dist/esm/le-dropdown-base.entry.js +0 -346
  205. package/dist/esm/le-dropdown-base.entry.js.map +0 -1
  206. package/dist/esm/le-select.entry.js +0 -186
  207. package/dist/esm/le-select.entry.js.map +0 -1
  208. package/dist/le-kit/le-button.le-checkbox.le-component.le-popover.le-popup.le-slot.le-string-input.entry.esm.js.map +0 -1
  209. package/dist/le-kit/le-dropdown-base.entry.esm.js.map +0 -1
  210. package/dist/le-kit/le-select.entry.esm.js.map +0 -1
  211. package/dist/le-kit/p-4130c60b.entry.js +0 -2
  212. package/dist/le-kit/p-4130c60b.entry.js.map +0 -1
  213. package/dist/le-kit/p-DaA5gINj.js +0 -2
  214. package/dist/le-kit/p-DzgCnDLJ.js +0 -3
  215. package/dist/le-kit/p-DzgCnDLJ.js.map +0 -1
  216. package/dist/le-kit/p-beb87e61.entry.js +0 -2
  217. package/dist/le-kit/p-cc0797b0.entry.js +0 -2
  218. package/dist/le-kit/p-cc0797b0.entry.js.map +0 -1
  219. package/dist/le-kit/p-d504a369.entry.js +0 -2
  220. package/dist/le-kit/p-d504a369.entry.js.map +0 -1
  221. /package/dist/le-kit/{p-1f55a4a2.entry.js.map → p-13a4dc1d.entry.js.map} +0 -0
  222. /package/dist/le-kit/{p-0bd7803f.entry.js.map → p-1a9e65d0.entry.js.map} +0 -0
  223. /package/dist/le-kit/{p-7b180d58.entry.js.map → p-32cbb683.entry.js.map} +0 -0
  224. /package/dist/le-kit/{p-71c78784.entry.js.map → p-476e1886.entry.js.map} +0 -0
  225. /package/dist/le-kit/{p-beb87e61.entry.js.map → p-67d702f9.entry.js.map} +0 -0
  226. /package/dist/le-kit/{p-33612923.entry.js.map → p-6884e3e8.entry.js.map} +0 -0
  227. /package/dist/le-kit/{p-6ecdad85.entry.js.map → p-704ad5e0.entry.js.map} +0 -0
  228. /package/dist/le-kit/{p-432e8231.entry.js.map → p-88f9aa40.entry.js.map} +0 -0
  229. /package/dist/le-kit/{p-91993261.entry.js.map → p-8dd8a487.entry.js.map} +0 -0
  230. /package/dist/le-kit/{p-6ee06c44.entry.js.map → p-97b7658a.entry.js.map} +0 -0
  231. /package/dist/le-kit/{p-a5d31d40.entry.js.map → p-c0925e92.entry.js.map} +0 -0
  232. /package/dist/le-kit/{p-548d130b.entry.js.map → p-c2494a0d.entry.js.map} +0 -0
  233. /package/dist/le-kit/{p-3a52c4de.entry.js.map → p-ded51018.entry.js.map} +0 -0
  234. /package/dist/le-kit/{p-2c37f174.entry.js.map → p-e3db7974.entry.js.map} +0 -0
  235. /package/dist/le-kit/{p-b66fd9e1.entry.js.map → p-f9b03aec.entry.js.map} +0 -0
@@ -1100,6 +1100,599 @@
1100
1100
  }
1101
1101
  ]
1102
1102
  },
1103
+ {
1104
+ "kind": "javascript-module",
1105
+ "path": "src/components/le-combobox/le-combobox.tsx",
1106
+ "declarations": [
1107
+ {
1108
+ "kind": "class",
1109
+ "description": "A combobox component with searchable dropdown.\n\nCombines a text input with a dropdown list, allowing users to\nfilter options by typing or select from the list.",
1110
+ "name": "LeCombobox",
1111
+ "members": [
1112
+ {
1113
+ "kind": "field",
1114
+ "name": "el",
1115
+ "type": {
1116
+ "text": "HTMLElement"
1117
+ }
1118
+ },
1119
+ {
1120
+ "kind": "field",
1121
+ "name": "options",
1122
+ "type": {
1123
+ "text": "LeOption[] | string"
1124
+ },
1125
+ "default": "[]",
1126
+ "description": "The options to display in the dropdown."
1127
+ },
1128
+ {
1129
+ "kind": "field",
1130
+ "name": "value",
1131
+ "type": {
1132
+ "text": "LeOptionValue | undefined"
1133
+ },
1134
+ "description": "The currently selected value."
1135
+ },
1136
+ {
1137
+ "kind": "field",
1138
+ "name": "placeholder",
1139
+ "type": {
1140
+ "text": "string"
1141
+ },
1142
+ "default": "'Type to search...'",
1143
+ "description": "Placeholder text for the input."
1144
+ },
1145
+ {
1146
+ "kind": "field",
1147
+ "name": "disabled",
1148
+ "type": {
1149
+ "text": "boolean"
1150
+ },
1151
+ "default": "false",
1152
+ "description": "Whether the combobox is disabled."
1153
+ },
1154
+ {
1155
+ "kind": "field",
1156
+ "name": "required",
1157
+ "type": {
1158
+ "text": "boolean"
1159
+ },
1160
+ "default": "false",
1161
+ "description": "Whether selection is required."
1162
+ },
1163
+ {
1164
+ "kind": "field",
1165
+ "name": "name",
1166
+ "type": {
1167
+ "text": "string | undefined"
1168
+ },
1169
+ "description": "Name attribute for form submission."
1170
+ },
1171
+ {
1172
+ "kind": "field",
1173
+ "name": "fullWidth",
1174
+ "type": {
1175
+ "text": "boolean"
1176
+ },
1177
+ "default": "false",
1178
+ "description": "Whether the multiselect should take full width of its container."
1179
+ },
1180
+ {
1181
+ "kind": "field",
1182
+ "name": "size",
1183
+ "type": {
1184
+ "text": "'small' | 'medium' | 'large'"
1185
+ },
1186
+ "default": "'medium'",
1187
+ "description": "Size variant of the combobox."
1188
+ },
1189
+ {
1190
+ "kind": "field",
1191
+ "name": "allowCustom",
1192
+ "type": {
1193
+ "text": "boolean"
1194
+ },
1195
+ "default": "false",
1196
+ "description": "Whether to allow custom values not in the options list."
1197
+ },
1198
+ {
1199
+ "kind": "field",
1200
+ "name": "minSearchLength",
1201
+ "type": {
1202
+ "text": "number"
1203
+ },
1204
+ "default": "0",
1205
+ "description": "Minimum characters before showing filtered results."
1206
+ },
1207
+ {
1208
+ "kind": "field",
1209
+ "name": "emptyText",
1210
+ "type": {
1211
+ "text": "string"
1212
+ },
1213
+ "default": "'No results found'",
1214
+ "description": "Text to show when no options match the search."
1215
+ },
1216
+ {
1217
+ "kind": "field",
1218
+ "name": "open",
1219
+ "type": {
1220
+ "text": "boolean"
1221
+ },
1222
+ "default": "false",
1223
+ "description": "Whether the dropdown is currently open."
1224
+ },
1225
+ {
1226
+ "kind": "method",
1227
+ "name": "handleWindowClick",
1228
+ "parameters": [
1229
+ {
1230
+ "name": "event",
1231
+ "type": {
1232
+ "text": "MouseEvent"
1233
+ }
1234
+ }
1235
+ ]
1236
+ },
1237
+ {
1238
+ "kind": "field",
1239
+ "name": "inputValue",
1240
+ "type": {
1241
+ "text": "string"
1242
+ },
1243
+ "privacy": "private",
1244
+ "default": "''"
1245
+ },
1246
+ {
1247
+ "kind": "field",
1248
+ "name": "selectedOption",
1249
+ "type": {
1250
+ "text": "LeOption | undefined"
1251
+ },
1252
+ "privacy": "private"
1253
+ },
1254
+ {
1255
+ "kind": "field",
1256
+ "name": "dropdownEl",
1257
+ "type": {
1258
+ "text": "HTMLLeDropdownBaseElement | undefined"
1259
+ },
1260
+ "privacy": "private"
1261
+ },
1262
+ {
1263
+ "kind": "field",
1264
+ "name": "inputEl",
1265
+ "type": {
1266
+ "text": "HTMLInputElement | undefined"
1267
+ },
1268
+ "privacy": "private"
1269
+ },
1270
+ {
1271
+ "kind": "method",
1272
+ "name": "handleValueChange"
1273
+ },
1274
+ {
1275
+ "kind": "method",
1276
+ "name": "handleOptionsChange"
1277
+ },
1278
+ {
1279
+ "kind": "field",
1280
+ "name": "parsedOptions",
1281
+ "type": {
1282
+ "text": "LeOption[]"
1283
+ },
1284
+ "privacy": "private",
1285
+ "readonly": true
1286
+ },
1287
+ {
1288
+ "kind": "method",
1289
+ "name": "updateSelectedOption",
1290
+ "privacy": "private"
1291
+ },
1292
+ {
1293
+ "kind": "field",
1294
+ "name": "filterOption",
1295
+ "privacy": "private"
1296
+ },
1297
+ {
1298
+ "kind": "field",
1299
+ "name": "handleOptionSelect",
1300
+ "privacy": "private"
1301
+ },
1302
+ {
1303
+ "kind": "field",
1304
+ "name": "handleDropdownOpen",
1305
+ "privacy": "private"
1306
+ },
1307
+ {
1308
+ "kind": "field",
1309
+ "name": "handleDropdownClose",
1310
+ "privacy": "private"
1311
+ },
1312
+ {
1313
+ "kind": "field",
1314
+ "name": "handleInputChange",
1315
+ "privacy": "private"
1316
+ },
1317
+ {
1318
+ "kind": "field",
1319
+ "name": "handleInputFocus",
1320
+ "privacy": "private"
1321
+ },
1322
+ {
1323
+ "kind": "field",
1324
+ "name": "handleInputKeyDown",
1325
+ "privacy": "private"
1326
+ },
1327
+ {
1328
+ "kind": "field",
1329
+ "name": "handleClear",
1330
+ "privacy": "private"
1331
+ },
1332
+ {
1333
+ "kind": "method",
1334
+ "name": "showDropdown",
1335
+ "description": "Opens the dropdown."
1336
+ },
1337
+ {
1338
+ "kind": "method",
1339
+ "name": "hideDropdown",
1340
+ "description": "Closes the dropdown."
1341
+ },
1342
+ {
1343
+ "kind": "method",
1344
+ "name": "focusInput",
1345
+ "description": "Focuses the input element."
1346
+ },
1347
+ {
1348
+ "kind": "method",
1349
+ "name": "render"
1350
+ }
1351
+ ],
1352
+ "attributes": [
1353
+ {
1354
+ "name": "options",
1355
+ "fieldName": "options",
1356
+ "default": "[]",
1357
+ "description": "The options to display in the dropdown.",
1358
+ "type": {
1359
+ "text": "LeOption[] | string"
1360
+ }
1361
+ },
1362
+ {
1363
+ "name": "value",
1364
+ "fieldName": "value",
1365
+ "description": "The currently selected value.",
1366
+ "type": {
1367
+ "text": "LeOptionValue"
1368
+ }
1369
+ },
1370
+ {
1371
+ "name": "placeholder",
1372
+ "fieldName": "placeholder",
1373
+ "default": "'Type to search...'",
1374
+ "description": "Placeholder text for the input.",
1375
+ "type": {
1376
+ "text": "string"
1377
+ }
1378
+ },
1379
+ {
1380
+ "name": "disabled",
1381
+ "fieldName": "disabled",
1382
+ "default": "false",
1383
+ "description": "Whether the combobox is disabled.",
1384
+ "type": {
1385
+ "text": "boolean"
1386
+ }
1387
+ },
1388
+ {
1389
+ "name": "required",
1390
+ "fieldName": "required",
1391
+ "default": "false",
1392
+ "description": "Whether selection is required.",
1393
+ "type": {
1394
+ "text": "boolean"
1395
+ }
1396
+ },
1397
+ {
1398
+ "name": "name",
1399
+ "fieldName": "name",
1400
+ "description": "Name attribute for form submission.",
1401
+ "type": {
1402
+ "text": "string"
1403
+ }
1404
+ },
1405
+ {
1406
+ "name": "full-width",
1407
+ "fieldName": "fullWidth",
1408
+ "default": "false",
1409
+ "description": "Whether the multiselect should take full width of its container.",
1410
+ "type": {
1411
+ "text": "boolean"
1412
+ }
1413
+ },
1414
+ {
1415
+ "name": "size",
1416
+ "fieldName": "size",
1417
+ "default": "'medium'",
1418
+ "description": "Size variant of the combobox.",
1419
+ "type": {
1420
+ "text": "'small' | 'medium' | 'large'"
1421
+ }
1422
+ },
1423
+ {
1424
+ "name": "allow-custom",
1425
+ "fieldName": "allowCustom",
1426
+ "default": "false",
1427
+ "description": "Whether to allow custom values not in the options list.",
1428
+ "type": {
1429
+ "text": "boolean"
1430
+ }
1431
+ },
1432
+ {
1433
+ "name": "min-search-length",
1434
+ "fieldName": "minSearchLength",
1435
+ "default": "0",
1436
+ "description": "Minimum characters before showing filtered results.",
1437
+ "type": {
1438
+ "text": "number"
1439
+ }
1440
+ },
1441
+ {
1442
+ "name": "empty-text",
1443
+ "fieldName": "emptyText",
1444
+ "default": "'No results found'",
1445
+ "description": "Text to show when no options match the search.",
1446
+ "type": {
1447
+ "text": "string"
1448
+ }
1449
+ },
1450
+ {
1451
+ "name": "open",
1452
+ "fieldName": "open",
1453
+ "default": "false",
1454
+ "description": "Whether the dropdown is currently open.",
1455
+ "type": {
1456
+ "text": "boolean"
1457
+ }
1458
+ }
1459
+ ],
1460
+ "tagName": "le-combobox",
1461
+ "events": [
1462
+ {
1463
+ "name": "leChange",
1464
+ "type": {
1465
+ "text": "EventEmitter<LeOptionSelectDetail>"
1466
+ },
1467
+ "description": "Emitted when the selected value changes."
1468
+ },
1469
+ {
1470
+ "name": "leInput",
1471
+ "type": {
1472
+ "text": "EventEmitter<{ value: string }>"
1473
+ },
1474
+ "description": "Emitted when the input value changes (for custom values)."
1475
+ },
1476
+ {
1477
+ "name": "leOpen",
1478
+ "type": {
1479
+ "text": "EventEmitter<void>"
1480
+ },
1481
+ "description": "Emitted when the dropdown opens."
1482
+ },
1483
+ {
1484
+ "name": "leClose",
1485
+ "type": {
1486
+ "text": "EventEmitter<void>"
1487
+ },
1488
+ "description": "Emitted when the dropdown closes."
1489
+ }
1490
+ ],
1491
+ "customElement": true
1492
+ }
1493
+ ],
1494
+ "exports": [
1495
+ {
1496
+ "kind": "js",
1497
+ "name": "LeCombobox",
1498
+ "declaration": {
1499
+ "name": "LeCombobox",
1500
+ "module": "src/components/le-combobox/le-combobox.tsx"
1501
+ }
1502
+ },
1503
+ {
1504
+ "kind": "custom-element-definition",
1505
+ "name": "le-combobox",
1506
+ "declaration": {
1507
+ "name": "LeCombobox",
1508
+ "module": "src/components/le-combobox/le-combobox.tsx"
1509
+ }
1510
+ }
1511
+ ]
1512
+ },
1513
+ {
1514
+ "kind": "javascript-module",
1515
+ "path": "src/components/le-collapse/le-collapse.tsx",
1516
+ "declarations": [
1517
+ {
1518
+ "kind": "class",
1519
+ "description": "Animated show/hide wrapper.\n\nSupports height collapse (auto->0) and/or fading.\nCan optionally listen to the nearest `le-header` shrink events.",
1520
+ "name": "LeCollapse",
1521
+ "cssProperties": [
1522
+ {
1523
+ "description": "Transition duration",
1524
+ "name": "--le-collapse-duration"
1525
+ }
1526
+ ],
1527
+ "cssParts": [
1528
+ {
1529
+ "description": "Collapsible region",
1530
+ "name": "region"
1531
+ },
1532
+ {
1533
+ "description": "Inner content",
1534
+ "name": "content"
1535
+ }
1536
+ ],
1537
+ "slots": [
1538
+ {
1539
+ "description": "Content to animate",
1540
+ "name": ""
1541
+ }
1542
+ ],
1543
+ "members": [
1544
+ {
1545
+ "kind": "field",
1546
+ "name": "el",
1547
+ "type": {
1548
+ "text": "HTMLElement"
1549
+ }
1550
+ },
1551
+ {
1552
+ "kind": "field",
1553
+ "name": "open",
1554
+ "type": {
1555
+ "text": "boolean"
1556
+ },
1557
+ "default": "true",
1558
+ "description": "Whether the content should be shown."
1559
+ },
1560
+ {
1561
+ "kind": "field",
1562
+ "name": "scrollDown",
1563
+ "type": {
1564
+ "text": "boolean"
1565
+ },
1566
+ "default": "false",
1567
+ "description": "Whether the content should scroll down from the top when open."
1568
+ },
1569
+ {
1570
+ "kind": "field",
1571
+ "name": "noFading",
1572
+ "type": {
1573
+ "text": "boolean"
1574
+ },
1575
+ "default": "false",
1576
+ "description": "Stop fading the content when collapsing/expanding."
1577
+ },
1578
+ {
1579
+ "kind": "field",
1580
+ "name": "collapseOnHeaderShrink",
1581
+ "type": {
1582
+ "text": "boolean"
1583
+ },
1584
+ "default": "false",
1585
+ "description": "If true, collapse/expand based on the nearest header shrink event."
1586
+ },
1587
+ {
1588
+ "kind": "method",
1589
+ "name": "handleHeaderShrink",
1590
+ "parameters": [
1591
+ {
1592
+ "name": "ev",
1593
+ "type": {
1594
+ "text": "Event"
1595
+ }
1596
+ }
1597
+ ],
1598
+ "description": "Handles `leHeaderShrinkChange` events from the `le-header`.\nIn case multiple headers are present, only the nearest one in the DOM tree is used."
1599
+ },
1600
+ {
1601
+ "kind": "field",
1602
+ "name": "headerShrunk",
1603
+ "type": {
1604
+ "text": "boolean"
1605
+ },
1606
+ "privacy": "private",
1607
+ "default": "false"
1608
+ },
1609
+ {
1610
+ "kind": "method",
1611
+ "name": "onOpenChange",
1612
+ "privacy": "protected"
1613
+ },
1614
+ {
1615
+ "kind": "method",
1616
+ "name": "onDrivenStateChange",
1617
+ "privacy": "protected"
1618
+ },
1619
+ {
1620
+ "kind": "method",
1621
+ "name": "shouldBeOpen",
1622
+ "privacy": "private"
1623
+ },
1624
+ {
1625
+ "kind": "method",
1626
+ "name": "applyOpenState",
1627
+ "privacy": "private"
1628
+ },
1629
+ {
1630
+ "kind": "method",
1631
+ "name": "render"
1632
+ }
1633
+ ],
1634
+ "attributes": [
1635
+ {
1636
+ "name": "open",
1637
+ "fieldName": "open",
1638
+ "default": "true",
1639
+ "description": "Whether the content should be shown.",
1640
+ "type": {
1641
+ "text": "boolean"
1642
+ }
1643
+ },
1644
+ {
1645
+ "name": "scroll-down",
1646
+ "fieldName": "scrollDown",
1647
+ "default": "false",
1648
+ "description": "Whether the content should scroll down from the top when open.",
1649
+ "type": {
1650
+ "text": "boolean"
1651
+ }
1652
+ },
1653
+ {
1654
+ "name": "no-fading",
1655
+ "fieldName": "noFading",
1656
+ "default": "false",
1657
+ "description": "Stop fading the content when collapsing/expanding.",
1658
+ "type": {
1659
+ "text": "boolean"
1660
+ }
1661
+ },
1662
+ {
1663
+ "name": "collapse-on-header-shrink",
1664
+ "fieldName": "collapseOnHeaderShrink",
1665
+ "default": "false",
1666
+ "description": "If true, collapse/expand based on the nearest header shrink event.",
1667
+ "type": {
1668
+ "text": "boolean"
1669
+ }
1670
+ }
1671
+ ],
1672
+ "tagName": "le-collapse",
1673
+ "events": [],
1674
+ "customElement": true
1675
+ }
1676
+ ],
1677
+ "exports": [
1678
+ {
1679
+ "kind": "js",
1680
+ "name": "LeCollapse",
1681
+ "declaration": {
1682
+ "name": "LeCollapse",
1683
+ "module": "src/components/le-collapse/le-collapse.tsx"
1684
+ }
1685
+ },
1686
+ {
1687
+ "kind": "custom-element-definition",
1688
+ "name": "le-collapse",
1689
+ "declaration": {
1690
+ "name": "LeCollapse",
1691
+ "module": "src/components/le-collapse/le-collapse.tsx"
1692
+ }
1693
+ }
1694
+ ]
1695
+ },
1103
1696
  {
1104
1697
  "kind": "javascript-module",
1105
1698
  "path": "src/components/le-component/le-component.tsx",
@@ -1311,30 +1904,159 @@
1311
1904
  "description": "Handle property value changes from the editor"
1312
1905
  },
1313
1906
  {
1314
- "kind": "method",
1315
- "name": "deleteComponent",
1907
+ "kind": "method",
1908
+ "name": "deleteComponent",
1909
+ "privacy": "private",
1910
+ "description": "Delete this component from the DOM"
1911
+ },
1912
+ {
1913
+ "kind": "method",
1914
+ "name": "renderPropertyEditor",
1915
+ "privacy": "private",
1916
+ "description": "Render the property editor form"
1917
+ },
1918
+ {
1919
+ "kind": "method",
1920
+ "name": "renderPropertyField",
1921
+ "privacy": "private",
1922
+ "parameters": [
1923
+ {
1924
+ "name": "attr",
1925
+ "type": {
1926
+ "text": "AttributeMetadata"
1927
+ }
1928
+ }
1929
+ ],
1930
+ "description": "Render a single property field based on its type"
1931
+ },
1932
+ {
1933
+ "kind": "method",
1934
+ "name": "render"
1935
+ }
1936
+ ],
1937
+ "attributes": [
1938
+ {
1939
+ "name": "component",
1940
+ "fieldName": "component",
1941
+ "description": "The tag name of the component (e.g., 'le-card').\nUsed to look up property metadata and display the component name.",
1942
+ "type": {
1943
+ "text": "string"
1944
+ }
1945
+ },
1946
+ {
1947
+ "name": "display-name",
1948
+ "fieldName": "displayName",
1949
+ "description": "Optional display name for the component.\nIf not provided, the tag name will be formatted as the display name.",
1950
+ "type": {
1951
+ "text": "string"
1952
+ }
1953
+ },
1954
+ {
1955
+ "name": "host-class",
1956
+ "fieldName": "hostClass",
1957
+ "description": "Classes to apply to the host element.\nAllows parent components to pass their styling classes.",
1958
+ "type": {
1959
+ "text": "string"
1960
+ }
1961
+ },
1962
+ {
1963
+ "name": "host-style",
1964
+ "fieldName": "hostStyle",
1965
+ "description": "Inline styles to apply to the host element.\nAllows parent components to pass dynamic styles (e.g., flex properties).",
1966
+ "type": {
1967
+ "text": "{ [key: string]: string }"
1968
+ }
1969
+ }
1970
+ ],
1971
+ "tagName": "le-component",
1972
+ "events": [],
1973
+ "customElement": true
1974
+ }
1975
+ ],
1976
+ "exports": [
1977
+ {
1978
+ "kind": "js",
1979
+ "name": "LeComponent",
1980
+ "declaration": {
1981
+ "name": "LeComponent",
1982
+ "module": "src/components/le-component/le-component.tsx"
1983
+ }
1984
+ },
1985
+ {
1986
+ "kind": "custom-element-definition",
1987
+ "name": "le-component",
1988
+ "declaration": {
1989
+ "name": "LeComponent",
1990
+ "module": "src/components/le-component/le-component.tsx"
1991
+ }
1992
+ }
1993
+ ]
1994
+ },
1995
+ {
1996
+ "kind": "javascript-module",
1997
+ "path": "src/components/le-current-heading/le-current-heading.tsx",
1998
+ "declarations": [
1999
+ {
2000
+ "kind": "class",
2001
+ "description": "Shows a \"smart\" header title based on what has scrolled out of view.\n\nWhen `selector` matches multiple elements, the title becomes the last element\n(top-to-bottom) that has fully scrolled out above the viewport.",
2002
+ "name": "LeCurrentHeading",
2003
+ "cssParts": [
2004
+ {
2005
+ "description": "The rendered title",
2006
+ "name": "title"
2007
+ }
2008
+ ],
2009
+ "slots": [
2010
+ {
2011
+ "description": "Optional fallback content if no watched title is active",
2012
+ "name": ""
2013
+ }
2014
+ ],
2015
+ "members": [
2016
+ {
2017
+ "kind": "field",
2018
+ "name": "el",
2019
+ "type": {
2020
+ "text": "HTMLElement"
2021
+ }
2022
+ },
2023
+ {
2024
+ "kind": "field",
2025
+ "name": "selector",
2026
+ "type": {
2027
+ "text": "string"
2028
+ },
2029
+ "default": "''",
2030
+ "description": "CSS selector for page title/headings to watch (e.g. `.page-title`, `main h2`)."
2031
+ },
2032
+ {
2033
+ "kind": "field",
2034
+ "name": "activeText",
2035
+ "type": {
2036
+ "text": "string | null"
2037
+ },
1316
2038
  "privacy": "private",
1317
- "description": "Delete this component from the DOM"
2039
+ "default": "null"
1318
2040
  },
1319
2041
  {
1320
2042
  "kind": "method",
1321
- "name": "renderPropertyEditor",
1322
- "privacy": "private",
1323
- "description": "Render the property editor form"
2043
+ "name": "onSelectorChange",
2044
+ "privacy": "protected"
1324
2045
  },
1325
2046
  {
1326
2047
  "kind": "method",
1327
- "name": "renderPropertyField",
1328
- "privacy": "private",
1329
- "parameters": [
1330
- {
1331
- "name": "attr",
1332
- "type": {
1333
- "text": "AttributeMetadata"
1334
- }
1335
- }
1336
- ],
1337
- "description": "Render a single property field based on its type"
2048
+ "name": "onScroll",
2049
+ "privacy": "protected"
2050
+ },
2051
+ {
2052
+ "kind": "method",
2053
+ "name": "onResize",
2054
+ "privacy": "protected"
2055
+ },
2056
+ {
2057
+ "kind": "method",
2058
+ "name": "updateActiveTitle",
2059
+ "privacy": "private"
1338
2060
  },
1339
2061
  {
1340
2062
  "kind": "method",
@@ -1343,39 +2065,16 @@
1343
2065
  ],
1344
2066
  "attributes": [
1345
2067
  {
1346
- "name": "component",
1347
- "fieldName": "component",
1348
- "description": "The tag name of the component (e.g., 'le-card').\nUsed to look up property metadata and display the component name.",
1349
- "type": {
1350
- "text": "string"
1351
- }
1352
- },
1353
- {
1354
- "name": "display-name",
1355
- "fieldName": "displayName",
1356
- "description": "Optional display name for the component.\nIf not provided, the tag name will be formatted as the display name.",
1357
- "type": {
1358
- "text": "string"
1359
- }
1360
- },
1361
- {
1362
- "name": "host-class",
1363
- "fieldName": "hostClass",
1364
- "description": "Classes to apply to the host element.\nAllows parent components to pass their styling classes.",
2068
+ "name": "selector",
2069
+ "fieldName": "selector",
2070
+ "default": "''",
2071
+ "description": "CSS selector for page title/headings to watch (e.g. `.page-title`, `main h2`).",
1365
2072
  "type": {
1366
2073
  "text": "string"
1367
2074
  }
1368
- },
1369
- {
1370
- "name": "host-style",
1371
- "fieldName": "hostStyle",
1372
- "description": "Inline styles to apply to the host element.\nAllows parent components to pass dynamic styles (e.g., flex properties).",
1373
- "type": {
1374
- "text": "{ [key: string]: string }"
1375
- }
1376
2075
  }
1377
2076
  ],
1378
- "tagName": "le-component",
2077
+ "tagName": "le-current-heading",
1379
2078
  "events": [],
1380
2079
  "customElement": true
1381
2080
  }
@@ -1383,18 +2082,18 @@
1383
2082
  "exports": [
1384
2083
  {
1385
2084
  "kind": "js",
1386
- "name": "LeComponent",
2085
+ "name": "LeCurrentHeading",
1387
2086
  "declaration": {
1388
- "name": "LeComponent",
1389
- "module": "src/components/le-component/le-component.tsx"
2087
+ "name": "LeCurrentHeading",
2088
+ "module": "src/components/le-current-heading/le-current-heading.tsx"
1390
2089
  }
1391
2090
  },
1392
2091
  {
1393
2092
  "kind": "custom-element-definition",
1394
- "name": "le-component",
2093
+ "name": "le-current-heading",
1395
2094
  "declaration": {
1396
- "name": "LeComponent",
1397
- "module": "src/components/le-component/le-component.tsx"
2095
+ "name": "LeCurrentHeading",
2096
+ "module": "src/components/le-current-heading/le-current-heading.tsx"
1398
2097
  }
1399
2098
  }
1400
2099
  ]
@@ -1891,410 +2590,517 @@
1891
2590
  },
1892
2591
  {
1893
2592
  "kind": "javascript-module",
1894
- "path": "src/components/le-combobox/le-combobox.tsx",
2593
+ "path": "src/components/le-header/le-header.tsx",
1895
2594
  "declarations": [
1896
2595
  {
1897
2596
  "kind": "class",
1898
- "description": "A combobox component with searchable dropdown.\n\nCombines a text input with a dropdown list, allowing users to\nfilter options by typing or select from the list.",
1899
- "name": "LeCombobox",
1900
- "members": [
2597
+ "description": "A functional page header with scroll-aware behaviors.\n\nFeatures:\n- Static (default), sticky, or fixed positioning\n- Optional shrink-on-scroll behavior via `shrink-offset`\n- Optional reveal-on-scroll-up via `reveal-on-scroll` (sticky only)\n\nSlots:\n- `start`: left side (logo/back button)\n- `title`: centered/primary title content\n- `end`: right side actions\n- default: extra content row (e.g., tabs/search) rendered below main row",
2598
+ "name": "LeHeader",
2599
+ "cssProperties": [
1901
2600
  {
1902
- "kind": "field",
1903
- "name": "el",
1904
- "type": {
1905
- "text": "HTMLElement"
1906
- }
2601
+ "description": "Background (color/gradient)",
2602
+ "name": "--le-header-bg"
1907
2603
  },
1908
2604
  {
1909
- "kind": "field",
1910
- "name": "options",
1911
- "type": {
1912
- "text": "LeOption[] | string"
1913
- },
1914
- "default": "[]",
1915
- "description": "The options to display in the dropdown."
2605
+ "description": "Text color",
2606
+ "name": "--le-header-color"
1916
2607
  },
1917
2608
  {
1918
- "kind": "field",
1919
- "name": "value",
1920
- "type": {
1921
- "text": "LeOptionValue | undefined"
1922
- },
1923
- "description": "The currently selected value."
2609
+ "description": "Border (e.g. 1px solid ...)",
2610
+ "name": "--le-header-border"
1924
2611
  },
1925
2612
  {
1926
- "kind": "field",
1927
- "name": "placeholder",
1928
- "type": {
1929
- "text": "string"
1930
- },
1931
- "default": "'Type to search...'",
1932
- "description": "Placeholder text for the input."
2613
+ "description": "Shadow/elevation",
2614
+ "name": "--le-header-shadow"
1933
2615
  },
1934
2616
  {
1935
- "kind": "field",
1936
- "name": "disabled",
1937
- "type": {
1938
- "text": "boolean"
1939
- },
1940
- "default": "false",
1941
- "description": "Whether the combobox is disabled."
2617
+ "description": "Inner content max width",
2618
+ "name": "--le-header-max-width"
1942
2619
  },
1943
2620
  {
1944
- "kind": "field",
1945
- "name": "required",
1946
- "type": {
1947
- "text": "boolean"
1948
- },
1949
- "default": "false",
1950
- "description": "Whether selection is required."
2621
+ "description": "Horizontal padding",
2622
+ "name": "--le-header-padding-x"
2623
+ },
2624
+ {
2625
+ "description": "Vertical padding",
2626
+ "name": "--le-header-padding-y"
2627
+ },
2628
+ {
2629
+ "description": "Gap between zones",
2630
+ "name": "--le-header-gap"
2631
+ },
2632
+ {
2633
+ "description": "Base height (main row)",
2634
+ "name": "--le-header-height"
2635
+ },
2636
+ {
2637
+ "description": "Condensed height when shrunk",
2638
+ "name": "--le-header-height-condensed"
2639
+ },
2640
+ {
2641
+ "description": "Transition timing",
2642
+ "name": "--le-header-transition"
2643
+ },
2644
+ {
2645
+ "description": "Z-index (fixed mode)",
2646
+ "name": "--le-header-z"
2647
+ }
2648
+ ],
2649
+ "cssParts": [
2650
+ {
2651
+ "description": "The placeholder element that reserves space in fixed mode",
2652
+ "name": "placeholder"
2653
+ },
2654
+ {
2655
+ "description": "The header container",
2656
+ "name": "header"
2657
+ },
2658
+ {
2659
+ "description": "Inner max-width container",
2660
+ "name": "inner"
2661
+ },
2662
+ {
2663
+ "description": "Main row",
2664
+ "name": "row"
2665
+ },
2666
+ {
2667
+ "description": "Start zone",
2668
+ "name": "start"
2669
+ },
2670
+ {
2671
+ "description": "Title zone",
2672
+ "name": "title"
2673
+ },
2674
+ {
2675
+ "description": "End zone",
2676
+ "name": "end"
2677
+ },
2678
+ {
2679
+ "description": "Secondary row",
2680
+ "name": "secondary"
2681
+ }
2682
+ ],
2683
+ "slots": [
2684
+ {
2685
+ "description": "Start area content",
2686
+ "name": "start"
2687
+ },
2688
+ {
2689
+ "description": "Title content",
2690
+ "name": "title"
2691
+ },
2692
+ {
2693
+ "description": "End area content",
2694
+ "name": "end"
1951
2695
  },
2696
+ {
2697
+ "description": "Optional secondary row content",
2698
+ "name": ""
2699
+ }
2700
+ ],
2701
+ "members": [
1952
2702
  {
1953
2703
  "kind": "field",
1954
- "name": "name",
2704
+ "name": "el",
1955
2705
  "type": {
1956
- "text": "string | undefined"
1957
- },
1958
- "description": "Name attribute for form submission."
2706
+ "text": "HTMLElement"
2707
+ }
1959
2708
  },
1960
2709
  {
1961
2710
  "kind": "field",
1962
- "name": "fullWidth",
2711
+ "name": "isStatic",
1963
2712
  "type": {
1964
2713
  "text": "boolean"
1965
2714
  },
1966
2715
  "default": "false",
1967
- "description": "Whether the multiselect should take full width of its container."
2716
+ "description": "Force static positioning (default). Ignored if `sticky` or `fixed` are true."
1968
2717
  },
1969
2718
  {
1970
2719
  "kind": "field",
1971
- "name": "size",
2720
+ "name": "sticky",
1972
2721
  "type": {
1973
- "text": "'small' | 'medium' | 'large'"
2722
+ "text": "boolean"
1974
2723
  },
1975
- "default": "'medium'",
1976
- "description": "Size variant of the combobox."
2724
+ "default": "false",
2725
+ "description": "Sticky positioning (in-flow). Ignored if `fixed` is true."
1977
2726
  },
1978
2727
  {
1979
2728
  "kind": "field",
1980
- "name": "allowCustom",
2729
+ "name": "fixed",
1981
2730
  "type": {
1982
2731
  "text": "boolean"
1983
2732
  },
1984
2733
  "default": "false",
1985
- "description": "Whether to allow custom values not in the options list."
2734
+ "description": "Fixed positioning (out-of-flow). Takes precedence over `sticky`/`static`."
1986
2735
  },
1987
2736
  {
1988
2737
  "kind": "field",
1989
- "name": "minSearchLength",
2738
+ "name": "revealOnScroll",
1990
2739
  "type": {
1991
- "text": "number"
2740
+ "text": "string | undefined"
1992
2741
  },
1993
- "default": "0",
1994
- "description": "Minimum characters before showing filtered results."
2742
+ "description": "Sticky-only reveal behavior (hide on scroll down, show on scroll up).\n- missing/false: disabled\n- true/empty attribute: enabled with default threshold (16)\n- number (as string): enabled and used as threshold"
1995
2743
  },
1996
2744
  {
1997
2745
  "kind": "field",
1998
- "name": "emptyText",
2746
+ "name": "shrinkOffset",
1999
2747
  "type": {
2000
- "text": "string"
2748
+ "text": "string | undefined"
2001
2749
  },
2002
- "default": "'No results found'",
2003
- "description": "Text to show when no options match the search."
2750
+ "description": "Shrink trigger.\n- missing/0: disabled\n- number (px): shrink when scrollY >= that value (but never before header height)\n- css var name (e.g. --foo): shrink when scrollY >= resolved var value\n- selector (e.g. .page-title): shrink when that element scrolls out of view above the viewport"
2004
2751
  },
2005
2752
  {
2006
2753
  "kind": "field",
2007
- "name": "open",
2754
+ "name": "expandOnHover",
2008
2755
  "type": {
2009
2756
  "text": "boolean"
2010
2757
  },
2011
2758
  "default": "false",
2012
- "description": "Whether the dropdown is currently open."
2013
- },
2014
- {
2015
- "kind": "method",
2016
- "name": "handleWindowClick",
2017
- "parameters": [
2018
- {
2019
- "name": "event",
2020
- "type": {
2021
- "text": "MouseEvent"
2022
- }
2023
- }
2024
- ]
2759
+ "description": "If true, expand the header when hovered"
2025
2760
  },
2026
2761
  {
2027
2762
  "kind": "field",
2028
- "name": "inputValue",
2763
+ "name": "revealed",
2029
2764
  "type": {
2030
- "text": "string"
2765
+ "text": "boolean"
2031
2766
  },
2032
2767
  "privacy": "private",
2033
- "default": "''"
2768
+ "default": "true"
2034
2769
  },
2035
2770
  {
2036
2771
  "kind": "field",
2037
- "name": "selectedOption",
2772
+ "name": "shrunk",
2038
2773
  "type": {
2039
- "text": "LeOption | undefined"
2774
+ "text": "boolean"
2040
2775
  },
2041
- "privacy": "private"
2776
+ "privacy": "private",
2777
+ "default": "false"
2042
2778
  },
2043
2779
  {
2044
2780
  "kind": "field",
2045
- "name": "dropdownEl",
2781
+ "name": "placeholderHeight",
2046
2782
  "type": {
2047
- "text": "HTMLLeDropdownBaseElement | undefined"
2783
+ "text": "number | null"
2048
2784
  },
2049
- "privacy": "private"
2785
+ "privacy": "private",
2786
+ "default": "null"
2050
2787
  },
2051
2788
  {
2052
2789
  "kind": "field",
2053
- "name": "inputEl",
2790
+ "name": "hoverActive",
2054
2791
  "type": {
2055
- "text": "HTMLInputElement | undefined"
2792
+ "text": "boolean"
2056
2793
  },
2057
- "privacy": "private"
2058
- },
2059
- {
2060
- "kind": "method",
2061
- "name": "handleValueChange"
2062
- },
2063
- {
2064
- "kind": "method",
2065
- "name": "handleOptionsChange"
2794
+ "privacy": "private",
2795
+ "default": "false"
2066
2796
  },
2067
2797
  {
2068
2798
  "kind": "field",
2069
- "name": "parsedOptions",
2799
+ "name": "disconnectModeObserver",
2070
2800
  "type": {
2071
- "text": "LeOption[]"
2801
+ "text": "() => void | undefined"
2072
2802
  },
2073
- "privacy": "private",
2074
- "readonly": true
2075
- },
2076
- {
2077
- "kind": "method",
2078
- "name": "updateSelectedOption",
2079
- "privacy": "private"
2080
- },
2081
- {
2082
- "kind": "field",
2083
- "name": "filterOption",
2084
- "privacy": "private"
2085
- },
2086
- {
2087
- "kind": "field",
2088
- "name": "handleOptionSelect",
2089
2803
  "privacy": "private"
2090
2804
  },
2091
2805
  {
2092
2806
  "kind": "field",
2093
- "name": "handleDropdownOpen",
2094
- "privacy": "private"
2807
+ "name": "rafId",
2808
+ "type": {
2809
+ "text": "number | null"
2810
+ },
2811
+ "privacy": "private",
2812
+ "default": "null"
2095
2813
  },
2096
2814
  {
2097
2815
  "kind": "field",
2098
- "name": "handleDropdownClose",
2099
- "privacy": "private"
2816
+ "name": "measureRafId",
2817
+ "type": {
2818
+ "text": "number | null"
2819
+ },
2820
+ "privacy": "private",
2821
+ "default": "null"
2100
2822
  },
2101
2823
  {
2102
2824
  "kind": "field",
2103
- "name": "handleInputChange",
2104
- "privacy": "private"
2825
+ "name": "lastY",
2826
+ "type": {
2827
+ "text": "number"
2828
+ },
2829
+ "privacy": "private",
2830
+ "default": "0"
2105
2831
  },
2106
2832
  {
2107
2833
  "kind": "field",
2108
- "name": "handleInputFocus",
2109
- "privacy": "private"
2834
+ "name": "lastEmittedDirection",
2835
+ "type": {
2836
+ "text": "'up' | 'down'"
2837
+ },
2838
+ "privacy": "private",
2839
+ "default": "'down'"
2110
2840
  },
2111
2841
  {
2112
2842
  "kind": "field",
2113
- "name": "handleInputKeyDown",
2843
+ "name": "headerEl",
2844
+ "type": {
2845
+ "text": "HTMLElement | undefined"
2846
+ },
2114
2847
  "privacy": "private"
2115
2848
  },
2116
2849
  {
2117
2850
  "kind": "field",
2118
- "name": "handleClear",
2851
+ "name": "shrinkSelectorEl",
2852
+ "type": {
2853
+ "text": "Element | null | undefined"
2854
+ },
2119
2855
  "privacy": "private"
2120
2856
  },
2121
2857
  {
2122
2858
  "kind": "method",
2123
- "name": "showDropdown",
2124
- "description": "Opens the dropdown."
2859
+ "name": "setShrunk",
2860
+ "privacy": "private",
2861
+ "parameters": [
2862
+ {
2863
+ "name": "next",
2864
+ "type": {
2865
+ "text": "boolean"
2866
+ }
2867
+ },
2868
+ {
2869
+ "name": "y",
2870
+ "type": {
2871
+ "text": "number"
2872
+ }
2873
+ }
2874
+ ]
2125
2875
  },
2126
2876
  {
2127
2877
  "kind": "method",
2128
- "name": "hideDropdown",
2129
- "description": "Closes the dropdown."
2878
+ "name": "onBehaviorPropsChange",
2879
+ "privacy": "protected"
2130
2880
  },
2131
2881
  {
2132
2882
  "kind": "method",
2133
- "name": "focusInput",
2134
- "description": "Focuses the input element."
2883
+ "name": "onWindowScroll",
2884
+ "privacy": "protected"
2135
2885
  },
2136
2886
  {
2137
2887
  "kind": "method",
2138
- "name": "render"
2139
- }
2140
- ],
2141
- "attributes": [
2888
+ "name": "onWindowResize",
2889
+ "privacy": "protected"
2890
+ },
2142
2891
  {
2143
- "name": "options",
2144
- "fieldName": "options",
2145
- "default": "[]",
2146
- "description": "The options to display in the dropdown.",
2147
- "type": {
2148
- "text": "LeOption[] | string"
2892
+ "kind": "method",
2893
+ "name": "getPosition",
2894
+ "privacy": "private",
2895
+ "return": {
2896
+ "type": {
2897
+ "text": "LeHeaderPosition"
2898
+ }
2149
2899
  }
2150
2900
  },
2151
2901
  {
2152
- "name": "value",
2153
- "fieldName": "value",
2154
- "description": "The currently selected value.",
2155
- "type": {
2156
- "text": "LeOptionValue"
2902
+ "kind": "method",
2903
+ "name": "parseRevealThreshold",
2904
+ "privacy": "private",
2905
+ "return": {
2906
+ "type": {
2907
+ "text": "number | null"
2908
+ }
2157
2909
  }
2158
2910
  },
2159
2911
  {
2160
- "name": "placeholder",
2161
- "fieldName": "placeholder",
2162
- "default": "'Type to search...'",
2163
- "description": "Placeholder text for the input.",
2164
- "type": {
2165
- "text": "string"
2912
+ "kind": "method",
2913
+ "name": "resolveShrinkStartPx",
2914
+ "privacy": "private",
2915
+ "return": {
2916
+ "type": {
2917
+ "text": "number | null"
2918
+ }
2166
2919
  }
2167
2920
  },
2168
2921
  {
2169
- "name": "disabled",
2170
- "fieldName": "disabled",
2171
- "default": "false",
2172
- "description": "Whether the combobox is disabled.",
2173
- "type": {
2174
- "text": "boolean"
2175
- }
2922
+ "kind": "method",
2923
+ "name": "scheduleUpdate",
2924
+ "privacy": "private",
2925
+ "parameters": [
2926
+ {
2927
+ "name": "force",
2928
+ "default": "false",
2929
+ "type": {
2930
+ "text": "boolean"
2931
+ }
2932
+ }
2933
+ ]
2176
2934
  },
2177
2935
  {
2178
- "name": "required",
2179
- "fieldName": "required",
2180
- "default": "false",
2181
- "description": "Whether selection is required.",
2182
- "type": {
2183
- "text": "boolean"
2184
- }
2936
+ "kind": "method",
2937
+ "name": "scheduleMeasure",
2938
+ "privacy": "private",
2939
+ "parameters": [
2940
+ {
2941
+ "name": "force",
2942
+ "default": "false",
2943
+ "type": {
2944
+ "text": "boolean"
2945
+ }
2946
+ }
2947
+ ]
2185
2948
  },
2186
2949
  {
2187
- "name": "name",
2188
- "fieldName": "name",
2189
- "description": "Name attribute for form submission.",
2190
- "type": {
2191
- "text": "string"
2192
- }
2950
+ "kind": "method",
2951
+ "name": "measurePlaceholderHeight",
2952
+ "privacy": "private"
2193
2953
  },
2194
2954
  {
2195
- "name": "full-width",
2196
- "fieldName": "fullWidth",
2955
+ "kind": "method",
2956
+ "name": "updateFromScroll",
2957
+ "privacy": "private"
2958
+ },
2959
+ {
2960
+ "kind": "method",
2961
+ "name": "render"
2962
+ }
2963
+ ],
2964
+ "attributes": [
2965
+ {
2966
+ "name": "static",
2967
+ "fieldName": "isStatic",
2197
2968
  "default": "false",
2198
- "description": "Whether the multiselect should take full width of its container.",
2969
+ "description": "Force static positioning (default). Ignored if `sticky` or `fixed` are true.",
2199
2970
  "type": {
2200
2971
  "text": "boolean"
2201
2972
  }
2202
2973
  },
2203
2974
  {
2204
- "name": "size",
2205
- "fieldName": "size",
2206
- "default": "'medium'",
2207
- "description": "Size variant of the combobox.",
2975
+ "name": "sticky",
2976
+ "fieldName": "sticky",
2977
+ "default": "false",
2978
+ "description": "Sticky positioning (in-flow). Ignored if `fixed` is true.",
2208
2979
  "type": {
2209
- "text": "'small' | 'medium' | 'large'"
2980
+ "text": "boolean"
2210
2981
  }
2211
2982
  },
2212
2983
  {
2213
- "name": "allow-custom",
2214
- "fieldName": "allowCustom",
2984
+ "name": "fixed",
2985
+ "fieldName": "fixed",
2215
2986
  "default": "false",
2216
- "description": "Whether to allow custom values not in the options list.",
2987
+ "description": "Fixed positioning (out-of-flow). Takes precedence over `sticky`/`static`.",
2217
2988
  "type": {
2218
2989
  "text": "boolean"
2219
2990
  }
2220
2991
  },
2221
2992
  {
2222
- "name": "min-search-length",
2223
- "fieldName": "minSearchLength",
2224
- "default": "0",
2225
- "description": "Minimum characters before showing filtered results.",
2993
+ "name": "reveal-on-scroll",
2994
+ "fieldName": "revealOnScroll",
2995
+ "description": "Sticky-only reveal behavior (hide on scroll down, show on scroll up).\n- missing/false: disabled\n- true/empty attribute: enabled with default threshold (16)\n- number (as string): enabled and used as threshold",
2226
2996
  "type": {
2227
- "text": "number"
2997
+ "text": "string"
2228
2998
  }
2229
2999
  },
2230
3000
  {
2231
- "name": "empty-text",
2232
- "fieldName": "emptyText",
2233
- "default": "'No results found'",
2234
- "description": "Text to show when no options match the search.",
3001
+ "name": "shrink-offset",
3002
+ "fieldName": "shrinkOffset",
3003
+ "description": "Shrink trigger.\n- missing/0: disabled\n- number (px): shrink when scrollY >= that value (but never before header height)\n- css var name (e.g. --foo): shrink when scrollY >= resolved var value\n- selector (e.g. .page-title): shrink when that element scrolls out of view above the viewport",
2235
3004
  "type": {
2236
3005
  "text": "string"
2237
3006
  }
2238
3007
  },
2239
3008
  {
2240
- "name": "open",
2241
- "fieldName": "open",
3009
+ "name": "expand-on-hover",
3010
+ "fieldName": "expandOnHover",
2242
3011
  "default": "false",
2243
- "description": "Whether the dropdown is currently open.",
3012
+ "description": "If true, expand the header when hovered",
2244
3013
  "type": {
2245
3014
  "text": "boolean"
2246
3015
  }
2247
3016
  }
2248
3017
  ],
2249
- "tagName": "le-combobox",
3018
+ "tagName": "le-header",
2250
3019
  "events": [
2251
3020
  {
2252
- "name": "leChange",
3021
+ "name": "leHeaderState",
2253
3022
  "type": {
2254
- "text": "EventEmitter<LeOptionSelectDetail>"
3023
+ "text": "EventEmitter<{\n y: number;\n direction: 'up' | 'down';\n revealed: boolean;\n shrunk: boolean;\n }>"
2255
3024
  },
2256
- "description": "Emitted when the selected value changes."
3025
+ "description": "Emits whenever scroll-driven state changes."
2257
3026
  },
2258
3027
  {
2259
- "name": "leInput",
3028
+ "name": "leHeaderShrinkChange",
2260
3029
  "type": {
2261
- "text": "EventEmitter<{ value: string }>"
3030
+ "text": "EventEmitter<{ shrunk: boolean; y: number }>"
2262
3031
  },
2263
- "description": "Emitted when the input value changes (for custom values)."
3032
+ "description": "Emits when the header shrinks/expands (only on change)."
2264
3033
  },
2265
3034
  {
2266
- "name": "leOpen",
3035
+ "name": "leHeaderVisibilityChange",
2267
3036
  "type": {
2268
- "text": "EventEmitter<void>"
3037
+ "text": "EventEmitter<{ visible: boolean; y: number }>"
2269
3038
  },
2270
- "description": "Emitted when the dropdown opens."
2271
- },
3039
+ "description": "Emits when the header hides/shows (only on change)."
3040
+ }
3041
+ ],
3042
+ "customElement": true
3043
+ }
3044
+ ],
3045
+ "exports": [
3046
+ {
3047
+ "kind": "js",
3048
+ "name": "LeHeader",
3049
+ "declaration": {
3050
+ "name": "LeHeader",
3051
+ "module": "src/components/le-header/le-header.tsx"
3052
+ }
3053
+ },
3054
+ {
3055
+ "kind": "custom-element-definition",
3056
+ "name": "le-header",
3057
+ "declaration": {
3058
+ "name": "LeHeader",
3059
+ "module": "src/components/le-header/le-header.tsx"
3060
+ }
3061
+ }
3062
+ ]
3063
+ },
3064
+ {
3065
+ "kind": "javascript-module",
3066
+ "path": "src/components/le-header-placeholder/le-header-placeholder.tsx",
3067
+ "declarations": [
3068
+ {
3069
+ "kind": "class",
3070
+ "description": "Placeholder for `le-header`.\n\nReserves space using the global CSS variable `--le-header-height`.\nThe header component updates that variable when it renders.",
3071
+ "name": "LeHeaderPlaceholder",
3072
+ "cssProperties": [
2272
3073
  {
2273
- "name": "leClose",
2274
- "type": {
2275
- "text": "EventEmitter<void>"
2276
- },
2277
- "description": "Emitted when the dropdown closes."
3074
+ "description": "Published header height (px)",
3075
+ "name": "--le-header-height"
3076
+ }
3077
+ ],
3078
+ "members": [
3079
+ {
3080
+ "kind": "method",
3081
+ "name": "render"
2278
3082
  }
2279
3083
  ],
3084
+ "tagName": "le-header-placeholder",
3085
+ "events": [],
2280
3086
  "customElement": true
2281
3087
  }
2282
3088
  ],
2283
3089
  "exports": [
2284
3090
  {
2285
3091
  "kind": "js",
2286
- "name": "LeCombobox",
3092
+ "name": "LeHeaderPlaceholder",
2287
3093
  "declaration": {
2288
- "name": "LeCombobox",
2289
- "module": "src/components/le-combobox/le-combobox.tsx"
3094
+ "name": "LeHeaderPlaceholder",
3095
+ "module": "src/components/le-header-placeholder/le-header-placeholder.tsx"
2290
3096
  }
2291
3097
  },
2292
3098
  {
2293
3099
  "kind": "custom-element-definition",
2294
- "name": "le-combobox",
3100
+ "name": "le-header-placeholder",
2295
3101
  "declaration": {
2296
- "name": "LeCombobox",
2297
- "module": "src/components/le-combobox/le-combobox.tsx"
3102
+ "name": "LeHeaderPlaceholder",
3103
+ "module": "src/components/le-header-placeholder/le-header-placeholder.tsx"
2298
3104
  }
2299
3105
  }
2300
3106
  ]
@@ -3333,38 +4139,100 @@
3333
4139
  "default": "false"
3334
4140
  },
3335
4141
  {
3336
- "kind": "field",
3337
- "name": "triggerEl",
3338
- "type": {
3339
- "text": "HTMLElement | undefined"
4142
+ "kind": "field",
4143
+ "name": "triggerEl",
4144
+ "type": {
4145
+ "text": "HTMLElement | undefined"
4146
+ },
4147
+ "privacy": "private"
4148
+ },
4149
+ {
4150
+ "kind": "field",
4151
+ "name": "popoverEl",
4152
+ "type": {
4153
+ "text": "HTMLElement | undefined"
4154
+ },
4155
+ "privacy": "private"
4156
+ },
4157
+ {
4158
+ "kind": "field",
4159
+ "name": "uniqueId",
4160
+ "type": {
4161
+ "text": "string"
4162
+ },
4163
+ "privacy": "private",
4164
+ "default": "`le-popover-${Math.random().toString(36).substr(2, 9)}`"
4165
+ },
4166
+ {
4167
+ "kind": "field",
4168
+ "name": "scrollParents",
4169
+ "type": {
4170
+ "text": "Element[]"
4171
+ },
4172
+ "privacy": "private",
4173
+ "default": "[]"
4174
+ },
4175
+ {
4176
+ "kind": "field",
4177
+ "name": "isListeningForDismiss",
4178
+ "type": {
4179
+ "text": "boolean"
4180
+ },
4181
+ "privacy": "private",
4182
+ "default": "false"
4183
+ },
4184
+ {
4185
+ "kind": "field",
4186
+ "name": "supportsPopoverApi",
4187
+ "type": {
4188
+ "text": "boolean"
4189
+ },
4190
+ "privacy": "private",
4191
+ "readonly": true
4192
+ },
4193
+ {
4194
+ "kind": "method",
4195
+ "name": "shadowContains",
4196
+ "privacy": "private",
4197
+ "return": {
4198
+ "type": {
4199
+ "text": "boolean"
4200
+ }
3340
4201
  },
4202
+ "parameters": [
4203
+ {
4204
+ "name": "container",
4205
+ "type": {
4206
+ "text": "HTMLElement"
4207
+ }
4208
+ },
4209
+ {
4210
+ "name": "node",
4211
+ "type": {
4212
+ "text": "HTMLElement"
4213
+ }
4214
+ }
4215
+ ]
4216
+ },
4217
+ {
4218
+ "kind": "method",
4219
+ "name": "addDismissListeners",
3341
4220
  "privacy": "private"
3342
4221
  },
3343
4222
  {
3344
- "kind": "field",
3345
- "name": "popoverEl",
3346
- "type": {
3347
- "text": "HTMLElement | undefined"
3348
- },
4223
+ "kind": "method",
4224
+ "name": "removeDismissListeners",
3349
4225
  "privacy": "private"
3350
4226
  },
3351
4227
  {
3352
4228
  "kind": "field",
3353
- "name": "uniqueId",
3354
- "type": {
3355
- "text": "string"
3356
- },
3357
- "privacy": "private",
3358
- "default": "`le-popover-${Math.random().toString(36).substr(2, 9)}`"
4229
+ "name": "handleDocumentPointerDown",
4230
+ "privacy": "private"
3359
4231
  },
3360
4232
  {
3361
4233
  "kind": "field",
3362
- "name": "scrollParents",
3363
- "type": {
3364
- "text": "Element[]"
3365
- },
3366
- "privacy": "private",
3367
- "default": "[]"
4234
+ "name": "handleDocumentKeyDown",
4235
+ "privacy": "private"
3368
4236
  },
3369
4237
  {
3370
4238
  "kind": "method",
@@ -3402,6 +4270,16 @@
3402
4270
  "name": "handleScroll",
3403
4271
  "privacy": "private"
3404
4272
  },
4273
+ {
4274
+ "kind": "method",
4275
+ "name": "handleOpened",
4276
+ "privacy": "private"
4277
+ },
4278
+ {
4279
+ "kind": "method",
4280
+ "name": "handleClosed",
4281
+ "privacy": "private"
4282
+ },
3405
4283
  {
3406
4284
  "kind": "field",
3407
4285
  "name": "handlePopoverToggle",
@@ -4185,12 +5063,56 @@
4185
5063
  },
4186
5064
  {
4187
5065
  "kind": "javascript-module",
4188
- "path": "src/components/le-select/le-select.tsx",
5066
+ "path": "src/components/le-scroll-progress/le-scroll-progress.tsx",
4189
5067
  "declarations": [
4190
5068
  {
4191
5069
  "kind": "class",
4192
- "description": "A select dropdown component for single selection.",
4193
- "name": "LeSelect",
5070
+ "description": "Displays scroll progress as a simple bar.\n\nIf `track-scroll-progress` is present without a value, tracks the full document.\nIf it is a selector string, tracks progress within the matched element.",
5071
+ "name": "LeScrollProgress",
5072
+ "cssProperties": [
5073
+ {
5074
+ "description": "Bar height",
5075
+ "name": "--le-scroll-progress-height"
5076
+ },
5077
+ {
5078
+ "description": "Track background",
5079
+ "name": "--le-scroll-progress-bg"
5080
+ },
5081
+ {
5082
+ "description": "Fill color",
5083
+ "name": "--le-scroll-progress-fill"
5084
+ },
5085
+ {
5086
+ "description": "If sticky, stop position to parent top",
5087
+ "name": "--le-scroll-progress-sticky-top"
5088
+ },
5089
+ {
5090
+ "description": "If fixed, distance from window top",
5091
+ "name": "--le-scroll-progress-fixed-top"
5092
+ },
5093
+ {
5094
+ "description": "If fixed, distance from window left",
5095
+ "name": "--le-scroll-progress-fixed-left"
5096
+ },
5097
+ {
5098
+ "description": "If fixed, distance from window right",
5099
+ "name": "--le-scroll-progress-fixed-right"
5100
+ },
5101
+ {
5102
+ "description": "Z-index of the progress bar (1001 by default, above header)",
5103
+ "name": "--le-scroll-progress-z"
5104
+ }
5105
+ ],
5106
+ "cssParts": [
5107
+ {
5108
+ "description": "Outer track",
5109
+ "name": "track"
5110
+ },
5111
+ {
5112
+ "description": "Inner fill",
5113
+ "name": "fill"
5114
+ }
5115
+ ],
4194
5116
  "members": [
4195
5117
  {
4196
5118
  "kind": "field",
@@ -4201,219 +5123,396 @@
4201
5123
  },
4202
5124
  {
4203
5125
  "kind": "field",
4204
- "name": "options",
5126
+ "name": "trackScrollProgress",
4205
5127
  "type": {
4206
- "text": "LeOption[] | string"
5128
+ "text": "string | undefined"
4207
5129
  },
4208
- "default": "[]",
4209
- "description": "The options to display in the dropdown."
5130
+ "description": "Boolean or selector string."
4210
5131
  },
4211
5132
  {
4212
5133
  "kind": "field",
4213
- "name": "value",
5134
+ "name": "progress",
4214
5135
  "type": {
4215
- "text": "LeOptionValue | undefined"
5136
+ "text": "number"
4216
5137
  },
4217
- "description": "The currently selected value."
5138
+ "privacy": "private",
5139
+ "default": "0"
4218
5140
  },
4219
5141
  {
4220
5142
  "kind": "field",
4221
- "name": "placeholder",
5143
+ "name": "rafId",
4222
5144
  "type": {
4223
- "text": "string"
5145
+ "text": "number | null"
4224
5146
  },
4225
- "default": "'Select an option'",
4226
- "description": "Placeholder text when no option is selected."
5147
+ "privacy": "private",
5148
+ "default": "null"
4227
5149
  },
4228
5150
  {
4229
5151
  "kind": "field",
4230
- "name": "disabled",
5152
+ "name": "targetEl",
4231
5153
  "type": {
4232
- "text": "boolean"
5154
+ "text": "Element | null"
4233
5155
  },
4234
- "default": "false",
4235
- "description": "Whether the select is disabled."
5156
+ "privacy": "private",
5157
+ "default": "null"
5158
+ },
5159
+ {
5160
+ "kind": "method",
5161
+ "name": "onTrackChange",
5162
+ "privacy": "protected"
5163
+ },
5164
+ {
5165
+ "kind": "method",
5166
+ "name": "onScroll",
5167
+ "privacy": "protected"
5168
+ },
5169
+ {
5170
+ "kind": "method",
5171
+ "name": "onResize",
5172
+ "privacy": "protected"
5173
+ },
5174
+ {
5175
+ "kind": "method",
5176
+ "name": "scheduleUpdate",
5177
+ "privacy": "private",
5178
+ "parameters": [
5179
+ {
5180
+ "name": "force",
5181
+ "default": "false",
5182
+ "type": {
5183
+ "text": "boolean"
5184
+ }
5185
+ }
5186
+ ]
5187
+ },
5188
+ {
5189
+ "kind": "method",
5190
+ "name": "resolveTarget",
5191
+ "privacy": "private"
5192
+ },
5193
+ {
5194
+ "kind": "method",
5195
+ "name": "clamp01",
5196
+ "privacy": "private",
5197
+ "parameters": [
5198
+ {
5199
+ "name": "n",
5200
+ "type": {
5201
+ "text": "number"
5202
+ }
5203
+ }
5204
+ ]
5205
+ },
5206
+ {
5207
+ "kind": "method",
5208
+ "name": "updateProgress",
5209
+ "privacy": "private"
5210
+ },
5211
+ {
5212
+ "kind": "method",
5213
+ "name": "render"
5214
+ }
5215
+ ],
5216
+ "attributes": [
5217
+ {
5218
+ "name": "track-scroll-progress",
5219
+ "fieldName": "trackScrollProgress",
5220
+ "description": "Boolean or selector string.",
5221
+ "type": {
5222
+ "text": "string"
5223
+ }
5224
+ }
5225
+ ],
5226
+ "tagName": "le-scroll-progress",
5227
+ "events": [],
5228
+ "customElement": true
5229
+ }
5230
+ ],
5231
+ "exports": [
5232
+ {
5233
+ "kind": "js",
5234
+ "name": "LeScrollProgress",
5235
+ "declaration": {
5236
+ "name": "LeScrollProgress",
5237
+ "module": "src/components/le-scroll-progress/le-scroll-progress.tsx"
5238
+ }
5239
+ },
5240
+ {
5241
+ "kind": "custom-element-definition",
5242
+ "name": "le-scroll-progress",
5243
+ "declaration": {
5244
+ "name": "LeScrollProgress",
5245
+ "module": "src/components/le-scroll-progress/le-scroll-progress.tsx"
5246
+ }
5247
+ }
5248
+ ]
5249
+ },
5250
+ {
5251
+ "kind": "javascript-module",
5252
+ "path": "src/components/le-segmented-control/le-segmented-control.tsx",
5253
+ "declarations": [
5254
+ {
5255
+ "kind": "class",
5256
+ "description": "A segmented control component (iOS-style toggle buttons).\n\nPerfect for toggling between a small set of related options.",
5257
+ "name": "LeSegmentedControl",
5258
+ "cssProperties": [
5259
+ {
5260
+ "description": "Background color of the control",
5261
+ "name": "--le-segmented-bg"
5262
+ },
5263
+ {
5264
+ "description": "Padding around segments",
5265
+ "name": "--le-segmented-padding"
5266
+ },
5267
+ {
5268
+ "description": "Gap between segments",
5269
+ "name": "--le-segmented-gap"
5270
+ },
5271
+ {
5272
+ "description": "Border radius of the control",
5273
+ "name": "--le-segmented-radius"
5274
+ }
5275
+ ],
5276
+ "cssParts": [
5277
+ {
5278
+ "description": "The main container",
5279
+ "name": "container"
4236
5280
  },
5281
+ {
5282
+ "description": "Individual segment buttons",
5283
+ "name": "segment"
5284
+ },
5285
+ {
5286
+ "description": "The currently active segment",
5287
+ "name": "segment-active"
5288
+ }
5289
+ ],
5290
+ "members": [
4237
5291
  {
4238
5292
  "kind": "field",
4239
- "name": "required",
5293
+ "name": "el",
4240
5294
  "type": {
4241
- "text": "boolean"
4242
- },
4243
- "default": "false",
4244
- "description": "Whether selection is required."
5295
+ "text": "HTMLElement"
5296
+ }
4245
5297
  },
4246
5298
  {
4247
5299
  "kind": "field",
4248
- "name": "name",
5300
+ "name": "containerRef",
4249
5301
  "type": {
4250
- "text": "string | undefined"
5302
+ "text": "HTMLElement | undefined"
4251
5303
  },
4252
- "description": "Name attribute for form submission."
5304
+ "privacy": "private"
4253
5305
  },
4254
5306
  {
4255
5307
  "kind": "field",
4256
- "name": "fullWidth",
5308
+ "name": "options",
4257
5309
  "type": {
4258
- "text": "boolean"
5310
+ "text": "LeOption[]"
4259
5311
  },
4260
- "default": "false",
4261
- "description": "Whether the select should take full width of its container."
5312
+ "default": "[]",
5313
+ "description": "Array of options for the segmented control."
4262
5314
  },
4263
5315
  {
4264
5316
  "kind": "field",
4265
- "name": "size",
5317
+ "name": "value",
4266
5318
  "type": {
4267
- "text": "'small' | 'medium' | 'large'"
5319
+ "text": "LeOptionValue | undefined"
4268
5320
  },
4269
- "default": "'medium'",
4270
- "description": "Size variant of the select."
5321
+ "description": "The value of the currently selected option."
4271
5322
  },
4272
5323
  {
4273
5324
  "kind": "field",
4274
- "name": "variant",
5325
+ "name": "size",
4275
5326
  "type": {
4276
- "text": "'default' | 'outlined' | 'solid'"
5327
+ "text": "'small' | 'medium' | 'large'"
4277
5328
  },
4278
- "default": "'default'",
4279
- "description": "Visual variant of the select."
5329
+ "default": "'medium'",
5330
+ "description": "Size of the control."
4280
5331
  },
4281
5332
  {
4282
5333
  "kind": "field",
4283
- "name": "searchable",
5334
+ "name": "overflow",
4284
5335
  "type": {
4285
- "text": "boolean"
5336
+ "text": "'auto' | 'hidden' | 'visible' | 'scroll'"
4286
5337
  },
4287
- "default": "false",
4288
- "description": "Whether the input is searchable."
5338
+ "default": "'auto'",
5339
+ "description": "Scroll behavior for overflowing tabs."
4289
5340
  },
4290
5341
  {
4291
5342
  "kind": "field",
4292
- "name": "emptyText",
5343
+ "name": "fullWidth",
4293
5344
  "type": {
4294
- "text": "string"
5345
+ "text": "boolean"
4295
5346
  },
4296
- "default": "'No results found'",
4297
- "description": "Text to show when no options match the search."
5347
+ "default": "false",
5348
+ "description": "Whether the control should take full width."
4298
5349
  },
4299
5350
  {
4300
5351
  "kind": "field",
4301
- "name": "open",
5352
+ "name": "disabled",
4302
5353
  "type": {
4303
5354
  "text": "boolean"
4304
5355
  },
4305
5356
  "default": "false",
4306
- "description": "Whether the dropdown is currently open."
5357
+ "description": "Whether the control is disabled."
4307
5358
  },
4308
5359
  {
4309
5360
  "kind": "field",
4310
- "name": "selectedOption",
5361
+ "name": "segmentConfigs",
4311
5362
  "type": {
4312
- "text": "LeOption | undefined"
5363
+ "text": "SegmentConfig[]"
4313
5364
  },
4314
- "privacy": "private"
5365
+ "privacy": "private",
5366
+ "default": "[]",
5367
+ "description": "Internal tab configurations (built from children or tabs prop)"
4315
5368
  },
4316
5369
  {
4317
5370
  "kind": "field",
4318
- "name": "searchQuery",
5371
+ "name": "focusedIndex",
4319
5372
  "type": {
4320
- "text": "string"
5373
+ "text": "number"
4321
5374
  },
4322
5375
  "privacy": "private",
4323
- "default": "''"
5376
+ "default": "0",
5377
+ "description": "Internal state for focused index (keyboard navigation)"
4324
5378
  },
4325
5379
  {
4326
5380
  "kind": "field",
4327
- "name": "dropdownEl",
5381
+ "name": "isDeclarativeMode",
4328
5382
  "type": {
4329
- "text": "HTMLLeDropdownBaseElement | undefined"
5383
+ "text": "boolean"
4330
5384
  },
4331
- "privacy": "private"
5385
+ "privacy": "private",
5386
+ "default": "false",
5387
+ "description": "Whether we're using declarative mode (le-tab children)"
4332
5388
  },
4333
5389
  {
4334
5390
  "kind": "field",
4335
- "name": "inputEl",
5391
+ "name": "mutationObserver",
4336
5392
  "type": {
4337
- "text": "HTMLInputElement | undefined"
5393
+ "text": "MutationObserver | undefined"
4338
5394
  },
4339
5395
  "privacy": "private"
4340
5396
  },
4341
5397
  {
4342
5398
  "kind": "method",
4343
- "name": "handleValueChange"
5399
+ "name": "tabsChanged"
4344
5400
  },
4345
5401
  {
4346
5402
  "kind": "method",
4347
- "name": "handleOptionsChange"
4348
- },
4349
- {
4350
- "kind": "field",
4351
- "name": "parsedOptions",
4352
- "type": {
4353
- "text": "LeOption[]"
4354
- },
4355
- "privacy": "private",
4356
- "readonly": true
5403
+ "name": "handleSlotChange"
4357
5404
  },
4358
5405
  {
4359
5406
  "kind": "method",
4360
- "name": "updateSelectedOption",
4361
- "privacy": "private"
4362
- },
4363
- {
4364
- "kind": "field",
4365
- "name": "filterOption",
5407
+ "name": "buildSegmentsConfigs",
4366
5408
  "privacy": "private"
4367
5409
  },
4368
5410
  {
4369
- "kind": "field",
4370
- "name": "handleOptionSelect",
4371
- "privacy": "private"
5411
+ "kind": "method",
5412
+ "name": "getOptionValue",
5413
+ "privacy": "private",
5414
+ "return": {
5415
+ "type": {
5416
+ "text": "LeOptionValue"
5417
+ }
5418
+ },
5419
+ "parameters": [
5420
+ {
5421
+ "name": "option",
5422
+ "type": {
5423
+ "text": "LeOption"
5424
+ }
5425
+ }
5426
+ ]
4372
5427
  },
4373
5428
  {
4374
- "kind": "field",
4375
- "name": "handleDropdownOpen",
4376
- "privacy": "private"
5429
+ "kind": "method",
5430
+ "name": "getOptionIndex",
5431
+ "privacy": "private",
5432
+ "return": {
5433
+ "type": {
5434
+ "text": "number"
5435
+ }
5436
+ },
5437
+ "parameters": [
5438
+ {
5439
+ "name": "value",
5440
+ "type": {
5441
+ "text": "LeOptionValue"
5442
+ }
5443
+ }
5444
+ ]
4377
5445
  },
4378
5446
  {
4379
- "kind": "field",
4380
- "name": "handleDropdownClose",
4381
- "privacy": "private"
5447
+ "kind": "method",
5448
+ "name": "selectOption",
5449
+ "privacy": "private",
5450
+ "parameters": [
5451
+ {
5452
+ "name": "option",
5453
+ "type": {
5454
+ "text": "LeOption"
5455
+ }
5456
+ }
5457
+ ]
4382
5458
  },
4383
5459
  {
4384
5460
  "kind": "field",
4385
- "name": "handleTriggerClick",
5461
+ "name": "handleClick",
4386
5462
  "privacy": "private"
4387
5463
  },
4388
5464
  {
4389
5465
  "kind": "field",
4390
- "name": "handleTriggerKeyDown",
5466
+ "name": "handleKeyDown",
4391
5467
  "privacy": "private"
4392
5468
  },
4393
5469
  {
4394
- "kind": "field",
4395
- "name": "handleSearchInput",
4396
- "privacy": "private"
5470
+ "kind": "method",
5471
+ "name": "findNextEnabled",
5472
+ "privacy": "private",
5473
+ "return": {
5474
+ "type": {
5475
+ "text": "number"
5476
+ }
5477
+ },
5478
+ "parameters": [
5479
+ {
5480
+ "name": "direction",
5481
+ "type": {
5482
+ "text": "1 | -1"
5483
+ }
5484
+ }
5485
+ ]
4397
5486
  },
4398
5487
  {
4399
5488
  "kind": "method",
4400
- "name": "showDropdown",
4401
- "description": "Opens the dropdown."
5489
+ "name": "findFirstEnabled",
5490
+ "privacy": "private",
5491
+ "return": {
5492
+ "type": {
5493
+ "text": "number"
5494
+ }
5495
+ }
4402
5496
  },
4403
5497
  {
4404
5498
  "kind": "method",
4405
- "name": "hideDropdown",
4406
- "description": "Closes the dropdown."
5499
+ "name": "findLastEnabled",
5500
+ "privacy": "private",
5501
+ "return": {
5502
+ "type": {
5503
+ "text": "number"
5504
+ }
5505
+ }
4407
5506
  },
4408
5507
  {
4409
5508
  "kind": "method",
4410
- "name": "renderIcon",
5509
+ "name": "focusSegment",
4411
5510
  "privacy": "private",
4412
5511
  "parameters": [
4413
5512
  {
4414
- "name": "icon",
5513
+ "name": "index",
4415
5514
  "type": {
4416
- "text": "string | undefined"
5515
+ "text": "number"
4417
5516
  }
4418
5517
  }
4419
5518
  ]
@@ -4428,131 +5527,64 @@
4428
5527
  "name": "options",
4429
5528
  "fieldName": "options",
4430
5529
  "default": "[]",
4431
- "description": "The options to display in the dropdown.",
5530
+ "description": "Array of options for the segmented control.",
4432
5531
  "type": {
4433
- "text": "LeOption[] | string"
5532
+ "text": "LeOption[]"
4434
5533
  }
4435
5534
  },
4436
5535
  {
4437
5536
  "name": "value",
4438
5537
  "fieldName": "value",
4439
- "description": "The currently selected value.",
5538
+ "description": "The value of the currently selected option.",
4440
5539
  "type": {
4441
5540
  "text": "LeOptionValue"
4442
5541
  }
4443
5542
  },
4444
- {
4445
- "name": "placeholder",
4446
- "fieldName": "placeholder",
4447
- "default": "'Select an option'",
4448
- "description": "Placeholder text when no option is selected.",
4449
- "type": {
4450
- "text": "string"
4451
- }
4452
- },
4453
- {
4454
- "name": "disabled",
4455
- "fieldName": "disabled",
4456
- "default": "false",
4457
- "description": "Whether the select is disabled.",
4458
- "type": {
4459
- "text": "boolean"
4460
- }
4461
- },
4462
- {
4463
- "name": "required",
4464
- "fieldName": "required",
4465
- "default": "false",
4466
- "description": "Whether selection is required.",
4467
- "type": {
4468
- "text": "boolean"
4469
- }
4470
- },
4471
- {
4472
- "name": "name",
4473
- "fieldName": "name",
4474
- "description": "Name attribute for form submission.",
4475
- "type": {
4476
- "text": "string"
4477
- }
4478
- },
4479
- {
4480
- "name": "full-width",
4481
- "fieldName": "fullWidth",
4482
- "default": "false",
4483
- "description": "Whether the select should take full width of its container.",
4484
- "type": {
4485
- "text": "boolean"
4486
- }
4487
- },
4488
5543
  {
4489
5544
  "name": "size",
4490
5545
  "fieldName": "size",
4491
5546
  "default": "'medium'",
4492
- "description": "Size variant of the select.",
5547
+ "description": "Size of the control.",
4493
5548
  "type": {
4494
5549
  "text": "'small' | 'medium' | 'large'"
4495
5550
  }
4496
5551
  },
4497
5552
  {
4498
- "name": "variant",
4499
- "fieldName": "variant",
4500
- "default": "'default'",
4501
- "description": "Visual variant of the select.",
5553
+ "name": "overflow",
5554
+ "fieldName": "overflow",
5555
+ "default": "'auto'",
5556
+ "description": "Scroll behavior for overflowing tabs.",
4502
5557
  "type": {
4503
- "text": "'default' | 'outlined' | 'solid'"
5558
+ "text": "'auto' | 'hidden' | 'visible' | 'scroll'"
4504
5559
  }
4505
5560
  },
4506
5561
  {
4507
- "name": "searchable",
4508
- "fieldName": "searchable",
5562
+ "name": "full-width",
5563
+ "fieldName": "fullWidth",
4509
5564
  "default": "false",
4510
- "description": "Whether the input is searchable.",
5565
+ "description": "Whether the control should take full width.",
4511
5566
  "type": {
4512
5567
  "text": "boolean"
4513
5568
  }
4514
5569
  },
4515
5570
  {
4516
- "name": "empty-text",
4517
- "fieldName": "emptyText",
4518
- "default": "'No results found'",
4519
- "description": "Text to show when no options match the search.",
4520
- "type": {
4521
- "text": "string"
4522
- }
4523
- },
4524
- {
4525
- "name": "open",
4526
- "fieldName": "open",
5571
+ "name": "disabled",
5572
+ "fieldName": "disabled",
4527
5573
  "default": "false",
4528
- "description": "Whether the dropdown is currently open.",
5574
+ "description": "Whether the control is disabled.",
4529
5575
  "type": {
4530
5576
  "text": "boolean"
4531
5577
  }
4532
5578
  }
4533
5579
  ],
4534
- "tagName": "le-select",
5580
+ "tagName": "le-segmented-control",
4535
5581
  "events": [
4536
5582
  {
4537
- "name": "leChange",
4538
- "type": {
4539
- "text": "EventEmitter<LeOptionSelectDetail>"
4540
- },
4541
- "description": "Emitted when the selected value changes."
4542
- },
4543
- {
4544
- "name": "leOpen",
4545
- "type": {
4546
- "text": "EventEmitter<void>"
4547
- },
4548
- "description": "Emitted when the dropdown opens."
4549
- },
4550
- {
4551
- "name": "leClose",
5583
+ "name": "leChange",
4552
5584
  "type": {
4553
- "text": "EventEmitter<void>"
5585
+ "text": "EventEmitter<LeOptionSelectDetail>"
4554
5586
  },
4555
- "description": "Emitted when the dropdown closes."
5587
+ "description": "Emitted when the selection changes."
4556
5588
  }
4557
5589
  ],
4558
5590
  "customElement": true
@@ -4561,94 +5593,98 @@
4561
5593
  "exports": [
4562
5594
  {
4563
5595
  "kind": "js",
4564
- "name": "LeSelect",
5596
+ "name": "LeSegmentedControl",
4565
5597
  "declaration": {
4566
- "name": "LeSelect",
4567
- "module": "src/components/le-select/le-select.tsx"
5598
+ "name": "LeSegmentedControl",
5599
+ "module": "src/components/le-segmented-control/le-segmented-control.tsx"
4568
5600
  }
4569
5601
  },
4570
5602
  {
4571
5603
  "kind": "custom-element-definition",
4572
- "name": "le-select",
5604
+ "name": "le-segmented-control",
4573
5605
  "declaration": {
4574
- "name": "LeSelect",
4575
- "module": "src/components/le-select/le-select.tsx"
5606
+ "name": "LeSegmentedControl",
5607
+ "module": "src/components/le-segmented-control/le-segmented-control.tsx"
4576
5608
  }
4577
5609
  }
4578
5610
  ]
4579
5611
  },
4580
5612
  {
4581
5613
  "kind": "javascript-module",
4582
- "path": "src/components/le-segmented-control/le-segmented-control.tsx",
5614
+ "path": "src/components/le-select/le-select.tsx",
4583
5615
  "declarations": [
4584
5616
  {
4585
5617
  "kind": "class",
4586
- "description": "A segmented control component (iOS-style toggle buttons).\n\nPerfect for toggling between a small set of related options.",
4587
- "name": "LeSegmentedControl",
4588
- "cssProperties": [
4589
- {
4590
- "description": "Background color of the control",
4591
- "name": "--le-segmented-bg"
4592
- },
5618
+ "description": "A select dropdown component for single selection.",
5619
+ "name": "LeSelect",
5620
+ "members": [
4593
5621
  {
4594
- "description": "Padding around segments",
4595
- "name": "--le-segmented-padding"
5622
+ "kind": "field",
5623
+ "name": "el",
5624
+ "type": {
5625
+ "text": "HTMLElement"
5626
+ }
4596
5627
  },
4597
5628
  {
4598
- "description": "Gap between segments",
4599
- "name": "--le-segmented-gap"
5629
+ "kind": "field",
5630
+ "name": "options",
5631
+ "type": {
5632
+ "text": "LeOption[] | string"
5633
+ },
5634
+ "default": "[]",
5635
+ "description": "The options to display in the dropdown."
4600
5636
  },
4601
5637
  {
4602
- "description": "Border radius of the control",
4603
- "name": "--le-segmented-radius"
4604
- }
4605
- ],
4606
- "cssParts": [
4607
- {
4608
- "description": "The main container",
4609
- "name": "container"
5638
+ "kind": "field",
5639
+ "name": "value",
5640
+ "type": {
5641
+ "text": "LeOptionValue | undefined"
5642
+ },
5643
+ "description": "The currently selected value."
4610
5644
  },
4611
5645
  {
4612
- "description": "Individual segment buttons",
4613
- "name": "segment"
5646
+ "kind": "field",
5647
+ "name": "placeholder",
5648
+ "type": {
5649
+ "text": "string"
5650
+ },
5651
+ "default": "'Select an option'",
5652
+ "description": "Placeholder text when no option is selected."
4614
5653
  },
4615
- {
4616
- "description": "The currently active segment",
4617
- "name": "segment-active"
4618
- }
4619
- ],
4620
- "members": [
4621
5654
  {
4622
5655
  "kind": "field",
4623
- "name": "el",
5656
+ "name": "disabled",
4624
5657
  "type": {
4625
- "text": "HTMLElement"
4626
- }
5658
+ "text": "boolean"
5659
+ },
5660
+ "default": "false",
5661
+ "description": "Whether the select is disabled."
4627
5662
  },
4628
5663
  {
4629
5664
  "kind": "field",
4630
- "name": "containerRef",
5665
+ "name": "required",
4631
5666
  "type": {
4632
- "text": "HTMLElement | undefined"
5667
+ "text": "boolean"
4633
5668
  },
4634
- "privacy": "private"
5669
+ "default": "false",
5670
+ "description": "Whether selection is required."
4635
5671
  },
4636
5672
  {
4637
5673
  "kind": "field",
4638
- "name": "options",
5674
+ "name": "name",
4639
5675
  "type": {
4640
- "text": "LeOption[]"
5676
+ "text": "string | undefined"
4641
5677
  },
4642
- "default": "[]",
4643
- "description": "Array of options for the segmented control."
5678
+ "description": "Name attribute for form submission."
4644
5679
  },
4645
5680
  {
4646
5681
  "kind": "field",
4647
- "name": "value",
5682
+ "name": "fullWidth",
4648
5683
  "type": {
4649
- "text": "LeOptionValue | undefined"
5684
+ "text": "boolean"
4650
5685
  },
4651
- "description": "The value of the currently selected option."
5686
+ "default": "false",
5687
+ "description": "Whether the select should take full width of its container."
4652
5688
  },
4653
5689
  {
4654
5690
  "kind": "field",
@@ -4657,192 +5693,153 @@
4657
5693
  "text": "'small' | 'medium' | 'large'"
4658
5694
  },
4659
5695
  "default": "'medium'",
4660
- "description": "Size of the control."
5696
+ "description": "Size variant of the select."
4661
5697
  },
4662
5698
  {
4663
5699
  "kind": "field",
4664
- "name": "overflow",
5700
+ "name": "variant",
4665
5701
  "type": {
4666
- "text": "'auto' | 'hidden' | 'visible' | 'scroll'"
5702
+ "text": "'default' | 'outlined' | 'solid'"
4667
5703
  },
4668
- "default": "'auto'",
4669
- "description": "Scroll behavior for overflowing tabs."
5704
+ "default": "'default'",
5705
+ "description": "Visual variant of the select."
4670
5706
  },
4671
5707
  {
4672
5708
  "kind": "field",
4673
- "name": "fullWidth",
5709
+ "name": "searchable",
4674
5710
  "type": {
4675
5711
  "text": "boolean"
4676
5712
  },
4677
5713
  "default": "false",
4678
- "description": "Whether the control should take full width."
5714
+ "description": "Whether the input is searchable."
4679
5715
  },
4680
5716
  {
4681
5717
  "kind": "field",
4682
- "name": "disabled",
5718
+ "name": "emptyText",
5719
+ "type": {
5720
+ "text": "string"
5721
+ },
5722
+ "default": "'No results found'",
5723
+ "description": "Text to show when no options match the search."
5724
+ },
5725
+ {
5726
+ "kind": "field",
5727
+ "name": "open",
4683
5728
  "type": {
4684
5729
  "text": "boolean"
4685
5730
  },
4686
5731
  "default": "false",
4687
- "description": "Whether the control is disabled."
5732
+ "description": "Whether the dropdown is currently open."
4688
5733
  },
4689
5734
  {
4690
5735
  "kind": "field",
4691
- "name": "segmentConfigs",
5736
+ "name": "selectedOption",
4692
5737
  "type": {
4693
- "text": "SegmentConfig[]"
5738
+ "text": "LeOption | undefined"
4694
5739
  },
4695
- "privacy": "private",
4696
- "default": "[]",
4697
- "description": "Internal tab configurations (built from children or tabs prop)"
5740
+ "privacy": "private"
4698
5741
  },
4699
5742
  {
4700
5743
  "kind": "field",
4701
- "name": "focusedIndex",
5744
+ "name": "searchQuery",
4702
5745
  "type": {
4703
- "text": "number"
5746
+ "text": "string"
4704
5747
  },
4705
5748
  "privacy": "private",
4706
- "default": "0",
4707
- "description": "Internal state for focused index (keyboard navigation)"
5749
+ "default": "''"
4708
5750
  },
4709
5751
  {
4710
5752
  "kind": "field",
4711
- "name": "isDeclarativeMode",
5753
+ "name": "dropdownEl",
4712
5754
  "type": {
4713
- "text": "boolean"
5755
+ "text": "HTMLLeDropdownBaseElement | undefined"
4714
5756
  },
4715
- "privacy": "private",
4716
- "default": "false",
4717
- "description": "Whether we're using declarative mode (le-tab children)"
5757
+ "privacy": "private"
4718
5758
  },
4719
5759
  {
4720
5760
  "kind": "field",
4721
- "name": "mutationObserver",
5761
+ "name": "inputEl",
4722
5762
  "type": {
4723
- "text": "MutationObserver | undefined"
5763
+ "text": "HTMLInputElement | undefined"
4724
5764
  },
4725
5765
  "privacy": "private"
4726
5766
  },
4727
5767
  {
4728
5768
  "kind": "method",
4729
- "name": "tabsChanged"
5769
+ "name": "handleValueChange"
4730
5770
  },
4731
5771
  {
4732
5772
  "kind": "method",
4733
- "name": "handleSlotChange"
5773
+ "name": "handleOptionsChange"
5774
+ },
5775
+ {
5776
+ "kind": "field",
5777
+ "name": "parsedOptions",
5778
+ "type": {
5779
+ "text": "LeOption[]"
5780
+ },
5781
+ "privacy": "private",
5782
+ "readonly": true
4734
5783
  },
4735
5784
  {
4736
5785
  "kind": "method",
4737
- "name": "buildSegmentsConfigs",
5786
+ "name": "updateSelectedOption",
4738
5787
  "privacy": "private"
4739
5788
  },
4740
5789
  {
4741
- "kind": "method",
4742
- "name": "getOptionValue",
4743
- "privacy": "private",
4744
- "return": {
4745
- "type": {
4746
- "text": "LeOptionValue"
4747
- }
4748
- },
4749
- "parameters": [
4750
- {
4751
- "name": "option",
4752
- "type": {
4753
- "text": "LeOption"
4754
- }
4755
- }
4756
- ]
5790
+ "kind": "field",
5791
+ "name": "filterOption",
5792
+ "privacy": "private"
4757
5793
  },
4758
5794
  {
4759
- "kind": "method",
4760
- "name": "getOptionIndex",
4761
- "privacy": "private",
4762
- "return": {
4763
- "type": {
4764
- "text": "number"
4765
- }
4766
- },
4767
- "parameters": [
4768
- {
4769
- "name": "value",
4770
- "type": {
4771
- "text": "LeOptionValue"
4772
- }
4773
- }
4774
- ]
5795
+ "kind": "field",
5796
+ "name": "handleOptionSelect",
5797
+ "privacy": "private"
4775
5798
  },
4776
5799
  {
4777
- "kind": "method",
4778
- "name": "selectOption",
4779
- "privacy": "private",
4780
- "parameters": [
4781
- {
4782
- "name": "option",
4783
- "type": {
4784
- "text": "LeOption"
4785
- }
4786
- }
4787
- ]
5800
+ "kind": "field",
5801
+ "name": "handleDropdownOpen",
5802
+ "privacy": "private"
4788
5803
  },
4789
5804
  {
4790
5805
  "kind": "field",
4791
- "name": "handleClick",
5806
+ "name": "handleDropdownClose",
4792
5807
  "privacy": "private"
4793
5808
  },
4794
5809
  {
4795
5810
  "kind": "field",
4796
- "name": "handleKeyDown",
5811
+ "name": "handleTriggerClick",
4797
5812
  "privacy": "private"
4798
5813
  },
4799
5814
  {
4800
- "kind": "method",
4801
- "name": "findNextEnabled",
4802
- "privacy": "private",
4803
- "return": {
4804
- "type": {
4805
- "text": "number"
4806
- }
4807
- },
4808
- "parameters": [
4809
- {
4810
- "name": "direction",
4811
- "type": {
4812
- "text": "1 | -1"
4813
- }
4814
- }
4815
- ]
5815
+ "kind": "field",
5816
+ "name": "handleTriggerKeyDown",
5817
+ "privacy": "private"
4816
5818
  },
4817
5819
  {
4818
- "kind": "method",
4819
- "name": "findFirstEnabled",
4820
- "privacy": "private",
4821
- "return": {
4822
- "type": {
4823
- "text": "number"
4824
- }
4825
- }
5820
+ "kind": "field",
5821
+ "name": "handleSearchInput",
5822
+ "privacy": "private"
4826
5823
  },
4827
5824
  {
4828
5825
  "kind": "method",
4829
- "name": "findLastEnabled",
4830
- "privacy": "private",
4831
- "return": {
4832
- "type": {
4833
- "text": "number"
4834
- }
4835
- }
5826
+ "name": "showDropdown",
5827
+ "description": "Opens the dropdown."
4836
5828
  },
4837
5829
  {
4838
5830
  "kind": "method",
4839
- "name": "focusSegment",
5831
+ "name": "hideDropdown",
5832
+ "description": "Closes the dropdown."
5833
+ },
5834
+ {
5835
+ "kind": "method",
5836
+ "name": "renderIcon",
4840
5837
  "privacy": "private",
4841
5838
  "parameters": [
4842
5839
  {
4843
- "name": "index",
5840
+ "name": "icon",
4844
5841
  "type": {
4845
- "text": "number"
5842
+ "text": "string | undefined"
4846
5843
  }
4847
5844
  }
4848
5845
  ]
@@ -4857,64 +5854,131 @@
4857
5854
  "name": "options",
4858
5855
  "fieldName": "options",
4859
5856
  "default": "[]",
4860
- "description": "Array of options for the segmented control.",
5857
+ "description": "The options to display in the dropdown.",
4861
5858
  "type": {
4862
- "text": "LeOption[]"
5859
+ "text": "LeOption[] | string"
4863
5860
  }
4864
5861
  },
4865
5862
  {
4866
5863
  "name": "value",
4867
5864
  "fieldName": "value",
4868
- "description": "The value of the currently selected option.",
5865
+ "description": "The currently selected value.",
4869
5866
  "type": {
4870
5867
  "text": "LeOptionValue"
4871
5868
  }
4872
5869
  },
5870
+ {
5871
+ "name": "placeholder",
5872
+ "fieldName": "placeholder",
5873
+ "default": "'Select an option'",
5874
+ "description": "Placeholder text when no option is selected.",
5875
+ "type": {
5876
+ "text": "string"
5877
+ }
5878
+ },
5879
+ {
5880
+ "name": "disabled",
5881
+ "fieldName": "disabled",
5882
+ "default": "false",
5883
+ "description": "Whether the select is disabled.",
5884
+ "type": {
5885
+ "text": "boolean"
5886
+ }
5887
+ },
5888
+ {
5889
+ "name": "required",
5890
+ "fieldName": "required",
5891
+ "default": "false",
5892
+ "description": "Whether selection is required.",
5893
+ "type": {
5894
+ "text": "boolean"
5895
+ }
5896
+ },
5897
+ {
5898
+ "name": "name",
5899
+ "fieldName": "name",
5900
+ "description": "Name attribute for form submission.",
5901
+ "type": {
5902
+ "text": "string"
5903
+ }
5904
+ },
5905
+ {
5906
+ "name": "full-width",
5907
+ "fieldName": "fullWidth",
5908
+ "default": "false",
5909
+ "description": "Whether the select should take full width of its container.",
5910
+ "type": {
5911
+ "text": "boolean"
5912
+ }
5913
+ },
4873
5914
  {
4874
5915
  "name": "size",
4875
5916
  "fieldName": "size",
4876
5917
  "default": "'medium'",
4877
- "description": "Size of the control.",
5918
+ "description": "Size variant of the select.",
4878
5919
  "type": {
4879
5920
  "text": "'small' | 'medium' | 'large'"
4880
5921
  }
4881
5922
  },
4882
5923
  {
4883
- "name": "overflow",
4884
- "fieldName": "overflow",
4885
- "default": "'auto'",
4886
- "description": "Scroll behavior for overflowing tabs.",
5924
+ "name": "variant",
5925
+ "fieldName": "variant",
5926
+ "default": "'default'",
5927
+ "description": "Visual variant of the select.",
4887
5928
  "type": {
4888
- "text": "'auto' | 'hidden' | 'visible' | 'scroll'"
5929
+ "text": "'default' | 'outlined' | 'solid'"
4889
5930
  }
4890
5931
  },
4891
5932
  {
4892
- "name": "full-width",
4893
- "fieldName": "fullWidth",
5933
+ "name": "searchable",
5934
+ "fieldName": "searchable",
4894
5935
  "default": "false",
4895
- "description": "Whether the control should take full width.",
5936
+ "description": "Whether the input is searchable.",
4896
5937
  "type": {
4897
5938
  "text": "boolean"
4898
5939
  }
4899
5940
  },
4900
5941
  {
4901
- "name": "disabled",
4902
- "fieldName": "disabled",
5942
+ "name": "empty-text",
5943
+ "fieldName": "emptyText",
5944
+ "default": "'No results found'",
5945
+ "description": "Text to show when no options match the search.",
5946
+ "type": {
5947
+ "text": "string"
5948
+ }
5949
+ },
5950
+ {
5951
+ "name": "open",
5952
+ "fieldName": "open",
4903
5953
  "default": "false",
4904
- "description": "Whether the control is disabled.",
5954
+ "description": "Whether the dropdown is currently open.",
4905
5955
  "type": {
4906
5956
  "text": "boolean"
4907
5957
  }
4908
5958
  }
4909
5959
  ],
4910
- "tagName": "le-segmented-control",
5960
+ "tagName": "le-select",
4911
5961
  "events": [
4912
5962
  {
4913
5963
  "name": "leChange",
4914
5964
  "type": {
4915
5965
  "text": "EventEmitter<LeOptionSelectDetail>"
4916
5966
  },
4917
- "description": "Emitted when the selection changes."
5967
+ "description": "Emitted when the selected value changes."
5968
+ },
5969
+ {
5970
+ "name": "leOpen",
5971
+ "type": {
5972
+ "text": "EventEmitter<void>"
5973
+ },
5974
+ "description": "Emitted when the dropdown opens."
5975
+ },
5976
+ {
5977
+ "name": "leClose",
5978
+ "type": {
5979
+ "text": "EventEmitter<void>"
5980
+ },
5981
+ "description": "Emitted when the dropdown closes."
4918
5982
  }
4919
5983
  ],
4920
5984
  "customElement": true
@@ -4923,18 +5987,18 @@
4923
5987
  "exports": [
4924
5988
  {
4925
5989
  "kind": "js",
4926
- "name": "LeSegmentedControl",
5990
+ "name": "LeSelect",
4927
5991
  "declaration": {
4928
- "name": "LeSegmentedControl",
4929
- "module": "src/components/le-segmented-control/le-segmented-control.tsx"
5992
+ "name": "LeSelect",
5993
+ "module": "src/components/le-select/le-select.tsx"
4930
5994
  }
4931
5995
  },
4932
5996
  {
4933
5997
  "kind": "custom-element-definition",
4934
- "name": "le-segmented-control",
5998
+ "name": "le-select",
4935
5999
  "declaration": {
4936
- "name": "LeSegmentedControl",
4937
- "module": "src/components/le-segmented-control/le-segmented-control.tsx"
6000
+ "name": "LeSelect",
6001
+ "module": "src/components/le-select/le-select.tsx"
4938
6002
  }
4939
6003
  }
4940
6004
  ]
@@ -5342,28 +6406,54 @@
5342
6406
  },
5343
6407
  {
5344
6408
  "kind": "javascript-module",
5345
- "path": "src/components/le-stack/le-stack.tsx",
6409
+ "path": "src/components/le-string-input/le-string-input.tsx",
5346
6410
  "declarations": [
5347
6411
  {
5348
6412
  "kind": "class",
5349
- "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.",
5350
- "name": "LeStack",
6413
+ "description": "A text input component with support for labels, descriptions, icons, and external IDs.",
6414
+ "name": "LeStringInput",
5351
6415
  "cssProperties": [
5352
6416
  {
5353
- "description": "Gap between items (defaults to var(--le-space-md))",
5354
- "name": "--le-stack-gap"
5355
- }
5356
- ],
5357
- "cssParts": [
6417
+ "description": "Input background color",
6418
+ "name": "--le-input-bg"
6419
+ },
5358
6420
  {
5359
- "description": "The main stack container",
5360
- "name": "stack"
6421
+ "description": "Input text color",
6422
+ "name": "--le-input-color"
6423
+ },
6424
+ {
6425
+ "description": "Input border style",
6426
+ "name": "--le-input-border"
6427
+ },
6428
+ {
6429
+ "description": "Input border style when focused",
6430
+ "name": "--le-input-border-focus"
6431
+ },
6432
+ {
6433
+ "description": "Input border radius",
6434
+ "name": "--le-input-radius"
6435
+ },
6436
+ {
6437
+ "description": "Input padding",
6438
+ "name": "--le-input-padding"
5361
6439
  }
5362
6440
  ],
5363
6441
  "slots": [
5364
6442
  {
5365
- "description": "Default slot for stack items (le-box components recommended)",
6443
+ "description": "The label text for the input",
5366
6444
  "name": ""
6445
+ },
6446
+ {
6447
+ "description": "Additional description text displayed below the input",
6448
+ "name": "description"
6449
+ },
6450
+ {
6451
+ "description": "Icon to display at the start of the input",
6452
+ "name": "icon-start"
6453
+ },
6454
+ {
6455
+ "description": "Icon to display at the end of the input",
6456
+ "name": "icon-end"
5367
6457
  }
5368
6458
  ],
5369
6459
  "members": [
@@ -5376,139 +6466,126 @@
5376
6466
  },
5377
6467
  {
5378
6468
  "kind": "field",
5379
- "name": "direction",
6469
+ "name": "inputRef",
5380
6470
  "type": {
5381
- "text": "'horizontal' | 'vertical'"
6471
+ "text": "(el: HTMLInputElement) => void | undefined"
5382
6472
  },
5383
- "default": "'horizontal'",
5384
- "description": "Direction of the stack layout"
6473
+ "description": "Pass the ref of the input element to the parent component"
5385
6474
  },
5386
6475
  {
5387
6476
  "kind": "field",
5388
- "name": "gap",
6477
+ "name": "mode",
5389
6478
  "type": {
5390
- "text": "string | undefined"
6479
+ "text": "'default' | 'admin'"
5391
6480
  },
5392
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
6481
+ "description": "Mode of the popover should be 'default' for internal use"
5393
6482
  },
5394
6483
  {
5395
6484
  "kind": "field",
5396
- "name": "align",
6485
+ "name": "value",
5397
6486
  "type": {
5398
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
6487
+ "text": "string"
5399
6488
  },
5400
- "default": "'stretch'",
5401
- "description": "Alignment of items on the cross axis"
6489
+ "description": "The value of the input"
5402
6490
  },
5403
6491
  {
5404
6492
  "kind": "field",
5405
- "name": "justify",
6493
+ "name": "name",
5406
6494
  "type": {
5407
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
6495
+ "text": "string"
5408
6496
  },
5409
- "default": "'start'",
5410
- "description": "Distribution of items on the main axis"
6497
+ "description": "The name of the input"
5411
6498
  },
5412
6499
  {
5413
6500
  "kind": "field",
5414
- "name": "wrap",
6501
+ "name": "type",
5415
6502
  "type": {
5416
- "text": "boolean"
6503
+ "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
5417
6504
  },
5418
- "default": "false",
5419
- "description": "Whether items should wrap to multiple lines"
6505
+ "default": "'text'",
6506
+ "description": "The type of the input (text, email, password, etc.)"
5420
6507
  },
5421
6508
  {
5422
6509
  "kind": "field",
5423
- "name": "alignContent",
6510
+ "name": "label",
5424
6511
  "type": {
5425
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
6512
+ "text": "string"
5426
6513
  },
5427
- "default": "'stretch'",
5428
- "description": "Alignment of wrapped lines (only applies when wrap is true)"
6514
+ "description": "Label for the input"
5429
6515
  },
5430
6516
  {
5431
6517
  "kind": "field",
5432
- "name": "reverse",
6518
+ "name": "iconStart",
5433
6519
  "type": {
5434
- "text": "boolean"
6520
+ "text": "string"
5435
6521
  },
5436
- "default": "false",
5437
- "description": "Whether to reverse the order of items"
6522
+ "description": "Icon for the start icon"
5438
6523
  },
5439
6524
  {
5440
6525
  "kind": "field",
5441
- "name": "maxItems",
6526
+ "name": "iconEnd",
5442
6527
  "type": {
5443
- "text": "number | undefined"
6528
+ "text": "string"
5444
6529
  },
5445
- "description": "Maximum number of items allowed in the stack (for CMS validation)"
6530
+ "description": "Icon for the end icon"
6531
+ },
6532
+ {
6533
+ "kind": "field",
6534
+ "name": "placeholder",
6535
+ "type": {
6536
+ "text": "string"
6537
+ },
6538
+ "description": "Placeholder text"
6539
+ },
6540
+ {
6541
+ "kind": "field",
6542
+ "name": "hideDescription",
6543
+ "type": {
6544
+ "text": "boolean"
6545
+ },
6546
+ "default": "false",
6547
+ "description": "Hide description slot"
5446
6548
  },
5447
6549
  {
5448
6550
  "kind": "field",
5449
- "name": "fullWidth",
6551
+ "name": "disabled",
5450
6552
  "type": {
5451
6553
  "text": "boolean"
5452
6554
  },
5453
6555
  "default": "false",
5454
- "description": "Whether the stack should take full width of its container"
6556
+ "description": "Whether the input is disabled"
5455
6557
  },
5456
6558
  {
5457
6559
  "kind": "field",
5458
- "name": "fullHeight",
6560
+ "name": "readonly",
5459
6561
  "type": {
5460
6562
  "text": "boolean"
5461
6563
  },
5462
6564
  "default": "false",
5463
- "description": "Whether the stack should take full height of its container"
6565
+ "description": "Whether the input is read-only"
5464
6566
  },
5465
6567
  {
5466
6568
  "kind": "field",
5467
- "name": "padding",
6569
+ "name": "externalId",
5468
6570
  "type": {
5469
- "text": "string | undefined"
6571
+ "text": "string"
5470
6572
  },
5471
- "description": "Padding inside the stack container (CSS value)"
5472
- },
5473
- {
5474
- "kind": "method",
5475
- "name": "getFlexDirection",
5476
- "privacy": "private",
5477
- "return": {
5478
- "type": {
5479
- "text": "string"
5480
- }
5481
- }
6573
+ "description": "External ID for linking with external systems"
5482
6574
  },
5483
6575
  {
5484
- "kind": "method",
5485
- "name": "getAlignItems",
5486
- "privacy": "private",
5487
- "return": {
5488
- "type": {
5489
- "text": "string"
5490
- }
5491
- }
6576
+ "kind": "field",
6577
+ "name": "handleInput",
6578
+ "privacy": "private"
5492
6579
  },
5493
6580
  {
5494
- "kind": "method",
5495
- "name": "getJustifyContent",
5496
- "privacy": "private",
5497
- "return": {
5498
- "type": {
5499
- "text": "string"
5500
- }
5501
- }
6581
+ "kind": "field",
6582
+ "name": "handleChange",
6583
+ "privacy": "private"
5502
6584
  },
5503
6585
  {
5504
- "kind": "method",
5505
- "name": "getAlignContent",
5506
- "privacy": "private",
5507
- "return": {
5508
- "type": {
5509
- "text": "string"
5510
- }
5511
- }
6586
+ "kind": "field",
6587
+ "name": "handleClick",
6588
+ "privacy": "private"
5512
6589
  },
5513
6590
  {
5514
6591
  "kind": "method",
@@ -5517,308 +6594,322 @@
5517
6594
  ],
5518
6595
  "attributes": [
5519
6596
  {
5520
- "name": "direction",
5521
- "fieldName": "direction",
5522
- "default": "'horizontal'",
5523
- "description": "Direction of the stack layout",
6597
+ "name": "input-ref",
6598
+ "fieldName": "inputRef",
6599
+ "description": "Pass the ref of the input element to the parent component",
5524
6600
  "type": {
5525
- "text": "'horizontal' | 'vertical'"
6601
+ "text": "(el: HTMLInputElement) => void"
5526
6602
  }
5527
6603
  },
5528
6604
  {
5529
- "name": "gap",
5530
- "fieldName": "gap",
5531
- "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
6605
+ "name": "mode",
6606
+ "fieldName": "mode",
6607
+ "description": "Mode of the popover should be 'default' for internal use",
6608
+ "type": {
6609
+ "text": "'default' | 'admin'"
6610
+ }
6611
+ },
6612
+ {
6613
+ "name": "value",
6614
+ "fieldName": "value",
6615
+ "description": "The value of the input",
5532
6616
  "type": {
5533
6617
  "text": "string"
5534
6618
  }
5535
6619
  },
5536
6620
  {
5537
- "name": "align",
5538
- "fieldName": "align",
5539
- "default": "'stretch'",
5540
- "description": "Alignment of items on the cross axis",
6621
+ "name": "name",
6622
+ "fieldName": "name",
6623
+ "description": "The name of the input",
5541
6624
  "type": {
5542
- "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
6625
+ "text": "string"
5543
6626
  }
5544
6627
  },
5545
6628
  {
5546
- "name": "justify",
5547
- "fieldName": "justify",
5548
- "default": "'start'",
5549
- "description": "Distribution of items on the main axis",
6629
+ "name": "type",
6630
+ "fieldName": "type",
6631
+ "default": "'text'",
6632
+ "description": "The type of the input (text, email, password, etc.)",
5550
6633
  "type": {
5551
- "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
6634
+ "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
5552
6635
  }
5553
6636
  },
5554
6637
  {
5555
- "name": "wrap",
5556
- "fieldName": "wrap",
5557
- "default": "false",
5558
- "description": "Whether items should wrap to multiple lines",
6638
+ "name": "label",
6639
+ "fieldName": "label",
6640
+ "description": "Label for the input",
5559
6641
  "type": {
5560
- "text": "boolean"
6642
+ "text": "string"
5561
6643
  }
5562
6644
  },
5563
6645
  {
5564
- "name": "align-content",
5565
- "fieldName": "alignContent",
5566
- "default": "'stretch'",
5567
- "description": "Alignment of wrapped lines (only applies when wrap is true)",
6646
+ "name": "icon-start",
6647
+ "fieldName": "iconStart",
6648
+ "description": "Icon for the start icon",
5568
6649
  "type": {
5569
- "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
6650
+ "text": "string"
5570
6651
  }
5571
6652
  },
5572
6653
  {
5573
- "name": "reverse",
5574
- "fieldName": "reverse",
5575
- "default": "false",
5576
- "description": "Whether to reverse the order of items",
6654
+ "name": "icon-end",
6655
+ "fieldName": "iconEnd",
6656
+ "description": "Icon for the end icon",
5577
6657
  "type": {
5578
- "text": "boolean"
6658
+ "text": "string"
5579
6659
  }
5580
6660
  },
5581
6661
  {
5582
- "name": "max-items",
5583
- "fieldName": "maxItems",
5584
- "description": "Maximum number of items allowed in the stack (for CMS validation)",
6662
+ "name": "placeholder",
6663
+ "fieldName": "placeholder",
6664
+ "description": "Placeholder text",
5585
6665
  "type": {
5586
- "text": "number"
6666
+ "text": "string"
5587
6667
  }
5588
6668
  },
5589
6669
  {
5590
- "name": "full-width",
5591
- "fieldName": "fullWidth",
6670
+ "name": "hide-description",
6671
+ "fieldName": "hideDescription",
5592
6672
  "default": "false",
5593
- "description": "Whether the stack should take full width of its container",
6673
+ "description": "Hide description slot",
5594
6674
  "type": {
5595
6675
  "text": "boolean"
5596
6676
  }
5597
6677
  },
5598
6678
  {
5599
- "name": "full-height",
5600
- "fieldName": "fullHeight",
6679
+ "name": "disabled",
6680
+ "fieldName": "disabled",
5601
6681
  "default": "false",
5602
- "description": "Whether the stack should take full height of its container",
6682
+ "description": "Whether the input is disabled",
5603
6683
  "type": {
5604
6684
  "text": "boolean"
5605
6685
  }
5606
6686
  },
5607
6687
  {
5608
- "name": "padding",
5609
- "fieldName": "padding",
5610
- "description": "Padding inside the stack container (CSS value)",
6688
+ "name": "readonly",
6689
+ "fieldName": "readonly",
6690
+ "default": "false",
6691
+ "description": "Whether the input is read-only",
6692
+ "type": {
6693
+ "text": "boolean"
6694
+ }
6695
+ },
6696
+ {
6697
+ "name": "external-id",
6698
+ "fieldName": "externalId",
6699
+ "description": "External ID for linking with external systems",
5611
6700
  "type": {
5612
6701
  "text": "string"
5613
6702
  }
5614
6703
  }
5615
6704
  ],
5616
- "tagName": "le-stack",
5617
- "events": [],
6705
+ "tagName": "le-string-input",
6706
+ "events": [
6707
+ {
6708
+ "name": "change",
6709
+ "type": {
6710
+ "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
6711
+ },
6712
+ "description": "Emitted when the value changes (on blur or Enter)"
6713
+ },
6714
+ {
6715
+ "name": "input",
6716
+ "type": {
6717
+ "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
6718
+ },
6719
+ "description": "Emitted when the input value changes (on keystroke)"
6720
+ }
6721
+ ],
5618
6722
  "customElement": true
5619
6723
  }
5620
6724
  ],
5621
6725
  "exports": [
5622
6726
  {
5623
6727
  "kind": "js",
5624
- "name": "LeStack",
6728
+ "name": "LeStringInput",
5625
6729
  "declaration": {
5626
- "name": "LeStack",
5627
- "module": "src/components/le-stack/le-stack.tsx"
6730
+ "name": "LeStringInput",
6731
+ "module": "src/components/le-string-input/le-string-input.tsx"
5628
6732
  }
5629
6733
  },
5630
6734
  {
5631
6735
  "kind": "custom-element-definition",
5632
- "name": "le-stack",
6736
+ "name": "le-string-input",
5633
6737
  "declaration": {
5634
- "name": "LeStack",
5635
- "module": "src/components/le-stack/le-stack.tsx"
6738
+ "name": "LeStringInput",
6739
+ "module": "src/components/le-string-input/le-string-input.tsx"
5636
6740
  }
5637
6741
  }
5638
6742
  ]
5639
6743
  },
5640
6744
  {
5641
6745
  "kind": "javascript-module",
5642
- "path": "src/components/le-string-input/le-string-input.tsx",
6746
+ "path": "src/components/le-stack/le-stack.tsx",
5643
6747
  "declarations": [
5644
6748
  {
5645
6749
  "kind": "class",
5646
- "description": "A text input component with support for labels, descriptions, icons, and external IDs.",
5647
- "name": "LeStringInput",
6750
+ "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.",
6751
+ "name": "LeStack",
5648
6752
  "cssProperties": [
5649
6753
  {
5650
- "description": "Input background color",
5651
- "name": "--le-input-bg"
5652
- },
5653
- {
5654
- "description": "Input text color",
5655
- "name": "--le-input-color"
5656
- },
5657
- {
5658
- "description": "Input border style",
5659
- "name": "--le-input-border"
5660
- },
5661
- {
5662
- "description": "Input border style when focused",
5663
- "name": "--le-input-border-focus"
5664
- },
5665
- {
5666
- "description": "Input border radius",
5667
- "name": "--le-input-radius"
5668
- },
6754
+ "description": "Gap between items (defaults to var(--le-space-md))",
6755
+ "name": "--le-stack-gap"
6756
+ }
6757
+ ],
6758
+ "cssParts": [
5669
6759
  {
5670
- "description": "Input padding",
5671
- "name": "--le-input-padding"
6760
+ "description": "The main stack container",
6761
+ "name": "stack"
5672
6762
  }
5673
6763
  ],
5674
6764
  "slots": [
5675
6765
  {
5676
- "description": "The label text for the input",
6766
+ "description": "Default slot for stack items (le-box components recommended)",
5677
6767
  "name": ""
5678
- },
5679
- {
5680
- "description": "Additional description text displayed below the input",
5681
- "name": "description"
5682
- },
5683
- {
5684
- "description": "Icon to display at the start of the input",
5685
- "name": "icon-start"
5686
- },
5687
- {
5688
- "description": "Icon to display at the end of the input",
5689
- "name": "icon-end"
5690
6768
  }
5691
6769
  ],
5692
- "members": [
5693
- {
5694
- "kind": "field",
5695
- "name": "el",
5696
- "type": {
5697
- "text": "HTMLElement"
5698
- }
5699
- },
5700
- {
5701
- "kind": "field",
5702
- "name": "inputRef",
5703
- "type": {
5704
- "text": "(el: HTMLInputElement) => void | undefined"
5705
- },
5706
- "description": "Pass the ref of the input element to the parent component"
5707
- },
6770
+ "members": [
5708
6771
  {
5709
6772
  "kind": "field",
5710
- "name": "mode",
6773
+ "name": "el",
5711
6774
  "type": {
5712
- "text": "'default' | 'admin'"
5713
- },
5714
- "description": "Mode of the popover should be 'default' for internal use"
6775
+ "text": "HTMLElement"
6776
+ }
5715
6777
  },
5716
6778
  {
5717
6779
  "kind": "field",
5718
- "name": "value",
6780
+ "name": "direction",
5719
6781
  "type": {
5720
- "text": "string"
6782
+ "text": "'horizontal' | 'vertical'"
5721
6783
  },
5722
- "description": "The value of the input"
6784
+ "default": "'horizontal'",
6785
+ "description": "Direction of the stack layout"
5723
6786
  },
5724
6787
  {
5725
6788
  "kind": "field",
5726
- "name": "name",
6789
+ "name": "gap",
5727
6790
  "type": {
5728
- "text": "string"
6791
+ "text": "string | undefined"
5729
6792
  },
5730
- "description": "The name of the input"
6793
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')"
5731
6794
  },
5732
6795
  {
5733
6796
  "kind": "field",
5734
- "name": "type",
6797
+ "name": "align",
5735
6798
  "type": {
5736
- "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
6799
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
5737
6800
  },
5738
- "default": "'text'",
5739
- "description": "The type of the input (text, email, password, etc.)"
6801
+ "default": "'stretch'",
6802
+ "description": "Alignment of items on the cross axis"
5740
6803
  },
5741
6804
  {
5742
6805
  "kind": "field",
5743
- "name": "label",
6806
+ "name": "justify",
5744
6807
  "type": {
5745
- "text": "string"
6808
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
5746
6809
  },
5747
- "description": "Label for the input"
6810
+ "default": "'start'",
6811
+ "description": "Distribution of items on the main axis"
5748
6812
  },
5749
6813
  {
5750
6814
  "kind": "field",
5751
- "name": "iconStart",
6815
+ "name": "wrap",
5752
6816
  "type": {
5753
- "text": "string"
6817
+ "text": "boolean"
5754
6818
  },
5755
- "description": "Icon for the start icon"
6819
+ "default": "false",
6820
+ "description": "Whether items should wrap to multiple lines"
5756
6821
  },
5757
6822
  {
5758
6823
  "kind": "field",
5759
- "name": "iconEnd",
6824
+ "name": "alignContent",
5760
6825
  "type": {
5761
- "text": "string"
6826
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
5762
6827
  },
5763
- "description": "Icon for the end icon"
6828
+ "default": "'stretch'",
6829
+ "description": "Alignment of wrapped lines (only applies when wrap is true)"
5764
6830
  },
5765
6831
  {
5766
6832
  "kind": "field",
5767
- "name": "placeholder",
6833
+ "name": "reverse",
5768
6834
  "type": {
5769
- "text": "string"
6835
+ "text": "boolean"
5770
6836
  },
5771
- "description": "Placeholder text"
6837
+ "default": "false",
6838
+ "description": "Whether to reverse the order of items"
5772
6839
  },
5773
6840
  {
5774
6841
  "kind": "field",
5775
- "name": "hideDescription",
6842
+ "name": "maxItems",
5776
6843
  "type": {
5777
- "text": "boolean"
6844
+ "text": "number | undefined"
5778
6845
  },
5779
- "default": "false",
5780
- "description": "Hide description slot"
6846
+ "description": "Maximum number of items allowed in the stack (for CMS validation)"
5781
6847
  },
5782
6848
  {
5783
6849
  "kind": "field",
5784
- "name": "disabled",
6850
+ "name": "fullWidth",
5785
6851
  "type": {
5786
6852
  "text": "boolean"
5787
6853
  },
5788
6854
  "default": "false",
5789
- "description": "Whether the input is disabled"
6855
+ "description": "Whether the stack should take full width of its container"
5790
6856
  },
5791
6857
  {
5792
6858
  "kind": "field",
5793
- "name": "readonly",
6859
+ "name": "fullHeight",
5794
6860
  "type": {
5795
6861
  "text": "boolean"
5796
6862
  },
5797
6863
  "default": "false",
5798
- "description": "Whether the input is read-only"
6864
+ "description": "Whether the stack should take full height of its container"
5799
6865
  },
5800
6866
  {
5801
6867
  "kind": "field",
5802
- "name": "externalId",
6868
+ "name": "padding",
5803
6869
  "type": {
5804
- "text": "string"
6870
+ "text": "string | undefined"
5805
6871
  },
5806
- "description": "External ID for linking with external systems"
6872
+ "description": "Padding inside the stack container (CSS value)"
5807
6873
  },
5808
6874
  {
5809
- "kind": "field",
5810
- "name": "handleInput",
5811
- "privacy": "private"
6875
+ "kind": "method",
6876
+ "name": "getFlexDirection",
6877
+ "privacy": "private",
6878
+ "return": {
6879
+ "type": {
6880
+ "text": "string"
6881
+ }
6882
+ }
5812
6883
  },
5813
6884
  {
5814
- "kind": "field",
5815
- "name": "handleChange",
5816
- "privacy": "private"
6885
+ "kind": "method",
6886
+ "name": "getAlignItems",
6887
+ "privacy": "private",
6888
+ "return": {
6889
+ "type": {
6890
+ "text": "string"
6891
+ }
6892
+ }
5817
6893
  },
5818
6894
  {
5819
- "kind": "field",
5820
- "name": "handleClick",
5821
- "privacy": "private"
6895
+ "kind": "method",
6896
+ "name": "getJustifyContent",
6897
+ "privacy": "private",
6898
+ "return": {
6899
+ "type": {
6900
+ "text": "string"
6901
+ }
6902
+ }
6903
+ },
6904
+ {
6905
+ "kind": "method",
6906
+ "name": "getAlignContent",
6907
+ "privacy": "private",
6908
+ "return": {
6909
+ "type": {
6910
+ "text": "string"
6911
+ }
6912
+ }
5822
6913
  },
5823
6914
  {
5824
6915
  "kind": "method",
@@ -5827,149 +6918,122 @@
5827
6918
  ],
5828
6919
  "attributes": [
5829
6920
  {
5830
- "name": "input-ref",
5831
- "fieldName": "inputRef",
5832
- "description": "Pass the ref of the input element to the parent component",
5833
- "type": {
5834
- "text": "(el: HTMLInputElement) => void"
5835
- }
5836
- },
5837
- {
5838
- "name": "mode",
5839
- "fieldName": "mode",
5840
- "description": "Mode of the popover should be 'default' for internal use",
5841
- "type": {
5842
- "text": "'default' | 'admin'"
5843
- }
5844
- },
5845
- {
5846
- "name": "value",
5847
- "fieldName": "value",
5848
- "description": "The value of the input",
6921
+ "name": "direction",
6922
+ "fieldName": "direction",
6923
+ "default": "'horizontal'",
6924
+ "description": "Direction of the stack layout",
5849
6925
  "type": {
5850
- "text": "string"
6926
+ "text": "'horizontal' | 'vertical'"
5851
6927
  }
5852
6928
  },
5853
6929
  {
5854
- "name": "name",
5855
- "fieldName": "name",
5856
- "description": "The name of the input",
6930
+ "name": "gap",
6931
+ "fieldName": "gap",
6932
+ "description": "Gap between items (CSS value like '8px', '1rem', 'var(--le-space-md)')",
5857
6933
  "type": {
5858
6934
  "text": "string"
5859
6935
  }
5860
6936
  },
5861
6937
  {
5862
- "name": "type",
5863
- "fieldName": "type",
5864
- "default": "'text'",
5865
- "description": "The type of the input (text, email, password, etc.)",
6938
+ "name": "align",
6939
+ "fieldName": "align",
6940
+ "default": "'stretch'",
6941
+ "description": "Alignment of items on the cross axis",
5866
6942
  "type": {
5867
- "text": "'text' | 'email' | 'password' | 'tel' | 'url'"
6943
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'baseline'"
5868
6944
  }
5869
6945
  },
5870
6946
  {
5871
- "name": "label",
5872
- "fieldName": "label",
5873
- "description": "Label for the input",
6947
+ "name": "justify",
6948
+ "fieldName": "justify",
6949
+ "default": "'start'",
6950
+ "description": "Distribution of items on the main axis",
5874
6951
  "type": {
5875
- "text": "string"
6952
+ "text": "'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly'"
5876
6953
  }
5877
6954
  },
5878
6955
  {
5879
- "name": "icon-start",
5880
- "fieldName": "iconStart",
5881
- "description": "Icon for the start icon",
6956
+ "name": "wrap",
6957
+ "fieldName": "wrap",
6958
+ "default": "false",
6959
+ "description": "Whether items should wrap to multiple lines",
5882
6960
  "type": {
5883
- "text": "string"
6961
+ "text": "boolean"
5884
6962
  }
5885
6963
  },
5886
6964
  {
5887
- "name": "icon-end",
5888
- "fieldName": "iconEnd",
5889
- "description": "Icon for the end icon",
6965
+ "name": "align-content",
6966
+ "fieldName": "alignContent",
6967
+ "default": "'stretch'",
6968
+ "description": "Alignment of wrapped lines (only applies when wrap is true)",
5890
6969
  "type": {
5891
- "text": "string"
6970
+ "text": "'start' | 'center' | 'end' | 'stretch' | 'space-between' | 'space-around'"
5892
6971
  }
5893
6972
  },
5894
6973
  {
5895
- "name": "placeholder",
5896
- "fieldName": "placeholder",
5897
- "description": "Placeholder text",
6974
+ "name": "reverse",
6975
+ "fieldName": "reverse",
6976
+ "default": "false",
6977
+ "description": "Whether to reverse the order of items",
5898
6978
  "type": {
5899
- "text": "string"
6979
+ "text": "boolean"
5900
6980
  }
5901
6981
  },
5902
6982
  {
5903
- "name": "hide-description",
5904
- "fieldName": "hideDescription",
5905
- "default": "false",
5906
- "description": "Hide description slot",
6983
+ "name": "max-items",
6984
+ "fieldName": "maxItems",
6985
+ "description": "Maximum number of items allowed in the stack (for CMS validation)",
5907
6986
  "type": {
5908
- "text": "boolean"
6987
+ "text": "number"
5909
6988
  }
5910
6989
  },
5911
6990
  {
5912
- "name": "disabled",
5913
- "fieldName": "disabled",
6991
+ "name": "full-width",
6992
+ "fieldName": "fullWidth",
5914
6993
  "default": "false",
5915
- "description": "Whether the input is disabled",
6994
+ "description": "Whether the stack should take full width of its container",
5916
6995
  "type": {
5917
6996
  "text": "boolean"
5918
6997
  }
5919
6998
  },
5920
6999
  {
5921
- "name": "readonly",
5922
- "fieldName": "readonly",
7000
+ "name": "full-height",
7001
+ "fieldName": "fullHeight",
5923
7002
  "default": "false",
5924
- "description": "Whether the input is read-only",
7003
+ "description": "Whether the stack should take full height of its container",
5925
7004
  "type": {
5926
7005
  "text": "boolean"
5927
7006
  }
5928
7007
  },
5929
7008
  {
5930
- "name": "external-id",
5931
- "fieldName": "externalId",
5932
- "description": "External ID for linking with external systems",
7009
+ "name": "padding",
7010
+ "fieldName": "padding",
7011
+ "description": "Padding inside the stack container (CSS value)",
5933
7012
  "type": {
5934
7013
  "text": "string"
5935
7014
  }
5936
7015
  }
5937
7016
  ],
5938
- "tagName": "le-string-input",
5939
- "events": [
5940
- {
5941
- "name": "change",
5942
- "type": {
5943
- "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
5944
- },
5945
- "description": "Emitted when the value changes (on blur or Enter)"
5946
- },
5947
- {
5948
- "name": "input",
5949
- "type": {
5950
- "text": "EventEmitter<{\n value: string;\n name: string;\n externalId: string;\n }>"
5951
- },
5952
- "description": "Emitted when the input value changes (on keystroke)"
5953
- }
5954
- ],
7017
+ "tagName": "le-stack",
7018
+ "events": [],
5955
7019
  "customElement": true
5956
7020
  }
5957
7021
  ],
5958
7022
  "exports": [
5959
7023
  {
5960
7024
  "kind": "js",
5961
- "name": "LeStringInput",
7025
+ "name": "LeStack",
5962
7026
  "declaration": {
5963
- "name": "LeStringInput",
5964
- "module": "src/components/le-string-input/le-string-input.tsx"
7027
+ "name": "LeStack",
7028
+ "module": "src/components/le-stack/le-stack.tsx"
5965
7029
  }
5966
7030
  },
5967
7031
  {
5968
7032
  "kind": "custom-element-definition",
5969
- "name": "le-string-input",
7033
+ "name": "le-stack",
5970
7034
  "declaration": {
5971
- "name": "LeStringInput",
5972
- "module": "src/components/le-string-input/le-string-input.tsx"
7035
+ "name": "LeStack",
7036
+ "module": "src/components/le-stack/le-stack.tsx"
5973
7037
  }
5974
7038
  }
5975
7039
  ]