@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.
- package/package.json +12 -12
- package/src/{annotation-palette.ts → annotations/annotation-palette.ts} +1 -1
- package/src/{components → annotations/components}/AnnotationCards.stories.tsx +4 -4
- package/src/{components → annotations/components}/AnnotationCards.tsx +7 -7
- package/src/{components → annotations/components}/DiscussionMarkerRail.stories.tsx +3 -3
- package/src/{components → annotations/components}/DiscussionMarkerRail.tsx +5 -5
- package/src/{discussions.ts → annotations/discussions.ts} +1 -1
- package/src/{use-annotation-surface.tsx → annotations/use-annotation-surface.tsx} +7 -7
- package/src/{App.appearance.test.tsx → app/App.appearance.test.tsx} +1 -1
- package/src/{App.autoclose.test.tsx → app/App.autoclose.test.tsx} +1 -1
- package/src/{App.deleted-scroll.test.tsx → app/App.deleted-scroll.test.tsx} +3 -3
- package/src/{App.diff.test.tsx → app/App.diff.test.tsx} +2 -2
- package/src/{App.export.test.tsx → app/App.export.test.tsx} +1 -1
- package/src/{App.identity.test.tsx → app/App.identity.test.tsx} +6 -1
- package/src/{App.plan-render.test.tsx → app/App.plan-render.test.tsx} +2 -2
- package/src/{App.plan-review.test.tsx → app/App.plan-review.test.tsx} +3 -3
- package/src/{App.prototype-markdown.test.tsx → app/App.prototype-markdown.test.tsx} +2 -2
- package/src/{App.prototype.test.tsx → app/App.prototype.test.tsx} +2 -2
- package/src/{App.readonly.test.tsx → app/App.readonly.test.tsx} +1 -1
- package/src/{App.regression.test.tsx → app/App.regression.test.tsx} +1 -1
- package/src/{App.rendering.test.tsx → app/App.rendering.test.tsx} +1 -1
- package/src/{App.share-dialog.test.tsx → app/App.share-dialog.test.tsx} +2 -2
- package/src/{App.submit-confirm.test.tsx → app/App.submit-confirm.test.tsx} +1 -1
- package/src/{App.test.tsx → app/App.test.tsx} +2 -2
- package/src/{App.toast.test.tsx → app/App.toast.test.tsx} +2 -2
- package/src/{App.tsx → app/App.tsx} +68 -37
- package/src/{App.visual.test.tsx → app/App.visual.test.tsx} +4 -4
- package/src/{App.walk.test.tsx → app/App.walk.test.tsx} +2 -2
- package/src/{App.workbench.test.tsx → app/App.workbench.test.tsx} +85 -3
- package/src/{app-key-state.ts → app/app-key-state.ts} +4 -4
- package/src/{app-screens.tsx → app/app-screens.tsx} +31 -31
- package/src/{app-view-model.ts → app/app-view-model.ts} +6 -6
- package/src/{components → app/components}/AppHeader.stories.tsx +4 -4
- package/src/{components → app/components}/AppHeader.tsx +3 -3
- package/src/{components → app/components}/AppShell.brand.test.tsx +2 -2
- package/src/{components → app/components}/AppShell.extensions.test.tsx +2 -2
- package/src/{components → app/components}/AppShell.stories.tsx +2 -2
- package/src/{components → app/components}/AppShell.tsx +12 -9
- package/src/{components → app/components}/AppShell.zoom.test.tsx +4 -4
- package/src/{components → app/components}/Breadcrumb.stories.tsx +2 -2
- package/src/{components → app/components}/Breadcrumb.tsx +2 -2
- package/src/{components → app/components}/MenuBar.stories.tsx +2 -2
- package/src/{components → app/components}/MenuBar.tsx +3 -3
- package/src/{components → app/components}/PaneGrid.stories.tsx +2 -2
- package/src/{components → app/components}/PaneGrid.tsx +1 -1
- package/src/{components → app/components}/PanelColumn.stories.tsx +2 -2
- package/src/{components → app/components}/PanelColumn.tsx +2 -2
- package/src/{components → app/components}/ShellHeader.stories.tsx +3 -3
- package/src/{components → app/components}/ShellHeader.tsx +2 -2
- package/src/{components → app/components}/WorkspacePanels.stories.tsx +3 -3
- package/src/{components → app/components}/WorkspacePanels.tsx +9 -5
- package/src/{components → app/components}/pages/Workspace.stories.tsx +4 -4
- package/src/{intent-dispatch.test.ts → app/intent-dispatch.test.ts} +7 -3
- package/src/{intent-dispatch.ts → app/intent-dispatch.ts} +12 -6
- package/src/{ready-signal.test.ts → app/ready-signal.test.ts} +1 -1
- package/src/{run.ts → app/run.ts} +12 -6
- package/src/{serve.ts → app/serve.ts} +1 -1
- package/src/{version.ts → app/version.ts} +1 -1
- package/src/{components → appearance/components}/theme-context.stories.tsx +2 -2
- package/src/{components → diff/components}/AnnotatableFileView.stories.tsx +2 -2
- package/src/{components → diff/components}/AnnotatableFileView.test.tsx +8 -2
- package/src/{components → diff/components}/AnnotatableFileView.tsx +3 -3
- package/src/{components → diff/components}/BareWorkbenchFileView.stories.tsx +2 -2
- package/src/{components → diff/components}/BareWorkbenchFileView.tsx +2 -2
- package/src/{components → diff/components}/DiffContentView.scroll.test.tsx +4 -4
- package/src/{components → diff/components}/DiffContentView.split.test.tsx +4 -4
- package/src/{components → diff/components}/DiffContentView.stories.tsx +5 -5
- package/src/{components → diff/components}/DiffContentView.syntax.test.tsx +3 -3
- package/src/{components → diff/components}/DiffContentView.tsx +13 -13
- package/src/{components → diff/components}/WalkWizard.stories.tsx +2 -2
- package/src/{components → diff/components}/WalkWizard.tsx +4 -4
- package/src/{components → diff/components}/diff-content-view-layout.test.ts +2 -2
- package/src/{components → diff/components}/diff-content-view-layout.ts +2 -2
- package/src/{diff-syntax.ts → diff/diff-syntax.ts} +1 -1
- package/src/{view-diff.ts → diff/view-diff.ts} +4 -4
- package/src/index.ts +8 -8
- package/src/{components → integrations/components}/ExtensionZone.stories.tsx +1 -1
- package/src/{components → integrations/components}/ExtensionZone.tsx +3 -3
- package/src/{components → integrations/components}/ShareDialog.stories.tsx +2 -2
- package/src/{components → integrations/components}/ShareDialog.tsx +11 -11
- package/src/{integrations.test.ts → integrations/integrations.test.ts} +1 -1
- package/src/{integrations.ts → integrations/integrations.ts} +1 -1
- package/src/{components → keyboard/components}/CompletionOverlay.stories.tsx +2 -2
- package/src/{components → keyboard/components}/CompletionOverlay.tsx +4 -4
- package/src/{components → keyboard/components}/HandleChipsInput.stories.tsx +2 -2
- package/src/{components → keyboard/components}/HandleChipsInput.test.tsx +2 -2
- package/src/{components → keyboard/components}/HandleChipsInput.tsx +3 -3
- package/src/{components → keyboard/components}/KeybindsDialog.stories.tsx +2 -2
- package/src/{components → keyboard/components}/KeybindsDialog.tsx +3 -3
- package/src/{components → keyboard/components}/NavModeHint.stories.tsx +2 -2
- package/src/{components → keyboard/components}/NavModeHint.tsx +1 -1
- package/src/{components → keyboard/components}/SlashComposer.stories.tsx +3 -3
- package/src/{components → keyboard/components}/SlashComposer.tsx +3 -3
- package/src/{key-bindings.test.ts → keyboard/key-bindings.test.ts} +1 -1
- package/src/{keymap.test.ts → keyboard/keymap.test.ts} +1 -1
- package/src/{keymap.ts → keyboard/keymap.ts} +1 -1
- package/src/{slash-palette.ts → keyboard/slash-palette.ts} +1 -1
- package/src/{components → markdown/components}/MarkdownGridBlock.stories.tsx +2 -2
- package/src/{components → markdown/components}/MarkdownGridBlock.tsx +2 -2
- package/src/{components → markdown/components}/MarkdownThreadEditor.stories.tsx +2 -2
- package/src/{components → markdown/components}/MarkdownThreadEditor.test.tsx +2 -2
- package/src/{components → markdown/components}/MarkdownThreadEditor.tsx +1 -1
- package/src/{components → markdown/components}/ThreadView.selection.test.tsx +4 -4
- package/src/{components → markdown/components}/ThreadView.slash.test.tsx +6 -6
- package/src/{components → markdown/components}/ThreadView.stories.tsx +4 -4
- package/src/{components → markdown/components}/ThreadView.tsx +13 -13
- package/src/{mark-runs.ts → markdown/mark-runs.ts} +1 -1
- package/src/{markdown-editor-syntax-style.ts → markdown/markdown-editor-syntax-style.ts} +1 -1
- package/src/{thread-code-syntax.ts → markdown/thread-code-syntax.ts} +3 -3
- package/src/{use-thread-body-editing.tsx → markdown/use-thread-body-editing.tsx} +2 -2
- package/src/{view-plan.ts → markdown/view-plan.ts} +3 -3
- package/src/{components → prototype/components}/PrototypeContentView.stories.tsx +2 -2
- package/src/{components → prototype/components}/PrototypeContentView.tsx +5 -5
- package/src/{components → settings/components}/SettingsDialog.stories.tsx +3 -3
- package/src/{components → settings/components}/SettingsDialog.tsx +7 -7
- package/src/{components → settings/components}/SettingsRows.stories.tsx +2 -2
- package/src/{components → settings/components}/SettingsRows.tsx +2 -2
- package/src/{components → settings/components}/quick-actions-editor.stories.tsx +2 -2
- package/src/{components → settings/components}/quick-actions-editor.test.tsx +1 -1
- package/src/{components → settings/components}/quick-actions-editor.tsx +3 -3
- package/src/{config.test.ts → settings/config.test.ts} +2 -2
- package/src/{config.ts → settings/config.ts} +8 -3
- package/src/{use-settings-dialog.tsx → settings/use-settings-dialog.tsx} +2 -2
- package/src/{components → stories}/stories-app.tsx +8 -8
- package/src/{components → stories}/stories.test.tsx +2 -2
- package/src/{components → stories}/story-fixtures.ts +2 -2
- package/src/{components → stories}/story-tree.test.ts +1 -1
- package/src/{components → stories}/story.ts +4 -4
- package/src/{components → terminal/components}/AnsiScreen.stories.tsx +1 -1
- package/src/{components → terminal/components}/AnsiScreen.tsx +2 -2
- package/src/{components → terminal/components}/terminal-pane.test.tsx +1 -1
- package/src/{ghostty-terminal.ts → terminal/ghostty-terminal.ts} +1 -1
- package/src/{pty.ts → terminal/pty.ts} +1 -1
- package/src/{test-support.test.ts → testing/test-support.test.ts} +1 -1
- package/src/{test-support.ts → testing/test-support.ts} +1 -1
- package/src/{components → thread/components}/ThreadFooter.stories.tsx +2 -2
- package/src/{components → thread/components}/ThreadFooter.test.tsx +2 -2
- package/src/{components → thread/components}/ThreadFooter.tsx +4 -4
- package/src/{components → thread/components}/ThreadTree.stories.tsx +3 -3
- package/src/{components → thread/components}/ThreadTree.tsx +8 -8
- package/src/{thread-controller.live-diff.test.ts → thread/thread-controller.live-diff.test.ts} +31 -1
- package/src/{thread-controller.share.test.ts → thread/thread-controller.share.test.ts} +1 -1
- package/src/{thread-controller.tree.test.ts → thread/thread-controller.tree.test.ts} +1 -1
- package/src/{thread-controller.ts → thread/thread-controller.ts} +43 -14
- package/src/{components → ui/components}/CodeBlock.stories.tsx +2 -2
- package/src/{components → ui/components}/CodeBlock.tsx +2 -2
- package/src/{components → ui/components}/ConfirmCard.stories.tsx +3 -3
- package/src/{components → ui/components}/ConfirmCard.tsx +12 -7
- package/src/{components → ui/components}/ConfirmDialog.stories.tsx +2 -2
- package/src/{components → ui/components}/ConfirmDialog.tsx +2 -2
- package/src/{components → ui/components}/OverlayScrollbar.stories.tsx +2 -2
- package/src/{components → ui/components}/OverlayScrollbar.test.tsx +5 -5
- package/src/{components → ui/components}/OverlayScrollbar.tsx +2 -2
- package/src/{components → ui/components}/PromptDialog.stories.tsx +2 -2
- package/src/{components → ui/components}/PromptDialog.test.tsx +2 -2
- package/src/{components → ui/components}/PromptDialog.tsx +2 -2
- package/src/{components → ui/components}/RootOverlay.stories.tsx +2 -2
- package/src/{components → ui/components}/ScrollArea.stories.tsx +2 -2
- package/src/{components → ui/components}/ScrollArea.tsx +1 -1
- package/src/{components → ui/components}/Toast.stories.tsx +2 -2
- package/src/{components → ui/components}/Toast.tsx +2 -2
- package/src/{components → ui/components}/Tooltip.stories.tsx +2 -2
- package/src/{components → ui/components}/Tooltip.tsx +1 -1
- package/src/{components → ui/components}/menu-control.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Button.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Button.tsx +2 -2
- package/src/{components → ui/components}/primitives/Card.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Card.tsx +2 -2
- package/src/{components → ui/components}/primitives/Dialog.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Dialog.test.tsx +2 -2
- package/src/{components → ui/components}/primitives/Dialog.tsx +2 -2
- package/src/{components → ui/components}/primitives/DialogActions.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/DialogActions.tsx +1 -1
- package/src/{components → ui/components}/primitives/IconButton.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/IconButton.tsx +1 -1
- package/src/{components → ui/components}/primitives/StatusBar.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/StatusBar.tsx +2 -2
- package/src/{components → ui/components}/primitives/Switch.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Switch.tsx +2 -2
- package/src/{components → ui/components}/primitives/Tabs.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Tabs.tsx +2 -2
- package/src/{components → ui/components}/primitives/Toolbar.stories.tsx +1 -1
- package/src/{components → ui/components}/primitives/Tree.stories.tsx +2 -2
- package/src/{components → ui/components}/primitives/Tree.tsx +2 -2
- package/src/{components → ui/components}/syntax-highlight.ts +1 -1
- package/src/{components → workbench/components}/ChangesColumn.stories.tsx +2 -2
- package/src/{components → workbench/components}/ChangesColumn.tsx +7 -7
- package/src/{components → workbench/components}/ChangesFileTree.test.tsx +2 -2
- package/src/{components → workbench/components}/EditorGrid.split.test.tsx +1 -1
- package/src/{components → workbench/components}/EditorGrid.stories.tsx +2 -2
- package/src/{components → workbench/components}/EditorGrid.tabs.test.tsx +2 -2
- package/src/{components → workbench/components}/EditorGrid.tsx +8 -8
- package/src/{components → workbench/components}/EditorGrid.zoom.test.tsx +2 -2
- package/src/{components → workbench/components}/FileContentsView.stories.tsx +2 -2
- package/src/{components → workbench/components}/FileContentsView.test.tsx +2 -2
- package/src/{components → workbench/components}/FileContentsView.tsx +4 -4
- package/src/{components → workbench/components}/GridTabContent.actions.test.tsx +6 -6
- package/src/{components → workbench/components}/GridTabContent.stories.tsx +4 -4
- package/src/{components → workbench/components}/GridTabContent.tsx +4 -4
- package/src/{components → workbench/components}/ProjectTreeView.stories.tsx +2 -2
- package/src/{components → workbench/components}/ProjectTreeView.test.tsx +2 -2
- package/src/{components → workbench/components}/ProjectTreeView.tsx +5 -5
- package/src/{components → workbench/components}/TreePane.stories.tsx +3 -3
- package/src/{components → workbench/components}/TreePane.tsx +6 -6
- package/src/{components → workbench/components}/WelcomePlayground.stories.tsx +2 -2
- package/src/{components → workbench/components}/WelcomePlayground.test.tsx +10 -3
- package/src/{components → workbench/components}/WelcomePlayground.tsx +5 -5
- package/src/{components → workbench/components}/file-tree.ts +1 -1
- package/src/{use-changes-workbench.ts → workbench/use-changes-workbench.ts} +2 -2
- package/src/{use-remember-layout.ts → workbench/use-remember-layout.ts} +2 -2
- package/src/{use-repo-changes.ts → workbench/use-repo-changes.ts} +5 -1
- /package/src/{thread-selection.test.ts → annotations/thread-selection.test.ts} +0 -0
- /package/src/{thread-selection.ts → annotations/thread-selection.ts} +0 -0
- /package/src/{App.focus.test.ts → app/App.focus.test.ts} +0 -0
- /package/src/{launch-layout.test.ts → app/launch-layout.test.ts} +0 -0
- /package/src/{launch-layout.ts → app/launch-layout.ts} +0 -0
- /package/src/{ready-signal.ts → app/ready-signal.ts} +0 -0
- /package/src/{serve.test.ts → app/serve.test.ts} +0 -0
- /package/src/{components → appearance/components}/theme-context.tsx +0 -0
- /package/src/{theme-presets.test.ts → appearance/theme-presets.test.ts} +0 -0
- /package/src/{theme-presets.ts → appearance/theme-presets.ts} +0 -0
- /package/src/{theme.ts → appearance/theme.ts} +0 -0
- /package/src/{visual → appearance/visual}/contrast.test.ts +0 -0
- /package/src/{visual → appearance/visual}/contrast.ts +0 -0
- /package/src/{diff-fold.test.ts → diff/diff-fold.test.ts} +0 -0
- /package/src/{diff-fold.ts → diff/diff-fold.ts} +0 -0
- /package/src/{diff-hunk-curate.test.ts → diff/diff-hunk-curate.test.ts} +0 -0
- /package/src/{diff-hunk-curate.ts → diff/diff-hunk-curate.ts} +0 -0
- /package/src/{diff-intraline.test.ts → diff/diff-intraline.test.ts} +0 -0
- /package/src/{diff-intraline.ts → diff/diff-intraline.ts} +0 -0
- /package/src/{diff-syntax.test.ts → diff/diff-syntax.test.ts} +0 -0
- /package/src/{split-diff.test.ts → diff/split-diff.test.ts} +0 -0
- /package/src/{split-diff.ts → diff/split-diff.ts} +0 -0
- /package/src/{view-diff.test.ts → diff/view-diff.test.ts} +0 -0
- /package/src/{walk.test.ts → diff/walk.test.ts} +0 -0
- /package/src/{walk.ts → diff/walk.ts} +0 -0
- /package/src/{attribution.test.ts → integrations/attribution.test.ts} +0 -0
- /package/src/{attribution.ts → integrations/attribution.ts} +0 -0
- /package/src/{client-extension-registry.test.tsx → integrations/client-extension-registry.test.tsx} +0 -0
- /package/src/{client-extension-registry.ts → integrations/client-extension-registry.ts} +0 -0
- /package/src/{clipboard.test.ts → integrations/clipboard.test.ts} +0 -0
- /package/src/{clipboard.ts → integrations/clipboard.ts} +0 -0
- /package/src/{components → integrations/components}/share-dialog-store.ts +0 -0
- /package/src/{editor.test.ts → integrations/editor.test.ts} +0 -0
- /package/src/{editor.ts → integrations/editor.ts} +0 -0
- /package/src/{github-identity.test.ts → integrations/github-identity.test.ts} +0 -0
- /package/src/{github-identity.ts → integrations/github-identity.ts} +0 -0
- /package/src/{herdr.test.ts → integrations/herdr.test.ts} +0 -0
- /package/src/{herdr.ts → integrations/herdr.ts} +0 -0
- /package/src/{pasted-image.test.ts → integrations/pasted-image.test.ts} +0 -0
- /package/src/{pasted-image.ts → integrations/pasted-image.ts} +0 -0
- /package/src/{share.ts → integrations/share.ts} +0 -0
- /package/src/{key-bindings.ts → keyboard/key-bindings.ts} +0 -0
- /package/src/{skills.test.ts → keyboard/skills.test.ts} +0 -0
- /package/src/{skills.ts → keyboard/skills.ts} +0 -0
- /package/src/{slash-palette.test.ts → keyboard/slash-palette.test.ts} +0 -0
- /package/src/{thread-chords.test.ts → keyboard/thread-chords.test.ts} +0 -0
- /package/src/{thread-chords.ts → keyboard/thread-chords.ts} +0 -0
- /package/src/{use-shared-keyboard.ts → keyboard/use-shared-keyboard.ts} +0 -0
- /package/src/{__snapshots__ → markdown/__snapshots__}/view-plan.regression.test.ts.snap +0 -0
- /package/src/{markdown-grid.test.ts → markdown/markdown-grid.test.ts} +0 -0
- /package/src/{markdown-grid.ts → markdown/markdown-grid.ts} +0 -0
- /package/src/{markdown-highlight.test.ts → markdown/markdown-highlight.test.ts} +0 -0
- /package/src/{markdown-highlight.ts → markdown/markdown-highlight.ts} +0 -0
- /package/src/{view-plan.regression.test.ts → markdown/view-plan.regression.test.ts} +0 -0
- /package/src/{view-plan.test.ts → markdown/view-plan.test.ts} +0 -0
- /package/src/{perf → performance}/otlp-trace.test.ts +0 -0
- /package/src/{perf → performance}/otlp-trace.ts +0 -0
- /package/src/{perf → performance}/perf-report.ts +0 -0
- /package/src/{perf → performance}/perf-timings.test.ts +0 -0
- /package/src/{perf → performance}/perf-timings.ts +0 -0
- /package/src/{prototype-browser.test.ts → prototype/prototype-browser.test.ts} +0 -0
- /package/src/{prototype-browser.ts → prototype/prototype-browser.ts} +0 -0
- /package/src/{prototype-pixels.tsx → prototype/prototype-pixels.tsx} +0 -0
- /package/src/{config-identity.test.ts → settings/config-identity.test.ts} +0 -0
- /package/src/{components → stories}/__snapshots__/stories.test.tsx.snap +0 -0
- /package/src/{ansi-screen.test.ts → terminal/ansi-screen.test.ts} +0 -0
- /package/src/{ansi-screen.ts → terminal/ansi-screen.ts} +0 -0
- /package/src/{components → terminal/components}/terminal-pane.ts +0 -0
- /package/src/{ghostty-terminal.test.ts → terminal/ghostty-terminal.test.ts} +0 -0
- /package/src/{kitty-image.test.ts → terminal/kitty-image.test.ts} +0 -0
- /package/src/{kitty-image.ts → terminal/kitty-image.ts} +0 -0
- /package/src/{pty.test.ts → terminal/pty.test.ts} +0 -0
- /package/src/{components → thread/components}/thread-tree.test.ts +0 -0
- /package/src/{components → thread/components}/thread-tree.ts +0 -0
- /package/src/{thread-controller.curate.test.ts → thread/thread-controller.curate.test.ts} +0 -0
- /package/src/{thread-controller.derivation.test.ts → thread/thread-controller.derivation.test.ts} +0 -0
- /package/src/{thread-controller.optimistic.test.ts → thread/thread-controller.optimistic.test.ts} +0 -0
- /package/src/{thread-controller.switch-cache.test.ts → thread/thread-controller.switch-cache.test.ts} +0 -0
- /package/src/{tree-view.test.ts → thread/tree-view.test.ts} +0 -0
- /package/src/{tree-view.ts → thread/tree-view.ts} +0 -0
- /package/src/{components → ui/components}/RootOverlay.tsx +0 -0
- /package/src/{components → ui/components}/menu-control.tsx +0 -0
- /package/src/{components → ui/components}/primitives/Toolbar.tsx +0 -0
- /package/src/{components → ui/components}/primitives/frame.test.ts +0 -0
- /package/src/{components → ui/components}/primitives/frame.ts +0 -0
- /package/src/{components → ui/components}/primitives/icons.ts +0 -0
- /package/src/{components → ui/components}/primitives/tree-model.test.ts +0 -0
- /package/src/{components → ui/components}/primitives/tree-model.ts +0 -0
- /package/src/{components → ui/components}/truncate-text.ts +0 -0
- /package/src/{components → ui/components}/truncate-title.test.ts +0 -0
- /package/src/{components → ui/components}/truncate-title.ts +0 -0
- /package/src/{use-frame-measure.ts → ui/use-frame-measure.ts} +0 -0
- /package/src/{use-terminal-virtualizer.ts → ui/use-terminal-virtualizer.ts} +0 -0
- /package/src/{components → workbench/components}/editor-grid.test.ts +0 -0
- /package/src/{components → workbench/components}/editor-grid.ts +0 -0
- /package/src/{components → workbench/components}/file-tree.test.ts +0 -0
- /package/src/{workbench-snapshot.test.ts → workbench/workbench-snapshot.test.ts} +0 -0
- /package/src/{workbench-snapshot.ts → workbench/workbench-snapshot.ts} +0 -0
package/src/{thread-controller.live-diff.test.ts → thread/thread-controller.live-diff.test.ts}
RENAMED
|
@@ -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 "
|
|
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 "
|
|
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 "
|
|
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 "
|
|
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 "
|
|
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 "
|
|
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 "
|
|
77
|
-
import { applyFold } from "
|
|
78
|
-
import { snapshotWorkbench } from "
|
|
79
|
-
import { copyToClipboard } from "
|
|
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 "
|
|
88
|
+
} from "../diff/diff-hunk-curate";
|
|
89
89
|
import type { FileDiffMetadata } from "@pierre/diffs";
|
|
90
|
-
import { firstUnviewedIndex, walkFiles, type WalkFile } from "
|
|
91
|
-
import { editInEditor } from "
|
|
92
|
-
import { focusHerdrPane } from "
|
|
93
|
-
import {
|
|
94
|
-
|
|
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
|
-
(() =>
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
11
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import { DEFAULT_QUICK_ACTIONS } from "
|
|
4
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
12
|
-
import type { QuickAction } from "
|
|
13
|
-
import { SlashSkillsContext } from "
|
|
14
|
-
import {
|
|
15
|
-
|
|
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 "
|
|
18
|
-
import { SlashComposer } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
11
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
+
import { DARK } from "../../appearance/theme";
|
|
4
4
|
import { OverlayScrollbar } from "./OverlayScrollbar";
|
|
5
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
12
|
-
import { diffRows, marksByRows } from "
|
|
13
|
-
import { allowEventLoopUpdates } from "
|
|
14
|
-
import { fixtureDiffSession } from "
|
|
15
|
-
import { DARK } from "
|
|
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 "
|
|
10
|
+
import type { Theme } from "../../appearance/theme";
|
|
11
11
|
import { useFrameMeasure } from "../use-frame-measure";
|
|
12
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
9
|
-
import { DARK } from "
|
|
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 "
|
|
12
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
2
|
+
import { DARK } from "../../appearance/theme";
|
|
3
3
|
import { ScrollArea } from "./ScrollArea";
|
|
4
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
4
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
10
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
10
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
8
|
-
import { DARK } from "
|
|
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 "
|
|
10
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
8
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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 "
|
|
10
|
-
import { useComponentTheme } from "
|
|
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 "
|
|
3
|
-
import type { Story, StoryMeta } from "
|
|
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" };
|