le-kit 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/dist/cjs/{index-BPF04Jvb.js → index-BzadfLTc.js} +6 -3
  2. package/dist/cjs/index-BzadfLTc.js.map +1 -0
  3. package/dist/cjs/index.cjs.js +2 -2
  4. package/dist/cjs/le-bar_16.cjs.entry.js +23 -23
  5. package/dist/cjs/le-box.cjs.entry.js +5 -5
  6. package/dist/cjs/le-card.cjs.entry.js +5 -5
  7. package/dist/cjs/le-combobox.cjs.entry.js +2 -2
  8. package/dist/cjs/le-header-placeholder.cjs.entry.js +2 -2
  9. package/dist/cjs/le-kit.cjs.js +2 -2
  10. package/dist/cjs/le-multiselect.cjs.entry.js +4 -4
  11. package/dist/cjs/le-number-input.cjs.entry.js +3 -3
  12. package/dist/cjs/le-round-progress.cjs.entry.js +2 -2
  13. package/dist/cjs/le-segmented-control.cjs.entry.js +2 -2
  14. package/dist/cjs/le-side-panel-toggle.cjs.entry.js +229 -0
  15. package/dist/cjs/le-side-panel.cjs.entry.js +546 -0
  16. package/dist/cjs/le-stack.cjs.entry.js +3 -3
  17. package/dist/cjs/le-tab-bar.cjs.entry.js +2 -2
  18. package/dist/cjs/le-tab-panel.cjs.entry.js +3 -3
  19. package/dist/cjs/le-tab.cjs.entry.js +3 -3
  20. package/dist/cjs/le-tabs.cjs.entry.js +4 -4
  21. package/dist/cjs/le-tag.cjs.entry.js +2 -2
  22. package/dist/cjs/le-text.cjs.entry.js +8 -8
  23. package/dist/cjs/le-turntable.cjs.entry.js +2 -2
  24. package/dist/cjs/loader.cjs.js +2 -2
  25. package/dist/cjs/{utils-BYsLPHN1.js → utils-Dxx9WhWK.js} +3 -3
  26. package/dist/cjs/{utils-BYsLPHN1.js.map → utils-Dxx9WhWK.js.map} +1 -1
  27. package/dist/collection/collection-manifest.json +2 -0
  28. package/dist/collection/components/le-box/le-box.js +3 -3
  29. package/dist/collection/components/le-box/le-box.js.map +1 -1
  30. package/dist/collection/components/le-button/le-button.css +2 -2
  31. package/dist/collection/components/le-button/le-button.js +1 -1
  32. package/dist/collection/components/le-card/le-card.js +3 -3
  33. package/dist/collection/components/le-card/le-card.js.map +1 -1
  34. package/dist/collection/components/le-checkbox/le-checkbox.js +1 -1
  35. package/dist/collection/components/le-collapse/le-collapse.js +1 -1
  36. package/dist/collection/components/le-combobox/le-combobox.js +1 -1
  37. package/dist/collection/components/le-current-heading/le-current-heading.js +1 -1
  38. package/dist/collection/components/le-dropdown-base/le-dropdown-base.js +1 -1
  39. package/dist/collection/components/le-header/le-header.js +2 -2
  40. package/dist/collection/components/le-header-placeholder/le-header-placeholder.js +1 -1
  41. package/dist/collection/components/le-icon/le-icon.js +1 -1
  42. package/dist/collection/components/le-multiselect/le-multiselect.js +3 -3
  43. package/dist/collection/components/le-navigation/le-navigation.css +19 -6
  44. package/dist/collection/components/le-navigation/le-navigation.js +2 -2
  45. package/dist/collection/components/le-navigation/le-navigation.js.map +1 -1
  46. package/dist/collection/components/le-number-input/le-number-input.js +1 -1
  47. package/dist/collection/components/le-popover/le-popover.js +3 -3
  48. package/dist/collection/components/le-round-progress/le-round-progress.js +1 -1
  49. package/dist/collection/components/le-scroll-progress/le-scroll-progress.js +1 -1
  50. package/dist/collection/components/le-segmented-control/le-segmented-control.js +1 -1
  51. package/dist/collection/components/le-select/le-select.js +2 -2
  52. package/dist/collection/components/le-side-panel/le-side-panel.css +193 -0
  53. package/dist/collection/components/le-side-panel/le-side-panel.js +953 -0
  54. package/dist/collection/components/le-side-panel/le-side-panel.js.map +1 -0
  55. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js +610 -0
  56. package/dist/collection/components/le-side-panel-toggle/le-side-panel-toggle.js.map +1 -0
  57. package/dist/collection/components/le-slot/le-slot.js +1 -1
  58. package/dist/collection/components/le-stack/le-stack.js +1 -1
  59. package/dist/collection/components/le-string-input/le-string-input.js +2 -2
  60. package/dist/collection/components/le-tab/le-tab.js +1 -1
  61. package/dist/collection/components/le-tab-bar/le-tab-bar.js +1 -1
  62. package/dist/collection/components/le-tab-panel/le-tab-panel.js +2 -2
  63. package/dist/collection/components/le-tabs/le-tabs.js +2 -2
  64. package/dist/collection/components/le-tag/le-tag.js +1 -1
  65. package/dist/collection/components/le-text/le-text.js +7 -7
  66. package/dist/collection/components/le-text/le-text.js.map +1 -1
  67. package/dist/collection/components/le-turntable/le-turntable.js +1 -1
  68. package/dist/collection/dist/components/assets/custom-elements.json +1618 -602
  69. package/dist/collection/dist/components/assets/icons/side-panel.json +61 -0
  70. package/dist/collection/dist/themes/dark.css +1 -0
  71. package/dist/collection/dist/themes/default.css +1 -0
  72. package/dist/collection/dist/themes/gradient.css +1 -0
  73. package/dist/collection/dist/themes/minimal.css +1 -0
  74. package/dist/collection/dist/themes/warm.css +1 -0
  75. package/dist/components/assets/custom-elements.json +1618 -602
  76. package/dist/components/assets/icons/side-panel.json +61 -0
  77. package/dist/components/index.js.map +1 -1
  78. package/dist/components/le-box.js +3 -3
  79. package/dist/components/le-box.js.map +1 -1
  80. package/dist/components/le-button2.js +8 -8
  81. package/dist/components/le-button2.js.map +1 -1
  82. package/dist/components/le-card.js +3 -3
  83. package/dist/components/le-card.js.map +1 -1
  84. package/dist/components/le-collapse2.js +1 -1
  85. package/dist/components/le-combobox.js +1 -1
  86. package/dist/components/le-current-heading.js +1 -1
  87. package/dist/components/le-dropdown-base2.js +1 -1
  88. package/dist/components/le-header-placeholder.js +1 -1
  89. package/dist/components/le-header.js +2 -2
  90. package/dist/components/le-icon2.js +1 -1
  91. package/dist/components/le-multiselect.js +3 -3
  92. package/dist/components/le-navigation.js +3 -3
  93. package/dist/components/le-navigation.js.map +1 -1
  94. package/dist/components/le-number-input.js +1 -1
  95. package/dist/components/le-popover2.js +3 -3
  96. package/dist/components/le-round-progress.js +1 -1
  97. package/dist/components/le-scroll-progress.js +1 -1
  98. package/dist/components/le-segmented-control.js +1 -1
  99. package/dist/components/le-side-panel-toggle.d.ts +11 -0
  100. package/dist/components/le-side-panel-toggle.js +9 -0
  101. package/dist/components/le-side-panel-toggle.js.map +1 -0
  102. package/dist/components/le-side-panel-toggle2.js +311 -0
  103. package/dist/components/le-side-panel-toggle2.js.map +1 -0
  104. package/dist/components/le-side-panel.d.ts +11 -0
  105. package/dist/components/le-side-panel.js +660 -0
  106. package/dist/components/le-side-panel.js.map +1 -0
  107. package/dist/components/le-stack.js +1 -1
  108. package/dist/components/le-tab-bar.js +1 -1
  109. package/dist/components/le-tab-panel.js +2 -2
  110. package/dist/components/le-tab2.js +1 -1
  111. package/dist/components/le-tabs.js +2 -2
  112. package/dist/components/le-tag2.js +1 -1
  113. package/dist/components/le-text.js +6 -6
  114. package/dist/components/le-text.js.map +1 -1
  115. package/dist/components/le-turntable.js +1 -1
  116. package/dist/docs.json +1397 -130
  117. package/dist/esm/{index-C-Chwj1b.js → index-DFTm5BqT.js} +7 -4
  118. package/dist/esm/index-DFTm5BqT.js.map +1 -0
  119. package/dist/esm/index.js +2 -2
  120. package/dist/esm/le-bar_16.entry.js +23 -23
  121. package/dist/esm/le-box.entry.js +5 -5
  122. package/dist/esm/le-box.entry.js.map +1 -1
  123. package/dist/esm/le-card.entry.js +5 -5
  124. package/dist/esm/le-card.entry.js.map +1 -1
  125. package/dist/esm/le-combobox.entry.js +2 -2
  126. package/dist/esm/le-header-placeholder.entry.js +2 -2
  127. package/dist/esm/le-kit.js +3 -3
  128. package/dist/esm/le-multiselect.entry.js +4 -4
  129. package/dist/esm/le-number-input.entry.js +3 -3
  130. package/dist/esm/le-round-progress.entry.js +2 -2
  131. package/dist/esm/le-segmented-control.entry.js +2 -2
  132. package/dist/esm/le-side-panel-toggle.entry.js +227 -0
  133. package/dist/esm/le-side-panel-toggle.entry.js.map +1 -0
  134. package/dist/esm/le-side-panel.entry.js +544 -0
  135. package/dist/esm/le-side-panel.entry.js.map +1 -0
  136. package/dist/esm/le-stack.entry.js +3 -3
  137. package/dist/esm/le-tab-bar.entry.js +2 -2
  138. package/dist/esm/le-tab-panel.entry.js +3 -3
  139. package/dist/esm/le-tab.entry.js +3 -3
  140. package/dist/esm/le-tabs.entry.js +4 -4
  141. package/dist/esm/le-tag.entry.js +2 -2
  142. package/dist/esm/le-text.entry.js +8 -8
  143. package/dist/esm/le-text.entry.js.map +1 -1
  144. package/dist/esm/le-turntable.entry.js +2 -2
  145. package/dist/esm/loader.js +3 -3
  146. package/dist/esm/{utils-B3alHV04.js → utils-DZYCZLrF.js} +3 -3
  147. package/dist/esm/{utils-B3alHV04.js.map → utils-DZYCZLrF.js.map} +1 -1
  148. package/dist/le-kit/dist/components/assets/custom-elements.json +1618 -602
  149. package/dist/le-kit/dist/components/assets/icons/side-panel.json +61 -0
  150. package/dist/le-kit/dist/themes/dark.css +1 -0
  151. package/dist/le-kit/dist/themes/default.css +1 -0
  152. package/dist/le-kit/dist/themes/gradient.css +1 -0
  153. package/dist/le-kit/dist/themes/minimal.css +1 -0
  154. package/dist/le-kit/dist/themes/warm.css +1 -0
  155. package/dist/le-kit/index.esm.js +1 -1
  156. package/dist/le-kit/le-kit.css +1 -1
  157. package/dist/le-kit/le-kit.esm.js +1 -1
  158. package/dist/le-kit/p-221d379a.entry.js +2 -0
  159. package/dist/le-kit/p-221d379a.entry.js.map +1 -0
  160. package/dist/le-kit/{p-d161946c.entry.js → p-33a24394.entry.js} +2 -2
  161. package/dist/le-kit/{p-3d22aeb2.entry.js → p-36f126bb.entry.js} +2 -2
  162. package/dist/le-kit/p-3f26be75.entry.js +2 -0
  163. package/dist/le-kit/{p-9880466c.entry.js.map → p-3f26be75.entry.js.map} +1 -1
  164. package/dist/le-kit/{p-3d873cdb.entry.js → p-3f31e31b.entry.js} +2 -2
  165. package/dist/le-kit/{p-ea71f22c.entry.js → p-46276e77.entry.js} +2 -2
  166. package/dist/le-kit/p-46276e77.entry.js.map +1 -0
  167. package/dist/le-kit/p-69dd089a.entry.js +2 -0
  168. package/dist/le-kit/{p-f8034500.entry.js.map → p-69dd089a.entry.js.map} +1 -1
  169. package/dist/le-kit/p-6da2d81a.entry.js +2 -0
  170. package/dist/le-kit/{p-06d2d79c.entry.js.map → p-6da2d81a.entry.js.map} +1 -1
  171. package/dist/le-kit/{p-2230ecd7.entry.js → p-7201ae65.entry.js} +2 -2
  172. package/dist/le-kit/p-7a60bfff.entry.js +2 -0
  173. package/dist/le-kit/p-98242429.entry.js +2 -0
  174. package/dist/le-kit/p-98242429.entry.js.map +1 -0
  175. package/dist/le-kit/{p-923828fe.entry.js → p-9863d6fb.entry.js} +2 -2
  176. package/dist/le-kit/{p-DFr88Szp.js → p-D8RYDS9p.js} +2 -2
  177. package/dist/le-kit/{p-DFr88Szp.js.map → p-D8RYDS9p.js.map} +1 -1
  178. package/dist/le-kit/{p-C-Chwj1b.js → p-DFTm5BqT.js} +3 -3
  179. package/dist/le-kit/p-DFTm5BqT.js.map +1 -0
  180. package/dist/le-kit/{p-be2a7276.entry.js → p-bf66757c.entry.js} +2 -2
  181. package/dist/le-kit/p-c4975e66.entry.js +2 -0
  182. package/dist/le-kit/{p-e1846fc2.entry.js.map → p-c4975e66.entry.js.map} +1 -1
  183. package/dist/le-kit/p-cd38c01b.entry.js +2 -0
  184. package/dist/le-kit/{p-33c2168a.entry.js.map → p-cd38c01b.entry.js.map} +1 -1
  185. package/dist/le-kit/{p-68d836a3.entry.js → p-d1eee582.entry.js} +2 -2
  186. package/dist/le-kit/{p-e6b2cf9a.entry.js → p-d449a88b.entry.js} +2 -2
  187. package/dist/le-kit/p-eb710c8e.entry.js +2 -0
  188. package/dist/le-kit/p-eb710c8e.entry.js.map +1 -0
  189. package/dist/le-kit/{p-5d72c894.entry.js → p-f78b1ee6.entry.js} +2 -2
  190. package/dist/le-kit/p-f78b1ee6.entry.js.map +1 -0
  191. package/dist/themes/dark.css +1 -0
  192. package/dist/themes/default.css +1 -0
  193. package/dist/themes/gradient.css +1 -0
  194. package/dist/themes/minimal.css +1 -0
  195. package/dist/themes/warm.css +1 -0
  196. package/dist/types/components/le-side-panel/le-side-panel.d.ts +100 -0
  197. package/dist/types/components/le-side-panel-toggle/le-side-panel-toggle.d.ts +48 -0
  198. package/dist/types/components.d.ts +336 -2
  199. package/package.json +1 -1
  200. package/dist/cjs/index-BPF04Jvb.js.map +0 -1
  201. package/dist/esm/index-C-Chwj1b.js.map +0 -1
  202. package/dist/le-kit/p-05ccab91.entry.js +0 -2
  203. package/dist/le-kit/p-05ccab91.entry.js.map +0 -1
  204. package/dist/le-kit/p-06d2d79c.entry.js +0 -2
  205. package/dist/le-kit/p-33c2168a.entry.js +0 -2
  206. package/dist/le-kit/p-4a45ff67.entry.js +0 -2
  207. package/dist/le-kit/p-5d72c894.entry.js.map +0 -1
  208. package/dist/le-kit/p-9880466c.entry.js +0 -2
  209. package/dist/le-kit/p-C-Chwj1b.js.map +0 -1
  210. package/dist/le-kit/p-e1846fc2.entry.js +0 -2
  211. package/dist/le-kit/p-ea71f22c.entry.js.map +0 -1
  212. package/dist/le-kit/p-f8034500.entry.js +0 -2
  213. /package/dist/collection/components/le-box/{le-box.default.css → le-box.css} +0 -0
  214. /package/dist/collection/components/le-card/{le-card.default.css → le-card.css} +0 -0
  215. /package/dist/collection/components/le-text/{le-text.default.css → le-text.css} +0 -0
  216. /package/dist/le-kit/{p-d161946c.entry.js.map → p-33a24394.entry.js.map} +0 -0
  217. /package/dist/le-kit/{p-3d22aeb2.entry.js.map → p-36f126bb.entry.js.map} +0 -0
  218. /package/dist/le-kit/{p-3d873cdb.entry.js.map → p-3f31e31b.entry.js.map} +0 -0
  219. /package/dist/le-kit/{p-2230ecd7.entry.js.map → p-7201ae65.entry.js.map} +0 -0
  220. /package/dist/le-kit/{p-4a45ff67.entry.js.map → p-7a60bfff.entry.js.map} +0 -0
  221. /package/dist/le-kit/{p-923828fe.entry.js.map → p-9863d6fb.entry.js.map} +0 -0
  222. /package/dist/le-kit/{p-be2a7276.entry.js.map → p-bf66757c.entry.js.map} +0 -0
  223. /package/dist/le-kit/{p-68d836a3.entry.js.map → p-d1eee582.entry.js.map} +0 -0
  224. /package/dist/le-kit/{p-e6b2cf9a.entry.js.map → p-d449a88b.entry.js.map} +0 -0
@@ -10,11 +10,15 @@ import { LeMultiOptionSelectDetail, LeOption, LeOptionSelectDetail, LeOptionValu
10
10
  import { LeNavigationItemSelectDetail, LeNavigationItemToggleDetail } from "./components/le-navigation/le-navigation";
11
11
  import { LeKitMode } from "./global/app";
12
12
  import { PopupPosition, PopupResult, PopupType } from "./components/le-popup/le-popup";
13
+ import { LeSidePanelNarrowBehavior, LeSidePanelSide } from "./components/le-side-panel/le-side-panel";
14
+ import { LeSidePanelRequestToggleDetail, LeSidePanelToggleAction } from "./components/le-side-panel-toggle/le-side-panel-toggle";
13
15
  export { LeBarOverflowChangeDetail } from "./components/le-bar/le-bar";
14
16
  export { LeMultiOptionSelectDetail, LeOption, LeOptionSelectDetail, LeOptionValue } from "./types/options";
15
17
  export { LeNavigationItemSelectDetail, LeNavigationItemToggleDetail } from "./components/le-navigation/le-navigation";
16
18
  export { LeKitMode } from "./global/app";
17
19
  export { PopupPosition, PopupResult, PopupType } from "./components/le-popup/le-popup";
20
+ export { LeSidePanelNarrowBehavior, LeSidePanelSide } from "./components/le-side-panel/le-side-panel";
21
+ export { LeSidePanelRequestToggleDetail, LeSidePanelToggleAction } from "./components/le-side-panel-toggle/le-side-panel-toggle";
18
22
  export namespace Components {
19
23
  /**
20
24
  * A flexible bar component that handles overflow gracefully.
@@ -1252,6 +1256,134 @@ export namespace Components {
1252
1256
  */
1253
1257
  "variant": 'default' | 'outlined' | 'solid';
1254
1258
  }
1259
+ interface LeSidePanel {
1260
+ /**
1261
+ * When crossing to narrow mode, automatically hide the panel (open=false).
1262
+ * @default true
1263
+ */
1264
+ "autoHideOnNarrow": boolean;
1265
+ /**
1266
+ * When crossing to wide mode, automatically show the panel (collapsed=false).
1267
+ * @default true
1268
+ */
1269
+ "autoShowOnWide": boolean;
1270
+ /**
1271
+ * Width breakpoint (in px or a CSS var like `--le-breakpoint-md`) below which the panel enters "narrow" mode.
1272
+ */
1273
+ "collapseAt"?: string;
1274
+ /**
1275
+ * Panel collapsed state for wide mode (fully hidden).
1276
+ * @default false
1277
+ */
1278
+ "collapsed": boolean;
1279
+ /**
1280
+ * Maximum allowed width when resizable.
1281
+ * @default 420
1282
+ */
1283
+ "maxPanelWidth": number;
1284
+ /**
1285
+ * Minimum allowed width when resizable.
1286
+ * @default 220
1287
+ */
1288
+ "minPanelWidth": number;
1289
+ /**
1290
+ * Behavior when in narrow mode.
1291
+ * @default 'overlay'
1292
+ */
1293
+ "narrowBehavior": LeSidePanelNarrowBehavior;
1294
+ /**
1295
+ * Panel open state for narrow mode. - overlay: controls modal drawer visibility - push: controls whether panel is shown (non-modal)
1296
+ * @default false
1297
+ */
1298
+ "open": boolean;
1299
+ /**
1300
+ * Optional id used to match toggle requests. If set, the panel only responds to toggle events with the same `panelId`.
1301
+ */
1302
+ "panelId"?: string;
1303
+ /**
1304
+ * Accessible label for the panel navigation region.
1305
+ * @default 'Navigation'
1306
+ */
1307
+ "panelLabel": string;
1308
+ /**
1309
+ * Default panel width in pixels.
1310
+ * @default 280
1311
+ */
1312
+ "panelWidth": number;
1313
+ /**
1314
+ * When set, panel width + collapsed state are persisted in localStorage.
1315
+ */
1316
+ "persistKey"?: string;
1317
+ /**
1318
+ * Allows users to resize the panel by dragging its edge.
1319
+ * @default false
1320
+ */
1321
+ "resizable": boolean;
1322
+ /**
1323
+ * Show a close button inside the panel (primarily used in narrow overlay mode).
1324
+ * @default true
1325
+ */
1326
+ "showCloseButton": boolean;
1327
+ /**
1328
+ * Which side the panel is attached to.
1329
+ * @default 'start'
1330
+ */
1331
+ "side": LeSidePanelSide;
1332
+ }
1333
+ interface LeSidePanelToggle {
1334
+ /**
1335
+ * Action to emit. Default toggles the panel.
1336
+ * @default 'toggle'
1337
+ */
1338
+ "action": LeSidePanelToggleAction;
1339
+ /**
1340
+ * @default 'center'
1341
+ */
1342
+ "align": 'start' | 'center' | 'space-between' | 'end';
1343
+ /**
1344
+ * @default 'primary'
1345
+ */
1346
+ "color": 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';
1347
+ /**
1348
+ * Disables the toggle.
1349
+ * @default false
1350
+ */
1351
+ "disabled": boolean;
1352
+ /**
1353
+ * @default false
1354
+ */
1355
+ "fullWidth": boolean;
1356
+ "href"?: string;
1357
+ "iconEnd"?: string | Node;
1358
+ "iconOnly"?: string | Node;
1359
+ "iconStart"?: string | Node;
1360
+ "mode": 'default' | 'admin';
1361
+ /**
1362
+ * Optional id used to target a specific panel.
1363
+ */
1364
+ "panelId"?: string;
1365
+ /**
1366
+ * @default false
1367
+ */
1368
+ "selected": boolean;
1369
+ /**
1370
+ * Optional keyboard shortcut like `Mod+B` or `Alt+N`.
1371
+ */
1372
+ "shortcut"?: string;
1373
+ /**
1374
+ * @default 'medium'
1375
+ */
1376
+ "size": 'small' | 'medium' | 'large';
1377
+ "target"?: string;
1378
+ /**
1379
+ * @default 'button'
1380
+ */
1381
+ "type": 'button' | 'submit' | 'reset';
1382
+ /**
1383
+ * @default 'solid'
1384
+ */
1385
+ "variant": 'solid' | 'outlined' | 'clear' | 'system';
1386
+ }
1255
1387
  /**
1256
1388
  * Slot placeholder component for admin/CMS mode.
1257
1389
  * This component renders a visual placeholder for slots when in admin mode,
@@ -1821,7 +1953,17 @@ export namespace Components {
1821
1953
  * @allowedValues p | h1 | h2 | h3 | h4 | h5 | h6 | code | quote | label | small
1822
1954
  * @default 'p'
1823
1955
  */
1824
- "variant": 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'code' | 'quote' | 'label' | 'small';
1956
+ "variant": | 'p'
1957
+ | 'h1'
1958
+ | 'h2'
1959
+ | 'h3'
1960
+ | 'h4'
1961
+ | 'h5'
1962
+ | 'h6'
1963
+ | 'code'
1964
+ | 'quote'
1965
+ | 'label'
1966
+ | 'small';
1825
1967
  }
1826
1968
  interface LeTurntable {
1827
1969
  /**
@@ -1886,6 +2028,14 @@ export interface LeSelectCustomEvent<T> extends CustomEvent<T> {
1886
2028
  detail: T;
1887
2029
  target: HTMLLeSelectElement;
1888
2030
  }
2031
+ export interface LeSidePanelCustomEvent<T> extends CustomEvent<T> {
2032
+ detail: T;
2033
+ target: HTMLLeSidePanelElement;
2034
+ }
2035
+ export interface LeSidePanelToggleCustomEvent<T> extends CustomEvent<T> {
2036
+ detail: T;
2037
+ target: HTMLLeSidePanelToggleElement;
2038
+ }
1889
2039
  export interface LeSlotCustomEvent<T> extends CustomEvent<T> {
1890
2040
  detail: T;
1891
2041
  target: HTMLLeSlotElement;
@@ -2507,6 +2657,42 @@ declare global {
2507
2657
  prototype: HTMLLeSelectElement;
2508
2658
  new (): HTMLLeSelectElement;
2509
2659
  };
2660
+ interface HTMLLeSidePanelElementEventMap {
2661
+ "leSidePanelOpenChange": { open: boolean; panelId?: string };
2662
+ "leSidePanelCollapsedChange": { collapsed: boolean; panelId?: string };
2663
+ "leSidePanelWidthChange": { width: number; panelId?: string };
2664
+ }
2665
+ interface HTMLLeSidePanelElement extends Components.LeSidePanel, HTMLStencilElement {
2666
+ addEventListener<K extends keyof HTMLLeSidePanelElementEventMap>(type: K, listener: (this: HTMLLeSidePanelElement, ev: LeSidePanelCustomEvent<HTMLLeSidePanelElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2667
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2668
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2669
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2670
+ removeEventListener<K extends keyof HTMLLeSidePanelElementEventMap>(type: K, listener: (this: HTMLLeSidePanelElement, ev: LeSidePanelCustomEvent<HTMLLeSidePanelElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2671
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2672
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2673
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2674
+ }
2675
+ var HTMLLeSidePanelElement: {
2676
+ prototype: HTMLLeSidePanelElement;
2677
+ new (): HTMLLeSidePanelElement;
2678
+ };
2679
+ interface HTMLLeSidePanelToggleElementEventMap {
2680
+ "leSidePanelRequestToggle": LeSidePanelRequestToggleDetail;
2681
+ }
2682
+ interface HTMLLeSidePanelToggleElement extends Components.LeSidePanelToggle, HTMLStencilElement {
2683
+ addEventListener<K extends keyof HTMLLeSidePanelToggleElementEventMap>(type: K, listener: (this: HTMLLeSidePanelToggleElement, ev: LeSidePanelToggleCustomEvent<HTMLLeSidePanelToggleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2684
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2685
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
2686
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
2687
+ removeEventListener<K extends keyof HTMLLeSidePanelToggleElementEventMap>(type: K, listener: (this: HTMLLeSidePanelToggleElement, ev: LeSidePanelToggleCustomEvent<HTMLLeSidePanelToggleElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
2688
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2689
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
2690
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
2691
+ }
2692
+ var HTMLLeSidePanelToggleElement: {
2693
+ prototype: HTMLLeSidePanelToggleElement;
2694
+ new (): HTMLLeSidePanelToggleElement;
2695
+ };
2510
2696
  interface HTMLLeSlotElementEventMap {
2511
2697
  "leSlotChange": { name: string; value: string; isValid: boolean };
2512
2698
  }
@@ -2793,6 +2979,8 @@ declare global {
2793
2979
  "le-scroll-progress": HTMLLeScrollProgressElement;
2794
2980
  "le-segmented-control": HTMLLeSegmentedControlElement;
2795
2981
  "le-select": HTMLLeSelectElement;
2982
+ "le-side-panel": HTMLLeSidePanelElement;
2983
+ "le-side-panel-toggle": HTMLLeSidePanelToggleElement;
2796
2984
  "le-slot": HTMLLeSlotElement;
2797
2985
  "le-stack": HTMLLeStackElement;
2798
2986
  "le-string-input": HTMLLeStringInputElement;
@@ -4095,6 +4283,138 @@ declare namespace LocalJSX {
4095
4283
  */
4096
4284
  "variant"?: 'default' | 'outlined' | 'solid';
4097
4285
  }
4286
+ interface LeSidePanel {
4287
+ /**
4288
+ * When crossing to narrow mode, automatically hide the panel (open=false).
4289
+ * @default true
4290
+ */
4291
+ "autoHideOnNarrow"?: boolean;
4292
+ /**
4293
+ * When crossing to wide mode, automatically show the panel (collapsed=false).
4294
+ * @default true
4295
+ */
4296
+ "autoShowOnWide"?: boolean;
4297
+ /**
4298
+ * Width breakpoint (in px or a CSS var like `--le-breakpoint-md`) below which the panel enters "narrow" mode.
4299
+ */
4300
+ "collapseAt"?: string;
4301
+ /**
4302
+ * Panel collapsed state for wide mode (fully hidden).
4303
+ * @default false
4304
+ */
4305
+ "collapsed"?: boolean;
4306
+ /**
4307
+ * Maximum allowed width when resizable.
4308
+ * @default 420
4309
+ */
4310
+ "maxPanelWidth"?: number;
4311
+ /**
4312
+ * Minimum allowed width when resizable.
4313
+ * @default 220
4314
+ */
4315
+ "minPanelWidth"?: number;
4316
+ /**
4317
+ * Behavior when in narrow mode.
4318
+ * @default 'overlay'
4319
+ */
4320
+ "narrowBehavior"?: LeSidePanelNarrowBehavior;
4321
+ "onLeSidePanelCollapsedChange"?: (event: LeSidePanelCustomEvent<{ collapsed: boolean; panelId?: string }>) => void;
4322
+ "onLeSidePanelOpenChange"?: (event: LeSidePanelCustomEvent<{ open: boolean; panelId?: string }>) => void;
4323
+ "onLeSidePanelWidthChange"?: (event: LeSidePanelCustomEvent<{ width: number; panelId?: string }>) => void;
4324
+ /**
4325
+ * Panel open state for narrow mode. - overlay: controls modal drawer visibility - push: controls whether panel is shown (non-modal)
4326
+ * @default false
4327
+ */
4328
+ "open"?: boolean;
4329
+ /**
4330
+ * Optional id used to match toggle requests. If set, the panel only responds to toggle events with the same `panelId`.
4331
+ */
4332
+ "panelId"?: string;
4333
+ /**
4334
+ * Accessible label for the panel navigation region.
4335
+ * @default 'Navigation'
4336
+ */
4337
+ "panelLabel"?: string;
4338
+ /**
4339
+ * Default panel width in pixels.
4340
+ * @default 280
4341
+ */
4342
+ "panelWidth"?: number;
4343
+ /**
4344
+ * When set, panel width + collapsed state are persisted in localStorage.
4345
+ */
4346
+ "persistKey"?: string;
4347
+ /**
4348
+ * Allows users to resize the panel by dragging its edge.
4349
+ * @default false
4350
+ */
4351
+ "resizable"?: boolean;
4352
+ /**
4353
+ * Show a close button inside the panel (primarily used in narrow overlay mode).
4354
+ * @default true
4355
+ */
4356
+ "showCloseButton"?: boolean;
4357
+ /**
4358
+ * Which side the panel is attached to.
4359
+ * @default 'start'
4360
+ */
4361
+ "side"?: LeSidePanelSide;
4362
+ }
4363
+ interface LeSidePanelToggle {
4364
+ /**
4365
+ * Action to emit. Default toggles the panel.
4366
+ * @default 'toggle'
4367
+ */
4368
+ "action"?: LeSidePanelToggleAction;
4369
+ /**
4370
+ * @default 'center'
4371
+ */
4372
+ "align"?: 'start' | 'center' | 'space-between' | 'end';
4373
+ /**
4374
+ * @default 'primary'
4375
+ */
4376
+ "color"?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info';
4377
+ /**
4378
+ * Disables the toggle.
4379
+ * @default false
4380
+ */
4381
+ "disabled"?: boolean;
4382
+ /**
4383
+ * @default false
4384
+ */
4385
+ "fullWidth"?: boolean;
4386
+ "href"?: string;
4387
+ "iconEnd"?: string | Node;
4388
+ "iconOnly"?: string | Node;
4389
+ "iconStart"?: string | Node;
4390
+ "mode"?: 'default' | 'admin';
4391
+ "onLeSidePanelRequestToggle"?: (event: LeSidePanelToggleCustomEvent<LeSidePanelRequestToggleDetail>) => void;
4392
+ /**
4393
+ * Optional id used to target a specific panel.
4394
+ */
4395
+ "panelId"?: string;
4396
+ /**
4397
+ * @default false
4398
+ */
4399
+ "selected"?: boolean;
4400
+ /**
4401
+ * Optional keyboard shortcut like `Mod+B` or `Alt+N`.
4402
+ */
4403
+ "shortcut"?: string;
4404
+ /**
4405
+ * @default 'medium'
4406
+ */
4407
+ "size"?: 'small' | 'medium' | 'large';
4408
+ "target"?: string;
4409
+ /**
4410
+ * @default 'button'
4411
+ */
4412
+ "type"?: 'button' | 'submit' | 'reset';
4413
+ /**
4414
+ * @default 'solid'
4415
+ */
4416
+ "variant"?: 'solid' | 'outlined' | 'clear' | 'system';
4417
+ }
4098
4418
  /**
4099
4419
  * Slot placeholder component for admin/CMS mode.
4100
4420
  * This component renders a visual placeholder for slots when in admin mode,
@@ -4684,7 +5004,17 @@ declare namespace LocalJSX {
4684
5004
  * @allowedValues p | h1 | h2 | h3 | h4 | h5 | h6 | code | quote | label | small
4685
5005
  * @default 'p'
4686
5006
  */
4687
- "variant"?: 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'code' | 'quote' | 'label' | 'small';
5007
+ "variant"?: | 'p'
5008
+ | 'h1'
5009
+ | 'h2'
5010
+ | 'h3'
5011
+ | 'h4'
5012
+ | 'h5'
5013
+ | 'h6'
5014
+ | 'code'
5015
+ | 'quote'
5016
+ | 'label'
5017
+ | 'small';
4688
5018
  }
4689
5019
  interface LeTurntable {
4690
5020
  /**
@@ -4719,6 +5049,8 @@ declare namespace LocalJSX {
4719
5049
  "le-scroll-progress": LeScrollProgress;
4720
5050
  "le-segmented-control": LeSegmentedControl;
4721
5051
  "le-select": LeSelect;
5052
+ "le-side-panel": LeSidePanel;
5053
+ "le-side-panel-toggle": LeSidePanelToggle;
4722
5054
  "le-slot": LeSlot;
4723
5055
  "le-stack": LeStack;
4724
5056
  "le-string-input": LeStringInput;
@@ -5056,6 +5388,8 @@ declare module "@stencil/core" {
5056
5388
  * ```
5057
5389
  */
5058
5390
  "le-select": LocalJSX.LeSelect & JSXBase.HTMLAttributes<HTMLLeSelectElement>;
5391
+ "le-side-panel": LocalJSX.LeSidePanel & JSXBase.HTMLAttributes<HTMLLeSidePanelElement>;
5392
+ "le-side-panel-toggle": LocalJSX.LeSidePanelToggle & JSXBase.HTMLAttributes<HTMLLeSidePanelToggleElement>;
5059
5393
  /**
5060
5394
  * Slot placeholder component for admin/CMS mode.
5061
5395
  * This component renders a visual placeholder for slots when in admin mode,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "le-kit",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "description": "Themable web components library with CMS admin mode support",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",