@tooee/view 0.1.21 → 0.1.22
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/README.md +28 -0
- package/dist/components/subviews/CodeSubview.d.ts.map +1 -1
- package/dist/components/subviews/CodeSubview.js +2 -4
- package/dist/components/subviews/CodeSubview.js.map +1 -1
- package/dist/components/subviews/MarkdownSubview.d.ts.map +1 -1
- package/dist/components/subviews/MarkdownSubview.js +2 -4
- package/dist/components/subviews/MarkdownSubview.js.map +1 -1
- package/dist/components/subviews/TableSubview.d.ts.map +1 -1
- package/dist/components/subviews/TableSubview.js +2 -4
- package/dist/components/subviews/TableSubview.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useViewCommandContext.d.ts +31 -0
- package/dist/hooks/useViewCommandContext.d.ts.map +1 -1
- package/dist/hooks/useViewCommandContext.js +52 -20
- package/dist/hooks/useViewCommandContext.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
- package/src/components/subviews/CodeSubview.tsx +3 -9
- package/src/components/subviews/MarkdownSubview.tsx +2 -9
- package/src/components/subviews/TableSubview.tsx +3 -9
- package/src/hooks/index.ts +10 -1
- package/src/hooks/useViewCommandContext.ts +101 -20
- package/src/index.ts +10 -0
package/README.md
CHANGED
|
@@ -3,3 +3,31 @@
|
|
|
3
3
|
Terminal content viewer for markdown, code, text, and tables.
|
|
4
4
|
|
|
5
5
|
Part of the [Tooee](https://github.com/gingerhendrix/tooee) monorepo. See the main repo for documentation.
|
|
6
|
+
|
|
7
|
+
## Headless view command context
|
|
8
|
+
|
|
9
|
+
Custom surfaces that behave like a view, but do not render the built-in `View`
|
|
10
|
+
component, can publish the standard `ctx.view` command-context slice with
|
|
11
|
+
`useProvideViewCommandContext`:
|
|
12
|
+
|
|
13
|
+
```tsx
|
|
14
|
+
import { useProvideViewCommandContext } from "@tooee/view"
|
|
15
|
+
|
|
16
|
+
useProvideViewCommandContext({
|
|
17
|
+
format: "stream-dashboard",
|
|
18
|
+
title: "Stream Dashboard",
|
|
19
|
+
nav,
|
|
20
|
+
data: { rowCount: rows.length },
|
|
21
|
+
extras: { activeRow, rowCount: rows.length },
|
|
22
|
+
})
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The hook injects the live command mode and fills safe defaults for headless
|
|
26
|
+
surfaces: synthetic custom content, empty marks, an empty toggled-index set, and
|
|
27
|
+
no-op reload/mark mutators. Register only the view commands your custom surface
|
|
28
|
+
can actually honor; unsupported capabilities are intentionally inert defaults
|
|
29
|
+
rather than full feature implementations.
|
|
30
|
+
|
|
31
|
+
For tests or non-React integrations, `createViewCommandContext({ mode, ... })`
|
|
32
|
+
creates the same object shape directly. The builder requires the caller to own
|
|
33
|
+
the `mode` value; prefer the hook in React so mode cannot go stale.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,OAAO,EAAE,WAAW,GAAG,WAAW,CAAA;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"CodeSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,OAAO,EAAE,WAAW,GAAG,WAAW,CAAA;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,gBAAgB,6BAkHlB"}
|
|
@@ -5,7 +5,7 @@ import { useTheme } from "@tooee/themes";
|
|
|
5
5
|
import { useCommandContext } from "@tooee/commands";
|
|
6
6
|
import { useHasModalOverlay } from "@tooee/overlays";
|
|
7
7
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
|
|
8
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
8
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
9
9
|
import { findMatchingLines, useSearch } from "@tooee/search";
|
|
10
10
|
import { useMarkState } from "../../hooks/useMarkState.js";
|
|
11
11
|
import { useViewCommands } from "../../hooks/useViewCommands.js";
|
|
@@ -58,9 +58,7 @@ export function CodeSubview({ content, providerMarks, userMarks, setMarkSet, cle
|
|
|
58
58
|
clearAllUserMarks,
|
|
59
59
|
});
|
|
60
60
|
const text = content.format === "code" ? content.code : content.text;
|
|
61
|
-
const menuEntries = useMemo(() => (actions
|
|
62
|
-
.filter((action) => !action.hidden)
|
|
63
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })), [actions]);
|
|
61
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions]);
|
|
64
62
|
// Left-click selects the clicked line; right-click selects it and opens the
|
|
65
63
|
// same app-provided action menu as table rows. Both stand down while a modal
|
|
66
64
|
// overlay is up (theme picker, command palette, Ask/Choose), matching the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC/D,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"CodeSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MarkdownSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,kBAAkB,CAAA;AAOzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,oBAAqB,SAAQ,YAAY;IACjD,OAAO,EAAE,eAAe,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CACvD;AAKD,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,oBAAoB,6BA2JtB"}
|
|
@@ -6,7 +6,7 @@ import { useTheme } from "@tooee/themes";
|
|
|
6
6
|
import { useCommand, useCommandContext } from "@tooee/commands";
|
|
7
7
|
import { useHasModalOverlay } from "@tooee/overlays";
|
|
8
8
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
|
|
9
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
9
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
10
10
|
import { useSearch } from "@tooee/search";
|
|
11
11
|
import { useMarkState } from "../../hooks/useMarkState.js";
|
|
12
12
|
import { useViewCommands } from "../../hooks/useViewCommands.js";
|
|
@@ -85,9 +85,7 @@ export function MarkdownSubview({ content, codeBlockRenderers, providerMarks, us
|
|
|
85
85
|
target.scrollX += BLOCK_HSCROLL_STEP;
|
|
86
86
|
},
|
|
87
87
|
});
|
|
88
|
-
const menuEntries = useMemo(() => (actions
|
|
89
|
-
.filter((action) => !action.hidden)
|
|
90
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })), [actions]);
|
|
88
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions]);
|
|
91
89
|
// Left-click selects the clicked block; right-click selects it and opens the
|
|
92
90
|
// same app-provided action menu as table/code rows. Both stand down while a
|
|
93
91
|
// modal overlay is up (theme picker, command palette, Ask/Choose), matching
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EACL,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"MarkdownSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,iBAAkB,SAAQ,YAAY;IAC9C,OAAO,EAAE,YAAY,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"TableSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,iBAAkB,SAAQ,YAAY;IAC9C,OAAO,EAAE,YAAY,CAAA;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,iBAAiB,6BA0JnB"}
|
|
@@ -5,7 +5,7 @@ import { useTheme } from "@tooee/themes";
|
|
|
5
5
|
import { useCommandContext } from "@tooee/commands";
|
|
6
6
|
import { useHasModalOverlay } from "@tooee/overlays";
|
|
7
7
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
|
|
8
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
8
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell";
|
|
9
9
|
import { useSearch } from "@tooee/search";
|
|
10
10
|
import { getTextContent } from "../../types.js";
|
|
11
11
|
import { useMarkState } from "../../hooks/useMarkState.js";
|
|
@@ -86,9 +86,7 @@ export function TableSubview({ content, providerMarks, userMarks, setMarkSet, cl
|
|
|
86
86
|
},
|
|
87
87
|
});
|
|
88
88
|
// Row-scoped context-menu entries come from the app-provided actions.
|
|
89
|
-
const menuEntries = useMemo(() => (actions
|
|
90
|
-
.filter((action) => !action.hidden)
|
|
91
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })), [actions]);
|
|
89
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions]);
|
|
92
90
|
// Row mouse handlers stand down while a modal overlay (theme picker, command
|
|
93
91
|
// palette, Ask/Choose overlays, the context menu itself) is up: centered
|
|
94
92
|
// overlays leave clickable margins around them, and mouse events route
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC/D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"TableSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { useContentLoader } from "./useContentLoader.js";
|
|
2
2
|
export { useMarkState } from "./useMarkState.js";
|
|
3
3
|
export { useViewCommands } from "./useViewCommands.js";
|
|
4
|
-
export { useViewCommandContext } from "./useViewCommandContext.js";
|
|
4
|
+
export { createViewCommandContext, useProvideViewCommandContext, useViewCommandContext, } from "./useViewCommandContext.js";
|
|
5
|
+
export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./useViewCommandContext.js";
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,4BAA4B,CAAA"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { useContentLoader } from "./useContentLoader.js";
|
|
2
2
|
export { useMarkState } from "./useMarkState.js";
|
|
3
3
|
export { useViewCommands } from "./useViewCommands.js";
|
|
4
|
-
export { useViewCommandContext } from "./useViewCommandContext.js";
|
|
4
|
+
export { createViewCommandContext, useProvideViewCommandContext, useViewCommandContext, } from "./useViewCommandContext.js";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,4BAA4B,CAAA"}
|
|
@@ -6,6 +6,8 @@ import type { AnyContent } from "../types.js";
|
|
|
6
6
|
export interface ViewCommandContext {
|
|
7
7
|
content: AnyContent;
|
|
8
8
|
format: string;
|
|
9
|
+
title?: string;
|
|
10
|
+
data?: unknown;
|
|
9
11
|
cursor: number | null;
|
|
10
12
|
selection: {
|
|
11
13
|
start: number;
|
|
@@ -29,6 +31,35 @@ declare module "@tooee/commands" {
|
|
|
29
31
|
view: ViewCommandContext;
|
|
30
32
|
}
|
|
31
33
|
}
|
|
34
|
+
type ViewNavigationContext = Pick<NavigationState, "cursor" | "selection" | "toggledIndices">;
|
|
35
|
+
export interface CreateViewCommandContextOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Content represented by this command context. Custom/headless surfaces may
|
|
38
|
+
* omit it; the builder will synthesize a minimal custom content object.
|
|
39
|
+
*/
|
|
40
|
+
content?: AnyContent;
|
|
41
|
+
format?: string;
|
|
42
|
+
title?: string;
|
|
43
|
+
data?: unknown;
|
|
44
|
+
nav?: ViewNavigationContext;
|
|
45
|
+
cursor?: number | null;
|
|
46
|
+
selection?: {
|
|
47
|
+
start: number;
|
|
48
|
+
end: number;
|
|
49
|
+
} | null;
|
|
50
|
+
/** Caller-owned mode value. Prefer `useProvideViewCommandContext` in React so this is live. */
|
|
51
|
+
mode: Mode;
|
|
52
|
+
toggledIndices?: Set<number>;
|
|
53
|
+
reload?: () => void;
|
|
54
|
+
marks?: Partial<ViewCommandContext["marks"]>;
|
|
55
|
+
extras?: Record<string, unknown>;
|
|
56
|
+
}
|
|
57
|
+
export type ProvideViewCommandContextOptions = Omit<CreateViewCommandContextOptions, "mode"> & {
|
|
58
|
+
/** Advanced override; normally omitted so the hook injects the live command mode. */
|
|
59
|
+
mode?: Mode;
|
|
60
|
+
};
|
|
61
|
+
export declare function createViewCommandContext({ content, format, title, data, nav, cursor, selection, mode, toggledIndices, reload, marks, extras, }: CreateViewCommandContextOptions): ViewCommandContext;
|
|
62
|
+
export declare function useProvideViewCommandContext(options: ProvideViewCommandContextOptions | (() => ProvideViewCommandContextOptions)): void;
|
|
32
63
|
interface UseViewCommandContextParams {
|
|
33
64
|
content: AnyContent;
|
|
34
65
|
nav: NavigationState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewCommandContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,oFAAoF;AACpF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAChD,IAAI,EAAE,IAAI,CAAA;IACV,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;QAClC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;QAC3C,QAAQ,EAAE,MAAM,IAAI,CAAA;QACpB,SAAS,EAAE,OAAO,EAAE,CAAA;QACpB,aAAa,EAAE,OAAO,EAAE,CAAA;KACzB,CAAA;IACD,+DAA+D;IAC/D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,cAAc;QACtB,IAAI,EAAE,kBAAkB,CAAA;KACzB;CACF;AAED,UAAU,2BAA2B;IACnC,OAAO,EAAE,UAAU,CAAA;IACnB,GAAG,EAAE,eAAe,CAAA;IACpB,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,aAAa,EAAE,OAAO,EAAE,CAAA;IACxB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,iBAAiB,EAAE,MAAM,IAAI,CAAA;IAC7B,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,GACP,EAAE,2BAA2B,
|
|
1
|
+
{"version":3,"file":"useViewCommandContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,56 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { useProvideCommandContextKey, useMode } from "@tooee/commands";
|
|
2
|
+
const noop = () => { };
|
|
3
|
+
export function createViewCommandContext({ content, format, title, data, nav, cursor, selection, mode, toggledIndices, reload, marks, extras, }) {
|
|
4
|
+
const resolvedFormat = format ?? content?.format ?? "custom";
|
|
5
|
+
const resolvedContent = content ??
|
|
6
|
+
{
|
|
7
|
+
format: resolvedFormat,
|
|
8
|
+
data,
|
|
9
|
+
title,
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
...extras,
|
|
13
|
+
content: resolvedContent,
|
|
14
|
+
format: resolvedFormat,
|
|
15
|
+
title: title ?? content?.title,
|
|
16
|
+
data: data ?? ("data" in resolvedContent ? resolvedContent.data : undefined),
|
|
17
|
+
cursor: cursor ?? nav?.cursor ?? null,
|
|
18
|
+
selection: selection ?? nav?.selection ?? null,
|
|
19
|
+
mode,
|
|
20
|
+
toggledIndices: toggledIndices ?? nav?.toggledIndices ?? new Set(),
|
|
21
|
+
reload: reload ?? noop,
|
|
22
|
+
marks: {
|
|
23
|
+
setMarkSet: marks?.setMarkSet ?? noop,
|
|
24
|
+
clearNamespace: marks?.clearNamespace ?? noop,
|
|
25
|
+
clearAll: marks?.clearAll ?? noop,
|
|
26
|
+
userMarks: marks?.userMarks ?? [],
|
|
27
|
+
providerMarks: marks?.providerMarks ?? [],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function useProvideViewCommandContext(options) {
|
|
3
32
|
const mode = useMode();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
33
|
+
useProvideCommandContextKey("view", () => {
|
|
34
|
+
const resolvedOptions = typeof options === "function" ? options() : options;
|
|
35
|
+
return createViewCommandContext({
|
|
36
|
+
...resolvedOptions,
|
|
37
|
+
mode: resolvedOptions.mode ?? mode,
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function useViewCommandContext({ content, nav, reload, providerMarks, userMarks, setMarkSet, clearMarkNamespace, clearAllUserMarks, extras, }) {
|
|
42
|
+
useProvideViewCommandContext({
|
|
43
|
+
content,
|
|
44
|
+
nav,
|
|
45
|
+
reload,
|
|
46
|
+
marks: {
|
|
47
|
+
setMarkSet,
|
|
48
|
+
clearNamespace: clearMarkNamespace,
|
|
49
|
+
clearAll: clearAllUserMarks,
|
|
50
|
+
userMarks,
|
|
51
|
+
providerMarks,
|
|
21
52
|
},
|
|
22
|
-
|
|
53
|
+
extras,
|
|
54
|
+
});
|
|
23
55
|
}
|
|
24
56
|
//# sourceMappingURL=useViewCommandContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewCommandContext.js","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useViewCommandContext.js","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAkCtE,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AA6BrB,MAAM,UAAU,wBAAwB,CAAC,EACvC,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,IAAI,EACJ,cAAc,EACd,MAAM,EACN,KAAK,EACL,MAAM,GAC0B;IAChC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAA;IAC5D,MAAM,eAAe,GACnB,OAAO;QACN;YACC,MAAM,EAAE,cAAc;YACtB,IAAI;YACJ,KAAK;SACgB,CAAA;IAEzB,OAAO;QACL,GAAG,MAAM;QACT,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK;QAC9B,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI;QACrC,SAAS,EAAE,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,IAAI;QAC9C,IAAI;QACJ,cAAc,EAAE,cAAc,IAAI,GAAG,EAAE,cAAc,IAAI,IAAI,GAAG,EAAU;QAC1E,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,KAAK,EAAE;YACL,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,IAAI;YACrC,cAAc,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI;YAC7C,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,IAAI;YACjC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE;YACjC,aAAa,EAAE,KAAK,EAAE,aAAa,IAAI,EAAE;SAC1C;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAoF;IAEpF,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE;QACvC,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;QAC3E,OAAO,wBAAwB,CAAC;YAC9B,GAAG,eAAe;YAClB,IAAI,EAAE,eAAe,CAAC,IAAI,IAAI,IAAI;SACnC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAeD,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,GACsB;IAC5B,4BAA4B,CAAC;QAC3B,OAAO;QACP,GAAG;QACH,MAAM;QACN,KAAK,EAAE;YACL,UAAU;YACV,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,iBAAiB;YAC3B,SAAS;YACT,aAAa;SACd;QACD,MAAM;KACP,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export type { ViewLaunchOptions } from "./launch.js";
|
|
|
5
5
|
export { createFileProvider, createStdinProvider, createTableFileProvider, createTableStdinProvider, } from "./default-provider.js";
|
|
6
6
|
export { listDirectoryFiles } from "./directory-provider.js";
|
|
7
7
|
export type { DirectoryEntry } from "./directory-provider.js";
|
|
8
|
+
export { createViewCommandContext, useProvideViewCommandContext, useViewCommandContext, } from "./hooks/useViewCommandContext.js";
|
|
9
|
+
export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./hooks/useViewCommandContext.js";
|
|
8
10
|
export type { AnyContent, Content, ContentChunk, ContentFormat, ContentProvider, ContentRenderer, ContentRendererProps, CustomContent, ViewContent, ViewContentProvider, ColumnDef, TableRow, } from "./types.js";
|
|
9
11
|
export { getTextContent, isBuiltinContent, isCustomContent } from "./types.js";
|
|
10
12
|
export { CodeBlockChrome } from "@tooee/renderers";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,YAAY,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,QAAQ,GACT,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,aAAa,EACb,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,QAAQ,GACT,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { DirectoryView } from "./DirectoryView.js";
|
|
|
3
3
|
export { launch, launchDirectory } from "./launch.js";
|
|
4
4
|
export { createFileProvider, createStdinProvider, createTableFileProvider, createTableStdinProvider, } from "./default-provider.js";
|
|
5
5
|
export { listDirectoryFiles } from "./directory-provider.js";
|
|
6
|
+
export { createViewCommandContext, useProvideViewCommandContext, useViewCommandContext, } from "./hooks/useViewCommandContext.js";
|
|
6
7
|
export { getTextContent, isBuiltinContent, isCustomContent } from "./types.js";
|
|
7
8
|
export { CodeBlockChrome } from "@tooee/renderers";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAErD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kCAAkC,CAAA;AAoBzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tooee/view",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "Terminal content viewer for markdown, code, text, and tables",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"typecheck": "tsc --noEmit"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@tooee/commands": "0.1.
|
|
41
|
-
"@tooee/config": "0.1.
|
|
42
|
-
"@tooee/layout": "0.1.
|
|
43
|
-
"@tooee/marks": "0.1.
|
|
44
|
-
"@tooee/overlays": "0.1.
|
|
45
|
-
"@tooee/renderers": "0.1.
|
|
46
|
-
"@tooee/search": "0.1.
|
|
47
|
-
"@tooee/shell": "0.1.
|
|
48
|
-
"@tooee/themes": "0.1.
|
|
40
|
+
"@tooee/commands": "0.1.22",
|
|
41
|
+
"@tooee/config": "0.1.22",
|
|
42
|
+
"@tooee/layout": "0.1.22",
|
|
43
|
+
"@tooee/marks": "0.1.22",
|
|
44
|
+
"@tooee/overlays": "0.1.22",
|
|
45
|
+
"@tooee/renderers": "0.1.22",
|
|
46
|
+
"@tooee/search": "0.1.22",
|
|
47
|
+
"@tooee/shell": "0.1.22",
|
|
48
|
+
"@tooee/themes": "0.1.22",
|
|
49
49
|
"marked": "^17.0.4"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef } from "react"
|
|
2
|
-
import { CodeView, type
|
|
2
|
+
import { CodeView, type RowDocumentRenderable } from "@tooee/renderers"
|
|
3
3
|
import { useTheme } from "@tooee/themes"
|
|
4
4
|
import { useCommandContext } from "@tooee/commands"
|
|
5
5
|
import { useHasModalOverlay } from "@tooee/overlays"
|
|
6
6
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
|
|
7
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
7
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
8
8
|
import { findMatchingLines, useSearch } from "@tooee/search"
|
|
9
9
|
import type { CodeContent, TextContent } from "../../types.js"
|
|
10
10
|
import { useMarkState } from "../../hooks/useMarkState.js"
|
|
@@ -81,13 +81,7 @@ export function CodeSubview({
|
|
|
81
81
|
|
|
82
82
|
const text = content.format === "code" ? content.code : content.text
|
|
83
83
|
|
|
84
|
-
const menuEntries = useMemo
|
|
85
|
-
() =>
|
|
86
|
-
(actions ?? [])
|
|
87
|
-
.filter((action) => !action.hidden)
|
|
88
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })),
|
|
89
|
-
[actions],
|
|
90
|
-
)
|
|
84
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions])
|
|
91
85
|
|
|
92
86
|
// Left-click selects the clicked line; right-click selects it and opens the
|
|
93
87
|
// same app-provided action menu as table rows. Both stand down while a modal
|
|
@@ -5,14 +5,13 @@ import {
|
|
|
5
5
|
MarkdownView,
|
|
6
6
|
flattenTokens,
|
|
7
7
|
type CodeBlockRenderer,
|
|
8
|
-
type ContextMenuEntry,
|
|
9
8
|
type RowDocumentRenderable,
|
|
10
9
|
} from "@tooee/renderers"
|
|
11
10
|
import { useTheme } from "@tooee/themes"
|
|
12
11
|
import { useCommand, useCommandContext } from "@tooee/commands"
|
|
13
12
|
import { useHasModalOverlay } from "@tooee/overlays"
|
|
14
13
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
|
|
15
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
14
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
16
15
|
import { useSearch } from "@tooee/search"
|
|
17
16
|
import type { MarkdownContent } from "../../types.js"
|
|
18
17
|
import { useMarkState } from "../../hooks/useMarkState.js"
|
|
@@ -113,13 +112,7 @@ export function MarkdownSubview({
|
|
|
113
112
|
},
|
|
114
113
|
})
|
|
115
114
|
|
|
116
|
-
const menuEntries = useMemo
|
|
117
|
-
() =>
|
|
118
|
-
(actions ?? [])
|
|
119
|
-
.filter((action) => !action.hidden)
|
|
120
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })),
|
|
121
|
-
[actions],
|
|
122
|
-
)
|
|
115
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions])
|
|
123
116
|
|
|
124
117
|
// Left-click selects the clicked block; right-click selects it and opens the
|
|
125
118
|
// same app-provided action menu as table/code rows. Both stand down while a
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef } from "react"
|
|
2
|
-
import { Table, type RowDocumentRenderable
|
|
2
|
+
import { Table, type RowDocumentRenderable } from "@tooee/renderers"
|
|
3
3
|
import { useTheme } from "@tooee/themes"
|
|
4
4
|
import { useCommandContext } from "@tooee/commands"
|
|
5
5
|
import { useHasModalOverlay } from "@tooee/overlays"
|
|
6
6
|
import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
|
|
7
|
-
import { useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
7
|
+
import { actionsToContextMenuEntries, useContextMenu, useCopy, useNavigation } from "@tooee/shell"
|
|
8
8
|
import { useSearch } from "@tooee/search"
|
|
9
9
|
import { getTextContent, type TableContent } from "../../types.js"
|
|
10
10
|
import { useMarkState } from "../../hooks/useMarkState.js"
|
|
@@ -113,13 +113,7 @@ export function TableSubview({
|
|
|
113
113
|
})
|
|
114
114
|
|
|
115
115
|
// Row-scoped context-menu entries come from the app-provided actions.
|
|
116
|
-
const menuEntries = useMemo
|
|
117
|
-
() =>
|
|
118
|
-
(actions ?? [])
|
|
119
|
-
.filter((action) => !action.hidden)
|
|
120
|
-
.map((action) => ({ id: action.id, title: action.title, hotkey: action.hotkey })),
|
|
121
|
-
[actions],
|
|
122
|
-
)
|
|
116
|
+
const menuEntries = useMemo(() => actionsToContextMenuEntries(actions), [actions])
|
|
123
117
|
|
|
124
118
|
// Row mouse handlers stand down while a modal overlay (theme picker, command
|
|
125
119
|
// palette, Ask/Choose overlays, the context menu itself) is up: centered
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
export { useContentLoader } from "./useContentLoader.js"
|
|
2
2
|
export { useMarkState } from "./useMarkState.js"
|
|
3
3
|
export { useViewCommands } from "./useViewCommands.js"
|
|
4
|
-
export {
|
|
4
|
+
export {
|
|
5
|
+
createViewCommandContext,
|
|
6
|
+
useProvideViewCommandContext,
|
|
7
|
+
useViewCommandContext,
|
|
8
|
+
} from "./useViewCommandContext.js"
|
|
9
|
+
export type {
|
|
10
|
+
CreateViewCommandContextOptions,
|
|
11
|
+
ProvideViewCommandContextOptions,
|
|
12
|
+
ViewCommandContext,
|
|
13
|
+
} from "./useViewCommandContext.js"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useProvideCommandContextKey, useMode } from "@tooee/commands"
|
|
2
2
|
import type { Mode } from "@tooee/commands"
|
|
3
3
|
import type { NavigationState } from "@tooee/shell"
|
|
4
4
|
import type { MarkSet } from "@tooee/marks"
|
|
@@ -8,6 +8,8 @@ import type { AnyContent } from "../types.js"
|
|
|
8
8
|
export interface ViewCommandContext {
|
|
9
9
|
content: AnyContent
|
|
10
10
|
format: string
|
|
11
|
+
title?: string
|
|
12
|
+
data?: unknown
|
|
11
13
|
cursor: number | null
|
|
12
14
|
selection: { start: number; end: number } | null
|
|
13
15
|
mode: Mode
|
|
@@ -30,6 +32,92 @@ declare module "@tooee/commands" {
|
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
|
|
35
|
+
const noop = () => {}
|
|
36
|
+
|
|
37
|
+
type ViewNavigationContext = Pick<NavigationState, "cursor" | "selection" | "toggledIndices">
|
|
38
|
+
|
|
39
|
+
export interface CreateViewCommandContextOptions {
|
|
40
|
+
/**
|
|
41
|
+
* Content represented by this command context. Custom/headless surfaces may
|
|
42
|
+
* omit it; the builder will synthesize a minimal custom content object.
|
|
43
|
+
*/
|
|
44
|
+
content?: AnyContent
|
|
45
|
+
format?: string
|
|
46
|
+
title?: string
|
|
47
|
+
data?: unknown
|
|
48
|
+
nav?: ViewNavigationContext
|
|
49
|
+
cursor?: number | null
|
|
50
|
+
selection?: { start: number; end: number } | null
|
|
51
|
+
/** Caller-owned mode value. Prefer `useProvideViewCommandContext` in React so this is live. */
|
|
52
|
+
mode: Mode
|
|
53
|
+
toggledIndices?: Set<number>
|
|
54
|
+
reload?: () => void
|
|
55
|
+
marks?: Partial<ViewCommandContext["marks"]>
|
|
56
|
+
extras?: Record<string, unknown>
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export type ProvideViewCommandContextOptions = Omit<CreateViewCommandContextOptions, "mode"> & {
|
|
60
|
+
/** Advanced override; normally omitted so the hook injects the live command mode. */
|
|
61
|
+
mode?: Mode
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function createViewCommandContext({
|
|
65
|
+
content,
|
|
66
|
+
format,
|
|
67
|
+
title,
|
|
68
|
+
data,
|
|
69
|
+
nav,
|
|
70
|
+
cursor,
|
|
71
|
+
selection,
|
|
72
|
+
mode,
|
|
73
|
+
toggledIndices,
|
|
74
|
+
reload,
|
|
75
|
+
marks,
|
|
76
|
+
extras,
|
|
77
|
+
}: CreateViewCommandContextOptions): ViewCommandContext {
|
|
78
|
+
const resolvedFormat = format ?? content?.format ?? "custom"
|
|
79
|
+
const resolvedContent: AnyContent =
|
|
80
|
+
content ??
|
|
81
|
+
({
|
|
82
|
+
format: resolvedFormat,
|
|
83
|
+
data,
|
|
84
|
+
title,
|
|
85
|
+
} satisfies AnyContent)
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
...extras,
|
|
89
|
+
content: resolvedContent,
|
|
90
|
+
format: resolvedFormat,
|
|
91
|
+
title: title ?? content?.title,
|
|
92
|
+
data: data ?? ("data" in resolvedContent ? resolvedContent.data : undefined),
|
|
93
|
+
cursor: cursor ?? nav?.cursor ?? null,
|
|
94
|
+
selection: selection ?? nav?.selection ?? null,
|
|
95
|
+
mode,
|
|
96
|
+
toggledIndices: toggledIndices ?? nav?.toggledIndices ?? new Set<number>(),
|
|
97
|
+
reload: reload ?? noop,
|
|
98
|
+
marks: {
|
|
99
|
+
setMarkSet: marks?.setMarkSet ?? noop,
|
|
100
|
+
clearNamespace: marks?.clearNamespace ?? noop,
|
|
101
|
+
clearAll: marks?.clearAll ?? noop,
|
|
102
|
+
userMarks: marks?.userMarks ?? [],
|
|
103
|
+
providerMarks: marks?.providerMarks ?? [],
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export function useProvideViewCommandContext(
|
|
109
|
+
options: ProvideViewCommandContextOptions | (() => ProvideViewCommandContextOptions),
|
|
110
|
+
) {
|
|
111
|
+
const mode = useMode()
|
|
112
|
+
useProvideCommandContextKey("view", () => {
|
|
113
|
+
const resolvedOptions = typeof options === "function" ? options() : options
|
|
114
|
+
return createViewCommandContext({
|
|
115
|
+
...resolvedOptions,
|
|
116
|
+
mode: resolvedOptions.mode ?? mode,
|
|
117
|
+
})
|
|
118
|
+
})
|
|
119
|
+
}
|
|
120
|
+
|
|
33
121
|
interface UseViewCommandContextParams {
|
|
34
122
|
content: AnyContent
|
|
35
123
|
nav: NavigationState
|
|
@@ -54,24 +142,17 @@ export function useViewCommandContext({
|
|
|
54
142
|
clearAllUserMarks,
|
|
55
143
|
extras,
|
|
56
144
|
}: UseViewCommandContextParams) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
marks: {
|
|
68
|
-
setMarkSet,
|
|
69
|
-
clearNamespace: clearMarkNamespace,
|
|
70
|
-
clearAll: clearAllUserMarks,
|
|
71
|
-
userMarks,
|
|
72
|
-
providerMarks,
|
|
73
|
-
},
|
|
74
|
-
...extras,
|
|
145
|
+
useProvideViewCommandContext({
|
|
146
|
+
content,
|
|
147
|
+
nav,
|
|
148
|
+
reload,
|
|
149
|
+
marks: {
|
|
150
|
+
setMarkSet,
|
|
151
|
+
clearNamespace: clearMarkNamespace,
|
|
152
|
+
clearAll: clearAllUserMarks,
|
|
153
|
+
userMarks,
|
|
154
|
+
providerMarks,
|
|
75
155
|
},
|
|
76
|
-
|
|
156
|
+
extras,
|
|
157
|
+
})
|
|
77
158
|
}
|
package/src/index.ts
CHANGED
|
@@ -10,6 +10,16 @@ export {
|
|
|
10
10
|
} from "./default-provider.js"
|
|
11
11
|
export { listDirectoryFiles } from "./directory-provider.js"
|
|
12
12
|
export type { DirectoryEntry } from "./directory-provider.js"
|
|
13
|
+
export {
|
|
14
|
+
createViewCommandContext,
|
|
15
|
+
useProvideViewCommandContext,
|
|
16
|
+
useViewCommandContext,
|
|
17
|
+
} from "./hooks/useViewCommandContext.js"
|
|
18
|
+
export type {
|
|
19
|
+
CreateViewCommandContextOptions,
|
|
20
|
+
ProvideViewCommandContextOptions,
|
|
21
|
+
ViewCommandContext,
|
|
22
|
+
} from "./hooks/useViewCommandContext.js"
|
|
13
23
|
export type {
|
|
14
24
|
AnyContent,
|
|
15
25
|
Content,
|