@uiw/react-json-view 1.9.0 → 1.11.0

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/README.md CHANGED
@@ -11,10 +11,7 @@ A React component for displaying and editing javascript arrays and JSON objects.
11
11
 
12
12
  <!--rehype:ignore:start-->
13
13
  <a href="https://uiwjs.github.io/react-json-view/" target="_blank">
14
- <img width="360" alt="react-json-view" src="https://github.com/uiwjs/react-json-view/assets/1680273/b8b8300b-2a43-4173-878b-73e50cfac19c" />
15
- </a>
16
- <a href="https://uiwjs.github.io/react-json-view/" target="_blank">
17
- <img width="360" alt="react-json-view" src="https://github.com/uiwjs/react-code-preview-layout/assets/1680273/da8e8499-6de3-4d4f-8316-8b2a3b616170" />
14
+ <img width="650" alt="react-json-view" src="https://github.com/uiwjs/react-json-view/assets/1680273/1c19bd72-f2ad-4d21-8708-cb30f3059cfd" />
18
15
  </a>
19
16
 
20
17
  <!--rehype:ignore:end-->
@@ -85,20 +82,40 @@ import React from 'react';
85
82
  import JsonView from '@uiw/react-json-view';
86
83
  import { lightTheme } from '@uiw/react-json-view/light';
87
84
  import { darkTheme } from '@uiw/react-json-view/dark';
85
+ import { nordTheme } from '@uiw/react-json-view/nord';
86
+ import { githubLightTheme } from '@uiw/react-json-view/githubLight';
87
+ import { githubDarkTheme } from '@uiw/react-json-view/githubDark';
88
+ import { vscodeTheme } from '@uiw/react-json-view/vscode';
89
+ import { gruvboxTheme } from '@uiw/react-json-view/gruvbox';
90
+ import { monokaiTheme } from '@uiw/react-json-view/monokai';
91
+ import { basicTheme } from '@uiw/react-json-view/basic';
88
92
 
89
93
  const object = {
90
94
  string: 'Lorem ipsum dolor sit amet',
91
95
  integer: 42,
92
96
  float: 114.514,
97
+ boolean: true,
98
+ null: null,
99
+ nan: NaN,
100
+ url: new URL('https://example.com'),
93
101
  }
94
102
 
103
+ const style = { display: 'grid', gap: '1rem', gridTemplateColumns: 'repeat(auto-fill, minmax(250px, 1fr))' };
104
+
95
105
  export default function Demo() {
96
106
  return (
97
- <React.Fragment>
107
+ <div style={style}>
98
108
  <JsonView value={object} style={darkTheme} />
99
109
  <JsonView value={object} style={lightTheme} />
100
- </React.Fragment>
101
- )
110
+ <JsonView value={object} style={nordTheme} />
111
+ <JsonView value={object} style={githubLightTheme} />
112
+ <JsonView value={object} style={githubDarkTheme} />
113
+ <JsonView value={object} style={gruvboxTheme} />
114
+ <JsonView value={object} style={vscodeTheme} />
115
+ <JsonView value={object} style={monokaiTheme} />
116
+ <JsonView value={object} style={basicTheme} />
117
+ </div>
118
+ );
102
119
  }
103
120
  ```
104
121
 
@@ -133,6 +150,7 @@ const customTheme = {
133
150
  '--w-rjv-copied-success-color': '#28a745',
134
151
 
135
152
  '--w-rjv-curlybraces-color': '#d4d4d4',
153
+ '--w-rjv-colon-color': '#d4d4d4',
136
154
  '--w-rjv-brackets-color': '#d4d4d4',
137
155
 
138
156
  '--w-rjv-type-string-color': '#ce9178',
@@ -200,6 +218,7 @@ const customTheme = {
200
218
  '--w-rjv-copied-success-color': '#28a745',
201
219
 
202
220
  '--w-rjv-curlybraces-color': '#d4d4d4',
221
+ '--w-rjv-colon-color': '#f8f8f2',
203
222
  '--w-rjv-brackets-color': '#d4d4d4',
204
223
 
205
224
  '--w-rjv-type-string-color': '#ce9178',
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const basicTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.basicTheme = void 0;
7
+ var basicTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#b5bd68',
10
+ '--w-rjv-background-color': '#2E3235',
11
+ '--w-rjv-line-color': '#292d30',
12
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#d8d8d84d',
15
+ '--w-rjv-update-color': '#b5bd68',
16
+ '--w-rjv-copied-color': '#b5bd68',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#cc99cc',
19
+ '--w-rjv-colon-color': '#bababa',
20
+ '--w-rjv-brackets-color': '#808080',
21
+ '--w-rjv-type-string-color': '#b5bd68',
22
+ '--w-rjv-type-int-color': '#fda331',
23
+ '--w-rjv-type-float-color': '#fda331',
24
+ '--w-rjv-type-bigint-color': '#fda331',
25
+ '--w-rjv-type-boolean-color': '#fda331',
26
+ '--w-rjv-type-date-color': '#8abeb7',
27
+ '--w-rjv-type-url-color': '#5a89c0',
28
+ '--w-rjv-type-null-color': '#8abeb7',
29
+ '--w-rjv-type-nan-color': '#8abeb7',
30
+ '--w-rjv-type-undefined-color': '#8abeb7'
31
+ };
32
+ exports.basicTheme = basicTheme;
@@ -1,24 +1,2 @@
1
- export declare const darkTheme: {
2
- '--w-rjv-font-family': string;
3
- '--w-rjv-color': string;
4
- '--w-rjv-background-color': string;
5
- '--w-rjv-line-color': string;
6
- '--w-rjv-arrow-color': string;
7
- '--w-rjv-edit-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-update-color': string;
10
- '--w-rjv-copied-color': string;
11
- '--w-rjv-copied-success-color': string;
12
- '--w-rjv-curlybraces-color': string;
13
- '--w-rjv-brackets-color': string;
14
- '--w-rjv-type-string-color': string;
15
- '--w-rjv-type-int-color': string;
16
- '--w-rjv-type-float-color': string;
17
- '--w-rjv-type-bigint-color': string;
18
- '--w-rjv-type-boolean-color': string;
19
- '--w-rjv-type-date-color': string;
20
- '--w-rjv-type-url-color': string;
21
- '--w-rjv-type-null-color': string;
22
- '--w-rjv-type-nan-color': string;
23
- '--w-rjv-type-undefined-color': string;
24
- };
1
+ /// <reference types="react" />
2
+ export declare const darkTheme: import("react").CSSProperties;
package/cjs/theme/dark.js CHANGED
@@ -25,7 +25,7 @@ var darkTheme = {
25
25
  '--w-rjv-type-date-color': '#586e75',
26
26
  '--w-rjv-type-url-color': '#649bd8',
27
27
  '--w-rjv-type-null-color': '#d33682',
28
- '--w-rjv-type-nan-color': '#859900',
28
+ '--w-rjv-type-nan-color': '#076678',
29
29
  '--w-rjv-type-undefined-color': '#586e75'
30
30
  };
31
31
  exports.darkTheme = darkTheme;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const githubDarkTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.githubDarkTheme = void 0;
7
+ var githubDarkTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#79c0ff',
10
+ '--w-rjv-background-color': '#0d1117',
11
+ '--w-rjv-line-color': '#94949480',
12
+ '--w-rjv-arrow-color': '#ccc',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#7b7b7b',
15
+ '--w-rjv-update-color': '#ebcb8b',
16
+ '--w-rjv-copied-color': '#79c0ff',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#8b949e',
19
+ '--w-rjv-colon-color': '#c9d1d9',
20
+ '--w-rjv-brackets-color': '#8b949e',
21
+ '--w-rjv-type-string-color': '#a5d6ff',
22
+ '--w-rjv-type-int-color': '#79c0ff',
23
+ '--w-rjv-type-float-color': '#79c0ff',
24
+ '--w-rjv-type-bigint-color': '#79c0ff',
25
+ '--w-rjv-type-boolean-color': '#ffab70',
26
+ '--w-rjv-type-date-color': '#79c0ff',
27
+ '--w-rjv-type-url-color': '#4facff',
28
+ '--w-rjv-type-null-color': '#ff7b72',
29
+ '--w-rjv-type-nan-color': '#859900',
30
+ '--w-rjv-type-undefined-color': '#79c0ff'
31
+ };
32
+ exports.githubDarkTheme = githubDarkTheme;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const githubLightTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.githubLightTheme = void 0;
7
+ var githubLightTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#6f42c1',
10
+ '--w-rjv-background-color': '#ffffff',
11
+ '--w-rjv-line-color': '#ddd',
12
+ '--w-rjv-arrow-color': '#6e7781',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#0000004d',
15
+ '--w-rjv-update-color': '#ebcb8b',
16
+ '--w-rjv-copied-color': '#002b36',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#6a737d',
19
+ '--w-rjv-colon-color': '#24292e',
20
+ '--w-rjv-brackets-color': '#6a737d',
21
+ '--w-rjv-type-string-color': '#032f62',
22
+ '--w-rjv-type-int-color': '#005cc5',
23
+ '--w-rjv-type-float-color': '#005cc5',
24
+ '--w-rjv-type-bigint-color': '#005cc5',
25
+ '--w-rjv-type-boolean-color': '#d73a49',
26
+ '--w-rjv-type-date-color': '#005cc5',
27
+ '--w-rjv-type-url-color': '#0969da',
28
+ '--w-rjv-type-null-color': '#d73a49',
29
+ '--w-rjv-type-nan-color': '#859900',
30
+ '--w-rjv-type-undefined-color': '#005cc5'
31
+ };
32
+ exports.githubLightTheme = githubLightTheme;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const gruvboxTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gruvboxTheme = void 0;
7
+ var gruvboxTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#3c3836',
10
+ '--w-rjv-background-color': '#fbf1c7',
11
+ '--w-rjv-line-color': '#ebdbb2',
12
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#0000004d',
15
+ '--w-rjv-update-color': '#ebcb8b',
16
+ '--w-rjv-copied-color': '#002b36',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#236a7c',
19
+ '--w-rjv-colon-color': '#002b36',
20
+ '--w-rjv-brackets-color': '#236a7c',
21
+ '--w-rjv-type-string-color': '#3c3836',
22
+ '--w-rjv-type-int-color': '#8f3f71',
23
+ '--w-rjv-type-float-color': '#8f3f71',
24
+ '--w-rjv-type-bigint-color': '#8f3f71',
25
+ '--w-rjv-type-boolean-color': '#8f3f71',
26
+ '--w-rjv-type-date-color': '#076678',
27
+ '--w-rjv-type-url-color': '#0969da',
28
+ '--w-rjv-type-null-color': '#076678',
29
+ '--w-rjv-type-nan-color': '#076678',
30
+ '--w-rjv-type-undefined-color': '#076678'
31
+ };
32
+ exports.gruvboxTheme = gruvboxTheme;
@@ -1,24 +1,2 @@
1
- export declare const lightTheme: {
2
- '--w-rjv-font-family': string;
3
- '--w-rjv-color': string;
4
- '--w-rjv-background-color': string;
5
- '--w-rjv-line-color': string;
6
- '--w-rjv-arrow-color': string;
7
- '--w-rjv-edit-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-update-color': string;
10
- '--w-rjv-copied-color': string;
11
- '--w-rjv-copied-success-color': string;
12
- '--w-rjv-curlybraces-color': string;
13
- '--w-rjv-brackets-color': string;
14
- '--w-rjv-type-string-color': string;
15
- '--w-rjv-type-int-color': string;
16
- '--w-rjv-type-float-color': string;
17
- '--w-rjv-type-bigint-color': string;
18
- '--w-rjv-type-boolean-color': string;
19
- '--w-rjv-type-date-color': string;
20
- '--w-rjv-type-url-color': string;
21
- '--w-rjv-type-null-color': string;
22
- '--w-rjv-type-nan-color': string;
23
- '--w-rjv-type-undefined-color': string;
24
- };
1
+ /// <reference types="react" />
2
+ export declare const lightTheme: import("react").CSSProperties;
@@ -16,6 +16,7 @@ var lightTheme = {
16
16
  '--w-rjv-copied-color': '#002b36',
17
17
  '--w-rjv-copied-success-color': '#28a745',
18
18
  '--w-rjv-curlybraces-color': '#236a7c',
19
+ '--w-rjv-colon-color': '#002b36',
19
20
  '--w-rjv-brackets-color': '#236a7c',
20
21
  '--w-rjv-type-string-color': '#cb4b16',
21
22
  '--w-rjv-type-int-color': '#268bd2',
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const monokaiTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.monokaiTheme = void 0;
7
+ var monokaiTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#E6DB74',
10
+ '--w-rjv-background-color': '#272822',
11
+ '--w-rjv-line-color': '#3e3d32',
12
+ '--w-rjv-arrow-color': '#f8f8f2',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#cecece4d',
15
+ '--w-rjv-update-color': '#5f5600',
16
+ '--w-rjv-copied-color': '#E6DB74',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#f8f8f2',
19
+ '--w-rjv-colon-color': '#f8f8f2',
20
+ '--w-rjv-brackets-color': '#f8f8f2',
21
+ '--w-rjv-type-string-color': '#E6DB74',
22
+ '--w-rjv-type-int-color': '#AE81FF',
23
+ '--w-rjv-type-float-color': '#AE81FF',
24
+ '--w-rjv-type-bigint-color': '#AE81FF',
25
+ '--w-rjv-type-boolean-color': '#AE81FF',
26
+ '--w-rjv-type-date-color': '#fd9720c7',
27
+ '--w-rjv-type-url-color': '#55a3ff',
28
+ '--w-rjv-type-null-color': '#FA2672',
29
+ '--w-rjv-type-nan-color': '#FD971F',
30
+ '--w-rjv-type-undefined-color': '#FD971F'
31
+ };
32
+ exports.monokaiTheme = monokaiTheme;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const nordTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.nordTheme = void 0;
7
+ var nordTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#88c0d0',
10
+ '--w-rjv-background-color': '#2e3440',
11
+ '--w-rjv-line-color': '#4c566a',
12
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#c7c7c74d',
15
+ '--w-rjv-update-color': '#88c0cf75',
16
+ '--w-rjv-copied-color': '#119cc0',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#8fbcbb',
19
+ '--w-rjv-colon-color': '#6d9fac',
20
+ '--w-rjv-brackets-color': '#8fbcbb',
21
+ '--w-rjv-type-string-color': '#a3be8c',
22
+ '--w-rjv-type-int-color': '#b48ead',
23
+ '--w-rjv-type-float-color': '#859900',
24
+ '--w-rjv-type-bigint-color': '#b48ead',
25
+ '--w-rjv-type-boolean-color': '#d08770',
26
+ '--w-rjv-type-date-color': '#41a2c2',
27
+ '--w-rjv-type-url-color': '#5e81ac',
28
+ '--w-rjv-type-null-color': '#5e81ac',
29
+ '--w-rjv-type-nan-color': '#859900',
30
+ '--w-rjv-type-undefined-color': '#586e75'
31
+ };
32
+ exports.nordTheme = nordTheme;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const vscodeTheme: import("react").CSSProperties;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.vscodeTheme = void 0;
7
+ var vscodeTheme = {
8
+ '--w-rjv-font-family': 'monospace',
9
+ '--w-rjv-color': '#9cdcfe',
10
+ '--w-rjv-background-color': '#1e1e1e',
11
+ '--w-rjv-line-color': '#36334280',
12
+ '--w-rjv-arrow-color': '#838383',
13
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
14
+ '--w-rjv-info-color': '#9c9c9c7a',
15
+ '--w-rjv-update-color': '#9cdcfe',
16
+ '--w-rjv-copied-color': '#9cdcfe',
17
+ '--w-rjv-copied-success-color': '#28a745',
18
+ '--w-rjv-curlybraces-color': '#d4d4d4',
19
+ '--w-rjv-colon-color': '#d4d4d4',
20
+ '--w-rjv-brackets-color': '#d4d4d4',
21
+ '--w-rjv-type-string-color': '#ce9178',
22
+ '--w-rjv-type-int-color': '#b5cea8',
23
+ '--w-rjv-type-float-color': '#b5cea8',
24
+ '--w-rjv-type-bigint-color': '#b5cea8',
25
+ '--w-rjv-type-boolean-color': '#569cd6',
26
+ '--w-rjv-type-date-color': '#b5cea8',
27
+ '--w-rjv-type-url-color': '#3b89cf',
28
+ '--w-rjv-type-null-color': '#569cd6',
29
+ '--w-rjv-type-nan-color': '#859900',
30
+ '--w-rjv-type-undefined-color': '#569cd6'
31
+ };
32
+ exports.vscodeTheme = vscodeTheme;
package/cjs/value.js CHANGED
@@ -80,9 +80,11 @@ var Colon = function Colon(_ref) {
80
80
  props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
81
81
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
82
82
  className: "w-rjv-colon",
83
- style: (0, _objectSpread2["default"])({
83
+ style: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
84
84
  paddingRight: 3
85
- }, style)
85
+ }, style), {}, {
86
+ color: 'var(--w-rjv-colon-color, var(--w-rjv-color))'
87
+ })
86
88
  }, props), {}, {
87
89
  children: children
88
90
  }));
@@ -95,6 +97,10 @@ function getValueString(value) {
95
97
  if (typeof value === 'number') {
96
98
  type = isFloat(value) ? 'float' : 'number';
97
99
  content = value.toString();
100
+ if (isNaN(value)) {
101
+ type = 'NaN';
102
+ content = 'NaN';
103
+ }
98
104
  }
99
105
  if (typeof value === 'boolean') {
100
106
  type = 'boolean';
@@ -212,7 +218,7 @@ function ValueView(props) {
212
218
  fontWeight: 'bold'
213
219
  };
214
220
  }
215
- if (value === undefined) {
221
+ if (value === undefined || type === 'NaN') {
216
222
  typeView = /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, {});
217
223
  }
218
224
  var isURL = value instanceof URL;
package/dark.d.ts CHANGED
@@ -1,19 +1,3 @@
1
1
  declare module '@uiw/react-json-view/dark' {
2
- export const darkTheme: {
3
- '--w-rjv-font-family': string;
4
- '--w-rjv-color': string;
5
- '--w-rjv-background-color': string;
6
- '--w-rjv-border-left': string;
7
- '--w-rjv-arrow-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-type-string-color': string;
10
- '--w-rjv-type-int-color': string;
11
- '--w-rjv-type-float-color': string;
12
- '--w-rjv-type-bigint-color': string;
13
- '--w-rjv-type-boolean-color': string;
14
- '--w-rjv-type-date-color': string;
15
- '--w-rjv-type-null-color': string;
16
- '--w-rjv-type-nan-color': string;
17
- '--w-rjv-type-undefined-color': string;
18
- };
2
+ export const darkTheme: import('react').CSSProperties;
19
3
  }
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const basicTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var basicTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#b5bd68',
4
+ '--w-rjv-background-color': '#2E3235',
5
+ '--w-rjv-line-color': '#292d30',
6
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#d8d8d84d',
9
+ '--w-rjv-update-color': '#b5bd68',
10
+ '--w-rjv-copied-color': '#b5bd68',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#cc99cc',
13
+ '--w-rjv-colon-color': '#bababa',
14
+ '--w-rjv-brackets-color': '#808080',
15
+ '--w-rjv-type-string-color': '#b5bd68',
16
+ '--w-rjv-type-int-color': '#fda331',
17
+ '--w-rjv-type-float-color': '#fda331',
18
+ '--w-rjv-type-bigint-color': '#fda331',
19
+ '--w-rjv-type-boolean-color': '#fda331',
20
+ '--w-rjv-type-date-color': '#8abeb7',
21
+ '--w-rjv-type-url-color': '#5a89c0',
22
+ '--w-rjv-type-null-color': '#8abeb7',
23
+ '--w-rjv-type-nan-color': '#8abeb7',
24
+ '--w-rjv-type-undefined-color': '#8abeb7'
25
+ };
@@ -1,24 +1,2 @@
1
- export declare const darkTheme: {
2
- '--w-rjv-font-family': string;
3
- '--w-rjv-color': string;
4
- '--w-rjv-background-color': string;
5
- '--w-rjv-line-color': string;
6
- '--w-rjv-arrow-color': string;
7
- '--w-rjv-edit-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-update-color': string;
10
- '--w-rjv-copied-color': string;
11
- '--w-rjv-copied-success-color': string;
12
- '--w-rjv-curlybraces-color': string;
13
- '--w-rjv-brackets-color': string;
14
- '--w-rjv-type-string-color': string;
15
- '--w-rjv-type-int-color': string;
16
- '--w-rjv-type-float-color': string;
17
- '--w-rjv-type-bigint-color': string;
18
- '--w-rjv-type-boolean-color': string;
19
- '--w-rjv-type-date-color': string;
20
- '--w-rjv-type-url-color': string;
21
- '--w-rjv-type-null-color': string;
22
- '--w-rjv-type-nan-color': string;
23
- '--w-rjv-type-undefined-color': string;
24
- };
1
+ /// <reference types="react" />
2
+ export declare const darkTheme: import("react").CSSProperties;
package/esm/theme/dark.js CHANGED
@@ -19,6 +19,6 @@ export var darkTheme = {
19
19
  '--w-rjv-type-date-color': '#586e75',
20
20
  '--w-rjv-type-url-color': '#649bd8',
21
21
  '--w-rjv-type-null-color': '#d33682',
22
- '--w-rjv-type-nan-color': '#859900',
22
+ '--w-rjv-type-nan-color': '#076678',
23
23
  '--w-rjv-type-undefined-color': '#586e75'
24
24
  };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const githubDarkTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var githubDarkTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#79c0ff',
4
+ '--w-rjv-background-color': '#0d1117',
5
+ '--w-rjv-line-color': '#94949480',
6
+ '--w-rjv-arrow-color': '#ccc',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#7b7b7b',
9
+ '--w-rjv-update-color': '#ebcb8b',
10
+ '--w-rjv-copied-color': '#79c0ff',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#8b949e',
13
+ '--w-rjv-colon-color': '#c9d1d9',
14
+ '--w-rjv-brackets-color': '#8b949e',
15
+ '--w-rjv-type-string-color': '#a5d6ff',
16
+ '--w-rjv-type-int-color': '#79c0ff',
17
+ '--w-rjv-type-float-color': '#79c0ff',
18
+ '--w-rjv-type-bigint-color': '#79c0ff',
19
+ '--w-rjv-type-boolean-color': '#ffab70',
20
+ '--w-rjv-type-date-color': '#79c0ff',
21
+ '--w-rjv-type-url-color': '#4facff',
22
+ '--w-rjv-type-null-color': '#ff7b72',
23
+ '--w-rjv-type-nan-color': '#859900',
24
+ '--w-rjv-type-undefined-color': '#79c0ff'
25
+ };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const githubLightTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var githubLightTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#6f42c1',
4
+ '--w-rjv-background-color': '#ffffff',
5
+ '--w-rjv-line-color': '#ddd',
6
+ '--w-rjv-arrow-color': '#6e7781',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#0000004d',
9
+ '--w-rjv-update-color': '#ebcb8b',
10
+ '--w-rjv-copied-color': '#002b36',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#6a737d',
13
+ '--w-rjv-colon-color': '#24292e',
14
+ '--w-rjv-brackets-color': '#6a737d',
15
+ '--w-rjv-type-string-color': '#032f62',
16
+ '--w-rjv-type-int-color': '#005cc5',
17
+ '--w-rjv-type-float-color': '#005cc5',
18
+ '--w-rjv-type-bigint-color': '#005cc5',
19
+ '--w-rjv-type-boolean-color': '#d73a49',
20
+ '--w-rjv-type-date-color': '#005cc5',
21
+ '--w-rjv-type-url-color': '#0969da',
22
+ '--w-rjv-type-null-color': '#d73a49',
23
+ '--w-rjv-type-nan-color': '#859900',
24
+ '--w-rjv-type-undefined-color': '#005cc5'
25
+ };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const gruvboxTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var gruvboxTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#3c3836',
4
+ '--w-rjv-background-color': '#fbf1c7',
5
+ '--w-rjv-line-color': '#ebdbb2',
6
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#0000004d',
9
+ '--w-rjv-update-color': '#ebcb8b',
10
+ '--w-rjv-copied-color': '#002b36',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#236a7c',
13
+ '--w-rjv-colon-color': '#002b36',
14
+ '--w-rjv-brackets-color': '#236a7c',
15
+ '--w-rjv-type-string-color': '#3c3836',
16
+ '--w-rjv-type-int-color': '#8f3f71',
17
+ '--w-rjv-type-float-color': '#8f3f71',
18
+ '--w-rjv-type-bigint-color': '#8f3f71',
19
+ '--w-rjv-type-boolean-color': '#8f3f71',
20
+ '--w-rjv-type-date-color': '#076678',
21
+ '--w-rjv-type-url-color': '#0969da',
22
+ '--w-rjv-type-null-color': '#076678',
23
+ '--w-rjv-type-nan-color': '#076678',
24
+ '--w-rjv-type-undefined-color': '#076678'
25
+ };
@@ -1,24 +1,2 @@
1
- export declare const lightTheme: {
2
- '--w-rjv-font-family': string;
3
- '--w-rjv-color': string;
4
- '--w-rjv-background-color': string;
5
- '--w-rjv-line-color': string;
6
- '--w-rjv-arrow-color': string;
7
- '--w-rjv-edit-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-update-color': string;
10
- '--w-rjv-copied-color': string;
11
- '--w-rjv-copied-success-color': string;
12
- '--w-rjv-curlybraces-color': string;
13
- '--w-rjv-brackets-color': string;
14
- '--w-rjv-type-string-color': string;
15
- '--w-rjv-type-int-color': string;
16
- '--w-rjv-type-float-color': string;
17
- '--w-rjv-type-bigint-color': string;
18
- '--w-rjv-type-boolean-color': string;
19
- '--w-rjv-type-date-color': string;
20
- '--w-rjv-type-url-color': string;
21
- '--w-rjv-type-null-color': string;
22
- '--w-rjv-type-nan-color': string;
23
- '--w-rjv-type-undefined-color': string;
24
- };
1
+ /// <reference types="react" />
2
+ export declare const lightTheme: import("react").CSSProperties;
@@ -10,6 +10,7 @@ export var lightTheme = {
10
10
  '--w-rjv-copied-color': '#002b36',
11
11
  '--w-rjv-copied-success-color': '#28a745',
12
12
  '--w-rjv-curlybraces-color': '#236a7c',
13
+ '--w-rjv-colon-color': '#002b36',
13
14
  '--w-rjv-brackets-color': '#236a7c',
14
15
  '--w-rjv-type-string-color': '#cb4b16',
15
16
  '--w-rjv-type-int-color': '#268bd2',
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const monokaiTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var monokaiTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#E6DB74',
4
+ '--w-rjv-background-color': '#272822',
5
+ '--w-rjv-line-color': '#3e3d32',
6
+ '--w-rjv-arrow-color': '#f8f8f2',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#cecece4d',
9
+ '--w-rjv-update-color': '#5f5600',
10
+ '--w-rjv-copied-color': '#E6DB74',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#f8f8f2',
13
+ '--w-rjv-colon-color': '#f8f8f2',
14
+ '--w-rjv-brackets-color': '#f8f8f2',
15
+ '--w-rjv-type-string-color': '#E6DB74',
16
+ '--w-rjv-type-int-color': '#AE81FF',
17
+ '--w-rjv-type-float-color': '#AE81FF',
18
+ '--w-rjv-type-bigint-color': '#AE81FF',
19
+ '--w-rjv-type-boolean-color': '#AE81FF',
20
+ '--w-rjv-type-date-color': '#fd9720c7',
21
+ '--w-rjv-type-url-color': '#55a3ff',
22
+ '--w-rjv-type-null-color': '#FA2672',
23
+ '--w-rjv-type-nan-color': '#FD971F',
24
+ '--w-rjv-type-undefined-color': '#FD971F'
25
+ };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const nordTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var nordTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#88c0d0',
4
+ '--w-rjv-background-color': '#2e3440',
5
+ '--w-rjv-line-color': '#4c566a',
6
+ '--w-rjv-arrow-color': 'var(--w-rjv-color)',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#c7c7c74d',
9
+ '--w-rjv-update-color': '#88c0cf75',
10
+ '--w-rjv-copied-color': '#119cc0',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#8fbcbb',
13
+ '--w-rjv-colon-color': '#6d9fac',
14
+ '--w-rjv-brackets-color': '#8fbcbb',
15
+ '--w-rjv-type-string-color': '#a3be8c',
16
+ '--w-rjv-type-int-color': '#b48ead',
17
+ '--w-rjv-type-float-color': '#859900',
18
+ '--w-rjv-type-bigint-color': '#b48ead',
19
+ '--w-rjv-type-boolean-color': '#d08770',
20
+ '--w-rjv-type-date-color': '#41a2c2',
21
+ '--w-rjv-type-url-color': '#5e81ac',
22
+ '--w-rjv-type-null-color': '#5e81ac',
23
+ '--w-rjv-type-nan-color': '#859900',
24
+ '--w-rjv-type-undefined-color': '#586e75'
25
+ };
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const vscodeTheme: import("react").CSSProperties;
@@ -0,0 +1,25 @@
1
+ export var vscodeTheme = {
2
+ '--w-rjv-font-family': 'monospace',
3
+ '--w-rjv-color': '#9cdcfe',
4
+ '--w-rjv-background-color': '#1e1e1e',
5
+ '--w-rjv-line-color': '#36334280',
6
+ '--w-rjv-arrow-color': '#838383',
7
+ '--w-rjv-edit-color': 'var(--w-rjv-color)',
8
+ '--w-rjv-info-color': '#9c9c9c7a',
9
+ '--w-rjv-update-color': '#9cdcfe',
10
+ '--w-rjv-copied-color': '#9cdcfe',
11
+ '--w-rjv-copied-success-color': '#28a745',
12
+ '--w-rjv-curlybraces-color': '#d4d4d4',
13
+ '--w-rjv-colon-color': '#d4d4d4',
14
+ '--w-rjv-brackets-color': '#d4d4d4',
15
+ '--w-rjv-type-string-color': '#ce9178',
16
+ '--w-rjv-type-int-color': '#b5cea8',
17
+ '--w-rjv-type-float-color': '#b5cea8',
18
+ '--w-rjv-type-bigint-color': '#b5cea8',
19
+ '--w-rjv-type-boolean-color': '#569cd6',
20
+ '--w-rjv-type-date-color': '#b5cea8',
21
+ '--w-rjv-type-url-color': '#3b89cf',
22
+ '--w-rjv-type-null-color': '#569cd6',
23
+ '--w-rjv-type-nan-color': '#859900',
24
+ '--w-rjv-type-undefined-color': '#569cd6'
25
+ };
package/esm/value.js CHANGED
@@ -65,7 +65,9 @@ export var Colon = _ref => {
65
65
  className: "w-rjv-colon",
66
66
  style: _extends({
67
67
  paddingRight: 3
68
- }, style)
68
+ }, style, {
69
+ color: 'var(--w-rjv-colon-color, var(--w-rjv-color))'
70
+ })
69
71
  }, props, {
70
72
  children: children
71
73
  }));
@@ -77,6 +79,10 @@ export function getValueString(value) {
77
79
  if (typeof value === 'number') {
78
80
  type = isFloat(value) ? 'float' : 'number';
79
81
  content = value.toString();
82
+ if (isNaN(value)) {
83
+ type = 'NaN';
84
+ content = 'NaN';
85
+ }
80
86
  }
81
87
  if (typeof value === 'boolean') {
82
88
  type = 'boolean';
@@ -195,7 +201,7 @@ export function ValueView(props) {
195
201
  fontWeight: 'bold'
196
202
  };
197
203
  }
198
- if (value === undefined) {
204
+ if (value === undefined || type === 'NaN') {
199
205
  typeView = /*#__PURE__*/_jsx(Fragment, {});
200
206
  }
201
207
  var isURL = value instanceof URL;
package/light.d.ts CHANGED
@@ -1,19 +1,3 @@
1
1
  declare module '@uiw/react-json-view/light' {
2
- export const lightTheme: {
3
- '--w-rjv-font-family': string;
4
- '--w-rjv-color': string;
5
- '--w-rjv-background-color': string;
6
- '--w-rjv-border-left': string;
7
- '--w-rjv-arrow-color': string;
8
- '--w-rjv-info-color': string;
9
- '--w-rjv-type-string-color': string;
10
- '--w-rjv-type-int-color': string;
11
- '--w-rjv-type-float-color': string;
12
- '--w-rjv-type-bigint-color': string;
13
- '--w-rjv-type-boolean-color': string;
14
- '--w-rjv-type-date-color': string;
15
- '--w-rjv-type-null-color': string;
16
- '--w-rjv-type-nan-color': string;
17
- '--w-rjv-type-undefined-color': string;
18
- };
2
+ export const lightTheme: import('react').CSSProperties;
19
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uiw/react-json-view",
3
- "version": "1.9.0",
3
+ "version": "1.11.0",
4
4
  "description": "JSON viewer for react.",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -27,6 +27,41 @@
27
27
  "types": "./cjs/theme/dark.d.ts",
28
28
  "require": "./cjs/theme/dark.js"
29
29
  },
30
+ "./nord": {
31
+ "import": "./esm/theme/nord.js",
32
+ "types": "./cjs/theme/nord.d.ts",
33
+ "require": "./cjs/theme/nord.js"
34
+ },
35
+ "./vscode": {
36
+ "import": "./esm/theme/vscode.js",
37
+ "types": "./cjs/theme/vscode.d.ts",
38
+ "require": "./cjs/theme/vscode.js"
39
+ },
40
+ "./basic": {
41
+ "import": "./esm/theme/basic.js",
42
+ "types": "./cjs/theme/basic.d.ts",
43
+ "require": "./cjs/theme/basic.js"
44
+ },
45
+ "./monokai": {
46
+ "import": "./esm/theme/monokai.js",
47
+ "types": "./cjs/theme/monokai.d.ts",
48
+ "require": "./cjs/theme/monokai.js"
49
+ },
50
+ "./gruvbox": {
51
+ "import": "./esm/theme/gruvbox.js",
52
+ "types": "./cjs/theme/gruvbox.d.ts",
53
+ "require": "./cjs/theme/gruvbox.js"
54
+ },
55
+ "./githubLight": {
56
+ "import": "./esm/theme/github.light.js",
57
+ "types": "./cjs/theme/github.light.d.ts",
58
+ "require": "./cjs/theme/github.light.js"
59
+ },
60
+ "./githubDark": {
61
+ "import": "./esm/theme/github.dark.js",
62
+ "types": "./cjs/theme/github.dark.d.ts",
63
+ "require": "./cjs/theme/github.dark.js"
64
+ },
30
65
  "./triangle-arrow": {
31
66
  "import": "./esm/arrow/TriangleArrow.js",
32
67
  "types": "./cjs/arrow/TriangleArrow.d.ts",