le-kit 0.5.2 → 0.5.4

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 (475) hide show
  1. package/LLM_CONTEXT.md +22 -33
  2. package/package.json +3 -1
  3. package/readme.md +2 -0
  4. package/dist/cjs/index-BzadfLTc.js +0 -1864
  5. package/dist/cjs/index-BzadfLTc.js.map +0 -1
  6. package/dist/cjs/index.cjs.js +0 -124
  7. package/dist/cjs/index.cjs.js.map +0 -1
  8. package/dist/cjs/le-bar_16.cjs.entry.js +0 -3709
  9. package/dist/cjs/le-box.cjs.entry.js +0 -184
  10. package/dist/cjs/le-card.cjs.entry.js +0 -29
  11. package/dist/cjs/le-code-input.cjs.entry.js +0 -181
  12. package/dist/cjs/le-combobox.cjs.entry.js +0 -237
  13. package/dist/cjs/le-header-placeholder.cjs.entry.js +0 -18
  14. package/dist/cjs/le-kit.cjs.js +0 -27
  15. package/dist/cjs/le-kit.cjs.js.map +0 -1
  16. package/dist/cjs/le-multiselect.cjs.entry.js +0 -306
  17. package/dist/cjs/le-number-input.cjs.entry.js +0 -202
  18. package/dist/cjs/le-round-progress.cjs.entry.js +0 -106
  19. package/dist/cjs/le-segmented-control.cjs.entry.js +0 -245
  20. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +0 -229
  21. package/dist/cjs/le-side-panel.cjs.entry.js +0 -546
  22. package/dist/cjs/le-stack.cjs.entry.js +0 -135
  23. package/dist/cjs/le-tab-bar.cjs.entry.js +0 -242
  24. package/dist/cjs/le-tab-panel.cjs.entry.js +0 -100
  25. package/dist/cjs/le-tab.cjs.entry.js +0 -136
  26. package/dist/cjs/le-tabs.cjs.entry.js +0 -307
  27. package/dist/cjs/le-tag.cjs.entry.js +0 -68
  28. package/dist/cjs/le-text.cjs.entry.js +0 -335
  29. package/dist/cjs/le-turntable.cjs.entry.js +0 -139
  30. package/dist/cjs/loader.cjs.js +0 -15
  31. package/dist/cjs/loader.cjs.js.map +0 -1
  32. package/dist/cjs/utils-Dxx9WhWK.js +0 -152
  33. package/dist/cjs/utils-Dxx9WhWK.js.map +0 -1
  34. package/dist/collection/assets/icons/chevron-down.svg +0 -3
  35. package/dist/collection/collection-manifest.json +0 -47
  36. package/dist/collection/components/le-bar/le-bar.css +0 -255
  37. package/dist/collection/components/le-bar/le-bar.js +0 -680
  38. package/dist/collection/components/le-bar/le-bar.js.map +0 -1
  39. package/dist/collection/components/le-box/le-box.css +0 -37
  40. package/dist/collection/components/le-box/le-box.js +0 -614
  41. package/dist/collection/components/le-box/le-box.js.map +0 -1
  42. package/dist/collection/components/le-button/le-button.css +0 -290
  43. package/dist/collection/components/le-button/le-button.js +0 -460
  44. package/dist/collection/components/le-button/le-button.js.map +0 -1
  45. package/dist/collection/components/le-card/le-card.css +0 -74
  46. package/dist/collection/components/le-card/le-card.js +0 -102
  47. package/dist/collection/components/le-card/le-card.js.map +0 -1
  48. package/dist/collection/components/le-checkbox/le-checkbox.css +0 -93
  49. package/dist/collection/components/le-checkbox/le-checkbox.js +0 -192
  50. package/dist/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  51. package/dist/collection/components/le-code-input/le-code-input.css +0 -106
  52. package/dist/collection/components/le-code-input/le-code-input.js +0 -466
  53. package/dist/collection/components/le-code-input/le-code-input.js.map +0 -1
  54. package/dist/collection/components/le-collapse/le-collapse.css +0 -31
  55. package/dist/collection/components/le-collapse/le-collapse.js +0 -184
  56. package/dist/collection/components/le-collapse/le-collapse.js.map +0 -1
  57. package/dist/collection/components/le-combobox/le-combobox.css +0 -144
  58. package/dist/collection/components/le-combobox/le-combobox.js +0 -659
  59. package/dist/collection/components/le-combobox/le-combobox.js.map +0 -1
  60. package/dist/collection/components/le-component/le-component.css +0 -189
  61. package/dist/collection/components/le-component/le-component.js +0 -367
  62. package/dist/collection/components/le-component/le-component.js.map +0 -1
  63. package/dist/collection/components/le-current-heading/le-current-heading.css +0 -13
  64. package/dist/collection/components/le-current-heading/le-current-heading.js +0 -130
  65. package/dist/collection/components/le-current-heading/le-current-heading.js.map +0 -1
  66. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +0 -167
  67. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +0 -761
  68. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +0 -1
  69. package/dist/collection/components/le-header/le-header.css +0 -120
  70. package/dist/collection/components/le-header/le-header.js +0 -508
  71. package/dist/collection/components/le-header/le-header.js.map +0 -1
  72. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +0 -21
  73. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +0 -1
  74. package/dist/collection/components/le-icon/le-icon.css +0 -13
  75. package/dist/collection/components/le-icon/le-icon.js +0 -185
  76. package/dist/collection/components/le-icon/le-icon.js.map +0 -1
  77. package/dist/collection/components/le-multiselect/le-multiselect.css +0 -163
  78. package/dist/collection/components/le-multiselect/le-multiselect.js +0 -734
  79. package/dist/collection/components/le-multiselect/le-multiselect.js.map +0 -1
  80. package/dist/collection/components/le-navigation/le-navigation.css +0 -330
  81. package/dist/collection/components/le-navigation/le-navigation.js +0 -700
  82. package/dist/collection/components/le-navigation/le-navigation.js.map +0 -1
  83. package/dist/collection/components/le-number-input/le-number-input.css +0 -135
  84. package/dist/collection/components/le-number-input/le-number-input.js +0 -515
  85. package/dist/collection/components/le-number-input/le-number-input.js.map +0 -1
  86. package/dist/collection/components/le-popover/le-popover.css +0 -163
  87. package/dist/collection/components/le-popover/le-popover.js +0 -853
  88. package/dist/collection/components/le-popover/le-popover.js.map +0 -1
  89. package/dist/collection/components/le-popup/le-popup.api.js +0 -102
  90. package/dist/collection/components/le-popup/le-popup.api.js.map +0 -1
  91. package/dist/collection/components/le-popup/le-popup.css +0 -222
  92. package/dist/collection/components/le-popup/le-popup.js +0 -626
  93. package/dist/collection/components/le-popup/le-popup.js.map +0 -1
  94. package/dist/collection/components/le-round-progress/le-round-progress.css +0 -34
  95. package/dist/collection/components/le-round-progress/le-round-progress.js +0 -184
  96. package/dist/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  97. package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +0 -29
  98. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +0 -186
  99. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +0 -1
  100. package/dist/collection/components/le-segmented-control/le-segmented-control.css +0 -78
  101. package/dist/collection/components/le-segmented-control/le-segmented-control.js +0 -445
  102. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +0 -1
  103. package/dist/collection/components/le-select/le-select.css +0 -121
  104. package/dist/collection/components/le-select/le-select.js +0 -578
  105. package/dist/collection/components/le-select/le-select.js.map +0 -1
  106. package/dist/collection/components/le-side-panel/le-side-panel.css +0 -193
  107. package/dist/collection/components/le-side-panel/le-side-panel.js +0 -953
  108. package/dist/collection/components/le-side-panel/le-side-panel.js.map +0 -1
  109. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +0 -610
  110. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +0 -1
  111. package/dist/collection/components/le-slot/le-slot.default.css +0 -222
  112. package/dist/collection/components/le-slot/le-slot.js +0 -638
  113. package/dist/collection/components/le-slot/le-slot.js.map +0 -1
  114. package/dist/collection/components/le-stack/le-stack.default.css +0 -37
  115. package/dist/collection/components/le-stack/le-stack.js +0 -389
  116. package/dist/collection/components/le-stack/le-stack.js.map +0 -1
  117. package/dist/collection/components/le-string-input/le-string-input.css +0 -83
  118. package/dist/collection/components/le-string-input/le-string-input.js +0 -413
  119. package/dist/collection/components/le-string-input/le-string-input.js.map +0 -1
  120. package/dist/collection/components/le-tab/le-tab.css +0 -289
  121. package/dist/collection/components/le-tab/le-tab.js +0 -565
  122. package/dist/collection/components/le-tab/le-tab.js.map +0 -1
  123. package/dist/collection/components/le-tab-bar/le-tab-bar.css +0 -89
  124. package/dist/collection/components/le-tab-bar/le-tab-bar.js +0 -467
  125. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +0 -1
  126. package/dist/collection/components/le-tab-panel/le-tab-panel.css +0 -30
  127. package/dist/collection/components/le-tab-panel/le-tab-panel.js +0 -302
  128. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +0 -1
  129. package/dist/collection/components/le-tabs/le-tabs.css +0 -146
  130. package/dist/collection/components/le-tabs/le-tabs.js +0 -588
  131. package/dist/collection/components/le-tabs/le-tabs.js.map +0 -1
  132. package/dist/collection/components/le-tag/le-tag.css +0 -139
  133. package/dist/collection/components/le-tag/le-tag.js +0 -266
  134. package/dist/collection/components/le-tag/le-tag.js.map +0 -1
  135. package/dist/collection/components/le-text/le-text.css +0 -169
  136. package/dist/collection/components/le-text/le-text.js +0 -475
  137. package/dist/collection/components/le-text/le-text.js.map +0 -1
  138. package/dist/collection/components/le-turntable/le-turntable.css +0 -10
  139. package/dist/collection/components/le-turntable/le-turntable.js +0 -210
  140. package/dist/collection/components/le-turntable/le-turntable.js.map +0 -1
  141. package/dist/collection/dist/components/assets/custom-elements.json +0 -11935
  142. package/dist/collection/dist/components/assets/icons/chevron-down.json +0 -13
  143. package/dist/collection/dist/components/assets/icons/chevron-down.svg +0 -3
  144. package/dist/collection/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  145. package/dist/collection/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  146. package/dist/collection/dist/components/assets/icons/hamburger.json +0 -14
  147. package/dist/collection/dist/components/assets/icons/side-panel.json +0 -61
  148. package/dist/collection/dist/themes/base.css +0 -89
  149. package/dist/collection/dist/themes/dark.css +0 -104
  150. package/dist/collection/dist/themes/default.css +0 -112
  151. package/dist/collection/dist/themes/gradient.css +0 -104
  152. package/dist/collection/dist/themes/index.css +0 -76
  153. package/dist/collection/dist/themes/minimal.css +0 -104
  154. package/dist/collection/dist/themes/warm.css +0 -104
  155. package/dist/collection/global/app.js +0 -177
  156. package/dist/collection/global/app.js.map +0 -1
  157. package/dist/collection/index.js +0 -16
  158. package/dist/collection/index.js.map +0 -1
  159. package/dist/collection/types/blocks.js +0 -115
  160. package/dist/collection/types/blocks.js.map +0 -1
  161. package/dist/collection/types/options.js +0 -2
  162. package/dist/collection/types/options.js.map +0 -1
  163. package/dist/collection/utils/utils.js +0 -141
  164. package/dist/collection/utils/utils.js.map +0 -1
  165. package/dist/components/app.js +0 -180
  166. package/dist/components/app.js.map +0 -1
  167. package/dist/components/assets/custom-elements.json +0 -11935
  168. package/dist/components/assets/icons/chevron-down.json +0 -13
  169. package/dist/components/assets/icons/chevron-down.svg +0 -3
  170. package/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  171. package/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  172. package/dist/components/assets/icons/hamburger.json +0 -14
  173. package/dist/components/assets/icons/side-panel.json +0 -61
  174. package/dist/components/index.d.ts +0 -33
  175. package/dist/components/index.js +0 -12
  176. package/dist/components/index.js.map +0 -1
  177. package/dist/components/le-bar.d.ts +0 -11
  178. package/dist/components/le-bar.js +0 -9
  179. package/dist/components/le-bar.js.map +0 -1
  180. package/dist/components/le-bar2.js +0 -506
  181. package/dist/components/le-bar2.js.map +0 -1
  182. package/dist/components/le-box.d.ts +0 -11
  183. package/dist/components/le-box.js +0 -273
  184. package/dist/components/le-box.js.map +0 -1
  185. package/dist/components/le-button.d.ts +0 -11
  186. package/dist/components/le-button.js +0 -9
  187. package/dist/components/le-button.js.map +0 -1
  188. package/dist/components/le-button2.js +0 -1791
  189. package/dist/components/le-button2.js.map +0 -1
  190. package/dist/components/le-card.d.ts +0 -11
  191. package/dist/components/le-card.js +0 -100
  192. package/dist/components/le-card.js.map +0 -1
  193. package/dist/components/le-checkbox.d.ts +0 -11
  194. package/dist/components/le-checkbox.js +0 -9
  195. package/dist/components/le-checkbox.js.map +0 -1
  196. package/dist/components/le-code-input.d.ts +0 -11
  197. package/dist/components/le-code-input.js +0 -265
  198. package/dist/components/le-code-input.js.map +0 -1
  199. package/dist/components/le-collapse.d.ts +0 -11
  200. package/dist/components/le-collapse.js +0 -9
  201. package/dist/components/le-collapse.js.map +0 -1
  202. package/dist/components/le-collapse2.js +0 -138
  203. package/dist/components/le-collapse2.js.map +0 -1
  204. package/dist/components/le-combobox.d.ts +0 -11
  205. package/dist/components/le-combobox.js +0 -326
  206. package/dist/components/le-combobox.js.map +0 -1
  207. package/dist/components/le-component.d.ts +0 -11
  208. package/dist/components/le-component.js +0 -9
  209. package/dist/components/le-component.js.map +0 -1
  210. package/dist/components/le-current-heading.d.ts +0 -11
  211. package/dist/components/le-current-heading.js +0 -93
  212. package/dist/components/le-current-heading.js.map +0 -1
  213. package/dist/components/le-dropdown-base.d.ts +0 -11
  214. package/dist/components/le-dropdown-base.js +0 -9
  215. package/dist/components/le-dropdown-base.js.map +0 -1
  216. package/dist/components/le-dropdown-base2.js +0 -393
  217. package/dist/components/le-dropdown-base2.js.map +0 -1
  218. package/dist/components/le-header-placeholder.d.ts +0 -11
  219. package/dist/components/le-header-placeholder.js +0 -37
  220. package/dist/components/le-header-placeholder.js.map +0 -1
  221. package/dist/components/le-header.d.ts +0 -11
  222. package/dist/components/le-header.js +0 -349
  223. package/dist/components/le-header.js.map +0 -1
  224. package/dist/components/le-icon.d.ts +0 -11
  225. package/dist/components/le-icon.js +0 -9
  226. package/dist/components/le-icon.js.map +0 -1
  227. package/dist/components/le-icon2.js +0 -150
  228. package/dist/components/le-icon2.js.map +0 -1
  229. package/dist/components/le-multiselect.d.ts +0 -11
  230. package/dist/components/le-multiselect.js +0 -405
  231. package/dist/components/le-multiselect.js.map +0 -1
  232. package/dist/components/le-navigation.d.ts +0 -11
  233. package/dist/components/le-navigation.js +0 -502
  234. package/dist/components/le-navigation.js.map +0 -1
  235. package/dist/components/le-number-input.d.ts +0 -11
  236. package/dist/components/le-number-input.js +0 -288
  237. package/dist/components/le-number-input.js.map +0 -1
  238. package/dist/components/le-popover.d.ts +0 -11
  239. package/dist/components/le-popover.js +0 -9
  240. package/dist/components/le-popover.js.map +0 -1
  241. package/dist/components/le-popover2.js +0 -667
  242. package/dist/components/le-popover2.js.map +0 -1
  243. package/dist/components/le-popup.api.js +0 -106
  244. package/dist/components/le-popup.api.js.map +0 -1
  245. package/dist/components/le-popup.d.ts +0 -11
  246. package/dist/components/le-popup.js +0 -9
  247. package/dist/components/le-popup.js.map +0 -1
  248. package/dist/components/le-round-progress.d.ts +0 -11
  249. package/dist/components/le-round-progress.js +0 -135
  250. package/dist/components/le-round-progress.js.map +0 -1
  251. package/dist/components/le-scroll-progress.d.ts +0 -11
  252. package/dist/components/le-scroll-progress.js +0 -142
  253. package/dist/components/le-scroll-progress.js.map +0 -1
  254. package/dist/components/le-segmented-control.d.ts +0 -11
  255. package/dist/components/le-segmented-control.js +0 -331
  256. package/dist/components/le-segmented-control.js.map +0 -1
  257. package/dist/components/le-select.d.ts +0 -11
  258. package/dist/components/le-select.js +0 -9
  259. package/dist/components/le-select.js.map +0 -1
  260. package/dist/components/le-side-panel-toggle.d.ts +0 -11
  261. package/dist/components/le-side-panel-toggle.js +0 -9
  262. package/dist/components/le-side-panel-toggle.js.map +0 -1
  263. package/dist/components/le-side-panel-toggle2.js +0 -311
  264. package/dist/components/le-side-panel-toggle2.js.map +0 -1
  265. package/dist/components/le-side-panel.d.ts +0 -11
  266. package/dist/components/le-side-panel.js +0 -660
  267. package/dist/components/le-side-panel.js.map +0 -1
  268. package/dist/components/le-slot.d.ts +0 -11
  269. package/dist/components/le-slot.js +0 -9
  270. package/dist/components/le-slot.js.map +0 -1
  271. package/dist/components/le-stack.d.ts +0 -11
  272. package/dist/components/le-stack.js +0 -215
  273. package/dist/components/le-stack.js.map +0 -1
  274. package/dist/components/le-string-input.d.ts +0 -11
  275. package/dist/components/le-string-input.js +0 -9
  276. package/dist/components/le-string-input.js.map +0 -1
  277. package/dist/components/le-tab-bar.d.ts +0 -11
  278. package/dist/components/le-tab-bar.js +0 -330
  279. package/dist/components/le-tab-bar.js.map +0 -1
  280. package/dist/components/le-tab-panel.d.ts +0 -11
  281. package/dist/components/le-tab-panel.js +0 -182
  282. package/dist/components/le-tab-panel.js.map +0 -1
  283. package/dist/components/le-tab.d.ts +0 -11
  284. package/dist/components/le-tab.js +0 -9
  285. package/dist/components/le-tab.js.map +0 -1
  286. package/dist/components/le-tab2.js +0 -220
  287. package/dist/components/le-tab2.js.map +0 -1
  288. package/dist/components/le-tabs.d.ts +0 -11
  289. package/dist/components/le-tabs.js +0 -397
  290. package/dist/components/le-tabs.js.map +0 -1
  291. package/dist/components/le-tag.d.ts +0 -11
  292. package/dist/components/le-tag.js +0 -9
  293. package/dist/components/le-tag.js.map +0 -1
  294. package/dist/components/le-tag2.js +0 -141
  295. package/dist/components/le-tag2.js.map +0 -1
  296. package/dist/components/le-text.d.ts +0 -11
  297. package/dist/components/le-text.js +0 -415
  298. package/dist/components/le-text.js.map +0 -1
  299. package/dist/components/le-turntable.d.ts +0 -11
  300. package/dist/components/le-turntable.js +0 -164
  301. package/dist/components/le-turntable.js.map +0 -1
  302. package/dist/components/utils.js +0 -146
  303. package/dist/components/utils.js.map +0 -1
  304. package/dist/docs.d.ts +0 -443
  305. package/dist/docs.json +0 -14289
  306. package/dist/esm/index-DFTm5BqT.js +0 -1844
  307. package/dist/esm/index-DFTm5BqT.js.map +0 -1
  308. package/dist/esm/index.js +0 -109
  309. package/dist/esm/index.js.map +0 -1
  310. package/dist/esm/le-bar_16.entry.js +0 -3692
  311. package/dist/esm/le-box.entry.js +0 -182
  312. package/dist/esm/le-box.entry.js.map +0 -1
  313. package/dist/esm/le-card.entry.js +0 -27
  314. package/dist/esm/le-card.entry.js.map +0 -1
  315. package/dist/esm/le-code-input.entry.js +0 -179
  316. package/dist/esm/le-code-input.entry.js.map +0 -1
  317. package/dist/esm/le-combobox.entry.js +0 -235
  318. package/dist/esm/le-combobox.entry.js.map +0 -1
  319. package/dist/esm/le-header-placeholder.entry.js +0 -16
  320. package/dist/esm/le-header-placeholder.entry.js.map +0 -1
  321. package/dist/esm/le-kit.js +0 -23
  322. package/dist/esm/le-kit.js.map +0 -1
  323. package/dist/esm/le-multiselect.entry.js +0 -304
  324. package/dist/esm/le-multiselect.entry.js.map +0 -1
  325. package/dist/esm/le-number-input.entry.js +0 -200
  326. package/dist/esm/le-number-input.entry.js.map +0 -1
  327. package/dist/esm/le-round-progress.entry.js +0 -104
  328. package/dist/esm/le-round-progress.entry.js.map +0 -1
  329. package/dist/esm/le-segmented-control.entry.js +0 -243
  330. package/dist/esm/le-segmented-control.entry.js.map +0 -1
  331. package/dist/esm/le-side-panel-toggle.entry.js +0 -227
  332. package/dist/esm/le-side-panel-toggle.entry.js.map +0 -1
  333. package/dist/esm/le-side-panel.entry.js +0 -544
  334. package/dist/esm/le-side-panel.entry.js.map +0 -1
  335. package/dist/esm/le-stack.entry.js +0 -133
  336. package/dist/esm/le-stack.entry.js.map +0 -1
  337. package/dist/esm/le-tab-bar.entry.js +0 -240
  338. package/dist/esm/le-tab-bar.entry.js.map +0 -1
  339. package/dist/esm/le-tab-panel.entry.js +0 -98
  340. package/dist/esm/le-tab-panel.entry.js.map +0 -1
  341. package/dist/esm/le-tab.entry.js +0 -134
  342. package/dist/esm/le-tab.entry.js.map +0 -1
  343. package/dist/esm/le-tabs.entry.js +0 -305
  344. package/dist/esm/le-tabs.entry.js.map +0 -1
  345. package/dist/esm/le-tag.entry.js +0 -66
  346. package/dist/esm/le-tag.entry.js.map +0 -1
  347. package/dist/esm/le-text.entry.js +0 -333
  348. package/dist/esm/le-text.entry.js.map +0 -1
  349. package/dist/esm/le-turntable.entry.js +0 -137
  350. package/dist/esm/le-turntable.entry.js.map +0 -1
  351. package/dist/esm/loader.js +0 -13
  352. package/dist/esm/loader.js.map +0 -1
  353. package/dist/esm/utils-DZYCZLrF.js +0 -146
  354. package/dist/esm/utils-DZYCZLrF.js.map +0 -1
  355. package/dist/index.cjs.js +0 -1
  356. package/dist/index.js +0 -1
  357. package/dist/le-kit/dist/components/assets/custom-elements.json +0 -11935
  358. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +0 -13
  359. package/dist/le-kit/dist/components/assets/icons/chevron-down.svg +0 -3
  360. package/dist/le-kit/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  361. package/dist/le-kit/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  362. package/dist/le-kit/dist/components/assets/icons/hamburger.json +0 -14
  363. package/dist/le-kit/dist/components/assets/icons/side-panel.json +0 -61
  364. package/dist/le-kit/dist/themes/base.css +0 -89
  365. package/dist/le-kit/dist/themes/dark.css +0 -104
  366. package/dist/le-kit/dist/themes/default.css +0 -112
  367. package/dist/le-kit/dist/themes/gradient.css +0 -104
  368. package/dist/le-kit/dist/themes/index.css +0 -76
  369. package/dist/le-kit/dist/themes/minimal.css +0 -104
  370. package/dist/le-kit/dist/themes/warm.css +0 -104
  371. package/dist/le-kit/index.esm.js +0 -2
  372. package/dist/le-kit/index.esm.js.map +0 -1
  373. package/dist/le-kit/le-kit.css +0 -1
  374. package/dist/le-kit/le-kit.esm.js +0 -2
  375. package/dist/le-kit/le-kit.esm.js.map +0 -1
  376. package/dist/le-kit/loader.esm.js.map +0 -1
  377. package/dist/le-kit/p-221d379a.entry.js +0 -2
  378. package/dist/le-kit/p-221d379a.entry.js.map +0 -1
  379. package/dist/le-kit/p-24112ca3.entry.js +0 -2
  380. package/dist/le-kit/p-24112ca3.entry.js.map +0 -1
  381. package/dist/le-kit/p-2c6d080d.entry.js +0 -2
  382. package/dist/le-kit/p-2c6d080d.entry.js.map +0 -1
  383. package/dist/le-kit/p-46276e77.entry.js +0 -2
  384. package/dist/le-kit/p-46276e77.entry.js.map +0 -1
  385. package/dist/le-kit/p-516c8531.entry.js +0 -2
  386. package/dist/le-kit/p-516c8531.entry.js.map +0 -1
  387. package/dist/le-kit/p-6ae60ba5.entry.js +0 -2
  388. package/dist/le-kit/p-6ae60ba5.entry.js.map +0 -1
  389. package/dist/le-kit/p-6b69f9a2.entry.js +0 -2
  390. package/dist/le-kit/p-6b69f9a2.entry.js.map +0 -1
  391. package/dist/le-kit/p-6d14306f.entry.js +0 -2
  392. package/dist/le-kit/p-6d14306f.entry.js.map +0 -1
  393. package/dist/le-kit/p-7bcdf2d4.entry.js +0 -2
  394. package/dist/le-kit/p-7bcdf2d4.entry.js.map +0 -1
  395. package/dist/le-kit/p-7cf1e23c.entry.js +0 -2
  396. package/dist/le-kit/p-7cf1e23c.entry.js.map +0 -1
  397. package/dist/le-kit/p-85f2fd4d.entry.js +0 -2
  398. package/dist/le-kit/p-85f2fd4d.entry.js.map +0 -1
  399. package/dist/le-kit/p-98242429.entry.js +0 -2
  400. package/dist/le-kit/p-98242429.entry.js.map +0 -1
  401. package/dist/le-kit/p-D8RYDS9p.js +0 -2
  402. package/dist/le-kit/p-D8RYDS9p.js.map +0 -1
  403. package/dist/le-kit/p-DFTm5BqT.js +0 -3
  404. package/dist/le-kit/p-DFTm5BqT.js.map +0 -1
  405. package/dist/le-kit/p-ab6c1def.entry.js +0 -2
  406. package/dist/le-kit/p-ab6c1def.entry.js.map +0 -1
  407. package/dist/le-kit/p-ae4ead64.entry.js +0 -2
  408. package/dist/le-kit/p-ae4ead64.entry.js.map +0 -1
  409. package/dist/le-kit/p-b05d4511.entry.js +0 -2
  410. package/dist/le-kit/p-b05d4511.entry.js.map +0 -1
  411. package/dist/le-kit/p-b6ac02ff.entry.js +0 -2
  412. package/dist/le-kit/p-b6ac02ff.entry.js.map +0 -1
  413. package/dist/le-kit/p-c24769e2.entry.js +0 -2
  414. package/dist/le-kit/p-c24769e2.entry.js.map +0 -1
  415. package/dist/le-kit/p-dc0445ad.entry.js +0 -2
  416. package/dist/le-kit/p-dc0445ad.entry.js.map +0 -1
  417. package/dist/le-kit/p-eb5286f2.entry.js +0 -2
  418. package/dist/le-kit/p-eb5286f2.entry.js.map +0 -1
  419. package/dist/le-kit/p-f78b1ee6.entry.js +0 -2
  420. package/dist/le-kit/p-f78b1ee6.entry.js.map +0 -1
  421. package/dist/themes/base.css +0 -89
  422. package/dist/themes/dark.css +0 -104
  423. package/dist/themes/default.css +0 -112
  424. package/dist/themes/gradient.css +0 -104
  425. package/dist/themes/index.css +0 -76
  426. package/dist/themes/minimal.css +0 -104
  427. package/dist/themes/warm.css +0 -104
  428. package/dist/types/components/le-bar/le-bar.d.ts +0 -131
  429. package/dist/types/components/le-box/le-box.d.ts +0 -111
  430. package/dist/types/components/le-button/le-button.d.ts +0 -93
  431. package/dist/types/components/le-card/le-card.d.ts +0 -37
  432. package/dist/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  433. package/dist/types/components/le-code-input/le-code-input.d.ts +0 -102
  434. package/dist/types/components/le-collapse/le-collapse.d.ts +0 -43
  435. package/dist/types/components/le-combobox/le-combobox.d.ts +0 -128
  436. package/dist/types/components/le-component/le-component.d.ts +0 -115
  437. package/dist/types/components/le-current-heading/le-current-heading.d.ts +0 -25
  438. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +0 -118
  439. package/dist/types/components/le-header/le-header.d.ts +0 -115
  440. package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +0 -13
  441. package/dist/types/components/le-icon/le-icon.d.ts +0 -28
  442. package/dist/types/components/le-multiselect/le-multiselect.d.ts +0 -143
  443. package/dist/types/components/le-navigation/le-navigation.d.ts +0 -125
  444. package/dist/types/components/le-number-input/le-number-input.d.ts +0 -106
  445. package/dist/types/components/le-popover/le-popover.d.ts +0 -129
  446. package/dist/types/components/le-popup/le-popup.api.d.ts +0 -73
  447. package/dist/types/components/le-popup/le-popup.d.ts +0 -127
  448. package/dist/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  449. package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +0 -40
  450. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +0 -82
  451. package/dist/types/components/le-select/le-select.d.ts +0 -125
  452. package/dist/types/components/le-side-panel/le-side-panel.d.ts +0 -100
  453. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +0 -48
  454. package/dist/types/components/le-slot/le-slot.d.ts +0 -149
  455. package/dist/types/components/le-stack/le-stack.d.ts +0 -73
  456. package/dist/types/components/le-string-input/le-string-input.d.ts +0 -91
  457. package/dist/types/components/le-tab/le-tab.d.ts +0 -116
  458. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +0 -88
  459. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +0 -75
  460. package/dist/types/components/le-tabs/le-tabs.d.ts +0 -108
  461. package/dist/types/components/le-tag/le-tag.d.ts +0 -78
  462. package/dist/types/components/le-text/le-text.d.ts +0 -141
  463. package/dist/types/components/le-turntable/le-turntable.d.ts +0 -55
  464. package/dist/types/components.d.ts +0 -5716
  465. package/dist/types/global/app.d.ts +0 -96
  466. package/dist/types/index.d.ts +0 -16
  467. package/dist/types/stencil-public-runtime.d.ts +0 -1799
  468. package/dist/types/types/blocks.d.ts +0 -136
  469. package/dist/types/types/options.d.ts +0 -143
  470. package/dist/types/utils/utils.d.ts +0 -54
  471. package/loader/cdn.js +0 -1
  472. package/loader/index.cjs.js +0 -1
  473. package/loader/index.d.ts +0 -24
  474. package/loader/index.es2017.js +0 -1
  475. package/loader/index.js +0 -2
@@ -1,506 +0,0 @@
1
- import { proxyCustomElement, HTMLElement, createEvent, h, Host, transformTag } from '@stencil/core/internal/client';
2
- import { g as generateId, c as classnames } from './utils.js';
3
- import { d as defineCustomElement$2 } from './le-icon2.js';
4
- import { d as defineCustomElement$1 } from './le-popover2.js';
5
-
6
- const leBarCss = () => `:host{display:block;--le-bar-gap:var(--le-spacing-2);--le-bar-padding:var(--le-spacing-2);--le-bar-min-height:2.5rem;--le-bar-background:transparent;--le-bar-border-color:var(--le-color-border);--le-bar-border-radius:var(--le-radius-md);--le-bar-button-size:2rem;--le-bar-button-color:var(--le-color-text-primary);--le-bar-button-hover-bg:var(--le-color-gray-100);--le-bar-button-border-radius:var(--le-radius-sm);--le-bar-arrow-size:1.5rem;--le-bar-popover-min-width:200px;--le-bar-popover-gap:var(--le-spacing-1)}.bar-container{display:flex;align-items:center;gap:var(--le-bar-gap);min-height:var(--le-bar-min-height);background:var(--le-bar-background);border-radius:var(--le-bar-border-radius);padding:var(--le-bar-padding)}.bar-container.align-start{justify-content:flex-start}.bar-container.align-end .bar-items{justify-content:flex-end}.bar-container.align-center .bar-items{justify-content:center}.bar-container.align-stretch .bar-items{justify-content:space-evenly}.bar-items{display:flex;flex-wrap:wrap;align-items:center;gap:var(--le-bar-gap);overflow:hidden;min-width:0;flex:1 1 0%;position:relative}.bar-items[style*="height"]{overflow:hidden}.bar-items.is-scrollable{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.bar-items.is-scrollable::-webkit-scrollbar{display:none}.bar-items.is-scrollable ::slotted(*){scroll-snap-align:start;flex-shrink:0}.bar-items.is-wrapping{flex-wrap:wrap;overflow:visible;height:auto !important}.bar-controls{display:flex;align-items:center;gap:var(--le-spacing-1);flex-shrink:0}.bar-controls-start{order:-1}.bar-controls-end{order:1}.bar-more-button,.bar-hamburger-button,.bar-all-menu-button{display:inline-flex;align-items:center;justify-content:center;width:var(--le-bar-button-size);height:var(--le-bar-button-size);padding:0;border:none;background:transparent;color:var(--le-bar-button-color);border-radius:var(--le-bar-button-border-radius);cursor:pointer;transition:background-color 0.15s ease}.bar-more-button:hover,.bar-hamburger-button:hover,.bar-all-menu-button:hover{background:var(--le-bar-button-hover-bg)}.bar-more-button:focus-visible,.bar-hamburger-button:focus-visible,.bar-all-menu-button:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.bar-arrow{display:inline-flex;align-items:center;justify-content:center;width:var(--le-bar-arrow-size);height:var(--le-bar-arrow-size);padding:0;border:none;background:transparent;color:var(--le-bar-button-color);border-radius:var(--le-bar-button-border-radius);cursor:pointer;transition:background-color 0.15s ease, opacity 0.15s ease}.bar-arrow:hover:not(:disabled){background:var(--le-bar-button-hover-bg)}.bar-arrow:focus-visible{outline:2px solid var(--le-color-focus);outline-offset:2px}.bar-arrow:disabled,.bar-arrow.disabled{opacity:0.3;cursor:not-allowed}.arrow-icon-start{transform:rotate(90deg)}.arrow-icon-end{transform:rotate(-90deg)}.bar-overflow-trigger,.bar-all-menu-trigger{display:inline-flex}.bar-popover-content{display:flex;flex-direction:column;gap:var(--le-bar-popover-gap);min-width:var(--le-bar-popover-min-width);padding:var(--le-spacing-2)}.bar-popover-item{cursor:pointer}.bar-popover-item:hover{background:var(--le-bar-button-hover-bg);border-radius:var(--le-bar-button-border-radius)}:host(.hamburger-active) .bar-items{visibility:hidden;pointer-events:none}`;
7
-
8
- const LeBar = /*@__PURE__*/ proxyCustomElement(class LeBar extends HTMLElement {
9
- constructor(registerHost) {
10
- super();
11
- if (registerHost !== false) {
12
- this.__registerHost();
13
- }
14
- this.__attachShadow();
15
- this.leBarOverflowChange = createEvent(this, "leBarOverflowChange", 7);
16
- }
17
- get el() { return this; }
18
- /**
19
- * Overflow behavior when items don't fit on one row.
20
- * - `more`: Overflow items appear in a "more" dropdown
21
- * - `scroll`: Items scroll horizontally with optional arrows
22
- * - `hamburger`: All items go into a hamburger menu if any overflow
23
- * - `wrap`: Items wrap to additional rows
24
- */
25
- overflow = 'more';
26
- /**
27
- * Alignment of items within the bar (maps to justify-content).
28
- */
29
- alignItems = 'start';
30
- /**
31
- * Show scroll arrows when overflow is "scroll".
32
- */
33
- arrows = false;
34
- /**
35
- * Disable the internal overflow popover.
36
- * When true, the bar still detects overflow and hides items,
37
- * but doesn't render its own popover. Use this when providing
38
- * custom overflow handling via the leBarOverflowChange event.
39
- */
40
- disablePopover = false;
41
- /**
42
- * Minimum number of visible items required when using "more" overflow mode.
43
- * If fewer items would be visible, the bar falls back to hamburger mode.
44
- * Only applies when overflow is "more".
45
- */
46
- minVisibleItems = 0;
47
- /**
48
- * Show an "all items" menu button.
49
- * - `false`: Don't show
50
- * - `true` or `'end'`: Show at end
51
- * - `'start'`: Show at start
52
- */
53
- showAllMenu = false;
54
- /**
55
- * Emitted when overflow state changes.
56
- */
57
- leBarOverflowChange;
58
- /** Whether the hamburger/more popover is open */
59
- popoverOpen = false;
60
- /** Whether hamburger mode is active (for hamburger overflow) */
61
- hamburgerActive = false;
62
- /** IDs of items that are overflowing */
63
- overflowingIds = new Set();
64
- /** Whether we can scroll left */
65
- canScrollStart = false;
66
- /** Whether we can scroll right */
67
- canScrollEnd = false;
68
- /** Whether the all-menu popover is open */
69
- allMenuOpen = false;
70
- /** Current height of the items container (for overflow handling) */
71
- containerHeight = null;
72
- itemsContainerEl;
73
- moreButtonEl;
74
- resizeObserver;
75
- mutationObserver;
76
- instanceId = generateId('le-bar');
77
- // Map to track item elements and their IDs
78
- itemMap = new Map();
79
- // Prevent multiple recalculations in the same frame
80
- pendingRecalc = null;
81
- handleOverflowChange() {
82
- this.resetOverflowState();
83
- this.scheduleOverflowRecalc();
84
- }
85
- handleSlotChange() {
86
- this.scheduleOverflowRecalc();
87
- }
88
- connectedCallback() {
89
- this.setupObservers();
90
- }
91
- componentDidLoad() {
92
- this.scheduleOverflowRecalc();
93
- }
94
- componentDidRender() {
95
- // Recalculate after render in case children changed
96
- this.scheduleOverflowRecalc();
97
- }
98
- disconnectedCallback() {
99
- this.resizeObserver?.disconnect();
100
- this.mutationObserver?.disconnect();
101
- }
102
- /**
103
- * Force recalculation of overflow state.
104
- */
105
- async recalculate() {
106
- this.computeOverflow();
107
- }
108
- setupObservers() {
109
- // ResizeObserver for container size changes
110
- if (typeof ResizeObserver !== 'undefined') {
111
- this.resizeObserver = new ResizeObserver(() => {
112
- this.computeOverflow();
113
- this.updateScrollState();
114
- });
115
- }
116
- // MutationObserver for child changes
117
- this.mutationObserver = new MutationObserver(() => {
118
- this.scheduleOverflowRecalc();
119
- });
120
- this.mutationObserver.observe(this.el, {
121
- childList: true,
122
- subtree: false,
123
- });
124
- }
125
- observeContainer(el) {
126
- if (!this.resizeObserver)
127
- return;
128
- this.resizeObserver.disconnect();
129
- if (el)
130
- this.resizeObserver.observe(el);
131
- }
132
- scheduleOverflowRecalc() {
133
- // Debounce recalculations to prevent infinite loops
134
- if (this.pendingRecalc !== null) {
135
- cancelAnimationFrame(this.pendingRecalc);
136
- }
137
- this.pendingRecalc = requestAnimationFrame(() => {
138
- this.pendingRecalc = null;
139
- this.computeOverflow();
140
- });
141
- }
142
- resetOverflowState() {
143
- this.hamburgerActive = false;
144
- this.overflowingIds = new Set();
145
- this.containerHeight = null;
146
- this.popoverOpen = false;
147
- }
148
- getSlottedItems() {
149
- // Get direct children from the light DOM (excluding named slot elements)
150
- return Array.from(this.el.children).filter((el) => el instanceof HTMLElement && !el.hasAttribute('slot'));
151
- }
152
- getItemId(el, index) {
153
- return el.id || el.dataset.barId || `${this.instanceId}-item-${index}`;
154
- }
155
- computeOverflow() {
156
- if (this.overflow === 'wrap' || this.overflow === 'scroll') {
157
- // No overflow handling needed for wrap/scroll modes
158
- this.resetOverflowState();
159
- this.updateScrollState();
160
- return;
161
- }
162
- const container = this.itemsContainerEl;
163
- if (!container)
164
- return;
165
- const items = this.getSlottedItems();
166
- if (items.length === 0) {
167
- this.resetOverflowState();
168
- return;
169
- }
170
- // Build item map
171
- this.itemMap.clear();
172
- items.forEach((item, index) => {
173
- const id = this.getItemId(item, index);
174
- this.itemMap.set(id, item);
175
- });
176
- // Get the position of items to determine which are on the first row
177
- const itemRects = items.map((item, index) => ({
178
- item,
179
- id: this.getItemId(item, index),
180
- rect: item.getBoundingClientRect(),
181
- }));
182
- if (itemRects.length === 0) {
183
- return;
184
- }
185
- // Find the first row's top position (accounting for vertical alignment)
186
- const containerRect = container.getBoundingClientRect();
187
- const topValues = itemRects.map(i => i.rect.top - containerRect.top);
188
- const minTop = Math.min(...topValues);
189
- // Items are on the first row if their top is close to minTop
190
- // Allow some tolerance for alignment differences
191
- const tolerance = 15;
192
- const firstRowItems = itemRects.filter(i => i.rect.top - containerRect.top <= minTop + tolerance);
193
- const overflowItems = itemRects.filter(i => i.rect.top - containerRect.top > minTop + tolerance);
194
- // Calculate the height of the first row
195
- const firstRowBottom = firstRowItems.length > 0
196
- ? Math.max(...firstRowItems.map(i => i.rect.bottom - containerRect.top))
197
- : 0;
198
- if (this.overflow === 'hamburger') {
199
- // In hamburger mode, if ANY item overflows, all go into the menu
200
- const shouldHamburger = overflowItems.length > 0;
201
- if (shouldHamburger !== this.hamburgerActive) {
202
- this.hamburgerActive = shouldHamburger;
203
- this.emitOverflowChange();
204
- }
205
- // Set height to show only first row (or hide all if hamburger is active)
206
- if (shouldHamburger && firstRowBottom > 0) {
207
- this.containerHeight = firstRowBottom;
208
- }
209
- else {
210
- this.containerHeight = null;
211
- }
212
- }
213
- else {
214
- // 'more' mode
215
- let newOverflowingIds = new Set(overflowItems.map(i => i.id));
216
- // Check if we need to make room for the "more" button
217
- if (newOverflowingIds.size > 0 && this.moreButtonEl) {
218
- const moreRect = this.moreButtonEl.getBoundingClientRect();
219
- const moreTop = moreRect.top - containerRect.top;
220
- // If "more" button is not on the first row, we need to hide one more item
221
- if (moreTop > minTop + tolerance) {
222
- // Find the last visible item and move it to overflow
223
- const lastVisible = firstRowItems[firstRowItems.length - 1];
224
- if (lastVisible) {
225
- newOverflowingIds.add(lastVisible.id);
226
- }
227
- }
228
- }
229
- // Check if we should fallback to hamburger mode
230
- // This happens when minVisibleItems is set and fewer items would be visible
231
- const visibleCount = items.length - newOverflowingIds.size;
232
- const shouldFallbackToHamburger = this.minVisibleItems > 0 &&
233
- newOverflowingIds.size > 0 &&
234
- visibleCount < this.minVisibleItems;
235
- if (shouldFallbackToHamburger) {
236
- // Switch to hamburger mode - all items go into the menu
237
- if (!this.hamburgerActive) {
238
- this.hamburgerActive = true;
239
- this.overflowingIds = new Set();
240
- this.emitOverflowChange();
241
- }
242
- // Set height to show only first row
243
- if (firstRowBottom > 0) {
244
- this.containerHeight = firstRowBottom;
245
- }
246
- else {
247
- this.containerHeight = null;
248
- }
249
- return;
250
- }
251
- // Not falling back to hamburger - ensure hamburgerActive is false
252
- if (this.hamburgerActive) {
253
- this.hamburgerActive = false;
254
- }
255
- // Check if overflow state changed
256
- const hasChanged = (newOverflowingIds?.size ?? 0) !== (this.overflowingIds?.size ?? 0) ||
257
- ![...newOverflowingIds].every(id => this.overflowingIds?.has(id));
258
- if (hasChanged) {
259
- this.overflowingIds = newOverflowingIds;
260
- this.emitOverflowChange();
261
- }
262
- // Set container height to show only first row
263
- if ((newOverflowingIds?.size ?? 0) > 0 && firstRowBottom > 0) {
264
- this.containerHeight = firstRowBottom;
265
- }
266
- else {
267
- this.containerHeight = null;
268
- }
269
- }
270
- }
271
- emitOverflowChange() {
272
- this.leBarOverflowChange.emit({
273
- overflowingIds: [...(this.overflowingIds ?? [])],
274
- hamburgerActive: this.hamburgerActive,
275
- });
276
- }
277
- updateScrollState() {
278
- if (this.overflow !== 'scroll' || !this.itemsContainerEl) {
279
- this.canScrollStart = false;
280
- this.canScrollEnd = false;
281
- return;
282
- }
283
- const el = this.itemsContainerEl;
284
- this.canScrollStart = el.scrollLeft > 0;
285
- this.canScrollEnd = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;
286
- }
287
- handleScroll = () => {
288
- this.updateScrollState();
289
- };
290
- scrollToStart = () => {
291
- if (!this.itemsContainerEl)
292
- return;
293
- const items = this.getSlottedItems();
294
- const container = this.itemsContainerEl;
295
- // Find the scroll position of the previous item
296
- const currentScroll = container.scrollLeft;
297
- let targetScroll = 0;
298
- for (let i = items.length - 1; i >= 0; i--) {
299
- const item = items[i];
300
- // Calculate item's left edge relative to container's scroll position
301
- const itemLeft = item.offsetLeft - container.offsetLeft;
302
- // If this item starts before current scroll position, scroll to it
303
- if (itemLeft < currentScroll - 1) {
304
- targetScroll = itemLeft;
305
- break;
306
- }
307
- }
308
- container.scrollTo({ left: targetScroll, behavior: 'smooth' });
309
- // Update scroll state after animation
310
- setTimeout(() => this.updateScrollState(), 300);
311
- };
312
- scrollToEnd = () => {
313
- if (!this.itemsContainerEl)
314
- return;
315
- const container = this.itemsContainerEl;
316
- const items = this.getSlottedItems();
317
- if (items.length === 0)
318
- return;
319
- const containerWidth = container.clientWidth;
320
- const currentScroll = container.scrollLeft;
321
- let targetScroll = container.scrollWidth - containerWidth;
322
- for (const item of items) {
323
- // Calculate item's right edge relative to container
324
- const itemLeft = item.offsetLeft - container.offsetLeft;
325
- // If this is the next item to scroll to from left to right then scroll to it
326
- if (itemLeft > currentScroll + 1) {
327
- targetScroll = itemLeft;
328
- break;
329
- }
330
- }
331
- container.scrollTo({ left: Math.max(0, targetScroll), behavior: 'smooth' });
332
- // Update scroll state after animation
333
- setTimeout(() => this.updateScrollState(), 300);
334
- };
335
- togglePopover = () => {
336
- this.popoverOpen = !this.popoverOpen;
337
- };
338
- closePopover = () => {
339
- this.popoverOpen = false;
340
- };
341
- toggleAllMenu = () => {
342
- this.allMenuOpen = !this.allMenuOpen;
343
- };
344
- closeAllMenu = () => {
345
- this.allMenuOpen = false;
346
- };
347
- handleItemClick = (_e, id) => {
348
- // Close popover when an item inside is clicked
349
- const originalItem = this.itemMap.get(id);
350
- if (originalItem) {
351
- // Clone the click to the original item
352
- const cloneEvent = new MouseEvent('click', {
353
- bubbles: true,
354
- cancelable: true,
355
- view: window,
356
- });
357
- originalItem.dispatchEvent(cloneEvent);
358
- }
359
- this.closePopover();
360
- this.closeAllMenu();
361
- };
362
- renderMoreButton() {
363
- const hasSlottedMore = this.el.querySelector('[slot="more"]');
364
- return (h("button", { class: "bar-more-button", part: "more-button", ref: el => (this.moreButtonEl = el), onClick: this.togglePopover, "aria-expanded": String(this.popoverOpen), "aria-haspopup": "true" }, hasSlottedMore ? h("slot", { name: "more" }) : h("le-icon", { name: "ellipsis-horizontal" })));
365
- }
366
- renderHamburgerButton() {
367
- const hasSlottedHamburger = this.el.querySelector('[slot="hamburger"]');
368
- return (h("button", { class: "bar-hamburger-button", part: "hamburger-button", onClick: this.togglePopover, "aria-expanded": String(this.popoverOpen), "aria-haspopup": "true" }, hasSlottedHamburger ? h("slot", { name: "hamburger" }) : h("le-icon", { name: "hamburger" })));
369
- }
370
- renderScrollArrows() {
371
- if (!this.arrows || this.overflow !== 'scroll')
372
- return null;
373
- const hasSlottedStartArrow = this.el.querySelector('[slot="start-arrow"]');
374
- const hasSlottedEndArrow = this.el.querySelector('[slot="end-arrow"]');
375
- return [
376
- h("button", { class: classnames('bar-arrow', 'bar-arrow-start', {
377
- disabled: !this.canScrollStart,
378
- }), part: "arrow-start", onClick: this.scrollToStart, disabled: !this.canScrollStart, "aria-label": "Scroll to start" }, hasSlottedStartArrow ? (h("slot", { name: "start-arrow" })) : (h("le-icon", { name: "chevron-down", class: "arrow-icon-start" }))),
379
- h("button", { class: classnames('bar-arrow', 'bar-arrow-end', {
380
- disabled: !this.canScrollEnd,
381
- }), part: "arrow-end", onClick: this.scrollToEnd, disabled: !this.canScrollEnd, "aria-label": "Scroll to end" }, hasSlottedEndArrow ? (h("slot", { name: "end-arrow" })) : (h("le-icon", { name: "chevron-down", class: "arrow-icon-end" }))),
382
- ];
383
- }
384
- renderAllMenuButton() {
385
- if (!this.showAllMenu)
386
- return null;
387
- const hasSlottedAllMenu = this.el.querySelector('[slot="all-menu"]');
388
- return (h("button", { class: "bar-all-menu-button", part: "all-menu-button", onClick: this.toggleAllMenu, "aria-expanded": String(this.allMenuOpen), "aria-haspopup": "true" }, hasSlottedAllMenu ? h("slot", { name: "all-menu" }) : h("le-icon", { name: "hamburger" })));
389
- }
390
- renderPopoverContent(itemsToShow) {
391
- return (h("div", { class: "bar-popover-content", part: "popover-content" }, itemsToShow.map(({ id, item }) => (h("div", { class: "bar-popover-item", key: id, onClick: (e) => this.handleItemClick(e, id), innerHTML: item.outerHTML })))));
392
- }
393
- renderOverflowPopover() {
394
- if (this.overflow !== 'more' && this.overflow !== 'hamburger')
395
- return null;
396
- const items = this.getSlottedItems();
397
- let itemsToShow = [];
398
- if (this.overflow === 'hamburger' && this.hamburgerActive) {
399
- // Show all items in hamburger mode
400
- itemsToShow = items.map((item, index) => ({
401
- id: this.getItemId(item, index),
402
- item,
403
- }));
404
- }
405
- else if (this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) {
406
- // Show only overflowing items
407
- itemsToShow = items
408
- .map((item, index) => ({
409
- id: this.getItemId(item, index),
410
- item,
411
- }))
412
- .filter(({ id }) => this.overflowingIds?.has(id));
413
- }
414
- if (itemsToShow.length === 0)
415
- return null;
416
- return (h("le-popover", { mode: "default", open: this.popoverOpen, position: "bottom", align: "end", showClose: false, closeOnClickOutside: true, closeOnEscape: true, onLePopoverClose: this.closePopover }, h("div", { slot: "trigger", class: "bar-overflow-trigger" }, this.overflow === 'hamburger' ? this.renderHamburgerButton() : this.renderMoreButton()), this.renderPopoverContent(itemsToShow)));
417
- }
418
- renderAllMenuPopover() {
419
- if (!this.showAllMenu)
420
- return null;
421
- const items = this.getSlottedItems();
422
- const itemsToShow = items.map((item, index) => ({
423
- id: this.getItemId(item, index),
424
- item,
425
- }));
426
- const position = this.showAllMenu === 'start' ? 'start' : 'end';
427
- return (h("le-popover", { mode: "default", open: this.allMenuOpen, position: "bottom", align: position, showClose: false, closeOnClickOutside: true, closeOnEscape: true, onLePopoverClose: this.closeAllMenu }, h("div", { slot: "trigger", class: "bar-all-menu-trigger" }, this.renderAllMenuButton()), this.renderPopoverContent(itemsToShow)));
428
- }
429
- render() {
430
- const showOverflowButton = !this.disablePopover &&
431
- ((this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) ||
432
- (this.overflow === 'hamburger' && this.hamburgerActive));
433
- const containerStyle = {};
434
- if (this.containerHeight !== null &&
435
- (this.overflow === 'more' || this.overflow === 'hamburger')) {
436
- containerStyle.height = `${this.containerHeight}px`;
437
- }
438
- const showAllMenuAtStart = this.showAllMenu === 'start';
439
- const showAllMenuAtEnd = this.showAllMenu === true || this.showAllMenu === 'end';
440
- return (h(Host, { key: '56d04e4504ed7ce1d8e78a825c71c71c074d0b62', class: classnames({
441
- 'overflow-more': this.overflow === 'more',
442
- 'overflow-scroll': this.overflow === 'scroll',
443
- 'overflow-hamburger': this.overflow === 'hamburger',
444
- 'overflow-wrap': this.overflow === 'wrap',
445
- 'hamburger-active': this.hamburgerActive,
446
- 'has-overflow': (this.overflowingIds?.size ?? 0) > 0 || this.hamburgerActive,
447
- }) }, h("div", { key: '4e7aeb4c84a9964e19012c3d05827fa8406988b0', class: classnames('bar-container', {
448
- [`align-${this.alignItems}`]: true,
449
- }), part: "container" }, this.overflow === 'scroll' && this.arrows && (h("div", { key: '2e3ae04c00e88e5055216dbc5b6d53574c450470', class: "bar-controls bar-controls-start" }, this.renderScrollArrows()?.[0])), showAllMenuAtStart && (h("div", { key: '9628c8dc2b15d9358baad63b19c75fd933eeb19a', class: "bar-controls bar-controls-start" }, this.renderAllMenuPopover())), h("div", { key: 'd1feb9603d0ff4247852aadb62cb920a5f5a1921', class: classnames('bar-items', {
450
- 'is-scrollable': this.overflow === 'scroll',
451
- 'is-wrapping': this.overflow === 'wrap',
452
- }), style: containerStyle, ref: el => {
453
- this.itemsContainerEl = el;
454
- this.observeContainer(el);
455
- }, onScroll: this.overflow === 'scroll' ? this.handleScroll : undefined }, h("slot", { key: '338698e038b9df4c7b163017ceb0675b834160e4' })), showOverflowButton && (h("div", { key: 'd619fcda1b0c28247af60899f73cc076b0517787', class: "bar-controls bar-controls-end" }, this.renderOverflowPopover())), showAllMenuAtEnd && (h("div", { key: 'fd9fef90194aabb8d48e77c8f7615daa5d7297ac', class: "bar-controls bar-controls-end" }, this.renderAllMenuPopover())), this.overflow === 'scroll' && this.arrows && (h("div", { key: 'bcffb914e2788767c3765351a3eeae771f3e115f', class: "bar-controls bar-controls-end" }, this.renderScrollArrows()?.[1])))));
456
- }
457
- static get watchers() { return {
458
- "overflow": ["handleOverflowChange"]
459
- }; }
460
- static get style() { return leBarCss(); }
461
- }, [769, "le-bar", {
462
- "overflow": [513],
463
- "alignItems": [513, "align-items"],
464
- "arrows": [4],
465
- "disablePopover": [4, "disable-popover"],
466
- "minVisibleItems": [2, "min-visible-items"],
467
- "showAllMenu": [8, "show-all-menu"],
468
- "popoverOpen": [32],
469
- "hamburgerActive": [32],
470
- "overflowingIds": [32],
471
- "canScrollStart": [32],
472
- "canScrollEnd": [32],
473
- "allMenuOpen": [32],
474
- "containerHeight": [32],
475
- "recalculate": [64]
476
- }, [[0, "slotchange", "handleSlotChange"]], {
477
- "overflow": ["handleOverflowChange"]
478
- }]);
479
- function defineCustomElement() {
480
- if (typeof customElements === "undefined") {
481
- return;
482
- }
483
- const components = ["le-bar", "le-icon", "le-popover"];
484
- components.forEach(tagName => { switch (tagName) {
485
- case "le-bar":
486
- if (!customElements.get(transformTag(tagName))) {
487
- customElements.define(transformTag(tagName), LeBar);
488
- }
489
- break;
490
- case "le-icon":
491
- if (!customElements.get(transformTag(tagName))) {
492
- defineCustomElement$2();
493
- }
494
- break;
495
- case "le-popover":
496
- if (!customElements.get(transformTag(tagName))) {
497
- defineCustomElement$1();
498
- }
499
- break;
500
- } });
501
- }
502
-
503
- export { LeBar as L, defineCustomElement as d };
504
- //# sourceMappingURL=le-bar2.js.map
505
-
506
- //# sourceMappingURL=le-bar2.js.map
@@ -1 +0,0 @@
1
- {"file":"le-bar2.js","mappings":"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","names":["__stencil_proxyCustomElement"],"sources":["src/components/le-bar/le-bar.css?tag=le-bar&encapsulation=shadow","src/components/le-bar/le-bar.tsx"],"sourcesContent":["/**\n * le-bar - Flexible bar with overflow handling\n */\n\n:host {\n display: block;\n\n /* Spacing & sizing */\n --le-bar-gap: var(--le-spacing-2);\n --le-bar-padding: var(--le-spacing-2);\n --le-bar-min-height: 2.5rem;\n\n /* Colors */\n --le-bar-background: transparent;\n --le-bar-border-color: var(--le-color-border);\n --le-bar-border-radius: var(--le-radius-md);\n\n /* Button styling */\n --le-bar-button-size: 2rem;\n --le-bar-button-color: var(--le-color-text-primary);\n --le-bar-button-hover-bg: var(--le-color-gray-100);\n --le-bar-button-border-radius: var(--le-radius-sm);\n\n /* Arrow styling */\n --le-bar-arrow-size: 1.5rem;\n\n /* Popover */\n --le-bar-popover-min-width: 200px;\n --le-bar-popover-gap: var(--le-spacing-1);\n}\n\n/* ============================================\n * MAIN CONTAINER\n * ============================================ */\n\n.bar-container {\n display: flex;\n align-items: center;\n gap: var(--le-bar-gap);\n min-height: var(--le-bar-min-height);\n background: var(--le-bar-background);\n border-radius: var(--le-bar-border-radius);\n padding: var(--le-bar-padding);\n}\n\n/* Alignment variations */\n.bar-container.align-start {\n justify-content: flex-start;\n}\n\n.bar-container.align-end .bar-items {\n justify-content: flex-end;\n}\n\n.bar-container.align-center .bar-items {\n justify-content: center;\n}\n\n.bar-container.align-stretch .bar-items {\n /* justify-content: stretch; */\n justify-content: space-evenly;\n}\n\n\n/* ============================================\n * ITEMS CONTAINER\n * ============================================ */\n\n.bar-items {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--le-bar-gap);\n overflow: hidden;\n min-width: 0;\n flex: 1 1 0%;\n position: relative;\n}\n\n/* When height is set (overflow mode), clip content */\n.bar-items[style*=\"height\"] {\n overflow: hidden;\n}\n\n/* Scroll mode */\n.bar-items.is-scrollable {\n flex-wrap: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n\n /* Hide scrollbar but keep functionality */\n scrollbar-width: none;\n -ms-overflow-style: none;\n}\n\n.bar-items.is-scrollable::-webkit-scrollbar {\n display: none;\n}\n\n.bar-items.is-scrollable ::slotted(*) {\n scroll-snap-align: start;\n flex-shrink: 0;\n}\n\n/* Wrap mode */\n.bar-items.is-wrapping {\n flex-wrap: wrap;\n overflow: visible;\n height: auto !important;\n}\n\n/* ============================================\n * CONTROLS (arrows, buttons)\n * ============================================ */\n\n.bar-controls {\n display: flex;\n align-items: center;\n gap: var(--le-spacing-1);\n flex-shrink: 0;\n}\n\n.bar-controls-start {\n order: -1;\n}\n\n.bar-controls-end {\n order: 1;\n}\n\n/* ============================================\n * BUTTONS (more, hamburger, all-menu)\n * ============================================ */\n\n.bar-more-button,\n.bar-hamburger-button,\n.bar-all-menu-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--le-bar-button-size);\n height: var(--le-bar-button-size);\n padding: 0;\n border: none;\n background: transparent;\n color: var(--le-bar-button-color);\n border-radius: var(--le-bar-button-border-radius);\n cursor: pointer;\n transition: background-color 0.15s ease;\n}\n\n.bar-more-button:hover,\n.bar-hamburger-button:hover,\n.bar-all-menu-button:hover {\n background: var(--le-bar-button-hover-bg);\n}\n\n.bar-more-button:focus-visible,\n.bar-hamburger-button:focus-visible,\n.bar-all-menu-button:focus-visible {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n/* ============================================\n * SCROLL ARROWS\n * ============================================ */\n\n.bar-arrow {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--le-bar-arrow-size);\n height: var(--le-bar-arrow-size);\n padding: 0;\n border: none;\n background: transparent;\n color: var(--le-bar-button-color);\n border-radius: var(--le-bar-button-border-radius);\n cursor: pointer;\n transition: background-color 0.15s ease, opacity 0.15s ease;\n}\n\n.bar-arrow:hover:not(:disabled) {\n background: var(--le-bar-button-hover-bg);\n}\n\n.bar-arrow:focus-visible {\n outline: 2px solid var(--le-color-focus);\n outline-offset: 2px;\n}\n\n.bar-arrow:disabled,\n.bar-arrow.disabled {\n opacity: 0.3;\n cursor: not-allowed;\n}\n\n/* Rotate chevron icons for arrows */\n.arrow-icon-start {\n transform: rotate(90deg);\n}\n\n.arrow-icon-end {\n transform: rotate(-90deg);\n}\n\n/* ============================================\n * POPOVER TRIGGERS\n * ============================================ */\n\n.bar-overflow-trigger,\n.bar-all-menu-trigger {\n display: inline-flex;\n}\n\n/* ============================================\n * POPOVER CONTENT\n * ============================================ */\n\n.bar-popover-content {\n display: flex;\n flex-direction: column;\n gap: var(--le-bar-popover-gap);\n min-width: var(--le-bar-popover-min-width);\n padding: var(--le-spacing-2);\n}\n\n.bar-popover-item {\n cursor: pointer;\n}\n\n.bar-popover-item:hover {\n background: var(--le-bar-button-hover-bg);\n border-radius: var(--le-bar-button-border-radius);\n}\n\n/* ============================================\n * HAMBURGER MODE - HIDE ITEMS\n * ============================================ */\n\n:host(.hamburger-active) .bar-items {\n visibility: hidden;\n pointer-events: none;\n}\n\n\n/* ============================================\n * HOST VARIANTS\n * ============================================ */\n\n/* Remove redundant flex:1 since bar-items already has it */\n","import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n h,\n Element,\n Watch,\n Host,\n Method,\n Listen,\n} from '@stencil/core';\nimport { classnames, generateId } from '../../utils/utils';\n\nexport interface LeBarOverflowChangeDetail {\n /** IDs of items that are currently overflowing (in the \"more\" popover) */\n overflowingIds: string[];\n /** Whether hamburger mode is active */\n hamburgerActive: boolean;\n}\n\n/**\n * A flexible bar component that handles overflow gracefully.\n *\n * Items are slotted children. The bar measures which items fit on the first\n * row and handles overflow according to the `overflow` prop.\n *\n * @slot - Bar items (children will be measured for overflow)\n * @slot more - Custom \"more\" button content\n * @slot hamburger - Custom hamburger button content\n * @slot start-arrow - Custom left scroll arrow\n * @slot end-arrow - Custom right scroll arrow\n * @slot all-menu - Custom \"show all\" menu button\n *\n * @csspart container - The main bar container\n * @csspart item - Individual items in the bar\n * @csspart more-button - The \"more\" overflow button\n * @csspart hamburger-button - The hamburger menu button\n * @csspart arrow-start - The start (left) scroll arrow\n * @csspart arrow-end - The end (right) scroll arrow\n * @csspart all-menu-button - The \"show all\" menu button\n * @csspart popover-content - The popover content wrapper\n *\n * @cmsEditable true\n * @cmsCategory Layout\n */\n@Component({\n tag: 'le-bar',\n styleUrl: 'le-bar.css',\n shadow: true,\n})\nexport class LeBar {\n @Element() el: HTMLElement;\n\n /**\n * Overflow behavior when items don't fit on one row.\n * - `more`: Overflow items appear in a \"more\" dropdown\n * - `scroll`: Items scroll horizontally with optional arrows\n * - `hamburger`: All items go into a hamburger menu if any overflow\n * - `wrap`: Items wrap to additional rows\n */\n @Prop({ reflect: true }) overflow: 'more' | 'scroll' | 'hamburger' | 'wrap' = 'more';\n\n /**\n * Alignment of items within the bar (maps to justify-content).\n */\n @Prop({ reflect: true }) alignItems: 'start' | 'end' | 'center' | 'stretch' = 'start';\n\n /**\n * Show scroll arrows when overflow is \"scroll\".\n */\n @Prop() arrows: boolean = false;\n\n /**\n * Disable the internal overflow popover.\n * When true, the bar still detects overflow and hides items,\n * but doesn't render its own popover. Use this when providing\n * custom overflow handling via the leBarOverflowChange event.\n */\n @Prop() disablePopover: boolean = false;\n\n /**\n * Minimum number of visible items required when using \"more\" overflow mode.\n * If fewer items would be visible, the bar falls back to hamburger mode.\n * Only applies when overflow is \"more\".\n */\n @Prop() minVisibleItems: number = 0;\n\n /**\n * Show an \"all items\" menu button.\n * - `false`: Don't show\n * - `true` or `'end'`: Show at end\n * - `'start'`: Show at start\n */\n @Prop() showAllMenu: boolean | 'start' | 'end' = false;\n\n /**\n * Emitted when overflow state changes.\n */\n @Event() leBarOverflowChange: EventEmitter<LeBarOverflowChangeDetail>;\n\n /** Whether the hamburger/more popover is open */\n @State() private popoverOpen: boolean = false;\n\n /** Whether hamburger mode is active (for hamburger overflow) */\n @State() private hamburgerActive: boolean = false;\n\n /** IDs of items that are overflowing */\n @State() private overflowingIds: Set<string> = new Set();\n\n /** Whether we can scroll left */\n @State() private canScrollStart: boolean = false;\n\n /** Whether we can scroll right */\n @State() private canScrollEnd: boolean = false;\n\n /** Whether the all-menu popover is open */\n @State() private allMenuOpen: boolean = false;\n\n /** Current height of the items container (for overflow handling) */\n @State() private containerHeight: number | null = null;\n\n private itemsContainerEl?: HTMLElement;\n private moreButtonEl?: HTMLElement;\n\n private resizeObserver?: ResizeObserver;\n private mutationObserver?: MutationObserver;\n private instanceId: string = generateId('le-bar');\n\n // Map to track item elements and their IDs\n private itemMap: Map<string, HTMLElement> = new Map();\n\n // Prevent multiple recalculations in the same frame\n private pendingRecalc: number | null = null;\n\n @Watch('overflow')\n handleOverflowChange() {\n this.resetOverflowState();\n this.scheduleOverflowRecalc();\n }\n\n @Listen('slotchange')\n handleSlotChange() {\n this.scheduleOverflowRecalc();\n }\n\n connectedCallback() {\n this.setupObservers();\n }\n\n componentDidLoad() {\n this.scheduleOverflowRecalc();\n }\n\n componentDidRender() {\n // Recalculate after render in case children changed\n this.scheduleOverflowRecalc();\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n this.mutationObserver?.disconnect();\n }\n\n /**\n * Force recalculation of overflow state.\n */\n @Method()\n async recalculate() {\n this.computeOverflow();\n }\n\n private setupObservers() {\n // ResizeObserver for container size changes\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(() => {\n this.computeOverflow();\n this.updateScrollState();\n });\n }\n\n // MutationObserver for child changes\n this.mutationObserver = new MutationObserver(() => {\n this.scheduleOverflowRecalc();\n });\n\n this.mutationObserver.observe(this.el, {\n childList: true,\n subtree: false,\n });\n }\n\n private observeContainer(el?: HTMLElement) {\n if (!this.resizeObserver) return;\n this.resizeObserver.disconnect();\n if (el) this.resizeObserver.observe(el);\n }\n\n private scheduleOverflowRecalc() {\n // Debounce recalculations to prevent infinite loops\n if (this.pendingRecalc !== null) {\n cancelAnimationFrame(this.pendingRecalc);\n }\n this.pendingRecalc = requestAnimationFrame(() => {\n this.pendingRecalc = null;\n this.computeOverflow();\n });\n }\n\n private resetOverflowState() {\n this.hamburgerActive = false;\n this.overflowingIds = new Set();\n this.containerHeight = null;\n this.popoverOpen = false;\n }\n\n private getSlottedItems(): HTMLElement[] {\n // Get direct children from the light DOM (excluding named slot elements)\n return Array.from(this.el.children).filter(\n (el): el is HTMLElement => el instanceof HTMLElement && !el.hasAttribute('slot'),\n );\n }\n\n private getItemId(el: HTMLElement, index: number): string {\n return el.id || el.dataset.barId || `${this.instanceId}-item-${index}`;\n }\n\n private computeOverflow() {\n if (this.overflow === 'wrap' || this.overflow === 'scroll') {\n // No overflow handling needed for wrap/scroll modes\n this.resetOverflowState();\n this.updateScrollState();\n return;\n }\n\n const container = this.itemsContainerEl;\n if (!container) return;\n\n const items = this.getSlottedItems();\n if (items.length === 0) {\n this.resetOverflowState();\n return;\n }\n\n // Force a layout recalc\n container.offsetHeight;\n\n // Build item map\n this.itemMap.clear();\n items.forEach((item, index) => {\n const id = this.getItemId(item, index);\n this.itemMap.set(id, item);\n });\n\n // Get the position of items to determine which are on the first row\n const itemRects = items.map((item, index) => ({\n item,\n id: this.getItemId(item, index),\n rect: item.getBoundingClientRect(),\n }));\n\n if (itemRects.length === 0) {\n return;\n }\n\n // Find the first row's top position (accounting for vertical alignment)\n const containerRect = container.getBoundingClientRect();\n const topValues = itemRects.map(i => i.rect.top - containerRect.top);\n const minTop = Math.min(...topValues);\n\n // Items are on the first row if their top is close to minTop\n // Allow some tolerance for alignment differences\n const tolerance = 15;\n const firstRowItems = itemRects.filter(\n i => i.rect.top - containerRect.top <= minTop + tolerance,\n );\n const overflowItems = itemRects.filter(\n i => i.rect.top - containerRect.top > minTop + tolerance,\n );\n\n // Calculate the height of the first row\n const firstRowBottom =\n firstRowItems.length > 0\n ? Math.max(...firstRowItems.map(i => i.rect.bottom - containerRect.top))\n : 0;\n\n if (this.overflow === 'hamburger') {\n // In hamburger mode, if ANY item overflows, all go into the menu\n const shouldHamburger = overflowItems.length > 0;\n\n if (shouldHamburger !== this.hamburgerActive) {\n this.hamburgerActive = shouldHamburger;\n this.emitOverflowChange();\n }\n\n // Set height to show only first row (or hide all if hamburger is active)\n if (shouldHamburger && firstRowBottom > 0) {\n this.containerHeight = firstRowBottom;\n } else {\n this.containerHeight = null;\n }\n } else {\n // 'more' mode\n let newOverflowingIds = new Set(overflowItems.map(i => i.id));\n\n // Check if we need to make room for the \"more\" button\n if (newOverflowingIds.size > 0 && this.moreButtonEl) {\n const moreRect = this.moreButtonEl.getBoundingClientRect();\n const moreTop = moreRect.top - containerRect.top;\n\n // If \"more\" button is not on the first row, we need to hide one more item\n if (moreTop > minTop + tolerance) {\n // Find the last visible item and move it to overflow\n const lastVisible = firstRowItems[firstRowItems.length - 1];\n if (lastVisible) {\n newOverflowingIds.add(lastVisible.id);\n }\n }\n }\n\n // Check if we should fallback to hamburger mode\n // This happens when minVisibleItems is set and fewer items would be visible\n const visibleCount = items.length - newOverflowingIds.size;\n const shouldFallbackToHamburger =\n this.minVisibleItems > 0 &&\n newOverflowingIds.size > 0 &&\n visibleCount < this.minVisibleItems;\n\n if (shouldFallbackToHamburger) {\n // Switch to hamburger mode - all items go into the menu\n if (!this.hamburgerActive) {\n this.hamburgerActive = true;\n this.overflowingIds = new Set();\n this.emitOverflowChange();\n }\n\n // Set height to show only first row\n if (firstRowBottom > 0) {\n this.containerHeight = firstRowBottom;\n } else {\n this.containerHeight = null;\n }\n return;\n }\n\n // Not falling back to hamburger - ensure hamburgerActive is false\n if (this.hamburgerActive) {\n this.hamburgerActive = false;\n }\n\n // Check if overflow state changed\n const hasChanged =\n (newOverflowingIds?.size ?? 0) !== (this.overflowingIds?.size ?? 0) ||\n ![...newOverflowingIds].every(id => this.overflowingIds?.has(id));\n\n if (hasChanged) {\n this.overflowingIds = newOverflowingIds;\n this.emitOverflowChange();\n }\n\n // Set container height to show only first row\n if ((newOverflowingIds?.size ?? 0) > 0 && firstRowBottom > 0) {\n this.containerHeight = firstRowBottom;\n } else {\n this.containerHeight = null;\n }\n }\n }\n\n private emitOverflowChange() {\n this.leBarOverflowChange.emit({\n overflowingIds: [...(this.overflowingIds ?? [])],\n hamburgerActive: this.hamburgerActive,\n });\n }\n\n private updateScrollState() {\n if (this.overflow !== 'scroll' || !this.itemsContainerEl) {\n this.canScrollStart = false;\n this.canScrollEnd = false;\n return;\n }\n\n const el = this.itemsContainerEl;\n this.canScrollStart = el.scrollLeft > 0;\n this.canScrollEnd = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;\n }\n\n private handleScroll = () => {\n this.updateScrollState();\n };\n\n private scrollToStart = () => {\n if (!this.itemsContainerEl) return;\n\n const items = this.getSlottedItems();\n const container = this.itemsContainerEl;\n\n // Find the scroll position of the previous item\n const currentScroll = container.scrollLeft;\n let targetScroll = 0;\n\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n // Calculate item's left edge relative to container's scroll position\n const itemLeft = item.offsetLeft - container.offsetLeft;\n\n // If this item starts before current scroll position, scroll to it\n if (itemLeft < currentScroll - 1) {\n targetScroll = itemLeft;\n break;\n }\n }\n\n container.scrollTo({ left: targetScroll, behavior: 'smooth' });\n\n // Update scroll state after animation\n setTimeout(() => this.updateScrollState(), 300);\n };\n\n private scrollToEnd = () => {\n if (!this.itemsContainerEl) return;\n\n const container = this.itemsContainerEl;\n const items = this.getSlottedItems();\n\n if (items.length === 0) return;\n\n const containerWidth = container.clientWidth;\n const currentScroll = container.scrollLeft;\n\n let targetScroll = container.scrollWidth - containerWidth;\n\n for (const item of items) {\n // Calculate item's right edge relative to container\n const itemLeft = item.offsetLeft - container.offsetLeft;\n\n // If this is the next item to scroll to from left to right then scroll to it\n if (itemLeft > currentScroll + 1) {\n targetScroll = itemLeft;\n break;\n }\n }\n\n container.scrollTo({ left: Math.max(0, targetScroll), behavior: 'smooth' });\n\n // Update scroll state after animation\n setTimeout(() => this.updateScrollState(), 300);\n };\n\n private togglePopover = () => {\n this.popoverOpen = !this.popoverOpen;\n };\n\n private closePopover = () => {\n this.popoverOpen = false;\n };\n\n private toggleAllMenu = () => {\n this.allMenuOpen = !this.allMenuOpen;\n };\n\n private closeAllMenu = () => {\n this.allMenuOpen = false;\n };\n\n private handleItemClick = (_e: MouseEvent, id: string) => {\n // Close popover when an item inside is clicked\n const originalItem = this.itemMap.get(id);\n\n if (originalItem) {\n // Clone the click to the original item\n const cloneEvent = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n });\n originalItem.dispatchEvent(cloneEvent);\n }\n\n this.closePopover();\n this.closeAllMenu();\n };\n\n private renderMoreButton() {\n const hasSlottedMore = this.el.querySelector('[slot=\"more\"]');\n\n return (\n <button\n class=\"bar-more-button\"\n part=\"more-button\"\n ref={el => (this.moreButtonEl = el)}\n onClick={this.togglePopover}\n aria-expanded={String(this.popoverOpen)}\n aria-haspopup=\"true\"\n >\n {hasSlottedMore ? <slot name=\"more\" /> : <le-icon name=\"ellipsis-horizontal\" />}\n </button>\n );\n }\n\n private renderHamburgerButton() {\n const hasSlottedHamburger = this.el.querySelector('[slot=\"hamburger\"]');\n\n return (\n <button\n class=\"bar-hamburger-button\"\n part=\"hamburger-button\"\n onClick={this.togglePopover}\n aria-expanded={String(this.popoverOpen)}\n aria-haspopup=\"true\"\n >\n {hasSlottedHamburger ? <slot name=\"hamburger\" /> : <le-icon name=\"hamburger\" />}\n </button>\n );\n }\n\n private renderScrollArrows() {\n if (!this.arrows || this.overflow !== 'scroll') return null;\n\n const hasSlottedStartArrow = this.el.querySelector('[slot=\"start-arrow\"]');\n const hasSlottedEndArrow = this.el.querySelector('[slot=\"end-arrow\"]');\n\n return [\n <button\n class={classnames('bar-arrow', 'bar-arrow-start', {\n disabled: !this.canScrollStart,\n })}\n part=\"arrow-start\"\n onClick={this.scrollToStart}\n disabled={!this.canScrollStart}\n aria-label=\"Scroll to start\"\n >\n {hasSlottedStartArrow ? (\n <slot name=\"start-arrow\" />\n ) : (\n <le-icon name=\"chevron-down\" class=\"arrow-icon-start\" />\n )}\n </button>,\n <button\n class={classnames('bar-arrow', 'bar-arrow-end', {\n disabled: !this.canScrollEnd,\n })}\n part=\"arrow-end\"\n onClick={this.scrollToEnd}\n disabled={!this.canScrollEnd}\n aria-label=\"Scroll to end\"\n >\n {hasSlottedEndArrow ? (\n <slot name=\"end-arrow\" />\n ) : (\n <le-icon name=\"chevron-down\" class=\"arrow-icon-end\" />\n )}\n </button>,\n ];\n }\n\n private renderAllMenuButton() {\n if (!this.showAllMenu) return null;\n\n const hasSlottedAllMenu = this.el.querySelector('[slot=\"all-menu\"]');\n\n return (\n <button\n class=\"bar-all-menu-button\"\n part=\"all-menu-button\"\n onClick={this.toggleAllMenu}\n aria-expanded={String(this.allMenuOpen)}\n aria-haspopup=\"true\"\n >\n {hasSlottedAllMenu ? <slot name=\"all-menu\" /> : <le-icon name=\"hamburger\" />}\n </button>\n );\n }\n\n private renderPopoverContent(itemsToShow: { id: string; item: HTMLElement }[]) {\n return (\n <div class=\"bar-popover-content\" part=\"popover-content\">\n {itemsToShow.map(({ id, item }) => (\n <div\n class=\"bar-popover-item\"\n key={id}\n onClick={(e: MouseEvent) => this.handleItemClick(e, id)}\n innerHTML={item.outerHTML}\n />\n ))}\n </div>\n );\n }\n\n private renderOverflowPopover() {\n if (this.overflow !== 'more' && this.overflow !== 'hamburger') return null;\n\n const items = this.getSlottedItems();\n let itemsToShow: { id: string; item: HTMLElement }[] = [];\n\n if (this.overflow === 'hamburger' && this.hamburgerActive) {\n // Show all items in hamburger mode\n itemsToShow = items.map((item, index) => ({\n id: this.getItemId(item, index),\n item,\n }));\n } else if (this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) {\n // Show only overflowing items\n itemsToShow = items\n .map((item, index) => ({\n id: this.getItemId(item, index),\n item,\n }))\n .filter(({ id }) => this.overflowingIds?.has(id));\n }\n\n if (itemsToShow.length === 0) return null;\n\n return (\n <le-popover\n mode=\"default\"\n open={this.popoverOpen}\n position=\"bottom\"\n align=\"end\"\n showClose={false}\n closeOnClickOutside={true}\n closeOnEscape={true}\n onLePopoverClose={this.closePopover}\n >\n <div slot=\"trigger\" class=\"bar-overflow-trigger\">\n {this.overflow === 'hamburger' ? this.renderHamburgerButton() : this.renderMoreButton()}\n </div>\n {this.renderPopoverContent(itemsToShow)}\n </le-popover>\n );\n }\n\n private renderAllMenuPopover() {\n if (!this.showAllMenu) return null;\n\n const items = this.getSlottedItems();\n const itemsToShow = items.map((item, index) => ({\n id: this.getItemId(item, index),\n item,\n }));\n\n const position = this.showAllMenu === 'start' ? 'start' : 'end';\n\n return (\n <le-popover\n mode=\"default\"\n open={this.allMenuOpen}\n position=\"bottom\"\n align={position}\n showClose={false}\n closeOnClickOutside={true}\n closeOnEscape={true}\n onLePopoverClose={this.closeAllMenu}\n >\n <div slot=\"trigger\" class=\"bar-all-menu-trigger\">\n {this.renderAllMenuButton()}\n </div>\n {this.renderPopoverContent(itemsToShow)}\n </le-popover>\n );\n }\n\n render() {\n const showOverflowButton =\n !this.disablePopover &&\n ((this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) ||\n (this.overflow === 'hamburger' && this.hamburgerActive));\n\n const containerStyle: { [key: string]: string } = {};\n if (\n this.containerHeight !== null &&\n (this.overflow === 'more' || this.overflow === 'hamburger')\n ) {\n containerStyle.height = `${this.containerHeight}px`;\n }\n\n const showAllMenuAtStart = this.showAllMenu === 'start';\n const showAllMenuAtEnd = this.showAllMenu === true || this.showAllMenu === 'end';\n\n return (\n <Host\n class={classnames({\n 'overflow-more': this.overflow === 'more',\n 'overflow-scroll': this.overflow === 'scroll',\n 'overflow-hamburger': this.overflow === 'hamburger',\n 'overflow-wrap': this.overflow === 'wrap',\n 'hamburger-active': this.hamburgerActive,\n 'has-overflow': (this.overflowingIds?.size ?? 0) > 0 || this.hamburgerActive,\n })}\n >\n <div\n class={classnames('bar-container', {\n [`align-${this.alignItems}`]: true,\n })}\n part=\"container\"\n >\n {/* Start controls */}\n {this.overflow === 'scroll' && this.arrows && (\n <div class=\"bar-controls bar-controls-start\">{this.renderScrollArrows()?.[0]}</div>\n )}\n\n {showAllMenuAtStart && (\n <div class=\"bar-controls bar-controls-start\">{this.renderAllMenuPopover()}</div>\n )}\n\n {/* Items container */}\n <div\n class={classnames('bar-items', {\n 'is-scrollable': this.overflow === 'scroll',\n 'is-wrapping': this.overflow === 'wrap',\n })}\n style={containerStyle}\n ref={el => {\n this.itemsContainerEl = el;\n this.observeContainer(el);\n }}\n onScroll={this.overflow === 'scroll' ? this.handleScroll : undefined}\n >\n <slot />\n </div>\n\n {/* End controls */}\n {showOverflowButton && (\n <div class=\"bar-controls bar-controls-end\">{this.renderOverflowPopover()}</div>\n )}\n\n {showAllMenuAtEnd && (\n <div class=\"bar-controls bar-controls-end\">{this.renderAllMenuPopover()}</div>\n )}\n\n {this.overflow === 'scroll' && this.arrows && (\n <div class=\"bar-controls bar-controls-end\">{this.renderScrollArrows()?.[1]}</div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../types/components";
2
-
3
- interface LeBox extends Components.LeBox, HTMLElement {}
4
- export const LeBox: {
5
- prototype: LeBox;
6
- new (): LeBox;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;