@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
@@ -81,7 +81,8 @@ function MutationInformation({
81
81
  const styles = _reactNative.StyleSheet.create({
82
82
  flex1: {
83
83
  flex: 1,
84
- backgroundColor: _sharedUi.buoyColors.base
84
+ // Transparent so the night sheet's star field shows through.
85
+ backgroundColor: "transparent"
85
86
  },
86
87
  scrollContent: {
87
88
  paddingBottom: 16,
@@ -92,26 +93,26 @@ const styles = _reactNative.StyleSheet.create({
92
93
  },
93
94
  textHeader: {
94
95
  textAlign: "left",
95
- backgroundColor: _sharedUi.buoyColors.primary + "15",
96
+ backgroundColor: _sharedUi.night.color.accent + "15",
96
97
  padding: 12,
97
98
  fontSize: 12,
98
99
  fontWeight: "700",
99
- color: _sharedUi.buoyColors.primary,
100
+ color: _sharedUi.night.color.accent,
100
101
  borderTopLeftRadius: 8,
101
102
  borderTopRightRadius: 8,
102
103
  borderBottomWidth: 1,
103
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
104
+ borderBottomColor: _sharedUi.night.color.accent + "33",
104
105
  fontFamily: "monospace",
105
106
  letterSpacing: 1,
106
107
  textTransform: "uppercase"
107
108
  },
108
109
  padding: {
109
110
  padding: 12,
110
- backgroundColor: _sharedUi.buoyColors.card,
111
+ backgroundColor: _sharedUi.night.color.surface,
111
112
  borderBottomLeftRadius: 8,
112
113
  borderBottomRightRadius: 8,
113
114
  borderWidth: 1,
114
- borderColor: _sharedUi.buoyColors.border,
115
+ borderColor: _sharedUi.night.color.border,
115
116
  borderTopWidth: 0
116
117
  }
117
118
  });
@@ -159,52 +159,56 @@ function MutationsList({
159
159
  const styles = _reactNative.StyleSheet.create({
160
160
  container: {
161
161
  flex: 1,
162
- backgroundColor: _sharedUi.buoyColors.base
162
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
163
+ backgroundColor: "transparent"
163
164
  },
164
165
  listWrapper: {
165
166
  flex: 1
166
167
  },
167
168
  listContent: {
168
- backgroundColor: _sharedUi.buoyColors.base,
169
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
170
+ backgroundColor: "transparent",
169
171
  paddingHorizontal: 8,
170
172
  paddingTop: 8
171
173
  },
172
174
  mutationInfo: {
173
175
  borderTopWidth: 1,
174
- borderTopColor: _sharedUi.buoyColors.border,
175
- backgroundColor: _sharedUi.buoyColors.base
176
+ borderTopColor: _sharedUi.night.color.border,
177
+ // Transparent so the night sheet's star field shows through.
178
+ backgroundColor: "transparent"
176
179
  },
177
180
  dragHandle: {
178
181
  height: 20,
179
182
  justifyContent: "center",
180
183
  alignItems: "center",
181
- backgroundColor: _sharedUi.buoyColors.card,
184
+ backgroundColor: _sharedUi.night.color.surface,
182
185
  borderBottomWidth: 1,
183
- borderBottomColor: _sharedUi.buoyColors.border
186
+ borderBottomColor: _sharedUi.night.color.border
184
187
  },
185
188
  dragIndicator: {
186
189
  width: 40,
187
190
  height: 4,
188
- backgroundColor: _sharedUi.buoyColors.border,
191
+ backgroundColor: _sharedUi.night.color.placeholder,
189
192
  borderRadius: 2
190
193
  },
191
194
  mutationInfoContent: {
192
195
  flex: 1,
193
- backgroundColor: _sharedUi.buoyColors.base
196
+ // Transparent so the night sheet's star field shows through.
197
+ backgroundColor: "transparent"
194
198
  },
195
199
  emptyContainer: {
196
200
  flex: 1,
197
201
  justifyContent: "center",
198
202
  alignItems: "center",
199
203
  padding: 32,
200
- backgroundColor: _sharedUi.buoyColors.card,
204
+ backgroundColor: _sharedUi.night.color.surface,
201
205
  margin: 16,
202
206
  borderRadius: 8,
203
207
  borderWidth: 1,
204
- borderColor: _sharedUi.buoyColors.border
208
+ borderColor: _sharedUi.night.color.border
205
209
  },
206
210
  emptyText: {
207
- color: _sharedUi.buoyColors.textMuted,
211
+ color: _sharedUi.night.color.textTertiary,
208
212
  fontSize: 14,
209
213
  textAlign: "center",
210
214
  fontFamily: "monospace",
@@ -112,7 +112,7 @@ const styles = _reactNative.StyleSheet.create({
112
112
  sectionLabel: {
113
113
  fontSize: 11,
114
114
  fontWeight: "600",
115
- color: _sharedUi.buoyColors.textMuted,
115
+ color: _sharedUi.night.color.textTertiary,
116
116
  textTransform: "uppercase",
117
117
  letterSpacing: 0.5
118
118
  },
@@ -158,21 +158,22 @@ const styles = _reactNative.StyleSheet.create({
158
158
  },
159
159
  listContent: {
160
160
  paddingBottom: 16,
161
- backgroundColor: _sharedUi.buoyColors.base
161
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
162
+ backgroundColor: "transparent"
162
163
  },
163
164
  emptyContainer: {
164
165
  flex: 1,
165
166
  justifyContent: "center",
166
167
  alignItems: "center",
167
168
  padding: 32,
168
- backgroundColor: _sharedUi.buoyColors.card,
169
+ backgroundColor: _sharedUi.night.color.surface,
169
170
  margin: 16,
170
171
  borderRadius: 8,
171
172
  borderWidth: 1,
172
- borderColor: _sharedUi.buoyColors.border
173
+ borderColor: _sharedUi.night.color.border
173
174
  },
174
175
  emptyText: {
175
- color: _sharedUi.buoyColors.textMuted,
176
+ color: _sharedUi.night.color.textTertiary,
176
177
  fontSize: 14,
177
178
  textAlign: "center",
178
179
  fontFamily: "monospace",
@@ -67,12 +67,12 @@ function QueryDetails({
67
67
  const styles = _reactNative.StyleSheet.create({
68
68
  minWidth: {
69
69
  minWidth: 200,
70
- backgroundColor: _sharedUi.buoyColors.card,
70
+ backgroundColor: _sharedUi.night.color.surface,
71
71
  borderRadius: 6,
72
72
  borderWidth: 1,
73
- borderColor: _sharedUi.buoyColors.primary + "4D",
73
+ borderColor: _sharedUi.night.color.accent + "4D",
74
74
  overflow: "hidden",
75
- shadowColor: _sharedUi.buoyColors.primary,
75
+ shadowColor: _sharedUi.night.color.accent,
76
76
  shadowOffset: {
77
77
  width: 0,
78
78
  height: 0
@@ -81,14 +81,14 @@ const styles = _reactNative.StyleSheet.create({
81
81
  shadowRadius: 6
82
82
  },
83
83
  headerText: {
84
- backgroundColor: _sharedUi.buoyColors.primary + "15",
84
+ backgroundColor: _sharedUi.night.color.accent + "15",
85
85
  paddingHorizontal: 12,
86
86
  paddingVertical: 10,
87
87
  fontWeight: "600",
88
88
  fontSize: 12,
89
- color: _sharedUi.buoyColors.primary,
89
+ color: _sharedUi.night.color.accent,
90
90
  borderBottomWidth: 1,
91
- borderBottomColor: _sharedUi.buoyColors.primary + "33",
91
+ borderBottomColor: _sharedUi.night.color.accent + "33",
92
92
  letterSpacing: 0.5,
93
93
  textTransform: "uppercase",
94
94
  fontFamily: "monospace"
@@ -100,7 +100,7 @@ const styles = _reactNative.StyleSheet.create({
100
100
  paddingHorizontal: 12,
101
101
  paddingVertical: 10,
102
102
  borderBottomWidth: 1,
103
- borderBottomColor: _sharedUi.buoyColors.textMuted + "66"
103
+ borderBottomColor: _sharedUi.night.color.separator
104
104
  },
105
105
  flexOne: {
106
106
  flex: 1,
@@ -108,20 +108,20 @@ const styles = _reactNative.StyleSheet.create({
108
108
  },
109
109
  queryKeyText: {
110
110
  fontSize: 12,
111
- color: _sharedUi.buoyColors.text,
111
+ color: _sharedUi.night.color.text,
112
112
  fontFamily: "monospace",
113
113
  lineHeight: 18,
114
114
  flexShrink: 1,
115
- backgroundColor: _sharedUi.buoyColors.primary + "15",
115
+ backgroundColor: _sharedUi.night.color.accent + "15",
116
116
  paddingHorizontal: 8,
117
117
  paddingVertical: 4,
118
118
  borderRadius: 4,
119
119
  borderWidth: 1,
120
- borderColor: _sharedUi.buoyColors.primary + "4D"
120
+ borderColor: _sharedUi.night.color.accent + "4D"
121
121
  },
122
122
  labelText: {
123
123
  fontSize: 10,
124
- color: _sharedUi.buoyColors.textSecondary,
124
+ color: _sharedUi.night.color.textSecondary,
125
125
  fontWeight: "600",
126
126
  letterSpacing: 0.5,
127
127
  textTransform: "uppercase",
@@ -129,7 +129,7 @@ const styles = _reactNative.StyleSheet.create({
129
129
  },
130
130
  valueText: {
131
131
  fontSize: 12,
132
- color: _sharedUi.buoyColors.text,
132
+ color: _sharedUi.night.color.text,
133
133
  fontWeight: "500",
134
134
  fontVariant: ["tabular-nums"],
135
135
  fontFamily: "monospace"
@@ -68,7 +68,8 @@ function QueryInformation({
68
68
  const styles = _reactNative.StyleSheet.create({
69
69
  flexOne: {
70
70
  flex: 1,
71
- backgroundColor: _sharedUi.buoyColors.base
71
+ // Transparent so the night sheet's star field shows through.
72
+ backgroundColor: "transparent"
72
73
  },
73
74
  scrollContent: {
74
75
  paddingBottom: 16,
@@ -80,15 +81,15 @@ const styles = _reactNative.StyleSheet.create({
80
81
  headerText: {
81
82
  fontSize: 16,
82
83
  fontWeight: "600",
83
- color: _sharedUi.buoyColors.text,
84
+ color: _sharedUi.night.color.text,
84
85
  marginBottom: 8,
85
86
  textAlign: "left"
86
87
  },
87
88
  contentView: {
88
- backgroundColor: _sharedUi.buoyColors.card,
89
+ backgroundColor: _sharedUi.night.color.surface,
89
90
  borderRadius: 12,
90
91
  borderWidth: 1,
91
- borderColor: _sharedUi.buoyColors.border,
92
+ borderColor: _sharedUi.night.color.border,
92
93
  padding: 16
93
94
  }
94
95
  });
@@ -43,10 +43,10 @@ const QueryStatus = ({
43
43
  text: _sharedUi.buoyColors.primary
44
44
  },
45
45
  purple: {
46
- bg: _sharedUi.buoyColors.textMuted + "26",
47
- border: _sharedUi.buoyColors.textMuted + "59",
48
- dot: _sharedUi.buoyColors.textMuted,
49
- text: _sharedUi.buoyColors.textMuted
46
+ bg: _sharedUi.night.color.fillSecondary,
47
+ border: _sharedUi.night.color.fillTertiary,
48
+ dot: _sharedUi.night.color.textTertiary,
49
+ text: _sharedUi.night.color.textTertiary
50
50
  },
51
51
  red: {
52
52
  bg: _sharedUi.buoyColors.error + "15",
@@ -55,10 +55,10 @@ const QueryStatus = ({
55
55
  text: _sharedUi.buoyColors.error
56
56
  },
57
57
  gray: {
58
- bg: _sharedUi.buoyColors.textMuted + "26",
59
- border: _sharedUi.buoyColors.textMuted + "59",
60
- dot: _sharedUi.buoyColors.textMuted,
61
- text: _sharedUi.buoyColors.textMuted
58
+ bg: _sharedUi.night.color.fillSecondary,
59
+ border: _sharedUi.night.color.fillTertiary,
60
+ dot: _sharedUi.night.color.textTertiary,
61
+ text: _sharedUi.night.color.textTertiary
62
62
  }
63
63
  };
64
64
  return colorMap[colorName] || colorMap.gray;
@@ -66,9 +66,12 @@ const QueryStatus = ({
66
66
  const statusColors = getStatusColors(color);
67
67
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
68
68
  "sentry-label": "ignore devtools query status",
69
- style: [styles.queryStatusTag, isLarge && styles.queryStatusTagLarge, isActive && {
70
- backgroundColor: statusColors.dot + "15",
71
- borderColor: statusColors.dot + "40"
69
+ style: [styles.queryStatusTag, isLarge && styles.queryStatusTagLarge,
70
+ // The night chip contract (see NightChip): resting fill never changes;
71
+ // selection is signaled by the tinted border and label.
72
+ isActive && {
73
+ backgroundColor: statusColors.bg,
74
+ borderColor: statusColors.border
72
75
  }],
73
76
  disabled: !onPress,
74
77
  onPress: onPress,
@@ -79,7 +82,9 @@ const QueryStatus = ({
79
82
  backgroundColor: statusColors.dot
80
83
  }]
81
84
  }), showLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
82
- style: [styles.label, isLarge && styles.labelLarge],
85
+ style: [styles.label, isLarge && styles.labelLarge, isActive && {
86
+ color: statusColors.text
87
+ }],
83
88
  numberOfLines: 1,
84
89
  ellipsizeMode: "tail",
85
90
  children: label
@@ -96,14 +101,15 @@ const styles = _reactNative.StyleSheet.create({
96
101
  queryStatusTag: {
97
102
  flexDirection: "row",
98
103
  alignItems: "center",
99
- backgroundColor: "transparent",
100
- borderRadius: 12,
104
+ // Night chip: dark-glass fill, fully-rounded pill, hairline border.
105
+ backgroundColor: _sharedUi.night.color.buttonSurface,
106
+ borderRadius: 13,
101
107
  paddingHorizontal: 10,
102
108
  paddingVertical: 5,
103
109
  height: 26,
104
110
  gap: 6,
105
111
  borderWidth: 1,
106
- borderColor: _sharedUi.buoyColors.textMuted + "20"
112
+ borderColor: _sharedUi.night.color.border
107
113
  },
108
114
  queryStatusTagLarge: {
109
115
  borderRadius: 16,
@@ -125,7 +131,7 @@ const styles = _reactNative.StyleSheet.create({
125
131
  label: {
126
132
  fontSize: 11,
127
133
  fontWeight: "500",
128
- color: _sharedUi.buoyColors.textSecondary,
134
+ color: _sharedUi.night.color.textSecondary,
129
135
  fontFamily: "system"
130
136
  },
131
137
  labelLarge: {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { View, Text, StyleSheet, ScrollView } from "react-native";
4
4
  import { useQueryClient } from "@tanstack/react-query";
5
- import { useSafeAreaInsets, buoyColors } from "@buoy-gg/shared-ui";
5
+ import { useSafeAreaInsets, night } from "@buoy-gg/shared-ui";
6
6
  import Explorer from "./query-browser/Explorer";
7
7
  import QueryDetails from "./query-browser/QueryDetails";
8
8
  import ActionButton from "./query-browser/ActionButton";
@@ -207,14 +207,14 @@ const styles = StyleSheet.create({
207
207
  padding: 32
208
208
  },
209
209
  emptyTitle: {
210
- color: buoyColors.text,
210
+ color: night.color.text,
211
211
  fontSize: 18,
212
212
  fontWeight: "600",
213
213
  marginBottom: 8,
214
214
  textAlign: "center"
215
215
  },
216
216
  emptyDescription: {
217
- color: buoyColors.textSecondary,
217
+ color: night.color.textSecondary,
218
218
  fontSize: 14,
219
219
  textAlign: "center",
220
220
  lineHeight: 20,
@@ -223,10 +223,11 @@ const styles = StyleSheet.create({
223
223
  // Action footer - compact single row layout
224
224
  actionFooter: {
225
225
  borderTopWidth: 1,
226
- borderTopColor: buoyColors.border,
226
+ borderTopColor: night.color.border,
227
227
  paddingTop: 8,
228
228
  paddingHorizontal: 12,
229
- backgroundColor: buoyColors.base,
229
+ // Transparent so the night sheet's star field shows through.
230
+ backgroundColor: "transparent",
230
231
  borderBottomLeftRadius: 14,
231
232
  borderBottomRightRadius: 14
232
233
  },
@@ -238,12 +239,12 @@ const styles = StyleSheet.create({
238
239
  // Query Explorer styled container matching QueryDetails
239
240
  queryExplorerContainer: {
240
241
  minWidth: 200,
241
- backgroundColor: buoyColors.card,
242
+ backgroundColor: night.color.surface,
242
243
  borderRadius: 6,
243
244
  borderWidth: 1,
244
- borderColor: buoyColors.primary + "4D",
245
+ borderColor: night.color.accent + "4D",
245
246
  overflow: "hidden",
246
- shadowColor: buoyColors.primary,
247
+ shadowColor: night.color.accent,
247
248
  shadowOffset: {
248
249
  width: 0,
249
250
  height: 0
@@ -252,14 +253,14 @@ const styles = StyleSheet.create({
252
253
  shadowRadius: 6
253
254
  },
254
255
  queryExplorerHeader: {
255
- backgroundColor: buoyColors.primary + "1A",
256
+ backgroundColor: night.color.accent + "1A",
256
257
  paddingHorizontal: 12,
257
258
  paddingVertical: 10,
258
259
  fontWeight: "600",
259
260
  fontSize: 12,
260
- color: buoyColors.primary,
261
+ color: night.color.accent,
261
262
  borderBottomWidth: 1,
262
- borderBottomColor: buoyColors.primary + "33",
263
+ borderBottomColor: night.color.accent + "33",
263
264
  letterSpacing: 0.5,
264
265
  textTransform: "uppercase",
265
266
  fontFamily: "monospace"
@@ -270,12 +271,12 @@ const styles = StyleSheet.create({
270
271
  // Data section with teal accent - editable/success theme
271
272
  dataContainer: {
272
273
  minWidth: 200,
273
- backgroundColor: buoyColors.card,
274
+ backgroundColor: night.color.surface,
274
275
  borderRadius: 6,
275
276
  borderWidth: 1,
276
- borderColor: buoyColors.primary + "4D",
277
+ borderColor: night.color.accent + "4D",
277
278
  overflow: "hidden",
278
- shadowColor: buoyColors.primary,
279
+ shadowColor: night.color.accent,
279
280
  shadowOffset: {
280
281
  width: 0,
281
282
  height: 0
@@ -285,14 +286,14 @@ const styles = StyleSheet.create({
285
286
  marginTop: 8
286
287
  },
287
288
  dataHeader: {
288
- backgroundColor: buoyColors.primary + "1A",
289
+ backgroundColor: night.color.accent + "1A",
289
290
  paddingHorizontal: 12,
290
291
  paddingVertical: 10,
291
292
  fontWeight: "600",
292
293
  fontSize: 12,
293
- color: buoyColors.primary,
294
+ color: night.color.accent,
294
295
  borderBottomWidth: 1,
295
- borderBottomColor: buoyColors.primary + "33",
296
+ borderBottomColor: night.color.accent + "33",
296
297
  letterSpacing: 0.5,
297
298
  textTransform: "uppercase",
298
299
  fontFamily: "monospace"
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
4
- import { buoyColors } from "@buoy-gg/shared-ui";
4
+ import { night } from "@buoy-gg/shared-ui";
5
5
  import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
6
6
  /**
7
7
  * Compact badge showing filter status (e.g., "Showing 5 of 12")
@@ -41,7 +41,7 @@ const styles = StyleSheet.create({
41
41
  },
42
42
  text: {
43
43
  fontSize: 9,
44
- color: buoyColors.textMuted,
44
+ color: night.color.textTertiary,
45
45
  fontFamily: "monospace"
46
46
  }
47
47
  });
@@ -2,7 +2,6 @@
2
2
 
3
3
  import { View, StyleSheet } from "react-native";
4
4
  import MutationsList from "./query-browser/MutationsList";
5
- import { buoyColors } from "@buoy-gg/shared-ui";
6
5
  import { jsx as _jsx } from "react/jsx-runtime";
7
6
  /**
8
7
  * Layout wrapper that renders the mutation list alongside selection handling glue logic used by
@@ -37,10 +36,12 @@ export function MutationBrowserMode({
37
36
  const styles = StyleSheet.create({
38
37
  mutationListContainer: {
39
38
  flex: 1,
40
- backgroundColor: buoyColors.base
39
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
40
+ backgroundColor: "transparent"
41
41
  },
42
42
  mutationListContent: {
43
43
  padding: 8,
44
- backgroundColor: buoyColors.base
44
+ // Transparent so JsModal's ToolBackground shows through (the modal paints opaque base beneath it).
45
+ backgroundColor: "transparent"
45
46
  }
46
47
  });
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { View, Text, StyleSheet, ScrollView } from "react-native";
4
- import { useSafeAreaInsets, buoyColors } from "@buoy-gg/shared-ui";
4
+ import { useSafeAreaInsets, night } from "@buoy-gg/shared-ui";
5
5
  import Explorer from "./query-browser/Explorer";
6
6
  import MutationDetails from "./query-browser/MutationDetails";
7
7
  import ActionButton from "./query-browser/ActionButton";
@@ -14,12 +14,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
14
14
  */
15
15
  export function MutationEditorMode({
16
16
  selectedMutation,
17
- isFloatingMode
17
+ isFloatingMode,
18
+ disableInternalFooter = false
18
19
  }) {
19
- const insets = useSafeAreaInsets({
20
- minBottom: 16
21
- });
22
- const actionButtons = useMutationActionButtons(selectedMutation);
23
20
  return /*#__PURE__*/_jsxs(_Fragment, {
24
21
  children: [/*#__PURE__*/_jsxs(ScrollView, {
25
22
  accessibilityLabel: "Mutation editor mode",
@@ -61,22 +58,40 @@ export function MutationEditorMode({
61
58
  })]
62
59
  })
63
60
  })]
64
- }), /*#__PURE__*/_jsx(View, {
65
- style: [styles.actionFooter, {
66
- paddingBottom: isFloatingMode ? 0 : insets.bottom + 8
67
- }],
68
- children: /*#__PURE__*/_jsx(View, {
69
- style: styles.actionsGrid,
70
- children: actionButtons.map((action, index) => /*#__PURE__*/_jsx(ActionButton, {
71
- onClick: action.onPress,
72
- text: action.label,
73
- variant: action.variant,
74
- disabled: action.disabled
75
- }, index))
76
- })
61
+ }), !disableInternalFooter && /*#__PURE__*/_jsx(MutationEditorActionsFooter, {
62
+ selectedMutation: selectedMutation,
63
+ isFloatingMode: isFloatingMode
77
64
  })]
78
65
  });
79
66
  }
67
+
68
+ /**
69
+ * Standalone action footer for the mutation editor, so modal wrappers can pin it through
70
+ * JsModal's footer prop (mirrors DataEditorActionsFooter).
71
+ */
72
+ export function MutationEditorActionsFooter({
73
+ selectedMutation,
74
+ isFloatingMode
75
+ }) {
76
+ const insets = useSafeAreaInsets({
77
+ minBottom: 16
78
+ });
79
+ const actionButtons = useMutationActionButtons(selectedMutation);
80
+ return /*#__PURE__*/_jsx(View, {
81
+ style: [styles.actionFooter, {
82
+ paddingBottom: isFloatingMode ? 0 : insets.bottom + 8
83
+ }],
84
+ children: /*#__PURE__*/_jsx(View, {
85
+ style: styles.actionsGrid,
86
+ children: actionButtons.map((action, index) => /*#__PURE__*/_jsx(ActionButton, {
87
+ onClick: action.onPress,
88
+ text: action.label,
89
+ variant: action.variant,
90
+ disabled: action.disabled
91
+ }, index))
92
+ })
93
+ });
94
+ }
80
95
  function DataExplorer({
81
96
  visible,
82
97
  selectedMutation
@@ -155,14 +170,14 @@ const styles = StyleSheet.create({
155
170
  padding: 32
156
171
  },
157
172
  emptyTitle: {
158
- color: buoyColors.text,
173
+ color: night.color.text,
159
174
  fontSize: 18,
160
175
  fontWeight: "600",
161
176
  marginBottom: 8,
162
177
  textAlign: "center"
163
178
  },
164
179
  emptyDescription: {
165
- color: buoyColors.textSecondary,
180
+ color: night.color.textSecondary,
166
181
  fontSize: 14,
167
182
  textAlign: "center",
168
183
  lineHeight: 20,
@@ -170,10 +185,11 @@ const styles = StyleSheet.create({
170
185
  },
171
186
  actionFooter: {
172
187
  borderTopWidth: 1,
173
- borderTopColor: buoyColors.border,
188
+ borderTopColor: night.color.border,
174
189
  paddingVertical: 8,
175
190
  paddingHorizontal: 12,
176
- backgroundColor: buoyColors.base,
191
+ // Transparent so the night sheet's star field shows through.
192
+ backgroundColor: "transparent",
177
193
  borderBottomLeftRadius: 14,
178
194
  borderBottomRightRadius: 14
179
195
  },
@@ -186,12 +202,12 @@ const styles = StyleSheet.create({
186
202
  // Mutation Explorer styled container matching QueryDetails
187
203
  mutationExplorerContainer: {
188
204
  minWidth: 200,
189
- backgroundColor: buoyColors.card,
205
+ backgroundColor: night.color.surface,
190
206
  borderRadius: 6,
191
207
  borderWidth: 1,
192
- borderColor: buoyColors.primary + "4D",
208
+ borderColor: night.color.accent + "4D",
193
209
  overflow: "hidden",
194
- shadowColor: buoyColors.primary,
210
+ shadowColor: night.color.accent,
195
211
  shadowOffset: {
196
212
  width: 0,
197
213
  height: 0
@@ -200,14 +216,14 @@ const styles = StyleSheet.create({
200
216
  shadowRadius: 6
201
217
  },
202
218
  mutationExplorerHeader: {
203
- backgroundColor: buoyColors.primary + "1A",
219
+ backgroundColor: night.color.accent + "1A",
204
220
  paddingHorizontal: 12,
205
221
  paddingVertical: 10,
206
222
  fontWeight: "600",
207
223
  fontSize: 12,
208
- color: buoyColors.primary,
224
+ color: night.color.accent,
209
225
  borderBottomWidth: 1,
210
- borderBottomColor: buoyColors.primary + "33",
226
+ borderBottomColor: night.color.accent + "33",
211
227
  letterSpacing: 0.5,
212
228
  textTransform: "uppercase",
213
229
  fontFamily: "monospace"
@@ -218,12 +234,12 @@ const styles = StyleSheet.create({
218
234
  // Data section matching query editor theme for consistency
219
235
  dataContainer: {
220
236
  minWidth: 200,
221
- backgroundColor: buoyColors.card,
237
+ backgroundColor: night.color.surface,
222
238
  borderRadius: 6,
223
239
  borderWidth: 1,
224
- borderColor: buoyColors.primary + "4D",
240
+ borderColor: night.color.accent + "4D",
225
241
  overflow: "hidden",
226
- shadowColor: buoyColors.primary,
242
+ shadowColor: night.color.accent,
227
243
  shadowOffset: {
228
244
  width: 0,
229
245
  height: 0
@@ -232,14 +248,14 @@ const styles = StyleSheet.create({
232
248
  shadowRadius: 6
233
249
  },
234
250
  dataHeader: {
235
- backgroundColor: buoyColors.primary + "1A",
251
+ backgroundColor: night.color.accent + "1A",
236
252
  paddingHorizontal: 12,
237
253
  paddingVertical: 10,
238
254
  fontWeight: "600",
239
255
  fontSize: 12,
240
- color: buoyColors.primary,
256
+ color: night.color.accent,
241
257
  borderBottomWidth: 1,
242
- borderBottomColor: buoyColors.primary + "33",
258
+ borderBottomColor: night.color.accent + "33",
243
259
  letterSpacing: 0.5,
244
260
  textTransform: "uppercase",
245
261
  fontFamily: "monospace"