@elench/shell 0.1.1 → 0.1.2

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 (307) hide show
  1. package/README.md +46 -7
  2. package/dist/components/shell/activity-bar.d.ts +2 -0
  3. package/dist/components/shell/activity-bar.d.ts.map +1 -0
  4. package/dist/components/shell/activity-bar.js +19 -0
  5. package/dist/components/shell/activity-bar.js.map +1 -0
  6. package/dist/components/shell/app-shell.d.ts +11 -0
  7. package/dist/components/shell/app-shell.d.ts.map +1 -0
  8. package/dist/components/shell/app-shell.js +323 -0
  9. package/dist/components/shell/app-shell.js.map +1 -0
  10. package/dist/components/shell/context-action-menu.d.ts +7 -0
  11. package/dist/components/shell/context-action-menu.d.ts.map +1 -0
  12. package/dist/components/shell/context-action-menu.js +75 -0
  13. package/dist/components/shell/context-action-menu.js.map +1 -0
  14. package/dist/components/shell/default-layout.d.ts +3 -0
  15. package/dist/components/shell/default-layout.d.ts.map +1 -0
  16. package/dist/components/shell/default-layout.js +63 -0
  17. package/dist/components/shell/default-layout.js.map +1 -0
  18. package/dist/components/shell/left-sidebar.d.ts +2 -0
  19. package/dist/components/shell/left-sidebar.d.ts.map +1 -0
  20. package/dist/components/shell/left-sidebar.js +16 -0
  21. package/dist/components/shell/left-sidebar.js.map +1 -0
  22. package/dist/components/shell/primitives/activity-nav.d.ts +7 -0
  23. package/dist/components/shell/primitives/activity-nav.d.ts.map +1 -0
  24. package/dist/components/shell/primitives/activity-nav.js +12 -0
  25. package/dist/components/shell/primitives/activity-nav.js.map +1 -0
  26. package/dist/components/shell/primitives/inspector-panel.d.ts +25 -0
  27. package/dist/components/shell/primitives/inspector-panel.d.ts.map +1 -0
  28. package/dist/components/shell/primitives/inspector-panel.js +32 -0
  29. package/dist/components/shell/primitives/inspector-panel.js.map +1 -0
  30. package/dist/components/shell/primitives/instance-row.d.ts +20 -0
  31. package/dist/components/shell/primitives/instance-row.d.ts.map +1 -0
  32. package/dist/components/shell/primitives/instance-row.js +16 -0
  33. package/dist/components/shell/primitives/instance-row.js.map +1 -0
  34. package/dist/components/shell/primitives/search-bar-primitives.d.ts +21 -0
  35. package/dist/components/shell/primitives/search-bar-primitives.d.ts.map +1 -0
  36. package/dist/components/shell/primitives/search-bar-primitives.js +24 -0
  37. package/dist/components/shell/primitives/search-bar-primitives.js.map +1 -0
  38. package/dist/components/shell/primitives/shell-frame.d.ts +10 -0
  39. package/dist/components/shell/primitives/shell-frame.d.ts.map +1 -0
  40. package/dist/components/shell/primitives/shell-frame.js +26 -0
  41. package/dist/components/shell/primitives/shell-frame.js.map +1 -0
  42. package/dist/components/shell/primitives/shell-status-bar.d.ts +13 -0
  43. package/dist/components/shell/primitives/shell-status-bar.d.ts.map +1 -0
  44. package/dist/components/shell/primitives/shell-status-bar.js +18 -0
  45. package/dist/components/shell/primitives/shell-status-bar.js.map +1 -0
  46. package/dist/components/shell/primitives/shell-surface.d.ts +19 -0
  47. package/dist/components/shell/primitives/shell-surface.d.ts.map +1 -0
  48. package/dist/components/shell/primitives/shell-surface.js +73 -0
  49. package/dist/components/shell/primitives/shell-surface.js.map +1 -0
  50. package/dist/components/shell/primitives/shell-toolbar.d.ts +8 -0
  51. package/dist/components/shell/primitives/shell-toolbar.d.ts.map +1 -0
  52. package/dist/components/shell/primitives/shell-toolbar.js +22 -0
  53. package/dist/components/shell/primitives/shell-toolbar.js.map +1 -0
  54. package/dist/components/shell/primitives/sidebar-action-row.d.ts +14 -0
  55. package/dist/components/shell/primitives/sidebar-action-row.d.ts.map +1 -0
  56. package/dist/components/shell/primitives/sidebar-action-row.js +9 -0
  57. package/dist/components/shell/primitives/sidebar-action-row.js.map +1 -0
  58. package/dist/components/shell/primitives/sidebar-frame.d.ts +12 -0
  59. package/dist/components/shell/primitives/sidebar-frame.d.ts.map +1 -0
  60. package/dist/components/shell/primitives/sidebar-frame.js +19 -0
  61. package/dist/components/shell/primitives/sidebar-frame.js.map +1 -0
  62. package/dist/components/shell/primitives/sidebar-section.d.ts +15 -0
  63. package/dist/components/shell/primitives/sidebar-section.d.ts.map +1 -0
  64. package/dist/components/shell/primitives/sidebar-section.js +23 -0
  65. package/dist/components/shell/primitives/sidebar-section.js.map +1 -0
  66. package/dist/components/shell/primitives/workspace-page.d.ts +21 -0
  67. package/dist/components/shell/primitives/workspace-page.d.ts.map +1 -0
  68. package/dist/components/shell/primitives/workspace-page.js +18 -0
  69. package/dist/components/shell/primitives/workspace-page.js.map +1 -0
  70. package/dist/components/shell/right-inspector.d.ts +2 -0
  71. package/dist/components/shell/right-inspector.d.ts.map +1 -0
  72. package/dist/components/shell/right-inspector.js +32 -0
  73. package/dist/components/shell/right-inspector.js.map +1 -0
  74. package/dist/components/shell/search-action-groups.d.ts +6 -0
  75. package/dist/components/shell/search-action-groups.d.ts.map +1 -0
  76. package/dist/components/shell/search-action-groups.js +37 -0
  77. package/dist/components/shell/search-action-groups.js.map +1 -0
  78. package/dist/components/shell/search-bar.d.ts +2 -0
  79. package/dist/components/shell/search-bar.d.ts.map +1 -0
  80. package/dist/components/shell/search-bar.js +161 -0
  81. package/dist/components/shell/search-bar.js.map +1 -0
  82. package/dist/components/shell/shell-layout.d.ts +30 -0
  83. package/dist/components/shell/shell-layout.d.ts.map +1 -0
  84. package/dist/components/shell/shell-layout.js +176 -0
  85. package/dist/components/shell/shell-layout.js.map +1 -0
  86. package/dist/components/shell/shell-model.d.ts +14 -0
  87. package/dist/components/shell/shell-model.d.ts.map +1 -0
  88. package/dist/components/shell/shell-model.js +75 -0
  89. package/dist/components/shell/shell-model.js.map +1 -0
  90. package/dist/components/shell/status-bar.d.ts +2 -0
  91. package/dist/components/shell/status-bar.d.ts.map +1 -0
  92. package/dist/components/shell/status-bar.js +16 -0
  93. package/dist/components/shell/status-bar.js.map +1 -0
  94. package/dist/components/shell/tab-strip-bridge.d.ts +32 -0
  95. package/dist/components/shell/tab-strip-bridge.d.ts.map +1 -0
  96. package/dist/components/shell/tab-strip-bridge.js +46 -0
  97. package/dist/components/shell/tab-strip-bridge.js.map +1 -0
  98. package/dist/components/shell/top-bar.d.ts +2 -0
  99. package/dist/components/shell/top-bar.d.ts.map +1 -0
  100. package/dist/components/shell/top-bar.js +24 -0
  101. package/dist/components/shell/top-bar.js.map +1 -0
  102. package/dist/components/shell/use-shell-surface-action-groups.d.ts +16 -0
  103. package/dist/components/shell/use-shell-surface-action-groups.d.ts.map +1 -0
  104. package/dist/components/shell/use-shell-surface-action-groups.js +169 -0
  105. package/dist/components/shell/use-shell-surface-action-groups.js.map +1 -0
  106. package/dist/components/shell/workspace-surface-context-menu.d.ts +12 -0
  107. package/dist/components/shell/workspace-surface-context-menu.d.ts.map +1 -0
  108. package/dist/components/shell/workspace-surface-context-menu.js +27 -0
  109. package/dist/components/shell/workspace-surface-context-menu.js.map +1 -0
  110. package/dist/components/shell/workspace-tab-content.d.ts +7 -0
  111. package/dist/components/shell/workspace-tab-content.d.ts.map +1 -0
  112. package/dist/components/shell/workspace-tab-content.js +15 -0
  113. package/dist/components/shell/workspace-tab-content.js.map +1 -0
  114. package/dist/components/system/async-state.d.ts +22 -0
  115. package/dist/components/system/async-state.d.ts.map +1 -0
  116. package/dist/components/system/async-state.js +34 -0
  117. package/dist/components/system/async-state.js.map +1 -0
  118. package/dist/components/system/status.d.ts +16 -0
  119. package/dist/components/system/status.d.ts.map +1 -0
  120. package/dist/components/system/status.js +42 -0
  121. package/dist/components/system/status.js.map +1 -0
  122. package/dist/components/ui/badge.d.ts +10 -0
  123. package/dist/components/ui/badge.d.ts.map +1 -0
  124. package/dist/components/ui/badge.js +26 -0
  125. package/dist/components/ui/badge.js.map +1 -0
  126. package/dist/components/ui/button.d.ts +11 -0
  127. package/dist/components/ui/button.d.ts.map +1 -0
  128. package/dist/components/ui/button.js +37 -0
  129. package/dist/components/ui/button.js.map +1 -0
  130. package/dist/components/ui/card.d.ts +12 -0
  131. package/dist/components/ui/card.d.ts.map +1 -0
  132. package/dist/components/ui/card.js +26 -0
  133. package/dist/components/ui/card.js.map +1 -0
  134. package/dist/components/ui/checkbox.d.ts +5 -0
  135. package/dist/components/ui/checkbox.d.ts.map +1 -0
  136. package/dist/components/ui/checkbox.js +11 -0
  137. package/dist/components/ui/checkbox.js.map +1 -0
  138. package/dist/components/ui/context-menu.d.ts +31 -0
  139. package/dist/components/ui/context-menu.d.ts.map +1 -0
  140. package/dist/components/ui/context-menu.js +54 -0
  141. package/dist/components/ui/context-menu.js.map +1 -0
  142. package/dist/components/ui/dialog.d.ts +18 -0
  143. package/dist/components/ui/dialog.d.ts.map +1 -0
  144. package/dist/components/ui/dialog.js +39 -0
  145. package/dist/components/ui/dialog.js.map +1 -0
  146. package/dist/components/ui/dropdown-menu.d.ts +30 -0
  147. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  148. package/dist/components/ui/dropdown-menu.js +53 -0
  149. package/dist/components/ui/dropdown-menu.js.map +1 -0
  150. package/dist/components/ui/icon-button.d.ts +10 -0
  151. package/dist/components/ui/icon-button.d.ts.map +1 -0
  152. package/dist/components/ui/icon-button.js +7 -0
  153. package/dist/components/ui/icon-button.js.map +1 -0
  154. package/dist/components/ui/input.d.ts +4 -0
  155. package/dist/components/ui/input.d.ts.map +1 -0
  156. package/dist/components/ui/input.js +8 -0
  157. package/dist/components/ui/input.js.map +1 -0
  158. package/dist/components/ui/kbd.d.ts +3 -0
  159. package/dist/components/ui/kbd.d.ts.map +1 -0
  160. package/dist/components/ui/kbd.js +6 -0
  161. package/dist/components/ui/kbd.js.map +1 -0
  162. package/dist/components/ui/label.d.ts +5 -0
  163. package/dist/components/ui/label.d.ts.map +1 -0
  164. package/dist/components/ui/label.js +10 -0
  165. package/dist/components/ui/label.js.map +1 -0
  166. package/dist/components/ui/popover.d.ts +11 -0
  167. package/dist/components/ui/popover.d.ts.map +1 -0
  168. package/dist/components/ui/popover.js +28 -0
  169. package/dist/components/ui/popover.js.map +1 -0
  170. package/dist/components/ui/scroll-area.d.ts +6 -0
  171. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  172. package/dist/components/ui/scroll-area.js +13 -0
  173. package/dist/components/ui/scroll-area.js.map +1 -0
  174. package/dist/components/ui/search-field.d.ts +9 -0
  175. package/dist/components/ui/search-field.d.ts.map +1 -0
  176. package/dist/components/ui/search-field.js +9 -0
  177. package/dist/components/ui/search-field.js.map +1 -0
  178. package/dist/components/ui/select.d.ts +25 -0
  179. package/dist/components/ui/select.d.ts.map +1 -0
  180. package/dist/components/ui/select.js +35 -0
  181. package/dist/components/ui/select.js.map +1 -0
  182. package/dist/components/ui/separator.d.ts +5 -0
  183. package/dist/components/ui/separator.d.ts.map +1 -0
  184. package/dist/components/ui/separator.js +10 -0
  185. package/dist/components/ui/separator.js.map +1 -0
  186. package/dist/components/ui/skeleton.d.ts +3 -0
  187. package/dist/components/ui/skeleton.d.ts.map +1 -0
  188. package/dist/components/ui/skeleton.js +9 -0
  189. package/dist/components/ui/skeleton.js.map +1 -0
  190. package/dist/components/ui/switch.d.ts +7 -0
  191. package/dist/components/ui/switch.d.ts.map +1 -0
  192. package/dist/components/ui/switch.js +10 -0
  193. package/dist/components/ui/switch.js.map +1 -0
  194. package/dist/components/ui/tabs.d.ts +12 -0
  195. package/dist/components/ui/tabs.d.ts.map +1 -0
  196. package/dist/components/ui/tabs.js +31 -0
  197. package/dist/components/ui/tabs.js.map +1 -0
  198. package/dist/components/ui/textarea.d.ts +4 -0
  199. package/dist/components/ui/textarea.d.ts.map +1 -0
  200. package/dist/components/ui/textarea.js +8 -0
  201. package/dist/components/ui/textarea.js.map +1 -0
  202. package/dist/components/ui/tooltip.d.ts +8 -0
  203. package/dist/components/ui/tooltip.d.ts.map +1 -0
  204. package/dist/components/ui/tooltip.js +19 -0
  205. package/dist/components/ui/tooltip.js.map +1 -0
  206. package/dist/hooks/shell/shell-registry-provider.d.ts +20 -0
  207. package/dist/hooks/shell/shell-registry-provider.d.ts.map +1 -0
  208. package/dist/hooks/shell/shell-registry-provider.js +42 -0
  209. package/dist/hooks/shell/shell-registry-provider.js.map +1 -0
  210. package/dist/hooks/shell/use-shell-shortcuts.d.ts +2 -0
  211. package/dist/hooks/shell/use-shell-shortcuts.d.ts.map +1 -0
  212. package/dist/hooks/shell/use-shell-shortcuts.js +27 -0
  213. package/dist/hooks/shell/use-shell-shortcuts.js.map +1 -0
  214. package/dist/hooks/shell/use-shell-store.d.ts +40 -0
  215. package/dist/hooks/shell/use-shell-store.d.ts.map +1 -0
  216. package/dist/hooks/shell/use-shell-store.js +420 -0
  217. package/dist/hooks/shell/use-shell-store.js.map +1 -0
  218. package/dist/hooks/shell/use-shell-tab-strip-bridge.d.ts +7 -0
  219. package/dist/hooks/shell/use-shell-tab-strip-bridge.d.ts.map +1 -0
  220. package/dist/hooks/shell/use-shell-tab-strip-bridge.js +316 -0
  221. package/dist/hooks/shell/use-shell-tab-strip-bridge.js.map +1 -0
  222. package/dist/hooks/use-keyboard-shortcut.d.ts +10 -0
  223. package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -0
  224. package/dist/hooks/use-keyboard-shortcut.js +35 -0
  225. package/dist/hooks/use-keyboard-shortcut.js.map +1 -0
  226. package/dist/hooks/use-media-query.d.ts +2 -0
  227. package/dist/hooks/use-media-query.d.ts.map +1 -0
  228. package/dist/hooks/use-media-query.js +14 -0
  229. package/dist/hooks/use-media-query.js.map +1 -0
  230. package/dist/hooks/use-theme.d.ts +14 -0
  231. package/dist/hooks/use-theme.d.ts.map +1 -0
  232. package/dist/hooks/use-theme.js +43 -0
  233. package/dist/hooks/use-theme.js.map +1 -0
  234. package/dist/hooks/workspace/use-workspace-draft-store.d.ts +45 -0
  235. package/dist/hooks/workspace/use-workspace-draft-store.d.ts.map +1 -0
  236. package/dist/hooks/workspace/use-workspace-draft-store.js +197 -0
  237. package/dist/hooks/workspace/use-workspace-draft-store.js.map +1 -0
  238. package/dist/index.d.ts +3 -28
  239. package/dist/index.d.ts.map +1 -1
  240. package/dist/index.js +1 -1
  241. package/dist/index.js.map +1 -1
  242. package/dist/lib/infra/logger.d.ts +10 -0
  243. package/dist/lib/infra/logger.d.ts.map +1 -0
  244. package/dist/lib/infra/logger.js +24 -0
  245. package/dist/lib/infra/logger.js.map +1 -0
  246. package/dist/lib/observe/event.d.ts +20 -0
  247. package/dist/lib/observe/event.d.ts.map +1 -0
  248. package/dist/lib/observe/event.js +60 -0
  249. package/dist/lib/observe/event.js.map +1 -0
  250. package/dist/lib/observe/ids.d.ts +3 -0
  251. package/dist/lib/observe/ids.d.ts.map +1 -0
  252. package/dist/lib/observe/ids.js +9 -0
  253. package/dist/lib/observe/ids.js.map +1 -0
  254. package/dist/lib/observe/index.d.ts +7 -0
  255. package/dist/lib/observe/index.d.ts.map +1 -0
  256. package/dist/lib/observe/index.js +6 -0
  257. package/dist/lib/observe/index.js.map +1 -0
  258. package/dist/lib/observe/logger.d.ts +25 -0
  259. package/dist/lib/observe/logger.d.ts.map +1 -0
  260. package/dist/lib/observe/logger.js +53 -0
  261. package/dist/lib/observe/logger.js.map +1 -0
  262. package/dist/lib/observe/nop.d.ts +3 -0
  263. package/dist/lib/observe/nop.d.ts.map +1 -0
  264. package/dist/lib/observe/nop.js +9 -0
  265. package/dist/lib/observe/nop.js.map +1 -0
  266. package/dist/lib/observe/shell.d.ts +19 -0
  267. package/dist/lib/observe/shell.d.ts.map +1 -0
  268. package/dist/lib/observe/shell.js +49 -0
  269. package/dist/lib/observe/shell.js.map +1 -0
  270. package/dist/lib/observe/stdout.d.ts +3 -0
  271. package/dist/lib/observe/stdout.d.ts.map +1 -0
  272. package/dist/lib/observe/stdout.js +6 -0
  273. package/dist/lib/observe/stdout.js.map +1 -0
  274. package/dist/lib/observe/types.d.ts +14 -0
  275. package/dist/lib/observe/types.d.ts.map +1 -0
  276. package/dist/lib/observe/types.js +2 -0
  277. package/dist/lib/observe/types.js.map +1 -0
  278. package/dist/lib/shell/actions.d.ts +33 -0
  279. package/dist/lib/shell/actions.d.ts.map +1 -0
  280. package/dist/lib/shell/actions.js +2 -0
  281. package/dist/lib/shell/actions.js.map +1 -0
  282. package/dist/lib/shell/persistence.d.ts +7 -0
  283. package/dist/lib/shell/persistence.d.ts.map +1 -0
  284. package/dist/lib/shell/persistence.js +18 -0
  285. package/dist/lib/shell/persistence.js.map +1 -0
  286. package/dist/lib/shell/status.d.ts +4 -0
  287. package/dist/lib/shell/status.d.ts.map +1 -0
  288. package/dist/lib/shell/status.js +31 -0
  289. package/dist/lib/shell/status.js.map +1 -0
  290. package/dist/lib/shell/types.d.ts +40 -0
  291. package/dist/lib/shell/types.d.ts.map +1 -0
  292. package/dist/lib/shell/types.js +2 -0
  293. package/dist/lib/shell/types.js.map +1 -0
  294. package/dist/lib/utils.d.ts +4 -0
  295. package/dist/lib/utils.d.ts.map +1 -0
  296. package/dist/lib/utils.js +11 -0
  297. package/dist/lib/utils.js.map +1 -0
  298. package/dist/public-api.d.ts +109 -0
  299. package/dist/public-api.d.ts.map +1 -0
  300. package/dist/public-api.js +145 -0
  301. package/dist/public-api.js.map +1 -0
  302. package/dist/styles.css +249 -379
  303. package/package.json +16 -10
  304. package/dist/shell.d.ts +0 -147
  305. package/dist/shell.d.ts.map +0 -1
  306. package/dist/shell.js +0 -339
  307. package/dist/shell.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { useShellLayout } from "@/components/shell/shell-layout";
4
+ import { useKeyboardShortcut } from "@/hooks/use-keyboard-shortcut";
5
+ import { useShellStore } from "./use-shell-store";
6
+ export function useShellShortcuts() {
7
+ const { toggleLeftSidebar, toggleRightInspector } = useShellLayout();
8
+ const setSearchBarOpen = useShellStore((state) => state.setSearchBarOpen);
9
+ useKeyboardShortcut(useMemo(() => [
10
+ {
11
+ key: "b",
12
+ meta: true,
13
+ handler: () => toggleLeftSidebar({ source: "keyboard_shortcut" }),
14
+ },
15
+ {
16
+ key: "j",
17
+ meta: true,
18
+ handler: () => toggleRightInspector({ source: "keyboard_shortcut" }),
19
+ },
20
+ {
21
+ key: "k",
22
+ meta: true,
23
+ handler: () => setSearchBarOpen(true, { source: "keyboard_shortcut" }),
24
+ },
25
+ ], [setSearchBarOpen, toggleLeftSidebar, toggleRightInspector]));
26
+ }
27
+ //# sourceMappingURL=use-shell-shortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-shell-shortcuts.js","sourceRoot":"","sources":["../../../src/hooks/shell/use-shell-shortcuts.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,GAAG,cAAc,EAAE,CAAC;IACrE,MAAM,gBAAgB,GAAG,aAAa,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAE1E,mBAAmB,CACjB,OAAO,CACL,GAAG,EAAE,CAAC;QACJ;YACE,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;SAClE;QACD;YACE,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;SACrE;QACD;YACE,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,GAAG,EAAE,CACZ,gBAAgB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;SAC1D;KACF,EACD,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAC5D,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { ShellModeId, ShellTab } from "@/lib/shell/types";
2
+ import { type ShellEventSource } from "@/lib/observe/shell";
3
+ type ShellActionMeta = {
4
+ source?: ShellEventSource;
5
+ preview?: boolean;
6
+ };
7
+ type ShellPersistedState = {
8
+ activeMode: ShellModeId;
9
+ tabs: ShellTab[];
10
+ activeTabId: string | null;
11
+ };
12
+ interface ShellState extends ShellPersistedState {
13
+ hasHydrated: boolean;
14
+ searchBarOpen: boolean;
15
+ setHasHydrated: (hydrated: boolean) => void;
16
+ setActiveMode: (mode: ShellModeId, meta?: ShellActionMeta) => void;
17
+ openTab: (tab: ShellTab, meta?: ShellActionMeta) => void;
18
+ pinTab: (id: string, meta?: ShellActionMeta) => void;
19
+ closeTab: (id: string, meta?: ShellActionMeta) => void;
20
+ closeOtherTabs: (id: string, meta?: ShellActionMeta) => void;
21
+ closeAllTabs: (meta?: ShellActionMeta) => void;
22
+ setActiveTab: (id: string | null, meta?: ShellActionMeta) => void;
23
+ setSearchBarOpen: (open: boolean, meta?: ShellActionMeta) => void;
24
+ }
25
+ export declare const useShellStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ShellState>, "setState" | "persist"> & {
26
+ setState(partial: ShellState | Partial<ShellState> | ((state: ShellState) => ShellState | Partial<ShellState>), replace?: false | undefined): unknown;
27
+ setState(state: ShellState | ((state: ShellState) => ShellState), replace: true): unknown;
28
+ persist: {
29
+ setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ShellState, unknown, unknown>>) => void;
30
+ clearStorage: () => void;
31
+ rehydrate: () => Promise<void> | void;
32
+ hasHydrated: () => boolean;
33
+ onHydrate: (fn: (state: ShellState) => void) => () => void;
34
+ onFinishHydration: (fn: (state: ShellState) => void) => () => void;
35
+ getOptions: () => Partial<import("zustand/middleware").PersistOptions<ShellState, unknown, unknown>>;
36
+ };
37
+ }>;
38
+ export declare function resetShellStoreForTests(): void;
39
+ export {};
40
+ //# sourceMappingURL=use-shell-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-shell-store.d.ts","sourceRoot":"","sources":["../../../src/hooks/shell/use-shell-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,mBAAmB,CAAC;AAQ/E,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,qBAAqB,CAAC;AAW7B,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,UAAU,UAAW,SAAQ,mBAAmB;IAC9C,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACnE,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACvD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAC/C,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;CACnE;AAuOD,eAAO,MAAM,aAAa;;;;;;;;;;;;EAkVzB,CAAC;AAEF,wBAAgB,uBAAuB,IAAI,IAAI,CAO9C"}
@@ -0,0 +1,420 @@
1
+ "use client";
2
+ import { Actions, DockLocation } from "flexlayout-react";
3
+ import { create } from "zustand";
4
+ import { createJSONStorage, persist } from "zustand/middleware";
5
+ import { DEFAULT_SHELL_MODE, resolveInitialShellMode, SHELL_MODE_COOKIE_MAX_AGE, SHELL_MODE_COOKIE_NAME, SHELL_STORE_STORAGE_KEY, } from "@/lib/shell/persistence";
6
+ import { setShellModeField, setShellSource, setShellTabFields, shellNavLogger, } from "@/lib/observe/shell";
7
+ import { findPreviewTabNode, getShellModel, getWorkspaceShellTab, } from "@/components/shell/shell-model";
8
+ import { clearWorkspaceDraftsByTabIds, resetWorkspaceDraftStoreForTests, } from "@/hooks/workspace/use-workspace-draft-store";
9
+ const INITIAL_PERSISTED_STATE = {
10
+ activeMode: DEFAULT_SHELL_MODE,
11
+ tabs: [],
12
+ activeTabId: null,
13
+ };
14
+ function persistShellModeCookie(mode) {
15
+ if (typeof document === "undefined") {
16
+ return;
17
+ }
18
+ document.cookie = `${SHELL_MODE_COOKIE_NAME}=${encodeURIComponent(mode)}; path=/; max-age=${SHELL_MODE_COOKIE_MAX_AGE}; samesite=lax`;
19
+ }
20
+ function loadInitialPersistedState() {
21
+ if (typeof window === "undefined") {
22
+ return INITIAL_PERSISTED_STATE;
23
+ }
24
+ try {
25
+ const stored = window.localStorage.getItem(SHELL_STORE_STORAGE_KEY);
26
+ if (!stored) {
27
+ return INITIAL_PERSISTED_STATE;
28
+ }
29
+ const parsed = JSON.parse(stored);
30
+ const resolved = migrateShellPersistedState(parsed.state);
31
+ persistShellModeCookie(resolved.activeMode);
32
+ return resolved;
33
+ }
34
+ catch {
35
+ return INITIAL_PERSISTED_STATE;
36
+ }
37
+ }
38
+ function isShellTargetValue(value) {
39
+ return (value == null ||
40
+ typeof value === "string" ||
41
+ typeof value === "number" ||
42
+ typeof value === "boolean");
43
+ }
44
+ function isShellTabTarget(value) {
45
+ if (typeof value !== "object" || value == null)
46
+ return false;
47
+ const candidate = value;
48
+ if (typeof candidate.kind !== "string" || candidate.kind.length === 0) {
49
+ return false;
50
+ }
51
+ return Object.values(candidate).every(isShellTargetValue);
52
+ }
53
+ function isShellTabTone(value) {
54
+ return (value === "neutral" ||
55
+ value === "success" ||
56
+ value === "warning" ||
57
+ value === "danger" ||
58
+ value === "info");
59
+ }
60
+ function inferLegacyTabMode(candidate) {
61
+ const { id, target } = candidate;
62
+ if (typeof target.kind === "string" && target.kind.length > 0) {
63
+ if (target.kind === "tool")
64
+ return "tools";
65
+ if (target.kind === "intelligence")
66
+ return "intelligence";
67
+ if (target.kind === "environment")
68
+ return "environments";
69
+ if (target.kind === "run")
70
+ return "instances";
71
+ return `${target.kind}s`;
72
+ }
73
+ if (typeof id === "string" && id.includes(":")) {
74
+ const [prefix] = id.split(":");
75
+ if (prefix.length > 0)
76
+ return prefix;
77
+ }
78
+ return DEFAULT_SHELL_MODE;
79
+ }
80
+ function normalizePersistedTab(value) {
81
+ if (typeof value !== "object" || value == null)
82
+ return null;
83
+ const candidate = value;
84
+ if (typeof candidate.id !== "string" || typeof candidate.label !== "string") {
85
+ return null;
86
+ }
87
+ if (candidate.description != null &&
88
+ typeof candidate.description !== "string") {
89
+ return null;
90
+ }
91
+ if (!isShellTabTarget(candidate.target)) {
92
+ return null;
93
+ }
94
+ const target = candidate.target.kind === "screencast"
95
+ ? {
96
+ ...candidate.target,
97
+ kind: "run",
98
+ }
99
+ : candidate.target;
100
+ let tone = candidate.tone;
101
+ if (!isShellTabTone(tone)) {
102
+ tone = undefined;
103
+ }
104
+ if (!tone) {
105
+ switch (candidate.statusTone) {
106
+ case "healthy":
107
+ tone = "success";
108
+ break;
109
+ case "degraded":
110
+ tone = "warning";
111
+ break;
112
+ case "failed":
113
+ tone = "danger";
114
+ break;
115
+ case "deploying":
116
+ tone = "info";
117
+ break;
118
+ default:
119
+ tone = undefined;
120
+ }
121
+ }
122
+ const mode = typeof candidate.mode === "string" && candidate.mode.length > 0
123
+ ? candidate.mode
124
+ : inferLegacyTabMode({
125
+ id: candidate.id,
126
+ target,
127
+ });
128
+ return {
129
+ id: target.kind === "run" && candidate.id.startsWith("screencast:")
130
+ ? candidate.id.replace("screencast:", "run:")
131
+ : candidate.id,
132
+ mode,
133
+ label: candidate.label,
134
+ description: candidate.description,
135
+ tone,
136
+ target,
137
+ };
138
+ }
139
+ function migrateShellPersistedState(persistedState) {
140
+ if (typeof persistedState !== "object" || persistedState == null) {
141
+ return INITIAL_PERSISTED_STATE;
142
+ }
143
+ const candidate = persistedState;
144
+ const tabs = Array.isArray(candidate.tabs)
145
+ ? candidate.tabs
146
+ .map(normalizePersistedTab)
147
+ .filter((tab) => tab != null)
148
+ : [];
149
+ const activeTabId = typeof candidate.activeTabId === "string" &&
150
+ tabs.some((tab) => tab.id === candidate.activeTabId)
151
+ ? candidate.activeTabId
152
+ : null;
153
+ return {
154
+ activeMode: typeof candidate.activeMode === "string" &&
155
+ candidate.activeMode.length > 0
156
+ ? candidate.activeMode
157
+ : resolveInitialShellMode(tabs[0]?.mode),
158
+ tabs,
159
+ activeTabId,
160
+ };
161
+ }
162
+ function logModeChanged(previousMode, nextMode, source) {
163
+ if (previousMode === nextMode)
164
+ return;
165
+ setShellSource(setShellModeField(shellNavLogger
166
+ .event("shell.mode.changed")
167
+ .set("previous_mode", previousMode), nextMode), source).send();
168
+ }
169
+ function logTabCollectionChanged(params) {
170
+ const { activeMode, closedCount, eventType, source, tab } = params;
171
+ const event = setShellSource(setShellTabFields(shellNavLogger.event(eventType).set("closed_count", closedCount), tab), source);
172
+ setShellModeField(event, activeMode).send();
173
+ }
174
+ export const useShellStore = create()(persist((set) => ({
175
+ ...loadInitialPersistedState(),
176
+ hasHydrated: false,
177
+ searchBarOpen: false,
178
+ setHasHydrated: (hydrated) => set({ hasHydrated: hydrated }),
179
+ setActiveMode: (mode, meta) => set((state) => {
180
+ persistShellModeCookie(mode);
181
+ logModeChanged(state.activeMode, mode, meta?.source);
182
+ return { activeMode: mode };
183
+ }),
184
+ openTab: (tab, meta) => set((state) => {
185
+ const model = getShellModel();
186
+ const nodeId = `workspace:${tab.id}`;
187
+ const isPreview = meta?.preview === true;
188
+ if (model) {
189
+ const existingNode = model.getNodeById(nodeId);
190
+ if (existingNode) {
191
+ // Update existing tab attrs + config, then select
192
+ const updatedTab = isPreview ? { ...tab, preview: true } : tab;
193
+ const attrs = {
194
+ name: tab.label,
195
+ config: { shellTab: updatedTab },
196
+ };
197
+ if (isPreview) {
198
+ attrs.className = "tab-preview";
199
+ }
200
+ else if (getWorkspaceShellTab(nodeId)?.preview === true) {
201
+ attrs.className = "";
202
+ }
203
+ model.doAction(Actions.updateNodeAttributes(nodeId, attrs));
204
+ model.doAction(Actions.selectTab(nodeId));
205
+ const openEvent = setShellSource(setShellTabFields(shellNavLogger.event("shell.tab.activated"), tab), meta?.source);
206
+ setShellModeField(openEvent, state.activeMode).send();
207
+ }
208
+ else {
209
+ // If opening as preview, replace existing preview tab
210
+ let insertIndex = -1;
211
+ if (isPreview) {
212
+ const existing = findPreviewTabNode(model);
213
+ if (existing) {
214
+ const existingPreviewTab = existing.node.getConfig()
215
+ ?.shellTab;
216
+ if (existingPreviewTab) {
217
+ clearWorkspaceDraftsByTabIds([existingPreviewTab.id]);
218
+ }
219
+ insertIndex = existing.index;
220
+ model.doAction(Actions.deleteTab(existing.node.getId()));
221
+ }
222
+ }
223
+ const previewTab = isPreview ? { ...tab, preview: true } : tab;
224
+ // Add new tab
225
+ model.doAction(Actions.addNode({
226
+ type: "tab",
227
+ id: nodeId,
228
+ name: tab.label,
229
+ component: "workspace",
230
+ className: isPreview ? "tab-preview" : undefined,
231
+ config: { shellTab: previewTab },
232
+ }, "main-tabset", DockLocation.CENTER, insertIndex, true));
233
+ const openEvent = setShellSource(setShellTabFields(shellNavLogger.event("shell.tab.opened"), tab), meta?.source);
234
+ setShellModeField(openEvent, state.activeMode).send();
235
+ }
236
+ // Model change callback will sync tabs/activeTabId back
237
+ return {};
238
+ }
239
+ // Fallback: no model (tests, SSR)
240
+ const exists = state.tabs.some((current) => current.id === tab.id);
241
+ const nextTabs = exists
242
+ ? state.tabs.map((current) => current.id === tab.id ? tab : current)
243
+ : [...state.tabs, tab];
244
+ const openEvent = setShellSource(setShellTabFields(shellNavLogger.event(exists ? "shell.tab.activated" : "shell.tab.opened"), tab), meta?.source);
245
+ setShellModeField(openEvent, state.activeMode).send();
246
+ return {
247
+ tabs: nextTabs,
248
+ activeTabId: tab.id,
249
+ };
250
+ }),
251
+ pinTab: (id, meta) => set(() => {
252
+ const model = getShellModel();
253
+ if (!model)
254
+ return {};
255
+ const nodeId = `workspace:${id}`;
256
+ const shellTab = getWorkspaceShellTab(nodeId);
257
+ if (!shellTab?.preview)
258
+ return {};
259
+ model.doAction(Actions.updateNodeAttributes(nodeId, {
260
+ className: "",
261
+ config: {
262
+ shellTab: { ...shellTab, preview: false },
263
+ },
264
+ }));
265
+ setShellSource(setShellTabFields(shellNavLogger.event("shell.tab.pinned"), shellTab), meta?.source).send();
266
+ return {};
267
+ }),
268
+ closeTab: (id, meta) => set((state) => {
269
+ const model = getShellModel();
270
+ const nodeId = `workspace:${id}`;
271
+ const closingTab = state.tabs.find((tab) => tab.id === id) ?? null;
272
+ const closeEvent = setShellSource(setShellTabFields(shellNavLogger.event("shell.tab.closed"), closingTab), meta?.source);
273
+ setShellModeField(closeEvent, state.activeMode).send();
274
+ clearWorkspaceDraftsByTabIds([id]);
275
+ if (model) {
276
+ const node = model.getNodeById(nodeId);
277
+ if (node) {
278
+ model.doAction(Actions.deleteTab(nodeId));
279
+ }
280
+ // Model change callback will sync tabs/activeTabId back
281
+ return {};
282
+ }
283
+ // Fallback: no model
284
+ const nextTabs = state.tabs.filter((tab) => tab.id !== id);
285
+ if (state.activeTabId !== id) {
286
+ return { tabs: nextTabs };
287
+ }
288
+ const closedIndex = state.tabs.findIndex((tab) => tab.id === id);
289
+ const nextActiveTab = nextTabs[Math.min(closedIndex, nextTabs.length - 1)] ?? null;
290
+ return {
291
+ tabs: nextTabs,
292
+ activeTabId: nextActiveTab?.id ?? null,
293
+ };
294
+ }),
295
+ closeOtherTabs: (id, meta) => set((state) => {
296
+ const keepTab = state.tabs.find((tab) => tab.id === id) ?? null;
297
+ if (!keepTab || state.tabs.length <= 1) {
298
+ return state;
299
+ }
300
+ logTabCollectionChanged({
301
+ activeMode: state.activeMode,
302
+ closedCount: state.tabs.length - 1,
303
+ eventType: "shell.tab.closed_others",
304
+ source: meta?.source,
305
+ tab: keepTab,
306
+ });
307
+ clearWorkspaceDraftsByTabIds(state.tabs.filter((tab) => tab.id !== id).map((tab) => tab.id));
308
+ const model = getShellModel();
309
+ if (model) {
310
+ const keepNodeId = `workspace:${id}`;
311
+ const nodeIdsToDelete = [];
312
+ model.visitNodes((node) => {
313
+ if (node.getType() === "tab" &&
314
+ node.getComponent?.() ===
315
+ "workspace" &&
316
+ node.getId() !== keepNodeId) {
317
+ nodeIdsToDelete.push(node.getId());
318
+ }
319
+ });
320
+ for (const nodeId of nodeIdsToDelete) {
321
+ model.doAction(Actions.deleteTab(nodeId));
322
+ }
323
+ model.doAction(Actions.selectTab(keepNodeId));
324
+ // Model change callback will sync
325
+ return {};
326
+ }
327
+ // Fallback: no model
328
+ return {
329
+ tabs: [keepTab],
330
+ activeTabId: keepTab.id,
331
+ };
332
+ }),
333
+ closeAllTabs: (meta) => set((state) => {
334
+ if (state.tabs.length === 0) {
335
+ return state;
336
+ }
337
+ logTabCollectionChanged({
338
+ activeMode: state.activeMode,
339
+ closedCount: state.tabs.length,
340
+ eventType: "shell.tabs.closed_all",
341
+ source: meta?.source,
342
+ tab: state.tabs.find((tab) => tab.id === state.activeTabId) ?? null,
343
+ });
344
+ clearWorkspaceDraftsByTabIds(state.tabs.map((tab) => tab.id));
345
+ const model = getShellModel();
346
+ if (model) {
347
+ const nodeIdsToDelete = [];
348
+ model.visitNodes((node) => {
349
+ if (node.getType() === "tab" &&
350
+ node.getComponent?.() ===
351
+ "workspace") {
352
+ nodeIdsToDelete.push(node.getId());
353
+ }
354
+ });
355
+ for (const nodeId of nodeIdsToDelete) {
356
+ model.doAction(Actions.deleteTab(nodeId));
357
+ }
358
+ // Model change callback will sync
359
+ return {};
360
+ }
361
+ // Fallback: no model
362
+ return {
363
+ tabs: [],
364
+ activeTabId: null,
365
+ };
366
+ }),
367
+ setActiveTab: (id, meta) => set((state) => {
368
+ if (state.activeTabId === id) {
369
+ return { activeTabId: id };
370
+ }
371
+ const nextTab = state.tabs.find((tab) => tab.id === id) ?? null;
372
+ const previousTab = state.tabs.find((tab) => tab.id === state.activeTabId) ?? null;
373
+ const activateEvent = setShellSource(setShellTabFields(shellNavLogger
374
+ .event("shell.tab.activated")
375
+ .set("previous_tab_id", previousTab?.id ?? null), nextTab), meta?.source);
376
+ setShellModeField(activateEvent, state.activeMode).send();
377
+ const model = getShellModel();
378
+ if (model && id) {
379
+ const nodeId = `workspace:${id}`;
380
+ const node = model.getNodeById(nodeId);
381
+ if (node) {
382
+ model.doAction(Actions.selectTab(nodeId));
383
+ // Model change callback will sync
384
+ return {};
385
+ }
386
+ }
387
+ return { activeTabId: id };
388
+ }),
389
+ setSearchBarOpen: (open, meta) => set((state) => {
390
+ if (state.searchBarOpen !== open) {
391
+ const event = setShellSource(shellNavLogger.event(open ? "shell.search_bar.opened" : "shell.search_bar.closed"), meta?.source);
392
+ setShellModeField(event, state.activeMode).send();
393
+ }
394
+ return { searchBarOpen: open };
395
+ }),
396
+ }), {
397
+ name: SHELL_STORE_STORAGE_KEY,
398
+ version: 4,
399
+ migrate: (persistedState) => migrateShellPersistedState(persistedState),
400
+ storage: createJSONStorage(() => localStorage),
401
+ partialize: (state) => ({
402
+ activeMode: state.activeMode,
403
+ // Tabs persist in FlexLayout model (shell-flexlayout:v1), not here.
404
+ // Keep empty arrays so Zustand migration still works.
405
+ tabs: [],
406
+ activeTabId: null,
407
+ }),
408
+ onRehydrateStorage: () => (state) => {
409
+ state?.setHasHydrated(true);
410
+ },
411
+ }));
412
+ export function resetShellStoreForTests() {
413
+ useShellStore.setState({
414
+ ...INITIAL_PERSISTED_STATE,
415
+ hasHydrated: true,
416
+ searchBarOpen: false,
417
+ });
418
+ resetWorkspaceDraftStoreForTests();
419
+ }
420
+ //# sourceMappingURL=use-shell-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-shell-store.js","sourceRoot":"","sources":["../../../src/hooks/shell/use-shell-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type RefObject } from "react";
2
+ type TabStripBridgeOptions = {
3
+ enabled: boolean;
4
+ };
5
+ export declare function useShellTabStripBridge(surfaceRef: RefObject<HTMLElement | null>, options: TabStripBridgeOptions): void;
6
+ export {};
7
+ //# sourceMappingURL=use-shell-tab-strip-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-shell-tab-strip-bridge.d.ts","sourceRoot":"","sources":["../../../src/hooks/shell/use-shell-tab-strip-bridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAa1D,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAyKF,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,EACzC,OAAO,EAAE,qBAAqB,GAC7B,IAAI,CAmPN"}