react-native-nitro-markdown 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +351 -22
  2. package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +27 -8
  3. package/cpp/bindings/HybridMarkdownParser.cpp +216 -66
  4. package/cpp/bindings/HybridMarkdownParser.hpp +2 -0
  5. package/ios/HybridMarkdownSession.swift +33 -7
  6. package/lib/commonjs/headless.js +41 -5
  7. package/lib/commonjs/headless.js.map +1 -1
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/markdown-stream.js +107 -13
  10. package/lib/commonjs/markdown-stream.js.map +1 -1
  11. package/lib/commonjs/markdown.js +180 -25
  12. package/lib/commonjs/markdown.js.map +1 -1
  13. package/lib/commonjs/renderers/code.js +1 -0
  14. package/lib/commonjs/renderers/code.js.map +1 -1
  15. package/lib/commonjs/renderers/table.js +116 -24
  16. package/lib/commonjs/renderers/table.js.map +1 -1
  17. package/lib/commonjs/utils/incremental-ast.js +153 -0
  18. package/lib/commonjs/utils/incremental-ast.js.map +1 -0
  19. package/lib/module/headless.js +37 -4
  20. package/lib/module/headless.js.map +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/markdown-stream.js +108 -14
  23. package/lib/module/markdown-stream.js.map +1 -1
  24. package/lib/module/markdown.js +182 -27
  25. package/lib/module/markdown.js.map +1 -1
  26. package/lib/module/renderers/code.js +1 -0
  27. package/lib/module/renderers/code.js.map +1 -1
  28. package/lib/module/renderers/table.js +116 -24
  29. package/lib/module/renderers/table.js.map +1 -1
  30. package/lib/module/utils/incremental-ast.js +147 -0
  31. package/lib/module/utils/incremental-ast.js.map +1 -0
  32. package/lib/typescript/commonjs/Markdown.nitro.d.ts +2 -0
  33. package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/headless.d.ts +13 -0
  35. package/lib/typescript/commonjs/headless.d.ts.map +1 -1
  36. package/lib/typescript/commonjs/index.d.ts +2 -0
  37. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/markdown-stream.d.ts +6 -1
  39. package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
  40. package/lib/typescript/commonjs/markdown.d.ts +53 -1
  41. package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
  42. package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
  43. package/lib/typescript/commonjs/renderers/table.d.ts +1 -1
  44. package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
  45. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +5 -2
  46. package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
  47. package/lib/typescript/commonjs/utils/incremental-ast.d.ts +12 -0
  48. package/lib/typescript/commonjs/utils/incremental-ast.d.ts.map +1 -0
  49. package/lib/typescript/module/Markdown.nitro.d.ts +2 -0
  50. package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -1
  51. package/lib/typescript/module/headless.d.ts +13 -0
  52. package/lib/typescript/module/headless.d.ts.map +1 -1
  53. package/lib/typescript/module/index.d.ts +2 -0
  54. package/lib/typescript/module/index.d.ts.map +1 -1
  55. package/lib/typescript/module/markdown-stream.d.ts +6 -1
  56. package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
  57. package/lib/typescript/module/markdown.d.ts +53 -1
  58. package/lib/typescript/module/markdown.d.ts.map +1 -1
  59. package/lib/typescript/module/renderers/code.d.ts.map +1 -1
  60. package/lib/typescript/module/renderers/table.d.ts +1 -1
  61. package/lib/typescript/module/renderers/table.d.ts.map +1 -1
  62. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +5 -2
  63. package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
  64. package/lib/typescript/module/utils/incremental-ast.d.ts +12 -0
  65. package/lib/typescript/module/utils/incremental-ast.d.ts.map +1 -0
  66. package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +2 -0
  67. package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
  68. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +18 -6
  69. package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +4 -2
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/Func_void_double_double.kt +80 -0
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +11 -3
  72. package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.cpp +8 -0
  73. package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.hpp +31 -0
  74. package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +20 -2
  75. package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
  76. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +4 -2
  77. package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +34 -9
  78. package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.cpp +2 -0
  79. package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.hpp +2 -0
  80. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +2 -0
  81. package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +4 -2
  82. package/package.json +4 -3
  83. package/src/Markdown.nitro.ts +2 -0
  84. package/src/headless.ts +42 -4
  85. package/src/index.ts +7 -0
  86. package/src/markdown-stream.tsx +163 -15
  87. package/src/markdown.tsx +339 -24
  88. package/src/renderers/code.tsx +5 -1
  89. package/src/renderers/table.tsx +212 -66
  90. package/src/specs/MarkdownSession.nitro.ts +6 -2
  91. package/src/utils/incremental-ast.ts +224 -0
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.TableRenderer = void 0;
7
7
  var _react = require("react");
8
8
  var _reactNative = require("react-native");
9
+ var _headless = require("../headless.js");
9
10
  var _MarkdownContext = require("../MarkdownContext.js");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  const extractTableData = node => {
@@ -40,10 +41,55 @@ const extractTableData = node => {
40
41
  alignments
41
42
  };
42
43
  };
44
+ const MIN_COLUMN_WIDTH = 60;
45
+ const COLUMN_MEASUREMENT_PADDING = 8;
46
+ const APPROX_CHAR_WIDTH = 7;
47
+ const MAX_ESTIMATED_CHARS = 120;
48
+ const ESTIMATED_WIDTH_STEP = 24;
49
+ const MEASUREMENT_STABILIZE_MS = 140;
50
+ const IS_ACT_TEST_ENVIRONMENT = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT") === true;
51
+ const SHOULD_DEBOUNCE_MEASUREMENT = !IS_ACT_TEST_ENVIRONMENT;
43
52
  const columnWidthsReducer = (state, action) => {
44
- if (action.type === "SET_WIDTHS") return action.payload;
53
+ if (action.type === "RESET_WIDTHS") {
54
+ if (state.length === action.payload.length && state.every((width, index) => width === action.payload[index])) {
55
+ return state;
56
+ }
57
+ return action.payload;
58
+ }
59
+ if (action.type === "SET_MONOTONIC_WIDTHS") {
60
+ if (state.length !== action.payload.length) {
61
+ return action.payload;
62
+ }
63
+ const merged = action.payload.map((width, index) => Math.max(width, state[index] ?? width));
64
+ if (state.every((width, index) => width === merged[index])) {
65
+ return state;
66
+ }
67
+ return merged;
68
+ }
45
69
  return state;
46
70
  };
71
+ const estimateColumnWidths = (headers, rows, columnCount) => {
72
+ const widths = new Array(columnCount).fill(MIN_COLUMN_WIDTH);
73
+ for (let col = 0; col < columnCount; col++) {
74
+ const headerChars = Math.min((0, _headless.getTextContent)(headers[col] ?? {
75
+ type: "text",
76
+ content: ""
77
+ }).trim().length, MAX_ESTIMATED_CHARS);
78
+ let maxChars = headerChars;
79
+ for (let row = 0; row < rows.length; row++) {
80
+ const cell = rows[row][col];
81
+ if (!cell) continue;
82
+ const cellChars = Math.min((0, _headless.getTextContent)(cell).trim().length, MAX_ESTIMATED_CHARS);
83
+ if (cellChars > maxChars) {
84
+ maxChars = cellChars;
85
+ }
86
+ }
87
+ const estimatedWidth = maxChars * APPROX_CHAR_WIDTH + COLUMN_MEASUREMENT_PADDING;
88
+ const steppedEstimatedWidth = Math.ceil(estimatedWidth / ESTIMATED_WIDTH_STEP) * ESTIMATED_WIDTH_STEP;
89
+ widths[col] = Math.max(MIN_COLUMN_WIDTH, steppedEstimatedWidth);
90
+ }
91
+ return widths;
92
+ };
47
93
  const TableRenderer = ({
48
94
  node,
49
95
  Renderer,
@@ -59,10 +105,15 @@ const TableRenderer = ({
59
105
  } = (0, _react.useMemo)(() => extractTableData(node), [node]);
60
106
  const columnCount = headers.length;
61
107
  const styles = (0, _react.useMemo)(() => createTableStyles(theme), [theme]);
62
- const [columnWidths, dispatch] = (0, _react.useReducer)(columnWidthsReducer, []);
108
+ const estimatedColumnWidths = (0, _react.useMemo)(() => estimateColumnWidths(headers, rows, columnCount), [headers, rows, columnCount]);
109
+ const [columnWidths, dispatch] = (0, _react.useReducer)(columnWidthsReducer, estimatedColumnWidths);
63
110
  const measuredWidths = (0, _react.useRef)(new Map());
64
111
  const measuredCells = (0, _react.useRef)(new Set());
65
112
  const widthsCalculated = (0, _react.useRef)(false);
113
+ const columnWidthsRef = (0, _react.useRef)(columnWidths);
114
+ const lastCellKeySignatureRef = (0, _react.useRef)("");
115
+ const measurementTimerRef = (0, _react.useRef)(null);
116
+ const [needsMeasurement, setNeedsMeasurement] = (0, _react.useReducer)((_previous, nextValue) => nextValue, false);
66
117
  const expectedCellKeys = (0, _react.useMemo)(() => {
67
118
  const keys = [];
68
119
  headers.forEach((_, colIndex) => {
@@ -75,17 +126,52 @@ const TableRenderer = ({
75
126
  });
76
127
  return keys;
77
128
  }, [headers, rows]);
129
+ const expectedCellKeySignature = (0, _react.useMemo)(() => expectedCellKeys.join("|"), [expectedCellKeys]);
78
130
  (0, _react.useEffect)(() => {
79
- measuredWidths.current.clear();
80
- measuredCells.current.clear();
81
- widthsCalculated.current = false;
82
- dispatch({
83
- type: "SET_WIDTHS",
84
- payload: []
85
- });
86
- }, [expectedCellKeys]);
131
+ columnWidthsRef.current = columnWidths;
132
+ }, [columnWidths]);
133
+ (0, _react.useEffect)(() => {
134
+ const structureChanged = lastCellKeySignatureRef.current !== expectedCellKeySignature;
135
+ lastCellKeySignatureRef.current = expectedCellKeySignature;
136
+ if (measurementTimerRef.current) {
137
+ clearTimeout(measurementTimerRef.current);
138
+ measurementTimerRef.current = null;
139
+ }
140
+ if (structureChanged) {
141
+ measuredWidths.current.clear();
142
+ measuredCells.current.clear();
143
+ widthsCalculated.current = false;
144
+ setNeedsMeasurement(false);
145
+ dispatch({
146
+ type: "RESET_WIDTHS",
147
+ payload: estimatedColumnWidths
148
+ });
149
+ } else {
150
+ dispatch({
151
+ type: "SET_MONOTONIC_WIDTHS",
152
+ payload: estimatedColumnWidths
153
+ });
154
+ if (widthsCalculated.current) {
155
+ return;
156
+ }
157
+ }
158
+ if (!SHOULD_DEBOUNCE_MEASUREMENT) {
159
+ setNeedsMeasurement(true);
160
+ return;
161
+ }
162
+ measurementTimerRef.current = setTimeout(() => {
163
+ measurementTimerRef.current = null;
164
+ setNeedsMeasurement(true);
165
+ }, MEASUREMENT_STABILIZE_MS);
166
+ return () => {
167
+ if (measurementTimerRef.current) {
168
+ clearTimeout(measurementTimerRef.current);
169
+ measurementTimerRef.current = null;
170
+ }
171
+ };
172
+ }, [estimatedColumnWidths, expectedCellKeySignature]);
87
173
  const onCellLayout = (0, _react.useCallback)((cellKey, width) => {
88
- if (widthsCalculated.current) return;
174
+ if (width <= 0 || widthsCalculated.current || !needsMeasurement) return;
89
175
  measuredWidths.current.set(cellKey, width);
90
176
  if (!measuredCells.current.has(cellKey)) {
91
177
  measuredCells.current.add(cellKey);
@@ -93,7 +179,7 @@ const TableRenderer = ({
93
179
  if (measuredCells.current.size < expectedCellKeys.length) return;
94
180
  const allCellsMeasured = expectedCellKeys.every(key => measuredCells.current.has(key));
95
181
  if (!allCellsMeasured) return;
96
- const maxWidths = new Array(columnCount).fill(0);
182
+ const maxWidths = [...columnWidthsRef.current];
97
183
  for (let col = 0; col < columnCount; col++) {
98
184
  const headerWidth = measuredWidths.current.get(`header-${col}`);
99
185
  if (headerWidth && headerWidth > 0) {
@@ -106,14 +192,15 @@ const TableRenderer = ({
106
192
  maxWidths[col] = Math.max(maxWidths[col], cellWidth);
107
193
  }
108
194
  }
109
- maxWidths[col] = Math.max(maxWidths[col] + 8, 60);
195
+ maxWidths[col] = Math.max(maxWidths[col] + COLUMN_MEASUREMENT_PADDING, MIN_COLUMN_WIDTH);
110
196
  }
111
197
  widthsCalculated.current = true;
198
+ setNeedsMeasurement(false);
112
199
  dispatch({
113
- type: "SET_WIDTHS",
200
+ type: "RESET_WIDTHS",
114
201
  payload: maxWidths
115
202
  });
116
- }, [columnCount, expectedCellKeys, rows]);
203
+ }, [columnCount, expectedCellKeys, needsMeasurement, rows]);
117
204
  const getAlignment = index => {
118
205
  const align = alignments[index];
119
206
  if (align === "center") return "center";
@@ -122,9 +209,10 @@ const TableRenderer = ({
122
209
  };
123
210
  if (columnCount === 0) return null;
124
211
  const hasWidths = columnWidths.length === columnCount;
212
+ const resolvedWidths = hasWidths ? columnWidths : estimatedColumnWidths;
125
213
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
126
214
  style: [styles.container, style],
127
- children: [!hasWidths && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
215
+ children: [needsMeasurement ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
128
216
  style: styles.measurementContainer,
129
217
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
130
218
  style: styles.measurementRow,
@@ -153,18 +241,20 @@ const TableRenderer = ({
153
241
  })
154
242
  }, `measure-cell-${rowIndex}-${colIndex}`))
155
243
  }, `measure-row-${rowIndex}`))]
156
- }), hasWidths ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
244
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
157
245
  horizontal: true,
158
246
  showsHorizontalScrollIndicator: true,
159
247
  style: styles.tableScroll,
160
248
  bounces: false,
161
249
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
162
- style: styles.table,
250
+ style: [styles.table, {
251
+ backgroundColor: style?.backgroundColor ?? theme.colors.surface ?? "#111827"
252
+ }],
163
253
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
164
254
  style: styles.headerRow,
165
255
  children: headers.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
166
256
  style: [styles.headerCell, {
167
- width: columnWidths[colIndex],
257
+ width: resolvedWidths[colIndex] ?? MIN_COLUMN_WIDTH,
168
258
  alignItems: getAlignment(colIndex)
169
259
  }, colIndex === columnCount - 1 && styles.lastCell],
170
260
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CellContent, {
@@ -175,10 +265,10 @@ const TableRenderer = ({
175
265
  })
176
266
  }, `header-${colIndex}`))
177
267
  }), rows.map((row, rowIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
178
- style: [styles.bodyRow, rowIndex === rows.length - 1 && styles.lastRow, rowIndex % 2 === 1 && styles.oddRow],
268
+ style: [styles.bodyRow, rowIndex === rows.length - 1 && styles.lastRow, rowIndex % 2 === 0 ? styles.evenRow : styles.oddRow],
179
269
  children: row.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
180
270
  style: [styles.bodyCell, {
181
- width: columnWidths[colIndex],
271
+ width: resolvedWidths[colIndex] ?? MIN_COLUMN_WIDTH,
182
272
  alignItems: getAlignment(colIndex)
183
273
  }, colIndex === columnCount - 1 && styles.lastCell],
184
274
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CellContent, {
@@ -190,7 +280,7 @@ const TableRenderer = ({
190
280
  }, `cell-${rowIndex}-${colIndex}`))
191
281
  }, `row-${rowIndex}`))]
192
282
  })
193
- }) : null]
283
+ })]
194
284
  });
195
285
  };
196
286
  exports.TableRenderer = TableRenderer;
@@ -245,8 +335,7 @@ const createTableStyles = theme => {
245
335
  borderRadius: borderRadius.m,
246
336
  overflow: "hidden",
247
337
  borderWidth: 1,
248
- borderColor: colors.tableBorder || "#374151",
249
- backgroundColor: colors.surface || "#111827"
338
+ borderColor: colors.tableBorder || "#374151"
250
339
  },
251
340
  headerRow: {
252
341
  flexDirection: "row",
@@ -259,6 +348,9 @@ const createTableStyles = theme => {
259
348
  borderBottomWidth: 1,
260
349
  borderBottomColor: colors.tableBorder || "#374151"
261
350
  },
351
+ evenRow: {
352
+ backgroundColor: colors.tableRowEven || "transparent"
353
+ },
262
354
  oddRow: {
263
355
  backgroundColor: colors.tableRowOdd || "rgba(255,255,255,0.02)"
264
356
  },
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_jsxRuntime","extractTableData","node","headers","rows","alignments","child","children","type","row","cell","push","align","rowCells","columnWidthsReducer","state","action","payload","TableRenderer","Renderer","style","theme","useMarkdownContext","useMemo","columnCount","length","styles","createTableStyles","columnWidths","dispatch","useReducer","measuredWidths","useRef","Map","measuredCells","Set","widthsCalculated","expectedCellKeys","keys","forEach","_","colIndex","rowIndex","useEffect","current","clear","onCellLayout","useCallback","cellKey","width","set","has","add","size","allCellsMeasured","every","key","maxWidths","Array","fill","col","headerWidth","get","Math","max","cellWidth","getAlignment","index","hasWidths","jsxs","View","container","measurementContainer","jsx","measurementRow","map","measurementCell","onLayout","e","nativeEvent","layout","CellContent","ScrollView","horizontal","showsHorizontalScrollIndicator","tableScroll","bounces","table","headerRow","headerCell","alignItems","lastCell","textStyle","headerText","bodyRow","lastRow","oddRow","bodyCell","cellText","exports","Text","content","cellContentWrapper","idx","depth","inListItem","parentIsText","colors","borderRadius","m","StyleSheet","create","marginVertical","spacing","s","position","opacity","pointerEvents","left","flexDirection","paddingVertical","paddingHorizontal","flexGrow","overflow","borderWidth","borderColor","tableBorder","backgroundColor","surface","tableHeader","borderBottomWidth","borderBottomColor","tableRowOdd","flexShrink","minWidth","borderRightWidth","borderRightColor","justifyContent","color","tableHeaderText","fontSize","fontWeight","fontFamily","fontFamilies","regular","Platform","OS","includeFontPadding","text","lineHeight","flexWrap"],"sourceRoot":"../../../src","sources":["renderers/table.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,YAAA,GAAAD,OAAA;AAWA,IAAAE,gBAAA,GAAAF,OAAA;AAAgF,IAAAG,WAAA,GAAAH,OAAA;AAUhF,MAAMI,gBAAgB,GAAIC,IAAkB,IAAgB;EAC1D,MAAMC,OAAuB,GAAG,EAAE;EAClC,MAAMC,IAAsB,GAAG,EAAE;EACjC,MAAMC,UAAkC,GAAG,EAAE;EAE7C,KAAK,MAAMC,KAAK,IAAIJ,IAAI,CAACK,QAAQ,IAAI,EAAE,EAAE;IACvC,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;MAC/B,KAAK,MAAMC,GAAG,IAAIH,KAAK,CAACC,QAAQ,IAAI,EAAE,EAAE;QACtC,IAAIE,GAAG,CAACD,IAAI,KAAK,WAAW,EAAE;UAC5B,KAAK,MAAME,IAAI,IAAID,GAAG,CAACF,QAAQ,IAAI,EAAE,EAAE;YACrCJ,OAAO,CAACQ,IAAI,CAACD,IAAI,CAAC;YAClBL,UAAU,CAACM,IAAI,CAACD,IAAI,CAACE,KAAK,CAAC;UAC7B;QACF;MACF;IACF,CAAC,MAAM,IAAIN,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;MACtC,KAAK,MAAMC,GAAG,IAAIH,KAAK,CAACC,QAAQ,IAAI,EAAE,EAAE;QACtC,IAAIE,GAAG,CAACD,IAAI,KAAK,WAAW,EAAE;UAC5B,MAAMK,QAAwB,GAAG,EAAE;UACnC,KAAK,MAAMH,IAAI,IAAID,GAAG,CAACF,QAAQ,IAAI,EAAE,EAAE;YACrCM,QAAQ,CAACF,IAAI,CAACD,IAAI,CAAC;UACrB;UACAN,IAAI,CAACO,IAAI,CAACE,QAAQ,CAAC;QACrB;MACF;IACF;EACF;EAEA,OAAO;IAAEV,OAAO;IAAEC,IAAI;IAAEC;EAAW,CAAC;AACtC,CAAC;AAaD,MAAMS,mBAAmB,GAAGA,CAACC,KAAe,EAAEC,MAA0B,KAAK;EAC3E,IAAIA,MAAM,CAACR,IAAI,KAAK,YAAY,EAAE,OAAOQ,MAAM,CAACC,OAAO;EACvD,OAAOF,KAAK;AACd,CAAC;AAEM,MAAMG,aAAqC,GAAGA,CAAC;EACpDhB,IAAI;EACJiB,QAAQ;EACRC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,mCAAkB,EAAC,CAAC;EACtC,MAAM;IAAEnB,OAAO;IAAEC,IAAI;IAAEC;EAAW,CAAC,GAAG,IAAAkB,cAAO,EAC3C,MAAMtB,gBAAgB,CAACC,IAAI,CAAC,EAC5B,CAACA,IAAI,CACP,CAAC;EAED,MAAMsB,WAAW,GAAGrB,OAAO,CAACsB,MAAM;EAClC,MAAMC,MAAM,GAAG,IAAAH,cAAO,EAAC,MAAMI,iBAAiB,CAACN,KAAK,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAE/D,MAAM,CAACO,YAAY,EAAEC,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAAChB,mBAAmB,EAAE,EAAE,CAAC;EACpE,MAAMiB,cAAc,GAAG,IAAAC,aAAM,EAAsB,IAAIC,GAAG,CAAC,CAAC,CAAC;EAC7D,MAAMC,aAAa,GAAG,IAAAF,aAAM,EAAc,IAAIG,GAAG,CAAC,CAAC,CAAC;EACpD,MAAMC,gBAAgB,GAAG,IAAAJ,aAAM,EAAC,KAAK,CAAC;EAEtC,MAAMK,gBAAgB,GAAG,IAAAd,cAAO,EAAC,MAAM;IACrC,MAAMe,IAAc,GAAG,EAAE;IAEzBnC,OAAO,CAACoC,OAAO,CAAC,CAACC,CAAC,EAAEC,QAAQ,KAAK;MAC/BH,IAAI,CAAC3B,IAAI,CAAC,UAAU8B,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC;IAEFrC,IAAI,CAACmC,OAAO,CAAC,CAAC9B,GAAG,EAAEiC,QAAQ,KAAK;MAC9BjC,GAAG,CAAC8B,OAAO,CAAC,CAACC,CAAC,EAAEC,QAAQ,KAAK;QAC3BH,IAAI,CAAC3B,IAAI,CAAC,QAAQ+B,QAAQ,IAAID,QAAQ,EAAE,CAAC;MAC3C,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOH,IAAI;EACb,CAAC,EAAE,CAACnC,OAAO,EAAEC,IAAI,CAAC,CAAC;EAEnB,IAAAuC,gBAAS,EAAC,MAAM;IACdZ,cAAc,CAACa,OAAO,CAACC,KAAK,CAAC,CAAC;IAC9BX,aAAa,CAACU,OAAO,CAACC,KAAK,CAAC,CAAC;IAC7BT,gBAAgB,CAACQ,OAAO,GAAG,KAAK;IAChCf,QAAQ,CAAC;MAAErB,IAAI,EAAE,YAAY;MAAES,OAAO,EAAE;IAAG,CAAC,CAAC;EAC/C,CAAC,EAAE,CAACoB,gBAAgB,CAAC,CAAC;EAEtB,MAAMS,YAAY,GAAG,IAAAC,kBAAW,EAC9B,CAACC,OAAe,EAAEC,KAAa,KAAK;IAClC,IAAIb,gBAAgB,CAACQ,OAAO,EAAE;IAE9Bb,cAAc,CAACa,OAAO,CAACM,GAAG,CAACF,OAAO,EAAEC,KAAK,CAAC;IAC1C,IAAI,CAACf,aAAa,CAACU,OAAO,CAACO,GAAG,CAACH,OAAO,CAAC,EAAE;MACvCd,aAAa,CAACU,OAAO,CAACQ,GAAG,CAACJ,OAAO,CAAC;IACpC;IAEA,IAAId,aAAa,CAACU,OAAO,CAACS,IAAI,GAAGhB,gBAAgB,CAACZ,MAAM,EAAE;IAE1D,MAAM6B,gBAAgB,GAAGjB,gBAAgB,CAACkB,KAAK,CAAEC,GAAG,IAClDtB,aAAa,CAACU,OAAO,CAACO,GAAG,CAACK,GAAG,CAC/B,CAAC;IACD,IAAI,CAACF,gBAAgB,EAAE;IAEvB,MAAMG,SAAmB,GAAG,IAAIC,KAAK,CAAClC,WAAW,CAAC,CAACmC,IAAI,CAAC,CAAC,CAAC;IAE1D,KAAK,IAAIC,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGpC,WAAW,EAAEoC,GAAG,EAAE,EAAE;MAC1C,MAAMC,WAAW,GAAG9B,cAAc,CAACa,OAAO,CAACkB,GAAG,CAAC,UAAUF,GAAG,EAAE,CAAC;MAC/D,IAAIC,WAAW,IAAIA,WAAW,GAAG,CAAC,EAAE;QAClCJ,SAAS,CAACG,GAAG,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACP,SAAS,CAACG,GAAG,CAAC,EAAEC,WAAW,CAAC;MACxD;MAEA,KAAK,IAAIpD,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAGL,IAAI,CAACqB,MAAM,EAAEhB,GAAG,EAAE,EAAE;QAC1C,IAAImD,GAAG,IAAIxD,IAAI,CAACK,GAAG,CAAC,CAACgB,MAAM,EAAE;QAC7B,MAAMwC,SAAS,GAAGlC,cAAc,CAACa,OAAO,CAACkB,GAAG,CAAC,QAAQrD,GAAG,IAAImD,GAAG,EAAE,CAAC;QAClE,IAAIK,SAAS,IAAIA,SAAS,GAAG,CAAC,EAAE;UAC9BR,SAAS,CAACG,GAAG,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACP,SAAS,CAACG,GAAG,CAAC,EAAEK,SAAS,CAAC;QACtD;MACF;MAEAR,SAAS,CAACG,GAAG,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACP,SAAS,CAACG,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IACnD;IAEAxB,gBAAgB,CAACQ,OAAO,GAAG,IAAI;IAC/Bf,QAAQ,CAAC;MAAErB,IAAI,EAAE,YAAY;MAAES,OAAO,EAAEwC;IAAU,CAAC,CAAC;EACtD,CAAC,EACD,CAACjC,WAAW,EAAEa,gBAAgB,EAAEjC,IAAI,CACtC,CAAC;EAED,MAAM8D,YAAY,GAChBC,KAAa,IAC4B;IACzC,MAAMvD,KAAK,GAAGP,UAAU,CAAC8D,KAAK,CAAC;IAC/B,IAAIvD,KAAK,KAAK,QAAQ,EAAE,OAAO,QAAQ;IACvC,IAAIA,KAAK,KAAK,OAAO,EAAE,OAAO,UAAU;IACxC,OAAO,YAAY;EACrB,CAAC;EAED,IAAIY,WAAW,KAAK,CAAC,EAAE,OAAO,IAAI;EAElC,MAAM4C,SAAS,GAAGxC,YAAY,CAACH,MAAM,KAAKD,WAAW;EAErD,oBACE,IAAAxB,WAAA,CAAAqE,IAAA,EAACvE,YAAA,CAAAwE,IAAI;IAAClD,KAAK,EAAE,CAACM,MAAM,CAAC6C,SAAS,EAAEnD,KAAK,CAAE;IAAAb,QAAA,GACpC,CAAC6D,SAAS,iBACT,IAAApE,WAAA,CAAAqE,IAAA,EAACvE,YAAA,CAAAwE,IAAI;MAAClD,KAAK,EAAEM,MAAM,CAAC8C,oBAAqB;MAAAjE,QAAA,gBACvC,IAAAP,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;QAAClD,KAAK,EAAEM,MAAM,CAACgD,cAAe;QAAAnE,QAAA,EAChCJ,OAAO,CAACwE,GAAG,CAAC,CAACjE,IAAI,EAAE+B,QAAQ,kBAC1B,IAAAzC,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;UAEHlD,KAAK,EAAEM,MAAM,CAACkD,eAAgB;UAC9BC,QAAQ,EAAGC,CAAoB,IAAK;YAClChC,YAAY,CACV,UAAUL,QAAQ,EAAE,EACpBqC,CAAC,CAACC,WAAW,CAACC,MAAM,CAAC/B,KACvB,CAAC;UACH,CAAE;UAAA1C,QAAA,eAEF,IAAAP,WAAA,CAAAyE,GAAA,EAACQ,WAAW;YAAC/E,IAAI,EAAEQ,IAAK;YAACS,QAAQ,EAAEA,QAAS;YAACO,MAAM,EAAEA;UAAO,CAAE;QAAC,GAT1D,kBAAkBe,QAAQ,EAU3B,CACP;MAAC,CACE,CAAC,EACNrC,IAAI,CAACuE,GAAG,CAAC,CAAClE,GAAG,EAAEiC,QAAQ,kBACtB,IAAA1C,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;QAAiClD,KAAK,EAAEM,MAAM,CAACgD,cAAe;QAAAnE,QAAA,EAChEE,GAAG,CAACkE,GAAG,CAAC,CAACjE,IAAI,EAAE+B,QAAQ,kBACtB,IAAAzC,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;UAEHlD,KAAK,EAAEM,MAAM,CAACkD,eAAgB;UAC9BC,QAAQ,EAAGC,CAAoB,IAAK;YAClChC,YAAY,CACV,QAAQJ,QAAQ,IAAID,QAAQ,EAAE,EAC9BqC,CAAC,CAACC,WAAW,CAACC,MAAM,CAAC/B,KACvB,CAAC;UACH,CAAE;UAAA1C,QAAA,eAEF,IAAAP,WAAA,CAAAyE,GAAA,EAACQ,WAAW;YACV/E,IAAI,EAAEQ,IAAK;YACXS,QAAQ,EAAEA,QAAS;YACnBO,MAAM,EAAEA;UAAO,CAChB;QAAC,GAbG,gBAAgBgB,QAAQ,IAAID,QAAQ,EAcrC,CACP;MAAC,GAlBO,eAAeC,QAAQ,EAmB5B,CACP,CAAC;IAAA,CACE,CACP,EAEA0B,SAAS,gBACR,IAAApE,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAoF,UAAU;MACTC,UAAU;MACVC,8BAA8B;MAC9BhE,KAAK,EAAEM,MAAM,CAAC2D,WAAY;MAC1BC,OAAO,EAAE,KAAM;MAAA/E,QAAA,eAEf,IAAAP,WAAA,CAAAqE,IAAA,EAACvE,YAAA,CAAAwE,IAAI;QAAClD,KAAK,EAAEM,MAAM,CAAC6D,KAAM;QAAAhF,QAAA,gBACxB,IAAAP,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;UAAClD,KAAK,EAAEM,MAAM,CAAC8D,SAAU;UAAAjF,QAAA,EAC3BJ,OAAO,CAACwE,GAAG,CAAC,CAACjE,IAAI,EAAE+B,QAAQ,kBAC1B,IAAAzC,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;YAEHlD,KAAK,EAAE,CACLM,MAAM,CAAC+D,UAAU,EACjB;cACExC,KAAK,EAAErB,YAAY,CAACa,QAAQ,CAAC;cAC7BiD,UAAU,EAAExB,YAAY,CAACzB,QAAQ;YACnC,CAAC,EACDA,QAAQ,KAAKjB,WAAW,GAAG,CAAC,IAAIE,MAAM,CAACiE,QAAQ,CAC/C;YAAApF,QAAA,eAEF,IAAAP,WAAA,CAAAyE,GAAA,EAACQ,WAAW;cACV/E,IAAI,EAAEQ,IAAK;cACXS,QAAQ,EAAEA,QAAS;cACnBO,MAAM,EAAEA,MAAO;cACfkE,SAAS,EAAElE,MAAM,CAACmE;YAAW,CAC9B;UAAC,GAfG,UAAUpD,QAAQ,EAgBnB,CACP;QAAC,CACE,CAAC,EAENrC,IAAI,CAACuE,GAAG,CAAC,CAAClE,GAAG,EAAEiC,QAAQ,kBACtB,IAAA1C,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;UAEHlD,KAAK,EAAE,CACLM,MAAM,CAACoE,OAAO,EACdpD,QAAQ,KAAKtC,IAAI,CAACqB,MAAM,GAAG,CAAC,IAAIC,MAAM,CAACqE,OAAO,EAC9CrD,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAIhB,MAAM,CAACsE,MAAM,CACnC;UAAAzF,QAAA,EAEDE,GAAG,CAACkE,GAAG,CAAC,CAACjE,IAAI,EAAE+B,QAAQ,kBACtB,IAAAzC,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;YAEHlD,KAAK,EAAE,CACLM,MAAM,CAACuE,QAAQ,EACf;cACEhD,KAAK,EAAErB,YAAY,CAACa,QAAQ,CAAC;cAC7BiD,UAAU,EAAExB,YAAY,CAACzB,QAAQ;YACnC,CAAC,EACDA,QAAQ,KAAKjB,WAAW,GAAG,CAAC,IAAIE,MAAM,CAACiE,QAAQ,CAC/C;YAAApF,QAAA,eAEF,IAAAP,WAAA,CAAAyE,GAAA,EAACQ,WAAW;cACV/E,IAAI,EAAEQ,IAAK;cACXS,QAAQ,EAAEA,QAAS;cACnBO,MAAM,EAAEA,MAAO;cACfkE,SAAS,EAAElE,MAAM,CAACwE;YAAS,CAC5B;UAAC,GAfG,QAAQxD,QAAQ,IAAID,QAAQ,EAgB7B,CACP;QAAC,GA1BG,OAAOC,QAAQ,EA2BhB,CACP,CAAC;MAAA,CACE;IAAC,CACG,CAAC,GACX,IAAI;EAAA,CACJ,CAAC;AAEX,CAAC;AAACyD,OAAA,CAAAjF,aAAA,GAAAA,aAAA;AAEF,MAAM+D,WAKJ,GAAGA,CAAC;EAAE/E,IAAI;EAAEiB,QAAQ;EAAEO,MAAM;EAAEkE;AAAU,CAAC,KAAK;EAC9C,IAAI,CAAC1F,IAAI,CAACK,QAAQ,IAAIL,IAAI,CAACK,QAAQ,CAACkB,MAAM,KAAK,CAAC,EAAE;IAChD,oBAAO,IAAAzB,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAsG,IAAI;MAAChF,KAAK,EAAEwE,SAAU;MAAArF,QAAA,EAAEL,IAAI,CAACmG,OAAO,IAAI;IAAE,CAAO,CAAC;EAC5D;EAEA,oBACE,IAAArG,WAAA,CAAAyE,GAAA,EAAC3E,YAAA,CAAAwE,IAAI;IAAClD,KAAK,EAAEM,MAAM,CAAC4E,kBAAmB;IAAA/F,QAAA,EACpCL,IAAI,CAACK,QAAQ,CAACoE,GAAG,CAAC,CAACrE,KAAK,EAAEiG,GAAG,kBAC5B,IAAAvG,WAAA,CAAAyE,GAAA,EAACtD,QAAQ;MAEPjB,IAAI,EAAEI,KAAM;MACZkG,KAAK,EAAE,CAAE;MACTC,UAAU,EAAE,KAAM;MAClBC,YAAY,EAAE;IAAM,GAJfH,GAKN,CACF;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAM5E,iBAAiB,GAAIN,KAAoB,IAAK;EAClD,MAAMsF,MAAM,GAAGtF,KAAK,EAAEsF,MAAM,IAAI,CAAC,CAAC;EAClC,MAAMC,YAAY,GAAGvF,KAAK,EAAEuF,YAAY,IAAI;IAAEC,CAAC,EAAE;EAAE,CAAC;EAEpD,OAAOC,uBAAU,CAACC,MAAM,CAAC;IACvBxC,SAAS,EAAE;MACTyC,cAAc,EAAE3F,KAAK,CAAC4F,OAAO,CAACC;IAChC,CAAC;IACD1C,oBAAoB,EAAE;MACpB2C,QAAQ,EAAE,UAAU;MACpBC,OAAO,EAAE,CAAC;MACVC,aAAa,EAAE,MAAM;MACrBC,IAAI,EAAE,CAAC;IACT,CAAC;IACD5C,cAAc,EAAE;MACd6C,aAAa,EAAE;IACjB,CAAC;IACD3C,eAAe,EAAE;MACf4C,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE;IACrB,CAAC;IACDpC,WAAW,EAAE;MACXqC,QAAQ,EAAE;IACZ,CAAC;IACDnC,KAAK,EAAE;MACLqB,YAAY,EAAEA,YAAY,CAACC,CAAC;MAC5Bc,QAAQ,EAAE,QAAQ;MAClBC,WAAW,EAAE,CAAC;MACdC,WAAW,EAAElB,MAAM,CAACmB,WAAW,IAAI,SAAS;MAC5CC,eAAe,EAAEpB,MAAM,CAACqB,OAAO,IAAI;IACrC,CAAC;IACDxC,SAAS,EAAE;MACT+B,aAAa,EAAE,KAAK;MACpBQ,eAAe,EAAEpB,MAAM,CAACsB,WAAW,IAAI,SAAS;MAChDC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAExB,MAAM,CAACmB,WAAW,IAAI;IAC3C,CAAC;IACDhC,OAAO,EAAE;MACPyB,aAAa,EAAE,KAAK;MACpBW,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAExB,MAAM,CAACmB,WAAW,IAAI;IAC3C,CAAC;IACD9B,MAAM,EAAE;MACN+B,eAAe,EAAEpB,MAAM,CAACyB,WAAW,IAAI;IACzC,CAAC;IACDrC,OAAO,EAAE;MACPmC,iBAAiB,EAAE;IACrB,CAAC;IACDzC,UAAU,EAAE;MACV4C,UAAU,EAAE,CAAC;MACbb,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE,EAAE;MACrBa,QAAQ,EAAE,EAAE;MACZC,gBAAgB,EAAE,CAAC;MACnBC,gBAAgB,EAAE7B,MAAM,CAACmB,WAAW,IAAI;IAC1C,CAAC;IACD7B,QAAQ,EAAE;MACRoC,UAAU,EAAE,CAAC;MACbb,eAAe,EAAE,EAAE;MACnBC,iBAAiB,EAAE,EAAE;MACrBa,QAAQ,EAAE,EAAE;MACZC,gBAAgB,EAAE,CAAC;MACnBC,gBAAgB,EAAE7B,MAAM,CAACmB,WAAW,IAAI,SAAS;MACjDW,cAAc,EAAE;IAClB,CAAC;IACD9C,QAAQ,EAAE;MACR4C,gBAAgB,EAAE;IACpB,CAAC;IACD1C,UAAU,EAAE;MACV6C,KAAK,EAAE/B,MAAM,CAACgC,eAAe,IAAI,SAAS;MAC1CC,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE,KAAK;MACjBC,UAAU,EAAEzH,KAAK,CAAC0H,YAAY,EAAEC,OAAO;MACvC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;QAAEC,kBAAkB,EAAE;MAAM,CAAC;IAChE,CAAC;IACDjD,QAAQ,EAAE;MACRwC,KAAK,EAAE/B,MAAM,CAACyC,IAAI,IAAI,SAAS;MAC/BR,QAAQ,EAAE,EAAE;MACZS,UAAU,EAAE,EAAE;MACdP,UAAU,EAAEzH,KAAK,CAAC0H,YAAY,EAAEC,OAAO;MACvC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAI;QAAEC,kBAAkB,EAAE;MAAM,CAAC;IAChE,CAAC;IACD7C,kBAAkB,EAAE;MAClBiB,aAAa,EAAE,KAAK;MACpB+B,QAAQ,EAAE,MAAM;MAChB5D,UAAU,EAAE;IACd;EACF,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_jsxRuntime","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","getTextContent","content","trim","maxChars","cellChars","estimatedWidth","steppedEstimatedWidth","ceil","TableRenderer","Renderer","style","theme","useMarkdownContext","useMemo","styles","createTableStyles","estimatedColumnWidths","columnWidths","dispatch","useReducer","measuredWidths","useRef","Map","measuredCells","Set","widthsCalculated","columnWidthsRef","lastCellKeySignatureRef","measurementTimerRef","needsMeasurement","setNeedsMeasurement","_previous","nextValue","expectedCellKeys","keys","forEach","_","colIndex","rowIndex","expectedCellKeySignature","join","useEffect","current","structureChanged","clearTimeout","clear","setTimeout","onCellLayout","useCallback","cellKey","set","has","add","size","allCellsMeasured","key","maxWidths","headerWidth","cellWidth","getAlignment","hasWidths","resolvedWidths","jsxs","View","container","measurementContainer","jsx","measurementRow","measurementCell","onLayout","e","nativeEvent","layout","CellContent","ScrollView","horizontal","showsHorizontalScrollIndicator","tableScroll","bounces","table","backgroundColor","colors","surface","headerRow","headerCell","alignItems","lastCell","textStyle","headerText","bodyRow","lastRow","evenRow","oddRow","bodyCell","cellText","exports","Text","cellContentWrapper","idx","depth","inListItem","parentIsText","borderRadius","m","StyleSheet","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","Platform","OS","includeFontPadding","text","lineHeight","flexWrap"],"sourceRoot":"../../../src","sources":["renderers/table.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseMarkdownAst = exports.getNextStreamAst = void 0;
7
+ var _headless = require("../headless.js");
8
+ const PLAIN_TEXT_APPEND_PATTERN = /[`*_~[\]#!<>()|$\n\r]/;
9
+ const FENCE_LINE_PATTERN = /^ {0,3}(```+|~~~+)/;
10
+ const parseAst = (text, options) => {
11
+ if (options) {
12
+ return (0, _headless.parseMarkdownWithOptions)(text, options);
13
+ }
14
+ return (0, _headless.parseMarkdown)(text);
15
+ };
16
+ const isInsideFencedCodeBlock = text => {
17
+ const lines = text.split(/\r?\n/);
18
+ let openFenceChar = null;
19
+ let openFenceLength = 0;
20
+ for (const line of lines) {
21
+ const fenceMatch = line.match(FENCE_LINE_PATTERN);
22
+ if (!fenceMatch) continue;
23
+ const marker = fenceMatch[1];
24
+ const markerChar = marker[0];
25
+ const markerLength = marker.length;
26
+ if (!openFenceChar) {
27
+ openFenceChar = markerChar;
28
+ openFenceLength = markerLength;
29
+ continue;
30
+ }
31
+ if (markerChar === openFenceChar && markerLength >= openFenceLength) {
32
+ openFenceChar = null;
33
+ openFenceLength = 0;
34
+ }
35
+ }
36
+ return openFenceChar !== null;
37
+ };
38
+ const containsFenceLine = text => {
39
+ return text.split(/\r?\n/).some(line => FENCE_LINE_PATTERN.test(line));
40
+ };
41
+ const getTrailingLine = text => {
42
+ const lastLineBreak = Math.max(text.lastIndexOf("\n"), text.lastIndexOf("\r"));
43
+ if (lastLineBreak === -1) return text;
44
+ return text.slice(lastLineBreak + 1);
45
+ };
46
+ const getLeadingLine = text => {
47
+ const newlineIndex = text.indexOf("\n");
48
+ const carriageReturnIndex = text.indexOf("\r");
49
+ const hasNewline = newlineIndex !== -1;
50
+ const hasCarriageReturn = carriageReturnIndex !== -1;
51
+ if (!hasNewline && !hasCarriageReturn) return text;
52
+ if (!hasNewline) return text.slice(0, carriageReturnIndex);
53
+ if (!hasCarriageReturn) return text.slice(0, newlineIndex);
54
+ return text.slice(0, Math.min(newlineIndex, carriageReturnIndex));
55
+ };
56
+ const hasSplitFenceBoundary = (previousText, appendedChunk) => {
57
+ if (appendedChunk.length === 0) return false;
58
+ const candidateLine = `${getTrailingLine(previousText)}${getLeadingLine(appendedChunk)}`;
59
+ if (candidateLine.length === 0) return false;
60
+ return FENCE_LINE_PATTERN.test(candidateLine);
61
+ };
62
+ const findTrailingLeafPath = (node, path = []) => {
63
+ const children = node.children;
64
+ if (!children || children.length === 0) {
65
+ return path;
66
+ }
67
+ const lastIndex = children.length - 1;
68
+ return findTrailingLeafPath(children[lastIndex], [...path, lastIndex]);
69
+ };
70
+ const getNodeAtPath = (node, path) => {
71
+ let current = node;
72
+ for (const index of path) {
73
+ const child = current.children?.[index];
74
+ if (!child) return null;
75
+ current = child;
76
+ }
77
+ return current;
78
+ };
79
+ const appendPlainTextToAst = (ast, appendedChunk, previousTextLength) => {
80
+ if (appendedChunk.length === 0) return ast;
81
+ const path = findTrailingLeafPath(ast);
82
+ const leaf = getNodeAtPath(ast, path);
83
+ if (leaf?.type !== "text") return null;
84
+ if (typeof leaf.end !== "number" || leaf.end !== previousTextLength) {
85
+ return null;
86
+ }
87
+ const delta = appendedChunk.length;
88
+ const update = (node, depth) => {
89
+ if (depth === path.length) {
90
+ return {
91
+ ...node,
92
+ content: (node.content ?? "") + appendedChunk,
93
+ end: typeof node.end === "number" ? node.end + delta : node.end
94
+ };
95
+ }
96
+ const childIndex = path[depth];
97
+ const children = node.children?.map((child, index) => index === childIndex ? update(child, depth + 1) : child);
98
+ return {
99
+ ...node,
100
+ end: typeof node.end === "number" ? node.end + delta : node.end,
101
+ children
102
+ };
103
+ };
104
+ return update(ast, 0);
105
+ };
106
+ const endsAtBlockBoundary = text => {
107
+ return text.endsWith("\n") || text.endsWith("\r");
108
+ };
109
+ const getNextStreamAst = ({
110
+ allowIncremental = true,
111
+ nextText,
112
+ options,
113
+ previousAst,
114
+ previousText
115
+ }) => {
116
+ if (!allowIncremental || !nextText.startsWith(previousText)) {
117
+ return parseAst(nextText, options);
118
+ }
119
+ const appendedChunk = nextText.slice(previousText.length);
120
+ if (appendedChunk.length === 0) {
121
+ return previousAst;
122
+ }
123
+ const insideFencedCodeBlock = isInsideFencedCodeBlock(previousText);
124
+ const hasFenceBoundary = containsFenceLine(appendedChunk) || hasSplitFenceBoundary(previousText, appendedChunk);
125
+ if (insideFencedCodeBlock && !hasFenceBoundary) {
126
+ const fencedTextAppendAst = appendPlainTextToAst(previousAst, appendedChunk, previousText.length);
127
+ if (fencedTextAppendAst) {
128
+ return fencedTextAppendAst;
129
+ }
130
+ }
131
+ if (!PLAIN_TEXT_APPEND_PATTERN.test(appendedChunk)) {
132
+ if (endsAtBlockBoundary(previousText)) {
133
+ return parseAst(nextText, options);
134
+ }
135
+ const textAppendedAst = appendPlainTextToAst(previousAst, appendedChunk, previousText.length);
136
+ if (textAppendedAst) {
137
+ return textAppendedAst;
138
+ }
139
+ }
140
+ if (insideFencedCodeBlock) {
141
+ return parseAst(nextText, options);
142
+ }
143
+
144
+ // Correctness-first fallback: full reparse for all non-trivial appends.
145
+ // Incremental append is only used for plain text chunks at the true trailing leaf.
146
+ return parseAst(nextText, options);
147
+ };
148
+ exports.getNextStreamAst = getNextStreamAst;
149
+ const parseMarkdownAst = (text, options) => {
150
+ return parseAst(text, options);
151
+ };
152
+ exports.parseMarkdownAst = parseMarkdownAst;
153
+ //# sourceMappingURL=incremental-ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_headless","require","PLAIN_TEXT_APPEND_PATTERN","FENCE_LINE_PATTERN","parseAst","text","options","parseMarkdownWithOptions","parseMarkdown","isInsideFencedCodeBlock","lines","split","openFenceChar","openFenceLength","line","fenceMatch","match","marker","markerChar","markerLength","length","containsFenceLine","some","test","getTrailingLine","lastLineBreak","Math","max","lastIndexOf","slice","getLeadingLine","newlineIndex","indexOf","carriageReturnIndex","hasNewline","hasCarriageReturn","min","hasSplitFenceBoundary","previousText","appendedChunk","candidateLine","findTrailingLeafPath","node","path","children","lastIndex","getNodeAtPath","current","index","child","appendPlainTextToAst","ast","previousTextLength","leaf","type","end","delta","update","depth","content","childIndex","map","endsAtBlockBoundary","endsWith","getNextStreamAst","allowIncremental","nextText","previousAst","startsWith","insideFencedCodeBlock","hasFenceBoundary","fencedTextAppendAst","textAppendedAst","exports","parseMarkdownAst"],"sourceRoot":"../../../src","sources":["utils/incremental-ast.ts"],"mappings":"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","ignoreList":[]}
@@ -27,8 +27,14 @@ export const MarkdownParserModule = NitroModules.createHybridObject("MarkdownPar
27
27
  * @returns The root node of the parsed AST
28
28
  */
29
29
  export function parseMarkdown(text) {
30
- const jsonStr = MarkdownParserModule.parse(text);
31
- return JSON.parse(jsonStr);
30
+ if (typeof MarkdownParserModule.parse === "function") {
31
+ const jsonStr = MarkdownParserModule.parse(text);
32
+ return JSON.parse(jsonStr);
33
+ }
34
+ return {
35
+ type: "document",
36
+ children: []
37
+ };
32
38
  }
33
39
 
34
40
  /**
@@ -38,8 +44,35 @@ export function parseMarkdown(text) {
38
44
  * @returns The root node of the parsed AST
39
45
  */
40
46
  export function parseMarkdownWithOptions(text, options) {
41
- const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
42
- return JSON.parse(jsonStr);
47
+ if (typeof MarkdownParserModule.parseWithOptions === "function") {
48
+ const jsonStr = MarkdownParserModule.parseWithOptions(text, options);
49
+ return JSON.parse(jsonStr);
50
+ }
51
+ return {
52
+ type: "document",
53
+ children: []
54
+ };
55
+ }
56
+
57
+ /**
58
+ * Parse markdown and return flattened plain text directly from native parser.
59
+ * Useful for search/indexing flows that don't need full AST rendering.
60
+ */
61
+ export function extractPlainText(text) {
62
+ if (typeof MarkdownParserModule.extractPlainText === "function") {
63
+ return MarkdownParserModule.extractPlainText(text);
64
+ }
65
+ return getFlattenedText(parseMarkdown(text));
66
+ }
67
+
68
+ /**
69
+ * Parse markdown with options and return flattened plain text from native parser.
70
+ */
71
+ export function extractPlainTextWithOptions(text, options) {
72
+ if (typeof MarkdownParserModule.extractPlainTextWithOptions === "function") {
73
+ return MarkdownParserModule.extractPlainTextWithOptions(text, options);
74
+ }
75
+ return getFlattenedText(parseMarkdownWithOptions(text, options));
43
76
  }
44
77
  /**
45
78
  * Extract text content from a markdown node recursively.
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","MarkdownParserModule","createHybridObject","parseMarkdown","text","jsonStr","parse","JSON","parseMarkdownWithOptions","options","parseWithOptions","getTextContent","node","content","children","map","join","getFlattenedText","type","trim","alt","title","childrenText"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,4BAA4B;;AAKzD;AACA;AACA;AACA;;AAyDA,OAAO,MAAMC,oBAAoB,GAC/BD,YAAY,CAACE,kBAAkB,CAAiB,gBAAgB,CAAC;;AAEnE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,IAAY,EAAgB;EACxD,MAAMC,OAAO,GAAGJ,oBAAoB,CAACK,KAAK,CAACF,IAAI,CAAC;EAChD,OAAOG,IAAI,CAACD,KAAK,CAACD,OAAO,CAAC;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,wBAAwBA,CACtCJ,IAAY,EACZK,OAAsB,EACR;EACd,MAAMJ,OAAO,GAAGJ,oBAAoB,CAACS,gBAAgB,CAACN,IAAI,EAAEK,OAAO,CAAC;EACpE,OAAOF,IAAI,CAACD,KAAK,CAACD,OAAO,CAAC;AAC5B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMM,cAAc,GAAIC,IAAkB,IAAa;EAC5D,IAAIA,IAAI,CAACC,OAAO,EAAE,OAAOD,IAAI,CAACC,OAAO;EACrC,OAAOD,IAAI,CAACE,QAAQ,EAAEC,GAAG,CAACJ,cAAc,CAAC,CAACK,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AAC1D,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAIL,IAAkB,IAAa;EAC9D,IACEA,IAAI,CAACM,IAAI,KAAK,MAAM,IACpBN,IAAI,CAACM,IAAI,KAAK,aAAa,IAC3BN,IAAI,CAACM,IAAI,KAAK,aAAa,IAC3BN,IAAI,CAACM,IAAI,KAAK,aAAa,EAC3B;IACA,OAAON,IAAI,CAACC,OAAO,IAAI,EAAE;EAC3B;EAEA,IACED,IAAI,CAACM,IAAI,KAAK,YAAY,IAC1BN,IAAI,CAACM,IAAI,KAAK,YAAY,IAC1BN,IAAI,CAACM,IAAI,KAAK,YAAY,EAC1B;IACA,OAAO,CAACN,IAAI,CAACC,OAAO,IAAI,EAAE,EAAEM,IAAI,CAAC,CAAC,GAAG,MAAM;EAC7C;EAEA,IAAIP,IAAI,CAACM,IAAI,KAAK,YAAY,EAAE,OAAO,IAAI;EAC3C,IAAIN,IAAI,CAACM,IAAI,KAAK,YAAY,EAAE,OAAO,GAAG;EAC1C,IAAIN,IAAI,CAACM,IAAI,KAAK,iBAAiB,EAAE,OAAO,SAAS;EAErD,IAAIN,IAAI,CAACM,IAAI,KAAK,OAAO,EAAE;IACzB,OAAON,IAAI,CAACQ,GAAG,IAAIR,IAAI,CAACS,KAAK,IAAI,EAAE;EACrC;EAEA,MAAMC,YAAY,GAAGV,IAAI,CAACE,QAAQ,EAAEC,GAAG,CAACE,gBAAgB,CAAC,CAACD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;EAExE,QAAQJ,IAAI,CAACM,IAAI;IACf,KAAK,WAAW;IAChB,KAAK,SAAS;IACd,KAAK,YAAY;MACf,OAAOI,YAAY,CAACH,IAAI,CAAC,CAAC,GAAG,MAAM;IAErC,KAAK,WAAW;IAChB,KAAK,gBAAgB;MACnB,OAAOG,YAAY,CAACH,IAAI,CAAC,CAAC,GAAG,IAAI;IAEnC,KAAK,MAAM;MACT,OAAOG,YAAY,GAAG,IAAI;IAE5B,KAAK,WAAW;MACd,OAAOA,YAAY,GAAG,IAAI;IAE5B,KAAK,YAAY;MACf,OAAOA,YAAY,GAAG,KAAK;IAE7B;MACE,OAAOA,YAAY;EACvB;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","MarkdownParserModule","createHybridObject","parseMarkdown","text","parse","jsonStr","JSON","type","children","parseMarkdownWithOptions","options","parseWithOptions","extractPlainText","getFlattenedText","extractPlainTextWithOptions","getTextContent","node","content","map","join","trim","alt","title","childrenText"],"sourceRoot":"../../src","sources":["headless.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,eAAY;AAE1B,SAASA,QAAQ,QAAQ,eAAY;AACrC,SAASC,cAAc,QAAQ,sBAAmB;AAElD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAmBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB","ignoreList":[]}
1
+ {"version":3,"names":["Markdown","MarkdownStream","useMarkdownContext","MarkdownContext","defaultMarkdownTheme","minimalMarkdownTheme","mergeThemes","Heading","Paragraph","Link","Blockquote","HorizontalRule","CodeBlock","InlineCode","List","ListItem","TaskListItem","TableRenderer","Image","MathInline","MathBlock","createMarkdownSession","useMarkdownSession","useStream"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,eAAY;AAE1B,SAASA,QAAQ,QAAQ,eAAY;AAOrC,SAASC,cAAc,QAAQ,sBAAmB;AAGlD,SAASC,kBAAkB,EAAEC,eAAe,QAAQ,sBAAmB;AAmBvE,SACEC,oBAAoB,EACpBC,oBAAoB,EACpBC,WAAW,QACN,YAAS;AAQhB,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,SAAS,QAAQ,0BAAuB;AACjD,SAASC,IAAI,QAAQ,qBAAkB;AACvC,SAASC,UAAU,QAAQ,2BAAwB;AACnD,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,SAAS,EAAEC,UAAU,QAAQ,qBAAkB;AACxD,SAASC,IAAI,EAAEC,QAAQ,EAAEC,YAAY,QAAQ,qBAAkB;AAC/D,SAASC,aAAa,QAAQ,sBAAmB;AACjD,SAASC,KAAK,QAAQ,sBAAmB;AACzC,SAASC,UAAU,EAAEC,SAAS,QAAQ,qBAAkB;AAExD,SAASC,qBAAqB,QAAQ,sBAAmB;AAEzD,SAASC,kBAAkB,EAAEC,SAAS,QAAQ,0BAAuB","ignoreList":[]}