@cueloop/client 0.1.0-alpha.93 → 0.1.0-alpha.95

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 (309) hide show
  1. package/package.json +12 -12
  2. package/src/{annotation-palette.ts → annotations/annotation-palette.ts} +1 -1
  3. package/src/{components → annotations/components}/AnnotationCards.stories.tsx +4 -4
  4. package/src/{components → annotations/components}/AnnotationCards.tsx +7 -7
  5. package/src/{components → annotations/components}/DiscussionMarkerRail.stories.tsx +3 -3
  6. package/src/{components → annotations/components}/DiscussionMarkerRail.tsx +5 -5
  7. package/src/{discussions.ts → annotations/discussions.ts} +1 -1
  8. package/src/{use-annotation-surface.tsx → annotations/use-annotation-surface.tsx} +7 -7
  9. package/src/{App.appearance.test.tsx → app/App.appearance.test.tsx} +1 -1
  10. package/src/{App.autoclose.test.tsx → app/App.autoclose.test.tsx} +1 -1
  11. package/src/{App.deleted-scroll.test.tsx → app/App.deleted-scroll.test.tsx} +3 -3
  12. package/src/{App.diff.test.tsx → app/App.diff.test.tsx} +2 -2
  13. package/src/{App.export.test.tsx → app/App.export.test.tsx} +1 -1
  14. package/src/{App.identity.test.tsx → app/App.identity.test.tsx} +6 -1
  15. package/src/{App.plan-render.test.tsx → app/App.plan-render.test.tsx} +2 -2
  16. package/src/{App.plan-review.test.tsx → app/App.plan-review.test.tsx} +3 -3
  17. package/src/{App.prototype-markdown.test.tsx → app/App.prototype-markdown.test.tsx} +2 -2
  18. package/src/{App.prototype.test.tsx → app/App.prototype.test.tsx} +2 -2
  19. package/src/{App.readonly.test.tsx → app/App.readonly.test.tsx} +1 -1
  20. package/src/{App.regression.test.tsx → app/App.regression.test.tsx} +1 -1
  21. package/src/{App.rendering.test.tsx → app/App.rendering.test.tsx} +1 -1
  22. package/src/{App.share-dialog.test.tsx → app/App.share-dialog.test.tsx} +2 -2
  23. package/src/{App.submit-confirm.test.tsx → app/App.submit-confirm.test.tsx} +1 -1
  24. package/src/{App.test.tsx → app/App.test.tsx} +2 -2
  25. package/src/{App.toast.test.tsx → app/App.toast.test.tsx} +2 -2
  26. package/src/{App.tsx → app/App.tsx} +68 -37
  27. package/src/{App.visual.test.tsx → app/App.visual.test.tsx} +4 -4
  28. package/src/{App.walk.test.tsx → app/App.walk.test.tsx} +2 -2
  29. package/src/{App.workbench.test.tsx → app/App.workbench.test.tsx} +85 -3
  30. package/src/{app-key-state.ts → app/app-key-state.ts} +4 -4
  31. package/src/{app-screens.tsx → app/app-screens.tsx} +31 -31
  32. package/src/{app-view-model.ts → app/app-view-model.ts} +6 -6
  33. package/src/{components → app/components}/AppHeader.stories.tsx +4 -4
  34. package/src/{components → app/components}/AppHeader.tsx +3 -3
  35. package/src/{components → app/components}/AppShell.brand.test.tsx +2 -2
  36. package/src/{components → app/components}/AppShell.extensions.test.tsx +2 -2
  37. package/src/{components → app/components}/AppShell.stories.tsx +2 -2
  38. package/src/{components → app/components}/AppShell.tsx +12 -9
  39. package/src/{components → app/components}/AppShell.zoom.test.tsx +4 -4
  40. package/src/{components → app/components}/Breadcrumb.stories.tsx +2 -2
  41. package/src/{components → app/components}/Breadcrumb.tsx +2 -2
  42. package/src/{components → app/components}/MenuBar.stories.tsx +2 -2
  43. package/src/{components → app/components}/MenuBar.tsx +3 -3
  44. package/src/{components → app/components}/PaneGrid.stories.tsx +2 -2
  45. package/src/{components → app/components}/PaneGrid.tsx +1 -1
  46. package/src/{components → app/components}/PanelColumn.stories.tsx +2 -2
  47. package/src/{components → app/components}/PanelColumn.tsx +2 -2
  48. package/src/{components → app/components}/ShellHeader.stories.tsx +3 -3
  49. package/src/{components → app/components}/ShellHeader.tsx +2 -2
  50. package/src/{components → app/components}/WorkspacePanels.stories.tsx +3 -3
  51. package/src/{components → app/components}/WorkspacePanels.tsx +9 -5
  52. package/src/{components → app/components}/pages/Workspace.stories.tsx +4 -4
  53. package/src/{intent-dispatch.test.ts → app/intent-dispatch.test.ts} +7 -3
  54. package/src/{intent-dispatch.ts → app/intent-dispatch.ts} +12 -6
  55. package/src/{ready-signal.test.ts → app/ready-signal.test.ts} +1 -1
  56. package/src/{run.ts → app/run.ts} +12 -6
  57. package/src/{serve.ts → app/serve.ts} +1 -1
  58. package/src/{version.ts → app/version.ts} +1 -1
  59. package/src/{components → appearance/components}/theme-context.stories.tsx +2 -2
  60. package/src/{components → diff/components}/AnnotatableFileView.stories.tsx +2 -2
  61. package/src/{components → diff/components}/AnnotatableFileView.test.tsx +8 -2
  62. package/src/{components → diff/components}/AnnotatableFileView.tsx +3 -3
  63. package/src/{components → diff/components}/BareWorkbenchFileView.stories.tsx +2 -2
  64. package/src/{components → diff/components}/BareWorkbenchFileView.tsx +2 -2
  65. package/src/{components → diff/components}/DiffContentView.scroll.test.tsx +4 -4
  66. package/src/{components → diff/components}/DiffContentView.split.test.tsx +4 -4
  67. package/src/{components → diff/components}/DiffContentView.stories.tsx +5 -5
  68. package/src/{components → diff/components}/DiffContentView.syntax.test.tsx +3 -3
  69. package/src/{components → diff/components}/DiffContentView.tsx +13 -13
  70. package/src/{components → diff/components}/WalkWizard.stories.tsx +2 -2
  71. package/src/{components → diff/components}/WalkWizard.tsx +4 -4
  72. package/src/{components → diff/components}/diff-content-view-layout.test.ts +2 -2
  73. package/src/{components → diff/components}/diff-content-view-layout.ts +2 -2
  74. package/src/{diff-syntax.ts → diff/diff-syntax.ts} +1 -1
  75. package/src/{view-diff.ts → diff/view-diff.ts} +4 -4
  76. package/src/index.ts +8 -8
  77. package/src/{components → integrations/components}/ExtensionZone.stories.tsx +1 -1
  78. package/src/{components → integrations/components}/ExtensionZone.tsx +3 -3
  79. package/src/{components → integrations/components}/ShareDialog.stories.tsx +2 -2
  80. package/src/{components → integrations/components}/ShareDialog.tsx +11 -11
  81. package/src/{integrations.test.ts → integrations/integrations.test.ts} +1 -1
  82. package/src/{integrations.ts → integrations/integrations.ts} +1 -1
  83. package/src/{components → keyboard/components}/CompletionOverlay.stories.tsx +2 -2
  84. package/src/{components → keyboard/components}/CompletionOverlay.tsx +4 -4
  85. package/src/{components → keyboard/components}/HandleChipsInput.stories.tsx +2 -2
  86. package/src/{components → keyboard/components}/HandleChipsInput.test.tsx +2 -2
  87. package/src/{components → keyboard/components}/HandleChipsInput.tsx +3 -3
  88. package/src/{components → keyboard/components}/KeybindsDialog.stories.tsx +2 -2
  89. package/src/{components → keyboard/components}/KeybindsDialog.tsx +3 -3
  90. package/src/{components → keyboard/components}/NavModeHint.stories.tsx +2 -2
  91. package/src/{components → keyboard/components}/NavModeHint.tsx +1 -1
  92. package/src/{components → keyboard/components}/SlashComposer.stories.tsx +3 -3
  93. package/src/{components → keyboard/components}/SlashComposer.tsx +3 -3
  94. package/src/{key-bindings.test.ts → keyboard/key-bindings.test.ts} +1 -1
  95. package/src/{keymap.test.ts → keyboard/keymap.test.ts} +1 -1
  96. package/src/{keymap.ts → keyboard/keymap.ts} +1 -1
  97. package/src/{slash-palette.ts → keyboard/slash-palette.ts} +1 -1
  98. package/src/{components → markdown/components}/MarkdownGridBlock.stories.tsx +2 -2
  99. package/src/{components → markdown/components}/MarkdownGridBlock.tsx +2 -2
  100. package/src/{components → markdown/components}/MarkdownThreadEditor.stories.tsx +2 -2
  101. package/src/{components → markdown/components}/MarkdownThreadEditor.test.tsx +2 -2
  102. package/src/{components → markdown/components}/MarkdownThreadEditor.tsx +1 -1
  103. package/src/{components → markdown/components}/ThreadView.selection.test.tsx +4 -4
  104. package/src/{components → markdown/components}/ThreadView.slash.test.tsx +6 -6
  105. package/src/{components → markdown/components}/ThreadView.stories.tsx +4 -4
  106. package/src/{components → markdown/components}/ThreadView.tsx +13 -13
  107. package/src/{mark-runs.ts → markdown/mark-runs.ts} +1 -1
  108. package/src/{markdown-editor-syntax-style.ts → markdown/markdown-editor-syntax-style.ts} +1 -1
  109. package/src/{thread-code-syntax.ts → markdown/thread-code-syntax.ts} +3 -3
  110. package/src/{use-thread-body-editing.tsx → markdown/use-thread-body-editing.tsx} +2 -2
  111. package/src/{view-plan.ts → markdown/view-plan.ts} +3 -3
  112. package/src/{components → prototype/components}/PrototypeContentView.stories.tsx +2 -2
  113. package/src/{components → prototype/components}/PrototypeContentView.tsx +5 -5
  114. package/src/{components → settings/components}/SettingsDialog.stories.tsx +3 -3
  115. package/src/{components → settings/components}/SettingsDialog.tsx +7 -7
  116. package/src/{components → settings/components}/SettingsRows.stories.tsx +2 -2
  117. package/src/{components → settings/components}/SettingsRows.tsx +2 -2
  118. package/src/{components → settings/components}/quick-actions-editor.stories.tsx +2 -2
  119. package/src/{components → settings/components}/quick-actions-editor.test.tsx +1 -1
  120. package/src/{components → settings/components}/quick-actions-editor.tsx +3 -3
  121. package/src/{config.test.ts → settings/config.test.ts} +2 -2
  122. package/src/{config.ts → settings/config.ts} +8 -3
  123. package/src/{use-settings-dialog.tsx → settings/use-settings-dialog.tsx} +2 -2
  124. package/src/{components → stories}/stories-app.tsx +8 -8
  125. package/src/{components → stories}/stories.test.tsx +2 -2
  126. package/src/{components → stories}/story-fixtures.ts +2 -2
  127. package/src/{components → stories}/story-tree.test.ts +1 -1
  128. package/src/{components → stories}/story.ts +4 -4
  129. package/src/{components → terminal/components}/AnsiScreen.stories.tsx +1 -1
  130. package/src/{components → terminal/components}/AnsiScreen.tsx +2 -2
  131. package/src/{components → terminal/components}/terminal-pane.test.tsx +1 -1
  132. package/src/{ghostty-terminal.ts → terminal/ghostty-terminal.ts} +1 -1
  133. package/src/{pty.ts → terminal/pty.ts} +1 -1
  134. package/src/{test-support.test.ts → testing/test-support.test.ts} +1 -1
  135. package/src/{test-support.ts → testing/test-support.ts} +1 -1
  136. package/src/{components → thread/components}/ThreadFooter.stories.tsx +2 -2
  137. package/src/{components → thread/components}/ThreadFooter.test.tsx +2 -2
  138. package/src/{components → thread/components}/ThreadFooter.tsx +4 -4
  139. package/src/{components → thread/components}/ThreadTree.stories.tsx +3 -3
  140. package/src/{components → thread/components}/ThreadTree.tsx +8 -8
  141. package/src/{thread-controller.live-diff.test.ts → thread/thread-controller.live-diff.test.ts} +31 -1
  142. package/src/{thread-controller.share.test.ts → thread/thread-controller.share.test.ts} +1 -1
  143. package/src/{thread-controller.tree.test.ts → thread/thread-controller.tree.test.ts} +1 -1
  144. package/src/{thread-controller.ts → thread/thread-controller.ts} +43 -14
  145. package/src/{components → ui/components}/CodeBlock.stories.tsx +2 -2
  146. package/src/{components → ui/components}/CodeBlock.tsx +2 -2
  147. package/src/{components → ui/components}/ConfirmCard.stories.tsx +3 -3
  148. package/src/{components → ui/components}/ConfirmCard.tsx +12 -7
  149. package/src/{components → ui/components}/ConfirmDialog.stories.tsx +2 -2
  150. package/src/{components → ui/components}/ConfirmDialog.tsx +2 -2
  151. package/src/{components → ui/components}/OverlayScrollbar.stories.tsx +2 -2
  152. package/src/{components → ui/components}/OverlayScrollbar.test.tsx +5 -5
  153. package/src/{components → ui/components}/OverlayScrollbar.tsx +2 -2
  154. package/src/{components → ui/components}/PromptDialog.stories.tsx +2 -2
  155. package/src/{components → ui/components}/PromptDialog.test.tsx +2 -2
  156. package/src/{components → ui/components}/PromptDialog.tsx +2 -2
  157. package/src/{components → ui/components}/RootOverlay.stories.tsx +2 -2
  158. package/src/{components → ui/components}/ScrollArea.stories.tsx +2 -2
  159. package/src/{components → ui/components}/ScrollArea.tsx +1 -1
  160. package/src/{components → ui/components}/Toast.stories.tsx +2 -2
  161. package/src/{components → ui/components}/Toast.tsx +2 -2
  162. package/src/{components → ui/components}/Tooltip.stories.tsx +2 -2
  163. package/src/{components → ui/components}/Tooltip.tsx +1 -1
  164. package/src/{components → ui/components}/menu-control.stories.tsx +2 -2
  165. package/src/{components → ui/components}/primitives/Button.stories.tsx +2 -2
  166. package/src/{components → ui/components}/primitives/Button.tsx +2 -2
  167. package/src/{components → ui/components}/primitives/Card.stories.tsx +2 -2
  168. package/src/{components → ui/components}/primitives/Card.tsx +2 -2
  169. package/src/{components → ui/components}/primitives/Dialog.stories.tsx +2 -2
  170. package/src/{components → ui/components}/primitives/Dialog.test.tsx +2 -2
  171. package/src/{components → ui/components}/primitives/Dialog.tsx +2 -2
  172. package/src/{components → ui/components}/primitives/DialogActions.stories.tsx +2 -2
  173. package/src/{components → ui/components}/primitives/DialogActions.tsx +1 -1
  174. package/src/{components → ui/components}/primitives/IconButton.stories.tsx +2 -2
  175. package/src/{components → ui/components}/primitives/IconButton.tsx +1 -1
  176. package/src/{components → ui/components}/primitives/StatusBar.stories.tsx +2 -2
  177. package/src/{components → ui/components}/primitives/StatusBar.tsx +2 -2
  178. package/src/{components → ui/components}/primitives/Switch.stories.tsx +2 -2
  179. package/src/{components → ui/components}/primitives/Switch.tsx +2 -2
  180. package/src/{components → ui/components}/primitives/Tabs.stories.tsx +2 -2
  181. package/src/{components → ui/components}/primitives/Tabs.tsx +2 -2
  182. package/src/{components → ui/components}/primitives/Toolbar.stories.tsx +1 -1
  183. package/src/{components → ui/components}/primitives/Tree.stories.tsx +2 -2
  184. package/src/{components → ui/components}/primitives/Tree.tsx +2 -2
  185. package/src/{components → ui/components}/syntax-highlight.ts +1 -1
  186. package/src/{components → workbench/components}/ChangesColumn.stories.tsx +2 -2
  187. package/src/{components → workbench/components}/ChangesColumn.tsx +7 -7
  188. package/src/{components → workbench/components}/ChangesFileTree.test.tsx +2 -2
  189. package/src/{components → workbench/components}/EditorGrid.split.test.tsx +1 -1
  190. package/src/{components → workbench/components}/EditorGrid.stories.tsx +2 -2
  191. package/src/{components → workbench/components}/EditorGrid.tabs.test.tsx +2 -2
  192. package/src/{components → workbench/components}/EditorGrid.tsx +8 -8
  193. package/src/{components → workbench/components}/EditorGrid.zoom.test.tsx +2 -2
  194. package/src/{components → workbench/components}/FileContentsView.stories.tsx +2 -2
  195. package/src/{components → workbench/components}/FileContentsView.test.tsx +2 -2
  196. package/src/{components → workbench/components}/FileContentsView.tsx +4 -4
  197. package/src/{components → workbench/components}/GridTabContent.actions.test.tsx +6 -6
  198. package/src/{components → workbench/components}/GridTabContent.stories.tsx +4 -4
  199. package/src/{components → workbench/components}/GridTabContent.tsx +4 -4
  200. package/src/{components → workbench/components}/ProjectTreeView.stories.tsx +2 -2
  201. package/src/{components → workbench/components}/ProjectTreeView.test.tsx +2 -2
  202. package/src/{components → workbench/components}/ProjectTreeView.tsx +5 -5
  203. package/src/{components → workbench/components}/TreePane.stories.tsx +3 -3
  204. package/src/{components → workbench/components}/TreePane.tsx +6 -6
  205. package/src/{components → workbench/components}/WelcomePlayground.stories.tsx +2 -2
  206. package/src/{components → workbench/components}/WelcomePlayground.test.tsx +10 -3
  207. package/src/{components → workbench/components}/WelcomePlayground.tsx +5 -5
  208. package/src/{components → workbench/components}/file-tree.ts +1 -1
  209. package/src/{use-changes-workbench.ts → workbench/use-changes-workbench.ts} +2 -2
  210. package/src/{use-remember-layout.ts → workbench/use-remember-layout.ts} +2 -2
  211. package/src/{use-repo-changes.ts → workbench/use-repo-changes.ts} +5 -1
  212. /package/src/{thread-selection.test.ts → annotations/thread-selection.test.ts} +0 -0
  213. /package/src/{thread-selection.ts → annotations/thread-selection.ts} +0 -0
  214. /package/src/{App.focus.test.ts → app/App.focus.test.ts} +0 -0
  215. /package/src/{launch-layout.test.ts → app/launch-layout.test.ts} +0 -0
  216. /package/src/{launch-layout.ts → app/launch-layout.ts} +0 -0
  217. /package/src/{ready-signal.ts → app/ready-signal.ts} +0 -0
  218. /package/src/{serve.test.ts → app/serve.test.ts} +0 -0
  219. /package/src/{components → appearance/components}/theme-context.tsx +0 -0
  220. /package/src/{theme-presets.test.ts → appearance/theme-presets.test.ts} +0 -0
  221. /package/src/{theme-presets.ts → appearance/theme-presets.ts} +0 -0
  222. /package/src/{theme.ts → appearance/theme.ts} +0 -0
  223. /package/src/{visual → appearance/visual}/contrast.test.ts +0 -0
  224. /package/src/{visual → appearance/visual}/contrast.ts +0 -0
  225. /package/src/{diff-fold.test.ts → diff/diff-fold.test.ts} +0 -0
  226. /package/src/{diff-fold.ts → diff/diff-fold.ts} +0 -0
  227. /package/src/{diff-hunk-curate.test.ts → diff/diff-hunk-curate.test.ts} +0 -0
  228. /package/src/{diff-hunk-curate.ts → diff/diff-hunk-curate.ts} +0 -0
  229. /package/src/{diff-intraline.test.ts → diff/diff-intraline.test.ts} +0 -0
  230. /package/src/{diff-intraline.ts → diff/diff-intraline.ts} +0 -0
  231. /package/src/{diff-syntax.test.ts → diff/diff-syntax.test.ts} +0 -0
  232. /package/src/{split-diff.test.ts → diff/split-diff.test.ts} +0 -0
  233. /package/src/{split-diff.ts → diff/split-diff.ts} +0 -0
  234. /package/src/{view-diff.test.ts → diff/view-diff.test.ts} +0 -0
  235. /package/src/{walk.test.ts → diff/walk.test.ts} +0 -0
  236. /package/src/{walk.ts → diff/walk.ts} +0 -0
  237. /package/src/{attribution.test.ts → integrations/attribution.test.ts} +0 -0
  238. /package/src/{attribution.ts → integrations/attribution.ts} +0 -0
  239. /package/src/{client-extension-registry.test.tsx → integrations/client-extension-registry.test.tsx} +0 -0
  240. /package/src/{client-extension-registry.ts → integrations/client-extension-registry.ts} +0 -0
  241. /package/src/{clipboard.test.ts → integrations/clipboard.test.ts} +0 -0
  242. /package/src/{clipboard.ts → integrations/clipboard.ts} +0 -0
  243. /package/src/{components → integrations/components}/share-dialog-store.ts +0 -0
  244. /package/src/{editor.test.ts → integrations/editor.test.ts} +0 -0
  245. /package/src/{editor.ts → integrations/editor.ts} +0 -0
  246. /package/src/{github-identity.test.ts → integrations/github-identity.test.ts} +0 -0
  247. /package/src/{github-identity.ts → integrations/github-identity.ts} +0 -0
  248. /package/src/{herdr.test.ts → integrations/herdr.test.ts} +0 -0
  249. /package/src/{herdr.ts → integrations/herdr.ts} +0 -0
  250. /package/src/{pasted-image.test.ts → integrations/pasted-image.test.ts} +0 -0
  251. /package/src/{pasted-image.ts → integrations/pasted-image.ts} +0 -0
  252. /package/src/{share.ts → integrations/share.ts} +0 -0
  253. /package/src/{key-bindings.ts → keyboard/key-bindings.ts} +0 -0
  254. /package/src/{skills.test.ts → keyboard/skills.test.ts} +0 -0
  255. /package/src/{skills.ts → keyboard/skills.ts} +0 -0
  256. /package/src/{slash-palette.test.ts → keyboard/slash-palette.test.ts} +0 -0
  257. /package/src/{thread-chords.test.ts → keyboard/thread-chords.test.ts} +0 -0
  258. /package/src/{thread-chords.ts → keyboard/thread-chords.ts} +0 -0
  259. /package/src/{use-shared-keyboard.ts → keyboard/use-shared-keyboard.ts} +0 -0
  260. /package/src/{__snapshots__ → markdown/__snapshots__}/view-plan.regression.test.ts.snap +0 -0
  261. /package/src/{markdown-grid.test.ts → markdown/markdown-grid.test.ts} +0 -0
  262. /package/src/{markdown-grid.ts → markdown/markdown-grid.ts} +0 -0
  263. /package/src/{markdown-highlight.test.ts → markdown/markdown-highlight.test.ts} +0 -0
  264. /package/src/{markdown-highlight.ts → markdown/markdown-highlight.ts} +0 -0
  265. /package/src/{view-plan.regression.test.ts → markdown/view-plan.regression.test.ts} +0 -0
  266. /package/src/{view-plan.test.ts → markdown/view-plan.test.ts} +0 -0
  267. /package/src/{perf → performance}/otlp-trace.test.ts +0 -0
  268. /package/src/{perf → performance}/otlp-trace.ts +0 -0
  269. /package/src/{perf → performance}/perf-report.ts +0 -0
  270. /package/src/{perf → performance}/perf-timings.test.ts +0 -0
  271. /package/src/{perf → performance}/perf-timings.ts +0 -0
  272. /package/src/{prototype-browser.test.ts → prototype/prototype-browser.test.ts} +0 -0
  273. /package/src/{prototype-browser.ts → prototype/prototype-browser.ts} +0 -0
  274. /package/src/{prototype-pixels.tsx → prototype/prototype-pixels.tsx} +0 -0
  275. /package/src/{config-identity.test.ts → settings/config-identity.test.ts} +0 -0
  276. /package/src/{components → stories}/__snapshots__/stories.test.tsx.snap +0 -0
  277. /package/src/{ansi-screen.test.ts → terminal/ansi-screen.test.ts} +0 -0
  278. /package/src/{ansi-screen.ts → terminal/ansi-screen.ts} +0 -0
  279. /package/src/{components → terminal/components}/terminal-pane.ts +0 -0
  280. /package/src/{ghostty-terminal.test.ts → terminal/ghostty-terminal.test.ts} +0 -0
  281. /package/src/{kitty-image.test.ts → terminal/kitty-image.test.ts} +0 -0
  282. /package/src/{kitty-image.ts → terminal/kitty-image.ts} +0 -0
  283. /package/src/{pty.test.ts → terminal/pty.test.ts} +0 -0
  284. /package/src/{components → thread/components}/thread-tree.test.ts +0 -0
  285. /package/src/{components → thread/components}/thread-tree.ts +0 -0
  286. /package/src/{thread-controller.curate.test.ts → thread/thread-controller.curate.test.ts} +0 -0
  287. /package/src/{thread-controller.derivation.test.ts → thread/thread-controller.derivation.test.ts} +0 -0
  288. /package/src/{thread-controller.optimistic.test.ts → thread/thread-controller.optimistic.test.ts} +0 -0
  289. /package/src/{thread-controller.switch-cache.test.ts → thread/thread-controller.switch-cache.test.ts} +0 -0
  290. /package/src/{tree-view.test.ts → thread/tree-view.test.ts} +0 -0
  291. /package/src/{tree-view.ts → thread/tree-view.ts} +0 -0
  292. /package/src/{components → ui/components}/RootOverlay.tsx +0 -0
  293. /package/src/{components → ui/components}/menu-control.tsx +0 -0
  294. /package/src/{components → ui/components}/primitives/Toolbar.tsx +0 -0
  295. /package/src/{components → ui/components}/primitives/frame.test.ts +0 -0
  296. /package/src/{components → ui/components}/primitives/frame.ts +0 -0
  297. /package/src/{components → ui/components}/primitives/icons.ts +0 -0
  298. /package/src/{components → ui/components}/primitives/tree-model.test.ts +0 -0
  299. /package/src/{components → ui/components}/primitives/tree-model.ts +0 -0
  300. /package/src/{components → ui/components}/truncate-text.ts +0 -0
  301. /package/src/{components → ui/components}/truncate-title.test.ts +0 -0
  302. /package/src/{components → ui/components}/truncate-title.ts +0 -0
  303. /package/src/{use-frame-measure.ts → ui/use-frame-measure.ts} +0 -0
  304. /package/src/{use-terminal-virtualizer.ts → ui/use-terminal-virtualizer.ts} +0 -0
  305. /package/src/{components → workbench/components}/editor-grid.test.ts +0 -0
  306. /package/src/{components → workbench/components}/editor-grid.ts +0 -0
  307. /package/src/{components → workbench/components}/file-tree.test.ts +0 -0
  308. /package/src/{workbench-snapshot.test.ts → workbench/workbench-snapshot.test.ts} +0 -0
  309. /package/src/{workbench-snapshot.ts → workbench/workbench-snapshot.ts} +0 -0
@@ -9,7 +9,7 @@ import { describe, expect, mock, test } from "bun:test";
9
9
  import { SCHEMA_VERSION, type Annotation, type Thread } from "@cueloop/schema";
10
10
  import type { ThreadClient } from "@cueloop/daemon/client";
11
11
  import { createReviewController, type ShareTransport } from "./thread-controller";
12
- import { mergeFromShare } from "./share";
12
+ import { mergeFromShare } from "../integrations/share";
13
13
 
14
14
  const AT = "2026-01-01T00:00:00.000Z";
15
15
 
@@ -97,6 +97,36 @@ function fakeClient(session: Thread): ThreadClient {
97
97
  const tick = () => new Promise((resolve) => setTimeout(resolve, 0));
98
98
 
99
99
  describe("live working-tree diff for a non-diff thread", () => {
100
+ test("a preconnected workbench accepts a comment before its inbox refresh", async () => {
101
+ const session = planSession();
102
+ const sent: Annotation[] = [];
103
+ const client = {
104
+ ...fakeClient(session),
105
+ sessionComment: async (_id: string, annotation: Annotation) => {
106
+ sent.push(annotation);
107
+
108
+ return { ...session, annotations: sent };
109
+ },
110
+ } satisfies ThreadClient;
111
+ const controller = createReviewController({
112
+ sessionId: session.id,
113
+ initialSession: session,
114
+ initialDiff: { patch: PATCH, files: FILES },
115
+ initialClient: client,
116
+ shareTransport,
117
+ });
118
+
119
+ controller.addComment(
120
+ { quote: "const a = 2;", prefix: "", suffix: "" },
121
+ { kind: "file", path: "src/x.ts", rev: "worktree" },
122
+ "ready frame comment",
123
+ );
124
+
125
+ expect(sent).toHaveLength(1);
126
+ expect(sent[0]?.body).toBe("ready frame comment");
127
+ controller.close();
128
+ });
129
+
100
130
  test("repoChanges carries file contents and rows derive from the patch", async () => {
101
131
  const session = planSession();
102
132
  const controller = createReviewController({
@@ -8,7 +8,7 @@ import {
8
8
  SHARE_RECONNECT_MIN_MS,
9
9
  type ShareTransport,
10
10
  } from "./thread-controller";
11
- import { mergeFromShare, type ShareWatchHandlers } from "./share";
11
+ import { mergeFromShare, type ShareWatchHandlers } from "../integrations/share";
12
12
 
13
13
  const publishShare = mock(async () => ({ line: "ssh p_abc123xy@cueloop.dev", copied: true }));
14
14
  let remote: Thread;
@@ -16,7 +16,7 @@ import {
16
16
  } from "@cueloop/schema";
17
17
  import type { ThreadClient } from "@cueloop/daemon/client";
18
18
  import { createReviewController, type ShareTransport } from "./thread-controller";
19
- import { mergeFromShare } from "./share";
19
+ import { mergeFromShare } from "../integrations/share";
20
20
 
21
21
  const AT = "2026-01-01T00:00:00.000Z";
22
22
 
@@ -44,7 +44,7 @@ import {
44
44
  type SessionHistory,
45
45
  type MessageOutcome,
46
46
  } from "@cueloop/schema";
47
- import { loadBundledExporters, type BundledExporter } from "./integrations";
47
+ import { loadBundledExporters, type BundledExporter } from "../integrations/integrations";
48
48
  import {
49
49
  collaboratorAnnotations,
50
50
  mergeFromShare,
@@ -55,7 +55,7 @@ import {
55
55
  watchShare,
56
56
  shareIdFromLine,
57
57
  formatShareLine,
58
- } from "./share";
58
+ } from "../integrations/share";
59
59
  import {
60
60
  baseRangeForRendered,
61
61
  blockRuns,
@@ -64,7 +64,7 @@ import {
64
64
  renderedSpanToWork,
65
65
  renderedText,
66
66
  type DisplayBlock,
67
- } from "./view-plan";
67
+ } from "../markdown/view-plan";
68
68
  import { entryTarget, treeRows, type TreeRow } from "./tree-view";
69
69
  import {
70
70
  diffRowBlocks,
@@ -73,10 +73,10 @@ import {
73
73
  fileRowRange,
74
74
  readsFrozenDiff,
75
75
  type DiffRow,
76
- } from "./view-diff";
77
- import { applyFold } from "./diff-fold";
78
- import { snapshotWorkbench } from "./workbench-snapshot";
79
- import { copyToClipboard } from "./clipboard";
76
+ } from "../diff/view-diff";
77
+ import { applyFold } from "../diff/diff-fold";
78
+ import { snapshotWorkbench } from "../workbench/workbench-snapshot";
79
+ import { copyToClipboard } from "../integrations/clipboard";
80
80
  import {
81
81
  changeRejectionForRow,
82
82
  hunkRejectionForRow,
@@ -85,13 +85,18 @@ import {
85
85
  rejectsWholeHunk,
86
86
  sameRejection,
87
87
  type HunkRejection,
88
- } from "./diff-hunk-curate";
88
+ } from "../diff/diff-hunk-curate";
89
89
  import type { FileDiffMetadata } from "@pierre/diffs";
90
- import { firstUnviewedIndex, walkFiles, type WalkFile } from "./walk";
91
- import { editInEditor } from "./editor";
92
- import { focusHerdrPane } from "./herdr";
93
- import { persistAutoClose, type AutoClose, type CueloopConfig, type QuickAction } from "./config";
94
- import { slashItemsFrom } from "./slash-palette";
90
+ import { firstUnviewedIndex, walkFiles, type WalkFile } from "../diff/walk";
91
+ import { editInEditor } from "../integrations/editor";
92
+ import { focusHerdrPane } from "../integrations/herdr";
93
+ import {
94
+ persistAutoClose,
95
+ type AutoClose,
96
+ type CueloopConfig,
97
+ type QuickAction,
98
+ } from "../settings/config";
99
+ import { slashItemsFrom } from "../keyboard/slash-palette";
95
100
 
96
101
  /**
97
102
  * Post-submit lifecycle (a review pane should hand you back to the agent,
@@ -251,6 +256,11 @@ export interface NewShareLink {
251
256
  export interface ReviewControllerOptions {
252
257
  home?: string;
253
258
  sessionId?: string;
259
+ /** Captured before the UI mounts, so the first review frame has its thread and live diff. */
260
+ initialSession?: Thread;
261
+ initialDiff?: { patch: string; files: DiffFileContents[] };
262
+ /** The owner connection that supplied the first review snapshot. */
263
+ initialClient?: ThreadClient;
254
264
  /** The directory the client launched in; its git repo backs the no-session welcome tree. Defaults to process.cwd(). */
255
265
  cwd?: string;
256
266
  /** Observer mode: stored for the key reducer's read-only gate. */
@@ -491,6 +501,7 @@ class Controller implements ReviewController {
491
501
  private derivedFor: Thread | null = null;
492
502
  /** The launch/workspace repo's live working-tree diff, feeding the Changes view for non-diff threads. */
493
503
  private liveDiff: LiveWorkingDiff | null = null;
504
+ private initialDiffAvailable = false;
494
505
  private derivedForLiveDiff: LiveWorkingDiff | null = null;
495
506
  private derived: DerivedSessionProjection = {
496
507
  display: [],
@@ -514,6 +525,12 @@ class Controller implements ReviewController {
514
525
  }
515
526
 
516
527
  constructor(private readonly options: ReviewControllerOptions) {
528
+ this.client = options.initialClient ?? null;
529
+ if (options.initialSession?.id === options.sessionId && options.initialDiff) {
530
+ this.liveDiff = options.initialDiff;
531
+ this.initialDiffAvailable = true;
532
+ this.store.setState({ session: options.initialSession });
533
+ }
517
534
  this.readOnly = options.readOnly ?? false;
518
535
  this.clock = options.clock ?? new SystemClock();
519
536
  this.shareTransport = options.shareTransport ?? DEFAULT_SHARE_TRANSPORT;
@@ -541,7 +558,9 @@ class Controller implements ReviewController {
541
558
  try {
542
559
  const openClient =
543
560
  this.options.openClient ??
544
- (() => DaemonClient.connect({ home: this.options.home, autostart: true }));
561
+ (() =>
562
+ this.options.initialClient ??
563
+ DaemonClient.connect({ home: this.options.home, autostart: true }));
545
564
  const client = await openClient();
546
565
 
547
566
  if (this.closed) return void client.close();
@@ -839,6 +858,9 @@ class Controller implements ReviewController {
839
858
  // a plain diff review pins its captured snapshot; a workbench thread and every other thread reflect the live working tree
840
859
  const session = this.snapshot.session;
841
860
  if (readsFrozenDiff(session)) return session!.artifact.files ?? [];
861
+ const initialFiles = this.consumeInitialDiffFiles(session);
862
+
863
+ if (initialFiles !== null) return initialFiles;
842
864
  // eager: capture the live working-tree diff so the Changes navigator and its file tabs render a real diff
843
865
  if (this.client?.repoDiff !== undefined) {
844
866
  const diff = await this.client.repoDiff(
@@ -879,6 +901,13 @@ class Controller implements ReviewController {
879
901
  }));
880
902
  }
881
903
 
904
+ private consumeInitialDiffFiles(session: Thread | null): readonly DiffFileContents[] | null {
905
+ if (!this.initialDiffAvailable) return null;
906
+ this.initialDiffAvailable = false;
907
+
908
+ return session?.id === this.options.sessionId ? (this.liveDiff?.files ?? []) : null;
909
+ }
910
+
882
911
  async refreshDiff(): Promise<void> {
883
912
  const session = this.snapshot.session;
884
913
 
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { CodeBlock } from "./CodeBlock";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/CodeBlock" };
@@ -7,8 +7,8 @@
7
7
 
8
8
  import React from "react";
9
9
  import { createTextAttributes } from "@opentui/core";
10
- import type { Theme } from "../theme";
11
- import { useComponentTheme } from "./theme-context";
10
+ import type { Theme } from "../../appearance/theme";
11
+ import { useComponentTheme } from "../../appearance/components/theme-context";
12
12
  import { filetypeFor, syntaxStyleFor } from "./syntax-highlight";
13
13
 
14
14
  /** A cut code block reads as removed: struck through and grayed, never red. */
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import { DEFAULT_QUICK_ACTIONS } from "../config";
4
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import { DEFAULT_QUICK_ACTIONS } from "../../settings/config";
4
+ import type { Story, StoryMeta } from "../../stories/story";
5
5
  import { ConfirmCard } from "./ConfirmCard";
6
6
 
7
7
  export const meta: StoryMeta = { title: "Cards/ConfirmCard" };
@@ -8,14 +8,19 @@
8
8
  import React, { useContext } from "react";
9
9
  import { useTerminalDimensions } from "@opentui/react";
10
10
  import { MESSAGE_OUTCOMES, type MessageOutcome } from "@cueloop/schema";
11
- import type { Theme } from "../theme";
12
- import type { QuickAction } from "../config";
13
- import { SlashSkillsContext } from "../skills";
14
- import { activeSlashToken, mergeSlashItems, slashFilter, slashItemsFrom } from "../slash-palette";
15
- import { useComponentTheme } from "./theme-context";
11
+ import type { Theme } from "../../appearance/theme";
12
+ import type { QuickAction } from "../../settings/config";
13
+ import { SlashSkillsContext } from "../../keyboard/skills";
14
+ import {
15
+ activeSlashToken,
16
+ mergeSlashItems,
17
+ slashFilter,
18
+ slashItemsFrom,
19
+ } from "../../keyboard/slash-palette";
20
+ import { useComponentTheme } from "../../appearance/components/theme-context";
16
21
  import { Card } from "./primitives/Card";
17
- import { composeRowCount } from "./AnnotationCards";
18
- import { SlashComposer } from "./SlashComposer";
22
+ import { composeRowCount } from "../../annotations/components/AnnotationCards";
23
+ import { SlashComposer } from "../../keyboard/components/SlashComposer";
19
24
  import { DialogActions } from "./primitives/DialogActions";
20
25
 
21
26
  const SUBMIT_CARD_MAX_WIDTH = 52;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { ConfirmDialog } from "./ConfirmDialog";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Overlays/ConfirmDialog" };
@@ -7,8 +7,8 @@
7
7
 
8
8
  import React from "react";
9
9
  import { useTerminalDimensions } from "@opentui/react";
10
- import type { Theme } from "../theme";
11
- import { useComponentTheme } from "./theme-context";
10
+ import type { Theme } from "../../appearance/theme";
11
+ import { useComponentTheme } from "../../appearance/components/theme-context";
12
12
  import { Dialog } from "./primitives/Dialog";
13
13
  import { DialogActions } from "./primitives/DialogActions";
14
14
 
@@ -1,8 +1,8 @@
1
1
  import React, { useRef } from "react";
2
2
  import type { ScrollBoxRenderable } from "@opentui/core";
3
- import { DARK } from "../theme";
3
+ import { DARK } from "../../appearance/theme";
4
4
  import { OverlayScrollbar } from "./OverlayScrollbar";
5
- import type { Story, StoryMeta } from "./story";
5
+ import type { Story, StoryMeta } from "../../stories/story";
6
6
 
7
7
  export const meta: StoryMeta = { title: "Chrome/OverlayScrollbar" };
8
8
 
@@ -8,11 +8,11 @@ import { describe, expect, test } from "bun:test";
8
8
  import { testRender } from "@opentui/react/test-utils";
9
9
  import { ScrollBoxRenderable, type Renderable } from "@opentui/core";
10
10
  import React from "react";
11
- import { DiffContentView } from "./DiffContentView";
12
- import { diffRows, marksByRows } from "../view-diff";
13
- import { allowEventLoopUpdates } from "../test-support";
14
- import { fixtureDiffSession } from "./story-fixtures";
15
- import { DARK } from "../theme";
11
+ import { DiffContentView } from "../../diff/components/DiffContentView";
12
+ import { diffRows, marksByRows } from "../../diff/view-diff";
13
+ import { allowEventLoopUpdates } from "../../testing/test-support";
14
+ import { fixtureDiffSession } from "../../stories/story-fixtures";
15
+ import { DARK } from "../../appearance/theme";
16
16
  import { thumbGeometry } from "./OverlayScrollbar";
17
17
 
18
18
  const noop = (): void => {};
@@ -7,9 +7,9 @@
7
7
 
8
8
  import React, { useEffect, useRef, useState, type RefObject } from "react";
9
9
  import type { BoxRenderable, ScrollBoxRenderable } from "@opentui/core";
10
- import type { Theme } from "../theme";
10
+ import type { Theme } from "../../appearance/theme";
11
11
  import { useFrameMeasure } from "../use-frame-measure";
12
- import { useComponentTheme } from "./theme-context";
12
+ import { useComponentTheme } from "../../appearance/components/theme-context";
13
13
 
14
14
  const HIDE_DELAY_MS = 1500;
15
15
 
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { PromptDialog } from "./PromptDialog";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Overlays/PromptDialog" };
@@ -5,8 +5,8 @@ import { test, expect } from "bun:test";
5
5
  import React from "react";
6
6
  import { testRender } from "@opentui/react/test-utils";
7
7
  import { PromptDialog } from "./PromptDialog";
8
- import { locateText, settle, typeText } from "../test-support";
9
- import { DARK } from "../theme";
8
+ import { locateText, settle, typeText } from "../../testing/test-support";
9
+ import { DARK } from "../../appearance/theme";
10
10
 
11
11
  test("the input is focused on open, so typing lands in the dialog", async () => {
12
12
  const inputs: string[] = [];
@@ -8,8 +8,8 @@
8
8
  import React, { useEffect, useRef } from "react";
9
9
  import { useTerminalDimensions } from "@opentui/react";
10
10
  import type { KeyBinding, TextareaRenderable } from "@opentui/core";
11
- import type { Theme } from "../theme";
12
- import { useComponentTheme } from "./theme-context";
11
+ import type { Theme } from "../../appearance/theme";
12
+ import { useComponentTheme } from "../../appearance/components/theme-context";
13
13
  import { Dialog } from "./primitives/Dialog";
14
14
  import { DialogActions } from "./primitives/DialogActions";
15
15
 
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect } from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { RootOverlayProvider, useRootOverlay } from "./RootOverlay";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Layout/RootOverlay" };
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
2
+ import { DARK } from "../../appearance/theme";
3
3
  import { ScrollArea } from "./ScrollArea";
4
- import type { Story, StoryMeta } from "./story";
4
+ import type { Story, StoryMeta } from "../../stories/story";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Chrome/ScrollArea" };
7
7
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  import React, { useLayoutEffect, useMemo, useRef, type ReactNode, type RefObject } from "react";
8
8
  import { MacOSScrollAccel, type ScrollBoxRenderable } from "@opentui/core";
9
- import type { Theme } from "../theme";
9
+ import type { Theme } from "../../appearance/theme";
10
10
  import { OverlayScrollbar } from "./OverlayScrollbar";
11
11
 
12
12
  export interface ScrollAreaProps {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { Toast } from "./Toast";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Overlays/Toast" };
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { useTerminalDimensions } from "@opentui/react";
3
- import type { Theme } from "../theme";
4
- import { useComponentTheme } from "./theme-context";
3
+ import type { Theme } from "../../appearance/theme";
4
+ import { useComponentTheme } from "../../appearance/components/theme-context";
5
5
  import { Dialog } from "./primitives/Dialog";
6
6
 
7
7
  export interface ToastProps {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { TooltipProvider } from "./Tooltip";
5
5
  import { IconButton } from "./primitives/IconButton";
6
6
  import { NERD } from "./primitives/icons";
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React, { createContext, useContext, useMemo, useState } from "react";
6
6
  import { useTerminalDimensions } from "@opentui/react";
7
- import { DARK, type Theme } from "../theme";
7
+ import { DARK, type Theme } from "../../appearance/theme";
8
8
 
9
9
  interface TooltipTarget {
10
10
  label: string;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../theme";
3
- import type { Story, StoryMeta } from "./story";
2
+ import { DARK } from "../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../stories/story";
4
4
  import { MenuControlProvider, useMenuControl } from "./menu-control";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Layout/MenuControl" };
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { Button } from "./Button";
5
5
  import { Toolbar } from "./Toolbar";
6
6
 
@@ -6,8 +6,8 @@
6
6
 
7
7
  import React from "react";
8
8
  import type { MouseEvent } from "@opentui/core";
9
- import type { Theme } from "../../theme";
10
- import { useComponentTheme } from "../theme-context";
9
+ import type { Theme } from "../../../appearance/theme";
10
+ import { useComponentTheme } from "../../../appearance/components/theme-context";
11
11
 
12
12
  export interface ButtonProps {
13
13
  /** Unified activation: mouse release today, keyboard activation tomorrow. */
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { Card } from "./Card";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/Card" };
@@ -6,8 +6,8 @@
6
6
  */
7
7
 
8
8
  import React from "react";
9
- import type { Theme } from "../../theme";
10
- import { useComponentTheme } from "../theme-context";
9
+ import type { Theme } from "../../../appearance/theme";
10
+ import { useComponentTheme } from "../../../appearance/components/theme-context";
11
11
  import { FRAME_BORDER_STYLE, frameTitle } from "./frame";
12
12
 
13
13
  export interface CardProps {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { Dialog } from "./Dialog";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/Dialog" };
@@ -4,8 +4,8 @@ import { test, expect } from "bun:test";
4
4
  import React from "react";
5
5
  import { testRender } from "@opentui/react/test-utils";
6
6
  import { Dialog } from "./Dialog";
7
- import { settle } from "../../test-support";
8
- import { DARK } from "../../theme";
7
+ import { settle } from "../../../testing/test-support";
8
+ import { DARK } from "../../../appearance/theme";
9
9
 
10
10
  test("clicking the backdrop dismisses; clicking inside the panel does not", async () => {
11
11
  let dismissed = 0;
@@ -6,8 +6,8 @@
6
6
  */
7
7
 
8
8
  import React from "react";
9
- import type { Theme } from "../../theme";
10
- import { useComponentTheme } from "../theme-context";
9
+ import type { Theme } from "../../../appearance/theme";
10
+ import { useComponentTheme } from "../../../appearance/components/theme-context";
11
11
  import { FRAME_BORDER_STYLE, frameTitle } from "./frame";
12
12
 
13
13
  export interface DialogProps {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { DialogActions } from "./DialogActions";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/DialogActions" };
@@ -1,7 +1,7 @@
1
1
  /** The one action row every overlay uses: a solid confirm word-button and a plain cancel, lowercased. */
2
2
 
3
3
  import React from "react";
4
- import type { Theme } from "../../theme";
4
+ import type { Theme } from "../../../appearance/theme";
5
5
  import { Toolbar } from "./Toolbar";
6
6
  import { Button } from "./Button";
7
7
 
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { IconButton } from "./IconButton";
5
5
  import { NERD } from "./icons";
6
6
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React from "react";
6
6
  import type { MouseEvent as TerminalMouseEvent } from "@opentui/core";
7
- import { DARK, type Theme } from "../../theme";
7
+ import { DARK, type Theme } from "../../../appearance/theme";
8
8
  import { useTooltip } from "../Tooltip";
9
9
 
10
10
  export interface IconButtonProps {
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { StatusBar } from "./StatusBar";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/StatusBar" };
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  import React from "react";
7
- import type { Theme } from "../../theme";
8
- import { useComponentTheme } from "../theme-context";
7
+ import type { Theme } from "../../../appearance/theme";
8
+ import { useComponentTheme } from "../../../appearance/components/theme-context";
9
9
 
10
10
  export interface StatusBarProps {
11
11
  theme?: Theme;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { Switch } from "./Switch";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/Switch" };
@@ -6,8 +6,8 @@
6
6
 
7
7
  import React from "react";
8
8
  import type { MouseEvent } from "@opentui/core";
9
- import type { Theme } from "../../theme";
10
- import { useComponentTheme } from "../theme-context";
9
+ import type { Theme } from "../../../appearance/theme";
10
+ import { useComponentTheme } from "../../../appearance/components/theme-context";
11
11
 
12
12
  export interface SwitchProps {
13
13
  on: boolean;
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { DARK } from "../../theme";
3
- import type { Story, StoryMeta } from "../story";
2
+ import { DARK } from "../../../appearance/theme";
3
+ import type { Story, StoryMeta } from "../../../stories/story";
4
4
  import { Tab, TabList, Tabs } from "./Tabs";
5
5
 
6
6
  export const meta: StoryMeta = { title: "Primitives/Tabs" };