@buoy-gg/ask-buoy 7.0.35 → 7.0.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/README.md +35 -8
  2. package/lib/commonjs/blocks/BlockRenderer.js +13 -1
  3. package/lib/commonjs/blocks/BlockRenderer.js.map +1 -1
  4. package/lib/commonjs/blocks/DataBlocks.js +126 -33
  5. package/lib/commonjs/blocks/DataBlocks.js.map +1 -1
  6. package/lib/commonjs/blocks/ExtraBlocks.js +12 -6
  7. package/lib/commonjs/blocks/ExtraBlocks.js.map +1 -1
  8. package/lib/commonjs/blocks/MediaBlocks.js +22 -6
  9. package/lib/commonjs/blocks/MediaBlocks.js.map +1 -1
  10. package/lib/commonjs/blocks/blockText.js +60 -0
  11. package/lib/commonjs/blocks/blockText.js.map +1 -0
  12. package/lib/commonjs/blocks/blockText.test.js +53 -0
  13. package/lib/commonjs/blocks/blockText.test.js.map +1 -0
  14. package/lib/commonjs/blocks/primitives.js +58 -2
  15. package/lib/commonjs/blocks/primitives.js.map +1 -1
  16. package/lib/commonjs/components/ApprovalCard.js +111 -7
  17. package/lib/commonjs/components/ApprovalCard.js.map +1 -1
  18. package/lib/commonjs/components/AskBuoyHeader.js +36 -4
  19. package/lib/commonjs/components/AskBuoyHeader.js.map +1 -1
  20. package/lib/commonjs/components/AskBuoyModal.js +160 -34
  21. package/lib/commonjs/components/AskBuoyModal.js.map +1 -1
  22. package/lib/commonjs/components/AskBuoySettings.js +50 -0
  23. package/lib/commonjs/components/AskBuoySettings.js.map +1 -1
  24. package/lib/commonjs/components/Composer.js +94 -14
  25. package/lib/commonjs/components/Composer.js.map +1 -1
  26. package/lib/commonjs/components/EmptyState.js +12 -5
  27. package/lib/commonjs/components/EmptyState.js.map +1 -1
  28. package/lib/commonjs/components/KeyboardPad.js +80 -0
  29. package/lib/commonjs/components/KeyboardPad.js.map +1 -0
  30. package/lib/commonjs/components/Markdown.js +148 -90
  31. package/lib/commonjs/components/Markdown.js.map +1 -1
  32. package/lib/commonjs/components/MessageList.js +339 -92
  33. package/lib/commonjs/components/MessageList.js.map +1 -1
  34. package/lib/commonjs/components/QueuedMessages.js +145 -0
  35. package/lib/commonjs/components/QueuedMessages.js.map +1 -0
  36. package/lib/commonjs/components/markdownParse.js +131 -0
  37. package/lib/commonjs/components/markdownParse.js.map +1 -0
  38. package/lib/commonjs/components/markdownParse.test.js +99 -0
  39. package/lib/commonjs/components/markdownParse.test.js.map +1 -0
  40. package/lib/commonjs/store/activityGroups.js +110 -0
  41. package/lib/commonjs/store/activityGroups.js.map +1 -0
  42. package/lib/commonjs/store/activityGroups.test.js +78 -0
  43. package/lib/commonjs/store/activityGroups.test.js.map +1 -0
  44. package/lib/commonjs/store/askBuoySettings.js +7 -2
  45. package/lib/commonjs/store/askBuoySettings.js.map +1 -1
  46. package/lib/commonjs/store/askBuoyStore.js +192 -10
  47. package/lib/commonjs/store/askBuoyStore.js.map +1 -1
  48. package/lib/commonjs/store/blockPlacement.js +64 -0
  49. package/lib/commonjs/store/blockPlacement.js.map +1 -0
  50. package/lib/commonjs/store/blockPlacement.test.js +123 -0
  51. package/lib/commonjs/store/blockPlacement.test.js.map +1 -0
  52. package/lib/commonjs/store/queue.test.js +150 -0
  53. package/lib/commonjs/store/queue.test.js.map +1 -0
  54. package/lib/commonjs/store/resetConversation.js +77 -0
  55. package/lib/commonjs/store/resetConversation.js.map +1 -0
  56. package/lib/commonjs/store/restorePending.test.js +63 -0
  57. package/lib/commonjs/store/restorePending.test.js.map +1 -0
  58. package/lib/commonjs/store/suggestions.js +54 -0
  59. package/lib/commonjs/store/suggestions.js.map +1 -0
  60. package/lib/commonjs/store/suggestions.test.js +58 -0
  61. package/lib/commonjs/store/suggestions.test.js.map +1 -0
  62. package/lib/commonjs/store/systemLine.test.js +77 -0
  63. package/lib/commonjs/store/systemLine.test.js.map +1 -0
  64. package/lib/commonjs/store/ticketPrompt.js +17 -0
  65. package/lib/commonjs/store/ticketPrompt.js.map +1 -0
  66. package/lib/commonjs/store/transcriptPersistence.js +92 -3
  67. package/lib/commonjs/store/transcriptPersistence.js.map +1 -1
  68. package/lib/commonjs/store/transcriptPersistence.test.js +148 -0
  69. package/lib/commonjs/store/transcriptPersistence.test.js.map +1 -1
  70. package/lib/commonjs/store/turnRendering.test.js +151 -0
  71. package/lib/commonjs/store/turnRendering.test.js.map +1 -0
  72. package/lib/commonjs/store/useAskBuoy.js +271 -49
  73. package/lib/commonjs/store/useAskBuoy.js.map +1 -1
  74. package/lib/commonjs/sync/askBuoySyncAdapter.js +25 -4
  75. package/lib/commonjs/sync/askBuoySyncAdapter.js.map +1 -1
  76. package/lib/module/blocks/BlockRenderer.js +13 -1
  77. package/lib/module/blocks/BlockRenderer.js.map +1 -1
  78. package/lib/module/blocks/DataBlocks.js +128 -35
  79. package/lib/module/blocks/DataBlocks.js.map +1 -1
  80. package/lib/module/blocks/ExtraBlocks.js +12 -6
  81. package/lib/module/blocks/ExtraBlocks.js.map +1 -1
  82. package/lib/module/blocks/MediaBlocks.js +22 -6
  83. package/lib/module/blocks/MediaBlocks.js.map +1 -1
  84. package/lib/module/blocks/blockText.js +55 -0
  85. package/lib/module/blocks/blockText.js.map +1 -0
  86. package/lib/module/blocks/blockText.test.js +53 -0
  87. package/lib/module/blocks/blockText.test.js.map +1 -0
  88. package/lib/module/blocks/primitives.js +58 -2
  89. package/lib/module/blocks/primitives.js.map +1 -1
  90. package/lib/module/components/ApprovalCard.js +113 -9
  91. package/lib/module/components/ApprovalCard.js.map +1 -1
  92. package/lib/module/components/AskBuoyHeader.js +37 -5
  93. package/lib/module/components/AskBuoyHeader.js.map +1 -1
  94. package/lib/module/components/AskBuoyModal.js +163 -37
  95. package/lib/module/components/AskBuoyModal.js.map +1 -1
  96. package/lib/module/components/AskBuoySettings.js +52 -2
  97. package/lib/module/components/AskBuoySettings.js.map +1 -1
  98. package/lib/module/components/Composer.js +95 -15
  99. package/lib/module/components/Composer.js.map +1 -1
  100. package/lib/module/components/EmptyState.js +12 -5
  101. package/lib/module/components/EmptyState.js.map +1 -1
  102. package/lib/module/components/KeyboardPad.js +75 -0
  103. package/lib/module/components/KeyboardPad.js.map +1 -0
  104. package/lib/module/components/Markdown.js +149 -90
  105. package/lib/module/components/Markdown.js.map +1 -1
  106. package/lib/module/components/MessageList.js +341 -94
  107. package/lib/module/components/MessageList.js.map +1 -1
  108. package/lib/module/components/QueuedMessages.js +140 -0
  109. package/lib/module/components/QueuedMessages.js.map +1 -0
  110. package/lib/module/components/markdownParse.js +125 -0
  111. package/lib/module/components/markdownParse.js.map +1 -0
  112. package/lib/module/components/markdownParse.test.js +98 -0
  113. package/lib/module/components/markdownParse.test.js.map +1 -0
  114. package/lib/module/store/activityGroups.js +103 -0
  115. package/lib/module/store/activityGroups.js.map +1 -0
  116. package/lib/module/store/activityGroups.test.js +77 -0
  117. package/lib/module/store/activityGroups.test.js.map +1 -0
  118. package/lib/module/store/askBuoySettings.js +7 -2
  119. package/lib/module/store/askBuoySettings.js.map +1 -1
  120. package/lib/module/store/askBuoyStore.js +190 -10
  121. package/lib/module/store/askBuoyStore.js.map +1 -1
  122. package/lib/module/store/blockPlacement.js +59 -0
  123. package/lib/module/store/blockPlacement.js.map +1 -0
  124. package/lib/module/store/blockPlacement.test.js +122 -0
  125. package/lib/module/store/blockPlacement.test.js.map +1 -0
  126. package/lib/module/store/queue.test.js +149 -0
  127. package/lib/module/store/queue.test.js.map +1 -0
  128. package/lib/module/store/resetConversation.js +72 -0
  129. package/lib/module/store/resetConversation.js.map +1 -0
  130. package/lib/module/store/restorePending.test.js +62 -0
  131. package/lib/module/store/restorePending.test.js.map +1 -0
  132. package/lib/module/store/suggestions.js +49 -0
  133. package/lib/module/store/suggestions.js.map +1 -0
  134. package/lib/module/store/suggestions.test.js +57 -0
  135. package/lib/module/store/suggestions.test.js.map +1 -0
  136. package/lib/module/store/systemLine.test.js +76 -0
  137. package/lib/module/store/systemLine.test.js.map +1 -0
  138. package/lib/module/store/ticketPrompt.js +13 -0
  139. package/lib/module/store/ticketPrompt.js.map +1 -0
  140. package/lib/module/store/transcriptPersistence.js +92 -3
  141. package/lib/module/store/transcriptPersistence.js.map +1 -1
  142. package/lib/module/store/transcriptPersistence.test.js +148 -0
  143. package/lib/module/store/transcriptPersistence.test.js.map +1 -1
  144. package/lib/module/store/turnRendering.test.js +150 -0
  145. package/lib/module/store/turnRendering.test.js.map +1 -0
  146. package/lib/module/store/useAskBuoy.js +275 -53
  147. package/lib/module/store/useAskBuoy.js.map +1 -1
  148. package/lib/module/sync/askBuoySyncAdapter.js +25 -4
  149. package/lib/module/sync/askBuoySyncAdapter.js.map +1 -1
  150. package/lib/typescript/blocks/BlockRenderer.d.ts.map +1 -1
  151. package/lib/typescript/blocks/DataBlocks.d.ts +11 -0
  152. package/lib/typescript/blocks/DataBlocks.d.ts.map +1 -1
  153. package/lib/typescript/blocks/ExtraBlocks.d.ts +18 -2
  154. package/lib/typescript/blocks/ExtraBlocks.d.ts.map +1 -1
  155. package/lib/typescript/blocks/MediaBlocks.d.ts.map +1 -1
  156. package/lib/typescript/blocks/blockText.d.ts +14 -0
  157. package/lib/typescript/blocks/blockText.d.ts.map +1 -0
  158. package/lib/typescript/blocks/blockText.test.d.ts +2 -0
  159. package/lib/typescript/blocks/blockText.test.d.ts.map +1 -0
  160. package/lib/typescript/blocks/primitives.d.ts +16 -1
  161. package/lib/typescript/blocks/primitives.d.ts.map +1 -1
  162. package/lib/typescript/components/ApprovalCard.d.ts.map +1 -1
  163. package/lib/typescript/components/AskBuoyHeader.d.ts +31 -1
  164. package/lib/typescript/components/AskBuoyHeader.d.ts.map +1 -1
  165. package/lib/typescript/components/AskBuoyModal.d.ts.map +1 -1
  166. package/lib/typescript/components/AskBuoySettings.d.ts.map +1 -1
  167. package/lib/typescript/components/Composer.d.ts +16 -1
  168. package/lib/typescript/components/Composer.d.ts.map +1 -1
  169. package/lib/typescript/components/EmptyState.d.ts +5 -1
  170. package/lib/typescript/components/EmptyState.d.ts.map +1 -1
  171. package/lib/typescript/components/KeyboardPad.d.ts +33 -0
  172. package/lib/typescript/components/KeyboardPad.d.ts.map +1 -0
  173. package/lib/typescript/components/Markdown.d.ts +0 -10
  174. package/lib/typescript/components/Markdown.d.ts.map +1 -1
  175. package/lib/typescript/components/MessageList.d.ts +7 -2
  176. package/lib/typescript/components/MessageList.d.ts.map +1 -1
  177. package/lib/typescript/components/QueuedMessages.d.ts +10 -0
  178. package/lib/typescript/components/QueuedMessages.d.ts.map +1 -0
  179. package/lib/typescript/components/markdownParse.d.ts +49 -0
  180. package/lib/typescript/components/markdownParse.d.ts.map +1 -0
  181. package/lib/typescript/components/markdownParse.test.d.ts +2 -0
  182. package/lib/typescript/components/markdownParse.test.d.ts.map +1 -0
  183. package/lib/typescript/store/activityGroups.d.ts +29 -0
  184. package/lib/typescript/store/activityGroups.d.ts.map +1 -0
  185. package/lib/typescript/store/activityGroups.test.d.ts +2 -0
  186. package/lib/typescript/store/activityGroups.test.d.ts.map +1 -0
  187. package/lib/typescript/store/askBuoySettings.d.ts +22 -0
  188. package/lib/typescript/store/askBuoySettings.d.ts.map +1 -1
  189. package/lib/typescript/store/askBuoyStore.d.ts +142 -5
  190. package/lib/typescript/store/askBuoyStore.d.ts.map +1 -1
  191. package/lib/typescript/store/blockPlacement.d.ts +30 -0
  192. package/lib/typescript/store/blockPlacement.d.ts.map +1 -0
  193. package/lib/typescript/store/blockPlacement.test.d.ts +2 -0
  194. package/lib/typescript/store/blockPlacement.test.d.ts.map +1 -0
  195. package/lib/typescript/store/queue.test.d.ts +2 -0
  196. package/lib/typescript/store/queue.test.d.ts.map +1 -0
  197. package/lib/typescript/store/resetConversation.d.ts +38 -0
  198. package/lib/typescript/store/resetConversation.d.ts.map +1 -0
  199. package/lib/typescript/store/restorePending.test.d.ts +2 -0
  200. package/lib/typescript/store/restorePending.test.d.ts.map +1 -0
  201. package/lib/typescript/store/suggestions.d.ts +32 -0
  202. package/lib/typescript/store/suggestions.d.ts.map +1 -0
  203. package/lib/typescript/store/suggestions.test.d.ts +2 -0
  204. package/lib/typescript/store/suggestions.test.d.ts.map +1 -0
  205. package/lib/typescript/store/systemLine.test.d.ts +2 -0
  206. package/lib/typescript/store/systemLine.test.d.ts.map +1 -0
  207. package/lib/typescript/store/ticketPrompt.d.ts +11 -0
  208. package/lib/typescript/store/ticketPrompt.d.ts.map +1 -0
  209. package/lib/typescript/store/transcriptPersistence.d.ts +41 -2
  210. package/lib/typescript/store/transcriptPersistence.d.ts.map +1 -1
  211. package/lib/typescript/store/turnRendering.test.d.ts +2 -0
  212. package/lib/typescript/store/turnRendering.test.d.ts.map +1 -0
  213. package/lib/typescript/store/useAskBuoy.d.ts +23 -1
  214. package/lib/typescript/store/useAskBuoy.d.ts.map +1 -1
  215. package/lib/typescript/sync/askBuoySyncAdapter.d.ts +26 -6
  216. package/lib/typescript/sync/askBuoySyncAdapter.d.ts.map +1 -1
  217. package/package.json +9 -9
@@ -11,10 +11,13 @@
11
11
  * comments and pin their inputs to the TOP of the screen. A chat cannot.
12
12
  *
13
13
  * What makes it work:
14
- * - `KeyboardAvoidingView` with `behavior="padding"`, iOS only. On Android
15
- * Expo's default `softwareKeyboardLayoutMode: "resize"` shrinks the window
16
- * and a bottom-anchored view rides up for free; adding padding there would
17
- * lift it twice.
14
+ * - `KeyboardPad` (see that file), iOS only. `KeyboardAvoidingView` looked
15
+ * right here and did nothing: it measures its frame relative to its PARENT
16
+ * and compares that with the keyboard's SCREEN position, which never
17
+ * overlap inside a bottom-anchored sheet. On Android Expo's default
18
+ * `softwareKeyboardLayoutMode: "resize"` shrinks the window and a
19
+ * bottom-anchored view rides up for free; adding padding there would lift
20
+ * it twice.
18
21
  * - The parent list carries `keyboardShouldPersistTaps="handled"`. Without it
19
22
  * the first tap after typing only dismisses the keyboard and Send never
20
23
  * fires — a real shipped bug in Time Machine, and invisible to Detox because
@@ -27,18 +30,43 @@
27
30
  * square, the universal glyph — rather than a spinner in a circle, which
28
31
  * looked like a disabled control and gave no hint it was tappable.
29
32
  */
30
- import { useCallback, useState } from "react";
33
+ import { useCallback, useEffect, useRef, useState } from "react";
31
34
  import { Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
32
35
  import { night } from "@buoy-gg/shared-ui";
33
36
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
37
+ /**
38
+ * One line of input, and the height of the send/stop button beside it — the
39
+ * row only reads as level while those two agree.
40
+ */
41
+ const MIN_INPUT_HEIGHT = 40;
42
+ /** ~5 lines, then it scrolls instead of eating the transcript. */
43
+ const MAX_INPUT_HEIGHT = 120;
44
+ const INPUT_PAD_V = Platform.OS === "ios" ? 10 : 6;
45
+ const INPUT_PAD_H = 16;
34
46
  export function Composer({
35
47
  onSend,
36
48
  onStop,
37
49
  busy,
50
+ draft,
51
+ onDraftTaken,
38
52
  disabled,
39
- placeholder
53
+ placeholder,
54
+ focusKey,
55
+ canFocus = true
40
56
  }) {
41
57
  const [text, setText] = useState("");
58
+ const inputRef = useRef(null);
59
+ useEffect(() => {
60
+ if (!focusKey || !canFocus || disabled) return;
61
+ inputRef.current?.focus();
62
+ }, [focusKey, canFocus, disabled]);
63
+ useEffect(() => {
64
+ if (!draft) return;
65
+ // Appended, not assigned: they may have started typing something else in
66
+ // the moment between pressing Stop and this landing.
67
+ setText(current => current ? `${current} ${draft}` : draft);
68
+ onDraftTaken?.();
69
+ }, [draft, onDraftTaken]);
42
70
  const submit = useCallback(() => {
43
71
  const value = text.trim();
44
72
  if (!value) return;
@@ -46,13 +74,37 @@ export function Composer({
46
74
  onSend(value);
47
75
  }, [text, onSend]);
48
76
  const canSend = text.trim().length > 0 && !busy && !disabled;
77
+ /**
78
+ * Typed something while a turn is running.
79
+ *
80
+ * `send` parks it and flushes it when the turn ends — but the only button on
81
+ * screen while busy was Stop, so the sole way to reach that was the
82
+ * keyboard's return key, and the "Queued" placeholder that explains it only
83
+ * appears AFTER you have managed it. The button is the affordance.
84
+ */
85
+ const canQueue = text.trim().length > 0 && busy && !disabled;
49
86
  return /*#__PURE__*/_jsxs(View, {
50
87
  style: styles.wrap,
51
88
  children: [/*#__PURE__*/_jsx(View, {
52
89
  style: [styles.field, disabled && styles.fieldDisabled],
53
90
  children: /*#__PURE__*/_jsx(TextInput, {
54
- testID: "buoy-ask-buoy-input",
55
- style: styles.input,
91
+ ref: inputRef,
92
+ testID: "buoy-ask-buoy-input"
93
+ /*
94
+ * Empty means one line, always.
95
+ *
96
+ * The box is otherwise auto-height, and an iOS multiline TextInput
97
+ * grows with the text but never shrinks back: sending a two-line
98
+ * message cleared the text and left a two-line box standing over
99
+ * the 40pt round button beside it. Nothing on the native side
100
+ * reports the shrink either — on Fabric `onContentSizeChange` is
101
+ * emitted from `updateLayoutMetrics` (a LAYOUT change), not from a
102
+ * text change — so the height it last grew to is the height it
103
+ * keeps. Pinning the empty case is the whole fix: it is the only
104
+ * state that has to line up with the button, and it is exactly the
105
+ * state a send or a new conversation lands in.
106
+ */,
107
+ style: [styles.input, text.length === 0 && styles.inputEmpty],
56
108
  value: text,
57
109
  onChangeText: setText,
58
110
  placeholder: placeholder ?? (disabled ? "Ask Buoy isn't set up yet" : "Ask, or tell it what to change…"),
@@ -72,6 +124,20 @@ export function Composer({
72
124
  returnKeyType: "send",
73
125
  maxLength: 4000
74
126
  })
127
+ }), canQueue && /*#__PURE__*/_jsx(Pressable, {
128
+ testID: "buoy-ask-buoy-queue",
129
+ accessibilityRole: "button",
130
+ accessibilityLabel: "Queue message",
131
+ onPress: submit,
132
+ style: ({
133
+ pressed
134
+ }) => [styles.button, styles.queue, pressed && styles.pressed],
135
+ children: /*#__PURE__*/_jsx(Text, {
136
+ style: [styles.sendGlyph, {
137
+ color: night.color.accent
138
+ }],
139
+ children: "\u2191"
140
+ })
75
141
  }), busy ? /*#__PURE__*/_jsx(Pressable, {
76
142
  testID: "buoy-ask-buoy-stop",
77
143
  accessibilityRole: "button",
@@ -117,7 +183,7 @@ const styles = StyleSheet.create({
117
183
  },
118
184
  field: {
119
185
  flex: 1,
120
- minHeight: 40,
186
+ minHeight: MIN_INPUT_HEIGHT,
121
187
  justifyContent: "center",
122
188
  borderRadius: 20,
123
189
  borderWidth: StyleSheet.hairlineWidth,
@@ -128,13 +194,20 @@ const styles = StyleSheet.create({
128
194
  opacity: 0.6
129
195
  },
130
196
  input: {
131
- maxHeight: 120,
132
- paddingHorizontal: 16,
133
- paddingTop: Platform.OS === "ios" ? 10 : 6,
134
- paddingBottom: Platform.OS === "ios" ? 10 : 6,
197
+ maxHeight: MAX_INPUT_HEIGHT,
198
+ paddingHorizontal: INPUT_PAD_H,
199
+ paddingTop: INPUT_PAD_V,
200
+ paddingBottom: INPUT_PAD_V,
135
201
  color: night.color.text,
136
- fontSize: night.font.row,
137
- lineHeight: 20
202
+ fontSize: night.font.row
203
+ // No `lineHeight` here on purpose. A multiline TextInput on iOS lays out
204
+ // with the paragraph line height AND the font's own leading, so setting
205
+ // it made a one-line box measure ~56pt instead of 40 — the pill towered
206
+ // over the 40pt send/stop button beside it and the row read as crooked.
207
+ },
208
+ // Exactly the button's height, so the two read as one level row.
209
+ inputEmpty: {
210
+ height: MIN_INPUT_HEIGHT
138
211
  },
139
212
  button: {
140
213
  width: 40,
@@ -157,6 +230,13 @@ const styles = StyleSheet.create({
157
230
  stop: {
158
231
  backgroundColor: night.color.fillTertiary
159
232
  },
233
+ // Outlined rather than filled: it sits beside Stop, and two solid buttons
234
+ // read as one control with two halves.
235
+ queue: {
236
+ backgroundColor: "transparent",
237
+ borderWidth: StyleSheet.hairlineWidth,
238
+ borderColor: night.color.accentBorderStrong
239
+ },
160
240
  stopGlyph: {
161
241
  width: 12,
162
242
  height: 12,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","Platform","Pressable","StyleSheet","Text","TextInput","View","night","jsx","_jsx","jsxs","_jsxs","Composer","onSend","onStop","busy","disabled","placeholder","text","setText","submit","value","trim","canSend","length","style","styles","wrap","children","field","fieldDisabled","testID","input","onChangeText","placeholderTextColor","color","multiline","editable","keyboardType","autoCorrect","autoCapitalize","blurOnSubmit","onSubmitEditing","returnKeyType","maxLength","accessibilityRole","accessibilityLabel","onPress","pressed","button","stop","stopGlyph","sendOn","sendOff","sendGlyph","onAccent","textTertiary","create","flexDirection","alignItems","gap","paddingHorizontal","gutter","paddingTop","paddingBottom","borderTopWidth","hairlineWidth","borderTopColor","border","backgroundColor","bg","flex","minHeight","justifyContent","borderRadius","borderWidth","borderColor","surfaceElevated","opacity","maxHeight","OS","fontSize","font","row","lineHeight","width","height","fontWeight","accent","fill","fillTertiary"],"sourceRoot":"../../../src","sources":["components/Composer.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC7C,SACEC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,QACC,cAAc;AACrB,SAASC,KAAK,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAU3C,OAAO,SAASC,QAAQA,CAAC;EACvBC,MAAM;EACNC,MAAM;EACNC,IAAI;EACJC,QAAQ;EACRC;AACa,CAAC,EAAE;EAChB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGnB,QAAQ,CAAC,EAAE,CAAC;EAEpC,MAAMoB,MAAM,GAAGrB,WAAW,CAAC,MAAM;IAC/B,MAAMsB,KAAK,GAAGH,IAAI,CAACI,IAAI,CAAC,CAAC;IACzB,IAAI,CAACD,KAAK,EAAE;IACZF,OAAO,CAAC,EAAE,CAAC;IACXN,MAAM,CAACQ,KAAK,CAAC;EACf,CAAC,EAAE,CAACH,IAAI,EAAEL,MAAM,CAAC,CAAC;EAElB,MAAMU,OAAO,GAAGL,IAAI,CAACI,IAAI,CAAC,CAAC,CAACE,MAAM,GAAG,CAAC,IAAI,CAACT,IAAI,IAAI,CAACC,QAAQ;EAE5D,oBACEL,KAAA,CAACL,IAAI;IAACmB,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,gBACvBnB,IAAA,CAACH,IAAI;MAACmB,KAAK,EAAE,CAACC,MAAM,CAACG,KAAK,EAAEb,QAAQ,IAAIU,MAAM,CAACI,aAAa,CAAE;MAAAF,QAAA,eAC5DnB,IAAA,CAACJ,SAAS;QACR0B,MAAM,EAAC,qBAAqB;QAC5BN,KAAK,EAAEC,MAAM,CAACM,KAAM;QACpBX,KAAK,EAAEH,IAAK;QACZe,YAAY,EAAEd,OAAQ;QACtBF,WAAW,EACTA,WAAW,KACVD,QAAQ,GAAG,2BAA2B,GAAG,iCAAiC,CAC5E;QACDkB,oBAAoB,EAAE3B,KAAK,CAAC4B,KAAK,CAAClB,WAAY;QAC9CmB,SAAS;QACTC,QAAQ,EAAE,CAACrB;QACX;QAAA;QACAsB,YAAY,EAAC,eAAe;QAC5BC,WAAW;QACXC,cAAc,EAAC;QACf;QACA;QAAA;QACAC,YAAY,EAAE,KAAM;QACpBC,eAAe,EAAEtB,MAAO;QACxBuB,aAAa,EAAC,MAAM;QACpBC,SAAS,EAAE;MAAK,CACjB;IAAC,CACE,CAAC,EACN7B,IAAI,gBACHN,IAAA,CAACP,SAAS;MACR6B,MAAM,EAAC,oBAAoB;MAC3Bc,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAC,MAAM;MACzBC,OAAO,EAAEjC,MAAO;MAChBW,KAAK,EAAEA,CAAC;QAAEuB;MAAQ,CAAC,KAAK,CAACtB,MAAM,CAACuB,MAAM,EAAEvB,MAAM,CAACwB,IAAI,EAAEF,OAAO,IAAItB,MAAM,CAACsB,OAAO,CAAE;MAAApB,QAAA,eAEhFnB,IAAA,CAACH,IAAI;QAACmB,KAAK,EAAEC,MAAM,CAACyB;MAAU,CAAE;IAAC,CACxB,CAAC,gBAEZ1C,IAAA,CAACP,SAAS;MACR6B,MAAM,EAAC,oBAAoB;MAC3Bc,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAC,MAAM;MACzB9B,QAAQ,EAAE,CAACO,OAAQ;MACnBwB,OAAO,EAAE3B,MAAO;MAChBK,KAAK,EAAEA,CAAC;QAAEuB;MAAQ,CAAC,KAAK,CACtBtB,MAAM,CAACuB,MAAM,EACb1B,OAAO,GAAGG,MAAM,CAAC0B,MAAM,GAAG1B,MAAM,CAAC2B,OAAO,EACxCL,OAAO,IAAIzB,OAAO,IAAIG,MAAM,CAACsB,OAAO,CACpC;MAAApB,QAAA,eAMFnB,IAAA,CAACL,IAAI;QACHqB,KAAK,EAAE,CACLC,MAAM,CAAC4B,SAAS,EAChB;UAAEnB,KAAK,EAAEZ,OAAO,GAAGhB,KAAK,CAAC4B,KAAK,CAACoB,QAAQ,GAAGhD,KAAK,CAAC4B,KAAK,CAACqB;QAAa,CAAC,CACpE;QAAA5B,QAAA,EACH;MAED,CAAM;IAAC,CACE,CACZ;EAAA,CACG,CAAC;AAEX;AAEA,MAAMF,MAAM,GAAGvB,UAAU,CAACsD,MAAM,CAAC;EAC/B9B,IAAI,EAAE;IACJ+B,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,UAAU;IACtBC,GAAG,EAAE,CAAC;IACNC,iBAAiB,EAAEtD,KAAK,CAACuD,MAAM;IAC/BC,UAAU,EAAE,EAAE;IACdC,aAAa,EAAE,CAAC;IAChBC,cAAc,EAAE9D,UAAU,CAAC+D,aAAa;IACxCC,cAAc,EAAE5D,KAAK,CAAC4B,KAAK,CAACiC,MAAM;IAClC;IACA;IACAC,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAACmC;EAC/B,CAAC;EACDzC,KAAK,EAAE;IACL0C,IAAI,EAAE,CAAC;IACPC,SAAS,EAAE,EAAE;IACbC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAExE,UAAU,CAAC+D,aAAa;IACrCU,WAAW,EAAErE,KAAK,CAAC4B,KAAK,CAACiC,MAAM;IAC/BC,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAAC0C;EAC/B,CAAC;EACD/C,aAAa,EAAE;IAAEgD,OAAO,EAAE;EAAI,CAAC;EAC/B9C,KAAK,EAAE;IACL+C,SAAS,EAAE,GAAG;IACdlB,iBAAiB,EAAE,EAAE;IACrBE,UAAU,EAAE9D,QAAQ,CAAC+E,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;IAC1ChB,aAAa,EAAE/D,QAAQ,CAAC+E,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC;IAC7C7C,KAAK,EAAE5B,KAAK,CAAC4B,KAAK,CAACjB,IAAI;IACvB+D,QAAQ,EAAE1E,KAAK,CAAC2E,IAAI,CAACC,GAAG;IACxBC,UAAU,EAAE;EACd,CAAC;EACDnC,MAAM,EAAE;IACNoC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVZ,YAAY,EAAE,EAAE;IAChBf,UAAU,EAAE,QAAQ;IACpBc,cAAc,EAAE;EAClB,CAAC;EACDnB,SAAS,EAAE;IAAE2B,QAAQ,EAAE,EAAE;IAAEM,UAAU,EAAE,KAAK;IAAEH,UAAU,EAAE;EAAG,CAAC;EAC9DhC,MAAM,EAAE;IAAEiB,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAACqD;EAAO,CAAC;EAC/CnC,OAAO,EAAE;IAAEgB,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAACsD;EAAK,CAAC;EAC9CvC,IAAI,EAAE;IAAEmB,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAACuD;EAAa,CAAC;EACnDvC,SAAS,EAAE;IACTkC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVZ,YAAY,EAAE,CAAC;IACfL,eAAe,EAAE9D,KAAK,CAAC4B,KAAK,CAACjB;EAC/B,CAAC;EACD8B,OAAO,EAAE;IAAE8B,OAAO,EAAE;EAAI;AAC1B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Platform","Pressable","StyleSheet","Text","TextInput","View","night","jsx","_jsx","jsxs","_jsxs","MIN_INPUT_HEIGHT","MAX_INPUT_HEIGHT","INPUT_PAD_V","OS","INPUT_PAD_H","Composer","onSend","onStop","busy","draft","onDraftTaken","disabled","placeholder","focusKey","canFocus","text","setText","inputRef","current","focus","submit","value","trim","canSend","length","canQueue","style","styles","wrap","children","field","fieldDisabled","ref","testID","input","inputEmpty","onChangeText","placeholderTextColor","color","multiline","editable","keyboardType","autoCorrect","autoCapitalize","blurOnSubmit","onSubmitEditing","returnKeyType","maxLength","accessibilityRole","accessibilityLabel","onPress","pressed","button","queue","sendGlyph","accent","stop","stopGlyph","sendOn","sendOff","onAccent","textTertiary","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":[]}
@@ -11,13 +11,20 @@
11
11
  */
12
12
  import { Pressable, StyleSheet, Text, View } from "react-native";
13
13
  import { ChevronRight, night, NightSectionLabel } from "@buoy-gg/shared-ui";
14
+ import { pickSuggestions } from "../store/suggestions";
14
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
16
  const isRelease = typeof __DEV__ !== "undefined" && !__DEV__;
16
- 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"];
17
17
  export function EmptyState({
18
18
  configured,
19
- onPick
19
+ onPick,
20
+ availableToolIds = [],
21
+ readOnly = false
20
22
  }) {
23
+ const suggestions = pickSuggestions({
24
+ availableToolIds,
25
+ readOnly,
26
+ isRelease
27
+ });
21
28
  if (!configured) {
22
29
  return /*#__PURE__*/_jsxs(View, {
23
30
  style: styles.wrap,
@@ -45,7 +52,7 @@ export function EmptyState({
45
52
  children: "Ask about this app"
46
53
  }), /*#__PURE__*/_jsx(Text, {
47
54
  style: styles.body,
48
- 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."
55
+ 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, with what can be undone."
49
56
  }), /*#__PURE__*/_jsx(Text, {
50
57
  style: styles.buildLine,
51
58
  testID: "buoy-ask-buoy-build-line",
@@ -56,10 +63,10 @@ export function EmptyState({
56
63
  children: "Try asking"
57
64
  }), /*#__PURE__*/_jsx(View, {
58
65
  style: styles.card,
59
- children: SUGGESTIONS.map((s, i) => /*#__PURE__*/_jsx(Suggestion, {
66
+ children: suggestions.map((s, i) => /*#__PURE__*/_jsx(Suggestion, {
60
67
  text: s,
61
68
  onPick: onPick,
62
- last: i === SUGGESTIONS.length - 1
69
+ last: i === suggestions.length - 1
63
70
  }, s))
64
71
  })]
65
72
  })]
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","StyleSheet","Text","View","ChevronRight","night","NightSectionLabel","jsx","_jsx","jsxs","_jsxs","isRelease","__DEV__","SUGGESTIONS","EmptyState","configured","onPick","style","styles","wrap","testID","children","title","body","code","buildLine","group","card","map","s","i","Suggestion","text","last","length","slice","accessibilityRole","onPress","pressed","row","rowDivider","rowText","size","color","textTertiary","create","flex","justifyContent","paddingHorizontal","gutter","paddingVertical","gap","fontSize","fontWeight","letterSpacing","textSecondary","font","lineHeight","fontFamily","marginTop","micro","groupGap","borderRadius","radius","borderWidth","hairlineWidth","borderColor","border","backgroundColor","surface","overflow","flexDirection","alignItems","rowPadH","borderBottomWidth","borderBottomColor","separator","fill"],"sourceRoot":"../../../src","sources":["components/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","StyleSheet","Text","View","ChevronRight","night","NightSectionLabel","pickSuggestions","jsx","_jsx","jsxs","_jsxs","isRelease","__DEV__","EmptyState","configured","onPick","availableToolIds","readOnly","suggestions","style","styles","wrap","testID","children","title","body","code","buildLine","group","card","map","s","i","Suggestion","text","last","length","slice","accessibilityRole","onPress","pressed","row","rowDivider","rowText","size","color","textTertiary","create","flex","justifyContent","paddingHorizontal","gutter","paddingVertical","gap","fontSize","fontWeight","letterSpacing","textSecondary","font","lineHeight","fontFamily","marginTop","micro","groupGap","borderRadius","radius","borderWidth","hairlineWidth","borderColor","border","backgroundColor","surface","overflow","flexDirection","alignItems","rowPadH","borderBottomWidth","borderBottomColor","separator","fill"],"sourceRoot":"../../../src","sources":["components/EmptyState.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Keeps the composer above the iOS keyboard.
5
+ *
6
+ * Why not `KeyboardAvoidingView`: it takes its frame from `onLayout`, which
7
+ * is RELATIVE TO ITS PARENT, and compares that to the keyboard's SCREEN
8
+ * position. That only agrees when the view starts at the window's origin.
9
+ * Ask Buoy is a JsModal — an absolutely positioned sheet anchored to the
10
+ * bottom of the app tree — so the view's local bottom (a few hundred points
11
+ * into the sheet) sits well above the keyboard's screen Y, the overlap comes
12
+ * out as zero, and nothing moves. The keyboard drew over the composer with
13
+ * a "working" `KeyboardAvoidingView` around it.
14
+ *
15
+ * This measures the SAME thing in the SAME coordinate space: the wrapper's
16
+ * bottom edge in window coordinates via `measureInWindow`, against the
17
+ * keyboard's `endCoordinates.screenY`. The difference is the overlap, and it
18
+ * becomes bottom padding animated over the keyboard's own duration so the
19
+ * composer rides the keyboard instead of jumping after it.
20
+ *
21
+ * The wrapper is `flex: 1` inside a fixed-height sheet body, so its OUTER
22
+ * bounds never change when its padding does — re-measuring on a later
23
+ * frame-change event (a predictive-text bar appearing, an emoji keyboard)
24
+ * gives the same bottom edge.
25
+ *
26
+ * iOS only. Android's window resizes under the keyboard
27
+ * (`softwareKeyboardLayoutMode: "resize"`, both the Expo and the RN CLI
28
+ * template default) and a bottom-anchored sheet rides up for free; padding
29
+ * there would lift it twice. Web has no keyboard events and no keyboard.
30
+ */
31
+ import { useEffect, useRef } from "react";
32
+ import { Animated, Easing, Keyboard, Platform, StyleSheet } from "react-native";
33
+ import { jsx as _jsx } from "react/jsx-runtime";
34
+ export function KeyboardPad({
35
+ children
36
+ }) {
37
+ const ref = useRef(null);
38
+ const pad = useRef(new Animated.Value(0)).current;
39
+ useEffect(() => {
40
+ if (Platform.OS !== "ios") return;
41
+ const animateTo = (value, event) => {
42
+ Animated.timing(pad, {
43
+ toValue: value,
44
+ duration: event.duration || 250,
45
+ // iOS's keyboard curve; `keyboard` is the matching Easing preset.
46
+ easing: Easing.bezier(0.17, 0.59, 0.4, 0.77),
47
+ useNativeDriver: false
48
+ }).start();
49
+ };
50
+ const onChange = event => {
51
+ const node = ref.current;
52
+ if (!node) return;
53
+ node.measureInWindow((_x, y, _w, h) => {
54
+ const overlap = y + h - event.endCoordinates.screenY;
55
+ animateTo(Math.max(0, overlap), event);
56
+ });
57
+ };
58
+ const onHide = event => animateTo(0, event);
59
+ const subs = [Keyboard.addListener("keyboardWillChangeFrame", onChange), Keyboard.addListener("keyboardWillHide", onHide)];
60
+ return () => subs.forEach(s => s.remove());
61
+ }, [pad]);
62
+ return /*#__PURE__*/_jsx(Animated.View, {
63
+ ref: ref,
64
+ style: [styles.flex, {
65
+ paddingBottom: pad
66
+ }],
67
+ children: children
68
+ });
69
+ }
70
+ const styles = StyleSheet.create({
71
+ flex: {
72
+ flex: 1
73
+ }
74
+ });
75
+ //# sourceMappingURL=KeyboardPad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","Keyboard","Platform","StyleSheet","jsx","_jsx","KeyboardPad","children","ref","pad","Value","current","OS","animateTo","value","event","timing","toValue","duration","easing","bezier","useNativeDriver","start","onChange","node","measureInWindow","_x","y","_w","h","overlap","endCoordinates","screenY","Math","max","onHide","subs","addListener","forEach","s","remove","View","style","styles","flex","paddingBottom","create"],"sourceRoot":"../../../src","sources":["components/KeyboardPad.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAwB,OAAO;AACzD,SAASC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,QAAkC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1G,OAAO,SAASC,WAAWA,CAAC;EAAEC;AAAkC,CAAC,EAAE;EACjE,MAAMC,GAAG,GAAGV,MAAM,CAAO,IAAI,CAAC;EAC9B,MAAMW,GAAG,GAAGX,MAAM,CAAC,IAAIC,QAAQ,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEjDd,SAAS,CAAC,MAAM;IACd,IAAIK,QAAQ,CAACU,EAAE,KAAK,KAAK,EAAE;IAE3B,MAAMC,SAAS,GAAGA,CAACC,KAAa,EAAEC,KAAoB,KAAK;MACzDhB,QAAQ,CAACiB,MAAM,CAACP,GAAG,EAAE;QACnBQ,OAAO,EAAEH,KAAK;QACdI,QAAQ,EAAEH,KAAK,CAACG,QAAQ,IAAI,GAAG;QAC/B;QACAC,MAAM,EAAEnB,MAAM,CAACoB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;QAC5CC,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IACZ,CAAC;IAED,MAAMC,QAAQ,GAAIR,KAAoB,IAAK;MACzC,MAAMS,IAAI,GAAGhB,GAAG,CAACG,OAAO;MACxB,IAAI,CAACa,IAAI,EAAE;MACXA,IAAI,CAACC,eAAe,CAAC,CAACC,EAAE,EAAEC,CAAC,EAAEC,EAAE,EAAEC,CAAC,KAAK;QACrC,MAAMC,OAAO,GAAGH,CAAC,GAAGE,CAAC,GAAGd,KAAK,CAACgB,cAAc,CAACC,OAAO;QACpDnB,SAAS,CAACoB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,OAAO,CAAC,EAAEf,KAAK,CAAC;MACxC,CAAC,CAAC;IACJ,CAAC;IACD,MAAMoB,MAAM,GAAIpB,KAAoB,IAAKF,SAAS,CAAC,CAAC,EAAEE,KAAK,CAAC;IAE5D,MAAMqB,IAAI,GAAG,CACXnC,QAAQ,CAACoC,WAAW,CAAC,yBAAyB,EAAEd,QAAQ,CAAC,EACzDtB,QAAQ,CAACoC,WAAW,CAAC,kBAAkB,EAAEF,MAAM,CAAC,CACjD;IACD,OAAO,MAAMC,IAAI,CAACE,OAAO,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC;EAC9C,CAAC,EAAE,CAAC/B,GAAG,CAAC,CAAC;EAET,oBACEJ,IAAA,CAACN,QAAQ,CAAC0C,IAAI;IAACjC,GAAG,EAAEA,GAAI;IAACkC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;MAAEC,aAAa,EAAEpC;IAAI,CAAC,CAAE;IAAAF,QAAA,EACnEA;EAAQ,CACI,CAAC;AAEpB;AAEA,MAAMoC,MAAM,GAAGxC,UAAU,CAAC2C,MAAM,CAAC;EAAEF,IAAI,EAAE;IAAEA,IAAI,EAAE;EAAE;AAAE,CAAC,CAAC","ignoreList":[]}