le-kit 0.1.14 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/dist/{core/cjs/index-B0mg71He.js → cjs/index-CHzu3ydp.js} +10 -3
  2. package/dist/cjs/index-CHzu3ydp.js.map +1 -0
  3. package/dist/{core/cjs → cjs}/index.cjs.js +4 -3
  4. package/dist/cjs/index.cjs.js.map +1 -0
  5. package/dist/{core/cjs → cjs}/le-box.cjs.entry.js +3 -3
  6. package/dist/cjs/le-box.entry.cjs.js.map +1 -0
  7. package/dist/cjs/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.cjs.js.map +1 -0
  8. package/dist/cjs/le-button_13.cjs.entry.js +2579 -0
  9. package/dist/cjs/le-card.cjs.entry.js +29 -0
  10. package/dist/cjs/le-card.entry.cjs.js.map +1 -0
  11. package/dist/cjs/le-combobox.cjs.entry.js +237 -0
  12. package/dist/cjs/le-combobox.entry.cjs.js.map +1 -0
  13. package/dist/cjs/le-header-placeholder.cjs.entry.js +18 -0
  14. package/dist/cjs/le-header-placeholder.entry.cjs.js.map +1 -0
  15. package/dist/cjs/le-kit.cjs.js +25 -0
  16. package/dist/cjs/le-multiselect.cjs.entry.js +306 -0
  17. package/dist/cjs/le-multiselect.entry.cjs.js.map +1 -0
  18. package/dist/{core/cjs → cjs}/le-number-input.cjs.entry.js +3 -3
  19. package/dist/cjs/le-number-input.entry.cjs.js.map +1 -0
  20. package/dist/{core/cjs → cjs}/le-round-progress.cjs.entry.js +2 -2
  21. package/dist/cjs/le-round-progress.entry.cjs.js.map +1 -0
  22. package/dist/cjs/le-segmented-control.cjs.entry.js +245 -0
  23. package/dist/cjs/le-segmented-control.entry.cjs.js.map +1 -0
  24. package/dist/{core/cjs → cjs}/le-stack.cjs.entry.js +4 -4
  25. package/dist/cjs/le-stack.entry.cjs.js.map +1 -0
  26. package/dist/cjs/le-tab-bar.cjs.entry.js +242 -0
  27. package/dist/cjs/le-tab-bar.entry.cjs.js.map +1 -0
  28. package/dist/cjs/le-tab-panel.cjs.entry.js +100 -0
  29. package/dist/cjs/le-tab-panel.entry.cjs.js.map +1 -0
  30. package/dist/cjs/le-tab.cjs.entry.js +133 -0
  31. package/dist/cjs/le-tab.entry.cjs.js.map +1 -0
  32. package/dist/cjs/le-tabs.cjs.entry.js +307 -0
  33. package/dist/cjs/le-tabs.entry.cjs.js.map +1 -0
  34. package/dist/cjs/le-tag.cjs.entry.js +68 -0
  35. package/dist/cjs/le-tag.entry.cjs.js.map +1 -0
  36. package/dist/{core/cjs → cjs}/le-text.cjs.entry.js +3 -3
  37. package/dist/cjs/le-text.entry.cjs.js.map +1 -0
  38. package/dist/{core/cjs → cjs}/le-turntable.cjs.entry.js +2 -2
  39. package/dist/cjs/le-turntable.entry.cjs.js.map +1 -0
  40. package/dist/cjs/loader.cjs.js +13 -0
  41. package/dist/{core/cjs/utils-jdqP71LP.js → cjs/utils-CYOKcOW8.js} +3 -3
  42. package/dist/cjs/utils-CYOKcOW8.js.map +1 -0
  43. package/dist/collection/collection-manifest.json +41 -0
  44. package/dist/{core/collection → collection}/components/le-box/le-box.js +1 -1
  45. package/dist/collection/components/le-box/le-box.js.map +1 -0
  46. package/dist/{core/collection/components/le-button/le-button.default.css → collection/components/le-button/le-button.css} +65 -38
  47. package/dist/{core/collection → collection}/components/le-button/le-button.js +106 -16
  48. package/dist/collection/components/le-button/le-button.js.map +1 -0
  49. package/dist/{core/collection → collection}/components/le-card/le-card.default.css +6 -6
  50. package/dist/{core/collection → collection}/components/le-card/le-card.js +2 -2
  51. package/dist/collection/components/le-card/le-card.js.map +1 -0
  52. package/dist/{core/collection → collection}/components/le-checkbox/le-checkbox.js +2 -2
  53. package/dist/collection/components/le-checkbox/le-checkbox.js.map +1 -0
  54. package/dist/collection/components/le-collapse/le-collapse.css +31 -0
  55. package/dist/collection/components/le-collapse/le-collapse.js +188 -0
  56. package/dist/collection/components/le-collapse/le-collapse.js.map +1 -0
  57. package/dist/collection/components/le-combobox/le-combobox.css +144 -0
  58. package/dist/collection/components/le-combobox/le-combobox.js +659 -0
  59. package/dist/collection/components/le-combobox/le-combobox.js.map +1 -0
  60. package/dist/collection/components/le-component/le-component.css +189 -0
  61. package/dist/{le-kit/le-component.entry.js → collection/components/le-component/le-component.js} +137 -17
  62. package/dist/collection/components/le-component/le-component.js.map +1 -0
  63. package/dist/collection/components/le-current-heading/le-current-heading.css +12 -0
  64. package/dist/collection/components/le-current-heading/le-current-heading.js +130 -0
  65. package/dist/collection/components/le-current-heading/le-current-heading.js.map +1 -0
  66. package/dist/collection/components/le-dropdown-base/le-dropdown-base.css +167 -0
  67. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +761 -0
  68. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js.map +1 -0
  69. package/dist/collection/components/le-header/le-header.css +120 -0
  70. package/dist/collection/components/le-header/le-header.js +508 -0
  71. package/dist/collection/components/le-header/le-header.js.map +1 -0
  72. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +21 -0
  73. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js.map +1 -0
  74. package/dist/collection/components/le-multiselect/le-multiselect.css +163 -0
  75. package/dist/collection/components/le-multiselect/le-multiselect.js +734 -0
  76. package/dist/collection/components/le-multiselect/le-multiselect.js.map +1 -0
  77. package/dist/{core/collection → collection}/components/le-number-input/le-number-input.js +2 -2
  78. package/dist/collection/components/le-number-input/le-number-input.js.map +1 -0
  79. package/dist/{core/collection → collection}/components/le-popover/le-popover.css +20 -0
  80. package/dist/{core/collection → collection}/components/le-popover/le-popover.js +180 -20
  81. package/dist/collection/components/le-popover/le-popover.js.map +1 -0
  82. package/dist/{core/collection → collection}/components/le-popup/le-popup.api.js +2 -1
  83. package/dist/collection/components/le-popup/le-popup.api.js.map +1 -0
  84. package/dist/{core/collection → collection}/components/le-popup/le-popup.js +49 -19
  85. package/dist/collection/components/le-popup/le-popup.js.map +1 -0
  86. package/dist/{core/collection → collection}/components/le-round-progress/le-round-progress.js +1 -1
  87. package/dist/collection/components/le-round-progress/le-round-progress.js.map +1 -0
  88. package/dist/collection/components/le-scroll-progress/le-scroll-progress.css +29 -0
  89. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +186 -0
  90. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js.map +1 -0
  91. package/dist/collection/components/le-segmented-control/le-segmented-control.css +78 -0
  92. package/dist/collection/components/le-segmented-control/le-segmented-control.js +445 -0
  93. package/dist/collection/components/le-segmented-control/le-segmented-control.js.map +1 -0
  94. package/dist/collection/components/le-select/le-select.css +121 -0
  95. package/dist/collection/components/le-select/le-select.js +578 -0
  96. package/dist/collection/components/le-select/le-select.js.map +1 -0
  97. package/dist/collection/components/le-slot/le-slot.default.css +222 -0
  98. package/dist/{le-kit/le-slot.entry.js → collection/components/le-slot/le-slot.js} +268 -17
  99. package/dist/collection/components/le-slot/le-slot.js.map +1 -0
  100. package/dist/{core/collection → collection}/components/le-stack/le-stack.js +2 -2
  101. package/dist/collection/components/le-stack/le-stack.js.map +1 -0
  102. package/dist/{core/collection → collection}/components/le-string-input/le-string-input.css +1 -1
  103. package/dist/{core/collection → collection}/components/le-string-input/le-string-input.js +60 -6
  104. package/dist/collection/components/le-string-input/le-string-input.js.map +1 -0
  105. package/dist/collection/components/le-tab/le-tab.css +289 -0
  106. package/dist/collection/components/le-tab/le-tab.js +565 -0
  107. package/dist/collection/components/le-tab/le-tab.js.map +1 -0
  108. package/dist/collection/components/le-tab-bar/le-tab-bar.css +89 -0
  109. package/dist/collection/components/le-tab-bar/le-tab-bar.js +467 -0
  110. package/dist/collection/components/le-tab-bar/le-tab-bar.js.map +1 -0
  111. package/dist/collection/components/le-tab-panel/le-tab-panel.css +30 -0
  112. package/dist/collection/components/le-tab-panel/le-tab-panel.js +302 -0
  113. package/dist/collection/components/le-tab-panel/le-tab-panel.js.map +1 -0
  114. package/dist/collection/components/le-tabs/le-tabs.css +146 -0
  115. package/dist/collection/components/le-tabs/le-tabs.js +588 -0
  116. package/dist/collection/components/le-tabs/le-tabs.js.map +1 -0
  117. package/dist/collection/components/le-tag/le-tag.css +139 -0
  118. package/dist/collection/components/le-tag/le-tag.js +266 -0
  119. package/dist/collection/components/le-tag/le-tag.js.map +1 -0
  120. package/dist/{core/collection → collection}/components/le-text/le-text.js +1 -1
  121. package/dist/collection/components/le-text/le-text.js.map +1 -0
  122. package/dist/{core/collection → collection}/components/le-turntable/le-turntable.js +1 -1
  123. package/dist/collection/components/le-turntable/le-turntable.js.map +1 -0
  124. package/dist/collection/dist/components/assets/.gitkeep +1 -0
  125. package/dist/collection/dist/components/assets/custom-elements.json +9234 -0
  126. package/dist/collection/dist/components/themes/base.css +89 -0
  127. package/dist/collection/dist/components/themes/dark.css +103 -0
  128. package/dist/collection/dist/components/themes/default.css +111 -0
  129. package/dist/collection/dist/components/themes/gradient.css +103 -0
  130. package/dist/collection/dist/components/themes/index.css +76 -0
  131. package/dist/collection/dist/components/themes/minimal.css +103 -0
  132. package/dist/collection/dist/components/themes/warm.css +103 -0
  133. package/dist/collection/global/app.js.map +1 -0
  134. package/dist/collection/index.js.map +1 -0
  135. package/dist/collection/types/blocks.js.map +1 -0
  136. package/dist/collection/types/options.js.map +1 -0
  137. package/dist/collection/utils/utils.js.map +1 -0
  138. package/dist/components/assets/.gitkeep +1 -0
  139. package/dist/components/assets/custom-elements.json +9234 -0
  140. package/dist/components/index.js +11 -0
  141. package/dist/components/index.js.map +1 -0
  142. package/dist/{core/components → components}/le-box.js +22 -6
  143. package/dist/components/le-box.js.map +1 -0
  144. package/dist/{core/components → components}/le-button.js +1 -1
  145. package/dist/{core/components → components}/le-button2.js +671 -35
  146. package/dist/components/le-button2.js.map +1 -0
  147. package/dist/{core/components → components}/le-card.js +22 -6
  148. package/dist/components/le-card.js.map +1 -0
  149. package/dist/{core/components → components}/le-checkbox.js +1 -1
  150. package/dist/components/le-collapse.d.ts +11 -0
  151. package/dist/components/le-collapse.js +144 -0
  152. package/dist/components/le-collapse.js.map +1 -0
  153. package/dist/components/le-combobox.d.ts +11 -0
  154. package/dist/components/le-combobox.js +326 -0
  155. package/dist/components/le-combobox.js.map +1 -0
  156. package/dist/{core/components → components}/le-component.js +1 -1
  157. package/dist/components/le-current-heading.d.ts +11 -0
  158. package/dist/components/le-current-heading.js +93 -0
  159. package/dist/components/le-current-heading.js.map +1 -0
  160. package/dist/components/le-dropdown-base.d.ts +11 -0
  161. package/dist/components/le-dropdown-base.js +9 -0
  162. package/dist/components/le-dropdown-base.js.map +1 -0
  163. package/dist/components/le-dropdown-base2.js +393 -0
  164. package/dist/components/le-dropdown-base2.js.map +1 -0
  165. package/dist/components/le-header-placeholder.d.ts +11 -0
  166. package/dist/components/le-header-placeholder.js +37 -0
  167. package/dist/components/le-header-placeholder.js.map +1 -0
  168. package/dist/components/le-header.d.ts +11 -0
  169. package/dist/components/le-header.js +347 -0
  170. package/dist/components/le-header.js.map +1 -0
  171. package/dist/components/le-multiselect.d.ts +11 -0
  172. package/dist/components/le-multiselect.js +405 -0
  173. package/dist/components/le-multiselect.js.map +1 -0
  174. package/dist/{core/components → components}/le-number-input.js +23 -7
  175. package/dist/components/le-number-input.js.map +1 -0
  176. package/dist/{core/components → components}/le-popover2.js +143 -21
  177. package/dist/components/le-popover2.js.map +1 -0
  178. package/dist/{core/components/index.js → components/le-popup.api.js} +5 -12
  179. package/dist/components/le-popup.api.js.map +1 -0
  180. package/dist/components/le-popup.js +9 -0
  181. package/dist/components/le-popup.js.map +1 -0
  182. package/dist/{core/components → components}/le-round-progress.js +1 -1
  183. package/dist/components/le-scroll-progress.d.ts +11 -0
  184. package/dist/components/le-scroll-progress.js +142 -0
  185. package/dist/components/le-scroll-progress.js.map +1 -0
  186. package/dist/components/le-segmented-control.d.ts +11 -0
  187. package/dist/components/le-segmented-control.js +331 -0
  188. package/dist/components/le-segmented-control.js.map +1 -0
  189. package/dist/components/le-select.d.ts +11 -0
  190. package/dist/components/le-select.js +9 -0
  191. package/dist/components/le-select.js.map +1 -0
  192. package/dist/{core/components → components}/le-slot.js +1 -1
  193. package/dist/{core/components → components}/le-stack.js +23 -7
  194. package/dist/components/le-stack.js.map +1 -0
  195. package/dist/{core/components → components}/le-string-input.js +1 -1
  196. package/dist/components/le-tab-bar.d.ts +11 -0
  197. package/dist/components/le-tab-bar.js +330 -0
  198. package/dist/components/le-tab-bar.js.map +1 -0
  199. package/dist/components/le-tab-panel.d.ts +11 -0
  200. package/dist/components/le-tab-panel.js +182 -0
  201. package/dist/components/le-tab-panel.js.map +1 -0
  202. package/dist/components/le-tab.d.ts +11 -0
  203. package/dist/components/le-tab.js +9 -0
  204. package/dist/components/le-tab.js.map +1 -0
  205. package/dist/components/le-tab2.js +217 -0
  206. package/dist/components/le-tab2.js.map +1 -0
  207. package/dist/components/le-tabs.d.ts +11 -0
  208. package/dist/components/le-tabs.js +397 -0
  209. package/dist/components/le-tabs.js.map +1 -0
  210. package/dist/components/le-tag.d.ts +11 -0
  211. package/dist/components/le-tag.js +9 -0
  212. package/dist/components/le-tag.js.map +1 -0
  213. package/dist/components/le-tag2.js +141 -0
  214. package/dist/components/le-tag2.js.map +1 -0
  215. package/dist/{core/components → components}/le-text.js +22 -6
  216. package/dist/components/le-text.js.map +1 -0
  217. package/dist/{core/components → components}/le-turntable.js +1 -1
  218. package/dist/components/themes/base.css +4 -4
  219. package/dist/components/themes/dark.css +4 -1
  220. package/dist/components/themes/default.css +4 -1
  221. package/dist/components/themes/gradient.css +4 -1
  222. package/dist/components/themes/index.css +4 -341
  223. package/dist/components/themes/minimal.css +4 -1
  224. package/dist/components/themes/warm.css +4 -1
  225. package/dist/docs.d.ts +443 -0
  226. package/dist/docs.json +11547 -0
  227. package/dist/{core/esm/index-SKsXnjWI.js → esm/index-hmBwv43R.js} +10 -4
  228. package/dist/esm/index-hmBwv43R.js.map +1 -0
  229. package/dist/{core/esm → esm}/index.js +4 -3
  230. package/dist/esm/index.js.map +1 -0
  231. package/dist/{le-kit → esm}/le-box.entry.js +3 -3
  232. package/dist/esm/le-box.entry.js.map +1 -0
  233. package/dist/esm/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.js.map +1 -0
  234. package/dist/esm/le-button_13.entry.js +2565 -0
  235. package/dist/{le-kit → esm}/le-card.entry.js +3 -3
  236. package/dist/esm/le-card.entry.js.map +1 -0
  237. package/dist/esm/le-combobox.entry.js +235 -0
  238. package/dist/esm/le-combobox.entry.js.map +1 -0
  239. package/dist/esm/le-header-placeholder.entry.js +16 -0
  240. package/dist/esm/le-header-placeholder.entry.js.map +1 -0
  241. package/dist/esm/le-kit.js +21 -0
  242. package/dist/esm/le-multiselect.entry.js +304 -0
  243. package/dist/esm/le-multiselect.entry.js.map +1 -0
  244. package/dist/{le-kit → esm}/le-number-input.entry.js +6 -6
  245. package/dist/esm/le-number-input.entry.js.map +1 -0
  246. package/dist/{core/esm → esm}/le-round-progress.entry.js +2 -2
  247. package/dist/esm/le-round-progress.entry.js.map +1 -0
  248. package/dist/esm/le-segmented-control.entry.js +243 -0
  249. package/dist/esm/le-segmented-control.entry.js.map +1 -0
  250. package/dist/{le-kit → esm}/le-stack.entry.js +4 -4
  251. package/dist/esm/le-stack.entry.js.map +1 -0
  252. package/dist/esm/le-tab-bar.entry.js +240 -0
  253. package/dist/esm/le-tab-bar.entry.js.map +1 -0
  254. package/dist/esm/le-tab-panel.entry.js +98 -0
  255. package/dist/esm/le-tab-panel.entry.js.map +1 -0
  256. package/dist/esm/le-tab.entry.js +131 -0
  257. package/dist/esm/le-tab.entry.js.map +1 -0
  258. package/dist/esm/le-tabs.entry.js +305 -0
  259. package/dist/esm/le-tabs.entry.js.map +1 -0
  260. package/dist/esm/le-tag.entry.js +66 -0
  261. package/dist/esm/le-tag.entry.js.map +1 -0
  262. package/dist/{le-kit → esm}/le-text.entry.js +3 -3
  263. package/dist/esm/le-text.entry.js.map +1 -0
  264. package/dist/{core/esm → esm}/le-turntable.entry.js +2 -2
  265. package/dist/esm/le-turntable.entry.js.map +1 -0
  266. package/dist/esm/loader.js +11 -0
  267. package/dist/{le-kit/utils-cwSNy7ZS.js → esm/utils-DRTFlnxz.js} +3 -3
  268. package/dist/{le-kit/utils-cwSNy7ZS.js.map → esm/utils-DRTFlnxz.js.map} +1 -1
  269. package/dist/le-kit/dist/components/assets/.gitkeep +1 -0
  270. package/dist/le-kit/dist/components/assets/custom-elements.json +9234 -0
  271. package/dist/le-kit/dist/components/themes/base.css +4 -4
  272. package/dist/le-kit/dist/components/themes/dark.css +4 -1
  273. package/dist/le-kit/dist/components/themes/default.css +4 -1
  274. package/dist/le-kit/dist/components/themes/gradient.css +4 -1
  275. package/dist/le-kit/dist/components/themes/index.css +4 -341
  276. package/dist/le-kit/dist/components/themes/minimal.css +4 -1
  277. package/dist/le-kit/dist/components/themes/warm.css +4 -1
  278. package/dist/le-kit/index.esm.js +2 -116
  279. package/dist/le-kit/index.esm.js.map +1 -1
  280. package/dist/le-kit/le-button.le-checkbox.le-collapse.le-component.le-current-heading.le-dropdown-base.le-header.le-popover.le-popup.le-scroll-progress.le-select.le-slot.le-string-input.entry.esm.js.map +1 -0
  281. package/dist/le-kit/le-combobox.entry.esm.js.map +1 -0
  282. package/dist/le-kit/le-header-placeholder.entry.esm.js.map +1 -0
  283. package/dist/le-kit/le-kit.css +1 -1010
  284. package/dist/le-kit/le-kit.esm.js +2 -48
  285. package/dist/le-kit/le-kit.esm.js.map +1 -1
  286. package/dist/le-kit/le-multiselect.entry.esm.js.map +1 -0
  287. package/dist/le-kit/le-segmented-control.entry.esm.js.map +1 -0
  288. package/dist/le-kit/le-tab-bar.entry.esm.js.map +1 -0
  289. package/dist/le-kit/le-tab-panel.entry.esm.js.map +1 -0
  290. package/dist/le-kit/le-tab.entry.esm.js.map +1 -0
  291. package/dist/le-kit/le-tabs.entry.esm.js.map +1 -0
  292. package/dist/le-kit/le-tag.entry.esm.js.map +1 -0
  293. package/dist/le-kit/p-13a4dc1d.entry.js +2 -0
  294. package/dist/le-kit/p-13a4dc1d.entry.js.map +1 -0
  295. package/dist/{core/le-kit/p-55f70091.entry.js → le-kit/p-1a9e65d0.entry.js} +2 -2
  296. package/dist/le-kit/p-1a9e65d0.entry.js.map +1 -0
  297. package/dist/le-kit/p-2708dc65.entry.js +2 -0
  298. package/dist/le-kit/p-2708dc65.entry.js.map +1 -0
  299. package/dist/le-kit/p-2b96a5bd.entry.js +2 -0
  300. package/dist/le-kit/p-2b96a5bd.entry.js.map +1 -0
  301. package/dist/le-kit/p-32cbb683.entry.js +2 -0
  302. package/dist/le-kit/p-32cbb683.entry.js.map +1 -0
  303. package/dist/le-kit/p-476e1886.entry.js +2 -0
  304. package/dist/le-kit/p-476e1886.entry.js.map +1 -0
  305. package/dist/le-kit/p-67d702f9.entry.js +2 -0
  306. package/dist/le-kit/p-67d702f9.entry.js.map +1 -0
  307. package/dist/{core/le-kit/p-6e414a5c.entry.js → le-kit/p-6884e3e8.entry.js} +2 -2
  308. package/dist/le-kit/p-6884e3e8.entry.js.map +1 -0
  309. package/dist/le-kit/p-704ad5e0.entry.js +2 -0
  310. package/dist/le-kit/p-704ad5e0.entry.js.map +1 -0
  311. package/dist/le-kit/p-88f9aa40.entry.js +2 -0
  312. package/dist/le-kit/p-88f9aa40.entry.js.map +1 -0
  313. package/dist/le-kit/p-8dd8a487.entry.js +2 -0
  314. package/dist/le-kit/p-8dd8a487.entry.js.map +1 -0
  315. package/dist/le-kit/p-97b7658a.entry.js +2 -0
  316. package/dist/le-kit/p-97b7658a.entry.js.map +1 -0
  317. package/dist/le-kit/p-c0925e92.entry.js +2 -0
  318. package/dist/le-kit/p-c0925e92.entry.js.map +1 -0
  319. package/dist/le-kit/p-c2494a0d.entry.js +2 -0
  320. package/dist/le-kit/p-c2494a0d.entry.js.map +1 -0
  321. package/dist/le-kit/p-ded51018.entry.js +2 -0
  322. package/dist/le-kit/p-ded51018.entry.js.map +1 -0
  323. package/dist/{core/le-kit/p-a9d05ef6.entry.js → le-kit/p-e3db7974.entry.js} +2 -2
  324. package/dist/le-kit/p-e3db7974.entry.js.map +1 -0
  325. package/dist/{core/le-kit/p-4f133e72.entry.js → le-kit/p-f9b03aec.entry.js} +2 -2
  326. package/dist/le-kit/p-f9b03aec.entry.js.map +1 -0
  327. package/dist/le-kit/p-hmBwv43R.js +3 -0
  328. package/dist/le-kit/p-hmBwv43R.js.map +1 -0
  329. package/dist/le-kit/p-txKmCJHv.js +2 -0
  330. package/dist/le-kit/p-txKmCJHv.js.map +1 -0
  331. package/dist/themes/base.css +89 -0
  332. package/dist/themes/dark.css +103 -0
  333. package/dist/themes/default.css +111 -0
  334. package/dist/themes/gradient.css +103 -0
  335. package/dist/themes/index.css +76 -0
  336. package/dist/themes/minimal.css +103 -0
  337. package/dist/themes/warm.css +103 -0
  338. package/dist/types/components/le-button/le-button.d.ts +19 -4
  339. package/dist/types/components/le-collapse/le-collapse.d.ts +41 -0
  340. package/dist/types/components/le-combobox/le-combobox.d.ts +128 -0
  341. package/dist/types/components/le-current-heading/le-current-heading.d.ts +25 -0
  342. package/dist/types/components/le-dropdown-base/le-dropdown-base.d.ts +118 -0
  343. package/dist/types/components/le-header/le-header.d.ts +115 -0
  344. package/dist/types/components/le-header-placeholder/le-header-placeholder.d.ts +13 -0
  345. package/dist/types/components/le-multiselect/le-multiselect.d.ts +143 -0
  346. package/dist/types/components/le-popover/le-popover.d.ts +22 -2
  347. package/dist/types/components/le-popup/le-popup.d.ts +5 -0
  348. package/dist/types/components/le-scroll-progress/le-scroll-progress.d.ts +40 -0
  349. package/dist/types/components/le-segmented-control/le-segmented-control.d.ts +82 -0
  350. package/dist/types/components/le-select/le-select.d.ts +125 -0
  351. package/dist/types/components/le-string-input/le-string-input.d.ts +8 -0
  352. package/dist/types/components/le-tab/le-tab.d.ts +116 -0
  353. package/dist/types/components/le-tab-bar/le-tab-bar.d.ts +88 -0
  354. package/dist/types/components/le-tab-panel/le-tab-panel.d.ts +75 -0
  355. package/dist/types/components/le-tabs/le-tabs.d.ts +108 -0
  356. package/dist/types/components/le-tag/le-tag.d.ts +78 -0
  357. package/dist/types/components.d.ts +3061 -273
  358. package/dist/types/types/options.d.ts +9 -0
  359. package/package.json +3 -18
  360. package/dist/core/cjs/index-B0mg71He.js.map +0 -1
  361. package/dist/core/cjs/index.cjs.js.map +0 -1
  362. package/dist/core/cjs/le-box.entry.cjs.js.map +0 -1
  363. package/dist/core/cjs/le-button.cjs.entry.js +0 -92
  364. package/dist/core/cjs/le-button.entry.cjs.js.map +0 -1
  365. package/dist/core/cjs/le-card.cjs.entry.js +0 -29
  366. package/dist/core/cjs/le-card.entry.cjs.js.map +0 -1
  367. package/dist/core/cjs/le-checkbox.cjs.entry.js +0 -61
  368. package/dist/core/cjs/le-checkbox.entry.cjs.js.map +0 -1
  369. package/dist/core/cjs/le-kit.cjs.js +0 -25
  370. package/dist/core/cjs/le-number-input.entry.cjs.js.map +0 -1
  371. package/dist/core/cjs/le-popover.cjs.entry.js +0 -348
  372. package/dist/core/cjs/le-popover.entry.cjs.js.map +0 -1
  373. package/dist/core/cjs/le-popup.cjs.entry.js +0 -212
  374. package/dist/core/cjs/le-popup.entry.cjs.js.map +0 -1
  375. package/dist/core/cjs/le-round-progress.entry.cjs.js.map +0 -1
  376. package/dist/core/cjs/le-stack.entry.cjs.js.map +0 -1
  377. package/dist/core/cjs/le-string-input.cjs.entry.js +0 -95
  378. package/dist/core/cjs/le-string-input.entry.cjs.js.map +0 -1
  379. package/dist/core/cjs/le-text.entry.cjs.js.map +0 -1
  380. package/dist/core/cjs/le-turntable.entry.cjs.js.map +0 -1
  381. package/dist/core/cjs/loader.cjs.js +0 -13
  382. package/dist/core/cjs/utils-jdqP71LP.js.map +0 -1
  383. package/dist/core/collection/collection-manifest.json +0 -24
  384. package/dist/core/collection/components/le-box/le-box.js.map +0 -1
  385. package/dist/core/collection/components/le-button/le-button.js.map +0 -1
  386. package/dist/core/collection/components/le-card/le-card.js.map +0 -1
  387. package/dist/core/collection/components/le-checkbox/le-checkbox.js.map +0 -1
  388. package/dist/core/collection/components/le-number-input/le-number-input.js.map +0 -1
  389. package/dist/core/collection/components/le-popover/le-popover.js.map +0 -1
  390. package/dist/core/collection/components/le-popup/le-popup.api.js.map +0 -1
  391. package/dist/core/collection/components/le-popup/le-popup.js.map +0 -1
  392. package/dist/core/collection/components/le-round-progress/le-round-progress.js.map +0 -1
  393. package/dist/core/collection/components/le-stack/le-stack.js.map +0 -1
  394. package/dist/core/collection/components/le-string-input/le-string-input.js.map +0 -1
  395. package/dist/core/collection/components/le-text/le-text.js.map +0 -1
  396. package/dist/core/collection/components/le-turntable/le-turntable.js.map +0 -1
  397. package/dist/core/collection/global/app.js.map +0 -1
  398. package/dist/core/collection/index.js.map +0 -1
  399. package/dist/core/collection/types/blocks.js.map +0 -1
  400. package/dist/core/collection/types/options.js.map +0 -1
  401. package/dist/core/collection/utils/utils.js.map +0 -1
  402. package/dist/core/components/index.d.ts +0 -33
  403. package/dist/core/components/index.js.map +0 -1
  404. package/dist/core/components/le-box.d.ts +0 -11
  405. package/dist/core/components/le-box.js.map +0 -1
  406. package/dist/core/components/le-button.d.ts +0 -11
  407. package/dist/core/components/le-button2.js.map +0 -1
  408. package/dist/core/components/le-card.d.ts +0 -11
  409. package/dist/core/components/le-card.js.map +0 -1
  410. package/dist/core/components/le-checkbox.d.ts +0 -11
  411. package/dist/core/components/le-component.d.ts +0 -11
  412. package/dist/core/components/le-number-input.d.ts +0 -11
  413. package/dist/core/components/le-number-input.js.map +0 -1
  414. package/dist/core/components/le-popover.d.ts +0 -11
  415. package/dist/core/components/le-popover2.js.map +0 -1
  416. package/dist/core/components/le-popup.d.ts +0 -11
  417. package/dist/core/components/le-popup.js +0 -279
  418. package/dist/core/components/le-popup.js.map +0 -1
  419. package/dist/core/components/le-round-progress.d.ts +0 -11
  420. package/dist/core/components/le-slot.d.ts +0 -11
  421. package/dist/core/components/le-stack.d.ts +0 -11
  422. package/dist/core/components/le-stack.js.map +0 -1
  423. package/dist/core/components/le-string-input.d.ts +0 -11
  424. package/dist/core/components/le-text.d.ts +0 -11
  425. package/dist/core/components/le-text.js.map +0 -1
  426. package/dist/core/components/le-turntable.d.ts +0 -11
  427. package/dist/core/esm/index-SKsXnjWI.js.map +0 -1
  428. package/dist/core/esm/index.js.map +0 -1
  429. package/dist/core/esm/le-box.entry.js +0 -182
  430. package/dist/core/esm/le-box.entry.js.map +0 -1
  431. package/dist/core/esm/le-button.entry.js +0 -90
  432. package/dist/core/esm/le-button.entry.js.map +0 -1
  433. package/dist/core/esm/le-card.entry.js +0 -27
  434. package/dist/core/esm/le-card.entry.js.map +0 -1
  435. package/dist/core/esm/le-checkbox.entry.js +0 -59
  436. package/dist/core/esm/le-checkbox.entry.js.map +0 -1
  437. package/dist/core/esm/le-kit.js +0 -21
  438. package/dist/core/esm/le-number-input.entry.js +0 -200
  439. package/dist/core/esm/le-number-input.entry.js.map +0 -1
  440. package/dist/core/esm/le-popover.entry.js +0 -346
  441. package/dist/core/esm/le-popover.entry.js.map +0 -1
  442. package/dist/core/esm/le-popup.entry.js +0 -210
  443. package/dist/core/esm/le-popup.entry.js.map +0 -1
  444. package/dist/core/esm/le-round-progress.entry.js.map +0 -1
  445. package/dist/core/esm/le-stack.entry.js +0 -133
  446. package/dist/core/esm/le-stack.entry.js.map +0 -1
  447. package/dist/core/esm/le-string-input.entry.js +0 -93
  448. package/dist/core/esm/le-string-input.entry.js.map +0 -1
  449. package/dist/core/esm/le-text.entry.js +0 -333
  450. package/dist/core/esm/le-text.entry.js.map +0 -1
  451. package/dist/core/esm/le-turntable.entry.js.map +0 -1
  452. package/dist/core/esm/loader.js +0 -11
  453. package/dist/core/esm/utils-DZdP1JiG.js +0 -146
  454. package/dist/core/esm/utils-DZdP1JiG.js.map +0 -1
  455. package/dist/core/le-kit/index.esm.js +0 -2
  456. package/dist/core/le-kit/index.esm.js.map +0 -1
  457. package/dist/core/le-kit/le-box.entry.esm.js.map +0 -1
  458. package/dist/core/le-kit/le-button.entry.esm.js.map +0 -1
  459. package/dist/core/le-kit/le-card.entry.esm.js.map +0 -1
  460. package/dist/core/le-kit/le-checkbox.entry.esm.js.map +0 -1
  461. package/dist/core/le-kit/le-kit.css +0 -1
  462. package/dist/core/le-kit/le-kit.esm.js +0 -2
  463. package/dist/core/le-kit/le-kit.esm.js.map +0 -1
  464. package/dist/core/le-kit/le-number-input.entry.esm.js.map +0 -1
  465. package/dist/core/le-kit/le-popover.entry.esm.js.map +0 -1
  466. package/dist/core/le-kit/le-popup.entry.esm.js.map +0 -1
  467. package/dist/core/le-kit/le-round-progress.entry.esm.js.map +0 -1
  468. package/dist/core/le-kit/le-stack.entry.esm.js.map +0 -1
  469. package/dist/core/le-kit/le-string-input.entry.esm.js.map +0 -1
  470. package/dist/core/le-kit/le-text.entry.esm.js.map +0 -1
  471. package/dist/core/le-kit/le-turntable.entry.esm.js.map +0 -1
  472. package/dist/core/le-kit/loader.esm.js.map +0 -1
  473. package/dist/core/le-kit/p--VxUdzYV.js +0 -2
  474. package/dist/core/le-kit/p--VxUdzYV.js.map +0 -1
  475. package/dist/core/le-kit/p-189cb775.entry.js +0 -2
  476. package/dist/core/le-kit/p-189cb775.entry.js.map +0 -1
  477. package/dist/core/le-kit/p-35c1d413.entry.js +0 -2
  478. package/dist/core/le-kit/p-35c1d413.entry.js.map +0 -1
  479. package/dist/core/le-kit/p-4f133e72.entry.js.map +0 -1
  480. package/dist/core/le-kit/p-55f70091.entry.js.map +0 -1
  481. package/dist/core/le-kit/p-5fd7b23a.entry.js +0 -2
  482. package/dist/core/le-kit/p-5fd7b23a.entry.js.map +0 -1
  483. package/dist/core/le-kit/p-6e414a5c.entry.js.map +0 -1
  484. package/dist/core/le-kit/p-7b121ca7.entry.js +0 -2
  485. package/dist/core/le-kit/p-7b121ca7.entry.js.map +0 -1
  486. package/dist/core/le-kit/p-8c81fa95.entry.js +0 -2
  487. package/dist/core/le-kit/p-8c81fa95.entry.js.map +0 -1
  488. package/dist/core/le-kit/p-9aa81442.entry.js +0 -2
  489. package/dist/core/le-kit/p-9aa81442.entry.js.map +0 -1
  490. package/dist/core/le-kit/p-SKsXnjWI.js +0 -3
  491. package/dist/core/le-kit/p-SKsXnjWI.js.map +0 -1
  492. package/dist/core/le-kit/p-a9d05ef6.entry.js.map +0 -1
  493. package/dist/core/le-kit/p-b2bd2a80.entry.js +0 -2
  494. package/dist/core/le-kit/p-b2bd2a80.entry.js.map +0 -1
  495. package/dist/core/le-kit/p-ccac9611.entry.js +0 -2
  496. package/dist/core/le-kit/p-ccac9611.entry.js.map +0 -1
  497. package/dist/core/loader/cdn.js +0 -1
  498. package/dist/core/loader/index.cjs.js +0 -1
  499. package/dist/core/loader/index.d.ts +0 -24
  500. package/dist/core/loader/index.es2017.js +0 -1
  501. package/dist/core/loader/index.js +0 -2
  502. package/dist/core/types/components/le-box/le-box.d.ts +0 -111
  503. package/dist/core/types/components/le-button/le-button.d.ts +0 -78
  504. package/dist/core/types/components/le-card/le-card.d.ts +0 -37
  505. package/dist/core/types/components/le-checkbox/le-checkbox.d.ts +0 -46
  506. package/dist/core/types/components/le-number-input/le-number-input.d.ts +0 -106
  507. package/dist/core/types/components/le-popover/le-popover.d.ts +0 -109
  508. package/dist/core/types/components/le-popup/le-popup.api.d.ts +0 -73
  509. package/dist/core/types/components/le-popup/le-popup.d.ts +0 -122
  510. package/dist/core/types/components/le-round-progress/le-round-progress.d.ts +0 -37
  511. package/dist/core/types/components/le-stack/le-stack.d.ts +0 -73
  512. package/dist/core/types/components/le-string-input/le-string-input.d.ts +0 -83
  513. package/dist/core/types/components/le-text/le-text.d.ts +0 -141
  514. package/dist/core/types/components/le-turntable/le-turntable.d.ts +0 -55
  515. package/dist/core/types/components.d.ts +0 -1752
  516. package/dist/core/types/global/app.d.ts +0 -73
  517. package/dist/core/types/index.d.ts +0 -15
  518. package/dist/core/types/stencil-public-runtime.d.ts +0 -1756
  519. package/dist/core/types/types/blocks.d.ts +0 -136
  520. package/dist/core/types/types/options.d.ts +0 -124
  521. package/dist/core/types/utils/utils.d.ts +0 -54
  522. package/dist/le-kit/assets/custom-elements.json +0 -4305
  523. package/dist/le-kit/index-CAY3Hk_i.js +0 -4559
  524. package/dist/le-kit/index-CAY3Hk_i.js.map +0 -1
  525. package/dist/le-kit/le-button.entry.esm.js.map +0 -1
  526. package/dist/le-kit/le-button.entry.js +0 -90
  527. package/dist/le-kit/le-checkbox.entry.esm.js.map +0 -1
  528. package/dist/le-kit/le-checkbox.entry.js +0 -59
  529. package/dist/le-kit/le-component.entry.esm.js.map +0 -1
  530. package/dist/le-kit/le-popover.entry.esm.js.map +0 -1
  531. package/dist/le-kit/le-popover.entry.js +0 -346
  532. package/dist/le-kit/le-popup.entry.esm.js.map +0 -1
  533. package/dist/le-kit/le-popup.entry.js +0 -210
  534. package/dist/le-kit/le-round-progress.entry.js +0 -104
  535. package/dist/le-kit/le-slot.entry.esm.js.map +0 -1
  536. package/dist/le-kit/le-string-input.entry.esm.js.map +0 -1
  537. package/dist/le-kit/le-string-input.entry.js +0 -93
  538. package/dist/le-kit/le-turntable.entry.js +0 -137
  539. /package/dist/{core/cjs → cjs}/le-kit.cjs.js.map +0 -0
  540. /package/dist/{core/cjs → cjs}/loader.cjs.js.map +0 -0
  541. /package/dist/{core/collection → collection}/components/le-box/le-box.default.css +0 -0
  542. /package/dist/{core/collection → collection}/components/le-checkbox/le-checkbox.css +0 -0
  543. /package/dist/{core/collection → collection}/components/le-number-input/le-number-input.css +0 -0
  544. /package/dist/{core/collection → collection}/components/le-popup/le-popup.css +0 -0
  545. /package/dist/{core/collection → collection}/components/le-round-progress/le-round-progress.css +0 -0
  546. /package/dist/{core/collection → collection}/components/le-stack/le-stack.default.css +0 -0
  547. /package/dist/{core/collection → collection}/components/le-text/le-text.default.css +0 -0
  548. /package/dist/{core/collection → collection}/components/le-turntable/le-turntable.css +0 -0
  549. /package/dist/{core/collection → collection}/global/app.js +0 -0
  550. /package/dist/{core/collection → collection}/index.js +0 -0
  551. /package/dist/{core/collection → collection}/types/blocks.js +0 -0
  552. /package/dist/{core/collection → collection}/types/options.js +0 -0
  553. /package/dist/{core/collection → collection}/utils/utils.js +0 -0
  554. /package/dist/{core/components → components}/le-button.js.map +0 -0
  555. /package/dist/{core/components → components}/le-checkbox.js.map +0 -0
  556. /package/dist/{core/components → components}/le-component.js.map +0 -0
  557. /package/dist/{core/components → components}/le-popover.js +0 -0
  558. /package/dist/{core/components → components}/le-popover.js.map +0 -0
  559. /package/dist/{core/components → components}/le-round-progress.js.map +0 -0
  560. /package/dist/{core/components → components}/le-slot.js.map +0 -0
  561. /package/dist/{core/components → components}/le-string-input.js.map +0 -0
  562. /package/dist/{core/components → components}/le-turntable.js.map +0 -0
  563. /package/dist/{core/components → components}/utils.js +0 -0
  564. /package/dist/{core/components → components}/utils.js.map +0 -0
  565. /package/dist/{core/esm → esm}/le-kit.js.map +0 -0
  566. /package/dist/{core/esm → esm}/loader.js.map +0 -0
  567. /package/dist/{core/index.cjs.js → index.cjs.js} +0 -0
  568. /package/dist/{core/index.js → index.js} +0 -0
@@ -0,0 +1,467 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ /**
3
+ * A presentational tab bar component without panels.
4
+ *
5
+ * Use this for navigation/routing scenarios where you manage the content
6
+ * externally based on the selection events. For tabs with built-in panels,
7
+ * use `le-tabs` instead.
8
+ *
9
+ * @cssprop --le-tab-bar-border-color - Border color
10
+ * @cssprop --le-tab-bar-gap - Gap between tabs
11
+ * @cssprop --le-tab-bar-indicator-color - Active indicator color
12
+ * @cssprop --le-tab-bar-padding-x - Horizontal padding for tabs
13
+ * @cssprop --le-tab-bar-padding-y - Vertical padding for tabs
14
+ *
15
+ * @csspart tablist - The tab button container
16
+ * @csspart tab - Individual tab buttons
17
+ * @csspart tab-active - The currently active tab
18
+ *
19
+ * @cmsEditable true
20
+ * @cmsCategory Navigation
21
+ */
22
+ export class LeTabBar {
23
+ el;
24
+ /**
25
+ * Array of tab options defining the tabs to display.
26
+ */
27
+ tabs = [];
28
+ /**
29
+ * The value of the currently selected tab.
30
+ */
31
+ selected;
32
+ /**
33
+ * Whether tabs should stretch to fill available width.
34
+ */
35
+ fullWidth = true;
36
+ /**
37
+ * Whether to show labels in icon-only mode.
38
+ */
39
+ showLabels = false;
40
+ /**
41
+ * Position of the tab bar.
42
+ * @allowedValues top | bottom
43
+ */
44
+ position = 'top';
45
+ /**
46
+ * Size of the tabs.
47
+ * @allowedValues small | medium | large
48
+ */
49
+ size = 'medium';
50
+ /**
51
+ * Whether to show a border below the tab bar.
52
+ */
53
+ bordered = true;
54
+ /**
55
+ * Internal tab configurations (built from children or tabs prop)
56
+ */
57
+ tabConfigs = [];
58
+ /**
59
+ * Whether we're using declarative mode (le-tab-panel children)
60
+ */
61
+ isDeclarativeMode = false;
62
+ /**
63
+ * Internal state for focused tab index (for keyboard navigation)
64
+ */
65
+ focusedIndex = 0;
66
+ /**
67
+ * Emitted when the selected tab changes.
68
+ */
69
+ leTabChange;
70
+ mutationObserver;
71
+ selectedChanged(newValue) {
72
+ const index = this.tabConfigs.findIndex(t => t.value === newValue);
73
+ if (index >= 0) {
74
+ this.focusedIndex = index;
75
+ }
76
+ }
77
+ tabsChanged() {
78
+ if (!this.isDeclarativeMode) {
79
+ this.buildTabConfigs();
80
+ }
81
+ }
82
+ handleSlotChange() {
83
+ this.buildTabConfigs();
84
+ }
85
+ componentWillLoad() {
86
+ this.buildTabConfigs();
87
+ if (this.selected === undefined && this.tabs.length > 0) {
88
+ const firstEnabled = this.tabs.find(tab => !tab.disabled);
89
+ if (firstEnabled) {
90
+ this.selected = this.getTabValue(firstEnabled);
91
+ }
92
+ }
93
+ if (this.selected !== undefined) {
94
+ const index = this.getTabIndex(this.selected);
95
+ if (index >= 0) {
96
+ this.focusedIndex = index;
97
+ }
98
+ }
99
+ }
100
+ connectedCallback() {
101
+ // Watch for dynamic changes to children
102
+ this.mutationObserver = new MutationObserver(() => {
103
+ this.buildTabConfigs();
104
+ });
105
+ this.mutationObserver.observe(this.el, {
106
+ attributes: true,
107
+ childList: true,
108
+ subtree: true,
109
+ });
110
+ }
111
+ disconnectedCallback() {
112
+ this.mutationObserver?.disconnect();
113
+ }
114
+ async buildTabConfigs() {
115
+ // Check for le-tab-panel children
116
+ const tabs = Array.from(this.el.querySelectorAll(':scope > le-tab'));
117
+ if (tabs.length > 0) {
118
+ // Declarative mode - build from children
119
+ this.isDeclarativeMode = true;
120
+ const configs = [];
121
+ for (const tab of tabs) {
122
+ const config = await tab.getTabConfig();
123
+ configs.push({ ...config });
124
+ }
125
+ this.tabConfigs = configs;
126
+ }
127
+ else if (this.tabs.length > 0) {
128
+ // Programmatic mode - use tabs prop
129
+ this.isDeclarativeMode = false;
130
+ this.tabConfigs = this.tabs.map(tab => ({
131
+ label: tab.label,
132
+ value: (tab.value !== undefined ? tab.value : tab.label),
133
+ iconStart: tab.iconStart,
134
+ iconEnd: tab.iconEnd,
135
+ disabled: tab.disabled ?? false,
136
+ }));
137
+ }
138
+ else {
139
+ this.tabConfigs = [];
140
+ }
141
+ // Set default selected
142
+ if (this.selected === undefined && this.tabConfigs.length > 0) {
143
+ const firstEnabled = this.tabConfigs.find(t => !t.disabled);
144
+ if (firstEnabled) {
145
+ this.selected = firstEnabled.value;
146
+ }
147
+ }
148
+ // Initialize focused index
149
+ if (this.selected !== undefined) {
150
+ const index = this.tabConfigs.findIndex(t => t.value === this.selected);
151
+ if (index >= 0) {
152
+ this.focusedIndex = index;
153
+ }
154
+ }
155
+ }
156
+ getTabValue(tab) {
157
+ return tab.value !== undefined ? tab.value : tab.label;
158
+ }
159
+ getTabIndex(value) {
160
+ return this.tabs.findIndex(tab => this.getTabValue(tab) === value);
161
+ }
162
+ selectTab(tab) {
163
+ if (tab.disabled)
164
+ return;
165
+ const value = this.getTabValue(tab);
166
+ this.selected = value;
167
+ this.leTabChange.emit({ value, option: tab });
168
+ }
169
+ handleTabClick = (tab) => {
170
+ this.selectTab(tab);
171
+ };
172
+ handleKeyDown = (event) => {
173
+ const { tabConfigs } = this;
174
+ let newIndex = this.focusedIndex;
175
+ switch (event.key) {
176
+ case 'ArrowLeft':
177
+ event.preventDefault();
178
+ newIndex = this.findNextEnabledTab(-1);
179
+ break;
180
+ case 'ArrowRight':
181
+ event.preventDefault();
182
+ newIndex = this.findNextEnabledTab(1);
183
+ break;
184
+ case 'Home':
185
+ event.preventDefault();
186
+ newIndex = this.findFirstEnabledTab();
187
+ break;
188
+ case 'End':
189
+ event.preventDefault();
190
+ newIndex = this.findLastEnabledTab();
191
+ break;
192
+ case 'Enter':
193
+ case ' ':
194
+ event.preventDefault();
195
+ if (tabConfigs[this.focusedIndex]) {
196
+ this.selectTab(tabConfigs[this.focusedIndex]);
197
+ }
198
+ return;
199
+ default:
200
+ return;
201
+ }
202
+ if (newIndex !== this.focusedIndex) {
203
+ this.focusedIndex = newIndex;
204
+ if (tabConfigs[newIndex]) {
205
+ this.selectTab(tabConfigs[newIndex]);
206
+ }
207
+ }
208
+ };
209
+ findNextEnabledTab(direction) {
210
+ const { tabConfigs } = this;
211
+ let index = this.focusedIndex;
212
+ const length = tabConfigs.length;
213
+ for (let i = 0; i < length; i++) {
214
+ index = (index + direction + length) % length;
215
+ if (!tabConfigs[index].disabled) {
216
+ return index;
217
+ }
218
+ }
219
+ return this.focusedIndex;
220
+ }
221
+ findFirstEnabledTab() {
222
+ return this.tabConfigs.findIndex(tab => !tab.disabled);
223
+ }
224
+ findLastEnabledTab() {
225
+ for (let i = this.tabConfigs.length - 1; i >= 0; i--) {
226
+ if (!this.tabConfigs[i].disabled)
227
+ return i;
228
+ }
229
+ return 0;
230
+ }
231
+ render() {
232
+ const { tabConfigs, selected, size, bordered } = this;
233
+ const classes = {
234
+ 'le-tab-bar': true,
235
+ 'bordered': bordered,
236
+ 'position-top': this.position === 'top',
237
+ 'position-bottom': this.position === 'bottom',
238
+ };
239
+ return (h(Host, { key: 'ab97582e8f936fc6617b1034c325bd6fbbf97f12', class: classes }, h("le-component", { key: '9dcabb60dce5600876ae7cc03afa348adf188cdd', component: "le-tab-bar" }, h("div", { key: 'd38a1ad9942045d3fcd0f5eaf84f221c7e34c21a', class: "tablist", role: "tablist", "aria-orientation": "horizontal", part: "tablist", onKeyDown: this.handleKeyDown }, h("le-slot", { key: 'cd8da212dd2c4baa2beea2168ed6431b8748297f', name: "", type: "slot", allowedComponents: "le-tab" }, tabConfigs.map(tab => {
240
+ const value = this.getTabValue(tab);
241
+ const isSelected = value === selected;
242
+ return (h("le-tab", { key: value, class: "tab", role: "tab", variant: "icon-only", label: tab.label, value: tab.value, icon: tab.icon, href: tab.href, selected: isSelected, disabled: tab.disabled, showLabel: this.showLabels, size: size, part: isSelected ? 'tab tab-active' : 'tab', "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": tab.disabled ? 'true' : undefined, tabIndex: -1, onClick: () => this.handleTabClick(tab) }, h("span", { class: "tab-label" }, tab.label)));
243
+ }))))));
244
+ }
245
+ static get is() { return "le-tab-bar"; }
246
+ static get encapsulation() { return "shadow"; }
247
+ static get originalStyleUrls() {
248
+ return {
249
+ "$": ["le-tab-bar.css"]
250
+ };
251
+ }
252
+ static get styleUrls() {
253
+ return {
254
+ "$": ["le-tab-bar.css"]
255
+ };
256
+ }
257
+ static get properties() {
258
+ return {
259
+ "tabs": {
260
+ "type": "unknown",
261
+ "mutable": false,
262
+ "complexType": {
263
+ "original": "LeOption[]",
264
+ "resolved": "LeOption[]",
265
+ "references": {
266
+ "LeOption": {
267
+ "location": "import",
268
+ "path": "../../types/options",
269
+ "id": "src/types/options.ts::LeOption"
270
+ }
271
+ }
272
+ },
273
+ "required": false,
274
+ "optional": false,
275
+ "docs": {
276
+ "tags": [],
277
+ "text": "Array of tab options defining the tabs to display."
278
+ },
279
+ "getter": false,
280
+ "setter": false,
281
+ "defaultValue": "[]"
282
+ },
283
+ "selected": {
284
+ "type": "any",
285
+ "mutable": true,
286
+ "complexType": {
287
+ "original": "LeOptionValue",
288
+ "resolved": "number | string",
289
+ "references": {
290
+ "LeOptionValue": {
291
+ "location": "import",
292
+ "path": "../../types/options",
293
+ "id": "src/types/options.ts::LeOptionValue"
294
+ }
295
+ }
296
+ },
297
+ "required": false,
298
+ "optional": true,
299
+ "docs": {
300
+ "tags": [],
301
+ "text": "The value of the currently selected tab."
302
+ },
303
+ "getter": false,
304
+ "setter": false,
305
+ "reflect": false,
306
+ "attribute": "selected"
307
+ },
308
+ "fullWidth": {
309
+ "type": "boolean",
310
+ "mutable": false,
311
+ "complexType": {
312
+ "original": "boolean",
313
+ "resolved": "boolean",
314
+ "references": {}
315
+ },
316
+ "required": false,
317
+ "optional": false,
318
+ "docs": {
319
+ "tags": [],
320
+ "text": "Whether tabs should stretch to fill available width."
321
+ },
322
+ "getter": false,
323
+ "setter": false,
324
+ "reflect": false,
325
+ "attribute": "full-width",
326
+ "defaultValue": "true"
327
+ },
328
+ "showLabels": {
329
+ "type": "boolean",
330
+ "mutable": false,
331
+ "complexType": {
332
+ "original": "boolean",
333
+ "resolved": "boolean",
334
+ "references": {}
335
+ },
336
+ "required": false,
337
+ "optional": false,
338
+ "docs": {
339
+ "tags": [],
340
+ "text": "Whether to show labels in icon-only mode."
341
+ },
342
+ "getter": false,
343
+ "setter": false,
344
+ "reflect": false,
345
+ "attribute": "show-labels",
346
+ "defaultValue": "false"
347
+ },
348
+ "position": {
349
+ "type": "string",
350
+ "mutable": false,
351
+ "complexType": {
352
+ "original": "'top' | 'bottom'",
353
+ "resolved": "\"bottom\" | \"top\"",
354
+ "references": {}
355
+ },
356
+ "required": false,
357
+ "optional": false,
358
+ "docs": {
359
+ "tags": [{
360
+ "name": "allowedValues",
361
+ "text": "top | bottom"
362
+ }],
363
+ "text": "Position of the tab bar."
364
+ },
365
+ "getter": false,
366
+ "setter": false,
367
+ "reflect": false,
368
+ "attribute": "position",
369
+ "defaultValue": "'top'"
370
+ },
371
+ "size": {
372
+ "type": "string",
373
+ "mutable": false,
374
+ "complexType": {
375
+ "original": "'small' | 'medium' | 'large'",
376
+ "resolved": "\"large\" | \"medium\" | \"small\"",
377
+ "references": {}
378
+ },
379
+ "required": false,
380
+ "optional": false,
381
+ "docs": {
382
+ "tags": [{
383
+ "name": "allowedValues",
384
+ "text": "small | medium | large"
385
+ }],
386
+ "text": "Size of the tabs."
387
+ },
388
+ "getter": false,
389
+ "setter": false,
390
+ "reflect": false,
391
+ "attribute": "size",
392
+ "defaultValue": "'medium'"
393
+ },
394
+ "bordered": {
395
+ "type": "boolean",
396
+ "mutable": false,
397
+ "complexType": {
398
+ "original": "boolean",
399
+ "resolved": "boolean",
400
+ "references": {}
401
+ },
402
+ "required": false,
403
+ "optional": false,
404
+ "docs": {
405
+ "tags": [],
406
+ "text": "Whether to show a border below the tab bar."
407
+ },
408
+ "getter": false,
409
+ "setter": false,
410
+ "reflect": false,
411
+ "attribute": "bordered",
412
+ "defaultValue": "true"
413
+ }
414
+ };
415
+ }
416
+ static get states() {
417
+ return {
418
+ "tabConfigs": {},
419
+ "isDeclarativeMode": {},
420
+ "focusedIndex": {}
421
+ };
422
+ }
423
+ static get events() {
424
+ return [{
425
+ "method": "leTabChange",
426
+ "name": "leTabChange",
427
+ "bubbles": true,
428
+ "cancelable": true,
429
+ "composed": true,
430
+ "docs": {
431
+ "tags": [],
432
+ "text": "Emitted when the selected tab changes."
433
+ },
434
+ "complexType": {
435
+ "original": "LeOptionSelectDetail",
436
+ "resolved": "LeOptionSelectDetail",
437
+ "references": {
438
+ "LeOptionSelectDetail": {
439
+ "location": "import",
440
+ "path": "../../types/options",
441
+ "id": "src/types/options.ts::LeOptionSelectDetail"
442
+ }
443
+ }
444
+ }
445
+ }];
446
+ }
447
+ static get elementRef() { return "el"; }
448
+ static get watchers() {
449
+ return [{
450
+ "propName": "selected",
451
+ "methodName": "selectedChanged"
452
+ }, {
453
+ "propName": "tabs",
454
+ "methodName": "tabsChanged"
455
+ }];
456
+ }
457
+ static get listeners() {
458
+ return [{
459
+ "name": "slotchange",
460
+ "method": "handleSlotChange",
461
+ "target": undefined,
462
+ "capture": false,
463
+ "passive": false
464
+ }];
465
+ }
466
+ }
467
+ //# sourceMappingURL=le-tab-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"le-tab-bar.js","sourceRoot":"","sources":["../../../src/components/le-tab-bar/le-tab-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Prop,\n State,\n Event,\n EventEmitter,\n h,\n Element,\n Watch,\n Listen,\n Host,\n} from '@stencil/core';\nimport { LeOption, LeOptionValue, LeOptionSelectDetail } from '../../types/options';\n\ninterface TabConfig {\n label: string;\n value: string;\n icon?: string;\n href?: string;\n disabled: boolean;\n}\n\n/**\n * A presentational tab bar component without panels.\n *\n * Use this for navigation/routing scenarios where you manage the content\n * externally based on the selection events. For tabs with built-in panels,\n * use `le-tabs` instead.\n *\n * @cssprop --le-tab-bar-border-color - Border color\n * @cssprop --le-tab-bar-gap - Gap between tabs\n * @cssprop --le-tab-bar-indicator-color - Active indicator color\n * @cssprop --le-tab-bar-padding-x - Horizontal padding for tabs\n * @cssprop --le-tab-bar-padding-y - Vertical padding for tabs\n *\n * @csspart tablist - The tab button container\n * @csspart tab - Individual tab buttons\n * @csspart tab-active - The currently active tab\n *\n * @cmsEditable true\n * @cmsCategory Navigation\n */\n@Component({\n tag: 'le-tab-bar',\n styleUrl: 'le-tab-bar.css',\n shadow: true,\n})\nexport class LeTabBar {\n @Element() el: HTMLElement;\n\n /**\n * Array of tab options defining the tabs to display.\n */\n @Prop() tabs: LeOption[] = [];\n\n /**\n * The value of the currently selected tab.\n */\n @Prop({ mutable: true }) selected?: LeOptionValue;\n\n /**\n * Whether tabs should stretch to fill available width.\n */\n @Prop() fullWidth: boolean = true;\n\n /**\n * Whether to show labels in icon-only mode.\n */\n @Prop() showLabels: boolean = false;\n\n /**\n * Position of the tab bar.\n * @allowedValues top | bottom\n */\n @Prop() position: 'top' | 'bottom' = 'top';\n\n /**\n * Size of the tabs.\n * @allowedValues small | medium | large\n */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Whether to show a border below the tab bar.\n */\n @Prop() bordered: boolean = true;\n\n /**\n * Internal tab configurations (built from children or tabs prop)\n */\n @State() private tabConfigs: TabConfig[] = [];\n\n /**\n * Whether we're using declarative mode (le-tab-panel children)\n */\n @State() private isDeclarativeMode: boolean = false;\n\n /**\n * Internal state for focused tab index (for keyboard navigation)\n */\n @State() private focusedIndex: number = 0;\n\n /**\n * Emitted when the selected tab changes.\n */\n @Event() leTabChange: EventEmitter<LeOptionSelectDetail>;\n\n private mutationObserver?: MutationObserver;\n\n @Watch('selected')\n selectedChanged(newValue: LeOptionValue) {\n const index = this.tabConfigs.findIndex(t => t.value === newValue);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n\n @Watch('tabs')\n tabsChanged() {\n if (!this.isDeclarativeMode) {\n this.buildTabConfigs();\n }\n }\n\n @Listen('slotchange')\n handleSlotChange() {\n this.buildTabConfigs();\n }\n\n componentWillLoad() {\n this.buildTabConfigs();\n if (this.selected === undefined && this.tabs.length > 0) {\n const firstEnabled = this.tabs.find(tab => !tab.disabled);\n if (firstEnabled) {\n this.selected = this.getTabValue(firstEnabled);\n }\n }\n if (this.selected !== undefined) {\n const index = this.getTabIndex(this.selected);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n }\n\n connectedCallback() {\n // Watch for dynamic changes to children\n this.mutationObserver = new MutationObserver(() => {\n this.buildTabConfigs();\n });\n this.mutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n this.mutationObserver?.disconnect();\n }\n\n private async buildTabConfigs() {\n // Check for le-tab-panel children\n const tabs = Array.from(this.el.querySelectorAll(':scope > le-tab')) as Array<\n HTMLElement & {\n getTabConfig: () => Promise<TabConfig>;\n setActive: (active: boolean) => Promise<void>;\n }\n >;\n\n if (tabs.length > 0) {\n // Declarative mode - build from children\n this.isDeclarativeMode = true;\n const configs: TabConfig[] = [];\n\n for (const tab of tabs) {\n const config = await tab.getTabConfig();\n configs.push({ ...config });\n }\n\n this.tabConfigs = configs;\n } else if (this.tabs.length > 0) {\n // Programmatic mode - use tabs prop\n this.isDeclarativeMode = false;\n this.tabConfigs = this.tabs.map(tab => ({\n label: tab.label,\n value: (tab.value !== undefined ? tab.value : tab.label) as string,\n iconStart: tab.iconStart,\n iconEnd: tab.iconEnd,\n disabled: tab.disabled ?? false,\n }));\n } else {\n this.tabConfigs = [];\n }\n\n // Set default selected\n if (this.selected === undefined && this.tabConfigs.length > 0) {\n const firstEnabled = this.tabConfigs.find(t => !t.disabled);\n if (firstEnabled) {\n this.selected = firstEnabled.value;\n }\n }\n\n // Initialize focused index\n if (this.selected !== undefined) {\n const index = this.tabConfigs.findIndex(t => t.value === this.selected);\n if (index >= 0) {\n this.focusedIndex = index;\n }\n }\n }\n\n private getTabValue(tab: LeOption): LeOptionValue {\n return tab.value !== undefined ? tab.value : tab.label;\n }\n\n private getTabIndex(value: LeOptionValue): number {\n return this.tabs.findIndex(tab => this.getTabValue(tab) === value);\n }\n\n private selectTab(tab: LeOption) {\n if (tab.disabled) return;\n\n const value = this.getTabValue(tab);\n this.selected = value;\n this.leTabChange.emit({ value, option: tab });\n }\n\n private handleTabClick = (tab: LeOption) => {\n this.selectTab(tab);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n const { tabConfigs } = this;\n let newIndex = this.focusedIndex;\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = this.findNextEnabledTab(-1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n newIndex = this.findNextEnabledTab(1);\n break;\n case 'Home':\n event.preventDefault();\n newIndex = this.findFirstEnabledTab();\n break;\n case 'End':\n event.preventDefault();\n newIndex = this.findLastEnabledTab();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (tabConfigs[this.focusedIndex]) {\n this.selectTab(tabConfigs[this.focusedIndex]);\n }\n return;\n default:\n return;\n }\n\n if (newIndex !== this.focusedIndex) {\n this.focusedIndex = newIndex;\n if (tabConfigs[newIndex]) {\n this.selectTab(tabConfigs[newIndex]);\n }\n }\n };\n\n private findNextEnabledTab(direction: 1 | -1): number {\n const { tabConfigs } = this;\n let index = this.focusedIndex;\n const length = tabConfigs.length;\n\n for (let i = 0; i < length; i++) {\n index = (index + direction + length) % length;\n if (!tabConfigs[index].disabled) {\n return index;\n }\n }\n return this.focusedIndex;\n }\n\n private findFirstEnabledTab(): number {\n return this.tabConfigs.findIndex(tab => !tab.disabled);\n }\n\n private findLastEnabledTab(): number {\n for (let i = this.tabConfigs.length - 1; i >= 0; i--) {\n if (!this.tabConfigs[i].disabled) return i;\n }\n return 0;\n }\n\n render() {\n const { tabConfigs, selected, size, bordered } = this;\n\n const classes = {\n 'le-tab-bar': true,\n 'bordered': bordered,\n 'position-top': this.position === 'top',\n 'position-bottom': this.position === 'bottom',\n };\n\n return (\n <Host class={classes}>\n <le-component component=\"le-tab-bar\">\n <div\n class=\"tablist\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n part=\"tablist\"\n onKeyDown={this.handleKeyDown}\n >\n <le-slot name=\"\" type=\"slot\" allowedComponents=\"le-tab\">\n {tabConfigs.map(tab => {\n const value = this.getTabValue(tab);\n const isSelected = value === selected;\n\n return (\n <le-tab\n key={value}\n class=\"tab\"\n role=\"tab\"\n variant=\"icon-only\"\n label={tab.label}\n value={tab.value}\n icon={tab.icon}\n href={tab.href}\n selected={isSelected}\n disabled={tab.disabled}\n showLabel={this.showLabels}\n size={size}\n part={isSelected ? 'tab tab-active' : 'tab'}\n aria-selected={isSelected ? 'true' : 'false'}\n aria-disabled={tab.disabled ? 'true' : undefined}\n tabIndex={-1}\n onClick={() => this.handleTabClick(tab)}\n >\n <span class=\"tab-label\">{tab.label}</span>\n </le-tab>\n );\n })}\n </le-slot>\n </div>\n </le-component>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * le-tab-panel - Styles
3
+ */
4
+
5
+ :host {
6
+ display: contents;
7
+ --le-tab-panel-radius: var(--le-radius-md);
8
+ --le-tab-panel-padding: var(--le-spacing-4);
9
+ }
10
+
11
+ .tab-panel {
12
+ margin-top: 4px;
13
+ display: none;
14
+ border-radius: var(--le-tab-panel-radius);
15
+ padding: var(--le-tab-panel-padding);
16
+ }
17
+
18
+ .tab-panel.active {
19
+ display: block;
20
+ }
21
+
22
+ .tab-panel:focus-visible {
23
+ outline: 2px solid var(--le-color-focus);
24
+ outline-offset: 2px;
25
+ }
26
+
27
+ /* For lazy panels that have been rendered but are now hidden */
28
+ .tab-panel.lazy-hidden {
29
+ display: none;
30
+ }