@buoy-gg/ask-buoy 7.0.34 → 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 (352) hide show
  1. package/README.md +35 -8
  2. package/lib/commonjs/blocks/AskBlocks.js +338 -1
  3. package/lib/commonjs/blocks/AskBlocks.js.map +1 -0
  4. package/lib/commonjs/blocks/BlockRenderer.js +262 -1
  5. package/lib/commonjs/blocks/BlockRenderer.js.map +1 -0
  6. package/lib/commonjs/blocks/ChromePrototypes.js +514 -1
  7. package/lib/commonjs/blocks/ChromePrototypes.js.map +1 -0
  8. package/lib/commonjs/blocks/DataBlocks.js +781 -1
  9. package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
  10. package/lib/commonjs/blocks/ExtraBlocks.js +1860 -1
  11. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
  12. package/lib/commonjs/blocks/MediaBlocks.js +156 -1
  13. package/lib/commonjs/blocks/MediaBlocks.js.map +1 -0
  14. package/lib/commonjs/blocks/ReceiptBlocks.js +586 -1
  15. package/lib/commonjs/blocks/ReceiptBlocks.js.map +1 -0
  16. package/lib/commonjs/blocks/blockText.js +60 -0
  17. package/lib/commonjs/blocks/blockText.js.map +1 -0
  18. package/lib/commonjs/blocks/blockText.test.js +53 -0
  19. package/lib/commonjs/blocks/blockText.test.js.map +1 -0
  20. package/lib/commonjs/blocks/context.js +42 -1
  21. package/lib/commonjs/blocks/context.js.map +1 -0
  22. package/lib/commonjs/blocks/icons.js +96 -1
  23. package/lib/commonjs/blocks/icons.js.map +1 -0
  24. package/lib/commonjs/blocks/index.js +95 -1
  25. package/lib/commonjs/blocks/index.js.map +1 -0
  26. package/lib/commonjs/blocks/listRow.test.js +55 -0
  27. package/lib/commonjs/blocks/listRow.test.js.map +1 -0
  28. package/lib/commonjs/blocks/pageState.js +34 -0
  29. package/lib/commonjs/blocks/pageState.js.map +1 -0
  30. package/lib/commonjs/blocks/pageState.test.js +57 -0
  31. package/lib/commonjs/blocks/pageState.test.js.map +1 -0
  32. package/lib/commonjs/blocks/primitives.js +457 -1
  33. package/lib/commonjs/blocks/primitives.js.map +1 -0
  34. package/lib/commonjs/blocks/primitivesIndex.js +62 -1
  35. package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
  36. package/lib/commonjs/components/ApprovalCard.js +244 -1
  37. package/lib/commonjs/components/ApprovalCard.js.map +1 -0
  38. package/lib/commonjs/components/AskBuoyHeader.js +196 -1
  39. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
  40. package/lib/commonjs/components/AskBuoyIcon.js +19 -1
  41. package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
  42. package/lib/commonjs/components/AskBuoyModal.js +479 -1
  43. package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
  44. package/lib/commonjs/components/AskBuoySettings.js +119 -0
  45. package/lib/commonjs/components/AskBuoySettings.js.map +1 -0
  46. package/lib/commonjs/components/ChangesBar.js +211 -1
  47. package/lib/commonjs/components/ChangesBar.js.map +1 -0
  48. package/lib/commonjs/components/Composer.js +255 -1
  49. package/lib/commonjs/components/Composer.js.map +1 -0
  50. package/lib/commonjs/components/EmptyState.js +161 -1
  51. package/lib/commonjs/components/EmptyState.js.map +1 -0
  52. package/lib/commonjs/components/KeyboardPad.js +80 -0
  53. package/lib/commonjs/components/KeyboardPad.js.map +1 -0
  54. package/lib/commonjs/components/Markdown.js +310 -1
  55. package/lib/commonjs/components/Markdown.js.map +1 -0
  56. package/lib/commonjs/components/MessageList.js +930 -1
  57. package/lib/commonjs/components/MessageList.js.map +1 -0
  58. package/lib/commonjs/components/QueuedMessages.js +145 -0
  59. package/lib/commonjs/components/QueuedMessages.js.map +1 -0
  60. package/lib/commonjs/components/ThinkingStrip.js +223 -0
  61. package/lib/commonjs/components/ThinkingStrip.js.map +1 -0
  62. package/lib/commonjs/components/TypingDots.js +63 -1
  63. package/lib/commonjs/components/TypingDots.js.map +1 -0
  64. package/lib/commonjs/components/markdownParse.js +131 -0
  65. package/lib/commonjs/components/markdownParse.js.map +1 -0
  66. package/lib/commonjs/components/markdownParse.test.js +99 -0
  67. package/lib/commonjs/components/markdownParse.test.js.map +1 -0
  68. package/lib/commonjs/components/useCopyAction.js +50 -0
  69. package/lib/commonjs/components/useCopyAction.js.map +1 -0
  70. package/lib/commonjs/index.js +252 -1
  71. package/lib/commonjs/index.js.map +1 -0
  72. package/lib/commonjs/preset.js +90 -1
  73. package/lib/commonjs/preset.js.map +1 -0
  74. package/lib/commonjs/store/activityGroups.js +110 -0
  75. package/lib/commonjs/store/activityGroups.js.map +1 -0
  76. package/lib/commonjs/store/activityGroups.test.js +78 -0
  77. package/lib/commonjs/store/activityGroups.test.js.map +1 -0
  78. package/lib/commonjs/store/askBuoySettings.js +72 -0
  79. package/lib/commonjs/store/askBuoySettings.js.map +1 -0
  80. package/lib/commonjs/store/askBuoyStore.js +547 -1
  81. package/lib/commonjs/store/askBuoyStore.js.map +1 -0
  82. package/lib/commonjs/store/blockPlacement.js +64 -0
  83. package/lib/commonjs/store/blockPlacement.js.map +1 -0
  84. package/lib/commonjs/store/blockPlacement.test.js +123 -0
  85. package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
  86. package/lib/commonjs/store/queue.test.js +150 -0
  87. package/lib/commonjs/store/queue.test.js.map +1 -0
  88. package/lib/commonjs/store/resetConversation.js +77 -0
  89. package/lib/commonjs/store/resetConversation.js.map +1 -0
  90. package/lib/commonjs/store/restorePending.test.js +63 -0
  91. package/lib/commonjs/store/restorePending.test.js.map +1 -0
  92. package/lib/commonjs/store/restoredIds.test.js +47 -0
  93. package/lib/commonjs/store/restoredIds.test.js.map +1 -0
  94. package/lib/commonjs/store/suggestions.js +54 -0
  95. package/lib/commonjs/store/suggestions.js.map +1 -0
  96. package/lib/commonjs/store/suggestions.test.js +58 -0
  97. package/lib/commonjs/store/suggestions.test.js.map +1 -0
  98. package/lib/commonjs/store/systemLine.test.js +77 -0
  99. package/lib/commonjs/store/systemLine.test.js.map +1 -0
  100. package/lib/commonjs/store/ticketPrompt.js +17 -0
  101. package/lib/commonjs/store/ticketPrompt.js.map +1 -0
  102. package/lib/commonjs/store/traceText.js +81 -0
  103. package/lib/commonjs/store/traceText.js.map +1 -0
  104. package/lib/commonjs/store/traceText.test.js +112 -0
  105. package/lib/commonjs/store/traceText.test.js.map +1 -0
  106. package/lib/commonjs/store/transcriptPersistence.js +297 -0
  107. package/lib/commonjs/store/transcriptPersistence.js.map +1 -0
  108. package/lib/commonjs/store/transcriptPersistence.test.js +333 -0
  109. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -0
  110. package/lib/commonjs/store/turnRendering.test.js +151 -0
  111. package/lib/commonjs/store/turnRendering.test.js.map +1 -0
  112. package/lib/commonjs/store/useAskBuoy.js +622 -1
  113. package/lib/commonjs/store/useAskBuoy.js.map +1 -0
  114. package/lib/commonjs/store/useAskBuoySettings.js +14 -0
  115. package/lib/commonjs/store/useAskBuoySettings.js.map +1 -0
  116. package/lib/commonjs/sync/askBuoySyncAdapter.js +140 -1
  117. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
  118. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +141 -1
  119. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
  120. package/lib/commonjs/sync/wire.js +58 -1
  121. package/lib/commonjs/sync/wire.js.map +1 -0
  122. package/lib/commonjs/types.js +6 -1
  123. package/lib/commonjs/types.js.map +1 -0
  124. package/lib/module/blocks/AskBlocks.js +331 -1
  125. package/lib/module/blocks/AskBlocks.js.map +1 -0
  126. package/lib/module/blocks/BlockRenderer.js +257 -1
  127. package/lib/module/blocks/BlockRenderer.js.map +1 -0
  128. package/lib/module/blocks/ChromePrototypes.js +503 -1
  129. package/lib/module/blocks/ChromePrototypes.js.map +1 -0
  130. package/lib/module/blocks/DataBlocks.js +767 -1
  131. package/lib/module/blocks/DataBlocks.js.map +1 -0
  132. package/lib/module/blocks/ExtraBlocks.js +1833 -1
  133. package/lib/module/blocks/ExtraBlocks.js.map +1 -0
  134. package/lib/module/blocks/MediaBlocks.js +151 -1
  135. package/lib/module/blocks/MediaBlocks.js.map +1 -0
  136. package/lib/module/blocks/ReceiptBlocks.js +574 -1
  137. package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
  138. package/lib/module/blocks/blockText.js +55 -0
  139. package/lib/module/blocks/blockText.js.map +1 -0
  140. package/lib/module/blocks/blockText.test.js +53 -0
  141. package/lib/module/blocks/blockText.test.js.map +1 -0
  142. package/lib/module/blocks/context.js +35 -1
  143. package/lib/module/blocks/context.js.map +1 -0
  144. package/lib/module/blocks/icons.js +91 -1
  145. package/lib/module/blocks/icons.js.map +1 -0
  146. package/lib/module/blocks/index.js +8 -1
  147. package/lib/module/blocks/index.js.map +1 -0
  148. package/lib/module/blocks/listRow.test.js +56 -0
  149. package/lib/module/blocks/listRow.test.js.map +1 -0
  150. package/lib/module/blocks/pageState.js +30 -0
  151. package/lib/module/blocks/pageState.js.map +1 -0
  152. package/lib/module/blocks/pageState.test.js +56 -0
  153. package/lib/module/blocks/pageState.test.js.map +1 -0
  154. package/lib/module/blocks/primitives.js +445 -1
  155. package/lib/module/blocks/primitives.js.map +1 -0
  156. package/lib/module/blocks/primitivesIndex.js +5 -1
  157. package/lib/module/blocks/primitivesIndex.js.map +1 -0
  158. package/lib/module/components/ApprovalCard.js +239 -1
  159. package/lib/module/components/ApprovalCard.js.map +1 -0
  160. package/lib/module/components/AskBuoyHeader.js +193 -1
  161. package/lib/module/components/AskBuoyHeader.js.map +1 -0
  162. package/lib/module/components/AskBuoyIcon.js +8 -1
  163. package/lib/module/components/AskBuoyIcon.js.map +1 -0
  164. package/lib/module/components/AskBuoyModal.js +474 -1
  165. package/lib/module/components/AskBuoyModal.js.map +1 -0
  166. package/lib/module/components/AskBuoySettings.js +114 -0
  167. package/lib/module/components/AskBuoySettings.js.map +1 -0
  168. package/lib/module/components/ChangesBar.js +206 -1
  169. package/lib/module/components/ChangesBar.js.map +1 -0
  170. package/lib/module/components/Composer.js +250 -1
  171. package/lib/module/components/Composer.js.map +1 -0
  172. package/lib/module/components/EmptyState.js +156 -1
  173. package/lib/module/components/EmptyState.js.map +1 -0
  174. package/lib/module/components/KeyboardPad.js +75 -0
  175. package/lib/module/components/KeyboardPad.js.map +1 -0
  176. package/lib/module/components/Markdown.js +305 -1
  177. package/lib/module/components/Markdown.js.map +1 -0
  178. package/lib/module/components/MessageList.js +924 -1
  179. package/lib/module/components/MessageList.js.map +1 -0
  180. package/lib/module/components/QueuedMessages.js +140 -0
  181. package/lib/module/components/QueuedMessages.js.map +1 -0
  182. package/lib/module/components/ThinkingStrip.js +218 -0
  183. package/lib/module/components/ThinkingStrip.js.map +1 -0
  184. package/lib/module/components/TypingDots.js +58 -1
  185. package/lib/module/components/TypingDots.js.map +1 -0
  186. package/lib/module/components/markdownParse.js +125 -0
  187. package/lib/module/components/markdownParse.js.map +1 -0
  188. package/lib/module/components/markdownParse.test.js +98 -0
  189. package/lib/module/components/markdownParse.test.js.map +1 -0
  190. package/lib/module/components/useCopyAction.js +46 -0
  191. package/lib/module/components/useCopyAction.js.map +1 -0
  192. package/lib/module/index.js +34 -1
  193. package/lib/module/index.js.map +1 -0
  194. package/lib/module/preset.js +73 -1
  195. package/lib/module/preset.js.map +1 -0
  196. package/lib/module/store/activityGroups.js +103 -0
  197. package/lib/module/store/activityGroups.js.map +1 -0
  198. package/lib/module/store/activityGroups.test.js +77 -0
  199. package/lib/module/store/activityGroups.test.js.map +1 -0
  200. package/lib/module/store/askBuoySettings.js +67 -0
  201. package/lib/module/store/askBuoySettings.js.map +1 -0
  202. package/lib/module/store/askBuoyStore.js +541 -1
  203. package/lib/module/store/askBuoyStore.js.map +1 -0
  204. package/lib/module/store/blockPlacement.js +59 -0
  205. package/lib/module/store/blockPlacement.js.map +1 -0
  206. package/lib/module/store/blockPlacement.test.js +122 -0
  207. package/lib/module/store/blockPlacement.test.js.map +1 -0
  208. package/lib/module/store/queue.test.js +149 -0
  209. package/lib/module/store/queue.test.js.map +1 -0
  210. package/lib/module/store/resetConversation.js +72 -0
  211. package/lib/module/store/resetConversation.js.map +1 -0
  212. package/lib/module/store/restorePending.test.js +62 -0
  213. package/lib/module/store/restorePending.test.js.map +1 -0
  214. package/lib/module/store/restoredIds.test.js +46 -0
  215. package/lib/module/store/restoredIds.test.js.map +1 -0
  216. package/lib/module/store/suggestions.js +49 -0
  217. package/lib/module/store/suggestions.js.map +1 -0
  218. package/lib/module/store/suggestions.test.js +57 -0
  219. package/lib/module/store/suggestions.test.js.map +1 -0
  220. package/lib/module/store/systemLine.test.js +76 -0
  221. package/lib/module/store/systemLine.test.js.map +1 -0
  222. package/lib/module/store/ticketPrompt.js +13 -0
  223. package/lib/module/store/ticketPrompt.js.map +1 -0
  224. package/lib/module/store/traceText.js +75 -0
  225. package/lib/module/store/traceText.js.map +1 -0
  226. package/lib/module/store/traceText.test.js +111 -0
  227. package/lib/module/store/traceText.test.js.map +1 -0
  228. package/lib/module/store/transcriptPersistence.js +287 -0
  229. package/lib/module/store/transcriptPersistence.js.map +1 -0
  230. package/lib/module/store/transcriptPersistence.test.js +332 -0
  231. package/lib/module/store/transcriptPersistence.test.js.map +1 -0
  232. package/lib/module/store/turnRendering.test.js +150 -0
  233. package/lib/module/store/turnRendering.test.js.map +1 -0
  234. package/lib/module/store/useAskBuoy.js +616 -1
  235. package/lib/module/store/useAskBuoy.js.map +1 -0
  236. package/lib/module/store/useAskBuoySettings.js +9 -0
  237. package/lib/module/store/useAskBuoySettings.js.map +1 -0
  238. package/lib/module/sync/askBuoySyncAdapter.js +135 -1
  239. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
  240. package/lib/module/sync/askBuoySyncAdapter.test.js +140 -1
  241. package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
  242. package/lib/module/sync/wire.js +47 -1
  243. package/lib/module/sync/wire.js.map +1 -0
  244. package/lib/module/types.js +4 -1
  245. package/lib/module/types.js.map +1 -0
  246. package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
  247. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
  248. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
  249. package/lib/typescript/blocks/DataBlocks.d.ts +42 -0
  250. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
  251. package/lib/typescript/blocks/ExtraBlocks.d.ts +29 -2
  252. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
  253. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
  254. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
  255. package/lib/typescript/blocks/blockText.d.ts +14 -0
  256. package/lib/typescript/blocks/blockText.d.ts.map +1 -0
  257. package/lib/typescript/blocks/blockText.test.d.ts +2 -0
  258. package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
  259. package/lib/typescript/blocks/context.d.ts.map +1 -0
  260. package/lib/typescript/blocks/icons.d.ts.map +1 -0
  261. package/lib/typescript/blocks/index.d.ts.map +1 -0
  262. package/lib/typescript/blocks/listRow.test.d.ts +2 -0
  263. package/lib/typescript/blocks/listRow.test.d.ts.map +1 -0
  264. package/lib/typescript/blocks/pageState.d.ts +23 -0
  265. package/lib/typescript/blocks/pageState.d.ts.map +1 -0
  266. package/lib/typescript/blocks/pageState.test.d.ts +2 -0
  267. package/lib/typescript/blocks/pageState.test.d.ts.map +1 -0
  268. package/lib/typescript/blocks/primitives.d.ts +55 -10
  269. package/lib/typescript/blocks/primitives.d.ts.map +1 -0
  270. package/lib/typescript/blocks/primitivesIndex.d.ts +2 -1
  271. package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
  272. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
  273. package/lib/typescript/components/AskBuoyHeader.d.ts +41 -1
  274. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
  275. package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
  276. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
  277. package/lib/typescript/components/AskBuoySettings.d.ts +2 -0
  278. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -0
  279. package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
  280. package/lib/typescript/components/Composer.d.ts +16 -1
  281. package/lib/typescript/components/Composer.d.ts.map +1 -0
  282. package/lib/typescript/components/EmptyState.d.ts +5 -1
  283. package/lib/typescript/components/EmptyState.d.ts.map +1 -0
  284. package/lib/typescript/components/KeyboardPad.d.ts +33 -0
  285. package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
  286. package/lib/typescript/components/Markdown.d.ts +0 -10
  287. package/lib/typescript/components/Markdown.d.ts.map +1 -0
  288. package/lib/typescript/components/MessageList.d.ts +19 -7
  289. package/lib/typescript/components/MessageList.d.ts.map +1 -0
  290. package/lib/typescript/components/QueuedMessages.d.ts +10 -0
  291. package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
  292. package/lib/typescript/components/ThinkingStrip.d.ts +5 -0
  293. package/lib/typescript/components/ThinkingStrip.d.ts.map +1 -0
  294. package/lib/typescript/components/TypingDots.d.ts.map +1 -0
  295. package/lib/typescript/components/markdownParse.d.ts +49 -0
  296. package/lib/typescript/components/markdownParse.d.ts.map +1 -0
  297. package/lib/typescript/components/markdownParse.test.d.ts +2 -0
  298. package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
  299. package/lib/typescript/components/useCopyAction.d.ts +5 -0
  300. package/lib/typescript/components/useCopyAction.d.ts.map +1 -0
  301. package/lib/typescript/index.d.ts +5 -0
  302. package/lib/typescript/index.d.ts.map +1 -0
  303. package/lib/typescript/preset.d.ts.map +1 -0
  304. package/lib/typescript/store/activityGroups.d.ts +29 -0
  305. package/lib/typescript/store/activityGroups.d.ts.map +1 -0
  306. package/lib/typescript/store/activityGroups.test.d.ts +2 -0
  307. package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
  308. package/lib/typescript/store/askBuoySettings.d.ts +44 -0
  309. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -0
  310. package/lib/typescript/store/askBuoyStore.d.ts +216 -18
  311. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
  312. package/lib/typescript/store/blockPlacement.d.ts +30 -0
  313. package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
  314. package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
  315. package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
  316. package/lib/typescript/store/queue.test.d.ts +2 -0
  317. package/lib/typescript/store/queue.test.d.ts.map +1 -0
  318. package/lib/typescript/store/resetConversation.d.ts +38 -0
  319. package/lib/typescript/store/resetConversation.d.ts.map +1 -0
  320. package/lib/typescript/store/restorePending.test.d.ts +2 -0
  321. package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
  322. package/lib/typescript/store/restoredIds.test.d.ts +2 -0
  323. package/lib/typescript/store/restoredIds.test.d.ts.map +1 -0
  324. package/lib/typescript/store/suggestions.d.ts +32 -0
  325. package/lib/typescript/store/suggestions.d.ts.map +1 -0
  326. package/lib/typescript/store/suggestions.test.d.ts +2 -0
  327. package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
  328. package/lib/typescript/store/systemLine.test.d.ts +2 -0
  329. package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
  330. package/lib/typescript/store/ticketPrompt.d.ts +11 -0
  331. package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
  332. package/lib/typescript/store/traceText.d.ts +33 -0
  333. package/lib/typescript/store/traceText.d.ts.map +1 -0
  334. package/lib/typescript/store/traceText.test.d.ts +2 -0
  335. package/lib/typescript/store/traceText.test.d.ts.map +1 -0
  336. package/lib/typescript/store/transcriptPersistence.d.ts +79 -0
  337. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -0
  338. package/lib/typescript/store/transcriptPersistence.test.d.ts +2 -0
  339. package/lib/typescript/store/transcriptPersistence.test.d.ts.map +1 -0
  340. package/lib/typescript/store/turnRendering.test.d.ts +2 -0
  341. package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
  342. package/lib/typescript/store/useAskBuoy.d.ts +23 -1
  343. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
  344. package/lib/typescript/store/useAskBuoySettings.d.ts +3 -0
  345. package/lib/typescript/store/useAskBuoySettings.d.ts.map +1 -0
  346. package/lib/typescript/sync/askBuoySyncAdapter.d.ts +26 -6
  347. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
  348. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
  349. package/lib/typescript/sync/wire.d.ts.map +1 -0
  350. package/lib/typescript/types.d.ts +24 -1
  351. package/lib/typescript/types.d.ts.map +1 -0
  352. package/package.json +9 -9
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","StyleSheet","Text","View","ChevronRight","night","NightSectionLabel","pickSuggestions","jsx","_jsx","jsxs","_jsxs","isRelease","__DEV__","EmptyState","configured","onPick","availableToolIds","readOnly","suggestions","style","styles","wrap","testID","children","title","body","code","buildLine","group","card","map","s","i","Suggestion","text","last","length","slice","accessibilityRole","onPress","pressed","row","rowDivider","rowText","size","color","textTertiary","create","flex","justifyContent","paddingHorizontal","gutter","paddingVertical","gap","fontSize","fontWeight","letterSpacing","textSecondary","font","lineHeight","fontFamily","marginTop","micro","groupGap","borderRadius","radius","borderWidth","hairlineWidth","borderColor","border","backgroundColor","surface","overflow","flexDirection","alignItems","rowPadH","borderBottomWidth","borderBottomColor","separator","fill"],"sourceRoot":"../../../src","sources":["components/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Keeps the composer above the iOS keyboard.
5
+ *
6
+ * Why not `KeyboardAvoidingView`: it takes its frame from `onLayout`, which
7
+ * is RELATIVE TO ITS PARENT, and compares that to the keyboard's SCREEN
8
+ * position. That only agrees when the view starts at the window's origin.
9
+ * Ask Buoy is a JsModal — an absolutely positioned sheet anchored to the
10
+ * bottom of the app tree — so the view's local bottom (a few hundred points
11
+ * into the sheet) sits well above the keyboard's screen Y, the overlap comes
12
+ * out as zero, and nothing moves. The keyboard drew over the composer with
13
+ * a "working" `KeyboardAvoidingView` around it.
14
+ *
15
+ * This measures the SAME thing in the SAME coordinate space: the wrapper's
16
+ * bottom edge in window coordinates via `measureInWindow`, against the
17
+ * keyboard's `endCoordinates.screenY`. The difference is the overlap, and it
18
+ * becomes bottom padding animated over the keyboard's own duration so the
19
+ * composer rides the keyboard instead of jumping after it.
20
+ *
21
+ * The wrapper is `flex: 1` inside a fixed-height sheet body, so its OUTER
22
+ * bounds never change when its padding does — re-measuring on a later
23
+ * frame-change event (a predictive-text bar appearing, an emoji keyboard)
24
+ * gives the same bottom edge.
25
+ *
26
+ * iOS only. Android's window resizes under the keyboard
27
+ * (`softwareKeyboardLayoutMode: "resize"`, both the Expo and the RN CLI
28
+ * template default) and a bottom-anchored sheet rides up for free; padding
29
+ * there would lift it twice. Web has no keyboard events and no keyboard.
30
+ */
31
+ import { useEffect, useRef } from "react";
32
+ import { Animated, Easing, Keyboard, Platform, StyleSheet } from "react-native";
33
+ import { jsx as _jsx } from "react/jsx-runtime";
34
+ export function KeyboardPad({
35
+ children
36
+ }) {
37
+ const ref = useRef(null);
38
+ const pad = useRef(new Animated.Value(0)).current;
39
+ useEffect(() => {
40
+ if (Platform.OS !== "ios") return;
41
+ const animateTo = (value, event) => {
42
+ Animated.timing(pad, {
43
+ toValue: value,
44
+ duration: event.duration || 250,
45
+ // iOS's keyboard curve; `keyboard` is the matching Easing preset.
46
+ easing: Easing.bezier(0.17, 0.59, 0.4, 0.77),
47
+ useNativeDriver: false
48
+ }).start();
49
+ };
50
+ const onChange = event => {
51
+ const node = ref.current;
52
+ if (!node) return;
53
+ node.measureInWindow((_x, y, _w, h) => {
54
+ const overlap = y + h - event.endCoordinates.screenY;
55
+ animateTo(Math.max(0, overlap), event);
56
+ });
57
+ };
58
+ const onHide = event => animateTo(0, event);
59
+ const subs = [Keyboard.addListener("keyboardWillChangeFrame", onChange), Keyboard.addListener("keyboardWillHide", onHide)];
60
+ return () => subs.forEach(s => s.remove());
61
+ }, [pad]);
62
+ return /*#__PURE__*/_jsx(Animated.View, {
63
+ ref: ref,
64
+ style: [styles.flex, {
65
+ paddingBottom: pad
66
+ }],
67
+ children: children
68
+ });
69
+ }
70
+ const styles = StyleSheet.create({
71
+ flex: {
72
+ flex: 1
73
+ }
74
+ });
75
+ //# sourceMappingURL=KeyboardPad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","Keyboard","Platform","StyleSheet","jsx","_jsx","KeyboardPad","children","ref","pad","Value","current","OS","animateTo","value","event","timing","toValue","duration","easing","bezier","useNativeDriver","start","onChange","node","measureInWindow","_x","y","_w","h","overlap","endCoordinates","screenY","Math","max","onHide","subs","addListener","forEach","s","remove","View","style","styles","flex","paddingBottom","create"],"sourceRoot":"../../../src","sources":["components/KeyboardPad.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAwB,OAAO;AACzD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,QAAkC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1G,OAAO,SAASC,WAAWA,CAAC;EAAEC;AAAkC,CAAC,EAAE;EACjE,MAAMC,GAAG,GAAGV,MAAM,CAAO,IAAI,CAAC;EAC9B,MAAMW,GAAG,GAAGX,MAAM,CAAC,IAAIC,QAAQ,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEjDd,SAAS,CAAC,MAAM;IACd,IAAIK,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IAE3B,MAAMC,SAAS,GAAGA,CAACC,KAAa,EAAEC,KAAoB,KAAK;MACzDhB,QAAQ,CAACiB,MAAM,CAACP,GAAG,EAAE;QACnBQ,OAAO,EAAEH,KAAK;QACdI,QAAQ,EAAEH,KAAK,CAACG,QAAQ,IAAI,GAAG;QAC/B;QACAC,MAAM,EAAEnB,MAAM,CAACoB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;QAC5CC,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,MAAMC,QAAQ,GAAIR,KAAoB,IAAK;MACzC,MAAMS,IAAI,GAAGhB,GAAG,CAACG,OAAO;MACxB,IAAI,CAACa,IAAI,EAAE;MACXA,IAAI,CAACC,eAAe,CAAC,CAACC,EAAE,EAAEC,CAAC,EAAEC,EAAE,EAAEC,CAAC,KAAK;QACrC,MAAMC,OAAO,GAAGH,CAAC,GAAGE,CAAC,GAAGd,KAAK,CAACgB,cAAc,CAACC,OAAO;QACpDnB,SAAS,CAACoB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,OAAO,CAAC,EAAEf,KAAK,CAAC;MACxC,CAAC,CAAC;IACJ,CAAC;IACD,MAAMoB,MAAM,GAAIpB,KAAoB,IAAKF,SAAS,CAAC,CAAC,EAAEE,KAAK,CAAC;IAE5D,MAAMqB,IAAI,GAAG,CACXnC,QAAQ,CAACoC,WAAW,CAAC,yBAAyB,EAAEd,QAAQ,CAAC,EACzDtB,QAAQ,CAACoC,WAAW,CAAC,kBAAkB,EAAEF,MAAM,CAAC,CACjD;IACD,OAAO,MAAMC,IAAI,CAACE,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;EAC9C,CAAC,EAAE,CAAC/B,GAAG,CAAC,CAAC;EAET,oBACEJ,IAAA,CAACN,QAAQ,CAAC0C,IAAI;IAACjC,GAAG,EAAEA,GAAI;IAACkC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;MAAEC,aAAa,EAAEpC;IAAI,CAAC,CAAE;IAAAF,QAAA,EACnEA;EAAQ,CACI,CAAC;AAEpB;AAEA,MAAMoC,MAAM,GAAGxC,UAAU,CAAC2C,MAAM,CAAC;EAAEF,IAAI,EAAE;IAAEA,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}
@@ -1 +1,305 @@
1
- "use strict";import{StyleSheet,Text,View}from"react-native";import{night}from"@buoy-gg/shared-ui";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const isTableRow=e=>/^\s*\|.*\|\s*$/.test(e),isTableRule=e=>/^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/.test(e),splitRow=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(e=>e.trim());function parseBlocks(e){const t=[];let l=[];const s=()=>{l.length&&t.push({kind:"p",text:l.join(" ")}),l=[]},i=e.split("\n");for(let e=0;e<i.length;e++){const r=i[e].replace(/\s+$/,"");if(!r.trim()){s();continue}if(isTableRow(r)&&i[e+1]&&isTableRule(i[e+1])){s();const l=splitRow(r),o=[];let n=e+2;for(;n<i.length&&isTableRow(i[n]);)o.push(splitRow(i[n])),n++;t.push({kind:"table",header:l,rows:o}),e=n-1;continue}const o=/^#{1,6}\s+(.*)$/.exec(r);if(o){s(),t.push({kind:"h",text:o[1]});continue}const n=/^(\s*)([-*•]|\d+[.)])\s+(.*)$/.exec(r);if(n){s();const e=Math.min(2,Math.floor(n[1].length/2)),l=/^\d/.test(n[2])?n[2].replace(")","."):"•";t.push({kind:"li",text:n[3],marker:l,depth:e});continue}l.push(r.trim())}return s(),t}export function renderInline(e,t){const l=e.replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1"),s=[],i=/(\*\*[^*]+\*\*|`[^`]+`|\*[^*\s][^*]*\*|_[^_\s][^_]*_)/g;let r,o=0,n=0;for(;r=i.exec(l);){r.index>o&&s.push(l.slice(o,r.index));const e=r[0];e.startsWith("**")?s.push(_jsx(Text,{style:[t,styles.bold],children:e.slice(2,-2)},n++)):e.startsWith("`")?s.push(_jsx(Text,{style:[t,styles.code],children:e.slice(1,-1)},n++)):s.push(_jsx(Text,{style:[t,styles.italic],children:e.slice(1,-1)},n++)),o=r.index+e.length}return o<l.length&&s.push(l.slice(o)),s}export function Markdown({text:e,style:t}){const l=parseBlocks(e);return _jsx(View,{style:styles.wrap,children:l.map((e,l)=>{if("table"===e.kind){const t=e.header.slice(0,4);return _jsxs(View,{style:styles.table,children:[_jsx(View,{style:styles.tableHead,children:t.map((e,t)=>_jsx(Text,{style:[styles.th,0===t&&styles.firstCol],numberOfLines:1,children:e.replace(/\*\*/g,"")},t))}),e.rows.slice(0,12).map((e,l)=>_jsx(View,{style:[styles.tr,l>0&&styles.trDivider],children:t.map((t,l)=>_jsx(Text,{style:[styles.td,0===l&&styles.firstCol,0===l&&styles.tdFirst],numberOfLines:2,children:renderInline((e[l]??"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1"),styles.td)},l))},l))]},l)}return"li"===e.kind?_jsxs(View,{style:[styles.li,{paddingLeft:4+14*e.depth}],children:[_jsx(Text,{style:[t,styles.marker],children:e.marker}),_jsx(Text,{style:[t,styles.liText],selectable:!0,children:renderInline(e.text,t)})]},l):_jsx(Text,{style:[t,"h"===e.kind&&styles.bold],selectable:!0,children:renderInline(e.text,t)},l)})})}const styles=StyleSheet.create({wrap:{gap:8},bold:{fontWeight:"600"},italic:{fontStyle:"italic"},code:{fontFamily:"Menlo",fontSize:13,color:night.color.accent,backgroundColor:night.color.fill},li:{flexDirection:"row",gap:8},table:{borderRadius:night.radius.row,borderWidth:StyleSheet.hairlineWidth,borderColor:night.color.border,backgroundColor:night.color.surface,overflow:"hidden"},tableHead:{flexDirection:"row",paddingHorizontal:10,paddingVertical:6,gap:8,backgroundColor:night.color.fill},th:{flex:1,color:night.color.textTertiary,fontSize:night.font.micro,fontWeight:"700",letterSpacing:.6,textTransform:"uppercase"},tr:{flexDirection:"row",paddingHorizontal:10,paddingVertical:7,gap:8},trDivider:{borderTopWidth:StyleSheet.hairlineWidth,borderTopColor:night.color.separator},td:{flex:1,color:night.color.textSecondary,fontSize:night.font.caption,lineHeight:17},tdFirst:{color:night.color.text,fontWeight:"500"},firstCol:{flex:1.3},marker:{color:night.color.textSecondary,minWidth:14,textAlign:"right"},liText:{flex:1}});
1
+ "use strict";
2
+
3
+ /**
4
+ * Just enough Markdown for a chat answer.
5
+ *
6
+ * Models write `**bold**`, bullet lists and `code` whether or not the prompt
7
+ * asks for prose, and the asterisks rendered raw made every answer look like
8
+ * a broken template. This handles the subset a chat actually receives —
9
+ * paragraphs, `-`/`*`/`1.` lists, `#` headings (rendered bold, not huge),
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.
14
+ */
15
+ import { useState } from "react";
16
+ import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
17
+ import { night } from "@buoy-gg/shared-ui";
18
+ import { parseBlocks, TABLE_PREVIEW_COLS, TABLE_PREVIEW_ROWS, tableTruncation } from "./markdownParse";
19
+
20
+ /**
21
+ * `**bold**`, `*italic*` / `_italic_`, `` `code` `` → styled spans. Links and
22
+ * images collapse to their text: a phone chat has nowhere to open a URL, and
23
+ * `![Snorlax](https://raw.githubusercontent.com/…/143.png)` printed raw is
24
+ * three lines of noise for one word of meaning.
25
+ */
26
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
+ export function renderInline(source, base) {
28
+ const text = source.replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1");
29
+ const out = [];
30
+ const re = /(\*\*[^*]+\*\*|`[^`]+`|\*[^*\s][^*]*\*|_[^_\s][^_]*_)/g;
31
+ let last = 0;
32
+ let m;
33
+ let i = 0;
34
+ while (m = re.exec(text)) {
35
+ if (m.index > last) out.push(text.slice(last, m.index));
36
+ const tok = m[0];
37
+ if (tok.startsWith("**")) {
38
+ out.push(/*#__PURE__*/_jsx(Text, {
39
+ style: [base, styles.bold],
40
+ children: tok.slice(2, -2)
41
+ }, i++));
42
+ } else if (tok.startsWith("`")) {
43
+ out.push(/*#__PURE__*/_jsx(Text, {
44
+ style: [base, styles.code],
45
+ children: tok.slice(1, -1)
46
+ }, i++));
47
+ } else {
48
+ out.push(/*#__PURE__*/_jsx(Text, {
49
+ style: [base, styles.italic],
50
+ children: tok.slice(1, -1)
51
+ }, i++));
52
+ }
53
+ last = m.index + tok.length;
54
+ }
55
+ if (last < text.length) out.push(text.slice(last));
56
+ return out;
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
+ }
130
+ export function Markdown({
131
+ text,
132
+ style
133
+ }) {
134
+ const blocks = parseBlocks(text);
135
+ return /*#__PURE__*/_jsx(View, {
136
+ style: styles.wrap,
137
+ children: blocks.map((b, 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
+ );
159
+ }
160
+ if (b.kind === "li") {
161
+ return /*#__PURE__*/_jsxs(View, {
162
+ style: [styles.li, {
163
+ paddingLeft: 4 + b.depth * 14
164
+ }],
165
+ children: [/*#__PURE__*/_jsx(Text, {
166
+ style: [style, styles.marker],
167
+ children: b.marker
168
+ }), /*#__PURE__*/_jsx(Text, {
169
+ style: [style, styles.liText],
170
+ selectable: true,
171
+ children: renderInline(b.text, style)
172
+ })]
173
+ }, i);
174
+ }
175
+ return /*#__PURE__*/_jsx(Text, {
176
+ style: [style, b.kind === "h" && styles.bold],
177
+ selectable: true,
178
+ children: renderInline(b.text, style)
179
+ }, i);
180
+ })
181
+ });
182
+ }
183
+ const styles = StyleSheet.create({
184
+ wrap: {
185
+ gap: 8
186
+ },
187
+ bold: {
188
+ fontWeight: "600"
189
+ },
190
+ italic: {
191
+ fontStyle: "italic"
192
+ },
193
+ code: {
194
+ fontFamily: "Menlo",
195
+ fontSize: 13,
196
+ color: night.color.accent,
197
+ backgroundColor: night.color.fill
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
+ },
215
+ li: {
216
+ flexDirection: "row",
217
+ gap: 8
218
+ },
219
+ table: {
220
+ borderRadius: night.radius.row,
221
+ borderWidth: StyleSheet.hairlineWidth,
222
+ borderColor: night.color.border,
223
+ backgroundColor: night.color.surface,
224
+ overflow: "hidden"
225
+ },
226
+ tableWide: {
227
+ minWidth: "100%"
228
+ },
229
+ tableScrollV: {
230
+ maxHeight: 320
231
+ },
232
+ tableHead: {
233
+ flexDirection: "row",
234
+ paddingHorizontal: 10,
235
+ paddingVertical: 6,
236
+ gap: 8,
237
+ backgroundColor: night.color.fill
238
+ },
239
+ th: {
240
+ flex: 1,
241
+ color: night.color.textTertiary,
242
+ fontSize: night.font.micro,
243
+ fontWeight: "700",
244
+ letterSpacing: 0.6,
245
+ textTransform: "uppercase"
246
+ },
247
+ tr: {
248
+ flexDirection: "row",
249
+ paddingHorizontal: 10,
250
+ paddingVertical: 7,
251
+ gap: 8
252
+ },
253
+ trDivider: {
254
+ borderTopWidth: StyleSheet.hairlineWidth,
255
+ borderTopColor: night.color.separator
256
+ },
257
+ td: {
258
+ flex: 1,
259
+ color: night.color.textSecondary,
260
+ fontSize: night.font.caption,
261
+ lineHeight: 17
262
+ },
263
+ tdFirst: {
264
+ color: night.color.text,
265
+ fontWeight: "500"
266
+ },
267
+ firstCol: {
268
+ flex: 1.3
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
+ },
296
+ marker: {
297
+ color: night.color.textSecondary,
298
+ minWidth: 14,
299
+ textAlign: "right"
300
+ },
301
+ liText: {
302
+ flex: 1
303
+ }
304
+ });
305
+ //# sourceMappingURL=Markdown.js.map
@@ -0,0 +1 @@
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":[]}