@dxos/plugin-explorer 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

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-BFAWRIAJ.mjs +45 -0
  2. package/dist/lib/browser/ExplorerContainer-BFAWRIAJ.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-CRN65FY3.mjs → chunk-AGZAGILW.mjs} +135 -148
  4. package/dist/lib/{node-esm/chunk-RSZFBKZM.mjs.map → browser/chunk-AGZAGILW.mjs.map} +3 -3
  5. package/dist/lib/browser/{chunk-2MKBRIUT.mjs → chunk-BZMTFAP3.mjs} +8 -5
  6. package/dist/lib/browser/chunk-BZMTFAP3.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-HIFLWHXR.mjs +83 -0
  8. package/dist/lib/browser/chunk-HIFLWHXR.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-MGBT2ZFU.mjs +177 -0
  10. package/dist/lib/browser/chunk-MGBT2ZFU.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-UBHZGWZQ.mjs → chunk-YNQF4CPY.mjs} +1 -1
  12. package/dist/lib/browser/chunk-YNQF4CPY.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +46 -65
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/meta.mjs +1 -1
  17. package/dist/lib/browser/react-surface-RWVHQL3J.mjs +35 -0
  18. package/dist/lib/browser/react-surface-RWVHQL3J.mjs.map +7 -0
  19. package/dist/lib/browser/types/index.mjs +1 -2
  20. package/dist/lib/node-esm/ExplorerContainer-YQ2KKBVS.mjs +46 -0
  21. package/dist/lib/node-esm/ExplorerContainer-YQ2KKBVS.mjs.map +7 -0
  22. package/dist/lib/node-esm/chunk-3OE6TBJI.mjs +84 -0
  23. package/dist/lib/node-esm/chunk-3OE6TBJI.mjs.map +7 -0
  24. package/dist/lib/node-esm/{chunk-UXZM5VJB.mjs → chunk-DK77RB6M.mjs} +1 -1
  25. package/dist/lib/node-esm/chunk-DK77RB6M.mjs.map +7 -0
  26. package/dist/lib/node-esm/{chunk-3ODK27PU.mjs → chunk-IPIGIQHX.mjs} +8 -5
  27. package/dist/lib/node-esm/chunk-IPIGIQHX.mjs.map +7 -0
  28. package/dist/lib/node-esm/{chunk-RSZFBKZM.mjs → chunk-QLMTN2XI.mjs} +135 -148
  29. package/dist/lib/{browser/chunk-CRN65FY3.mjs.map → node-esm/chunk-QLMTN2XI.mjs.map} +3 -3
  30. package/dist/lib/node-esm/chunk-YWJBDETV.mjs +179 -0
  31. package/dist/lib/node-esm/chunk-YWJBDETV.mjs.map +7 -0
  32. package/dist/lib/node-esm/index.mjs +46 -65
  33. package/dist/lib/node-esm/index.mjs.map +4 -4
  34. package/dist/lib/node-esm/meta.json +1 -1
  35. package/dist/lib/node-esm/meta.mjs +1 -1
  36. package/dist/lib/node-esm/react-surface-3REUS7KW.mjs +36 -0
  37. package/dist/lib/node-esm/react-surface-3REUS7KW.mjs.map +7 -0
  38. package/dist/lib/node-esm/types/index.mjs +1 -2
  39. package/dist/types/src/ExplorerPlugin.d.ts +2 -1
  40. package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/index.d.ts +1 -2
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  44. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  46. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  47. package/dist/types/src/components/ExplorerContainer.d.ts +4 -6
  48. package/dist/types/src/components/ExplorerContainer.d.ts.map +1 -1
  49. package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +1 -1
  50. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
  51. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  52. package/dist/types/src/components/Graph/adapter.d.ts +1 -1
  53. package/dist/types/src/components/Graph/adapter.d.ts.map +1 -1
  54. package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
  55. package/dist/types/src/components/Tree/Tree.d.ts.map +1 -1
  56. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Tree/testing/generator.d.ts.map +1 -1
  58. package/dist/types/src/components/Tree/types/tree.d.ts +17 -15
  59. package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
  60. package/dist/types/src/components/Tree/types/types.d.ts +1 -1
  61. package/dist/types/src/components/Tree/types/types.d.ts.map +1 -1
  62. package/dist/types/src/components/index.d.ts +2 -4
  63. package/dist/types/src/components/index.d.ts.map +1 -1
  64. package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
  65. package/dist/types/src/meta.d.ts +2 -2
  66. package/dist/types/src/meta.d.ts.map +1 -1
  67. package/dist/types/src/translations.d.ts +17 -10
  68. package/dist/types/src/translations.d.ts.map +1 -1
  69. package/dist/types/src/types/ExplorerAction.d.ts +1 -18
  70. package/dist/types/src/types/ExplorerAction.d.ts.map +1 -1
  71. package/dist/types/src/types/Graph.d.ts +21 -24
  72. package/dist/types/src/types/Graph.d.ts.map +1 -1
  73. package/dist/types/tsconfig.tsbuildinfo +1 -1
  74. package/package.json +52 -47
  75. package/src/ExplorerPlugin.tsx +27 -52
  76. package/src/capabilities/index.ts +1 -4
  77. package/src/capabilities/react-surface/index.ts +7 -0
  78. package/src/capabilities/react-surface/react-surface.tsx +30 -0
  79. package/src/components/Chart/Chart.stories.tsx +2 -2
  80. package/src/components/ExplorerContainer.tsx +7 -9
  81. package/src/components/Globe/Globe.stories.tsx +2 -2
  82. package/src/components/Graph/D3ForceGraph.stories.tsx +19 -13
  83. package/src/components/Graph/D3ForceGraph.tsx +2 -2
  84. package/src/components/Graph/ForceGraph.stories.tsx +19 -13
  85. package/src/components/Graph/adapter.ts +14 -8
  86. package/src/components/Graph/testing.ts +11 -8
  87. package/src/components/Tree/Tree.stories.tsx +3 -2
  88. package/src/components/Tree/Tree.tsx +8 -3
  89. package/src/components/Tree/testing/generator.ts +4 -2
  90. package/src/components/Tree/types/tree.test.ts +5 -3
  91. package/src/components/Tree/types/tree.ts +39 -18
  92. package/src/components/Tree/types/types.ts +1 -1
  93. package/src/components/index.ts +3 -3
  94. package/src/hooks/useGraphModel.ts +6 -4
  95. package/src/meta.ts +2 -2
  96. package/src/translations.ts +3 -1
  97. package/src/types/ExplorerAction.ts +11 -19
  98. package/src/types/Graph.ts +38 -21
  99. package/dist/lib/browser/ExplorerContainer-L5RVUJRL.mjs +0 -50
  100. package/dist/lib/browser/ExplorerContainer-L5RVUJRL.mjs.map +0 -7
  101. package/dist/lib/browser/chunk-2MKBRIUT.mjs.map +0 -7
  102. package/dist/lib/browser/chunk-6BVXZQPP.mjs +0 -188
  103. package/dist/lib/browser/chunk-6BVXZQPP.mjs.map +0 -7
  104. package/dist/lib/browser/chunk-BGNRYZUN.mjs +0 -79
  105. package/dist/lib/browser/chunk-BGNRYZUN.mjs.map +0 -7
  106. package/dist/lib/browser/chunk-UBHZGWZQ.mjs.map +0 -7
  107. package/dist/lib/browser/intent-resolver-FX5H52QN.mjs +0 -31
  108. package/dist/lib/browser/intent-resolver-FX5H52QN.mjs.map +0 -7
  109. package/dist/lib/browser/react-surface-VS3ZFL2Y.mjs +0 -35
  110. package/dist/lib/browser/react-surface-VS3ZFL2Y.mjs.map +0 -7
  111. package/dist/lib/node-esm/ExplorerContainer-BBLPHH7K.mjs +0 -51
  112. package/dist/lib/node-esm/ExplorerContainer-BBLPHH7K.mjs.map +0 -7
  113. package/dist/lib/node-esm/chunk-3ODK27PU.mjs.map +0 -7
  114. package/dist/lib/node-esm/chunk-CRSVAZNA.mjs +0 -190
  115. package/dist/lib/node-esm/chunk-CRSVAZNA.mjs.map +0 -7
  116. package/dist/lib/node-esm/chunk-TQESRBUJ.mjs +0 -80
  117. package/dist/lib/node-esm/chunk-TQESRBUJ.mjs.map +0 -7
  118. package/dist/lib/node-esm/chunk-UXZM5VJB.mjs.map +0 -7
  119. package/dist/lib/node-esm/intent-resolver-RGBBXXYM.mjs +0 -32
  120. package/dist/lib/node-esm/intent-resolver-RGBBXXYM.mjs.map +0 -7
  121. package/dist/lib/node-esm/react-surface-SXPT2T37.mjs +0 -36
  122. package/dist/lib/node-esm/react-surface-SXPT2T37.mjs.map +0 -7
  123. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  124. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  125. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  126. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  127. package/src/capabilities/intent-resolver.ts +0 -21
  128. package/src/capabilities/react-surface.tsx +0 -27
@@ -0,0 +1,45 @@
1
+ import {
2
+ useGraphModel
3
+ } from "./chunk-BZMTFAP3.mjs";
4
+ import {
5
+ D3ForceGraph
6
+ } from "./chunk-MGBT2ZFU.mjs";
7
+ import "./chunk-J5LGTIGS.mjs";
8
+
9
+ // src/components/ExplorerContainer.tsx
10
+ import React, { useCallback, useMemo, useState } from "react";
11
+ import { QueryBuilder } from "@dxos/echo-query";
12
+ import { useGlobalSearch } from "@dxos/plugin-search";
13
+ import { getSpace } from "@dxos/react-client/echo";
14
+ import { Toolbar } from "@dxos/react-ui";
15
+ import { QueryEditor } from "@dxos/react-ui-components";
16
+ import { Layout } from "@dxos/react-ui-mosaic";
17
+ var ExplorerContainer = ({ role, subject: view }) => {
18
+ const space = getSpace(view);
19
+ const [filter, setFilter] = useState();
20
+ const model = useGraphModel(space, filter);
21
+ const { match } = useGlobalSearch();
22
+ const builder = useMemo(() => new QueryBuilder(), []);
23
+ const handleChange = useCallback((value) => {
24
+ setFilter(builder.build(value).filter);
25
+ }, []);
26
+ const showToolbar = role === "article";
27
+ if (!space || !model) {
28
+ return null;
29
+ }
30
+ return /* @__PURE__ */ React.createElement(Layout.Main, {
31
+ role,
32
+ toolbar: showToolbar
33
+ }, showToolbar && /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(QueryEditor, {
34
+ db: space.db,
35
+ onChange: handleChange
36
+ })), /* @__PURE__ */ React.createElement(D3ForceGraph, {
37
+ model,
38
+ match
39
+ }));
40
+ };
41
+ var ExplorerContainer_default = ExplorerContainer;
42
+ export {
43
+ ExplorerContainer_default as default
44
+ };
45
+ //# sourceMappingURL=ExplorerContainer-BFAWRIAJ.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 SurfaceComponentProps } from '@dxos/app-framework/react';\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 { Layout } from '@dxos/react-ui-mosaic';\nimport { type View } from '@dxos/schema';\n\nimport { useGraphModel } from '../hooks';\n\nimport { D3ForceGraph } from './Graph';\n\nexport type ExplorerContainerProps = SurfaceComponentProps<View.View>;\n\nconst ExplorerContainer = ({ role, subject: 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 <Layout.Main role={role} 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 </Layout.Main>\n );\n};\n\nexport default ExplorerContainer;\n"],
5
+ "mappings": ";;;;;;;;;AAIA,OAAOA,SAASC,aAAaC,SAASC,gBAAgB;AAItD,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,gBAAgB;AACzB,SAASC,eAAe;AACxB,SAASC,mBAA0C;AACnD,SAASC,cAAc;AASvB,IAAMC,oBAAoB,CAAC,EAAEC,MAAMC,SAASC,KAAI,MAA0B;AACxE,QAAMC,QAAQC,SAASF,IAAAA;AACvB,QAAM,CAACG,QAAQC,SAAAA,IAAaC,SAAAA;AAC5B,QAAMC,QAAQC,cAAcN,OAAOE,MAAAA;AACnC,QAAM,EAAEK,MAAK,IAAKC,gBAAAA;AAElB,QAAMC,UAAUC,QAAQ,MAAM,IAAIC,aAAAA,GAAgB,CAAA,CAAE;AACpD,QAAMC,eAAeC,YAAuD,CAACC,UAAAA;AAC3EX,cAAUM,QAAQM,MAAMD,KAAAA,EAAOZ,MAAM;EACvC,GAAG,CAAA,CAAE;AAEL,QAAMc,cAAcnB,SAAS;AAE7B,MAAI,CAACG,SAAS,CAACK,OAAO;AACpB,WAAO;EACT;AAEA,SACE,sBAAA,cAACY,OAAOC,MAAI;IAACrB;IAAYsB,SAASH;KAC/BA,eACC,sBAAA,cAACI,QAAQC,MAAI,MACX,sBAAA,cAACC,aAAAA;IAAYC,IAAIvB,MAAMuB;IAAIC,UAAUZ;OAGzC,sBAAA,cAACa,cAAAA;IAAapB;IAAcE;;AAGlC;AAEA,IAAA,4BAAeX;",
6
+ "names": ["React", "useCallback", "useMemo", "useState", "QueryBuilder", "useGlobalSearch", "getSpace", "Toolbar", "QueryEditor", "Layout", "ExplorerContainer", "role", "subject", "view", "space", "getSpace", "filter", "setFilter", "useState", "model", "useGraphModel", "match", "useGlobalSearch", "builder", "useMemo", "QueryBuilder", "handleChange", "useCallback", "value", "build", "showToolbar", "Layout", "Main", "toolbar", "Toolbar", "Root", "QueryEditor", "db", "onChange", "D3ForceGraph"]
7
+ }
@@ -1,5 +1,4 @@
1
1
  // src/components/Chart/Chart.tsx
2
- import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
3
2
  import * as Plot from "@observablehq/plot";
4
3
  import React, { useEffect } from "react";
5
4
  import { useResizeDetector } from "react-resize-detector";
@@ -17,49 +16,43 @@ var defaultOptions = {
17
16
  fillOpacity: 0.2
18
17
  };
19
18
  var Chart = ({ items = [], accessor, options = defaultOptions }) => {
20
- var _effect = _useSignals();
21
- try {
22
- const { ref: containerRef, width = 0, height = 0 } = useResizeDetector({
23
- refreshRate: 200
24
- });
25
- useEffect(() => {
26
- if (!width || !height) {
27
- return;
28
- }
29
- const plot3 = Plot.plot({
30
- grid: true,
31
- width,
32
- height,
33
- style: {
34
- background: "transparent"
35
- },
36
- marks: [
37
- Plot.frame(),
38
- Plot.dot(items, {
39
- x: createAdapter("x", accessor),
40
- y: createAdapter("y", accessor),
41
- ...options
42
- })
43
- ]
44
- });
45
- containerRef.current.append(plot3);
46
- return () => plot3?.remove();
47
- }, [
48
- items,
19
+ const { ref: containerRef, width = 0, height = 0 } = useResizeDetector({
20
+ refreshRate: 200
21
+ });
22
+ useEffect(() => {
23
+ if (!width || !height) {
24
+ return;
25
+ }
26
+ const plot3 = Plot.plot({
27
+ grid: true,
49
28
  width,
50
- height
51
- ]);
52
- return /* @__PURE__ */ React.createElement("div", {
53
- ref: containerRef,
54
- className: "grow"
29
+ height,
30
+ style: {
31
+ background: "transparent"
32
+ },
33
+ marks: [
34
+ Plot.frame(),
35
+ Plot.dot(items, {
36
+ x: createAdapter("x", accessor),
37
+ y: createAdapter("y", accessor),
38
+ ...options
39
+ })
40
+ ]
55
41
  });
56
- } finally {
57
- _effect.f();
58
- }
42
+ containerRef.current.append(plot3);
43
+ return () => plot3?.remove();
44
+ }, [
45
+ items,
46
+ width,
47
+ height
48
+ ]);
49
+ return /* @__PURE__ */ React.createElement("div", {
50
+ ref: containerRef,
51
+ className: "grow"
52
+ });
59
53
  };
60
54
 
61
55
  // src/components/Globe/Globe.tsx
62
- import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
63
56
  import * as Plot2 from "@observablehq/plot";
64
57
  import React2, { useEffect as useEffect2 } from "react";
65
58
  import { useResizeDetector as useResizeDetector2 } from "react-resize-detector";
@@ -10773,68 +10766,63 @@ var defaultOptions2 = {
10773
10766
  fill: "#003300"
10774
10767
  };
10775
10768
  var Globe = ({ items = [], accessor, projection = "orthographic", options = defaultOptions2 }) => {
10776
- var _effect = _useSignals2();
10777
- try {
10778
- const { ref: containerRef, width = 0, height = 0 } = useResizeDetector2({
10779
- refreshRate: 200
10780
- });
10781
- const land = topojson.feature(countries_110m_default, countries_110m_default.objects.land);
10782
- useEffect2(() => {
10783
- if (!width || !height) {
10784
- return;
10785
- }
10786
- const plot3 = Plot2.plot({
10787
- // https://observablehq.com/plot/features/projections
10788
- projection: {
10789
- type: projection,
10790
- rotate: [
10791
- -100,
10792
- -20
10793
- ]
10794
- },
10795
- // projection: { type: 'equirectangular', rotate: [-140, -30] },
10796
- width,
10797
- height,
10798
- style: {
10799
- background: "transparent"
10800
- },
10801
- // TODO(burdon): Create simple wrapper for Plot with good defaults.
10802
- marks: [
10803
- Plot2.sphere({
10804
- fill: "lightblue",
10805
- fillOpacity: 0.5
10806
- }),
10807
- Plot2.geo(land, {
10808
- fill: "darkgreen",
10809
- fillOpacity: 0.5
10810
- }),
10811
- Plot2.graticule(),
10812
- Plot2.dot(items, {
10813
- x: createAdapter("lat", accessor),
10814
- y: createAdapter("lng", accessor),
10815
- ...options
10816
- })
10769
+ const { ref: containerRef, width = 0, height = 0 } = useResizeDetector2({
10770
+ refreshRate: 200
10771
+ });
10772
+ const land = topojson.feature(countries_110m_default, countries_110m_default.objects.land);
10773
+ useEffect2(() => {
10774
+ if (!width || !height) {
10775
+ return;
10776
+ }
10777
+ const plot3 = Plot2.plot({
10778
+ // https://observablehq.com/plot/features/projections
10779
+ projection: {
10780
+ type: projection,
10781
+ rotate: [
10782
+ -100,
10783
+ -20
10817
10784
  ]
10818
- });
10819
- containerRef.current.append(plot3);
10820
- return () => plot3?.remove();
10821
- }, [
10822
- items,
10785
+ },
10786
+ // projection: { type: 'equirectangular', rotate: [-140, -30] },
10823
10787
  width,
10824
- height
10825
- ]);
10826
- return /* @__PURE__ */ React2.createElement("div", {
10827
- ref: containerRef,
10828
- className: "grow p-4"
10788
+ height,
10789
+ style: {
10790
+ background: "transparent"
10791
+ },
10792
+ // TODO(burdon): Create simple wrapper for Plot with good defaults.
10793
+ marks: [
10794
+ Plot2.sphere({
10795
+ fill: "lightblue",
10796
+ fillOpacity: 0.5
10797
+ }),
10798
+ Plot2.geo(land, {
10799
+ fill: "darkgreen",
10800
+ fillOpacity: 0.5
10801
+ }),
10802
+ Plot2.graticule(),
10803
+ Plot2.dot(items, {
10804
+ x: createAdapter("lat", accessor),
10805
+ y: createAdapter("lng", accessor),
10806
+ ...options
10807
+ })
10808
+ ]
10829
10809
  });
10830
- } finally {
10831
- _effect.f();
10832
- }
10810
+ containerRef.current.append(plot3);
10811
+ return () => plot3?.remove();
10812
+ }, [
10813
+ items,
10814
+ width,
10815
+ height
10816
+ ]);
10817
+ return /* @__PURE__ */ React2.createElement("div", {
10818
+ ref: containerRef,
10819
+ className: "grow p-4"
10820
+ });
10833
10821
  };
10834
10822
 
10835
10823
  // src/components/Tree/Tree.tsx
10836
- import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
10837
- import React3, { useEffect as useEffect3, useRef, useState } from "react";
10824
+ import { RegistryContext } from "@effect-atom/atom-react";
10825
+ import React3, { useContext, useEffect as useEffect3, useRef, useState } from "react";
10838
10826
  import { useAsyncState } from "@dxos/react-ui";
10839
10827
  import { SVG } from "@dxos/react-ui-graph";
10840
10828
  import { SpaceGraphModel } from "@dxos/schema";
@@ -10975,6 +10963,7 @@ var TidyTree_default = TidyTree;
10975
10963
  // src/components/Tree/types/tree.ts
10976
10964
  import * as Schema from "effect/Schema";
10977
10965
  import { Key, Obj, Type } from "@dxos/echo";
10966
+ import { TestSchema } from "@dxos/echo/testing";
10978
10967
  import { invariant } from "@dxos/invariant";
10979
10968
  var TreeNodeType = Schema.Struct({
10980
10969
  id: Key.ObjectId,
@@ -10983,7 +10972,7 @@ var TreeNodeType = Schema.Struct({
10983
10972
  key: Schema.String,
10984
10973
  value: Schema.Any
10985
10974
  })),
10986
- ref: Schema.optional(Type.Ref(Type.Expando))
10975
+ ref: Schema.optional(Type.Ref(TestSchema.Expando))
10987
10976
  }).pipe(Schema.mutable);
10988
10977
  var TreeType = Schema.Struct({
10989
10978
  root: Key.ObjectId,
@@ -10991,7 +10980,7 @@ var TreeType = Schema.Struct({
10991
10980
  key: Key.ObjectId,
10992
10981
  value: TreeNodeType
10993
10982
  }))
10994
- }).pipe(Type.Obj({
10983
+ }).pipe(Type.object({
10995
10984
  typename: "dxos.org/type/Tree",
10996
10985
  version: "0.1.0"
10997
10986
  }));
@@ -11023,61 +11012,59 @@ var renderers = /* @__PURE__ */ new Map([
11023
11012
  ]
11024
11013
  ]);
11025
11014
  var Tree = ({ space, selected, variant = "tidy", onNodeClick }) => {
11026
- var _effect = _useSignals3();
11027
- try {
11028
- const [model] = useAsyncState(async () => space ? new SpaceGraphModel().open(space) : void 0, [
11029
- space,
11030
- selected
11031
- ]);
11032
- const [tree3, setTree] = useState();
11033
- useEffect3(() => {
11034
- return model?.subscribe(() => {
11035
- const tree4 = mapGraphToTreeData(model);
11036
- setTree(tree4);
11037
- }, true);
11038
- }, [
11039
- model
11040
- ]);
11041
- const context = useRef(null);
11042
- useEffect3(() => {
11043
- if (context.current?.size) {
11044
- const { width, height } = context.current.size;
11045
- const size = Math.min(width, height);
11046
- const radius = size * 0.4;
11047
- const options = {
11048
- // TODO(burdon): Type.
11049
- label: (d) => d.label ?? d.id,
11050
- width,
11051
- height,
11052
- radius,
11053
- marginLeft: (width - radius * 2) / 2,
11054
- marginRight: (width - radius * 2) / 2,
11055
- marginTop: (height - radius * 2) / 2,
11056
- marginBottom: (height - radius * 2) / 2,
11057
- slots: defaultTreeLayoutSlots
11058
- };
11059
- if (tree3) {
11060
- const renderer = renderers.get(variant);
11061
- renderer?.(context.current.svg, tree3, options);
11062
- }
11015
+ const registry = useContext(RegistryContext);
11016
+ const [model] = useAsyncState(async () => space ? new SpaceGraphModel(registry).open(space.db) : void 0, [
11017
+ space,
11018
+ selected,
11019
+ registry
11020
+ ]);
11021
+ const [tree3, setTree] = useState();
11022
+ useEffect3(() => {
11023
+ return model?.subscribe(() => {
11024
+ const tree4 = mapGraphToTreeData(model);
11025
+ setTree(tree4);
11026
+ }, true);
11027
+ }, [
11028
+ model
11029
+ ]);
11030
+ const context = useRef(null);
11031
+ useEffect3(() => {
11032
+ if (context.current?.size) {
11033
+ const { width, height } = context.current.size;
11034
+ const size = Math.min(width, height);
11035
+ const radius = size * 0.4;
11036
+ const options = {
11037
+ // TODO(burdon): Type.
11038
+ label: (d) => d.label ?? d.id,
11039
+ width,
11040
+ height,
11041
+ radius,
11042
+ marginLeft: (width - radius * 2) / 2,
11043
+ marginRight: (width - radius * 2) / 2,
11044
+ marginTop: (height - radius * 2) / 2,
11045
+ marginBottom: (height - radius * 2) / 2,
11046
+ slots: defaultTreeLayoutSlots
11047
+ };
11048
+ if (tree3) {
11049
+ const renderer = renderers.get(variant);
11050
+ renderer?.(context.current.svg, tree3, options);
11063
11051
  }
11064
- }, [
11065
- context.current,
11066
- tree3
11067
- ]);
11068
- return /* @__PURE__ */ React3.createElement("div", {
11069
- onClick: () => onNodeClick?.()
11070
- }, /* @__PURE__ */ React3.createElement(SVG.Root, {
11071
- ref: context
11072
- }));
11073
- } finally {
11074
- _effect.f();
11075
- }
11052
+ }
11053
+ }, [
11054
+ context.current,
11055
+ tree3
11056
+ ]);
11057
+ return /* @__PURE__ */ React3.createElement("div", {
11058
+ className: "grow",
11059
+ onClick: () => onNodeClick?.()
11060
+ }, /* @__PURE__ */ React3.createElement(SVG.Root, {
11061
+ ref: context
11062
+ }));
11076
11063
  };
11077
11064
 
11078
11065
  // src/components/index.ts
11079
11066
  import { lazy } from "react";
11080
- var ExplorerContainer = lazy(() => import("./ExplorerContainer-L5RVUJRL.mjs"));
11067
+ var ExplorerContainer = lazy(() => import("./ExplorerContainer-BFAWRIAJ.mjs"));
11081
11068
 
11082
11069
  export {
11083
11070
  Chart,
@@ -11086,4 +11073,4 @@ export {
11086
11073
  Tree,
11087
11074
  ExplorerContainer
11088
11075
  };
11089
- //# sourceMappingURL=chunk-CRN65FY3.mjs.map
11076
+ //# sourceMappingURL=chunk-AGZAGILW.mjs.map