@dxos/plugin-explorer 0.8.4-main.ead640a → 0.8.4-main.effb148878
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/LICENSE +102 -5
- package/dist/lib/neutral/ExplorerArticle-LLNHXWNG.mjs +420 -0
- package/dist/lib/neutral/ExplorerArticle-LLNHXWNG.mjs.map +7 -0
- package/dist/lib/neutral/ExplorerPlugin.mjs +10 -0
- package/dist/lib/neutral/capabilities/index.mjs +11 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/chunk-7FSP4SPO.mjs +69 -0
- package/dist/lib/neutral/chunk-7FSP4SPO.mjs.map +7 -0
- package/dist/lib/neutral/chunk-CWN2BELW.mjs +287 -0
- package/dist/lib/neutral/chunk-CWN2BELW.mjs.map +7 -0
- package/dist/lib/neutral/chunk-GRJXLL4Z.mjs +25 -0
- package/dist/lib/neutral/chunk-GRJXLL4Z.mjs.map +7 -0
- package/dist/lib/neutral/chunk-IKHJV3Q4.mjs +20 -0
- package/dist/lib/neutral/chunk-IKHJV3Q4.mjs.map +7 -0
- package/dist/lib/neutral/chunk-LL3PXKB5.mjs +40 -0
- package/dist/lib/neutral/chunk-LL3PXKB5.mjs.map +7 -0
- package/dist/lib/{browser/chunk-MOM5KCKC.mjs → neutral/components/index.mjs} +882 -556
- package/dist/lib/neutral/components/index.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +9 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/neutral/create-object-F6TKVAGV.mjs +39 -0
- package/dist/lib/neutral/create-object-F6TKVAGV.mjs.map +7 -0
- package/dist/lib/neutral/hooks/index.mjs +45 -0
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +14 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/{browser → neutral}/meta.mjs +1 -1
- package/dist/lib/neutral/plugin.mjs +12 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-APBW2VQG.mjs +26 -0
- package/dist/lib/neutral/react-surface-APBW2VQG.mjs.map +7 -0
- package/dist/lib/neutral/testing/index.mjs +193 -0
- package/dist/lib/neutral/testing/index.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +33 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/types/index.mjs +1 -2
- package/dist/types/data/cities.d.ts +4 -4
- package/dist/types/data/cities.d.ts.map +1 -1
- package/dist/types/data/countries-110m.d.ts +19 -22
- package/dist/types/data/countries-110m.d.ts.map +1 -1
- package/dist/types/src/ExplorerPlugin.d.ts +3 -1
- package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
- package/dist/types/src/ExplorerPlugin.test.d.ts +2 -0
- package/dist/types/src/ExplorerPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/create-object.d.ts +11 -0
- package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +8 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +3 -2
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Chart/Chart.d.ts +1 -1
- package/dist/types/src/components/Chart/Chart.d.ts.map +1 -1
- package/dist/types/src/components/Chart/Chart.stories.d.ts +4 -1
- package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
- package/dist/types/src/components/Globe/Globe.d.ts +1 -1
- package/dist/types/src/components/Globe/Globe.d.ts.map +1 -1
- package/dist/types/src/components/Globe/Globe.stories.d.ts +5 -2
- package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/CanvasForceGraph.d.ts +13 -0
- package/dist/types/src/components/Graph/CanvasForceGraph.d.ts.map +1 -0
- package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts +17 -0
- package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts.map +1 -0
- package/dist/types/src/components/Graph/ForceGraph.d.ts +12 -5
- package/dist/types/src/components/Graph/ForceGraph.d.ts.map +1 -1
- package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +4 -2
- package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
- package/dist/types/src/components/Graph/{adapter.d.ts → graph-adapter.d.ts} +2 -2
- package/dist/types/src/components/Graph/graph-adapter.d.ts.map +1 -0
- package/dist/types/src/components/Graph/index.d.ts +1 -1
- package/dist/types/src/components/Graph/index.d.ts.map +1 -1
- package/dist/types/src/components/Lattice/Lattice.d.ts +20 -0
- package/dist/types/src/components/Lattice/Lattice.d.ts.map +1 -0
- package/dist/types/src/components/Lattice/Lattice.stories.d.ts +8 -0
- package/dist/types/src/components/Lattice/Lattice.stories.d.ts.map +1 -0
- package/dist/types/src/components/Lattice/index.d.ts +2 -0
- package/dist/types/src/components/Lattice/index.d.ts.map +1 -0
- package/dist/types/src/components/Tree/EdgeBundling.stories.d.ts +21 -0
- package/dist/types/src/components/Tree/EdgeBundling.stories.d.ts.map +1 -0
- package/dist/types/src/components/Tree/Tree.d.ts +20 -23
- package/dist/types/src/components/Tree/Tree.d.ts.map +1 -1
- package/dist/types/src/components/Tree/Tree.stories.d.ts +5 -12
- package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tree/index.d.ts +2 -0
- package/dist/types/src/components/Tree/index.d.ts.map +1 -1
- package/dist/types/src/components/Tree/layout/HierarchicalEdgeBundling.d.ts +37 -2
- package/dist/types/src/components/Tree/layout/HierarchicalEdgeBundling.d.ts.map +1 -1
- package/dist/types/src/components/Tree/layout/RadialTree.d.ts +35 -2
- package/dist/types/src/components/Tree/layout/RadialTree.d.ts.map +1 -1
- package/dist/types/src/components/Tree/layout/TidyTree.d.ts +24 -2
- package/dist/types/src/components/Tree/layout/TidyTree.d.ts.map +1 -1
- package/dist/types/src/components/Tree/layout/hierarchy.d.ts +17 -0
- package/dist/types/src/components/Tree/layout/hierarchy.d.ts.map +1 -0
- package/dist/types/src/components/Tree/layout/index.d.ts +5 -4
- package/dist/types/src/components/Tree/layout/index.d.ts.map +1 -1
- package/dist/types/src/components/Tree/layout/slots.d.ts +7 -0
- package/dist/types/src/components/Tree/layout/slots.d.ts.map +1 -0
- package/dist/types/src/components/Tree/layout/useContainerSize.d.ts +15 -0
- package/dist/types/src/components/Tree/layout/useContainerSize.d.ts.map +1 -0
- package/dist/types/src/components/Tree/types/tree.d.ts +45 -22
- package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
- package/dist/types/src/components/Tree/types/types.d.ts +14 -4
- package/dist/types/src/components/Tree/types/types.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -4
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.d.ts +13 -0
- package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.d.ts.map +1 -0
- package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.stories.d.ts +30 -0
- package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ExplorerArticle/Visualization.d.ts +24 -0
- package/dist/types/src/containers/ExplorerArticle/Visualization.d.ts.map +1 -0
- package/dist/types/src/containers/ExplorerArticle/experimental.stories.d.ts +7 -0
- package/dist/types/src/containers/ExplorerArticle/experimental.stories.d.ts.map +1 -0
- package/dist/types/src/containers/ExplorerArticle/index.d.ts +2 -0
- package/dist/types/src/containers/ExplorerArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/ExplorerArticle/variants.d.ts +9 -0
- package/dist/types/src/containers/ExplorerArticle/variants.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +3 -0
- package/dist/types/src/containers/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useGraphModel.d.ts +2 -2
- package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -2
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +3 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/{components/Tree/testing → testing}/generator.d.ts +1 -1
- package/dist/types/src/testing/generator.d.ts.map +1 -0
- package/dist/types/src/testing/index.d.ts +4 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/types/src/testing/relations.d.ts +47 -0
- package/dist/types/src/testing/relations.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +31 -22
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/ExplorerAction.d.ts +1 -18
- package/dist/types/src/types/ExplorerAction.d.ts.map +1 -1
- package/dist/types/src/types/Graph.d.ts +14 -25
- package/dist/types/src/types/Graph.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +3 -0
- package/dist/types/src/util/index.d.ts.map +1 -0
- package/dist/types/src/util/node-color.d.ts +13 -0
- package/dist/types/src/util/node-color.d.ts.map +1 -0
- package/dist/types/src/{components → util}/plot.d.ts +1 -1
- package/dist/types/src/util/plot.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +114 -61
- package/src/ExplorerPlugin.test.ts +26 -0
- package/src/ExplorerPlugin.tsx +15 -56
- package/src/capabilities/create-object.ts +36 -0
- package/src/capabilities/index.ts +3 -3
- package/src/capabilities/react-surface.tsx +24 -19
- package/src/components/Chart/Chart.stories.tsx +16 -23
- package/src/components/Chart/Chart.tsx +1 -1
- package/src/components/Globe/Globe.stories.tsx +19 -22
- package/src/components/Globe/Globe.tsx +1 -1
- package/src/components/Graph/CanvasForceGraph.stories.tsx +83 -0
- package/src/components/Graph/CanvasForceGraph.tsx +124 -0
- package/src/components/Graph/ForceGraph.stories.tsx +83 -41
- package/src/components/Graph/ForceGraph.tsx +105 -85
- package/src/components/Graph/{adapter.ts → graph-adapter.ts} +14 -8
- package/src/components/Graph/index.ts +1 -1
- package/src/components/Lattice/Lattice.stories.tsx +90 -0
- package/src/components/Lattice/Lattice.tsx +182 -0
- package/src/components/Lattice/index.ts +5 -0
- package/src/components/Tree/EdgeBundling.stories.tsx +144 -0
- package/src/components/Tree/Tree.stories.tsx +20 -38
- package/src/components/Tree/Tree.tsx +69 -95
- package/src/components/Tree/index.ts +2 -0
- package/src/components/Tree/layout/HierarchicalEdgeBundling.tsx +335 -0
- package/src/components/Tree/layout/RadialTree.tsx +242 -0
- package/src/components/Tree/layout/TidyTree.tsx +246 -0
- package/src/components/Tree/layout/hierarchy.ts +32 -0
- package/src/components/Tree/layout/index.ts +5 -5
- package/src/components/Tree/layout/slots.ts +19 -0
- package/src/components/Tree/layout/useContainerSize.ts +43 -0
- package/src/components/Tree/types/tree.test.ts +8 -7
- package/src/components/Tree/types/tree.ts +42 -26
- package/src/components/Tree/types/types.ts +38 -29
- package/src/components/index.ts +1 -4
- package/src/containers/ExplorerArticle/ExplorerArticle.stories.tsx +142 -0
- package/src/containers/ExplorerArticle/ExplorerArticle.tsx +112 -0
- package/src/containers/ExplorerArticle/Visualization.tsx +497 -0
- package/src/containers/ExplorerArticle/experimental.stories.tsx +446 -0
- package/src/containers/ExplorerArticle/index.ts +5 -0
- package/src/containers/ExplorerArticle/variants.ts +37 -0
- package/src/containers/index.ts +7 -0
- package/src/hooks/useGraphModel.ts +25 -14
- package/src/index.ts +1 -4
- package/src/meta.ts +28 -5
- package/src/plugin.ts +9 -0
- package/src/{components/Tree/testing → testing}/generator.ts +5 -3
- package/src/testing/index.ts +9 -0
- package/src/testing/relations.ts +192 -0
- package/src/translations.ts +16 -13
- package/src/types/ExplorerAction.ts +10 -19
- package/src/types/Graph.ts +25 -24
- package/src/typings.d.ts +8 -0
- package/src/util/index.ts +6 -0
- package/src/util/node-color.ts +23 -0
- package/src/{components → util}/plot.ts +16 -4
- package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs +0 -50
- package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs.map +0 -7
- package/dist/lib/browser/chunk-2DGFNLRO.mjs +0 -19
- package/dist/lib/browser/chunk-2DGFNLRO.mjs.map +0 -7
- package/dist/lib/browser/chunk-2MKBRIUT.mjs +0 -31
- package/dist/lib/browser/chunk-2MKBRIUT.mjs.map +0 -7
- package/dist/lib/browser/chunk-BZ65T5M3.mjs +0 -79
- package/dist/lib/browser/chunk-BZ65T5M3.mjs.map +0 -7
- package/dist/lib/browser/chunk-MOM5KCKC.mjs.map +0 -7
- package/dist/lib/browser/chunk-NXGP6NTP.mjs +0 -203
- package/dist/lib/browser/chunk-NXGP6NTP.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -119
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-K57C3LIX.mjs +0 -31
- package/dist/lib/browser/intent-resolver-K57C3LIX.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/react-surface-OPBND5W3.mjs +0 -35
- package/dist/lib/browser/react-surface-OPBND5W3.mjs.map +0 -7
- package/dist/lib/node-esm/ExplorerContainer-FRTDXZI5.mjs +0 -51
- package/dist/lib/node-esm/ExplorerContainer-FRTDXZI5.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3ODK27PU.mjs +0 -33
- package/dist/lib/node-esm/chunk-3ODK27PU.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6JACZE7E.mjs +0 -205
- package/dist/lib/node-esm/chunk-6JACZE7E.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ES6AOMCY.mjs +0 -80
- package/dist/lib/node-esm/chunk-ES6AOMCY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PX6LHR2N.mjs +0 -21
- package/dist/lib/node-esm/chunk-PX6LHR2N.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZCV4U7LT.mjs +0 -11343
- package/dist/lib/node-esm/chunk-ZCV4U7LT.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -120
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-BLPPTTEY.mjs +0 -32
- package/dist/lib/node-esm/intent-resolver-BLPPTTEY.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/meta.mjs +0 -9
- package/dist/lib/node-esm/react-surface-HCKQSHKJ.mjs +0 -36
- package/dist/lib/node-esm/react-surface-HCKQSHKJ.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -12
- package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/components/ExplorerContainer.d.ts +0 -9
- package/dist/types/src/components/ExplorerContainer.d.ts.map +0 -1
- package/dist/types/src/components/Graph/D3ForceGraph.d.ts +0 -14
- package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +0 -1
- package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +0 -15
- package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +0 -1
- package/dist/types/src/components/Graph/adapter.d.ts.map +0 -1
- package/dist/types/src/components/Graph/testing.d.ts +0 -14
- package/dist/types/src/components/Graph/testing.d.ts.map +0 -1
- package/dist/types/src/components/Tree/testing/generator.d.ts.map +0 -1
- package/dist/types/src/components/Tree/testing/index.d.ts +0 -2
- package/dist/types/src/components/Tree/testing/index.d.ts.map +0 -1
- package/dist/types/src/components/plot.d.ts.map +0 -1
- package/src/capabilities/intent-resolver.ts +0 -21
- package/src/components/ExplorerContainer.tsx +0 -54
- package/src/components/Graph/D3ForceGraph.stories.tsx +0 -77
- package/src/components/Graph/D3ForceGraph.tsx +0 -101
- package/src/components/Graph/testing.ts +0 -55
- package/src/components/Tree/layout/HierarchicalEdgeBundling.ts +0 -162
- package/src/components/Tree/layout/RadialTree.ts +0 -94
- package/src/components/Tree/layout/TidyTree.ts +0 -101
- package/src/components/Tree/testing/index.ts +0 -5
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ExplorerPlugin.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{browser/meta.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
- /package/dist/lib/{node-esm → neutral}/meta.mjs.map +0 -0
- /package/dist/lib/{node-esm → neutral}/types/index.mjs.map +0 -0
|
@@ -1,4 +1,37 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ThemedClassName } from '@dxos/react-ui';
|
|
3
|
+
import { type TreeNode } from '../types';
|
|
4
|
+
import { type TreeLayoutSlots } from './slots';
|
|
5
|
+
export type RadialTreeProps = ThemedClassName<{
|
|
6
|
+
data: TreeNode;
|
|
7
|
+
label?: (d: TreeNode) => string;
|
|
8
|
+
slots?: TreeLayoutSlots;
|
|
9
|
+
/** Node radius. */
|
|
10
|
+
r?: number;
|
|
11
|
+
/** Optional padding (in screen pixels) reserved around the radial layout. */
|
|
12
|
+
padding?: number;
|
|
13
|
+
/** Initial set of collapsed node ids. */
|
|
14
|
+
initialCollapsed?: Iterable<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Use `d3.cluster` (all leaves equidistant from center) instead of `d3.tree`.
|
|
17
|
+
* Matches https://observablehq.com/@d3/radial-cluster.
|
|
18
|
+
*/
|
|
19
|
+
cluster?: boolean;
|
|
20
|
+
/** Notified when the user clicks a node. */
|
|
21
|
+
onNodeClick?: (node: TreeNode) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Notified on pointerenter (and `null` on pointerleave) for nodes. Used to wire previews
|
|
24
|
+
* (dispatch `DxAnchorActivate`). The event target on enter is the hovered circle — dispatch
|
|
25
|
+
* from it so the preview anchors there.
|
|
26
|
+
*/
|
|
27
|
+
onNodeHover?: (node: TreeNode | null, event?: MouseEvent) => void;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Radial tree layout based on the D3 reference component.
|
|
31
|
+
* https://observablehq.com/@d3/radial-tree-component
|
|
32
|
+
*
|
|
33
|
+
* Click a node with children to toggle collapse / expand.
|
|
34
|
+
*/
|
|
35
|
+
export declare const RadialTree: ({ classNames, data, label, slots, r, padding, initialCollapsed, cluster, onNodeClick, onNodeHover, }: RadialTreeProps) => React.JSX.Element;
|
|
3
36
|
export default RadialTree;
|
|
4
37
|
//# sourceMappingURL=RadialTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadialTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/RadialTree.
|
|
1
|
+
{"version":3,"file":"RadialTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/RadialTree.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAKvE,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,mBAAmB;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,yGAWpB,eAAe,sBA6DjB,CAAC;eAsHa,UAAU"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type ThemedClassName } from '@dxos/react-ui';
|
|
3
|
+
import { type TreeNode } from '../types';
|
|
4
|
+
import { type TreeLayoutSlots } from './slots';
|
|
5
|
+
export type TidyTreeProps = ThemedClassName<{
|
|
6
|
+
data: TreeNode;
|
|
7
|
+
label?: (d: TreeNode) => string;
|
|
8
|
+
slots?: TreeLayoutSlots;
|
|
9
|
+
/** Node radius. */
|
|
10
|
+
r?: number;
|
|
11
|
+
/** Margin in screen pixels reserved around the layout. */
|
|
12
|
+
margin?: number;
|
|
13
|
+
/** Initial set of collapsed node ids. */
|
|
14
|
+
initialCollapsed?: Iterable<string>;
|
|
15
|
+
/** Notified when the user clicks a node. */
|
|
16
|
+
onNodeClick?: (node: TreeNode) => void;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Tidy (horizontal) tree layout based on the D3 reference component.
|
|
20
|
+
* https://observablehq.com/@d3/tree-component
|
|
21
|
+
*
|
|
22
|
+
* Click a node with children to toggle collapse / expand.
|
|
23
|
+
*/
|
|
24
|
+
export declare const TidyTree: ({ classNames, data, label, slots, r, margin, initialCollapsed, onNodeClick, }: TidyTreeProps) => React.JSX.Element;
|
|
3
25
|
export default TidyTree;
|
|
4
26
|
//# sourceMappingURL=TidyTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TidyTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/TidyTree.
|
|
1
|
+
{"version":3,"file":"TidyTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/TidyTree.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAKvE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,mBAAmB;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACxC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,kFASlB,aAAa,sBA0Df,CAAC;eA4Ia,QAAQ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type HierarchyNode } from 'd3';
|
|
2
|
+
import { type TreeNode } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Build a d3 hierarchy from a TreeNode, pruning children of nodes whose ids are in `collapsed`.
|
|
5
|
+
* Nodes that have children but are collapsed retain their identity in the hierarchy and can be
|
|
6
|
+
* distinguished by `node._children` (the original list).
|
|
7
|
+
*/
|
|
8
|
+
export declare const buildHierarchy: (data: TreeNode, collapsed?: Set<string>) => HierarchyNode<TreeNode>;
|
|
9
|
+
/**
|
|
10
|
+
* True when the node has children that have been hidden via collapse.
|
|
11
|
+
*/
|
|
12
|
+
export declare const isCollapsed: (data: TreeNode, collapsed: Set<string>) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* True when the node has no children at all (a real leaf, not a collapsed branch).
|
|
15
|
+
*/
|
|
16
|
+
export declare const isLeaf: (data: TreeNode) => boolean;
|
|
17
|
+
//# sourceMappingURL=hierarchy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/hierarchy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAA4B,MAAM,IAAI,CAAC;AAElE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,QAAQ,cAAa,GAAG,CAAC,MAAM,CAAC,KAAe,aAAa,CAAC,QAAQ,CAOzG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,SAAU,QAAQ,aAAa,GAAG,CAAC,MAAM,CAAC,KAAG,OACX,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,OAAiC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
1
|
+
export * from './HierarchicalEdgeBundling';
|
|
2
|
+
export * from './RadialTree';
|
|
3
|
+
export * from './TidyTree';
|
|
4
|
+
export * from './hierarchy';
|
|
5
|
+
export * from './slots';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/index.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/slots.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAQpC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Track an element's content-box size via ResizeObserver.
|
|
3
|
+
* Returns the most recently observed `{ width, height }` plus a callback ref to attach to the element.
|
|
4
|
+
*
|
|
5
|
+
* Why not `react-resize-detector` directly: its `targetRef` API doesn't pick up a ref whose
|
|
6
|
+
* `.current` is set later than the hook runs, and the returned-`ref` API forces the consumer to
|
|
7
|
+
* forward a callback ref through their own component — which is awkward for class refs.
|
|
8
|
+
* This hook returns a setter so the consumer assigns it directly to `<div ref={setRef}>`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useContainerSize: () => {
|
|
11
|
+
setRef: (el: HTMLDivElement | null) => void;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useContainerSize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContainerSize.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/useContainerSize.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAO;IAClC,MAAM,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAwBhB,CAAC"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import * as Schema from 'effect/Schema';
|
|
2
|
-
import { Key, Type } from '@dxos/echo';
|
|
2
|
+
import { Key, Obj, Ref, Type } from '@dxos/echo';
|
|
3
3
|
export declare const TreeNodeType: Schema.mutable<Schema.Struct<{
|
|
4
4
|
id: import("@dxos/keys").ObjectIdClass;
|
|
5
5
|
children: Schema.mutable<Schema.Array$<import("@dxos/keys").ObjectIdClass>>;
|
|
6
6
|
data: Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
|
|
7
|
-
ref: Schema.optional<
|
|
8
|
-
[x: string]: any;
|
|
9
|
-
|
|
10
|
-
}, never>>>;
|
|
7
|
+
ref: Schema.optional<Ref.RefSchema<{
|
|
8
|
+
readonly [x: string]: any;
|
|
9
|
+
} & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown>>;
|
|
11
10
|
}>>;
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
id: import("@dxos/keys").ObjectIdClass;
|
|
18
|
-
children: Schema.mutable<Schema.Array$<import("@dxos/keys").ObjectIdClass>>;
|
|
19
|
-
data: Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
|
|
20
|
-
ref: Schema.optional<Type.ref<Schema.Schema<Type.Expando, {
|
|
21
|
-
[x: string]: any;
|
|
11
|
+
export type TreeNodeType = Schema.Schema.Type<typeof TreeNodeType>;
|
|
12
|
+
export declare const TreeType: Type.Obj<{
|
|
13
|
+
readonly root: string;
|
|
14
|
+
readonly nodes: {
|
|
15
|
+
[x: string]: {
|
|
22
16
|
id: string;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
children: string[];
|
|
18
|
+
data: {
|
|
19
|
+
[x: string]: any;
|
|
20
|
+
};
|
|
21
|
+
ref?: import("@dxos/echo/internal").Ref<{
|
|
22
|
+
readonly [x: string]: any;
|
|
23
|
+
} & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}, Schema.Struct.Fields>;
|
|
27
|
+
export type TreeType = Type.InstanceType<typeof TreeType>;
|
|
28
28
|
/**
|
|
29
29
|
* Wrapper object for tree.
|
|
30
30
|
*/
|
|
@@ -32,9 +32,32 @@ export declare class Tree {
|
|
|
32
32
|
static create: () => TreeType;
|
|
33
33
|
private _tree;
|
|
34
34
|
constructor(tree?: TreeType);
|
|
35
|
-
get tree():
|
|
35
|
+
get tree(): {
|
|
36
|
+
readonly root: string;
|
|
37
|
+
readonly nodes: {
|
|
38
|
+
[x: string]: {
|
|
39
|
+
id: string;
|
|
40
|
+
children: string[];
|
|
41
|
+
data: {
|
|
42
|
+
[x: string]: any;
|
|
43
|
+
};
|
|
44
|
+
ref?: import("@dxos/echo/internal").Ref<{
|
|
45
|
+
readonly [x: string]: any;
|
|
46
|
+
} & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
} & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object>;
|
|
36
50
|
get size(): number;
|
|
37
|
-
get root():
|
|
51
|
+
get root(): {
|
|
52
|
+
id: string;
|
|
53
|
+
children: string[];
|
|
54
|
+
data: {
|
|
55
|
+
[x: string]: any;
|
|
56
|
+
};
|
|
57
|
+
ref?: import("@dxos/echo/internal").Ref<{
|
|
58
|
+
readonly [x: string]: any;
|
|
59
|
+
} & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
|
|
60
|
+
};
|
|
38
61
|
/**
|
|
39
62
|
* Recursively traverse the tree until the callback returns a value.
|
|
40
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMtD,eAAO,MAAM,YAAY;;;;;;;GAKF,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;AAEnE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;wBAG4C,CAAC;AAElE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE1D;;GAEG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,MAAM,QAAO,QAAQ,CAY1B;IAEF,OAAO,CAAC,KAAK,CAAW;IAExB,YAAY,IAAI,CAAC,EAAE,QAAQ,EAE1B;IAED,IAAI,IAAI;;;;;;;;;;;;;;4FAEP;IAGD,IAAI,IAAI,WAEP;IAED,IAAI,IAAI;;;;;;;;;MAEP;IAMD;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EACzD,IAAI,GAAE,GAAG,CAAC,QAA0B,EACpC,KAAK,SAAI,GACR,CAAC,GAAG,IAAI,CAaV;IAED,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY,CAItC;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAErD;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI,CAQjD;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS,CAiBzE;IAED;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS,CAe7E;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAQ9D;IAMD;;OAEG;IACH,KAAK,IAAI,IAAI,CAQZ;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAY/E;IAED;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY,GAAG,SAAS,CAiB3E;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAa1E;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAgBnC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CA6BrC;CACF"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
|
|
1
|
+
import { type Key } from '@dxos/echo';
|
|
2
|
+
import { type TreeType } from './tree';
|
|
3
|
+
/**
|
|
4
|
+
* In-memory tree shape used by the d3 layouts.
|
|
5
|
+
* `data` carries through to layout callbacks (e.g. hover/inspect) — typically an ECHO object on leaves.
|
|
6
|
+
*/
|
|
7
|
+
export type TreeNode<TData = unknown> = {
|
|
3
8
|
id: string;
|
|
4
9
|
label?: string;
|
|
5
|
-
|
|
10
|
+
data?: TData;
|
|
11
|
+
children?: TreeNode<TData>[];
|
|
6
12
|
};
|
|
7
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Convert an ECHO `TreeType` (id-keyed node map) into a nested `TreeNode` hierarchy.
|
|
15
|
+
* Returns `undefined` if the root id is missing — the tree is then incomplete and shouldn't render.
|
|
16
|
+
*/
|
|
17
|
+
export declare const treeTypeToTreeNode: (tree: TreeType, rootId?: Key.ObjectId, visited?: Set<string>) => TreeNode | undefined;
|
|
8
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,GAAG,OAAO,IAAI;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SACvB,QAAQ,WACN,GAAG,CAAC,QAAQ,YACX,GAAG,CAAC,MAAM,CAAC,KACnB,QAAQ,GAAG,SAkBb,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
export declare const ExplorerContainer: import("react").LazyExoticComponent<({ role, view }: {
|
|
2
|
-
role: string;
|
|
3
|
-
view: import("@dxos/schema").View;
|
|
4
|
-
}) => import("react").JSX.Element | null>;
|
|
5
1
|
export * from './Chart';
|
|
6
2
|
export * from './Globe';
|
|
7
3
|
export * from './Graph';
|
|
4
|
+
export * from './Lattice';
|
|
8
5
|
export * from './Tree';
|
|
9
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type AppSurface } from '@dxos/app-toolkit/ui';
|
|
3
|
+
import { type View } from '@dxos/echo';
|
|
4
|
+
import '@dxos/react-ui-graph/styles/graph.css';
|
|
5
|
+
export type { ExplorerArticleVariant } from './variants';
|
|
6
|
+
export type ExplorerArticleProps = AppSurface.ObjectArticleProps<View.View>;
|
|
7
|
+
/**
|
|
8
|
+
* Thin wrapper: owns the query editor, the variant toggle, and the DxAnchor preview
|
|
9
|
+
* dispatch. The actual rendering — SVG projector swaps and the swarm canvas — lives in
|
|
10
|
+
* `Visualization`.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ExplorerArticle: ({ role, subject, variant }: ExplorerArticleProps) => React.JSX.Element | null;
|
|
13
|
+
//# sourceMappingURL=ExplorerArticle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExplorerArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/ExplorerArticle.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAoB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAQzD,OAAO,uCAAuC,CAAC;AAQ/C,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,eAAe,+BAAgC,oBAAoB,6BA+E/E,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import { type ExplorerArticleVariant } from './ExplorerArticle';
|
|
3
|
+
type StoryArgs = {
|
|
4
|
+
variant: ExplorerArticleVariant;
|
|
5
|
+
};
|
|
6
|
+
declare const meta: Meta<StoryArgs>;
|
|
7
|
+
export default meta;
|
|
8
|
+
type Story = StoryObj<StoryArgs>;
|
|
9
|
+
/**
|
|
10
|
+
* Default force-directed view (the production layout).
|
|
11
|
+
*/
|
|
12
|
+
export declare const Force: Story;
|
|
13
|
+
/**
|
|
14
|
+
* Radial cluster: every object on the perimeter, grouped by its schema, all under a single database root.
|
|
15
|
+
* Inspired by https://observablehq.com/@d3/radial-cluster.
|
|
16
|
+
*/
|
|
17
|
+
export declare const Cluster: Story;
|
|
18
|
+
/**
|
|
19
|
+
* Hierarchical edge bundling: same hierarchy as `cluster`, with bundled curves
|
|
20
|
+
* routed through the lowest common ancestor for every relation / ref in the space.
|
|
21
|
+
* Inspired by https://observablehq.com/@d3/hierarchical-edge-bundling.
|
|
22
|
+
*/
|
|
23
|
+
export declare const Bundle: Story;
|
|
24
|
+
/**
|
|
25
|
+
* Lattice: every object as a cell in a square-as-possible CSS grid, sorted by typename so
|
|
26
|
+
* objects of the same type cluster together. Each cell is colored by its typename.
|
|
27
|
+
*/
|
|
28
|
+
export declare const Lattice: Story;
|
|
29
|
+
export declare const Swarm: Story;
|
|
30
|
+
//# sourceMappingURL=ExplorerArticle.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExplorerArticle.stories.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/ExplorerArticle.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAkBjE,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMjF,KAAK,SAAS,GAAG;IAAE,OAAO,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAYrD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAmDzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type SpaceGraphModel } from '@dxos/schema';
|
|
3
|
+
import { type TreeNode } from '#components';
|
|
4
|
+
import { type ExplorerArticleVariant } from './variants';
|
|
5
|
+
export type VisualizationProps = {
|
|
6
|
+
variant: ExplorerArticleVariant;
|
|
7
|
+
model: SpaceGraphModel;
|
|
8
|
+
onNodeHover?: (node: TreeNode | null, event?: MouseEvent) => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Renders the active visualization variant.
|
|
12
|
+
*
|
|
13
|
+
* For SVG variants (force, cluster, bundle, lattice), one `<SVG.Graph>` instance is
|
|
14
|
+
* kept mounted; only the projector swaps. Each new projector receives the previous
|
|
15
|
+
* layout so node x/y survive the swap and the projector's `animate()` tweens to the
|
|
16
|
+
* new target.
|
|
17
|
+
*
|
|
18
|
+
* The `swarm` variant is canvas-based and uses a `FlockModel`. On entry, boids are
|
|
19
|
+
* seeded from `model.graph.nodes` with positions taken from the latest SVG layout
|
|
20
|
+
* (matched by node id). On exit, the boids' current positions are written back to
|
|
21
|
+
* `lastLayoutRef` so the next SVG projector starts from where the swarm left off.
|
|
22
|
+
*/
|
|
23
|
+
export declare const Visualization: ({ variant, model, onNodeHover }: VisualizationProps) => React.JSX.Element;
|
|
24
|
+
//# sourceMappingURL=Visualization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Visualization.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/Visualization.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAoB7F,OAAO,EAAuB,KAAK,eAAe,EAAuB,MAAM,cAAc,CAAC;AAE9F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,oCAAqC,kBAAkB,sBA8IhF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
2
|
+
declare const meta: Meta;
|
|
3
|
+
export default meta;
|
|
4
|
+
type Story = StoryObj;
|
|
5
|
+
export declare const PathProbeStory: Story;
|
|
6
|
+
export declare const PathInspectorStory: Story;
|
|
7
|
+
//# sourceMappingURL=experimental.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"experimental.stories.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/experimental.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjE,QAAA,MAAM,IAAI,EAAE,IAMX,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC;AA8RtB,eAAO,MAAM,cAAc,EAAE,KAG5B,CAAC;AAqIF,eAAO,MAAM,kBAAkB,EAAE,KAGhC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Visualization variants exposed by `ExplorerArticle`. */
|
|
2
|
+
export type ExplorerArticleVariant = 'force' | 'cluster' | 'bundle' | 'lattice' | 'swarm';
|
|
3
|
+
export declare const VARIANTS: {
|
|
4
|
+
value: ExplorerArticleVariant;
|
|
5
|
+
icon: string;
|
|
6
|
+
label: string;
|
|
7
|
+
}[];
|
|
8
|
+
export declare const isVariant: (value: unknown) => value is ExplorerArticleVariant;
|
|
9
|
+
//# sourceMappingURL=variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/variants.ts"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1F,eAAO,MAAM,QAAQ,EAAE;IAAE,KAAK,EAAE,sBAAsB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EA0BpF,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,OAAO,KAAG,KAAK,IAAI,sBACwD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/containers/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAQ,MAAM,OAAO,CAAC;AAEjD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,GAAG,CAA2C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Database, type Entity, type Filter } from '@dxos/echo';
|
|
2
2
|
import { SpaceGraphModel, type SpaceGraphModelOptions } from '@dxos/schema';
|
|
3
|
-
export declare const useGraphModel: (
|
|
3
|
+
export declare const useGraphModel: (db: Database.Database | undefined, filter?: Filter.Any | undefined, options?: SpaceGraphModelOptions, items?: readonly Entity.Unknown[]) => SpaceGraphModel | undefined;
|
|
4
4
|
//# sourceMappingURL=useGraphModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG5E,eAAO,MAAM,aAAa,OACpB,QAAQ,CAAC,QAAQ,GAAG,SAAS,WACxB,MAAM,CAAC,GAAG,GAAG,SAAS,YACrB,sBAAsB,UACxB,SAAS,MAAM,CAAC,OAAO,EAAE,KAChC,eAAe,GAAG,SA6BpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export declare const meta:
|
|
1
|
+
import { type Plugin } from '@dxos/app-framework';
|
|
2
|
+
export declare const meta: Plugin.Meta;
|
|
3
3
|
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IA8BzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,eAAO,MAAM,cAAc,4BAA6C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/testing/generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAqB,MAAM,0BAA0B,CAAC;AAEnE,KAAK,mBAAmB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAI7C;;GAEG;AACH,eAAO,MAAM,UAAU,UAAU,mBAAmB,EAAE,eAAoB,MAAM,MAAM,KAAG,IA+BxF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAKA,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type Space } from '@dxos/client/echo';
|
|
2
|
+
import { Obj } from '@dxos/echo';
|
|
3
|
+
import { type TypeSpec, type ValueGenerator } from '@dxos/schema/testing';
|
|
4
|
+
import { type BundleEdge } from '../components/Tree/layout';
|
|
5
|
+
import { type TreeNode } from '../components/Tree/types';
|
|
6
|
+
export type ConnectedOrgsResult = {
|
|
7
|
+
organizations: Obj.Any[];
|
|
8
|
+
people: Obj.Any[];
|
|
9
|
+
connections: Obj.Any[];
|
|
10
|
+
};
|
|
11
|
+
export type ConnectedOrgsOptions = {
|
|
12
|
+
organizationCount?: number;
|
|
13
|
+
personCount?: number;
|
|
14
|
+
connectionCount?: number;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Populate a space with Organizations, People, and HasConnection relations between organizations.
|
|
18
|
+
* Uses `createObjectFactory` to generate Org/Person properties from their `GeneratorAnnotation`s,
|
|
19
|
+
* then layers manual HasConnection relations on top — the connection schema is fixed
|
|
20
|
+
* (Org→Org) so it isn't a fit for the generator's reference inference.
|
|
21
|
+
*/
|
|
22
|
+
export declare const generateConnectedOrgs: (space: Space, generator: ValueGenerator, { organizationCount, personCount, connectionCount }?: ConnectedOrgsOptions) => Promise<ConnectedOrgsResult>;
|
|
23
|
+
/**
|
|
24
|
+
* Build a TreeNode hierarchy: Root → Sector → Organization (leaf).
|
|
25
|
+
* Organizations are deterministically bucketed into `SECTORS` so the demo has visible groups.
|
|
26
|
+
*/
|
|
27
|
+
export declare const buildOrgHierarchy: (organizations: Obj.Any[], sectors?: readonly string[]) => TreeNode;
|
|
28
|
+
export type GenerateOptions = {
|
|
29
|
+
spec?: TypeSpec[];
|
|
30
|
+
relations?: {
|
|
31
|
+
count: number;
|
|
32
|
+
kind: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Populate a space with a mixed dataset (Orgs, Pipelines, People) plus
|
|
37
|
+
* `HasRelationship` edges between random pairs of People.
|
|
38
|
+
*
|
|
39
|
+
* Used by the force-directed and canvas-force graph stories that want a
|
|
40
|
+
* heterogeneous typed dataset without caring about the precise shape of relations.
|
|
41
|
+
*/
|
|
42
|
+
export declare const generate: (space: Space, generator: ValueGenerator, { spec, relations }?: GenerateOptions) => Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Convert HasConnection relations into bundle edges between organization ids.
|
|
45
|
+
*/
|
|
46
|
+
export declare const connectionsToEdges: (connections: Obj.Any[]) => BundleEdge[];
|
|
47
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../src/testing/relations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAmB,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAI/F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UACzB,KAAK,aACD,cAAc,wDAC2C,oBAAoB,KACvF,OAAO,CAAC,mBAAmB,CAqC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,kBAAmB,GAAG,CAAC,GAAG,EAAE,YAAW,SAAS,MAAM,EAAE,KAAa,QAyBlG,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAsBF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,UACZ,KAAK,aACD,cAAc,wBAC8C,eAAe,kBAuBvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,GAAG,CAAC,GAAG,EAAE,KAAG,UAAU,EAerE,CAAC"}
|