@workflow/web-shared 5.0.0-beta.21 → 5.0.0-beta.22
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/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/new-trace-viewer/components/trace-shortcut-helper.d.ts +5 -0
- package/dist/components/new-trace-viewer/components/trace-shortcut-helper.d.ts.map +1 -0
- package/dist/components/new-trace-viewer/components/trace-shortcut-helper.js +55 -0
- package/dist/components/new-trace-viewer/components/trace-shortcut-helper.module.css +20 -0
- package/dist/components/new-trace-viewer/trace-viewer.d.ts.map +1 -1
- package/dist/components/new-trace-viewer/trace-viewer.js +4 -4
- package/dist/components/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/components/sidebar/attribute-panel.js +4 -1
- package/dist/components/sidebar/copyable-data-block.d.ts +1 -0
- package/dist/components/sidebar/copyable-data-block.d.ts.map +1 -1
- package/dist/components/sidebar/copyable-data-block.js +2 -2
- package/dist/components/ui/data-inspector.d.ts +6 -6
- package/dist/components/ui/data-inspector.d.ts.map +1 -1
- package/dist/components/ui/data-inspector.js +234 -91
- package/dist/components/ui/data-inspector.styles.d.ts +29 -0
- package/dist/components/ui/data-inspector.styles.d.ts.map +1 -0
- package/dist/components/ui/data-inspector.styles.js +95 -0
- package/dist/components/ui/kbd.d.ts +9 -5
- package/dist/components/ui/kbd.d.ts.map +1 -1
- package/dist/components/ui/kbd.js +22 -3
- package/dist/lib/hydration.js +3 -3
- package/package.json +3 -4
- package/src/components/index.ts +1 -0
- package/src/components/new-trace-viewer/components/trace-shortcut-helper.module.css +20 -0
- package/src/components/new-trace-viewer/components/trace-shortcut-helper.tsx +116 -0
- package/src/components/new-trace-viewer/trace-viewer.tsx +9 -4
- package/src/components/sidebar/attribute-panel.tsx +4 -0
- package/src/components/sidebar/copyable-data-block.tsx +1 -1
- package/src/components/ui/data-inspector.styles.ts +96 -0
- package/src/components/ui/data-inspector.tsx +492 -186
- package/src/components/ui/kbd.tsx +33 -11
- package/src/lib/hydration.ts +2 -2
- package/dist/components/ui/inspector-theme.d.ts +0 -95
- package/dist/components/ui/inspector-theme.d.ts.map +0 -1
- package/dist/components/ui/inspector-theme.js +0 -82
- package/src/components/ui/inspector-theme.ts +0 -110
|
@@ -1,21 +1,43 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { cva, type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
2
3
|
import { cn } from '../../lib/utils';
|
|
3
4
|
|
|
5
|
+
const kbdVariants = cva(
|
|
6
|
+
'inline-flex items-center justify-center rounded px-1 text-center font-sans',
|
|
7
|
+
{
|
|
8
|
+
variants: {
|
|
9
|
+
variant: {
|
|
10
|
+
subtle: 'bg-background-100/20',
|
|
11
|
+
outline:
|
|
12
|
+
'border border-gray-alpha-400 bg-background-100 font-medium text-gray-900',
|
|
13
|
+
},
|
|
14
|
+
size: {
|
|
15
|
+
default: 'h-5 min-w-5 text-xs leading-none',
|
|
16
|
+
compact: 'h-4 min-h-4 min-w-4 text-[11px] leading-none',
|
|
17
|
+
search: 'h-5 min-h-5 min-w-5 text-[13px] leading-[1.7em]',
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
variant: 'subtle',
|
|
22
|
+
size: 'default',
|
|
23
|
+
},
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
type KbdProps = ComponentProps<'kbd'> & VariantProps<typeof kbdVariants>;
|
|
28
|
+
|
|
4
29
|
export function Kbd({
|
|
5
30
|
children,
|
|
6
31
|
className,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}): ReactNode {
|
|
32
|
+
variant,
|
|
33
|
+
size,
|
|
34
|
+
...props
|
|
35
|
+
}: KbdProps): ReactNode {
|
|
11
36
|
return (
|
|
12
|
-
<kbd
|
|
13
|
-
className={cn(
|
|
14
|
-
'inline-flex h-5 min-w-5 items-center justify-center rounded bg-background-100/20 px-1 text-center font-sans text-xs leading-none',
|
|
15
|
-
className
|
|
16
|
-
)}
|
|
17
|
-
>
|
|
37
|
+
<kbd className={cn(kbdVariants({ variant, size, className }))} {...props}>
|
|
18
38
|
{children}
|
|
19
39
|
</kbd>
|
|
20
40
|
);
|
|
21
41
|
}
|
|
42
|
+
|
|
43
|
+
export { kbdVariants };
|
package/src/lib/hydration.ts
CHANGED
|
@@ -298,7 +298,7 @@ export function getWebRevivers(): Revivers {
|
|
|
298
298
|
|
|
299
299
|
// Web-specific overrides for class instances.
|
|
300
300
|
// Create objects with a dynamically-named constructor so that
|
|
301
|
-
//
|
|
301
|
+
// the data inspector shows the class name (it reads constructor.name).
|
|
302
302
|
Class: (value) => `<class:${extractClassName(value.classId)}>`,
|
|
303
303
|
Instance: (value) => {
|
|
304
304
|
// Run instances are rendered as clickable RunRef badges
|
|
@@ -311,7 +311,7 @@ export function getWebRevivers(): Revivers {
|
|
|
311
311
|
const props =
|
|
312
312
|
data && typeof data === 'object' ? { ...data } : { value: data };
|
|
313
313
|
// Create a constructor with the right name using computed property
|
|
314
|
-
// so
|
|
314
|
+
// so the data inspector's `object.constructor.name` shows the class name.
|
|
315
315
|
// Must use `function` (not arrow) because arrow functions have no .prototype.
|
|
316
316
|
// biome-ignore lint/complexity/useArrowFunction: arrow functions have no .prototype
|
|
317
317
|
const ctor = { [className]: function () {} }[className]!;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared theme configuration for react-inspector's ObjectInspector.
|
|
3
|
-
*
|
|
4
|
-
* Colors follow Geist's Shiki JSON palette so the inspector reads the same
|
|
5
|
-
* as highlighted code blocks across the product:
|
|
6
|
-
* - property names / punctuation: --ds-gray-1000 (default foreground)
|
|
7
|
-
* - strings / numbers / booleans: --ds-green-900
|
|
8
|
-
* - null / undefined: --ds-gray-900 (muted)
|
|
9
|
-
* - regexp / function: --ds-purple-900
|
|
10
|
-
* - date: --ds-pink-900
|
|
11
|
-
*
|
|
12
|
-
* Because the `--ds-*` tokens adapt to theme automatically, the light and
|
|
13
|
-
* dark objects are intentionally identical.
|
|
14
|
-
*/
|
|
15
|
-
export interface InspectorThemeExtended {
|
|
16
|
-
/** Color for Date values (Node: 'magenta') */
|
|
17
|
-
OBJECT_VALUE_DATE_COLOR: string;
|
|
18
|
-
}
|
|
19
|
-
export declare const inspectorThemeExtendedLight: InspectorThemeExtended;
|
|
20
|
-
export declare const inspectorThemeExtendedDark: InspectorThemeExtended;
|
|
21
|
-
export declare const inspectorThemeLight: {
|
|
22
|
-
BASE_COLOR: string;
|
|
23
|
-
OBJECT_NAME_COLOR: string;
|
|
24
|
-
OBJECT_VALUE_STRING_COLOR: string;
|
|
25
|
-
OBJECT_VALUE_SYMBOL_COLOR: string;
|
|
26
|
-
OBJECT_VALUE_NUMBER_COLOR: string;
|
|
27
|
-
OBJECT_VALUE_BOOLEAN_COLOR: string;
|
|
28
|
-
OBJECT_VALUE_NULL_COLOR: string;
|
|
29
|
-
OBJECT_VALUE_UNDEFINED_COLOR: string;
|
|
30
|
-
OBJECT_VALUE_REGEXP_COLOR: string;
|
|
31
|
-
OBJECT_VALUE_FUNCTION_PREFIX_COLOR: string;
|
|
32
|
-
HTML_TAG_COLOR: string;
|
|
33
|
-
HTML_TAGNAME_COLOR: string;
|
|
34
|
-
HTML_ATTRIBUTE_NAME_COLOR: string;
|
|
35
|
-
HTML_ATTRIBUTE_VALUE_COLOR: string;
|
|
36
|
-
HTML_COMMENT_COLOR: string;
|
|
37
|
-
HTML_DOCTYPE_COLOR: string;
|
|
38
|
-
ARROW_COLOR: string;
|
|
39
|
-
TABLE_BORDER_COLOR: string;
|
|
40
|
-
TABLE_TH_BACKGROUND_COLOR: string;
|
|
41
|
-
TABLE_TH_HOVER_COLOR: string;
|
|
42
|
-
TABLE_SORT_ICON_COLOR: string;
|
|
43
|
-
BASE_FONT_SIZE: string;
|
|
44
|
-
BASE_LINE_HEIGHT: number;
|
|
45
|
-
BASE_BACKGROUND_COLOR: string;
|
|
46
|
-
OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: number;
|
|
47
|
-
OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: number;
|
|
48
|
-
HTML_TAGNAME_TEXT_TRANSFORM: "lowercase";
|
|
49
|
-
ARROW_MARGIN_RIGHT: number;
|
|
50
|
-
ARROW_FONT_SIZE: number;
|
|
51
|
-
TREENODE_FONT_FAMILY: string;
|
|
52
|
-
TREENODE_FONT_SIZE: string;
|
|
53
|
-
TREENODE_LINE_HEIGHT: number;
|
|
54
|
-
TREENODE_PADDING_LEFT: number;
|
|
55
|
-
TABLE_DATA_BACKGROUND_IMAGE: string;
|
|
56
|
-
TABLE_DATA_BACKGROUND_SIZE: string;
|
|
57
|
-
};
|
|
58
|
-
export declare const inspectorThemeDark: {
|
|
59
|
-
BASE_COLOR: string;
|
|
60
|
-
OBJECT_NAME_COLOR: string;
|
|
61
|
-
OBJECT_VALUE_STRING_COLOR: string;
|
|
62
|
-
OBJECT_VALUE_SYMBOL_COLOR: string;
|
|
63
|
-
OBJECT_VALUE_NUMBER_COLOR: string;
|
|
64
|
-
OBJECT_VALUE_BOOLEAN_COLOR: string;
|
|
65
|
-
OBJECT_VALUE_NULL_COLOR: string;
|
|
66
|
-
OBJECT_VALUE_UNDEFINED_COLOR: string;
|
|
67
|
-
OBJECT_VALUE_REGEXP_COLOR: string;
|
|
68
|
-
OBJECT_VALUE_FUNCTION_PREFIX_COLOR: string;
|
|
69
|
-
HTML_TAG_COLOR: string;
|
|
70
|
-
HTML_TAGNAME_COLOR: string;
|
|
71
|
-
HTML_ATTRIBUTE_NAME_COLOR: string;
|
|
72
|
-
HTML_ATTRIBUTE_VALUE_COLOR: string;
|
|
73
|
-
HTML_COMMENT_COLOR: string;
|
|
74
|
-
HTML_DOCTYPE_COLOR: string;
|
|
75
|
-
ARROW_COLOR: string;
|
|
76
|
-
TABLE_BORDER_COLOR: string;
|
|
77
|
-
TABLE_TH_BACKGROUND_COLOR: string;
|
|
78
|
-
TABLE_TH_HOVER_COLOR: string;
|
|
79
|
-
TABLE_SORT_ICON_COLOR: string;
|
|
80
|
-
BASE_FONT_SIZE: string;
|
|
81
|
-
BASE_LINE_HEIGHT: number;
|
|
82
|
-
BASE_BACKGROUND_COLOR: string;
|
|
83
|
-
OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: number;
|
|
84
|
-
OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: number;
|
|
85
|
-
HTML_TAGNAME_TEXT_TRANSFORM: "lowercase";
|
|
86
|
-
ARROW_MARGIN_RIGHT: number;
|
|
87
|
-
ARROW_FONT_SIZE: number;
|
|
88
|
-
TREENODE_FONT_FAMILY: string;
|
|
89
|
-
TREENODE_FONT_SIZE: string;
|
|
90
|
-
TREENODE_LINE_HEIGHT: number;
|
|
91
|
-
TREENODE_PADDING_LEFT: number;
|
|
92
|
-
TABLE_DATA_BACKGROUND_IMAGE: string;
|
|
93
|
-
TABLE_DATA_BACKGROUND_SIZE: string;
|
|
94
|
-
};
|
|
95
|
-
//# sourceMappingURL=inspector-theme.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inspector-theme.d.ts","sourceRoot":"","sources":["../../../src/components/ui/inspector-theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,2BAA2B,EAAE,sBAEzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,sBAExC,CAAC;AAwEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC;AAM9C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAa,CAAC"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared theme configuration for react-inspector's ObjectInspector.
|
|
3
|
-
*
|
|
4
|
-
* Colors follow Geist's Shiki JSON palette so the inspector reads the same
|
|
5
|
-
* as highlighted code blocks across the product:
|
|
6
|
-
* - property names / punctuation: --ds-gray-1000 (default foreground)
|
|
7
|
-
* - strings / numbers / booleans: --ds-green-900
|
|
8
|
-
* - null / undefined: --ds-gray-900 (muted)
|
|
9
|
-
* - regexp / function: --ds-purple-900
|
|
10
|
-
* - date: --ds-pink-900
|
|
11
|
-
*
|
|
12
|
-
* Because the `--ds-*` tokens adapt to theme automatically, the light and
|
|
13
|
-
* dark objects are intentionally identical.
|
|
14
|
-
*/
|
|
15
|
-
export const inspectorThemeExtendedLight = {
|
|
16
|
-
OBJECT_VALUE_DATE_COLOR: 'var(--ds-pink-900)',
|
|
17
|
-
};
|
|
18
|
-
export const inspectorThemeExtendedDark = {
|
|
19
|
-
OBJECT_VALUE_DATE_COLOR: 'var(--ds-pink-900)',
|
|
20
|
-
};
|
|
21
|
-
// ---------------------------------------------------------------------------
|
|
22
|
-
// Shared structural values (same in both themes)
|
|
23
|
-
// ---------------------------------------------------------------------------
|
|
24
|
-
const shared = {
|
|
25
|
-
BASE_FONT_SIZE: '11px',
|
|
26
|
-
BASE_LINE_HEIGHT: 1.4,
|
|
27
|
-
BASE_BACKGROUND_COLOR: 'transparent',
|
|
28
|
-
OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
|
|
29
|
-
OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
|
|
30
|
-
HTML_TAGNAME_TEXT_TRANSFORM: 'lowercase',
|
|
31
|
-
ARROW_MARGIN_RIGHT: 3,
|
|
32
|
-
ARROW_FONT_SIZE: 12,
|
|
33
|
-
TREENODE_FONT_FAMILY: 'var(--font-mono)',
|
|
34
|
-
TREENODE_FONT_SIZE: '11px',
|
|
35
|
-
TREENODE_LINE_HEIGHT: 1.4,
|
|
36
|
-
TREENODE_PADDING_LEFT: 12,
|
|
37
|
-
TABLE_DATA_BACKGROUND_IMAGE: 'none',
|
|
38
|
-
TABLE_DATA_BACKGROUND_SIZE: '0',
|
|
39
|
-
};
|
|
40
|
-
// ---------------------------------------------------------------------------
|
|
41
|
-
// Light theme
|
|
42
|
-
// ---------------------------------------------------------------------------
|
|
43
|
-
const geistTheme = {
|
|
44
|
-
...shared,
|
|
45
|
-
// Base text
|
|
46
|
-
BASE_COLOR: 'var(--ds-gray-1000)',
|
|
47
|
-
// Property names — default foreground (matches JSON key color in Geist Shiki)
|
|
48
|
-
OBJECT_NAME_COLOR: 'var(--ds-gray-1000)',
|
|
49
|
-
// Strings & symbols — green
|
|
50
|
-
OBJECT_VALUE_STRING_COLOR: 'var(--ds-green-900)',
|
|
51
|
-
OBJECT_VALUE_SYMBOL_COLOR: 'var(--ds-green-900)',
|
|
52
|
-
// Numbers & booleans — green (Geist JSON tokens)
|
|
53
|
-
OBJECT_VALUE_NUMBER_COLOR: 'var(--ds-green-900)',
|
|
54
|
-
OBJECT_VALUE_BOOLEAN_COLOR: 'var(--ds-green-900)',
|
|
55
|
-
// null — muted foreground
|
|
56
|
-
OBJECT_VALUE_NULL_COLOR: 'var(--ds-gray-900)',
|
|
57
|
-
// undefined — muted foreground
|
|
58
|
-
OBJECT_VALUE_UNDEFINED_COLOR: 'var(--ds-gray-900)',
|
|
59
|
-
// RegExp — purple
|
|
60
|
-
OBJECT_VALUE_REGEXP_COLOR: 'var(--ds-purple-900)',
|
|
61
|
-
// Functions — purple
|
|
62
|
-
OBJECT_VALUE_FUNCTION_PREFIX_COLOR: 'var(--ds-purple-900)',
|
|
63
|
-
// HTML (rarely used here, kept consistent with the palette)
|
|
64
|
-
HTML_TAG_COLOR: 'var(--ds-gray-900)',
|
|
65
|
-
HTML_TAGNAME_COLOR: 'var(--ds-blue-900)',
|
|
66
|
-
HTML_ATTRIBUTE_NAME_COLOR: 'var(--ds-amber-900)',
|
|
67
|
-
HTML_ATTRIBUTE_VALUE_COLOR: 'var(--ds-green-900)',
|
|
68
|
-
HTML_COMMENT_COLOR: 'var(--ds-gray-700)',
|
|
69
|
-
HTML_DOCTYPE_COLOR: 'var(--ds-gray-700)',
|
|
70
|
-
// Structural
|
|
71
|
-
ARROW_COLOR: 'var(--ds-gray-700)',
|
|
72
|
-
TABLE_BORDER_COLOR: 'var(--ds-gray-300)',
|
|
73
|
-
TABLE_TH_BACKGROUND_COLOR: 'var(--ds-gray-100)',
|
|
74
|
-
TABLE_TH_HOVER_COLOR: 'var(--ds-gray-200)',
|
|
75
|
-
TABLE_SORT_ICON_COLOR: 'var(--ds-gray-700)',
|
|
76
|
-
};
|
|
77
|
-
export const inspectorThemeLight = geistTheme;
|
|
78
|
-
// ---------------------------------------------------------------------------
|
|
79
|
-
// Dark theme
|
|
80
|
-
// ---------------------------------------------------------------------------
|
|
81
|
-
export const inspectorThemeDark = geistTheme;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdG9yLXRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdWkvaW5zcGVjdG9yLXRoZW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFZSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBMkI7SUFDakUsdUJBQXVCLEVBQUUsb0JBQW9CO0NBQzlDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBMkI7SUFDaEUsdUJBQXVCLEVBQUUsb0JBQW9CO0NBQzlDLENBQUM7QUFFRiw4RUFBOEU7QUFDOUUsaURBQWlEO0FBQ2pELDhFQUE4RTtBQUU5RSxNQUFNLE1BQU0sR0FBRztJQUNiLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGdCQUFnQixFQUFFLEdBQUc7SUFDckIscUJBQXFCLEVBQUUsYUFBYTtJQUNwQyxtQ0FBbUMsRUFBRSxFQUFFO0lBQ3ZDLG9DQUFvQyxFQUFFLENBQUM7SUFDdkMsMkJBQTJCLEVBQUUsV0FBb0I7SUFDakQsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixvQkFBb0IsRUFBRSxrQkFBa0I7SUFDeEMsa0JBQWtCLEVBQUUsTUFBTTtJQUMxQixvQkFBb0IsRUFBRSxHQUFHO0lBQ3pCLHFCQUFxQixFQUFFLEVBQUU7SUFDekIsMkJBQTJCLEVBQUUsTUFBTTtJQUNuQywwQkFBMEIsRUFBRSxHQUFHO0NBQ2hDLENBQUM7QUFFRiw4RUFBOEU7QUFDOUUsY0FBYztBQUNkLDhFQUE4RTtBQUU5RSxNQUFNLFVBQVUsR0FBRztJQUNqQixHQUFHLE1BQU07SUFFVCxZQUFZO0lBQ1osVUFBVSxFQUFFLHFCQUFxQjtJQUVqQyw4RUFBOEU7SUFDOUUsaUJBQWlCLEVBQUUscUJBQXFCO0lBRXhDLDRCQUE0QjtJQUM1Qix5QkFBeUIsRUFBRSxxQkFBcUI7SUFDaEQseUJBQXlCLEVBQUUscUJBQXFCO0lBRWhELGlEQUFpRDtJQUNqRCx5QkFBeUIsRUFBRSxxQkFBcUI7SUFDaEQsMEJBQTBCLEVBQUUscUJBQXFCO0lBRWpELDBCQUEwQjtJQUMxQix1QkFBdUIsRUFBRSxvQkFBb0I7SUFFN0MsK0JBQStCO0lBQy9CLDRCQUE0QixFQUFFLG9CQUFvQjtJQUVsRCxrQkFBa0I7SUFDbEIseUJBQXlCLEVBQUUsc0JBQXNCO0lBRWpELHFCQUFxQjtJQUNyQixrQ0FBa0MsRUFBRSxzQkFBc0I7SUFFMUQsNERBQTREO0lBQzVELGNBQWMsRUFBRSxvQkFBb0I7SUFDcEMsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLHlCQUF5QixFQUFFLHFCQUFxQjtJQUNoRCwwQkFBMEIsRUFBRSxxQkFBcUI7SUFDakQsa0JBQWtCLEVBQUUsb0JBQW9CO0lBQ3hDLGtCQUFrQixFQUFFLG9CQUFvQjtJQUV4QyxhQUFhO0lBQ2IsV0FBVyxFQUFFLG9CQUFvQjtJQUNqQyxrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMseUJBQXlCLEVBQUUsb0JBQW9CO0lBQy9DLG9CQUFvQixFQUFFLG9CQUFvQjtJQUMxQyxxQkFBcUIsRUFBRSxvQkFBb0I7Q0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQztBQUU5Qyw4RUFBOEU7QUFDOUUsYUFBYTtBQUNiLDhFQUE4RTtBQUU5RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNoYXJlZCB0aGVtZSBjb25maWd1cmF0aW9uIGZvciByZWFjdC1pbnNwZWN0b3IncyBPYmplY3RJbnNwZWN0b3IuXG4gKlxuICogQ29sb3JzIGZvbGxvdyBHZWlzdCdzIFNoaWtpIEpTT04gcGFsZXR0ZSBzbyB0aGUgaW5zcGVjdG9yIHJlYWRzIHRoZSBzYW1lXG4gKiBhcyBoaWdobGlnaHRlZCBjb2RlIGJsb2NrcyBhY3Jvc3MgdGhlIHByb2R1Y3Q6XG4gKiAgIC0gcHJvcGVydHkgbmFtZXMgLyBwdW5jdHVhdGlvbjogLS1kcy1ncmF5LTEwMDAgKGRlZmF1bHQgZm9yZWdyb3VuZClcbiAqICAgLSBzdHJpbmdzIC8gbnVtYmVycyAvIGJvb2xlYW5zOiAtLWRzLWdyZWVuLTkwMFxuICogICAtIG51bGwgLyB1bmRlZmluZWQ6IC0tZHMtZ3JheS05MDAgKG11dGVkKVxuICogICAtIHJlZ2V4cCAvIGZ1bmN0aW9uOiAtLWRzLXB1cnBsZS05MDBcbiAqICAgLSBkYXRlOiAtLWRzLXBpbmstOTAwXG4gKlxuICogQmVjYXVzZSB0aGUgYC0tZHMtKmAgdG9rZW5zIGFkYXB0IHRvIHRoZW1lIGF1dG9tYXRpY2FsbHksIHRoZSBsaWdodCBhbmRcbiAqIGRhcmsgb2JqZWN0cyBhcmUgaW50ZW50aW9uYWxseSBpZGVudGljYWwuXG4gKi9cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeHRlbmRlZCBjb2xvciB0b2tlbnMgbm90IHN1cHBvcnRlZCBieSByZWFjdC1pbnNwZWN0b3IncyBidWlsdC1pbiB0aGVtZVxuLy8gc3lzdGVtLCBhcHBsaWVkIHZpYSBvdXIgY3VzdG9tIG5vZGVSZW5kZXJlciBpbiBkYXRhLWluc3BlY3Rvci50c3guXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IGludGVyZmFjZSBJbnNwZWN0b3JUaGVtZUV4dGVuZGVkIHtcbiAgLyoqIENvbG9yIGZvciBEYXRlIHZhbHVlcyAoTm9kZTogJ21hZ2VudGEnKSAqL1xuICBPQkpFQ1RfVkFMVUVfREFURV9DT0xPUjogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgaW5zcGVjdG9yVGhlbWVFeHRlbmRlZExpZ2h0OiBJbnNwZWN0b3JUaGVtZUV4dGVuZGVkID0ge1xuICBPQkpFQ1RfVkFMVUVfREFURV9DT0xPUjogJ3ZhcigtLWRzLXBpbmstOTAwKScsXG59O1xuXG5leHBvcnQgY29uc3QgaW5zcGVjdG9yVGhlbWVFeHRlbmRlZERhcms6IEluc3BlY3RvclRoZW1lRXh0ZW5kZWQgPSB7XG4gIE9CSkVDVF9WQUxVRV9EQVRFX0NPTE9SOiAndmFyKC0tZHMtcGluay05MDApJyxcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2hhcmVkIHN0cnVjdHVyYWwgdmFsdWVzIChzYW1lIGluIGJvdGggdGhlbWVzKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmNvbnN0IHNoYXJlZCA9IHtcbiAgQkFTRV9GT05UX1NJWkU6ICcxMXB4JyxcbiAgQkFTRV9MSU5FX0hFSUdIVDogMS40LFxuICBCQVNFX0JBQ0tHUk9VTkRfQ09MT1I6ICd0cmFuc3BhcmVudCcsXG4gIE9CSkVDVF9QUkVWSUVXX0FSUkFZX01BWF9QUk9QRVJUSUVTOiAxMCxcbiAgT0JKRUNUX1BSRVZJRVdfT0JKRUNUX01BWF9QUk9QRVJUSUVTOiA1LFxuICBIVE1MX1RBR05BTUVfVEVYVF9UUkFOU0ZPUk06ICdsb3dlcmNhc2UnIGFzIGNvbnN0LFxuICBBUlJPV19NQVJHSU5fUklHSFQ6IDMsXG4gIEFSUk9XX0ZPTlRfU0laRTogMTIsXG4gIFRSRUVOT0RFX0ZPTlRfRkFNSUxZOiAndmFyKC0tZm9udC1tb25vKScsXG4gIFRSRUVOT0RFX0ZPTlRfU0laRTogJzExcHgnLFxuICBUUkVFTk9ERV9MSU5FX0hFSUdIVDogMS40LFxuICBUUkVFTk9ERV9QQURESU5HX0xFRlQ6IDEyLFxuICBUQUJMRV9EQVRBX0JBQ0tHUk9VTkRfSU1BR0U6ICdub25lJyxcbiAgVEFCTEVfREFUQV9CQUNLR1JPVU5EX1NJWkU6ICcwJyxcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTGlnaHQgdGhlbWVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5jb25zdCBnZWlzdFRoZW1lID0ge1xuICAuLi5zaGFyZWQsXG5cbiAgLy8gQmFzZSB0ZXh0XG4gIEJBU0VfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTEwMDApJyxcblxuICAvLyBQcm9wZXJ0eSBuYW1lcyDigJQgZGVmYXVsdCBmb3JlZ3JvdW5kIChtYXRjaGVzIEpTT04ga2V5IGNvbG9yIGluIEdlaXN0IFNoaWtpKVxuICBPQkpFQ1RfTkFNRV9DT0xPUjogJ3ZhcigtLWRzLWdyYXktMTAwMCknLFxuXG4gIC8vIFN0cmluZ3MgJiBzeW1ib2xzIOKAlCBncmVlblxuICBPQkpFQ1RfVkFMVUVfU1RSSU5HX0NPTE9SOiAndmFyKC0tZHMtZ3JlZW4tOTAwKScsXG4gIE9CSkVDVF9WQUxVRV9TWU1CT0xfQ09MT1I6ICd2YXIoLS1kcy1ncmVlbi05MDApJyxcblxuICAvLyBOdW1iZXJzICYgYm9vbGVhbnMg4oCUIGdyZWVuIChHZWlzdCBKU09OIHRva2VucylcbiAgT0JKRUNUX1ZBTFVFX05VTUJFUl9DT0xPUjogJ3ZhcigtLWRzLWdyZWVuLTkwMCknLFxuICBPQkpFQ1RfVkFMVUVfQk9PTEVBTl9DT0xPUjogJ3ZhcigtLWRzLWdyZWVuLTkwMCknLFxuXG4gIC8vIG51bGwg4oCUIG11dGVkIGZvcmVncm91bmRcbiAgT0JKRUNUX1ZBTFVFX05VTExfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTkwMCknLFxuXG4gIC8vIHVuZGVmaW5lZCDigJQgbXV0ZWQgZm9yZWdyb3VuZFxuICBPQkpFQ1RfVkFMVUVfVU5ERUZJTkVEX0NPTE9SOiAndmFyKC0tZHMtZ3JheS05MDApJyxcblxuICAvLyBSZWdFeHAg4oCUIHB1cnBsZVxuICBPQkpFQ1RfVkFMVUVfUkVHRVhQX0NPTE9SOiAndmFyKC0tZHMtcHVycGxlLTkwMCknLFxuXG4gIC8vIEZ1bmN0aW9ucyDigJQgcHVycGxlXG4gIE9CSkVDVF9WQUxVRV9GVU5DVElPTl9QUkVGSVhfQ09MT1I6ICd2YXIoLS1kcy1wdXJwbGUtOTAwKScsXG5cbiAgLy8gSFRNTCAocmFyZWx5IHVzZWQgaGVyZSwga2VwdCBjb25zaXN0ZW50IHdpdGggdGhlIHBhbGV0dGUpXG4gIEhUTUxfVEFHX0NPTE9SOiAndmFyKC0tZHMtZ3JheS05MDApJyxcbiAgSFRNTF9UQUdOQU1FX0NPTE9SOiAndmFyKC0tZHMtYmx1ZS05MDApJyxcbiAgSFRNTF9BVFRSSUJVVEVfTkFNRV9DT0xPUjogJ3ZhcigtLWRzLWFtYmVyLTkwMCknLFxuICBIVE1MX0FUVFJJQlVURV9WQUxVRV9DT0xPUjogJ3ZhcigtLWRzLWdyZWVuLTkwMCknLFxuICBIVE1MX0NPTU1FTlRfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTcwMCknLFxuICBIVE1MX0RPQ1RZUEVfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTcwMCknLFxuXG4gIC8vIFN0cnVjdHVyYWxcbiAgQVJST1dfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTcwMCknLFxuICBUQUJMRV9CT1JERVJfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTMwMCknLFxuICBUQUJMRV9USF9CQUNLR1JPVU5EX0NPTE9SOiAndmFyKC0tZHMtZ3JheS0xMDApJyxcbiAgVEFCTEVfVEhfSE9WRVJfQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTIwMCknLFxuICBUQUJMRV9TT1JUX0lDT05fQ09MT1I6ICd2YXIoLS1kcy1ncmF5LTcwMCknLFxufTtcblxuZXhwb3J0IGNvbnN0IGluc3BlY3RvclRoZW1lTGlnaHQgPSBnZWlzdFRoZW1lO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIERhcmsgdGhlbWVcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgY29uc3QgaW5zcGVjdG9yVGhlbWVEYXJrID0gZ2Vpc3RUaGVtZTtcbiJdfQ==
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared theme configuration for react-inspector's ObjectInspector.
|
|
3
|
-
*
|
|
4
|
-
* Colors follow Geist's Shiki JSON palette so the inspector reads the same
|
|
5
|
-
* as highlighted code blocks across the product:
|
|
6
|
-
* - property names / punctuation: --ds-gray-1000 (default foreground)
|
|
7
|
-
* - strings / numbers / booleans: --ds-green-900
|
|
8
|
-
* - null / undefined: --ds-gray-900 (muted)
|
|
9
|
-
* - regexp / function: --ds-purple-900
|
|
10
|
-
* - date: --ds-pink-900
|
|
11
|
-
*
|
|
12
|
-
* Because the `--ds-*` tokens adapt to theme automatically, the light and
|
|
13
|
-
* dark objects are intentionally identical.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
// Extended color tokens not supported by react-inspector's built-in theme
|
|
18
|
-
// system, applied via our custom nodeRenderer in data-inspector.tsx.
|
|
19
|
-
// ---------------------------------------------------------------------------
|
|
20
|
-
|
|
21
|
-
export interface InspectorThemeExtended {
|
|
22
|
-
/** Color for Date values (Node: 'magenta') */
|
|
23
|
-
OBJECT_VALUE_DATE_COLOR: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export const inspectorThemeExtendedLight: InspectorThemeExtended = {
|
|
27
|
-
OBJECT_VALUE_DATE_COLOR: 'var(--ds-pink-900)',
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const inspectorThemeExtendedDark: InspectorThemeExtended = {
|
|
31
|
-
OBJECT_VALUE_DATE_COLOR: 'var(--ds-pink-900)',
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
// ---------------------------------------------------------------------------
|
|
35
|
-
// Shared structural values (same in both themes)
|
|
36
|
-
// ---------------------------------------------------------------------------
|
|
37
|
-
|
|
38
|
-
const shared = {
|
|
39
|
-
BASE_FONT_SIZE: '11px',
|
|
40
|
-
BASE_LINE_HEIGHT: 1.4,
|
|
41
|
-
BASE_BACKGROUND_COLOR: 'transparent',
|
|
42
|
-
OBJECT_PREVIEW_ARRAY_MAX_PROPERTIES: 10,
|
|
43
|
-
OBJECT_PREVIEW_OBJECT_MAX_PROPERTIES: 5,
|
|
44
|
-
HTML_TAGNAME_TEXT_TRANSFORM: 'lowercase' as const,
|
|
45
|
-
ARROW_MARGIN_RIGHT: 3,
|
|
46
|
-
ARROW_FONT_SIZE: 12,
|
|
47
|
-
TREENODE_FONT_FAMILY: 'var(--font-mono)',
|
|
48
|
-
TREENODE_FONT_SIZE: '11px',
|
|
49
|
-
TREENODE_LINE_HEIGHT: 1.4,
|
|
50
|
-
TREENODE_PADDING_LEFT: 12,
|
|
51
|
-
TABLE_DATA_BACKGROUND_IMAGE: 'none',
|
|
52
|
-
TABLE_DATA_BACKGROUND_SIZE: '0',
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
// ---------------------------------------------------------------------------
|
|
56
|
-
// Light theme
|
|
57
|
-
// ---------------------------------------------------------------------------
|
|
58
|
-
|
|
59
|
-
const geistTheme = {
|
|
60
|
-
...shared,
|
|
61
|
-
|
|
62
|
-
// Base text
|
|
63
|
-
BASE_COLOR: 'var(--ds-gray-1000)',
|
|
64
|
-
|
|
65
|
-
// Property names — default foreground (matches JSON key color in Geist Shiki)
|
|
66
|
-
OBJECT_NAME_COLOR: 'var(--ds-gray-1000)',
|
|
67
|
-
|
|
68
|
-
// Strings & symbols — green
|
|
69
|
-
OBJECT_VALUE_STRING_COLOR: 'var(--ds-green-900)',
|
|
70
|
-
OBJECT_VALUE_SYMBOL_COLOR: 'var(--ds-green-900)',
|
|
71
|
-
|
|
72
|
-
// Numbers & booleans — green (Geist JSON tokens)
|
|
73
|
-
OBJECT_VALUE_NUMBER_COLOR: 'var(--ds-green-900)',
|
|
74
|
-
OBJECT_VALUE_BOOLEAN_COLOR: 'var(--ds-green-900)',
|
|
75
|
-
|
|
76
|
-
// null — muted foreground
|
|
77
|
-
OBJECT_VALUE_NULL_COLOR: 'var(--ds-gray-900)',
|
|
78
|
-
|
|
79
|
-
// undefined — muted foreground
|
|
80
|
-
OBJECT_VALUE_UNDEFINED_COLOR: 'var(--ds-gray-900)',
|
|
81
|
-
|
|
82
|
-
// RegExp — purple
|
|
83
|
-
OBJECT_VALUE_REGEXP_COLOR: 'var(--ds-purple-900)',
|
|
84
|
-
|
|
85
|
-
// Functions — purple
|
|
86
|
-
OBJECT_VALUE_FUNCTION_PREFIX_COLOR: 'var(--ds-purple-900)',
|
|
87
|
-
|
|
88
|
-
// HTML (rarely used here, kept consistent with the palette)
|
|
89
|
-
HTML_TAG_COLOR: 'var(--ds-gray-900)',
|
|
90
|
-
HTML_TAGNAME_COLOR: 'var(--ds-blue-900)',
|
|
91
|
-
HTML_ATTRIBUTE_NAME_COLOR: 'var(--ds-amber-900)',
|
|
92
|
-
HTML_ATTRIBUTE_VALUE_COLOR: 'var(--ds-green-900)',
|
|
93
|
-
HTML_COMMENT_COLOR: 'var(--ds-gray-700)',
|
|
94
|
-
HTML_DOCTYPE_COLOR: 'var(--ds-gray-700)',
|
|
95
|
-
|
|
96
|
-
// Structural
|
|
97
|
-
ARROW_COLOR: 'var(--ds-gray-700)',
|
|
98
|
-
TABLE_BORDER_COLOR: 'var(--ds-gray-300)',
|
|
99
|
-
TABLE_TH_BACKGROUND_COLOR: 'var(--ds-gray-100)',
|
|
100
|
-
TABLE_TH_HOVER_COLOR: 'var(--ds-gray-200)',
|
|
101
|
-
TABLE_SORT_ICON_COLOR: 'var(--ds-gray-700)',
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
export const inspectorThemeLight = geistTheme;
|
|
105
|
-
|
|
106
|
-
// ---------------------------------------------------------------------------
|
|
107
|
-
// Dark theme
|
|
108
|
-
// ---------------------------------------------------------------------------
|
|
109
|
-
|
|
110
|
-
export const inspectorThemeDark = geistTheme;
|