@tooee/view 0.1.12 → 0.1.15

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 (35) hide show
  1. package/dist/components/SubviewLayout.d.ts +2 -1
  2. package/dist/components/SubviewLayout.d.ts.map +1 -1
  3. package/dist/components/SubviewLayout.js +5 -13
  4. package/dist/components/SubviewLayout.js.map +1 -1
  5. package/dist/components/subviews/CodeSubview.d.ts.map +1 -1
  6. package/dist/components/subviews/CodeSubview.js +5 -4
  7. package/dist/components/subviews/CodeSubview.js.map +1 -1
  8. package/dist/components/subviews/CustomSubview.d.ts.map +1 -1
  9. package/dist/components/subviews/CustomSubview.js +8 -7
  10. package/dist/components/subviews/CustomSubview.js.map +1 -1
  11. package/dist/components/subviews/ImageSubview.d.ts.map +1 -1
  12. package/dist/components/subviews/ImageSubview.js +2 -1
  13. package/dist/components/subviews/ImageSubview.js.map +1 -1
  14. package/dist/components/subviews/MarkdownSubview.d.ts.map +1 -1
  15. package/dist/components/subviews/MarkdownSubview.js +13 -8
  16. package/dist/components/subviews/MarkdownSubview.js.map +1 -1
  17. package/dist/components/subviews/TableSubview.d.ts.map +1 -1
  18. package/dist/components/subviews/TableSubview.js +9 -8
  19. package/dist/components/subviews/TableSubview.js.map +1 -1
  20. package/dist/hooks/useMarkState.d.ts +2 -1
  21. package/dist/hooks/useMarkState.d.ts.map +1 -1
  22. package/dist/hooks/useMarkState.js +3 -3
  23. package/dist/hooks/useMarkState.js.map +1 -1
  24. package/dist/hooks/useViewCommandContext.d.ts.map +1 -1
  25. package/dist/hooks/useViewCommandContext.js +3 -2
  26. package/dist/hooks/useViewCommandContext.js.map +1 -1
  27. package/package.json +10 -9
  28. package/src/components/SubviewLayout.tsx +7 -14
  29. package/src/components/subviews/CodeSubview.tsx +5 -4
  30. package/src/components/subviews/CustomSubview.tsx +8 -7
  31. package/src/components/subviews/ImageSubview.tsx +2 -1
  32. package/src/components/subviews/MarkdownSubview.tsx +12 -11
  33. package/src/components/subviews/TableSubview.tsx +9 -8
  34. package/src/hooks/useMarkState.ts +6 -5
  35. package/src/hooks/useViewCommandContext.ts +3 -2
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { type StatusBarItem } from "@tooee/layout";
3
- import type { NavigationState, SearchState } from "@tooee/shell";
3
+ import type { NavigationState } from "@tooee/shell";
4
+ import type { SearchState } from "@tooee/search";
4
5
  import type { AnyContent } from "../types.js";
5
6
  interface SubviewLayoutProps {
6
7
  content: AnyContent;
@@ -1 +1 @@
1
- {"version":3,"file":"SubviewLayout.d.ts","sourceRoot":"","sources":["../../src/components/SubviewLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,GAAG,EAAE,eAAe,GAAG,WAAW,CAAA;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,GAAG,EACH,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,kBAAkB,aAiCpB"}
1
+ {"version":3,"file":"SubviewLayout.d.ts","sourceRoot":"","sources":["../../src/components/SubviewLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,GAAG,EAAE,eAAe,GAAG,WAAW,CAAA;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAA;IAClC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,GAAG,EACH,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACT,EAAE,kBAAkB,aAwBpB"}
@@ -1,26 +1,18 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { AppLayout } from "@tooee/layout";
3
+ import { useMode } from "@tooee/commands";
3
4
  export function SubviewLayout({ content, nav, streaming, themeName, extraStatusItems, children, }) {
5
+ const mode = useMode();
4
6
  const statusItems = [
5
7
  { label: "Theme:", value: themeName },
6
8
  ...(extraStatusItems ?? []),
7
- { label: "Mode:", value: nav.mode },
8
- { label: "Cursor:", value: nav.cursor ? String(nav.cursor.line) : "-" },
9
+ { label: "Mode:", value: mode },
10
+ { label: "Cursor:", value: nav.cursor !== null ? String(nav.cursor) : "-" },
9
11
  ...(streaming ? [{ label: "Status:", value: "streaming" }] : []),
10
12
  ...(nav.searchActive ? [{ label: "Search:", value: nav.searchQuery }] : []),
11
13
  ];
12
14
  return (_jsx(AppLayout, { titleBar: content.title
13
15
  ? { title: content.title, subtitle: content.format }
14
- : { title: content.format }, statusBar: { items: statusItems }, searchBar: {
15
- active: nav.searchActive,
16
- query: nav.searchQuery,
17
- onQueryChange: nav.setSearchQuery,
18
- onSubmit: nav.submitSearch,
19
- onCancel: () => {
20
- nav.setSearchQuery("");
21
- },
22
- matchCount: nav.matchingLines.length,
23
- currentMatch: nav.currentMatchIndex,
24
- }, children: children }));
16
+ : { title: content.format }, statusBar: { items: statusItems }, searchBar: nav, children: children }));
25
17
  }
26
18
  //# sourceMappingURL=SubviewLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SubviewLayout.js","sourceRoot":"","sources":["../../src/components/SubviewLayout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,eAAe,CAAA;AAa7D,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,GAAG,EACH,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACW;IACnB,MAAM,WAAW,GAAG;QAClB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;QACrC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC3B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE;QACnC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACvE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;IAED,OAAO,CACL,KAAC,SAAS,IACR,QAAQ,EACN,OAAO,CAAC,KAAK;YACX,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;YACpD,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAE/B,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EACjC,SAAS,EAAE;YACT,MAAM,EAAE,GAAG,CAAC,YAAY;YACxB,KAAK,EAAE,GAAG,CAAC,WAAW;YACtB,aAAa,EAAE,GAAG,CAAC,cAAc;YACjC,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,QAAQ,EAAE,GAAG,EAAE;gBACb,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC;YACD,UAAU,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM;YACpC,YAAY,EAAE,GAAG,CAAC,iBAAiB;SACpC,YAEA,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"SubviewLayout.js","sourceRoot":"","sources":["../../src/components/SubviewLayout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAsB,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAczC,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,GAAG,EACH,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,QAAQ,GACW;IACnB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,WAAW,GAAG;QAClB,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE;QACrC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;QAC3B,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;QAC/B,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QAC3E,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;IAED,OAAO,CACL,KAAC,SAAS,IACR,QAAQ,EACN,OAAO,CAAC,KAAK;YACX,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;YACpD,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,EAE/B,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EACjC,SAAS,EAAE,GAAG,YAEb,QAAQ,GACC,CACb,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CodeSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"AAKA,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,6BAsFlB"}
1
+ {"version":3,"file":"CodeSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"AAMA,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,6BAsFlB"}
@@ -3,7 +3,8 @@ import { useEffect, useMemo, useRef } from "react";
3
3
  import { CodeView } from "@tooee/renderers";
4
4
  import { useTheme } from "@tooee/themes";
5
5
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
6
- import { findMatchingLines, useCopy, useNavigation, useSearch } from "@tooee/shell";
6
+ import { useCopy, useNavigation } from "@tooee/shell";
7
+ import { findMatchingLines, useSearch } from "@tooee/search";
7
8
  import { useMarkState } from "../../hooks/useMarkState.js";
8
9
  import { useViewCommands } from "../../hooks/useViewCommands.js";
9
10
  import { SubviewLayout } from "../SubviewLayout.js";
@@ -29,8 +30,8 @@ export function CodeSubview({ content, providerMarks, userMarks, setMarkSet, cle
29
30
  });
30
31
  const layoutNav = { ...nav, ...search };
31
32
  useEffect(() => {
32
- if (nav.cursor) {
33
- docRef.current?.scrollToRow(nav.cursor.line, "nearest");
33
+ if (nav.cursor !== null) {
34
+ docRef.current?.scrollToRow(nav.cursor, "nearest");
34
35
  }
35
36
  }, [nav.cursor]);
36
37
  const { themeName, showLineNumbers } = useViewCommands({ content, textContent, actions });
@@ -53,7 +54,7 @@ export function CodeSubview({ content, providerMarks, userMarks, setMarkSet, cle
53
54
  });
54
55
  const text = content.format === "code" ? content.code : content.text;
55
56
  const extraStatusItems = useMemo(() => {
56
- const selectionCount = nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0;
57
+ const selectionCount = nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0;
57
58
  const toggledCount = nav.toggledIndices.size;
58
59
  const selectionItems = toggledCount > 0
59
60
  ? [{ label: "Selected:", value: String(toggledCount) }]
@@ -1 +1 @@
1
- {"version":3,"file":"CodeSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/CodeSubview.tsx"],"names":[],"mappings":"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"}
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":"CustomSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CustomSubview.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,kBAAmB,SAAQ,YAAY;IAC/C,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC5C;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE,kBAAkB,6BA+GpB"}
1
+ {"version":3,"file":"CustomSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/CustomSubview.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAkB,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,UAAU,kBAAmB,SAAQ,YAAY;IAC/C,OAAO,EAAE,aAAa,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAC5C;AAED,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE,kBAAkB,6BA+GpB"}
@@ -3,7 +3,8 @@ import { useEffect, useMemo, useRef } from "react";
3
3
  import { CodeView } from "@tooee/renderers";
4
4
  import { useTheme } from "@tooee/themes";
5
5
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
6
- import { findMatchingLines, useCopy, useNavigation, useSearch } from "@tooee/shell";
6
+ import { useCopy, useNavigation } from "@tooee/shell";
7
+ import { findMatchingLines, useSearch } from "@tooee/search";
7
8
  import { getTextContent } from "../../types.js";
8
9
  import { useMarkState } from "../../hooks/useMarkState.js";
9
10
  import { useViewCommands } from "../../hooks/useViewCommands.js";
@@ -30,8 +31,8 @@ export function CustomSubview({ content, providerMarks, userMarks, setMarkSet, c
30
31
  });
31
32
  const layoutNav = { ...nav, ...search };
32
33
  useEffect(() => {
33
- if (nav.cursor) {
34
- docRef.current?.scrollToRow(nav.cursor.line, "nearest");
34
+ if (nav.cursor !== null) {
35
+ docRef.current?.scrollToRow(nav.cursor, "nearest");
35
36
  }
36
37
  }, [nav.cursor]);
37
38
  const { themeName } = useViewCommands({ content, textContent, actions });
@@ -53,7 +54,7 @@ export function CustomSubview({ content, providerMarks, userMarks, setMarkSet, c
53
54
  clearAllUserMarks,
54
55
  });
55
56
  const extraStatusItems = useMemo(() => {
56
- const selectionCount = nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0;
57
+ const selectionCount = nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0;
57
58
  const toggledCount = nav.toggledIndices.size;
58
59
  const selectionItems = toggledCount > 0
59
60
  ? [{ label: "Selected:", value: String(toggledCount) }]
@@ -68,9 +69,9 @@ export function CustomSubview({ content, providerMarks, userMarks, setMarkSet, c
68
69
  }, [content.format, lineCount, nav.selection, nav.toggledIndices]);
69
70
  const customRenderer = renderers?.[content.format];
70
71
  if (customRenderer) {
71
- const cursorLine = nav.cursor?.line ?? undefined;
72
- const selectionStart = nav.selection?.start.line ?? undefined;
73
- const selectionEnd = nav.selection?.end.line ?? undefined;
72
+ const cursorLine = nav.cursor ?? undefined;
73
+ const selectionStart = nav.selection?.start ?? undefined;
74
+ const selectionEnd = nav.selection?.end ?? undefined;
74
75
  return (_jsx(SubviewLayout, { content: content, nav: layoutNav, streaming: streaming, themeName: themeName, extraStatusItems: extraStatusItems, children: customRenderer({
75
76
  content,
76
77
  lineCount,
@@ -1 +1 @@
1
- {"version":3,"file":"CustomSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/CustomSubview.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CustomSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/CustomSubview.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/ImageSubview.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGlD,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,6BAwCnB"}
1
+ {"version":3,"file":"ImageSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/ImageSubview.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGlD,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,6BAwCnB"}
@@ -2,7 +2,8 @@ import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
3
  import { ImageView } from "@tooee/renderers";
4
4
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
5
- import { useNavigation, useSearch } from "@tooee/shell";
5
+ import { useNavigation } from "@tooee/shell";
6
+ import { useSearch } from "@tooee/search";
6
7
  import { useViewCommands } from "../../hooks/useViewCommands.js";
7
8
  import { SubviewLayout } from "../SubviewLayout.js";
8
9
  export function ImageSubview({ content, providerMarks, userMarks, setMarkSet, clearMarkNamespace, clearAllUserMarks, reload, streaming, actions, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/ImageSubview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAOnD,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACW;IAClB,MAAM,GAAG,GAAG,aAAa,CAAC;QACxB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,SAAS,CAAC;QACvB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QACf,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;IAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IAErF,qBAAqB,CAAC;QACpB,OAAO;QACP,GAAG;QACH,MAAM;QACN,aAAa;QACb,SAAS;QACT,UAAU;QACV,kBAAkB;QAClB,iBAAiB;KAClB,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EACnD,CAAC,OAAO,CAAC,MAAM,CAAC,CACjB,CAAA;IAED,OAAO,CACL,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,YAElC,KAAC,SAAS,IAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAI,GACjB,CACjB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"ImageSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/ImageSubview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAOnD,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACW;IAClB,MAAM,GAAG,GAAG,aAAa,CAAC;QACxB,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,SAAS,CAAC;QACvB,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE;QACf,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAA;IAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IAErF,qBAAqB,CAAC;QACpB,OAAO;QACP,GAAG;QACH,MAAM;QACN,aAAa;QACb,SAAS;QACT,UAAU;QACV,kBAAkB;QAClB,iBAAiB;KAClB,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,EACnD,CAAC,OAAO,CAAC,MAAM,CAAC,CACjB,CAAA;IAED,OAAO,CACL,KAAC,aAAa,IACZ,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,YAElC,KAAC,SAAS,IAAC,GAAG,EAAE,OAAO,CAAC,GAAG,GAAI,GACjB,CACjB,CAAA;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"AAMA,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;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,oBAAoB,6BA+FtB"}
1
+ {"version":3,"file":"MarkdownSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"AAOA,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;CACzB;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,SAAS,EACT,OAAO,GACR,EAAE,oBAAoB,6BA+FtB"}
@@ -1,10 +1,11 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useEffect, useMemo, useRef } from "react";
3
3
  import { marked } from "marked";
4
- import { MarkdownView } from "@tooee/renderers";
4
+ import { MarkdownView, flattenTokens } from "@tooee/renderers";
5
5
  import { useTheme } from "@tooee/themes";
6
6
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
7
- import { useCopy, useNavigation, useSearch } from "@tooee/shell";
7
+ import { useCopy, useNavigation } from "@tooee/shell";
8
+ import { useSearch } from "@tooee/search";
8
9
  import { useMarkState } from "../../hooks/useMarkState.js";
9
10
  import { useViewCommands } from "../../hooks/useViewCommands.js";
10
11
  import { SubviewLayout } from "../SubviewLayout.js";
@@ -13,7 +14,7 @@ export function MarkdownSubview({ content, providerMarks, userMarks, setMarkSet,
13
14
  const docRef = useRef(null);
14
15
  const textContent = content.markdown;
15
16
  const lineCount = useMemo(() => textContent.split("\n").length, [textContent]);
16
- const blocks = useMemo(() => marked.lexer(content.markdown).filter((token) => token.type !== "space"), [content.markdown]);
17
+ const blocks = useMemo(() => flattenTokens(marked.lexer(content.markdown)), [content.markdown]);
17
18
  const nav = useNavigation({
18
19
  rowCount: blocks.length,
19
20
  multiSelect: true,
@@ -22,7 +23,8 @@ export function MarkdownSubview({ content, providerMarks, userMarks, setMarkSet,
22
23
  match: (query) => {
23
24
  const lowerQuery = query.toLowerCase();
24
25
  return blocks.flatMap((block, index) => {
25
- const raw = "raw" in block && typeof block.raw === "string" ? block.raw : "";
26
+ const { token } = block;
27
+ const raw = "raw" in token && typeof token.raw === "string" ? token.raw : "";
26
28
  return raw.toLowerCase().includes(lowerQuery) ? [index] : [];
27
29
  });
28
30
  },
@@ -31,7 +33,10 @@ export function MarkdownSubview({ content, providerMarks, userMarks, setMarkSet,
31
33
  useCopy({
32
34
  getRowText: (index) => {
33
35
  const block = blocks[index];
34
- return block && "raw" in block && typeof block.raw === "string" ? block.raw : "";
36
+ if (!block)
37
+ return "";
38
+ const { token } = block;
39
+ return "raw" in token && typeof token.raw === "string" ? token.raw : "";
35
40
  },
36
41
  cursor: nav.cursor,
37
42
  selection: nav.selection,
@@ -39,8 +44,8 @@ export function MarkdownSubview({ content, providerMarks, userMarks, setMarkSet,
39
44
  });
40
45
  const layoutNav = { ...nav, ...search };
41
46
  useEffect(() => {
42
- if (nav.cursor) {
43
- docRef.current?.scrollToRow(nav.cursor.line, "nearest");
47
+ if (nav.cursor !== null) {
48
+ docRef.current?.scrollToRow(nav.cursor, "nearest");
44
49
  }
45
50
  }, [nav.cursor]);
46
51
  const { themeName, showLineNumbers } = useViewCommands({ content, textContent, actions });
@@ -62,7 +67,7 @@ export function MarkdownSubview({ content, providerMarks, userMarks, setMarkSet,
62
67
  clearAllUserMarks,
63
68
  });
64
69
  const extraStatusItems = useMemo(() => {
65
- const selectionCount = nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0;
70
+ const selectionCount = nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0;
66
71
  const toggledCount = nav.toggledIndices.size;
67
72
  const selectionItems = toggledCount > 0
68
73
  ? [{ label: "Selected:", value: String(toggledCount) }]
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/MarkdownSubview.tsx"],"names":[],"mappings":"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"}
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":"AAKA,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,6BAoHnB"}
1
+ {"version":3,"file":"TableSubview.d.ts","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"AAMA,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,6BAoHnB"}
@@ -3,7 +3,8 @@ import { useEffect, useMemo, useRef } from "react";
3
3
  import { Table } from "@tooee/renderers";
4
4
  import { useTheme } from "@tooee/themes";
5
5
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js";
6
- import { useCopy, useNavigation, useSearch } from "@tooee/shell";
6
+ import { useCopy, useNavigation } from "@tooee/shell";
7
+ import { useSearch } from "@tooee/search";
7
8
  import { getTextContent } from "../../types.js";
8
9
  import { useMarkState } from "../../hooks/useMarkState.js";
9
10
  import { useViewCommands } from "../../hooks/useViewCommands.js";
@@ -35,8 +36,8 @@ export function TableSubview({ content, providerMarks, userMarks, setMarkSet, cl
35
36
  });
36
37
  const layoutNav = { ...nav, ...search };
37
38
  useEffect(() => {
38
- if (nav.cursor) {
39
- docRef.current?.scrollToRow(nav.cursor.line, "nearest");
39
+ if (nav.cursor !== null) {
40
+ docRef.current?.scrollToRow(nav.cursor, "nearest");
40
41
  }
41
42
  }, [nav.cursor]);
42
43
  const { themeName, showLineNumbers } = useViewCommands({ content, textContent, actions });
@@ -48,9 +49,9 @@ export function TableSubview({ content, providerMarks, userMarks, setMarkSet, cl
48
49
  userMarks,
49
50
  });
50
51
  function getActiveRow() {
51
- if (!nav.cursor)
52
+ if (nav.cursor === null)
52
53
  return undefined;
53
- return content.rows[nav.cursor.line];
54
+ return content.rows[nav.cursor];
54
55
  }
55
56
  function getSelectedRows() {
56
57
  if (nav.toggledIndices.size) {
@@ -59,8 +60,8 @@ export function TableSubview({ content, providerMarks, userMarks, setMarkSet, cl
59
60
  .filter(Boolean);
60
61
  }
61
62
  if (nav.selection) {
62
- const start = nav.selection.start.line;
63
- const end = nav.selection.end.line;
63
+ const start = nav.selection.start;
64
+ const end = nav.selection.end;
64
65
  return content.rows.slice(start, end + 1);
65
66
  }
66
67
  return [];
@@ -80,7 +81,7 @@ export function TableSubview({ content, providerMarks, userMarks, setMarkSet, cl
80
81
  },
81
82
  });
82
83
  const extraStatusItems = useMemo(() => {
83
- const selectionCount = nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0;
84
+ const selectionCount = nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0;
84
85
  const toggledCount = nav.toggledIndices.size;
85
86
  const selectionItems = toggledCount > 0
86
87
  ? [{ label: "Selected:", value: String(toggledCount) }]
@@ -1 +1 @@
1
- {"version":3,"file":"TableSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableSubview.js","sourceRoot":"","sources":["../../../src/components/subviews/TableSubview.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { MarkSet, MarkState } from "@tooee/marks";
2
- import type { NavigationState, SearchState } from "@tooee/shell";
2
+ import type { NavigationState } from "@tooee/shell";
3
+ import type { SearchState } from "@tooee/search";
3
4
  import type { ResolvedTheme } from "@tooee/themes";
4
5
  interface UseMarkStateParams {
5
6
  nav: Pick<NavigationState, "cursor" | "selection" | "toggledIndices">;
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkState.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,mBAAmB,CAAC,CAAA;IAChE,KAAK,EAAE,aAAa,CAAA;IACpB,aAAa,EAAE,OAAO,EAAE,CAAA;IACxB,SAAS,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,MAAM,EACN,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAE,kBAAkB,GAAG,SAAS,GAAG,SAAS,CA8E5C"}
1
+ {"version":3,"file":"useMarkState.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkState.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAElD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,WAAW,GAAG,gBAAgB,CAAC,CAAA;IACrE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,mBAAmB,CAAC,CAAA;IAChE,KAAK,EAAE,aAAa,CAAA;IACpB,aAAa,EAAE,OAAO,EAAE,CAAA;IACxB,SAAS,EAAE,OAAO,EAAE,CAAA;CACrB;AAED,wBAAgB,YAAY,CAAC,EAC3B,GAAG,EACH,MAAM,EACN,KAAK,EACL,aAAa,EACb,SAAS,GACV,EAAE,kBAAkB,GAAG,SAAS,GAAG,SAAS,CA8E5C"}
@@ -28,7 +28,7 @@ export function useMarkState({ nav, search, theme, providerMarks, userMarks, })
28
28
  // Selection range
29
29
  if (nav.selection) {
30
30
  const builder = new MarkSetBuilder();
31
- builder.addRange({ line: nav.selection.start.line }, { line: nav.selection.end.line }, { background: theme.selection });
31
+ builder.addRange({ line: nav.selection.start }, { line: nav.selection.end }, { background: theme.selection });
32
32
  sets.push(builder.build("selection", MarkPriorities.SELECTION));
33
33
  }
34
34
  // Current match highlight
@@ -45,9 +45,9 @@ export function useMarkState({ nav, search, theme, providerMarks, userMarks, })
45
45
  }
46
46
  }
47
47
  // Cursor
48
- if (nav.cursor) {
48
+ if (nav.cursor !== null) {
49
49
  const builder = new MarkSetBuilder();
50
- builder.addLine(nav.cursor.line, {
50
+ builder.addLine(nav.cursor, {
51
51
  background: theme.cursorLine,
52
52
  signBefore: "\u25B8",
53
53
  foreground: theme.primary,
@@ -1 +1 @@
1
- {"version":3,"file":"useMarkState.js","sourceRoot":"","sources":["../../src/hooks/useMarkState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMarkState.js","sourceRoot":"","sources":["../../src/hooks/useMarkState.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useViewCommandContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AACA,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,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,QAoB7B"}
1
+ {"version":3,"file":"useViewCommandContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AACA,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,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,QAqB7B"}
@@ -1,12 +1,13 @@
1
- import { useProvideCommandContext } from "@tooee/commands";
1
+ import { useProvideCommandContext, useMode } from "@tooee/commands";
2
2
  export function useViewCommandContext({ content, nav, reload, providerMarks, userMarks, setMarkSet, clearMarkNamespace, clearAllUserMarks, extras, }) {
3
+ const mode = useMode();
3
4
  useProvideCommandContext(() => ({
4
5
  view: {
5
6
  content,
6
7
  format: content.format,
7
8
  cursor: nav.cursor,
8
9
  selection: nav.selection,
9
- mode: nav.mode,
10
+ mode,
10
11
  toggledIndices: nav.toggledIndices,
11
12
  reload,
12
13
  marks: {
@@ -1 +1 @@
1
- {"version":3,"file":"useViewCommandContext.js","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAkB1D,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,GACsB;IAC5B,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE;YACJ,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,MAAM;YACN,KAAK,EAAE;gBACL,UAAU;gBACV,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS;gBACT,aAAa;aACd;YACD,GAAG,MAAM;SACV;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"useViewCommandContext.js","sourceRoot":"","sources":["../../src/hooks/useViewCommandContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAkBnE,MAAM,UAAU,qBAAqB,CAAC,EACpC,OAAO,EACP,GAAG,EACH,MAAM,EACN,aAAa,EACb,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,GACsB;IAC5B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE;YACJ,OAAO;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI;YACJ,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,MAAM;YACN,KAAK,EAAE;gBACL,UAAU;gBACV,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,iBAAiB;gBAC3B,SAAS;gBACT,aAAa;aACd;YACD,GAAG,MAAM;SACV;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tooee/view",
3
- "version": "0.1.12",
3
+ "version": "0.1.15",
4
4
  "description": "Terminal content viewer for markdown, code, images, and tables",
5
5
  "keywords": [
6
6
  "cli",
@@ -38,14 +38,15 @@
38
38
  "typecheck": "tsc --noEmit"
39
39
  },
40
40
  "dependencies": {
41
- "@tooee/commands": "0.1.12",
42
- "@tooee/config": "0.1.12",
43
- "@tooee/layout": "0.1.12",
44
- "@tooee/marks": "0.1.12",
45
- "@tooee/overlays": "0.1.12",
46
- "@tooee/renderers": "0.1.12",
47
- "@tooee/shell": "0.1.12",
48
- "@tooee/themes": "0.1.12",
41
+ "@tooee/commands": "0.1.15",
42
+ "@tooee/config": "0.1.15",
43
+ "@tooee/layout": "0.1.15",
44
+ "@tooee/marks": "0.1.15",
45
+ "@tooee/overlays": "0.1.15",
46
+ "@tooee/renderers": "0.1.15",
47
+ "@tooee/search": "0.1.15",
48
+ "@tooee/shell": "0.1.15",
49
+ "@tooee/themes": "0.1.15",
49
50
  "marked": "^17.0.4"
50
51
  },
51
52
  "devDependencies": {
@@ -1,6 +1,8 @@
1
1
  import type { ReactNode } from "react"
2
2
  import { AppLayout, type StatusBarItem } from "@tooee/layout"
3
- import type { NavigationState, SearchState } from "@tooee/shell"
3
+ import { useMode } from "@tooee/commands"
4
+ import type { NavigationState } from "@tooee/shell"
5
+ import type { SearchState } from "@tooee/search"
4
6
  import type { AnyContent } from "../types.js"
5
7
 
6
8
  interface SubviewLayoutProps {
@@ -20,11 +22,12 @@ export function SubviewLayout({
20
22
  extraStatusItems,
21
23
  children,
22
24
  }: SubviewLayoutProps) {
25
+ const mode = useMode()
23
26
  const statusItems = [
24
27
  { label: "Theme:", value: themeName },
25
28
  ...(extraStatusItems ?? []),
26
- { label: "Mode:", value: nav.mode },
27
- { label: "Cursor:", value: nav.cursor ? String(nav.cursor.line) : "-" },
29
+ { label: "Mode:", value: mode },
30
+ { label: "Cursor:", value: nav.cursor !== null ? String(nav.cursor) : "-" },
28
31
  ...(streaming ? [{ label: "Status:", value: "streaming" }] : []),
29
32
  ...(nav.searchActive ? [{ label: "Search:", value: nav.searchQuery }] : []),
30
33
  ]
@@ -37,17 +40,7 @@ export function SubviewLayout({
37
40
  : { title: content.format }
38
41
  }
39
42
  statusBar={{ items: statusItems }}
40
- searchBar={{
41
- active: nav.searchActive,
42
- query: nav.searchQuery,
43
- onQueryChange: nav.setSearchQuery,
44
- onSubmit: nav.submitSearch,
45
- onCancel: () => {
46
- nav.setSearchQuery("")
47
- },
48
- matchCount: nav.matchingLines.length,
49
- currentMatch: nav.currentMatchIndex,
50
- }}
43
+ searchBar={nav}
51
44
  >
52
45
  {children}
53
46
  </AppLayout>
@@ -2,7 +2,8 @@ import { useEffect, useMemo, useRef } from "react"
2
2
  import { CodeView, type RowDocumentRenderable } from "@tooee/renderers"
3
3
  import { useTheme } from "@tooee/themes"
4
4
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
5
- import { findMatchingLines, useCopy, useNavigation, useSearch } from "@tooee/shell"
5
+ import { useCopy, useNavigation } from "@tooee/shell"
6
+ import { findMatchingLines, useSearch } from "@tooee/search"
6
7
  import type { CodeContent, TextContent } from "../../types.js"
7
8
  import { useMarkState } from "../../hooks/useMarkState.js"
8
9
  import { useViewCommands } from "../../hooks/useViewCommands.js"
@@ -47,8 +48,8 @@ export function CodeSubview({
47
48
  const layoutNav = { ...nav, ...search }
48
49
 
49
50
  useEffect(() => {
50
- if (nav.cursor) {
51
- docRef.current?.scrollToRow(nav.cursor.line, "nearest")
51
+ if (nav.cursor !== null) {
52
+ docRef.current?.scrollToRow(nav.cursor, "nearest")
52
53
  }
53
54
  }, [nav.cursor])
54
55
 
@@ -77,7 +78,7 @@ export function CodeSubview({
77
78
 
78
79
  const extraStatusItems = useMemo(() => {
79
80
  const selectionCount =
80
- nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0
81
+ nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0
81
82
  const toggledCount = nav.toggledIndices.size
82
83
  const selectionItems =
83
84
  toggledCount > 0
@@ -2,7 +2,8 @@ import { useEffect, useMemo, useRef } from "react"
2
2
  import { CodeView, type RowDocumentRenderable } from "@tooee/renderers"
3
3
  import { useTheme } from "@tooee/themes"
4
4
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
5
- import { findMatchingLines, useCopy, useNavigation, useSearch } from "@tooee/shell"
5
+ import { useCopy, useNavigation } from "@tooee/shell"
6
+ import { findMatchingLines, useSearch } from "@tooee/search"
6
7
  import { getTextContent, type CustomContent, type ContentRenderer } from "../../types.js"
7
8
  import { useMarkState } from "../../hooks/useMarkState.js"
8
9
  import { useViewCommands } from "../../hooks/useViewCommands.js"
@@ -49,8 +50,8 @@ export function CustomSubview({
49
50
  const layoutNav = { ...nav, ...search }
50
51
 
51
52
  useEffect(() => {
52
- if (nav.cursor) {
53
- docRef.current?.scrollToRow(nav.cursor.line, "nearest")
53
+ if (nav.cursor !== null) {
54
+ docRef.current?.scrollToRow(nav.cursor, "nearest")
54
55
  }
55
56
  }, [nav.cursor])
56
57
 
@@ -77,7 +78,7 @@ export function CustomSubview({
77
78
 
78
79
  const extraStatusItems = useMemo(() => {
79
80
  const selectionCount =
80
- nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0
81
+ nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0
81
82
  const toggledCount = nav.toggledIndices.size
82
83
  const selectionItems =
83
84
  toggledCount > 0
@@ -94,9 +95,9 @@ export function CustomSubview({
94
95
 
95
96
  const customRenderer = renderers?.[content.format]
96
97
  if (customRenderer) {
97
- const cursorLine = nav.cursor?.line ?? undefined
98
- const selectionStart = nav.selection?.start.line ?? undefined
99
- const selectionEnd = nav.selection?.end.line ?? undefined
98
+ const cursorLine = nav.cursor ?? undefined
99
+ const selectionStart = nav.selection?.start ?? undefined
100
+ const selectionEnd = nav.selection?.end ?? undefined
100
101
 
101
102
  return (
102
103
  <SubviewLayout
@@ -1,7 +1,8 @@
1
1
  import { useMemo } from "react"
2
2
  import { ImageView } from "@tooee/renderers"
3
3
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
4
- import { useNavigation, useSearch } from "@tooee/shell"
4
+ import { useNavigation } from "@tooee/shell"
5
+ import { useSearch } from "@tooee/search"
5
6
  import type { ImageContent } from "../../types.js"
6
7
  import { useViewCommands } from "../../hooks/useViewCommands.js"
7
8
  import { SubviewLayout } from "../SubviewLayout.js"
@@ -1,9 +1,10 @@
1
1
  import { useEffect, useMemo, useRef } from "react"
2
2
  import { marked } from "marked"
3
- import { MarkdownView, type RowDocumentRenderable } from "@tooee/renderers"
3
+ import { MarkdownView, flattenTokens, type RowDocumentRenderable } from "@tooee/renderers"
4
4
  import { useTheme } from "@tooee/themes"
5
5
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
6
- import { useCopy, useNavigation, useSearch } from "@tooee/shell"
6
+ import { useCopy, useNavigation } from "@tooee/shell"
7
+ import { useSearch } from "@tooee/search"
7
8
  import type { MarkdownContent } from "../../types.js"
8
9
  import { useMarkState } from "../../hooks/useMarkState.js"
9
10
  import { useViewCommands } from "../../hooks/useViewCommands.js"
@@ -29,10 +30,7 @@ export function MarkdownSubview({
29
30
  const docRef = useRef<RowDocumentRenderable>(null)
30
31
  const textContent = content.markdown
31
32
  const lineCount = useMemo(() => textContent.split("\n").length, [textContent])
32
- const blocks = useMemo(
33
- () => marked.lexer(content.markdown).filter((token) => token.type !== "space"),
34
- [content.markdown],
35
- )
33
+ const blocks = useMemo(() => flattenTokens(marked.lexer(content.markdown)), [content.markdown])
36
34
 
37
35
  const nav = useNavigation({
38
36
  rowCount: blocks.length,
@@ -42,7 +40,8 @@ export function MarkdownSubview({
42
40
  match: (query) => {
43
41
  const lowerQuery = query.toLowerCase()
44
42
  return blocks.flatMap((block, index) => {
45
- const raw = "raw" in block && typeof block.raw === "string" ? block.raw : ""
43
+ const { token } = block
44
+ const raw = "raw" in token && typeof token.raw === "string" ? token.raw : ""
46
45
  return raw.toLowerCase().includes(lowerQuery) ? [index] : []
47
46
  })
48
47
  },
@@ -51,7 +50,9 @@ export function MarkdownSubview({
51
50
  useCopy({
52
51
  getRowText: (index) => {
53
52
  const block = blocks[index]
54
- return block && "raw" in block && typeof block.raw === "string" ? block.raw : ""
53
+ if (!block) return ""
54
+ const { token } = block
55
+ return "raw" in token && typeof token.raw === "string" ? token.raw : ""
55
56
  },
56
57
  cursor: nav.cursor,
57
58
  selection: nav.selection,
@@ -60,8 +61,8 @@ export function MarkdownSubview({
60
61
  const layoutNav = { ...nav, ...search }
61
62
 
62
63
  useEffect(() => {
63
- if (nav.cursor) {
64
- docRef.current?.scrollToRow(nav.cursor.line, "nearest")
64
+ if (nav.cursor !== null) {
65
+ docRef.current?.scrollToRow(nav.cursor, "nearest")
65
66
  }
66
67
  }, [nav.cursor])
67
68
 
@@ -88,7 +89,7 @@ export function MarkdownSubview({
88
89
 
89
90
  const extraStatusItems = useMemo(() => {
90
91
  const selectionCount =
91
- nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0
92
+ nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0
92
93
  const toggledCount = nav.toggledIndices.size
93
94
  const selectionItems =
94
95
  toggledCount > 0
@@ -2,7 +2,8 @@ import { useEffect, useMemo, useRef } from "react"
2
2
  import { Table, type RowDocumentRenderable } from "@tooee/renderers"
3
3
  import { useTheme } from "@tooee/themes"
4
4
  import { useViewCommandContext } from "../../hooks/useViewCommandContext.js"
5
- import { useCopy, useNavigation, useSearch } from "@tooee/shell"
5
+ import { useCopy, useNavigation } from "@tooee/shell"
6
+ import { useSearch } from "@tooee/search"
6
7
  import { getTextContent, type TableContent } from "../../types.js"
7
8
  import { useMarkState } from "../../hooks/useMarkState.js"
8
9
  import { useViewCommands } from "../../hooks/useViewCommands.js"
@@ -55,8 +56,8 @@ export function TableSubview({
55
56
  const layoutNav = { ...nav, ...search }
56
57
 
57
58
  useEffect(() => {
58
- if (nav.cursor) {
59
- docRef.current?.scrollToRow(nav.cursor.line, "nearest")
59
+ if (nav.cursor !== null) {
60
+ docRef.current?.scrollToRow(nav.cursor, "nearest")
60
61
  }
61
62
  }, [nav.cursor])
62
63
 
@@ -71,8 +72,8 @@ export function TableSubview({
71
72
  })
72
73
 
73
74
  function getActiveRow(): Record<string, unknown> | undefined {
74
- if (!nav.cursor) return undefined
75
- return content.rows[nav.cursor.line]
75
+ if (nav.cursor === null) return undefined
76
+ return content.rows[nav.cursor]
76
77
  }
77
78
 
78
79
  function getSelectedRows(): Record<string, unknown>[] {
@@ -82,8 +83,8 @@ export function TableSubview({
82
83
  .filter(Boolean)
83
84
  }
84
85
  if (nav.selection) {
85
- const start = nav.selection.start.line
86
- const end = nav.selection.end.line
86
+ const start = nav.selection.start
87
+ const end = nav.selection.end
87
88
  return content.rows.slice(start, end + 1)
88
89
  }
89
90
  return []
@@ -106,7 +107,7 @@ export function TableSubview({
106
107
 
107
108
  const extraStatusItems = useMemo(() => {
108
109
  const selectionCount =
109
- nav.selection != null ? nav.selection.end.line - nav.selection.start.line + 1 : 0
110
+ nav.selection != null ? nav.selection.end - nav.selection.start + 1 : 0
110
111
  const toggledCount = nav.toggledIndices.size
111
112
  const selectionItems =
112
113
  toggledCount > 0
@@ -1,7 +1,8 @@
1
1
  import { useMemo } from "react"
2
2
  import { MarkSetBuilder, createMarkState, MarkPriorities } from "@tooee/marks"
3
3
  import type { MarkSet, MarkState } from "@tooee/marks"
4
- import type { NavigationState, SearchState } from "@tooee/shell"
4
+ import type { NavigationState } from "@tooee/shell"
5
+ import type { SearchState } from "@tooee/search"
5
6
  import type { ResolvedTheme } from "@tooee/themes"
6
7
 
7
8
  interface UseMarkStateParams {
@@ -50,8 +51,8 @@ export function useMarkState({
50
51
  if (nav.selection) {
51
52
  const builder = new MarkSetBuilder()
52
53
  builder.addRange(
53
- { line: nav.selection.start.line },
54
- { line: nav.selection.end.line },
54
+ { line: nav.selection.start },
55
+ { line: nav.selection.end },
55
56
  { background: theme.selection },
56
57
  )
57
58
  sets.push(builder.build("selection", MarkPriorities.SELECTION))
@@ -72,9 +73,9 @@ export function useMarkState({
72
73
  }
73
74
 
74
75
  // Cursor
75
- if (nav.cursor) {
76
+ if (nav.cursor !== null) {
76
77
  const builder = new MarkSetBuilder()
77
- builder.addLine(nav.cursor.line, {
78
+ builder.addLine(nav.cursor, {
78
79
  background: theme.cursorLine,
79
80
  signBefore: "\u25B8",
80
81
  foreground: theme.primary,
@@ -1,4 +1,4 @@
1
- import { useProvideCommandContext } from "@tooee/commands"
1
+ import { useProvideCommandContext, useMode } from "@tooee/commands"
2
2
  import type { NavigationState } from "@tooee/shell"
3
3
  import type { MarkSet } from "@tooee/marks"
4
4
  import type { AnyContent } from "../types.js"
@@ -27,13 +27,14 @@ export function useViewCommandContext({
27
27
  clearAllUserMarks,
28
28
  extras,
29
29
  }: UseViewCommandContextParams) {
30
+ const mode = useMode()
30
31
  useProvideCommandContext(() => ({
31
32
  view: {
32
33
  content,
33
34
  format: content.format,
34
35
  cursor: nav.cursor,
35
36
  selection: nav.selection,
36
- mode: nav.mode,
37
+ mode,
37
38
  toggledIndices: nav.toggledIndices,
38
39
  reload,
39
40
  marks: {