@buoy-gg/storage 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.
- package/lib/commonjs/storage/components/DiffViewer/DiffOptionsPanel.js +36 -36
- package/lib/commonjs/storage/components/DiffViewer/TreeDiffViewer.js +2 -2
- package/lib/commonjs/storage/components/DiffViewer/themes/diffThemes.js +19 -108
- package/lib/commonjs/storage/components/GameUIStorageBrowser.js +45 -42
- package/lib/commonjs/storage/components/MMKVInstanceInfoPanel.js +9 -9
- package/lib/commonjs/storage/components/MMKVInstanceSelector.js +24 -24
- package/lib/commonjs/storage/components/SelectionActionBar.js +13 -13
- package/lib/commonjs/storage/components/StorageActionButtons.js +12 -12
- package/lib/commonjs/storage/components/StorageEventActionButton.js +18 -18
- package/lib/commonjs/storage/components/StorageEventDetailContent.js +7 -7
- package/lib/commonjs/storage/components/StorageEventFilterView.js +9 -9
- package/lib/commonjs/storage/components/StorageFilterCards.js +15 -15
- package/lib/commonjs/storage/components/StorageKeyCard.js +21 -21
- package/lib/commonjs/storage/components/StorageKeyEditorScreen.js +19 -18
- package/lib/commonjs/storage/components/StorageKeyRow.js +23 -21
- package/lib/commonjs/storage/components/StorageKeySection.js +3 -3
- package/lib/commonjs/storage/components/StorageKeyStats.js +10 -10
- package/lib/commonjs/storage/components/StorageModalWithTabs.js +19 -14
- package/lib/commonjs/storage/components/StorageTypeFilterBar.js +8 -8
- package/lib/commonjs/storage/components/StorageValueEditModal.js +19 -19
- package/lib/module/storage/components/DiffViewer/DiffOptionsPanel.js +37 -37
- package/lib/module/storage/components/DiffViewer/TreeDiffViewer.js +3 -3
- package/lib/module/storage/components/DiffViewer/themes/diffThemes.js +6 -105
- package/lib/module/storage/components/GameUIStorageBrowser.js +46 -43
- package/lib/module/storage/components/MMKVInstanceInfoPanel.js +10 -10
- package/lib/module/storage/components/MMKVInstanceSelector.js +25 -25
- package/lib/module/storage/components/SelectionActionBar.js +14 -14
- package/lib/module/storage/components/StorageActionButtons.js +13 -13
- package/lib/module/storage/components/StorageEventActionButton.js +19 -19
- package/lib/module/storage/components/StorageEventDetailContent.js +8 -8
- package/lib/module/storage/components/StorageEventFilterView.js +10 -10
- package/lib/module/storage/components/StorageFilterCards.js +16 -16
- package/lib/module/storage/components/StorageKeyCard.js +22 -22
- package/lib/module/storage/components/StorageKeyEditorScreen.js +20 -19
- package/lib/module/storage/components/StorageKeyRow.js +24 -22
- package/lib/module/storage/components/StorageKeySection.js +4 -4
- package/lib/module/storage/components/StorageKeyStats.js +11 -11
- package/lib/module/storage/components/StorageModalWithTabs.js +20 -15
- package/lib/module/storage/components/StorageTypeFilterBar.js +9 -9
- package/lib/module/storage/components/StorageValueEditModal.js +20 -20
- package/lib/typescript/storage/components/DiffViewer/DiffOptionsPanel.d.ts.map +1 -1
- package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts +6 -61
- package/lib/typescript/storage/components/DiffViewer/themes/diffThemes.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageEventActionButton.d.ts +8 -8
- package/lib/typescript/storage/components/StorageEventFilterView.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageKeyCard.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageKeyEditorScreen.d.ts.map +1 -1
- package/lib/typescript/storage/components/StorageModalWithTabs.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
import { useMemo } from "react";
|
|
21
21
|
import { Alert, ScrollView, StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
22
|
-
import { macOSColors, FileJson, PillBadge, useSafeAreaInsets, X } from "@buoy-gg/shared-ui";
|
|
22
|
+
import { macOSColors, night, FileJson, PillBadge, useSafeAreaInsets, X } from "@buoy-gg/shared-ui";
|
|
23
23
|
import { DataViewer, DataTreeActionDock, getAtPath } from "@buoy-gg/shared-ui/dataViewer";
|
|
24
24
|
import { useKeyEditor } from "../hooks/useKeyEditor";
|
|
25
25
|
import { StorageValueEditModal } from "./StorageValueEditModal";
|
|
@@ -206,7 +206,7 @@ function EditorHeader({
|
|
|
206
206
|
},
|
|
207
207
|
children: /*#__PURE__*/_jsx(X, {
|
|
208
208
|
size: 16,
|
|
209
|
-
color:
|
|
209
|
+
color: night.color.textSecondary
|
|
210
210
|
})
|
|
211
211
|
}), /*#__PURE__*/_jsxs(View, {
|
|
212
212
|
style: styles.headerTitle,
|
|
@@ -230,7 +230,7 @@ function EditorHeader({
|
|
|
230
230
|
},
|
|
231
231
|
children: [/*#__PURE__*/_jsx(FileJson, {
|
|
232
232
|
size: 16,
|
|
233
|
-
color:
|
|
233
|
+
color: night.color.accent
|
|
234
234
|
}), /*#__PURE__*/_jsx(Text, {
|
|
235
235
|
style: styles.headerRawText,
|
|
236
236
|
children: "Raw"
|
|
@@ -265,7 +265,8 @@ function storageTypeColor(storageType) {
|
|
|
265
265
|
const styles = StyleSheet.create({
|
|
266
266
|
screen: {
|
|
267
267
|
flex: 1,
|
|
268
|
-
|
|
268
|
+
// Transparent so the night sheet's star field shows through.
|
|
269
|
+
backgroundColor: "transparent"
|
|
269
270
|
},
|
|
270
271
|
header: {
|
|
271
272
|
flexDirection: "row",
|
|
@@ -274,7 +275,7 @@ const styles = StyleSheet.create({
|
|
|
274
275
|
paddingHorizontal: 10,
|
|
275
276
|
paddingVertical: 8,
|
|
276
277
|
borderBottomWidth: 1,
|
|
277
|
-
borderBottomColor:
|
|
278
|
+
borderBottomColor: night.color.border
|
|
278
279
|
},
|
|
279
280
|
headerButton: {
|
|
280
281
|
flexDirection: "row",
|
|
@@ -284,7 +285,7 @@ const styles = StyleSheet.create({
|
|
|
284
285
|
paddingHorizontal: 4
|
|
285
286
|
},
|
|
286
287
|
headerRawText: {
|
|
287
|
-
color:
|
|
288
|
+
color: night.color.accent,
|
|
288
289
|
fontSize: 12,
|
|
289
290
|
fontWeight: "700"
|
|
290
291
|
},
|
|
@@ -294,17 +295,17 @@ const styles = StyleSheet.create({
|
|
|
294
295
|
gap: 2
|
|
295
296
|
},
|
|
296
297
|
headerKey: {
|
|
297
|
-
color:
|
|
298
|
+
color: night.color.text,
|
|
298
299
|
fontSize: 13,
|
|
299
300
|
fontWeight: "600",
|
|
300
301
|
fontFamily: "monospace"
|
|
301
302
|
},
|
|
302
303
|
headerState: {
|
|
303
|
-
color:
|
|
304
|
+
color: night.color.textTertiary,
|
|
304
305
|
fontSize: 10
|
|
305
306
|
},
|
|
306
307
|
headerDirty: {
|
|
307
|
-
color:
|
|
308
|
+
color: night.color.warning
|
|
308
309
|
},
|
|
309
310
|
metaRow: {
|
|
310
311
|
flexDirection: "row",
|
|
@@ -314,7 +315,7 @@ const styles = StyleSheet.create({
|
|
|
314
315
|
paddingVertical: 8
|
|
315
316
|
},
|
|
316
317
|
metaText: {
|
|
317
|
-
color:
|
|
318
|
+
color: night.color.textTertiary,
|
|
318
319
|
fontSize: 11,
|
|
319
320
|
fontFamily: "monospace"
|
|
320
321
|
},
|
|
@@ -326,27 +327,27 @@ const styles = StyleSheet.create({
|
|
|
326
327
|
paddingBottom: 16
|
|
327
328
|
},
|
|
328
329
|
treeCard: {
|
|
329
|
-
backgroundColor:
|
|
330
|
+
backgroundColor: night.color.surface,
|
|
330
331
|
borderRadius: 10,
|
|
331
332
|
borderWidth: 1,
|
|
332
|
-
borderColor:
|
|
333
|
+
borderColor: night.color.border,
|
|
333
334
|
padding: 6
|
|
334
335
|
},
|
|
335
336
|
treeHint: {
|
|
336
|
-
color:
|
|
337
|
+
color: night.color.textTertiary,
|
|
337
338
|
fontSize: 10,
|
|
338
339
|
paddingTop: 8,
|
|
339
340
|
paddingHorizontal: 4
|
|
340
341
|
},
|
|
341
342
|
error: {
|
|
342
|
-
color:
|
|
343
|
+
color: night.color.danger,
|
|
343
344
|
fontSize: 11,
|
|
344
345
|
fontFamily: "monospace",
|
|
345
346
|
paddingHorizontal: 12,
|
|
346
347
|
paddingBottom: 6
|
|
347
348
|
},
|
|
348
349
|
footer: {
|
|
349
|
-
backgroundColor:
|
|
350
|
+
backgroundColor: night.color.surface
|
|
350
351
|
},
|
|
351
352
|
commitRow: {
|
|
352
353
|
flexDirection: "row",
|
|
@@ -362,10 +363,10 @@ const styles = StyleSheet.create({
|
|
|
362
363
|
justifyContent: "center",
|
|
363
364
|
borderRadius: 12,
|
|
364
365
|
borderWidth: 1,
|
|
365
|
-
borderColor:
|
|
366
|
+
borderColor: night.color.border
|
|
366
367
|
},
|
|
367
368
|
discardText: {
|
|
368
|
-
color:
|
|
369
|
+
color: night.color.textSecondary,
|
|
369
370
|
fontSize: 14,
|
|
370
371
|
fontWeight: "600"
|
|
371
372
|
},
|
|
@@ -375,13 +376,13 @@ const styles = StyleSheet.create({
|
|
|
375
376
|
alignItems: "center",
|
|
376
377
|
justifyContent: "center",
|
|
377
378
|
borderRadius: 12,
|
|
378
|
-
backgroundColor:
|
|
379
|
+
backgroundColor: night.color.accent
|
|
379
380
|
},
|
|
380
381
|
saveDisabled: {
|
|
381
382
|
opacity: 0.5
|
|
382
383
|
},
|
|
383
384
|
saveText: {
|
|
384
|
-
color:
|
|
385
|
+
color: night.color.onAccent,
|
|
385
386
|
fontSize: 15,
|
|
386
387
|
fontWeight: "700"
|
|
387
388
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
|
|
5
|
-
import { macOSColors, CompactRow, TypeBadge, HardDrive, Square, CheckSquare, Edit3, EyeOff, Pin, ExpandedInfoRow, PillBadge } from "@buoy-gg/shared-ui";
|
|
5
|
+
import { macOSColors, night, CompactRow, TypeBadge, HardDrive, Square, CheckSquare, Edit3, EyeOff, Pin, ExpandedInfoRow, PillBadge } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { getStorageTypeLabel } from "../utils/storageQueryUtils";
|
|
7
7
|
import { getValueTypeLabel, getValueTypeWithPreview, parseStorageValue } from "../utils/valueType";
|
|
8
8
|
import { DataViewer } from "@buoy-gg/shared-ui/dataViewer";
|
|
@@ -227,7 +227,7 @@ export const StorageKeyRow = /*#__PURE__*/memo(function StorageKeyRow({
|
|
|
227
227
|
},
|
|
228
228
|
children: [/*#__PURE__*/_jsx(Edit3, {
|
|
229
229
|
size: 13,
|
|
230
|
-
color:
|
|
230
|
+
color: night.color.onAccent
|
|
231
231
|
}), /*#__PURE__*/_jsx(Text, {
|
|
232
232
|
style: styles.editButtonText,
|
|
233
233
|
children: isBoolean && onToggleKey ? "Toggle" : "Edit"
|
|
@@ -243,10 +243,11 @@ export const StorageKeyRow = /*#__PURE__*/memo(function StorageKeyRow({
|
|
|
243
243
|
},
|
|
244
244
|
children: [/*#__PURE__*/_jsx(Pin, {
|
|
245
245
|
size: 12,
|
|
246
|
-
|
|
246
|
+
active: isPinned,
|
|
247
|
+
color: night.color.accent
|
|
247
248
|
}), /*#__PURE__*/_jsx(Text, {
|
|
248
249
|
style: [styles.actionChipText, {
|
|
249
|
-
color:
|
|
250
|
+
color: night.color.accent
|
|
250
251
|
}],
|
|
251
252
|
children: isPinned ? "Unpin" : "Pin to top"
|
|
252
253
|
})]
|
|
@@ -261,10 +262,10 @@ export const StorageKeyRow = /*#__PURE__*/memo(function StorageKeyRow({
|
|
|
261
262
|
},
|
|
262
263
|
children: [/*#__PURE__*/_jsx(EyeOff, {
|
|
263
264
|
size: 12,
|
|
264
|
-
color:
|
|
265
|
+
color: night.color.warning
|
|
265
266
|
}), /*#__PURE__*/_jsx(Text, {
|
|
266
267
|
style: [styles.actionChipText, {
|
|
267
|
-
color:
|
|
268
|
+
color: night.color.warning
|
|
268
269
|
}],
|
|
269
270
|
children: "Hide from list"
|
|
270
271
|
})]
|
|
@@ -289,10 +290,10 @@ export const StorageKeyRow = /*#__PURE__*/memo(function StorageKeyRow({
|
|
|
289
290
|
},
|
|
290
291
|
children: isSelected ? /*#__PURE__*/_jsx(CheckSquare, {
|
|
291
292
|
size: 18,
|
|
292
|
-
color:
|
|
293
|
+
color: night.color.accent
|
|
293
294
|
}) : /*#__PURE__*/_jsx(Square, {
|
|
294
295
|
size: 18,
|
|
295
|
-
color:
|
|
296
|
+
color: night.color.textTertiary
|
|
296
297
|
})
|
|
297
298
|
}) : null;
|
|
298
299
|
return /*#__PURE__*/_jsxs(View, {
|
|
@@ -317,7 +318,8 @@ export const StorageKeyRow = /*#__PURE__*/memo(function StorageKeyRow({
|
|
|
317
318
|
style: styles.badgeRow,
|
|
318
319
|
children: [isPinned && /*#__PURE__*/_jsx(Pin, {
|
|
319
320
|
size: 12,
|
|
320
|
-
|
|
321
|
+
active: true,
|
|
322
|
+
color: night.color.accent
|
|
321
323
|
}), /*#__PURE__*/_jsx(PillBadge, {
|
|
322
324
|
color: getStorageTypeColor(storageKey.storageType),
|
|
323
325
|
children: storageTypeLabel
|
|
@@ -369,14 +371,14 @@ const styles = StyleSheet.create({
|
|
|
369
371
|
},
|
|
370
372
|
expandedLabel: {
|
|
371
373
|
fontSize: 10,
|
|
372
|
-
color:
|
|
374
|
+
color: night.color.textTertiary,
|
|
373
375
|
fontWeight: "600",
|
|
374
376
|
minWidth: 70,
|
|
375
377
|
fontFamily: "monospace"
|
|
376
378
|
},
|
|
377
379
|
expandedValue: {
|
|
378
380
|
fontSize: 11,
|
|
379
|
-
color:
|
|
381
|
+
color: night.color.textSecondary,
|
|
380
382
|
fontFamily: "monospace",
|
|
381
383
|
flex: 1
|
|
382
384
|
},
|
|
@@ -388,16 +390,16 @@ const styles = StyleSheet.create({
|
|
|
388
390
|
},
|
|
389
391
|
expandedDescription: {
|
|
390
392
|
fontSize: 11,
|
|
391
|
-
color:
|
|
393
|
+
color: night.color.textSecondary,
|
|
392
394
|
flex: 1
|
|
393
395
|
},
|
|
394
396
|
dataViewerContainer: {
|
|
395
397
|
marginTop: 6,
|
|
396
398
|
marginBottom: 6,
|
|
397
|
-
backgroundColor:
|
|
399
|
+
backgroundColor: night.color.bg,
|
|
398
400
|
borderRadius: 6,
|
|
399
401
|
borderWidth: 1,
|
|
400
|
-
borderColor:
|
|
402
|
+
borderColor: night.color.border,
|
|
401
403
|
padding: 6
|
|
402
404
|
},
|
|
403
405
|
rowContainer: {
|
|
@@ -405,7 +407,7 @@ const styles = StyleSheet.create({
|
|
|
405
407
|
alignItems: "flex-start"
|
|
406
408
|
},
|
|
407
409
|
rowContainerSelected: {
|
|
408
|
-
backgroundColor:
|
|
410
|
+
backgroundColor: night.color.accentSoft,
|
|
409
411
|
borderRadius: 8
|
|
410
412
|
},
|
|
411
413
|
checkboxContainer: {
|
|
@@ -446,13 +448,13 @@ const styles = StyleSheet.create({
|
|
|
446
448
|
paddingVertical: 6,
|
|
447
449
|
paddingHorizontal: 10,
|
|
448
450
|
borderRadius: 6,
|
|
449
|
-
backgroundColor:
|
|
451
|
+
backgroundColor: night.color.surface,
|
|
450
452
|
borderWidth: 1,
|
|
451
|
-
borderColor:
|
|
453
|
+
borderColor: night.color.border
|
|
452
454
|
},
|
|
453
455
|
actionChipActive: {
|
|
454
|
-
backgroundColor:
|
|
455
|
-
borderColor:
|
|
456
|
+
backgroundColor: night.color.accentSoft,
|
|
457
|
+
borderColor: night.color.accentBorderStrong
|
|
456
458
|
},
|
|
457
459
|
/** Filled, and first — the one action in this row that changes anything. */
|
|
458
460
|
editButton: {
|
|
@@ -462,10 +464,10 @@ const styles = StyleSheet.create({
|
|
|
462
464
|
paddingVertical: 8,
|
|
463
465
|
paddingHorizontal: 14,
|
|
464
466
|
borderRadius: 8,
|
|
465
|
-
backgroundColor:
|
|
467
|
+
backgroundColor: night.color.accent
|
|
466
468
|
},
|
|
467
469
|
editButtonText: {
|
|
468
|
-
color:
|
|
470
|
+
color: night.color.onAccent,
|
|
469
471
|
fontSize: 12,
|
|
470
472
|
fontWeight: "700"
|
|
471
473
|
},
|
|
@@ -481,6 +483,6 @@ const styles = StyleSheet.create({
|
|
|
481
483
|
fontSize: 10,
|
|
482
484
|
fontWeight: "600",
|
|
483
485
|
fontFamily: "monospace",
|
|
484
|
-
color:
|
|
486
|
+
color: night.color.accent
|
|
485
487
|
}
|
|
486
488
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
4
|
import { View, Text, StyleSheet } from "react-native";
|
|
5
5
|
import { StorageKeyRow } from "./StorageKeyRow";
|
|
6
|
-
import { SectionHeader,
|
|
6
|
+
import { SectionHeader, night } from "@buoy-gg/shared-ui";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
/**
|
|
9
9
|
* Storage key section component following composition principles [[rule3]]
|
|
@@ -102,15 +102,15 @@ const styles = StyleSheet.create({
|
|
|
102
102
|
// No gap needed, StorageKeyRow has its own margins
|
|
103
103
|
},
|
|
104
104
|
emptySection: {
|
|
105
|
-
backgroundColor:
|
|
105
|
+
backgroundColor: night.color.surface,
|
|
106
106
|
borderRadius: 6,
|
|
107
107
|
padding: 16,
|
|
108
108
|
borderWidth: 1,
|
|
109
|
-
borderColor:
|
|
109
|
+
borderColor: night.color.border,
|
|
110
110
|
alignItems: "center"
|
|
111
111
|
},
|
|
112
112
|
emptySectionText: {
|
|
113
|
-
color:
|
|
113
|
+
color: night.color.textTertiary,
|
|
114
114
|
fontSize: 11,
|
|
115
115
|
textAlign: "center"
|
|
116
116
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { View, Text, StyleSheet } from "react-native";
|
|
4
4
|
import { AlertCircle, CheckCircle2, XCircle, Eye, Database, Shield } from "@buoy-gg/shared-ui";
|
|
5
|
-
import {
|
|
5
|
+
import { night } from "@buoy-gg/shared-ui";
|
|
6
6
|
import { getStorageTypeHexColor } from "../utils/storageQueryUtils";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
// Variable type configurations matching env vars design
|
|
@@ -256,15 +256,15 @@ export function StorageKeyStatsSection({
|
|
|
256
256
|
const styles = StyleSheet.create({
|
|
257
257
|
statsContainer: {
|
|
258
258
|
marginBottom: 24,
|
|
259
|
-
backgroundColor:
|
|
259
|
+
backgroundColor: night.color.surface,
|
|
260
260
|
borderRadius: 8,
|
|
261
261
|
padding: 16,
|
|
262
262
|
borderWidth: 1,
|
|
263
|
-
borderColor:
|
|
263
|
+
borderColor: night.color.border
|
|
264
264
|
},
|
|
265
265
|
// Section titles
|
|
266
266
|
sectionTitle: {
|
|
267
|
-
color:
|
|
267
|
+
color: night.color.textSecondary,
|
|
268
268
|
fontSize: 12,
|
|
269
269
|
fontWeight: "500",
|
|
270
270
|
marginBottom: 16,
|
|
@@ -280,11 +280,11 @@ const styles = StyleSheet.create({
|
|
|
280
280
|
gap: 12
|
|
281
281
|
},
|
|
282
282
|
breakdownItem: {
|
|
283
|
-
backgroundColor:
|
|
283
|
+
backgroundColor: night.color.surfaceElevated,
|
|
284
284
|
padding: 12,
|
|
285
285
|
borderRadius: 8,
|
|
286
286
|
borderWidth: 1,
|
|
287
|
-
borderColor:
|
|
287
|
+
borderColor: night.color.border
|
|
288
288
|
},
|
|
289
289
|
breakdownItemRow: {
|
|
290
290
|
flexDirection: "row",
|
|
@@ -307,12 +307,12 @@ const styles = StyleSheet.create({
|
|
|
307
307
|
minWidth: 0
|
|
308
308
|
},
|
|
309
309
|
breakdownItemLabel: {
|
|
310
|
-
color:
|
|
310
|
+
color: night.color.text,
|
|
311
311
|
fontSize: 14,
|
|
312
312
|
fontWeight: "500"
|
|
313
313
|
},
|
|
314
314
|
breakdownItemDesc: {
|
|
315
|
-
color:
|
|
315
|
+
color: night.color.textSecondary,
|
|
316
316
|
fontSize: 12
|
|
317
317
|
},
|
|
318
318
|
breakdownItemRight: {
|
|
@@ -323,18 +323,18 @@ const styles = StyleSheet.create({
|
|
|
323
323
|
fontWeight: "600"
|
|
324
324
|
},
|
|
325
325
|
breakdownPercentage: {
|
|
326
|
-
color:
|
|
326
|
+
color: night.color.textTertiary,
|
|
327
327
|
fontSize: 10
|
|
328
328
|
},
|
|
329
329
|
// Empty state
|
|
330
330
|
emptyState: {
|
|
331
331
|
padding: 16,
|
|
332
|
-
backgroundColor:
|
|
332
|
+
backgroundColor: night.color.surfaceElevated,
|
|
333
333
|
borderRadius: 6,
|
|
334
334
|
alignItems: "center"
|
|
335
335
|
},
|
|
336
336
|
emptyStateText: {
|
|
337
|
-
color:
|
|
337
|
+
color: night.color.textTertiary,
|
|
338
338
|
fontSize: 11,
|
|
339
339
|
textAlign: "center"
|
|
340
340
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { useState, useCallback, useEffect, useRef, useMemo } from "react";
|
|
4
4
|
import { Text, View, TouchableOpacity, StyleSheet, FlatList, Alert } from "react-native";
|
|
5
5
|
import AsyncStorage from "@react-native-async-storage/async-storage";
|
|
6
|
-
import { JsModal, ModalHeader, TabSelector, parseValue, devToolsStorageKeys, macOSColors, Database, Filter, RefreshCw, Search, SearchBar, PowerToggleButton, ToolbarCopyButton, ToolbarClearButton, truncatePayload, TickProvider, useLimit, TIER_LIMITS } from "@buoy-gg/shared-ui";
|
|
6
|
+
import { JsModal, ModalHeader, TabSelector, parseValue, devToolsStorageKeys, macOSColors, night, Database, Filter, RefreshCw, Search, SearchBar, PowerToggleButton, ToolbarCopyButton, ToolbarClearButton, truncatePayload, TickProvider, useLimit, TIER_LIMITS } from "@buoy-gg/shared-ui";
|
|
7
7
|
import { StorageBrowserMode } from "./StorageBrowserMode";
|
|
8
8
|
import { StorageTypeFilterBar, countByStorageType } from "./StorageTypeFilterBar";
|
|
9
9
|
import { clearAllAppStorage, clearAllStorageIncludingDevTools } from "../utils/clearAllStorage";
|
|
@@ -663,7 +663,7 @@ export function StorageModalWithTabs({
|
|
|
663
663
|
style: styles.emptyState,
|
|
664
664
|
children: [/*#__PURE__*/_jsx(Database, {
|
|
665
665
|
size: 48,
|
|
666
|
-
color:
|
|
666
|
+
color: night.color.textTertiary
|
|
667
667
|
}), /*#__PURE__*/_jsx(Text, {
|
|
668
668
|
style: styles.emptyTitle,
|
|
669
669
|
children: !isListening ? "Event listener is paused" : filtered ? `No ${storageTypeFilter} events` : "No storage events yet"
|
|
@@ -783,14 +783,14 @@ export function StorageModalWithTabs({
|
|
|
783
783
|
accessibilityLabel: "Refresh storage",
|
|
784
784
|
children: /*#__PURE__*/_jsx(RefreshCw, {
|
|
785
785
|
size: 14,
|
|
786
|
-
color:
|
|
786
|
+
color: night.color.textSecondary
|
|
787
787
|
})
|
|
788
788
|
}) : null, /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
789
789
|
onPress: handleToggleFilters,
|
|
790
790
|
style: [styles.iconButton, (ignoredPatterns.size > 0 || enabledStorageTypes.size < 3) && styles.activeFilterButton],
|
|
791
791
|
children: /*#__PURE__*/_jsx(Filter, {
|
|
792
792
|
size: 14,
|
|
793
|
-
color: ignoredPatterns.size > 0 || enabledStorageTypes.size < 3 ?
|
|
793
|
+
color: ignoredPatterns.size > 0 || enabledStorageTypes.size < 3 ? night.color.accent : night.color.textSecondary
|
|
794
794
|
})
|
|
795
795
|
}), activeTab === "browser" && !isSearchActive && /*#__PURE__*/_jsxs(_Fragment, {
|
|
796
796
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
@@ -798,7 +798,7 @@ export function StorageModalWithTabs({
|
|
|
798
798
|
style: styles.iconButton,
|
|
799
799
|
children: /*#__PURE__*/_jsx(Search, {
|
|
800
800
|
size: 14,
|
|
801
|
-
color:
|
|
801
|
+
color: night.color.textSecondary
|
|
802
802
|
})
|
|
803
803
|
}), /*#__PURE__*/_jsx(ToolbarCopyButton, {
|
|
804
804
|
value: getStorageSnapshot,
|
|
@@ -877,7 +877,9 @@ const styles = StyleSheet.create({
|
|
|
877
877
|
inlineRoot: {
|
|
878
878
|
flex: 1,
|
|
879
879
|
minHeight: 0,
|
|
880
|
-
|
|
880
|
+
// Transparent so the desktop workbench's hoisted sky (one field spanning
|
|
881
|
+
// sidebar + panel) shows through — the shell paints its base beneath it.
|
|
882
|
+
backgroundColor: "transparent"
|
|
881
883
|
},
|
|
882
884
|
inlineHeader: {
|
|
883
885
|
paddingHorizontal: 12,
|
|
@@ -892,18 +894,21 @@ const styles = StyleSheet.create({
|
|
|
892
894
|
flexFill: {
|
|
893
895
|
flex: 1
|
|
894
896
|
},
|
|
897
|
+
// Night chrome — the header is glass over the star field, so the action
|
|
898
|
+
// chips sit on the Everlights dark-glass fill.
|
|
895
899
|
iconButton: {
|
|
896
900
|
width: 32,
|
|
897
901
|
height: 32,
|
|
898
902
|
borderRadius: 8,
|
|
899
|
-
backgroundColor:
|
|
903
|
+
backgroundColor: night.color.buttonSurface,
|
|
900
904
|
borderWidth: 1,
|
|
901
|
-
borderColor:
|
|
905
|
+
borderColor: night.color.border,
|
|
902
906
|
alignItems: "center",
|
|
903
907
|
justifyContent: "center"
|
|
904
908
|
},
|
|
905
909
|
activeFilterButton: {
|
|
906
|
-
backgroundColor:
|
|
910
|
+
backgroundColor: night.color.accentSoft,
|
|
911
|
+
borderColor: night.color.accentBorderStrong
|
|
907
912
|
},
|
|
908
913
|
separator: {
|
|
909
914
|
height: 8
|
|
@@ -928,7 +933,7 @@ const styles = StyleSheet.create({
|
|
|
928
933
|
padding: 32
|
|
929
934
|
},
|
|
930
935
|
emptyTitle: {
|
|
931
|
-
color:
|
|
936
|
+
color: night.color.text,
|
|
932
937
|
fontSize: 16,
|
|
933
938
|
fontWeight: "600",
|
|
934
939
|
marginTop: 16,
|
|
@@ -938,7 +943,7 @@ const styles = StyleSheet.create({
|
|
|
938
943
|
textTransform: "uppercase"
|
|
939
944
|
},
|
|
940
945
|
emptySubtitle: {
|
|
941
|
-
color:
|
|
946
|
+
color: night.color.textSecondary,
|
|
942
947
|
fontSize: 14,
|
|
943
948
|
textAlign: "center",
|
|
944
949
|
fontFamily: "monospace"
|
|
@@ -957,7 +962,7 @@ const styles = StyleSheet.create({
|
|
|
957
962
|
opacity: 0.3
|
|
958
963
|
},
|
|
959
964
|
eventCounter: {
|
|
960
|
-
color:
|
|
965
|
+
color: night.color.text,
|
|
961
966
|
fontSize: 12,
|
|
962
967
|
fontWeight: "600",
|
|
963
968
|
fontFamily: "monospace",
|
|
@@ -974,19 +979,19 @@ const styles = StyleSheet.create({
|
|
|
974
979
|
flexDirection: "row",
|
|
975
980
|
alignItems: "center",
|
|
976
981
|
gap: 6,
|
|
977
|
-
backgroundColor:
|
|
982
|
+
backgroundColor: night.color.surfaceElevated,
|
|
978
983
|
paddingHorizontal: 10,
|
|
979
984
|
paddingVertical: 4,
|
|
980
985
|
borderRadius: 6,
|
|
981
986
|
borderWidth: 1,
|
|
982
|
-
borderColor:
|
|
987
|
+
borderColor: night.color.border,
|
|
983
988
|
height: 28
|
|
984
989
|
},
|
|
985
990
|
keyNameText: {
|
|
986
991
|
flex: 1,
|
|
987
992
|
fontSize: 13,
|
|
988
993
|
fontWeight: "600",
|
|
989
|
-
color:
|
|
994
|
+
color: night.color.accent,
|
|
990
995
|
fontFamily: "monospace",
|
|
991
996
|
letterSpacing: 0.5
|
|
992
997
|
},
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
|
|
20
|
-
import { macOSColors } from "@buoy-gg/shared-ui";
|
|
20
|
+
import { macOSColors, night } from "@buoy-gg/shared-ui";
|
|
21
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
22
|
/**
|
|
23
23
|
* One entry per pill. This was four near-identical blocks of JSX differing only
|
|
@@ -50,7 +50,7 @@ export function StorageTypeFilterBar({
|
|
|
50
50
|
style: styles.row,
|
|
51
51
|
children: SEGMENTS.map(segment => {
|
|
52
52
|
const isActive = active === segment.id;
|
|
53
|
-
const accent = segment.color ??
|
|
53
|
+
const accent = segment.color ?? night.color.accent;
|
|
54
54
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
55
55
|
accessibilityLabel: `Filter by ${segment.label}`,
|
|
56
56
|
accessibilityState: {
|
|
@@ -59,13 +59,13 @@ export function StorageTypeFilterBar({
|
|
|
59
59
|
activeOpacity: 0.8,
|
|
60
60
|
onPress: () => onChange(segment.id),
|
|
61
61
|
style: [styles.pill, {
|
|
62
|
-
borderColor:
|
|
62
|
+
borderColor: night.color.border
|
|
63
63
|
}, isActive && [styles.pillActive, segment.color ? {
|
|
64
64
|
backgroundColor: segment.color + "15",
|
|
65
65
|
borderColor: segment.color + "40"
|
|
66
66
|
} : {
|
|
67
|
-
backgroundColor:
|
|
68
|
-
borderColor:
|
|
67
|
+
backgroundColor: night.color.accentSoft,
|
|
68
|
+
borderColor: night.color.accentBorderStrong
|
|
69
69
|
}]],
|
|
70
70
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
71
71
|
style: [styles.label, isActive && {
|
|
@@ -75,7 +75,7 @@ export function StorageTypeFilterBar({
|
|
|
75
75
|
children: segment.label
|
|
76
76
|
}), /*#__PURE__*/_jsx(Text, {
|
|
77
77
|
style: [styles.value, {
|
|
78
|
-
color: isActive ? accent :
|
|
78
|
+
color: isActive ? accent : night.color.textTertiary
|
|
79
79
|
}],
|
|
80
80
|
children: counts[segment.id]
|
|
81
81
|
})]
|
|
@@ -103,10 +103,10 @@ const styles = StyleSheet.create({
|
|
|
103
103
|
},
|
|
104
104
|
pill: {
|
|
105
105
|
flex: 1,
|
|
106
|
-
backgroundColor:
|
|
106
|
+
backgroundColor: night.color.buttonSurface,
|
|
107
107
|
borderRadius: 8,
|
|
108
108
|
borderWidth: 1,
|
|
109
|
-
borderColor:
|
|
109
|
+
borderColor: night.color.border,
|
|
110
110
|
paddingVertical: 6,
|
|
111
111
|
paddingHorizontal: 8,
|
|
112
112
|
alignItems: "center",
|
|
@@ -121,7 +121,7 @@ const styles = StyleSheet.create({
|
|
|
121
121
|
},
|
|
122
122
|
label: {
|
|
123
123
|
fontSize: 9,
|
|
124
|
-
color:
|
|
124
|
+
color: night.color.textSecondary,
|
|
125
125
|
textTransform: "uppercase",
|
|
126
126
|
letterSpacing: 0.4,
|
|
127
127
|
fontWeight: "500",
|