@availity/mui-tree 0.2.1 → 0.2.3

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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ ## [0.2.3](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.2...@availity/mui-tree@0.2.3) (2024-11-22)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **mui-tree:** don't export JsonViewer as default ([404861f](https://github.com/Availity/element/commit/404861f4cb98a0dc3237b60c4d199ab24bbb3447))
11
+
12
+ ## [0.2.2](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.1...@availity/mui-tree@0.2.2) (2024-11-21)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **mui-tree:** export JsonViewer ([23f0c96](https://github.com/Availity/element/commit/23f0c9669af657f7332998ad57e54b7c4eaa598f))
18
+
5
19
  ## [0.2.1](https://github.com/Availity/element/compare/@availity/mui-tree@0.2.0...@availity/mui-tree@0.2.1) (2024-10-31)
6
20
 
7
21
  ### Dependency Updates
package/dist/index.d.mts CHANGED
@@ -14,4 +14,10 @@ interface TreeItemProps extends TreeItem2Props {
14
14
  }
15
15
  declare const TreeItem: ({ children, label, slots, slotProps, truncate, ...rest }: TreeItemProps) => JSX.Element;
16
16
 
17
- export { DynamicTreeView, type DynamicTreeViewProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
17
+ interface JsonViewerProps extends Omit<TreeViewProps, 'children'> {
18
+ /** Data to be rendered, can be most valid javascript objects, some uncommon types may not by fully supported - like cyclical objects, proxies, symbols as keys. */
19
+ data: Record<string, unknown>;
20
+ }
21
+ declare const JsonViewer: ({ data, ...rest }: JsonViewerProps) => JSX.Element;
22
+
23
+ export { DynamicTreeView, type DynamicTreeViewProps, JsonViewer, type JsonViewerProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
package/dist/index.d.ts CHANGED
@@ -14,4 +14,10 @@ interface TreeItemProps extends TreeItem2Props {
14
14
  }
15
15
  declare const TreeItem: ({ children, label, slots, slotProps, truncate, ...rest }: TreeItemProps) => JSX.Element;
16
16
 
17
- export { DynamicTreeView, type DynamicTreeViewProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
17
+ interface JsonViewerProps extends Omit<TreeViewProps, 'children'> {
18
+ /** Data to be rendered, can be most valid javascript objects, some uncommon types may not by fully supported - like cyclical objects, proxies, symbols as keys. */
19
+ data: Record<string, unknown>;
20
+ }
21
+ declare const JsonViewer: ({ data, ...rest }: JsonViewerProps) => JSX.Element;
22
+
23
+ export { DynamicTreeView, type DynamicTreeViewProps, JsonViewer, type JsonViewerProps, TreeItem, type TreeItemProps, TreeView, type TreeViewProps };
package/dist/index.js CHANGED
@@ -50,6 +50,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
50
50
  var src_exports = {};
51
51
  __export(src_exports, {
52
52
  DynamicTreeView: () => DynamicTreeView,
53
+ JsonViewer: () => JsonViewer,
53
54
  TreeItem: () => TreeItem,
54
55
  TreeView: () => TreeView
55
56
  });
@@ -104,9 +105,38 @@ var DynamicTreeView = (_a) => {
104
105
  var _b = _a, { children, slots } = _b, rest = __objRest(_b, ["children", "slots"]);
105
106
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_RichTreeView.RichTreeView, __spreadProps(__spreadValues({}, rest), { slots: __spreadProps(__spreadValues({}, slots), { item: TreeItem }), children }));
106
107
  };
108
+
109
+ // src/lib/JsonViewer.tsx
110
+ var import_jsx_runtime4 = require("react/jsx-runtime");
111
+ var isPrimitive = (value) => {
112
+ return ["string", "number", "boolean"].includes(typeof value);
113
+ };
114
+ var isObject = (value) => {
115
+ return !!value && typeof value === "object";
116
+ };
117
+ var getDetails = ({ data }) => {
118
+ return Object.entries(data).map((entry) => {
119
+ const [key, value] = entry;
120
+ if (isPrimitive(value)) {
121
+ const label = `${key}: ${value.toString()}`;
122
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeItem, { label, itemId: `${key}.${value}` }, `${key}.${value}`);
123
+ }
124
+ if (isObject(value)) {
125
+ const label = `${key}: ${Array.isArray(value) ? `[ ] ${value.length} items` : `{ } ${Object.keys(value).length} keys`}`;
126
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeItem, { label, itemId: key, children: getDetails({ data: value }) }, key);
127
+ }
128
+ return null;
129
+ });
130
+ };
131
+ var JsonViewer = (_a) => {
132
+ var _b = _a, { data } = _b, rest = __objRest(_b, ["data"]);
133
+ const details = getDetails({ data });
134
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(TreeView, __spreadProps(__spreadValues({}, rest), { children: details }));
135
+ };
107
136
  // Annotate the CommonJS export names for ESM import in node:
108
137
  0 && (module.exports = {
109
138
  DynamicTreeView,
139
+ JsonViewer,
110
140
  TreeItem,
111
141
  TreeView
112
142
  });
package/dist/index.mjs CHANGED
@@ -79,8 +79,37 @@ var DynamicTreeView = (_a) => {
79
79
  var _b = _a, { children, slots } = _b, rest = __objRest(_b, ["children", "slots"]);
80
80
  return /* @__PURE__ */ jsx3(RichTreeView, __spreadProps(__spreadValues({}, rest), { slots: __spreadProps(__spreadValues({}, slots), { item: TreeItem }), children }));
81
81
  };
82
+
83
+ // src/lib/JsonViewer.tsx
84
+ import { jsx as jsx4 } from "react/jsx-runtime";
85
+ var isPrimitive = (value) => {
86
+ return ["string", "number", "boolean"].includes(typeof value);
87
+ };
88
+ var isObject = (value) => {
89
+ return !!value && typeof value === "object";
90
+ };
91
+ var getDetails = ({ data }) => {
92
+ return Object.entries(data).map((entry) => {
93
+ const [key, value] = entry;
94
+ if (isPrimitive(value)) {
95
+ const label = `${key}: ${value.toString()}`;
96
+ return /* @__PURE__ */ jsx4(TreeItem, { label, itemId: `${key}.${value}` }, `${key}.${value}`);
97
+ }
98
+ if (isObject(value)) {
99
+ const label = `${key}: ${Array.isArray(value) ? `[ ] ${value.length} items` : `{ } ${Object.keys(value).length} keys`}`;
100
+ return /* @__PURE__ */ jsx4(TreeItem, { label, itemId: key, children: getDetails({ data: value }) }, key);
101
+ }
102
+ return null;
103
+ });
104
+ };
105
+ var JsonViewer = (_a) => {
106
+ var _b = _a, { data } = _b, rest = __objRest(_b, ["data"]);
107
+ const details = getDetails({ data });
108
+ return /* @__PURE__ */ jsx4(TreeView, __spreadProps(__spreadValues({}, rest), { children: details }));
109
+ };
82
110
  export {
83
111
  DynamicTreeView,
112
+ JsonViewer,
84
113
  TreeItem,
85
114
  TreeView
86
115
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@availity/mui-tree",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Availity MUI Tree Component - part of the @availity/element design system",
5
5
  "keywords": [
6
6
  "react",
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './lib/TreeView';
2
2
  export * from './lib/DynamicTreeView';
3
3
  export * from './lib/TreeItem';
4
+ export * from './lib/JsonViewer';
@@ -1,6 +1,6 @@
1
1
  import { Meta, StoryObj } from '@storybook/react';
2
2
 
3
- import JsonViewer, { JsonViewerProps } from './JsonViewer';
3
+ import { JsonViewer, JsonViewerProps } from './JsonViewer';
4
4
  // import README from '../README.md';
5
5
 
6
6
  const meta: Meta<typeof JsonViewer> = {
@@ -1,5 +1,5 @@
1
1
  import { render, fireEvent } from '@testing-library/react';
2
- import JsonViewer from './JsonViewer';
2
+ import { JsonViewer } from './JsonViewer';
3
3
 
4
4
  const setup = (data: Record<string, unknown>) => render(<JsonViewer data={data} />);
5
5
 
@@ -35,9 +35,7 @@ const getDetails = ({ data }: JsonViewerProps): (JSX.Element | null)[] => {
35
35
  });
36
36
  };
37
37
 
38
- const JsonViewer = ({ data, ...rest }: JsonViewerProps): JSX.Element => {
38
+ export const JsonViewer = ({ data, ...rest }: JsonViewerProps): JSX.Element => {
39
39
  const details = getDetails({ data });
40
40
  return <TreeView {...rest}>{details}</TreeView>;
41
41
  };
42
-
43
- export default JsonViewer;