@uiw/react-json-view 2.0.0-alpha.4 → 2.0.0-alpha.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +279 -39
  2. package/basic.d.ts +4 -0
  3. package/cjs/Container.d.ts +2 -0
  4. package/cjs/Container.js +15 -6
  5. package/cjs/arrow/TriangleArrow.js +1 -1
  6. package/cjs/comps/Copied.d.ts +3 -4
  7. package/cjs/comps/Copied.js +61 -18
  8. package/cjs/comps/KeyValues.d.ts +2 -4
  9. package/cjs/comps/KeyValues.js +73 -28
  10. package/cjs/comps/NestedClose.d.ts +2 -2
  11. package/cjs/comps/NestedClose.js +42 -12
  12. package/cjs/comps/NestedOpen.d.ts +2 -3
  13. package/cjs/comps/NestedOpen.js +42 -20
  14. package/cjs/comps/Value.d.ts +2 -2
  15. package/cjs/comps/Value.js +5 -7
  16. package/cjs/comps/useIdCompat.d.ts +1 -0
  17. package/cjs/comps/useIdCompat.js +14 -0
  18. package/cjs/editor/KeyName.d.ts +2 -0
  19. package/cjs/editor/KeyName.js +82 -0
  20. package/cjs/editor/index.d.ts +18 -0
  21. package/cjs/editor/index.js +44 -0
  22. package/cjs/editor/store.d.ts +27 -0
  23. package/cjs/editor/store.js +23 -0
  24. package/cjs/index.d.ts +26 -4
  25. package/cjs/index.js +17 -7
  26. package/cjs/section/Copied.d.ts +4 -1
  27. package/cjs/section/Copied.js +1 -2
  28. package/cjs/section/CountInfo.d.ts +1 -2
  29. package/cjs/section/CountInfo.js +3 -5
  30. package/cjs/section/CountInfoExtra.d.ts +1 -2
  31. package/cjs/section/CountInfoExtra.js +2 -4
  32. package/cjs/section/Ellipsis.d.ts +0 -1
  33. package/cjs/section/Ellipsis.js +4 -5
  34. package/cjs/section/KeyName.d.ts +7 -6
  35. package/cjs/section/KeyName.js +8 -6
  36. package/cjs/section/Row.d.ts +13 -0
  37. package/cjs/section/Row.js +51 -0
  38. package/cjs/store/Expands.js +2 -4
  39. package/cjs/store/Section.d.ts +12 -6
  40. package/cjs/store/Section.js +6 -4
  41. package/cjs/store/ShowTools.js +2 -4
  42. package/cjs/store/Symbols.d.ts +10 -3
  43. package/cjs/store/Symbols.js +2 -4
  44. package/cjs/store/Types.d.ts +30 -25
  45. package/cjs/store/Types.js +8 -8
  46. package/cjs/store.d.ts +12 -6
  47. package/cjs/store.js +5 -10
  48. package/cjs/symbol/Arrow.d.ts +1 -1
  49. package/cjs/symbol/Arrow.js +1 -2
  50. package/cjs/symbol/BraceLeft.d.ts +1 -1
  51. package/cjs/symbol/BraceLeft.js +1 -2
  52. package/cjs/symbol/BraceRight.d.ts +1 -1
  53. package/cjs/symbol/BraceRight.js +1 -2
  54. package/cjs/symbol/BracketsLeft.d.ts +1 -1
  55. package/cjs/symbol/BracketsLeft.js +1 -2
  56. package/cjs/symbol/BracketsRight.d.ts +1 -1
  57. package/cjs/symbol/BracketsRight.js +1 -2
  58. package/cjs/symbol/Colon.d.ts +1 -1
  59. package/cjs/symbol/Colon.js +1 -2
  60. package/cjs/symbol/Quote.d.ts +1 -1
  61. package/cjs/symbol/Quote.js +1 -2
  62. package/cjs/symbol/ValueQuote.d.ts +1 -1
  63. package/cjs/symbol/ValueQuote.js +1 -2
  64. package/cjs/symbol/index.d.ts +12 -17
  65. package/cjs/symbol/index.js +75 -30
  66. package/cjs/theme/basic.d.ts +2 -2
  67. package/cjs/theme/basic.js +4 -3
  68. package/cjs/theme/dark.d.ts +2 -2
  69. package/cjs/theme/dark.js +2 -3
  70. package/cjs/theme/github.dark.d.ts +2 -2
  71. package/cjs/theme/github.dark.js +2 -3
  72. package/cjs/theme/github.light.d.ts +2 -2
  73. package/cjs/theme/github.light.js +2 -3
  74. package/cjs/theme/gruvbox.d.ts +2 -2
  75. package/cjs/theme/gruvbox.js +2 -3
  76. package/cjs/theme/light.d.ts +2 -2
  77. package/cjs/theme/light.js +2 -3
  78. package/cjs/theme/monokai.d.ts +2 -2
  79. package/cjs/theme/monokai.js +2 -3
  80. package/cjs/theme/nord.d.ts +2 -2
  81. package/cjs/theme/nord.js +2 -3
  82. package/cjs/theme/vscode.d.ts +2 -2
  83. package/cjs/theme/vscode.js +2 -3
  84. package/cjs/types/Bigint.d.ts +1 -1
  85. package/cjs/types/Bigint.js +1 -2
  86. package/cjs/types/Date.d.ts +1 -1
  87. package/cjs/types/Date.js +1 -2
  88. package/cjs/types/False.d.ts +1 -1
  89. package/cjs/types/False.js +1 -2
  90. package/cjs/types/Float.d.ts +1 -1
  91. package/cjs/types/Float.js +1 -2
  92. package/cjs/types/Int.d.ts +1 -1
  93. package/cjs/types/Int.js +1 -2
  94. package/cjs/types/Map.d.ts +1 -1
  95. package/cjs/types/Map.js +1 -2
  96. package/cjs/types/Nan.d.ts +1 -1
  97. package/cjs/types/Nan.js +1 -2
  98. package/cjs/types/Null.d.ts +1 -1
  99. package/cjs/types/Null.js +1 -2
  100. package/cjs/types/Set.d.ts +1 -1
  101. package/cjs/types/Set.js +1 -2
  102. package/cjs/types/String.d.ts +1 -1
  103. package/cjs/types/String.js +1 -2
  104. package/cjs/types/True.d.ts +1 -1
  105. package/cjs/types/True.js +1 -2
  106. package/cjs/types/Undefined.d.ts +1 -1
  107. package/cjs/types/Undefined.js +1 -2
  108. package/cjs/types/Url.d.ts +1 -1
  109. package/cjs/types/Url.js +1 -2
  110. package/cjs/types/index.d.ts +5 -2
  111. package/cjs/types/index.js +174 -166
  112. package/cjs/utils/useHighlight.d.ts +0 -1
  113. package/cjs/utils/useRender.d.ts +1 -1
  114. package/dark.d.ts +2 -1
  115. package/editor.d.ts +22 -20
  116. package/esm/Container.d.ts +2 -0
  117. package/esm/Container.js +21 -11
  118. package/esm/arrow/TriangleArrow.js +1 -1
  119. package/esm/comps/Copied.d.ts +3 -4
  120. package/esm/comps/Copied.js +61 -19
  121. package/esm/comps/KeyValues.d.ts +2 -4
  122. package/esm/comps/KeyValues.js +71 -27
  123. package/esm/comps/NestedClose.d.ts +2 -2
  124. package/esm/comps/NestedClose.js +40 -11
  125. package/esm/comps/NestedOpen.d.ts +2 -3
  126. package/esm/comps/NestedOpen.js +47 -26
  127. package/esm/comps/Value.d.ts +2 -2
  128. package/esm/comps/Value.js +3 -3
  129. package/esm/comps/useIdCompat.d.ts +1 -0
  130. package/esm/comps/useIdCompat.js +8 -0
  131. package/esm/editor/KeyName.d.ts +2 -0
  132. package/esm/editor/KeyName.js +77 -0
  133. package/esm/editor/index.d.ts +18 -0
  134. package/esm/editor/index.js +33 -0
  135. package/esm/editor/store.d.ts +27 -0
  136. package/esm/editor/store.js +13 -0
  137. package/esm/index.d.ts +26 -4
  138. package/esm/index.js +50 -41
  139. package/esm/section/Copied.d.ts +4 -1
  140. package/esm/section/Copied.js +2 -2
  141. package/esm/section/CountInfo.d.ts +1 -2
  142. package/esm/section/CountInfo.js +4 -4
  143. package/esm/section/CountInfoExtra.d.ts +1 -2
  144. package/esm/section/CountInfoExtra.js +2 -2
  145. package/esm/section/Ellipsis.d.ts +0 -1
  146. package/esm/section/Ellipsis.js +3 -3
  147. package/esm/section/KeyName.d.ts +7 -6
  148. package/esm/section/KeyName.js +8 -4
  149. package/esm/section/Row.d.ts +13 -0
  150. package/esm/section/Row.js +47 -0
  151. package/esm/store/Section.d.ts +12 -6
  152. package/esm/store/Section.js +4 -0
  153. package/esm/store/Symbols.d.ts +10 -3
  154. package/esm/store/Symbols.js +1 -1
  155. package/esm/store/Types.d.ts +30 -25
  156. package/esm/store/Types.js +6 -4
  157. package/esm/store.d.ts +12 -6
  158. package/esm/store.js +5 -5
  159. package/esm/symbol/Arrow.d.ts +1 -1
  160. package/esm/symbol/Arrow.js +2 -2
  161. package/esm/symbol/BraceLeft.d.ts +1 -1
  162. package/esm/symbol/BraceLeft.js +2 -2
  163. package/esm/symbol/BraceRight.d.ts +1 -1
  164. package/esm/symbol/BraceRight.js +2 -2
  165. package/esm/symbol/BracketsLeft.d.ts +1 -1
  166. package/esm/symbol/BracketsLeft.js +2 -2
  167. package/esm/symbol/BracketsRight.d.ts +1 -1
  168. package/esm/symbol/BracketsRight.js +2 -2
  169. package/esm/symbol/Colon.d.ts +1 -1
  170. package/esm/symbol/Colon.js +2 -2
  171. package/esm/symbol/Quote.d.ts +1 -1
  172. package/esm/symbol/Quote.js +2 -2
  173. package/esm/symbol/ValueQuote.d.ts +1 -1
  174. package/esm/symbol/ValueQuote.js +2 -2
  175. package/esm/symbol/index.d.ts +12 -17
  176. package/esm/symbol/index.js +78 -25
  177. package/esm/theme/basic.d.ts +2 -2
  178. package/esm/theme/basic.js +2 -0
  179. package/esm/theme/dark.d.ts +2 -2
  180. package/esm/theme/github.dark.d.ts +2 -2
  181. package/esm/theme/github.light.d.ts +2 -2
  182. package/esm/theme/gruvbox.d.ts +2 -2
  183. package/esm/theme/light.d.ts +2 -2
  184. package/esm/theme/monokai.d.ts +2 -2
  185. package/esm/theme/nord.d.ts +2 -2
  186. package/esm/theme/vscode.d.ts +2 -2
  187. package/esm/types/Bigint.d.ts +1 -1
  188. package/esm/types/Bigint.js +2 -2
  189. package/esm/types/Date.d.ts +1 -1
  190. package/esm/types/Date.js +2 -2
  191. package/esm/types/False.d.ts +1 -1
  192. package/esm/types/False.js +2 -2
  193. package/esm/types/Float.d.ts +1 -1
  194. package/esm/types/Float.js +2 -2
  195. package/esm/types/Int.d.ts +1 -1
  196. package/esm/types/Int.js +2 -2
  197. package/esm/types/Map.d.ts +1 -1
  198. package/esm/types/Map.js +2 -2
  199. package/esm/types/Nan.d.ts +1 -1
  200. package/esm/types/Nan.js +2 -2
  201. package/esm/types/Null.d.ts +1 -1
  202. package/esm/types/Null.js +2 -2
  203. package/esm/types/Set.d.ts +1 -1
  204. package/esm/types/Set.js +2 -2
  205. package/esm/types/String.d.ts +1 -1
  206. package/esm/types/String.js +2 -2
  207. package/esm/types/True.d.ts +1 -1
  208. package/esm/types/True.js +2 -2
  209. package/esm/types/Undefined.d.ts +1 -1
  210. package/esm/types/Undefined.js +2 -2
  211. package/esm/types/Url.d.ts +1 -1
  212. package/esm/types/Url.js +2 -2
  213. package/esm/types/index.d.ts +5 -2
  214. package/esm/types/index.js +148 -131
  215. package/esm/utils/useHighlight.d.ts +0 -1
  216. package/esm/utils/useRender.d.ts +1 -1
  217. package/esm/utils/useRender.js +3 -3
  218. package/githubDark.d.ts +4 -0
  219. package/githubLight.d.ts +4 -0
  220. package/gruvbox.d.ts +4 -0
  221. package/light.d.ts +2 -1
  222. package/monokai.d.ts +4 -0
  223. package/nord.d.ts +4 -0
  224. package/package.json +11 -5
  225. package/triangle-arrow.d.ts +2 -2
  226. package/triangle-solid-arrow.d.ts +2 -2
  227. package/vscode.d.ts +4 -0
@@ -1,8 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["as", "render"];
4
- import { useSectionStore } from '../store/Section';
5
- import { useSectionRender } from '../utils/useRender';
4
+ import { useSectionStore } from "../store/Section.js";
5
+ import { useSectionRender } from "../utils/useRender.js";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  export var Ellipsis = props => {
8
8
  var {
@@ -34,7 +34,7 @@ export var EllipsisComp = _ref => {
34
34
  keyName
35
35
  });
36
36
  if (child) return child;
37
- if (!isExpanded) return null;
37
+ if (!isExpanded || typeof value === 'object' && Object.keys(value).length == 0) return null;
38
38
  return /*#__PURE__*/_jsx(Elm, _extends({}, reset));
39
39
  };
40
40
  EllipsisComp.displayName = 'JVR.EllipsisComp';
@@ -1,13 +1,14 @@
1
- import { type FC, type PropsWithChildren } from 'react';
1
+ import { type PropsWithChildren } from 'react';
2
2
  import { type TagType } from '../store/Types';
3
3
  import { type SectionElement } from '../store/Section';
4
+ import { type SectionElementResult } from '../store/Section';
4
5
  export declare const KeyName: {
5
6
  <K extends TagType>(props: SectionElement<K>): null;
6
7
  displayName: string;
7
8
  };
8
- type KeyNameCompProps = {
9
- keyName: string | number;
10
- value?: unknown;
9
+ export interface KeyNameCompProps<T extends object> extends React.HTMLAttributes<HTMLSpanElement>, SectionElementResult<T> {
10
+ }
11
+ export declare const KeyNameComp: {
12
+ <T extends object>(props: PropsWithChildren<KeyNameCompProps<T>>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
13
+ displayName: string;
11
14
  };
12
- export declare const KeyNameComp: FC<PropsWithChildren<KeyNameCompProps>>;
13
- export {};
@@ -1,8 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
3
  var _excluded = ["as", "render"];
4
- import { useSectionStore } from '../store/Section';
5
- import { useSectionRender } from '../utils/useRender';
4
+ import { useSectionStore } from "../store/Section.js";
5
+ import { useSectionRender } from "../utils/useRender.js";
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  export var KeyName = props => {
8
8
  var {
@@ -16,7 +16,9 @@ export var KeyNameComp = props => {
16
16
  var {
17
17
  children,
18
18
  value,
19
- keyName
19
+ parentValue,
20
+ keyName,
21
+ keys
20
22
  } = props;
21
23
  var isNumber = typeof children === 'number';
22
24
  var style = {
@@ -36,7 +38,9 @@ export var KeyNameComp = props => {
36
38
  children
37
39
  }), {
38
40
  value,
39
- keyName
41
+ parentValue,
42
+ keyName,
43
+ keys: keys || (keyName ? [keyName] : [])
40
44
  });
41
45
  if (child) return child;
42
46
  return /*#__PURE__*/_jsx(Elm, _extends({}, reset, {
@@ -0,0 +1,13 @@
1
+ import { type TagType } from '../store/Types';
2
+ import { type SectionElement } from '../store/Section';
3
+ import { type SectionElementResult } from '../store/Section';
4
+ export declare const Row: {
5
+ <K extends TagType>(props: SectionElement<K>): null;
6
+ displayName: string;
7
+ };
8
+ export interface RowCompProps<T extends object> extends React.HTMLAttributes<HTMLDivElement>, SectionElementResult<T> {
9
+ }
10
+ export declare const RowComp: {
11
+ <T extends object>(props: React.PropsWithChildren<RowCompProps<T>>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
12
+ displayName: string;
13
+ };
@@ -0,0 +1,47 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
+ var _excluded = ["children", "value", "parentValue", "keyName", "keys"],
4
+ _excluded2 = ["as", "render", "children"];
5
+ import { useSectionStore } from "../store/Section.js";
6
+ import { useSectionRender } from "../utils/useRender.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export var Row = props => {
9
+ var {
10
+ Row: Comp = {}
11
+ } = useSectionStore();
12
+ useSectionRender(Comp, props, 'Row');
13
+ return null;
14
+ };
15
+ Row.displayName = 'JVR.Row';
16
+ export var RowComp = props => {
17
+ var {
18
+ children,
19
+ value,
20
+ parentValue,
21
+ keyName,
22
+ keys
23
+ } = props,
24
+ other = _objectWithoutPropertiesLoose(props, _excluded);
25
+ var {
26
+ Row: Comp = {}
27
+ } = useSectionStore();
28
+ var {
29
+ as,
30
+ render
31
+ } = Comp,
32
+ reset = _objectWithoutPropertiesLoose(Comp, _excluded2);
33
+ var Elm = as || 'div';
34
+ var child = render && typeof render === 'function' && render(_extends({}, other, reset, {
35
+ children
36
+ }), {
37
+ value,
38
+ keyName,
39
+ parentValue,
40
+ keys
41
+ });
42
+ if (child) return child;
43
+ return /*#__PURE__*/_jsx(Elm, _extends({}, other, reset, {
44
+ children: children
45
+ }));
46
+ };
47
+ RowComp.displayName = 'JVR.RowComp';
@@ -1,18 +1,23 @@
1
1
  import React, { FC, PropsWithChildren, ComponentPropsWithoutRef } from 'react';
2
2
  import { type TagType } from './Types';
3
- export type SectionElementProps<T extends TagType> = {
3
+ export interface SectionElementResult<T extends object, K = string | number> {
4
+ value?: T;
5
+ parentValue?: T;
6
+ keyName?: K;
7
+ /** Index of the parent `keyName` */
8
+ keys?: K[];
9
+ }
10
+ export type SectionElementProps<T extends TagType = 'span'> = {
4
11
  as?: T;
5
- render?: (props: SectionElement<T>, result: {
6
- value: unknown;
7
- keyName: string | number;
8
- }) => React.ReactNode;
12
+ render?: (props: SectionElement<T>, result: SectionElementResult<object>) => React.ReactNode;
9
13
  };
10
- export type SectionElement<T extends TagType> = SectionElementProps<T> & ComponentPropsWithoutRef<T>;
14
+ export type SectionElement<T extends TagType = 'span'> = SectionElementProps<T> & ComponentPropsWithoutRef<T>;
11
15
  type InitialState<T extends TagType> = {
12
16
  Copied?: SectionElement<T>;
13
17
  CountInfo?: SectionElement<T>;
14
18
  CountInfoExtra?: SectionElement<T>;
15
19
  Ellipsis?: SectionElement<T>;
20
+ Row?: SectionElement<T>;
16
21
  KeyName?: SectionElement<T>;
17
22
  };
18
23
  type Dispatch = React.Dispatch<InitialState<TagType>>;
@@ -22,6 +27,7 @@ export declare function useSection(): [{
22
27
  CountInfo?: SectionElement<TagType> | undefined;
23
28
  CountInfoExtra?: SectionElement<TagType> | undefined;
24
29
  Ellipsis?: SectionElement<TagType> | undefined;
30
+ Row?: SectionElement<TagType> | undefined;
25
31
  KeyName?: SectionElement<TagType> | undefined;
26
32
  }, React.Dispatch<InitialState<TagType>>];
27
33
  export declare function useSectionDispatch(): Dispatch;
@@ -38,6 +38,10 @@ var initialState = {
38
38
  className: 'w-rjv-ellipsis',
39
39
  children: '...'
40
40
  },
41
+ Row: {
42
+ as: 'div',
43
+ className: 'w-rjv-line'
44
+ },
41
45
  KeyName: {
42
46
  as: 'span',
43
47
  className: 'w-rjv-object-key'
@@ -1,11 +1,18 @@
1
1
  import { FC, PropsWithChildren, ElementType, ComponentPropsWithoutRef } from 'react';
2
2
  import { type TagType } from './Types';
3
- type SymbolsElementProps<T extends TagType> = {
3
+ export interface SymbolsElementResult<T extends object, K = string | number> {
4
+ value?: T;
5
+ parentValue?: T;
6
+ keyName?: K;
7
+ /** Index of the parent `keyName` */
8
+ keys?: K[];
9
+ }
10
+ type SymbolsElementProps<T extends TagType = 'span'> = {
4
11
  as?: T;
5
- render?: (props: SymbolsElement<T>) => React.ReactNode;
12
+ render?: (props: SymbolsElement<T>, result: SymbolsElementResult<object>) => React.ReactNode;
6
13
  'data-type'?: string;
7
14
  };
8
- export type SymbolsElement<T extends TagType> = SymbolsElementProps<T> & ComponentPropsWithoutRef<T>;
15
+ export type SymbolsElement<T extends TagType = 'span'> = SymbolsElementProps<T> & ComponentPropsWithoutRef<T>;
9
16
  type InitialState<T extends ElementType = 'span'> = {
10
17
  Arrow?: SymbolsElement<T>;
11
18
  Colon?: SymbolsElement<T>;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import { createContext, useContext, useReducer } from 'react';
3
- import { TriangleArrow } from '../arrow/TriangleArrow';
3
+ import { TriangleArrow } from "../arrow/TriangleArrow.js";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  var initialState = {
6
6
  Arrow: {
@@ -1,34 +1,36 @@
1
- import { FC, PropsWithChildren, ComponentPropsWithoutRef } from 'react';
1
+ import { PropsWithChildren, ComponentPropsWithoutRef } from 'react';
2
2
  export type TagType = React.ElementType | keyof JSX.IntrinsicElements;
3
- type TypesElementProps<T extends TagType> = {
3
+ type TypesElementProps<T extends TagType = 'span'> = {
4
4
  as?: T;
5
5
  render?: (props: TypesElement<T>, result: {
6
6
  type: 'type' | 'value';
7
7
  value?: unknown;
8
+ keyName: string | number;
9
+ keys?: (string | number)[];
8
10
  }) => React.ReactNode;
9
11
  'data-type'?: string;
10
12
  };
11
13
  export type TypesElement<T extends TagType> = TypesElementProps<T> & ComponentPropsWithoutRef<T>;
12
- export type InitialTypesState = {
14
+ export type InitialTypesState<T extends TagType = 'span'> = {
13
15
  displayDataTypes?: boolean;
14
- Url?: TypesElement<TagType>;
15
- Str?: TypesElement<TagType>;
16
- Undefined?: TypesElement<TagType>;
17
- Null?: TypesElement<TagType>;
18
- True?: TypesElement<TagType>;
19
- False?: TypesElement<TagType>;
20
- Date?: TypesElement<TagType>;
21
- Float?: TypesElement<TagType>;
22
- Set?: TypesElement<TagType>;
23
- Int?: TypesElement<TagType>;
24
- Map?: TypesElement<TagType>;
25
- Nan?: TypesElement<TagType>;
26
- Bigint?: TypesElement<TagType>;
16
+ Url?: TypesElement<T>;
17
+ Str?: TypesElement<T>;
18
+ Undefined?: TypesElement<T>;
19
+ Null?: TypesElement<T>;
20
+ True?: TypesElement<T>;
21
+ False?: TypesElement<T>;
22
+ Date?: TypesElement<T>;
23
+ Float?: TypesElement<T>;
24
+ Set?: TypesElement<T>;
25
+ Int?: TypesElement<T>;
26
+ Map?: TypesElement<T>;
27
+ Nan?: TypesElement<T>;
28
+ Bigint?: TypesElement<T>;
27
29
  };
28
- type Dispatch = React.Dispatch<InitialTypesState>;
29
- export declare const useTypesStore: () => InitialTypesState;
30
+ type Dispatch<T extends TagType> = React.Dispatch<InitialTypesState<T>>;
31
+ export declare const useTypesStore: () => InitialTypesState<TagType>;
30
32
  export declare function useTypes(): [{
31
- displayDataTypes?: boolean | undefined;
33
+ displayDataTypes?: boolean;
32
34
  Url?: TypesElement<TagType> | undefined;
33
35
  Str?: TypesElement<TagType> | undefined;
34
36
  Undefined?: TypesElement<TagType> | undefined;
@@ -42,11 +44,14 @@ export declare function useTypes(): [{
42
44
  Map?: TypesElement<TagType> | undefined;
43
45
  Nan?: TypesElement<TagType> | undefined;
44
46
  Bigint?: TypesElement<TagType> | undefined;
45
- }, import("react").Dispatch<InitialTypesState>];
46
- export declare function useTypesDispatch(): Dispatch;
47
- interface TypesProps {
48
- initial: InitialTypesState;
49
- dispatch: Dispatch;
47
+ }, import("react").Dispatch<InitialTypesState<TagType>>];
48
+ export declare function useTypesDispatch(): Dispatch<TagType>;
49
+ interface TypesProps<T extends TagType> {
50
+ initial: InitialTypesState<T>;
51
+ dispatch: Dispatch<TagType>;
52
+ }
53
+ export declare function Types<T extends TagType>({ initial, dispatch, children }: PropsWithChildren<TypesProps<T>>): import("react/jsx-runtime").JSX.Element;
54
+ export declare namespace Types {
55
+ var displayName: string;
50
56
  }
51
- export declare const Types: FC<PropsWithChildren<TypesProps>>;
52
57
  export {};
@@ -40,7 +40,8 @@ var initialState = {
40
40
  },
41
41
  Map: {
42
42
  style: {
43
- color: 'var(--w-rjv-type-map-color, #268bd2)'
43
+ color: 'var(--w-rjv-type-map-color, #268bd2)',
44
+ marginRight: 3
44
45
  },
45
46
  as: 'span',
46
47
  'data-type': 'map',
@@ -76,7 +77,8 @@ var initialState = {
76
77
  },
77
78
  Set: {
78
79
  style: {
79
- color: 'var(--w-rjv-type-set-color, #268bd2)'
80
+ color: 'var(--w-rjv-type-set-color, #268bd2)',
81
+ marginRight: 3
80
82
  },
81
83
  as: 'span',
82
84
  'data-type': 'set',
@@ -133,7 +135,7 @@ export function useTypes() {
133
135
  export function useTypesDispatch() {
134
136
  return useContext(DispatchTypes);
135
137
  }
136
- export var Types = _ref => {
138
+ export function Types(_ref) {
137
139
  var {
138
140
  initial,
139
141
  dispatch,
@@ -146,5 +148,5 @@ export var Types = _ref => {
146
148
  children: children
147
149
  })
148
150
  });
149
- };
151
+ }
150
152
  Types.displayName = 'JVR.Types';
package/esm/store.d.ts CHANGED
@@ -1,17 +1,20 @@
1
- import React, { PropsWithChildren } from 'react';
2
- import { JsonViewProps } from './';
3
- import { type InitialTypesState } from './store/Types';
1
+ import React, { type PropsWithChildren } from 'react';
2
+ import { type JsonViewProps } from './';
3
+ import { type InitialTypesState, type TagType } from './store/Types';
4
4
  export type BlockTagType = keyof JSX.IntrinsicElements;
5
5
  export interface InitialState<T extends object> {
6
6
  value?: object;
7
7
  onExpand?: JsonViewProps<object>['onExpand'];
8
8
  onCopied?: JsonViewProps<object>['onCopied'];
9
+ beforeCopy?: JsonViewProps<T>['beforeCopy'];
9
10
  objectSortKeys?: JsonViewProps<T>['objectSortKeys'];
10
11
  displayObjectSize?: JsonViewProps<T>['displayObjectSize'];
11
12
  shortenTextAfterLength?: JsonViewProps<T>['shortenTextAfterLength'];
13
+ stringEllipsis?: JsonViewProps<T>['stringEllipsis'];
12
14
  enableClipboard?: JsonViewProps<T>['enableClipboard'];
13
15
  highlightUpdates?: JsonViewProps<T>['highlightUpdates'];
14
16
  collapsed?: JsonViewProps<T>['collapsed'];
17
+ shouldExpandNodeInitially?: JsonViewProps<T>['shouldExpandNodeInitially'];
15
18
  indentWidth?: number;
16
19
  }
17
20
  export declare const initialState: InitialState<object>;
@@ -20,10 +23,13 @@ export declare const Context: React.Context<InitialState<object>>;
20
23
  export declare function reducer(state: InitialState<object>, action: InitialState<object>): InitialState<object>;
21
24
  export declare const useStore: () => InitialState<object>;
22
25
  export declare const useDispatchStore: () => Dispatch;
23
- export interface ProviderProps {
26
+ export interface ProviderProps<T extends TagType> {
24
27
  initialState?: InitialState<object>;
25
- initialTypes?: InitialTypesState;
28
+ initialTypes?: InitialTypesState<T>;
26
29
  }
27
- export declare const Provider: React.FC<PropsWithChildren<ProviderProps>>;
30
+ export declare const Provider: {
31
+ <T extends TagType>({ children, initialState: init, initialTypes, }: PropsWithChildren<ProviderProps<T>>): import("react/jsx-runtime").JSX.Element;
32
+ displayName: string;
33
+ };
28
34
  export declare function useDispatch(): Dispatch;
29
35
  export {};
package/esm/store.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { createContext, useContext, useEffect, useReducer } from 'react';
3
- import { useShowTools, ShowTools } from './store/ShowTools';
4
- import { useExpands, Expands } from './store/Expands';
5
- import { useTypes, Types } from './store/Types';
6
- import { useSymbols, Symbols } from './store/Symbols';
7
- import { useSection, Section } from './store/Section';
3
+ import { useShowTools, ShowTools } from "./store/ShowTools.js";
4
+ import { useExpands, Expands } from "./store/Expands.js";
5
+ import { useTypes, Types } from "./store/Types.js";
6
+ import { useSymbols, Symbols } from "./store/Symbols.js";
7
+ import { useSection, Section } from "./store/Section.js";
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  export var initialState = {
10
10
  objectSortKeys: false,
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const Arrow: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var Arrow = props => {
4
4
  var {
5
5
  Arrow: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const BraceLeft: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var BraceLeft = props => {
4
4
  var {
5
5
  BraceLeft: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const BraceRight: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var BraceRight = props => {
4
4
  var {
5
5
  BraceRight: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const BracketsLeft: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var BracketsLeft = props => {
4
4
  var {
5
5
  BracketsLeft: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const BracketsRight: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var BracketsRight = props => {
4
4
  var {
5
5
  BracketsRight: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const Colon: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var Colon = props => {
4
4
  var {
5
5
  Colon: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const Quote: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var Quote = props => {
4
4
  var {
5
5
  Quote: Comp = {}
@@ -1,6 +1,6 @@
1
1
  import { type SymbolsElement } from '../store/Symbols';
2
2
  import { type TagType } from '../store/Types';
3
3
  export declare const ValueQuote: {
4
- (props: SymbolsElement<TagType>): null;
4
+ <K extends TagType = "span">(props: SymbolsElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -1,5 +1,5 @@
1
- import { useSymbolsStore } from '../store/Symbols';
2
- import { useSymbolsRender } from '../utils/useRender';
1
+ import { useSymbolsStore } from "../store/Symbols.js";
2
+ import { useSymbolsRender } from "../utils/useRender.js";
3
3
  export var ValueQuote = props => {
4
4
  var {
5
5
  ValueQuote: Comp = {}
@@ -1,10 +1,9 @@
1
- /// <reference types="react" />
2
- import { type SymbolsElement } from '../store/Symbols';
1
+ import { type SymbolsElement, type SymbolsElementResult } from '../store/Symbols';
3
2
  import { type TagType } from '../store/Types';
4
3
  export declare const Quote: {
5
- (props: {
6
- isNumber?: boolean | undefined;
7
- } & import("react").HTMLAttributes<HTMLElement>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
4
+ <T extends object>(props: {
5
+ isNumber?: boolean;
6
+ } & React.HTMLAttributes<HTMLElement> & SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
8
7
  displayName: string;
9
8
  };
10
9
  export declare const ValueQuote: {
@@ -12,31 +11,27 @@ export declare const ValueQuote: {
12
11
  displayName: string;
13
12
  };
14
13
  export declare const Colon: {
15
- (): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
14
+ <T extends object>(props: SymbolsElementResult<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
16
15
  displayName: string;
17
16
  };
18
17
  export declare const Arrow: {
19
- <T extends TagType>(props: {
20
- as?: T | undefined;
21
- render?: ((props: SymbolsElement<T>) => import("react").ReactNode) | undefined;
22
- 'data-type'?: string | undefined;
23
- } & import("react").PropsWithoutRef<import("react").ComponentProps<T>> & {
18
+ <T extends TagType, K extends object>(props: SymbolsElement<T> & {
24
19
  expandKey: string;
25
- }): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
20
+ } & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
26
21
  displayName: string;
27
22
  };
28
23
  export declare const BracketsOpen: {
29
- ({ isBrackets }: {
30
- isBrackets?: boolean | undefined;
31
- }): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
24
+ <K extends object>(props: {
25
+ isBrackets?: boolean;
26
+ } & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element;
32
27
  displayName: string;
33
28
  };
34
- type BracketsCloseProps = {
29
+ type BracketsProps = {
35
30
  isBrackets?: boolean;
36
31
  isVisiable?: boolean;
37
32
  };
38
33
  export declare const BracketsClose: {
39
- ({ isBrackets, isVisiable }: BracketsCloseProps): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
34
+ <K extends object>(props: BracketsProps & SymbolsElementResult<K>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
40
35
  displayName: string;
41
36
  };
42
37
  export {};