react-native-nitro-markdown 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -5
- package/android/src/main/cpp/cpp-adapter.cpp +4 -1
- package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +19 -0
- package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +4 -3
- package/ios/HybridMarkdownSession.swift +18 -0
- package/lib/commonjs/MarkdownContext.js.map +1 -1
- package/lib/commonjs/headless.js +20 -0
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown.js +21 -11
- package/lib/commonjs/markdown.js.map +1 -1
- package/lib/commonjs/renderers/code.js +20 -2
- package/lib/commonjs/renderers/code.js.map +1 -1
- package/lib/commonjs/renderers/table/cell-content.js +32 -0
- package/lib/commonjs/renderers/table/cell-content.js.map +1 -0
- package/lib/commonjs/renderers/table/index.js +310 -0
- package/lib/commonjs/renderers/table/index.js.map +1 -0
- package/lib/commonjs/renderers/table/table-reducer.js +29 -0
- package/lib/commonjs/renderers/table/table-reducer.js.map +1 -0
- package/lib/commonjs/renderers/table/table-utils.js +68 -0
- package/lib/commonjs/renderers/table/table-utils.js.map +1 -0
- package/lib/commonjs/renderers/table/types.js +6 -0
- package/lib/commonjs/renderers/table/types.js.map +1 -0
- package/lib/commonjs/renderers/table.js +6 -398
- package/lib/commonjs/renderers/table.js.map +1 -1
- package/lib/commonjs/theme.js +10 -1
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/use-markdown-stream.js +9 -1
- package/lib/commonjs/use-markdown-stream.js.map +1 -1
- package/lib/commonjs/utils/code-highlight.js +101 -0
- package/lib/commonjs/utils/code-highlight.js.map +1 -0
- package/lib/module/MarkdownContext.js.map +1 -1
- package/lib/module/headless.js +19 -0
- package/lib/module/headless.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown.js +21 -11
- package/lib/module/markdown.js.map +1 -1
- package/lib/module/renderers/code.js +20 -2
- package/lib/module/renderers/code.js.map +1 -1
- package/lib/module/renderers/table/cell-content.js +27 -0
- package/lib/module/renderers/table/cell-content.js.map +1 -0
- package/lib/module/renderers/table/index.js +305 -0
- package/lib/module/renderers/table/index.js.map +1 -0
- package/lib/module/renderers/table/table-reducer.js +24 -0
- package/lib/module/renderers/table/table-reducer.js.map +1 -0
- package/lib/module/renderers/table/table-utils.js +62 -0
- package/lib/module/renderers/table/table-utils.js.map +1 -0
- package/lib/module/renderers/table/types.js +4 -0
- package/lib/module/renderers/table/types.js.map +1 -0
- package/lib/module/renderers/table.js +1 -397
- package/lib/module/renderers/table.js.map +1 -1
- package/lib/module/theme.js +10 -1
- package/lib/module/theme.js.map +1 -1
- package/lib/module/use-markdown-stream.js +9 -1
- package/lib/module/use-markdown-stream.js.map +1 -1
- package/lib/module/utils/code-highlight.js +97 -0
- package/lib/module/utils/code-highlight.js.map +1 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts +6 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts +5 -0
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown.d.ts +24 -0
- package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts +11 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts +24 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table.d.ts +1 -11
- package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +9 -0
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme.d.ts +18 -2
- package/lib/typescript/commonjs/theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/commonjs/utils/code-highlight.d.ts.map +1 -0
- package/lib/typescript/module/MarkdownContext.d.ts +6 -0
- package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts +5 -0
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/markdown.d.ts +24 -0
- package/lib/typescript/module/markdown.d.ts.map +1 -1
- package/lib/typescript/module/renderers/code.d.ts.map +1 -1
- package/lib/typescript/module/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/module/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/index.d.ts +11 -0
- package/lib/typescript/module/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/types.d.ts +24 -0
- package/lib/typescript/module/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table.d.ts +1 -11
- package/lib/typescript/module/renderers/table.d.ts.map +1 -1
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +9 -0
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/module/theme.d.ts +18 -2
- package/lib/typescript/module/theme.d.ts.map +1 -1
- package/lib/typescript/module/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/module/utils/code-highlight.d.ts.map +1 -0
- package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +37 -27
- package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +13 -4
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +35 -32
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +21 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +23 -18
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +14 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +2 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +23 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +2 -0
- package/package.json +6 -3
- package/react-native-nitro-markdown.podspec +1 -1
- package/src/MarkdownContext.ts +6 -0
- package/src/headless.ts +12 -0
- package/src/index.ts +3 -0
- package/src/markdown.tsx +47 -7
- package/src/renderers/code.tsx +27 -2
- package/src/renderers/table/cell-content.tsx +38 -0
- package/src/renderers/table/index.tsx +419 -0
- package/src/renderers/table/table-reducer.ts +36 -0
- package/src/renderers/table/table-utils.ts +81 -0
- package/src/renderers/table/types.ts +24 -0
- package/src/renderers/table.tsx +1 -547
- package/src/specs/MarkdownSession.nitro.ts +10 -0
- package/src/theme.ts +29 -1
- package/src/use-markdown-stream.ts +10 -0
- package/src/utils/code-highlight.ts +102 -0
|
@@ -1,400 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
import { View, Text, StyleSheet, ScrollView, Platform } from "react-native";
|
|
5
|
-
import { getTextContent } from "../headless.js";
|
|
6
|
-
import { useMarkdownContext } from "../MarkdownContext.js";
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
-
const extractTableData = node => {
|
|
9
|
-
const headers = [];
|
|
10
|
-
const rows = [];
|
|
11
|
-
const alignments = [];
|
|
12
|
-
for (const child of node.children ?? []) {
|
|
13
|
-
if (child.type === "table_head") {
|
|
14
|
-
for (const row of child.children ?? []) {
|
|
15
|
-
if (row.type === "table_row") {
|
|
16
|
-
for (const cell of row.children ?? []) {
|
|
17
|
-
headers.push(cell);
|
|
18
|
-
alignments.push(cell.align);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
} else if (child.type === "table_body") {
|
|
23
|
-
for (const row of child.children ?? []) {
|
|
24
|
-
if (row.type === "table_row") {
|
|
25
|
-
const rowCells = [];
|
|
26
|
-
for (const cell of row.children ?? []) {
|
|
27
|
-
rowCells.push(cell);
|
|
28
|
-
}
|
|
29
|
-
rows.push(rowCells);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
headers,
|
|
36
|
-
rows,
|
|
37
|
-
alignments
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
const MIN_COLUMN_WIDTH = 60;
|
|
41
|
-
const COLUMN_MEASUREMENT_PADDING = 8;
|
|
42
|
-
const APPROX_CHAR_WIDTH = 7;
|
|
43
|
-
const MAX_ESTIMATED_CHARS = 120;
|
|
44
|
-
const ESTIMATED_WIDTH_STEP = 24;
|
|
45
|
-
const MEASUREMENT_STABILIZE_MS = 140;
|
|
46
|
-
const IS_ACT_TEST_ENVIRONMENT = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT") === true;
|
|
47
|
-
const SHOULD_DEBOUNCE_MEASUREMENT = !IS_ACT_TEST_ENVIRONMENT;
|
|
48
|
-
const columnWidthsReducer = (state, action) => {
|
|
49
|
-
if (action.type === "RESET_WIDTHS") {
|
|
50
|
-
if (state.length === action.payload.length && state.every((width, index) => width === action.payload[index])) {
|
|
51
|
-
return state;
|
|
52
|
-
}
|
|
53
|
-
return action.payload;
|
|
54
|
-
}
|
|
55
|
-
if (action.type === "SET_MONOTONIC_WIDTHS") {
|
|
56
|
-
if (state.length !== action.payload.length) {
|
|
57
|
-
return action.payload;
|
|
58
|
-
}
|
|
59
|
-
const merged = action.payload.map((width, index) => Math.max(width, state[index] ?? width));
|
|
60
|
-
if (state.every((width, index) => width === merged[index])) {
|
|
61
|
-
return state;
|
|
62
|
-
}
|
|
63
|
-
return merged;
|
|
64
|
-
}
|
|
65
|
-
return state;
|
|
66
|
-
};
|
|
67
|
-
const estimateColumnWidths = (headers, rows, columnCount) => {
|
|
68
|
-
const widths = new Array(columnCount).fill(MIN_COLUMN_WIDTH);
|
|
69
|
-
for (let col = 0; col < columnCount; col++) {
|
|
70
|
-
const headerChars = Math.min(getTextContent(headers[col] ?? {
|
|
71
|
-
type: "text",
|
|
72
|
-
content: ""
|
|
73
|
-
}).trim().length, MAX_ESTIMATED_CHARS);
|
|
74
|
-
let maxChars = headerChars;
|
|
75
|
-
for (let row = 0; row < rows.length; row++) {
|
|
76
|
-
const cell = rows[row][col];
|
|
77
|
-
if (!cell) continue;
|
|
78
|
-
const cellChars = Math.min(getTextContent(cell).trim().length, MAX_ESTIMATED_CHARS);
|
|
79
|
-
if (cellChars > maxChars) {
|
|
80
|
-
maxChars = cellChars;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
const estimatedWidth = maxChars * APPROX_CHAR_WIDTH + COLUMN_MEASUREMENT_PADDING;
|
|
84
|
-
const steppedEstimatedWidth = Math.ceil(estimatedWidth / ESTIMATED_WIDTH_STEP) * ESTIMATED_WIDTH_STEP;
|
|
85
|
-
widths[col] = Math.max(MIN_COLUMN_WIDTH, steppedEstimatedWidth);
|
|
86
|
-
}
|
|
87
|
-
return widths;
|
|
88
|
-
};
|
|
89
|
-
export const TableRenderer = ({
|
|
90
|
-
node,
|
|
91
|
-
Renderer,
|
|
92
|
-
style
|
|
93
|
-
}) => {
|
|
94
|
-
const {
|
|
95
|
-
theme
|
|
96
|
-
} = useMarkdownContext();
|
|
97
|
-
const {
|
|
98
|
-
headers,
|
|
99
|
-
rows,
|
|
100
|
-
alignments
|
|
101
|
-
} = useMemo(() => extractTableData(node), [node]);
|
|
102
|
-
const columnCount = headers.length;
|
|
103
|
-
const styles = useMemo(() => createTableStyles(theme), [theme]);
|
|
104
|
-
const estimatedColumnWidths = useMemo(() => estimateColumnWidths(headers, rows, columnCount), [headers, rows, columnCount]);
|
|
105
|
-
const [columnWidths, dispatch] = useReducer(columnWidthsReducer, estimatedColumnWidths);
|
|
106
|
-
const measuredWidths = useRef(new Map());
|
|
107
|
-
const measuredCells = useRef(new Set());
|
|
108
|
-
const widthsCalculated = useRef(false);
|
|
109
|
-
const columnWidthsRef = useRef(columnWidths);
|
|
110
|
-
const lastCellKeySignatureRef = useRef("");
|
|
111
|
-
const measurementTimerRef = useRef(null);
|
|
112
|
-
const [needsMeasurement, setNeedsMeasurement] = useReducer((_previous, nextValue) => nextValue, false);
|
|
113
|
-
const expectedCellKeys = useMemo(() => {
|
|
114
|
-
const keys = [];
|
|
115
|
-
headers.forEach((_, colIndex) => {
|
|
116
|
-
keys.push(`header-${colIndex}`);
|
|
117
|
-
});
|
|
118
|
-
rows.forEach((row, rowIndex) => {
|
|
119
|
-
row.forEach((_, colIndex) => {
|
|
120
|
-
keys.push(`cell-${rowIndex}-${colIndex}`);
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
return keys;
|
|
124
|
-
}, [headers, rows]);
|
|
125
|
-
const expectedCellKeySignature = useMemo(() => expectedCellKeys.join("|"), [expectedCellKeys]);
|
|
126
|
-
useEffect(() => {
|
|
127
|
-
columnWidthsRef.current = columnWidths;
|
|
128
|
-
}, [columnWidths]);
|
|
129
|
-
useEffect(() => {
|
|
130
|
-
const structureChanged = lastCellKeySignatureRef.current !== expectedCellKeySignature;
|
|
131
|
-
lastCellKeySignatureRef.current = expectedCellKeySignature;
|
|
132
|
-
if (measurementTimerRef.current) {
|
|
133
|
-
clearTimeout(measurementTimerRef.current);
|
|
134
|
-
measurementTimerRef.current = null;
|
|
135
|
-
}
|
|
136
|
-
if (structureChanged) {
|
|
137
|
-
measuredWidths.current.clear();
|
|
138
|
-
measuredCells.current.clear();
|
|
139
|
-
widthsCalculated.current = false;
|
|
140
|
-
setNeedsMeasurement(false);
|
|
141
|
-
dispatch({
|
|
142
|
-
type: "RESET_WIDTHS",
|
|
143
|
-
payload: estimatedColumnWidths
|
|
144
|
-
});
|
|
145
|
-
} else {
|
|
146
|
-
dispatch({
|
|
147
|
-
type: "SET_MONOTONIC_WIDTHS",
|
|
148
|
-
payload: estimatedColumnWidths
|
|
149
|
-
});
|
|
150
|
-
if (widthsCalculated.current) {
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (!SHOULD_DEBOUNCE_MEASUREMENT) {
|
|
155
|
-
setNeedsMeasurement(true);
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
measurementTimerRef.current = setTimeout(() => {
|
|
159
|
-
measurementTimerRef.current = null;
|
|
160
|
-
setNeedsMeasurement(true);
|
|
161
|
-
}, MEASUREMENT_STABILIZE_MS);
|
|
162
|
-
return () => {
|
|
163
|
-
if (measurementTimerRef.current) {
|
|
164
|
-
clearTimeout(measurementTimerRef.current);
|
|
165
|
-
measurementTimerRef.current = null;
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
}, [estimatedColumnWidths, expectedCellKeySignature]);
|
|
169
|
-
const onCellLayout = useCallback((cellKey, width) => {
|
|
170
|
-
if (width <= 0 || widthsCalculated.current || !needsMeasurement) return;
|
|
171
|
-
measuredWidths.current.set(cellKey, width);
|
|
172
|
-
if (!measuredCells.current.has(cellKey)) {
|
|
173
|
-
measuredCells.current.add(cellKey);
|
|
174
|
-
}
|
|
175
|
-
if (measuredCells.current.size < expectedCellKeys.length) return;
|
|
176
|
-
const allCellsMeasured = expectedCellKeys.every(key => measuredCells.current.has(key));
|
|
177
|
-
if (!allCellsMeasured) return;
|
|
178
|
-
const maxWidths = [...columnWidthsRef.current];
|
|
179
|
-
for (let col = 0; col < columnCount; col++) {
|
|
180
|
-
const headerWidth = measuredWidths.current.get(`header-${col}`);
|
|
181
|
-
if (headerWidth && headerWidth > 0) {
|
|
182
|
-
maxWidths[col] = Math.max(maxWidths[col], headerWidth);
|
|
183
|
-
}
|
|
184
|
-
for (let row = 0; row < rows.length; row++) {
|
|
185
|
-
if (col >= rows[row].length) continue;
|
|
186
|
-
const cellWidth = measuredWidths.current.get(`cell-${row}-${col}`);
|
|
187
|
-
if (cellWidth && cellWidth > 0) {
|
|
188
|
-
maxWidths[col] = Math.max(maxWidths[col], cellWidth);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
maxWidths[col] = Math.max(maxWidths[col] + COLUMN_MEASUREMENT_PADDING, MIN_COLUMN_WIDTH);
|
|
192
|
-
}
|
|
193
|
-
widthsCalculated.current = true;
|
|
194
|
-
setNeedsMeasurement(false);
|
|
195
|
-
dispatch({
|
|
196
|
-
type: "RESET_WIDTHS",
|
|
197
|
-
payload: maxWidths
|
|
198
|
-
});
|
|
199
|
-
}, [columnCount, expectedCellKeys, needsMeasurement, rows]);
|
|
200
|
-
const getAlignment = index => {
|
|
201
|
-
const align = alignments[index];
|
|
202
|
-
if (align === "center") return "center";
|
|
203
|
-
if (align === "right") return "flex-end";
|
|
204
|
-
return "flex-start";
|
|
205
|
-
};
|
|
206
|
-
if (columnCount === 0) return null;
|
|
207
|
-
const hasWidths = columnWidths.length === columnCount;
|
|
208
|
-
const resolvedWidths = hasWidths ? columnWidths : estimatedColumnWidths;
|
|
209
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
210
|
-
style: [styles.container, style],
|
|
211
|
-
children: [needsMeasurement ? /*#__PURE__*/_jsxs(View, {
|
|
212
|
-
style: styles.measurementContainer,
|
|
213
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
214
|
-
style: styles.measurementRow,
|
|
215
|
-
children: headers.map((cell, colIndex) => /*#__PURE__*/_jsx(View, {
|
|
216
|
-
style: styles.measurementCell,
|
|
217
|
-
onLayout: e => {
|
|
218
|
-
onCellLayout(`header-${colIndex}`, e.nativeEvent.layout.width);
|
|
219
|
-
},
|
|
220
|
-
children: /*#__PURE__*/_jsx(CellContent, {
|
|
221
|
-
node: cell,
|
|
222
|
-
Renderer: Renderer,
|
|
223
|
-
styles: styles
|
|
224
|
-
})
|
|
225
|
-
}, `measure-header-${colIndex}`))
|
|
226
|
-
}), rows.map((row, rowIndex) => /*#__PURE__*/_jsx(View, {
|
|
227
|
-
style: styles.measurementRow,
|
|
228
|
-
children: row.map((cell, colIndex) => /*#__PURE__*/_jsx(View, {
|
|
229
|
-
style: styles.measurementCell,
|
|
230
|
-
onLayout: e => {
|
|
231
|
-
onCellLayout(`cell-${rowIndex}-${colIndex}`, e.nativeEvent.layout.width);
|
|
232
|
-
},
|
|
233
|
-
children: /*#__PURE__*/_jsx(CellContent, {
|
|
234
|
-
node: cell,
|
|
235
|
-
Renderer: Renderer,
|
|
236
|
-
styles: styles
|
|
237
|
-
})
|
|
238
|
-
}, `measure-cell-${rowIndex}-${colIndex}`))
|
|
239
|
-
}, `measure-row-${rowIndex}`))]
|
|
240
|
-
}) : null, /*#__PURE__*/_jsx(ScrollView, {
|
|
241
|
-
horizontal: true,
|
|
242
|
-
showsHorizontalScrollIndicator: true,
|
|
243
|
-
style: styles.tableScroll,
|
|
244
|
-
bounces: false,
|
|
245
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
246
|
-
style: [styles.table, {
|
|
247
|
-
backgroundColor: style?.backgroundColor ?? theme.colors.surface ?? "#111827"
|
|
248
|
-
}],
|
|
249
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
250
|
-
style: styles.headerRow,
|
|
251
|
-
children: headers.map((cell, colIndex) => /*#__PURE__*/_jsx(View, {
|
|
252
|
-
style: [styles.headerCell, {
|
|
253
|
-
width: resolvedWidths[colIndex] ?? MIN_COLUMN_WIDTH,
|
|
254
|
-
alignItems: getAlignment(colIndex)
|
|
255
|
-
}, colIndex === columnCount - 1 && styles.lastCell],
|
|
256
|
-
children: /*#__PURE__*/_jsx(CellContent, {
|
|
257
|
-
node: cell,
|
|
258
|
-
Renderer: Renderer,
|
|
259
|
-
styles: styles,
|
|
260
|
-
textStyle: styles.headerText
|
|
261
|
-
})
|
|
262
|
-
}, `header-${colIndex}`))
|
|
263
|
-
}), rows.map((row, rowIndex) => /*#__PURE__*/_jsx(View, {
|
|
264
|
-
style: [styles.bodyRow, rowIndex === rows.length - 1 && styles.lastRow, rowIndex % 2 === 0 ? styles.evenRow : styles.oddRow],
|
|
265
|
-
children: row.map((cell, colIndex) => /*#__PURE__*/_jsx(View, {
|
|
266
|
-
style: [styles.bodyCell, {
|
|
267
|
-
width: resolvedWidths[colIndex] ?? MIN_COLUMN_WIDTH,
|
|
268
|
-
alignItems: getAlignment(colIndex)
|
|
269
|
-
}, colIndex === columnCount - 1 && styles.lastCell],
|
|
270
|
-
children: /*#__PURE__*/_jsx(CellContent, {
|
|
271
|
-
node: cell,
|
|
272
|
-
Renderer: Renderer,
|
|
273
|
-
styles: styles,
|
|
274
|
-
textStyle: styles.cellText
|
|
275
|
-
})
|
|
276
|
-
}, `cell-${rowIndex}-${colIndex}`))
|
|
277
|
-
}, `row-${rowIndex}`))]
|
|
278
|
-
})
|
|
279
|
-
})]
|
|
280
|
-
});
|
|
281
|
-
};
|
|
282
|
-
const CellContent = ({
|
|
283
|
-
node,
|
|
284
|
-
Renderer,
|
|
285
|
-
styles,
|
|
286
|
-
textStyle
|
|
287
|
-
}) => {
|
|
288
|
-
if (!node.children || node.children.length === 0) {
|
|
289
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
290
|
-
style: textStyle,
|
|
291
|
-
children: node.content ?? ""
|
|
292
|
-
});
|
|
293
|
-
}
|
|
294
|
-
return /*#__PURE__*/_jsx(View, {
|
|
295
|
-
style: styles.cellContentWrapper,
|
|
296
|
-
children: node.children.map((child, idx) => /*#__PURE__*/_jsx(Renderer, {
|
|
297
|
-
node: child,
|
|
298
|
-
depth: 0,
|
|
299
|
-
inListItem: false,
|
|
300
|
-
parentIsText: false
|
|
301
|
-
}, idx))
|
|
302
|
-
});
|
|
303
|
-
};
|
|
304
|
-
const createTableStyles = theme => {
|
|
305
|
-
const colors = theme?.colors || {};
|
|
306
|
-
const borderRadius = theme?.borderRadius || {
|
|
307
|
-
m: 8
|
|
308
|
-
};
|
|
309
|
-
return StyleSheet.create({
|
|
310
|
-
container: {
|
|
311
|
-
marginVertical: theme.spacing.s
|
|
312
|
-
},
|
|
313
|
-
measurementContainer: {
|
|
314
|
-
position: "absolute",
|
|
315
|
-
opacity: 0,
|
|
316
|
-
pointerEvents: "none",
|
|
317
|
-
left: -9999
|
|
318
|
-
},
|
|
319
|
-
measurementRow: {
|
|
320
|
-
flexDirection: "row"
|
|
321
|
-
},
|
|
322
|
-
measurementCell: {
|
|
323
|
-
paddingVertical: 10,
|
|
324
|
-
paddingHorizontal: 12
|
|
325
|
-
},
|
|
326
|
-
tableScroll: {
|
|
327
|
-
flexGrow: 0
|
|
328
|
-
},
|
|
329
|
-
table: {
|
|
330
|
-
borderRadius: borderRadius.m,
|
|
331
|
-
overflow: "hidden",
|
|
332
|
-
borderWidth: 1,
|
|
333
|
-
borderColor: colors.tableBorder || "#374151"
|
|
334
|
-
},
|
|
335
|
-
headerRow: {
|
|
336
|
-
flexDirection: "row",
|
|
337
|
-
backgroundColor: colors.tableHeader || "#1f2937",
|
|
338
|
-
borderBottomWidth: 1,
|
|
339
|
-
borderBottomColor: colors.tableBorder || "#374151"
|
|
340
|
-
},
|
|
341
|
-
bodyRow: {
|
|
342
|
-
flexDirection: "row",
|
|
343
|
-
borderBottomWidth: 1,
|
|
344
|
-
borderBottomColor: colors.tableBorder || "#374151"
|
|
345
|
-
},
|
|
346
|
-
evenRow: {
|
|
347
|
-
backgroundColor: colors.tableRowEven || "transparent"
|
|
348
|
-
},
|
|
349
|
-
oddRow: {
|
|
350
|
-
backgroundColor: colors.tableRowOdd || "rgba(255,255,255,0.02)"
|
|
351
|
-
},
|
|
352
|
-
lastRow: {
|
|
353
|
-
borderBottomWidth: 0
|
|
354
|
-
},
|
|
355
|
-
headerCell: {
|
|
356
|
-
flexShrink: 0,
|
|
357
|
-
paddingVertical: 10,
|
|
358
|
-
paddingHorizontal: 12,
|
|
359
|
-
minWidth: 60,
|
|
360
|
-
borderRightWidth: 1,
|
|
361
|
-
borderRightColor: colors.tableBorder || "#374151"
|
|
362
|
-
},
|
|
363
|
-
bodyCell: {
|
|
364
|
-
flexShrink: 0,
|
|
365
|
-
paddingVertical: 10,
|
|
366
|
-
paddingHorizontal: 12,
|
|
367
|
-
minWidth: 60,
|
|
368
|
-
borderRightWidth: 1,
|
|
369
|
-
borderRightColor: colors.tableBorder || "#374151",
|
|
370
|
-
justifyContent: "center"
|
|
371
|
-
},
|
|
372
|
-
lastCell: {
|
|
373
|
-
borderRightWidth: 0
|
|
374
|
-
},
|
|
375
|
-
headerText: {
|
|
376
|
-
color: colors.tableHeaderText || "#9ca3af",
|
|
377
|
-
fontSize: 12,
|
|
378
|
-
fontWeight: "600",
|
|
379
|
-
fontFamily: theme.fontFamilies?.regular,
|
|
380
|
-
...(Platform.OS === "android" && {
|
|
381
|
-
includeFontPadding: false
|
|
382
|
-
})
|
|
383
|
-
},
|
|
384
|
-
cellText: {
|
|
385
|
-
color: colors.text || "#e5e7eb",
|
|
386
|
-
fontSize: 14,
|
|
387
|
-
lineHeight: 20,
|
|
388
|
-
fontFamily: theme.fontFamilies?.regular,
|
|
389
|
-
...(Platform.OS === "android" && {
|
|
390
|
-
includeFontPadding: false
|
|
391
|
-
})
|
|
392
|
-
},
|
|
393
|
-
cellContentWrapper: {
|
|
394
|
-
flexDirection: "row",
|
|
395
|
-
flexWrap: "wrap",
|
|
396
|
-
alignItems: "center"
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
};
|
|
3
|
+
export { TableRenderer } from "./table/index.js";
|
|
400
4
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useRef","useReducer","useCallback","View","Text","StyleSheet","ScrollView","Platform","getTextContent","useMarkdownContext","jsx","_jsx","jsxs","_jsxs","extractTableData","node","headers","rows","alignments","child","children","type","row","cell","push","align","rowCells","MIN_COLUMN_WIDTH","COLUMN_MEASUREMENT_PADDING","APPROX_CHAR_WIDTH","MAX_ESTIMATED_CHARS","ESTIMATED_WIDTH_STEP","MEASUREMENT_STABILIZE_MS","IS_ACT_TEST_ENVIRONMENT","Reflect","get","globalThis","SHOULD_DEBOUNCE_MEASUREMENT","columnWidthsReducer","state","action","length","payload","every","width","index","merged","map","Math","max","estimateColumnWidths","columnCount","widths","Array","fill","col","headerChars","min","content","trim","maxChars","cellChars","estimatedWidth","steppedEstimatedWidth","ceil","TableRenderer","Renderer","style","theme","styles","createTableStyles","estimatedColumnWidths","columnWidths","dispatch","measuredWidths","Map","measuredCells","Set","widthsCalculated","columnWidthsRef","lastCellKeySignatureRef","measurementTimerRef","needsMeasurement","setNeedsMeasurement","_previous","nextValue","expectedCellKeys","keys","forEach","_","colIndex","rowIndex","expectedCellKeySignature","join","current","structureChanged","clearTimeout","clear","setTimeout","onCellLayout","cellKey","set","has","add","size","allCellsMeasured","key","maxWidths","headerWidth","cellWidth","getAlignment","hasWidths","resolvedWidths","container","measurementContainer","measurementRow","measurementCell","onLayout","e","nativeEvent","layout","CellContent","horizontal","showsHorizontalScrollIndicator","tableScroll","bounces","table","backgroundColor","colors","surface","headerRow","headerCell","alignItems","lastCell","textStyle","headerText","bodyRow","lastRow","evenRow","oddRow","bodyCell","cellText","cellContentWrapper","idx","depth","inListItem","parentIsText","borderRadius","m","create","marginVertical","spacing","s","position","opacity","pointerEvents","left","flexDirection","paddingVertical","paddingHorizontal","flexGrow","overflow","borderWidth","borderColor","tableBorder","tableHeader","borderBottomWidth","borderBottomColor","tableRowEven","tableRowOdd","flexShrink","minWidth","borderRightWidth","borderRightColor","justifyContent","color","tableHeaderText","fontSize","fontWeight","fontFamily","fontFamilies","regular","OS","includeFontPadding","text","lineHeight","flexWrap"],"sourceRoot":"../../../src","sources":["renderers/table.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["TableRenderer"],"sourceRoot":"../../../src","sources":["renderers/table.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,kBAAe","ignoreList":[]}
|
package/lib/module/theme.js
CHANGED
|
@@ -19,7 +19,16 @@ export const defaultMarkdownTheme = {
|
|
|
19
19
|
tableHeader: "#f8fafc",
|
|
20
20
|
tableHeaderText: "#64748b",
|
|
21
21
|
tableRowEven: "transparent",
|
|
22
|
-
tableRowOdd: "#f8fafc"
|
|
22
|
+
tableRowOdd: "#f8fafc",
|
|
23
|
+
codeTokenColors: {
|
|
24
|
+
keyword: '#c792ea',
|
|
25
|
+
string: '#c3e88d',
|
|
26
|
+
comment: '#546e7a',
|
|
27
|
+
number: '#f78c6c',
|
|
28
|
+
operator: '#89ddff',
|
|
29
|
+
punctuation: '#89ddff',
|
|
30
|
+
type: '#ffcb6b'
|
|
31
|
+
}
|
|
23
32
|
},
|
|
24
33
|
spacing: {
|
|
25
34
|
xs: 4,
|
package/lib/module/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","defaultMarkdownTheme","colors","text","textMuted","heading","link","code","codeBackground","codeLanguage","blockquote","border","surface","surfaceLight","accent","tableBorder","tableHeader","tableHeaderText","tableRowEven","tableRowOdd","spacing","xs","s","m","l","xl","fontSizes","h1","h2","h3","h4","h5","h6","fontFamilies","regular","select","ios","android","default","undefined","mono","headingWeight","borderRadius","showCodeLanguage","minimalMarkdownTheme","mergeThemes","base","partial"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAwC,cAAc;
|
|
1
|
+
{"version":3,"names":["Platform","defaultMarkdownTheme","colors","text","textMuted","heading","link","code","codeBackground","codeLanguage","blockquote","border","surface","surfaceLight","accent","tableBorder","tableHeader","tableHeaderText","tableRowEven","tableRowOdd","codeTokenColors","keyword","string","comment","number","operator","punctuation","type","spacing","xs","s","m","l","xl","fontSizes","h1","h2","h3","h4","h5","h6","fontFamilies","regular","select","ios","android","default","undefined","mono","headingWeight","borderRadius","showCodeLanguage","minimalMarkdownTheme","mergeThemes","base","partial"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,13 +27,21 @@ export function useMarkdownSession() {
|
|
|
27
27
|
sessionRef.current.highlightPosition = position;
|
|
28
28
|
}, []);
|
|
29
29
|
const getSession = useCallback(() => sessionRef.current, []);
|
|
30
|
+
const reset = useCallback(text => {
|
|
31
|
+
sessionRef.current.reset(text);
|
|
32
|
+
}, []);
|
|
33
|
+
const replace = useCallback((from, to, text) => {
|
|
34
|
+
return sessionRef.current.replace(from, to, text);
|
|
35
|
+
}, []);
|
|
30
36
|
return {
|
|
31
37
|
getSession,
|
|
32
38
|
isStreaming,
|
|
33
39
|
setIsStreaming,
|
|
34
40
|
stop,
|
|
35
41
|
clear,
|
|
36
|
-
setHighlight
|
|
42
|
+
setHighlight,
|
|
43
|
+
reset,
|
|
44
|
+
replace
|
|
37
45
|
};
|
|
38
46
|
}
|
|
39
47
|
export function useStream(timestamps) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useCallback","useState","useEffect","createMarkdownSession","createTimestampTimeline","resolveHighlightPosition","useMarkdownSession","sessionRef","current","isStreaming","setIsStreaming","session","clear","stop","highlightPosition","setHighlight","position","getSession","useStream","timestamps","engine","isPlaying","setIsPlaying","timelineRef","entries","monotonic","lastHighlightRef","sync","currentTimeMs","nextHighlight"],"sourceRoot":"../../src","sources":["use-markdown-stream.ts"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,WAAW,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAChE,SAASC,qBAAqB,QAAQ,sBAAmB;AACzD,SACEC,uBAAuB,EACvBC,wBAAwB,QAEnB,4BAAyB;AAIhC,OAAO,SAASC,kBAAkBA,CAAA,EAAG;EACnC,MAAMC,UAAU,GAAGR,MAAM,CAAyB,IAAI,CAAC;EACvD,IAAIQ,UAAU,CAACC,OAAO,KAAK,IAAI,EAAE;IAC/BD,UAAU,CAACC,OAAO,GAAGL,qBAAqB,CAAC,CAAC;EAC9C;EAEA,MAAM,CAACM,WAAW,EAAEC,cAAc,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EAErDC,SAAS,CAAC,MAAM;IACd,MAAMS,OAAO,GAAGJ,UAAU,CAACC,OAAQ;IACnC,OAAO,MAAM;MACXG,OAAO,CAACC,KAAK,CAAC,CAAC;IACjB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,IAAI,GAAGb,WAAW,CAAC,MAAM;IAC7BU,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,KAAK,GAAGZ,WAAW,CAAC,MAAM;IAC9Ba,IAAI,CAAC,CAAC;IACNN,UAAU,CAACC,OAAO,CAAEI,KAAK,CAAC,CAAC;IAC3BL,UAAU,CAACC,OAAO,CAAEM,iBAAiB,GAAG,CAAC;EAC3C,CAAC,EAAE,CAACD,IAAI,CAAC,CAAC;EAEV,MAAME,YAAY,GAAGf,WAAW,CAAEgB,QAAgB,IAAK;IACrDT,UAAU,CAACC,OAAO,CAAEM,iBAAiB,GAAGE,QAAQ;EAClD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,UAAU,GAAGjB,WAAW,CAAC,MAAMO,UAAU,CAACC,OAAQ,EAAE,EAAE,CAAC;EAE7D,OAAO;
|
|
1
|
+
{"version":3,"names":["useRef","useCallback","useState","useEffect","createMarkdownSession","createTimestampTimeline","resolveHighlightPosition","useMarkdownSession","sessionRef","current","isStreaming","setIsStreaming","session","clear","stop","highlightPosition","setHighlight","position","getSession","reset","text","replace","from","to","useStream","timestamps","engine","isPlaying","setIsPlaying","timelineRef","entries","monotonic","lastHighlightRef","sync","currentTimeMs","nextHighlight"],"sourceRoot":"../../src","sources":["use-markdown-stream.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const JS_KEYWORDS = new Set(['const', 'let', 'var', 'function', 'return', 'if', 'else', 'for', 'while', 'class', 'extends', 'import', 'export', 'from', 'default', 'new', 'this', 'typeof', 'instanceof', 'null', 'undefined', 'true', 'false', 'async', 'await', 'try', 'catch', 'throw', 'switch', 'case', 'break', 'continue', 'type', 'interface', 'enum', 'as', 'in', 'of', 'void']);
|
|
4
|
+
const PYTHON_KEYWORDS = new Set(['def', 'class', 'import', 'from', 'return', 'if', 'elif', 'else', 'for', 'while', 'try', 'except', 'finally', 'with', 'as', 'pass', 'break', 'continue', 'and', 'or', 'not', 'in', 'is', 'None', 'True', 'False', 'lambda', 'yield', 'async', 'await']);
|
|
5
|
+
const SHELL_KEYWORDS = new Set(['if', 'then', 'else', 'elif', 'fi', 'for', 'do', 'done', 'while', 'case', 'esac', 'function', 'return', 'exit', 'echo', 'export']);
|
|
6
|
+
function getKeywords(language) {
|
|
7
|
+
const lang = language.toLowerCase();
|
|
8
|
+
if (lang === 'python' || lang === 'py') return PYTHON_KEYWORDS;
|
|
9
|
+
if (lang === 'bash' || lang === 'sh' || lang === 'shell' || lang === 'zsh') return SHELL_KEYWORDS;
|
|
10
|
+
return JS_KEYWORDS; // default for js/ts/jsx/tsx/java/c/cpp etc.
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Tokenize a single line into tokens
|
|
14
|
+
function tokenizeLine(line, language) {
|
|
15
|
+
const keywords = getKeywords(language);
|
|
16
|
+
const tokens = [];
|
|
17
|
+
|
|
18
|
+
// Full-line comment detection
|
|
19
|
+
const trimmed = line.trimStart();
|
|
20
|
+
const lang = language.toLowerCase();
|
|
21
|
+
const isPythonLike = lang === 'python' || lang === 'py';
|
|
22
|
+
const isShellLike = lang === 'bash' || lang === 'sh' || lang === 'shell' || lang === 'zsh';
|
|
23
|
+
if (trimmed.startsWith('//') || trimmed.startsWith('#') && (isShellLike || isPythonLike)) {
|
|
24
|
+
return [{
|
|
25
|
+
text: line,
|
|
26
|
+
type: 'comment'
|
|
27
|
+
}];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Simple token regex: strings, numbers, operators, identifiers, punctuation
|
|
31
|
+
const tokenRegex = /("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'|`(?:[^`\\]|\\.)*`)|(\b\d+(?:\.\d+)?\b)|(\/\/[^\n]*|#[^\n]*)|([a-zA-Z_$][a-zA-Z0-9_$]*)|([+\-*/%=<>!&|^~?:]+)|([()\[\]{},;.])|(\s+)|(.)/g;
|
|
32
|
+
let match;
|
|
33
|
+
while ((match = tokenRegex.exec(line)) !== null) {
|
|
34
|
+
const [full, str, num, comment, ident, op, punct] = match;
|
|
35
|
+
if (str) {
|
|
36
|
+
tokens.push({
|
|
37
|
+
text: full,
|
|
38
|
+
type: 'string'
|
|
39
|
+
});
|
|
40
|
+
} else if (num) {
|
|
41
|
+
tokens.push({
|
|
42
|
+
text: full,
|
|
43
|
+
type: 'number'
|
|
44
|
+
});
|
|
45
|
+
} else if (comment) {
|
|
46
|
+
tokens.push({
|
|
47
|
+
text: full,
|
|
48
|
+
type: 'comment'
|
|
49
|
+
});
|
|
50
|
+
} else if (ident) {
|
|
51
|
+
const type = keywords.has(ident) ? 'keyword' : /^[A-Z][A-Za-z0-9]*$/.test(ident) ? 'type' : 'default';
|
|
52
|
+
tokens.push({
|
|
53
|
+
text: full,
|
|
54
|
+
type
|
|
55
|
+
});
|
|
56
|
+
} else if (op) {
|
|
57
|
+
tokens.push({
|
|
58
|
+
text: full,
|
|
59
|
+
type: 'operator'
|
|
60
|
+
});
|
|
61
|
+
} else if (punct) {
|
|
62
|
+
tokens.push({
|
|
63
|
+
text: full,
|
|
64
|
+
type: 'punctuation'
|
|
65
|
+
});
|
|
66
|
+
} else {
|
|
67
|
+
tokens.push({
|
|
68
|
+
text: full,
|
|
69
|
+
type: 'default'
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return tokens;
|
|
74
|
+
}
|
|
75
|
+
export function defaultHighlighter(language, code) {
|
|
76
|
+
if (!language || language === 'text' || language === 'plain') {
|
|
77
|
+
return [{
|
|
78
|
+
text: code,
|
|
79
|
+
type: 'default'
|
|
80
|
+
}];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Process line by line, re-inserting newlines as default tokens
|
|
84
|
+
const lines = code.split('\n');
|
|
85
|
+
const result = [];
|
|
86
|
+
for (let i = 0; i < lines.length; i++) {
|
|
87
|
+
result.push(...tokenizeLine(lines[i], language));
|
|
88
|
+
if (i < lines.length - 1) {
|
|
89
|
+
result.push({
|
|
90
|
+
text: '\n',
|
|
91
|
+
type: 'default'
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=code-highlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["JS_KEYWORDS","Set","PYTHON_KEYWORDS","SHELL_KEYWORDS","getKeywords","language","lang","toLowerCase","tokenizeLine","line","keywords","tokens","trimmed","trimStart","isPythonLike","isShellLike","startsWith","text","type","tokenRegex","match","exec","full","str","num","comment","ident","op","punct","push","has","test","defaultHighlighter","code","lines","split","result","i","length"],"sourceRoot":"../../../src","sources":["utils/code-highlight.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ReactNode, type ComponentType } from "react";
|
|
2
2
|
import type { MarkdownNode } from "./headless";
|
|
3
3
|
import { type MarkdownTheme, type NodeStyleOverrides, type StylingStrategy } from "./theme";
|
|
4
|
+
import type { CodeHighlighter } from "./utils/code-highlight";
|
|
4
5
|
export type NodeRendererProps = {
|
|
5
6
|
node: MarkdownNode;
|
|
6
7
|
depth: number;
|
|
@@ -60,6 +61,11 @@ export type MarkdownContextValue = {
|
|
|
60
61
|
styles?: NodeStyleOverrides;
|
|
61
62
|
stylingStrategy: StylingStrategy;
|
|
62
63
|
onLinkPress?: LinkPressHandler;
|
|
64
|
+
highlightCode?: boolean | CodeHighlighter;
|
|
65
|
+
tableOptions?: {
|
|
66
|
+
minColumnWidth?: number;
|
|
67
|
+
measurementStabilizeMs?: number;
|
|
68
|
+
};
|
|
63
69
|
};
|
|
64
70
|
export declare const MarkdownContext: import("react").Context<MarkdownContextValue>;
|
|
65
71
|
export declare const useMarkdownContext: () => MarkdownContextValue;
|