@sekiui/elements 0.0.59 → 0.0.60

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 (396) hide show
  1. package/dist/cdn/index.js +140 -4
  2. package/dist/cdn/p-D1HYavDL.js +33 -0
  3. package/dist/{components/p-BU1kuAZS.js → cdn/p-D31scOlb.js} +9 -386
  4. package/dist/{components/p-wQy1sEm6.js → cdn/p-E6SsIN_e.js} +3 -3
  5. package/dist/cdn/seki-badge.js +1 -1
  6. package/dist/cdn/seki-button.js +3 -3
  7. package/dist/cdn/seki-card-action.js +3 -3
  8. package/dist/cdn/seki-card-content.js +3 -3
  9. package/dist/cdn/seki-card-description.js +3 -3
  10. package/dist/cdn/seki-card-footer.js +3 -3
  11. package/dist/cdn/seki-card-header.js +3 -3
  12. package/dist/cdn/seki-card-title.js +2 -2
  13. package/dist/cdn/seki-card.js +3 -3
  14. package/dist/cdn/seki-field-description.js +3 -3
  15. package/dist/cdn/seki-field-error.js +3 -3
  16. package/dist/cdn/seki-field-group.js +3 -3
  17. package/dist/cdn/seki-field-label.js +3 -3
  18. package/dist/cdn/seki-field-legend.js +3 -3
  19. package/dist/cdn/seki-field.js +3 -3
  20. package/dist/cdn/seki-fieldset.js +3 -3
  21. package/dist/cdn/seki-input.js +3 -3
  22. package/dist/cdn/seki-select-content.js +2 -2
  23. package/dist/cdn/seki-select-group.js +3 -3
  24. package/dist/cdn/seki-select-option.js +3 -3
  25. package/dist/cdn/seki-select-trigger.js +2 -2
  26. package/dist/cdn/seki-select.js +3 -3
  27. package/dist/cdn/seki-sidebar-content.js +5 -7
  28. package/dist/cdn/seki-sidebar-footer.js +21 -7
  29. package/dist/cdn/seki-sidebar-group-action.d.ts +11 -0
  30. package/dist/cdn/seki-sidebar-group-action.js +43 -0
  31. package/dist/cdn/seki-sidebar-group-content.d.ts +11 -0
  32. package/dist/cdn/seki-sidebar-group-content.js +36 -0
  33. package/dist/cdn/seki-sidebar-group-label.d.ts +11 -0
  34. package/dist/cdn/seki-sidebar-group-label.js +6 -0
  35. package/dist/cdn/seki-sidebar-group.js +13 -100
  36. package/dist/cdn/seki-sidebar-header.js +21 -7
  37. package/dist/cdn/seki-sidebar-inset.d.ts +11 -0
  38. package/dist/cdn/seki-sidebar-inset.js +36 -0
  39. package/dist/cdn/seki-sidebar-menu-action.d.ts +11 -0
  40. package/dist/cdn/seki-sidebar-menu-action.js +42 -0
  41. package/dist/cdn/seki-sidebar-menu-badge.d.ts +11 -0
  42. package/dist/cdn/seki-sidebar-menu-badge.js +36 -0
  43. package/dist/cdn/seki-sidebar-menu-button.d.ts +11 -0
  44. package/dist/cdn/seki-sidebar-menu-button.js +109 -0
  45. package/dist/cdn/seki-sidebar-menu-item.js +6 -170
  46. package/dist/cdn/seki-sidebar-menu-skeleton.d.ts +11 -0
  47. package/dist/cdn/seki-sidebar-menu-skeleton.js +42 -0
  48. package/dist/cdn/seki-sidebar-menu-sub-button.d.ts +11 -0
  49. package/dist/cdn/seki-sidebar-menu-sub-button.js +50 -0
  50. package/dist/cdn/seki-sidebar-menu-sub-item.d.ts +11 -0
  51. package/dist/cdn/seki-sidebar-menu-sub-item.js +36 -0
  52. package/dist/cdn/seki-sidebar-menu-sub.js +78 -82
  53. package/dist/cdn/seki-sidebar-menu.js +5 -7
  54. package/dist/cdn/seki-sidebar-provider.d.ts +11 -0
  55. package/dist/cdn/seki-sidebar-provider.js +189 -0
  56. package/dist/cdn/seki-sidebar-rail.d.ts +11 -0
  57. package/dist/cdn/seki-sidebar-rail.js +43 -0
  58. package/dist/cdn/seki-sidebar-separator.d.ts +11 -0
  59. package/dist/cdn/seki-sidebar-separator.js +36 -0
  60. package/dist/cdn/seki-sidebar-trigger.js +26 -67
  61. package/dist/cdn/seki-sidebar.js +40 -329
  62. package/dist/cdn/seki-skeleton.js +3 -3
  63. package/dist/cdn/seki-switch.js +1 -1
  64. package/dist/cdn/seki-tooltip.js +3 -3
  65. package/dist/cjs/{index-D4RM3EID.js → index-DzoHqiUq.js} +8 -385
  66. package/dist/cjs/index.cjs.js +141 -5
  67. package/dist/cjs/loader.cjs.js +2 -2
  68. package/dist/cjs/seki-badge.cjs.entry.js +1 -1
  69. package/dist/cjs/seki-button.cjs.entry.js +3 -3
  70. package/dist/cjs/seki-card-action.cjs.entry.js +3 -3
  71. package/dist/cjs/seki-card-content.cjs.entry.js +3 -3
  72. package/dist/cjs/seki-card-description.cjs.entry.js +3 -3
  73. package/dist/cjs/seki-card-footer.cjs.entry.js +3 -3
  74. package/dist/cjs/seki-card-header.cjs.entry.js +3 -3
  75. package/dist/cjs/seki-card-title.cjs.entry.js +2 -2
  76. package/dist/cjs/seki-card.cjs.entry.js +3 -3
  77. package/dist/cjs/seki-field-description.cjs.entry.js +3 -3
  78. package/dist/cjs/seki-field-error.cjs.entry.js +3 -3
  79. package/dist/cjs/seki-field-group.cjs.entry.js +3 -3
  80. package/dist/cjs/seki-field-label.cjs.entry.js +3 -3
  81. package/dist/cjs/seki-field-legend.cjs.entry.js +3 -3
  82. package/dist/cjs/seki-field.cjs.entry.js +3 -3
  83. package/dist/cjs/seki-fieldset.cjs.entry.js +3 -3
  84. package/dist/cjs/seki-input.cjs.entry.js +3 -3
  85. package/dist/cjs/seki-select-content.cjs.entry.js +2 -2
  86. package/dist/cjs/seki-select-group.cjs.entry.js +3 -3
  87. package/dist/cjs/seki-select-option.cjs.entry.js +3 -3
  88. package/dist/cjs/seki-select-trigger.cjs.entry.js +2 -2
  89. package/dist/cjs/seki-select.cjs.entry.js +3 -3
  90. package/dist/cjs/seki-sidebar-content.cjs.entry.js +3 -6
  91. package/dist/cjs/seki-sidebar-footer.cjs.entry.js +17 -6
  92. package/dist/cjs/seki-sidebar-group-action.cjs.entry.js +21 -0
  93. package/dist/cjs/seki-sidebar-group-content.cjs.entry.js +17 -0
  94. package/dist/cjs/seki-sidebar-group-label.cjs.entry.js +17 -0
  95. package/dist/cjs/seki-sidebar-group.cjs.entry.js +3 -91
  96. package/dist/cjs/seki-sidebar-header.cjs.entry.js +17 -6
  97. package/dist/cjs/seki-sidebar-inset.cjs.entry.js +17 -0
  98. package/dist/cjs/seki-sidebar-menu-action.cjs.entry.js +21 -0
  99. package/dist/cjs/seki-sidebar-menu-badge.cjs.entry.js +17 -0
  100. package/dist/cjs/seki-sidebar-menu-button.cjs.entry.js +81 -0
  101. package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +4 -161
  102. package/dist/cjs/seki-sidebar-menu-skeleton.cjs.entry.js +21 -0
  103. package/dist/cjs/seki-sidebar-menu-sub-button.cjs.entry.js +28 -0
  104. package/dist/cjs/seki-sidebar-menu-sub-item.cjs.entry.js +17 -0
  105. package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +70 -76
  106. package/dist/cjs/seki-sidebar-menu.cjs.entry.js +3 -6
  107. package/dist/cjs/seki-sidebar-provider.cjs.entry.js +153 -0
  108. package/dist/cjs/seki-sidebar-rail.cjs.entry.js +24 -0
  109. package/dist/cjs/seki-sidebar-separator.cjs.entry.js +17 -0
  110. package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +22 -63
  111. package/dist/cjs/seki-sidebar.cjs.entry.js +35 -312
  112. package/dist/cjs/seki-skeleton.cjs.entry.js +3 -3
  113. package/dist/cjs/seki-switch.cjs.entry.js +3 -3
  114. package/dist/cjs/seki-tooltip.cjs.entry.js +3 -3
  115. package/dist/cjs/sekiui.cjs.js +2 -2
  116. package/dist/collection/collection-manifest.json +13 -0
  117. package/dist/collection/components/button/seki-button.css +74 -0
  118. package/dist/collection/components/button/seki-button.js +1 -1
  119. package/dist/collection/components/card/seki-card-action.js +1 -1
  120. package/dist/collection/components/card/seki-card-content.js +1 -1
  121. package/dist/collection/components/card/seki-card-description.js +1 -1
  122. package/dist/collection/components/card/seki-card-footer.js +1 -1
  123. package/dist/collection/components/card/seki-card-header.js +1 -1
  124. package/dist/collection/components/card/seki-card.css +74 -0
  125. package/dist/collection/components/card/seki-card.js +1 -1
  126. package/dist/collection/components/field/seki-field.css +74 -0
  127. package/dist/collection/components/field/seki-field.js +1 -1
  128. package/dist/collection/components/field-description/seki-field-description.css +74 -0
  129. package/dist/collection/components/field-description/seki-field-description.js +1 -1
  130. package/dist/collection/components/field-error/seki-field-error.css +74 -0
  131. package/dist/collection/components/field-error/seki-field-error.js +1 -1
  132. package/dist/collection/components/field-group/seki-field-group.css +74 -0
  133. package/dist/collection/components/field-group/seki-field-group.js +1 -1
  134. package/dist/collection/components/field-label/seki-field-label.css +74 -0
  135. package/dist/collection/components/field-label/seki-field-label.js +1 -1
  136. package/dist/collection/components/field-legend/seki-field-legend.css +74 -0
  137. package/dist/collection/components/field-legend/seki-field-legend.js +1 -1
  138. package/dist/collection/components/fieldset/seki-fieldset.css +74 -0
  139. package/dist/collection/components/fieldset/seki-fieldset.js +1 -1
  140. package/dist/collection/components/input/seki-input.css +74 -0
  141. package/dist/collection/components/input/seki-input.js +1 -1
  142. package/dist/collection/components/select/seki-select.css +74 -0
  143. package/dist/collection/components/select/seki-select.js +1 -1
  144. package/dist/collection/components/select-content/seki-select-content.css +74 -0
  145. package/dist/collection/components/select-group/seki-select-group.css +74 -0
  146. package/dist/collection/components/select-group/seki-select-group.js +1 -1
  147. package/dist/collection/components/select-option/seki-select-option.css +74 -0
  148. package/dist/collection/components/select-option/seki-select-option.js +1 -1
  149. package/dist/collection/components/select-trigger/seki-select-trigger.css +74 -0
  150. package/dist/collection/components/sidebar/seki-sidebar-content.css +470 -54
  151. package/dist/collection/components/sidebar/seki-sidebar-content.js +3 -18
  152. package/dist/collection/components/sidebar/seki-sidebar-footer.css +475 -30
  153. package/dist/collection/components/sidebar/seki-sidebar-footer.js +32 -15
  154. package/dist/collection/components/sidebar/seki-sidebar-group-action.css +509 -0
  155. package/dist/collection/components/sidebar/seki-sidebar-group-action.js +67 -0
  156. package/dist/collection/components/sidebar/seki-sidebar-group-content.js +18 -0
  157. package/dist/collection/components/sidebar/seki-sidebar-group-label.js +18 -0
  158. package/dist/collection/components/sidebar/seki-sidebar-group.css +455 -120
  159. package/dist/collection/components/sidebar/seki-sidebar-group.js +9 -268
  160. package/dist/collection/components/sidebar/seki-sidebar-header.css +474 -30
  161. package/dist/collection/components/sidebar/seki-sidebar-header.js +32 -16
  162. package/dist/collection/components/sidebar/seki-sidebar-inset.js +18 -0
  163. package/dist/collection/components/sidebar/seki-sidebar-menu-action.js +48 -0
  164. package/dist/collection/components/sidebar/seki-sidebar-menu-badge.js +18 -0
  165. package/dist/collection/components/sidebar/seki-sidebar-menu-button.js +240 -0
  166. package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +5 -390
  167. package/dist/collection/components/sidebar/seki-sidebar-menu-skeleton.js +48 -0
  168. package/dist/collection/components/sidebar/seki-sidebar-menu-sub-button.js +75 -0
  169. package/dist/collection/components/sidebar/seki-sidebar-menu-sub-item.js +18 -0
  170. package/dist/collection/components/sidebar/seki-sidebar-menu-sub.css +520 -290
  171. package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +85 -194
  172. package/dist/collection/components/sidebar/seki-sidebar-menu.css +720 -9
  173. package/dist/collection/components/sidebar/seki-sidebar-menu.js +3 -17
  174. package/dist/collection/components/sidebar/seki-sidebar-provider.css +514 -0
  175. package/dist/collection/components/sidebar/seki-sidebar-provider.js +399 -0
  176. package/dist/collection/components/sidebar/seki-sidebar-rail.css +530 -0
  177. package/dist/collection/components/sidebar/seki-sidebar-rail.js +27 -0
  178. package/dist/collection/components/sidebar/seki-sidebar-separator.js +18 -0
  179. package/dist/collection/components/sidebar/seki-sidebar-trigger.css +492 -41
  180. package/dist/collection/components/sidebar/seki-sidebar-trigger.js +34 -122
  181. package/dist/collection/components/sidebar/seki-sidebar.css +554 -276
  182. package/dist/collection/components/sidebar/seki-sidebar.js +57 -721
  183. package/dist/collection/components/skeleton/seki-skeleton.css +74 -0
  184. package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
  185. package/dist/collection/components/switch/seki-switch.css +74 -0
  186. package/dist/collection/components/switch/seki-switch.js +1 -1
  187. package/dist/collection/components/tooltip/seki-tooltip.css +74 -0
  188. package/dist/collection/components/tooltip/seki-tooltip.js +1 -1
  189. package/dist/components/index.js +140 -4
  190. package/dist/components/p-CYoVX0Ya.js +33 -0
  191. package/dist/{cdn/p-Cpa2leXN.js → components/p-CkICsFKR.js} +3 -3
  192. package/dist/{cdn/p-DxUZSKfL.js → components/p-D2lrrniN.js} +9 -386
  193. package/dist/components/seki-badge.js +1 -1
  194. package/dist/components/seki-button.js +3 -3
  195. package/dist/components/seki-card-action.js +3 -3
  196. package/dist/components/seki-card-content.js +3 -3
  197. package/dist/components/seki-card-description.js +3 -3
  198. package/dist/components/seki-card-footer.js +3 -3
  199. package/dist/components/seki-card-header.js +3 -3
  200. package/dist/components/seki-card-title.js +2 -2
  201. package/dist/components/seki-card.js +3 -3
  202. package/dist/components/seki-field-description.js +3 -3
  203. package/dist/components/seki-field-error.js +3 -3
  204. package/dist/components/seki-field-group.js +3 -3
  205. package/dist/components/seki-field-label.js +3 -3
  206. package/dist/components/seki-field-legend.js +3 -3
  207. package/dist/components/seki-field.js +3 -3
  208. package/dist/components/seki-fieldset.js +3 -3
  209. package/dist/components/seki-input.js +3 -3
  210. package/dist/components/seki-select-content.js +2 -2
  211. package/dist/components/seki-select-group.js +3 -3
  212. package/dist/components/seki-select-option.js +3 -3
  213. package/dist/components/seki-select-trigger.js +2 -2
  214. package/dist/components/seki-select.js +3 -3
  215. package/dist/components/seki-sidebar-content.js +5 -7
  216. package/dist/components/seki-sidebar-footer.js +21 -7
  217. package/dist/components/seki-sidebar-group-action.d.ts +11 -0
  218. package/dist/components/seki-sidebar-group-action.js +43 -0
  219. package/dist/components/seki-sidebar-group-content.d.ts +11 -0
  220. package/dist/components/seki-sidebar-group-content.js +36 -0
  221. package/dist/components/seki-sidebar-group-label.d.ts +11 -0
  222. package/dist/components/seki-sidebar-group-label.js +6 -0
  223. package/dist/components/seki-sidebar-group.js +13 -100
  224. package/dist/components/seki-sidebar-header.js +21 -7
  225. package/dist/components/seki-sidebar-inset.d.ts +11 -0
  226. package/dist/components/seki-sidebar-inset.js +36 -0
  227. package/dist/components/seki-sidebar-menu-action.d.ts +11 -0
  228. package/dist/components/seki-sidebar-menu-action.js +42 -0
  229. package/dist/components/seki-sidebar-menu-badge.d.ts +11 -0
  230. package/dist/components/seki-sidebar-menu-badge.js +36 -0
  231. package/dist/components/seki-sidebar-menu-button.d.ts +11 -0
  232. package/dist/components/seki-sidebar-menu-button.js +109 -0
  233. package/dist/components/seki-sidebar-menu-item.js +6 -170
  234. package/dist/components/seki-sidebar-menu-skeleton.d.ts +11 -0
  235. package/dist/components/seki-sidebar-menu-skeleton.js +42 -0
  236. package/dist/components/seki-sidebar-menu-sub-button.d.ts +11 -0
  237. package/dist/components/seki-sidebar-menu-sub-button.js +50 -0
  238. package/dist/components/seki-sidebar-menu-sub-item.d.ts +11 -0
  239. package/dist/components/seki-sidebar-menu-sub-item.js +36 -0
  240. package/dist/components/seki-sidebar-menu-sub.js +78 -82
  241. package/dist/components/seki-sidebar-menu.js +5 -7
  242. package/dist/components/seki-sidebar-provider.d.ts +11 -0
  243. package/dist/components/seki-sidebar-provider.js +189 -0
  244. package/dist/components/seki-sidebar-rail.d.ts +11 -0
  245. package/dist/components/seki-sidebar-rail.js +43 -0
  246. package/dist/components/seki-sidebar-separator.d.ts +11 -0
  247. package/dist/components/seki-sidebar-separator.js +36 -0
  248. package/dist/components/seki-sidebar-trigger.js +26 -67
  249. package/dist/components/seki-sidebar.js +40 -329
  250. package/dist/components/seki-skeleton.js +3 -3
  251. package/dist/components/seki-switch.js +1 -1
  252. package/dist/components/seki-tooltip.js +3 -3
  253. package/dist/esm/{index-DI_YjzRi.js → index-BGmDiTq4.js} +8 -385
  254. package/dist/esm/index.js +139 -3
  255. package/dist/esm/loader.js +3 -3
  256. package/dist/esm/seki-badge.entry.js +1 -1
  257. package/dist/esm/seki-button.entry.js +3 -3
  258. package/dist/esm/seki-card-action.entry.js +3 -3
  259. package/dist/esm/seki-card-content.entry.js +3 -3
  260. package/dist/esm/seki-card-description.entry.js +3 -3
  261. package/dist/esm/seki-card-footer.entry.js +3 -3
  262. package/dist/esm/seki-card-header.entry.js +3 -3
  263. package/dist/esm/seki-card-title.entry.js +2 -2
  264. package/dist/esm/seki-card.entry.js +3 -3
  265. package/dist/esm/seki-field-description.entry.js +3 -3
  266. package/dist/esm/seki-field-error.entry.js +3 -3
  267. package/dist/esm/seki-field-group.entry.js +3 -3
  268. package/dist/esm/seki-field-label.entry.js +3 -3
  269. package/dist/esm/seki-field-legend.entry.js +3 -3
  270. package/dist/esm/seki-field.entry.js +3 -3
  271. package/dist/esm/seki-fieldset.entry.js +3 -3
  272. package/dist/esm/seki-input.entry.js +3 -3
  273. package/dist/esm/seki-select-content.entry.js +2 -2
  274. package/dist/esm/seki-select-group.entry.js +3 -3
  275. package/dist/esm/seki-select-option.entry.js +3 -3
  276. package/dist/esm/seki-select-trigger.entry.js +2 -2
  277. package/dist/esm/seki-select.entry.js +3 -3
  278. package/dist/esm/seki-sidebar-content.entry.js +3 -6
  279. package/dist/esm/seki-sidebar-footer.entry.js +17 -6
  280. package/dist/esm/seki-sidebar-group-action.entry.js +19 -0
  281. package/dist/esm/seki-sidebar-group-content.entry.js +15 -0
  282. package/dist/esm/seki-sidebar-group-label.entry.js +15 -0
  283. package/dist/esm/seki-sidebar-group.entry.js +3 -91
  284. package/dist/esm/seki-sidebar-header.entry.js +17 -6
  285. package/dist/esm/seki-sidebar-inset.entry.js +15 -0
  286. package/dist/esm/seki-sidebar-menu-action.entry.js +19 -0
  287. package/dist/esm/seki-sidebar-menu-badge.entry.js +15 -0
  288. package/dist/esm/seki-sidebar-menu-button.entry.js +79 -0
  289. package/dist/esm/seki-sidebar-menu-item.entry.js +4 -161
  290. package/dist/esm/seki-sidebar-menu-skeleton.entry.js +19 -0
  291. package/dist/esm/seki-sidebar-menu-sub-button.entry.js +26 -0
  292. package/dist/{sekiui/p-6f5bf5af.entry.js → esm/seki-sidebar-menu-sub-item.entry.js} +15 -1
  293. package/dist/esm/seki-sidebar-menu-sub.entry.js +70 -76
  294. package/dist/esm/seki-sidebar-menu.entry.js +3 -6
  295. package/dist/esm/seki-sidebar-provider.entry.js +151 -0
  296. package/dist/esm/seki-sidebar-rail.entry.js +22 -0
  297. package/dist/esm/seki-sidebar-separator.entry.js +15 -0
  298. package/dist/esm/seki-sidebar-trigger.entry.js +22 -63
  299. package/dist/esm/seki-sidebar.entry.js +35 -312
  300. package/dist/esm/seki-skeleton.entry.js +3 -3
  301. package/dist/esm/seki-switch.entry.js +3 -3
  302. package/dist/esm/seki-tooltip.entry.js +3 -3
  303. package/dist/esm/sekiui.js +3 -3
  304. package/dist/sekiui/index.esm.js +1 -1
  305. package/dist/sekiui/{p-b7f2b568.entry.js → p-04352a21.entry.js} +1 -1
  306. package/dist/sekiui/p-06800a9a.entry.js +1 -0
  307. package/dist/sekiui/{p-c642ab55.entry.js → p-0724ad85.entry.js} +1 -1
  308. package/dist/sekiui/{p-1480b41a.entry.js → p-0eaf07d7.entry.js} +1 -1
  309. package/dist/sekiui/p-135ee708.entry.js +1 -0
  310. package/dist/sekiui/p-15fe2ae5.entry.js +1 -0
  311. package/dist/sekiui/p-16ad812c.entry.js +1 -0
  312. package/dist/sekiui/{p-f863f36b.entry.js → p-19648074.entry.js} +1 -1
  313. package/dist/sekiui/{p-d194caf1.entry.js → p-1991d025.entry.js} +1 -1
  314. package/dist/sekiui/p-1e3771b8.entry.js +1 -0
  315. package/dist/sekiui/{p-ce1bbe04.entry.js → p-2193ef70.entry.js} +1 -1
  316. package/dist/sekiui/{p-b64e7007.entry.js → p-2428e77d.entry.js} +1 -1
  317. package/dist/sekiui/p-244aa3bd.entry.js +1 -0
  318. package/dist/sekiui/p-2e25d58f.entry.js +1 -0
  319. package/dist/sekiui/{p-84d47cab.entry.js → p-2ecbec83.entry.js} +1 -1
  320. package/dist/sekiui/{p-e6d5f56e.entry.js → p-31687f4a.entry.js} +1 -1
  321. package/dist/sekiui/{p-f1ffc3fa.entry.js → p-418c6f7c.entry.js} +1 -1
  322. package/dist/sekiui/p-41f9342c.entry.js +1 -0
  323. package/dist/sekiui/p-4b36af55.entry.js +1 -0
  324. package/dist/sekiui/p-4e503004.entry.js +1 -0
  325. package/dist/sekiui/{p-587fd313.entry.js → p-5598b850.entry.js} +1 -1
  326. package/dist/sekiui/p-597f460b.entry.js +1 -0
  327. package/dist/sekiui/p-5d68c092.entry.js +1 -0
  328. package/dist/sekiui/{p-68b1fa1a.entry.js → p-6207e13a.entry.js} +1 -1
  329. package/dist/sekiui/{p-27deb555.entry.js → p-65b878ad.entry.js} +1 -1
  330. package/dist/sekiui/{p-c74bd925.entry.js → p-69abaa3d.entry.js} +1 -1
  331. package/dist/sekiui/{p-40ba3ad6.entry.js → p-6e75b7c3.entry.js} +1 -1
  332. package/dist/sekiui/p-74b375a3.entry.js +1 -0
  333. package/dist/sekiui/p-74da4590.entry.js +1 -0
  334. package/dist/sekiui/{p-58ab95eb.entry.js → p-79944f32.entry.js} +1 -1
  335. package/dist/sekiui/p-7a35a9dd.entry.js +1 -0
  336. package/dist/sekiui/p-87c05b57.entry.js +1 -0
  337. package/dist/sekiui/p-880ab4c3.entry.js +1 -0
  338. package/dist/sekiui/p-8912b3b5.entry.js +1 -0
  339. package/dist/sekiui/p-BGmDiTq4.js +2 -0
  340. package/dist/sekiui/{p-161be4d4.entry.js → p-a56b43ab.entry.js} +1 -1
  341. package/dist/sekiui/p-a9ea4381.entry.js +1 -0
  342. package/dist/sekiui/{p-dfa2f8cd.entry.js → p-abcd4ab8.entry.js} +1 -1
  343. package/dist/sekiui/p-ac0cee96.entry.js +1 -0
  344. package/dist/sekiui/{p-ab9d1ba5.entry.js → p-d7a568dc.entry.js} +1 -1
  345. package/dist/sekiui/p-df1f29f5.entry.js +1 -0
  346. package/dist/sekiui/{p-6a922121.entry.js → p-e0480d9d.entry.js} +1 -1
  347. package/dist/sekiui/{p-cf552ff9.entry.js → p-edd9902b.entry.js} +1 -1
  348. package/dist/sekiui/p-edddd260.entry.js +1 -0
  349. package/dist/sekiui/{p-4867d02d.entry.js → p-f5b2ec4f.entry.js} +1 -1
  350. package/dist/sekiui/{p-402a5db6.entry.js → p-f6d84839.entry.js} +1 -1
  351. package/dist/sekiui/p-f9755786.entry.js +1 -0
  352. package/dist/sekiui/{p-1685e673.entry.js → p-fb446062.entry.js} +1 -1
  353. package/dist/sekiui/sekiui.css +1 -1
  354. package/dist/sekiui/sekiui.esm.js +1 -1
  355. package/dist/types/components/sidebar/seki-sidebar-content.d.ts +0 -15
  356. package/dist/types/components/sidebar/seki-sidebar-footer.d.ts +5 -13
  357. package/dist/types/components/sidebar/seki-sidebar-group-action.d.ts +11 -0
  358. package/dist/types/components/sidebar/seki-sidebar-group-content.d.ts +3 -0
  359. package/dist/types/components/sidebar/seki-sidebar-group-label.d.ts +3 -0
  360. package/dist/types/components/sidebar/seki-sidebar-group.d.ts +2 -76
  361. package/dist/types/components/sidebar/seki-sidebar-header.d.ts +5 -14
  362. package/dist/types/components/sidebar/seki-sidebar-inset.d.ts +3 -0
  363. package/dist/types/components/sidebar/seki-sidebar-menu-action.d.ts +7 -0
  364. package/dist/types/components/sidebar/seki-sidebar-menu-badge.d.ts +3 -0
  365. package/dist/types/components/sidebar/seki-sidebar-menu-button.d.ts +37 -0
  366. package/dist/types/components/sidebar/seki-sidebar-menu-item.d.ts +0 -101
  367. package/dist/types/components/sidebar/seki-sidebar-menu-skeleton.d.ts +7 -0
  368. package/dist/types/components/sidebar/seki-sidebar-menu-sub-button.d.ts +11 -0
  369. package/dist/types/components/sidebar/seki-sidebar-menu-sub-item.d.ts +3 -0
  370. package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +12 -71
  371. package/dist/types/components/sidebar/seki-sidebar-menu.d.ts +0 -14
  372. package/dist/types/components/sidebar/seki-sidebar-provider.d.ts +59 -0
  373. package/dist/types/components/sidebar/seki-sidebar-rail.d.ts +5 -0
  374. package/dist/types/components/sidebar/seki-sidebar-separator.d.ts +3 -0
  375. package/dist/types/components/sidebar/seki-sidebar-trigger.d.ts +9 -46
  376. package/dist/types/components/sidebar/seki-sidebar.d.ts +13 -174
  377. package/dist/types/components.d.ts +344 -287
  378. package/package.json +1 -1
  379. package/dist/cdn/p-BJCq8m2o.js +0 -138
  380. package/dist/cjs/keyboard-Cjl5HYES.js +0 -142
  381. package/dist/collection/components/sidebar/seki-sidebar-menu-item.css +0 -196
  382. package/dist/collection/components/sidebar/types.js +0 -18
  383. package/dist/components/p-BJCq8m2o.js +0 -138
  384. package/dist/esm/keyboard-BJCq8m2o.js +0 -138
  385. package/dist/sekiui/p-0af1b81a.entry.js +0 -1
  386. package/dist/sekiui/p-0ca6b9f0.entry.js +0 -1
  387. package/dist/sekiui/p-26b629bc.entry.js +0 -1
  388. package/dist/sekiui/p-37fa684c.entry.js +0 -1
  389. package/dist/sekiui/p-4b29dbda.entry.js +0 -1
  390. package/dist/sekiui/p-60ff3543.entry.js +0 -1
  391. package/dist/sekiui/p-9dcd07b2.entry.js +0 -1
  392. package/dist/sekiui/p-BJCq8m2o.js +0 -1
  393. package/dist/sekiui/p-DI_YjzRi.js +0 -2
  394. package/dist/sekiui/p-b525d85a.entry.js +0 -1
  395. package/dist/sekiui/p-c83d94c4.entry.js +0 -1
  396. package/dist/types/components/sidebar/types.d.ts +0 -245
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sekiui/elements",
3
- "version": "0.0.59",
3
+ "version": "0.0.60",
4
4
  "description": "Modern, accessible Web Components with shadcn/ui-inspired design",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1,138 +0,0 @@
1
- /**
2
- * Keyboard Service
3
- * Provides normalized keyboard event handling and shortcut management
4
- * Handles cross-platform shortcuts (Ctrl/Cmd combinations)
5
- */
6
- /**
7
- * KeyboardService - Centralized keyboard event management
8
- * Provides:
9
- * - Normalized keyboard shortcuts (handles Ctrl vs Cmd on Mac)
10
- * - Cross-platform shortcut registration
11
- * - Event cleanup and teardown
12
- */
13
- class KeyboardService {
14
- constructor() {
15
- this.shortcuts = new Map();
16
- this.listeners = new Map();
17
- }
18
- /**
19
- * Register a keyboard shortcut
20
- * @param id - Unique identifier for this shortcut
21
- * @param options - Shortcut configuration
22
- */
23
- registerShortcut(id, options) {
24
- if (typeof window === 'undefined')
25
- return;
26
- const { key, ctrl = false, shift = false, alt = false, meta = false, handler, preventDefault = true } = options;
27
- const handleKeyDown = (event) => {
28
- const keyboardEvent = event;
29
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
30
- const ctrlMatches = ctrl ? keyboardEvent.ctrlKey : true;
31
- const shiftMatches = shift ? keyboardEvent.shiftKey : !keyboardEvent.shiftKey;
32
- const altMatches = alt ? keyboardEvent.altKey : !keyboardEvent.altKey;
33
- // metaKey matches both metaKey (Mac Cmd) and ctrlKey (Windows/Linux) for cross-platform support
34
- const metaMatches = meta ? keyboardEvent.metaKey || keyboardEvent.ctrlKey : !keyboardEvent.metaKey && !keyboardEvent.ctrlKey;
35
- if (keyMatches && ctrlMatches && shiftMatches && altMatches && metaMatches) {
36
- if (preventDefault) {
37
- keyboardEvent.preventDefault();
38
- }
39
- handler(keyboardEvent);
40
- }
41
- };
42
- this.shortcuts.set(id, {
43
- key,
44
- ctrlKey: ctrl,
45
- shiftKey: shift,
46
- altKey: alt,
47
- metaKey: meta,
48
- handler: handleKeyDown,
49
- });
50
- this.listeners.set(id, handleKeyDown);
51
- window.addEventListener('keydown', handleKeyDown);
52
- }
53
- /**
54
- * Register a shortcut that works with Ctrl on Windows/Linux and Cmd on Mac
55
- * @param id - Unique identifier for this shortcut
56
- * @param key - The key to listen for
57
- * @param handler - Callback when shortcut is triggered
58
- * @param preventDefault - Whether to prevent default browser behavior
59
- */
60
- registerCtrlOrCmdShortcut(id, key, handler, preventDefault = true) {
61
- if (typeof window === 'undefined')
62
- return;
63
- const handleKeyDown = (event) => {
64
- const keyboardEvent = event;
65
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
66
- const modifierMatches = keyboardEvent.ctrlKey || keyboardEvent.metaKey;
67
- if (keyMatches && modifierMatches && !keyboardEvent.shiftKey && !keyboardEvent.altKey) {
68
- if (preventDefault) {
69
- keyboardEvent.preventDefault();
70
- }
71
- handler(keyboardEvent);
72
- }
73
- };
74
- this.listeners.set(id, handleKeyDown);
75
- window.addEventListener('keydown', handleKeyDown);
76
- }
77
- /**
78
- * Unregister a keyboard shortcut
79
- * @param id - The identifier of the shortcut to remove
80
- */
81
- unregisterShortcut(id) {
82
- if (typeof window === 'undefined')
83
- return;
84
- const listener = this.listeners.get(id);
85
- if (listener) {
86
- window.removeEventListener('keydown', listener);
87
- this.listeners.delete(id);
88
- }
89
- this.shortcuts.delete(id);
90
- }
91
- /**
92
- * Unregister all shortcuts and clean up
93
- */
94
- cleanup() {
95
- if (typeof window === 'undefined')
96
- return;
97
- this.listeners.forEach((listener) => {
98
- window.removeEventListener('keydown', listener);
99
- });
100
- this.listeners.clear();
101
- this.shortcuts.clear();
102
- }
103
- /**
104
- * Check if a keyboard event matches a specific key combination
105
- * @param event - The keyboard event to check
106
- * @param key - The key to match
107
- * @param ctrl - Whether Ctrl/Cmd should be pressed
108
- * @param shift - Whether Shift should be pressed
109
- * @param alt - Whether Alt should be pressed
110
- */
111
- matchesShortcut(event, key, ctrl = false, shift = false, alt = false) {
112
- const keyMatches = event.key.toLowerCase() === key.toLowerCase();
113
- const ctrlMatches = ctrl ? event.ctrlKey || event.metaKey : !event.ctrlKey && !event.metaKey;
114
- const shiftMatches = shift ? event.shiftKey : !event.shiftKey;
115
- const altMatches = alt ? event.altKey : !event.altKey;
116
- return keyMatches && ctrlMatches && shiftMatches && altMatches;
117
- }
118
- }
119
- // Singleton instance
120
- let keyboardServiceInstance = null;
121
- /**
122
- * Get the singleton KeyboardService instance
123
- */
124
- function getKeyboardService() {
125
- if (!keyboardServiceInstance) {
126
- keyboardServiceInstance = new KeyboardService();
127
- }
128
- return keyboardServiceInstance;
129
- }
130
- /**
131
- * Create a new isolated KeyboardService instance
132
- * Useful for testing or when you need independent event handling
133
- */
134
- function createKeyboardService() {
135
- return new KeyboardService();
136
- }
137
-
138
- export { KeyboardService as K, createKeyboardService as c, getKeyboardService as g };
@@ -1,142 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Keyboard Service
5
- * Provides normalized keyboard event handling and shortcut management
6
- * Handles cross-platform shortcuts (Ctrl/Cmd combinations)
7
- */
8
- /**
9
- * KeyboardService - Centralized keyboard event management
10
- * Provides:
11
- * - Normalized keyboard shortcuts (handles Ctrl vs Cmd on Mac)
12
- * - Cross-platform shortcut registration
13
- * - Event cleanup and teardown
14
- */
15
- class KeyboardService {
16
- constructor() {
17
- this.shortcuts = new Map();
18
- this.listeners = new Map();
19
- }
20
- /**
21
- * Register a keyboard shortcut
22
- * @param id - Unique identifier for this shortcut
23
- * @param options - Shortcut configuration
24
- */
25
- registerShortcut(id, options) {
26
- if (typeof window === 'undefined')
27
- return;
28
- const { key, ctrl = false, shift = false, alt = false, meta = false, handler, preventDefault = true } = options;
29
- const handleKeyDown = (event) => {
30
- const keyboardEvent = event;
31
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
32
- const ctrlMatches = ctrl ? keyboardEvent.ctrlKey : true;
33
- const shiftMatches = shift ? keyboardEvent.shiftKey : !keyboardEvent.shiftKey;
34
- const altMatches = alt ? keyboardEvent.altKey : !keyboardEvent.altKey;
35
- // metaKey matches both metaKey (Mac Cmd) and ctrlKey (Windows/Linux) for cross-platform support
36
- const metaMatches = meta ? keyboardEvent.metaKey || keyboardEvent.ctrlKey : !keyboardEvent.metaKey && !keyboardEvent.ctrlKey;
37
- if (keyMatches && ctrlMatches && shiftMatches && altMatches && metaMatches) {
38
- if (preventDefault) {
39
- keyboardEvent.preventDefault();
40
- }
41
- handler(keyboardEvent);
42
- }
43
- };
44
- this.shortcuts.set(id, {
45
- key,
46
- ctrlKey: ctrl,
47
- shiftKey: shift,
48
- altKey: alt,
49
- metaKey: meta,
50
- handler: handleKeyDown,
51
- });
52
- this.listeners.set(id, handleKeyDown);
53
- window.addEventListener('keydown', handleKeyDown);
54
- }
55
- /**
56
- * Register a shortcut that works with Ctrl on Windows/Linux and Cmd on Mac
57
- * @param id - Unique identifier for this shortcut
58
- * @param key - The key to listen for
59
- * @param handler - Callback when shortcut is triggered
60
- * @param preventDefault - Whether to prevent default browser behavior
61
- */
62
- registerCtrlOrCmdShortcut(id, key, handler, preventDefault = true) {
63
- if (typeof window === 'undefined')
64
- return;
65
- const handleKeyDown = (event) => {
66
- const keyboardEvent = event;
67
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
68
- const modifierMatches = keyboardEvent.ctrlKey || keyboardEvent.metaKey;
69
- if (keyMatches && modifierMatches && !keyboardEvent.shiftKey && !keyboardEvent.altKey) {
70
- if (preventDefault) {
71
- keyboardEvent.preventDefault();
72
- }
73
- handler(keyboardEvent);
74
- }
75
- };
76
- this.listeners.set(id, handleKeyDown);
77
- window.addEventListener('keydown', handleKeyDown);
78
- }
79
- /**
80
- * Unregister a keyboard shortcut
81
- * @param id - The identifier of the shortcut to remove
82
- */
83
- unregisterShortcut(id) {
84
- if (typeof window === 'undefined')
85
- return;
86
- const listener = this.listeners.get(id);
87
- if (listener) {
88
- window.removeEventListener('keydown', listener);
89
- this.listeners.delete(id);
90
- }
91
- this.shortcuts.delete(id);
92
- }
93
- /**
94
- * Unregister all shortcuts and clean up
95
- */
96
- cleanup() {
97
- if (typeof window === 'undefined')
98
- return;
99
- this.listeners.forEach((listener) => {
100
- window.removeEventListener('keydown', listener);
101
- });
102
- this.listeners.clear();
103
- this.shortcuts.clear();
104
- }
105
- /**
106
- * Check if a keyboard event matches a specific key combination
107
- * @param event - The keyboard event to check
108
- * @param key - The key to match
109
- * @param ctrl - Whether Ctrl/Cmd should be pressed
110
- * @param shift - Whether Shift should be pressed
111
- * @param alt - Whether Alt should be pressed
112
- */
113
- matchesShortcut(event, key, ctrl = false, shift = false, alt = false) {
114
- const keyMatches = event.key.toLowerCase() === key.toLowerCase();
115
- const ctrlMatches = ctrl ? event.ctrlKey || event.metaKey : !event.ctrlKey && !event.metaKey;
116
- const shiftMatches = shift ? event.shiftKey : !event.shiftKey;
117
- const altMatches = alt ? event.altKey : !event.altKey;
118
- return keyMatches && ctrlMatches && shiftMatches && altMatches;
119
- }
120
- }
121
- // Singleton instance
122
- let keyboardServiceInstance = null;
123
- /**
124
- * Get the singleton KeyboardService instance
125
- */
126
- function getKeyboardService() {
127
- if (!keyboardServiceInstance) {
128
- keyboardServiceInstance = new KeyboardService();
129
- }
130
- return keyboardServiceInstance;
131
- }
132
- /**
133
- * Create a new isolated KeyboardService instance
134
- * Useful for testing or when you need independent event handling
135
- */
136
- function createKeyboardService() {
137
- return new KeyboardService();
138
- }
139
-
140
- exports.KeyboardService = KeyboardService;
141
- exports.createKeyboardService = createKeyboardService;
142
- exports.getKeyboardService = getKeyboardService;
@@ -1,196 +0,0 @@
1
- /**
2
- * SekiSidebarMenuItem CSS
3
- * Styling for individual menu items in the sidebar
4
- */
5
-
6
- :host {
7
- display: block;
8
- width: 100%;
9
- }
10
-
11
- .item-wrapper {
12
- display: flex;
13
- list-style: none;
14
- margin: 0;
15
- padding: 0;
16
- width: 100%;
17
- }
18
-
19
- .item-content {
20
- display: flex;
21
- align-items: center;
22
- justify-content: flex-start;
23
- gap: var(--sidebar-gap, 0.5rem);
24
- width: 100%;
25
- padding: var(--sidebar-item-padding, 0.5rem 0.75rem);
26
- text-decoration: none;
27
- color: var(--sidebar-item-foreground, var(--seki-color-text));
28
- background-color: transparent;
29
- border: none;
30
- border-radius: var(--sidebar-radius-sm, 0.25rem);
31
- cursor: pointer;
32
- transition: width 200ms ease-linear, height 200ms ease-linear, padding 200ms ease-linear;
33
- white-space: nowrap;
34
- overflow: hidden;
35
- text-overflow: ellipsis;
36
- /* Use built-in typography */
37
- font-size: var(--seki-font-size-sm);
38
- font-weight: var(--seki-font-weight-medium);
39
- font-family: var(--seki-font-sans);
40
- line-height: 1.25rem;
41
- }
42
-
43
- :host([data-theme="dark"]) .item-content {
44
- color: var(--sidebar-item-foreground-dark, #f1f5f9);
45
- }
46
-
47
- .item-content:hover:not([aria-disabled="true"]) {
48
- background-color: var(--sidebar-item-hover-bg, #f3f4f6);
49
- color: var(--sidebar-item-hover-foreground, #111827);
50
- }
51
-
52
- :host([data-theme="dark"]) .item-content:hover:not([aria-disabled="true"]) {
53
- background-color: var(--sidebar-item-hover-bg-dark, #27272a);
54
- color: var(--sidebar-item-hover-foreground-dark, #fafafa);
55
- }
56
-
57
- .item-content:focus-visible {
58
- outline: 2px solid var(--sidebar-primary, #3b82f6);
59
- outline-offset: -2px;
60
- }
61
-
62
- :host([data-active="true"]) .item-content {
63
- background-color: var(--sidebar-item-active-bg, #e0e7ff);
64
- color: var(--sidebar-item-active-foreground, #1e40af);
65
- font-weight: 600;
66
- }
67
-
68
- :host([data-theme="dark"][data-active="true"]) .item-content {
69
- background-color: var(--sidebar-item-active-bg-dark, #312e81);
70
- color: var(--sidebar-item-active-foreground-dark, #c7d2fe);
71
- }
72
-
73
- :host([data-disabled="true"]) .item-content {
74
- opacity: 0.5;
75
- cursor: not-allowed;
76
- pointer-events: none;
77
- }
78
-
79
- .item-icon {
80
- display: flex;
81
- align-items: center;
82
- justify-content: center;
83
- width: 1rem;
84
- height: 1rem;
85
- flex-shrink: 0;
86
- font-size: 1rem;
87
- color: inherit;
88
- }
89
-
90
- .item-label {
91
- flex: 1;
92
- overflow: hidden;
93
- text-overflow: ellipsis;
94
- white-space: nowrap;
95
- }
96
-
97
- .item-badge {
98
- display: inline-flex;
99
- align-items: center;
100
- justify-content: center;
101
- padding: 0.125rem 0.375rem;
102
- border-radius: var(--sidebar-radius-sm, 0.25rem);
103
- flex-shrink: 0;
104
- margin-left: auto;
105
- /* Use built-in typography */
106
- font-size: var(--seki-font-size-xs);
107
- font-weight: var(--seki-font-weight-semibold);
108
- font-family: var(--seki-font-sans);
109
- }
110
-
111
- .badge-default {
112
- background-color: var(--sidebar-badge-bg, #dbeafe);
113
- color: var(--sidebar-badge-foreground, #1e40af);
114
- }
115
-
116
- .badge-secondary {
117
- background-color: var(--sidebar-badge-secondary-bg, #e5e7eb);
118
- color: var(--sidebar-badge-secondary-foreground, #374151);
119
- }
120
-
121
- .badge-destructive {
122
- background-color: var(--sidebar-badge-destructive-bg, #fee2e2);
123
- color: var(--sidebar-badge-destructive-foreground, #991b1b);
124
- }
125
-
126
- :host([data-theme="dark"]) .badge-default {
127
- background-color: var(--sidebar-badge-bg-dark, #1e3a8a);
128
- color: var(--sidebar-badge-foreground-dark, #93c5fd);
129
- }
130
-
131
- :host([data-theme="dark"]) .badge-secondary {
132
- background-color: var(--sidebar-badge-secondary-bg-dark, #3f3f46);
133
- color: var(--sidebar-badge-secondary-foreground-dark, #d4d4d8);
134
- }
135
-
136
- :host([data-theme="dark"]) .badge-destructive {
137
- background-color: var(--sidebar-badge-destructive-bg-dark, #7f1d1d);
138
- color: var(--sidebar-badge-destructive-foreground-dark, #fca5a5);
139
- }
140
-
141
- /* Print styles */
142
- @media print {
143
- :host([data-active="true"]) .item-content {
144
- text-decoration: underline;
145
- font-weight: bold;
146
- }
147
- }
148
-
149
- /* High contrast mode support */
150
- @media (prefers-contrast: more) {
151
- .item-content {
152
- border: 1px solid transparent;
153
- }
154
-
155
- .item-content:focus-visible {
156
- border-color: var(--sidebar-primary, #3b82f6);
157
- }
158
- }
159
-
160
- /* Reduced motion support */
161
- @media (prefers-reduced-motion: reduce) {
162
- .item-content {
163
- transition: none;
164
- }
165
- }
166
-
167
- /* Collapsed icon mode - hide labels, show only icons with smooth transitions */
168
- :host-context(seki-sidebar[data-state="closed"][data-collapse-mode="icon"]) .item-label {
169
- margin-left: -0.5rem;
170
- opacity: 0;
171
- transition: margin-left 200ms ease-linear, opacity 200ms ease-linear;
172
- }
173
-
174
- :host-context(seki-sidebar[data-state="closed"][data-collapse-mode="icon"]) .item-badge {
175
- margin-left: -0.5rem;
176
- opacity: 0;
177
- transition: margin-left 200ms ease-linear, opacity 200ms ease-linear;
178
- }
179
-
180
- :host-context(seki-sidebar[data-state="closed"][data-collapse-mode="icon"]) .item-content {
181
- justify-content: center;
182
- padding: 0.5rem;
183
- }
184
-
185
- :host-context(seki-sidebar[data-state="closed"][data-collapse-mode="icon"]) .item-icon {
186
- width: 1rem;
187
- height: 1rem;
188
- }
189
-
190
- /* Expanded - show labels */
191
- :host-context(seki-sidebar[data-state="open"]) .item-label,
192
- :host-context(seki-sidebar:not([data-state="closed"])) .item-label {
193
- margin-left: 0;
194
- opacity: 1;
195
- transition: margin-left 200ms ease-linear, opacity 200ms ease-linear;
196
- }
@@ -1,18 +0,0 @@
1
- /**
2
- * Sidebar Component Type Definitions
3
- * @module sidebar/types
4
- *
5
- * Complete TypeScript interfaces and types for the sidebar component system.
6
- * These types are used throughout the component implementation, tests, and exported
7
- * to the npm package for consumer IDE autocomplete support.
8
- */
9
- /**
10
- * Default sidebar state values
11
- */
12
- export const DEFAULT_SIDEBAR_STATE = {
13
- isOpen: true,
14
- collapseMode: 'offcanvas',
15
- variant: 'sidebar',
16
- isMobile: typeof window !== 'undefined' ? window.innerWidth < 768 : false,
17
- persistenceKey: 'seki-sidebar-state',
18
- };
@@ -1,138 +0,0 @@
1
- /**
2
- * Keyboard Service
3
- * Provides normalized keyboard event handling and shortcut management
4
- * Handles cross-platform shortcuts (Ctrl/Cmd combinations)
5
- */
6
- /**
7
- * KeyboardService - Centralized keyboard event management
8
- * Provides:
9
- * - Normalized keyboard shortcuts (handles Ctrl vs Cmd on Mac)
10
- * - Cross-platform shortcut registration
11
- * - Event cleanup and teardown
12
- */
13
- class KeyboardService {
14
- constructor() {
15
- this.shortcuts = new Map();
16
- this.listeners = new Map();
17
- }
18
- /**
19
- * Register a keyboard shortcut
20
- * @param id - Unique identifier for this shortcut
21
- * @param options - Shortcut configuration
22
- */
23
- registerShortcut(id, options) {
24
- if (typeof window === 'undefined')
25
- return;
26
- const { key, ctrl = false, shift = false, alt = false, meta = false, handler, preventDefault = true } = options;
27
- const handleKeyDown = (event) => {
28
- const keyboardEvent = event;
29
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
30
- const ctrlMatches = ctrl ? keyboardEvent.ctrlKey : true;
31
- const shiftMatches = shift ? keyboardEvent.shiftKey : !keyboardEvent.shiftKey;
32
- const altMatches = alt ? keyboardEvent.altKey : !keyboardEvent.altKey;
33
- // metaKey matches both metaKey (Mac Cmd) and ctrlKey (Windows/Linux) for cross-platform support
34
- const metaMatches = meta ? keyboardEvent.metaKey || keyboardEvent.ctrlKey : !keyboardEvent.metaKey && !keyboardEvent.ctrlKey;
35
- if (keyMatches && ctrlMatches && shiftMatches && altMatches && metaMatches) {
36
- if (preventDefault) {
37
- keyboardEvent.preventDefault();
38
- }
39
- handler(keyboardEvent);
40
- }
41
- };
42
- this.shortcuts.set(id, {
43
- key,
44
- ctrlKey: ctrl,
45
- shiftKey: shift,
46
- altKey: alt,
47
- metaKey: meta,
48
- handler: handleKeyDown,
49
- });
50
- this.listeners.set(id, handleKeyDown);
51
- window.addEventListener('keydown', handleKeyDown);
52
- }
53
- /**
54
- * Register a shortcut that works with Ctrl on Windows/Linux and Cmd on Mac
55
- * @param id - Unique identifier for this shortcut
56
- * @param key - The key to listen for
57
- * @param handler - Callback when shortcut is triggered
58
- * @param preventDefault - Whether to prevent default browser behavior
59
- */
60
- registerCtrlOrCmdShortcut(id, key, handler, preventDefault = true) {
61
- if (typeof window === 'undefined')
62
- return;
63
- const handleKeyDown = (event) => {
64
- const keyboardEvent = event;
65
- const keyMatches = keyboardEvent.key.toLowerCase() === key.toLowerCase();
66
- const modifierMatches = keyboardEvent.ctrlKey || keyboardEvent.metaKey;
67
- if (keyMatches && modifierMatches && !keyboardEvent.shiftKey && !keyboardEvent.altKey) {
68
- if (preventDefault) {
69
- keyboardEvent.preventDefault();
70
- }
71
- handler(keyboardEvent);
72
- }
73
- };
74
- this.listeners.set(id, handleKeyDown);
75
- window.addEventListener('keydown', handleKeyDown);
76
- }
77
- /**
78
- * Unregister a keyboard shortcut
79
- * @param id - The identifier of the shortcut to remove
80
- */
81
- unregisterShortcut(id) {
82
- if (typeof window === 'undefined')
83
- return;
84
- const listener = this.listeners.get(id);
85
- if (listener) {
86
- window.removeEventListener('keydown', listener);
87
- this.listeners.delete(id);
88
- }
89
- this.shortcuts.delete(id);
90
- }
91
- /**
92
- * Unregister all shortcuts and clean up
93
- */
94
- cleanup() {
95
- if (typeof window === 'undefined')
96
- return;
97
- this.listeners.forEach((listener) => {
98
- window.removeEventListener('keydown', listener);
99
- });
100
- this.listeners.clear();
101
- this.shortcuts.clear();
102
- }
103
- /**
104
- * Check if a keyboard event matches a specific key combination
105
- * @param event - The keyboard event to check
106
- * @param key - The key to match
107
- * @param ctrl - Whether Ctrl/Cmd should be pressed
108
- * @param shift - Whether Shift should be pressed
109
- * @param alt - Whether Alt should be pressed
110
- */
111
- matchesShortcut(event, key, ctrl = false, shift = false, alt = false) {
112
- const keyMatches = event.key.toLowerCase() === key.toLowerCase();
113
- const ctrlMatches = ctrl ? event.ctrlKey || event.metaKey : !event.ctrlKey && !event.metaKey;
114
- const shiftMatches = shift ? event.shiftKey : !event.shiftKey;
115
- const altMatches = alt ? event.altKey : !event.altKey;
116
- return keyMatches && ctrlMatches && shiftMatches && altMatches;
117
- }
118
- }
119
- // Singleton instance
120
- let keyboardServiceInstance = null;
121
- /**
122
- * Get the singleton KeyboardService instance
123
- */
124
- function getKeyboardService() {
125
- if (!keyboardServiceInstance) {
126
- keyboardServiceInstance = new KeyboardService();
127
- }
128
- return keyboardServiceInstance;
129
- }
130
- /**
131
- * Create a new isolated KeyboardService instance
132
- * Useful for testing or when you need independent event handling
133
- */
134
- function createKeyboardService() {
135
- return new KeyboardService();
136
- }
137
-
138
- export { KeyboardService as K, createKeyboardService as c, getKeyboardService as g };