@dxos/plugin-explorer 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

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 (156) hide show
  1. package/dist/lib/{browser/ExplorerContainer-4RB2TY3G.mjs → neutral/ExplorerContainer-5TOK2ZEY.mjs} +8 -16
  2. package/dist/lib/neutral/ExplorerContainer-5TOK2ZEY.mjs.map +7 -0
  3. package/dist/lib/neutral/ExplorerPlugin.mjs +26 -0
  4. package/dist/lib/neutral/ExplorerPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  6. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  7. package/dist/lib/{browser/chunk-4NFGHCGO.mjs → neutral/chunk-5X5ATGCS.mjs} +11 -22
  8. package/dist/lib/neutral/chunk-5X5ATGCS.mjs.map +7 -0
  9. package/dist/lib/{browser/chunk-YNQF4CPY.mjs → neutral/chunk-HPIS2WXY.mjs} +2 -2
  10. package/dist/lib/{browser/chunk-YNQF4CPY.mjs.map → neutral/chunk-HPIS2WXY.mjs.map} +3 -3
  11. package/dist/lib/{browser/chunk-6AZY4CDH.mjs → neutral/components/index.mjs} +144 -148
  12. package/dist/lib/{node-esm/chunk-DOXAIJEC.mjs.map → neutral/components/index.mjs.map} +4 -4
  13. package/dist/lib/neutral/containers/index.mjs +9 -0
  14. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  15. package/dist/lib/neutral/create-object-F6TKVAGV.mjs +39 -0
  16. package/dist/lib/neutral/create-object-F6TKVAGV.mjs.map +7 -0
  17. package/dist/lib/neutral/hooks/index.mjs +40 -0
  18. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  19. package/dist/lib/neutral/index.mjs +14 -0
  20. package/dist/lib/neutral/meta.json +1 -0
  21. package/dist/lib/{browser → neutral}/meta.mjs +1 -1
  22. package/dist/lib/neutral/plugin.mjs +12 -0
  23. package/dist/lib/neutral/plugin.mjs.map +7 -0
  24. package/dist/lib/neutral/react-surface-U3JEY7V7.mjs +26 -0
  25. package/dist/lib/neutral/react-surface-U3JEY7V7.mjs.map +7 -0
  26. package/dist/lib/neutral/translations.mjs +33 -0
  27. package/dist/lib/neutral/translations.mjs.map +7 -0
  28. package/dist/lib/{browser → neutral}/types/index.mjs +1 -1
  29. package/dist/types/data/cities.d.ts +4 -4
  30. package/dist/types/data/cities.d.ts.map +1 -1
  31. package/dist/types/data/countries-110m.d.ts +19 -22
  32. package/dist/types/data/countries-110m.d.ts.map +1 -1
  33. package/dist/types/src/ExplorerPlugin.d.ts +1 -0
  34. package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
  35. package/dist/types/src/ExplorerPlugin.test.d.ts +2 -0
  36. package/dist/types/src/ExplorerPlugin.test.d.ts.map +1 -0
  37. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  38. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  39. package/dist/types/src/capabilities/index.d.ts +8 -1
  40. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  42. package/dist/types/src/components/Chart/Chart.d.ts.map +1 -1
  43. package/dist/types/src/components/Chart/Chart.stories.d.ts +4 -1
  44. package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
  45. package/dist/types/src/components/Globe/Globe.d.ts.map +1 -1
  46. package/dist/types/src/components/Globe/Globe.stories.d.ts +5 -2
  47. package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
  48. package/dist/types/src/components/Graph/CanvasForceGraph.d.ts +13 -0
  49. package/dist/types/src/components/Graph/CanvasForceGraph.d.ts.map +1 -0
  50. package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts +17 -0
  51. package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts.map +1 -0
  52. package/dist/types/src/components/Graph/ForceGraph.d.ts +12 -5
  53. package/dist/types/src/components/Graph/ForceGraph.d.ts.map +1 -1
  54. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +4 -2
  55. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  56. package/dist/types/src/components/Graph/{adapter.d.ts → graph-adapter.d.ts} +1 -1
  57. package/dist/types/src/components/Graph/graph-adapter.d.ts.map +1 -0
  58. package/dist/types/src/components/Graph/index.d.ts +1 -1
  59. package/dist/types/src/components/Graph/index.d.ts.map +1 -1
  60. package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
  61. package/dist/types/src/components/Tree/Tree.d.ts.map +1 -1
  62. package/dist/types/src/components/Tree/Tree.stories.d.ts +5 -1
  63. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  64. package/dist/types/src/components/Tree/layout/HierarchicalEdgeBundling.d.ts.map +1 -1
  65. package/dist/types/src/components/Tree/layout/RadialTree.d.ts.map +1 -1
  66. package/dist/types/src/components/Tree/layout/TidyTree.d.ts.map +1 -1
  67. package/dist/types/src/components/Tree/testing/generator.d.ts.map +1 -1
  68. package/dist/types/src/components/Tree/types/tree.d.ts +6 -6
  69. package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
  70. package/dist/types/src/components/Tree/types/types.d.ts.map +1 -1
  71. package/dist/types/src/components/plot.d.ts.map +1 -1
  72. package/dist/types/src/containers/ExplorerContainer/ExplorerContainer.d.ts +3 -3
  73. package/dist/types/src/containers/ExplorerContainer/ExplorerContainer.d.ts.map +1 -1
  74. package/dist/types/src/containers/ExplorerContainer/index.d.ts +1 -2
  75. package/dist/types/src/containers/ExplorerContainer/index.d.ts.map +1 -1
  76. package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
  77. package/dist/types/src/index.d.ts +1 -3
  78. package/dist/types/src/index.d.ts.map +1 -1
  79. package/dist/types/src/plugin.d.ts +3 -0
  80. package/dist/types/src/plugin.d.ts.map +1 -0
  81. package/dist/types/src/translations.d.ts +28 -26
  82. package/dist/types/src/translations.d.ts.map +1 -1
  83. package/dist/types/src/types/ExplorerAction.d.ts.map +1 -1
  84. package/dist/types/src/types/Graph.d.ts +2 -9
  85. package/dist/types/src/types/Graph.d.ts.map +1 -1
  86. package/dist/types/tsconfig.tsbuildinfo +1 -1
  87. package/package.json +98 -57
  88. package/src/ExplorerPlugin.test.ts +26 -0
  89. package/src/ExplorerPlugin.tsx +7 -24
  90. package/src/capabilities/create-object.ts +36 -0
  91. package/src/capabilities/index.ts +4 -1
  92. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +10 -9
  93. package/src/components/Chart/Chart.stories.tsx +14 -21
  94. package/src/components/Globe/Globe.stories.tsx +17 -20
  95. package/src/components/Graph/CanvasForceGraph.stories.tsx +83 -0
  96. package/src/components/Graph/CanvasForceGraph.tsx +124 -0
  97. package/src/components/Graph/ForceGraph.stories.tsx +75 -44
  98. package/src/components/Graph/ForceGraph.tsx +104 -85
  99. package/src/components/Graph/index.ts +1 -1
  100. package/src/components/Tree/Tree.stories.tsx +43 -36
  101. package/src/components/Tree/testing/generator.ts +1 -1
  102. package/src/components/Tree/types/tree.test.ts +3 -4
  103. package/src/components/Tree/types/tree.ts +13 -13
  104. package/src/containers/ExplorerContainer/ExplorerContainer.tsx +7 -9
  105. package/src/containers/ExplorerContainer/index.ts +1 -3
  106. package/src/hooks/useGraphModel.ts +14 -10
  107. package/src/index.ts +1 -4
  108. package/src/meta.ts +1 -1
  109. package/src/plugin.ts +9 -0
  110. package/src/translations.ts +14 -13
  111. package/src/types/ExplorerAction.ts +1 -2
  112. package/src/types/Graph.ts +8 -22
  113. package/src/typings.d.ts +8 -0
  114. package/dist/lib/browser/ExplorerContainer-4RB2TY3G.mjs.map +0 -7
  115. package/dist/lib/browser/chunk-4NFGHCGO.mjs.map +0 -7
  116. package/dist/lib/browser/chunk-6AZY4CDH.mjs.map +0 -7
  117. package/dist/lib/browser/index.mjs +0 -95
  118. package/dist/lib/browser/index.mjs.map +0 -7
  119. package/dist/lib/browser/meta.json +0 -1
  120. package/dist/lib/browser/react-surface-KAHVDMFX.mjs +0 -38
  121. package/dist/lib/browser/react-surface-KAHVDMFX.mjs.map +0 -7
  122. package/dist/lib/node-esm/ExplorerContainer-LCG425I7.mjs +0 -49
  123. package/dist/lib/node-esm/ExplorerContainer-LCG425I7.mjs.map +0 -7
  124. package/dist/lib/node-esm/chunk-DK77RB6M.mjs +0 -26
  125. package/dist/lib/node-esm/chunk-DK77RB6M.mjs.map +0 -7
  126. package/dist/lib/node-esm/chunk-DOXAIJEC.mjs +0 -11280
  127. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  128. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  129. package/dist/lib/node-esm/chunk-V42OFY7B.mjs +0 -85
  130. package/dist/lib/node-esm/chunk-V42OFY7B.mjs.map +0 -7
  131. package/dist/lib/node-esm/index.mjs +0 -96
  132. package/dist/lib/node-esm/index.mjs.map +0 -7
  133. package/dist/lib/node-esm/meta.json +0 -1
  134. package/dist/lib/node-esm/meta.mjs +0 -9
  135. package/dist/lib/node-esm/meta.mjs.map +0 -7
  136. package/dist/lib/node-esm/react-surface-7XILIUI4.mjs +0 -39
  137. package/dist/lib/node-esm/react-surface-7XILIUI4.mjs.map +0 -7
  138. package/dist/lib/node-esm/types/index.mjs +0 -11
  139. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  140. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  141. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  142. package/dist/types/src/components/Graph/D3ForceGraph.d.ts +0 -14
  143. package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +0 -1
  144. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +0 -15
  145. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +0 -1
  146. package/dist/types/src/components/Graph/adapter.d.ts.map +0 -1
  147. package/src/capabilities/react-surface/index.ts +0 -7
  148. package/src/components/Graph/D3ForceGraph.stories.tsx +0 -84
  149. package/src/components/Graph/D3ForceGraph.tsx +0 -102
  150. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  151. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  152. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  153. /package/dist/lib/{browser → neutral}/meta.mjs.map +0 -0
  154. /package/dist/lib/{node-esm → neutral}/types/index.mjs.map +0 -0
  155. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  156. /package/src/components/Graph/{adapter.ts → graph-adapter.ts} +0 -0
@@ -1,22 +1,18 @@
1
- import {
2
- D3ForceGraph,
3
- useGraphModel
4
- } from "./chunk-6AZY4CDH.mjs";
5
1
  import "./chunk-J5LGTIGS.mjs";
6
2
 
7
3
  // src/containers/ExplorerContainer/ExplorerContainer.tsx
8
4
  import React, { useCallback, useMemo, useState } from "react";
9
5
  import { QueryBuilder } from "@dxos/echo-query";
10
- import { useGlobalSearch } from "@dxos/plugin-search";
11
6
  import { getSpace, useObject } from "@dxos/react-client/echo";
12
7
  import { Panel, Toolbar } from "@dxos/react-ui";
13
8
  import { QueryEditor } from "@dxos/react-ui-components";
14
- var ExplorerContainer = ({ role, subject: view }) => {
15
- useObject(view);
9
+ import { ForceGraph } from "#components";
10
+ import { useGraphModel } from "#hooks";
11
+ var ExplorerContainer = ({ role, subject, attendableId: _attendableId }) => {
12
+ const [view] = useObject(subject);
16
13
  const space = view && getSpace(view);
17
14
  const [filter, setFilter] = useState();
18
15
  const model = useGraphModel(space, filter);
19
- const { match } = useGlobalSearch();
20
16
  const builder = useMemo(() => new QueryBuilder(), []);
21
17
  const handleChange = useCallback((value) => {
22
18
  setFilter(builder.build(value).filter);
@@ -34,15 +30,11 @@ var ExplorerContainer = ({ role, subject: view }) => {
34
30
  onChange: handleChange
35
31
  }))), /* @__PURE__ */ React.createElement(Panel.Content, {
36
32
  asChild: true
37
- }, /* @__PURE__ */ React.createElement(D3ForceGraph, {
38
- model,
39
- match
33
+ }, /* @__PURE__ */ React.createElement(ForceGraph, {
34
+ model
40
35
  })));
41
36
  };
42
-
43
- // src/containers/ExplorerContainer/index.ts
44
- var ExplorerContainer_default = ExplorerContainer;
45
37
  export {
46
- ExplorerContainer_default as default
38
+ ExplorerContainer as default
47
39
  };
48
- //# sourceMappingURL=ExplorerContainer-4RB2TY3G.mjs.map
40
+ //# sourceMappingURL=ExplorerContainer-5TOK2ZEY.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/ExplorerContainer/ExplorerContainer.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo, useState } from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { type Filter } from '@dxos/echo';\nimport { type View } from '@dxos/echo';\nimport { QueryBuilder } from '@dxos/echo-query';\nimport { getSpace, useObject } from '@dxos/react-client/echo';\nimport { Panel, Toolbar } from '@dxos/react-ui';\nimport { QueryEditor, type QueryEditorProps } from '@dxos/react-ui-components';\n\nimport { ForceGraph } from '#components';\nimport { useGraphModel } from '#hooks';\n\nexport type ExplorerContainerProps = AppSurface.ObjectArticleProps<View.View>;\n\nexport const ExplorerContainer = ({ role, subject, attendableId: _attendableId }: ExplorerContainerProps) => {\n const [view] = useObject(subject);\n const space = view && getSpace(view);\n const [filter, setFilter] = useState<Filter.Any>();\n const model = useGraphModel(space, filter);\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 <Panel.Root role={role}>\n {showToolbar && (\n <Panel.Toolbar asChild>\n <Toolbar.Root>\n <QueryEditor db={space.db} onChange={handleChange} />\n </Toolbar.Root>\n </Panel.Toolbar>\n )}\n <Panel.Content asChild>\n <ForceGraph model={model} />\n </Panel.Content>\n </Panel.Root>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,SAASC,aAAaC,SAASC,gBAAgB;AAKtD,SAASC,oBAAoB;AAC7B,SAASC,UAAUC,iBAAiB;AACpC,SAASC,OAAOC,eAAe;AAC/B,SAASC,mBAA0C;AAEnD,SAASC,kBAAkB;AAC3B,SAASC,qBAAqB;AAIvB,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,SAASC,cAAcC,cAAa,MAA0B;AACtG,QAAM,CAACC,IAAAA,IAAQX,UAAUQ,OAAAA;AACzB,QAAMI,QAAQD,QAAQZ,SAASY,IAAAA;AAC/B,QAAM,CAACE,QAAQC,SAAAA,IAAajB,SAAAA;AAC5B,QAAMkB,QAAQV,cAAcO,OAAOC,MAAAA;AAEnC,QAAMG,UAAUpB,QAAQ,MAAM,IAAIE,aAAAA,GAAgB,CAAA,CAAE;AACpD,QAAMmB,eAAetB,YAAuD,CAACuB,UAAAA;AAC3EJ,cAAUE,QAAQG,MAAMD,KAAAA,EAAOL,MAAM;EACvC,GAAG,CAAA,CAAE;AAEL,QAAMO,cAAcb,SAAS;AAE7B,MAAI,CAACK,SAAS,CAACG,OAAO;AACpB,WAAO;EACT;AAEA,SACE,sBAAA,cAACd,MAAMoB,MAAI;IAACd;KACTa,eACC,sBAAA,cAACnB,MAAMC,SAAO;IAACoB,SAAAA;KACb,sBAAA,cAACpB,QAAQmB,MAAI,MACX,sBAAA,cAAClB,aAAAA;IAAYoB,IAAIX,MAAMW;IAAIC,UAAUP;QAI3C,sBAAA,cAAChB,MAAMwB,SAAO;IAACH,SAAAA;KACb,sBAAA,cAAClB,YAAAA;IAAWW;;AAIpB;",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "QueryBuilder", "getSpace", "useObject", "Panel", "Toolbar", "QueryEditor", "ForceGraph", "useGraphModel", "ExplorerContainer", "role", "subject", "attendableId", "_attendableId", "view", "space", "filter", "setFilter", "model", "builder", "handleChange", "value", "build", "showToolbar", "Root", "asChild", "db", "onChange", "Content"]
7
+ }
@@ -0,0 +1,26 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/ExplorerPlugin.tsx
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { CreateObject, ReactSurface } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ import { translations } from "#translations";
9
+ import { Graph } from "#types";
10
+ var ExplorerPlugin = Plugin.define(meta).pipe(AppPlugin.addCreateObjectModule({
11
+ activate: CreateObject
12
+ }), AppPlugin.addSchemaModule({
13
+ schema: [
14
+ Graph.Graph
15
+ ]
16
+ }), AppPlugin.addSurfaceModule({
17
+ activate: ReactSurface
18
+ }), AppPlugin.addTranslationsModule({
19
+ translations
20
+ }), Plugin.make);
21
+ var ExplorerPlugin_default = ExplorerPlugin;
22
+ export {
23
+ ExplorerPlugin,
24
+ ExplorerPlugin_default as default
25
+ };
26
+ //# sourceMappingURL=ExplorerPlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/ExplorerPlugin.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { CreateObject, ReactSurface } from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { Graph } from '#types';\n\nexport const ExplorerPlugin = Plugin.define(meta).pipe(\n AppPlugin.addCreateObjectModule({ activate: CreateObject }),\n AppPlugin.addSchemaModule({ schema: [Graph.Graph] }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations }),\n Plugin.make,\n);\n\nexport default ExplorerPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,cAAcC,oBAAoB;AAC3C,SAASC,YAAY;AACrB,SAASC,oBAAoB;AAC7B,SAASC,aAAa;AAEf,IAAMC,iBAAiBP,OAAOQ,OAAOJ,IAAAA,EAAMK,KAChDR,UAAUS,sBAAsB;EAAEC,UAAUT;AAAa,CAAA,GACzDD,UAAUW,gBAAgB;EAAEC,QAAQ;IAACP,MAAMA;;AAAO,CAAA,GAClDL,UAAUa,iBAAiB;EAAEH,UAAUR;AAAa,CAAA,GACpDF,UAAUc,sBAAsB;EAAEV;AAAa,CAAA,GAC/CL,OAAOgB,IAAI;AAGb,IAAA,yBAAeT;",
6
+ "names": ["Plugin", "AppPlugin", "CreateObject", "ReactSurface", "meta", "translations", "Graph", "ExplorerPlugin", "define", "pipe", "addCreateObjectModule", "activate", "addSchemaModule", "schema", "addSurfaceModule", "addTranslationsModule", "make"]
7
+ }
@@ -0,0 +1,11 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
3
+ // src/capabilities/index.ts
4
+ import { Capability } from "@dxos/app-framework";
5
+ var CreateObject = Capability.lazy("CreateObject", () => import("../create-object-F6TKVAGV.mjs"));
6
+ var ReactSurface = Capability.lazy("ReactSurface", () => import("../react-surface-U3JEY7V7.mjs"));
7
+ export {
8
+ CreateObject,
9
+ ReactSurface
10
+ };
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capability } from '@dxos/app-framework';\n\nexport const CreateObject = Capability.lazy('CreateObject', () => import('./create-object'));\nexport const ReactSurface = Capability.lazy('ReactSurface', () => import('./react-surface'));\n"],
5
+ "mappings": ";;;AAIA,SAASA,kBAAkB;AAEpB,IAAMC,eAAeD,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;AAClE,IAAMC,eAAeH,WAAWE,KAAK,gBAAgB,MAAM,OAAO,+BAAA,CAAA;",
6
+ "names": ["Capability", "CreateObject", "lazy", "ReactSurface"]
7
+ }
@@ -8,7 +8,7 @@ __export(ExplorerAction_exports, {
8
8
  GraphProps: () => GraphProps
9
9
  });
10
10
  import * as Schema from "effect/Schema";
11
- import { TypeInputOptionsAnnotation } from "@dxos/plugin-space/types";
11
+ import { TypeInputOptionsAnnotation } from "@dxos/plugin-space";
12
12
  var GraphProps = Schema.Struct({
13
13
  name: Schema.optional(Schema.String),
14
14
  // TODO(wittjosiah): This should be a query input instead.
@@ -21,9 +21,6 @@ var GraphProps = Schema.Struct({
21
21
  ],
22
22
  kind: [
23
23
  "user"
24
- ],
25
- registered: [
26
- "registered"
27
24
  ]
28
25
  }), Schema.optional)
29
26
  });
@@ -32,11 +29,10 @@ var GraphProps = Schema.Struct({
32
29
  var Graph_exports = {};
33
30
  __export(Graph_exports, {
34
31
  Graph: () => Graph,
35
- GraphV1: () => GraphV1,
36
32
  make: () => make
37
33
  });
38
34
  import * as Schema2 from "effect/Schema";
39
- import { Filter, Obj, Query, QueryAST, Ref, Type } from "@dxos/echo";
35
+ import { Annotation, Filter, Obj, Query, QueryAST, Ref, Type } from "@dxos/echo";
40
36
  import { View } from "@dxos/echo";
41
37
  import { FormInputAnnotation, LabelAnnotation } from "@dxos/echo/internal";
42
38
  import { ViewAnnotation } from "@dxos/schema";
@@ -48,11 +44,16 @@ var GraphSchema = Schema2.Struct({
48
44
  ast: QueryAST.Query
49
45
  }).pipe(FormInputAnnotation.set(false))
50
46
  }).pipe(Type.object({
51
- typename: "dxos.org/type/Graph",
52
- version: "0.2.0"
47
+ typename: "org.dxos.type.graph",
48
+ version: "0.1.0"
53
49
  }), LabelAnnotation.set([
54
50
  "name"
55
- ]), ViewAnnotation.set(true));
51
+ ]), ViewAnnotation.set([
52
+ "view"
53
+ ]), Annotation.IconAnnotation.set({
54
+ icon: "ph--graph--regular",
55
+ hue: "green"
56
+ }));
56
57
  var Graph = GraphSchema;
57
58
  var make = ({ name, query = {
58
59
  raw: "",
@@ -64,21 +65,9 @@ var make = ({ name, query = {
64
65
  query
65
66
  });
66
67
  };
67
- var GraphV1 = Schema2.Struct({
68
- name: Schema2.optional(Schema2.String),
69
- query: Schema2.Struct({
70
- raw: Schema2.optional(Schema2.String),
71
- ast: QueryAST.Query
72
- })
73
- }).pipe(Type.object({
74
- typename: "dxos.org/type/Graph",
75
- version: "0.1.0"
76
- }), LabelAnnotation.set([
77
- "name"
78
- ]));
79
68
 
80
69
  export {
81
70
  ExplorerAction_exports,
82
71
  Graph_exports
83
72
  };
84
- //# sourceMappingURL=chunk-4NFGHCGO.mjs.map
73
+ //# sourceMappingURL=chunk-5X5ATGCS.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 { TypeInputOptionsAnnotation } from '@dxos/plugin-space';\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.pipe(\n Schema.annotations({ title: 'Select type' }),\n TypeInputOptionsAnnotation.set({\n location: ['database', 'runtime'],\n kind: ['user'],\n }),\n Schema.optional,\n ),\n});\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Filter, Obj, Query, QueryAST, Ref, Type } from '@dxos/echo';\nimport { View } from '@dxos/echo';\nimport { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/internal';\nimport { ViewAnnotation } from '@dxos/schema';\n\nconst GraphSchema = Schema.Struct({\n name: Schema.optional(Schema.String),\n\n view: Ref.Ref(View.View).pipe(FormInputAnnotation.set(false)),\n\n query: Schema.Struct({\n raw: Schema.optional(Schema.String),\n ast: QueryAST.Query,\n }).pipe(FormInputAnnotation.set(false)),\n}).pipe(\n Type.object({\n typename: 'org.dxos.type.graph',\n version: '0.1.0',\n }),\n LabelAnnotation.set(['name']),\n ViewAnnotation.set(['view']),\n Annotation.IconAnnotation.set({\n icon: 'ph--graph--regular',\n hue: 'green',\n }),\n);\nexport interface Graph extends Schema.Schema.Type<typeof GraphSchema> {}\nexport const Graph: Type.Obj<Graph> = GraphSchema as any;\n\ntype MakeProps = Omit<Partial<Obj.MakeProps<typeof Graph>>, 'view'> & {\n view: View.View;\n};\n\n/**\n * Make a graph as a view of a data set.\n */\nexport const make = ({\n name,\n query = { raw: '', ast: Query.select(Filter.nothing()).ast },\n view,\n}: MakeProps): Graph => {\n return Obj.make(Graph, { name, view: Ref.make(view), query });\n};\n"],
5
+ "mappings": ";;;;;AAAA;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,kCAAkC;AAEpC,IAAMC,aAAoBC,cAAO;EACtCC,MAAaC,gBAAgBC,aAAM;;EAEnCC,UAAiBD,cAAOE,KACfC,mBAAY;IAAEC,OAAO;EAAc,CAAA,GAC1CT,2BAA2BU,IAAI;IAC7BC,UAAU;MAAC;MAAY;;IACvBC,MAAM;MAAC;;EACT,CAAA,GACOR,eAAQ;AAEnB,CAAA;;;ACnBA;;;;;AAIA,YAAYS,aAAY;AAExB,SAASC,YAAYC,QAAQC,KAAKC,OAAOC,UAAUC,KAAKC,YAAY;AACpE,SAASC,YAAY;AACrB,SAASC,qBAAqBC,uBAAuB;AACrD,SAASC,sBAAsB;AAE/B,IAAMC,cAAqBC,eAAO;EAChCC,MAAaC,iBAAgBC,cAAM;EAEnCC,MAAMX,IAAIA,IAAIE,KAAKA,IAAI,EAAEU,KAAKT,oBAAoBU,IAAI,KAAA,CAAA;EAEtDC,OAAcP,eAAO;IACnBQ,KAAYN,iBAAgBC,cAAM;IAClCM,KAAKjB,SAASD;EAChB,CAAA,EAAGc,KAAKT,oBAAoBU,IAAI,KAAA,CAAA;AAClC,CAAA,EAAGD,KACDX,KAAKgB,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAf,gBAAgBS,IAAI;EAAC;CAAO,GAC5BR,eAAeQ,IAAI;EAAC;CAAO,GAC3BlB,WAAWyB,eAAeP,IAAI;EAC5BQ,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAGK,IAAMC,QAAyBjB;AAS/B,IAAMkB,OAAO,CAAC,EACnBhB,MACAM,QAAQ;EAAEC,KAAK;EAAIC,KAAKlB,MAAM2B,OAAO7B,OAAO8B,QAAO,CAAA,EAAIV;AAAI,GAC3DL,KAAI,MACM;AACV,SAAOd,IAAI2B,KAAKD,OAAO;IAAEf;IAAMG,MAAMX,IAAIwB,KAAKb,IAAAA;IAAOG;EAAM,CAAA;AAC7D;",
6
+ "names": ["Schema", "TypeInputOptionsAnnotation", "GraphProps", "Struct", "name", "optional", "String", "typename", "pipe", "annotations", "title", "set", "location", "kind", "Schema", "Annotation", "Filter", "Obj", "Query", "QueryAST", "Ref", "Type", "View", "FormInputAnnotation", "LabelAnnotation", "ViewAnnotation", "GraphSchema", "Struct", "name", "optional", "String", "view", "pipe", "set", "query", "raw", "ast", "object", "typename", "version", "IconAnnotation", "icon", "hue", "Graph", "make", "select", "nothing"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  // src/meta.ts
2
2
  import { trim } from "@dxos/util";
3
3
  var meta = {
4
- id: "dxos.org/plugin/explorer",
4
+ id: "org.dxos.plugin.explorer",
5
5
  name: "Explorer",
6
6
  description: trim`
7
7
  Interactive hypergraph visualization that reveals relationships between objects in your workspace.
@@ -21,4 +21,4 @@ var meta = {
21
21
  export {
22
22
  meta
23
23
  };
24
- //# sourceMappingURL=chunk-YNQF4CPY.mjs.map
24
+ //# sourceMappingURL=chunk-HPIS2WXY.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/meta.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/explorer',\n name: 'Explorer',\n description: trim`\n Interactive hypergraph visualization that reveals relationships between objects in your workspace.\n Navigate complex data structures and discover connections through a dynamic network view.\n `,\n icon: 'ph--graph--regular',\n iconHue: 'green',\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": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "icon", "iconHue", "source", "tags", "screenshots"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'org.dxos.plugin.explorer',\n name: 'Explorer',\n description: trim`\n Interactive hypergraph visualization that reveals relationships between objects in your workspace.\n Navigate complex data structures and discover connections through a dynamic network view.\n `,\n icon: 'ph--graph--regular',\n iconHue: 'green',\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": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaJ;;;;EAIbK,MAAM;EACNC,SAAS;EACTC,QAAQ;EACRC,MAAM;IAAC;;EACPC,aAAa;IAAC;;AAChB;",
6
+ "names": ["trim", "meta", "id", "name", "description", "icon", "iconHue", "source", "tags", "screenshots"]
7
7
  }
@@ -1,3 +1,5 @@
1
+ import "../chunk-J5LGTIGS.mjs";
2
+
1
3
  // src/components/Chart/Chart.tsx
2
4
  import * as Plot from "@observablehq/plot";
3
5
  import React, { useEffect } from "react";
@@ -10820,95 +10822,14 @@ var Globe = ({ items = [], accessor, projection = "orthographic", options = defa
10820
10822
  });
10821
10823
  };
10822
10824
 
10823
- // src/components/Graph/D3ForceGraph.tsx
10824
- import React3, { useCallback, useEffect as useEffect3, useMemo, useRef } from "react";
10825
- import { Obj } from "@dxos/echo";
10826
- import { SelectionModel } from "@dxos/graph";
10827
- import { GraphForceProjector, SVG } from "@dxos/react-ui-graph";
10828
- import { getHashStyles } from "@dxos/ui-theme";
10829
- import "@dxos/react-ui-graph/styles/graph.css";
10830
- var D3ForceGraph = ({ classNames, model, selection: _selection, grid, drag, ...props }) => {
10831
- const context = useRef(null);
10832
- const projector = useMemo(() => {
10833
- if (context.current) {
10834
- return new GraphForceProjector(context.current, {
10835
- attributes: {
10836
- linkForce: (edge) => {
10837
- return edge.data?.object?.active !== false;
10838
- }
10839
- },
10840
- forces: {
10841
- point: {
10842
- strength: 0.01
10843
- }
10844
- }
10845
- });
10846
- }
10847
- }, [
10848
- context.current
10849
- ]);
10850
- const graph = useRef(null);
10851
- const selection = useMemo(() => _selection ?? new SelectionModel(), [
10852
- _selection
10853
- ]);
10854
- useEffect3(() => selection.subscribe(() => graph.current?.repaint()), [
10855
- selection
10856
- ]);
10857
- const handleSelect = useCallback((node) => {
10858
- if (selection.contains(node.id)) {
10859
- selection.remove(node.id);
10860
- } else {
10861
- selection.add(node.id);
10862
- }
10863
- }, [
10864
- selection
10865
- ]);
10866
- return /* @__PURE__ */ React3.createElement(SVG.Root, {
10867
- ref: context,
10868
- classNames,
10869
- ...props
10870
- }, /* @__PURE__ */ React3.createElement(SVG.Markers, null), grid && /* @__PURE__ */ React3.createElement(SVG.Grid, {
10871
- axis: true
10872
- }), /* @__PURE__ */ React3.createElement(SVG.Zoom, {
10873
- extent: [
10874
- 1 / 2,
10875
- 2
10876
- ]
10877
- }, /* @__PURE__ */ React3.createElement(SVG.Graph, {
10878
- drag,
10879
- ref: graph,
10880
- model,
10881
- projector,
10882
- labels: {
10883
- text: (node) => {
10884
- return node.data?.data.label ?? node.id;
10885
- }
10886
- },
10887
- attributes: {
10888
- node: (node) => {
10889
- const obj = node.data?.data.object;
10890
- return {
10891
- data: {
10892
- color: getHashStyles(obj && Obj.getTypename(obj))?.hue
10893
- },
10894
- classes: {
10895
- "dx-selected": selection.contains(node.id)
10896
- }
10897
- };
10898
- }
10899
- },
10900
- onSelect: handleSelect
10901
- })));
10902
- };
10903
-
10904
- // src/components/Graph/ForceGraph.tsx
10825
+ // src/components/Graph/CanvasForceGraph.tsx
10905
10826
  import { forceLink, forceManyBody } from "d3";
10906
10827
  import NativeForceGraph from "force-graph";
10907
- import React4, { useEffect as useEffect4, useRef as useRef2, useState } from "react";
10828
+ import React3, { useCallback, useEffect as useEffect3, useRef, useState } from "react";
10908
10829
  import { useResizeDetector as useResizeDetector3 } from "react-resize-detector";
10909
- import { filterObjectsSync } from "@dxos/plugin-search";
10830
+ import { composable, composableProps } from "@dxos/ui-theme";
10910
10831
 
10911
- // src/components/Graph/adapter.ts
10832
+ // src/components/Graph/graph-adapter.ts
10912
10833
  var GraphAdapter = class {
10913
10834
  graph;
10914
10835
  _nodes = [];
@@ -10936,24 +10857,27 @@ var GraphAdapter = class {
10936
10857
  }
10937
10858
  };
10938
10859
 
10939
- // src/components/Graph/ForceGraph.tsx
10940
- var ForceGraph = ({ model, match }) => {
10941
- const { ref, width, height } = useResizeDetector3({
10860
+ // src/components/Graph/CanvasForceGraph.tsx
10861
+ var CanvasForceGraph = composable(({ model, match, onClick, ...props }, forwardedRef) => {
10862
+ const { ref: resizeRef, width, height } = useResizeDetector3({
10942
10863
  refreshRate: 200
10943
10864
  });
10944
- const rootRef = useRef2(null);
10945
- const forceGraph = useRef2(null);
10946
- const filteredRef = useRef2([]);
10947
- filteredRef.current = filterObjectsSync(model?.objects ?? [], match);
10865
+ const setRef = useCallback((node) => {
10866
+ resizeRef(node);
10867
+ assignRef(forwardedRef, node);
10868
+ }, [
10869
+ resizeRef,
10870
+ forwardedRef
10871
+ ]);
10872
+ const rootRef = useRef(null);
10873
+ const forceGraph = useRef(null);
10948
10874
  const [data, setData] = useState();
10949
- useEffect4(() => {
10950
- return model?.subscribe((model2) => {
10951
- setData(new GraphAdapter(model2.graph));
10952
- });
10875
+ useEffect3(() => {
10876
+ return model?.subscribe((model2) => setData(new GraphAdapter(model2.graph)));
10953
10877
  }, [
10954
10878
  model
10955
10879
  ]);
10956
- useEffect4(() => {
10880
+ useEffect3(() => {
10957
10881
  if (rootRef.current) {
10958
10882
  forceGraph.current = new NativeForceGraph(rootRef.current).nodeRelSize(6).nodeLabel((node) => node.type === "schema" ? node.data.typename : node.data.label ?? node.id).nodeAutoColorBy((node) => node.type === "schema" ? "schema" : node.data.typename).linkAutoColorBy((link2) => link2.type);
10959
10883
  }
@@ -10965,37 +10889,142 @@ var ForceGraph = ({ model, match }) => {
10965
10889
  forceGraph.current = null;
10966
10890
  };
10967
10891
  }, []);
10968
- useEffect4(() => {
10892
+ useEffect3(() => {
10969
10893
  if (!data || !width || !height || !forceGraph.current) {
10970
10894
  return;
10971
10895
  }
10972
- forceGraph.current.pauseAnimation().width(width).height(height).onEngineStop(() => {
10973
- handleZoomToFit();
10974
- }).onNodeClick((node) => {
10896
+ forceGraph.current.pauseAnimation().width(width).height(height).onEngineStop(() => handleZoomToFit()).onNodeClick((node) => {
10975
10897
  forceGraph.current?.emitParticle(node);
10976
10898
  }).d3Force("link", forceLink().distance(160).strength(0.5)).d3Force("charge", forceManyBody().strength(-30)).graphData(data).warmupTicks(100).cooldownTime(1e3).resumeAnimation();
10977
10899
  }, [
10978
10900
  data,
10979
10901
  width,
10980
- height,
10981
- forceGraph.current
10902
+ height
10982
10903
  ]);
10983
10904
  const handleZoomToFit = () => {
10984
10905
  forceGraph.current?.zoomToFit(400, 40);
10985
10906
  };
10986
- return /* @__PURE__ */ React4.createElement("div", {
10987
- ref,
10988
- className: "relative grow",
10989
- onClick: handleZoomToFit
10990
- }, /* @__PURE__ */ React4.createElement("div", {
10907
+ const handleClick = useCallback((event) => {
10908
+ onClick?.(event);
10909
+ if (!event.defaultPrevented) {
10910
+ handleZoomToFit();
10911
+ }
10912
+ }, [
10913
+ onClick
10914
+ ]);
10915
+ return /* @__PURE__ */ React3.createElement("div", {
10916
+ ...composableProps(props, {
10917
+ classNames: "relative grow"
10918
+ }),
10919
+ onClick: handleClick,
10920
+ ref: setRef
10921
+ }, /* @__PURE__ */ React3.createElement("div", {
10991
10922
  ref: rootRef,
10992
10923
  className: "absolute inset-0"
10993
10924
  }));
10925
+ });
10926
+ var assignRef = (ref, value) => {
10927
+ if (typeof ref === "function") {
10928
+ ref(value);
10929
+ } else if (ref) {
10930
+ ref.current = value;
10931
+ }
10994
10932
  };
10995
10933
 
10934
+ // src/components/Graph/ForceGraph.tsx
10935
+ import { Atom, useAtomValue } from "@effect-atom/atom-react";
10936
+ import React4, { useCallback as useCallback2, useEffect as useEffect4, useMemo, useRef as useRef2, useState as useState2 } from "react";
10937
+ import { Obj } from "@dxos/echo";
10938
+ import { SelectionModel } from "@dxos/graph";
10939
+ import { GraphForceProjector, SVG } from "@dxos/react-ui-graph";
10940
+ import { composable as composable2, composableProps as composableProps2, getHashStyles } from "@dxos/ui-theme";
10941
+ import "@dxos/react-ui-graph/styles/graph.css";
10942
+ var EMPTY_ATOM = Atom.make({
10943
+ nodes: [],
10944
+ edges: []
10945
+ });
10946
+ var ForceGraph = composable2(({ model, selection: selectionProp, grid, drag, onInspect, ...props }, forwardedRef) => {
10947
+ useAtomValue(model?.graphAtom ?? EMPTY_ATOM);
10948
+ const graph = useRef2(null);
10949
+ const selection = useMemo(() => selectionProp ?? new SelectionModel(), [
10950
+ selectionProp
10951
+ ]);
10952
+ useEffect4(() => {
10953
+ const unsubscribe = selection.subscribe(() => graph.current?.repaint());
10954
+ return unsubscribe;
10955
+ }, [
10956
+ selection
10957
+ ]);
10958
+ const svgRef = useRef2(null);
10959
+ const [projector, setProjector] = useState2();
10960
+ useEffect4(() => {
10961
+ if (svgRef.current) {
10962
+ setProjector(new GraphForceProjector(svgRef.current, {
10963
+ attributes: {
10964
+ // TODO(burdon): Check type (currently assumes Employee property).
10965
+ // Edge shouldn't contribute to force if it's not active.
10966
+ linkForce: (edge) => edge.data?.object?.active !== false
10967
+ },
10968
+ forces: {
10969
+ point: {
10970
+ strength: 0.01
10971
+ }
10972
+ }
10973
+ }));
10974
+ }
10975
+ }, []);
10976
+ const handleSelect = useCallback2((node) => {
10977
+ if (selection.contains(node.id)) {
10978
+ selection.remove(node.id);
10979
+ } else {
10980
+ selection.add(node.id);
10981
+ }
10982
+ }, [
10983
+ selection
10984
+ ]);
10985
+ return /* @__PURE__ */ React4.createElement("div", {
10986
+ ...composableProps2(props, {
10987
+ classNames: "dx-container"
10988
+ }),
10989
+ ref: forwardedRef
10990
+ }, /* @__PURE__ */ React4.createElement(SVG.Root, {
10991
+ ref: svgRef
10992
+ }, /* @__PURE__ */ React4.createElement(SVG.Markers, null), grid && /* @__PURE__ */ React4.createElement(SVG.Grid, {
10993
+ axis: true
10994
+ }), /* @__PURE__ */ React4.createElement(SVG.Zoom, {
10995
+ extent: [
10996
+ 1 / 2,
10997
+ 2
10998
+ ]
10999
+ }, /* @__PURE__ */ React4.createElement(SVG.Graph, {
11000
+ drag,
11001
+ ref: graph,
11002
+ model,
11003
+ projector,
11004
+ labels: {
11005
+ text: (node) => node.data?.data.label ?? node.id
11006
+ },
11007
+ attributes: {
11008
+ node: (node) => {
11009
+ const obj = node.data?.data.object;
11010
+ return {
11011
+ data: {
11012
+ color: getHashStyles(obj && Obj.getTypename(obj))?.hue
11013
+ },
11014
+ classes: {
11015
+ "dx-selected": selection.contains(node.id)
11016
+ }
11017
+ };
11018
+ }
11019
+ },
11020
+ onSelect: handleSelect,
11021
+ onInspect
11022
+ }))));
11023
+ });
11024
+
10996
11025
  // src/components/Tree/Tree.tsx
10997
11026
  import { RegistryContext } from "@effect-atom/atom-react";
10998
- import React5, { useContext, useEffect as useEffect5, useRef as useRef3, useState as useState2 } from "react";
11027
+ import React5, { useContext, useEffect as useEffect5, useRef as useRef3, useState as useState3 } from "react";
10999
11028
  import { useAsyncState } from "@dxos/react-ui";
11000
11029
  import { SVG as SVG2 } from "@dxos/react-ui-graph";
11001
11030
  import { SpaceGraphModel } from "@dxos/schema";
@@ -11154,7 +11183,7 @@ var TreeType = Schema.Struct({
11154
11183
  value: TreeNodeType
11155
11184
  }))
11156
11185
  }).pipe(Type.object({
11157
- typename: "dxos.org/type/Tree",
11186
+ typename: "org.dxos.type.tree",
11158
11187
  version: "0.1.0"
11159
11188
  }));
11160
11189
 
@@ -11191,7 +11220,7 @@ var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
11191
11220
  selected,
11192
11221
  registry
11193
11222
  ]);
11194
- const [tree3, setTree] = useState2();
11223
+ const [tree3, setTree] = useState3();
11195
11224
  useEffect5(() => {
11196
11225
  return model?.subscribe(() => {
11197
11226
  const tree4 = mapGraphToTreeData(model);
@@ -11234,45 +11263,12 @@ var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
11234
11263
  ref: context
11235
11264
  }));
11236
11265
  };
11237
-
11238
- // src/hooks/useGraphModel.ts
11239
- import { useEffect as useEffect6, useState as useState3 } from "react";
11240
- import { Capabilities } from "@dxos/app-framework";
11241
- import { useCapability } from "@dxos/app-framework/ui";
11242
- import { SpaceGraphModel as SpaceGraphModel2 } from "@dxos/schema";
11243
- var useGraphModel = (space, filter, options, queue) => {
11244
- const registry = useCapability(Capabilities.AtomRegistry);
11245
- const [model, setModel] = useState3(void 0);
11246
- useEffect6(() => {
11247
- if (!space) {
11248
- void model?.close();
11249
- setModel(void 0);
11250
- return;
11251
- }
11252
- if (!model || model.queue !== queue) {
11253
- const model2 = new SpaceGraphModel2(registry).setFilter(filter).setOptions(options);
11254
- void model2.open(space.db, queue);
11255
- setModel(model2);
11256
- } else {
11257
- model.setFilter(filter).setOptions(options);
11258
- }
11259
- }, [
11260
- space,
11261
- filter,
11262
- options,
11263
- queue,
11264
- registry
11265
- ]);
11266
- return model;
11267
- };
11268
-
11269
11266
  export {
11267
+ CanvasForceGraph,
11270
11268
  Chart,
11271
- Globe,
11272
- D3ForceGraph,
11273
11269
  ForceGraph,
11274
- defaultTreeLayoutSlots,
11270
+ Globe,
11275
11271
  Tree,
11276
- useGraphModel
11272
+ defaultTreeLayoutSlots
11277
11273
  };
11278
- //# sourceMappingURL=chunk-6AZY4CDH.mjs.map
11274
+ //# sourceMappingURL=index.mjs.map