le-kit 0.5.3 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/LLM_CONTEXT.md +95 -34
  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 -3397
  9. package/dist/cjs/le-box.cjs.entry.js +0 -136
  10. package/dist/cjs/le-breadcrumbs.cjs.entry.js +0 -223
  11. package/dist/cjs/le-card.cjs.entry.js +0 -29
  12. package/dist/cjs/le-code-input.cjs.entry.js +0 -147
  13. package/dist/cjs/le-combobox.cjs.entry.js +0 -210
  14. package/dist/cjs/le-header-placeholder.cjs.entry.js +0 -18
  15. package/dist/cjs/le-kit.cjs.js +0 -27
  16. package/dist/cjs/le-kit.cjs.js.map +0 -1
  17. package/dist/cjs/le-multiselect.cjs.entry.js +0 -284
  18. package/dist/cjs/le-number-input.cjs.entry.js +0 -162
  19. package/dist/cjs/le-round-progress.cjs.entry.js +0 -101
  20. package/dist/cjs/le-segmented-control.cjs.entry.js +0 -235
  21. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +0 -213
  22. package/dist/cjs/le-side-panel.cjs.entry.js +0 -539
  23. package/dist/cjs/le-stack.cjs.entry.js +0 -122
  24. package/dist/cjs/le-tab-bar.cjs.entry.js +0 -233
  25. package/dist/cjs/le-tab-panel.cjs.entry.js +0 -82
  26. package/dist/cjs/le-tab.cjs.entry.js +0 -98
  27. package/dist/cjs/le-tabs.cjs.entry.js +0 -297
  28. package/dist/cjs/le-tag.cjs.entry.js +0 -51
  29. package/dist/cjs/le-text.cjs.entry.js +0 -318
  30. package/dist/cjs/le-turntable.cjs.entry.js +0 -131
  31. package/dist/cjs/loader.cjs.js +0 -15
  32. package/dist/cjs/loader.cjs.js.map +0 -1
  33. package/dist/cjs/utils-Dxx9WhWK.js +0 -152
  34. package/dist/cjs/utils-Dxx9WhWK.js.map +0 -1
  35. package/dist/collection/collection-manifest.json +0 -48
  36. package/dist/collection/components/le-bar/le-bar.css +0 -255
  37. package/dist/collection/components/le-bar/le-bar.js +0 -673
  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 -567
  41. package/dist/collection/components/le-box/le-box.js.map +0 -1
  42. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.css +0 -72
  43. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js +0 -372
  44. package/dist/collection/components/le-breadcrumbs/le-breadcrumbs.js.map +0 -1
  45. package/dist/collection/components/le-button/le-button.css +0 -290
  46. package/dist/collection/components/le-button/le-button.js +0 -431
  47. package/dist/collection/components/le-button/le-button.js.map +0 -1
  48. package/dist/collection/components/le-card/le-card.css +0 -74
  49. package/dist/collection/components/le-card/le-card.js +0 -103
  50. package/dist/collection/components/le-card/le-card.js.map +0 -1
  51. package/dist/collection/components/le-checkbox/le-checkbox.css +0 -93
  52. package/dist/collection/components/le-checkbox/le-checkbox.js +0 -177
  53. package/dist/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  54. package/dist/collection/components/le-code-input/le-code-input.css +0 -106
  55. package/dist/collection/components/le-code-input/le-code-input.js +0 -433
  56. package/dist/collection/components/le-code-input/le-code-input.js.map +0 -1
  57. package/dist/collection/components/le-collapse/le-collapse.css +0 -31
  58. package/dist/collection/components/le-collapse/le-collapse.js +0 -185
  59. package/dist/collection/components/le-collapse/le-collapse.js.map +0 -1
  60. package/dist/collection/components/le-combobox/le-combobox.css +0 -144
  61. package/dist/collection/components/le-combobox/le-combobox.js +0 -633
  62. package/dist/collection/components/le-combobox/le-combobox.js.map +0 -1
  63. package/dist/collection/components/le-component/le-component.css +0 -189
  64. package/dist/collection/components/le-component/le-component.js +0 -343
  65. package/dist/collection/components/le-component/le-component.js.map +0 -1
  66. package/dist/collection/components/le-current-heading/le-current-heading.css +0 -13
  67. package/dist/collection/components/le-current-heading/le-current-heading.js +0 -131
  68. package/dist/collection/components/le-current-heading/le-current-heading.js.map +0 -1
  69. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +0 -167
  70. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +0 -735
  71. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +0 -1
  72. package/dist/collection/components/le-header/le-header.css +0 -120
  73. package/dist/collection/components/le-header/le-header.js +0 -485
  74. package/dist/collection/components/le-header/le-header.js.map +0 -1
  75. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +0 -21
  76. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +0 -1
  77. package/dist/collection/components/le-icon/le-icon.css +0 -13
  78. package/dist/collection/components/le-icon/le-icon.js +0 -185
  79. package/dist/collection/components/le-icon/le-icon.js.map +0 -1
  80. package/dist/collection/components/le-multiselect/le-multiselect.css +0 -163
  81. package/dist/collection/components/le-multiselect/le-multiselect.js +0 -713
  82. package/dist/collection/components/le-multiselect/le-multiselect.js.map +0 -1
  83. package/dist/collection/components/le-navigation/le-navigation.css +0 -330
  84. package/dist/collection/components/le-navigation/le-navigation.js +0 -690
  85. package/dist/collection/components/le-navigation/le-navigation.js.map +0 -1
  86. package/dist/collection/components/le-number-input/le-number-input.css +0 -135
  87. package/dist/collection/components/le-number-input/le-number-input.js +0 -476
  88. package/dist/collection/components/le-number-input/le-number-input.js.map +0 -1
  89. package/dist/collection/components/le-popover/le-popover.css +0 -164
  90. package/dist/collection/components/le-popover/le-popover.js +0 -828
  91. package/dist/collection/components/le-popover/le-popover.js.map +0 -1
  92. package/dist/collection/components/le-popup/le-popup.api.js +0 -102
  93. package/dist/collection/components/le-popup/le-popup.api.js.map +0 -1
  94. package/dist/collection/components/le-popup/le-popup.css +0 -222
  95. package/dist/collection/components/le-popup/le-popup.js +0 -600
  96. package/dist/collection/components/le-popup/le-popup.js.map +0 -1
  97. package/dist/collection/components/le-round-progress/le-round-progress.css +0 -34
  98. package/dist/collection/components/le-round-progress/le-round-progress.js +0 -179
  99. package/dist/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  100. package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +0 -29
  101. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +0 -185
  102. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +0 -1
  103. package/dist/collection/components/le-segmented-control/le-segmented-control.css +0 -78
  104. package/dist/collection/components/le-segmented-control/le-segmented-control.js +0 -436
  105. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +0 -1
  106. package/dist/collection/components/le-select/le-select.css +0 -121
  107. package/dist/collection/components/le-select/le-select.js +0 -556
  108. package/dist/collection/components/le-select/le-select.js.map +0 -1
  109. package/dist/collection/components/le-side-panel/le-side-panel.css +0 -202
  110. package/dist/collection/components/le-side-panel/le-side-panel.js +0 -948
  111. package/dist/collection/components/le-side-panel/le-side-panel.js.map +0 -1
  112. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +0 -595
  113. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +0 -1
  114. package/dist/collection/components/le-slot/le-slot.default.css +0 -222
  115. package/dist/collection/components/le-slot/le-slot.js +0 -590
  116. package/dist/collection/components/le-slot/le-slot.js.map +0 -1
  117. package/dist/collection/components/le-stack/le-stack.default.css +0 -37
  118. package/dist/collection/components/le-stack/le-stack.js +0 -377
  119. package/dist/collection/components/le-stack/le-stack.js.map +0 -1
  120. package/dist/collection/components/le-string-input/le-string-input.css +0 -83
  121. package/dist/collection/components/le-string-input/le-string-input.js +0 -370
  122. package/dist/collection/components/le-string-input/le-string-input.js.map +0 -1
  123. package/dist/collection/components/le-tab/le-tab.css +0 -289
  124. package/dist/collection/components/le-tab/le-tab.js +0 -528
  125. package/dist/collection/components/le-tab/le-tab.js.map +0 -1
  126. package/dist/collection/components/le-tab-bar/le-tab-bar.css +0 -89
  127. package/dist/collection/components/le-tab-bar/le-tab-bar.js +0 -459
  128. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +0 -1
  129. package/dist/collection/components/le-tab-panel/le-tab-panel.css +0 -30
  130. package/dist/collection/components/le-tab-panel/le-tab-panel.js +0 -285
  131. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +0 -1
  132. package/dist/collection/components/le-tabs/le-tabs.css +0 -146
  133. package/dist/collection/components/le-tabs/le-tabs.js +0 -579
  134. package/dist/collection/components/le-tabs/le-tabs.js.map +0 -1
  135. package/dist/collection/components/le-tag/le-tag.css +0 -139
  136. package/dist/collection/components/le-tag/le-tag.js +0 -251
  137. package/dist/collection/components/le-tag/le-tag.js.map +0 -1
  138. package/dist/collection/components/le-text/le-text.css +0 -169
  139. package/dist/collection/components/le-text/le-text.js +0 -459
  140. package/dist/collection/components/le-text/le-text.js.map +0 -1
  141. package/dist/collection/components/le-turntable/le-turntable.css +0 -10
  142. package/dist/collection/components/le-turntable/le-turntable.js +0 -202
  143. package/dist/collection/components/le-turntable/le-turntable.js.map +0 -1
  144. package/dist/collection/dist/components/assets/custom-elements.json +0 -12263
  145. package/dist/collection/dist/components/assets/icons/arrow-left.json +0 -21
  146. package/dist/collection/dist/components/assets/icons/arrow-right.json +0 -21
  147. package/dist/collection/dist/components/assets/icons/check.json +0 -12
  148. package/dist/collection/dist/components/assets/icons/chevron-down.json +0 -12
  149. package/dist/collection/dist/components/assets/icons/chevron-left.json +0 -12
  150. package/dist/collection/dist/components/assets/icons/chevron-right.json +0 -12
  151. package/dist/collection/dist/components/assets/icons/chevron-up.json +0 -12
  152. package/dist/collection/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  153. package/dist/collection/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  154. package/dist/collection/dist/components/assets/icons/hamburger.json +0 -14
  155. package/dist/collection/dist/components/assets/icons/side-panel.json +0 -61
  156. package/dist/collection/dist/themes/base.css +0 -89
  157. package/dist/collection/dist/themes/dark.css +0 -104
  158. package/dist/collection/dist/themes/default.css +0 -112
  159. package/dist/collection/dist/themes/gradient.css +0 -104
  160. package/dist/collection/dist/themes/index.css +0 -76
  161. package/dist/collection/dist/themes/minimal.css +0 -104
  162. package/dist/collection/dist/themes/warm.css +0 -104
  163. package/dist/collection/global/app.js +0 -177
  164. package/dist/collection/global/app.js.map +0 -1
  165. package/dist/collection/index.js +0 -16
  166. package/dist/collection/index.js.map +0 -1
  167. package/dist/collection/types/blocks.js +0 -115
  168. package/dist/collection/types/blocks.js.map +0 -1
  169. package/dist/collection/types/options.js +0 -2
  170. package/dist/collection/types/options.js.map +0 -1
  171. package/dist/collection/utils/utils.js +0 -141
  172. package/dist/collection/utils/utils.js.map +0 -1
  173. package/dist/components/app.js +0 -180
  174. package/dist/components/app.js.map +0 -1
  175. package/dist/components/assets/custom-elements.json +0 -12263
  176. package/dist/components/assets/icons/arrow-left.json +0 -21
  177. package/dist/components/assets/icons/arrow-right.json +0 -21
  178. package/dist/components/assets/icons/check.json +0 -12
  179. package/dist/components/assets/icons/chevron-down.json +0 -12
  180. package/dist/components/assets/icons/chevron-left.json +0 -12
  181. package/dist/components/assets/icons/chevron-right.json +0 -12
  182. package/dist/components/assets/icons/chevron-up.json +0 -12
  183. package/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  184. package/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  185. package/dist/components/assets/icons/hamburger.json +0 -14
  186. package/dist/components/assets/icons/side-panel.json +0 -61
  187. package/dist/components/index.d.ts +0 -33
  188. package/dist/components/index.js +0 -12
  189. package/dist/components/index.js.map +0 -1
  190. package/dist/components/le-bar.d.ts +0 -11
  191. package/dist/components/le-bar.js +0 -9
  192. package/dist/components/le-bar.js.map +0 -1
  193. package/dist/components/le-bar2.js +0 -498
  194. package/dist/components/le-bar2.js.map +0 -1
  195. package/dist/components/le-box.d.ts +0 -11
  196. package/dist/components/le-box.js +0 -225
  197. package/dist/components/le-box.js.map +0 -1
  198. package/dist/components/le-breadcrumbs.d.ts +0 -11
  199. package/dist/components/le-breadcrumbs.js +0 -327
  200. package/dist/components/le-breadcrumbs.js.map +0 -1
  201. package/dist/components/le-button.d.ts +0 -11
  202. package/dist/components/le-button.js +0 -9
  203. package/dist/components/le-button.js.map +0 -1
  204. package/dist/components/le-button2.js +0 -1577
  205. package/dist/components/le-button2.js.map +0 -1
  206. package/dist/components/le-card.d.ts +0 -11
  207. package/dist/components/le-card.js +0 -100
  208. package/dist/components/le-card.js.map +0 -1
  209. package/dist/components/le-checkbox.d.ts +0 -11
  210. package/dist/components/le-checkbox.js +0 -9
  211. package/dist/components/le-checkbox.js.map +0 -1
  212. package/dist/components/le-code-input.d.ts +0 -11
  213. package/dist/components/le-code-input.js +0 -231
  214. package/dist/components/le-code-input.js.map +0 -1
  215. package/dist/components/le-collapse.d.ts +0 -11
  216. package/dist/components/le-collapse.js +0 -9
  217. package/dist/components/le-collapse.js.map +0 -1
  218. package/dist/components/le-collapse2.js +0 -138
  219. package/dist/components/le-collapse2.js.map +0 -1
  220. package/dist/components/le-combobox.d.ts +0 -11
  221. package/dist/components/le-combobox.js +0 -299
  222. package/dist/components/le-combobox.js.map +0 -1
  223. package/dist/components/le-component.d.ts +0 -11
  224. package/dist/components/le-component.js +0 -9
  225. package/dist/components/le-component.js.map +0 -1
  226. package/dist/components/le-current-heading.d.ts +0 -11
  227. package/dist/components/le-current-heading.js +0 -93
  228. package/dist/components/le-current-heading.js.map +0 -1
  229. package/dist/components/le-dropdown-base.d.ts +0 -11
  230. package/dist/components/le-dropdown-base.js +0 -9
  231. package/dist/components/le-dropdown-base.js.map +0 -1
  232. package/dist/components/le-dropdown-base2.js +0 -366
  233. package/dist/components/le-dropdown-base2.js.map +0 -1
  234. package/dist/components/le-header-placeholder.d.ts +0 -11
  235. package/dist/components/le-header-placeholder.js +0 -37
  236. package/dist/components/le-header-placeholder.js.map +0 -1
  237. package/dist/components/le-header.d.ts +0 -11
  238. package/dist/components/le-header.js +0 -325
  239. package/dist/components/le-header.js.map +0 -1
  240. package/dist/components/le-icon.d.ts +0 -11
  241. package/dist/components/le-icon.js +0 -9
  242. package/dist/components/le-icon.js.map +0 -1
  243. package/dist/components/le-icon2.js +0 -149
  244. package/dist/components/le-icon2.js.map +0 -1
  245. package/dist/components/le-multiselect.d.ts +0 -11
  246. package/dist/components/le-multiselect.js +0 -383
  247. package/dist/components/le-multiselect.js.map +0 -1
  248. package/dist/components/le-navigation.d.ts +0 -11
  249. package/dist/components/le-navigation.js +0 -9
  250. package/dist/components/le-navigation.js.map +0 -1
  251. package/dist/components/le-navigation2.js +0 -488
  252. package/dist/components/le-navigation2.js.map +0 -1
  253. package/dist/components/le-number-input.d.ts +0 -11
  254. package/dist/components/le-number-input.js +0 -248
  255. package/dist/components/le-number-input.js.map +0 -1
  256. package/dist/components/le-popover.d.ts +0 -11
  257. package/dist/components/le-popover.js +0 -9
  258. package/dist/components/le-popover.js.map +0 -1
  259. package/dist/components/le-popover2.js +0 -642
  260. package/dist/components/le-popover2.js.map +0 -1
  261. package/dist/components/le-popup.api.js +0 -106
  262. package/dist/components/le-popup.api.js.map +0 -1
  263. package/dist/components/le-popup.d.ts +0 -11
  264. package/dist/components/le-popup.js +0 -9
  265. package/dist/components/le-popup.js.map +0 -1
  266. package/dist/components/le-round-progress.d.ts +0 -11
  267. package/dist/components/le-round-progress.js +0 -130
  268. package/dist/components/le-round-progress.js.map +0 -1
  269. package/dist/components/le-scroll-progress.d.ts +0 -11
  270. package/dist/components/le-scroll-progress.js +0 -140
  271. package/dist/components/le-scroll-progress.js.map +0 -1
  272. package/dist/components/le-segmented-control.d.ts +0 -11
  273. package/dist/components/le-segmented-control.js +0 -321
  274. package/dist/components/le-segmented-control.js.map +0 -1
  275. package/dist/components/le-select.d.ts +0 -11
  276. package/dist/components/le-select.js +0 -9
  277. package/dist/components/le-select.js.map +0 -1
  278. package/dist/components/le-side-panel-toggle.d.ts +0 -11
  279. package/dist/components/le-side-panel-toggle.js +0 -9
  280. package/dist/components/le-side-panel-toggle.js.map +0 -1
  281. package/dist/components/le-side-panel-toggle2.js +0 -295
  282. package/dist/components/le-side-panel-toggle2.js.map +0 -1
  283. package/dist/components/le-side-panel.d.ts +0 -11
  284. package/dist/components/le-side-panel.js +0 -654
  285. package/dist/components/le-side-panel.js.map +0 -1
  286. package/dist/components/le-slot.d.ts +0 -11
  287. package/dist/components/le-slot.js +0 -9
  288. package/dist/components/le-slot.js.map +0 -1
  289. package/dist/components/le-stack.d.ts +0 -11
  290. package/dist/components/le-stack.js +0 -202
  291. package/dist/components/le-stack.js.map +0 -1
  292. package/dist/components/le-string-input.d.ts +0 -11
  293. package/dist/components/le-string-input.js +0 -9
  294. package/dist/components/le-string-input.js.map +0 -1
  295. package/dist/components/le-tab-bar.d.ts +0 -11
  296. package/dist/components/le-tab-bar.js +0 -321
  297. package/dist/components/le-tab-bar.js.map +0 -1
  298. package/dist/components/le-tab-panel.d.ts +0 -11
  299. package/dist/components/le-tab-panel.js +0 -164
  300. package/dist/components/le-tab-panel.js.map +0 -1
  301. package/dist/components/le-tab.d.ts +0 -11
  302. package/dist/components/le-tab.js +0 -9
  303. package/dist/components/le-tab.js.map +0 -1
  304. package/dist/components/le-tab2.js +0 -182
  305. package/dist/components/le-tab2.js.map +0 -1
  306. package/dist/components/le-tabs.d.ts +0 -11
  307. package/dist/components/le-tabs.js +0 -387
  308. package/dist/components/le-tabs.js.map +0 -1
  309. package/dist/components/le-tag.d.ts +0 -11
  310. package/dist/components/le-tag.js +0 -9
  311. package/dist/components/le-tag.js.map +0 -1
  312. package/dist/components/le-tag2.js +0 -124
  313. package/dist/components/le-tag2.js.map +0 -1
  314. package/dist/components/le-text.d.ts +0 -11
  315. package/dist/components/le-text.js +0 -398
  316. package/dist/components/le-text.js.map +0 -1
  317. package/dist/components/le-turntable.d.ts +0 -11
  318. package/dist/components/le-turntable.js +0 -156
  319. package/dist/components/le-turntable.js.map +0 -1
  320. package/dist/components/utils.js +0 -146
  321. package/dist/components/utils.js.map +0 -1
  322. package/dist/docs.d.ts +0 -443
  323. package/dist/docs.json +0 -14581
  324. package/dist/esm/index-DFTm5BqT.js +0 -1844
  325. package/dist/esm/index-DFTm5BqT.js.map +0 -1
  326. package/dist/esm/index.js +0 -109
  327. package/dist/esm/index.js.map +0 -1
  328. package/dist/esm/le-bar_16.entry.js +0 -3380
  329. package/dist/esm/le-box.entry.js +0 -134
  330. package/dist/esm/le-box.entry.js.map +0 -1
  331. package/dist/esm/le-breadcrumbs.entry.js +0 -221
  332. package/dist/esm/le-breadcrumbs.entry.js.map +0 -1
  333. package/dist/esm/le-card.entry.js +0 -27
  334. package/dist/esm/le-card.entry.js.map +0 -1
  335. package/dist/esm/le-code-input.entry.js +0 -145
  336. package/dist/esm/le-code-input.entry.js.map +0 -1
  337. package/dist/esm/le-combobox.entry.js +0 -208
  338. package/dist/esm/le-combobox.entry.js.map +0 -1
  339. package/dist/esm/le-header-placeholder.entry.js +0 -16
  340. package/dist/esm/le-header-placeholder.entry.js.map +0 -1
  341. package/dist/esm/le-kit.js +0 -23
  342. package/dist/esm/le-kit.js.map +0 -1
  343. package/dist/esm/le-multiselect.entry.js +0 -282
  344. package/dist/esm/le-multiselect.entry.js.map +0 -1
  345. package/dist/esm/le-number-input.entry.js +0 -160
  346. package/dist/esm/le-number-input.entry.js.map +0 -1
  347. package/dist/esm/le-round-progress.entry.js +0 -99
  348. package/dist/esm/le-round-progress.entry.js.map +0 -1
  349. package/dist/esm/le-segmented-control.entry.js +0 -233
  350. package/dist/esm/le-segmented-control.entry.js.map +0 -1
  351. package/dist/esm/le-side-panel-toggle.entry.js +0 -211
  352. package/dist/esm/le-side-panel-toggle.entry.js.map +0 -1
  353. package/dist/esm/le-side-panel.entry.js +0 -537
  354. package/dist/esm/le-side-panel.entry.js.map +0 -1
  355. package/dist/esm/le-stack.entry.js +0 -120
  356. package/dist/esm/le-stack.entry.js.map +0 -1
  357. package/dist/esm/le-tab-bar.entry.js +0 -231
  358. package/dist/esm/le-tab-bar.entry.js.map +0 -1
  359. package/dist/esm/le-tab-panel.entry.js +0 -80
  360. package/dist/esm/le-tab-panel.entry.js.map +0 -1
  361. package/dist/esm/le-tab.entry.js +0 -96
  362. package/dist/esm/le-tab.entry.js.map +0 -1
  363. package/dist/esm/le-tabs.entry.js +0 -295
  364. package/dist/esm/le-tabs.entry.js.map +0 -1
  365. package/dist/esm/le-tag.entry.js +0 -49
  366. package/dist/esm/le-tag.entry.js.map +0 -1
  367. package/dist/esm/le-text.entry.js +0 -316
  368. package/dist/esm/le-text.entry.js.map +0 -1
  369. package/dist/esm/le-turntable.entry.js +0 -129
  370. package/dist/esm/le-turntable.entry.js.map +0 -1
  371. package/dist/esm/loader.js +0 -13
  372. package/dist/esm/loader.js.map +0 -1
  373. package/dist/esm/utils-DZYCZLrF.js +0 -146
  374. package/dist/esm/utils-DZYCZLrF.js.map +0 -1
  375. package/dist/index.cjs.js +0 -1
  376. package/dist/index.js +0 -1
  377. package/dist/le-kit/dist/components/assets/custom-elements.json +0 -12263
  378. package/dist/le-kit/dist/components/assets/icons/arrow-left.json +0 -21
  379. package/dist/le-kit/dist/components/assets/icons/arrow-right.json +0 -21
  380. package/dist/le-kit/dist/components/assets/icons/check.json +0 -12
  381. package/dist/le-kit/dist/components/assets/icons/chevron-down.json +0 -12
  382. package/dist/le-kit/dist/components/assets/icons/chevron-left.json +0 -12
  383. package/dist/le-kit/dist/components/assets/icons/chevron-right.json +0 -12
  384. package/dist/le-kit/dist/components/assets/icons/chevron-up.json +0 -12
  385. package/dist/le-kit/dist/components/assets/icons/ellipsis-horizontal.json +0 -14
  386. package/dist/le-kit/dist/components/assets/icons/ellipsis-vertical.json +0 -14
  387. package/dist/le-kit/dist/components/assets/icons/hamburger.json +0 -14
  388. package/dist/le-kit/dist/components/assets/icons/side-panel.json +0 -61
  389. package/dist/le-kit/dist/themes/base.css +0 -89
  390. package/dist/le-kit/dist/themes/dark.css +0 -104
  391. package/dist/le-kit/dist/themes/default.css +0 -112
  392. package/dist/le-kit/dist/themes/gradient.css +0 -104
  393. package/dist/le-kit/dist/themes/index.css +0 -76
  394. package/dist/le-kit/dist/themes/minimal.css +0 -104
  395. package/dist/le-kit/dist/themes/warm.css +0 -104
  396. package/dist/le-kit/index.esm.js +0 -2
  397. package/dist/le-kit/index.esm.js.map +0 -1
  398. package/dist/le-kit/le-kit.css +0 -1
  399. package/dist/le-kit/le-kit.esm.js +0 -2
  400. package/dist/le-kit/le-kit.esm.js.map +0 -1
  401. package/dist/le-kit/loader.esm.js.map +0 -1
  402. package/dist/le-kit/p-3067b18f.entry.js +0 -2
  403. package/dist/le-kit/p-3067b18f.entry.js.map +0 -1
  404. package/dist/le-kit/p-34c4d97d.entry.js +0 -2
  405. package/dist/le-kit/p-34c4d97d.entry.js.map +0 -1
  406. package/dist/le-kit/p-45182541.entry.js +0 -2
  407. package/dist/le-kit/p-45182541.entry.js.map +0 -1
  408. package/dist/le-kit/p-52a41c96.entry.js +0 -2
  409. package/dist/le-kit/p-52a41c96.entry.js.map +0 -1
  410. package/dist/le-kit/p-55fb5dd2.entry.js +0 -2
  411. package/dist/le-kit/p-55fb5dd2.entry.js.map +0 -1
  412. package/dist/le-kit/p-649025f4.entry.js +0 -2
  413. package/dist/le-kit/p-649025f4.entry.js.map +0 -1
  414. package/dist/le-kit/p-67930309.entry.js +0 -2
  415. package/dist/le-kit/p-67930309.entry.js.map +0 -1
  416. package/dist/le-kit/p-6d222705.entry.js +0 -2
  417. package/dist/le-kit/p-6d222705.entry.js.map +0 -1
  418. package/dist/le-kit/p-8049e0c2.entry.js +0 -2
  419. package/dist/le-kit/p-8049e0c2.entry.js.map +0 -1
  420. package/dist/le-kit/p-884f57bd.entry.js +0 -2
  421. package/dist/le-kit/p-884f57bd.entry.js.map +0 -1
  422. package/dist/le-kit/p-88c70f9d.entry.js +0 -2
  423. package/dist/le-kit/p-88c70f9d.entry.js.map +0 -1
  424. package/dist/le-kit/p-96610729.entry.js +0 -2
  425. package/dist/le-kit/p-96610729.entry.js.map +0 -1
  426. package/dist/le-kit/p-D8RYDS9p.js +0 -2
  427. package/dist/le-kit/p-D8RYDS9p.js.map +0 -1
  428. package/dist/le-kit/p-DFTm5BqT.js +0 -3
  429. package/dist/le-kit/p-DFTm5BqT.js.map +0 -1
  430. package/dist/le-kit/p-a34054e0.entry.js +0 -2
  431. package/dist/le-kit/p-a34054e0.entry.js.map +0 -1
  432. package/dist/le-kit/p-a388e46a.entry.js +0 -2
  433. package/dist/le-kit/p-a388e46a.entry.js.map +0 -1
  434. package/dist/le-kit/p-c0c53650.entry.js +0 -2
  435. package/dist/le-kit/p-c0c53650.entry.js.map +0 -1
  436. package/dist/le-kit/p-cbf17514.entry.js +0 -2
  437. package/dist/le-kit/p-cbf17514.entry.js.map +0 -1
  438. package/dist/le-kit/p-d934de74.entry.js +0 -2
  439. package/dist/le-kit/p-d934de74.entry.js.map +0 -1
  440. package/dist/le-kit/p-de72c8b5.entry.js +0 -2
  441. package/dist/le-kit/p-de72c8b5.entry.js.map +0 -1
  442. package/dist/le-kit/p-e3dd0f2a.entry.js +0 -2
  443. package/dist/le-kit/p-e3dd0f2a.entry.js.map +0 -1
  444. package/dist/le-kit/p-ee170967.entry.js +0 -2
  445. package/dist/le-kit/p-ee170967.entry.js.map +0 -1
  446. package/dist/le-kit/p-eedb2f75.entry.js +0 -2
  447. package/dist/le-kit/p-eedb2f75.entry.js.map +0 -1
  448. package/dist/themes/base.css +0 -89
  449. package/dist/themes/dark.css +0 -104
  450. package/dist/themes/default.css +0 -112
  451. package/dist/themes/gradient.css +0 -104
  452. package/dist/themes/index.css +0 -76
  453. package/dist/themes/minimal.css +0 -104
  454. package/dist/themes/warm.css +0 -104
  455. package/dist/types/components/le-bar/le-bar.d.ts +0 -131
  456. package/dist/types/components/le-box/le-box.d.ts +0 -111
  457. package/dist/types/components/le-breadcrumbs/le-breadcrumbs.d.ts +0 -57
  458. package/dist/types/components/le-button/le-button.d.ts +0 -93
  459. package/dist/types/components/le-card/le-card.d.ts +0 -37
  460. package/dist/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  461. package/dist/types/components/le-code-input/le-code-input.d.ts +0 -102
  462. package/dist/types/components/le-collapse/le-collapse.d.ts +0 -43
  463. package/dist/types/components/le-combobox/le-combobox.d.ts +0 -128
  464. package/dist/types/components/le-component/le-component.d.ts +0 -115
  465. package/dist/types/components/le-current-heading/le-current-heading.d.ts +0 -25
  466. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +0 -118
  467. package/dist/types/components/le-header/le-header.d.ts +0 -115
  468. package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +0 -13
  469. package/dist/types/components/le-icon/le-icon.d.ts +0 -28
  470. package/dist/types/components/le-multiselect/le-multiselect.d.ts +0 -143
  471. package/dist/types/components/le-navigation/le-navigation.d.ts +0 -125
  472. package/dist/types/components/le-number-input/le-number-input.d.ts +0 -106
  473. package/dist/types/components/le-popover/le-popover.d.ts +0 -129
  474. package/dist/types/components/le-popup/le-popup.api.d.ts +0 -73
  475. package/dist/types/components/le-popup/le-popup.d.ts +0 -127
  476. package/dist/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  477. package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +0 -40
  478. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +0 -82
  479. package/dist/types/components/le-select/le-select.d.ts +0 -125
  480. package/dist/types/components/le-side-panel/le-side-panel.d.ts +0 -102
  481. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +0 -48
  482. package/dist/types/components/le-slot/le-slot.d.ts +0 -149
  483. package/dist/types/components/le-stack/le-stack.d.ts +0 -73
  484. package/dist/types/components/le-string-input/le-string-input.d.ts +0 -91
  485. package/dist/types/components/le-tab/le-tab.d.ts +0 -116
  486. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +0 -88
  487. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +0 -75
  488. package/dist/types/components/le-tabs/le-tabs.d.ts +0 -108
  489. package/dist/types/components/le-tag/le-tag.d.ts +0 -78
  490. package/dist/types/components/le-text/le-text.d.ts +0 -141
  491. package/dist/types/components/le-turntable/le-turntable.d.ts +0 -55
  492. package/dist/types/components.d.ts +0 -5800
  493. package/dist/types/global/app.d.ts +0 -96
  494. package/dist/types/index.d.ts +0 -16
  495. package/dist/types/stencil-public-runtime.d.ts +0 -1799
  496. package/dist/types/types/blocks.d.ts +0 -136
  497. package/dist/types/types/options.d.ts +0 -143
  498. package/dist/types/utils/utils.d.ts +0 -54
  499. package/loader/cdn.js +0 -1
  500. package/loader/index.cjs.js +0 -1
  501. package/loader/index.d.ts +0 -24
  502. package/loader/index.es2017.js +0 -1
  503. package/loader/index.js +0 -2
@@ -1,498 +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
- * Overflow behavior when items don't fit on one row.
18
- * - `more`: Overflow items appear in a "more" dropdown
19
- * - `scroll`: Items scroll horizontally with optional arrows
20
- * - `hamburger`: All items go into a hamburger menu if any overflow
21
- * - `wrap`: Items wrap to additional rows
22
- */
23
- this.overflow = 'more';
24
- /**
25
- * Alignment of items within the bar (maps to justify-content).
26
- */
27
- this.alignItems = 'start';
28
- /**
29
- * Show scroll arrows when overflow is "scroll".
30
- */
31
- this.arrows = false;
32
- /**
33
- * Disable the internal overflow popover.
34
- * When true, the bar still detects overflow and hides items,
35
- * but doesn't render its own popover. Use this when providing
36
- * custom overflow handling via the leBarOverflowChange event.
37
- */
38
- this.disablePopover = false;
39
- /**
40
- * Minimum number of visible items required when using "more" overflow mode.
41
- * If fewer items would be visible, the bar falls back to hamburger mode.
42
- * Only applies when overflow is "more".
43
- */
44
- this.minVisibleItems = 0;
45
- /**
46
- * Show an "all items" menu button.
47
- * - `false`: Don't show
48
- * - `true` or `'end'`: Show at end
49
- * - `'start'`: Show at start
50
- */
51
- this.showAllMenu = false;
52
- /** Whether the hamburger/more popover is open */
53
- this.popoverOpen = false;
54
- /** Whether hamburger mode is active (for hamburger overflow) */
55
- this.hamburgerActive = false;
56
- /** IDs of items that are overflowing */
57
- this.overflowingIds = new Set();
58
- /** Whether we can scroll left */
59
- this.canScrollStart = false;
60
- /** Whether we can scroll right */
61
- this.canScrollEnd = false;
62
- /** Whether the all-menu popover is open */
63
- this.allMenuOpen = false;
64
- /** Current height of the items container (for overflow handling) */
65
- this.containerHeight = null;
66
- this.instanceId = generateId('le-bar');
67
- // Map to track item elements and their IDs
68
- this.itemMap = new Map();
69
- // Prevent multiple recalculations in the same frame
70
- this.pendingRecalc = null;
71
- this.handleScroll = () => {
72
- this.updateScrollState();
73
- };
74
- this.scrollToStart = () => {
75
- if (!this.itemsContainerEl)
76
- return;
77
- const items = this.getSlottedItems();
78
- const container = this.itemsContainerEl;
79
- // Find the scroll position of the previous item
80
- const currentScroll = container.scrollLeft;
81
- let targetScroll = 0;
82
- for (let i = items.length - 1; i >= 0; i--) {
83
- const item = items[i];
84
- // Calculate item's left edge relative to container's scroll position
85
- const itemLeft = item.offsetLeft - container.offsetLeft;
86
- // If this item starts before current scroll position, scroll to it
87
- if (itemLeft < currentScroll - 1) {
88
- targetScroll = itemLeft;
89
- break;
90
- }
91
- }
92
- container.scrollTo({ left: targetScroll, behavior: 'smooth' });
93
- // Update scroll state after animation
94
- setTimeout(() => this.updateScrollState(), 300);
95
- };
96
- this.scrollToEnd = () => {
97
- if (!this.itemsContainerEl)
98
- return;
99
- const container = this.itemsContainerEl;
100
- const items = this.getSlottedItems();
101
- if (items.length === 0)
102
- return;
103
- const containerWidth = container.clientWidth;
104
- const currentScroll = container.scrollLeft;
105
- let targetScroll = container.scrollWidth - containerWidth;
106
- for (const item of items) {
107
- // Calculate item's right edge relative to container
108
- const itemLeft = item.offsetLeft - container.offsetLeft;
109
- // If this is the next item to scroll to from left to right then scroll to it
110
- if (itemLeft > currentScroll + 1) {
111
- targetScroll = itemLeft;
112
- break;
113
- }
114
- }
115
- container.scrollTo({ left: Math.max(0, targetScroll), behavior: 'smooth' });
116
- // Update scroll state after animation
117
- setTimeout(() => this.updateScrollState(), 300);
118
- };
119
- this.togglePopover = () => {
120
- this.popoverOpen = !this.popoverOpen;
121
- };
122
- this.closePopover = () => {
123
- this.popoverOpen = false;
124
- };
125
- this.toggleAllMenu = () => {
126
- this.allMenuOpen = !this.allMenuOpen;
127
- };
128
- this.closeAllMenu = () => {
129
- this.allMenuOpen = false;
130
- };
131
- this.handleItemClick = (_e, id) => {
132
- // Close popover when an item inside is clicked
133
- const originalItem = this.itemMap.get(id);
134
- if (originalItem) {
135
- // Clone the click to the original item
136
- const cloneEvent = new MouseEvent('click', {
137
- bubbles: true,
138
- cancelable: true,
139
- view: window,
140
- });
141
- originalItem.dispatchEvent(cloneEvent);
142
- }
143
- this.closePopover();
144
- this.closeAllMenu();
145
- };
146
- }
147
- handleOverflowChange() {
148
- this.resetOverflowState();
149
- this.scheduleOverflowRecalc();
150
- }
151
- handleSlotChange() {
152
- this.scheduleOverflowRecalc();
153
- }
154
- connectedCallback() {
155
- this.setupObservers();
156
- }
157
- componentDidLoad() {
158
- this.scheduleOverflowRecalc();
159
- }
160
- componentDidRender() {
161
- // Recalculate after render in case children changed
162
- this.scheduleOverflowRecalc();
163
- }
164
- disconnectedCallback() {
165
- this.resizeObserver?.disconnect();
166
- this.mutationObserver?.disconnect();
167
- }
168
- /**
169
- * Force recalculation of overflow state.
170
- */
171
- async recalculate() {
172
- this.computeOverflow();
173
- }
174
- setupObservers() {
175
- // ResizeObserver for container size changes
176
- if (typeof ResizeObserver !== 'undefined') {
177
- this.resizeObserver = new ResizeObserver(() => {
178
- this.computeOverflow();
179
- this.updateScrollState();
180
- });
181
- }
182
- // MutationObserver for child changes
183
- this.mutationObserver = new MutationObserver(() => {
184
- this.scheduleOverflowRecalc();
185
- });
186
- this.mutationObserver.observe(this.el, {
187
- childList: true,
188
- subtree: false,
189
- });
190
- }
191
- observeContainer(el) {
192
- if (!this.resizeObserver)
193
- return;
194
- this.resizeObserver.disconnect();
195
- if (el)
196
- this.resizeObserver.observe(el);
197
- }
198
- scheduleOverflowRecalc() {
199
- // Debounce recalculations to prevent infinite loops
200
- if (this.pendingRecalc !== null) {
201
- cancelAnimationFrame(this.pendingRecalc);
202
- }
203
- this.pendingRecalc = requestAnimationFrame(() => {
204
- this.pendingRecalc = null;
205
- this.computeOverflow();
206
- });
207
- }
208
- resetOverflowState() {
209
- this.hamburgerActive = false;
210
- this.overflowingIds = new Set();
211
- this.containerHeight = null;
212
- this.popoverOpen = false;
213
- }
214
- getSlottedItems() {
215
- // Get direct children from the light DOM (excluding named slot elements)
216
- return Array.from(this.el.children).filter((el) => el instanceof HTMLElement && !el.hasAttribute('slot'));
217
- }
218
- getItemId(el, index) {
219
- return el.id || el.dataset.barId || `${this.instanceId}-item-${index}`;
220
- }
221
- computeOverflow() {
222
- if (this.overflow === 'wrap' || this.overflow === 'scroll') {
223
- // No overflow handling needed for wrap/scroll modes
224
- this.resetOverflowState();
225
- this.updateScrollState();
226
- return;
227
- }
228
- const container = this.itemsContainerEl;
229
- if (!container)
230
- return;
231
- const items = this.getSlottedItems();
232
- if (items.length === 0) {
233
- this.resetOverflowState();
234
- return;
235
- }
236
- // Build item map
237
- this.itemMap.clear();
238
- items.forEach((item, index) => {
239
- const id = this.getItemId(item, index);
240
- this.itemMap.set(id, item);
241
- });
242
- // Get the position of items to determine which are on the first row
243
- const itemRects = items.map((item, index) => ({
244
- item,
245
- id: this.getItemId(item, index),
246
- rect: item.getBoundingClientRect(),
247
- }));
248
- if (itemRects.length === 0) {
249
- return;
250
- }
251
- // Find the first row's top position (accounting for vertical alignment)
252
- const containerRect = container.getBoundingClientRect();
253
- const topValues = itemRects.map(i => i.rect.top - containerRect.top);
254
- const minTop = Math.min(...topValues);
255
- // Items are on the first row if their top is close to minTop
256
- // Allow some tolerance for alignment differences
257
- const tolerance = 15;
258
- const firstRowItems = itemRects.filter(i => i.rect.top - containerRect.top <= minTop + tolerance);
259
- const overflowItems = itemRects.filter(i => i.rect.top - containerRect.top > minTop + tolerance);
260
- // Calculate the height of the first row
261
- const firstRowBottom = firstRowItems.length > 0
262
- ? Math.max(...firstRowItems.map(i => i.rect.bottom - containerRect.top))
263
- : 0;
264
- if (this.overflow === 'hamburger') {
265
- // In hamburger mode, if ANY item overflows, all go into the menu
266
- const shouldHamburger = overflowItems.length > 0;
267
- if (shouldHamburger !== this.hamburgerActive) {
268
- this.hamburgerActive = shouldHamburger;
269
- this.emitOverflowChange();
270
- }
271
- // Set height to show only first row (or hide all if hamburger is active)
272
- if (shouldHamburger && firstRowBottom > 0) {
273
- this.containerHeight = firstRowBottom;
274
- }
275
- else {
276
- this.containerHeight = null;
277
- }
278
- }
279
- else {
280
- // 'more' mode
281
- let newOverflowingIds = new Set(overflowItems.map(i => i.id));
282
- // Check if we need to make room for the "more" button
283
- if (newOverflowingIds.size > 0 && this.moreButtonEl) {
284
- const moreRect = this.moreButtonEl.getBoundingClientRect();
285
- const moreTop = moreRect.top - containerRect.top;
286
- // If "more" button is not on the first row, we need to hide one more item
287
- if (moreTop > minTop + tolerance) {
288
- // Find the last visible item and move it to overflow
289
- const lastVisible = firstRowItems[firstRowItems.length - 1];
290
- if (lastVisible) {
291
- newOverflowingIds.add(lastVisible.id);
292
- }
293
- }
294
- }
295
- // Check if we should fallback to hamburger mode
296
- // This happens when minVisibleItems is set and fewer items would be visible
297
- const visibleCount = items.length - newOverflowingIds.size;
298
- const shouldFallbackToHamburger = this.minVisibleItems > 0 &&
299
- newOverflowingIds.size > 0 &&
300
- visibleCount < this.minVisibleItems;
301
- if (shouldFallbackToHamburger) {
302
- // Switch to hamburger mode - all items go into the menu
303
- if (!this.hamburgerActive) {
304
- this.hamburgerActive = true;
305
- this.overflowingIds = new Set();
306
- this.emitOverflowChange();
307
- }
308
- // Set height to show only first row
309
- if (firstRowBottom > 0) {
310
- this.containerHeight = firstRowBottom;
311
- }
312
- else {
313
- this.containerHeight = null;
314
- }
315
- return;
316
- }
317
- // Not falling back to hamburger - ensure hamburgerActive is false
318
- if (this.hamburgerActive) {
319
- this.hamburgerActive = false;
320
- }
321
- // Check if overflow state changed
322
- const hasChanged = (newOverflowingIds?.size ?? 0) !== (this.overflowingIds?.size ?? 0) ||
323
- ![...newOverflowingIds].every(id => this.overflowingIds?.has(id));
324
- if (hasChanged) {
325
- this.overflowingIds = newOverflowingIds;
326
- this.emitOverflowChange();
327
- }
328
- // Set container height to show only first row
329
- if ((newOverflowingIds?.size ?? 0) > 0 && firstRowBottom > 0) {
330
- this.containerHeight = firstRowBottom;
331
- }
332
- else {
333
- this.containerHeight = null;
334
- }
335
- }
336
- }
337
- emitOverflowChange() {
338
- this.leBarOverflowChange.emit({
339
- overflowingIds: [...(this.overflowingIds ?? [])],
340
- hamburgerActive: this.hamburgerActive,
341
- });
342
- }
343
- updateScrollState() {
344
- if (this.overflow !== 'scroll' || !this.itemsContainerEl) {
345
- this.canScrollStart = false;
346
- this.canScrollEnd = false;
347
- return;
348
- }
349
- const el = this.itemsContainerEl;
350
- this.canScrollStart = el.scrollLeft > 0;
351
- this.canScrollEnd = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;
352
- }
353
- renderMoreButton() {
354
- const hasSlottedMore = this.el.querySelector('[slot="more"]');
355
- 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" })));
356
- }
357
- renderHamburgerButton() {
358
- const hasSlottedHamburger = this.el.querySelector('[slot="hamburger"]');
359
- 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" })));
360
- }
361
- renderScrollArrows() {
362
- if (!this.arrows || this.overflow !== 'scroll')
363
- return null;
364
- const hasSlottedStartArrow = this.el.querySelector('[slot="start-arrow"]');
365
- const hasSlottedEndArrow = this.el.querySelector('[slot="end-arrow"]');
366
- return [
367
- h("button", { class: classnames('bar-arrow', 'bar-arrow-start', {
368
- disabled: !this.canScrollStart,
369
- }), 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" }))),
370
- h("button", { class: classnames('bar-arrow', 'bar-arrow-end', {
371
- disabled: !this.canScrollEnd,
372
- }), 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" }))),
373
- ];
374
- }
375
- renderAllMenuButton() {
376
- if (!this.showAllMenu)
377
- return null;
378
- const hasSlottedAllMenu = this.el.querySelector('[slot="all-menu"]');
379
- 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" })));
380
- }
381
- renderPopoverContent(itemsToShow) {
382
- 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 })))));
383
- }
384
- renderOverflowPopover() {
385
- if (this.overflow !== 'more' && this.overflow !== 'hamburger')
386
- return null;
387
- const items = this.getSlottedItems();
388
- let itemsToShow = [];
389
- if (this.overflow === 'hamburger' && this.hamburgerActive) {
390
- // Show all items in hamburger mode
391
- itemsToShow = items.map((item, index) => ({
392
- id: this.getItemId(item, index),
393
- item,
394
- }));
395
- }
396
- else if (this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) {
397
- // Show only overflowing items
398
- itemsToShow = items
399
- .map((item, index) => ({
400
- id: this.getItemId(item, index),
401
- item,
402
- }))
403
- .filter(({ id }) => this.overflowingIds?.has(id));
404
- }
405
- if (itemsToShow.length === 0)
406
- return null;
407
- 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)));
408
- }
409
- renderAllMenuPopover() {
410
- if (!this.showAllMenu)
411
- return null;
412
- const items = this.getSlottedItems();
413
- const itemsToShow = items.map((item, index) => ({
414
- id: this.getItemId(item, index),
415
- item,
416
- }));
417
- const position = this.showAllMenu === 'start' ? 'start' : 'end';
418
- 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)));
419
- }
420
- render() {
421
- const showOverflowButton = !this.disablePopover &&
422
- ((this.overflow === 'more' && (this.overflowingIds?.size ?? 0) > 0) ||
423
- (this.overflow === 'hamburger' && this.hamburgerActive));
424
- const containerStyle = {};
425
- if (this.containerHeight !== null &&
426
- (this.overflow === 'more' || this.overflow === 'hamburger')) {
427
- containerStyle.height = `${this.containerHeight}px`;
428
- }
429
- const showAllMenuAtStart = this.showAllMenu === 'start';
430
- const showAllMenuAtEnd = this.showAllMenu === true || this.showAllMenu === 'end';
431
- return (h(Host, { key: '56d04e4504ed7ce1d8e78a825c71c71c074d0b62', class: classnames({
432
- 'overflow-more': this.overflow === 'more',
433
- 'overflow-scroll': this.overflow === 'scroll',
434
- 'overflow-hamburger': this.overflow === 'hamburger',
435
- 'overflow-wrap': this.overflow === 'wrap',
436
- 'hamburger-active': this.hamburgerActive,
437
- 'has-overflow': (this.overflowingIds?.size ?? 0) > 0 || this.hamburgerActive,
438
- }) }, h("div", { key: '4e7aeb4c84a9964e19012c3d05827fa8406988b0', class: classnames('bar-container', {
439
- [`align-${this.alignItems}`]: true,
440
- }), 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', {
441
- 'is-scrollable': this.overflow === 'scroll',
442
- 'is-wrapping': this.overflow === 'wrap',
443
- }), style: containerStyle, ref: el => {
444
- this.itemsContainerEl = el;
445
- this.observeContainer(el);
446
- }, 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])))));
447
- }
448
- get el() { return this; }
449
- static get watchers() { return {
450
- "overflow": ["handleOverflowChange"]
451
- }; }
452
- static get style() { return leBarCss(); }
453
- }, [257, "le-bar", {
454
- "overflow": [513],
455
- "alignItems": [513, "align-items"],
456
- "arrows": [4],
457
- "disablePopover": [4, "disable-popover"],
458
- "minVisibleItems": [2, "min-visible-items"],
459
- "showAllMenu": [8, "show-all-menu"],
460
- "popoverOpen": [32],
461
- "hamburgerActive": [32],
462
- "overflowingIds": [32],
463
- "canScrollStart": [32],
464
- "canScrollEnd": [32],
465
- "allMenuOpen": [32],
466
- "containerHeight": [32],
467
- "recalculate": [64]
468
- }, [[0, "slotchange", "handleSlotChange"]], {
469
- "overflow": ["handleOverflowChange"]
470
- }]);
471
- function defineCustomElement() {
472
- if (typeof customElements === "undefined") {
473
- return;
474
- }
475
- const components = ["le-bar", "le-icon", "le-popover"];
476
- components.forEach(tagName => { switch (tagName) {
477
- case "le-bar":
478
- if (!customElements.get(transformTag(tagName))) {
479
- customElements.define(transformTag(tagName), LeBar);
480
- }
481
- break;
482
- case "le-icon":
483
- if (!customElements.get(transformTag(tagName))) {
484
- defineCustomElement$2();
485
- }
486
- break;
487
- case "le-popover":
488
- if (!customElements.get(transformTag(tagName))) {
489
- defineCustomElement$1();
490
- }
491
- break;
492
- } });
493
- }
494
-
495
- export { LeBar as L, defineCustomElement as d };
496
- //# sourceMappingURL=le-bar2.js.map
497
-
498
- //# 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;