@tooee/view 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +15 -15
  2. package/dist/components/subviews/{CodeSubview.d.ts → code-subview.d.ts} +2 -2
  3. package/dist/components/subviews/code-subview.d.ts.map +1 -0
  4. package/dist/components/subviews/{CodeSubview.js → code-subview.js} +8 -8
  5. package/dist/components/subviews/code-subview.js.map +1 -0
  6. package/dist/components/subviews/custom-subview.d.ts +9 -0
  7. package/dist/components/subviews/custom-subview.d.ts.map +1 -0
  8. package/dist/components/subviews/{CustomSubview.js → custom-subview.js} +7 -7
  9. package/dist/components/subviews/custom-subview.js.map +1 -0
  10. package/dist/components/subviews/index.d.ts +4 -4
  11. package/dist/components/subviews/index.d.ts.map +1 -1
  12. package/dist/components/subviews/index.js +4 -4
  13. package/dist/components/subviews/index.js.map +1 -1
  14. package/dist/components/subviews/markdown-subview.d.ts +11 -0
  15. package/dist/components/subviews/markdown-subview.d.ts.map +1 -0
  16. package/dist/components/subviews/{MarkdownSubview.js → markdown-subview.js} +28 -26
  17. package/dist/components/subviews/markdown-subview.js.map +1 -0
  18. package/dist/components/subviews/table-subview.d.ts +8 -0
  19. package/dist/components/subviews/table-subview.d.ts.map +1 -0
  20. package/dist/components/subviews/{TableSubview.js → table-subview.js} +40 -22
  21. package/dist/components/subviews/table-subview.js.map +1 -0
  22. package/dist/components/subviews/types.d.ts.map +1 -1
  23. package/dist/components/{ViewScreen.d.ts → view-screen.d.ts} +3 -3
  24. package/dist/components/view-screen.d.ts.map +1 -0
  25. package/dist/components/{ViewScreen.js → view-screen.js} +11 -11
  26. package/dist/components/view-screen.js.map +1 -0
  27. package/dist/content-loader-store.d.ts +11 -7
  28. package/dist/content-loader-store.d.ts.map +1 -1
  29. package/dist/content-loader-store.js +70 -50
  30. package/dist/content-loader-store.js.map +1 -1
  31. package/dist/default-provider.d.ts +4 -4
  32. package/dist/default-provider.d.ts.map +1 -1
  33. package/dist/default-provider.js +48 -39
  34. package/dist/default-provider.js.map +1 -1
  35. package/dist/directory-provider.d.ts +2 -2
  36. package/dist/directory-provider.d.ts.map +1 -1
  37. package/dist/directory-provider.js +13 -10
  38. package/dist/directory-provider.js.map +1 -1
  39. package/dist/directory-view.d.ts +8 -0
  40. package/dist/directory-view.d.ts.map +1 -0
  41. package/dist/{DirectoryView.js → directory-view.js} +18 -12
  42. package/dist/directory-view.js.map +1 -0
  43. package/dist/hooks/index.d.ts +4 -4
  44. package/dist/hooks/index.d.ts.map +1 -1
  45. package/dist/hooks/index.js +3 -3
  46. package/dist/hooks/index.js.map +1 -1
  47. package/dist/hooks/{useContentCommands.d.ts → use-content-commands.d.ts} +2 -2
  48. package/dist/hooks/use-content-commands.d.ts.map +1 -0
  49. package/dist/hooks/{useContentCommands.js → use-content-commands.js} +6 -4
  50. package/dist/hooks/use-content-commands.js.map +1 -0
  51. package/dist/hooks/{useContentLoader.d.ts → use-content-loader.d.ts} +4 -4
  52. package/dist/hooks/use-content-loader.d.ts.map +1 -0
  53. package/dist/hooks/use-content-loader.js +81 -0
  54. package/dist/hooks/use-content-loader.js.map +1 -0
  55. package/dist/hooks/{useViewCommandContext.d.ts → use-view-command-context.d.ts} +3 -3
  56. package/dist/hooks/use-view-command-context.d.ts.map +1 -0
  57. package/dist/hooks/{useViewCommandContext.js → use-view-command-context.js} +15 -13
  58. package/dist/hooks/use-view-command-context.js.map +1 -0
  59. package/dist/index.d.ts +4 -4
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +3 -3
  62. package/dist/index.js.map +1 -1
  63. package/dist/launch.d.ts +2 -2
  64. package/dist/launch.d.ts.map +1 -1
  65. package/dist/launch.js +6 -6
  66. package/dist/launch.js.map +1 -1
  67. package/dist/types.d.ts +4 -4
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/types.js +46 -24
  70. package/dist/types.js.map +1 -1
  71. package/dist/view.d.ts +18 -0
  72. package/dist/view.d.ts.map +1 -0
  73. package/dist/{View.js → view.js} +20 -14
  74. package/dist/view.js.map +1 -0
  75. package/package.json +10 -10
  76. package/src/components/subviews/{CodeSubview.tsx → code-subview.tsx} +25 -19
  77. package/src/components/subviews/{CustomSubview.tsx → custom-subview.tsx} +23 -21
  78. package/src/components/subviews/index.ts +5 -5
  79. package/src/components/subviews/{MarkdownSubview.tsx → markdown-subview.tsx} +55 -52
  80. package/src/components/subviews/table-subview.tsx +95 -0
  81. package/src/components/subviews/types.ts +14 -14
  82. package/src/components/{ViewScreen.tsx → view-screen.tsx} +33 -32
  83. package/src/content-loader-store.ts +131 -99
  84. package/src/default-provider.ts +84 -64
  85. package/src/directory-provider.ts +32 -24
  86. package/src/directory-view.tsx +79 -0
  87. package/src/hooks/index.ts +7 -4
  88. package/src/hooks/{useContentCommands.ts → use-content-commands.ts} +19 -14
  89. package/src/hooks/use-content-loader.ts +92 -0
  90. package/src/hooks/{useViewCommandContext.ts → use-view-command-context.ts} +40 -38
  91. package/src/index.ts +14 -14
  92. package/src/launch.tsx +20 -18
  93. package/src/types.ts +107 -78
  94. package/src/view.tsx +114 -0
  95. package/dist/DirectoryView.d.ts +0 -7
  96. package/dist/DirectoryView.d.ts.map +0 -1
  97. package/dist/DirectoryView.js.map +0 -1
  98. package/dist/View.d.ts +0 -16
  99. package/dist/View.d.ts.map +0 -1
  100. package/dist/View.js.map +0 -1
  101. package/dist/components/ViewScreen.d.ts.map +0 -1
  102. package/dist/components/ViewScreen.js.map +0 -1
  103. package/dist/components/subviews/CodeSubview.d.ts.map +0 -1
  104. package/dist/components/subviews/CodeSubview.js.map +0 -1
  105. package/dist/components/subviews/CustomSubview.d.ts +0 -9
  106. package/dist/components/subviews/CustomSubview.d.ts.map +0 -1
  107. package/dist/components/subviews/CustomSubview.js.map +0 -1
  108. package/dist/components/subviews/MarkdownSubview.d.ts +0 -10
  109. package/dist/components/subviews/MarkdownSubview.d.ts.map +0 -1
  110. package/dist/components/subviews/MarkdownSubview.js.map +0 -1
  111. package/dist/components/subviews/TableSubview.d.ts +0 -8
  112. package/dist/components/subviews/TableSubview.d.ts.map +0 -1
  113. package/dist/components/subviews/TableSubview.js.map +0 -1
  114. package/dist/hooks/useContentCommands.d.ts.map +0 -1
  115. package/dist/hooks/useContentCommands.js.map +0 -1
  116. package/dist/hooks/useContentLoader.d.ts.map +0 -1
  117. package/dist/hooks/useContentLoader.js +0 -55
  118. package/dist/hooks/useContentLoader.js.map +0 -1
  119. package/dist/hooks/useViewCommandContext.d.ts.map +0 -1
  120. package/dist/hooks/useViewCommandContext.js.map +0 -1
  121. package/src/DirectoryView.tsx +0 -68
  122. package/src/View.tsx +0 -94
  123. package/src/components/subviews/TableSubview.tsx +0 -65
  124. package/src/hooks/useContentLoader.ts +0 -72
@@ -1,10 +1,10 @@
1
1
  import type { ContentProvider } from "../types.js";
2
- export declare function useContentLoader(contentProvider: ContentProvider): {
2
+ export declare const useContentLoader: (contentProvider: ContentProvider) => {
3
3
  content: import("../types.js").AnyContent | null;
4
- streaming: boolean;
5
4
  error: string | null;
6
5
  providerMarks: import("@tooee/marks").MarkSet[];
7
- status: import("../content-loader-store.js").ContentLoaderStatus;
8
6
  reload: () => void;
7
+ status: import("../content-loader-store.js").ContentLoaderStatus;
8
+ streaming: boolean;
9
9
  };
10
- //# sourceMappingURL=useContentLoader.d.ts.map
10
+ //# sourceMappingURL=use-content-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-content-loader.d.ts","sourceRoot":"","sources":["../../src/hooks/use-content-loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,eAAO,MAAM,gBAAgB,GAA6B,iBAAiB,eAAe;;;;;;;CA4EzF,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { useCallback, useEffect, useMemo } from "react";
2
+ import { useSelector } from "@xstate/store-react";
3
+ import { createContentLoaderStore, isAsyncIterable, normalizeError, selectContent, selectError, selectLoadSeq, selectProviderMarks, selectStatus, selectStreaming, } from "../content-loader-store.js";
4
+ export const useContentLoader = function useContentLoader(contentProvider) {
5
+ const store = useMemo(createContentLoaderStore, []);
6
+ const loadSeq = useSelector(store, (snapshot) => selectLoadSeq(snapshot.context));
7
+ useEffect(() => {
8
+ store.trigger.loadStarted({
9
+ marks: contentProvider.marks ?? [],
10
+ title: contentProvider.title,
11
+ });
12
+ const { requestId } = store.getSnapshot().context;
13
+ const loaded = contentProvider.load();
14
+ let cleanup = () => {
15
+ // Synchronous providers have no pending work to cancel.
16
+ };
17
+ if (isAsyncIterable(loaded)) {
18
+ store.trigger.streamStarted({
19
+ format: contentProvider.format ?? "markdown",
20
+ requestId,
21
+ });
22
+ const iterator = loaded[Symbol.asyncIterator]();
23
+ void (async () => {
24
+ try {
25
+ while (true) {
26
+ // Deferred(lint-sweep): preserve sequential stream consumption for ordered backpressure.
27
+ // oxlint-disable-next-line no-await-in-loop -- each chunk must be consumed in iterator order
28
+ const result = await iterator.next();
29
+ if (result.done === true) {
30
+ break;
31
+ }
32
+ store.trigger.chunkReceived({ chunk: result.value, requestId });
33
+ }
34
+ store.trigger.streamEnded({ requestId });
35
+ }
36
+ catch (error) {
37
+ store.trigger.loadFailed({ error: normalizeError(error), requestId });
38
+ }
39
+ })();
40
+ cleanup = () => {
41
+ store.trigger.loadCancelled({ requestId });
42
+ void (async () => {
43
+ try {
44
+ await iterator.return?.();
45
+ }
46
+ catch {
47
+ // Iterator cleanup is best-effort during effect disposal.
48
+ }
49
+ })();
50
+ };
51
+ }
52
+ else if (loaded instanceof Promise) {
53
+ void (async () => {
54
+ try {
55
+ const content = await loaded;
56
+ store.trigger.loaded({ content, requestId });
57
+ }
58
+ catch (error) {
59
+ store.trigger.loadFailed({ error: normalizeError(error), requestId });
60
+ }
61
+ })();
62
+ cleanup = () => {
63
+ store.trigger.loadCancelled({ requestId });
64
+ };
65
+ }
66
+ else {
67
+ store.trigger.loaded({ content: loaded, requestId });
68
+ }
69
+ return cleanup;
70
+ }, [contentProvider, loadSeq, store]);
71
+ const content = useSelector(store, (snapshot) => selectContent(snapshot.context));
72
+ const streaming = useSelector(store, (snapshot) => selectStreaming(snapshot.context));
73
+ const error = useSelector(store, (snapshot) => selectError(snapshot.context));
74
+ const providerMarks = useSelector(store, (snapshot) => selectProviderMarks(snapshot.context));
75
+ const status = useSelector(store, (snapshot) => selectStatus(snapshot.context));
76
+ const reload = useCallback(() => {
77
+ store.trigger.reloadRequested({});
78
+ }, [store]);
79
+ return { content, error, providerMarks, reload, status, streaming };
80
+ };
81
+ //# sourceMappingURL=use-content-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-content-loader.js","sourceRoot":"","sources":["../../src/hooks/use-content-loader.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,6 @@ export interface CreateViewCommandContextOptions {
40
40
  marks?: Partial<ViewCommandContext["marks"]>;
41
41
  }
42
42
  export type ProvideViewCommandContextOptions = CreateViewCommandContextOptions;
43
- export declare function createViewCommandContext({ content, format, title, data, reload, marks, }: CreateViewCommandContextOptions): ViewCommandContext;
44
- export declare function useProvideViewCommandContext(options: ProvideViewCommandContextOptions | (() => ProvideViewCommandContextOptions)): void;
45
- //# sourceMappingURL=useViewCommandContext.d.ts.map
43
+ export declare const createViewCommandContext: ({ content, format, title, data, reload, marks, }: CreateViewCommandContextOptions) => ViewCommandContext;
44
+ export declare const useProvideViewCommandContext: (options: ProvideViewCommandContextOptions | (() => ProvideViewCommandContextOptions)) => void;
45
+ //# sourceMappingURL=use-view-command-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-view-command-context.d.ts","sourceRoot":"","sources":["../../src/hooks/use-view-command-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,KAAK,EAAE;QACL,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;QACnC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5C,QAAQ,EAAE,MAAM,IAAI,CAAC;QACrB,SAAS,EAAE,OAAO,EAAE,CAAC;QACrB,aAAa,EAAE,OAAO,EAAE,CAAC;KAC1B,CAAC;CACH;AAED,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,cAAc;QACtB,IAAI,EAAE,kBAAkB,CAAC;KAC1B;CACF;AAMD,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,gCAAgC,GAAG,+BAA+B,CAAC;AAE/E,eAAO,MAAM,wBAAwB,GAAqC,kDAOvE,+BAA+B,KAAG,kBAwBpC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,SAAS,gCAAgC,GAAG,CAAC,MAAM,gCAAgC,CAAC,SAKrF,CAAC"}
@@ -1,29 +1,31 @@
1
1
  import { useProvideCommandContextKey } from "@tooee/commands";
2
- const noop = () => { };
3
- export function createViewCommandContext({ content, format, title, data, reload, marks, }) {
2
+ const noop = () => {
3
+ // Optional command-context operations default to intentional no-ops.
4
+ };
5
+ export const createViewCommandContext = function createViewCommandContext({ content, format, title, data, reload, marks, }) {
4
6
  const resolvedFormat = format ?? content?.format ?? "custom";
5
7
  const resolvedContent = content ??
6
8
  {
7
- format: resolvedFormat,
8
9
  data,
10
+ format: resolvedFormat,
9
11
  title,
10
12
  };
11
13
  return {
12
14
  content: resolvedContent,
13
- format: resolvedFormat,
14
- title: title ?? content?.title,
15
15
  data: data ?? ("data" in resolvedContent ? resolvedContent.data : undefined),
16
- reload: reload ?? noop,
16
+ format: resolvedFormat,
17
17
  marks: {
18
- setMarkSet: marks?.setMarkSet ?? noop,
19
- clearNamespace: marks?.clearNamespace ?? noop,
20
18
  clearAll: marks?.clearAll ?? noop,
21
- userMarks: marks?.userMarks ?? [],
19
+ clearNamespace: marks?.clearNamespace ?? noop,
22
20
  providerMarks: marks?.providerMarks ?? [],
21
+ setMarkSet: marks?.setMarkSet ?? noop,
22
+ userMarks: marks?.userMarks ?? [],
23
23
  },
24
+ reload: reload ?? noop,
25
+ title: title ?? content?.title,
24
26
  };
25
- }
26
- export function useProvideViewCommandContext(options) {
27
+ };
28
+ export const useProvideViewCommandContext = function useProvideViewCommandContext(options) {
27
29
  useProvideCommandContextKey("view", () => createViewCommandContext(typeof options === "function" ? options() : options));
28
- }
29
- //# sourceMappingURL=useViewCommandContext.js.map
30
+ };
31
+ //# sourceMappingURL=use-view-command-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-view-command-context.js","sourceRoot":"","sources":["../../src/hooks/use-view-command-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAiC9D,MAAM,IAAI,GAAG,GAAG,EAAE;IAChB,qEAAqE;AACvE,CAAC,CAAC;AAiBF,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,wBAAwB,CAAC,EACxE,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,EACJ,MAAM,EACN,KAAK,GAC2B;IAChC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IAC7D,MAAM,eAAe,GACnB,OAAO;QACN;YACC,IAAI;YACJ,MAAM,EAAE,cAAc;YACtB,KAAK;SACgB,CAAC;IAE1B,OAAO;QACL,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE;YACL,QAAQ,EAAE,KAAK,EAAE,QAAQ,IAAI,IAAI;YACjC,cAAc,EAAE,KAAK,EAAE,cAAc,IAAI,IAAI;YAC7C,aAAa,EAAE,KAAK,EAAE,aAAa,IAAI,EAAE;YACzC,UAAU,EAAE,KAAK,EAAE,UAAU,IAAI,IAAI;YACrC,SAAS,EAAE,KAAK,EAAE,SAAS,IAAI,EAAE;SAClC;QACD,MAAM,EAAE,MAAM,IAAI,IAAI;QACtB,KAAK,EAAE,KAAK,IAAI,OAAO,EAAE,KAAK;KAC/B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,4BAA4B,CAC/E,OAAoF;IAEpF,2BAA2B,CAAC,MAAM,EAAE,GAAG,EAAE,CACvC,wBAAwB,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAC9E,CAAC;AACJ,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export { View } from "./View.js";
2
- export { DirectoryView } from "./DirectoryView.js";
1
+ export { View } from "./view.js";
2
+ export { DirectoryView } from "./directory-view.js";
3
3
  export { launch, launchDirectory } from "./launch.js";
4
4
  export type { ViewLaunchOptions } from "./launch.js";
5
5
  export { createFileProvider, createStdinProvider, createTableFileProvider, createTableStdinProvider, } from "./default-provider.js";
6
6
  export type { CreateProviderOptions } from "./default-provider.js";
7
7
  export { listDirectoryFiles } from "./directory-provider.js";
8
8
  export type { DirectoryEntry } from "./directory-provider.js";
9
- export { createViewCommandContext, useProvideViewCommandContext, } from "./hooks/useViewCommandContext.js";
10
- export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./hooks/useViewCommandContext.js";
9
+ export { createViewCommandContext, useProvideViewCommandContext, } from "./hooks/use-view-command-context.js";
10
+ export type { CreateViewCommandContextOptions, ProvideViewCommandContextOptions, ViewCommandContext, } from "./hooks/use-view-command-context.js";
11
11
  export type { AnyContent, Content, ContentChunk, ContentFormat, ContentProvider, ContentRenderer, ContentRendererProps, CustomContent, ViewContent, ViewContentProvider, ColumnDef, TableRow, } from "./types.js";
12
12
  export { getTextContent, isBuiltinContent, isCustomContent } from "./types.js";
13
13
  export { CodeBlockChrome } from "@tooee/renderers";
@@ -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,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,qCAAqC,CAAC;AAC7C,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,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- export { View } from "./View.js";
2
- export { DirectoryView } from "./DirectoryView.js";
1
+ export { View } from "./view.js";
2
+ export { DirectoryView } from "./directory-view.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, } from "./hooks/useViewCommandContext.js";
6
+ export { createViewCommandContext, useProvideViewCommandContext, } from "./hooks/use-view-command-context.js";
7
7
  export { getTextContent, isBuiltinContent, isCustomContent } from "./types.js";
8
8
  export { CodeBlockChrome } from "@tooee/renderers";
9
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;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,kCAAkC,CAAA;AAoBzC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,qCAAqC,CAAC;AAoB7C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/launch.d.ts CHANGED
@@ -16,6 +16,6 @@ export interface DirectoryLaunchOptions {
16
16
  dirPath: string;
17
17
  actions?: ActionDefinition[];
18
18
  }
19
- export declare function launch(options: ViewLaunchOptions): Promise<void>;
20
- export declare function launchDirectory(options: DirectoryLaunchOptions): Promise<void>;
19
+ export declare const launch: (options: ViewLaunchOptions) => Promise<void>;
20
+ export declare const launchDirectory: (options: DirectoryLaunchOptions) => Promise<void>;
21
21
  //# sourceMappingURL=launch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAElE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAChC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAStE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF"}
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,MAAM,GAAyB,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,CASpF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,sBAAsB,KAC9B,OAAO,CAAC,IAAI,CAEd,CAAC"}
package/dist/launch.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { launchCli } from "@tooee/shell";
3
- import { View } from "./View.js";
4
- import { DirectoryView } from "./DirectoryView.js";
5
- export async function launch(options) {
3
+ import { View } from "./view.js";
4
+ import { DirectoryView } from "./directory-view.js";
5
+ export const launch = async function launch(options) {
6
6
  await launchCli(_jsx(View, { contentProvider: options.contentProvider, actions: options.actions, renderers: options.renderers, codeBlockRenderers: options.codeBlockRenderers }));
7
- }
8
- export async function launchDirectory(options) {
7
+ };
8
+ export const launchDirectory = async function launchDirectory(options) {
9
9
  await launchCli(_jsx(DirectoryView, { dirPath: options.dirPath, actions: options.actions }));
10
- }
10
+ };
11
11
  //# sourceMappingURL=launch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAoBlD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAA0B;IACrD,MAAM,SAAS,CACb,KAAC,IAAI,IACH,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,GAC9C,CACH,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACnE,MAAM,SAAS,CAAC,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAI,CAAC,CAAA;AACxF,CAAC"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../src/launch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoBpD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,UAAU,MAAM,CAAC,OAA0B;IACpE,MAAM,SAAS,CACb,KAAC,IAAI,IACH,eAAe,EAAE,OAAO,CAAC,eAAe,EACxC,OAAO,EAAE,OAAO,CAAC,OAAO,EACxB,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,GAC9C,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,UAAU,eAAe,CAC3D,OAA+B;IAE/B,MAAM,SAAS,CAAC,KAAC,aAAa,IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,GAAI,CAAC,CAAC;AACzF,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -69,7 +69,7 @@ export type ContentChunk = {
69
69
  set: MarkSet;
70
70
  };
71
71
  export interface ContentProvider {
72
- load(): AnyContent | Promise<AnyContent> | AsyncIterable<ContentChunk>;
72
+ load: () => AnyContent | Promise<AnyContent> | AsyncIterable<ContentChunk>;
73
73
  format?: string;
74
74
  title?: string;
75
75
  /** Static marks to apply to the content. Merged with nav marks in View. */
@@ -78,7 +78,7 @@ export interface ContentProvider {
78
78
  export type ViewContent = Content;
79
79
  export type ViewContentProvider = ContentProvider;
80
80
  export type { ColumnDef, TableRow } from "@tooee/renderers";
81
- export declare function isBuiltinContent(content: AnyContent): content is Content;
82
- export declare function isCustomContent(content: AnyContent): content is CustomContent;
83
- export declare function getTextContent(content: AnyContent): string;
81
+ export declare const isBuiltinContent: (content: AnyContent) => content is Content;
82
+ export declare const isCustomContent: (content: AnyContent) => content is CustomContent;
83
+ export declare const getTextContent: (content: AnyContent) => string;
84
84
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,12 +1,44 @@
1
1
  // === Utilities ===
2
2
  const BUILTIN_FORMATS = new Set(["markdown", "code", "text", "table"]);
3
- export function isBuiltinContent(content) {
3
+ export const isBuiltinContent = function isBuiltinContent(content) {
4
4
  return BUILTIN_FORMATS.has(content.format);
5
- }
6
- export function isCustomContent(content) {
5
+ };
6
+ export const isCustomContent = function isCustomContent(content) {
7
7
  return !BUILTIN_FORMATS.has(content.format);
8
- }
9
- export function getTextContent(content) {
8
+ };
9
+ const stringifyCell = function stringifyCell(value) {
10
+ if (value === null || value === undefined) {
11
+ return "";
12
+ }
13
+ if (typeof value === "string") {
14
+ return value;
15
+ }
16
+ if (typeof value === "number" || typeof value === "boolean") {
17
+ return String(value);
18
+ }
19
+ if (typeof value === "string") {
20
+ return value;
21
+ }
22
+ if (typeof value === "number" ||
23
+ typeof value === "bigint" ||
24
+ typeof value === "boolean" ||
25
+ typeof value === "symbol") {
26
+ return value.toString();
27
+ }
28
+ if (value === null || value === undefined) {
29
+ return String(value);
30
+ }
31
+ if (typeof value === "function") {
32
+ return Function.prototype.toString.call(value);
33
+ }
34
+ try {
35
+ return JSON.stringify(value);
36
+ }
37
+ catch {
38
+ return Array.isArray(value) ? value.join(",") : Object.prototype.toString.call(value);
39
+ }
40
+ };
41
+ export const getTextContent = function getTextContent(content) {
10
42
  if (content.getTextContent) {
11
43
  return content.getTextContent();
12
44
  }
@@ -14,33 +46,23 @@ export function getTextContent(content) {
14
46
  return "";
15
47
  }
16
48
  switch (content.format) {
17
- case "markdown":
49
+ case "markdown": {
18
50
  return content.markdown;
19
- case "code":
51
+ }
52
+ case "code": {
20
53
  return content.code;
21
- case "text":
54
+ }
55
+ case "text": {
22
56
  return content.text;
57
+ }
23
58
  case "table": {
24
59
  const headers = content.columns.map((column) => column.header ?? column.key);
25
60
  const rowLines = content.rows.map((row) => content.columns.map((column) => stringifyCell(row[column.key])).join("\t"));
26
61
  return [headers.join("\t"), ...rowLines].join("\n");
27
62
  }
28
- default:
63
+ default: {
29
64
  return "";
65
+ }
30
66
  }
31
- }
32
- function stringifyCell(value) {
33
- if (value == null)
34
- return "";
35
- if (typeof value === "string")
36
- return value;
37
- if (typeof value === "number" || typeof value === "boolean")
38
- return String(value);
39
- try {
40
- return JSON.stringify(value);
41
- }
42
- catch {
43
- return String(value);
44
- }
45
- }
67
+ };
46
68
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgHA,oBAAoB;AAEpB,MAAM,eAAe,GAAgB,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEnF,MAAM,UAAU,gBAAgB,CAAC,OAAmB;IAClD,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAmB;IACjD,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAmB;IAChD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,OAAO,CAAC,cAAc,EAAE,CAAA;IACjC,CAAC;IAED,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,QAAQ,CAAA;QACzB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,CAAA;QACrB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3E,CAAA;YACD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrD,CAAC;QACD;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/view.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import type { ActionDefinition } from "@tooee/commands";
2
+ import type { CodeBlockRenderer, MarkdownLinkHandler } from "@tooee/renderers";
3
+ import type { ContentProvider, ContentRenderer } from "./types.js";
4
+ interface ViewProps {
5
+ contentProvider: ContentProvider;
6
+ actions?: ActionDefinition[];
7
+ renderers?: Record<string, ContentRenderer>;
8
+ /**
9
+ * Custom renderers for fenced code blocks in markdown content, keyed by
10
+ * fence type (first word of the fence info string, case-insensitive).
11
+ */
12
+ codeBlockRenderers?: Record<string, CodeBlockRenderer>;
13
+ /** Handles primary-button activation of inline Markdown links. */
14
+ onMarkdownLinkActivate?: MarkdownLinkHandler;
15
+ }
16
+ export declare const View: ({ contentProvider, actions, renderers, codeBlockRenderers, onMarkdownLinkActivate, }: ViewProps) => React.ReactNode;
17
+ export {};
18
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AASnE,UAAU,SAAS;IACjB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACvD,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,mBAAmB,CAAC;CAC9C;AAED,eAAO,MAAM,IAAI,GAAiB,sFAM/B,SAAS,KAAG,KAAK,CAAC,SA+EpB,CAAC"}
@@ -2,9 +2,9 @@ import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useCallback, useMemo, useState } from "react";
3
3
  import { useTheme } from "@tooee/themes";
4
4
  import { isCustomContent } from "./types.js";
5
- import { useContentLoader } from "./hooks/useContentLoader.js";
5
+ import { useContentLoader } from "./hooks/use-content-loader.js";
6
6
  import { MarkdownSubview, CodeSubview, TableSubview, CustomSubview, } from "./components/subviews/index.js";
7
- export function View({ contentProvider, actions, renderers, codeBlockRenderers }) {
7
+ export const View = function View({ contentProvider, actions, renderers, codeBlockRenderers, onMarkdownLinkActivate, }) {
8
8
  const { theme } = useTheme();
9
9
  const { content, streaming, error, providerMarks, reload } = useContentLoader(contentProvider);
10
10
  const [userMarks, setUserMarks] = useState([]);
@@ -23,34 +23,40 @@ export function View({ contentProvider, actions, renderers, codeBlockRenderers }
23
23
  // Mark sets are decoration layers; the controller composes them with the
24
24
  // interaction layers it generates, ordered by each set's own priority.
25
25
  const decorations = useMemo(() => [...providerMarks, ...userMarks], [providerMarks, userMarks]);
26
- if (error) {
26
+ if ((error?.length ?? 0) > 0) {
27
27
  return (_jsx("box", { style: { flexDirection: "column" }, children: _jsx("text", { content: `Error: ${error}`, fg: theme.error }) }));
28
28
  }
29
29
  if (!content) {
30
30
  return (_jsx("box", { children: _jsx("text", { content: "Loading...", fg: theme.textMuted }) }));
31
31
  }
32
32
  const shared = {
33
+ actions,
34
+ clearAllUserMarks,
35
+ clearMarkNamespace,
33
36
  decorations,
34
37
  providerMarks,
35
- userMarks,
36
- setMarkSet,
37
- clearMarkNamespace,
38
- clearAllUserMarks,
39
38
  reload,
39
+ setMarkSet,
40
40
  streaming,
41
- actions,
41
+ userMarks,
42
42
  };
43
43
  if (isCustomContent(content)) {
44
44
  return _jsx(CustomSubview, { content: content, renderers: renderers, ...shared });
45
45
  }
46
46
  switch (content.format) {
47
- case "markdown":
48
- return (_jsx(MarkdownSubview, { content: content, codeBlockRenderers: codeBlockRenderers, ...shared }));
47
+ case "markdown": {
48
+ return (_jsx(MarkdownSubview, { content: content, codeBlockRenderers: codeBlockRenderers, onLinkActivate: onMarkdownLinkActivate, ...shared }));
49
+ }
49
50
  case "code":
50
- case "text":
51
+ case "text": {
51
52
  return _jsx(CodeSubview, { content: content, ...shared });
52
- case "table":
53
+ }
54
+ case "table": {
53
55
  return _jsx(TableSubview, { content: content, ...shared });
56
+ }
57
+ default: {
58
+ return null;
59
+ }
54
60
  }
55
- }
56
- //# sourceMappingURL=View.js.map
61
+ };
62
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tooee/view",
3
- "version": "0.2.3",
3
+ "version": "0.3.0",
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.2.3",
41
- "@tooee/config": "0.2.3",
42
- "@tooee/layout": "0.2.3",
43
- "@tooee/marks": "0.2.3",
44
- "@tooee/overlays": "0.2.3",
45
- "@tooee/renderers": "0.2.3",
46
- "@tooee/search": "0.2.3",
47
- "@tooee/shell": "0.2.3",
48
- "@tooee/themes": "0.2.3",
40
+ "@tooee/commands": "0.3.0",
41
+ "@tooee/config": "0.3.0",
42
+ "@tooee/layout": "0.3.0",
43
+ "@tooee/marks": "0.3.0",
44
+ "@tooee/overlays": "0.3.0",
45
+ "@tooee/renderers": "0.3.0",
46
+ "@tooee/search": "0.3.0",
47
+ "@tooee/shell": "0.3.0",
48
+ "@tooee/themes": "0.3.0",
49
49
  "@xstate/store": "^4",
50
50
  "@xstate/store-react": "^2",
51
51
  "marked": "^17.0.4"