@dxos/plugin-explorer 0.8.4-main.dedc0f3 → 0.8.4-main.ead640a

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 (121) hide show
  1. package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs +50 -0
  2. package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-UL5EDJPE.mjs → chunk-2DGFNLRO.mjs} +2 -4
  4. package/dist/lib/browser/chunk-2DGFNLRO.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-BZ65T5M3.mjs +79 -0
  6. package/dist/lib/browser/chunk-BZ65T5M3.mjs.map +7 -0
  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-VNOGW2JS.mjs → chunk-MOM5KCKC.mjs} +4 -4
  10. package/dist/lib/browser/{chunk-VNOGW2JS.mjs.map → chunk-MOM5KCKC.mjs.map} +3 -3
  11. package/dist/lib/browser/{chunk-3YITRGGW.mjs → chunk-NXGP6NTP.mjs} +6 -6
  12. package/dist/lib/browser/chunk-NXGP6NTP.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-K57C3LIX.mjs +31 -0
  16. package/dist/lib/browser/intent-resolver-K57C3LIX.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-OPBND5W3.mjs +35 -0
  20. package/dist/lib/browser/react-surface-OPBND5W3.mjs.map +7 -0
  21. package/dist/lib/browser/types/index.mjs +7 -6
  22. package/dist/lib/node-esm/{ExplorerContainer-OBSRVHZZ.mjs → ExplorerContainer-FRTDXZI5.mjs} +19 -6
  23. package/dist/lib/node-esm/ExplorerContainer-FRTDXZI5.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-GFYXDQQV.mjs → chunk-6JACZE7E.mjs} +6 -6
  25. package/dist/lib/node-esm/chunk-6JACZE7E.mjs.map +7 -0
  26. package/dist/lib/node-esm/chunk-ES6AOMCY.mjs +80 -0
  27. package/dist/lib/node-esm/chunk-ES6AOMCY.mjs.map +7 -0
  28. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  29. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  30. package/dist/lib/node-esm/{chunk-PIAXA43R.mjs → chunk-PX6LHR2N.mjs} +2 -4
  31. package/dist/lib/node-esm/chunk-PX6LHR2N.mjs.map +7 -0
  32. package/dist/lib/node-esm/{chunk-ODMJ7DPA.mjs → chunk-ZCV4U7LT.mjs} +4 -4
  33. package/dist/lib/node-esm/{chunk-ODMJ7DPA.mjs.map → chunk-ZCV4U7LT.mjs.map} +3 -3
  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-BLPPTTEY.mjs +32 -0
  37. package/dist/lib/node-esm/intent-resolver-BLPPTTEY.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-HCKQSHKJ.mjs +36 -0
  41. package/dist/lib/node-esm/react-surface-HCKQSHKJ.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 +1 -1
  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.map +1 -1
  50. package/dist/types/src/components/Chart/Chart.stories.d.ts +3 -1
  51. package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/ExplorerContainer.d.ts +2 -2
  53. package/dist/types/src/components/ExplorerContainer.d.ts.map +1 -1
  54. package/dist/types/src/components/Globe/Globe.stories.d.ts +3 -1
  55. package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/Graph/D3ForceGraph.d.ts +2 -2
  57. package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +1 -1
  58. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +5 -10
  59. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +4 -2
  61. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  62. package/dist/types/src/components/Tree/Tree.stories.d.ts +0 -1
  63. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Tree/types/tree.d.ts +1 -1
  65. package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
  66. package/dist/types/src/components/index.d.ts +1 -1
  67. package/dist/types/src/meta.d.ts +0 -1
  68. package/dist/types/src/meta.d.ts.map +1 -1
  69. package/dist/types/src/translations.d.ts +14 -2
  70. package/dist/types/src/translations.d.ts.map +1 -1
  71. package/dist/types/src/types/ExplorerAction.d.ts +23 -0
  72. package/dist/types/src/types/ExplorerAction.d.ts.map +1 -0
  73. package/dist/types/src/types/Graph.d.ts +33 -0
  74. package/dist/types/src/types/Graph.d.ts.map +1 -0
  75. package/dist/types/src/types/index.d.ts +2 -2
  76. package/dist/types/src/types/index.d.ts.map +1 -1
  77. package/dist/types/tsconfig.tsbuildinfo +1 -1
  78. package/package.json +37 -36
  79. package/src/ExplorerPlugin.tsx +48 -46
  80. package/src/capabilities/intent-resolver.ts +10 -8
  81. package/src/capabilities/react-surface.tsx +9 -5
  82. package/src/components/Chart/Chart.stories.tsx +5 -4
  83. package/src/components/ExplorerContainer.tsx +22 -5
  84. package/src/components/Globe/Globe.stories.tsx +5 -4
  85. package/src/components/Graph/D3ForceGraph.stories.tsx +22 -12
  86. package/src/components/Graph/D3ForceGraph.tsx +4 -4
  87. package/src/components/Graph/ForceGraph.stories.tsx +22 -12
  88. package/src/components/Graph/ForceGraph.tsx +3 -3
  89. package/src/components/Tree/Tree.stories.tsx +2 -4
  90. package/src/components/Tree/Tree.tsx +2 -2
  91. package/src/components/Tree/types/tree.ts +1 -1
  92. package/src/meta.ts +1 -3
  93. package/src/translations.ts +4 -2
  94. package/src/types/ExplorerAction.ts +29 -0
  95. package/src/types/Graph.ts +45 -0
  96. package/src/types/index.ts +2 -2
  97. package/dist/lib/browser/ExplorerContainer-7MTDS2TQ.mjs +0 -37
  98. package/dist/lib/browser/ExplorerContainer-7MTDS2TQ.mjs.map +0 -7
  99. package/dist/lib/browser/chunk-3YITRGGW.mjs.map +0 -7
  100. package/dist/lib/browser/chunk-CZZ3DDR7.mjs +0 -38
  101. package/dist/lib/browser/chunk-CZZ3DDR7.mjs.map +0 -7
  102. package/dist/lib/browser/chunk-UL5EDJPE.mjs.map +0 -7
  103. package/dist/lib/browser/intent-resolver-7MVEYNX7.mjs +0 -24
  104. package/dist/lib/browser/intent-resolver-7MVEYNX7.mjs.map +0 -7
  105. package/dist/lib/browser/react-surface-VLGQKYBI.mjs +0 -31
  106. package/dist/lib/browser/react-surface-VLGQKYBI.mjs.map +0 -7
  107. package/dist/lib/node-esm/ExplorerContainer-OBSRVHZZ.mjs.map +0 -7
  108. package/dist/lib/node-esm/chunk-4GWDNZ4Z.mjs +0 -39
  109. package/dist/lib/node-esm/chunk-4GWDNZ4Z.mjs.map +0 -7
  110. package/dist/lib/node-esm/chunk-GFYXDQQV.mjs.map +0 -7
  111. package/dist/lib/node-esm/chunk-PIAXA43R.mjs.map +0 -7
  112. package/dist/lib/node-esm/intent-resolver-NL3SR2XF.mjs +0 -25
  113. package/dist/lib/node-esm/intent-resolver-NL3SR2XF.mjs.map +0 -7
  114. package/dist/lib/node-esm/react-surface-BYJABDS5.mjs +0 -32
  115. package/dist/lib/node-esm/react-surface-BYJABDS5.mjs.map +0 -7
  116. package/dist/types/src/types/schema.d.ts +0 -12
  117. package/dist/types/src/types/schema.d.ts.map +0 -1
  118. package/dist/types/src/types/types.d.ts +0 -18
  119. package/dist/types/src/types/types.d.ts.map +0 -1
  120. package/src/types/schema.ts +0 -16
  121. package/src/types/types.ts +0 -22
@@ -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)
@@ -144,8 +144,8 @@ var ForceGraph = ({ model, match }) => {
144
144
  refreshRate: 200
145
145
  });
146
146
  const rootRef = useRef2(null);
147
- const forceGraph = useRef2();
148
- const filteredRef = useRef2();
147
+ const forceGraph = useRef2(null);
148
+ const filteredRef = useRef2([]);
149
149
  filteredRef.current = filterObjectsSync(model?.objects ?? [], match);
150
150
  const [data, setData] = useState();
151
151
  useEffect2(() => {
@@ -164,7 +164,7 @@ var ForceGraph = ({ model, match }) => {
164
164
  nodes: [],
165
165
  links: []
166
166
  });
167
- forceGraph.current = void 0;
167
+ forceGraph.current = null;
168
168
  };
169
169
  }, []);
170
170
  useEffect2(() => {
@@ -202,4 +202,4 @@ export {
202
202
  D3ForceGraph,
203
203
  ForceGraph
204
204
  };
205
- //# sourceMappingURL=chunk-GFYXDQQV.mjs.map
205
+ //# sourceMappingURL=chunk-6JACZE7E.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", "_nodes", "links", "_links", "graph", "map", "node", "id", "type", "data", "edges", "edge", "source", "target", "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,80 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-PX6LHR2N.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 { DataType, TypenameAnnotationId } from "@dxos/schema";
18
+ var EXPLORER_ACTION = `${meta.id}/action`;
19
+ var GraphProps = Schema.Struct({
20
+ name: Schema.optional(Schema.String),
21
+ typename: Schema.String.annotations({
22
+ [TypenameAnnotationId]: [
23
+ "used-static",
24
+ "dynamic"
25
+ ],
26
+ title: "Select graph record type"
27
+ })
28
+ });
29
+ var CreateGraph = class extends Schema.TaggedClass()(`${EXPLORER_ACTION}/create-graph`, {
30
+ input: Schema.Struct({
31
+ space: SpaceSchema
32
+ }).pipe(Schema.extend(GraphProps)),
33
+ output: Schema.Struct({
34
+ object: DataType.View
35
+ })
36
+ }) {
37
+ };
38
+
39
+ // src/types/Graph.ts
40
+ var Graph_exports = {};
41
+ __export(Graph_exports, {
42
+ Graph: () => Graph,
43
+ make: () => make,
44
+ makeView: () => makeView
45
+ });
46
+ import * as Schema2 from "effect/Schema";
47
+ import { Filter, Obj, Query, QueryAST, Type } from "@dxos/echo";
48
+ import { LabelAnnotation, ViewAnnotation } from "@dxos/echo/internal";
49
+ import { createViewFromSpace } from "@dxos/schema";
50
+ var Graph = Schema2.Struct({
51
+ name: Schema2.optional(Schema2.String),
52
+ query: Schema2.Struct({
53
+ raw: Schema2.optional(Schema2.String),
54
+ ast: QueryAST.Query
55
+ }).pipe(Schema2.mutable)
56
+ }).pipe(Type.Obj({
57
+ typename: "dxos.org/type/Graph",
58
+ version: "0.1.0"
59
+ }), LabelAnnotation.set([
60
+ "name"
61
+ ]), ViewAnnotation.set(true));
62
+ var make = (props = {
63
+ query: {
64
+ raw: "",
65
+ ast: Query.select(Filter.nothing()).ast
66
+ }
67
+ }) => Obj.make(Graph, props);
68
+ var makeView = async ({ presentation, ...props }) => {
69
+ const graph = make(presentation);
70
+ return createViewFromSpace({
71
+ ...props,
72
+ presentation: graph
73
+ });
74
+ };
75
+
76
+ export {
77
+ ExplorerAction_exports,
78
+ Graph_exports
79
+ };
80
+ //# sourceMappingURL=chunk-ES6AOMCY.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 { DataType, TypenameAnnotationId } 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 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: DataType.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 { type CreateViewFromSpaceProps, createViewFromSpace } 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<CreateViewFromSpaceProps, 'presentation'> & {\n presentation?: Omit<Obj.MakeProps<typeof Graph>, 'name'>;\n};\n\n/**\n * Make a graph as a view of a data set.\n */\nexport const makeView = async ({ presentation, ...props }: MakeViewProps) => {\n const graph = make(presentation);\n return createViewFromSpace({ ...props, presentation: graph });\n};\n"],
5
+ "mappings": ";;;;;;;;;AAAA;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,mBAAmB;AAC5B,SAASC,UAAUC,4BAA4B;AAI/C,IAAMC,kBAAkB,GAAGC,KAAKC,EAAE;AAE3B,IAAMC,aAAoBC,cAAO;EACtCC,MAAaC,gBAAgBC,aAAM;EACnCC,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,SAASC;EACnB,CAAA;AACF,CAAA,EAAA;AAAI;;;AC5BJ;;;;;;AAIA,YAAYC,aAAY;AAExB,SAASC,QAAQC,KAAKC,OAAOC,UAAUC,YAAY;AACnD,SAASC,iBAAiBC,sBAAsB;AAChD,SAAwCC,2BAA2B;AAE5D,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;AASd,IAAMI,WAAW,OAAO,EAAEC,cAAc,GAAGL,MAAAA,MAAsB;AACtE,QAAMM,QAAQP,KAAKM,YAAAA;AACnB,SAAOE,oBAAoB;IAAE,GAAGP;IAAOK,cAAcC;EAAM,CAAA;AAC7D;",
6
+ "names": ["Schema", "SpaceSchema", "DataType", "TypenameAnnotationId", "EXPLORER_ACTION", "meta", "id", "GraphProps", "Struct", "name", "optional", "String", "typename", "annotations", "TypenameAnnotationId", "title", "CreateGraph", "TaggedClass", "input", "space", "SpaceSchema", "pipe", "extend", "output", "object", "DataType", "View", "Schema", "Filter", "Obj", "Query", "QueryAST", "Type", "LabelAnnotation", "ViewAnnotation", "createViewFromSpace", "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", "createViewFromSpace"]
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
+ }
@@ -1,9 +1,8 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // src/meta.ts
4
- var EXPLORER_PLUGIN = "dxos.org/plugin/explorer";
5
4
  var meta = {
6
- id: EXPLORER_PLUGIN,
5
+ id: "dxos.org/plugin/explorer",
7
6
  name: "Explorer",
8
7
  description: "Install this plugin to view a hypergraph of all objects inside of your Space.",
9
8
  icon: "ph--graph--regular",
@@ -17,7 +16,6 @@ var meta = {
17
16
  };
18
17
 
19
18
  export {
20
- EXPLORER_PLUGIN,
21
19
  meta
22
20
  };
23
- //# sourceMappingURL=chunk-PIAXA43R.mjs.map
21
+ //# sourceMappingURL=chunk-PX6LHR2N.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/explorer',\n name: 'Explorer',\n description: 'Install this plugin to view a hypergraph of all objects inside of your Space.',\n icon: 'ph--graph--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-explorer',\n tags: ['labs'],\n screenshots: ['https://dxos.network/plugin-details-explorer-dark.png'],\n};\n"],
5
+ "mappings": ";;;AAMO,IAAMA,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAa;EACbC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
6
+ "names": ["meta", "id", "name", "description", "icon", "source", "tags", "screenshots"]
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
  function _define_property(obj, key, value) {
@@ -11294,7 +11294,7 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
11294
11294
  ]);
11295
11295
  const context = useRef(null);
11296
11296
  useEffect3(() => {
11297
- if (context.current) {
11297
+ if (context.current?.size) {
11298
11298
  const { width, height } = context.current.size;
11299
11299
  const size = Math.min(width, height);
11300
11300
  const radius = size * 0.4;
@@ -11331,7 +11331,7 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
11331
11331
 
11332
11332
  // src/components/index.ts
11333
11333
  import { lazy } from "react";
11334
- var ExplorerContainer = lazy(() => import("./ExplorerContainer-OBSRVHZZ.mjs"));
11334
+ var ExplorerContainer = lazy(() => import("./ExplorerContainer-FRTDXZI5.mjs"));
11335
11335
 
11336
11336
  export {
11337
11337
  Chart,
@@ -11340,4 +11340,4 @@ export {
11340
11340
  Tree2 as Tree,
11341
11341
  ExplorerContainer
11342
11342
  };
11343
- //# sourceMappingURL=chunk-ODMJ7DPA.mjs.map
11343
+ //# sourceMappingURL=chunk-ZCV4U7LT.mjs.map