@tooee/renderers 0.1.5 → 0.1.7

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.
@@ -1,3 +1,6 @@
1
+ import { type RefObject } from "react";
2
+ import type { RowDocumentRenderable } from "./RowDocumentRenderable.js";
3
+ import "./row-document.js";
1
4
  interface CodeViewProps {
2
5
  content: string;
3
6
  language?: string;
@@ -8,7 +11,8 @@ interface CodeViewProps {
8
11
  matchingLines?: Set<number>;
9
12
  currentMatchLine?: number;
10
13
  toggledLines?: Set<number>;
14
+ docRef?: RefObject<RowDocumentRenderable | null>;
11
15
  }
12
- export declare function CodeView({ content, language, showLineNumbers, cursor, selectionStart, selectionEnd, matchingLines, currentMatchLine, toggledLines, }: CodeViewProps): import("react").ReactNode;
16
+ export declare function CodeView({ content, language, showLineNumbers, cursor, selectionStart, selectionEnd, matchingLines, currentMatchLine, toggledLines, docRef, }: CodeViewProps): import("react").ReactNode;
13
17
  export {};
14
18
  //# sourceMappingURL=CodeView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeView.d.ts","sourceRoot":"","sources":["../src/CodeView.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,eAAsB,EACtB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,EAAE,aAAa,6BA0Ff"}
1
+ {"version":3,"file":"CodeView.d.ts","sourceRoot":"","sources":["../src/CodeView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEzD,OAAO,KAAK,EAAE,qBAAqB,EAA8C,MAAM,4BAA4B,CAAA;AACnH,OAAO,mBAAmB,CAAA;AAE1B,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;CACjD;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,eAAsB,EACtB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,MAAM,GACP,EAAE,aAAa,6BA6Cf"}
package/dist/CodeView.js CHANGED
@@ -1,69 +1,36 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { useEffect, useRef } from "react";
3
3
  import { useTheme } from "@tooee/themes";
4
- export function CodeView({ content, language, showLineNumbers = true, cursor, selectionStart, selectionEnd, matchingLines, currentMatchLine, toggledLines, }) {
4
+ import "./row-document.js";
5
+ export function CodeView({ content, language, showLineNumbers = true, cursor, selectionStart, selectionEnd, matchingLines, currentMatchLine, toggledLines, docRef, }) {
5
6
  const { syntax, theme } = useTheme();
6
- const lineNumRef = useRef(null);
7
+ const internalRef = useRef(null);
8
+ const effectiveRef = docRef ?? internalRef;
9
+ const palette = {
10
+ gutterFg: theme.textMuted,
11
+ gutterBg: theme.backgroundElement,
12
+ cursorBg: theme.cursorLine,
13
+ selectionBg: theme.selection,
14
+ matchBg: theme.warning,
15
+ currentMatchBg: theme.primary,
16
+ toggledBg: theme.backgroundPanel,
17
+ cursorSignFg: theme.primary,
18
+ matchSignFg: theme.warning,
19
+ currentMatchSignFg: theme.primary,
20
+ };
7
21
  useEffect(() => {
8
- const ref = lineNumRef.current;
9
- if (!ref)
10
- return;
11
- ref.clearAllLineColors();
12
- ref.clearAllLineSigns();
13
- // Search matches
14
- if (matchingLines) {
15
- for (const line of matchingLines) {
16
- ref.setLineSign(line, {
17
- after: "●",
18
- afterColor: line === currentMatchLine ? theme.primary : theme.warning,
19
- });
20
- }
21
- }
22
- // Selection range
23
- if (selectionStart != null && selectionEnd != null) {
24
- for (let i = selectionStart; i <= selectionEnd; i++) {
25
- ref.setLineColor(i, { content: theme.selection, gutter: theme.selection });
26
- }
27
- }
28
- if (toggledLines) {
29
- for (const line of toggledLines) {
30
- const isSelected = selectionStart != null && selectionEnd != null && line >= selectionStart && line <= selectionEnd;
31
- if (line === cursor || isSelected)
32
- continue;
33
- ref.setLineColor(line, {
34
- content: theme.backgroundPanel,
35
- gutter: theme.backgroundPanel,
36
- });
37
- }
38
- }
39
- // Cursor line (overwrites selection color on cursor line)
40
- if (cursor != null) {
41
- ref.setLineColor(cursor, { content: theme.cursorLine, gutter: theme.cursorLine });
42
- ref.setLineSign(cursor, {
43
- before: "▸",
44
- beforeColor: theme.primary,
45
- // Preserve search match sign if present
46
- ...(matchingLines?.has(cursor)
47
- ? {
48
- after: "●",
49
- afterColor: cursor === currentMatchLine ? theme.primary : theme.warning,
50
- }
51
- : {}),
52
- });
53
- }
54
- }, [
55
- content,
56
- cursor,
57
- selectionStart,
58
- selectionEnd,
59
- matchingLines,
60
- currentMatchLine,
61
- toggledLines,
62
- theme,
63
- ]);
22
+ const decorations = {
23
+ cursorRow: cursor,
24
+ selection: selectionStart != null && selectionEnd != null
25
+ ? { start: selectionStart, end: selectionEnd }
26
+ : null,
27
+ matchingRows: matchingLines,
28
+ currentMatchRow: currentMatchLine,
29
+ toggledRows: toggledLines,
30
+ };
31
+ effectiveRef.current?.setDecorations(decorations);
32
+ }, [cursor, selectionStart, selectionEnd, matchingLines, currentMatchLine, toggledLines]);
64
33
  const codeElement = _jsx("code", { content: content, filetype: language, syntaxStyle: syntax });
65
- return (_jsx("box", { style: {
66
- flexDirection: "column",
67
- }, children: showLineNumbers ? (_jsx("line-number", { ref: lineNumRef, fg: theme.textMuted, bg: theme.backgroundElement, paddingRight: 1, showLineNumbers: true, children: codeElement }, theme.textMuted + theme.backgroundElement)) : (codeElement) }));
34
+ return (_jsx("row-document", { ref: effectiveRef, showLineNumbers: showLineNumbers, palette: palette, signColumnWidth: 1, style: { flexGrow: 1 }, children: codeElement }, theme.textMuted + theme.backgroundElement));
68
35
  }
69
36
  //# sourceMappingURL=CodeView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeView.js","sourceRoot":"","sources":["../src/CodeView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeView.js","sourceRoot":"","sources":["../src/CodeView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,mBAAmB,CAAA;AAe1B,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,eAAe,GAAG,IAAI,EACtB,MAAM,EACN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,MAAM,GACQ;IACd,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IACpC,MAAM,WAAW,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACvD,MAAM,YAAY,GAAG,MAAM,IAAI,WAAW,CAAA;IAE1C,MAAM,OAAO,GAAuB;QAClC,QAAQ,EAAE,KAAK,CAAC,SAAS;QACzB,QAAQ,EAAE,KAAK,CAAC,iBAAiB;QACjC,QAAQ,EAAE,KAAK,CAAC,UAAU;QAC1B,WAAW,EAAE,KAAK,CAAC,SAAS;QAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,cAAc,EAAE,KAAK,CAAC,OAAO;QAC7B,SAAS,EAAE,KAAK,CAAC,eAAe;QAChC,YAAY,EAAE,KAAK,CAAC,OAAO;QAC3B,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,kBAAkB,EAAE,KAAK,CAAC,OAAO;KAClC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,WAAW,GAA2B;YAC1C,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,cAAc,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI;gBACvD,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC9C,CAAC,CAAC,IAAI;YACR,YAAY,EAAE,aAAa;YAC3B,eAAe,EAAE,gBAAgB;YACjC,WAAW,EAAE,YAAY;SAC1B,CAAA;QACD,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;IACnD,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzF,MAAM,WAAW,GAAG,eAAM,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAI,CAAA;IAEvF,OAAO,CACL,uBACE,GAAG,EAAE,YAAY,EAEjB,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,CAAC,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAErB,WAAW,IANP,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAOjC,CAChB,CAAA;AACH,CAAC"}
@@ -1,6 +1,9 @@
1
- import type { ReactNode } from "react";
1
+ import { type ReactNode, type RefObject } from "react";
2
+ import type { RowDocumentRenderable } from "./RowDocumentRenderable.js";
3
+ import "./row-document.js";
2
4
  interface MarkdownViewProps {
3
5
  content: string;
6
+ showLineNumbers?: boolean;
4
7
  activeBlock?: number;
5
8
  selectedBlocks?: {
6
9
  start: number;
@@ -9,7 +12,8 @@ interface MarkdownViewProps {
9
12
  matchingBlocks?: Set<number>;
10
13
  currentMatchBlock?: number;
11
14
  toggledBlocks?: Set<number>;
15
+ docRef?: RefObject<RowDocumentRenderable | null>;
12
16
  }
13
- export declare function MarkdownView({ content, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks, }: MarkdownViewProps): ReactNode;
17
+ export declare function MarkdownView({ content, showLineNumbers, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks, docRef, }: MarkdownViewProps): ReactNode;
14
18
  export {};
15
19
  //# sourceMappingURL=MarkdownView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownView.d.ts","sourceRoot":"","sources":["../src/MarkdownView.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKtC,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,EAAE,iBAAiB,aAsCnB"}
1
+ {"version":3,"file":"MarkdownView.d.ts","sourceRoot":"","sources":["../src/MarkdownView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKzE,OAAO,KAAK,EAAE,qBAAqB,EAA8C,MAAM,4BAA4B,CAAA;AACnH,OAAO,mBAAmB,CAAA;AAE1B,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;CACjD;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,eAAsB,EACtB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,MAAM,GACP,EAAE,iBAAiB,aA+CnB"}
@@ -1,34 +1,40 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@opentui/react/jsx-runtime";
2
2
  import { marked } from "marked";
3
+ import { useEffect, useRef } from "react";
4
+ import { useTerminalDimensions } from "@opentui/react";
3
5
  import { useTheme } from "@tooee/themes";
4
- import { Table } from "./Table.js";
5
- export function MarkdownView({ content, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks, }) {
6
+ import { computeColumnWidths, buildBorderLine, buildDataLine, isNumeric } from "./Table.js";
7
+ import "./row-document.js";
8
+ export function MarkdownView({ content, showLineNumbers = true, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks, docRef, }) {
6
9
  const { theme, syntax } = useTheme();
10
+ const internalRef = useRef(null);
11
+ const effectiveRef = docRef ?? internalRef;
7
12
  const tokens = marked.lexer(content);
8
13
  const blocks = tokens.filter((t) => t.type !== "space");
9
- return (_jsx("box", { style: { flexDirection: "column" }, children: blocks.map((token, index) => {
10
- const { accent: accentColor, background: bgColor } = getBlockStyle(index, theme, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks);
11
- const blockContent = (_jsx(TokenRenderer, { token: token, theme: theme, syntax: syntax }, index));
12
- if (accentColor) {
13
- return (_jsxs("box", { style: { flexDirection: "row" }, backgroundColor: bgColor ?? undefined, children: [_jsx("text", { content: "\u258E", fg: accentColor }), _jsx("box", { style: { flexGrow: 1, flexDirection: "column" }, children: blockContent })] }, index));
14
- }
15
- return _jsx("box", { children: blockContent }, index);
16
- }) }));
17
- }
18
- function getBlockStyle(index, theme, activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks) {
19
- // Priority: cursor > toggled > current match > match > selection
20
- if (activeBlock === index)
21
- return { accent: theme.primary, background: theme.backgroundElement };
22
- if (toggledBlocks?.has(index))
23
- return { accent: theme.secondary, background: theme.backgroundPanel };
24
- if (currentMatchBlock === index)
25
- return { accent: theme.accent, background: null };
26
- if (matchingBlocks?.has(index))
27
- return { accent: theme.warning, background: null };
28
- if (selectedBlocks && index >= selectedBlocks.start && index <= selectedBlocks.end) {
29
- return { accent: theme.secondary, background: theme.backgroundPanel };
30
- }
31
- return { accent: null, background: null };
14
+ const palette = {
15
+ gutterFg: theme.textMuted,
16
+ gutterBg: theme.backgroundElement,
17
+ cursorBg: theme.cursorLine,
18
+ selectionBg: theme.selection,
19
+ matchBg: theme.warning,
20
+ currentMatchBg: theme.primary,
21
+ toggledBg: theme.backgroundPanel,
22
+ cursorSignFg: theme.primary,
23
+ matchSignFg: theme.warning,
24
+ currentMatchSignFg: theme.primary,
25
+ };
26
+ useEffect(() => {
27
+ const decorations = {
28
+ cursorRow: activeBlock,
29
+ selection: selectedBlocks ? { start: selectedBlocks.start, end: selectedBlocks.end } : null,
30
+ matchingRows: matchingBlocks,
31
+ currentMatchRow: currentMatchBlock,
32
+ toggledRows: toggledBlocks,
33
+ };
34
+ effectiveRef.current?.setDecorations(decorations);
35
+ }, [activeBlock, selectedBlocks, matchingBlocks, currentMatchBlock, toggledBlocks]);
36
+ const blockElements = blocks.map((token, index) => (_jsx(TokenRenderer, { token: token, theme: theme, syntax: syntax }, index)));
37
+ return (_jsx("row-document", { ref: effectiveRef, showLineNumbers: showLineNumbers, palette: palette, signColumnWidth: 1, style: { flexGrow: 1 }, children: blockElements }, theme.textMuted + theme.backgroundElement));
32
38
  }
33
39
  function TokenRenderer({ token, theme, syntax, }) {
34
40
  switch (token.type) {
@@ -87,6 +93,7 @@ function ParagraphRenderer({ token, theme }) {
87
93
  return (_jsx("box", { style: { marginBottom: 1, marginLeft: 1, marginRight: 1 }, children: _jsx("text", { style: { fg: theme.markdownText }, children: _jsx(InlineTokens, { tokens: token.tokens || [], theme: theme }) }) }));
88
94
  }
89
95
  function CodeBlockRenderer({ token, theme, syntax, }) {
96
+ const lineCount = token.text.split("\n").length;
90
97
  return (_jsx("box", { style: {
91
98
  marginTop: 0,
92
99
  marginBottom: 1,
@@ -96,7 +103,7 @@ function CodeBlockRenderer({ token, theme, syntax, }) {
96
103
  borderColor: theme.border,
97
104
  backgroundColor: theme.backgroundElement,
98
105
  flexDirection: "column",
99
- }, children: _jsx("code", { content: token.text, filetype: token.lang, syntaxStyle: syntax }) }));
106
+ }, children: _jsx("code", { content: token.text, filetype: token.lang, syntaxStyle: syntax, style: { height: lineCount } }) }));
100
107
  }
101
108
  function BlockquoteRenderer({ token, theme }) {
102
109
  const quoteText = token.tokens
@@ -130,30 +137,28 @@ function ListItemRenderer({ item, ordered, index, theme, }) {
130
137
  }) })] }));
131
138
  }
132
139
  function MarkdownTableRenderer({ token }) {
133
- const seen = new Map();
134
- const columns = token.header.map((cell, index) => {
135
- const header = getPlainText(cell.tokens);
136
- const trimmed = header.trim();
137
- const base = trimmed || `column_${index + 1}`;
138
- const count = seen.get(base) ?? 0;
139
- seen.set(base, count + 1);
140
- const key = count === 0 ? base : `${base}_${count + 1}`;
141
- return {
142
- key,
143
- header: trimmed || undefined,
144
- };
140
+ const { theme } = useTheme();
141
+ const { width: terminalWidth } = useTerminalDimensions();
142
+ const headers = token.header.map((cell) => getPlainText(cell.tokens).trim());
143
+ const rowData = token.rows.map((row) => row.map((cell) => getPlainText(cell.tokens)));
144
+ // Account for gutter + margins when computing available width
145
+ const effectiveMaxWidth = terminalWidth - 4;
146
+ const colWidths = computeColumnWidths(headers, rowData, effectiveMaxWidth, {
147
+ minColumnWidth: 4,
148
+ maxColumnWidth: 50,
149
+ sampleSize: 100,
145
150
  });
146
- const rows = token.rows.map((row) => {
147
- const record = {};
148
- row.forEach((cell, index) => {
149
- const column = columns[index];
150
- if (column) {
151
- record[column.key] = getPlainText(cell.tokens);
152
- }
153
- });
154
- return record;
151
+ const alignments = headers.map((_header, colIdx) => {
152
+ const sampleValues = rowData.slice(0, 10).map((row) => row[colIdx] ?? "");
153
+ const numericCount = sampleValues.filter(isNumeric).length;
154
+ return numericCount > sampleValues.length / 2;
155
155
  });
156
- return _jsx(Table, { columns: columns, rows: rows });
156
+ const topBorder = buildBorderLine(colWidths, "\u250c", "\u252c", "\u2510", "\u2500");
157
+ const headerSep = buildBorderLine(colWidths, "\u251c", "\u253c", "\u2524", "\u2500");
158
+ const bottomBorder = buildBorderLine(colWidths, "\u2514", "\u2534", "\u2518", "\u2500");
159
+ const headerLine = buildDataLine(headers, colWidths, alignments);
160
+ const dataLines = rowData.map((row) => buildDataLine(row, colWidths, alignments));
161
+ return (_jsxs("box", { style: { marginLeft: 1, marginRight: 1, marginBottom: 1, flexDirection: "column" }, children: [_jsx("text", { content: topBorder, style: { fg: theme.border } }), _jsx("text", { content: headerLine, style: { fg: theme.primary } }), _jsx("text", { content: headerSep, style: { fg: theme.border } }), dataLines.map((line, i) => (_jsx("text", { content: line, style: { fg: theme.text } }, i))), _jsx("text", { content: bottomBorder, style: { fg: theme.border } })] }));
157
162
  }
158
163
  function HorizontalRule({ theme }) {
159
164
  return (_jsx("box", { style: { marginTop: 0, marginBottom: 1, marginLeft: 1, marginRight: 1 }, children: _jsx("text", { style: { fg: theme.markdownHorizontalRule }, content: "─".repeat(40) }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownView.js","sourceRoot":"","sources":["../src/MarkdownView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownView.js","sourceRoot":"","sources":["../src/MarkdownView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { type RenderContext, ScrollBoxRenderable, type ScrollBoxOptions } from "@opentui/core";
2
+ import type { OptimizedBuffer } from "@opentui/core";
3
+ export interface RowDocumentPalette {
4
+ gutterFg?: string;
5
+ gutterBg?: string;
6
+ cursorBg?: string;
7
+ selectionBg?: string;
8
+ matchBg?: string;
9
+ currentMatchBg?: string;
10
+ toggledBg?: string;
11
+ cursorSign?: string;
12
+ cursorSignFg?: string;
13
+ matchSign?: string;
14
+ matchSignFg?: string;
15
+ currentMatchSignFg?: string;
16
+ }
17
+ export interface RowDocumentDecorations {
18
+ cursorRow?: number;
19
+ selection?: {
20
+ start: number;
21
+ end: number;
22
+ } | null;
23
+ matchingRows?: Set<number>;
24
+ currentMatchRow?: number;
25
+ toggledRows?: Set<number>;
26
+ signs?: Map<number, {
27
+ text: string;
28
+ fg?: string;
29
+ }>;
30
+ }
31
+ export interface RowDocumentOptions extends ScrollBoxOptions {
32
+ mode?: "auto" | "multi" | "provider";
33
+ showGutter?: boolean;
34
+ showLineNumbers?: boolean;
35
+ lineNumberStart?: number;
36
+ signColumnWidth?: number;
37
+ gutterPaddingRight?: number;
38
+ rowChildOffset?: number;
39
+ palette?: RowDocumentPalette;
40
+ }
41
+ export declare class RowDocumentRenderable extends ScrollBoxRenderable {
42
+ private _mode;
43
+ private _showGutter;
44
+ private _showLineNumbers;
45
+ private _lineNumberStart;
46
+ private _signColumnWidth;
47
+ private _gutterPaddingRight;
48
+ private _rowChildOffset;
49
+ private _palette;
50
+ private _deco;
51
+ private _rowVirtualStarts;
52
+ private _rowVirtualHeights;
53
+ private _virtualRowToRow;
54
+ private _virtualRowWraps;
55
+ private _rowCount;
56
+ private _lastGeometryHash;
57
+ constructor(ctx: RenderContext, options: RowDocumentOptions);
58
+ setDecorations(decorations: RowDocumentDecorations): void;
59
+ set showGutter(value: boolean);
60
+ set showLineNumbers(value: boolean);
61
+ get rowCount(): number;
62
+ get virtualRowCount(): number;
63
+ getRowMetrics(row: number): {
64
+ row: number;
65
+ virtualTop: number;
66
+ virtualHeight: number;
67
+ } | null;
68
+ getRowAtVirtualY(y: number): number;
69
+ getVisibleRange(): {
70
+ virtualTop: number;
71
+ virtualBottom: number;
72
+ firstRow: number;
73
+ lastRow: number;
74
+ };
75
+ scrollToRow(row: number, align?: "nearest" | "start" | "center" | "end"): void;
76
+ protected renderSelf(buffer: OptimizedBuffer): void;
77
+ private _detectMode;
78
+ private _computeGeometry;
79
+ private _computeFromChildren;
80
+ private _computeFromProvider;
81
+ private _finishGeometry;
82
+ private _computeGutterWidth;
83
+ private _applyGutterPadding;
84
+ private _paintDecorations;
85
+ private _paintGutter;
86
+ }
87
+ //# sourceMappingURL=RowDocumentRenderable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowDocumentRenderable.d.ts","sourceRoot":"","sources":["../src/RowDocumentRenderable.ts"],"names":[],"mappings":"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"}