@sekiui/elements 0.0.56 → 0.0.59

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 (269) hide show
  1. package/dist/cdn/index.js +1053 -91
  2. package/dist/cdn/p-BJCq8m2o.js +138 -0
  3. package/dist/cdn/p-Cpa2leXN.js +111 -0
  4. package/dist/cdn/{p-bMBhrs0a.js → p-DxUZSKfL.js} +467 -9
  5. package/dist/cdn/seki-badge.d.ts +11 -0
  6. package/dist/cdn/seki-badge.js +109 -0
  7. package/dist/cdn/seki-button.js +1 -1
  8. package/dist/cdn/seki-card-action.js +1 -1
  9. package/dist/cdn/seki-card-content.js +1 -1
  10. package/dist/cdn/seki-card-description.js +1 -1
  11. package/dist/cdn/seki-card-footer.js +1 -1
  12. package/dist/cdn/seki-card-header.js +1 -1
  13. package/dist/cdn/seki-card-title.js +1 -1
  14. package/dist/cdn/seki-card.js +1 -1
  15. package/dist/cdn/seki-field-description.js +1 -1
  16. package/dist/cdn/seki-field-error.js +1 -1
  17. package/dist/cdn/seki-field-group.js +1 -1
  18. package/dist/cdn/seki-field-label.js +1 -1
  19. package/dist/cdn/seki-field-legend.js +1 -1
  20. package/dist/cdn/seki-field.js +1 -1
  21. package/dist/cdn/seki-fieldset.js +1 -1
  22. package/dist/cdn/seki-input.js +1 -1
  23. package/dist/cdn/seki-select-content.js +1 -1
  24. package/dist/cdn/seki-select-group.js +1 -1
  25. package/dist/cdn/seki-select-option.js +1 -1
  26. package/dist/cdn/seki-select-trigger.js +1 -1
  27. package/dist/cdn/seki-select.js +1 -1
  28. package/dist/cdn/seki-sidebar-content.d.ts +11 -0
  29. package/dist/cdn/seki-sidebar-content.js +38 -0
  30. package/dist/cdn/seki-sidebar-footer.d.ts +11 -0
  31. package/dist/cdn/seki-sidebar-footer.js +38 -0
  32. package/dist/cdn/seki-sidebar-group.d.ts +11 -0
  33. package/dist/cdn/seki-sidebar-group.js +131 -0
  34. package/dist/cdn/seki-sidebar-header.d.ts +11 -0
  35. package/dist/cdn/seki-sidebar-header.js +38 -0
  36. package/dist/cdn/seki-sidebar-menu-item.d.ts +11 -0
  37. package/dist/cdn/seki-sidebar-menu-item.js +200 -0
  38. package/dist/cdn/seki-sidebar-menu-sub.d.ts +11 -0
  39. package/dist/cdn/seki-sidebar-menu-sub.js +123 -0
  40. package/dist/cdn/seki-sidebar-menu.d.ts +11 -0
  41. package/dist/cdn/seki-sidebar-menu.js +38 -0
  42. package/dist/cdn/seki-sidebar-trigger.d.ts +11 -0
  43. package/dist/cdn/seki-sidebar-trigger.js +109 -0
  44. package/dist/cdn/seki-sidebar.d.ts +11 -0
  45. package/dist/cdn/seki-sidebar.js +380 -0
  46. package/dist/cdn/seki-skeleton.js +2 -2
  47. package/dist/cdn/seki-switch.js +1 -1
  48. package/dist/cdn/seki-tooltip.js +1 -1
  49. package/dist/cjs/{index-Dd6_-KaR.js → index-D4RM3EID.js} +466 -8
  50. package/dist/cjs/index.cjs.js +1115 -63
  51. package/dist/cjs/keyboard-Cjl5HYES.js +142 -0
  52. package/dist/cjs/loader.cjs.js +2 -2
  53. package/dist/cjs/seki-badge.cjs.entry.js +85 -0
  54. package/dist/cjs/seki-button.cjs.entry.js +1 -1
  55. package/dist/cjs/seki-card-action.cjs.entry.js +1 -1
  56. package/dist/cjs/seki-card-content.cjs.entry.js +1 -1
  57. package/dist/cjs/seki-card-description.cjs.entry.js +1 -1
  58. package/dist/cjs/seki-card-footer.cjs.entry.js +1 -1
  59. package/dist/cjs/seki-card-header.cjs.entry.js +1 -1
  60. package/dist/cjs/seki-card-title.cjs.entry.js +1 -1
  61. package/dist/cjs/seki-card.cjs.entry.js +1 -1
  62. package/dist/cjs/seki-field-description.cjs.entry.js +1 -1
  63. package/dist/cjs/seki-field-error.cjs.entry.js +1 -1
  64. package/dist/cjs/seki-field-group.cjs.entry.js +1 -1
  65. package/dist/cjs/seki-field-label.cjs.entry.js +1 -1
  66. package/dist/cjs/seki-field-legend.cjs.entry.js +1 -1
  67. package/dist/cjs/seki-field.cjs.entry.js +1 -1
  68. package/dist/cjs/seki-fieldset.cjs.entry.js +1 -1
  69. package/dist/cjs/seki-input.cjs.entry.js +1 -1
  70. package/dist/cjs/seki-select-content.cjs.entry.js +1 -1
  71. package/dist/cjs/seki-select-group.cjs.entry.js +1 -1
  72. package/dist/cjs/seki-select-option.cjs.entry.js +1 -1
  73. package/dist/cjs/seki-select-trigger.cjs.entry.js +1 -1
  74. package/dist/cjs/seki-select.cjs.entry.js +1 -1
  75. package/dist/cjs/seki-sidebar-content.cjs.entry.js +20 -0
  76. package/dist/cjs/seki-sidebar-footer.cjs.entry.js +20 -0
  77. package/dist/cjs/seki-sidebar-group.cjs.entry.js +105 -0
  78. package/dist/cjs/seki-sidebar-header.cjs.entry.js +20 -0
  79. package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +174 -0
  80. package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +99 -0
  81. package/dist/cjs/seki-sidebar-menu.cjs.entry.js +20 -0
  82. package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +86 -0
  83. package/dist/cjs/seki-sidebar.cjs.entry.js +342 -0
  84. package/dist/cjs/seki-skeleton.cjs.entry.js +2 -2
  85. package/dist/cjs/seki-switch.cjs.entry.js +81 -3
  86. package/dist/cjs/seki-tooltip.cjs.entry.js +1 -1
  87. package/dist/cjs/sekiui.cjs.js +3 -3
  88. package/dist/collection/collection-manifest.json +12 -2
  89. package/dist/collection/components/badge/seki-badge.css +140 -0
  90. package/dist/collection/components/badge/seki-badge.interface.js +1 -0
  91. package/dist/collection/components/badge/seki-badge.js +199 -0
  92. package/dist/collection/components/sidebar/seki-sidebar-content.css +82 -0
  93. package/dist/collection/components/sidebar/seki-sidebar-content.js +33 -0
  94. package/dist/collection/components/sidebar/seki-sidebar-footer.css +44 -0
  95. package/dist/collection/components/sidebar/seki-sidebar-footer.js +31 -0
  96. package/dist/collection/components/sidebar/seki-sidebar-group.css +158 -0
  97. package/dist/collection/components/sidebar/seki-sidebar-group.js +300 -0
  98. package/dist/collection/components/sidebar/seki-sidebar-header.css +44 -0
  99. package/dist/collection/components/sidebar/seki-sidebar-header.js +32 -0
  100. package/dist/collection/components/sidebar/seki-sidebar-menu-item.css +196 -0
  101. package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +403 -0
  102. package/dist/collection/components/sidebar/seki-sidebar-menu-sub.css +357 -0
  103. package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +256 -0
  104. package/dist/collection/components/sidebar/seki-sidebar-menu.css +25 -0
  105. package/dist/collection/components/sidebar/seki-sidebar-menu.js +32 -0
  106. package/dist/collection/components/sidebar/seki-sidebar-trigger.css +68 -0
  107. package/dist/collection/components/sidebar/seki-sidebar-trigger.js +175 -0
  108. package/dist/collection/components/sidebar/seki-sidebar.css +352 -0
  109. package/dist/collection/components/sidebar/seki-sidebar.js +812 -0
  110. package/dist/collection/components/sidebar/types.js +18 -0
  111. package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
  112. package/dist/collection/index.js +7 -0
  113. package/dist/collection/services/focus.js +192 -0
  114. package/dist/collection/services/index.js +7 -0
  115. package/dist/collection/services/keyboard.js +136 -0
  116. package/dist/collection/services/media-query.js +254 -0
  117. package/dist/collection/types.js +41 -0
  118. package/dist/collection/utils/a11y.js +291 -0
  119. package/dist/collection/utils/common.js +286 -0
  120. package/dist/components/index.js +1053 -91
  121. package/dist/components/p-BJCq8m2o.js +138 -0
  122. package/dist/components/{p-QhPshhKB.js → p-BU1kuAZS.js} +467 -9
  123. package/dist/components/p-wQy1sEm6.js +111 -0
  124. package/dist/components/seki-badge.d.ts +11 -0
  125. package/dist/components/seki-badge.js +109 -0
  126. package/dist/components/seki-button.js +1 -1
  127. package/dist/components/seki-card-action.js +1 -1
  128. package/dist/components/seki-card-content.js +1 -1
  129. package/dist/components/seki-card-description.js +1 -1
  130. package/dist/components/seki-card-footer.js +1 -1
  131. package/dist/components/seki-card-header.js +1 -1
  132. package/dist/components/seki-card-title.js +1 -1
  133. package/dist/components/seki-card.js +1 -1
  134. package/dist/components/seki-field-description.js +1 -1
  135. package/dist/components/seki-field-error.js +1 -1
  136. package/dist/components/seki-field-group.js +1 -1
  137. package/dist/components/seki-field-label.js +1 -1
  138. package/dist/components/seki-field-legend.js +1 -1
  139. package/dist/components/seki-field.js +1 -1
  140. package/dist/components/seki-fieldset.js +1 -1
  141. package/dist/components/seki-input.js +1 -1
  142. package/dist/components/seki-select-content.js +1 -1
  143. package/dist/components/seki-select-group.js +1 -1
  144. package/dist/components/seki-select-option.js +1 -1
  145. package/dist/components/seki-select-trigger.js +1 -1
  146. package/dist/components/seki-select.js +1 -1
  147. package/dist/components/seki-sidebar-content.d.ts +11 -0
  148. package/dist/components/seki-sidebar-content.js +38 -0
  149. package/dist/components/seki-sidebar-footer.d.ts +11 -0
  150. package/dist/components/seki-sidebar-footer.js +38 -0
  151. package/dist/components/seki-sidebar-group.d.ts +11 -0
  152. package/dist/components/seki-sidebar-group.js +131 -0
  153. package/dist/components/seki-sidebar-header.d.ts +11 -0
  154. package/dist/components/seki-sidebar-header.js +38 -0
  155. package/dist/components/seki-sidebar-menu-item.d.ts +11 -0
  156. package/dist/components/seki-sidebar-menu-item.js +200 -0
  157. package/dist/components/seki-sidebar-menu-sub.d.ts +11 -0
  158. package/dist/components/seki-sidebar-menu-sub.js +123 -0
  159. package/dist/components/seki-sidebar-menu.d.ts +11 -0
  160. package/dist/components/seki-sidebar-menu.js +38 -0
  161. package/dist/components/seki-sidebar-trigger.d.ts +11 -0
  162. package/dist/components/seki-sidebar-trigger.js +109 -0
  163. package/dist/components/seki-sidebar.d.ts +11 -0
  164. package/dist/components/seki-sidebar.js +380 -0
  165. package/dist/components/seki-skeleton.js +2 -2
  166. package/dist/components/seki-switch.js +1 -1
  167. package/dist/components/seki-tooltip.js +1 -1
  168. package/dist/esm/{index-CuXbV_yz.js → index-DI_YjzRi.js} +466 -8
  169. package/dist/esm/index.js +1053 -63
  170. package/dist/esm/keyboard-BJCq8m2o.js +138 -0
  171. package/dist/esm/loader.js +3 -3
  172. package/dist/esm/seki-badge.entry.js +83 -0
  173. package/dist/esm/seki-button.entry.js +1 -1
  174. package/dist/esm/seki-card-action.entry.js +1 -1
  175. package/dist/esm/seki-card-content.entry.js +1 -1
  176. package/dist/esm/seki-card-description.entry.js +1 -1
  177. package/dist/esm/seki-card-footer.entry.js +1 -1
  178. package/dist/esm/seki-card-header.entry.js +1 -1
  179. package/dist/esm/seki-card-title.entry.js +1 -1
  180. package/dist/esm/seki-card.entry.js +1 -1
  181. package/dist/esm/seki-field-description.entry.js +1 -1
  182. package/dist/esm/seki-field-error.entry.js +1 -1
  183. package/dist/esm/seki-field-group.entry.js +1 -1
  184. package/dist/esm/seki-field-label.entry.js +1 -1
  185. package/dist/esm/seki-field-legend.entry.js +1 -1
  186. package/dist/esm/seki-field.entry.js +1 -1
  187. package/dist/esm/seki-fieldset.entry.js +1 -1
  188. package/dist/esm/seki-input.entry.js +1 -1
  189. package/dist/esm/seki-select-content.entry.js +1 -1
  190. package/dist/esm/seki-select-group.entry.js +1 -1
  191. package/dist/esm/seki-select-option.entry.js +1 -1
  192. package/dist/esm/seki-select-trigger.entry.js +1 -1
  193. package/dist/esm/seki-select.entry.js +1 -1
  194. package/dist/esm/seki-sidebar-content.entry.js +18 -0
  195. package/dist/esm/seki-sidebar-footer.entry.js +18 -0
  196. package/dist/esm/seki-sidebar-group.entry.js +103 -0
  197. package/dist/esm/seki-sidebar-header.entry.js +18 -0
  198. package/dist/esm/seki-sidebar-menu-item.entry.js +172 -0
  199. package/dist/esm/seki-sidebar-menu-sub.entry.js +97 -0
  200. package/dist/esm/seki-sidebar-menu.entry.js +18 -0
  201. package/dist/esm/seki-sidebar-trigger.entry.js +84 -0
  202. package/dist/esm/seki-sidebar.entry.js +340 -0
  203. package/dist/esm/seki-skeleton.entry.js +2 -2
  204. package/dist/esm/seki-switch.entry.js +84 -2
  205. package/dist/esm/seki-tooltip.entry.js +1 -1
  206. package/dist/esm/sekiui.js +4 -4
  207. package/dist/sekiui/index.esm.js +1 -1
  208. package/dist/sekiui/p-0af1b81a.entry.js +1 -0
  209. package/dist/sekiui/p-0ca6b9f0.entry.js +1 -0
  210. package/dist/sekiui/{p-cf11115c.entry.js → p-1480b41a.entry.js} +1 -1
  211. package/dist/sekiui/{p-dd1e3e87.entry.js → p-161be4d4.entry.js} +1 -1
  212. package/dist/sekiui/{p-e71ad432.entry.js → p-1685e673.entry.js} +1 -1
  213. package/dist/sekiui/p-26b629bc.entry.js +1 -0
  214. package/dist/sekiui/{p-0544d787.entry.js → p-27deb555.entry.js} +1 -1
  215. package/dist/sekiui/p-37fa684c.entry.js +1 -0
  216. package/dist/sekiui/{p-1607dc4d.entry.js → p-402a5db6.entry.js} +1 -1
  217. package/dist/sekiui/{p-6bde807e.entry.js → p-40ba3ad6.entry.js} +1 -1
  218. package/dist/sekiui/{p-d4c92041.entry.js → p-4867d02d.entry.js} +1 -1
  219. package/dist/sekiui/p-4b29dbda.entry.js +1 -0
  220. package/dist/sekiui/{p-b10d81a6.entry.js → p-587fd313.entry.js} +1 -1
  221. package/dist/sekiui/{p-3e088b5a.entry.js → p-58ab95eb.entry.js} +1 -1
  222. package/dist/sekiui/p-60ff3543.entry.js +1 -0
  223. package/dist/sekiui/{p-9af5286b.entry.js → p-68b1fa1a.entry.js} +1 -1
  224. package/dist/sekiui/{p-43f7c542.entry.js → p-6a922121.entry.js} +1 -1
  225. package/dist/sekiui/{p-4d57c6ea.entry.js → p-6f5bf5af.entry.js} +1 -1
  226. package/dist/sekiui/{p-88f91658.entry.js → p-84d47cab.entry.js} +1 -1
  227. package/dist/sekiui/p-9dcd07b2.entry.js +1 -0
  228. package/dist/sekiui/p-BJCq8m2o.js +1 -0
  229. package/dist/sekiui/p-DI_YjzRi.js +2 -0
  230. package/dist/sekiui/p-ab9d1ba5.entry.js +1 -0
  231. package/dist/sekiui/p-b525d85a.entry.js +1 -0
  232. package/dist/sekiui/{p-ed440425.entry.js → p-b64e7007.entry.js} +1 -1
  233. package/dist/sekiui/{p-6e238adf.entry.js → p-b7f2b568.entry.js} +1 -1
  234. package/dist/sekiui/{p-009183ab.entry.js → p-c642ab55.entry.js} +1 -1
  235. package/dist/sekiui/{p-eefbc037.entry.js → p-c74bd925.entry.js} +1 -1
  236. package/dist/sekiui/p-c83d94c4.entry.js +1 -0
  237. package/dist/sekiui/p-ce1bbe04.entry.js +1 -0
  238. package/dist/sekiui/{p-b22df79e.entry.js → p-cf552ff9.entry.js} +1 -1
  239. package/dist/sekiui/{p-81709fc2.entry.js → p-d194caf1.entry.js} +1 -1
  240. package/dist/sekiui/{p-b479935d.entry.js → p-dfa2f8cd.entry.js} +1 -1
  241. package/dist/sekiui/{p-eedf44b5.entry.js → p-e6d5f56e.entry.js} +1 -1
  242. package/dist/sekiui/{p-97e6e5ce.entry.js → p-f1ffc3fa.entry.js} +1 -1
  243. package/dist/sekiui/{p-35f8f9c4.entry.js → p-f863f36b.entry.js} +1 -1
  244. package/dist/sekiui/sekiui.esm.js +1 -1
  245. package/dist/types/components/badge/seki-badge.d.ts +43 -0
  246. package/dist/types/components/badge/seki-badge.interface.d.ts +88 -0
  247. package/dist/types/components/sidebar/seki-sidebar-content.d.ts +18 -0
  248. package/dist/types/components/sidebar/seki-sidebar-footer.d.ts +16 -0
  249. package/dist/types/components/sidebar/seki-sidebar-group.d.ts +81 -0
  250. package/dist/types/components/sidebar/seki-sidebar-header.d.ts +17 -0
  251. package/dist/types/components/sidebar/seki-sidebar-menu-item.d.ts +104 -0
  252. package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +81 -0
  253. package/dist/types/components/sidebar/seki-sidebar-menu.d.ts +17 -0
  254. package/dist/types/components/sidebar/seki-sidebar-trigger.d.ts +53 -0
  255. package/dist/types/components/sidebar/seki-sidebar.d.ts +185 -0
  256. package/dist/types/components/sidebar/types.d.ts +245 -0
  257. package/dist/types/components.d.ts +599 -0
  258. package/dist/types/index.d.ts +4 -0
  259. package/dist/types/services/focus.d.ts +74 -0
  260. package/dist/types/services/index.d.ts +7 -0
  261. package/dist/types/services/keyboard.d.ts +74 -0
  262. package/dist/types/services/media-query.d.ts +121 -0
  263. package/dist/types/stencil-public-runtime.d.ts +19 -9
  264. package/dist/types/types.d.ts +105 -0
  265. package/dist/types/utils/a11y.d.ts +130 -0
  266. package/dist/types/utils/common.d.ts +142 -0
  267. package/package.json +10 -2
  268. package/dist/sekiui/p-9fe07f6e.entry.js +0 -1
  269. package/dist/sekiui/p-CuXbV_yz.js +0 -2
@@ -5,13 +5,48 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { BadgeVariant } from "./components/badge/seki-badge.interface";
8
9
  import { Event } from "./stencil-public-runtime";
9
10
  import { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
11
+ import { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
10
12
  import { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
13
+ export { BadgeVariant } from "./components/badge/seki-badge.interface";
11
14
  export { Event } from "./stencil-public-runtime";
12
15
  export { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
16
+ export { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
13
17
  export { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
14
18
  export namespace Components {
19
+ /**
20
+ * seki-badge: Presentational badge component for displaying small pieces of information
21
+ * @component Badge
22
+ * @example <seki-badge variant="default">Label</seki-badge>
23
+ * <seki-badge variant="secondary">
24
+ * <span slot="icon">ℹ</span>
25
+ * Secondary
26
+ * </seki-badge>
27
+ */
28
+ interface SekiBadge {
29
+ /**
30
+ * Maximum limit for number badge If number exceeds this, shows "max+" instead Only used when number prop is set
31
+ * @default undefined
32
+ */
33
+ "max"?: number;
34
+ /**
35
+ * Number to display in the badge When set, displays the number instead of text content
36
+ * @default undefined
37
+ */
38
+ "number"?: number;
39
+ /**
40
+ * Enable rounded pill styling
41
+ * @default false
42
+ */
43
+ "rounded"?: boolean;
44
+ /**
45
+ * Visual variant of the badge
46
+ * @default 'default'
47
+ */
48
+ "variant"?: BadgeVariant;
49
+ }
15
50
  interface SekiButton {
16
51
  /**
17
52
  * Accessible label for screen readers. Required for icon-only buttons.
@@ -416,6 +451,194 @@ export namespace Components {
416
451
  }
417
452
  interface SekiSelectTrigger {
418
453
  }
454
+ interface SekiSidebar {
455
+ /**
456
+ * Close the sidebar (set isOpen=false)
457
+ * @returns
458
+ */
459
+ "close": () => Promise<void>;
460
+ /**
461
+ * Collapse mechanism: offcanvas (slides), icon (shrinks), or none (fixed)
462
+ * @type {'offcanvas' | 'icon' | 'none'}
463
+ * @default 'offcanvas'
464
+ */
465
+ "collapseMode": SidebarProps['collapseMode'];
466
+ /**
467
+ * Initial open/closed state
468
+ * @type {boolean}
469
+ * @default true
470
+ */
471
+ "defaultOpen": boolean;
472
+ /**
473
+ * Get current sidebar state
474
+ * @returns
475
+ */
476
+ "getState": () => Promise<SidebarState>;
477
+ /**
478
+ * Viewport width for mobile detection (px)
479
+ * @type {number}
480
+ * @default 768
481
+ */
482
+ "mobileBreakpoint": number;
483
+ /**
484
+ * Callback fired when open state changes
485
+ */
486
+ "onOpenChange"?: (isOpen: boolean) => void;
487
+ /**
488
+ * Open the sidebar (set isOpen=true)
489
+ * @returns
490
+ */
491
+ "open": () => Promise<void>;
492
+ /**
493
+ * Storage key for persisted state
494
+ * @type {string}
495
+ * @default 'seki-sidebar-state'
496
+ */
497
+ "persistenceKey": string;
498
+ /**
499
+ * Persist state to localStorage
500
+ * @type {boolean}
501
+ * @default false
502
+ */
503
+ "persistent": boolean;
504
+ /**
505
+ * Update sidebar state
506
+ * @param state - Partial state object
507
+ * @returns
508
+ */
509
+ "setState": (state: Partial<SidebarState>) => Promise<void>;
510
+ /**
511
+ * Position: left or right side of viewport
512
+ * @type {'left' | 'right'}
513
+ * @default 'left'
514
+ */
515
+ "side": SidebarProps['side'];
516
+ /**
517
+ * Toggle the sidebar open/closed state
518
+ * @returns
519
+ */
520
+ "toggle": () => Promise<void>;
521
+ /**
522
+ * Layout variant: standard, floating (detached), or inset
523
+ * @type {'sidebar' | 'floating' | 'inset'}
524
+ * @default 'sidebar'
525
+ */
526
+ "variant": SidebarProps['variant'];
527
+ }
528
+ interface SekiSidebarContent {
529
+ }
530
+ interface SekiSidebarFooter {
531
+ }
532
+ interface SekiSidebarGroup {
533
+ /**
534
+ * Optional action button configuration
535
+ * @type {object}
536
+ */
537
+ "action"?: SidebarGroupProps['action'];
538
+ /**
539
+ * Allow collapsing this group
540
+ * @type {boolean}
541
+ * @default false
542
+ */
543
+ "collapsible": boolean;
544
+ /**
545
+ * Initial collapsed state
546
+ * @type {boolean}
547
+ * @default false
548
+ */
549
+ "defaultCollapsed": boolean;
550
+ /**
551
+ * Get current collapsed state
552
+ */
553
+ "isCollapsedState": () => Promise<boolean>;
554
+ /**
555
+ * Set collapsed state
556
+ */
557
+ "setCollapsed": (collapsed: boolean) => Promise<void>;
558
+ /**
559
+ * Section header text (optional)
560
+ * @type {string}
561
+ */
562
+ "title"?: SidebarGroupProps['title'];
563
+ }
564
+ interface SekiSidebarHeader {
565
+ }
566
+ interface SekiSidebarMenu {
567
+ }
568
+ interface SekiSidebarMenuItem {
569
+ /**
570
+ * ARIA current value for active items
571
+ * @type {string}
572
+ * @default 'page'
573
+ */
574
+ "ariaCurrentValue": SidebarMenuItemProps['ariaCurrentValue'];
575
+ /**
576
+ * Accessibility label override
577
+ * @type {string}
578
+ */
579
+ "ariaLabel"?: SidebarMenuItemProps['ariaLabel'];
580
+ /**
581
+ * Badge indicator for the item
582
+ * @type {object}
583
+ */
584
+ "badge"?: SidebarMenuItemProps['badge'];
585
+ /**
586
+ * Disable interaction
587
+ * @type {boolean}
588
+ * @default false
589
+ */
590
+ "disabled": boolean;
591
+ /**
592
+ * Navigation URL (optional)
593
+ * @type {string}
594
+ */
595
+ "href"?: SidebarMenuItemProps['href'];
596
+ /**
597
+ * Highlight as current page
598
+ * @type {boolean}
599
+ * @default false
600
+ */
601
+ "isActive": boolean;
602
+ /**
603
+ * Link target: _blank, _self, etc.
604
+ * @type {string}
605
+ */
606
+ "target"?: SidebarMenuItemProps['target'];
607
+ }
608
+ interface SekiSidebarMenuSub {
609
+ /**
610
+ * Initial collapsed state
611
+ * @type {boolean}
612
+ * @default false
613
+ */
614
+ "defaultCollapsed": boolean;
615
+ /**
616
+ * Get current collapsed state
617
+ */
618
+ "isCollapsedState": () => Promise<boolean>;
619
+ /**
620
+ * Label for the submenu (shown when expanded)
621
+ * @type {string}
622
+ */
623
+ "label"?: SidebarMenuSubProps['label'];
624
+ /**
625
+ * Set collapsed state
626
+ */
627
+ "setCollapsed": (collapsed: boolean) => Promise<void>;
628
+ }
629
+ interface SekiSidebarTrigger {
630
+ /**
631
+ * Accessibility label for the button
632
+ * @type {string}
633
+ * @default 'Toggle sidebar'
634
+ */
635
+ "ariaLabel": SidebarTriggerProps['ariaLabel'];
636
+ /**
637
+ * Icon name or SVG path (optional)
638
+ * @type {string}
639
+ */
640
+ "icon": SidebarTriggerProps['icon'];
641
+ }
419
642
  /**
420
643
  * @component seki-skeleton
421
644
  * @description A loading placeholder component that displays an animated skeleton while content is loading
@@ -534,6 +757,22 @@ export interface SekiSelectOptionCustomEvent<T> extends CustomEvent<T> {
534
757
  detail: T;
535
758
  target: HTMLSekiSelectOptionElement;
536
759
  }
760
+ export interface SekiSidebarCustomEvent<T> extends CustomEvent<T> {
761
+ detail: T;
762
+ target: HTMLSekiSidebarElement;
763
+ }
764
+ export interface SekiSidebarGroupCustomEvent<T> extends CustomEvent<T> {
765
+ detail: T;
766
+ target: HTMLSekiSidebarGroupElement;
767
+ }
768
+ export interface SekiSidebarMenuItemCustomEvent<T> extends CustomEvent<T> {
769
+ detail: T;
770
+ target: HTMLSekiSidebarMenuItemElement;
771
+ }
772
+ export interface SekiSidebarMenuSubCustomEvent<T> extends CustomEvent<T> {
773
+ detail: T;
774
+ target: HTMLSekiSidebarMenuSubElement;
775
+ }
537
776
  export interface SekiSwitchCustomEvent<T> extends CustomEvent<T> {
538
777
  detail: T;
539
778
  target: HTMLSekiSwitchElement;
@@ -543,6 +782,21 @@ export interface SekiTooltipCustomEvent<T> extends CustomEvent<T> {
543
782
  target: HTMLSekiTooltipElement;
544
783
  }
545
784
  declare global {
785
+ /**
786
+ * seki-badge: Presentational badge component for displaying small pieces of information
787
+ * @component Badge
788
+ * @example <seki-badge variant="default">Label</seki-badge>
789
+ * <seki-badge variant="secondary">
790
+ * <span slot="icon">ℹ</span>
791
+ * Secondary
792
+ * </seki-badge>
793
+ */
794
+ interface HTMLSekiBadgeElement extends Components.SekiBadge, HTMLStencilElement {
795
+ }
796
+ var HTMLSekiBadgeElement: {
797
+ prototype: HTMLSekiBadgeElement;
798
+ new (): HTMLSekiBadgeElement;
799
+ };
546
800
  interface HTMLSekiButtonElement extends Components.SekiButton, HTMLStencilElement {
547
801
  }
548
802
  var HTMLSekiButtonElement: {
@@ -762,6 +1016,107 @@ declare global {
762
1016
  prototype: HTMLSekiSelectTriggerElement;
763
1017
  new (): HTMLSekiSelectTriggerElement;
764
1018
  };
1019
+ interface HTMLSekiSidebarElementEventMap {
1020
+ "openChange": OpenChangeDetail;
1021
+ "variantChange": VariantChangeDetail;
1022
+ "collapseModeChange": CollapseModeChangeDetail;
1023
+ "mobileStateChange": MobileStateChangeDetail;
1024
+ }
1025
+ interface HTMLSekiSidebarElement extends Components.SekiSidebar, HTMLStencilElement {
1026
+ addEventListener<K extends keyof HTMLSekiSidebarElementEventMap>(type: K, listener: (this: HTMLSekiSidebarElement, ev: SekiSidebarCustomEvent<HTMLSekiSidebarElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1027
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1028
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1029
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1030
+ removeEventListener<K extends keyof HTMLSekiSidebarElementEventMap>(type: K, listener: (this: HTMLSekiSidebarElement, ev: SekiSidebarCustomEvent<HTMLSekiSidebarElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1031
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1032
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1033
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1034
+ }
1035
+ var HTMLSekiSidebarElement: {
1036
+ prototype: HTMLSekiSidebarElement;
1037
+ new (): HTMLSekiSidebarElement;
1038
+ };
1039
+ interface HTMLSekiSidebarContentElement extends Components.SekiSidebarContent, HTMLStencilElement {
1040
+ }
1041
+ var HTMLSekiSidebarContentElement: {
1042
+ prototype: HTMLSekiSidebarContentElement;
1043
+ new (): HTMLSekiSidebarContentElement;
1044
+ };
1045
+ interface HTMLSekiSidebarFooterElement extends Components.SekiSidebarFooter, HTMLStencilElement {
1046
+ }
1047
+ var HTMLSekiSidebarFooterElement: {
1048
+ prototype: HTMLSekiSidebarFooterElement;
1049
+ new (): HTMLSekiSidebarFooterElement;
1050
+ };
1051
+ interface HTMLSekiSidebarGroupElementEventMap {
1052
+ "collapsedChange": CollapsedChangeDetail;
1053
+ }
1054
+ interface HTMLSekiSidebarGroupElement extends Components.SekiSidebarGroup, HTMLStencilElement {
1055
+ addEventListener<K extends keyof HTMLSekiSidebarGroupElementEventMap>(type: K, listener: (this: HTMLSekiSidebarGroupElement, ev: SekiSidebarGroupCustomEvent<HTMLSekiSidebarGroupElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1056
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1057
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1058
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1059
+ removeEventListener<K extends keyof HTMLSekiSidebarGroupElementEventMap>(type: K, listener: (this: HTMLSekiSidebarGroupElement, ev: SekiSidebarGroupCustomEvent<HTMLSekiSidebarGroupElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1060
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1061
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1062
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1063
+ }
1064
+ var HTMLSekiSidebarGroupElement: {
1065
+ prototype: HTMLSekiSidebarGroupElement;
1066
+ new (): HTMLSekiSidebarGroupElement;
1067
+ };
1068
+ interface HTMLSekiSidebarHeaderElement extends Components.SekiSidebarHeader, HTMLStencilElement {
1069
+ }
1070
+ var HTMLSekiSidebarHeaderElement: {
1071
+ prototype: HTMLSekiSidebarHeaderElement;
1072
+ new (): HTMLSekiSidebarHeaderElement;
1073
+ };
1074
+ interface HTMLSekiSidebarMenuElement extends Components.SekiSidebarMenu, HTMLStencilElement {
1075
+ }
1076
+ var HTMLSekiSidebarMenuElement: {
1077
+ prototype: HTMLSekiSidebarMenuElement;
1078
+ new (): HTMLSekiSidebarMenuElement;
1079
+ };
1080
+ interface HTMLSekiSidebarMenuItemElementEventMap {
1081
+ "navigate": NavigateDetail;
1082
+ }
1083
+ interface HTMLSekiSidebarMenuItemElement extends Components.SekiSidebarMenuItem, HTMLStencilElement {
1084
+ addEventListener<K extends keyof HTMLSekiSidebarMenuItemElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuItemElement, ev: SekiSidebarMenuItemCustomEvent<HTMLSekiSidebarMenuItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1085
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1086
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1087
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1088
+ removeEventListener<K extends keyof HTMLSekiSidebarMenuItemElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuItemElement, ev: SekiSidebarMenuItemCustomEvent<HTMLSekiSidebarMenuItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1089
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1090
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1091
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1092
+ }
1093
+ var HTMLSekiSidebarMenuItemElement: {
1094
+ prototype: HTMLSekiSidebarMenuItemElement;
1095
+ new (): HTMLSekiSidebarMenuItemElement;
1096
+ };
1097
+ interface HTMLSekiSidebarMenuSubElementEventMap {
1098
+ "collapsedChange": CollapsedChangeDetail;
1099
+ }
1100
+ interface HTMLSekiSidebarMenuSubElement extends Components.SekiSidebarMenuSub, HTMLStencilElement {
1101
+ addEventListener<K extends keyof HTMLSekiSidebarMenuSubElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuSubElement, ev: SekiSidebarMenuSubCustomEvent<HTMLSekiSidebarMenuSubElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1102
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1103
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1104
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1105
+ removeEventListener<K extends keyof HTMLSekiSidebarMenuSubElementEventMap>(type: K, listener: (this: HTMLSekiSidebarMenuSubElement, ev: SekiSidebarMenuSubCustomEvent<HTMLSekiSidebarMenuSubElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1106
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1107
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1108
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1109
+ }
1110
+ var HTMLSekiSidebarMenuSubElement: {
1111
+ prototype: HTMLSekiSidebarMenuSubElement;
1112
+ new (): HTMLSekiSidebarMenuSubElement;
1113
+ };
1114
+ interface HTMLSekiSidebarTriggerElement extends Components.SekiSidebarTrigger, HTMLStencilElement {
1115
+ }
1116
+ var HTMLSekiSidebarTriggerElement: {
1117
+ prototype: HTMLSekiSidebarTriggerElement;
1118
+ new (): HTMLSekiSidebarTriggerElement;
1119
+ };
765
1120
  /**
766
1121
  * @component seki-skeleton
767
1122
  * @description A loading placeholder component that displays an animated skeleton while content is loading
@@ -830,6 +1185,7 @@ declare global {
830
1185
  new (): HTMLSekiTooltipElement;
831
1186
  };
832
1187
  interface HTMLElementTagNameMap {
1188
+ "seki-badge": HTMLSekiBadgeElement;
833
1189
  "seki-button": HTMLSekiButtonElement;
834
1190
  "seki-card": HTMLSekiCardElement;
835
1191
  "seki-card-action": HTMLSekiCardActionElement;
@@ -851,12 +1207,52 @@ declare global {
851
1207
  "seki-select-group": HTMLSekiSelectGroupElement;
852
1208
  "seki-select-option": HTMLSekiSelectOptionElement;
853
1209
  "seki-select-trigger": HTMLSekiSelectTriggerElement;
1210
+ "seki-sidebar": HTMLSekiSidebarElement;
1211
+ "seki-sidebar-content": HTMLSekiSidebarContentElement;
1212
+ "seki-sidebar-footer": HTMLSekiSidebarFooterElement;
1213
+ "seki-sidebar-group": HTMLSekiSidebarGroupElement;
1214
+ "seki-sidebar-header": HTMLSekiSidebarHeaderElement;
1215
+ "seki-sidebar-menu": HTMLSekiSidebarMenuElement;
1216
+ "seki-sidebar-menu-item": HTMLSekiSidebarMenuItemElement;
1217
+ "seki-sidebar-menu-sub": HTMLSekiSidebarMenuSubElement;
1218
+ "seki-sidebar-trigger": HTMLSekiSidebarTriggerElement;
854
1219
  "seki-skeleton": HTMLSekiSkeletonElement;
855
1220
  "seki-switch": HTMLSekiSwitchElement;
856
1221
  "seki-tooltip": HTMLSekiTooltipElement;
857
1222
  }
858
1223
  }
859
1224
  declare namespace LocalJSX {
1225
+ /**
1226
+ * seki-badge: Presentational badge component for displaying small pieces of information
1227
+ * @component Badge
1228
+ * @example <seki-badge variant="default">Label</seki-badge>
1229
+ * <seki-badge variant="secondary">
1230
+ * <span slot="icon">ℹ</span>
1231
+ * Secondary
1232
+ * </seki-badge>
1233
+ */
1234
+ interface SekiBadge {
1235
+ /**
1236
+ * Maximum limit for number badge If number exceeds this, shows "max+" instead Only used when number prop is set
1237
+ * @default undefined
1238
+ */
1239
+ "max"?: number;
1240
+ /**
1241
+ * Number to display in the badge When set, displays the number instead of text content
1242
+ * @default undefined
1243
+ */
1244
+ "number"?: number;
1245
+ /**
1246
+ * Enable rounded pill styling
1247
+ * @default false
1248
+ */
1249
+ "rounded"?: boolean;
1250
+ /**
1251
+ * Visual variant of the badge
1252
+ * @default 'default'
1253
+ */
1254
+ "variant"?: BadgeVariant;
1255
+ }
860
1256
  interface SekiButton {
861
1257
  /**
862
1258
  * Accessible label for screen readers. Required for icon-only buttons.
@@ -1261,6 +1657,180 @@ declare namespace LocalJSX {
1261
1657
  }
1262
1658
  interface SekiSelectTrigger {
1263
1659
  }
1660
+ interface SekiSidebar {
1661
+ /**
1662
+ * Collapse mechanism: offcanvas (slides), icon (shrinks), or none (fixed)
1663
+ * @type {'offcanvas' | 'icon' | 'none'}
1664
+ * @default 'offcanvas'
1665
+ */
1666
+ "collapseMode"?: SidebarProps['collapseMode'];
1667
+ /**
1668
+ * Initial open/closed state
1669
+ * @type {boolean}
1670
+ * @default true
1671
+ */
1672
+ "defaultOpen"?: boolean;
1673
+ /**
1674
+ * Viewport width for mobile detection (px)
1675
+ * @type {number}
1676
+ * @default 768
1677
+ */
1678
+ "mobileBreakpoint"?: number;
1679
+ /**
1680
+ * Event fired when collapse mode changes
1681
+ */
1682
+ "onCollapseModeChange"?: (event: SekiSidebarCustomEvent<CollapseModeChangeDetail>) => void;
1683
+ /**
1684
+ * Event fired when mobile state changes
1685
+ */
1686
+ "onMobileStateChange"?: (event: SekiSidebarCustomEvent<MobileStateChangeDetail>) => void;
1687
+ /**
1688
+ * Callback fired when open state changes
1689
+ */
1690
+ "onOpenChange"?: (isOpen: boolean) => void;
1691
+ /**
1692
+ * Event fired when sidebar opens/closes
1693
+ */
1694
+ "onOpenChange"?: (event: SekiSidebarCustomEvent<OpenChangeDetail>) => void;
1695
+ /**
1696
+ * Event fired when variant changes
1697
+ */
1698
+ "onVariantChange"?: (event: SekiSidebarCustomEvent<VariantChangeDetail>) => void;
1699
+ /**
1700
+ * Storage key for persisted state
1701
+ * @type {string}
1702
+ * @default 'seki-sidebar-state'
1703
+ */
1704
+ "persistenceKey"?: string;
1705
+ /**
1706
+ * Persist state to localStorage
1707
+ * @type {boolean}
1708
+ * @default false
1709
+ */
1710
+ "persistent"?: boolean;
1711
+ /**
1712
+ * Position: left or right side of viewport
1713
+ * @type {'left' | 'right'}
1714
+ * @default 'left'
1715
+ */
1716
+ "side"?: SidebarProps['side'];
1717
+ /**
1718
+ * Layout variant: standard, floating (detached), or inset
1719
+ * @type {'sidebar' | 'floating' | 'inset'}
1720
+ * @default 'sidebar'
1721
+ */
1722
+ "variant"?: SidebarProps['variant'];
1723
+ }
1724
+ interface SekiSidebarContent {
1725
+ }
1726
+ interface SekiSidebarFooter {
1727
+ }
1728
+ interface SekiSidebarGroup {
1729
+ /**
1730
+ * Optional action button configuration
1731
+ * @type {object}
1732
+ */
1733
+ "action"?: SidebarGroupProps['action'];
1734
+ /**
1735
+ * Allow collapsing this group
1736
+ * @type {boolean}
1737
+ * @default false
1738
+ */
1739
+ "collapsible"?: boolean;
1740
+ /**
1741
+ * Initial collapsed state
1742
+ * @type {boolean}
1743
+ * @default false
1744
+ */
1745
+ "defaultCollapsed"?: boolean;
1746
+ /**
1747
+ * Event fired when collapsed state changes
1748
+ */
1749
+ "onCollapsedChange"?: (event: SekiSidebarGroupCustomEvent<CollapsedChangeDetail>) => void;
1750
+ /**
1751
+ * Section header text (optional)
1752
+ * @type {string}
1753
+ */
1754
+ "title"?: SidebarGroupProps['title'];
1755
+ }
1756
+ interface SekiSidebarHeader {
1757
+ }
1758
+ interface SekiSidebarMenu {
1759
+ }
1760
+ interface SekiSidebarMenuItem {
1761
+ /**
1762
+ * ARIA current value for active items
1763
+ * @type {string}
1764
+ * @default 'page'
1765
+ */
1766
+ "ariaCurrentValue"?: SidebarMenuItemProps['ariaCurrentValue'];
1767
+ /**
1768
+ * Accessibility label override
1769
+ * @type {string}
1770
+ */
1771
+ "ariaLabel"?: SidebarMenuItemProps['ariaLabel'];
1772
+ /**
1773
+ * Badge indicator for the item
1774
+ * @type {object}
1775
+ */
1776
+ "badge"?: SidebarMenuItemProps['badge'];
1777
+ /**
1778
+ * Disable interaction
1779
+ * @type {boolean}
1780
+ * @default false
1781
+ */
1782
+ "disabled"?: boolean;
1783
+ /**
1784
+ * Navigation URL (optional)
1785
+ * @type {string}
1786
+ */
1787
+ "href"?: SidebarMenuItemProps['href'];
1788
+ /**
1789
+ * Highlight as current page
1790
+ * @type {boolean}
1791
+ * @default false
1792
+ */
1793
+ "isActive"?: boolean;
1794
+ /**
1795
+ * Event fired on item click
1796
+ */
1797
+ "onNavigate"?: (event: SekiSidebarMenuItemCustomEvent<NavigateDetail>) => void;
1798
+ /**
1799
+ * Link target: _blank, _self, etc.
1800
+ * @type {string}
1801
+ */
1802
+ "target"?: SidebarMenuItemProps['target'];
1803
+ }
1804
+ interface SekiSidebarMenuSub {
1805
+ /**
1806
+ * Initial collapsed state
1807
+ * @type {boolean}
1808
+ * @default false
1809
+ */
1810
+ "defaultCollapsed"?: boolean;
1811
+ /**
1812
+ * Label for the submenu (shown when expanded)
1813
+ * @type {string}
1814
+ */
1815
+ "label"?: SidebarMenuSubProps['label'];
1816
+ /**
1817
+ * Event fired when collapsed state changes
1818
+ */
1819
+ "onCollapsedChange"?: (event: SekiSidebarMenuSubCustomEvent<CollapsedChangeDetail>) => void;
1820
+ }
1821
+ interface SekiSidebarTrigger {
1822
+ /**
1823
+ * Accessibility label for the button
1824
+ * @type {string}
1825
+ * @default 'Toggle sidebar'
1826
+ */
1827
+ "ariaLabel"?: SidebarTriggerProps['ariaLabel'];
1828
+ /**
1829
+ * Icon name or SVG path (optional)
1830
+ * @type {string}
1831
+ */
1832
+ "icon"?: SidebarTriggerProps['icon'];
1833
+ }
1264
1834
  /**
1265
1835
  * @component seki-skeleton
1266
1836
  * @description A loading placeholder component that displays an animated skeleton while content is loading
@@ -1369,6 +1939,7 @@ declare namespace LocalJSX {
1369
1939
  "side"?: TooltipSide;
1370
1940
  }
1371
1941
  interface IntrinsicElements {
1942
+ "seki-badge": SekiBadge;
1372
1943
  "seki-button": SekiButton;
1373
1944
  "seki-card": SekiCard;
1374
1945
  "seki-card-action": SekiCardAction;
@@ -1390,6 +1961,15 @@ declare namespace LocalJSX {
1390
1961
  "seki-select-group": SekiSelectGroup;
1391
1962
  "seki-select-option": SekiSelectOption;
1392
1963
  "seki-select-trigger": SekiSelectTrigger;
1964
+ "seki-sidebar": SekiSidebar;
1965
+ "seki-sidebar-content": SekiSidebarContent;
1966
+ "seki-sidebar-footer": SekiSidebarFooter;
1967
+ "seki-sidebar-group": SekiSidebarGroup;
1968
+ "seki-sidebar-header": SekiSidebarHeader;
1969
+ "seki-sidebar-menu": SekiSidebarMenu;
1970
+ "seki-sidebar-menu-item": SekiSidebarMenuItem;
1971
+ "seki-sidebar-menu-sub": SekiSidebarMenuSub;
1972
+ "seki-sidebar-trigger": SekiSidebarTrigger;
1393
1973
  "seki-skeleton": SekiSkeleton;
1394
1974
  "seki-switch": SekiSwitch;
1395
1975
  "seki-tooltip": SekiTooltip;
@@ -1399,6 +1979,16 @@ export { LocalJSX as JSX };
1399
1979
  declare module "@stencil/core" {
1400
1980
  export namespace JSX {
1401
1981
  interface IntrinsicElements {
1982
+ /**
1983
+ * seki-badge: Presentational badge component for displaying small pieces of information
1984
+ * @component Badge
1985
+ * @example <seki-badge variant="default">Label</seki-badge>
1986
+ * <seki-badge variant="secondary">
1987
+ * <span slot="icon">ℹ</span>
1988
+ * Secondary
1989
+ * </seki-badge>
1990
+ */
1991
+ "seki-badge": LocalJSX.SekiBadge & JSXBase.HTMLAttributes<HTMLSekiBadgeElement>;
1402
1992
  "seki-button": LocalJSX.SekiButton & JSXBase.HTMLAttributes<HTMLSekiButtonElement>;
1403
1993
  /**
1404
1994
  * Flexible container for organizing related content with optional header,
@@ -1474,6 +2064,15 @@ declare module "@stencil/core" {
1474
2064
  "seki-select-group": LocalJSX.SekiSelectGroup & JSXBase.HTMLAttributes<HTMLSekiSelectGroupElement>;
1475
2065
  "seki-select-option": LocalJSX.SekiSelectOption & JSXBase.HTMLAttributes<HTMLSekiSelectOptionElement>;
1476
2066
  "seki-select-trigger": LocalJSX.SekiSelectTrigger & JSXBase.HTMLAttributes<HTMLSekiSelectTriggerElement>;
2067
+ "seki-sidebar": LocalJSX.SekiSidebar & JSXBase.HTMLAttributes<HTMLSekiSidebarElement>;
2068
+ "seki-sidebar-content": LocalJSX.SekiSidebarContent & JSXBase.HTMLAttributes<HTMLSekiSidebarContentElement>;
2069
+ "seki-sidebar-footer": LocalJSX.SekiSidebarFooter & JSXBase.HTMLAttributes<HTMLSekiSidebarFooterElement>;
2070
+ "seki-sidebar-group": LocalJSX.SekiSidebarGroup & JSXBase.HTMLAttributes<HTMLSekiSidebarGroupElement>;
2071
+ "seki-sidebar-header": LocalJSX.SekiSidebarHeader & JSXBase.HTMLAttributes<HTMLSekiSidebarHeaderElement>;
2072
+ "seki-sidebar-menu": LocalJSX.SekiSidebarMenu & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuElement>;
2073
+ "seki-sidebar-menu-item": LocalJSX.SekiSidebarMenuItem & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuItemElement>;
2074
+ "seki-sidebar-menu-sub": LocalJSX.SekiSidebarMenuSub & JSXBase.HTMLAttributes<HTMLSekiSidebarMenuSubElement>;
2075
+ "seki-sidebar-trigger": LocalJSX.SekiSidebarTrigger & JSXBase.HTMLAttributes<HTMLSekiSidebarTriggerElement>;
1477
2076
  /**
1478
2077
  * @component seki-skeleton
1479
2078
  * @description A loading placeholder component that displays an animated skeleton while content is loading