@buoy-gg/ask-buoy 7.0.34 → 7.0.35

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 (239) hide show
  1. package/README.md +1 -1
  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 +250 -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 +688 -1
  9. package/lib/commonjs/blocks/DataBlocks.js.map +1 -0
  10. package/lib/commonjs/blocks/ExtraBlocks.js +1854 -1
  11. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -0
  12. package/lib/commonjs/blocks/MediaBlocks.js +140 -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/context.js +42 -1
  17. package/lib/commonjs/blocks/context.js.map +1 -0
  18. package/lib/commonjs/blocks/icons.js +96 -1
  19. package/lib/commonjs/blocks/icons.js.map +1 -0
  20. package/lib/commonjs/blocks/index.js +95 -1
  21. package/lib/commonjs/blocks/index.js.map +1 -0
  22. package/lib/commonjs/blocks/listRow.test.js +55 -0
  23. package/lib/commonjs/blocks/listRow.test.js.map +1 -0
  24. package/lib/commonjs/blocks/pageState.js +34 -0
  25. package/lib/commonjs/blocks/pageState.js.map +1 -0
  26. package/lib/commonjs/blocks/pageState.test.js +57 -0
  27. package/lib/commonjs/blocks/pageState.test.js.map +1 -0
  28. package/lib/commonjs/blocks/primitives.js +401 -1
  29. package/lib/commonjs/blocks/primitives.js.map +1 -0
  30. package/lib/commonjs/blocks/primitivesIndex.js +62 -1
  31. package/lib/commonjs/blocks/primitivesIndex.js.map +1 -0
  32. package/lib/commonjs/components/ApprovalCard.js +140 -1
  33. package/lib/commonjs/components/ApprovalCard.js.map +1 -0
  34. package/lib/commonjs/components/AskBuoyHeader.js +164 -1
  35. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -0
  36. package/lib/commonjs/components/AskBuoyIcon.js +19 -1
  37. package/lib/commonjs/components/AskBuoyIcon.js.map +1 -0
  38. package/lib/commonjs/components/AskBuoyModal.js +353 -1
  39. package/lib/commonjs/components/AskBuoyModal.js.map +1 -0
  40. package/lib/commonjs/components/AskBuoySettings.js +69 -0
  41. package/lib/commonjs/components/AskBuoySettings.js.map +1 -0
  42. package/lib/commonjs/components/ChangesBar.js +211 -1
  43. package/lib/commonjs/components/ChangesBar.js.map +1 -0
  44. package/lib/commonjs/components/Composer.js +175 -1
  45. package/lib/commonjs/components/Composer.js.map +1 -0
  46. package/lib/commonjs/components/EmptyState.js +154 -1
  47. package/lib/commonjs/components/EmptyState.js.map +1 -0
  48. package/lib/commonjs/components/Markdown.js +252 -1
  49. package/lib/commonjs/components/Markdown.js.map +1 -0
  50. package/lib/commonjs/components/MessageList.js +683 -1
  51. package/lib/commonjs/components/MessageList.js.map +1 -0
  52. package/lib/commonjs/components/ThinkingStrip.js +223 -0
  53. package/lib/commonjs/components/ThinkingStrip.js.map +1 -0
  54. package/lib/commonjs/components/TypingDots.js +63 -1
  55. package/lib/commonjs/components/TypingDots.js.map +1 -0
  56. package/lib/commonjs/components/useCopyAction.js +50 -0
  57. package/lib/commonjs/components/useCopyAction.js.map +1 -0
  58. package/lib/commonjs/index.js +252 -1
  59. package/lib/commonjs/index.js.map +1 -0
  60. package/lib/commonjs/preset.js +90 -1
  61. package/lib/commonjs/preset.js.map +1 -0
  62. package/lib/commonjs/store/askBuoySettings.js +67 -0
  63. package/lib/commonjs/store/askBuoySettings.js.map +1 -0
  64. package/lib/commonjs/store/askBuoyStore.js +365 -1
  65. package/lib/commonjs/store/askBuoyStore.js.map +1 -0
  66. package/lib/commonjs/store/restoredIds.test.js +47 -0
  67. package/lib/commonjs/store/restoredIds.test.js.map +1 -0
  68. package/lib/commonjs/store/traceText.js +81 -0
  69. package/lib/commonjs/store/traceText.js.map +1 -0
  70. package/lib/commonjs/store/traceText.test.js +112 -0
  71. package/lib/commonjs/store/traceText.test.js.map +1 -0
  72. package/lib/commonjs/store/transcriptPersistence.js +208 -0
  73. package/lib/commonjs/store/transcriptPersistence.js.map +1 -0
  74. package/lib/commonjs/store/transcriptPersistence.test.js +185 -0
  75. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -0
  76. package/lib/commonjs/store/useAskBuoy.js +400 -1
  77. package/lib/commonjs/store/useAskBuoy.js.map +1 -0
  78. package/lib/commonjs/store/useAskBuoySettings.js +14 -0
  79. package/lib/commonjs/store/useAskBuoySettings.js.map +1 -0
  80. package/lib/commonjs/sync/askBuoySyncAdapter.js +119 -1
  81. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -0
  82. package/lib/commonjs/sync/askBuoySyncAdapter.test.js +141 -1
  83. package/lib/commonjs/sync/askBuoySyncAdapter.test.js.map +1 -0
  84. package/lib/commonjs/sync/wire.js +58 -1
  85. package/lib/commonjs/sync/wire.js.map +1 -0
  86. package/lib/commonjs/types.js +6 -1
  87. package/lib/commonjs/types.js.map +1 -0
  88. package/lib/module/blocks/AskBlocks.js +331 -1
  89. package/lib/module/blocks/AskBlocks.js.map +1 -0
  90. package/lib/module/blocks/BlockRenderer.js +245 -1
  91. package/lib/module/blocks/BlockRenderer.js.map +1 -0
  92. package/lib/module/blocks/ChromePrototypes.js +503 -1
  93. package/lib/module/blocks/ChromePrototypes.js.map +1 -0
  94. package/lib/module/blocks/DataBlocks.js +674 -1
  95. package/lib/module/blocks/DataBlocks.js.map +1 -0
  96. package/lib/module/blocks/ExtraBlocks.js +1827 -1
  97. package/lib/module/blocks/ExtraBlocks.js.map +1 -0
  98. package/lib/module/blocks/MediaBlocks.js +135 -1
  99. package/lib/module/blocks/MediaBlocks.js.map +1 -0
  100. package/lib/module/blocks/ReceiptBlocks.js +574 -1
  101. package/lib/module/blocks/ReceiptBlocks.js.map +1 -0
  102. package/lib/module/blocks/context.js +35 -1
  103. package/lib/module/blocks/context.js.map +1 -0
  104. package/lib/module/blocks/icons.js +91 -1
  105. package/lib/module/blocks/icons.js.map +1 -0
  106. package/lib/module/blocks/index.js +8 -1
  107. package/lib/module/blocks/index.js.map +1 -0
  108. package/lib/module/blocks/listRow.test.js +56 -0
  109. package/lib/module/blocks/listRow.test.js.map +1 -0
  110. package/lib/module/blocks/pageState.js +30 -0
  111. package/lib/module/blocks/pageState.js.map +1 -0
  112. package/lib/module/blocks/pageState.test.js +56 -0
  113. package/lib/module/blocks/pageState.test.js.map +1 -0
  114. package/lib/module/blocks/primitives.js +389 -1
  115. package/lib/module/blocks/primitives.js.map +1 -0
  116. package/lib/module/blocks/primitivesIndex.js +5 -1
  117. package/lib/module/blocks/primitivesIndex.js.map +1 -0
  118. package/lib/module/components/ApprovalCard.js +135 -1
  119. package/lib/module/components/ApprovalCard.js.map +1 -0
  120. package/lib/module/components/AskBuoyHeader.js +161 -1
  121. package/lib/module/components/AskBuoyHeader.js.map +1 -0
  122. package/lib/module/components/AskBuoyIcon.js +8 -1
  123. package/lib/module/components/AskBuoyIcon.js.map +1 -0
  124. package/lib/module/components/AskBuoyModal.js +348 -1
  125. package/lib/module/components/AskBuoyModal.js.map +1 -0
  126. package/lib/module/components/AskBuoySettings.js +64 -0
  127. package/lib/module/components/AskBuoySettings.js.map +1 -0
  128. package/lib/module/components/ChangesBar.js +206 -1
  129. package/lib/module/components/ChangesBar.js.map +1 -0
  130. package/lib/module/components/Composer.js +170 -1
  131. package/lib/module/components/Composer.js.map +1 -0
  132. package/lib/module/components/EmptyState.js +149 -1
  133. package/lib/module/components/EmptyState.js.map +1 -0
  134. package/lib/module/components/Markdown.js +246 -1
  135. package/lib/module/components/Markdown.js.map +1 -0
  136. package/lib/module/components/MessageList.js +677 -1
  137. package/lib/module/components/MessageList.js.map +1 -0
  138. package/lib/module/components/ThinkingStrip.js +218 -0
  139. package/lib/module/components/ThinkingStrip.js.map +1 -0
  140. package/lib/module/components/TypingDots.js +58 -1
  141. package/lib/module/components/TypingDots.js.map +1 -0
  142. package/lib/module/components/useCopyAction.js +46 -0
  143. package/lib/module/components/useCopyAction.js.map +1 -0
  144. package/lib/module/index.js +34 -1
  145. package/lib/module/index.js.map +1 -0
  146. package/lib/module/preset.js +73 -1
  147. package/lib/module/preset.js.map +1 -0
  148. package/lib/module/store/askBuoySettings.js +62 -0
  149. package/lib/module/store/askBuoySettings.js.map +1 -0
  150. package/lib/module/store/askBuoyStore.js +361 -1
  151. package/lib/module/store/askBuoyStore.js.map +1 -0
  152. package/lib/module/store/restoredIds.test.js +46 -0
  153. package/lib/module/store/restoredIds.test.js.map +1 -0
  154. package/lib/module/store/traceText.js +75 -0
  155. package/lib/module/store/traceText.js.map +1 -0
  156. package/lib/module/store/traceText.test.js +111 -0
  157. package/lib/module/store/traceText.test.js.map +1 -0
  158. package/lib/module/store/transcriptPersistence.js +198 -0
  159. package/lib/module/store/transcriptPersistence.js.map +1 -0
  160. package/lib/module/store/transcriptPersistence.test.js +184 -0
  161. package/lib/module/store/transcriptPersistence.test.js.map +1 -0
  162. package/lib/module/store/useAskBuoy.js +394 -1
  163. package/lib/module/store/useAskBuoy.js.map +1 -0
  164. package/lib/module/store/useAskBuoySettings.js +9 -0
  165. package/lib/module/store/useAskBuoySettings.js.map +1 -0
  166. package/lib/module/sync/askBuoySyncAdapter.js +114 -1
  167. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -0
  168. package/lib/module/sync/askBuoySyncAdapter.test.js +140 -1
  169. package/lib/module/sync/askBuoySyncAdapter.test.js.map +1 -0
  170. package/lib/module/sync/wire.js +47 -1
  171. package/lib/module/sync/wire.js.map +1 -0
  172. package/lib/module/types.js +4 -1
  173. package/lib/module/types.js.map +1 -0
  174. package/lib/typescript/blocks/AskBlocks.d.ts.map +1 -0
  175. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -0
  176. package/lib/typescript/blocks/ChromePrototypes.d.ts.map +1 -0
  177. package/lib/typescript/blocks/DataBlocks.d.ts +31 -0
  178. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -0
  179. package/lib/typescript/blocks/ExtraBlocks.d.ts +11 -0
  180. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -0
  181. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -0
  182. package/lib/typescript/blocks/ReceiptBlocks.d.ts.map +1 -0
  183. package/lib/typescript/blocks/context.d.ts.map +1 -0
  184. package/lib/typescript/blocks/icons.d.ts.map +1 -0
  185. package/lib/typescript/blocks/index.d.ts.map +1 -0
  186. package/lib/typescript/blocks/listRow.test.d.ts +2 -0
  187. package/lib/typescript/blocks/listRow.test.d.ts.map +1 -0
  188. package/lib/typescript/blocks/pageState.d.ts +23 -0
  189. package/lib/typescript/blocks/pageState.d.ts.map +1 -0
  190. package/lib/typescript/blocks/pageState.test.d.ts +2 -0
  191. package/lib/typescript/blocks/pageState.test.d.ts.map +1 -0
  192. package/lib/typescript/blocks/primitives.d.ts +39 -9
  193. package/lib/typescript/blocks/primitives.d.ts.map +1 -0
  194. package/lib/typescript/blocks/primitivesIndex.d.ts +2 -1
  195. package/lib/typescript/blocks/primitivesIndex.d.ts.map +1 -0
  196. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -0
  197. package/lib/typescript/components/AskBuoyHeader.d.ts +11 -1
  198. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -0
  199. package/lib/typescript/components/AskBuoyIcon.d.ts.map +1 -0
  200. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -0
  201. package/lib/typescript/components/AskBuoySettings.d.ts +2 -0
  202. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -0
  203. package/lib/typescript/components/ChangesBar.d.ts.map +1 -0
  204. package/lib/typescript/components/Composer.d.ts.map +1 -0
  205. package/lib/typescript/components/EmptyState.d.ts.map +1 -0
  206. package/lib/typescript/components/Markdown.d.ts.map +1 -0
  207. package/lib/typescript/components/MessageList.d.ts +12 -5
  208. package/lib/typescript/components/MessageList.d.ts.map +1 -0
  209. package/lib/typescript/components/ThinkingStrip.d.ts +5 -0
  210. package/lib/typescript/components/ThinkingStrip.d.ts.map +1 -0
  211. package/lib/typescript/components/TypingDots.d.ts.map +1 -0
  212. package/lib/typescript/components/useCopyAction.d.ts +5 -0
  213. package/lib/typescript/components/useCopyAction.d.ts.map +1 -0
  214. package/lib/typescript/index.d.ts +5 -0
  215. package/lib/typescript/index.d.ts.map +1 -0
  216. package/lib/typescript/preset.d.ts.map +1 -0
  217. package/lib/typescript/store/askBuoySettings.d.ts +22 -0
  218. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -0
  219. package/lib/typescript/store/askBuoyStore.d.ts +74 -13
  220. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -0
  221. package/lib/typescript/store/restoredIds.test.d.ts +2 -0
  222. package/lib/typescript/store/restoredIds.test.d.ts.map +1 -0
  223. package/lib/typescript/store/traceText.d.ts +33 -0
  224. package/lib/typescript/store/traceText.d.ts.map +1 -0
  225. package/lib/typescript/store/traceText.test.d.ts +2 -0
  226. package/lib/typescript/store/traceText.test.d.ts.map +1 -0
  227. package/lib/typescript/store/transcriptPersistence.d.ts +40 -0
  228. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -0
  229. package/lib/typescript/store/transcriptPersistence.test.d.ts +2 -0
  230. package/lib/typescript/store/transcriptPersistence.test.d.ts.map +1 -0
  231. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -0
  232. package/lib/typescript/store/useAskBuoySettings.d.ts +3 -0
  233. package/lib/typescript/store/useAskBuoySettings.d.ts.map +1 -0
  234. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -0
  235. package/lib/typescript/sync/askBuoySyncAdapter.test.d.ts.map +1 -0
  236. package/lib/typescript/sync/wire.d.ts.map +1 -0
  237. package/lib/typescript/types.d.ts +24 -1
  238. package/lib/typescript/types.d.ts.map +1 -0
  239. package/package.json +8 -8
@@ -1 +1,154 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.EmptyState=EmptyState;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_jsxRuntime=require("react/jsx-runtime");const isRelease="undefined"!=typeof __DEV__&&!__DEV__,SUGGESTIONS=["Why is this screen empty?","What did the last few network calls return?","Show me what's saved for this user","Make the next request to this screen fail with a 500"];function EmptyState({configured:e,onPick:t}){return e?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wrap,testID:"buoy-ask-buoy-empty",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Ask about this app"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.body,children:"Ask what the app is doing right now, or tell it to change something. Anything it changes shows up in a bar at the top, and you can undo it."}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.buildLine,testID:"buoy-ask-buoy-build-line",children:isRelease?"Release build — reading, impersonation and navigation work; simulations (forcing server responses, driving the screen) need a dev build.":"Dev build — full simulation available."}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.group,children:[(0,_jsxRuntime.jsx)(_sharedUi.NightSectionLabel,{children:"Try asking"}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.card,children:SUGGESTIONS.map((e,i)=>(0,_jsxRuntime.jsx)(Suggestion,{text:e,onPick:t,last:i===SUGGESTIONS.length-1},e))})]})]}):(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.wrap,testID:"buoy-ask-buoy-unconfigured",children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Not set up yet"}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.body,children:["Ask Buoy talks to your own company's AI endpoint — nothing goes to Buoy. A developer needs to add the ",(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.code,children:"askBuoy"})," prop to"," ",(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.code,children:"<FloatingDevTools />"})," with your team's endpoint and model."]})]})}function Suggestion({text:e,onPick:t,last:i}){return(0,_jsxRuntime.jsxs)(_reactNative.Pressable,{testID:`buoy-ask-buoy-suggestion-${e.slice(0,12)}`,accessibilityRole:"button",onPress:()=>t(e),style:({pressed:e})=>[styles.row,!i&&styles.rowDivider,e&&styles.pressed],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.rowText,children:e}),(0,_jsxRuntime.jsx)(_sharedUi.ChevronRight,{size:14,color:_sharedUi.night.color.textTertiary})]})}const styles=_reactNative.StyleSheet.create({wrap:{flex:1,justifyContent:"center",paddingHorizontal:_sharedUi.night.gutter,paddingVertical:24,gap:8},title:{color:_sharedUi.night.color.text,fontSize:22,fontWeight:"700",letterSpacing:-.3},body:{color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.body,lineHeight:20},code:{color:_sharedUi.night.color.text,fontFamily:"Menlo"},buildLine:{marginTop:8,color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro,lineHeight:15},group:{marginTop:_sharedUi.night.groupGap-8},card:{borderRadius:_sharedUi.night.radius.card,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface,overflow:"hidden"},row:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:_sharedUi.night.rowPadH,paddingVertical:13},rowDivider:{borderBottomWidth:_reactNative.StyleSheet.hairlineWidth,borderBottomColor:_sharedUi.night.color.separator},rowText:{flex:1,color:_sharedUi.night.color.text,fontSize:_sharedUi.night.font.body,lineHeight:19},pressed:{backgroundColor:_sharedUi.night.color.fill}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EmptyState = EmptyState;
7
+ var _reactNative = require("react-native");
8
+ var _sharedUi = require("@buoy-gg/shared-ui");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * The first screen.
12
+ *
13
+ * Written for someone who has never used a devtool. The suggestions are not
14
+ * decoration — they are the fastest way to teach a tester what kind of sentence
15
+ * works here, and they are phrased as outcomes ("why is this screen empty?")
16
+ * rather than as tool names, because the tools are the thing this feature
17
+ * exists to hide.
18
+ */
19
+
20
+ const isRelease = typeof __DEV__ !== "undefined" && !__DEV__;
21
+ const SUGGESTIONS = ["Why is this screen empty?", "What did the last few network calls return?", "Show me what's saved for this user", "Make the next request to this screen fail with a 500"];
22
+ function EmptyState({
23
+ configured,
24
+ onPick
25
+ }) {
26
+ if (!configured) {
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
28
+ style: styles.wrap,
29
+ testID: "buoy-ask-buoy-unconfigured",
30
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
31
+ style: styles.title,
32
+ children: "Not set up yet"
33
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
34
+ style: styles.body,
35
+ children: ["Ask Buoy talks to your own company's AI endpoint \u2014 nothing goes to Buoy. A developer needs to add the ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
36
+ style: styles.code,
37
+ children: "askBuoy"
38
+ }), " prop to", " ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
39
+ style: styles.code,
40
+ children: "<FloatingDevTools />"
41
+ }), " with your team's endpoint and model."]
42
+ })]
43
+ });
44
+ }
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
46
+ style: styles.wrap,
47
+ testID: "buoy-ask-buoy-empty",
48
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
49
+ style: styles.title,
50
+ children: "Ask about this app"
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
52
+ style: styles.body,
53
+ children: "Ask what the app is doing right now, or tell it to change something. Anything it changes shows up in a bar at the top, and you can undo it."
54
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
55
+ style: styles.buildLine,
56
+ testID: "buoy-ask-buoy-build-line",
57
+ children: isRelease ? "Release build — reading, impersonation and navigation work; simulations (forcing server responses, driving the screen) need a dev build." : "Dev build — full simulation available."
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
59
+ style: styles.group,
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.NightSectionLabel, {
61
+ children: "Try asking"
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
63
+ style: styles.card,
64
+ children: SUGGESTIONS.map((s, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Suggestion, {
65
+ text: s,
66
+ onPick: onPick,
67
+ last: i === SUGGESTIONS.length - 1
68
+ }, s))
69
+ })]
70
+ })]
71
+ });
72
+ }
73
+ function Suggestion({
74
+ text,
75
+ onPick,
76
+ last
77
+ }) {
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
79
+ testID: `buoy-ask-buoy-suggestion-${text.slice(0, 12)}`,
80
+ accessibilityRole: "button",
81
+ onPress: () => onPick(text),
82
+ style: ({
83
+ pressed
84
+ }) => [styles.row, !last && styles.rowDivider, pressed && styles.pressed],
85
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
86
+ style: styles.rowText,
87
+ children: text
88
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
89
+ size: 14,
90
+ color: _sharedUi.night.color.textTertiary
91
+ })]
92
+ });
93
+ }
94
+ const styles = _reactNative.StyleSheet.create({
95
+ wrap: {
96
+ flex: 1,
97
+ justifyContent: "center",
98
+ paddingHorizontal: _sharedUi.night.gutter,
99
+ paddingVertical: 24,
100
+ gap: 8
101
+ },
102
+ title: {
103
+ color: _sharedUi.night.color.text,
104
+ fontSize: 22,
105
+ fontWeight: "700",
106
+ letterSpacing: -0.3
107
+ },
108
+ body: {
109
+ color: _sharedUi.night.color.textSecondary,
110
+ fontSize: _sharedUi.night.font.body,
111
+ lineHeight: 20
112
+ },
113
+ code: {
114
+ color: _sharedUi.night.color.text,
115
+ fontFamily: "Menlo"
116
+ },
117
+ buildLine: {
118
+ marginTop: 8,
119
+ color: _sharedUi.night.color.textTertiary,
120
+ fontSize: _sharedUi.night.font.micro,
121
+ lineHeight: 15
122
+ },
123
+ group: {
124
+ marginTop: _sharedUi.night.groupGap - 8
125
+ },
126
+ card: {
127
+ borderRadius: _sharedUi.night.radius.card,
128
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
129
+ borderColor: _sharedUi.night.color.border,
130
+ backgroundColor: _sharedUi.night.color.surface,
131
+ overflow: "hidden"
132
+ },
133
+ row: {
134
+ flexDirection: "row",
135
+ alignItems: "center",
136
+ gap: 10,
137
+ paddingHorizontal: _sharedUi.night.rowPadH,
138
+ paddingVertical: 13
139
+ },
140
+ rowDivider: {
141
+ borderBottomWidth: _reactNative.StyleSheet.hairlineWidth,
142
+ borderBottomColor: _sharedUi.night.color.separator
143
+ },
144
+ rowText: {
145
+ flex: 1,
146
+ color: _sharedUi.night.color.text,
147
+ fontSize: _sharedUi.night.font.body,
148
+ lineHeight: 19
149
+ },
150
+ pressed: {
151
+ backgroundColor: _sharedUi.night.color.fill
152
+ }
153
+ });
154
+ //# sourceMappingURL=EmptyState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_jsxRuntime","isRelease","__DEV__","SUGGESTIONS","EmptyState","configured","onPick","jsxs","View","style","styles","wrap","testID","children","jsx","Text","title","body","code","buildLine","group","NightSectionLabel","card","map","s","i","Suggestion","text","last","length","Pressable","slice","accessibilityRole","onPress","pressed","row","rowDivider","rowText","ChevronRight","size","color","night","textTertiary","StyleSheet","create","flex","justifyContent","paddingHorizontal","gutter","paddingVertical","gap","fontSize","fontWeight","letterSpacing","textSecondary","font","lineHeight","fontFamily","marginTop","micro","groupGap","borderRadius","radius","borderWidth","hairlineWidth","borderColor","border","backgroundColor","surface","overflow","flexDirection","alignItems","rowPadH","borderBottomWidth","borderBottomColor","separator","fill"],"sourceRoot":"../../../src","sources":["components/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1,252 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Markdown=Markdown,exports.renderInline=renderInline;var _reactNative=require("react-native"),_sharedUi=require("@buoy-gg/shared-ui"),_jsxRuntime=require("react/jsx-runtime");const isTableRow=e=>/^\s*\|.*\|\s*$/.test(e),isTableRule=e=>/^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/.test(e),splitRow=e=>e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(e=>e.trim());function parseBlocks(e){const t=[];let i=[];const r=()=>{i.length&&t.push({kind:"p",text:i.join(" ")}),i=[]},s=e.split("\n");for(let e=0;e<s.length;e++){const l=s[e].replace(/\s+$/,"");if(!l.trim()){r();continue}if(isTableRow(l)&&s[e+1]&&isTableRule(s[e+1])){r();const i=splitRow(l),n=[];let a=e+2;for(;a<s.length&&isTableRow(s[a]);)n.push(splitRow(s[a])),a++;t.push({kind:"table",header:i,rows:n}),e=a-1;continue}const n=/^#{1,6}\s+(.*)$/.exec(l);if(n){r(),t.push({kind:"h",text:n[1]});continue}const a=/^(\s*)([-*•]|\d+[.)])\s+(.*)$/.exec(l);if(a){r();const e=Math.min(2,Math.floor(a[1].length/2)),i=/^\d/.test(a[2])?a[2].replace(")","."):"•";t.push({kind:"li",text:a[3],marker:i,depth:e});continue}i.push(l.trim())}return r(),t}function renderInline(e,t){const i=e.replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1"),r=[],s=/(\*\*[^*]+\*\*|`[^`]+`|\*[^*\s][^*]*\*|_[^_\s][^_]*_)/g;let l,n=0,a=0;for(;l=s.exec(i);){l.index>n&&r.push(i.slice(n,l.index));const e=l[0];e.startsWith("**")?r.push((0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,styles.bold],children:e.slice(2,-2)},a++)):e.startsWith("`")?r.push((0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,styles.code],children:e.slice(1,-1)},a++)):r.push((0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,styles.italic],children:e.slice(1,-1)},a++)),n=l.index+e.length}return n<i.length&&r.push(i.slice(n)),r}function Markdown({text:e,style:t}){const i=parseBlocks(e);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.wrap,children:i.map((e,i)=>{if("table"===e.kind){const t=e.header.slice(0,4);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.table,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.tableHead,children:t.map((e,t)=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.th,0===t&&styles.firstCol],numberOfLines:1,children:e.replace(/\*\*/g,"")},t))}),e.rows.slice(0,12).map((e,i)=>(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.tr,i>0&&styles.trDivider],children:t.map((t,i)=>(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.td,0===i&&styles.firstCol,0===i&&styles.tdFirst],numberOfLines:2,children:renderInline((e[i]??"").replace(/!?\[([^\]]*)\]\([^)]*\)/g,"$1"),styles.td)},i))},i))]},i)}return"li"===e.kind?(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.li,{paddingLeft:4+14*e.depth}],children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,styles.marker],children:e.marker}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,styles.liText],selectable:!0,children:renderInline(e.text,t)})]},i):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[t,"h"===e.kind&&styles.bold],selectable:!0,children:renderInline(e.text,t)},i)})})}const styles=_reactNative.StyleSheet.create({wrap:{gap:8},bold:{fontWeight:"600"},italic:{fontStyle:"italic"},code:{fontFamily:"Menlo",fontSize:13,color:_sharedUi.night.color.accent,backgroundColor:_sharedUi.night.color.fill},li:{flexDirection:"row",gap:8},table:{borderRadius:_sharedUi.night.radius.row,borderWidth:_reactNative.StyleSheet.hairlineWidth,borderColor:_sharedUi.night.color.border,backgroundColor:_sharedUi.night.color.surface,overflow:"hidden"},tableHead:{flexDirection:"row",paddingHorizontal:10,paddingVertical:6,gap:8,backgroundColor:_sharedUi.night.color.fill},th:{flex:1,color:_sharedUi.night.color.textTertiary,fontSize:_sharedUi.night.font.micro,fontWeight:"700",letterSpacing:.6,textTransform:"uppercase"},tr:{flexDirection:"row",paddingHorizontal:10,paddingVertical:7,gap:8},trDivider:{borderTopWidth:_reactNative.StyleSheet.hairlineWidth,borderTopColor:_sharedUi.night.color.separator},td:{flex:1,color:_sharedUi.night.color.textSecondary,fontSize:_sharedUi.night.font.caption,lineHeight:17},tdFirst:{color:_sharedUi.night.color.text,fontWeight:"500"},firstCol:{flex:1.3},marker:{color:_sharedUi.night.color.textSecondary,minWidth:14,textAlign:"right"},liText:{flex:1}});
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Markdown = Markdown;
7
+ exports.renderInline = renderInline;
8
+ var _reactNative = require("react-native");
9
+ var _sharedUi = require("@buoy-gg/shared-ui");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * Just enough Markdown for a chat answer.
13
+ *
14
+ * Models write `**bold**`, bullet lists and `code` whether or not the prompt
15
+ * asks for prose, and the asterisks rendered raw made every answer look like
16
+ * a broken template. This handles the subset a chat actually receives —
17
+ * paragraphs, `-`/`*`/`1.` lists, `#` headings (rendered bold, not huge),
18
+ * bold, italics and inline code — with no dependency and no HTML. Anything it
19
+ * does not understand falls through as plain text, never as a blank.
20
+ */
21
+
22
+ const isTableRow = l => /^\s*\|.*\|\s*$/.test(l);
23
+ const isTableRule = l => /^\s*\|?\s*:?-{2,}:?\s*(\|\s*:?-{2,}:?\s*)*\|?\s*$/.test(l);
24
+ const splitRow = l => l.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map(c => c.trim());
25
+ function parseBlocks(source) {
26
+ const blocks = [];
27
+ let para = [];
28
+ const flush = () => {
29
+ if (para.length) blocks.push({
30
+ kind: "p",
31
+ text: para.join(" ")
32
+ });
33
+ para = [];
34
+ };
35
+ const lines = source.split("\n");
36
+ for (let li = 0; li < lines.length; li++) {
37
+ const raw = lines[li];
38
+ const line = raw.replace(/\s+$/, "");
39
+ if (!line.trim()) {
40
+ flush();
41
+ continue;
42
+ }
43
+ // A pipe table: header row, a rule row, then body rows.
44
+ if (isTableRow(line) && lines[li + 1] && isTableRule(lines[li + 1])) {
45
+ flush();
46
+ const header = splitRow(line);
47
+ const rows = [];
48
+ let j = li + 2;
49
+ while (j < lines.length && isTableRow(lines[j])) {
50
+ rows.push(splitRow(lines[j]));
51
+ j++;
52
+ }
53
+ blocks.push({
54
+ kind: "table",
55
+ header,
56
+ rows
57
+ });
58
+ li = j - 1;
59
+ continue;
60
+ }
61
+ const heading = /^#{1,6}\s+(.*)$/.exec(line);
62
+ if (heading) {
63
+ flush();
64
+ blocks.push({
65
+ kind: "h",
66
+ text: heading[1]
67
+ });
68
+ continue;
69
+ }
70
+ const bullet = /^(\s*)([-*•]|\d+[.)])\s+(.*)$/.exec(line);
71
+ if (bullet) {
72
+ flush();
73
+ const depth = Math.min(2, Math.floor(bullet[1].length / 2));
74
+ const marker = /^\d/.test(bullet[2]) ? bullet[2].replace(")", ".") : "•";
75
+ blocks.push({
76
+ kind: "li",
77
+ text: bullet[3],
78
+ marker,
79
+ depth
80
+ });
81
+ continue;
82
+ }
83
+ para.push(line.trim());
84
+ }
85
+ flush();
86
+ return blocks;
87
+ }
88
+
89
+ /**
90
+ * `**bold**`, `*italic*` / `_italic_`, `` `code` `` → styled spans. Links and
91
+ * images collapse to their text: a phone chat has nowhere to open a URL, and
92
+ * `![Snorlax](https://raw.githubusercontent.com/…/143.png)` printed raw is
93
+ * three lines of noise for one word of meaning.
94
+ */
95
+ function renderInline(source, base) {
96
+ const text = source.replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1");
97
+ const out = [];
98
+ const re = /(\*\*[^*]+\*\*|`[^`]+`|\*[^*\s][^*]*\*|_[^_\s][^_]*_)/g;
99
+ let last = 0;
100
+ let m;
101
+ let i = 0;
102
+ while (m = re.exec(text)) {
103
+ if (m.index > last) out.push(text.slice(last, m.index));
104
+ const tok = m[0];
105
+ if (tok.startsWith("**")) {
106
+ out.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
107
+ style: [base, styles.bold],
108
+ children: tok.slice(2, -2)
109
+ }, i++));
110
+ } else if (tok.startsWith("`")) {
111
+ out.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
112
+ style: [base, styles.code],
113
+ children: tok.slice(1, -1)
114
+ }, i++));
115
+ } else {
116
+ out.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
117
+ style: [base, styles.italic],
118
+ children: tok.slice(1, -1)
119
+ }, i++));
120
+ }
121
+ last = m.index + tok.length;
122
+ }
123
+ if (last < text.length) out.push(text.slice(last));
124
+ return out;
125
+ }
126
+ function Markdown({
127
+ text,
128
+ style
129
+ }) {
130
+ const blocks = parseBlocks(text);
131
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
132
+ style: styles.wrap,
133
+ children: blocks.map((b, i) => {
134
+ if (b.kind === "table") {
135
+ const cols = b.header.slice(0, 4);
136
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
137
+ style: styles.table,
138
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
139
+ style: styles.tableHead,
140
+ children: cols.map((c, k) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
141
+ style: [styles.th, k === 0 && styles.firstCol],
142
+ numberOfLines: 1,
143
+ children: c.replace(/\*\*/g, "")
144
+ }, k))
145
+ }), b.rows.slice(0, 12).map((r, ri) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
146
+ style: [styles.tr, ri > 0 && styles.trDivider],
147
+ children: cols.map((_, k) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
148
+ style: [styles.td, k === 0 && styles.firstCol, k === 0 && styles.tdFirst],
149
+ numberOfLines: 2,
150
+ children: renderInline((r[k] ?? "").replace(/!?\[([^\]]*)\]\([^)]*\)/g, "$1"), styles.td)
151
+ }, k))
152
+ }, ri))]
153
+ }, i);
154
+ }
155
+ if (b.kind === "li") {
156
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
157
+ style: [styles.li, {
158
+ paddingLeft: 4 + b.depth * 14
159
+ }],
160
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
161
+ style: [style, styles.marker],
162
+ children: b.marker
163
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
164
+ style: [style, styles.liText],
165
+ selectable: true,
166
+ children: renderInline(b.text, style)
167
+ })]
168
+ }, i);
169
+ }
170
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
171
+ style: [style, b.kind === "h" && styles.bold],
172
+ selectable: true,
173
+ children: renderInline(b.text, style)
174
+ }, i);
175
+ })
176
+ });
177
+ }
178
+ const styles = _reactNative.StyleSheet.create({
179
+ wrap: {
180
+ gap: 8
181
+ },
182
+ bold: {
183
+ fontWeight: "600"
184
+ },
185
+ italic: {
186
+ fontStyle: "italic"
187
+ },
188
+ code: {
189
+ fontFamily: "Menlo",
190
+ fontSize: 13,
191
+ color: _sharedUi.night.color.accent,
192
+ backgroundColor: _sharedUi.night.color.fill
193
+ },
194
+ li: {
195
+ flexDirection: "row",
196
+ gap: 8
197
+ },
198
+ table: {
199
+ borderRadius: _sharedUi.night.radius.row,
200
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
201
+ borderColor: _sharedUi.night.color.border,
202
+ backgroundColor: _sharedUi.night.color.surface,
203
+ overflow: "hidden"
204
+ },
205
+ tableHead: {
206
+ flexDirection: "row",
207
+ paddingHorizontal: 10,
208
+ paddingVertical: 6,
209
+ gap: 8,
210
+ backgroundColor: _sharedUi.night.color.fill
211
+ },
212
+ th: {
213
+ flex: 1,
214
+ color: _sharedUi.night.color.textTertiary,
215
+ fontSize: _sharedUi.night.font.micro,
216
+ fontWeight: "700",
217
+ letterSpacing: 0.6,
218
+ textTransform: "uppercase"
219
+ },
220
+ tr: {
221
+ flexDirection: "row",
222
+ paddingHorizontal: 10,
223
+ paddingVertical: 7,
224
+ gap: 8
225
+ },
226
+ trDivider: {
227
+ borderTopWidth: _reactNative.StyleSheet.hairlineWidth,
228
+ borderTopColor: _sharedUi.night.color.separator
229
+ },
230
+ td: {
231
+ flex: 1,
232
+ color: _sharedUi.night.color.textSecondary,
233
+ fontSize: _sharedUi.night.font.caption,
234
+ lineHeight: 17
235
+ },
236
+ tdFirst: {
237
+ color: _sharedUi.night.color.text,
238
+ fontWeight: "500"
239
+ },
240
+ firstCol: {
241
+ flex: 1.3
242
+ },
243
+ marker: {
244
+ color: _sharedUi.night.color.textSecondary,
245
+ minWidth: 14,
246
+ textAlign: "right"
247
+ },
248
+ liText: {
249
+ flex: 1
250
+ }
251
+ });
252
+ //# sourceMappingURL=Markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_sharedUi","_jsxRuntime","isTableRow","l","test","isTableRule","splitRow","trim","replace","split","map","c","parseBlocks","source","blocks","para","flush","length","push","kind","text","join","lines","li","raw","line","header","rows","j","heading","exec","bullet","depth","Math","min","floor","marker","renderInline","base","out","re","last","m","i","index","slice","tok","startsWith","jsx","Text","style","styles","bold","children","code","italic","Markdown","View","wrap","b","cols","jsxs","table","tableHead","k","th","firstCol","numberOfLines","r","ri","tr","trDivider","_","td","tdFirst","paddingLeft","liText","selectable","StyleSheet","create","gap","fontWeight","fontStyle","fontFamily","fontSize","color","night","accent","backgroundColor","fill","flexDirection","borderRadius","radius","row","borderWidth","hairlineWidth","borderColor","border","surface","overflow","paddingHorizontal","paddingVertical","flex","textTertiary","font","micro","letterSpacing","textTransform","borderTopWidth","borderTopColor","separator","textSecondary","caption","lineHeight","minWidth","textAlign"],"sourceRoot":"../../../src","sources":["components/Markdown.tsx"],"mappings":"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","ignoreList":[]}