@buoy-gg/react-query 7.0.26 → 7.0.27

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 (61) hide show
  1. package/lib/commonjs/react-query/components/DataEditorMode.js +17 -16
  2. package/lib/commonjs/react-query/components/FilterStatusBadge.js +1 -1
  3. package/lib/commonjs/react-query/components/MutationBrowserMode.js +4 -3
  4. package/lib/commonjs/react-query/components/MutationEditorMode.js +51 -34
  5. package/lib/commonjs/react-query/components/QueryBrowserMode.js +4 -3
  6. package/lib/commonjs/react-query/components/modals/DataEditorModal.js +10 -1
  7. package/lib/commonjs/react-query/components/modals/MutationBrowserFooter.js +4 -2
  8. package/lib/commonjs/react-query/components/modals/MutationBrowserModal.js +10 -1
  9. package/lib/commonjs/react-query/components/modals/MutationEditorModal.js +17 -1
  10. package/lib/commonjs/react-query/components/modals/QueryBrowserFooter.js +4 -2
  11. package/lib/commonjs/react-query/components/modals/QueryBrowserModal.js +12 -2
  12. package/lib/commonjs/react-query/components/modals/ReactQueryModalHeader.js +10 -10
  13. package/lib/commonjs/react-query/components/modals/SwipeIndicator.js +4 -4
  14. package/lib/commonjs/react-query/components/query-browser/ActionButton.js +21 -21
  15. package/lib/commonjs/react-query/components/query-browser/ClearCacheButton.js +5 -5
  16. package/lib/commonjs/react-query/components/query-browser/Explorer.js +69 -69
  17. package/lib/commonjs/react-query/components/query-browser/MutationButton.js +7 -7
  18. package/lib/commonjs/react-query/components/query-browser/MutationDetails.js +12 -12
  19. package/lib/commonjs/react-query/components/query-browser/MutationInformation.js +7 -6
  20. package/lib/commonjs/react-query/components/query-browser/MutationsList.js +15 -11
  21. package/lib/commonjs/react-query/components/query-browser/QueryActions.js +1 -1
  22. package/lib/commonjs/react-query/components/query-browser/QueryBrowser.js +5 -4
  23. package/lib/commonjs/react-query/components/query-browser/QueryDetails.js +12 -12
  24. package/lib/commonjs/react-query/components/query-browser/QueryInformation.js +5 -4
  25. package/lib/commonjs/react-query/components/query-browser/QueryStatus.js +22 -16
  26. package/lib/module/react-query/components/DataEditorMode.js +18 -17
  27. package/lib/module/react-query/components/FilterStatusBadge.js +2 -2
  28. package/lib/module/react-query/components/MutationBrowserMode.js +4 -3
  29. package/lib/module/react-query/components/MutationEditorMode.js +51 -35
  30. package/lib/module/react-query/components/QueryBrowserMode.js +4 -3
  31. package/lib/module/react-query/components/modals/DataEditorModal.js +11 -2
  32. package/lib/module/react-query/components/modals/MutationBrowserFooter.js +5 -3
  33. package/lib/module/react-query/components/modals/MutationBrowserModal.js +11 -2
  34. package/lib/module/react-query/components/modals/MutationEditorModal.js +19 -3
  35. package/lib/module/react-query/components/modals/QueryBrowserFooter.js +5 -3
  36. package/lib/module/react-query/components/modals/QueryBrowserModal.js +14 -4
  37. package/lib/module/react-query/components/modals/ReactQueryModalHeader.js +11 -11
  38. package/lib/module/react-query/components/modals/SwipeIndicator.js +5 -5
  39. package/lib/module/react-query/components/query-browser/ActionButton.js +22 -22
  40. package/lib/module/react-query/components/query-browser/ClearCacheButton.js +6 -6
  41. package/lib/module/react-query/components/query-browser/Explorer.js +70 -70
  42. package/lib/module/react-query/components/query-browser/MutationButton.js +8 -8
  43. package/lib/module/react-query/components/query-browser/MutationDetails.js +13 -13
  44. package/lib/module/react-query/components/query-browser/MutationInformation.js +8 -7
  45. package/lib/module/react-query/components/query-browser/MutationsList.js +16 -12
  46. package/lib/module/react-query/components/query-browser/QueryActions.js +2 -2
  47. package/lib/module/react-query/components/query-browser/QueryBrowser.js +6 -5
  48. package/lib/module/react-query/components/query-browser/QueryDetails.js +13 -13
  49. package/lib/module/react-query/components/query-browser/QueryInformation.js +6 -5
  50. package/lib/module/react-query/components/query-browser/QueryStatus.js +23 -17
  51. package/lib/typescript/react-query/components/MutationBrowserMode.d.ts.map +1 -1
  52. package/lib/typescript/react-query/components/MutationEditorMode.d.ts +12 -1
  53. package/lib/typescript/react-query/components/MutationEditorMode.d.ts.map +1 -1
  54. package/lib/typescript/react-query/components/QueryBrowserMode.d.ts.map +1 -1
  55. package/lib/typescript/react-query/components/modals/DataEditorModal.d.ts.map +1 -1
  56. package/lib/typescript/react-query/components/modals/MutationBrowserFooter.d.ts.map +1 -1
  57. package/lib/typescript/react-query/components/modals/MutationBrowserModal.d.ts.map +1 -1
  58. package/lib/typescript/react-query/components/modals/MutationEditorModal.d.ts.map +1 -1
  59. package/lib/typescript/react-query/components/modals/QueryBrowserModal.d.ts.map +1 -1
  60. package/lib/typescript/react-query/components/query-browser/QueryStatus.d.ts.map +1 -1
  61. package/package.json +3 -3
@@ -213,14 +213,14 @@ const styles = _reactNative.StyleSheet.create({
213
213
  padding: 32
214
214
  },
215
215
  emptyTitle: {
216
- color: _sharedUi.buoyColors.text,
216
+ color: _sharedUi.night.color.text,
217
217
  fontSize: 18,
218
218
  fontWeight: "600",
219
219
  marginBottom: 8,
220
220
  textAlign: "center"
221
221
  },
222
222
  emptyDescription: {
223
- color: _sharedUi.buoyColors.textSecondary,
223
+ color: _sharedUi.night.color.textSecondary,
224
224
  fontSize: 14,
225
225
  textAlign: "center",
226
226
  lineHeight: 20,
@@ -229,10 +229,11 @@ const styles = _reactNative.StyleSheet.create({
229
229
  // Action footer - compact single row layout
230
230
  actionFooter: {
231
231
  borderTopWidth: 1,
232
- borderTopColor: _sharedUi.buoyColors.border,
232
+ borderTopColor: _sharedUi.night.color.border,
233
233
  paddingTop: 8,
234
234
  paddingHorizontal: 12,
235
- backgroundColor: _sharedUi.buoyColors.base,
235
+ // Transparent so the night sheet's star field shows through.
236
+ backgroundColor: "transparent",
236
237
  borderBottomLeftRadius: 14,
237
238
  borderBottomRightRadius: 14
238
239
  },
@@ -244,12 +245,12 @@ const styles = _reactNative.StyleSheet.create({
244
245
  // Query Explorer styled container matching QueryDetails
245
246
  queryExplorerContainer: {
246
247
  minWidth: 200,
247
- backgroundColor: _sharedUi.buoyColors.card,
248
+ backgroundColor: _sharedUi.night.color.surface,
248
249
  borderRadius: 6,
249
250
  borderWidth: 1,
250
- borderColor: _sharedUi.buoyColors.primary + "4D",
251
+ borderColor: _sharedUi.night.color.accent + "4D",
251
252
  overflow: "hidden",
252
- shadowColor: _sharedUi.buoyColors.primary,
253
+ shadowColor: _sharedUi.night.color.accent,
253
254
  shadowOffset: {
254
255
  width: 0,
255
256
  height: 0
@@ -258,14 +259,14 @@ const styles = _reactNative.StyleSheet.create({
258
259
  shadowRadius: 6
259
260
  },
260
261
  queryExplorerHeader: {
261
- backgroundColor: _sharedUi.buoyColors.primary + "1A",
262
+ backgroundColor: _sharedUi.night.color.accent + "1A",
262
263
  paddingHorizontal: 12,
263
264
  paddingVertical: 10,
264
265
  fontWeight: "600",
265
266
  fontSize: 12,
266
- color: _sharedUi.buoyColors.primary,
267
+ color: _sharedUi.night.color.accent,
267
268
  borderBottomWidth: 1,
268
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
269
+ borderBottomColor: _sharedUi.night.color.accent + "33",
269
270
  letterSpacing: 0.5,
270
271
  textTransform: "uppercase",
271
272
  fontFamily: "monospace"
@@ -276,12 +277,12 @@ const styles = _reactNative.StyleSheet.create({
276
277
  // Data section with teal accent - editable/success theme
277
278
  dataContainer: {
278
279
  minWidth: 200,
279
- backgroundColor: _sharedUi.buoyColors.card,
280
+ backgroundColor: _sharedUi.night.color.surface,
280
281
  borderRadius: 6,
281
282
  borderWidth: 1,
282
- borderColor: _sharedUi.buoyColors.primary + "4D",
283
+ borderColor: _sharedUi.night.color.accent + "4D",
283
284
  overflow: "hidden",
284
- shadowColor: _sharedUi.buoyColors.primary,
285
+ shadowColor: _sharedUi.night.color.accent,
285
286
  shadowOffset: {
286
287
  width: 0,
287
288
  height: 0
@@ -291,14 +292,14 @@ const styles = _reactNative.StyleSheet.create({
291
292
  marginTop: 8
292
293
  },
293
294
  dataHeader: {
294
- backgroundColor: _sharedUi.buoyColors.primary + "1A",
295
+ backgroundColor: _sharedUi.night.color.accent + "1A",
295
296
  paddingHorizontal: 12,
296
297
  paddingVertical: 10,
297
298
  fontWeight: "600",
298
299
  fontSize: 12,
299
- color: _sharedUi.buoyColors.primary,
300
+ color: _sharedUi.night.color.accent,
300
301
  borderBottomWidth: 1,
301
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
302
+ borderBottomColor: _sharedUi.night.color.accent + "33",
302
303
  letterSpacing: 0.5,
303
304
  textTransform: "uppercase",
304
305
  fontFamily: "monospace"
@@ -45,7 +45,7 @@ const styles = _reactNative.StyleSheet.create({
45
45
  },
46
46
  text: {
47
47
  fontSize: 9,
48
- color: _sharedUi.buoyColors.textMuted,
48
+ color: _sharedUi.night.color.textTertiary,
49
49
  fontFamily: "monospace"
50
50
  }
51
51
  });
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.MutationBrowserMode = MutationBrowserMode;
7
7
  var _reactNative = require("react-native");
8
8
  var _MutationsList = _interopRequireDefault(require("./query-browser/MutationsList"));
9
- var _sharedUi = require("@buoy-gg/shared-ui");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
11
  /**
@@ -42,10 +41,12 @@ function MutationBrowserMode({
42
41
  const styles = _reactNative.StyleSheet.create({
43
42
  mutationListContainer: {
44
43
  flex: 1,
45
- backgroundColor: _sharedUi.buoyColors.base
44
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
45
+ backgroundColor: "transparent"
46
46
  },
47
47
  mutationListContent: {
48
48
  padding: 8,
49
- backgroundColor: _sharedUi.buoyColors.base
49
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
50
+ backgroundColor: "transparent"
50
51
  }
51
52
  });
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.MutationEditorActionsFooter = MutationEditorActionsFooter;
6
7
  exports.MutationEditorMode = MutationEditorMode;
7
8
  var _reactNative = require("react-native");
8
9
  var _sharedUi = require("@buoy-gg/shared-ui");
@@ -19,12 +20,9 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
19
20
  */
20
21
  function MutationEditorMode({
21
22
  selectedMutation,
22
- isFloatingMode
23
+ isFloatingMode,
24
+ disableInternalFooter = false
23
25
  }) {
24
- const insets = (0, _sharedUi.useSafeAreaInsets)({
25
- minBottom: 16
26
- });
27
- const actionButtons = (0, _useMutationActionButtons.useMutationActionButtons)(selectedMutation);
28
26
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
29
27
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
30
28
  accessibilityLabel: "Mutation editor mode",
@@ -66,22 +64,40 @@ function MutationEditorMode({
66
64
  })]
67
65
  })
68
66
  })]
69
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
70
- style: [styles.actionFooter, {
71
- paddingBottom: isFloatingMode ? 0 : insets.bottom + 8
72
- }],
73
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
74
- style: styles.actionsGrid,
75
- children: actionButtons.map((action, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionButton.default, {
76
- onClick: action.onPress,
77
- text: action.label,
78
- variant: action.variant,
79
- disabled: action.disabled
80
- }, index))
81
- })
67
+ }), !disableInternalFooter && /*#__PURE__*/(0, _jsxRuntime.jsx)(MutationEditorActionsFooter, {
68
+ selectedMutation: selectedMutation,
69
+ isFloatingMode: isFloatingMode
82
70
  })]
83
71
  });
84
72
  }
73
+
74
+ /**
75
+ * Standalone action footer for the mutation editor, so modal wrappers can pin it through
76
+ * JsModal's footer prop (mirrors DataEditorActionsFooter).
77
+ */
78
+ function MutationEditorActionsFooter({
79
+ selectedMutation,
80
+ isFloatingMode
81
+ }) {
82
+ const insets = (0, _sharedUi.useSafeAreaInsets)({
83
+ minBottom: 16
84
+ });
85
+ const actionButtons = (0, _useMutationActionButtons.useMutationActionButtons)(selectedMutation);
86
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
87
+ style: [styles.actionFooter, {
88
+ paddingBottom: isFloatingMode ? 0 : insets.bottom + 8
89
+ }],
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
91
+ style: styles.actionsGrid,
92
+ children: actionButtons.map((action, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionButton.default, {
93
+ onClick: action.onPress,
94
+ text: action.label,
95
+ variant: action.variant,
96
+ disabled: action.disabled
97
+ }, index))
98
+ })
99
+ });
100
+ }
85
101
  function DataExplorer({
86
102
  visible,
87
103
  selectedMutation
@@ -160,14 +176,14 @@ const styles = _reactNative.StyleSheet.create({
160
176
  padding: 32
161
177
  },
162
178
  emptyTitle: {
163
- color: _sharedUi.buoyColors.text,
179
+ color: _sharedUi.night.color.text,
164
180
  fontSize: 18,
165
181
  fontWeight: "600",
166
182
  marginBottom: 8,
167
183
  textAlign: "center"
168
184
  },
169
185
  emptyDescription: {
170
- color: _sharedUi.buoyColors.textSecondary,
186
+ color: _sharedUi.night.color.textSecondary,
171
187
  fontSize: 14,
172
188
  textAlign: "center",
173
189
  lineHeight: 20,
@@ -175,10 +191,11 @@ const styles = _reactNative.StyleSheet.create({
175
191
  },
176
192
  actionFooter: {
177
193
  borderTopWidth: 1,
178
- borderTopColor: _sharedUi.buoyColors.border,
194
+ borderTopColor: _sharedUi.night.color.border,
179
195
  paddingVertical: 8,
180
196
  paddingHorizontal: 12,
181
- backgroundColor: _sharedUi.buoyColors.base,
197
+ // Transparent so the night sheet's star field shows through.
198
+ backgroundColor: "transparent",
182
199
  borderBottomLeftRadius: 14,
183
200
  borderBottomRightRadius: 14
184
201
  },
@@ -191,12 +208,12 @@ const styles = _reactNative.StyleSheet.create({
191
208
  // Mutation Explorer styled container matching QueryDetails
192
209
  mutationExplorerContainer: {
193
210
  minWidth: 200,
194
- backgroundColor: _sharedUi.buoyColors.card,
211
+ backgroundColor: _sharedUi.night.color.surface,
195
212
  borderRadius: 6,
196
213
  borderWidth: 1,
197
- borderColor: _sharedUi.buoyColors.primary + "4D",
214
+ borderColor: _sharedUi.night.color.accent + "4D",
198
215
  overflow: "hidden",
199
- shadowColor: _sharedUi.buoyColors.primary,
216
+ shadowColor: _sharedUi.night.color.accent,
200
217
  shadowOffset: {
201
218
  width: 0,
202
219
  height: 0
@@ -205,14 +222,14 @@ const styles = _reactNative.StyleSheet.create({
205
222
  shadowRadius: 6
206
223
  },
207
224
  mutationExplorerHeader: {
208
- backgroundColor: _sharedUi.buoyColors.primary + "1A",
225
+ backgroundColor: _sharedUi.night.color.accent + "1A",
209
226
  paddingHorizontal: 12,
210
227
  paddingVertical: 10,
211
228
  fontWeight: "600",
212
229
  fontSize: 12,
213
- color: _sharedUi.buoyColors.primary,
230
+ color: _sharedUi.night.color.accent,
214
231
  borderBottomWidth: 1,
215
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
232
+ borderBottomColor: _sharedUi.night.color.accent + "33",
216
233
  letterSpacing: 0.5,
217
234
  textTransform: "uppercase",
218
235
  fontFamily: "monospace"
@@ -223,12 +240,12 @@ const styles = _reactNative.StyleSheet.create({
223
240
  // Data section matching query editor theme for consistency
224
241
  dataContainer: {
225
242
  minWidth: 200,
226
- backgroundColor: _sharedUi.buoyColors.card,
243
+ backgroundColor: _sharedUi.night.color.surface,
227
244
  borderRadius: 6,
228
245
  borderWidth: 1,
229
- borderColor: _sharedUi.buoyColors.primary + "4D",
246
+ borderColor: _sharedUi.night.color.accent + "4D",
230
247
  overflow: "hidden",
231
- shadowColor: _sharedUi.buoyColors.primary,
248
+ shadowColor: _sharedUi.night.color.accent,
232
249
  shadowOffset: {
233
250
  width: 0,
234
251
  height: 0
@@ -237,14 +254,14 @@ const styles = _reactNative.StyleSheet.create({
237
254
  shadowRadius: 6
238
255
  },
239
256
  dataHeader: {
240
- backgroundColor: _sharedUi.buoyColors.primary + "1A",
257
+ backgroundColor: _sharedUi.night.color.accent + "1A",
241
258
  paddingHorizontal: 12,
242
259
  paddingVertical: 10,
243
260
  fontWeight: "600",
244
261
  fontSize: 12,
245
- color: _sharedUi.buoyColors.primary,
262
+ color: _sharedUi.night.color.accent,
246
263
  borderBottomWidth: 1,
247
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
264
+ borderBottomColor: _sharedUi.night.color.accent + "33",
248
265
  letterSpacing: 0.5,
249
266
  textTransform: "uppercase",
250
267
  fontFamily: "monospace"
@@ -9,7 +9,6 @@ var _react = require("react");
9
9
  var _index = require("./query-browser/index");
10
10
  var _FilterStatusBadge = require("./FilterStatusBadge");
11
11
  var _useAllQueries = _interopRequireDefault(require("../hooks/useAllQueries"));
12
- var _sharedUi = require("@buoy-gg/shared-ui");
13
12
  var _jsxRuntime = require("react/jsx-runtime");
14
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
14
  /** Wrapper around the query list experience used inside the modal view. */
@@ -72,11 +71,13 @@ function QueryBrowserMode({
72
71
  const styles = _reactNative.StyleSheet.create({
73
72
  queryListContainer: {
74
73
  flex: 1,
75
- backgroundColor: _sharedUi.buoyColors.base
74
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
75
+ backgroundColor: "transparent"
76
76
  },
77
77
  queryListContent: {
78
78
  padding: 8,
79
- backgroundColor: _sharedUi.buoyColors.base,
79
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
80
+ backgroundColor: "transparent",
80
81
  flexGrow: 1
81
82
  }
82
83
  });
@@ -31,6 +31,15 @@ function DataEditorModal({
31
31
  const handleModeChange = (0, _react.useCallback)(mode => {
32
32
  setModalMode(mode);
33
33
  }, []);
34
+
35
+ // JsModal overlays the footer on the content and only reserves `footerHeight`
36
+ // of padding beneath it. DataEditorActionsFooter pads its bottom with
37
+ // `insets.bottom + 8` when docked, so the reserve must grow by the same
38
+ // amount or the editor bottom hides behind the footer.
39
+ const insets = (0, _sharedUi.useSafeAreaInsets)({
40
+ minBottom: 16
41
+ });
42
+ const footerHeight = modalMode === "floating" ? 72 : 80 + insets.bottom;
34
43
  const renderHeaderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
35
44
  selectedQuery: selectedQuery,
36
45
  activeTab: "queries",
@@ -59,7 +68,7 @@ function DataEditorModal({
59
68
  enableGlitchEffects: true,
60
69
  styles: {},
61
70
  footer: footerNode,
62
- footerHeight: 72,
71
+ footerHeight: footerHeight,
63
72
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DataEditorMode.DataEditorMode, {
64
73
  selectedQuery: selectedQuery,
65
74
  isFloatingMode: modalMode === "floating",
@@ -53,10 +53,12 @@ function MutationBrowserFooter({
53
53
  const styles = _reactNative.StyleSheet.create({
54
54
  filterFooter: {
55
55
  borderTopWidth: 1,
56
- borderTopColor: _sharedUi.buoyColors.border,
56
+ borderTopColor: _sharedUi.night.color.border,
57
57
  paddingVertical: 8,
58
58
  paddingHorizontal: 0,
59
- backgroundColor: _sharedUi.buoyColors.base,
59
+ // Transparent so the night sheet's star field shows through.
60
+ // Night glass bar — matches the shared EventStepperFooter backing.
61
+ backgroundColor: "rgba(5, 5, 5, 0.92)",
60
62
  borderBottomLeftRadius: 14,
61
63
  borderBottomRightRadius: 14
62
64
  },
@@ -59,6 +59,15 @@ function MutationBrowserModal({
59
59
  setModalMode(mode);
60
60
  }, []);
61
61
 
62
+ // JsModal overlays the footer on the content and only reserves `footerHeight`
63
+ // of padding beneath it. MutationBrowserFooter grows by the safe-area inset
64
+ // when docked, so the reserve must track that or the list bottom hides
65
+ // behind the footer.
66
+ const insets = (0, _sharedUi.useSafeAreaInsets)({
67
+ minBottom: 16
68
+ });
69
+ const footerHeight = modalMode === "floating" ? 56 : 48 + insets.bottom;
70
+
62
71
  // Create PanResponder for swipe navigation
63
72
  const panResponder = (0, _react.useRef)(_reactNative.PanResponder.create({
64
73
  onStartShouldSetPanResponder: () => false,
@@ -129,7 +138,7 @@ function MutationBrowserModal({
129
138
  enableGlitchEffects: true,
130
139
  styles: {},
131
140
  footer: footerNode,
132
- footerHeight: 56,
141
+ footerHeight: footerHeight,
133
142
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
134
143
  style: {
135
144
  flex: 1
@@ -28,6 +28,15 @@ function MutationEditorModal({
28
28
  const handleModeChange = (0, _react.useCallback)(mode => {
29
29
  setModalMode(mode);
30
30
  }, []);
31
+
32
+ // JsModal overlays the footer on the content and only reserves `footerHeight`
33
+ // of padding beneath it. MutationEditorActionsFooter pads its bottom with
34
+ // `insets.bottom + 8` when docked, so the reserve must grow by the same
35
+ // amount or the editor bottom hides behind the action bar.
36
+ const insets = (0, _sharedUi.useSafeAreaInsets)({
37
+ minBottom: 16
38
+ });
39
+ const footerHeight = modalMode === "floating" ? 72 : 80 + insets.bottom;
31
40
  const renderHeaderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReactQueryModalHeader.ReactQueryModalHeader, {
32
41
  selectedMutation: selectedMutation,
33
42
  activeTab: "mutations",
@@ -36,6 +45,10 @@ function MutationEditorModal({
36
45
  });
37
46
  const storagePrefix = enableSharedModalDimensions ? _sharedUi.devToolsStorageKeys.reactQuery.modal() : _sharedUi.devToolsStorageKeys.reactQuery.mutationModal();
38
47
  if (!visible || !selectedMutation) return null;
48
+ const footerNode = /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationEditorMode.MutationEditorActionsFooter, {
49
+ selectedMutation: selectedMutation,
50
+ isFloatingMode: modalMode === "floating"
51
+ });
39
52
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.JsModal, {
40
53
  visible: visible,
41
54
  onClose: onClose,
@@ -50,9 +63,12 @@ function MutationEditorModal({
50
63
  initialMode: "bottomSheet",
51
64
  enableGlitchEffects: true,
52
65
  styles: {},
66
+ footer: footerNode,
67
+ footerHeight: footerHeight,
53
68
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MutationEditorMode.MutationEditorMode, {
54
69
  selectedMutation: selectedMutation,
55
- isFloatingMode: modalMode === "floating"
70
+ isFloatingMode: modalMode === "floating",
71
+ disableInternalFooter: true
56
72
  })
57
73
  });
58
74
  }
@@ -48,10 +48,12 @@ function QueryBrowserFooter({
48
48
  const styles = _reactNative.StyleSheet.create({
49
49
  filterFooter: {
50
50
  borderTopWidth: 1,
51
- borderTopColor: _sharedUi.buoyColors.border,
51
+ borderTopColor: _sharedUi.night.color.border,
52
52
  paddingVertical: 8,
53
53
  paddingHorizontal: 0,
54
- backgroundColor: _sharedUi.buoyColors.base,
54
+ // Transparent so the night sheet's star field shows through.
55
+ // Night glass bar — matches the shared EventStepperFooter backing.
56
+ backgroundColor: "rgba(5, 5, 5, 0.92)",
55
57
  borderBottomLeftRadius: 14,
56
58
  borderBottomRightRadius: 14
57
59
  },
@@ -146,6 +146,15 @@ function QueryBrowserModal({
146
146
  const handleModeChange = (0, _react.useCallback)(mode => {
147
147
  setModalMode(mode);
148
148
  }, []);
149
+
150
+ // JsModal overlays the footer on the content and only reserves `footerHeight`
151
+ // of padding beneath it. QueryBrowserFooter grows by the safe-area inset when
152
+ // docked, so the reserve must track that or the list bottom hides behind the
153
+ // footer.
154
+ const insets = (0, _sharedUi.useSafeAreaInsets)({
155
+ minBottom: 16
156
+ });
157
+ const footerHeight = modalMode === "floating" ? 56 : 48 + insets.bottom;
149
158
  if (!visible) return null;
150
159
  const renderHeaderContent = () => {
151
160
  // Filter view header with back button
@@ -206,7 +215,7 @@ function QueryBrowserModal({
206
215
  disableScrollWrapper: !showFilterView,
207
216
  styles: {},
208
217
  footer: !showFilterView ? footerNode : undefined,
209
- footerHeight: !showFilterView ? 56 : undefined,
218
+ footerHeight: !showFilterView ? footerHeight : undefined,
210
219
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
211
220
  style: styles.container,
212
221
  children: showFilterView ?
@@ -238,6 +247,7 @@ function QueryBrowserModal({
238
247
  const styles = _reactNative.StyleSheet.create({
239
248
  container: {
240
249
  flex: 1,
241
- backgroundColor: _sharedUi.buoyColors.base
250
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
251
+ backgroundColor: "transparent"
242
252
  }
243
253
  });
@@ -87,12 +87,12 @@ function ReactQueryModalHeader({
87
87
  style: styles.headerSearchContainer,
88
88
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Search, {
89
89
  size: 14,
90
- color: _sharedUi.buoyColors.textSecondary
90
+ color: _sharedUi.night.color.textSecondary
91
91
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
92
92
  ref: searchInputRef,
93
93
  style: styles.headerSearchInput,
94
94
  placeholder: "Search query keys...",
95
- placeholderTextColor: _sharedUi.buoyColors.textMuted,
95
+ placeholderTextColor: _sharedUi.night.color.textTertiary,
96
96
  value: searchText,
97
97
  onChangeText: handleSearch,
98
98
  onSubmitEditing: () => setIsSearchActive(false),
@@ -111,7 +111,7 @@ function ReactQueryModalHeader({
111
111
  style: styles.headerSearchClear,
112
112
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.X, {
113
113
  size: 14,
114
- color: _sharedUi.buoyColors.textSecondary
114
+ color: _sharedUi.night.color.textSecondary
115
115
  })
116
116
  }) : null]
117
117
  }) : showWifiToggle ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
@@ -138,7 +138,7 @@ function ReactQueryModalHeader({
138
138
  style: styles.headerActionButton,
139
139
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Search, {
140
140
  size: 14,
141
- color: _sharedUi.buoyColors.textSecondary
141
+ color: _sharedUi.night.color.textSecondary
142
142
  })
143
143
  }), onFilterPress && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
144
144
  "sentry-label": "ignore open filter",
@@ -146,7 +146,7 @@ function ReactQueryModalHeader({
146
146
  style: [styles.headerActionButton, hasActiveFilters && styles.activeFilterButton],
147
147
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Filter, {
148
148
  size: 14,
149
- color: hasActiveFilters ? _sharedUi.buoyColors.primary : _sharedUi.buoyColors.textSecondary
149
+ color: hasActiveFilters ? _sharedUi.night.color.accent : _sharedUi.night.color.textSecondary
150
150
  })
151
151
  }), onClearCache && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
152
152
  "sentry-label": "ignore clear cache",
@@ -155,7 +155,7 @@ function ReactQueryModalHeader({
155
155
  accessibilityLabel: `Clear ${activeTab} cache`,
156
156
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.Trash, {
157
157
  size: 14,
158
- color: _sharedUi.buoyColors.warning
158
+ color: _sharedUi.night.color.warning
159
159
  })
160
160
  })]
161
161
  })]
@@ -174,7 +174,7 @@ const styles = _reactNative.StyleSheet.create({
174
174
  headerSearchContainer: {
175
175
  flexDirection: "row",
176
176
  alignItems: "center",
177
- backgroundColor: _sharedUi.buoyColors.input,
177
+ backgroundColor: _sharedUi.night.color.surfaceElevated,
178
178
  borderRadius: 6,
179
179
  paddingHorizontal: 8,
180
180
  paddingVertical: 4,
@@ -184,7 +184,7 @@ const styles = _reactNative.StyleSheet.create({
184
184
  },
185
185
  headerSearchInput: {
186
186
  flex: 1,
187
- color: _sharedUi.buoyColors.text,
187
+ color: _sharedUi.night.color.text,
188
188
  fontSize: 13,
189
189
  fontFamily: "monospace",
190
190
  padding: 0,
@@ -199,9 +199,9 @@ const styles = _reactNative.StyleSheet.create({
199
199
  borderRadius: 4
200
200
  },
201
201
  activeFilterButton: {
202
- backgroundColor: _sharedUi.buoyColors.primary + "33"
202
+ backgroundColor: _sharedUi.night.color.accentSoft
203
203
  },
204
204
  clearCacheButton: {
205
- backgroundColor: _sharedUi.buoyColors.warning + "20"
205
+ backgroundColor: _sharedUi.night.color.warningSoft
206
206
  }
207
207
  });
@@ -132,7 +132,7 @@ function SwipeIndicator({
132
132
  width: leftIndicatorWidth,
133
133
  height: INDICATOR_HEIGHT,
134
134
  borderRadius: INDICATOR_HEIGHT / 2,
135
- backgroundColor: _sharedUi.buoyColors.text + "E6",
135
+ backgroundColor: _sharedUi.night.color.text + "E6",
136
136
  justifyContent: "center",
137
137
  alignItems: "center",
138
138
  opacity: leftIndicatorOpacity,
@@ -151,7 +151,7 @@ function SwipeIndicator({
151
151
  },
152
152
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronLeft, {
153
153
  size: INDICATOR_HEIGHT * 0.6,
154
- color: _sharedUi.buoyColors.primary,
154
+ color: _sharedUi.night.color.accent,
155
155
  strokeWidth: 3
156
156
  })
157
157
  })
@@ -160,7 +160,7 @@ function SwipeIndicator({
160
160
  width: rightIndicatorWidth,
161
161
  height: INDICATOR_HEIGHT,
162
162
  borderRadius: INDICATOR_HEIGHT / 2,
163
- backgroundColor: _sharedUi.buoyColors.text + "E6",
163
+ backgroundColor: _sharedUi.night.color.text + "E6",
164
164
  justifyContent: "center",
165
165
  alignItems: "center",
166
166
  opacity: rightIndicatorOpacity,
@@ -179,7 +179,7 @@ function SwipeIndicator({
179
179
  },
180
180
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_sharedUi.ChevronRight, {
181
181
  size: INDICATOR_HEIGHT * 0.6,
182
- color: _sharedUi.buoyColors.primary,
182
+ color: _sharedUi.night.color.accent,
183
183
  strokeWidth: 3
184
184
  })
185
185
  })