@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
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Ask Buoy** — an AI chat sheet inside your React Native app that drives every Buoy devtool, for the people on your team who don't read code.
4
4
 
5
- Your QA tester types *"make the double burger out of stock at store 100 and put it in my cart"* and it happens. No ticket, no dev, no knowing what a cart-item object looks like. Behind the chat, an agent calls the same ~190 tool actions Buoy Desktop and the MCP server drive — network overrides, storage writes, react-query cache pokes, impersonation, navigation — and reports back in plain English.
5
+ Your QA tester types *"make the double burger out of stock at store 100 and put it in my cart"* and it happens. No ticket, no dev, no knowing what a cart-item object looks like. Behind the chat, an agent calls the same **192 tool actions across 24 tools** that Buoy Desktop and the MCP server drive — network overrides, storage writes, react-query cache pokes, impersonation, navigation — and reports back in plain English.
6
6
 
7
7
  **The model is yours.** Buoy never holds an API key and never proxies a request. You point Ask Buoy at your own endpoint and hand it headers from your app's own session.
8
8
 
@@ -20,6 +20,7 @@ import { FloatingDevTools } from "@buoy-gg/core";
20
20
  endpoint: "https://ai.acme.com/v1/messages",
21
21
  protocol: "anthropic", // or "openai" — Azure, Gemini-compat, most gateways
22
22
  model: "claude-opus-5",
23
+ maxTokens: 8192, // raise it on a thinking model; reasoning bills against this
23
24
 
24
25
  // Called before every request, so short-lived tokens work.
25
26
  // This is the whole auth story: your credential, your gateway.
@@ -32,19 +33,45 @@ import { FloatingDevTools } from "@buoy-gg/core";
32
33
 
33
34
  The tool appears in the dial as **ASK BUOY**. This package is the chat; the *hands* are the other Buoy tools you have installed — each tool package you add (network, storage, impersonate, …) becomes something the agent can do.
34
35
 
36
+ **Already running Buoy?** Upgrade every `@buoy-gg/*` package to the same version in one command — `@buoy-gg/license` is an exact peer, and `npm install` exits 0 on the invalid tree it otherwise leaves behind.
37
+
38
+ ### Teach it your data
39
+
40
+ The one input that most determines whether it gets your app right. Buoy discovers routes, query keys, store names and storage keys by watching the app run, and reads the item shape of every non-empty list it can see — what it can't know is what any of that *means*, or the shape of a collection that is currently empty.
41
+
42
+ ```tsx
43
+ context: {
44
+ notes: ["Prices are integer cents everywhere. `/api/*` ids are prefixed — ord_, usr_, itm_."],
45
+ types: { CartLine: "{ lineId: string; itemId: string; qty: number; unitPrice: number }" },
46
+ }
47
+ ```
48
+
49
+ The docs carry a prompt you can paste into a coding agent to draft both from your repo.
50
+
35
51
  ## What keeps it trustworthy
36
52
 
37
- - **A visible changes bar** the moment it modifies anything — "Changed this app · 2 undoable · 1 permanent" — with real undo: storage writes are pre-read so Undo restores the exact prior value.
38
- - **Destructive actions wait for a tap** by default; everything else auto-runs behind the bar. Tunable with `policy.requireApproval`, down to `readOnly: true` for a look-but-don't-touch support seat.
39
- - **Release-build honesty**: actions that can't work outside a dev build are refused with an explanation, never silently "succeed".
40
- - **Credential redaction** by field name and value shape before anything reaches your model; the agent's own traffic is invisible to it; the transcript is never persisted.
53
+ - **A visible changes bar** the moment it modifies anything — "Changed this app · 2 undoable · 1 permanent" — with real undo: storage writes and query-cache edits are pre-read so Undo restores the exact prior value, and anything with no captured prior value is labelled permanent rather than folded into a count Undo can't deliver.
54
+ - **Destructive actions wait for a tap** by default; everything else auto-runs behind the bar. Tunable with `policy` — `requireApproval`, `requireApprovalFor`, `allow`, `deny`, `maxSteps`, down to `readOnly: true` for a look-but-don't-touch support seat. **Settings → Permissions** exposes **Read only** and **Skip approval prompts** on the device, without a rebuild.
55
+ - **Release-build honesty**: the 24 actions that can't work outside a dev build are refused before dispatch with an explanation, never silently "succeed".
56
+ - **Credential redaction** by field name and value shape before anything reaches your model; the agent's own traffic is invisible to it; SecureStore *values* need `policy.secureReads`; the saved transcript keeps what was said but never a tool result (`persistTranscript: false` turns saving off entirely).
57
+ - **Show your work**: **Settings → Chat → Show agent thinking** adds a collapsed strip to every answer — `2 steps · 1 thought · 3.2s · 6210 tokens` — that opens into the model's reasoning and each step's exact payload and result. A step whose status is `ok` and whose result is `{"ok": false}` looks like a working step until you can see it.
58
+
59
+ ## Beyond the chat
60
+
61
+ - **It survives a reload, a restart or a crash** — transcript, agent memory and unanswered approvals all come back, so "undo that" still means something.
62
+ - **Rich answers, not walls of text** — tables, choices, diffs, image grids, receipts and approval cards, from a closed block catalog the model authors against.
63
+ - **Keep typing while it works** — messages you send mid-turn park above the composer and send one at a time.
64
+ - **Summarize for a ticket** — one card with steps, expected, observed, build and the evidence it actually saw. Nothing is run or changed to produce it.
65
+ - **Watch it from Buoy Desktop** — the desk gets a read-only mirror of the conversation, what the agent changed and what it spent, plus remote undo. There is no remote composer on purpose: the broker has no auth.
66
+ - **Your own tools too** — a custom tool with a sync adapter is dispatchable as `custom:<id>`; hand Ask Buoy a `ToolDescriptor` for it via `tools` and the agent can drive it with the same validation, policy gates and release-truth refusals as a built-in.
67
+ - **`onEvent`** streams every engine event — tool starts and results, blocks, approvals, errors, per-request token usage — so you can log agent activity to your own systems and meter cost per seat.
41
68
 
42
69
  ## Docs
43
70
 
44
- Full guide — gateway templates, model guidance, the exact list of what's sent to the model, policy reference: **[buoy.gg/docs/tools/copilot](https://www.buoy.gg/docs/tools/copilot)**
71
+ Full guide — gateway templates, model guidance, the exact list of what's sent to the model, policy reference: **[buoy.gg/docs/tools/ask-buoy](https://buoy.gg/buoy/latest/docs/tools/ask-buoy)**
45
72
 
46
- The headless engine (catalog, providers, turn loop, effect ledger) lives in [`@buoy-gg/agent-core`](https://www.npmjs.com/package/@buoy-gg/agent-core).
73
+ The headless engine (catalog, providers, turn loop, effect ledger, blocks) lives in [`@buoy-gg/agent-core`](https://www.npmjs.com/package/@buoy-gg/agent-core).
47
74
 
48
75
  ## License
49
76
 
50
- See [buoy.gg](https://www.buoy.gg) for licensing.
77
+ Ask Buoy requires a [Buoy Pro licence](https://buoy.gg/pricing). See [buoy.gg](https://buoy.gg) for licensing.
@@ -1 +1,338 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Choice=Choice,exports.Confirm=Confirm,exports.Input=Input;var _react=require("react"),_reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_context=require("./context"),_icons=require("./icons"),_primitives=require("./primitives"),_jsxRuntime=require("react/jsx-runtime");function Choice({block:e}){const t=(0,_context.useBlockHandlers)(),i=t.answered[e.id],o="choice"===i?.kind?i.optionId:null,n=!!i;return(0,_jsxRuntime.jsxs)(_primitives.Card,{testID:`buoy-block-choice-${e.id}`,tone:n?void 0:"info",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.question,children:e.question}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.options,children:e.options.slice(0,5).map((i,s)=>{const r=o===i.id;return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{testID:`buoy-block-option-${i.id}`,accessibilityRole:"button",accessibilityState:{selected:r,disabled:n},disabled:n,onPress:()=>t.answer({blockId:e.id,kind:"choice",optionId:i.id,label:i.label}),style:({pressed:e})=>[styles.option,s>0&&styles.optionDivider,r&&styles.optionChosen,n&&!r&&styles.optionDimmed,e&&!n&&styles.pressed],children:[i.icon?(0,_jsxRuntime.jsx)(_icons.BlockIcon,{name:i.icon}):null,(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.optionText,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.optionLabel,r&&styles.optionLabelChosen],children:i.label}),i.detail?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.optionDetail,children:i.detail}):null]}),r?(0,_jsxRuntime.jsx)(_sharedUi.Check,{size:14,color:_sharedUi.night.color.accent}):n?null:(0,_jsxRuntime.jsx)(_sharedUi.ChevronRight,{size:14,color:_sharedUi.night.color.textTertiary})]},i.id)})}),n||!1===e.allowFreeText?null:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.hint,children:"Or just type your answer below."})]})}function Confirm({block:e}){const t=(0,_context.useBlockHandlers)(),i=t.answered[e.id],o=!!i,n="confirm"===i?.kind?i.approved:null;return(0,_jsxRuntime.jsxs)(_primitives.Card,{testID:`buoy-block-confirm-${e.id}`,tone:o?void 0:"warning",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.confirmTitle,children:e.title}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.confirmChange,children:e.change}),e.consequence?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.confirmConsequence,children:e.consequence}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.confirmActions,children:o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.decided,children:n?`✓ ${e.approveLabel??"Done"}`:`✕ ${e.declineLabel??"Not now"}`}):(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-block-approve",accessibilityRole:"button",onPress:()=>t.answer({blockId:e.id,kind:"confirm",approved:!0}),style:({pressed:e})=>[styles.button,styles.buttonPrimary,e&&styles.pressed],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.buttonTextPrimary,children:e.approveLabel??"Do it"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-block-decline",accessibilityRole:"button",onPress:()=>t.answer({blockId:e.id,kind:"confirm",approved:!1}),style:({pressed:e})=>[styles.button,styles.buttonPlate,e&&styles.pressed],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.buttonTextPlate,children:e.declineLabel??"Not now"})})]})})]})}function Input({block:e}){const t=(0,_context.useBlockHandlers)(),i=t.answered[e.id],o=!!i,[n,s]=(0,_react.useState)(""),r="secret"===e.type,a=()=>{const i=n.trim();i&&t.answer({blockId:e.id,kind:"input",value:i})};return(0,_jsxRuntime.jsxs)(_primitives.Card,{testID:`buoy-block-input-${e.id}`,tone:o?void 0:"info",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.question,children:e.label}),o?(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.decided,children:"input"===i.kind?r?"••••••":i.value:"(skipped)"}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.inputRow,children:[(0,_jsxRuntime.jsx)(_reactNative.TextInput,{testID:"buoy-block-input-field",style:styles.input,value:n,onChangeText:s,placeholder:e.placeholder??"",placeholderTextColor:_sharedUi.night.color.placeholder,keyboardType:"number"===e.type?"numeric":"ascii-capable",secureTextEntry:r,autoCapitalize:"none",autoCorrect:!1,returnKeyType:"send",onSubmitEditing:a}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-block-input-submit",accessibilityRole:"button",disabled:!n.trim(),onPress:a,style:({pressed:e})=>[styles.button,styles.buttonPrimary,!n.trim()&&styles.buttonDisabled,e&&styles.pressed],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.buttonTextPrimary,children:e.submitLabel??"Send"})})]})]})}const styles=_reactNative.StyleSheet.create({question:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.row,fontWeight:"600",lineHeight:20,paddingHorizontal:12,paddingTop:12,paddingBottom:8},options:{marginHorizontal:8,marginBottom:8,borderRadius:_sharedUi.night.radius.row,backgroundColor:_sharedUi.night.color.surfaceElevated,overflow:"hidden"},option:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:12,paddingVertical:11},optionDivider:{borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:_sharedUi.night.color.separator},optionChosen:{backgroundColor:_sharedUi.night.color.accentSoft},optionDimmed:{opacity:.45},optionText:{flex:1,gap:2},optionLabel:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.body,fontWeight:"500"},optionLabelChosen:{color:_sharedUi.night.color.accent},optionDetail:{color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.caption,lineHeight:17},hint:{color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro,paddingHorizontal:12,paddingBottom:10},confirmTitle:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.row,fontWeight:"600",paddingHorizontal:12,paddingTop:12},confirmChange:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.body,lineHeight:19,paddingHorizontal:12,paddingTop:6},confirmConsequence:{color:_sharedUi.night.color.warning,fontSize:_sharedUi.night.font.caption,lineHeight:17,paddingHorizontal:12,paddingTop:6},confirmActions:{flexDirection:"row",gap:8,paddingHorizontal:12,paddingVertical:12,alignItems:"center"},decided:{color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.caption,fontWeight:"600",paddingHorizontal:12,paddingVertical:10},inputRow:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:12,paddingBottom:12},input:{flex:1,height:38,paddingHorizontal:12,borderRadius:_sharedUi.night.radius.row,backgroundColor:_sharedUi.night.color.surfaceElevated,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.body},button:{paddingHorizontal:14,paddingVertical:9,borderRadius:_sharedUi.night.radius.row},buttonPrimary:{backgroundColor:_sharedUi.night.color.accent},buttonPlate:{backgroundColor:_sharedUi.night.color.button},buttonDisabled:{opacity:.5},buttonTextPrimary:{color:_sharedUi.night.color.onAccent,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},buttonTextPlate:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},pressed:{opacity:.7}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Choice = Choice;
7
+ exports.Confirm = Confirm;
8
+ exports.Input = Input;
9
+ var _react = require("react");
10
+ var _reactNative = require("react-native");
11
+ var _sharedUi = require("@buoy-gg/shared-ui");
12
+ var _context = require("./context");
13
+ var _icons = require("./icons");
14
+ var _primitives = require("./primitives");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ /**
17
+ * Ask blocks — the user has to decide, and the turn is waiting.
18
+ *
19
+ * Choice, Confirm and Input all lock once answered: the chosen option stays
20
+ * highlighted, the rest dim, and nothing in history is tappable twice. The
21
+ * answer is handed to the sheet as a BlockAnswer and becomes the next user
22
+ * message, so the model reads plain words ("Business checkout"), never JSON.
23
+ */
24
+
25
+ function Choice({
26
+ block
27
+ }) {
28
+ const h = (0, _context.useBlockHandlers)();
29
+ const answer = h.answered[block.id];
30
+ const chosen = answer?.kind === "choice" ? answer.optionId : null;
31
+ const locked = !!answer;
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
33
+ testID: `buoy-block-choice-${block.id}`,
34
+ tone: locked ? undefined : "info",
35
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
36
+ style: styles.question,
37
+ children: block.question
38
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
39
+ style: styles.options,
40
+ children: block.options.slice(0, 5).map((o, i) => {
41
+ const isChosen = chosen === o.id;
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
43
+ testID: `buoy-block-option-${o.id}`,
44
+ accessibilityRole: "button",
45
+ accessibilityState: {
46
+ selected: isChosen,
47
+ disabled: locked
48
+ },
49
+ disabled: locked,
50
+ onPress: () => h.answer({
51
+ blockId: block.id,
52
+ kind: "choice",
53
+ optionId: o.id,
54
+ label: o.label
55
+ }),
56
+ style: ({
57
+ pressed
58
+ }) => [styles.option, i > 0 && styles.optionDivider, isChosen && styles.optionChosen, locked && !isChosen && styles.optionDimmed, pressed && !locked && styles.pressed],
59
+ children: [o.icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.BlockIcon, {
60
+ name: o.icon
61
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
62
+ style: styles.optionText,
63
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
64
+ style: [styles.optionLabel, isChosen && styles.optionLabelChosen],
65
+ children: o.label
66
+ }), o.detail ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
+ style: styles.optionDetail,
68
+ children: o.detail
69
+ }) : null]
70
+ }), isChosen ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Check, {
71
+ size: 14,
72
+ color: _sharedUi.night.color.accent
73
+ }) : locked ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
74
+ size: 14,
75
+ color: _sharedUi.night.color.textTertiary
76
+ })]
77
+ }, o.id);
78
+ })
79
+ }), !locked && block.allowFreeText !== false ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
80
+ style: styles.hint,
81
+ children: "Or just type your answer below."
82
+ }) : null]
83
+ });
84
+ }
85
+ function Confirm({
86
+ block
87
+ }) {
88
+ const h = (0, _context.useBlockHandlers)();
89
+ const answer = h.answered[block.id];
90
+ const locked = !!answer;
91
+ const approved = answer?.kind === "confirm" ? answer.approved : null;
92
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
93
+ testID: `buoy-block-confirm-${block.id}`,
94
+ tone: locked ? undefined : "warning",
95
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
96
+ style: styles.confirmTitle,
97
+ children: block.title
98
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
99
+ style: styles.confirmChange,
100
+ children: block.change
101
+ }), block.consequence ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
102
+ style: styles.confirmConsequence,
103
+ children: block.consequence
104
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
105
+ style: styles.confirmActions,
106
+ children: locked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
107
+ style: styles.decided,
108
+ children: approved ? `✓ ${block.approveLabel ?? "Done"}` : `✕ ${block.declineLabel ?? "Not now"}`
109
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
110
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
111
+ testID: "buoy-block-approve",
112
+ accessibilityRole: "button",
113
+ onPress: () => h.answer({
114
+ blockId: block.id,
115
+ kind: "confirm",
116
+ approved: true
117
+ }),
118
+ style: ({
119
+ pressed
120
+ }) => [styles.button, styles.buttonPrimary, pressed && styles.pressed],
121
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
122
+ style: styles.buttonTextPrimary,
123
+ children: block.approveLabel ?? "Do it"
124
+ })
125
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
126
+ testID: "buoy-block-decline",
127
+ accessibilityRole: "button",
128
+ onPress: () => h.answer({
129
+ blockId: block.id,
130
+ kind: "confirm",
131
+ approved: false
132
+ }),
133
+ style: ({
134
+ pressed
135
+ }) => [styles.button, styles.buttonPlate, pressed && styles.pressed],
136
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
137
+ style: styles.buttonTextPlate,
138
+ children: block.declineLabel ?? "Not now"
139
+ })
140
+ })]
141
+ })
142
+ })]
143
+ });
144
+ }
145
+ function Input({
146
+ block
147
+ }) {
148
+ const h = (0, _context.useBlockHandlers)();
149
+ const answer = h.answered[block.id];
150
+ const locked = !!answer;
151
+ const [value, setValue] = (0, _react.useState)("");
152
+ const secret = block.type === "secret";
153
+ const submit = () => {
154
+ const v = value.trim();
155
+ if (!v) return;
156
+ h.answer({
157
+ blockId: block.id,
158
+ kind: "input",
159
+ value: v
160
+ });
161
+ };
162
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.Card, {
163
+ testID: `buoy-block-input-${block.id}`,
164
+ tone: locked ? undefined : "info",
165
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
166
+ style: styles.question,
167
+ children: block.label
168
+ }), locked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
169
+ style: styles.decided,
170
+ children: answer.kind === "input" ? secret ? "••••••" : answer.value : "(skipped)"
171
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
172
+ style: styles.inputRow,
173
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
174
+ testID: "buoy-block-input-field",
175
+ style: styles.input,
176
+ value: value,
177
+ onChangeText: setValue,
178
+ placeholder: block.placeholder ?? "",
179
+ placeholderTextColor: _sharedUi.night.color.placeholder,
180
+ keyboardType: block.type === "number" ? "numeric" : "ascii-capable",
181
+ secureTextEntry: secret,
182
+ autoCapitalize: "none",
183
+ autoCorrect: false,
184
+ returnKeyType: "send",
185
+ onSubmitEditing: submit
186
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
187
+ testID: "buoy-block-input-submit",
188
+ accessibilityRole: "button",
189
+ disabled: !value.trim(),
190
+ onPress: submit,
191
+ style: ({
192
+ pressed
193
+ }) => [styles.button, styles.buttonPrimary, !value.trim() && styles.buttonDisabled, pressed && styles.pressed],
194
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
195
+ style: styles.buttonTextPrimary,
196
+ children: block.submitLabel ?? "Send"
197
+ })
198
+ })]
199
+ })]
200
+ });
201
+ }
202
+ const styles = _reactNative.StyleSheet.create({
203
+ question: {
204
+ color: _sharedUi.night.color.text,
205
+ fontSize: _sharedUi.night.font.row,
206
+ fontWeight: "600",
207
+ lineHeight: 20,
208
+ paddingHorizontal: 12,
209
+ paddingTop: 12,
210
+ paddingBottom: 8
211
+ },
212
+ options: {
213
+ marginHorizontal: 8,
214
+ marginBottom: 8,
215
+ borderRadius: _sharedUi.night.radius.row,
216
+ backgroundColor: _sharedUi.night.color.surfaceElevated,
217
+ overflow: "hidden"
218
+ },
219
+ option: {
220
+ flexDirection: "row",
221
+ alignItems: "center",
222
+ gap: 10,
223
+ paddingHorizontal: 12,
224
+ paddingVertical: 11
225
+ },
226
+ optionDivider: {
227
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
228
+ borderTopColor: _sharedUi.night.color.separator
229
+ },
230
+ optionChosen: {
231
+ backgroundColor: _sharedUi.night.color.accentSoft
232
+ },
233
+ optionDimmed: {
234
+ opacity: 0.45
235
+ },
236
+ optionText: {
237
+ flex: 1,
238
+ gap: 2
239
+ },
240
+ optionLabel: {
241
+ color: _sharedUi.night.color.text,
242
+ fontSize: _sharedUi.night.font.body,
243
+ fontWeight: "500"
244
+ },
245
+ optionLabelChosen: {
246
+ color: _sharedUi.night.color.accent
247
+ },
248
+ optionDetail: {
249
+ color: _sharedUi.night.color.textSecondary,
250
+ fontSize: _sharedUi.night.font.caption,
251
+ lineHeight: 17
252
+ },
253
+ hint: {
254
+ color: _sharedUi.night.color.textTertiary,
255
+ fontSize: _sharedUi.night.font.micro,
256
+ paddingHorizontal: 12,
257
+ paddingBottom: 10
258
+ },
259
+ confirmTitle: {
260
+ color: _sharedUi.night.color.text,
261
+ fontSize: _sharedUi.night.font.row,
262
+ fontWeight: "600",
263
+ paddingHorizontal: 12,
264
+ paddingTop: 12
265
+ },
266
+ confirmChange: {
267
+ color: _sharedUi.night.color.text,
268
+ fontSize: _sharedUi.night.font.body,
269
+ lineHeight: 19,
270
+ paddingHorizontal: 12,
271
+ paddingTop: 6
272
+ },
273
+ confirmConsequence: {
274
+ color: _sharedUi.night.color.warning,
275
+ fontSize: _sharedUi.night.font.caption,
276
+ lineHeight: 17,
277
+ paddingHorizontal: 12,
278
+ paddingTop: 6
279
+ },
280
+ confirmActions: {
281
+ flexDirection: "row",
282
+ gap: 8,
283
+ paddingHorizontal: 12,
284
+ paddingVertical: 12,
285
+ alignItems: "center"
286
+ },
287
+ decided: {
288
+ color: _sharedUi.night.color.textSecondary,
289
+ fontSize: _sharedUi.night.font.caption,
290
+ fontWeight: "600",
291
+ paddingHorizontal: 12,
292
+ paddingVertical: 10
293
+ },
294
+ inputRow: {
295
+ flexDirection: "row",
296
+ alignItems: "center",
297
+ gap: 8,
298
+ paddingHorizontal: 12,
299
+ paddingBottom: 12
300
+ },
301
+ input: {
302
+ flex: 1,
303
+ height: 38,
304
+ paddingHorizontal: 12,
305
+ borderRadius: _sharedUi.night.radius.row,
306
+ backgroundColor: _sharedUi.night.color.surfaceElevated,
307
+ color: _sharedUi.night.color.text,
308
+ fontSize: _sharedUi.night.font.body
309
+ },
310
+ button: {
311
+ paddingHorizontal: 14,
312
+ paddingVertical: 9,
313
+ borderRadius: _sharedUi.night.radius.row
314
+ },
315
+ buttonPrimary: {
316
+ backgroundColor: _sharedUi.night.color.accent
317
+ },
318
+ buttonPlate: {
319
+ backgroundColor: _sharedUi.night.color.button
320
+ },
321
+ buttonDisabled: {
322
+ opacity: 0.5
323
+ },
324
+ buttonTextPrimary: {
325
+ color: _sharedUi.night.color.onAccent,
326
+ fontSize: _sharedUi.night.font.caption,
327
+ fontWeight: "600"
328
+ },
329
+ buttonTextPlate: {
330
+ color: _sharedUi.night.color.text,
331
+ fontSize: _sharedUi.night.font.caption,
332
+ fontWeight: "600"
333
+ },
334
+ pressed: {
335
+ opacity: 0.7
336
+ }
337
+ });
338
+ //# sourceMappingURL=AskBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_context","_icons","_primitives","_jsxRuntime","Choice","block","h","useBlockHandlers","answer","answered","id","chosen","kind","optionId","locked","jsxs","Card","testID","tone","undefined","children","jsx","Text","style","styles","question","View","options","slice","map","o","i","isChosen","Pressable","accessibilityRole","accessibilityState","selected","disabled","onPress","blockId","label","pressed","option","optionDivider","optionChosen","optionDimmed","icon","BlockIcon","name","optionText","optionLabel","optionLabelChosen","detail","optionDetail","Check","size","color","night","accent","ChevronRight","textTertiary","allowFreeText","hint","Confirm","approved","confirmTitle","title","confirmChange","change","consequence","confirmConsequence","confirmActions","decided","approveLabel","declineLabel","Fragment","button","buttonPrimary","buttonTextPrimary","buttonPlate","buttonTextPlate","Input","value","setValue","useState","secret","type","submit","v","trim","inputRow","TextInput","input","onChangeText","placeholder","placeholderTextColor","keyboardType","secureTextEntry","autoCapitalize","autoCorrect","returnKeyType","onSubmitEditing","buttonDisabled","submitLabel","StyleSheet","create","text","fontSize","font","row","fontWeight","lineHeight","paddingHorizontal","paddingTop","paddingBottom","marginHorizontal","marginBottom","borderRadius","radius","backgroundColor","surfaceElevated","overflow","flexDirection","alignItems","gap","paddingVertical","borderTopWidth","hairlineWidth","borderTopColor","separator","accentSoft","opacity","flex","body","textSecondary","caption","micro","warning","height","onAccent"],"sourceRoot":"../../../src","sources":["blocks/AskBlocks.tsx"],"mappings":"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","ignoreList":[]}