@ark-ui/react 5.17.0 → 5.18.1

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 (65) hide show
  1. package/dist/components/collection/index.cjs +2 -0
  2. package/dist/components/collection/index.d.cts +1 -0
  3. package/dist/components/collection/index.d.ts +1 -0
  4. package/dist/components/collection/index.js +1 -0
  5. package/dist/components/collection/use-list-selection.cjs +83 -0
  6. package/dist/components/collection/use-list-selection.d.cts +91 -0
  7. package/dist/components/collection/use-list-selection.d.ts +91 -0
  8. package/dist/components/collection/use-list-selection.js +79 -0
  9. package/dist/components/file-upload/file-upload-root.cjs +2 -0
  10. package/dist/components/file-upload/file-upload-root.js +2 -0
  11. package/dist/components/index.cjs +10 -0
  12. package/dist/components/index.d.cts +1 -0
  13. package/dist/components/index.d.ts +1 -0
  14. package/dist/components/index.js +6 -0
  15. package/dist/components/json-tree-view/get-branch-value.cjs +19 -0
  16. package/dist/components/json-tree-view/get-branch-value.d.cts +3 -0
  17. package/dist/components/json-tree-view/get-branch-value.d.ts +3 -0
  18. package/dist/components/json-tree-view/get-branch-value.js +15 -0
  19. package/dist/components/json-tree-view/index.cjs +17 -0
  20. package/dist/components/json-tree-view/index.d.cts +5 -0
  21. package/dist/components/json-tree-view/index.d.ts +5 -0
  22. package/dist/components/json-tree-view/index.js +6 -0
  23. package/dist/components/json-tree-view/json-tree-view-key-node.cjs +18 -0
  24. package/dist/components/json-tree-view/json-tree-view-key-node.d.cts +13 -0
  25. package/dist/components/json-tree-view/json-tree-view-key-node.d.ts +13 -0
  26. package/dist/components/json-tree-view/json-tree-view-key-node.js +14 -0
  27. package/dist/components/json-tree-view/json-tree-view-node.cjs +62 -0
  28. package/dist/components/json-tree-view/json-tree-view-node.d.cts +20 -0
  29. package/dist/components/json-tree-view/json-tree-view-node.d.ts +20 -0
  30. package/dist/components/json-tree-view/json-tree-view-node.js +58 -0
  31. package/dist/components/json-tree-view/json-tree-view-props-context.cjs +15 -0
  32. package/dist/components/json-tree-view/json-tree-view-props-context.d.cts +9 -0
  33. package/dist/components/json-tree-view/json-tree-view-props-context.d.ts +9 -0
  34. package/dist/components/json-tree-view/json-tree-view-props-context.js +10 -0
  35. package/dist/components/json-tree-view/json-tree-view-root-provider.cjs +15 -0
  36. package/dist/components/json-tree-view/json-tree-view-root-provider.d.cts +6 -0
  37. package/dist/components/json-tree-view/json-tree-view-root-provider.d.ts +6 -0
  38. package/dist/components/json-tree-view/json-tree-view-root-provider.js +11 -0
  39. package/dist/components/json-tree-view/json-tree-view-root.cjs +48 -0
  40. package/dist/components/json-tree-view/json-tree-view-root.d.cts +15 -0
  41. package/dist/components/json-tree-view/json-tree-view-root.d.ts +15 -0
  42. package/dist/components/json-tree-view/json-tree-view-root.js +44 -0
  43. package/dist/components/json-tree-view/json-tree-view-tree.cjs +22 -0
  44. package/dist/components/json-tree-view/json-tree-view-tree.d.cts +6 -0
  45. package/dist/components/json-tree-view/json-tree-view-tree.d.ts +6 -0
  46. package/dist/components/json-tree-view/json-tree-view-tree.js +18 -0
  47. package/dist/components/json-tree-view/json-tree-view-value-node.cjs +26 -0
  48. package/dist/components/json-tree-view/json-tree-view-value-node.d.cts +7 -0
  49. package/dist/components/json-tree-view/json-tree-view-value-node.d.ts +7 -0
  50. package/dist/components/json-tree-view/json-tree-view-value-node.js +22 -0
  51. package/dist/components/json-tree-view/json-tree-view.cjs +13 -0
  52. package/dist/components/json-tree-view/json-tree-view.d.cts +3 -0
  53. package/dist/components/json-tree-view/json-tree-view.d.ts +3 -0
  54. package/dist/components/json-tree-view/json-tree-view.js +3 -0
  55. package/dist/components/json-tree-view/use-json-tree-view.cjs +32 -0
  56. package/dist/components/json-tree-view/use-json-tree-view.d.cts +9 -0
  57. package/dist/components/json-tree-view/use-json-tree-view.d.ts +9 -0
  58. package/dist/components/json-tree-view/use-json-tree-view.js +28 -0
  59. package/dist/components/signature-pad/signature-pad-root.cjs +2 -0
  60. package/dist/components/signature-pad/signature-pad-root.js +2 -0
  61. package/dist/components/tree-view/use-tree-view.d.cts +1 -1
  62. package/dist/components/tree-view/use-tree-view.d.ts +1 -1
  63. package/dist/index.cjs +10 -0
  64. package/dist/index.js +6 -0
  65. package/package.json +63 -62
@@ -0,0 +1,62 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const jsonTreeUtils = require('@zag-js/json-tree-utils');
8
+ const react = require('react');
9
+ const treeViewBranch = require('../tree-view/tree-view-branch.cjs');
10
+ const treeViewBranchContent = require('../tree-view/tree-view-branch-content.cjs');
11
+ const treeViewBranchControl = require('../tree-view/tree-view-branch-control.cjs');
12
+ const treeViewBranchIndentGuide = require('../tree-view/tree-view-branch-indent-guide.cjs');
13
+ const treeViewBranchIndicator = require('../tree-view/tree-view-branch-indicator.cjs');
14
+ const treeViewBranchText = require('../tree-view/tree-view-branch-text.cjs');
15
+ const treeViewItem = require('../tree-view/tree-view-item.cjs');
16
+ const treeViewItemText = require('../tree-view/tree-view-item-text.cjs');
17
+ const treeViewNodeProvider = require('../tree-view/tree-view-node-provider.cjs');
18
+ const useTreeViewContext = require('../tree-view/use-tree-view-context.cjs');
19
+ const jsonTreeViewKeyNode = require('./json-tree-view-key-node.cjs');
20
+ const jsonTreeViewPropsContext = require('./json-tree-view-props-context.cjs');
21
+ const jsonTreeViewValueNode = require('./json-tree-view-value-node.cjs');
22
+
23
+ const scopeProps = {
24
+ "data-scope": "json-tree-view"
25
+ };
26
+ function JsonTreeViewNode(props) {
27
+ const { node, indexPath, arrow, indentGuide, renderValue } = props;
28
+ const options = jsonTreeViewPropsContext.useJsonTreeViewPropsContext();
29
+ const tree = useTreeViewContext.useTreeViewContext();
30
+ const nodeState = tree.getNodeState({ node, indexPath });
31
+ const key = jsonTreeUtils.keyPathToKey(node.keyPath, { excludeRoot: true });
32
+ const valueNode = react.useMemo(() => jsonTreeUtils.jsonNodeToElement(node, options), [node, options]);
33
+ const nodeProps = react.useMemo(() => {
34
+ const desc = jsonTreeUtils.getAccessibleDescription(node);
35
+ const line = indexPath.reduce((acc, curr) => acc + curr, 1);
36
+ const lineLength = indexPath.length - 1;
37
+ return {
38
+ ...scopeProps,
39
+ "aria-label": desc,
40
+ "data-line": line,
41
+ style: { ["--line-length"]: lineLength }
42
+ };
43
+ }, [indexPath, node]);
44
+ return /* @__PURE__ */ jsxRuntime.jsx(treeViewNodeProvider.TreeViewNodeProvider, { node, indexPath, children: nodeState.isBranch ? /* @__PURE__ */ jsxRuntime.jsxs(treeViewBranch.TreeViewBranch, { ...scopeProps, children: [
45
+ /* @__PURE__ */ jsxRuntime.jsxs(treeViewBranchControl.TreeViewBranchControl, { ...nodeProps, children: [
46
+ arrow && /* @__PURE__ */ jsxRuntime.jsx(treeViewBranchIndicator.TreeViewBranchIndicator, { ...scopeProps, children: arrow }),
47
+ /* @__PURE__ */ jsxRuntime.jsxs(treeViewBranchText.TreeViewBranchText, { ...scopeProps, children: [
48
+ key && /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewKeyNode.JsonTreeViewKeyNode, { node, showQuotes: options.quotesOnKeys }),
49
+ /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewValueNode.JsonTreeViewValueNode, { node: valueNode, renderValue })
50
+ ] })
51
+ ] }),
52
+ /* @__PURE__ */ jsxRuntime.jsxs(treeViewBranchContent.TreeViewBranchContent, { ...scopeProps, children: [
53
+ typeof indentGuide === "boolean" ? /* @__PURE__ */ jsxRuntime.jsx(treeViewBranchIndentGuide.TreeViewBranchIndentGuide, {}) : indentGuide,
54
+ node.children?.map((child, index) => /* @__PURE__ */ jsxRuntime.jsx(JsonTreeViewNode, { ...props, node: child, indexPath: [...indexPath, index] }, index))
55
+ ] })
56
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(treeViewItem.TreeViewItem, { ...nodeProps, children: /* @__PURE__ */ jsxRuntime.jsxs(treeViewItemText.TreeViewItemText, { ...scopeProps, children: [
57
+ key && /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewKeyNode.JsonTreeViewKeyNode, { node, showQuotes: options.quotesOnKeys }),
58
+ /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewValueNode.JsonTreeViewValueNode, { node: valueNode, renderValue })
59
+ ] }) }) });
60
+ }
61
+
62
+ exports.JsonTreeViewNode = JsonTreeViewNode;
@@ -0,0 +1,20 @@
1
+ import { JsonNode, JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ export interface JsonTreeViewNodeBaseProps {
3
+ /**
4
+ * The icon to use for the arrow.
5
+ */
6
+ arrow?: React.ReactElement;
7
+ /**
8
+ * The indent guide to use for the tree.
9
+ */
10
+ indentGuide?: boolean | React.ReactElement;
11
+ /**
12
+ * The function to render the value of the node.
13
+ */
14
+ renderValue?: (node: JsonNodeHastElement) => React.ReactNode;
15
+ }
16
+ export interface JsonTreeViewNodeProps extends JsonTreeViewNodeBaseProps {
17
+ node: JsonNode;
18
+ indexPath: number[];
19
+ }
20
+ export declare function JsonTreeViewNode(props: JsonTreeViewNodeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { JsonNode, JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ export interface JsonTreeViewNodeBaseProps {
3
+ /**
4
+ * The icon to use for the arrow.
5
+ */
6
+ arrow?: React.ReactElement;
7
+ /**
8
+ * The indent guide to use for the tree.
9
+ */
10
+ indentGuide?: boolean | React.ReactElement;
11
+ /**
12
+ * The function to render the value of the node.
13
+ */
14
+ renderValue?: (node: JsonNodeHastElement) => React.ReactNode;
15
+ }
16
+ export interface JsonTreeViewNodeProps extends JsonTreeViewNodeBaseProps {
17
+ node: JsonNode;
18
+ indexPath: number[];
19
+ }
20
+ export declare function JsonTreeViewNode(props: JsonTreeViewNodeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { keyPathToKey, jsonNodeToElement, getAccessibleDescription } from '@zag-js/json-tree-utils';
4
+ import { useMemo } from 'react';
5
+ import { TreeViewBranch } from '../tree-view/tree-view-branch.js';
6
+ import { TreeViewBranchContent } from '../tree-view/tree-view-branch-content.js';
7
+ import { TreeViewBranchControl } from '../tree-view/tree-view-branch-control.js';
8
+ import { TreeViewBranchIndentGuide } from '../tree-view/tree-view-branch-indent-guide.js';
9
+ import { TreeViewBranchIndicator } from '../tree-view/tree-view-branch-indicator.js';
10
+ import { TreeViewBranchText } from '../tree-view/tree-view-branch-text.js';
11
+ import { TreeViewItem } from '../tree-view/tree-view-item.js';
12
+ import { TreeViewItemText } from '../tree-view/tree-view-item-text.js';
13
+ import { TreeViewNodeProvider } from '../tree-view/tree-view-node-provider.js';
14
+ import { useTreeViewContext } from '../tree-view/use-tree-view-context.js';
15
+ import { JsonTreeViewKeyNode } from './json-tree-view-key-node.js';
16
+ import { useJsonTreeViewPropsContext } from './json-tree-view-props-context.js';
17
+ import { JsonTreeViewValueNode } from './json-tree-view-value-node.js';
18
+
19
+ const scopeProps = {
20
+ "data-scope": "json-tree-view"
21
+ };
22
+ function JsonTreeViewNode(props) {
23
+ const { node, indexPath, arrow, indentGuide, renderValue } = props;
24
+ const options = useJsonTreeViewPropsContext();
25
+ const tree = useTreeViewContext();
26
+ const nodeState = tree.getNodeState({ node, indexPath });
27
+ const key = keyPathToKey(node.keyPath, { excludeRoot: true });
28
+ const valueNode = useMemo(() => jsonNodeToElement(node, options), [node, options]);
29
+ const nodeProps = useMemo(() => {
30
+ const desc = getAccessibleDescription(node);
31
+ const line = indexPath.reduce((acc, curr) => acc + curr, 1);
32
+ const lineLength = indexPath.length - 1;
33
+ return {
34
+ ...scopeProps,
35
+ "aria-label": desc,
36
+ "data-line": line,
37
+ style: { ["--line-length"]: lineLength }
38
+ };
39
+ }, [indexPath, node]);
40
+ return /* @__PURE__ */ jsx(TreeViewNodeProvider, { node, indexPath, children: nodeState.isBranch ? /* @__PURE__ */ jsxs(TreeViewBranch, { ...scopeProps, children: [
41
+ /* @__PURE__ */ jsxs(TreeViewBranchControl, { ...nodeProps, children: [
42
+ arrow && /* @__PURE__ */ jsx(TreeViewBranchIndicator, { ...scopeProps, children: arrow }),
43
+ /* @__PURE__ */ jsxs(TreeViewBranchText, { ...scopeProps, children: [
44
+ key && /* @__PURE__ */ jsx(JsonTreeViewKeyNode, { node, showQuotes: options.quotesOnKeys }),
45
+ /* @__PURE__ */ jsx(JsonTreeViewValueNode, { node: valueNode, renderValue })
46
+ ] })
47
+ ] }),
48
+ /* @__PURE__ */ jsxs(TreeViewBranchContent, { ...scopeProps, children: [
49
+ typeof indentGuide === "boolean" ? /* @__PURE__ */ jsx(TreeViewBranchIndentGuide, {}) : indentGuide,
50
+ node.children?.map((child, index) => /* @__PURE__ */ jsx(JsonTreeViewNode, { ...props, node: child, indexPath: [...indexPath, index] }, index))
51
+ ] })
52
+ ] }) : /* @__PURE__ */ jsx(TreeViewItem, { ...nodeProps, children: /* @__PURE__ */ jsxs(TreeViewItemText, { ...scopeProps, children: [
53
+ key && /* @__PURE__ */ jsx(JsonTreeViewKeyNode, { node, showQuotes: options.quotesOnKeys }),
54
+ /* @__PURE__ */ jsx(JsonTreeViewValueNode, { node: valueNode, renderValue })
55
+ ] }) }) });
56
+ }
57
+
58
+ export { JsonTreeViewNode };
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const createContext = require('../../utils/create-context.cjs');
7
+
8
+ const [JsonTreeViewPropsProvider, useJsonTreeViewPropsContext] = createContext.createContext({
9
+ name: "JsonTreeViewPropsContext",
10
+ hookName: "useJsonTreeViewPropsContext",
11
+ providerName: "<JsonTreeViewPropsProvider />"
12
+ });
13
+
14
+ exports.JsonTreeViewPropsProvider = JsonTreeViewPropsProvider;
15
+ exports.useJsonTreeViewPropsContext = useJsonTreeViewPropsContext;
@@ -0,0 +1,9 @@
1
+ import { JsonNodePreviewOptions } from '@zag-js/json-tree-utils';
2
+ import { Provider } from 'react';
3
+ export interface JsonTreeViewOptions extends Partial<JsonNodePreviewOptions> {
4
+ /**
5
+ * Whether to show quotes on the keys.
6
+ */
7
+ quotesOnKeys?: boolean;
8
+ }
9
+ export declare const JsonTreeViewPropsProvider: Provider<JsonTreeViewOptions>, useJsonTreeViewPropsContext: () => JsonTreeViewOptions;
@@ -0,0 +1,9 @@
1
+ import { JsonNodePreviewOptions } from '@zag-js/json-tree-utils';
2
+ import { Provider } from 'react';
3
+ export interface JsonTreeViewOptions extends Partial<JsonNodePreviewOptions> {
4
+ /**
5
+ * Whether to show quotes on the keys.
6
+ */
7
+ quotesOnKeys?: boolean;
8
+ }
9
+ export declare const JsonTreeViewPropsProvider: Provider<JsonTreeViewOptions>, useJsonTreeViewPropsContext: () => JsonTreeViewOptions;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+ import { createContext } from '../../utils/create-context.js';
3
+
4
+ const [JsonTreeViewPropsProvider, useJsonTreeViewPropsContext] = createContext({
5
+ name: "JsonTreeViewPropsContext",
6
+ hookName: "useJsonTreeViewPropsContext",
7
+ providerName: "<JsonTreeViewPropsProvider />"
8
+ });
9
+
10
+ export { JsonTreeViewPropsProvider, useJsonTreeViewPropsContext };
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react = require('react');
8
+ const treeViewRootProvider = require('../tree-view/tree-view-root-provider.cjs');
9
+
10
+ const JsonTreeViewRootProvider = react.forwardRef((props, ref) => {
11
+ return /* @__PURE__ */ jsxRuntime.jsx(treeViewRootProvider.TreeViewRootProvider, { "data-scope": "json-tree-view", ...props, ref });
12
+ });
13
+ JsonTreeViewRootProvider.displayName = "JsonTreeViewRootProvider";
14
+
15
+ exports.JsonTreeViewRootProvider = JsonTreeViewRootProvider;
@@ -0,0 +1,6 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { TreeView } from '../tree-view';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+ export interface JsonTreeViewRootProviderProps extends TreeView.RootProviderProps<JsonNode> {
5
+ }
6
+ export declare const JsonTreeViewRootProvider: ForwardRefExoticComponent<JsonTreeViewRootProviderProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,6 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { TreeView } from '../tree-view';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+ export interface JsonTreeViewRootProviderProps extends TreeView.RootProviderProps<JsonNode> {
5
+ }
6
+ export declare const JsonTreeViewRootProvider: ForwardRefExoticComponent<JsonTreeViewRootProviderProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { TreeViewRootProvider } from '../tree-view/tree-view-root-provider.js';
5
+
6
+ const JsonTreeViewRootProvider = forwardRef((props, ref) => {
7
+ return /* @__PURE__ */ jsx(TreeViewRootProvider, { "data-scope": "json-tree-view", ...props, ref });
8
+ });
9
+ JsonTreeViewRootProvider.displayName = "JsonTreeViewRootProvider";
10
+
11
+ export { JsonTreeViewRootProvider };
@@ -0,0 +1,48 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const jsonTreeUtils = require('@zag-js/json-tree-utils');
8
+ const react = require('react');
9
+ const createSplitProps = require('../../utils/create-split-props.cjs');
10
+ const treeCollection = require('../collection/tree-collection.cjs');
11
+ const treeViewRoot = require('../tree-view/tree-view-root.cjs');
12
+ const getBranchValue = require('./get-branch-value.cjs');
13
+ const jsonTreeViewPropsContext = require('./json-tree-view-props-context.cjs');
14
+
15
+ const splitJsonTreeViewProps = createSplitProps.createSplitProps();
16
+ const JsonTreeViewRoot = react.forwardRef((props, ref) => {
17
+ const [jsonTreeProps, localProps] = splitJsonTreeViewProps(props, [
18
+ "maxPreviewItems",
19
+ "collapseStringsAfterLength",
20
+ "quotesOnKeys",
21
+ "groupArraysAfterLength",
22
+ "showNonenumerable"
23
+ ]);
24
+ const { data, defaultExpandedDepth, ...restProps } = localProps;
25
+ const collection = react.useMemo(() => {
26
+ return treeCollection.createTreeCollection({
27
+ nodeToValue: jsonTreeUtils.nodeToValue,
28
+ nodeToString: jsonTreeUtils.nodeToString,
29
+ rootNode: jsonTreeUtils.getRootNode(data)
30
+ });
31
+ }, [data]);
32
+ const defaultExpandedValue = react.useMemo(() => {
33
+ return defaultExpandedDepth != null ? getBranchValue.getBranchValues(collection, defaultExpandedDepth) : void 0;
34
+ }, [collection, defaultExpandedDepth]);
35
+ return /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewPropsContext.JsonTreeViewPropsProvider, { value: jsonTreeProps, children: /* @__PURE__ */ jsxRuntime.jsx(
36
+ treeViewRoot.TreeViewRoot,
37
+ {
38
+ "data-scope": "json-tree-view",
39
+ collection,
40
+ defaultExpandedValue,
41
+ ...restProps,
42
+ ref
43
+ }
44
+ ) });
45
+ });
46
+ JsonTreeViewRoot.displayName = "JsonTreeViewRoot";
47
+
48
+ exports.JsonTreeViewRoot = JsonTreeViewRoot;
@@ -0,0 +1,15 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { TreeView } from '../tree-view';
3
+ import { JsonTreeViewOptions } from './json-tree-view-props-context';
4
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
5
+ export interface JsonTreeViewRootProps extends Omit<TreeView.RootProps<JsonNode>, 'collection'>, JsonTreeViewOptions {
6
+ /**
7
+ * The data to display in the tree.
8
+ */
9
+ data: unknown;
10
+ /**
11
+ * The default expand level.
12
+ */
13
+ defaultExpandedDepth?: number;
14
+ }
15
+ export declare const JsonTreeViewRoot: ForwardRefExoticComponent<JsonTreeViewRootProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,15 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { TreeView } from '../tree-view';
3
+ import { JsonTreeViewOptions } from './json-tree-view-props-context';
4
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
5
+ export interface JsonTreeViewRootProps extends Omit<TreeView.RootProps<JsonNode>, 'collection'>, JsonTreeViewOptions {
6
+ /**
7
+ * The data to display in the tree.
8
+ */
9
+ data: unknown;
10
+ /**
11
+ * The default expand level.
12
+ */
13
+ defaultExpandedDepth?: number;
14
+ }
15
+ export declare const JsonTreeViewRoot: ForwardRefExoticComponent<JsonTreeViewRootProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,44 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { getRootNode, nodeToString, nodeToValue } from '@zag-js/json-tree-utils';
4
+ import { forwardRef, useMemo } from 'react';
5
+ import { createSplitProps } from '../../utils/create-split-props.js';
6
+ import { createTreeCollection } from '../collection/tree-collection.js';
7
+ import { TreeViewRoot } from '../tree-view/tree-view-root.js';
8
+ import { getBranchValues } from './get-branch-value.js';
9
+ import { JsonTreeViewPropsProvider } from './json-tree-view-props-context.js';
10
+
11
+ const splitJsonTreeViewProps = createSplitProps();
12
+ const JsonTreeViewRoot = forwardRef((props, ref) => {
13
+ const [jsonTreeProps, localProps] = splitJsonTreeViewProps(props, [
14
+ "maxPreviewItems",
15
+ "collapseStringsAfterLength",
16
+ "quotesOnKeys",
17
+ "groupArraysAfterLength",
18
+ "showNonenumerable"
19
+ ]);
20
+ const { data, defaultExpandedDepth, ...restProps } = localProps;
21
+ const collection = useMemo(() => {
22
+ return createTreeCollection({
23
+ nodeToValue,
24
+ nodeToString,
25
+ rootNode: getRootNode(data)
26
+ });
27
+ }, [data]);
28
+ const defaultExpandedValue = useMemo(() => {
29
+ return defaultExpandedDepth != null ? getBranchValues(collection, defaultExpandedDepth) : void 0;
30
+ }, [collection, defaultExpandedDepth]);
31
+ return /* @__PURE__ */ jsx(JsonTreeViewPropsProvider, { value: jsonTreeProps, children: /* @__PURE__ */ jsx(
32
+ TreeViewRoot,
33
+ {
34
+ "data-scope": "json-tree-view",
35
+ collection,
36
+ defaultExpandedValue,
37
+ ...restProps,
38
+ ref
39
+ }
40
+ ) });
41
+ });
42
+ JsonTreeViewRoot.displayName = "JsonTreeViewRoot";
43
+
44
+ export { JsonTreeViewRoot };
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+ const react = require('react');
8
+ const createSplitProps = require('../../utils/create-split-props.cjs');
9
+ const treeViewTree = require('../tree-view/tree-view-tree.cjs');
10
+ const useTreeViewContext = require('../tree-view/use-tree-view-context.cjs');
11
+ const jsonTreeViewNode = require('./json-tree-view-node.cjs');
12
+
13
+ const splitTreeNodeProps = createSplitProps.createSplitProps();
14
+ const JsonTreeViewTree = react.forwardRef((props, ref) => {
15
+ const [nodeProps, treeProps] = splitTreeNodeProps(props, ["arrow", "indentGuide", "renderValue"]);
16
+ const tree = useTreeViewContext.useTreeViewContext();
17
+ const children = tree.collection.getNodeChildren(tree.collection.rootNode);
18
+ return /* @__PURE__ */ jsxRuntime.jsx(treeViewTree.TreeViewTree, { "data-scope": "json-tree-view", ...treeProps, ref, children: children.map((child, index) => /* @__PURE__ */ jsxRuntime.jsx(jsonTreeViewNode.JsonTreeViewNode, { node: child, indexPath: [index], ...nodeProps }, index)) });
19
+ });
20
+ JsonTreeViewTree.displayName = "JsonTreeViewTree";
21
+
22
+ exports.JsonTreeViewTree = JsonTreeViewTree;
@@ -0,0 +1,6 @@
1
+ import { TreeView } from '../tree-view';
2
+ import { JsonTreeViewNodeBaseProps } from './json-tree-view-node';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+ export interface JsonTreeViewTreeProps extends TreeView.TreeProps, JsonTreeViewNodeBaseProps {
5
+ }
6
+ export declare const JsonTreeViewTree: ForwardRefExoticComponent<JsonTreeViewTreeProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,6 @@
1
+ import { TreeView } from '../tree-view';
2
+ import { JsonTreeViewNodeBaseProps } from './json-tree-view-node';
3
+ import { ForwardRefExoticComponent, RefAttributes } from 'react';
4
+ export interface JsonTreeViewTreeProps extends TreeView.TreeProps, JsonTreeViewNodeBaseProps {
5
+ }
6
+ export declare const JsonTreeViewTree: ForwardRefExoticComponent<JsonTreeViewTreeProps & RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { createSplitProps } from '../../utils/create-split-props.js';
5
+ import { TreeViewTree } from '../tree-view/tree-view-tree.js';
6
+ import { useTreeViewContext } from '../tree-view/use-tree-view-context.js';
7
+ import { JsonTreeViewNode } from './json-tree-view-node.js';
8
+
9
+ const splitTreeNodeProps = createSplitProps();
10
+ const JsonTreeViewTree = forwardRef((props, ref) => {
11
+ const [nodeProps, treeProps] = splitTreeNodeProps(props, ["arrow", "indentGuide", "renderValue"]);
12
+ const tree = useTreeViewContext();
13
+ const children = tree.collection.getNodeChildren(tree.collection.rootNode);
14
+ return /* @__PURE__ */ jsx(TreeViewTree, { "data-scope": "json-tree-view", ...treeProps, ref, children: children.map((child, index) => /* @__PURE__ */ jsx(JsonTreeViewNode, { node: child, indexPath: [index], ...nodeProps }, index)) });
15
+ });
16
+ JsonTreeViewTree.displayName = "JsonTreeViewTree";
17
+
18
+ export { JsonTreeViewTree };
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsxRuntime = require('react/jsx-runtime');
7
+
8
+ const JsonTreeViewValueNode = (props) => {
9
+ const { node, renderValue } = props;
10
+ if (node.type === "text") {
11
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: renderValue?.(node) ?? node.value });
12
+ }
13
+ const Element = node.tagName;
14
+ return /* @__PURE__ */ jsxRuntime.jsx(
15
+ Element,
16
+ {
17
+ "data-root": node.properties.root ? "" : void 0,
18
+ "data-type": node.properties.nodeType,
19
+ "data-kind": node.properties.kind,
20
+ suppressHydrationWarning: true,
21
+ children: node.children.map((child, index) => /* @__PURE__ */ jsxRuntime.jsx(JsonTreeViewValueNode, { node: child, renderValue }, index))
22
+ }
23
+ );
24
+ };
25
+
26
+ exports.JsonTreeViewValueNode = JsonTreeViewValueNode;
@@ -0,0 +1,7 @@
1
+ import { JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ interface JsonTreeViewValueNodeProps {
3
+ node: JsonNodeHastElement;
4
+ renderValue?: (node: JsonNodeHastElement) => React.ReactNode;
5
+ }
6
+ export declare const JsonTreeViewValueNode: (props: JsonTreeViewValueNodeProps) => React.ReactNode;
7
+ export {};
@@ -0,0 +1,7 @@
1
+ import { JsonNodeHastElement } from '@zag-js/json-tree-utils';
2
+ interface JsonTreeViewValueNodeProps {
3
+ node: JsonNodeHastElement;
4
+ renderValue?: (node: JsonNodeHastElement) => React.ReactNode;
5
+ }
6
+ export declare const JsonTreeViewValueNode: (props: JsonTreeViewValueNodeProps) => React.ReactNode;
7
+ export {};
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { jsx, Fragment } from 'react/jsx-runtime';
3
+
4
+ const JsonTreeViewValueNode = (props) => {
5
+ const { node, renderValue } = props;
6
+ if (node.type === "text") {
7
+ return /* @__PURE__ */ jsx(Fragment, { children: renderValue?.(node) ?? node.value });
8
+ }
9
+ const Element = node.tagName;
10
+ return /* @__PURE__ */ jsx(
11
+ Element,
12
+ {
13
+ "data-root": node.properties.root ? "" : void 0,
14
+ "data-type": node.properties.nodeType,
15
+ "data-kind": node.properties.kind,
16
+ suppressHydrationWarning: true,
17
+ children: node.children.map((child, index) => /* @__PURE__ */ jsx(JsonTreeViewValueNode, { node: child, renderValue }, index))
18
+ }
19
+ );
20
+ };
21
+
22
+ export { JsonTreeViewValueNode };
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const jsonTreeViewRoot = require('./json-tree-view-root.cjs');
6
+ const jsonTreeViewRootProvider = require('./json-tree-view-root-provider.cjs');
7
+ const jsonTreeViewTree = require('./json-tree-view-tree.cjs');
8
+
9
+
10
+
11
+ exports.Root = jsonTreeViewRoot.JsonTreeViewRoot;
12
+ exports.RootProvider = jsonTreeViewRootProvider.JsonTreeViewRootProvider;
13
+ exports.Tree = jsonTreeViewTree.JsonTreeViewTree;
@@ -0,0 +1,3 @@
1
+ export { JsonTreeViewRoot as Root, type JsonTreeViewRootProps as RootProps } from './json-tree-view-root';
2
+ export { JsonTreeViewRootProvider as RootProvider, type JsonTreeViewRootProviderProps as RootProviderProps, } from './json-tree-view-root-provider';
3
+ export { JsonTreeViewTree as Tree, type JsonTreeViewTreeProps as TreeProps } from './json-tree-view-tree';
@@ -0,0 +1,3 @@
1
+ export { JsonTreeViewRoot as Root, type JsonTreeViewRootProps as RootProps } from './json-tree-view-root';
2
+ export { JsonTreeViewRootProvider as RootProvider, type JsonTreeViewRootProviderProps as RootProviderProps, } from './json-tree-view-root-provider';
3
+ export { JsonTreeViewTree as Tree, type JsonTreeViewTreeProps as TreeProps } from './json-tree-view-tree';
@@ -0,0 +1,3 @@
1
+ export { JsonTreeViewRoot as Root } from './json-tree-view-root.js';
2
+ export { JsonTreeViewRootProvider as RootProvider } from './json-tree-view-root-provider.js';
3
+ export { JsonTreeViewTree as Tree } from './json-tree-view-tree.js';
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
+
6
+ const jsonTreeUtils = require('@zag-js/json-tree-utils');
7
+ const react = require('react');
8
+ const treeCollection = require('../collection/tree-collection.cjs');
9
+ const useTreeView = require('../tree-view/use-tree-view.cjs');
10
+ const getBranchValue = require('./get-branch-value.cjs');
11
+
12
+ const useJsonTreeView = (props) => {
13
+ const { data, defaultExpandedDepth = 1, ...restProps } = props;
14
+ const collection = react.useMemo(() => {
15
+ return treeCollection.createTreeCollection({
16
+ nodeToValue: jsonTreeUtils.nodeToValue,
17
+ nodeToString: jsonTreeUtils.nodeToString,
18
+ rootNode: jsonTreeUtils.getRootNode(data)
19
+ });
20
+ }, [data]);
21
+ const defaultExpandedValue = react.useMemo(() => {
22
+ return defaultExpandedDepth != null ? getBranchValue.getBranchValues(collection, defaultExpandedDepth) : void 0;
23
+ }, [collection, defaultExpandedDepth]);
24
+ return useTreeView.useTreeView({
25
+ defaultExpandedValue,
26
+ ...restProps,
27
+ collection,
28
+ typeahead: false
29
+ });
30
+ };
31
+
32
+ exports.useJsonTreeView = useJsonTreeView;
@@ -0,0 +1,9 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { UseTreeViewProps, UseTreeViewReturn } from '../tree-view';
3
+ export interface UseJsonTreeViewProps extends Omit<UseTreeViewProps<JsonNode>, 'collection'> {
4
+ data: unknown;
5
+ defaultExpandedDepth?: number;
6
+ }
7
+ export interface UseJsonTreeViewReturn extends UseTreeViewReturn<JsonNode> {
8
+ }
9
+ export declare const useJsonTreeView: (props: UseJsonTreeViewProps) => UseTreeViewReturn<JsonNode<any>>;
@@ -0,0 +1,9 @@
1
+ import { JsonNode } from '@zag-js/json-tree-utils';
2
+ import { UseTreeViewProps, UseTreeViewReturn } from '../tree-view';
3
+ export interface UseJsonTreeViewProps extends Omit<UseTreeViewProps<JsonNode>, 'collection'> {
4
+ data: unknown;
5
+ defaultExpandedDepth?: number;
6
+ }
7
+ export interface UseJsonTreeViewReturn extends UseTreeViewReturn<JsonNode> {
8
+ }
9
+ export declare const useJsonTreeView: (props: UseJsonTreeViewProps) => UseTreeViewReturn<JsonNode<any>>;
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+ import { getRootNode, nodeToString, nodeToValue } from '@zag-js/json-tree-utils';
3
+ import { useMemo } from 'react';
4
+ import { createTreeCollection } from '../collection/tree-collection.js';
5
+ import { useTreeView } from '../tree-view/use-tree-view.js';
6
+ import { getBranchValues } from './get-branch-value.js';
7
+
8
+ const useJsonTreeView = (props) => {
9
+ const { data, defaultExpandedDepth = 1, ...restProps } = props;
10
+ const collection = useMemo(() => {
11
+ return createTreeCollection({
12
+ nodeToValue,
13
+ nodeToString,
14
+ rootNode: getRootNode(data)
15
+ });
16
+ }, [data]);
17
+ const defaultExpandedValue = useMemo(() => {
18
+ return defaultExpandedDepth != null ? getBranchValues(collection, defaultExpandedDepth) : void 0;
19
+ }, [collection, defaultExpandedDepth]);
20
+ return useTreeView({
21
+ defaultExpandedValue,
22
+ ...restProps,
23
+ collection,
24
+ typeahead: false
25
+ });
26
+ };
27
+
28
+ export { useJsonTreeView };