@buoy-gg/shared-ui 2.1.5 → 2.1.8
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/env/EnvironmentIndicator.js +3 -1
- package/lib/commonjs/env/EnvironmentSelector.js +3 -2
- package/lib/commonjs/env/EnvironmentSelectorInline.js +3 -2
- package/lib/commonjs/hooks/safe-area-impl.js +1 -1
- package/lib/commonjs/index.js +8 -0
- package/lib/commonjs/types/types.js +25 -0
- package/lib/commonjs/ui/components/CopyButton.js +41 -2
- package/lib/commonjs/ui/components/ExpandedInfoRow.js +95 -0
- package/lib/commonjs/ui/components/index.js +19 -0
- package/lib/commonjs/utils/formatting/dataFormatting.js +29 -0
- package/lib/module/env/EnvironmentIndicator.js +3 -1
- package/lib/module/env/EnvironmentSelector.js +5 -3
- package/lib/module/env/EnvironmentSelectorInline.js +5 -3
- package/lib/module/hooks/safe-area-impl.js +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/types/types.js +24 -0
- package/lib/module/ui/components/CopyButton.js +41 -2
- package/lib/module/ui/components/ExpandedInfoRow.js +90 -0
- package/lib/module/ui/components/index.js +3 -1
- package/lib/module/utils/formatting/dataFormatting.js +27 -0
- package/lib/typescript/commonjs/env/EnvironmentIndicator.d.ts +2 -2
- package/lib/typescript/commonjs/env/EnvironmentIndicator.d.ts.map +1 -1
- package/lib/typescript/commonjs/env/EnvironmentSelector.d.ts +1 -1
- package/lib/typescript/commonjs/env/EnvironmentSelector.d.ts.map +1 -1
- package/lib/typescript/commonjs/env/EnvironmentSelectorInline.d.ts +1 -1
- package/lib/typescript/commonjs/env/EnvironmentSelectorInline.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/types/types.d.ts +5 -0
- package/lib/typescript/commonjs/types/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/CopyButton.d.ts +10 -0
- package/lib/typescript/commonjs/ui/components/CopyButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts +32 -0
- package/lib/typescript/commonjs/ui/components/ExpandedInfoRow.d.ts.map +1 -0
- package/lib/typescript/commonjs/ui/components/index.d.ts +2 -1
- package/lib/typescript/commonjs/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/formatting/dataFormatting.d.ts +15 -0
- package/lib/typescript/commonjs/utils/formatting/dataFormatting.d.ts.map +1 -1
- package/lib/typescript/module/env/EnvironmentIndicator.d.ts +2 -2
- package/lib/typescript/module/env/EnvironmentIndicator.d.ts.map +1 -1
- package/lib/typescript/module/env/EnvironmentSelector.d.ts +1 -1
- package/lib/typescript/module/env/EnvironmentSelector.d.ts.map +1 -1
- package/lib/typescript/module/env/EnvironmentSelectorInline.d.ts +1 -1
- package/lib/typescript/module/env/EnvironmentSelectorInline.d.ts.map +1 -1
- package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/types/types.d.ts +5 -0
- package/lib/typescript/module/types/types.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/CopyButton.d.ts +10 -0
- package/lib/typescript/module/ui/components/CopyButton.d.ts.map +1 -1
- package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts +32 -0
- package/lib/typescript/module/ui/components/ExpandedInfoRow.d.ts.map +1 -0
- package/lib/typescript/module/ui/components/index.d.ts +2 -1
- package/lib/typescript/module/ui/components/index.d.ts.map +1 -1
- package/lib/typescript/module/utils/formatting/dataFormatting.d.ts +15 -0
- package/lib/typescript/module/utils/formatting/dataFormatting.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -7,9 +7,11 @@ exports.EnvironmentIndicator = EnvironmentIndicator;
|
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _index = require("../icons/index.js");
|
|
9
9
|
var _gameUIColors = require("../ui/gameUI/constants/gameUIColors.js");
|
|
10
|
+
var _types = require("../types/types.js");
|
|
10
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
12
|
function getEnvironmentConfig(environment) {
|
|
12
|
-
|
|
13
|
+
const normalized = (0, _types.normalizeEnvironment)(environment);
|
|
14
|
+
switch (normalized) {
|
|
13
15
|
case "local":
|
|
14
16
|
return {
|
|
15
17
|
label: "LOCAL",
|
|
@@ -9,12 +9,12 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
var _index = require("../icons/index.js");
|
|
10
10
|
var _gameUIColors = require("../ui/gameUI/constants/gameUIColors.js");
|
|
11
11
|
var _ExpandablePopover = require("../ui/components/ExpandablePopover.js");
|
|
12
|
+
var _types = require("../types/types.js");
|
|
12
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
// ============================================================================
|
|
15
16
|
// Constants
|
|
16
17
|
// ============================================================================
|
|
17
|
-
|
|
18
18
|
const ENV_SELECTOR_WIDTH = 140; // Wider than minimized tools stack
|
|
19
19
|
const PEEK_HEIGHT = 28;
|
|
20
20
|
const OPTION_HEIGHT = 44;
|
|
@@ -30,7 +30,8 @@ const COLLAPSE_BUTTON_HEIGHT = 24;
|
|
|
30
30
|
// ============================================================================
|
|
31
31
|
|
|
32
32
|
function getEnvironmentConfig(environment) {
|
|
33
|
-
|
|
33
|
+
const normalized = (0, _types.normalizeEnvironment)(environment);
|
|
34
|
+
switch (normalized) {
|
|
34
35
|
case "local":
|
|
35
36
|
return {
|
|
36
37
|
label: "LOCAL",
|
|
@@ -8,12 +8,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _index = require("../icons/index.js");
|
|
10
10
|
var _gameUIColors = require("../ui/gameUI/constants/gameUIColors.js");
|
|
11
|
+
var _types = require("../types/types.js");
|
|
11
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Constants
|
|
15
16
|
// ============================================================================
|
|
16
|
-
|
|
17
17
|
const OPTION_HEIGHT = 36;
|
|
18
18
|
|
|
19
19
|
// ============================================================================
|
|
@@ -25,7 +25,8 @@ const OPTION_HEIGHT = 36;
|
|
|
25
25
|
// ============================================================================
|
|
26
26
|
|
|
27
27
|
function getEnvironmentConfig(environment) {
|
|
28
|
-
|
|
28
|
+
const normalized = (0, _types.normalizeEnvironment)(environment);
|
|
29
|
+
switch (normalized) {
|
|
29
30
|
case "local":
|
|
30
31
|
return {
|
|
31
32
|
label: "LOCAL",
|
|
@@ -7,7 +7,7 @@ exports.useNativeSafeAreaInsets = exports.safeAreaType = exports.hasSafeAreaPack
|
|
|
7
7
|
/**
|
|
8
8
|
* Auto-generated safe area implementation
|
|
9
9
|
* Detected: none
|
|
10
|
-
* Generated at: 2026-
|
|
10
|
+
* Generated at: 2026-03-17T23:38:16.354Z
|
|
11
11
|
*
|
|
12
12
|
* DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
|
|
13
13
|
*
|
package/lib/commonjs/index.js
CHANGED
|
@@ -50,6 +50,7 @@ var _exportNames = {
|
|
|
50
50
|
EnvironmentIndicator: true,
|
|
51
51
|
EnvironmentSelector: true,
|
|
52
52
|
EnvironmentSelectorInline: true,
|
|
53
|
+
normalizeEnvironment: true,
|
|
53
54
|
HintsProvider: true,
|
|
54
55
|
useHintsDisabled: true,
|
|
55
56
|
useHintsContext: true,
|
|
@@ -310,6 +311,12 @@ Object.defineProperty(exports, "macOSColors", {
|
|
|
310
311
|
return _macOSDesignSystemColors.macOSColors;
|
|
311
312
|
}
|
|
312
313
|
});
|
|
314
|
+
Object.defineProperty(exports, "normalizeEnvironment", {
|
|
315
|
+
enumerable: true,
|
|
316
|
+
get: function () {
|
|
317
|
+
return _types.normalizeEnvironment;
|
|
318
|
+
}
|
|
319
|
+
});
|
|
313
320
|
Object.defineProperty(exports, "notifySubscriberCountChange", {
|
|
314
321
|
enumerable: true,
|
|
315
322
|
get: function () {
|
|
@@ -535,6 +542,7 @@ var _macOSDesignSystemColors = require("./ui/gameUI/constants/macOSDesignSystemC
|
|
|
535
542
|
var _EnvironmentIndicator = require("./env/EnvironmentIndicator.js");
|
|
536
543
|
var _EnvironmentSelector = require("./env/EnvironmentSelector.js");
|
|
537
544
|
var _EnvironmentSelectorInline = require("./env/EnvironmentSelectorInline.js");
|
|
545
|
+
var _types = require("./types/types.js");
|
|
538
546
|
var _index10 = require("./context/index.js");
|
|
539
547
|
var _index11 = require("./history/index.js");
|
|
540
548
|
Object.keys(_index11).forEach(function (key) {
|
|
@@ -4,9 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.isPlainObject = isPlainObject;
|
|
7
|
+
exports.normalizeEnvironment = normalizeEnvironment;
|
|
7
8
|
// Shared type definitions for the dev tools
|
|
8
9
|
|
|
9
10
|
// Type guard to check if a value is a plain object (not Date, Array, etc.)
|
|
10
11
|
function isPlainObject(value) {
|
|
11
12
|
return value !== null && value !== undefined && typeof value === "object" && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof Error) && !(value instanceof Map) && !(value instanceof Set) && !(value instanceof RegExp) && typeof value !== "function";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Normalizes common environment strings to canonical Environment values.
|
|
16
|
+
* Handles variants like "production" → "prod", "development" → "dev", etc.
|
|
17
|
+
*/
|
|
18
|
+
function normalizeEnvironment(env) {
|
|
19
|
+
switch (env.toLowerCase().trim()) {
|
|
20
|
+
case "local":
|
|
21
|
+
return "local";
|
|
22
|
+
case "dev":
|
|
23
|
+
case "development":
|
|
24
|
+
return "dev";
|
|
25
|
+
case "qa":
|
|
26
|
+
case "test":
|
|
27
|
+
return "qa";
|
|
28
|
+
case "staging":
|
|
29
|
+
case "stage":
|
|
30
|
+
return "staging";
|
|
31
|
+
case "prod":
|
|
32
|
+
case "production":
|
|
33
|
+
return "prod";
|
|
34
|
+
default:
|
|
35
|
+
return "local";
|
|
36
|
+
}
|
|
12
37
|
}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.ToolbarCopyButton = exports.InlineCopyButton = exports.CopyButton = exports.ActionCopyButton = void 0;
|
|
6
|
+
exports.ToolbarCopyButton = exports.ToolbarClearButton = exports.InlineCopyButton = exports.CopyButton = exports.ActionCopyButton = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _copyToClipboard = require("../../clipboard/copyToClipboard.js");
|
|
10
10
|
var _gameUIColors = require("../gameUI/constants/gameUIColors.js");
|
|
11
11
|
var _lucideIcons = require("../../icons/lucide-icons.js");
|
|
12
|
+
var _macOSDesignSystemColors = require("../gameUI/constants/macOSDesignSystemColors.js");
|
|
12
13
|
var _ClipboardHintBanner = require("./ClipboardHintBanner.js");
|
|
13
14
|
var _devToolsStorageKeys = require("../../storage/devToolsStorageKeys.js");
|
|
14
15
|
var _persistentStorage = require("../../utils/persistentStorage.js");
|
|
@@ -110,7 +111,8 @@ const CopyButton = exports.CopyButton = /*#__PURE__*/(0, _react.memo)(function C
|
|
|
110
111
|
timeoutRef.current = null;
|
|
111
112
|
}
|
|
112
113
|
try {
|
|
113
|
-
const
|
|
114
|
+
const resolvedValue = typeof valueRef.current === "function" ? valueRef.current() : valueRef.current;
|
|
115
|
+
const copied = await (0, _copyToClipboard.copyToClipboard)(resolvedValue);
|
|
114
116
|
if (copied) {
|
|
115
117
|
setCopyState("success");
|
|
116
118
|
onCopySuccess?.();
|
|
@@ -238,4 +240,41 @@ const ActionCopyButton = exports.ActionCopyButton = /*#__PURE__*/(0, _react.memo
|
|
|
238
240
|
size: 18,
|
|
239
241
|
...props
|
|
240
242
|
});
|
|
243
|
+
});
|
|
244
|
+
/**
|
|
245
|
+
* Shared clear/trash button for devtool headers.
|
|
246
|
+
* Always renders a red Trash2 icon — consistent across all tools.
|
|
247
|
+
*/
|
|
248
|
+
const ToolbarClearButton = exports.ToolbarClearButton = /*#__PURE__*/(0, _react.memo)(function ToolbarClearButton({
|
|
249
|
+
onPress,
|
|
250
|
+
disabled = false,
|
|
251
|
+
buttonStyle
|
|
252
|
+
}) {
|
|
253
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
|
254
|
+
onPress: onPress,
|
|
255
|
+
style: [clearStyles.button, disabled && clearStyles.disabled, buttonStyle],
|
|
256
|
+
disabled: disabled,
|
|
257
|
+
hitSlop: {
|
|
258
|
+
top: 8,
|
|
259
|
+
bottom: 8,
|
|
260
|
+
left: 8,
|
|
261
|
+
right: 8
|
|
262
|
+
},
|
|
263
|
+
accessibilityLabel: "Clear",
|
|
264
|
+
accessibilityRole: "button",
|
|
265
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideIcons.Trash2, {
|
|
266
|
+
size: 14,
|
|
267
|
+
color: disabled ? _macOSDesignSystemColors.macOSColors.text.disabled : _macOSDesignSystemColors.macOSColors.semantic.error
|
|
268
|
+
})
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
const clearStyles = _reactNative.StyleSheet.create({
|
|
272
|
+
button: {
|
|
273
|
+
padding: 4,
|
|
274
|
+
justifyContent: "center",
|
|
275
|
+
alignItems: "center"
|
|
276
|
+
},
|
|
277
|
+
disabled: {
|
|
278
|
+
opacity: 0.4
|
|
279
|
+
}
|
|
241
280
|
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ExpandedInfoRow = ExpandedInfoRow;
|
|
7
|
+
exports.PillBadge = PillBadge;
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _macOSDesignSystemColors = require("../gameUI/constants/macOSDesignSystemColors.js");
|
|
10
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
|
+
/**
|
|
12
|
+
* ExpandedInfoRow
|
|
13
|
+
*
|
|
14
|
+
* Shared primitive for the `label: [badge]` rows inside expanded DevTools cards.
|
|
15
|
+
* Used by both @buoy-gg/storage and @buoy-gg/zustand to keep expanded content
|
|
16
|
+
* visually consistent across tools.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <ExpandedInfoRow label="Storage">
|
|
21
|
+
* <PillBadge color={color}>MMKV</PillBadge>
|
|
22
|
+
* </ExpandedInfoRow>
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
function ExpandedInfoRow({
|
|
27
|
+
label,
|
|
28
|
+
children
|
|
29
|
+
}) {
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
31
|
+
style: styles.row,
|
|
32
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
33
|
+
style: styles.label,
|
|
34
|
+
children: [label, ":"]
|
|
35
|
+
}), children]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* PillBadge — the pill-shaped badge used in expanded card rows.
|
|
41
|
+
* Matches the storage card badge style (rounded-full, with border).
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
function PillBadge({
|
|
45
|
+
color,
|
|
46
|
+
children,
|
|
47
|
+
icon
|
|
48
|
+
}) {
|
|
49
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
50
|
+
style: [styles.pill, {
|
|
51
|
+
backgroundColor: color + "20",
|
|
52
|
+
borderColor: color + "40"
|
|
53
|
+
}],
|
|
54
|
+
children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
55
|
+
style: styles.pillIcon,
|
|
56
|
+
children: icon
|
|
57
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
58
|
+
style: [styles.pillText, {
|
|
59
|
+
color
|
|
60
|
+
}],
|
|
61
|
+
children: children
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const styles = _reactNative.StyleSheet.create({
|
|
66
|
+
row: {
|
|
67
|
+
flexDirection: "row",
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
gap: 10
|
|
70
|
+
},
|
|
71
|
+
label: {
|
|
72
|
+
fontSize: 10,
|
|
73
|
+
color: _macOSDesignSystemColors.macOSColors.text.muted,
|
|
74
|
+
fontWeight: "600",
|
|
75
|
+
minWidth: 70,
|
|
76
|
+
fontFamily: "monospace"
|
|
77
|
+
},
|
|
78
|
+
pill: {
|
|
79
|
+
flexDirection: "row",
|
|
80
|
+
alignItems: "center",
|
|
81
|
+
paddingHorizontal: 8,
|
|
82
|
+
paddingVertical: 3,
|
|
83
|
+
borderRadius: 999,
|
|
84
|
+
borderWidth: 1
|
|
85
|
+
},
|
|
86
|
+
pillIcon: {
|
|
87
|
+
marginRight: 4
|
|
88
|
+
},
|
|
89
|
+
pillText: {
|
|
90
|
+
fontSize: 10,
|
|
91
|
+
fontWeight: "700",
|
|
92
|
+
fontFamily: "monospace",
|
|
93
|
+
letterSpacing: 0.5
|
|
94
|
+
}
|
|
95
|
+
});
|
|
@@ -153,6 +153,12 @@ Object.defineProperty(exports, "ExpandablePopover", {
|
|
|
153
153
|
return _ExpandablePopover.ExpandablePopover;
|
|
154
154
|
}
|
|
155
155
|
});
|
|
156
|
+
Object.defineProperty(exports, "ExpandedInfoRow", {
|
|
157
|
+
enumerable: true,
|
|
158
|
+
get: function () {
|
|
159
|
+
return _ExpandedInfoRow.ExpandedInfoRow;
|
|
160
|
+
}
|
|
161
|
+
});
|
|
156
162
|
Object.defineProperty(exports, "FilterBadge", {
|
|
157
163
|
enumerable: true,
|
|
158
164
|
get: function () {
|
|
@@ -225,6 +231,12 @@ Object.defineProperty(exports, "NoSearchResultsEmptyState", {
|
|
|
225
231
|
return _EmptyState.NoSearchResultsEmptyState;
|
|
226
232
|
}
|
|
227
233
|
});
|
|
234
|
+
Object.defineProperty(exports, "PillBadge", {
|
|
235
|
+
enumerable: true,
|
|
236
|
+
get: function () {
|
|
237
|
+
return _ExpandedInfoRow.PillBadge;
|
|
238
|
+
}
|
|
239
|
+
});
|
|
228
240
|
Object.defineProperty(exports, "PowerToggleButton", {
|
|
229
241
|
enumerable: true,
|
|
230
242
|
get: function () {
|
|
@@ -279,6 +291,12 @@ Object.defineProperty(exports, "TimeDisplay", {
|
|
|
279
291
|
return _TimeDisplay.TimeDisplay;
|
|
280
292
|
}
|
|
281
293
|
});
|
|
294
|
+
Object.defineProperty(exports, "ToolbarClearButton", {
|
|
295
|
+
enumerable: true,
|
|
296
|
+
get: function () {
|
|
297
|
+
return _CopyButton.ToolbarClearButton;
|
|
298
|
+
}
|
|
299
|
+
});
|
|
282
300
|
Object.defineProperty(exports, "ToolbarCopyButton", {
|
|
283
301
|
enumerable: true,
|
|
284
302
|
get: function () {
|
|
@@ -340,4 +358,5 @@ var _WindowControls = require("./WindowControls.js");
|
|
|
340
358
|
var _EventStepperFooter = require("./EventStepperFooter.js");
|
|
341
359
|
var _ExpandablePopover = require("./ExpandablePopover.js");
|
|
342
360
|
var _PowerToggleButton = require("./PowerToggleButton.js");
|
|
361
|
+
var _ExpandedInfoRow = require("./ExpandedInfoRow.js");
|
|
343
362
|
var _index = require("./EventHistoryViewer/index.js");
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.COPY_PAYLOAD_MAX_BYTES = void 0;
|
|
6
7
|
exports.formatBytes = formatBytes;
|
|
7
8
|
exports.formatDuration = formatDuration;
|
|
8
9
|
exports.formatNumber = formatNumber;
|
|
9
10
|
exports.truncateMiddle = truncateMiddle;
|
|
11
|
+
exports.truncatePayload = truncatePayload;
|
|
10
12
|
/**
|
|
11
13
|
* Shared data formatting utilities
|
|
12
14
|
*/
|
|
@@ -57,6 +59,33 @@ function formatNumber(num) {
|
|
|
57
59
|
return num.toLocaleString();
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
/** Default max bytes per value before it gets omitted from copy output (50 KB) */
|
|
63
|
+
const COPY_PAYLOAD_MAX_BYTES = exports.COPY_PAYLOAD_MAX_BYTES = 50_000;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Truncate a payload that is too large to be useful in clipboard output.
|
|
67
|
+
* If the serialized value exceeds `maxBytes`, returns a human-readable
|
|
68
|
+
* placeholder string instead of the original value.
|
|
69
|
+
*
|
|
70
|
+
* Use this in snapshot/copy functions to prevent huge values (e.g. react-query-cache)
|
|
71
|
+
* from making copied output unreadable or crashing the clipboard.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* value: truncatePayload(event.data?.value)
|
|
75
|
+
* // → "[omitted: 4.2 MB — too large to copy]"
|
|
76
|
+
*/
|
|
77
|
+
function truncatePayload(value, maxBytes = COPY_PAYLOAD_MAX_BYTES) {
|
|
78
|
+
try {
|
|
79
|
+
const serialized = JSON.stringify(value);
|
|
80
|
+
if (serialized.length > maxBytes) {
|
|
81
|
+
return `[omitted: ${formatBytes(serialized.length)} — too large to copy]`;
|
|
82
|
+
}
|
|
83
|
+
return value;
|
|
84
|
+
} catch {
|
|
85
|
+
return "[omitted: could not serialize]";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
60
89
|
/**
|
|
61
90
|
* Truncate a string in the middle with ellipsis
|
|
62
91
|
* @param str The string to truncate
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
import { Pressable, Text, View } from "react-native";
|
|
4
4
|
import { FlaskConical, TestTube2, Bug, Zap, ChevronDown } from "../icons/index.js";
|
|
5
5
|
import { gameUIColors } from "../ui/gameUI/constants/gameUIColors.js";
|
|
6
|
+
import { normalizeEnvironment } from "../types/types.js";
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
function getEnvironmentConfig(environment) {
|
|
8
|
-
|
|
9
|
+
const normalized = normalizeEnvironment(environment);
|
|
10
|
+
switch (normalized) {
|
|
9
11
|
case "local":
|
|
10
12
|
return {
|
|
11
13
|
label: "LOCAL",
|
|
@@ -5,11 +5,12 @@ import { Pressable, StyleSheet, Text, View } from "react-native";
|
|
|
5
5
|
import { Check } from "../icons/index.js";
|
|
6
6
|
import { gameUIColors } from "../ui/gameUI/constants/gameUIColors.js";
|
|
7
7
|
import { ExpandablePopover } from "../ui/components/ExpandablePopover.js";
|
|
8
|
-
import {
|
|
8
|
+
import { normalizeEnvironment } from "../types/types.js";
|
|
9
|
+
|
|
9
10
|
// ============================================================================
|
|
10
11
|
// Constants
|
|
11
12
|
// ============================================================================
|
|
12
|
-
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
14
|
const ENV_SELECTOR_WIDTH = 140; // Wider than minimized tools stack
|
|
14
15
|
const PEEK_HEIGHT = 28;
|
|
15
16
|
const OPTION_HEIGHT = 44;
|
|
@@ -25,7 +26,8 @@ const COLLAPSE_BUTTON_HEIGHT = 24;
|
|
|
25
26
|
// ============================================================================
|
|
26
27
|
|
|
27
28
|
function getEnvironmentConfig(environment) {
|
|
28
|
-
|
|
29
|
+
const normalized = normalizeEnvironment(environment);
|
|
30
|
+
switch (normalized) {
|
|
29
31
|
case "local":
|
|
30
32
|
return {
|
|
31
33
|
label: "LOCAL",
|
|
@@ -4,11 +4,12 @@ import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
|
4
4
|
import { Animated, Pressable, StyleSheet, Text, View } from "react-native";
|
|
5
5
|
import { Check, ChevronUp } from "../icons/index.js";
|
|
6
6
|
import { gameUIColors } from "../ui/gameUI/constants/gameUIColors.js";
|
|
7
|
-
import {
|
|
7
|
+
import { normalizeEnvironment } from "../types/types.js";
|
|
8
|
+
|
|
8
9
|
// ============================================================================
|
|
9
10
|
// Constants
|
|
10
11
|
// ============================================================================
|
|
11
|
-
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
const OPTION_HEIGHT = 36;
|
|
13
14
|
|
|
14
15
|
// ============================================================================
|
|
@@ -20,7 +21,8 @@ const OPTION_HEIGHT = 36;
|
|
|
20
21
|
// ============================================================================
|
|
21
22
|
|
|
22
23
|
function getEnvironmentConfig(environment) {
|
|
23
|
-
|
|
24
|
+
const normalized = normalizeEnvironment(environment);
|
|
25
|
+
switch (normalized) {
|
|
24
26
|
case "local":
|
|
25
27
|
return {
|
|
26
28
|
label: "LOCAL",
|
package/lib/module/index.js
CHANGED
|
@@ -58,6 +58,8 @@ export { EnvironmentIndicator } from "./env/EnvironmentIndicator.js";
|
|
|
58
58
|
export { EnvironmentSelector } from "./env/EnvironmentSelector.js";
|
|
59
59
|
// EnvironmentSelectorInline
|
|
60
60
|
export { EnvironmentSelectorInline } from "./env/EnvironmentSelectorInline.js";
|
|
61
|
+
export { normalizeEnvironment } from "./types/types.js";
|
|
62
|
+
|
|
61
63
|
// Context exports
|
|
62
64
|
export { HintsProvider, useHintsDisabled, useHintsContext } from "./context/index.js";
|
|
63
65
|
|
|
@@ -5,4 +5,28 @@
|
|
|
5
5
|
// Type guard to check if a value is a plain object (not Date, Array, etc.)
|
|
6
6
|
export function isPlainObject(value) {
|
|
7
7
|
return value !== null && value !== undefined && typeof value === "object" && !Array.isArray(value) && !(value instanceof Date) && !(value instanceof Error) && !(value instanceof Map) && !(value instanceof Set) && !(value instanceof RegExp) && typeof value !== "function";
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Normalizes common environment strings to canonical Environment values.
|
|
11
|
+
* Handles variants like "production" → "prod", "development" → "dev", etc.
|
|
12
|
+
*/
|
|
13
|
+
export function normalizeEnvironment(env) {
|
|
14
|
+
switch (env.toLowerCase().trim()) {
|
|
15
|
+
case "local":
|
|
16
|
+
return "local";
|
|
17
|
+
case "dev":
|
|
18
|
+
case "development":
|
|
19
|
+
return "dev";
|
|
20
|
+
case "qa":
|
|
21
|
+
case "test":
|
|
22
|
+
return "qa";
|
|
23
|
+
case "staging":
|
|
24
|
+
case "stage":
|
|
25
|
+
return "staging";
|
|
26
|
+
case "prod":
|
|
27
|
+
case "production":
|
|
28
|
+
return "prod";
|
|
29
|
+
default:
|
|
30
|
+
return "local";
|
|
31
|
+
}
|
|
8
32
|
}
|
|
@@ -4,7 +4,8 @@ import { useState, useRef, useCallback, memo, useEffect } from "react";
|
|
|
4
4
|
import { TouchableOpacity, StyleSheet } from "react-native";
|
|
5
5
|
import { copyToClipboard } from "../../clipboard/copyToClipboard.js";
|
|
6
6
|
import { gameUIColors } from "../gameUI/constants/gameUIColors.js";
|
|
7
|
-
import { Copy, CheckCircle2, AlertTriangle } from "../../icons/lucide-icons.js";
|
|
7
|
+
import { Copy, CheckCircle2, AlertTriangle, Trash2 } from "../../icons/lucide-icons.js";
|
|
8
|
+
import { macOSColors } from "../gameUI/constants/macOSDesignSystemColors.js";
|
|
8
9
|
import { ClipboardHintBanner } from "./ClipboardHintBanner.js";
|
|
9
10
|
import { devToolsStorageKeys } from "../../storage/devToolsStorageKeys.js";
|
|
10
11
|
import { persistentStorage } from "../../utils/persistentStorage.js";
|
|
@@ -106,7 +107,8 @@ export const CopyButton = /*#__PURE__*/memo(function CopyButton({
|
|
|
106
107
|
timeoutRef.current = null;
|
|
107
108
|
}
|
|
108
109
|
try {
|
|
109
|
-
const
|
|
110
|
+
const resolvedValue = typeof valueRef.current === "function" ? valueRef.current() : valueRef.current;
|
|
111
|
+
const copied = await copyToClipboard(resolvedValue);
|
|
110
112
|
if (copied) {
|
|
111
113
|
setCopyState("success");
|
|
112
114
|
onCopySuccess?.();
|
|
@@ -234,4 +236,41 @@ export const ActionCopyButton = /*#__PURE__*/memo(function ActionCopyButton(prop
|
|
|
234
236
|
size: 18,
|
|
235
237
|
...props
|
|
236
238
|
});
|
|
239
|
+
});
|
|
240
|
+
/**
|
|
241
|
+
* Shared clear/trash button for devtool headers.
|
|
242
|
+
* Always renders a red Trash2 icon — consistent across all tools.
|
|
243
|
+
*/
|
|
244
|
+
export const ToolbarClearButton = /*#__PURE__*/memo(function ToolbarClearButton({
|
|
245
|
+
onPress,
|
|
246
|
+
disabled = false,
|
|
247
|
+
buttonStyle
|
|
248
|
+
}) {
|
|
249
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
250
|
+
onPress: onPress,
|
|
251
|
+
style: [clearStyles.button, disabled && clearStyles.disabled, buttonStyle],
|
|
252
|
+
disabled: disabled,
|
|
253
|
+
hitSlop: {
|
|
254
|
+
top: 8,
|
|
255
|
+
bottom: 8,
|
|
256
|
+
left: 8,
|
|
257
|
+
right: 8
|
|
258
|
+
},
|
|
259
|
+
accessibilityLabel: "Clear",
|
|
260
|
+
accessibilityRole: "button",
|
|
261
|
+
children: /*#__PURE__*/_jsx(Trash2, {
|
|
262
|
+
size: 14,
|
|
263
|
+
color: disabled ? macOSColors.text.disabled : macOSColors.semantic.error
|
|
264
|
+
})
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
const clearStyles = StyleSheet.create({
|
|
268
|
+
button: {
|
|
269
|
+
padding: 4,
|
|
270
|
+
justifyContent: "center",
|
|
271
|
+
alignItems: "center"
|
|
272
|
+
},
|
|
273
|
+
disabled: {
|
|
274
|
+
opacity: 0.4
|
|
275
|
+
}
|
|
237
276
|
});
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ExpandedInfoRow
|
|
5
|
+
*
|
|
6
|
+
* Shared primitive for the `label: [badge]` rows inside expanded DevTools cards.
|
|
7
|
+
* Used by both @buoy-gg/storage and @buoy-gg/zustand to keep expanded content
|
|
8
|
+
* visually consistent across tools.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <ExpandedInfoRow label="Storage">
|
|
13
|
+
* <PillBadge color={color}>MMKV</PillBadge>
|
|
14
|
+
* </ExpandedInfoRow>
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { View, Text, StyleSheet } from "react-native";
|
|
19
|
+
import { macOSColors } from "../gameUI/constants/macOSDesignSystemColors.js";
|
|
20
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
+
export function ExpandedInfoRow({
|
|
22
|
+
label,
|
|
23
|
+
children
|
|
24
|
+
}) {
|
|
25
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
26
|
+
style: styles.row,
|
|
27
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
28
|
+
style: styles.label,
|
|
29
|
+
children: [label, ":"]
|
|
30
|
+
}), children]
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* PillBadge — the pill-shaped badge used in expanded card rows.
|
|
36
|
+
* Matches the storage card badge style (rounded-full, with border).
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export function PillBadge({
|
|
40
|
+
color,
|
|
41
|
+
children,
|
|
42
|
+
icon
|
|
43
|
+
}) {
|
|
44
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
45
|
+
style: [styles.pill, {
|
|
46
|
+
backgroundColor: color + "20",
|
|
47
|
+
borderColor: color + "40"
|
|
48
|
+
}],
|
|
49
|
+
children: [icon && /*#__PURE__*/_jsx(View, {
|
|
50
|
+
style: styles.pillIcon,
|
|
51
|
+
children: icon
|
|
52
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
53
|
+
style: [styles.pillText, {
|
|
54
|
+
color
|
|
55
|
+
}],
|
|
56
|
+
children: children
|
|
57
|
+
})]
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const styles = StyleSheet.create({
|
|
61
|
+
row: {
|
|
62
|
+
flexDirection: "row",
|
|
63
|
+
alignItems: "center",
|
|
64
|
+
gap: 10
|
|
65
|
+
},
|
|
66
|
+
label: {
|
|
67
|
+
fontSize: 10,
|
|
68
|
+
color: macOSColors.text.muted,
|
|
69
|
+
fontWeight: "600",
|
|
70
|
+
minWidth: 70,
|
|
71
|
+
fontFamily: "monospace"
|
|
72
|
+
},
|
|
73
|
+
pill: {
|
|
74
|
+
flexDirection: "row",
|
|
75
|
+
alignItems: "center",
|
|
76
|
+
paddingHorizontal: 8,
|
|
77
|
+
paddingVertical: 3,
|
|
78
|
+
borderRadius: 999,
|
|
79
|
+
borderWidth: 1
|
|
80
|
+
},
|
|
81
|
+
pillIcon: {
|
|
82
|
+
marginRight: 4
|
|
83
|
+
},
|
|
84
|
+
pillText: {
|
|
85
|
+
fontSize: 10,
|
|
86
|
+
fontWeight: "700",
|
|
87
|
+
fontFamily: "monospace",
|
|
88
|
+
letterSpacing: 0.5
|
|
89
|
+
}
|
|
90
|
+
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
export { BackButton } from "./BackButton.js";
|
|
4
4
|
export { ValueTypeBadge } from "./ValueTypeBadge.js";
|
|
5
5
|
export { StorageTypeBadge } from "./StorageTypeBadge.js";
|
|
6
|
-
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton } from "./CopyButton.js";
|
|
6
|
+
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton, ToolbarClearButton } from "./CopyButton.js";
|
|
7
7
|
export { ModalHeader } from "./ModalHeader.js";
|
|
8
8
|
export { ModalHintBanner } from "./ModalHintBanner.js";
|
|
9
9
|
export { ClipboardHintBanner } from "./ClipboardHintBanner.js";
|
|
@@ -31,5 +31,7 @@ export { WindowControls } from "./WindowControls.js";
|
|
|
31
31
|
export { EventStepperFooter } from "./EventStepperFooter.js";
|
|
32
32
|
export { ExpandablePopover } from "./ExpandablePopover.js";
|
|
33
33
|
export { PowerToggleButton } from "./PowerToggleButton.js";
|
|
34
|
+
export { ExpandedInfoRow, PillBadge } from "./ExpandedInfoRow.js";
|
|
35
|
+
|
|
34
36
|
// EventHistoryViewer components
|
|
35
37
|
export { EventHistoryViewer, ViewToggleCards, DiffModeTabs, CompareBar, EventPickerModal } from "./EventHistoryViewer/index.js";
|
|
@@ -50,6 +50,33 @@ export function formatNumber(num) {
|
|
|
50
50
|
return num.toLocaleString();
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
/** Default max bytes per value before it gets omitted from copy output (50 KB) */
|
|
54
|
+
export const COPY_PAYLOAD_MAX_BYTES = 50_000;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Truncate a payload that is too large to be useful in clipboard output.
|
|
58
|
+
* If the serialized value exceeds `maxBytes`, returns a human-readable
|
|
59
|
+
* placeholder string instead of the original value.
|
|
60
|
+
*
|
|
61
|
+
* Use this in snapshot/copy functions to prevent huge values (e.g. react-query-cache)
|
|
62
|
+
* from making copied output unreadable or crashing the clipboard.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* value: truncatePayload(event.data?.value)
|
|
66
|
+
* // → "[omitted: 4.2 MB — too large to copy]"
|
|
67
|
+
*/
|
|
68
|
+
export function truncatePayload(value, maxBytes = COPY_PAYLOAD_MAX_BYTES) {
|
|
69
|
+
try {
|
|
70
|
+
const serialized = JSON.stringify(value);
|
|
71
|
+
if (serialized.length > maxBytes) {
|
|
72
|
+
return `[omitted: ${formatBytes(serialized.length)} — too large to copy]`;
|
|
73
|
+
}
|
|
74
|
+
return value;
|
|
75
|
+
} catch {
|
|
76
|
+
return "[omitted: could not serialize]";
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
53
80
|
/**
|
|
54
81
|
* Truncate a string in the middle with ellipsis
|
|
55
82
|
* @param str The string to truncate
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LayoutChangeEvent } from "react-native";
|
|
2
|
-
import { Environment } from "../types/types";
|
|
2
|
+
import { type Environment } from "../types/types";
|
|
3
3
|
export interface EnvironmentIndicatorProps {
|
|
4
|
-
environment: Environment;
|
|
4
|
+
environment: Environment | string;
|
|
5
5
|
onLayout?: (event: LayoutChangeEvent) => void;
|
|
6
6
|
/** When true, the badge becomes pressable and shows a dropdown indicator */
|
|
7
7
|
interactive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentIndicator.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAWxE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"EnvironmentIndicator.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAWxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAyDD,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,QAAQ,EACR,WAAmB,EACnB,OAAO,GACR,EAAE,yBAAyB,+BAkE3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAgBxE,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,kBAAkB,EAAE,WAAW,CAAC;IAChC,mDAAmD;IACnD,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAoGD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,KAA0B,EAC1B,gBAAgB,GACjB,EAAE,wBAAwB,qBA8C1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelectorInline.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelectorInline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EnvironmentSelectorInline.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelectorInline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAYxE,MAAM,WAAW,8BAA8B;IAC7C,uCAAuC;IACvC,kBAAkB,EAAE,WAAW,CAAC;IAChC,mDAAmD;IACnD,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC;AAsGD,wBAAgB,yBAAyB,CAAC,EACxC,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,GACT,EAAE,8BAA8B,qBAwGhC"}
|
|
@@ -23,6 +23,7 @@ export type { EnvironmentSelectorProps } from "./env/EnvironmentSelector";
|
|
|
23
23
|
export { EnvironmentSelectorInline } from "./env/EnvironmentSelectorInline";
|
|
24
24
|
export type { EnvironmentSelectorInlineProps } from "./env/EnvironmentSelectorInline";
|
|
25
25
|
export type { Environment } from "./types/types";
|
|
26
|
+
export { normalizeEnvironment } from "./types/types";
|
|
26
27
|
export { HintsProvider, useHintsDisabled, useHintsContext } from "./context";
|
|
27
28
|
export * from "./history";
|
|
28
29
|
export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, getUseIsPro, getUseLicense } from "./license";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,MAAM,CAAC;AAGrB,cAAc,UAAU,CAAC;AAGzB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EAEV,kBAAkB,EAClB,uBAAuB,EAEvB,YAAY,EACZ,KAAK,oBAAoB,EAEzB,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,EAE3B,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,MAAM,CAAC;AAGrB,cAAc,UAAU,CAAC;AAGzB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EAEV,kBAAkB,EAClB,uBAAuB,EAEvB,YAAY,EACZ,KAAK,oBAAoB,EAEzB,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,EAE3B,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG7E,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjL,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -5,4 +5,9 @@ export declare function isPlainObject(value: unknown): value is {
|
|
|
5
5
|
[key: string]: JsonValue;
|
|
6
6
|
};
|
|
7
7
|
export type Environment = "local" | "dev" | "qa" | "staging" | "prod";
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes common environment strings to canonical Environment values.
|
|
10
|
+
* Handles variants like "production" → "prod", "development" → "dev", etc.
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeEnvironment(env: string): Environment;
|
|
8
13
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,IAAI,GACJ,KAAK,GACL,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GACrB,GAAG,CAAC,OAAO,CAAC,GACZ,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GACjC,MAAM,GACN,MAAM,GACN,OAAO,CAAC;AAGZ,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAavC;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,IAAI,GACJ,KAAK,GACL,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GACrB,GAAG,CAAC,OAAO,CAAC,GACZ,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GACjC,MAAM,GACN,MAAM,GACN,OAAO,CAAC;AAGZ,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAavC;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAmB7D"}
|
|
@@ -35,5 +35,15 @@ export declare const ToolbarCopyButton: import("react").NamedExoticComponent<Omi
|
|
|
35
35
|
* Preset copy button for main actions (larger size)
|
|
36
36
|
*/
|
|
37
37
|
export declare const ActionCopyButton: import("react").NamedExoticComponent<Omit<CopyButtonProps, "size">>;
|
|
38
|
+
interface ToolbarClearButtonProps {
|
|
39
|
+
onPress: () => void;
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
buttonStyle?: ViewStyle;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Shared clear/trash button for devtool headers.
|
|
45
|
+
* Always renders a red Trash2 icon — consistent across all tools.
|
|
46
|
+
*/
|
|
47
|
+
export declare const ToolbarClearButton: import("react").NamedExoticComponent<ToolbarClearButtonProps>;
|
|
38
48
|
export {};
|
|
39
49
|
//# sourceMappingURL=CopyButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;AActB,UAAU,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC;IACtE,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA0CD,eAAO,MAAM,UAAU,uDA0JrB,CAAC;AAUH;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAI3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,qEAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAI3B,CAAC;AAEH,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,+DAoB7B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpandedInfoRow
|
|
3
|
+
*
|
|
4
|
+
* Shared primitive for the `label: [badge]` rows inside expanded DevTools cards.
|
|
5
|
+
* Used by both @buoy-gg/storage and @buoy-gg/zustand to keep expanded content
|
|
6
|
+
* visually consistent across tools.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <ExpandedInfoRow label="Storage">
|
|
11
|
+
* <PillBadge color={color}>MMKV</PillBadge>
|
|
12
|
+
* </ExpandedInfoRow>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import type { ReactNode } from "react";
|
|
16
|
+
interface ExpandedInfoRowProps {
|
|
17
|
+
label: string;
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export declare function ExpandedInfoRow({ label, children }: ExpandedInfoRowProps): import("react").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* PillBadge — the pill-shaped badge used in expanded card rows.
|
|
23
|
+
* Matches the storage card badge style (rounded-full, with border).
|
|
24
|
+
*/
|
|
25
|
+
interface PillBadgeProps {
|
|
26
|
+
color: string;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
icon?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function PillBadge({ color, children, icon }: PillBadgeProps): import("react").JSX.Element;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=ExpandedInfoRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandedInfoRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandedInfoRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BAOxE;AAED;;;GAGG;AACH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,+BAYlE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BackButton } from "./BackButton";
|
|
2
2
|
export { ValueTypeBadge } from "./ValueTypeBadge";
|
|
3
3
|
export { StorageTypeBadge } from "./StorageTypeBadge";
|
|
4
|
-
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton, } from "./CopyButton";
|
|
4
|
+
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton, ToolbarClearButton, } from "./CopyButton";
|
|
5
5
|
export { ModalHeader } from "./ModalHeader";
|
|
6
6
|
export { ModalHintBanner } from "./ModalHintBanner";
|
|
7
7
|
export { ClipboardHintBanner } from "./ClipboardHintBanner";
|
|
@@ -35,6 +35,7 @@ export { ExpandablePopover } from "./ExpandablePopover";
|
|
|
35
35
|
export type { ExpandablePopoverProps } from "./ExpandablePopover";
|
|
36
36
|
export { PowerToggleButton } from "./PowerToggleButton";
|
|
37
37
|
export type { PowerToggleButtonProps } from "./PowerToggleButton";
|
|
38
|
+
export { ExpandedInfoRow, PillBadge } from "./ExpandedInfoRow";
|
|
38
39
|
export { EventHistoryViewer, ViewToggleCards, DiffModeTabs, CompareBar, EventPickerModal, } from "./EventHistoryViewer";
|
|
39
40
|
export type { ViewMode, DiffModeTab, EventDisplayInfo, IconComponent, ViewToggleCardsProps, CompareBarProps, DiffModeTabsProps, EventPickerItem, EventPickerModalProps, EventHistoryViewerProps, } from "./EventHistoryViewer";
|
|
40
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,21 @@ export declare function formatDuration(ms: number | undefined): string;
|
|
|
19
19
|
* @returns Formatted number string (e.g., "1,234,567")
|
|
20
20
|
*/
|
|
21
21
|
export declare function formatNumber(num: number): string;
|
|
22
|
+
/** Default max bytes per value before it gets omitted from copy output (50 KB) */
|
|
23
|
+
export declare const COPY_PAYLOAD_MAX_BYTES = 50000;
|
|
24
|
+
/**
|
|
25
|
+
* Truncate a payload that is too large to be useful in clipboard output.
|
|
26
|
+
* If the serialized value exceeds `maxBytes`, returns a human-readable
|
|
27
|
+
* placeholder string instead of the original value.
|
|
28
|
+
*
|
|
29
|
+
* Use this in snapshot/copy functions to prevent huge values (e.g. react-query-cache)
|
|
30
|
+
* from making copied output unreadable or crashing the clipboard.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* value: truncatePayload(event.data?.value)
|
|
34
|
+
* // → "[omitted: 4.2 MB — too large to copy]"
|
|
35
|
+
*/
|
|
36
|
+
export declare function truncatePayload(value: unknown, maxBytes?: number): unknown;
|
|
22
37
|
/**
|
|
23
38
|
* Truncate a string in the middle with ellipsis
|
|
24
39
|
* @param str The string to truncate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFormatting.d.ts","sourceRoot":"","sources":["../../../../../src/utils/formatting/dataFormatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,MAAW,EACvB,QAAQ,GAAE,MAAW,GACpB,MAAM,CAOR"}
|
|
1
|
+
{"version":3,"file":"dataFormatting.d.ts","sourceRoot":"","sources":["../../../../../src/utils/formatting/dataFormatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,MAAW,EACvB,QAAQ,GAAE,MAAW,GACpB,MAAM,CAOR"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LayoutChangeEvent } from "react-native";
|
|
2
|
-
import { Environment } from "../types/types";
|
|
2
|
+
import { type Environment } from "../types/types";
|
|
3
3
|
export interface EnvironmentIndicatorProps {
|
|
4
|
-
environment: Environment;
|
|
4
|
+
environment: Environment | string;
|
|
5
5
|
onLayout?: (event: LayoutChangeEvent) => void;
|
|
6
6
|
/** When true, the badge becomes pressable and shows a dropdown indicator */
|
|
7
7
|
interactive?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentIndicator.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAWxE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"EnvironmentIndicator.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,cAAc,CAAC;AAWxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAyDD,wBAAgB,oBAAoB,CAAC,EACnC,WAAW,EACX,QAAQ,EACR,WAAmB,EACnB,OAAO,GACR,EAAE,yBAAyB,+BAkE3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EnvironmentSelector.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAgBxE,MAAM,WAAW,wBAAwB;IACvC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,uCAAuC;IACvC,kBAAkB,EAAE,WAAW,CAAC;IAChC,mDAAmD;IACnD,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACrC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACpC;AAoGD,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,EACR,KAA0B,EAC1B,gBAAgB,GACjB,EAAE,wBAAwB,qBA8C1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnvironmentSelectorInline.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelectorInline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EnvironmentSelectorInline.d.ts","sourceRoot":"","sources":["../../../../src/env/EnvironmentSelectorInline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAUxE,OAAO,EAAE,KAAK,WAAW,EAAwB,MAAM,gBAAgB,CAAC;AAYxE,MAAM,WAAW,8BAA8B;IAC7C,uCAAuC;IACvC,kBAAkB,EAAE,WAAW,CAAC;IAChC,mDAAmD;IACnD,qBAAqB,EAAE,WAAW,EAAE,CAAC;IACrC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC;AAsGD,wBAAgB,yBAAyB,CAAC,EACxC,kBAAkB,EAClB,qBAAqB,EACrB,QAAQ,GACT,EAAE,8BAA8B,qBAwGhC"}
|
|
@@ -23,6 +23,7 @@ export type { EnvironmentSelectorProps } from "./env/EnvironmentSelector";
|
|
|
23
23
|
export { EnvironmentSelectorInline } from "./env/EnvironmentSelectorInline";
|
|
24
24
|
export type { EnvironmentSelectorInlineProps } from "./env/EnvironmentSelectorInline";
|
|
25
25
|
export type { Environment } from "./types/types";
|
|
26
|
+
export { normalizeEnvironment } from "./types/types";
|
|
26
27
|
export { HintsProvider, useHintsDisabled, useHintsContext } from "./context";
|
|
27
28
|
export * from "./history";
|
|
28
29
|
export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, getUseIsPro, getUseLicense } from "./license";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,MAAM,CAAC;AAGrB,cAAc,UAAU,CAAC;AAGzB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EAEV,kBAAkB,EAClB,uBAAuB,EAEvB,YAAY,EACZ,KAAK,oBAAoB,EAEzB,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,EAE3B,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,MAAM,CAAC;AAGrB,cAAc,UAAU,CAAC;AAGzB,OAAO,EAEL,YAAY,EACZ,iBAAiB,EAEjB,iBAAiB,EAEjB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EAErB,aAAa,EAEb,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,OAAO,EACP,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EAEV,kBAAkB,EAClB,uBAAuB,EAEvB,YAAY,EACZ,KAAK,oBAAoB,EAEzB,uBAAuB,EACvB,iCAAiC,EACjC,2BAA2B,EAE3B,aAAa,EACb,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,aAAa,EACb,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,YAAY,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG7E,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjL,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -5,4 +5,9 @@ export declare function isPlainObject(value: unknown): value is {
|
|
|
5
5
|
[key: string]: JsonValue;
|
|
6
6
|
};
|
|
7
7
|
export type Environment = "local" | "dev" | "qa" | "staging" | "prod";
|
|
8
|
+
/**
|
|
9
|
+
* Normalizes common environment strings to canonical Environment values.
|
|
10
|
+
* Handles variants like "production" → "prod", "development" → "dev", etc.
|
|
11
|
+
*/
|
|
12
|
+
export declare function normalizeEnvironment(env: string): Environment;
|
|
8
13
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,IAAI,GACJ,KAAK,GACL,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GACrB,GAAG,CAAC,OAAO,CAAC,GACZ,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GACjC,MAAM,GACN,MAAM,GACN,OAAO,CAAC;AAGZ,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAavC;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC5B,IAAI,GACJ,KAAK,GACL,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,GACrB,GAAG,CAAC,OAAO,CAAC,GACZ,MAAM,GACN,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GACjC,MAAM,GACN,MAAM,GACN,OAAO,CAAC;AAGZ,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAavC;AACD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAmB7D"}
|
|
@@ -35,5 +35,15 @@ export declare const ToolbarCopyButton: import("react").NamedExoticComponent<Omi
|
|
|
35
35
|
* Preset copy button for main actions (larger size)
|
|
36
36
|
*/
|
|
37
37
|
export declare const ActionCopyButton: import("react").NamedExoticComponent<Omit<CopyButtonProps, "size">>;
|
|
38
|
+
interface ToolbarClearButtonProps {
|
|
39
|
+
onPress: () => void;
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
buttonStyle?: ViewStyle;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Shared clear/trash button for devtool headers.
|
|
45
|
+
* Always renders a red Trash2 icon — consistent across all tools.
|
|
46
|
+
*/
|
|
47
|
+
export declare const ToolbarClearButton: import("react").NamedExoticComponent<ToolbarClearButtonProps>;
|
|
38
48
|
export {};
|
|
39
49
|
//# sourceMappingURL=CopyButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/CopyButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,qBAAqB,EACrB,SAAS,EACV,MAAM,cAAc,CAAC;AActB,UAAU,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC;IACtE,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AA0CD,eAAO,MAAM,UAAU,uDA0JrB,CAAC;AAUH;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAI3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,qEAI5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,qEAI3B,CAAC;AAEH,UAAU,uBAAuB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,+DAoB7B,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExpandedInfoRow
|
|
3
|
+
*
|
|
4
|
+
* Shared primitive for the `label: [badge]` rows inside expanded DevTools cards.
|
|
5
|
+
* Used by both @buoy-gg/storage and @buoy-gg/zustand to keep expanded content
|
|
6
|
+
* visually consistent across tools.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <ExpandedInfoRow label="Storage">
|
|
11
|
+
* <PillBadge color={color}>MMKV</PillBadge>
|
|
12
|
+
* </ExpandedInfoRow>
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
import type { ReactNode } from "react";
|
|
16
|
+
interface ExpandedInfoRowProps {
|
|
17
|
+
label: string;
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export declare function ExpandedInfoRow({ label, children }: ExpandedInfoRowProps): import("react").JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* PillBadge — the pill-shaped badge used in expanded card rows.
|
|
23
|
+
* Matches the storage card badge style (rounded-full, with border).
|
|
24
|
+
*/
|
|
25
|
+
interface PillBadgeProps {
|
|
26
|
+
color: string;
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
icon?: ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function PillBadge({ color, children, icon }: PillBadgeProps): import("react").JSX.Element;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=ExpandedInfoRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandedInfoRow.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ExpandedInfoRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BAOxE;AAED;;;GAGG;AACH,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,cAAc,+BAYlE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { BackButton } from "./BackButton";
|
|
2
2
|
export { ValueTypeBadge } from "./ValueTypeBadge";
|
|
3
3
|
export { StorageTypeBadge } from "./StorageTypeBadge";
|
|
4
|
-
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton, } from "./CopyButton";
|
|
4
|
+
export { CopyButton, InlineCopyButton, ToolbarCopyButton, ActionCopyButton, ToolbarClearButton, } from "./CopyButton";
|
|
5
5
|
export { ModalHeader } from "./ModalHeader";
|
|
6
6
|
export { ModalHintBanner } from "./ModalHintBanner";
|
|
7
7
|
export { ClipboardHintBanner } from "./ClipboardHintBanner";
|
|
@@ -35,6 +35,7 @@ export { ExpandablePopover } from "./ExpandablePopover";
|
|
|
35
35
|
export type { ExpandablePopoverProps } from "./ExpandablePopover";
|
|
36
36
|
export { PowerToggleButton } from "./PowerToggleButton";
|
|
37
37
|
export type { PowerToggleButtonProps } from "./PowerToggleButton";
|
|
38
|
+
export { ExpandedInfoRow, PillBadge } from "./ExpandedInfoRow";
|
|
38
39
|
export { EventHistoryViewer, ViewToggleCards, DiffModeTabs, CompareBar, EventPickerModal, } from "./EventHistoryViewer";
|
|
39
40
|
export type { ViewMode, DiffModeTab, EventDisplayInfo, IconComponent, ViewToggleCardsProps, CompareBarProps, DiffModeTabsProps, EventPickerItem, EventPickerModalProps, EventHistoryViewerProps, } from "./EventHistoryViewer";
|
|
40
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,21 @@ export declare function formatDuration(ms: number | undefined): string;
|
|
|
19
19
|
* @returns Formatted number string (e.g., "1,234,567")
|
|
20
20
|
*/
|
|
21
21
|
export declare function formatNumber(num: number): string;
|
|
22
|
+
/** Default max bytes per value before it gets omitted from copy output (50 KB) */
|
|
23
|
+
export declare const COPY_PAYLOAD_MAX_BYTES = 50000;
|
|
24
|
+
/**
|
|
25
|
+
* Truncate a payload that is too large to be useful in clipboard output.
|
|
26
|
+
* If the serialized value exceeds `maxBytes`, returns a human-readable
|
|
27
|
+
* placeholder string instead of the original value.
|
|
28
|
+
*
|
|
29
|
+
* Use this in snapshot/copy functions to prevent huge values (e.g. react-query-cache)
|
|
30
|
+
* from making copied output unreadable or crashing the clipboard.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* value: truncatePayload(event.data?.value)
|
|
34
|
+
* // → "[omitted: 4.2 MB — too large to copy]"
|
|
35
|
+
*/
|
|
36
|
+
export declare function truncatePayload(value: unknown, maxBytes?: number): unknown;
|
|
22
37
|
/**
|
|
23
38
|
* Truncate a string in the middle with ellipsis
|
|
24
39
|
* @param str The string to truncate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataFormatting.d.ts","sourceRoot":"","sources":["../../../../../src/utils/formatting/dataFormatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,MAAW,EACvB,QAAQ,GAAE,MAAW,GACpB,MAAM,CAOR"}
|
|
1
|
+
{"version":3,"file":"dataFormatting.d.ts","sourceRoot":"","sources":["../../../../../src/utils/formatting/dataFormatting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CASpE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE,MAA+B,GACxC,OAAO,CAUT;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,GAAE,MAAW,EACtB,UAAU,GAAE,MAAW,EACvB,QAAQ,GAAE,MAAW,GACpB,MAAM,CAOR"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/shared-ui",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.8",
|
|
4
4
|
"description": "Shared UI components, hooks, and utilities",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -115,10 +115,10 @@
|
|
|
115
115
|
],
|
|
116
116
|
"sideEffects": false,
|
|
117
117
|
"dependencies": {
|
|
118
|
-
"@buoy-gg/floating-tools-core": "2.1.
|
|
118
|
+
"@buoy-gg/floating-tools-core": "2.1.8"
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
|
-
"@buoy-gg/license": "2.1.
|
|
121
|
+
"@buoy-gg/license": "2.1.8",
|
|
122
122
|
"@react-native-clipboard/clipboard": "*",
|
|
123
123
|
"expo-clipboard": "*",
|
|
124
124
|
"expo-file-system": "*",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"expo-clipboard": "~7.1.5",
|
|
147
147
|
"react-native-safe-area-context": "^5.6.2",
|
|
148
148
|
"typescript": "~5.8.3",
|
|
149
|
-
"@buoy-gg/license": "2.1.
|
|
149
|
+
"@buoy-gg/license": "2.1.8"
|
|
150
150
|
},
|
|
151
151
|
"react-native-builder-bob": {
|
|
152
152
|
"source": "src",
|