@tooee/view 0.1.19 → 0.1.21
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/dist/View.d.ts +7 -1
- package/dist/View.d.ts.map +1 -1
- package/dist/View.js +2 -2
- package/dist/View.js.map +1 -1
- package/dist/components/subviews/CodeSubview.d.ts.map +1 -1
- package/dist/components/subviews/CodeSubview.js +28 -3
- package/dist/components/subviews/CodeSubview.js.map +1 -1
- package/dist/components/subviews/CustomSubview.d.ts.map +1 -1
- package/dist/components/subviews/CustomSubview.js +15 -1
- package/dist/components/subviews/CustomSubview.js.map +1 -1
- package/dist/components/subviews/MarkdownSubview.d.ts +3 -1
- package/dist/components/subviews/MarkdownSubview.d.ts.map +1 -1
- package/dist/components/subviews/MarkdownSubview.js +62 -5
- 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 +37 -4
- package/dist/components/subviews/TableSubview.js.map +1 -1
- package/dist/hooks/useContentLoader.d.ts.map +1 -1
- package/dist/hooks/useContentLoader.js +13 -7
- package/dist/hooks/useContentLoader.js.map +1 -1
- package/dist/hooks/useViewCommandContext.d.ts +28 -0
- package/dist/hooks/useViewCommandContext.d.ts.map +1 -1
- 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/dist/launch.d.ts +7 -0
- package/dist/launch.d.ts.map +1 -1
- package/dist/launch.js +1 -1
- package/dist/launch.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -10
- package/src/View.tsx +10 -2
- package/src/components/subviews/CodeSubview.tsx +41 -5
- package/src/components/subviews/CustomSubview.tsx +20 -9
- package/src/components/subviews/MarkdownSubview.tsx +85 -5
- package/src/components/subviews/TableSubview.tsx +53 -7
- package/src/hooks/useContentLoader.ts +15 -7
- package/src/hooks/useViewCommandContext.ts +27 -0
- package/src/index.ts +2 -0
- package/src/launch.tsx +8 -0
- package/src/types.ts +10 -0
package/src/launch.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { launchCli } from "@tooee/shell"
|
|
2
2
|
import type { ActionDefinition } from "@tooee/commands"
|
|
3
|
+
import type { CodeBlockRenderer } from "@tooee/renderers"
|
|
3
4
|
import { View } from "./View.js"
|
|
4
5
|
import { DirectoryView } from "./DirectoryView.js"
|
|
5
6
|
import type { ContentProvider, ContentRenderer } from "./types.js"
|
|
@@ -8,6 +9,12 @@ export interface ViewLaunchOptions {
|
|
|
8
9
|
contentProvider: ContentProvider
|
|
9
10
|
actions?: ActionDefinition[]
|
|
10
11
|
renderers?: Record<string, ContentRenderer>
|
|
12
|
+
/**
|
|
13
|
+
* Custom renderers for fenced code blocks in markdown content, keyed by
|
|
14
|
+
* fence type (first word of the fence info string, case-insensitive).
|
|
15
|
+
* Unmatched types fall back to the default syntax-highlighted code block.
|
|
16
|
+
*/
|
|
17
|
+
codeBlockRenderers?: Record<string, CodeBlockRenderer>
|
|
11
18
|
}
|
|
12
19
|
|
|
13
20
|
export interface DirectoryLaunchOptions {
|
|
@@ -21,6 +28,7 @@ export async function launch(options: ViewLaunchOptions): Promise<void> {
|
|
|
21
28
|
contentProvider={options.contentProvider}
|
|
22
29
|
actions={options.actions}
|
|
23
30
|
renderers={options.renderers}
|
|
31
|
+
codeBlockRenderers={options.codeBlockRenderers}
|
|
24
32
|
/>,
|
|
25
33
|
)
|
|
26
34
|
}
|
package/src/types.ts
CHANGED
|
@@ -57,6 +57,16 @@ export interface ContentRendererProps {
|
|
|
57
57
|
selectionEnd?: number
|
|
58
58
|
/** Combined mark state (nav + provider + user marks) */
|
|
59
59
|
marks?: MarkState
|
|
60
|
+
/**
|
|
61
|
+
* Select a row by index — the mouse equivalent of the keyboard cursor move.
|
|
62
|
+
* A custom renderer that has a notion of rows should call this from its own
|
|
63
|
+
* `onMouseDown`/`onRowClick` handlers to make left-click select a row, the
|
|
64
|
+
* same way the built-in code/markdown/table views do. Selection is a no-op
|
|
65
|
+
* while a modal overlay is open (the host guards it), so renderers can wire
|
|
66
|
+
* it unconditionally. Renderers that own a `RowDocumentRenderable` can map a
|
|
67
|
+
* click's screen-Y to a row via its `getRowAtScreenY(event.y)` helper.
|
|
68
|
+
*/
|
|
69
|
+
onSelectRow?: (index: number) => void
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
export type ContentRenderer = (props: ContentRendererProps) => ReactNode
|