@mihcm/ui 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/CheckboxGrid.native.d.ts.map +1 -1
  2. package/dist/CheckboxGrid.native.js +2 -1
  3. package/dist/CheckboxGrid.native.js.map +1 -1
  4. package/dist/Combobox.native.d.ts.map +1 -1
  5. package/dist/Combobox.native.js +2 -1
  6. package/dist/Combobox.native.js.map +1 -1
  7. package/dist/DataTable/column-filter.d.ts +8 -0
  8. package/dist/DataTable/column-filter.d.ts.map +1 -0
  9. package/dist/DataTable/column-filter.js +67 -0
  10. package/dist/DataTable/column-filter.js.map +1 -0
  11. package/dist/DataTable/column-header.d.ts +16 -0
  12. package/dist/DataTable/column-header.d.ts.map +1 -0
  13. package/dist/DataTable/column-header.js +11 -0
  14. package/dist/DataTable/column-header.js.map +1 -0
  15. package/dist/DataTable/column-visibility.d.ts +7 -0
  16. package/dist/DataTable/column-visibility.d.ts.map +1 -0
  17. package/dist/DataTable/column-visibility.js +35 -0
  18. package/dist/DataTable/column-visibility.js.map +1 -0
  19. package/dist/DataTable/index.d.ts +5 -0
  20. package/dist/DataTable/index.d.ts.map +1 -0
  21. package/dist/DataTable/index.js +5 -0
  22. package/dist/DataTable/index.js.map +1 -0
  23. package/dist/DataTable/pinning.d.ts +13 -0
  24. package/dist/DataTable/pinning.d.ts.map +1 -0
  25. package/dist/DataTable/pinning.js +29 -0
  26. package/dist/DataTable/pinning.js.map +1 -0
  27. package/dist/DataTable.d.ts +3 -7
  28. package/dist/DataTable.d.ts.map +1 -1
  29. package/dist/DataTable.js +7 -126
  30. package/dist/DataTable.js.map +1 -1
  31. package/dist/Dialog.native.d.ts +3 -1
  32. package/dist/Dialog.native.d.ts.map +1 -1
  33. package/dist/Dialog.native.js +2 -2
  34. package/dist/Dialog.native.js.map +1 -1
  35. package/dist/Form/building-blocks.d.ts +26 -0
  36. package/dist/Form/building-blocks.d.ts.map +1 -0
  37. package/dist/Form/building-blocks.js +29 -0
  38. package/dist/Form/building-blocks.js.map +1 -0
  39. package/dist/Form/fields-choice.d.ts +72 -0
  40. package/dist/Form/fields-choice.d.ts.map +1 -0
  41. package/dist/Form/fields-choice.js +69 -0
  42. package/dist/Form/fields-choice.js.map +1 -0
  43. package/dist/Form/fields-complex.d.ts +28 -0
  44. package/dist/Form/fields-complex.d.ts.map +1 -0
  45. package/dist/Form/fields-complex.js +38 -0
  46. package/dist/Form/fields-complex.js.map +1 -0
  47. package/dist/Form/fields-date.d.ts +46 -0
  48. package/dist/Form/fields-date.d.ts.map +1 -0
  49. package/dist/Form/fields-date.js +41 -0
  50. package/dist/Form/fields-date.js.map +1 -0
  51. package/dist/Form/fields-text.d.ts +47 -0
  52. package/dist/Form/fields-text.d.ts.map +1 -0
  53. package/dist/Form/fields-text.js +46 -0
  54. package/dist/Form/fields-text.js.map +1 -0
  55. package/dist/Form/fields-toggle.d.ts +24 -0
  56. package/dist/Form/fields-toggle.d.ts.map +1 -0
  57. package/dist/Form/fields-toggle.js +32 -0
  58. package/dist/Form/fields-toggle.js.map +1 -0
  59. package/dist/Form/helpers.d.ts +66 -0
  60. package/dist/Form/helpers.d.ts.map +1 -0
  61. package/dist/Form/helpers.js +44 -0
  62. package/dist/Form/helpers.js.map +1 -0
  63. package/dist/Form/types.d.ts +25 -0
  64. package/dist/Form/types.d.ts.map +1 -0
  65. package/dist/Form/types.js +8 -0
  66. package/dist/Form/types.js.map +1 -0
  67. package/dist/Form.d.ts +24 -298
  68. package/dist/Form.d.ts.map +1 -1
  69. package/dist/Form.js +30 -246
  70. package/dist/Form.js.map +1 -1
  71. package/dist/IconSidebar.d.ts +6 -46
  72. package/dist/IconSidebar.d.ts.map +1 -1
  73. package/dist/IconSidebar.js +6 -116
  74. package/dist/IconSidebar.js.map +1 -1
  75. package/dist/MainSidebar/back-button.d.ts +14 -0
  76. package/dist/MainSidebar/back-button.d.ts.map +1 -0
  77. package/dist/MainSidebar/back-button.js +14 -0
  78. package/dist/MainSidebar/back-button.js.map +1 -0
  79. package/dist/MainSidebar/breadcrumb.d.ts +10 -0
  80. package/dist/MainSidebar/breadcrumb.d.ts.map +1 -0
  81. package/dist/MainSidebar/breadcrumb.js +24 -0
  82. package/dist/MainSidebar/breadcrumb.js.map +1 -0
  83. package/dist/MainSidebar/columns.d.ts +3 -0
  84. package/dist/MainSidebar/columns.d.ts.map +1 -0
  85. package/dist/MainSidebar/columns.js +198 -0
  86. package/dist/MainSidebar/columns.js.map +1 -0
  87. package/dist/MainSidebar/command.d.ts +3 -0
  88. package/dist/MainSidebar/command.d.ts.map +1 -0
  89. package/dist/MainSidebar/command.js +193 -0
  90. package/dist/MainSidebar/command.js.map +1 -0
  91. package/dist/MainSidebar/drilldown.d.ts +3 -0
  92. package/dist/MainSidebar/drilldown.d.ts.map +1 -0
  93. package/dist/MainSidebar/drilldown.js +154 -0
  94. package/dist/MainSidebar/drilldown.js.map +1 -0
  95. package/dist/MainSidebar/expanded.d.ts +7 -0
  96. package/dist/MainSidebar/expanded.d.ts.map +1 -0
  97. package/dist/MainSidebar/expanded.js +102 -0
  98. package/dist/MainSidebar/expanded.js.map +1 -0
  99. package/dist/MainSidebar/floating.d.ts +3 -0
  100. package/dist/MainSidebar/floating.d.ts.map +1 -0
  101. package/dist/MainSidebar/floating.js +116 -0
  102. package/dist/MainSidebar/floating.js.map +1 -0
  103. package/dist/MainSidebar/helpers.d.ts +50 -0
  104. package/dist/MainSidebar/helpers.d.ts.map +1 -0
  105. package/dist/MainSidebar/helpers.js +148 -0
  106. package/dist/MainSidebar/helpers.js.map +1 -0
  107. package/dist/MainSidebar/hover.d.ts +3 -0
  108. package/dist/MainSidebar/hover.d.ts.map +1 -0
  109. package/dist/MainSidebar/hover.js +177 -0
  110. package/dist/MainSidebar/hover.js.map +1 -0
  111. package/dist/MainSidebar/index.d.ts +6 -0
  112. package/dist/MainSidebar/index.d.ts.map +1 -0
  113. package/dist/MainSidebar/index.js +108 -0
  114. package/dist/MainSidebar/index.js.map +1 -0
  115. package/dist/MainSidebar/mobile.d.ts +29 -0
  116. package/dist/MainSidebar/mobile.d.ts.map +1 -0
  117. package/dist/MainSidebar/mobile.js +38 -0
  118. package/dist/MainSidebar/mobile.js.map +1 -0
  119. package/dist/MainSidebar/motion.d.ts +23 -0
  120. package/dist/MainSidebar/motion.d.ts.map +1 -0
  121. package/dist/MainSidebar/motion.js +40 -0
  122. package/dist/MainSidebar/motion.js.map +1 -0
  123. package/dist/MainSidebar/rail.d.ts +24 -0
  124. package/dist/MainSidebar/rail.d.ts.map +1 -0
  125. package/dist/MainSidebar/rail.js +29 -0
  126. package/dist/MainSidebar/rail.js.map +1 -0
  127. package/dist/MainSidebar/search.d.ts +19 -0
  128. package/dist/MainSidebar/search.d.ts.map +1 -0
  129. package/dist/MainSidebar/search.js +33 -0
  130. package/dist/MainSidebar/search.js.map +1 -0
  131. package/dist/MainSidebar/types.d.ts +161 -0
  132. package/dist/MainSidebar/types.d.ts.map +1 -0
  133. package/dist/MainSidebar/types.js +2 -0
  134. package/dist/MainSidebar/types.js.map +1 -0
  135. package/dist/MainSidebar.d.ts +6 -1
  136. package/dist/MainSidebar.d.ts.map +1 -1
  137. package/dist/MainSidebar.js +6 -1
  138. package/dist/MainSidebar.js.map +1 -1
  139. package/dist/NavigationMenu.js +1 -1
  140. package/dist/NavigationMenu.js.map +1 -1
  141. package/dist/RichTextEditor/theme.d.ts +44 -0
  142. package/dist/RichTextEditor/theme.d.ts.map +1 -0
  143. package/dist/RichTextEditor/theme.js +41 -0
  144. package/dist/RichTextEditor/theme.js.map +1 -0
  145. package/dist/RichTextEditor/toolbar-icons.d.ts +21 -0
  146. package/dist/RichTextEditor/toolbar-icons.d.ts.map +1 -0
  147. package/dist/RichTextEditor/toolbar-icons.js +21 -0
  148. package/dist/RichTextEditor/toolbar-icons.js.map +1 -0
  149. package/dist/RichTextEditor/toolbar.d.ts +5 -0
  150. package/dist/RichTextEditor/toolbar.d.ts.map +1 -0
  151. package/dist/RichTextEditor/toolbar.js +116 -0
  152. package/dist/RichTextEditor/toolbar.js.map +1 -0
  153. package/dist/RichTextEditor.d.ts +16 -9
  154. package/dist/RichTextEditor.d.ts.map +1 -1
  155. package/dist/RichTextEditor.js +18 -164
  156. package/dist/RichTextEditor.js.map +1 -1
  157. package/dist/Select/content.d.ts +9 -0
  158. package/dist/Select/content.d.ts.map +1 -0
  159. package/dist/Select/content.js +80 -0
  160. package/dist/Select/content.js.map +1 -0
  161. package/dist/Select/context.d.ts +27 -0
  162. package/dist/Select/context.d.ts.map +1 -0
  163. package/dist/Select/context.js +35 -0
  164. package/dist/Select/context.js.map +1 -0
  165. package/dist/Select/item.d.ts +13 -0
  166. package/dist/Select/item.d.ts.map +1 -0
  167. package/dist/Select/item.js +39 -0
  168. package/dist/Select/item.js.map +1 -0
  169. package/dist/Select/parts.d.ts +14 -0
  170. package/dist/Select/parts.d.ts.map +1 -0
  171. package/dist/Select/parts.js +17 -0
  172. package/dist/Select/parts.js.map +1 -0
  173. package/dist/Select/react-select.d.ts +25 -0
  174. package/dist/Select/react-select.d.ts.map +1 -0
  175. package/dist/Select/react-select.js +66 -0
  176. package/dist/Select/react-select.js.map +1 -0
  177. package/dist/Select/root.d.ts +15 -0
  178. package/dist/Select/root.d.ts.map +1 -0
  179. package/dist/Select/root.js +41 -0
  180. package/dist/Select/root.js.map +1 -0
  181. package/dist/Select/trigger.d.ts +15 -0
  182. package/dist/Select/trigger.d.ts.map +1 -0
  183. package/dist/Select/trigger.js +61 -0
  184. package/dist/Select/trigger.js.map +1 -0
  185. package/dist/Select.d.ts +14 -62
  186. package/dist/Select.d.ts.map +1 -1
  187. package/dist/Select.js +14 -293
  188. package/dist/Select.js.map +1 -1
  189. package/dist/Sidebar/context.d.ts +28 -0
  190. package/dist/Sidebar/context.d.ts.map +1 -0
  191. package/dist/Sidebar/context.js +37 -0
  192. package/dist/Sidebar/context.js.map +1 -0
  193. package/dist/Sidebar/group.d.ts +13 -0
  194. package/dist/Sidebar/group.d.ts.map +1 -0
  195. package/dist/Sidebar/group.js +20 -0
  196. package/dist/Sidebar/group.js.map +1 -0
  197. package/dist/Sidebar/icons.d.ts +7 -0
  198. package/dist/Sidebar/icons.d.ts.map +1 -0
  199. package/dist/Sidebar/icons.js +12 -0
  200. package/dist/Sidebar/icons.js.map +1 -0
  201. package/dist/Sidebar/layout.d.ts +9 -0
  202. package/dist/Sidebar/layout.d.ts.map +1 -0
  203. package/dist/Sidebar/layout.js +21 -0
  204. package/dist/Sidebar/layout.js.map +1 -0
  205. package/dist/Sidebar/menu.d.ts +29 -0
  206. package/dist/Sidebar/menu.d.ts.map +1 -0
  207. package/dist/Sidebar/menu.js +55 -0
  208. package/dist/Sidebar/menu.js.map +1 -0
  209. package/dist/Sidebar/provider.d.ts +33 -0
  210. package/dist/Sidebar/provider.d.ts.map +1 -0
  211. package/dist/Sidebar/provider.js +110 -0
  212. package/dist/Sidebar/provider.js.map +1 -0
  213. package/dist/Sidebar/sidebar.d.ts +17 -0
  214. package/dist/Sidebar/sidebar.d.ts.map +1 -0
  215. package/dist/Sidebar/sidebar.js +51 -0
  216. package/dist/Sidebar/sidebar.js.map +1 -0
  217. package/dist/Sidebar/submenu.d.ts +13 -0
  218. package/dist/Sidebar/submenu.d.ts.map +1 -0
  219. package/dist/Sidebar/submenu.js +17 -0
  220. package/dist/Sidebar/submenu.js.map +1 -0
  221. package/dist/Sidebar/trigger.d.ts +9 -0
  222. package/dist/Sidebar/trigger.d.ts.map +1 -0
  223. package/dist/Sidebar/trigger.js +33 -0
  224. package/dist/Sidebar/trigger.js.map +1 -0
  225. package/dist/Sidebar.d.ts +14 -104
  226. package/dist/Sidebar.d.ts.map +1 -1
  227. package/dist/Sidebar.js +14 -300
  228. package/dist/Sidebar.js.map +1 -1
  229. package/dist/StatCard.d.ts +67 -9
  230. package/dist/StatCard.d.ts.map +1 -1
  231. package/dist/StatCard.js +111 -9
  232. package/dist/StatCard.js.map +1 -1
  233. package/dist/TransferList.native.d.ts.map +1 -1
  234. package/dist/TransferList.native.js +2 -1
  235. package/dist/TransferList.native.js.map +1 -1
  236. package/package.json +2 -2
  237. package/src/CheckboxGrid.native.tsx +2 -1
  238. package/src/Combobox.native.tsx +2 -1
  239. package/src/DataTable/column-filter.tsx +134 -0
  240. package/src/DataTable/column-header.tsx +67 -0
  241. package/src/DataTable/column-visibility.tsx +87 -0
  242. package/src/DataTable/index.ts +4 -0
  243. package/src/DataTable/pinning.ts +40 -0
  244. package/src/DataTable.tsx +14 -297
  245. package/src/Dialog.native.tsx +4 -2
  246. package/src/Form/building-blocks.tsx +97 -0
  247. package/src/Form/fields-choice.tsx +312 -0
  248. package/src/Form/fields-complex.tsx +195 -0
  249. package/src/Form/fields-date.tsx +195 -0
  250. package/src/Form/fields-text.tsx +218 -0
  251. package/src/Form/fields-toggle.tsx +123 -0
  252. package/src/Form/helpers.tsx +189 -0
  253. package/src/Form/types.ts +26 -0
  254. package/src/Form.tsx +91 -1308
  255. package/src/IconSidebar.tsx +20 -442
  256. package/src/MainSidebar/back-button.tsx +58 -0
  257. package/src/MainSidebar/breadcrumb.tsx +53 -0
  258. package/src/MainSidebar/columns.tsx +350 -0
  259. package/src/MainSidebar/command.tsx +404 -0
  260. package/src/MainSidebar/drilldown.tsx +373 -0
  261. package/src/MainSidebar/expanded.tsx +414 -0
  262. package/src/MainSidebar/floating.tsx +268 -0
  263. package/src/MainSidebar/helpers.ts +164 -0
  264. package/src/MainSidebar/hover.tsx +334 -0
  265. package/src/MainSidebar/index.tsx +191 -0
  266. package/src/MainSidebar/mobile.tsx +117 -0
  267. package/src/MainSidebar/motion.ts +64 -0
  268. package/src/MainSidebar/rail.tsx +137 -0
  269. package/src/MainSidebar/search.tsx +99 -0
  270. package/src/MainSidebar/types.ts +208 -0
  271. package/src/MainSidebar.tsx +15 -4
  272. package/src/NavigationMenu.tsx +1 -1
  273. package/src/RichTextEditor/theme.ts +43 -0
  274. package/src/RichTextEditor/toolbar-icons.tsx +40 -0
  275. package/src/RichTextEditor/toolbar.tsx +271 -0
  276. package/src/RichTextEditor.tsx +23 -371
  277. package/src/Select/content.tsx +111 -0
  278. package/src/Select/context.tsx +66 -0
  279. package/src/Select/item.tsx +97 -0
  280. package/src/Select/parts.tsx +43 -0
  281. package/src/Select/react-select.tsx +216 -0
  282. package/src/Select/root.tsx +75 -0
  283. package/src/Select/trigger.tsx +122 -0
  284. package/src/Select.tsx +34 -692
  285. package/src/Sidebar/context.tsx +72 -0
  286. package/src/Sidebar/group.tsx +69 -0
  287. package/src/Sidebar/icons.tsx +42 -0
  288. package/src/Sidebar/layout.tsx +64 -0
  289. package/src/Sidebar/menu.tsx +171 -0
  290. package/src/Sidebar/provider.tsx +224 -0
  291. package/src/Sidebar/sidebar.tsx +178 -0
  292. package/src/Sidebar/submenu.tsx +58 -0
  293. package/src/Sidebar/trigger.tsx +104 -0
  294. package/src/Sidebar.tsx +44 -927
  295. package/src/StatCard.tsx +365 -20
  296. package/src/TransferList.native.tsx +2 -1
  297. package/dist/TiptapEditor.d.ts +0 -24
  298. package/dist/TiptapEditor.d.ts.map +0 -1
  299. package/dist/TiptapEditor.js +0 -84
  300. package/dist/TiptapEditor.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ interface BackButtonProps {
2
+ onClick: () => void;
3
+ label: string;
4
+ className?: string;
5
+ }
6
+ export declare function BackButton({ onClick, label, className }: BackButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ interface CloseButtonProps {
8
+ onClick: () => void;
9
+ label: string;
10
+ className?: string;
11
+ }
12
+ export declare function CloseButton({ onClick, label, className }: CloseButtonProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=back-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"back-button.d.ts","sourceRoot":"","sources":["../../src/MainSidebar/back-button.tsx"],"names":[],"mappings":"AAQA,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,2CAkBxE;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,gBAAgB,2CAiB1E"}
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Shared back / chevron button. Used by drilldown + columns + floating
5
+ * panel headers.
6
+ */
7
+ import { cn } from '../internal/cn.js';
8
+ export function BackButton({ onClick, label, className }) {
9
+ return (_jsxs("button", { type: "button", onClick: onClick, className: cn('inline-flex items-center gap-1 rounded-md px-1.5 py-1 text-xs font-medium text-card-foreground/70 transition-colors', 'hover:bg-card-foreground/10 hover:text-card-foreground', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-card-foreground/40', className), children: [_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: "size-3.5", "aria-hidden": "true", children: _jsx("path", { d: "m15 18-6-6 6-6", strokeLinecap: "round", strokeLinejoin: "round" }) }), label] }));
10
+ }
11
+ export function CloseButton({ onClick, label, className }) {
12
+ return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, className: cn('grid size-8 shrink-0 place-items-center rounded-md text-card-foreground/70 transition hover:bg-card-foreground/10 hover:text-card-foreground', 'focus:outline-none focus-visible:ring-2 focus-visible:ring-card-foreground/40', className), children: _jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: "size-4", "aria-hidden": "true", children: _jsx("path", { d: "M6 6l12 12M18 6 6 18", strokeLinecap: "round" }) }) }));
13
+ }
14
+ //# sourceMappingURL=back-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"back-button.js","sourceRoot":"","sources":["../../src/MainSidebar/back-button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;GAGG;AACH,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAQvC,MAAM,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAmB;IACvE,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CACX,qHAAqH,EACrH,wDAAwD,EACxD,uFAAuF,EACvF,SAAS,CACV,aAED,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,SAAS,EAAC,UAAU,iBAAa,MAAM,YAChH,eAAM,CAAC,EAAC,gBAAgB,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,GACpE,EACL,KAAK,IACC,CACV,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAoB;IACzE,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACJ,KAAK,EACjB,SAAS,EAAE,EAAE,CACX,8IAA8I,EAC9I,+EAA+E,EAC/E,SAAS,CACV,YAED,cAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,SAAS,EAAC,QAAQ,iBAAa,MAAM,YAC9G,eAAM,CAAC,EAAC,sBAAsB,EAAC,aAAa,EAAC,OAAO,GAAG,GACnD,GACC,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { MainSidebarItem } from './types.js';
2
+ interface PathBreadcrumbProps {
3
+ path: MainSidebarItem[];
4
+ /** Click handler — receives the depth index to jump to. */
5
+ onJump: (depth: number) => void;
6
+ className?: string;
7
+ }
8
+ export declare function PathBreadcrumb({ path, onJump, className }: PathBreadcrumbProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
10
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/MainSidebar/breadcrumb.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,2DAA2D;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,kDA0B9E"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Path breadcrumb shared by drilldown / floating / columns / command / hover.
5
+ *
6
+ * Renders the drilled-into ancestors as clickable text crumbs so the user can
7
+ * jump back to any level in one click. Used in the panel header when the
8
+ * `path` is deeper than the root.
9
+ *
10
+ * <PathBreadcrumb path={[people, onboarding]} onJump={(idx) => ...} />
11
+ * ⇒ People › Onboarding
12
+ *
13
+ * `path` is the full ancestor list (including the current leaf). The leaf
14
+ * itself renders as the panel title, so the breadcrumb stops at
15
+ * `path.length - 1`.
16
+ */
17
+ import { cn } from '../internal/cn.js';
18
+ export function PathBreadcrumb({ path, onJump, className }) {
19
+ if (path.length <= 1)
20
+ return null;
21
+ const ancestors = path.slice(0, -1);
22
+ return (_jsx("nav", { "aria-label": "Breadcrumb", className: cn('flex flex-wrap items-center gap-1 text-xs text-card-foreground/70', className), children: _jsx("ol", { className: "flex flex-wrap items-center gap-1", children: ancestors.map((node, idx) => (_jsxs("li", { className: "flex items-center gap-1", children: [_jsx("button", { type: "button", onClick: () => onJump(idx), className: "rounded px-1 py-0.5 text-xs font-medium text-card-foreground/70 transition-colors hover:bg-card-foreground/10 hover:text-card-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-card-foreground/40", children: node.label }), _jsx("span", { "aria-hidden": "true", className: "text-card-foreground/50", children: "\u203A" })] }, node.key))) }) }));
23
+ }
24
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.js","sourceRoot":"","sources":["../../src/MainSidebar/breadcrumb.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAUvC,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAuB;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,OAAO,CACL,4BACa,YAAY,EACvB,SAAS,EAAE,EAAE,CAAC,mEAAmE,EAAE,SAAS,CAAC,YAE7F,aAAI,SAAS,EAAC,mCAAmC,YAC9C,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,cAAmB,SAAS,EAAC,yBAAyB,aACpD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,SAAS,EAAC,gOAAgO,YAEzO,IAAI,CAAC,KAAK,GACJ,EACT,8BAAkB,MAAM,EAAC,SAAS,EAAC,yBAAyB,uBAErD,KAVA,IAAI,CAAC,GAAG,CAWZ,CACN,CAAC,GACC,GACD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MainSidebarProps } from './types.js';
2
+ export declare const ColumnsSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<HTMLElement>>;
3
+ //# sourceMappingURL=columns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.d.ts","sourceRoot":"","sources":["../../src/MainSidebar/columns.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,cAAc,0GAyUzB,CAAC"}
@@ -0,0 +1,198 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * MainSidebar — `columns` variant.
5
+ *
6
+ * Miller columns (Finder-style). Each drill keeps the previous column
7
+ * visible; horizontally scrolling stacked columns. Each column has its
8
+ * own per-level search.
9
+ */
10
+ import { forwardRef, useEffect, useMemo, useRef, useState } from 'react';
11
+ import { flushSync } from 'react-dom';
12
+ import { AnimatePresence, motion, useReducedMotion } from 'motion/react';
13
+ import { cn } from '../internal/cn.js';
14
+ import { Rail } from './rail.js';
15
+ import { MenuSearch } from './search.js';
16
+ import { CloseButton } from './back-button.js';
17
+ import { defaultMatcher, filterLevel, isOnPath, opensPanel, resolvePath } from './helpers.js';
18
+ import { slideVariants } from './motion.js';
19
+ export const ColumnsSidebar = forwardRef(function ColumnsSidebar({ items, activeKey, expanded, defaultExpanded = false, onExpandedChange, onItemSelect, header, footer, search = false, searchPlaceholder, onSearchChange, side = 'left', density = 'comfortable', panelWidth = 240, motionPreset = 'expressive', closeOnOutsideClick = true, columnsMaxVisible = 3, railClassName, panelClassName, itemClassName, activeItemClassName, expandedLabel = 'Close menu', className, ...rest }, ref) {
20
+ const reduceMotion = useReducedMotion();
21
+ const effectivePreset = reduceMotion ? 'subtle' : motionPreset;
22
+ const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
23
+ const isExpanded = expanded ?? internalExpanded;
24
+ const [pathKeys, setPathKeys] = useState([]);
25
+ const path = useMemo(() => resolvePath(items, pathKeys), [items, pathKeys]);
26
+ const searchEnabled = search !== false;
27
+ const searchCfg = typeof search === 'object' ? search : undefined;
28
+ const matcher = searchCfg?.matcher ?? defaultMatcher;
29
+ /* One search query per column index. */
30
+ const [queries, setQueries] = useState({});
31
+ /*
32
+ * Columns map one-to-one with the path nodes. Each column displays the
33
+ * CHILDREN of the corresponding path node:
34
+ *
35
+ * path = [payroll] → columns = [payroll.children]
36
+ * path = [people, onboarding] → columns = [people.children, onboarding.children]
37
+ *
38
+ * The rail itself surfaces the root-level items, so we don't repeat them
39
+ * as a column — clicking a rail icon jumps straight to its children.
40
+ */
41
+ const columns = useMemo(() => {
42
+ const cols = [];
43
+ for (const node of path) {
44
+ if (node.children?.length)
45
+ cols.push(node.children);
46
+ }
47
+ return cols;
48
+ }, [path]);
49
+ /**
50
+ * Reset all deep state synchronously. Called from close handlers so the
51
+ * panel reopens with a fresh stack instead of remembering the previous
52
+ * drill-down path.
53
+ */
54
+ function resetDeepState() {
55
+ setPathKeys([]);
56
+ setQueries({});
57
+ }
58
+ function setExpanded(next) {
59
+ if (expanded === undefined)
60
+ setInternalExpanded(next);
61
+ if (!next)
62
+ resetDeepState();
63
+ onExpandedChange?.(next);
64
+ }
65
+ function closePanel() {
66
+ /*
67
+ * `flushSync` commits the column-stack reset BEFORE we flip
68
+ * `isExpanded`, so AnimatePresence captures the panel with just the
69
+ * root column (or none) for its slide-out exit — instead of all the
70
+ * deeply-drilled columns being frozen in the exit frame.
71
+ */
72
+ // eslint-disable-next-line @eslint-react/dom-no-flush-sync -- We need the column-stack reset to commit to the DOM BEFORE the panel slide-out is captured by AnimatePresence, otherwise stale deep columns linger in the exit frame.
73
+ flushSync(() => {
74
+ resetDeepState();
75
+ });
76
+ setExpanded(false);
77
+ }
78
+ const panelRef = useRef(null);
79
+ const railRef = useRef(null);
80
+ /* Esc + outside-click close the panel from anywhere. */
81
+ useEffect(() => {
82
+ if (!isExpanded)
83
+ return;
84
+ function onKey(e) {
85
+ if (e.key === 'Escape')
86
+ closePanel();
87
+ }
88
+ function onPointerDown(e) {
89
+ if (!closeOnOutsideClick)
90
+ return;
91
+ const target = e.target;
92
+ if (panelRef.current?.contains(target) || railRef.current?.contains(target))
93
+ return;
94
+ closePanel();
95
+ }
96
+ document.addEventListener('keydown', onKey);
97
+ document.addEventListener('pointerdown', onPointerDown);
98
+ return () => {
99
+ document.removeEventListener('keydown', onKey);
100
+ document.removeEventListener('pointerdown', onPointerDown);
101
+ };
102
+ // eslint-disable-next-line react-hooks/exhaustive-deps
103
+ }, [isExpanded, closeOnOutsideClick]);
104
+ /*
105
+ * Move focus into the panel when it opens — but skip the initial
106
+ * mount (covers `defaultExpanded` and SSR hydration), and pass
107
+ * `preventScroll: true` so the browser never yanks the page scroll
108
+ * to the just-focused element.
109
+ */
110
+ const focusInitialisedRef = useRef(false);
111
+ useEffect(() => {
112
+ if (!isExpanded) {
113
+ focusInitialisedRef.current = true;
114
+ return;
115
+ }
116
+ if (!focusInitialisedRef.current) {
117
+ focusInitialisedRef.current = true;
118
+ return;
119
+ }
120
+ const id = window.setTimeout(() => {
121
+ const focusable = panelRef.current?.querySelector('input, [role="searchbox"], button:not([disabled])');
122
+ focusable?.focus({ preventScroll: true });
123
+ }, 0);
124
+ return () => window.clearTimeout(id);
125
+ }, [isExpanded]);
126
+ function selectRailItem(item) {
127
+ if (item.disabled)
128
+ return;
129
+ onItemSelect?.(item.key, item);
130
+ if (opensPanel(item)) {
131
+ /* Toggle close when clicking the rail icon for the panel that's
132
+ already open. Reuse `closePanel` so the deep-column reset is
133
+ flushed BEFORE the exit animation, otherwise the user sees stale
134
+ sub-columns slide out. */
135
+ if (isExpanded && pathKeys[0] === item.key) {
136
+ closePanel();
137
+ return;
138
+ }
139
+ setPathKeys([item.key]);
140
+ setExpanded(true);
141
+ setQueries({});
142
+ }
143
+ else {
144
+ closePanel();
145
+ }
146
+ }
147
+ function selectColumnItem(colIndex, item) {
148
+ if (item.disabled)
149
+ return;
150
+ onItemSelect?.(item.key, item);
151
+ /*
152
+ * Column N shows path[N].children, so a click in column N adds a child
153
+ * AFTER path[N]. Truncate any deeper drilling and push the new key
154
+ * when the clicked item itself opens deeper panels.
155
+ */
156
+ const keepAncestors = path.slice(0, colIndex + 1).map((p) => p.key);
157
+ if (opensPanel(item)) {
158
+ setPathKeys([...keepAncestors, item.key]);
159
+ }
160
+ else {
161
+ setPathKeys(keepAncestors);
162
+ }
163
+ }
164
+ function updateColumnQuery(colIndex, next) {
165
+ setQueries((prev) => ({ ...prev, [colIndex]: next }));
166
+ onSearchChange?.(next);
167
+ }
168
+ /*
169
+ * Column N shows path[N].children. The breadcrumb-active item in column N
170
+ * is the path node one step deeper (path[N + 1]), if the user drilled
171
+ * further. On the leaf column, fall back to the externally-controlled
172
+ * `activeKey` so the selected leaf stays highlighted.
173
+ */
174
+ function activeInColumn(colIndex) {
175
+ return path[colIndex + 1]?.key ?? (colIndex === path.length - 1 ? activeKey : undefined);
176
+ }
177
+ const widthPx = typeof panelWidth === 'number' ? `${panelWidth}px` : panelWidth;
178
+ const maxWidth = `calc(${columnsMaxVisible} * ${widthPx})`;
179
+ const railOffset = density === 'compact' ? '3rem' : '3.5rem';
180
+ return (_jsxs("div", { ref: ref, className: cn('relative h-full', className), ...rest, children: [_jsx(Rail, { ref: railRef, items: items, activeKey: activeKey, density: density, side: side, header: header, footer: footer, itemClassName: itemClassName, activeItemClassName: activeItemClassName, className: railClassName, onItemSelect: selectRailItem, openPanelKey: isExpanded ? path[0]?.key : undefined }), _jsx(AnimatePresence, { initial: false, mode: "wait", children: isExpanded ? (_jsx(motion.div, { ref: panelRef, variants: slideVariants(effectivePreset, side === 'right' ? 'right' : 'left'), initial: "initial", animate: "animate", exit: "exit", role: "menu", "aria-label": path[0]?.label ?? 'Navigation', style: {
181
+ maxWidth,
182
+ [side === 'right' ? 'right' : 'left']: railOffset,
183
+ }, className: cn('absolute top-0 z-10 flex h-full min-w-0 overflow-x-auto bg-card shadow-xl', side === 'right' ? 'border-l border-border' : 'border-r border-border', panelClassName), children: columns.map((col, colIndex) => {
184
+ const q = queries[colIndex] ?? '';
185
+ const filtered = filterLevel(col, q, matcher);
186
+ /* Column N displays path[N]'s children, so path[N] is the parent header. */
187
+ const parent = path[colIndex];
188
+ const columnKey = parent?.key ?? `col-${colIndex}`;
189
+ return (_jsxs("div", { style: { width: widthPx, minWidth: widthPx }, className: cn('flex h-full shrink-0 flex-col', colIndex < columns.length - 1 && 'border-r border-border'), children: [_jsxs("div", { className: "border-b border-border px-4 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-base font-semibold text-card-foreground", children: parent?.label ?? 'Menu' }), parent?.description ? (_jsx("p", { className: "mt-0.5 text-xs text-card-foreground/70", children: parent.description })) : null] }), colIndex === 0 ? (_jsx(CloseButton, { onClick: closePanel, label: expandedLabel })) : null] }), searchEnabled ? (_jsx("div", { className: "mt-3", children: _jsx(MenuSearch, { value: q, onValueChange: (v) => updateColumnQuery(colIndex, v), placeholder: searchCfg?.placeholder ?? searchPlaceholder ?? `Search ${parent?.label ?? 'menu'}…`, tone: "onBrand" }) })) : null] }), _jsx("div", { className: "flex-1 overflow-y-auto p-1.5", children: filtered.length === 0 && q ? (_jsx("div", { className: "px-3 py-6 text-center text-xs text-card-foreground/70", children: searchCfg?.noResultsLabel ?? `No items match "${q}".` })) : (filtered.map((item) => {
190
+ /* Highlight if it's the live activeKey leaf, or if it's the column-level breadcrumb, or if its subtree contains the active key. */
191
+ const isOnBreadcrumb = item.key === activeInColumn(colIndex);
192
+ const containsActive = isOnPath(item, activeKey);
193
+ const isActive = isOnBreadcrumb || containsActive;
194
+ return (_jsxs("button", { type: "button", onClick: () => selectColumnItem(colIndex, item), disabled: item.disabled, className: cn('group flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-card-foreground transition-colors', 'hover:bg-card-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50', isActive && 'bg-primary text-primary-foreground hover:bg-primary', itemClassName, isActive && activeItemClassName), children: [item.icon ? (_jsx("span", { className: cn('grid size-4 shrink-0 place-items-center [&_svg]:size-full', !isActive && 'text-card-foreground/70'), "aria-hidden": "true", children: item.icon })) : null, _jsx("span", { className: "min-w-0 flex-1 truncate", children: item.label }), opensPanel(item) ? (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: "size-3 shrink-0", "aria-hidden": "true", children: _jsx("path", { d: "m9 18 6-6-6-6", strokeLinecap: "round", strokeLinejoin: "round" }) })) : null] }, item.key));
195
+ })) })] }, columnKey));
196
+ }) }, "cols")) : null })] }));
197
+ });
198
+ //# sourceMappingURL=columns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"columns.js","sourceRoot":"","sources":["../../src/MainSidebar/columns.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MainSidebarProps } from './types.js';
2
+ export declare const CommandSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<HTMLElement>>;
3
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/MainSidebar/command.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE,eAAO,MAAM,cAAc,0GA0XzB,CAAC"}
@@ -0,0 +1,193 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * MainSidebar — `command` variant.
5
+ *
6
+ * Two modes in one panel:
7
+ *
8
+ * - **Drilldown** when the search input is empty — rows with chevrons for
9
+ * items that have children; click to drill, back via chevron.
10
+ * - **Flat search** when the user types — recursive tree filter with
11
+ * breadcrumb paths on each match. Arrow keys + Enter pick by keyboard.
12
+ *
13
+ * The panel overlays the page rather than pushing layout.
14
+ */
15
+ import { forwardRef, useEffect, useMemo, useRef, useState } from 'react';
16
+ import { AnimatePresence, motion, useReducedMotion } from 'motion/react';
17
+ import { cn } from '../internal/cn.js';
18
+ import { Rail } from './rail.js';
19
+ import { MenuSearch } from './search.js';
20
+ import { BackButton, CloseButton } from './back-button.js';
21
+ import { PathBreadcrumb } from './breadcrumb.js';
22
+ import { defaultMatcher, filterLevel, flatMatchTree, firstPanelItem, isOnPath, opensPanel, resolvePath, shouldWrapBadge } from './helpers.js';
23
+ import { slideVariants } from './motion.js';
24
+ export const CommandSidebar = forwardRef(function CommandSidebar({ items, activeKey, expanded, defaultExpanded = false, onExpandedChange, onItemSelect, header, footer, panelHeader, panelFooter, search = true, searchPlaceholder, onSearchChange, side = 'left', density = 'comfortable', panelWidth = 360, motionPreset = 'expressive', closeOnOutsideClick = true, railClassName, panelClassName, itemClassName, activeItemClassName, backLabel = 'Back', expandedLabel = 'Close menu', className, ...rest }, ref) {
25
+ const reduceMotion = useReducedMotion();
26
+ const effectivePreset = reduceMotion ? 'subtle' : motionPreset;
27
+ const [internalExpanded, setInternalExpanded] = useState(defaultExpanded);
28
+ const isExpanded = expanded ?? internalExpanded;
29
+ const [query, setQuery] = useState('');
30
+ const [focusIndex, setFocusIndex] = useState(0);
31
+ const inputRef = useRef(null);
32
+ const panelRef = useRef(null);
33
+ const railRef = useRef(null);
34
+ const searchCfg = typeof search === 'object' ? search : undefined;
35
+ const matcher = searchCfg?.matcher ?? defaultMatcher;
36
+ /* Drilldown state (active when query is empty). */
37
+ const rootItem = useMemo(() => firstPanelItem(items, activeKey), [activeKey, items]);
38
+ const [pathKeys, setPathKeys] = useState([]);
39
+ const path = useMemo(() => {
40
+ const resolved = resolvePath(items, pathKeys);
41
+ return resolved.length ? resolved : rootItem ? [rootItem] : [];
42
+ }, [items, pathKeys, rootItem]);
43
+ const current = path.at(-1);
44
+ const drilldownItems = current?.children ?? items;
45
+ const searchActive = query.trim().length > 0;
46
+ const matches = useMemo(() => (searchActive ? flatMatchTree(items, query, matcher) : []), [items, query, matcher, searchActive]);
47
+ const railOffset = density === 'compact' ? '3rem' : '3.5rem';
48
+ /*
49
+ * Skip auto-focus on initial mount so a `defaultExpanded` command
50
+ * sidebar doesn't yank the page scroll to its search input on page
51
+ * load. Pass `preventScroll: true` as belt-and-braces.
52
+ */
53
+ const focusInitialisedRef = useRef(false);
54
+ useEffect(() => {
55
+ if (!isExpanded) {
56
+ focusInitialisedRef.current = true;
57
+ return undefined;
58
+ }
59
+ setFocusIndex(0);
60
+ if (!focusInitialisedRef.current) {
61
+ focusInitialisedRef.current = true;
62
+ return undefined;
63
+ }
64
+ const id = window.setTimeout(() => inputRef.current?.focus({ preventScroll: true }), 0);
65
+ return () => window.clearTimeout(id);
66
+ }, [isExpanded]);
67
+ useEffect(() => {
68
+ setFocusIndex(0);
69
+ }, [query]);
70
+ function resetDeepState() {
71
+ setQuery('');
72
+ setPathKeys([]);
73
+ }
74
+ function setExpanded(next) {
75
+ if (expanded === undefined)
76
+ setInternalExpanded(next);
77
+ if (!next)
78
+ resetDeepState();
79
+ onExpandedChange?.(next);
80
+ }
81
+ function closePanel() {
82
+ resetDeepState();
83
+ setExpanded(false);
84
+ }
85
+ /* Outside-click closes the panel. */
86
+ useEffect(() => {
87
+ if (!isExpanded)
88
+ return;
89
+ function onPointerDown(e) {
90
+ if (!closeOnOutsideClick)
91
+ return;
92
+ const target = e.target;
93
+ if (panelRef.current?.contains(target) || railRef.current?.contains(target))
94
+ return;
95
+ closePanel();
96
+ }
97
+ document.addEventListener('pointerdown', onPointerDown);
98
+ return () => document.removeEventListener('pointerdown', onPointerDown);
99
+ // eslint-disable-next-line react-hooks/exhaustive-deps
100
+ }, [isExpanded, closeOnOutsideClick]);
101
+ function selectRailItem(item) {
102
+ if (item.disabled)
103
+ return;
104
+ onItemSelect?.(item.key, item);
105
+ if (opensPanel(item)) {
106
+ if (isExpanded && pathKeys[0] === item.key && !searchActive) {
107
+ setExpanded(false);
108
+ return;
109
+ }
110
+ setPathKeys([item.key]);
111
+ setQuery('');
112
+ setExpanded(true);
113
+ }
114
+ else {
115
+ setExpanded(false);
116
+ }
117
+ }
118
+ function selectDrilldownItem(item) {
119
+ if (item.disabled)
120
+ return;
121
+ onItemSelect?.(item.key, item);
122
+ if (opensPanel(item)) {
123
+ setPathKeys((prev) => (prev.at(-1) === item.key ? prev : [...prev, item.key]));
124
+ }
125
+ }
126
+ function findStackTo(target, list = items, acc = []) {
127
+ for (const it of list) {
128
+ if (it.key === target)
129
+ return [...acc, it.key];
130
+ if (it.children) {
131
+ const found = findStackTo(target, it.children, [...acc, it.key]);
132
+ if (found)
133
+ return found;
134
+ }
135
+ }
136
+ return null;
137
+ }
138
+ function pickMatch(idx) {
139
+ const m = matches[idx];
140
+ if (!m || m.item.disabled)
141
+ return;
142
+ onItemSelect?.(m.item.key, m.item);
143
+ if (opensPanel(m.item)) {
144
+ const stack = findStackTo(m.item.key) ?? [m.item.key];
145
+ setPathKeys(stack);
146
+ setQuery('');
147
+ }
148
+ else {
149
+ setExpanded(false);
150
+ }
151
+ }
152
+ function goBack() {
153
+ setPathKeys((prev) => prev.slice(0, -1));
154
+ }
155
+ function onKey(e) {
156
+ if (!searchActive) {
157
+ if (e.key === 'Escape')
158
+ closePanel();
159
+ return;
160
+ }
161
+ if (e.key === 'ArrowDown') {
162
+ e.preventDefault();
163
+ setFocusIndex((i) => Math.min(matches.length - 1, i + 1));
164
+ }
165
+ else if (e.key === 'ArrowUp') {
166
+ e.preventDefault();
167
+ setFocusIndex((i) => Math.max(0, i - 1));
168
+ }
169
+ else if (e.key === 'Enter') {
170
+ e.preventDefault();
171
+ pickMatch(focusIndex);
172
+ }
173
+ else if (e.key === 'Escape') {
174
+ e.preventDefault();
175
+ if (query)
176
+ setQuery('');
177
+ else
178
+ closePanel();
179
+ }
180
+ }
181
+ function updateQuery(next) {
182
+ setQuery(next);
183
+ onSearchChange?.(next);
184
+ }
185
+ return (_jsxs("div", { ref: ref, className: cn('relative h-full', className), ...rest, children: [_jsx(Rail, { ref: railRef, items: items, activeKey: activeKey, density: density, side: side, header: header, footer: footer, itemClassName: itemClassName, activeItemClassName: activeItemClassName, className: railClassName, onItemSelect: selectRailItem, openPanelKey: isExpanded ? current?.key : undefined }), _jsx(AnimatePresence, { initial: false, mode: "wait", children: isExpanded ? (_jsxs(motion.aside, { ref: panelRef, variants: slideVariants(effectivePreset, side === 'right' ? 'right' : 'left'), initial: "initial", animate: "animate", exit: "exit", style: {
186
+ width: typeof panelWidth === 'number' ? `${panelWidth}px` : panelWidth,
187
+ [side === 'right' ? 'right' : 'left']: railOffset,
188
+ }, className: cn('absolute top-0 z-10 flex h-full min-w-0 flex-col bg-card shadow-xl', side === 'right' ? 'border-l border-border' : 'border-r border-border', panelClassName), onKeyDown: onKey, children: [_jsxs("div", { className: "border-b border-border px-4 py-3", children: [panelHeader ?? (_jsxs("div", { className: "flex items-start justify-between gap-3 pb-3", children: [_jsxs("div", { className: "min-w-0", children: [!searchActive && path.length > 1 ? (_jsxs(_Fragment, { children: [_jsx(PathBreadcrumb, { path: path, onJump: (depth) => setPathKeys((prev) => prev.slice(0, depth + 1)), className: "mb-1" }), _jsx(BackButton, { onClick: goBack, label: backLabel, className: "mb-1 -ml-1.5" })] })) : null, _jsx("div", { className: "truncate text-base font-semibold text-card-foreground", children: searchActive ? 'Quick navigation' : current?.label ?? 'Menu' }), !searchActive && current?.description ? (_jsx("p", { className: "mt-0.5 truncate text-xs text-card-foreground/70", children: current.description })) : null] }), _jsx(CloseButton, { onClick: closePanel, label: expandedLabel })] })), _jsx(MenuSearch, { ref: inputRef, value: query, onValueChange: updateQuery, placeholder: searchCfg?.placeholder ?? searchPlaceholder ?? 'Search all menus…', tone: "onBrand" }), searchActive ? (_jsxs("div", { className: "mt-2 flex items-center justify-between text-[11px] text-card-foreground/70", children: [_jsxs("span", { children: [matches.length, " ", matches.length === 1 ? 'match' : 'matches'] }), _jsxs("span", { className: "inline-flex items-center gap-1", children: [_jsx("kbd", { className: "rounded border border-border bg-card-foreground/10 px-1.5 py-0.5 text-[10px] font-mono", children: "\u2191\u2193" }), _jsx("kbd", { className: "rounded border border-border bg-card-foreground/10 px-1.5 py-0.5 text-[10px] font-mono", children: "\u21B5" })] })] })) : null] }), searchActive ? (_jsx("div", { role: "listbox", "aria-label": "Menu search results", className: "flex-1 overflow-y-auto p-2", children: matches.length === 0 ? (_jsx("div", { className: "px-4 py-8 text-center text-sm text-card-foreground/70", children: searchCfg?.noResultsLabel ?? `No items match "${query}".` })) : (matches.map((m, idx) => (_jsxs("div", { role: "option", "aria-selected": idx === focusIndex, onMouseEnter: () => setFocusIndex(idx), onClick: () => pickMatch(idx), className: cn('group flex cursor-pointer items-center gap-3 rounded-md px-2.5 py-2 text-sm text-card-foreground transition-colors', idx === focusIndex && 'bg-card-foreground/10', m.item.disabled && 'cursor-not-allowed opacity-50', itemClassName, m.item.key === activeKey && 'text-card-foreground font-semibold', m.item.key === activeKey && activeItemClassName), children: [m.item.icon ? (_jsx("span", { className: "grid size-5 shrink-0 place-items-center text-card-foreground/70 [&_svg]:size-full", "aria-hidden": "true", children: m.item.icon })) : null, _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate font-medium", children: m.item.label }), m.breadcrumbs.length ? (_jsx("div", { className: "truncate text-[11px] text-card-foreground/70", children: m.breadcrumbs.join(' › ') })) : null] }), m.item.badge != null && m.item.badge !== false ? (shouldWrapBadge(m.item.badge) ? (_jsx("span", { className: "ml-auto inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-card-foreground/10 px-1.5 text-xs font-medium text-card-foreground/70", children: m.item.badge })) : (_jsx("span", { className: "ml-auto inline-flex shrink-0 items-center", children: m.item.badge }))) : null] }, m.item.key + idx)))) })) : (_jsx("div", { className: "flex-1 overflow-y-auto p-2", children: filterLevel(drilldownItems, '').map((item) => {
189
+ const onActivePath = isOnPath(item, activeKey) || pathKeys.includes(item.key);
190
+ return (_jsxs("button", { type: "button", onClick: () => selectDrilldownItem(item), disabled: item.disabled, className: cn('group flex w-full items-center gap-2.5 rounded-md px-2.5 py-2 text-left text-sm text-card-foreground transition-colors', 'hover:bg-card-foreground/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', 'disabled:cursor-not-allowed disabled:opacity-50', onActivePath && 'bg-accent text-accent-foreground font-medium hover:bg-accent hover:text-accent-foreground', itemClassName, onActivePath && activeItemClassName), children: [item.icon ? (_jsx("span", { className: "grid size-5 shrink-0 place-items-center text-card-foreground/70 group-hover:text-card-foreground [&_svg]:size-full", "aria-hidden": "true", children: item.icon })) : null, _jsx("span", { className: "min-w-0 flex-1 truncate", children: item.label }), item.badge != null && item.badge !== false ? (shouldWrapBadge(item.badge) ? (_jsx("span", { className: "ml-auto inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-card-foreground/10 px-1.5 text-xs font-medium text-card-foreground/70", children: item.badge })) : (_jsx("span", { className: "ml-auto inline-flex shrink-0 items-center", children: item.badge }))) : null, opensPanel(item) ? (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", className: "size-3.5 shrink-0 text-card-foreground/70", "aria-hidden": "true", children: _jsx("path", { d: "m9 18 6-6-6-6", strokeLinecap: "round", strokeLinejoin: "round" }) })) : null] }, item.key));
191
+ }) })), panelFooter ? (_jsx("div", { className: "border-t border-border px-4 py-3", children: panelFooter })) : null] }, "command")) : null })] }));
192
+ });
193
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/MainSidebar/command.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MainSidebarProps } from './types.js';
2
+ export declare const DrilldownSidebar: import("react").ForwardRefExoticComponent<MainSidebarProps & import("react").RefAttributes<HTMLElement>>;
3
+ //# sourceMappingURL=drilldown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drilldown.d.ts","sourceRoot":"","sources":["../../src/MainSidebar/drilldown.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAoDpE,eAAO,MAAM,gBAAgB,0GA8P3B,CAAC"}