@uiw/react-json-view 2.0.0-alpha.1 → 2.0.0-alpha.10

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 (166) hide show
  1. package/README.md +83 -26
  2. package/cjs/Container.js +4 -8
  3. package/cjs/comps/Copied.js +15 -13
  4. package/cjs/comps/KeyValues.js +24 -20
  5. package/cjs/comps/NestedClose.js +3 -4
  6. package/cjs/comps/NestedOpen.js +18 -16
  7. package/cjs/comps/Value.js +14 -16
  8. package/cjs/editor/KeyName.d.ts +2 -0
  9. package/cjs/editor/KeyName.js +82 -0
  10. package/cjs/editor/index.d.ts +19 -0
  11. package/cjs/editor/index.js +44 -0
  12. package/cjs/editor/store.d.ts +28 -0
  13. package/cjs/editor/store.js +23 -0
  14. package/cjs/index.d.ts +3 -3
  15. package/cjs/index.js +7 -8
  16. package/cjs/section/Copied.d.ts +1 -1
  17. package/cjs/section/Copied.js +1 -2
  18. package/cjs/section/CountInfo.d.ts +10 -1
  19. package/cjs/section/CountInfo.js +42 -4
  20. package/cjs/section/CountInfoExtra.d.ts +10 -1
  21. package/cjs/section/CountInfoExtra.js +32 -4
  22. package/cjs/section/Ellipsis.d.ts +10 -0
  23. package/cjs/section/Ellipsis.js +30 -4
  24. package/cjs/section/KeyName.d.ts +8 -0
  25. package/cjs/section/KeyName.js +38 -4
  26. package/cjs/store/Expands.js +2 -4
  27. package/cjs/store/Section.d.ts +3 -2
  28. package/cjs/store/Section.js +2 -4
  29. package/cjs/store/ShowTools.js +2 -4
  30. package/cjs/store/Symbols.d.ts +2 -2
  31. package/cjs/store/Symbols.js +3 -4
  32. package/cjs/store/Types.d.ts +28 -24
  33. package/cjs/store/Types.js +8 -8
  34. package/cjs/store.d.ts +7 -4
  35. package/cjs/store.js +5 -10
  36. package/cjs/symbol/Arrow.d.ts +1 -1
  37. package/cjs/symbol/Arrow.js +1 -2
  38. package/cjs/symbol/BraceLeft.d.ts +1 -1
  39. package/cjs/symbol/BraceLeft.js +1 -2
  40. package/cjs/symbol/BraceRight.d.ts +1 -1
  41. package/cjs/symbol/BraceRight.js +1 -2
  42. package/cjs/symbol/BracketsLeft.d.ts +1 -1
  43. package/cjs/symbol/BracketsLeft.js +1 -2
  44. package/cjs/symbol/BracketsRight.d.ts +1 -1
  45. package/cjs/symbol/BracketsRight.js +1 -2
  46. package/cjs/symbol/Colon.d.ts +1 -1
  47. package/cjs/symbol/Colon.js +1 -2
  48. package/cjs/symbol/Quote.d.ts +1 -1
  49. package/cjs/symbol/Quote.js +1 -2
  50. package/cjs/symbol/ValueQuote.d.ts +1 -1
  51. package/cjs/symbol/ValueQuote.js +1 -2
  52. package/{esm/comps/ReRender/Symbols.d.ts → cjs/symbol/index.d.ts} +4 -6
  53. package/cjs/{comps/ReRender/Symbols.js → symbol/index.js} +32 -33
  54. package/cjs/theme/basic.js +2 -3
  55. package/cjs/theme/dark.js +2 -3
  56. package/cjs/theme/github.dark.js +2 -3
  57. package/cjs/theme/github.light.js +2 -3
  58. package/cjs/theme/gruvbox.js +2 -3
  59. package/cjs/theme/light.js +2 -3
  60. package/cjs/theme/monokai.js +2 -3
  61. package/cjs/theme/nord.js +2 -3
  62. package/cjs/theme/vscode.js +2 -3
  63. package/cjs/types/Bigint.d.ts +1 -1
  64. package/cjs/types/Bigint.js +1 -2
  65. package/cjs/types/Date.d.ts +1 -1
  66. package/cjs/types/Date.js +1 -2
  67. package/cjs/types/False.d.ts +1 -1
  68. package/cjs/types/False.js +1 -2
  69. package/cjs/types/Float.d.ts +1 -1
  70. package/cjs/types/Float.js +1 -2
  71. package/cjs/types/Int.d.ts +1 -1
  72. package/cjs/types/Int.js +1 -2
  73. package/cjs/types/Map.d.ts +1 -1
  74. package/cjs/types/Map.js +1 -2
  75. package/cjs/types/Nan.d.ts +1 -1
  76. package/cjs/types/Nan.js +1 -2
  77. package/cjs/types/Null.d.ts +1 -1
  78. package/cjs/types/Null.js +1 -2
  79. package/cjs/types/Set.d.ts +1 -1
  80. package/cjs/types/Set.js +1 -2
  81. package/cjs/types/String.d.ts +1 -1
  82. package/cjs/types/String.js +1 -2
  83. package/cjs/types/True.d.ts +1 -1
  84. package/cjs/types/True.js +1 -2
  85. package/cjs/types/Undefined.d.ts +1 -1
  86. package/cjs/types/Undefined.js +1 -2
  87. package/cjs/types/Url.d.ts +1 -1
  88. package/cjs/types/Url.js +1 -2
  89. package/{esm/comps/ReRender/Types.d.ts → cjs/types/index.d.ts} +8 -13
  90. package/cjs/{comps/ReRender/Types.js → types/index.js} +103 -121
  91. package/cjs/utils/useHighlight.js +0 -1
  92. package/cjs/utils/useRender.d.ts +1 -1
  93. package/editor.d.ts +22 -20
  94. package/esm/Container.js +4 -5
  95. package/esm/comps/Copied.js +14 -11
  96. package/esm/comps/KeyValues.js +14 -9
  97. package/esm/comps/NestedClose.js +1 -1
  98. package/esm/comps/NestedOpen.js +12 -9
  99. package/esm/comps/Value.js +1 -1
  100. package/esm/editor/KeyName.d.ts +2 -0
  101. package/esm/editor/KeyName.js +77 -0
  102. package/esm/editor/index.d.ts +19 -0
  103. package/esm/editor/index.js +34 -0
  104. package/esm/editor/store.d.ts +28 -0
  105. package/esm/editor/store.js +13 -0
  106. package/esm/index.d.ts +3 -3
  107. package/esm/index.js +3 -3
  108. package/esm/section/Copied.d.ts +1 -1
  109. package/esm/section/CountInfo.d.ts +10 -1
  110. package/esm/section/CountInfo.js +43 -1
  111. package/esm/section/CountInfoExtra.d.ts +10 -1
  112. package/esm/section/CountInfoExtra.js +32 -1
  113. package/esm/section/Ellipsis.d.ts +10 -0
  114. package/esm/section/Ellipsis.js +31 -1
  115. package/esm/section/KeyName.d.ts +8 -0
  116. package/esm/section/KeyName.js +39 -1
  117. package/esm/store/Section.d.ts +3 -2
  118. package/esm/store/Symbols.d.ts +2 -2
  119. package/esm/store/Symbols.js +1 -0
  120. package/esm/store/Types.d.ts +28 -24
  121. package/esm/store/Types.js +6 -4
  122. package/esm/store.d.ts +7 -4
  123. package/esm/symbol/Arrow.d.ts +1 -1
  124. package/esm/symbol/BraceLeft.d.ts +1 -1
  125. package/esm/symbol/BraceRight.d.ts +1 -1
  126. package/esm/symbol/BracketsLeft.d.ts +1 -1
  127. package/esm/symbol/BracketsRight.d.ts +1 -1
  128. package/esm/symbol/Colon.d.ts +1 -1
  129. package/esm/symbol/Quote.d.ts +1 -1
  130. package/esm/symbol/ValueQuote.d.ts +1 -1
  131. package/{cjs/comps/ReRender/Symbols.d.ts → esm/symbol/index.d.ts} +4 -6
  132. package/esm/{comps/ReRender/Symbols.js → symbol/index.js} +26 -24
  133. package/esm/types/Bigint.d.ts +1 -1
  134. package/esm/types/Date.d.ts +1 -1
  135. package/esm/types/False.d.ts +1 -1
  136. package/esm/types/Float.d.ts +1 -1
  137. package/esm/types/Int.d.ts +1 -1
  138. package/esm/types/Map.d.ts +1 -1
  139. package/esm/types/Nan.d.ts +1 -1
  140. package/esm/types/Null.d.ts +1 -1
  141. package/esm/types/Set.d.ts +1 -1
  142. package/esm/types/String.d.ts +1 -1
  143. package/esm/types/True.d.ts +1 -1
  144. package/esm/types/Undefined.d.ts +1 -1
  145. package/esm/types/Url.d.ts +1 -1
  146. package/{cjs/comps/ReRender/Types.d.ts → esm/types/index.d.ts} +8 -13
  147. package/esm/{comps/ReRender/Types.js → types/index.js} +84 -94
  148. package/esm/utils/useHighlight.js +0 -1
  149. package/esm/utils/useRender.d.ts +1 -1
  150. package/package.json +3 -4
  151. package/cjs/comps/CountInfo.d.ts +0 -19
  152. package/cjs/comps/CountInfo.js +0 -72
  153. package/cjs/comps/Ellipsis.d.ts +0 -10
  154. package/cjs/comps/Ellipsis.js +0 -35
  155. package/cjs/comps/Key.d.ts +0 -7
  156. package/cjs/comps/Key.js +0 -39
  157. package/cjs/type.d.ts +0 -50
  158. package/cjs/type.js +0 -57
  159. package/esm/comps/CountInfo.d.ts +0 -19
  160. package/esm/comps/CountInfo.js +0 -70
  161. package/esm/comps/Ellipsis.d.ts +0 -10
  162. package/esm/comps/Ellipsis.js +0 -31
  163. package/esm/comps/Key.d.ts +0 -7
  164. package/esm/comps/Key.js +0 -35
  165. package/esm/type.d.ts +0 -50
  166. package/esm/type.js +0 -50
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.KeyNameRender = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
12
+ var _store = require("./store");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _excluded = ["children"],
15
+ _excluded2 = ["value", "parentValue", "keyName"];
16
+ var KeyNameRender = exports.KeyNameRender = function KeyNameRender(_ref, _ref2) {
17
+ var children = _ref.children,
18
+ reset = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
19
+ var value = _ref2.value,
20
+ parentValue = _ref2.parentValue,
21
+ keyName = _ref2.keyName;
22
+ if (typeof children === 'number') {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
24
+ children: children
25
+ }));
26
+ }
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Child, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
28
+ value: value,
29
+ parentValue: parentValue,
30
+ keyName: keyName,
31
+ children: children
32
+ }));
33
+ };
34
+ var Child = function Child(props) {
35
+ var value = props.value,
36
+ parentValue = props.parentValue,
37
+ keyName = props.keyName,
38
+ reset = (0, _objectWithoutProperties2["default"])(props, _excluded2);
39
+ var $dom = (0, _react.useRef)(null);
40
+ var _useState = (0, _react.useState)(props.children),
41
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
42
+ currentValue = _useState2[0],
43
+ setCurrentValue = _useState2[1];
44
+ var _useStore = (0, _store.useStore)(),
45
+ onEdit = _useStore.onEdit;
46
+ var onKeyDown = function onKeyDown(evn) {
47
+ if (evn.key === 'Enter') {
48
+ var _$dom$current;
49
+ (_$dom$current = $dom.current) === null || _$dom$current === void 0 || _$dom$current.setAttribute('contentEditable', 'false');
50
+ }
51
+ };
52
+ var onClick = function onClick(evn) {
53
+ var _$dom$current2, _$dom$current3;
54
+ evn.stopPropagation();
55
+ (_$dom$current2 = $dom.current) === null || _$dom$current2 === void 0 || _$dom$current2.setAttribute('contentEditable', 'true');
56
+ (_$dom$current3 = $dom.current) === null || _$dom$current3 === void 0 || _$dom$current3.focus();
57
+ };
58
+ var onBlur = function onBlur(evn) {
59
+ var _$dom$current4;
60
+ (_$dom$current4 = $dom.current) === null || _$dom$current4 === void 0 || _$dom$current4.setAttribute('contentEditable', 'false');
61
+ var callback = onEdit && onEdit({
62
+ value: evn.target.textContent,
63
+ oldValue: value,
64
+ keyName: keyName
65
+ });
66
+ if (callback) {
67
+ setCurrentValue(evn.target.textContent);
68
+ }
69
+ };
70
+ var spanProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
71
+ onKeyDown: onKeyDown,
72
+ onClick: onClick,
73
+ onBlur: onBlur,
74
+ spellCheck: false,
75
+ contentEditable: 'false',
76
+ suppressContentEditableWarning: true,
77
+ children: currentValue
78
+ });
79
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, spanProps), {}, {
80
+ ref: $dom
81
+ }));
82
+ };
@@ -0,0 +1,19 @@
1
+ /// <reference types="react" />
2
+ import { type JsonViewProps } from '../';
3
+ export interface JsonViewEditorProps<T extends object> extends Omit<JsonViewProps<T>, 'shortenTextAfterLength'> {
4
+ /**
5
+ * When a callback function is passed in, edit functionality is enabled. The callback is invoked before edits are completed.
6
+ * @returns {boolean} Returning false from onEdit will prevent the change from being made.
7
+ */
8
+ onEdit?: (option: {
9
+ value: unknown;
10
+ oldValue: unknown;
11
+ keyName?: string | number;
12
+ parentName?: string | number;
13
+ type?: 'value' | 'key';
14
+ }) => boolean;
15
+ /** Whether enable edit feature. @default true */
16
+ editable?: boolean;
17
+ }
18
+ declare const JsonViewEditor: import("react").ForwardRefExoticComponent<Omit<JsonViewEditorProps<object>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
19
+ export default JsonViewEditor;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = require("react");
12
+ var _ = _interopRequireDefault(require("../"));
13
+ var _KeyName = require("./KeyName");
14
+ var _store = require("./store");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var _excluded = ["children", "onEdit", "editable"];
17
+ var JsonViewEditor = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
18
+ var children = props.children,
19
+ onEdit = props.onEdit,
20
+ _props$editable = props.editable,
21
+ editable = _props$editable === void 0 ? true : _props$editable,
22
+ reset = (0, _objectWithoutProperties2["default"])(props, _excluded);
23
+ var _useStoreReducer = (0, _store.useStoreReducer)({
24
+ onEdit: onEdit
25
+ }),
26
+ _useStoreReducer2 = (0, _slicedToArray2["default"])(_useStoreReducer, 2),
27
+ state = _useStoreReducer2[0],
28
+ dispatch = _useStoreReducer2[1];
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.Context.Provider, {
30
+ value: state,
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_store.Dispatch.Provider, {
32
+ value: dispatch,
33
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_["default"], (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
34
+ shortenTextAfterLength: 0,
35
+ ref: ref,
36
+ children: [editable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_["default"].KeyName, {
37
+ render: _KeyName.KeyNameRender
38
+ }), children]
39
+ }))
40
+ })
41
+ });
42
+ });
43
+ var _default = exports["default"] = JsonViewEditor;
44
+ module.exports = exports.default;
@@ -0,0 +1,28 @@
1
+ /// <reference types="react" />
2
+ type InitialState = {
3
+ /**
4
+ * When a callback function is passed in, edit functionality is enabled. The callback is invoked before edits are completed.
5
+ * @returns {boolean} Returning false from onEdit will prevent the change from being made.
6
+ */
7
+ onEdit?: (option: {
8
+ value: unknown;
9
+ oldValue: unknown;
10
+ keyName?: string | number;
11
+ parentName?: string | number;
12
+ type?: 'value' | 'key';
13
+ }) => boolean;
14
+ };
15
+ type Dispatch = React.Dispatch<InitialState>;
16
+ export declare const Context: import("react").Context<InitialState>;
17
+ export declare const Dispatch: import("react").Context<Dispatch>;
18
+ export declare const useStore: () => InitialState;
19
+ export declare function useStoreReducer(initialState: InitialState): [{
20
+ onEdit?: ((option: {
21
+ value: unknown;
22
+ oldValue: unknown;
23
+ keyName?: string | number | undefined;
24
+ parentName?: string | number | undefined;
25
+ type?: "value" | "key" | undefined;
26
+ }) => boolean) | undefined;
27
+ }, import("react").Dispatch<InitialState>];
28
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useStore = exports.Dispatch = exports.Context = void 0;
8
+ exports.useStoreReducer = useStoreReducer;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _react = require("react");
11
+ var initialState = {};
12
+ var Context = exports.Context = /*#__PURE__*/(0, _react.createContext)(initialState);
13
+ var reducer = function reducer(state, action) {
14
+ return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), action);
15
+ };
16
+ var Dispatch = exports.Dispatch = /*#__PURE__*/(0, _react.createContext)(function () {});
17
+ Dispatch.displayName = 'JVR.Editor.Dispatch';
18
+ var useStore = exports.useStore = function useStore() {
19
+ return (0, _react.useContext)(Context);
20
+ };
21
+ function useStoreReducer(initialState) {
22
+ return (0, _react.useReducer)(reducer, initialState);
23
+ }
package/cjs/index.d.ts CHANGED
@@ -30,14 +30,14 @@ export * from './store/Expands';
30
30
  export * from './store/ShowTools';
31
31
  export * from './store/Symbols';
32
32
  export * from './store/Types';
33
- export * from './comps/ReRender/Symbols';
33
+ export * from './symbol';
34
34
  export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
35
35
  /** This property contains your input JSON */
36
36
  value?: T;
37
37
  /** Define the root node name. @default undefined */
38
38
  keyName?: string | number;
39
39
  /** Whether sort keys through `String.prototype.localeCompare()` @default false */
40
- objectSortKeys?: boolean | ((a: string, b: string) => number);
40
+ objectSortKeys?: boolean | ((keyA: string, keyB: string, valueA: T, valueB: T) => number);
41
41
  /** Set the indent-width for nested objects @default 15 */
42
42
  indentWidth?: number;
43
43
  /** When set to `true`, `objects` and `arrays` are labeled with size @default true */
@@ -50,7 +50,7 @@ export interface JsonViewProps<T extends object> extends React.DetailedHTMLProps
50
50
  collapsed?: boolean | number;
51
51
  /** Whether to highlight updates. @default true */
52
52
  highlightUpdates?: boolean;
53
- /** Shorten long JSON strings, Set to `0` to disable this feature @default 20 */
53
+ /** Shorten long JSON strings, Set to `0` to disable this feature @default 30 */
54
54
  shortenTextAfterLength?: number;
55
55
  /** Callback function for when a treeNode is expanded or collapsed */
56
56
  onExpand?: (props: {
package/cjs/index.js CHANGED
@@ -97,15 +97,15 @@ Object.keys(_Types).forEach(function (key) {
97
97
  }
98
98
  });
99
99
  });
100
- var _Symbols2 = require("./comps/ReRender/Symbols");
101
- Object.keys(_Symbols2).forEach(function (key) {
100
+ var _symbol = require("./symbol");
101
+ Object.keys(_symbol).forEach(function (key) {
102
102
  if (key === "default" || key === "__esModule") return;
103
103
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
104
- if (key in exports && exports[key] === _Symbols2[key]) return;
104
+ if (key in exports && exports[key] === _symbol[key]) return;
105
105
  Object.defineProperty(exports, key, {
106
106
  enumerable: true,
107
107
  get: function get() {
108
- return _Symbols2[key];
108
+ return _symbol[key];
109
109
  }
110
110
  });
111
111
  });
@@ -122,7 +122,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
122
122
  _props$displayObjectS = props.displayObjectSize,
123
123
  displayObjectSize = _props$displayObjectS === void 0 ? true : _props$displayObjectS,
124
124
  _props$shortenTextAft = props.shortenTextAfterLength,
125
- shortenTextAfterLength = _props$shortenTextAft === void 0 ? 20 : _props$shortenTextAft,
125
+ shortenTextAfterLength = _props$shortenTextAft === void 0 ? 30 : _props$shortenTextAft,
126
126
  _props$highlightUpdat = props.highlightUpdates,
127
127
  highlightUpdates = _props$highlightUpdat === void 0 ? true : _props$highlightUpdat,
128
128
  _props$enableClipboar = props.enableClipboard,
@@ -140,7 +140,7 @@ var JsonView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
140
140
  backgroundColor: 'var(--w-rjv-background-color, #00000000)',
141
141
  fontSize: 13
142
142
  }, style);
143
- var cls = "w-json-view-container w-rjv ".concat(className || '');
143
+ var cls = ['w-json-view-container', 'w-rjv', className].filter(Boolean).join(' ');
144
144
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_store.Provider, {
145
145
  initialState: {
146
146
  value: value,
@@ -192,5 +192,4 @@ JsonView.CountInfo = _CountInfo.CountInfo;
192
192
  JsonView.CountInfoExtra = _CountInfoExtra.CountInfoExtra;
193
193
  JsonView.KeyName = _KeyName.KeyName;
194
194
  JsonView.displayName = 'JVR.JsonView';
195
- var _default = JsonView;
196
- exports["default"] = _default;
195
+ var _default = exports["default"] = JsonView;
@@ -1,6 +1,6 @@
1
1
  import { type TagType } from '../store/Types';
2
2
  import { type SectionElement } from '../store/Section';
3
3
  export declare const Copied: {
4
- (props: SectionElement<TagType>): null;
4
+ <K extends TagType = "svg">(props: SectionElement<K>): null;
5
5
  displayName: string;
6
6
  };
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Copied = void 0;
7
7
  var _Section = require("../store/Section");
8
8
  var _useRender = require("../utils/useRender");
9
- var Copied = function Copied(props) {
9
+ var Copied = exports.Copied = function Copied(props) {
10
10
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
11
  _useSectionStore$Copi = _useSectionStore.Copied,
12
12
  Comp = _useSectionStore$Copi === void 0 ? {} : _useSectionStore$Copi;
13
13
  (0, _useRender.useSectionRender)(Comp, props, 'Copied');
14
14
  return null;
15
15
  };
16
- exports.Copied = Copied;
17
16
  Copied.displayName = 'JVR.Copied';
@@ -1,6 +1,15 @@
1
+ /// <reference types="react" />
1
2
  import { type TagType } from '../store/Types';
2
- import { type SectionElement } from '../store/Section';
3
+ import { type SectionElement, type SectionElementProps } from '../store/Section';
3
4
  export declare const CountInfo: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ export interface CountInfoCompProps<T extends object> {
9
+ value?: T;
10
+ keyName: string | number;
11
+ }
12
+ export declare const CountInfoComp: {
13
+ <K extends TagType, T extends object>(props: SectionElementProps<K> & CountInfoCompProps<T> & import("react").HTMLAttributes<HTMLElement>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
14
+ displayName: string;
15
+ };
@@ -1,17 +1,55 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.CountInfo = void 0;
7
+ exports.CountInfoComp = exports.CountInfo = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _Section = require("../store/Section");
8
11
  var _useRender = require("../utils/useRender");
9
- var CountInfo = function CountInfo(props) {
12
+ var _store = require("../store");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ var _excluded = ["value", "keyName"],
15
+ _excluded2 = ["as", "render"];
16
+ var CountInfo = exports.CountInfo = function CountInfo(props) {
10
17
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
18
  _useSectionStore$Coun = _useSectionStore.CountInfo,
12
19
  Comp = _useSectionStore$Coun === void 0 ? {} : _useSectionStore$Coun;
13
20
  (0, _useRender.useSectionRender)(Comp, props, 'CountInfo');
14
21
  return null;
15
22
  };
16
- exports.CountInfo = CountInfo;
17
- CountInfo.displayName = 'JVR.CountInfo';
23
+ CountInfo.displayName = 'JVR.CountInfo';
24
+ var CountInfoComp = exports.CountInfoComp = function CountInfoComp(props) {
25
+ var _props$value = props.value,
26
+ value = _props$value === void 0 ? {} : _props$value,
27
+ keyName = props.keyName,
28
+ other = (0, _objectWithoutProperties2["default"])(props, _excluded);
29
+ var _useStore = (0, _store.useStore)(),
30
+ displayObjectSize = _useStore.displayObjectSize;
31
+ var _useSectionStore2 = (0, _Section.useSectionStore)(),
32
+ _useSectionStore2$Cou = _useSectionStore2.CountInfo,
33
+ Comp = _useSectionStore2$Cou === void 0 ? {} : _useSectionStore2$Cou;
34
+ if (!displayObjectSize) return null;
35
+ var as = Comp.as,
36
+ render = Comp.render,
37
+ reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded2);
38
+ var Elm = as || 'span';
39
+ reset.style = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset.style), props.style);
40
+ var len = Object.keys(value).length;
41
+ if (!reset.children) {
42
+ reset.children = "".concat(len, " items");
43
+ }
44
+ var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), other);
45
+ var isRender = render && typeof render === 'function';
46
+ var child = isRender && render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, elmProps), {}, {
47
+ 'data-length': len
48
+ }), {
49
+ value: value,
50
+ keyName: keyName
51
+ });
52
+ if (child) return child;
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, elmProps));
54
+ };
55
+ CountInfoComp.displayName = 'JVR.CountInfoComp';
@@ -1,6 +1,15 @@
1
+ /// <reference types="react" />
1
2
  import { type TagType } from '../store/Types';
2
- import { type SectionElement } from '../store/Section';
3
+ import { type SectionElement, type SectionElementProps } from '../store/Section';
3
4
  export declare const CountInfoExtra: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ export interface CountInfoExtraCompsProps<T extends object> {
9
+ value?: T;
10
+ keyName: string | number;
11
+ }
12
+ export declare const CountInfoExtraComps: {
13
+ <T extends object, K extends TagType>(props: SectionElementProps<K> & CountInfoExtraCompsProps<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
14
+ displayName: string;
15
+ };
@@ -1,17 +1,45 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.CountInfoExtra = void 0;
7
+ exports.CountInfoExtraComps = exports.CountInfoExtra = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _Section = require("../store/Section");
8
11
  var _useRender = require("../utils/useRender");
9
- var CountInfoExtra = function CountInfoExtra(props) {
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ var _excluded = ["value", "keyName"],
14
+ _excluded2 = ["as", "render"];
15
+ var CountInfoExtra = exports.CountInfoExtra = function CountInfoExtra(props) {
10
16
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
17
  _useSectionStore$Coun = _useSectionStore.CountInfoExtra,
12
18
  Comp = _useSectionStore$Coun === void 0 ? {} : _useSectionStore$Coun;
13
19
  (0, _useRender.useSectionRender)(Comp, props, 'CountInfoExtra');
14
20
  return null;
15
21
  };
16
- exports.CountInfoExtra = CountInfoExtra;
17
- CountInfoExtra.displayName = 'JVR.CountInfoExtra';
22
+ CountInfoExtra.displayName = 'JVR.CountInfoExtra';
23
+ var CountInfoExtraComps = exports.CountInfoExtraComps = function CountInfoExtraComps(props) {
24
+ var _props$value = props.value,
25
+ value = _props$value === void 0 ? {} : _props$value,
26
+ keyName = props.keyName,
27
+ other = (0, _objectWithoutProperties2["default"])(props, _excluded);
28
+ var _useSectionStore2 = (0, _Section.useSectionStore)(),
29
+ _useSectionStore2$Cou = _useSectionStore2.CountInfoExtra,
30
+ Comp = _useSectionStore2$Cou === void 0 ? {} : _useSectionStore2$Cou;
31
+ var as = Comp.as,
32
+ render = Comp.render,
33
+ reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded2);
34
+ if (!render && !reset.children) return null;
35
+ var Elm = as || 'span';
36
+ var isRender = render && typeof render === 'function';
37
+ var elmProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), other);
38
+ var child = isRender && render(elmProps, {
39
+ value: value,
40
+ keyName: keyName
41
+ });
42
+ if (child) return child;
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, elmProps));
44
+ };
45
+ CountInfoExtraComps.displayName = 'JVR.CountInfoExtraComps';
@@ -1,6 +1,16 @@
1
+ /// <reference types="react" />
1
2
  import { type TagType } from '../store/Types';
2
3
  import { type SectionElement } from '../store/Section';
3
4
  export declare const Ellipsis: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ export interface EllipsisCompProps<T extends object> {
9
+ value?: T;
10
+ keyName: string | number;
11
+ isExpanded: boolean;
12
+ }
13
+ export declare const EllipsisComp: {
14
+ <T extends object>({ isExpanded, value, keyName }: EllipsisCompProps<T>): string | number | true | Iterable<import("react").ReactNode> | import("react/jsx-runtime").JSX.Element | null;
15
+ displayName: string;
16
+ };
@@ -1,17 +1,43 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.Ellipsis = void 0;
7
+ exports.EllipsisComp = exports.Ellipsis = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _Section = require("../store/Section");
8
11
  var _useRender = require("../utils/useRender");
9
- var Ellipsis = function Ellipsis(props) {
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ var _excluded = ["as", "render"];
14
+ var Ellipsis = exports.Ellipsis = function Ellipsis(props) {
10
15
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
16
  _useSectionStore$Elli = _useSectionStore.Ellipsis,
12
17
  Comp = _useSectionStore$Elli === void 0 ? {} : _useSectionStore$Elli;
13
18
  (0, _useRender.useSectionRender)(Comp, props, 'Ellipsis');
14
19
  return null;
15
20
  };
16
- exports.Ellipsis = Ellipsis;
17
- Ellipsis.displayName = 'JVR.Ellipsis';
21
+ Ellipsis.displayName = 'JVR.Ellipsis';
22
+ var EllipsisComp = exports.EllipsisComp = function EllipsisComp(_ref) {
23
+ var isExpanded = _ref.isExpanded,
24
+ value = _ref.value,
25
+ keyName = _ref.keyName;
26
+ var _useSectionStore2 = (0, _Section.useSectionStore)(),
27
+ _useSectionStore2$Ell = _useSectionStore2.Ellipsis,
28
+ Comp = _useSectionStore2$Ell === void 0 ? {} : _useSectionStore2$Ell;
29
+ var as = Comp.as,
30
+ render = Comp.render,
31
+ reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded);
32
+ var Elm = as || 'span';
33
+ var child = render && typeof render === 'function' && render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
34
+ 'data-expanded': isExpanded
35
+ }), {
36
+ value: value,
37
+ keyName: keyName
38
+ });
39
+ if (child) return child;
40
+ if (!isExpanded) return null;
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])({}, reset));
42
+ };
43
+ EllipsisComp.displayName = 'JVR.EllipsisComp';
@@ -1,6 +1,14 @@
1
+ import { type FC, type PropsWithChildren } from 'react';
1
2
  import { type TagType } from '../store/Types';
2
3
  import { type SectionElement } from '../store/Section';
3
4
  export declare const KeyName: {
4
5
  <K extends TagType>(props: SectionElement<K>): null;
5
6
  displayName: string;
6
7
  };
8
+ type KeyNameCompProps = {
9
+ keyName: string | number;
10
+ value?: unknown;
11
+ parentValue?: unknown;
12
+ };
13
+ export declare const KeyNameComp: FC<PropsWithChildren<KeyNameCompProps>>;
14
+ export {};
@@ -1,17 +1,51 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.KeyName = void 0;
7
+ exports.KeyNameComp = exports.KeyName = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
10
  var _Section = require("../store/Section");
8
11
  var _useRender = require("../utils/useRender");
9
- var KeyName = function KeyName(props) {
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ var _excluded = ["as", "render"];
14
+ var KeyName = exports.KeyName = function KeyName(props) {
10
15
  var _useSectionStore = (0, _Section.useSectionStore)(),
11
16
  _useSectionStore$KeyN = _useSectionStore.KeyName,
12
17
  Comp = _useSectionStore$KeyN === void 0 ? {} : _useSectionStore$KeyN;
13
18
  (0, _useRender.useSectionRender)(Comp, props, 'KeyName');
14
19
  return null;
15
20
  };
16
- exports.KeyName = KeyName;
17
- KeyName.displayName = 'JVR.KeyName';
21
+ KeyName.displayName = 'JVR.KeyName';
22
+ var KeyNameComp = exports.KeyNameComp = function KeyNameComp(props) {
23
+ var children = props.children,
24
+ value = props.value,
25
+ parentValue = props.parentValue,
26
+ keyName = props.keyName;
27
+ var isNumber = typeof children === 'number';
28
+ var style = {
29
+ color: isNumber ? 'var(--w-rjv-key-number, #268bd2)' : 'var(--w-rjv-key-string, #002b36)'
30
+ };
31
+ var _useSectionStore2 = (0, _Section.useSectionStore)(),
32
+ _useSectionStore2$Key = _useSectionStore2.KeyName,
33
+ Comp = _useSectionStore2$Key === void 0 ? {} : _useSectionStore2$Key;
34
+ var as = Comp.as,
35
+ render = Comp.render,
36
+ reset = (0, _objectWithoutProperties2["default"])(Comp, _excluded);
37
+ reset.style = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset.style), style);
38
+ var Elm = as || 'span';
39
+ var child = render && typeof render === 'function' && render((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
40
+ children: children
41
+ }), {
42
+ value: value,
43
+ parentValue: parentValue,
44
+ keyName: keyName
45
+ });
46
+ if (child) return child;
47
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Elm, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, reset), {}, {
48
+ children: children
49
+ }));
50
+ };
51
+ KeyNameComp.displayName = 'JVR.KeyNameComp';
@@ -16,10 +16,9 @@ var Context = /*#__PURE__*/(0, _react.createContext)(initialState);
16
16
  var reducer = function reducer(state, action) {
17
17
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), action);
18
18
  };
19
- var useExpandsStore = function useExpandsStore() {
19
+ var useExpandsStore = exports.useExpandsStore = function useExpandsStore() {
20
20
  return (0, _react.useContext)(Context);
21
21
  };
22
- exports.useExpandsStore = useExpandsStore;
23
22
  var DispatchExpands = /*#__PURE__*/(0, _react.createContext)(function () {});
24
23
  DispatchExpands.displayName = 'JVR.DispatchExpands';
25
24
  function useExpands() {
@@ -28,7 +27,7 @@ function useExpands() {
28
27
  function useExpandsDispatch() {
29
28
  return (0, _react.useContext)(DispatchExpands);
30
29
  }
31
- var Expands = function Expands(_ref) {
30
+ var Expands = exports.Expands = function Expands(_ref) {
32
31
  var initial = _ref.initial,
33
32
  dispatch = _ref.dispatch,
34
33
  children = _ref.children;
@@ -40,5 +39,4 @@ var Expands = function Expands(_ref) {
40
39
  })
41
40
  });
42
41
  };
43
- exports.Expands = Expands;
44
42
  Expands.displayName = 'JVR.Expands';
@@ -1,13 +1,14 @@
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 type SectionElementProps<T extends TagType = 'span'> = {
4
4
  as?: T;
5
5
  render?: (props: SectionElement<T>, result: {
6
6
  value: unknown;
7
+ parentValue?: unknown;
7
8
  keyName: string | number;
8
9
  }) => React.ReactNode;
9
10
  };
10
- export type SectionElement<T extends TagType> = SectionElementProps<T> & ComponentPropsWithoutRef<T>;
11
+ export type SectionElement<T extends TagType = 'span'> = SectionElementProps<T> & ComponentPropsWithoutRef<T>;
11
12
  type InitialState<T extends TagType> = {
12
13
  Copied?: SectionElement<T>;
13
14
  CountInfo?: SectionElement<T>;
@@ -58,10 +58,9 @@ var Context = /*#__PURE__*/(0, _react.createContext)(initialState);
58
58
  var reducer = function reducer(state, action) {
59
59
  return (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, state), action);
60
60
  };
61
- var useSectionStore = function useSectionStore() {
61
+ var useSectionStore = exports.useSectionStore = function useSectionStore() {
62
62
  return (0, _react.useContext)(Context);
63
63
  };
64
- exports.useSectionStore = useSectionStore;
65
64
  var DispatchSection = /*#__PURE__*/(0, _react.createContext)(function () {});
66
65
  DispatchSection.displayName = 'JVR.DispatchSection';
67
66
  function useSection() {
@@ -70,7 +69,7 @@ function useSection() {
70
69
  function useSectionDispatch() {
71
70
  return (0, _react.useContext)(DispatchSection);
72
71
  }
73
- var Section = function Section(_ref) {
72
+ var Section = exports.Section = function Section(_ref) {
74
73
  var initial = _ref.initial,
75
74
  dispatch = _ref.dispatch,
76
75
  children = _ref.children;
@@ -82,5 +81,4 @@ var Section = function Section(_ref) {
82
81
  })
83
82
  });
84
83
  };
85
- exports.Section = Section;
86
84
  Section.displayName = 'JVR.Section';