@buoy-gg/ask-buoy 7.0.35 → 7.0.36

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 (217) hide show
  1. package/README.md +35 -8
  2. package/lib/commonjs/blocks/BlockRenderer.js +13 -1
  3. package/lib/commonjs/blocks/BlockRenderer.js.map +1 -1
  4. package/lib/commonjs/blocks/DataBlocks.js +126 -33
  5. package/lib/commonjs/blocks/DataBlocks.js.map +1 -1
  6. package/lib/commonjs/blocks/ExtraBlocks.js +12 -6
  7. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -1
  8. package/lib/commonjs/blocks/MediaBlocks.js +22 -6
  9. package/lib/commonjs/blocks/MediaBlocks.js.map +1 -1
  10. package/lib/commonjs/blocks/blockText.js +60 -0
  11. package/lib/commonjs/blocks/blockText.js.map +1 -0
  12. package/lib/commonjs/blocks/blockText.test.js +53 -0
  13. package/lib/commonjs/blocks/blockText.test.js.map +1 -0
  14. package/lib/commonjs/blocks/primitives.js +58 -2
  15. package/lib/commonjs/blocks/primitives.js.map +1 -1
  16. package/lib/commonjs/components/ApprovalCard.js +111 -7
  17. package/lib/commonjs/components/ApprovalCard.js.map +1 -1
  18. package/lib/commonjs/components/AskBuoyHeader.js +36 -4
  19. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -1
  20. package/lib/commonjs/components/AskBuoyModal.js +160 -34
  21. package/lib/commonjs/components/AskBuoyModal.js.map +1 -1
  22. package/lib/commonjs/components/AskBuoySettings.js +50 -0
  23. package/lib/commonjs/components/AskBuoySettings.js.map +1 -1
  24. package/lib/commonjs/components/Composer.js +94 -14
  25. package/lib/commonjs/components/Composer.js.map +1 -1
  26. package/lib/commonjs/components/EmptyState.js +12 -5
  27. package/lib/commonjs/components/EmptyState.js.map +1 -1
  28. package/lib/commonjs/components/KeyboardPad.js +80 -0
  29. package/lib/commonjs/components/KeyboardPad.js.map +1 -0
  30. package/lib/commonjs/components/Markdown.js +148 -90
  31. package/lib/commonjs/components/Markdown.js.map +1 -1
  32. package/lib/commonjs/components/MessageList.js +339 -92
  33. package/lib/commonjs/components/MessageList.js.map +1 -1
  34. package/lib/commonjs/components/QueuedMessages.js +145 -0
  35. package/lib/commonjs/components/QueuedMessages.js.map +1 -0
  36. package/lib/commonjs/components/markdownParse.js +131 -0
  37. package/lib/commonjs/components/markdownParse.js.map +1 -0
  38. package/lib/commonjs/components/markdownParse.test.js +99 -0
  39. package/lib/commonjs/components/markdownParse.test.js.map +1 -0
  40. package/lib/commonjs/store/activityGroups.js +110 -0
  41. package/lib/commonjs/store/activityGroups.js.map +1 -0
  42. package/lib/commonjs/store/activityGroups.test.js +78 -0
  43. package/lib/commonjs/store/activityGroups.test.js.map +1 -0
  44. package/lib/commonjs/store/askBuoySettings.js +7 -2
  45. package/lib/commonjs/store/askBuoySettings.js.map +1 -1
  46. package/lib/commonjs/store/askBuoyStore.js +192 -10
  47. package/lib/commonjs/store/askBuoyStore.js.map +1 -1
  48. package/lib/commonjs/store/blockPlacement.js +64 -0
  49. package/lib/commonjs/store/blockPlacement.js.map +1 -0
  50. package/lib/commonjs/store/blockPlacement.test.js +123 -0
  51. package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
  52. package/lib/commonjs/store/queue.test.js +150 -0
  53. package/lib/commonjs/store/queue.test.js.map +1 -0
  54. package/lib/commonjs/store/resetConversation.js +77 -0
  55. package/lib/commonjs/store/resetConversation.js.map +1 -0
  56. package/lib/commonjs/store/restorePending.test.js +63 -0
  57. package/lib/commonjs/store/restorePending.test.js.map +1 -0
  58. package/lib/commonjs/store/suggestions.js +54 -0
  59. package/lib/commonjs/store/suggestions.js.map +1 -0
  60. package/lib/commonjs/store/suggestions.test.js +58 -0
  61. package/lib/commonjs/store/suggestions.test.js.map +1 -0
  62. package/lib/commonjs/store/systemLine.test.js +77 -0
  63. package/lib/commonjs/store/systemLine.test.js.map +1 -0
  64. package/lib/commonjs/store/ticketPrompt.js +17 -0
  65. package/lib/commonjs/store/ticketPrompt.js.map +1 -0
  66. package/lib/commonjs/store/transcriptPersistence.js +92 -3
  67. package/lib/commonjs/store/transcriptPersistence.js.map +1 -1
  68. package/lib/commonjs/store/transcriptPersistence.test.js +148 -0
  69. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -1
  70. package/lib/commonjs/store/turnRendering.test.js +151 -0
  71. package/lib/commonjs/store/turnRendering.test.js.map +1 -0
  72. package/lib/commonjs/store/useAskBuoy.js +271 -49
  73. package/lib/commonjs/store/useAskBuoy.js.map +1 -1
  74. package/lib/commonjs/sync/askBuoySyncAdapter.js +25 -4
  75. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -1
  76. package/lib/module/blocks/BlockRenderer.js +13 -1
  77. package/lib/module/blocks/BlockRenderer.js.map +1 -1
  78. package/lib/module/blocks/DataBlocks.js +128 -35
  79. package/lib/module/blocks/DataBlocks.js.map +1 -1
  80. package/lib/module/blocks/ExtraBlocks.js +12 -6
  81. package/lib/module/blocks/ExtraBlocks.js.map +1 -1
  82. package/lib/module/blocks/MediaBlocks.js +22 -6
  83. package/lib/module/blocks/MediaBlocks.js.map +1 -1
  84. package/lib/module/blocks/blockText.js +55 -0
  85. package/lib/module/blocks/blockText.js.map +1 -0
  86. package/lib/module/blocks/blockText.test.js +53 -0
  87. package/lib/module/blocks/blockText.test.js.map +1 -0
  88. package/lib/module/blocks/primitives.js +58 -2
  89. package/lib/module/blocks/primitives.js.map +1 -1
  90. package/lib/module/components/ApprovalCard.js +113 -9
  91. package/lib/module/components/ApprovalCard.js.map +1 -1
  92. package/lib/module/components/AskBuoyHeader.js +37 -5
  93. package/lib/module/components/AskBuoyHeader.js.map +1 -1
  94. package/lib/module/components/AskBuoyModal.js +163 -37
  95. package/lib/module/components/AskBuoyModal.js.map +1 -1
  96. package/lib/module/components/AskBuoySettings.js +52 -2
  97. package/lib/module/components/AskBuoySettings.js.map +1 -1
  98. package/lib/module/components/Composer.js +95 -15
  99. package/lib/module/components/Composer.js.map +1 -1
  100. package/lib/module/components/EmptyState.js +12 -5
  101. package/lib/module/components/EmptyState.js.map +1 -1
  102. package/lib/module/components/KeyboardPad.js +75 -0
  103. package/lib/module/components/KeyboardPad.js.map +1 -0
  104. package/lib/module/components/Markdown.js +149 -90
  105. package/lib/module/components/Markdown.js.map +1 -1
  106. package/lib/module/components/MessageList.js +341 -94
  107. package/lib/module/components/MessageList.js.map +1 -1
  108. package/lib/module/components/QueuedMessages.js +140 -0
  109. package/lib/module/components/QueuedMessages.js.map +1 -0
  110. package/lib/module/components/markdownParse.js +125 -0
  111. package/lib/module/components/markdownParse.js.map +1 -0
  112. package/lib/module/components/markdownParse.test.js +98 -0
  113. package/lib/module/components/markdownParse.test.js.map +1 -0
  114. package/lib/module/store/activityGroups.js +103 -0
  115. package/lib/module/store/activityGroups.js.map +1 -0
  116. package/lib/module/store/activityGroups.test.js +77 -0
  117. package/lib/module/store/activityGroups.test.js.map +1 -0
  118. package/lib/module/store/askBuoySettings.js +7 -2
  119. package/lib/module/store/askBuoySettings.js.map +1 -1
  120. package/lib/module/store/askBuoyStore.js +190 -10
  121. package/lib/module/store/askBuoyStore.js.map +1 -1
  122. package/lib/module/store/blockPlacement.js +59 -0
  123. package/lib/module/store/blockPlacement.js.map +1 -0
  124. package/lib/module/store/blockPlacement.test.js +122 -0
  125. package/lib/module/store/blockPlacement.test.js.map +1 -0
  126. package/lib/module/store/queue.test.js +149 -0
  127. package/lib/module/store/queue.test.js.map +1 -0
  128. package/lib/module/store/resetConversation.js +72 -0
  129. package/lib/module/store/resetConversation.js.map +1 -0
  130. package/lib/module/store/restorePending.test.js +62 -0
  131. package/lib/module/store/restorePending.test.js.map +1 -0
  132. package/lib/module/store/suggestions.js +49 -0
  133. package/lib/module/store/suggestions.js.map +1 -0
  134. package/lib/module/store/suggestions.test.js +57 -0
  135. package/lib/module/store/suggestions.test.js.map +1 -0
  136. package/lib/module/store/systemLine.test.js +76 -0
  137. package/lib/module/store/systemLine.test.js.map +1 -0
  138. package/lib/module/store/ticketPrompt.js +13 -0
  139. package/lib/module/store/ticketPrompt.js.map +1 -0
  140. package/lib/module/store/transcriptPersistence.js +92 -3
  141. package/lib/module/store/transcriptPersistence.js.map +1 -1
  142. package/lib/module/store/transcriptPersistence.test.js +148 -0
  143. package/lib/module/store/transcriptPersistence.test.js.map +1 -1
  144. package/lib/module/store/turnRendering.test.js +150 -0
  145. package/lib/module/store/turnRendering.test.js.map +1 -0
  146. package/lib/module/store/useAskBuoy.js +275 -53
  147. package/lib/module/store/useAskBuoy.js.map +1 -1
  148. package/lib/module/sync/askBuoySyncAdapter.js +25 -4
  149. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -1
  150. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -1
  151. package/lib/typescript/blocks/DataBlocks.d.ts +11 -0
  152. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -1
  153. package/lib/typescript/blocks/ExtraBlocks.d.ts +18 -2
  154. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -1
  155. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -1
  156. package/lib/typescript/blocks/blockText.d.ts +14 -0
  157. package/lib/typescript/blocks/blockText.d.ts.map +1 -0
  158. package/lib/typescript/blocks/blockText.test.d.ts +2 -0
  159. package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
  160. package/lib/typescript/blocks/primitives.d.ts +16 -1
  161. package/lib/typescript/blocks/primitives.d.ts.map +1 -1
  162. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -1
  163. package/lib/typescript/components/AskBuoyHeader.d.ts +31 -1
  164. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -1
  165. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -1
  166. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -1
  167. package/lib/typescript/components/Composer.d.ts +16 -1
  168. package/lib/typescript/components/Composer.d.ts.map +1 -1
  169. package/lib/typescript/components/EmptyState.d.ts +5 -1
  170. package/lib/typescript/components/EmptyState.d.ts.map +1 -1
  171. package/lib/typescript/components/KeyboardPad.d.ts +33 -0
  172. package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
  173. package/lib/typescript/components/Markdown.d.ts +0 -10
  174. package/lib/typescript/components/Markdown.d.ts.map +1 -1
  175. package/lib/typescript/components/MessageList.d.ts +7 -2
  176. package/lib/typescript/components/MessageList.d.ts.map +1 -1
  177. package/lib/typescript/components/QueuedMessages.d.ts +10 -0
  178. package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
  179. package/lib/typescript/components/markdownParse.d.ts +49 -0
  180. package/lib/typescript/components/markdownParse.d.ts.map +1 -0
  181. package/lib/typescript/components/markdownParse.test.d.ts +2 -0
  182. package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
  183. package/lib/typescript/store/activityGroups.d.ts +29 -0
  184. package/lib/typescript/store/activityGroups.d.ts.map +1 -0
  185. package/lib/typescript/store/activityGroups.test.d.ts +2 -0
  186. package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
  187. package/lib/typescript/store/askBuoySettings.d.ts +22 -0
  188. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -1
  189. package/lib/typescript/store/askBuoyStore.d.ts +142 -5
  190. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -1
  191. package/lib/typescript/store/blockPlacement.d.ts +30 -0
  192. package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
  193. package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
  194. package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
  195. package/lib/typescript/store/queue.test.d.ts +2 -0
  196. package/lib/typescript/store/queue.test.d.ts.map +1 -0
  197. package/lib/typescript/store/resetConversation.d.ts +38 -0
  198. package/lib/typescript/store/resetConversation.d.ts.map +1 -0
  199. package/lib/typescript/store/restorePending.test.d.ts +2 -0
  200. package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
  201. package/lib/typescript/store/suggestions.d.ts +32 -0
  202. package/lib/typescript/store/suggestions.d.ts.map +1 -0
  203. package/lib/typescript/store/suggestions.test.d.ts +2 -0
  204. package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
  205. package/lib/typescript/store/systemLine.test.d.ts +2 -0
  206. package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
  207. package/lib/typescript/store/ticketPrompt.d.ts +11 -0
  208. package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
  209. package/lib/typescript/store/transcriptPersistence.d.ts +41 -2
  210. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -1
  211. package/lib/typescript/store/turnRendering.test.d.ts +2 -0
  212. package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
  213. package/lib/typescript/store/useAskBuoy.d.ts +23 -1
  214. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -1
  215. package/lib/typescript/sync/askBuoySyncAdapter.d.ts +26 -6
  216. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -1
  217. package/package.json +9 -9
@@ -7,78 +7,15 @@
7
7
  * asks for prose, and the asterisks rendered raw made every answer look like
8
8
  * a broken template. This handles the subset a chat actually receives —
9
9
  * paragraphs, `-`/`*`/`1.` lists, `#` headings (rendered bold, not huge),
10
- * bold, italics and inline code — with no dependency and no HTML. Anything it
11
- * does not understand falls through as plain text, never as a blank.
10
+ * pipe tables, fenced code, bold, italics and inline code — with no
11
+ * dependency and no HTML. Anything it does not understand falls through as
12
+ * plain text, never as a blank. The parser lives in markdownParse.ts so it
13
+ * can be tested without React Native.
12
14
  */
13
- import { StyleSheet, Text, View } from "react-native";
15
+ import { useState } from "react";
16
+ import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
14
17
  import { night } from "@buoy-gg/shared-ui";
15
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
- const isTableRow = l => /^\s*\|.*\|\s*$/.test(l);
17
- const isTableRule = l => /^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/.test(l);
18
- const splitRow = l => l.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map(c => c.trim());
19
- function parseBlocks(source) {
20
- const blocks = [];
21
- let para = [];
22
- const flush = () => {
23
- if (para.length) blocks.push({
24
- kind: "p",
25
- text: para.join(" ")
26
- });
27
- para = [];
28
- };
29
- const lines = source.split("\n");
30
- for (let li = 0; li < lines.length; li++) {
31
- const raw = lines[li];
32
- const line = raw.replace(/\s+$/, "");
33
- if (!line.trim()) {
34
- flush();
35
- continue;
36
- }
37
- // A pipe table: header row, a rule row, then body rows.
38
- if (isTableRow(line) && lines[li + 1] && isTableRule(lines[li + 1])) {
39
- flush();
40
- const header = splitRow(line);
41
- const rows = [];
42
- let j = li + 2;
43
- while (j < lines.length && isTableRow(lines[j])) {
44
- rows.push(splitRow(lines[j]));
45
- j++;
46
- }
47
- blocks.push({
48
- kind: "table",
49
- header,
50
- rows
51
- });
52
- li = j - 1;
53
- continue;
54
- }
55
- const heading = /^#{1,6}\s+(.*)$/.exec(line);
56
- if (heading) {
57
- flush();
58
- blocks.push({
59
- kind: "h",
60
- text: heading[1]
61
- });
62
- continue;
63
- }
64
- const bullet = /^(\s*)([-*•]|\d+[.)])\s+(.*)$/.exec(line);
65
- if (bullet) {
66
- flush();
67
- const depth = Math.min(2, Math.floor(bullet[1].length / 2));
68
- const marker = /^\d/.test(bullet[2]) ? bullet[2].replace(")", ".") : "•";
69
- blocks.push({
70
- kind: "li",
71
- text: bullet[3],
72
- marker,
73
- depth
74
- });
75
- continue;
76
- }
77
- para.push(line.trim());
78
- }
79
- flush();
80
- return blocks;
81
- }
18
+ import { parseBlocks, TABLE_PREVIEW_COLS, TABLE_PREVIEW_ROWS, tableTruncation } from "./markdownParse";
82
19
 
83
20
  /**
84
21
  * `**bold**`, `*italic*` / `_italic_`, `` `code` `` → styled spans. Links and
@@ -86,6 +23,7 @@ function parseBlocks(source) {
86
23
  * `![Snorlax](https://raw.githubusercontent.com/…/143.png)` printed raw is
87
24
  * three lines of noise for one word of meaning.
88
25
  */
26
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
89
27
  export function renderInline(source, base) {
90
28
  const text = source.replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1");
91
29
  const out = [];
@@ -117,6 +55,78 @@ export function renderInline(source, base) {
117
55
  if (last < text.length) out.push(text.slice(last));
118
56
  return out;
119
57
  }
58
+ const stripLinks = s => s.replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1");
59
+
60
+ /**
61
+ * A pipe table, cut to a preview that SAYS it is cut.
62
+ *
63
+ * It used to slice to four columns and twelve rows in silence. A model asked
64
+ * for "all 30 bag lines" sent 30; the tester read 12 and filed "the bag only
65
+ * has 12 items". Evidence that is cut must say so — a footer names what is
66
+ * missing and Show all expands to every row and column inside a capped,
67
+ * horizontally scrollable box, the same shape the approval card uses for its
68
+ * long description.
69
+ */
70
+ function MarkdownTable({
71
+ header,
72
+ rows
73
+ }) {
74
+ const [expanded, setExpanded] = useState(false);
75
+ const truncation = tableTruncation(header, rows);
76
+ const cols = expanded ? header : header.slice(0, TABLE_PREVIEW_COLS);
77
+ const shownRows = expanded ? rows : rows.slice(0, TABLE_PREVIEW_ROWS);
78
+ const body = /*#__PURE__*/_jsxs(View, {
79
+ style: expanded && styles.tableWide,
80
+ children: [/*#__PURE__*/_jsx(View, {
81
+ style: styles.tableHead,
82
+ children: cols.map((c, k) => /*#__PURE__*/_jsx(Text, {
83
+ style: [styles.th, k === 0 && styles.firstCol, expanded && styles.colFixed],
84
+ numberOfLines: 1,
85
+ children: c.replace(/\*\*/g, "")
86
+ }, k))
87
+ }), shownRows.map((r, ri) => /*#__PURE__*/_jsx(View, {
88
+ style: [styles.tr, ri > 0 && styles.trDivider],
89
+ children: cols.map((_, k) => /*#__PURE__*/_jsx(Text, {
90
+ style: [styles.td, k === 0 && styles.firstCol, k === 0 && styles.tdFirst, expanded && styles.colFixed],
91
+ numberOfLines: expanded ? 3 : 2,
92
+ children: renderInline(stripLinks(r[k] ?? ""), styles.td)
93
+ }, k))
94
+ }, ri))]
95
+ });
96
+ return /*#__PURE__*/_jsxs(View, {
97
+ style: styles.table,
98
+ testID: "buoy-ask-buoy-md-table",
99
+ children: [expanded ?
100
+ /*#__PURE__*/
101
+ // Capped both ways: every column gets a real width and scrolls
102
+ // sideways; the rows scroll inside the card rather than taking the
103
+ // whole transcript with them.
104
+ _jsx(ScrollView, {
105
+ style: styles.tableScrollV,
106
+ nestedScrollEnabled: true,
107
+ children: /*#__PURE__*/_jsx(ScrollView, {
108
+ horizontal: true,
109
+ showsHorizontalScrollIndicator: true,
110
+ children: body
111
+ })
112
+ }) : body, truncation ? /*#__PURE__*/_jsxs(Pressable, {
113
+ testID: "buoy-ask-buoy-md-table-toggle",
114
+ accessibilityRole: "button",
115
+ accessibilityLabel: expanded ? "Show fewer rows" : "Show all rows and columns",
116
+ onPress: () => setExpanded(v => !v),
117
+ style: ({
118
+ pressed
119
+ }) => [styles.tfoot, pressed && styles.pressed],
120
+ children: [/*#__PURE__*/_jsx(Text, {
121
+ style: styles.tfootText,
122
+ children: expanded ? `All ${rows.length} rows · ${header.length} columns` : truncation
123
+ }), /*#__PURE__*/_jsx(Text, {
124
+ style: styles.tfootAction,
125
+ children: expanded ? "Show fewer" : "Show all"
126
+ })]
127
+ }) : null]
128
+ });
129
+ }
120
130
  export function Markdown({
121
131
  text,
122
132
  style
@@ -125,26 +135,27 @@ export function Markdown({
125
135
  return /*#__PURE__*/_jsx(View, {
126
136
  style: styles.wrap,
127
137
  children: blocks.map((b, i) => {
128
- if (b.kind === "table") {
129
- const cols = b.header.slice(0, 4);
130
- return /*#__PURE__*/_jsxs(View, {
131
- style: styles.table,
132
- children: [/*#__PURE__*/_jsx(View, {
133
- style: styles.tableHead,
134
- children: cols.map((c, k) => /*#__PURE__*/_jsx(Text, {
135
- style: [styles.th, k === 0 && styles.firstCol],
136
- numberOfLines: 1,
137
- children: c.replace(/\*\*/g, "")
138
- }, k))
139
- }), b.rows.slice(0, 12).map((r, ri) => /*#__PURE__*/_jsx(View, {
140
- style: [styles.tr, ri > 0 && styles.trDivider],
141
- children: cols.map((_, k) => /*#__PURE__*/_jsx(Text, {
142
- style: [styles.td, k === 0 && styles.firstCol, k === 0 && styles.tdFirst],
143
- numberOfLines: 2,
144
- children: renderInline((r[k] ?? "").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1"), styles.td)
145
- }, k))
146
- }, ri))]
147
- }, i);
138
+ if (b.kind === "table") return /*#__PURE__*/_jsx(MarkdownTable, {
139
+ header: b.header,
140
+ rows: b.rows
141
+ }, i);
142
+ if (b.kind === "code") {
143
+ return (
144
+ /*#__PURE__*/
145
+ // Newlines and indentation kept; long lines scroll sideways rather
146
+ // than wrapping a JSON object into soup.
147
+ _jsx(ScrollView, {
148
+ horizontal: true,
149
+ style: styles.codeBlock,
150
+ contentContainerStyle: styles.codeBlockContent,
151
+ testID: "buoy-ask-buoy-md-code",
152
+ children: /*#__PURE__*/_jsx(Text, {
153
+ style: styles.codeText,
154
+ selectable: true,
155
+ children: b.text
156
+ })
157
+ }, i)
158
+ );
148
159
  }
149
160
  if (b.kind === "li") {
150
161
  return /*#__PURE__*/_jsxs(View, {
@@ -185,6 +196,22 @@ const styles = StyleSheet.create({
185
196
  color: night.color.accent,
186
197
  backgroundColor: night.color.fill
187
198
  },
199
+ codeBlock: {
200
+ borderRadius: night.radius.row,
201
+ borderWidth: StyleSheet.hairlineWidth,
202
+ borderColor: night.color.border,
203
+ backgroundColor: night.color.surface
204
+ },
205
+ codeBlockContent: {
206
+ paddingHorizontal: 12,
207
+ paddingVertical: 10
208
+ },
209
+ codeText: {
210
+ fontFamily: "Menlo",
211
+ fontSize: 12,
212
+ lineHeight: 18,
213
+ color: night.color.text
214
+ },
188
215
  li: {
189
216
  flexDirection: "row",
190
217
  gap: 8
@@ -196,6 +223,12 @@ const styles = StyleSheet.create({
196
223
  backgroundColor: night.color.surface,
197
224
  overflow: "hidden"
198
225
  },
226
+ tableWide: {
227
+ minWidth: "100%"
228
+ },
229
+ tableScrollV: {
230
+ maxHeight: 320
231
+ },
199
232
  tableHead: {
200
233
  flexDirection: "row",
201
234
  paddingHorizontal: 10,
@@ -234,6 +267,32 @@ const styles = StyleSheet.create({
234
267
  firstCol: {
235
268
  flex: 1.3
236
269
  },
270
+ // Expanded: a real width per column so six of them don't share one row.
271
+ colFixed: {
272
+ flex: 0,
273
+ width: 110
274
+ },
275
+ tfoot: {
276
+ flexDirection: "row",
277
+ justifyContent: "space-between",
278
+ alignItems: "center",
279
+ paddingHorizontal: 10,
280
+ paddingVertical: 8,
281
+ borderTopWidth: StyleSheet.hairlineWidth,
282
+ borderTopColor: night.color.border
283
+ },
284
+ tfootText: {
285
+ color: night.color.textSecondary,
286
+ fontSize: night.font.micro
287
+ },
288
+ tfootAction: {
289
+ color: night.color.accent,
290
+ fontSize: night.font.micro,
291
+ fontWeight: "600"
292
+ },
293
+ pressed: {
294
+ opacity: 0.7
295
+ },
237
296
  marker: {
238
297
  color: night.color.textSecondary,
239
298
  minWidth: 14,
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","Text","View","night","jsx","_jsx","jsxs","_jsxs","isTableRow","l","test","isTableRule","splitRow","trim","replace","split","map","c","parseBlocks","source","blocks","para","flush","length","push","kind","text","join","lines","li","raw","line","header","rows","j","heading","exec","bullet","depth","Math","min","floor","marker","renderInline","base","out","re","last","m","i","index","slice","tok","startsWith","style","styles","bold","children","code","italic","Markdown","wrap","b","cols","table","tableHead","k","th","firstCol","numberOfLines","r","ri","tr","trDivider","_","td","tdFirst","paddingLeft","liText","selectable","create","gap","fontWeight","fontStyle","fontFamily","fontSize","color","accent","backgroundColor","fill","flexDirection","borderRadius","radius","row","borderWidth","hairlineWidth","borderColor","border","surface","overflow","paddingHorizontal","paddingVertical","flex","textTertiary","font","micro","letterSpacing","textTransform","borderTopWidth","borderTopColor","separator","textSecondary","caption","lineHeight","minWidth","textAlign"],"sourceRoot":"../../../src","sources":["components/Markdown.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","Pressable","ScrollView","StyleSheet","Text","View","night","parseBlocks","TABLE_PREVIEW_COLS","TABLE_PREVIEW_ROWS","tableTruncation","jsx","_jsx","jsxs","_jsxs","renderInline","source","base","text","replace","out","re","last","m","i","exec","index","push","slice","tok","startsWith","style","styles","bold","children","code","italic","length","stripLinks","s","MarkdownTable","header","rows","expanded","setExpanded","truncation","cols","shownRows","body","tableWide","tableHead","map","c","k","th","firstCol","colFixed","numberOfLines","r","ri","tr","trDivider","_","td","tdFirst","table","testID","tableScrollV","nestedScrollEnabled","horizontal","showsHorizontalScrollIndicator","accessibilityRole","accessibilityLabel","onPress","v","pressed","tfoot","tfootText","tfootAction","Markdown","blocks","wrap","b","kind","codeBlock","contentContainerStyle","codeBlockContent","codeText","selectable","li","paddingLeft","depth","marker","liText","create","gap","fontWeight","fontStyle","fontFamily","fontSize","color","accent","backgroundColor","fill","borderRadius","radius","row","borderWidth","hairlineWidth","borderColor","border","surface","paddingHorizontal","paddingVertical","lineHeight","flexDirection","overflow","minWidth","maxHeight","flex","textTertiary","font","micro","letterSpacing","textTransform","borderTopWidth","borderTopColor","separator","textSecondary","caption","width","justifyContent","alignItems","opacity","textAlign"],"sourceRoot":"../../../src","sources":["components/Markdown.tsx"],"mappings":"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","ignoreList":[]}