@dxos/plugin-explorer 0.8.4-main.28f8d3d → 0.8.4-main.2c6827d

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 (128) hide show
  1. package/dist/lib/browser/ExplorerContainer-NOLLVUTE.mjs +50 -0
  2. package/dist/lib/browser/ExplorerContainer-NOLLVUTE.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-L4U4MPSZ.mjs → chunk-6BVXZQPP.mjs} +8 -10
  4. package/dist/lib/browser/chunk-6BVXZQPP.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-LGK64HLU.mjs → chunk-ARBGXQFH.mjs} +4 -4
  6. package/dist/lib/browser/{chunk-LGK64HLU.mjs.map → chunk-ARBGXQFH.mjs.map} +3 -3
  7. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  8. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-JDSUIUNR.mjs +80 -0
  10. package/dist/lib/browser/chunk-JDSUIUNR.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-UBHZGWZQ.mjs +24 -0
  12. package/dist/lib/browser/chunk-UBHZGWZQ.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +25 -18
  14. package/dist/lib/browser/index.mjs.map +3 -3
  15. package/dist/lib/browser/intent-resolver-YS5LZC3A.mjs +31 -0
  16. package/dist/lib/browser/intent-resolver-YS5LZC3A.mjs.map +7 -0
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/meta.mjs +2 -3
  19. package/dist/lib/browser/react-surface-BVTCOVLK.mjs +35 -0
  20. package/dist/lib/browser/react-surface-BVTCOVLK.mjs.map +7 -0
  21. package/dist/lib/browser/types/index.mjs +7 -6
  22. package/dist/lib/node-esm/{ExplorerContainer-AMYAVLO4.mjs → ExplorerContainer-N3S5KSUX.mjs} +19 -6
  23. package/dist/lib/node-esm/ExplorerContainer-N3S5KSUX.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-MCOXQ3ML.mjs → chunk-CRSVAZNA.mjs} +8 -10
  25. package/dist/lib/node-esm/chunk-CRSVAZNA.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  27. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  28. package/dist/lib/node-esm/chunk-MS72BATS.mjs +81 -0
  29. package/dist/lib/node-esm/chunk-MS72BATS.mjs.map +7 -0
  30. package/dist/lib/node-esm/{chunk-W4ZNCGOD.mjs → chunk-NPIP4VEH.mjs} +4 -4
  31. package/dist/lib/node-esm/{chunk-W4ZNCGOD.mjs.map → chunk-NPIP4VEH.mjs.map} +3 -3
  32. package/dist/lib/node-esm/{chunk-PIAXA43R.mjs → chunk-UXZM5VJB.mjs} +8 -5
  33. package/dist/lib/node-esm/chunk-UXZM5VJB.mjs.map +7 -0
  34. package/dist/lib/node-esm/index.mjs +25 -18
  35. package/dist/lib/node-esm/index.mjs.map +3 -3
  36. package/dist/lib/node-esm/intent-resolver-VCEC67WX.mjs +32 -0
  37. package/dist/lib/node-esm/intent-resolver-VCEC67WX.mjs.map +7 -0
  38. package/dist/lib/node-esm/meta.json +1 -1
  39. package/dist/lib/node-esm/meta.mjs +2 -3
  40. package/dist/lib/node-esm/react-surface-4HFEX52O.mjs +36 -0
  41. package/dist/lib/node-esm/react-surface-4HFEX52O.mjs.map +7 -0
  42. package/dist/lib/node-esm/types/index.mjs +7 -6
  43. package/dist/types/src/ExplorerPlugin.d.ts +1 -1
  44. package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/index.d.ts +2 -2
  46. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  48. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  49. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  50. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  51. package/dist/types/src/components/Chart/Chart.stories.d.ts +8 -4
  52. package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/ExplorerContainer.d.ts +2 -2
  54. package/dist/types/src/components/ExplorerContainer.d.ts.map +1 -1
  55. package/dist/types/src/components/Globe/Globe.stories.d.ts +8 -4
  56. package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Graph/D3ForceGraph.d.ts +2 -2
  58. package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +1 -1
  59. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +13 -4
  60. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
  61. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +13 -4
  62. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  63. package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
  64. package/dist/types/src/components/Tree/Tree.stories.d.ts +13 -16
  65. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  66. package/dist/types/src/components/Tree/types/tree.d.ts +1 -1
  67. package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
  68. package/dist/types/src/components/index.d.ts +2 -4
  69. package/dist/types/src/components/index.d.ts.map +1 -1
  70. package/dist/types/src/meta.d.ts +0 -1
  71. package/dist/types/src/meta.d.ts.map +1 -1
  72. package/dist/types/src/translations.d.ts +14 -2
  73. package/dist/types/src/translations.d.ts.map +1 -1
  74. package/dist/types/src/types/ExplorerAction.d.ts +23 -0
  75. package/dist/types/src/types/ExplorerAction.d.ts.map +1 -0
  76. package/dist/types/src/types/Graph.d.ts +33 -0
  77. package/dist/types/src/types/Graph.d.ts.map +1 -0
  78. package/dist/types/src/types/index.d.ts +2 -2
  79. package/dist/types/src/types/index.d.ts.map +1 -1
  80. package/dist/types/tsconfig.tsbuildinfo +1 -1
  81. package/package.json +38 -36
  82. package/src/ExplorerPlugin.tsx +48 -46
  83. package/src/capabilities/intent-resolver.ts +10 -8
  84. package/src/capabilities/react-surface.tsx +9 -5
  85. package/src/components/Chart/Chart.stories.tsx +7 -6
  86. package/src/components/ExplorerContainer.tsx +22 -5
  87. package/src/components/Globe/Globe.stories.tsx +11 -10
  88. package/src/components/Graph/D3ForceGraph.stories.tsx +30 -17
  89. package/src/components/Graph/D3ForceGraph.tsx +4 -4
  90. package/src/components/Graph/ForceGraph.stories.tsx +30 -17
  91. package/src/components/Graph/ForceGraph.tsx +3 -3
  92. package/src/components/Graph/testing.ts +6 -6
  93. package/src/components/Tree/Tree.stories.tsx +27 -21
  94. package/src/components/Tree/Tree.tsx +2 -2
  95. package/src/components/Tree/types/tree.test.ts +2 -2
  96. package/src/components/Tree/types/tree.ts +1 -1
  97. package/src/components/index.ts +3 -3
  98. package/src/meta.ts +7 -4
  99. package/src/translations.ts +4 -2
  100. package/src/types/ExplorerAction.ts +30 -0
  101. package/src/types/Graph.ts +46 -0
  102. package/src/types/index.ts +2 -2
  103. package/dist/lib/browser/ExplorerContainer-5QHLD2B2.mjs +0 -37
  104. package/dist/lib/browser/ExplorerContainer-5QHLD2B2.mjs.map +0 -7
  105. package/dist/lib/browser/chunk-CZZ3DDR7.mjs +0 -38
  106. package/dist/lib/browser/chunk-CZZ3DDR7.mjs.map +0 -7
  107. package/dist/lib/browser/chunk-L4U4MPSZ.mjs.map +0 -7
  108. package/dist/lib/browser/chunk-UL5EDJPE.mjs +0 -21
  109. package/dist/lib/browser/chunk-UL5EDJPE.mjs.map +0 -7
  110. package/dist/lib/browser/intent-resolver-7MVEYNX7.mjs +0 -24
  111. package/dist/lib/browser/intent-resolver-7MVEYNX7.mjs.map +0 -7
  112. package/dist/lib/browser/react-surface-FABRDFTF.mjs +0 -31
  113. package/dist/lib/browser/react-surface-FABRDFTF.mjs.map +0 -7
  114. package/dist/lib/node-esm/ExplorerContainer-AMYAVLO4.mjs.map +0 -7
  115. package/dist/lib/node-esm/chunk-4GWDNZ4Z.mjs +0 -39
  116. package/dist/lib/node-esm/chunk-4GWDNZ4Z.mjs.map +0 -7
  117. package/dist/lib/node-esm/chunk-MCOXQ3ML.mjs.map +0 -7
  118. package/dist/lib/node-esm/chunk-PIAXA43R.mjs.map +0 -7
  119. package/dist/lib/node-esm/intent-resolver-NL3SR2XF.mjs +0 -25
  120. package/dist/lib/node-esm/intent-resolver-NL3SR2XF.mjs.map +0 -7
  121. package/dist/lib/node-esm/react-surface-EYCZUAAI.mjs +0 -32
  122. package/dist/lib/node-esm/react-surface-EYCZUAAI.mjs.map +0 -7
  123. package/dist/types/src/types/schema.d.ts +0 -12
  124. package/dist/types/src/types/schema.d.ts.map +0 -1
  125. package/dist/types/src/types/types.d.ts +0 -18
  126. package/dist/types/src/types/types.d.ts.map +0 -1
  127. package/src/types/schema.ts +0 -16
  128. package/src/types/types.ts +0 -22
@@ -4,26 +4,39 @@ import {
4
4
  } from "./chunk-3ODK27PU.mjs";
5
5
  import {
6
6
  D3ForceGraph
7
- } from "./chunk-MCOXQ3ML.mjs";
7
+ } from "./chunk-CRSVAZNA.mjs";
8
+ import "./chunk-HSLMI22Q.mjs";
8
9
 
9
10
  // src/components/ExplorerContainer.tsx
10
11
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
11
- import React from "react";
12
+ import React, { useCallback, useMemo, useState } from "react";
13
+ import { QueryBuilder } from "@dxos/echo-query";
12
14
  import { useGlobalSearch } from "@dxos/plugin-search";
13
15
  import { getSpace } from "@dxos/react-client/echo";
16
+ import { Toolbar } from "@dxos/react-ui";
17
+ import { QueryEditor } from "@dxos/react-ui-components";
14
18
  import { StackItem } from "@dxos/react-ui-stack";
15
19
  var ExplorerContainer = ({ role, view }) => {
16
20
  var _effect = _useSignals();
17
21
  try {
18
22
  const space = getSpace(view);
19
- const model = useGraphModel(space);
23
+ const [filter, setFilter] = useState();
24
+ const model = useGraphModel(space, filter);
20
25
  const { match } = useGlobalSearch();
26
+ const builder = useMemo(() => new QueryBuilder(), []);
27
+ const handleChange = useCallback((value) => {
28
+ setFilter(builder.build(value).filter);
29
+ }, []);
30
+ const showToolbar = role === "article";
21
31
  if (!space || !model) {
22
32
  return null;
23
33
  }
24
34
  return /* @__PURE__ */ React.createElement(StackItem.Content, {
25
- size: role === "section" ? "square" : "intrinsic"
26
- }, /* @__PURE__ */ React.createElement(D3ForceGraph, {
35
+ toolbar: showToolbar
36
+ }, showToolbar && /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(QueryEditor, {
37
+ db: space.db,
38
+ onChange: handleChange
39
+ })), /* @__PURE__ */ React.createElement(D3ForceGraph, {
27
40
  model,
28
41
  match
29
42
  }));
@@ -35,4 +48,4 @@ var ExplorerContainer_default = ExplorerContainer;
35
48
  export {
36
49
  ExplorerContainer_default as default
37
50
  };
38
- //# sourceMappingURL=ExplorerContainer-AMYAVLO4.mjs.map
51
+ //# sourceMappingURL=ExplorerContainer-N3S5KSUX.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ExplorerContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { type Filter } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { useGlobalSearch } from '@dxos/plugin-search';\nimport { getSpace } from '@dxos/react-client/echo';\nimport { Toolbar } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\nimport { StackItem } from '@dxos/react-ui-stack';\nimport { type View } from '@dxos/schema';\n\nimport { useGraphModel } from '../hooks';\n\nimport { D3ForceGraph } from './Graph';\n\ntype ExplorerContainerProps = {\n role: string;\n view: View.View;\n};\n\nconst ExplorerContainer = ({ role, view }: ExplorerContainerProps) => {\n const space = getSpace(view);\n const [filter, setFilter] = useState<Filter.Any>();\n const model = useGraphModel(space, filter);\n const { match } = useGlobalSearch();\n\n const builder = useMemo(() => new QueryBuilder(), []);\n const handleChange = useCallback<NonNullable<QueryEditorProps['onChange']>>((value) => {\n setFilter(builder.build(value).filter);\n }, []);\n\n const showToolbar = role === 'article';\n\n if (!space || !model) {\n return null;\n }\n\n return (\n <StackItem.Content toolbar={showToolbar}>\n {showToolbar && (\n <Toolbar.Root>\n <QueryEditor db={space.db} onChange={handleChange} />\n </Toolbar.Root>\n )}\n <D3ForceGraph model={model} match={match} />\n </StackItem.Content>\n );\n};\n\nexport default ExplorerContainer;\n"],
5
+ "mappings": ";;;;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,SAASC,gBAAgB;AAGtD,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,mBAA0C;AACnD,SAASC,iBAAiB;AAY1B,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,KAAI,MAA0B;;;AAC/D,UAAMC,QAAQC,SAASF,IAAAA;AACvB,UAAM,CAACG,QAAQC,SAAAA,IAAaC,SAAAA;AAC5B,UAAMC,QAAQC,cAAcN,OAAOE,MAAAA;AACnC,UAAM,EAAEK,MAAK,IAAKC,gBAAAA;AAElB,UAAMC,UAAUC,QAAQ,MAAM,IAAIC,aAAAA,GAAgB,CAAA,CAAE;AACpD,UAAMC,eAAeC,YAAuD,CAACC,UAAAA;AAC3EX,gBAAUM,QAAQM,MAAMD,KAAAA,EAAOZ,MAAM;IACvC,GAAG,CAAA,CAAE;AAEL,UAAMc,cAAclB,SAAS;AAE7B,QAAI,CAACE,SAAS,CAACK,OAAO;AACpB,aAAO;IACT;AAEA,WACE,sBAAA,cAACY,UAAUC,SAAO;MAACC,SAASH;OACzBA,eACC,sBAAA,cAACI,QAAQC,MAAI,MACX,sBAAA,cAACC,aAAAA;MAAYC,IAAIvB,MAAMuB;MAAIC,UAAUZ;SAGzC,sBAAA,cAACa,cAAAA;MAAapB;MAAcE;;;;;AAGlC;AAEA,IAAA,4BAAeV;",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "QueryBuilder", "useGlobalSearch", "getSpace", "Toolbar", "QueryEditor", "StackItem", "ExplorerContainer", "role", "view", "space", "getSpace", "filter", "setFilter", "useState", "model", "useGraphModel", "match", "useGlobalSearch", "builder", "useMemo", "QueryBuilder", "handleChange", "useCallback", "value", "build", "showToolbar", "StackItem", "Content", "toolbar", "Toolbar", "Root", "QueryEditor", "db", "onChange", "D3ForceGraph"]
7
+ }
@@ -6,7 +6,7 @@ import React, { useCallback, useEffect, useMemo, useRef } from "react";
6
6
  import { Obj } from "@dxos/echo";
7
7
  import { SelectionModel } from "@dxos/graph";
8
8
  import { GraphForceProjector, SVG } from "@dxos/react-ui-graph";
9
- import { getHashColor } from "@dxos/react-ui-theme";
9
+ import { getHashStyles } from "@dxos/react-ui-theme";
10
10
  import "@dxos/react-ui-graph/styles/graph.css";
11
11
  var D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }) => {
12
12
  var _effect = _useSignals();
@@ -71,7 +71,7 @@ var D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }
71
71
  const obj = node.data?.data.object;
72
72
  return {
73
73
  data: {
74
- color: getHashColor(obj && Obj.getTypename(obj))?.color
74
+ color: getHashStyles(obj && Obj.getTypename(obj))?.hue
75
75
  },
76
76
  classes: {
77
77
  "dx-selected": selection.contains(node.id)
@@ -97,12 +97,10 @@ import { filterObjectsSync } from "@dxos/plugin-search";
97
97
  // src/components/Graph/adapter.ts
98
98
  var GraphAdapter = class {
99
99
  graph;
100
- _nodes;
101
- _links;
100
+ _nodes = [];
101
+ _links = [];
102
102
  constructor(graph) {
103
103
  this.graph = graph;
104
- this._nodes = [];
105
- this._links = [];
106
104
  this._nodes = graph.nodes.map((node) => ({
107
105
  id: node.id,
108
106
  type: node.type,
@@ -131,8 +129,8 @@ var ForceGraph = ({ model, match }) => {
131
129
  refreshRate: 200
132
130
  });
133
131
  const rootRef = useRef2(null);
134
- const forceGraph = useRef2();
135
- const filteredRef = useRef2();
132
+ const forceGraph = useRef2(null);
133
+ const filteredRef = useRef2([]);
136
134
  filteredRef.current = filterObjectsSync(model?.objects ?? [], match);
137
135
  const [data, setData] = useState();
138
136
  useEffect2(() => {
@@ -151,7 +149,7 @@ var ForceGraph = ({ model, match }) => {
151
149
  nodes: [],
152
150
  links: []
153
151
  });
154
- forceGraph.current = void 0;
152
+ forceGraph.current = null;
155
153
  };
156
154
  }, []);
157
155
  useEffect2(() => {
@@ -189,4 +187,4 @@ export {
189
187
  D3ForceGraph,
190
188
  ForceGraph
191
189
  };
192
- //# sourceMappingURL=chunk-MCOXQ3ML.mjs.map
190
+ //# sourceMappingURL=chunk-CRSVAZNA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Graph/D3ForceGraph.tsx", "../../../src/components/Graph/ForceGraph.tsx", "../../../src/components/Graph/adapter.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport { Obj } from '@dxos/echo';\nimport { SelectionModel } from '@dxos/graph';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport {\n type GraphController,\n GraphForceProjector,\n type GraphLayoutNode,\n type GraphProps,\n SVG,\n type SVGContext,\n} from '@dxos/react-ui-graph';\nimport { getHashStyles } from '@dxos/react-ui-theme';\nimport { type SpaceGraphEdge, type SpaceGraphModel, type SpaceGraphNode } from '@dxos/schema';\n\nimport '@dxos/react-ui-graph/styles/graph.css';\n\nexport type D3ForceGraphProps = ThemedClassName<\n {\n model?: SpaceGraphModel;\n match?: RegExp;\n selection?: SelectionModel;\n grid?: boolean;\n } & Pick<GraphProps, 'drag'>\n>;\n\nexport const D3ForceGraph = ({ classNames, model, selection: _selection, grid, ...props }: D3ForceGraphProps) => {\n const context = useRef<SVGContext>(null);\n const projector = useMemo<GraphForceProjector | undefined>(() => {\n if (context.current) {\n return new GraphForceProjector(context.current, {\n attributes: {\n linkForce: (edge) => {\n // TODO(burdon): Check type (currently assumes Employee property).\n // Edge shouldn't contribute to force if it's not active.\n return edge.data?.object?.active !== false;\n },\n },\n forces: {\n point: {\n strength: 0.01,\n },\n },\n });\n }\n }, [context.current]);\n\n const graph = useRef<GraphController>(null);\n const selection = useMemo(() => _selection ?? new SelectionModel(), [_selection]);\n useEffect(() => graph.current?.repaint(), [selection.selected.value]);\n\n const handleSelect = useCallback<NonNullable<GraphProps['onSelect']>>(\n (node) => {\n if (selection.contains(node.id)) {\n selection.remove(node.id);\n } else {\n selection.add(node.id);\n }\n },\n [selection],\n );\n\n return (\n <SVG.Root ref={context} classNames={classNames}>\n <SVG.Markers />\n {grid && <SVG.Grid axis />}\n <SVG.Zoom extent={[1 / 2, 2]}>\n <SVG.Graph<SpaceGraphNode, SpaceGraphEdge>\n {...props}\n ref={graph}\n model={model}\n projector={projector}\n labels={{\n text: (node) => {\n return node.data?.data.label ?? node.id;\n },\n }}\n attributes={{\n node: (node: GraphLayoutNode<SpaceGraphNode>) => {\n const obj = node.data?.data.object;\n return {\n data: {\n color: getHashStyles(obj && Obj.getTypename(obj))?.hue,\n },\n classes: {\n 'dx-selected': selection.contains(node.id),\n },\n };\n },\n }}\n onSelect={handleSelect}\n />\n </SVG.Zoom>\n </SVG.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { forceLink, forceManyBody } from 'd3';\nimport NativeForceGraph from 'force-graph';\nimport React, { type FC, useEffect, useRef, useState } from 'react';\nimport { useResizeDetector } from 'react-resize-detector';\n\nimport { type SearchResult, filterObjectsSync } from '@dxos/plugin-search';\nimport { type SpaceGraphModel } from '@dxos/schema';\n\nimport { GraphAdapter } from './adapter';\n\nexport type ForceGraphProps = {\n model?: SpaceGraphModel;\n match?: RegExp;\n};\n\nexport const ForceGraph: FC<ForceGraphProps> = ({ model, match }) => {\n const { ref, width, height } = useResizeDetector({ refreshRate: 200 });\n const rootRef = useRef<HTMLDivElement>(null);\n const forceGraph = useRef<NativeForceGraph>(null);\n\n const filteredRef = useRef<SearchResult[]>([]);\n filteredRef.current = filterObjectsSync(model?.objects ?? [], match);\n\n const [data, setData] = useState<GraphAdapter>();\n useEffect(() => {\n return model?.subscribe((model) => {\n setData(new GraphAdapter(model.graph));\n });\n }, [model]);\n\n useEffect(() => {\n if (rootRef.current) {\n // https://github.com/vasturiano/force-graph\n // https://github.com/vasturiano/3d-force-graph\n forceGraph.current = new NativeForceGraph(rootRef.current)\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#node-styling\n .nodeRelSize(6)\n .nodeLabel((node: any) => (node.type === 'schema' ? node.data.typename : (node.data.label ?? node.id)))\n .nodeAutoColorBy((node: any) => (node.type === 'schema' ? 'schema' : node.data.typename))\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#link-styling\n .linkAutoColorBy((link: any) => link.type);\n }\n\n return () => {\n forceGraph.current?.pauseAnimation().graphData({ nodes: [], links: [] });\n forceGraph.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (!data || !width || !height || !forceGraph.current) {\n return;\n }\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#container-layout\n forceGraph.current\n .pauseAnimation()\n .width(width)\n .height(height)\n .onEngineStop(() => {\n handleZoomToFit();\n })\n .onNodeClick((node: any) => {\n forceGraph.current?.emitParticle(node);\n })\n\n // https://github.com/vasturiano/force-graph?tab=readme-ov-file#force-engine-d3-force-configuration\n // .d3Force('center', forceCenter().strength(0.9))\n .d3Force('link', forceLink().distance(160).strength(0.5))\n .d3Force('charge', forceManyBody().strength(-30))\n\n .graphData(data)\n .warmupTicks(100)\n .cooldownTime(1_000)\n .resumeAnimation();\n }, [data, width, height, forceGraph.current]);\n\n const handleZoomToFit = () => {\n forceGraph.current?.zoomToFit(400, 40);\n };\n\n return (\n <div ref={ref} className='relative grow' onClick={handleZoomToFit}>\n <div ref={rootRef} className='absolute inset-0' />\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Graph } from '@dxos/graph';\n\nexport type GraphNode = {\n id?: string;\n};\n\nexport type GraphLink = {\n source?: string;\n target?: string;\n};\n\nexport type GraphData = {\n nodes: GraphNode[];\n links: GraphLink[];\n};\n\n/**\n * Map common graph to force-graph format.\n */\nexport class GraphAdapter implements GraphData {\n private readonly _nodes: GraphNode[] = [];\n private readonly _links: GraphLink[] = [];\n\n constructor(private readonly graph: Graph) {\n this._nodes = graph.nodes.map((node) => ({\n id: node.id,\n type: node.type,\n data: node.data,\n }));\n\n this._links = graph.edges.map((edge) => ({\n type: edge.type,\n source: edge.source,\n target: edge.target,\n data: edge.data,\n }));\n }\n\n get nodes() {\n return this._nodes;\n }\n\n get links() {\n return this._links;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useEffect", "useMemo", "useRef", "Obj", "SelectionModel", "GraphForceProjector", "SVG", "getHashStyles", "D3ForceGraph", "classNames", "model", "selection", "_selection", "grid", "props", "context", "useRef", "projector", "useMemo", "current", "GraphForceProjector", "attributes", "linkForce", "edge", "data", "object", "active", "forces", "point", "strength", "graph", "SelectionModel", "useEffect", "repaint", "selected", "value", "handleSelect", "useCallback", "node", "contains", "id", "remove", "add", "SVG", "Root", "ref", "Markers", "Grid", "axis", "Zoom", "extent", "Graph", "labels", "text", "label", "obj", "color", "getHashStyles", "Obj", "getTypename", "hue", "classes", "onSelect", "forceLink", "forceManyBody", "NativeForceGraph", "React", "useEffect", "useRef", "useState", "useResizeDetector", "filterObjectsSync", "GraphAdapter", "_nodes", "_links", "graph", "nodes", "map", "node", "id", "type", "data", "edges", "edge", "source", "target", "links", "ForceGraph", "model", "match", "ref", "width", "height", "useResizeDetector", "refreshRate", "rootRef", "useRef", "forceGraph", "filteredRef", "current", "filterObjectsSync", "objects", "data", "setData", "useState", "useEffect", "subscribe", "GraphAdapter", "graph", "NativeForceGraph", "nodeRelSize", "nodeLabel", "node", "type", "typename", "label", "id", "nodeAutoColorBy", "linkAutoColorBy", "link", "pauseAnimation", "graphData", "nodes", "links", "onEngineStop", "handleZoomToFit", "onNodeClick", "emitParticle", "d3Force", "forceLink", "distance", "strength", "forceManyBody", "warmupTicks", "cooldownTime", "resumeAnimation", "zoomToFit", "React", "div", "className", "onClick"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ var __defProp = Object.defineProperty;
3
+ var __export = (target, all) => {
4
+ for (var name in all)
5
+ __defProp(target, name, { get: all[name], enumerable: true });
6
+ };
7
+
8
+ export {
9
+ __export
10
+ };
11
+ //# sourceMappingURL=chunk-HSLMI22Q.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,81 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-UXZM5VJB.mjs";
5
+ import {
6
+ __export
7
+ } from "./chunk-HSLMI22Q.mjs";
8
+
9
+ // src/types/ExplorerAction.ts
10
+ var ExplorerAction_exports = {};
11
+ __export(ExplorerAction_exports, {
12
+ CreateGraph: () => CreateGraph,
13
+ GraphProps: () => GraphProps
14
+ });
15
+ import * as Schema from "effect/Schema";
16
+ import { SpaceSchema } from "@dxos/react-client/echo";
17
+ import { TypenameAnnotationId, View } from "@dxos/schema";
18
+ var EXPLORER_ACTION = `${meta.id}/action`;
19
+ var GraphProps = Schema.Struct({
20
+ name: Schema.optional(Schema.String),
21
+ // TODO(wittjosiah): This should be a query input instead.
22
+ typename: Schema.String.annotations({
23
+ [TypenameAnnotationId]: [
24
+ "used-static",
25
+ "dynamic"
26
+ ],
27
+ title: "Select graph record type"
28
+ })
29
+ });
30
+ var CreateGraph = class extends Schema.TaggedClass()(`${EXPLORER_ACTION}/create-graph`, {
31
+ input: Schema.Struct({
32
+ space: SpaceSchema
33
+ }).pipe(Schema.extend(GraphProps)),
34
+ output: Schema.Struct({
35
+ object: View.View
36
+ })
37
+ }) {
38
+ };
39
+
40
+ // src/types/Graph.ts
41
+ var Graph_exports = {};
42
+ __export(Graph_exports, {
43
+ Graph: () => Graph,
44
+ make: () => make,
45
+ makeView: () => makeView
46
+ });
47
+ import * as Schema2 from "effect/Schema";
48
+ import { Filter, Obj, Query, QueryAST, Type } from "@dxos/echo";
49
+ import { LabelAnnotation, ViewAnnotation } from "@dxos/echo/internal";
50
+ import { View as View2 } from "@dxos/schema";
51
+ var Graph = Schema2.Struct({
52
+ name: Schema2.optional(Schema2.String),
53
+ query: Schema2.Struct({
54
+ raw: Schema2.optional(Schema2.String),
55
+ ast: QueryAST.Query
56
+ }).pipe(Schema2.mutable)
57
+ }).pipe(Type.Obj({
58
+ typename: "dxos.org/type/Graph",
59
+ version: "0.1.0"
60
+ }), LabelAnnotation.set([
61
+ "name"
62
+ ]), ViewAnnotation.set(true));
63
+ var make = (props = {
64
+ query: {
65
+ raw: "",
66
+ ast: Query.select(Filter.nothing()).ast
67
+ }
68
+ }) => Obj.make(Graph, props);
69
+ var makeView = async ({ presentation, ...props }) => {
70
+ const graph = make(presentation);
71
+ return View2.makeFromSpace({
72
+ ...props,
73
+ presentation: graph
74
+ });
75
+ };
76
+
77
+ export {
78
+ ExplorerAction_exports,
79
+ Graph_exports
80
+ };
81
+ //# sourceMappingURL=chunk-MS72BATS.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/ExplorerAction.ts", "../../../src/types/Graph.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { SpaceSchema } from '@dxos/react-client/echo';\nimport { TypenameAnnotationId, View } from '@dxos/schema';\n\nimport { meta } from '../meta';\n\nconst EXPLORER_ACTION = `${meta.id}/action`;\n\nexport const GraphProps = Schema.Struct({\n name: Schema.optional(Schema.String),\n // TODO(wittjosiah): This should be a query input instead.\n typename: Schema.String.annotations({\n [TypenameAnnotationId]: ['used-static', 'dynamic'],\n title: 'Select graph record type',\n }),\n});\n\nexport class CreateGraph extends Schema.TaggedClass<CreateGraph>()(`${EXPLORER_ACTION}/create-graph`, {\n input: Schema.Struct({\n space: SpaceSchema,\n }).pipe(Schema.extend(GraphProps)),\n output: Schema.Struct({\n object: View.View,\n }),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Filter, Obj, Query, QueryAST, Type } from '@dxos/echo';\nimport { LabelAnnotation, ViewAnnotation } from '@dxos/echo/internal';\nimport { View } from '@dxos/schema';\n\nexport const Graph = Schema.Struct({\n name: Schema.optional(Schema.String),\n query: Schema.Struct({\n raw: Schema.optional(Schema.String),\n ast: QueryAST.Query,\n }).pipe(Schema.mutable),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/Graph',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(true),\n);\n\nexport type Graph = Schema.Schema.Type<typeof Graph>;\n\n/**\n * Make a graph object.\n */\nexport const make = (\n props: Obj.MakeProps<typeof Graph> = { query: { raw: '', ast: Query.select(Filter.nothing()).ast } },\n) => Obj.make(Graph, props);\n\ntype MakeViewProps = Omit<View.MakeFromSpaceProps, 'presentation'> & {\n presentation?: Omit<Obj.MakeProps<typeof Graph>, 'name'>;\n};\n\n/**\n * Make a graph as a view of a data set.\n */\n// TODO(burdon): Move to @dxos/schema.\nexport const makeView = async ({ presentation, ...props }: MakeViewProps) => {\n const graph = make(presentation);\n return View.makeFromSpace({ ...props, presentation: graph });\n};\n"],
5
+ "mappings": ";;;;;;;;;AAAA;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,sBAAsBC,YAAY;AAI3C,IAAMC,kBAAkB,GAAGC,KAAKC,EAAE;AAE3B,IAAMC,aAAoBC,cAAO;EACtCC,MAAaC,gBAAgBC,aAAM;;EAEnCC,UAAiBD,cAAOE,YAAY;IAClC,CAACC,oBAAAA,GAAuB;MAAC;MAAe;;IACxCC,OAAO;EACT,CAAA;AACF,CAAA;AAEO,IAAMC,cAAN,cAAiCC,mBAAW,EAAgB,GAAGb,eAAAA,iBAAgC;EACpGc,OAAcV,cAAO;IACnBW,OAAOC;EACT,CAAA,EAAGC,KAAYC,cAAOf,UAAAA,CAAAA;EACtBgB,QAAef,cAAO;IACpBgB,QAAQC,KAAKA;EACf,CAAA;AACF,CAAA,EAAA;AAAI;;;AC7BJ;;;;;;AAIA,YAAYC,aAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,UAAUC,YAAY;AACnD,SAASC,iBAAiBC,sBAAsB;AAChD,SAASC,QAAAA,aAAY;AAEd,IAAMC,QAAeC,eAAO;EACjCC,MAAaC,iBAAgBC,cAAM;EACnCC,OAAcJ,eAAO;IACnBK,KAAYH,iBAAgBC,cAAM;IAClCG,KAAKC,SAASC;EAChB,CAAA,EAAGC,KAAYC,eAAO;AACxB,CAAA,EAAGD,KACDE,KAAKC,IAAI;EACPC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,gBAAgBC,IAAI;EAAC;CAAO,GAC5BC,eAAeD,IAAI,IAAA,CAAA;AAQd,IAAME,OAAO,CAClBC,QAAqC;EAAEf,OAAO;IAAEC,KAAK;IAAIC,KAAKE,MAAMY,OAAOC,OAAOC,QAAO,CAAA,EAAIhB;EAAI;AAAE,MAChGM,IAAIM,KAAKnB,OAAOoB,KAAAA;AAUd,IAAMI,WAAW,OAAO,EAAEC,cAAc,GAAGL,MAAAA,MAAsB;AACtE,QAAMM,QAAQP,KAAKM,YAAAA;AACnB,SAAOE,MAAKC,cAAc;IAAE,GAAGR;IAAOK,cAAcC;EAAM,CAAA;AAC5D;",
6
+ "names": ["Schema", "SpaceSchema", "TypenameAnnotationId", "View", "EXPLORER_ACTION", "meta", "id", "GraphProps", "Struct", "name", "optional", "String", "typename", "annotations", "TypenameAnnotationId", "title", "CreateGraph", "TaggedClass", "input", "space", "SpaceSchema", "pipe", "extend", "output", "object", "View", "Schema", "Filter", "Obj", "Query", "QueryAST", "Type", "LabelAnnotation", "ViewAnnotation", "View", "Graph", "Struct", "name", "optional", "String", "query", "raw", "ast", "QueryAST", "Query", "pipe", "mutable", "Type", "Obj", "typename", "version", "LabelAnnotation", "set", "ViewAnnotation", "make", "props", "select", "Filter", "nothing", "makeView", "presentation", "graph", "View", "makeFromSpace"]
7
+ }
@@ -10975,7 +10975,7 @@ var TidyTree = (s, data, options) => {
10975
10975
  var TidyTree_default = TidyTree;
10976
10976
 
10977
10977
  // src/components/Tree/types/tree.ts
10978
- import { Schema } from "effect";
10978
+ import * as Schema from "effect/Schema";
10979
10979
  import { Key, Obj, Type } from "@dxos/echo";
10980
10980
  import { invariant } from "@dxos/invariant";
10981
10981
  var TreeNodeType = Schema.Struct({
@@ -11042,7 +11042,7 @@ var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
11042
11042
  ]);
11043
11043
  const context = useRef(null);
11044
11044
  useEffect3(() => {
11045
- if (context.current) {
11045
+ if (context.current?.size) {
11046
11046
  const { width, height } = context.current.size;
11047
11047
  const size = Math.min(width, height);
11048
11048
  const radius = size * 0.4;
@@ -11079,7 +11079,7 @@ var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
11079
11079
 
11080
11080
  // src/components/index.ts
11081
11081
  import { lazy } from "react";
11082
- var ExplorerContainer = lazy(() => import("./ExplorerContainer-AMYAVLO4.mjs"));
11082
+ var ExplorerContainer = lazy(() => import("./ExplorerContainer-N3S5KSUX.mjs"));
11083
11083
 
11084
11084
  export {
11085
11085
  Chart,
@@ -11088,4 +11088,4 @@ export {
11088
11088
  Tree,
11089
11089
  ExplorerContainer
11090
11090
  };
11091
- //# sourceMappingURL=chunk-W4ZNCGOD.mjs.map
11091
+ //# sourceMappingURL=chunk-NPIP4VEH.mjs.map