@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
@@ -1 +1,211 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.ChangesBar=ChangesBar;var _react=require("react"),_reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_agentCore=require("@buoy-gg/agent-core"),_jsxRuntime=require("react/jsx-runtime");const EMPTY=[];function useLedgerEntries(e){return(0,_react.useSyncExternalStore)(t=>e?.subscribe(t)??(()=>{}),()=>e?.list()??EMPTY,()=>e?.list()??EMPTY)}function ChangesBar({ledger:e,onUndoAll:t,expanded:r,onToggle:i}){const n=useLedgerEntries(e).filter(e=>!e.undoneAt),s=n.filter(e=>"transient"!==e.effect.kind);if(0===s.length)return null;const o=s.filter(e=>(0,_agentCore.isReversible)(e.effect)),a=s.length-o.length,l=n.length-s.length,c=r?_sharedUi.ChevronDown:_sharedUi.ChevronRight,d=[o.length>0?`${o.length} undoable`:null,a>0?`${a} permanent`:null].filter(Boolean).join(" · ");return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wrap,children:[(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{testID:"buoy-ask-buoy-changes-bar",accessibilityRole:"button",accessibilityState:{expanded:r},onPress:i,style:styles.bar,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.dot}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.summary,numberOfLines:1,children:"Changed this app"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.counts,numberOfLines:1,children:d}),(0,_jsxRuntime.jsx)(c,{size:12,color:_sharedUi.night.color.textSecondary})]}),r&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.panel,children:[(0,_jsxRuntime.jsxs)(_reactNative.ScrollView,{style:styles.panelScroll,testID:"buoy-ask-buoy-changes-scroll",keyboardShouldPersistTaps:"handled",children:[s.map(e=>{const t=!(0,_agentCore.isReversible)(e.effect);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.row,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.rowLabel,children:e.effect.label}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.rowTag,t&&styles.rowTagMuted],children:t?"Permanent":"Undoable"})]},e.id)}),l>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.row,children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:[styles.rowLabel,styles.rowLabelMuted],children:["Also did ",l," one-shot action",1===l?"":"s"," (navigation, taps) — nothing to undo."]})})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.footer,children:[o.length>0&&(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-ask-buoy-undo-all",accessibilityRole:"button",onPress:t,style:({pressed:e})=>[styles.undo,e&&styles.pressed],children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.undoText,children:["Undo ",o.length," change",1===o.length?"":"s"]})}),a>0&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.footnote,children:"Permanent changes can't be undone from here."})]})]})]})}const styles=_reactNative.StyleSheet.create({wrap:{borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.warningSoft},bar:{flexDirection:"row",alignItems:"center",gap:8,paddingHorizontal:_sharedUi.night.gutter,paddingVertical:10},dot:{width:7,height:7,borderRadius:4,backgroundColor:_sharedUi.night.color.warning},summary:{color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},counts:{flex:1,color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.caption},panel:{paddingHorizontal:_sharedUi.night.gutter,paddingBottom:12,gap:10},panelScroll:{maxHeight:180},row:{flexDirection:"row",alignItems:"flex-start",gap:10,paddingVertical:8,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:_sharedUi.night.color.separator},rowLabel:{flex:1,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.caption,lineHeight:18},rowTag:{color:_sharedUi.night.color.accent,fontSize:_sharedUi.night.font.micro,fontWeight:"600",letterSpacing:.6,textTransform:"uppercase",paddingTop:2},rowTagMuted:{color:_sharedUi.night.color.textTertiary},rowLabelMuted:{color:_sharedUi.night.color.textTertiary},footer:{flexDirection:"row",alignItems:"center",gap:12,flexWrap:"wrap"},undo:{paddingHorizontal:14,paddingVertical:8,borderRadius:_sharedUi.night.radius.row,backgroundColor:_sharedUi.night.color.button},undoText:{color:_sharedUi.night.color.accent,fontSize:_sharedUi.night.font.caption,fontWeight:"600"},footnote:{flex:1,color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro},pressed:{opacity:.7}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChangesBar = ChangesBar;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _agentCore = require("@buoy-gg/agent-core");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * "The agent changed things" — the bar, and the list behind it.
14
+ *
15
+ * Ask Buoy mutates without asking, so this is what keeps the user in control:
16
+ * if reality has been bent, you can never not know it. Same principle as the
17
+ * impersonate and override banners.
18
+ *
19
+ * It counts REVERSIBLE and ONE-SHOT effects separately, which is the one place
20
+ * this deliberately differs from the Scenarios banner. That one folds
21
+ * transients into a single "N changes" total and then silently no-ops on them
22
+ * at revert — a user who taps Undo, sees "4 changes", and finds three of them
23
+ * still in place learns not to trust the bar. Better to say "1 undoable ·
24
+ * 1 permanent" and be believed.
25
+ */
26
+
27
+ const EMPTY = [];
28
+ function useLedgerEntries(ledger) {
29
+ return (0, _react.useSyncExternalStore)(fn => ledger?.subscribe(fn) ?? (() => {}), () => ledger?.list() ?? EMPTY, () => ledger?.list() ?? EMPTY);
30
+ }
31
+ function ChangesBar({
32
+ ledger,
33
+ onUndoAll,
34
+ expanded,
35
+ onToggle
36
+ }) {
37
+ const entries = useLedgerEntries(ledger);
38
+ const outstanding = entries.filter(e => !e.undoneAt);
39
+ // Transients — navigation, taps — are one-shot ACTIONS, not changes. Counting
40
+ // them here read "Changed this app · 9 permanent" after a read-only tour,
41
+ // which is the bar lying in the alarming direction. They still appear in the
42
+ // expanded panel's footnote, because honesty, but they raise no banner.
43
+ const changes = outstanding.filter(e => e.effect.kind !== "transient");
44
+ if (changes.length === 0) return null;
45
+ const reversible = changes.filter(e => (0, _agentCore.isReversible)(e.effect));
46
+ const permanent = changes.length - reversible.length;
47
+ const transients = outstanding.length - changes.length;
48
+ const Chevron = expanded ? _sharedUi.ChevronDown : _sharedUi.ChevronRight;
49
+ const counts = [reversible.length > 0 ? `${reversible.length} undoable` : null, permanent > 0 ? `${permanent} permanent` : null].filter(Boolean).join(" · ");
50
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
51
+ style: styles.wrap,
52
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
53
+ testID: "buoy-ask-buoy-changes-bar",
54
+ accessibilityRole: "button",
55
+ accessibilityState: {
56
+ expanded
57
+ },
58
+ onPress: onToggle,
59
+ style: styles.bar,
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
61
+ style: styles.dot
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
63
+ style: styles.summary,
64
+ numberOfLines: 1,
65
+ children: "Changed this app"
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
67
+ style: styles.counts,
68
+ numberOfLines: 1,
69
+ children: counts
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Chevron, {
71
+ size: 12,
72
+ color: _sharedUi.night.color.textSecondary
73
+ })]
74
+ }), expanded && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
75
+ style: styles.panel,
76
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
77
+ style: styles.panelScroll,
78
+ testID: "buoy-ask-buoy-changes-scroll",
79
+ keyboardShouldPersistTaps: "handled",
80
+ children: [changes.map(entry => {
81
+ const oneOff = !(0, _agentCore.isReversible)(entry.effect);
82
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
83
+ style: styles.row,
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
85
+ style: styles.rowLabel,
86
+ children: entry.effect.label
87
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
88
+ style: [styles.rowTag, oneOff && styles.rowTagMuted],
89
+ children: oneOff ? "Permanent" : "Undoable"
90
+ })]
91
+ }, entry.id);
92
+ }), transients > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
93
+ style: styles.row,
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
95
+ style: [styles.rowLabel, styles.rowLabelMuted],
96
+ children: ["Also did ", transients, " one-shot action", transients === 1 ? "" : "s", " (navigation, taps) \u2014 nothing to undo."]
97
+ })
98
+ })]
99
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
100
+ style: styles.footer,
101
+ children: [reversible.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
102
+ testID: "buoy-ask-buoy-undo-all",
103
+ accessibilityRole: "button",
104
+ onPress: onUndoAll,
105
+ style: ({
106
+ pressed
107
+ }) => [styles.undo, pressed && styles.pressed],
108
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
109
+ style: styles.undoText,
110
+ children: ["Undo ", reversible.length, " change", reversible.length === 1 ? "" : "s"]
111
+ })
112
+ }), permanent > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
113
+ style: styles.footnote,
114
+ children: "Permanent changes can't be undone from here."
115
+ })]
116
+ })]
117
+ })]
118
+ });
119
+ }
120
+ const styles = _reactNative.StyleSheet.create({
121
+ wrap: {
122
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
123
+ borderBottomColor: _sharedUi.night.color.border,
124
+ backgroundColor: _sharedUi.night.color.warningSoft
125
+ },
126
+ bar: {
127
+ flexDirection: "row",
128
+ alignItems: "center",
129
+ gap: 8,
130
+ paddingHorizontal: _sharedUi.night.gutter,
131
+ paddingVertical: 10
132
+ },
133
+ dot: {
134
+ width: 7,
135
+ height: 7,
136
+ borderRadius: 4,
137
+ backgroundColor: _sharedUi.night.color.warning
138
+ },
139
+ summary: {
140
+ color: _sharedUi.night.color.text,
141
+ fontSize: _sharedUi.night.font.caption,
142
+ fontWeight: "600"
143
+ },
144
+ counts: {
145
+ flex: 1,
146
+ color: _sharedUi.night.color.textSecondary,
147
+ fontSize: _sharedUi.night.font.caption
148
+ },
149
+ panel: {
150
+ paddingHorizontal: _sharedUi.night.gutter,
151
+ paddingBottom: 12,
152
+ gap: 10
153
+ },
154
+ panelScroll: {
155
+ maxHeight: 180
156
+ },
157
+ row: {
158
+ flexDirection: "row",
159
+ alignItems: "flex-start",
160
+ gap: 10,
161
+ paddingVertical: 8,
162
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
163
+ borderTopColor: _sharedUi.night.color.separator
164
+ },
165
+ rowLabel: {
166
+ flex: 1,
167
+ color: _sharedUi.night.color.text,
168
+ fontSize: _sharedUi.night.font.caption,
169
+ lineHeight: 18
170
+ },
171
+ rowTag: {
172
+ color: _sharedUi.night.color.accent,
173
+ fontSize: _sharedUi.night.font.micro,
174
+ fontWeight: "600",
175
+ letterSpacing: 0.6,
176
+ textTransform: "uppercase",
177
+ paddingTop: 2
178
+ },
179
+ rowTagMuted: {
180
+ color: _sharedUi.night.color.textTertiary
181
+ },
182
+ rowLabelMuted: {
183
+ color: _sharedUi.night.color.textTertiary
184
+ },
185
+ footer: {
186
+ flexDirection: "row",
187
+ alignItems: "center",
188
+ gap: 12,
189
+ flexWrap: "wrap"
190
+ },
191
+ undo: {
192
+ paddingHorizontal: 14,
193
+ paddingVertical: 8,
194
+ borderRadius: _sharedUi.night.radius.row,
195
+ backgroundColor: _sharedUi.night.color.button
196
+ },
197
+ undoText: {
198
+ color: _sharedUi.night.color.accent,
199
+ fontSize: _sharedUi.night.font.caption,
200
+ fontWeight: "600"
201
+ },
202
+ footnote: {
203
+ flex: 1,
204
+ color: _sharedUi.night.color.textTertiary,
205
+ fontSize: _sharedUi.night.font.micro
206
+ },
207
+ pressed: {
208
+ opacity: 0.7
209
+ }
210
+ });
211
+ //# sourceMappingURL=ChangesBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_agentCore","_jsxRuntime","EMPTY","useLedgerEntries","ledger","useSyncExternalStore","fn","subscribe","list","ChangesBar","onUndoAll","expanded","onToggle","entries","outstanding","filter","e","undoneAt","changes","effect","kind","length","reversible","isReversible","permanent","transients","Chevron","ChevronDown","ChevronRight","counts","Boolean","join","jsxs","View","style","styles","wrap","children","Pressable","testID","accessibilityRole","accessibilityState","onPress","bar","jsx","dot","Text","summary","numberOfLines","size","color","night","textSecondary","panel","ScrollView","panelScroll","keyboardShouldPersistTaps","map","entry","oneOff","row","rowLabel","label","rowTag","rowTagMuted","id","rowLabelMuted","footer","pressed","undo","undoText","footnote","StyleSheet","create","borderBottomWidth","hairlineWidth","borderBottomColor","border","backgroundColor","warningSoft","flexDirection","alignItems","gap","paddingHorizontal","gutter","paddingVertical","width","height","borderRadius","warning","text","fontSize","font","caption","fontWeight","flex","paddingBottom","maxHeight","borderTopWidth","borderTopColor","separator","lineHeight","accent","micro","letterSpacing","textTransform","paddingTop","textTertiary","flexWrap","radius","button","opacity"],"sourceRoot":"../../../src","sources":["components/ChangesBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1,255 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Composer=Composer;var _react=require("react"),_reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_jsxRuntime=require("react/jsx-runtime");function Composer({onSend:e,onStop:t,busy:i,disabled:r,placeholder:s}){const[o,a]=(0,_react.useState)(""),l=(0,_react.useCallback)(()=>{const t=o.trim();t&&(a(""),e(t))},[o,e]),n=o.trim().length>0&&!i&&!r;return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wrap,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.field,r&&styles.fieldDisabled],children:(0,_jsxRuntime.jsx)(_reactNative.TextInput,{testID:"buoy-ask-buoy-input",style:styles.input,value:o,onChangeText:a,placeholder:s??(r?"Ask Buoy isn't set up yet":"Ask, or tell it what to change…"),placeholderTextColor:_sharedUi.night.color.placeholder,multiline:!0,editable:!r,keyboardType:"ascii-capable",autoCorrect:!0,autoCapitalize:"sentences",blurOnSubmit:!1,onSubmitEditing:l,returnKeyType:"send",maxLength:4e3})}),i?(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-ask-buoy-stop",accessibilityRole:"button",accessibilityLabel:"Stop",onPress:t,style:({pressed:e})=>[styles.button,styles.stop,e&&styles.pressed],children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.stopGlyph})}):(0,_jsxRuntime.jsx)(_reactNative.Pressable,{testID:"buoy-ask-buoy-send",accessibilityRole:"button",accessibilityLabel:"Send",disabled:!n,onPress:l,style:({pressed:e})=>[styles.button,n?styles.sendOn:styles.sendOff,e&&n&&styles.pressed],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.sendGlyph,{color:n?_sharedUi.night.color.onAccent:_sharedUi.night.color.textTertiary}],children:"↑"})})]})}const styles=_reactNative.StyleSheet.create({wrap:{flexDirection:"row",alignItems:"flex-end",gap:8,paddingHorizontal:_sharedUi.night.gutter,paddingTop:10,paddingBottom:6,borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.bg},field:{flex:1,minHeight:40,justifyContent:"center",borderRadius:20,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surfaceElevated},fieldDisabled:{opacity:.6},input:{maxHeight:120,paddingHorizontal:16,paddingTop:"ios"===_reactNative.Platform.OS?10:6,paddingBottom:"ios"===_reactNative.Platform.OS?10:6,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.row,lineHeight:20},button:{width:40,height:40,borderRadius:20,alignItems:"center",justifyContent:"center"},sendGlyph:{fontSize:20,fontWeight:"700",lineHeight:22},sendOn:{backgroundColor:_sharedUi.night.color.accent},sendOff:{backgroundColor:_sharedUi.night.color.fill},stop:{backgroundColor:_sharedUi.night.color.fillTertiary},stopGlyph:{width:12,height:12,borderRadius:2,backgroundColor:_sharedUi.night.color.text},pressed:{opacity:.7}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Composer = Composer;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * The message box.
13
+ *
14
+ * This is the first keyboard-safe BOTTOM input in Buoy, and the reason none
15
+ * existed before is that JsModal has no keyboard handling at all: the sheet is
16
+ * `position:absolute; bottom:0` inside the app tree, not an RN `Modal`, so on
17
+ * iOS the keyboard simply draws over it. Two other tools hit this and chose to
18
+ * dodge it — NetworkNumberPrompt and StorageValueEditModal both say so in
19
+ * comments and pin their inputs to the TOP of the screen. A chat cannot.
20
+ *
21
+ * What makes it work:
22
+ * - `KeyboardPad` (see that file), iOS only. `KeyboardAvoidingView` looked
23
+ * right here and did nothing: it measures its frame relative to its PARENT
24
+ * and compares that with the keyboard's SCREEN position, which never
25
+ * overlap inside a bottom-anchored sheet. On Android Expo's default
26
+ * `softwareKeyboardLayoutMode: "resize"` shrinks the window and a
27
+ * bottom-anchored view rides up for free; adding padding there would lift
28
+ * it twice.
29
+ * - The parent list carries `keyboardShouldPersistTaps="handled"`. Without it
30
+ * the first tap after typing only dismisses the keyboard and Send never
31
+ * fires — a real shipped bug in Time Machine, and invisible to Detox because
32
+ * `replaceText` opens no keyboard.
33
+ * - `keyboardType="ascii-capable"`, because iOS Smart Punctuation rewrites
34
+ * straight quotes as curly ones. That permanently broke the raw-JSON editor
35
+ * in Storage, and a tester pasting a JSON blob here would hit the same wall.
36
+ *
37
+ * While the agent is working the send button becomes a STOP button — a
38
+ * square, the universal glyph — rather than a spinner in a circle, which
39
+ * looked like a disabled control and gave no hint it was tappable.
40
+ */
41
+
42
+ /**
43
+ * One line of input, and the height of the send/stop button beside it — the
44
+ * row only reads as level while those two agree.
45
+ */
46
+ const MIN_INPUT_HEIGHT = 40;
47
+ /** ~5 lines, then it scrolls instead of eating the transcript. */
48
+ const MAX_INPUT_HEIGHT = 120;
49
+ const INPUT_PAD_V = _reactNative.Platform.OS === "ios" ? 10 : 6;
50
+ const INPUT_PAD_H = 16;
51
+ function Composer({
52
+ onSend,
53
+ onStop,
54
+ busy,
55
+ draft,
56
+ onDraftTaken,
57
+ disabled,
58
+ placeholder,
59
+ focusKey,
60
+ canFocus = true
61
+ }) {
62
+ const [text, setText] = (0, _react.useState)("");
63
+ const inputRef = (0, _react.useRef)(null);
64
+ (0, _react.useEffect)(() => {
65
+ if (!focusKey || !canFocus || disabled) return;
66
+ inputRef.current?.focus();
67
+ }, [focusKey, canFocus, disabled]);
68
+ (0, _react.useEffect)(() => {
69
+ if (!draft) return;
70
+ // Appended, not assigned: they may have started typing something else in
71
+ // the moment between pressing Stop and this landing.
72
+ setText(current => current ? `${current} ${draft}` : draft);
73
+ onDraftTaken?.();
74
+ }, [draft, onDraftTaken]);
75
+ const submit = (0, _react.useCallback)(() => {
76
+ const value = text.trim();
77
+ if (!value) return;
78
+ setText("");
79
+ onSend(value);
80
+ }, [text, onSend]);
81
+ const canSend = text.trim().length > 0 && !busy && !disabled;
82
+ /**
83
+ * Typed something while a turn is running.
84
+ *
85
+ * `send` parks it and flushes it when the turn ends — but the only button on
86
+ * screen while busy was Stop, so the sole way to reach that was the
87
+ * keyboard's return key, and the "Queued" placeholder that explains it only
88
+ * appears AFTER you have managed it. The button is the affordance.
89
+ */
90
+ const canQueue = text.trim().length > 0 && busy && !disabled;
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
92
+ style: styles.wrap,
93
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
94
+ style: [styles.field, disabled && styles.fieldDisabled],
95
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
96
+ ref: inputRef,
97
+ testID: "buoy-ask-buoy-input"
98
+ /*
99
+ * Empty means one line, always.
100
+ *
101
+ * The box is otherwise auto-height, and an iOS multiline TextInput
102
+ * grows with the text but never shrinks back: sending a two-line
103
+ * message cleared the text and left a two-line box standing over
104
+ * the 40pt round button beside it. Nothing on the native side
105
+ * reports the shrink either — on Fabric `onContentSizeChange` is
106
+ * emitted from `updateLayoutMetrics` (a LAYOUT change), not from a
107
+ * text change — so the height it last grew to is the height it
108
+ * keeps. Pinning the empty case is the whole fix: it is the only
109
+ * state that has to line up with the button, and it is exactly the
110
+ * state a send or a new conversation lands in.
111
+ */,
112
+ style: [styles.input, text.length === 0 && styles.inputEmpty],
113
+ value: text,
114
+ onChangeText: setText,
115
+ placeholder: placeholder ?? (disabled ? "Ask Buoy isn't set up yet" : "Ask, or tell it what to change…"),
116
+ placeholderTextColor: _sharedUi.night.color.placeholder,
117
+ multiline: true,
118
+ editable: !disabled
119
+ // Straight quotes only — see the header note.
120
+ ,
121
+ keyboardType: "ascii-capable",
122
+ autoCorrect: true,
123
+ autoCapitalize: "sentences"
124
+ // Enter sends; Shift-Enter is not a thing on a phone keyboard, and a
125
+ // multiline box with no submit affordance strands people.
126
+ ,
127
+ blurOnSubmit: false,
128
+ onSubmitEditing: submit,
129
+ returnKeyType: "send",
130
+ maxLength: 4000
131
+ })
132
+ }), canQueue && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
133
+ testID: "buoy-ask-buoy-queue",
134
+ accessibilityRole: "button",
135
+ accessibilityLabel: "Queue message",
136
+ onPress: submit,
137
+ style: ({
138
+ pressed
139
+ }) => [styles.button, styles.queue, pressed && styles.pressed],
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
141
+ style: [styles.sendGlyph, {
142
+ color: _sharedUi.night.color.accent
143
+ }],
144
+ children: "\u2191"
145
+ })
146
+ }), busy ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
147
+ testID: "buoy-ask-buoy-stop",
148
+ accessibilityRole: "button",
149
+ accessibilityLabel: "Stop",
150
+ onPress: onStop,
151
+ style: ({
152
+ pressed
153
+ }) => [styles.button, styles.stop, pressed && styles.pressed],
154
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
155
+ style: styles.stopGlyph
156
+ })
157
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
158
+ testID: "buoy-ask-buoy-send",
159
+ accessibilityRole: "button",
160
+ accessibilityLabel: "Send",
161
+ disabled: !canSend,
162
+ onPress: submit,
163
+ style: ({
164
+ pressed
165
+ }) => [styles.button, canSend ? styles.sendOn : styles.sendOff, pressed && canSend && styles.pressed],
166
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
167
+ style: [styles.sendGlyph, {
168
+ color: canSend ? _sharedUi.night.color.onAccent : _sharedUi.night.color.textTertiary
169
+ }],
170
+ children: "\u2191"
171
+ })
172
+ })]
173
+ });
174
+ }
175
+ const styles = _reactNative.StyleSheet.create({
176
+ wrap: {
177
+ flexDirection: "row",
178
+ alignItems: "flex-end",
179
+ gap: 8,
180
+ paddingHorizontal: _sharedUi.night.gutter,
181
+ paddingTop: 10,
182
+ paddingBottom: 6,
183
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
184
+ borderTopColor: _sharedUi.night.color.border,
185
+ // Opaque: messages scroll UNDER the composer, and a translucent bar over
186
+ // moving text is unreadable.
187
+ backgroundColor: _sharedUi.night.color.bg
188
+ },
189
+ field: {
190
+ flex: 1,
191
+ minHeight: MIN_INPUT_HEIGHT,
192
+ justifyContent: "center",
193
+ borderRadius: 20,
194
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
195
+ borderColor: _sharedUi.night.color.border,
196
+ backgroundColor: _sharedUi.night.color.surfaceElevated
197
+ },
198
+ fieldDisabled: {
199
+ opacity: 0.6
200
+ },
201
+ input: {
202
+ maxHeight: MAX_INPUT_HEIGHT,
203
+ paddingHorizontal: INPUT_PAD_H,
204
+ paddingTop: INPUT_PAD_V,
205
+ paddingBottom: INPUT_PAD_V,
206
+ color: _sharedUi.night.color.text,
207
+ fontSize: _sharedUi.night.font.row
208
+ // No `lineHeight` here on purpose. A multiline TextInput on iOS lays out
209
+ // with the paragraph line height AND the font's own leading, so setting
210
+ // it made a one-line box measure ~56pt instead of 40 — the pill towered
211
+ // over the 40pt send/stop button beside it and the row read as crooked.
212
+ },
213
+ // Exactly the button's height, so the two read as one level row.
214
+ inputEmpty: {
215
+ height: MIN_INPUT_HEIGHT
216
+ },
217
+ button: {
218
+ width: 40,
219
+ height: 40,
220
+ borderRadius: 20,
221
+ alignItems: "center",
222
+ justifyContent: "center"
223
+ },
224
+ sendGlyph: {
225
+ fontSize: 20,
226
+ fontWeight: "700",
227
+ lineHeight: 22
228
+ },
229
+ sendOn: {
230
+ backgroundColor: _sharedUi.night.color.accent
231
+ },
232
+ sendOff: {
233
+ backgroundColor: _sharedUi.night.color.fill
234
+ },
235
+ stop: {
236
+ backgroundColor: _sharedUi.night.color.fillTertiary
237
+ },
238
+ // Outlined rather than filled: it sits beside Stop, and two solid buttons
239
+ // read as one control with two halves.
240
+ queue: {
241
+ backgroundColor: "transparent",
242
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
243
+ borderColor: _sharedUi.night.color.accentBorderStrong
244
+ },
245
+ stopGlyph: {
246
+ width: 12,
247
+ height: 12,
248
+ borderRadius: 2,
249
+ backgroundColor: _sharedUi.night.color.text
250
+ },
251
+ pressed: {
252
+ opacity: 0.7
253
+ }
254
+ });
255
+ //# sourceMappingURL=Composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_sharedUi","_jsxRuntime","MIN_INPUT_HEIGHT","MAX_INPUT_HEIGHT","INPUT_PAD_V","Platform","OS","INPUT_PAD_H","Composer","onSend","onStop","busy","draft","onDraftTaken","disabled","placeholder","focusKey","canFocus","text","setText","useState","inputRef","useRef","useEffect","current","focus","submit","useCallback","value","trim","canSend","length","canQueue","jsxs","View","style","styles","wrap","children","jsx","field","fieldDisabled","TextInput","ref","testID","input","inputEmpty","onChangeText","placeholderTextColor","night","color","multiline","editable","keyboardType","autoCorrect","autoCapitalize","blurOnSubmit","onSubmitEditing","returnKeyType","maxLength","Pressable","accessibilityRole","accessibilityLabel","onPress","pressed","button","queue","Text","sendGlyph","accent","stop","stopGlyph","sendOn","sendOff","onAccent","textTertiary","StyleSheet","create","flexDirection","alignItems","gap","paddingHorizontal","gutter","paddingTop","paddingBottom","borderTopWidth","hairlineWidth","borderTopColor","border","backgroundColor","bg","flex","minHeight","justifyContent","borderRadius","borderWidth","borderColor","surfaceElevated","opacity","maxHeight","fontSize","font","row","height","width","fontWeight","lineHeight","fill","fillTertiary","accentBorderStrong"],"sourceRoot":"../../../src","sources":["components/Composer.tsx"],"mappings":"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","ignoreList":[]}