@dxos/plugin-explorer 0.8.3 → 0.8.4-main.1da679c

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 (113) hide show
  1. package/dist/lib/browser/{ExplorerContainer-DXL34I3F.mjs → ExplorerContainer-7MTDS2TQ.mjs} +4 -4
  2. package/dist/lib/browser/{ExplorerContainer-DXL34I3F.mjs.map → ExplorerContainer-7MTDS2TQ.mjs.map} +2 -2
  3. package/dist/lib/browser/{chunk-SLB2F5AO.mjs → chunk-2MKBRIUT.mjs} +7 -6
  4. package/dist/lib/browser/chunk-2MKBRIUT.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-Z5BGAHLD.mjs → chunk-3YITRGGW.mjs} +27 -11
  6. package/dist/lib/browser/{chunk-Z5BGAHLD.mjs.map → chunk-3YITRGGW.mjs.map} +3 -3
  7. package/dist/lib/browser/{chunk-73YTQHOT.mjs → chunk-CZZ3DDR7.mjs} +4 -4
  8. package/dist/lib/browser/{chunk-73YTQHOT.mjs.map → chunk-CZZ3DDR7.mjs.map} +2 -2
  9. package/dist/lib/browser/{chunk-OBAFAA5V.mjs → chunk-UL5EDJPE.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-JRKQNHS6.mjs → chunk-VNOGW2JS.mjs} +49 -37
  11. package/dist/lib/browser/{chunk-JRKQNHS6.mjs.map → chunk-VNOGW2JS.mjs.map} +3 -3
  12. package/dist/lib/browser/index.mjs +19 -18
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/intent-resolver-RGPYMKAU.mjs +24 -0
  15. package/dist/lib/browser/{intent-resolver-JZKYVFQJ.mjs.map → intent-resolver-RGPYMKAU.mjs.map} +3 -3
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/meta.mjs +1 -1
  18. package/dist/lib/browser/{react-surface-IAEP2GBT.mjs → react-surface-6MSROCJS.mjs} +8 -8
  19. package/dist/lib/browser/{react-surface-IAEP2GBT.mjs.map → react-surface-6MSROCJS.mjs.map} +1 -1
  20. package/dist/lib/browser/types/index.mjs +2 -2
  21. package/dist/lib/node-esm/{ExplorerContainer-MFE7PXF4.mjs → ExplorerContainer-OBSRVHZZ.mjs} +4 -4
  22. package/dist/lib/node-esm/{ExplorerContainer-MFE7PXF4.mjs.map → ExplorerContainer-OBSRVHZZ.mjs.map} +2 -2
  23. package/dist/lib/node-esm/{chunk-VSORIAHH.mjs → chunk-3ODK27PU.mjs} +7 -6
  24. package/dist/lib/node-esm/chunk-3ODK27PU.mjs.map +7 -0
  25. package/dist/lib/node-esm/{chunk-N6VEANUZ.mjs → chunk-4GWDNZ4Z.mjs} +4 -4
  26. package/dist/lib/node-esm/{chunk-N6VEANUZ.mjs.map → chunk-4GWDNZ4Z.mjs.map} +2 -2
  27. package/dist/lib/node-esm/{chunk-AE7VHUJM.mjs → chunk-GFYXDQQV.mjs} +27 -11
  28. package/dist/lib/node-esm/{chunk-AE7VHUJM.mjs.map → chunk-GFYXDQQV.mjs.map} +3 -3
  29. package/dist/lib/node-esm/{chunk-IUFYOE44.mjs → chunk-ODMJ7DPA.mjs} +49 -37
  30. package/dist/lib/node-esm/{chunk-IUFYOE44.mjs.map → chunk-ODMJ7DPA.mjs.map} +3 -3
  31. package/dist/lib/node-esm/{chunk-3CMBLK6W.mjs → chunk-PIAXA43R.mjs} +2 -2
  32. package/dist/lib/node-esm/index.mjs +19 -18
  33. package/dist/lib/node-esm/index.mjs.map +3 -3
  34. package/dist/lib/node-esm/{intent-resolver-7G6ZKM6E.mjs → intent-resolver-LTIB6F2Q.mjs} +7 -7
  35. package/dist/lib/node-esm/{intent-resolver-7G6ZKM6E.mjs.map → intent-resolver-LTIB6F2Q.mjs.map} +3 -3
  36. package/dist/lib/node-esm/meta.json +1 -1
  37. package/dist/lib/node-esm/meta.mjs +1 -1
  38. package/dist/lib/node-esm/{react-surface-XBH3WZDL.mjs → react-surface-ZEM4IXFU.mjs} +8 -8
  39. package/dist/lib/node-esm/{react-surface-XBH3WZDL.mjs.map → react-surface-ZEM4IXFU.mjs.map} +1 -1
  40. package/dist/lib/node-esm/types/index.mjs +2 -2
  41. package/dist/types/src/capabilities/index.d.ts +2 -2
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  44. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  46. package/dist/types/src/components/Chart/Chart.d.ts.map +1 -1
  47. package/dist/types/src/components/Chart/Chart.stories.d.ts +5 -3
  48. package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
  49. package/dist/types/src/components/ExplorerContainer.d.ts.map +1 -1
  50. package/dist/types/src/components/Globe/Globe.d.ts.map +1 -1
  51. package/dist/types/src/components/Globe/Globe.stories.d.ts +5 -3
  52. package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
  53. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +17 -3
  54. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +1 -1
  55. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +10 -3
  56. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  57. package/dist/types/src/components/Graph/testing.d.ts +1 -1
  58. package/dist/types/src/components/Graph/testing.d.ts.map +1 -1
  59. package/dist/types/src/components/Tree/Tree.stories.d.ts +13 -15
  60. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  61. package/dist/types/src/hooks/useGraphModel.d.ts +2 -2
  62. package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
  63. package/dist/types/src/translations.d.ts +16 -23
  64. package/dist/types/src/translations.d.ts.map +1 -1
  65. package/dist/types/src/types/types.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +41 -31
  68. package/src/ExplorerPlugin.tsx +3 -3
  69. package/src/capabilities/intent-resolver.ts +1 -1
  70. package/src/components/Chart/Chart.stories.tsx +5 -4
  71. package/src/components/Chart/Chart.tsx +1 -1
  72. package/src/components/ExplorerContainer.tsx +2 -1
  73. package/src/components/Globe/Globe.stories.tsx +10 -9
  74. package/src/components/Globe/Globe.tsx +1 -1
  75. package/src/components/Graph/D3ForceGraph.stories.tsx +10 -7
  76. package/src/components/Graph/D3ForceGraph.tsx +1 -1
  77. package/src/components/Graph/ForceGraph.stories.tsx +10 -7
  78. package/src/components/Graph/ForceGraph.tsx +2 -2
  79. package/src/components/Graph/testing.ts +2 -2
  80. package/src/components/Tree/Tree.stories.tsx +27 -19
  81. package/src/components/Tree/Tree.tsx +1 -1
  82. package/src/components/Tree/types/tree.test.ts +4 -3
  83. package/src/hooks/useGraphModel.ts +5 -4
  84. package/src/translations.ts +8 -6
  85. package/src/types/types.ts +2 -1
  86. package/dist/lib/browser/chunk-SLB2F5AO.mjs.map +0 -7
  87. package/dist/lib/browser/intent-resolver-JZKYVFQJ.mjs +0 -24
  88. package/dist/lib/node/ExplorerContainer-VUXH55VV.cjs +0 -61
  89. package/dist/lib/node/ExplorerContainer-VUXH55VV.cjs.map +0 -7
  90. package/dist/lib/node/chunk-4T4LCT5R.cjs +0 -52
  91. package/dist/lib/node/chunk-4T4LCT5R.cjs.map +0 -7
  92. package/dist/lib/node/chunk-BCDVG2CH.cjs +0 -44
  93. package/dist/lib/node/chunk-BCDVG2CH.cjs.map +0 -7
  94. package/dist/lib/node/chunk-MLRYW4WQ.cjs +0 -56
  95. package/dist/lib/node/chunk-MLRYW4WQ.cjs.map +0 -7
  96. package/dist/lib/node/chunk-SVU4VMYX.cjs +0 -11339
  97. package/dist/lib/node/chunk-SVU4VMYX.cjs.map +0 -7
  98. package/dist/lib/node/chunk-TY543HPV.cjs +0 -214
  99. package/dist/lib/node/chunk-TY543HPV.cjs.map +0 -7
  100. package/dist/lib/node/index.cjs +0 -130
  101. package/dist/lib/node/index.cjs.map +0 -7
  102. package/dist/lib/node/intent-resolver-G2MFNIXA.cjs +0 -39
  103. package/dist/lib/node/intent-resolver-G2MFNIXA.cjs.map +0 -7
  104. package/dist/lib/node/meta.cjs +0 -31
  105. package/dist/lib/node/meta.cjs.map +0 -7
  106. package/dist/lib/node/meta.json +0 -1
  107. package/dist/lib/node/react-surface-UJD5RGRZ.cjs +0 -53
  108. package/dist/lib/node/react-surface-UJD5RGRZ.cjs.map +0 -7
  109. package/dist/lib/node/types/index.cjs +0 -32
  110. package/dist/lib/node/types/index.cjs.map +0 -7
  111. package/dist/lib/node-esm/chunk-VSORIAHH.mjs.map +0 -7
  112. /package/dist/lib/browser/{chunk-OBAFAA5V.mjs.map → chunk-UL5EDJPE.mjs.map} +0 -0
  113. /package/dist/lib/node-esm/{chunk-3CMBLK6W.mjs.map → chunk-PIAXA43R.mjs.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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, { type FC, 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 { getHashColor } from '@dxos/react-ui-theme';\nimport { type SpaceGraphNode, type SpaceGraphModel, type SpaceGraphEdge } 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: FC<D3ForceGraphProps> = ({ classNames, model, selection: _selection, grid, ...props }) => {\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: getHashColor(obj && Obj.getTypename(obj))?.color,\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 { filterObjectsSync, type SearchResult } 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>();\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 = undefined;\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": ";;;;AAIA,OAAOA,SAAkBC,aAAaC,WAAWC,SAASC,cAAc;AAExE,SAASC,WAAW;AACpB,SAASC,sBAAsB;AAE/B,SAEEC,qBAGAC,WAEK;AACP,SAASC,oBAAoB;AAG7B,OAAO;AAWA,IAAMC,eAAsC,CAAC,EAAEC,YAAYC,OAAOC,WAAWC,YAAYC,MAAM,GAAGC,MAAAA,MAAO;;;AAC9G,UAAMC,UAAUC,OAAmB,IAAA;AACnC,UAAMC,YAAYC,QAAyC,MAAA;AACzD,UAAIH,QAAQI,SAAS;AACnB,eAAO,IAAIC,oBAAoBL,QAAQI,SAAS;UAC9CE,YAAY;YACVC,WAAW,CAACC,SAAAA;AAGV,qBAAOA,KAAKC,MAAMC,QAAQC,WAAW;YACvC;UACF;UACAC,QAAQ;YACNC,OAAO;cACLC,UAAU;YACZ;UACF;QACF,CAAA;MACF;IACF,GAAG;MAACd,QAAQI;KAAQ;AAEpB,UAAMW,QAAQd,OAAwB,IAAA;AACtC,UAAML,YAAYO,QAAQ,MAAMN,cAAc,IAAImB,eAAAA,GAAkB;MAACnB;KAAW;AAChFoB,cAAU,MAAMF,MAAMX,SAASc,QAAAA,GAAW;MAACtB,UAAUuB,SAASC;KAAM;AAEpE,UAAMC,eAAeC,YACnB,CAACC,SAAAA;AACC,UAAI3B,UAAU4B,SAASD,KAAKE,EAAE,GAAG;AAC/B7B,kBAAU8B,OAAOH,KAAKE,EAAE;MAC1B,OAAO;AACL7B,kBAAU+B,IAAIJ,KAAKE,EAAE;MACvB;IACF,GACA;MAAC7B;KAAU;AAGb,WACE,sBAAA,cAACgC,IAAIC,MAAI;MAACC,KAAK9B;MAASN;OACtB,sBAAA,cAACkC,IAAIG,SAAO,IAAA,GACXjC,QAAQ,sBAAA,cAAC8B,IAAII,MAAI;MAACC,MAAAA;QACnB,sBAAA,cAACL,IAAIM,MAAI;MAACC,QAAQ;QAAC,IAAI;QAAG;;OACxB,sBAAA,cAACP,IAAIQ,OAAK;MACP,GAAGrC;MACJ+B,KAAKf;MACLpB;MACAO;MACAmC,QAAQ;QACNC,MAAM,CAACf,SAAAA;AACL,iBAAOA,KAAKd,MAAMA,KAAK8B,SAAShB,KAAKE;QACvC;MACF;MACAnB,YAAY;QACViB,MAAM,CAACA,SAAAA;AACL,gBAAMiB,MAAMjB,KAAKd,MAAMA,KAAKC;AAC5B,iBAAO;YACLD,MAAM;cACJgC,OAAOC,aAAaF,OAAOG,IAAIC,YAAYJ,GAAAA,CAAAA,GAAOC;YACpD;YACAI,SAAS;cACP,eAAejD,UAAU4B,SAASD,KAAKE,EAAE;YAC3C;UACF;QACF;MACF;MACAqB,UAAUzB;;;;;AAKpB;;;;AChGA,SAAS0B,WAAWC,qBAAqB;AACzC,OAAOC,sBAAsB;AAC7B,OAAOC,UAAkBC,aAAAA,YAAWC,UAAAA,SAAQC,gBAAgB;AAC5D,SAASC,yBAAyB;AAElC,SAASC,yBAA4C;;;ACc9C,IAAMC,eAAN,MAAMA;EAIX,YAA6BC,OAAc;SAAdA,QAAAA;SAHZC,SAAsB,CAAA;SACtBC,SAAsB,CAAA;AAGrC,SAAKD,SAASD,MAAMG,MAAMC,IAAI,CAACC,UAAU;MACvCC,IAAID,KAAKC;MACTC,MAAMF,KAAKE;MACXC,MAAMH,KAAKG;IACb,EAAA;AAEA,SAAKN,SAASF,MAAMS,MAAML,IAAI,CAACM,UAAU;MACvCH,MAAMG,KAAKH;MACXI,QAAQD,KAAKC;MACbC,QAAQF,KAAKE;MACbJ,MAAME,KAAKF;IACb,EAAA;EACF;EAEA,IAAIL,QAAQ;AACV,WAAO,KAAKF;EACd;EAEA,IAAIY,QAAQ;AACV,WAAO,KAAKX;EACd;AACF;;;AD9BO,IAAMY,aAAkC,CAAC,EAAEC,OAAOC,MAAK,MAAE;;;AAC9D,UAAM,EAAEC,KAAKC,OAAOC,OAAM,IAAKC,kBAAkB;MAAEC,aAAa;IAAI,CAAA;AACpE,UAAMC,UAAUC,QAAuB,IAAA;AACvC,UAAMC,aAAaD,QAAAA;AAEnB,UAAME,cAAcF,QAAAA;AACpBE,gBAAYC,UAAUC,kBAAkBZ,OAAOa,WAAW,CAAA,GAAIZ,KAAAA;AAE9D,UAAM,CAACa,MAAMC,OAAAA,IAAWC,SAAAA;AACxBC,IAAAA,WAAU,MAAA;AACR,aAAOjB,OAAOkB,UAAU,CAAClB,WAAAA;AACvBe,gBAAQ,IAAII,aAAanB,OAAMoB,KAAK,CAAA;MACtC,CAAA;IACF,GAAG;MAACpB;KAAM;AAEViB,IAAAA,WAAU,MAAA;AACR,UAAIV,QAAQI,SAAS;AAGnBF,mBAAWE,UAAU,IAAIU,iBAAiBd,QAAQI,OAAO,EAEtDW,YAAY,CAAA,EACZC,UAAU,CAACC,SAAeA,KAAKC,SAAS,WAAWD,KAAKV,KAAKY,WAAWF,KAAKV,KAAKa,SAASH,KAAKI,EAAE,EAClGC,gBAAgB,CAACL,SAAeA,KAAKC,SAAS,WAAW,WAAWD,KAAKV,KAAKY,QAAQ,EAGtFI,gBAAgB,CAACC,SAAcA,KAAKN,IAAI;MAC7C;AAEA,aAAO,MAAA;AACLhB,mBAAWE,SAASqB,eAAAA,EAAiBC,UAAU;UAAEC,OAAO,CAAA;UAAIC,OAAO,CAAA;QAAG,CAAA;AACtE1B,mBAAWE,UAAUyB;MACvB;IACF,GAAG,CAAA,CAAE;AAELnB,IAAAA,WAAU,MAAA;AACR,UAAI,CAACH,QAAQ,CAACX,SAAS,CAACC,UAAU,CAACK,WAAWE,SAAS;AACrD;MACF;AAGAF,iBAAWE,QACRqB,eAAc,EACd7B,MAAMA,KAAAA,EACNC,OAAOA,MAAAA,EACPiC,aAAa,MAAA;AACZC,wBAAAA;MACF,CAAA,EACCC,YAAY,CAACf,SAAAA;AACZf,mBAAWE,SAAS6B,aAAahB,IAAAA;MACnC,CAAA,EAICiB,QAAQ,QAAQC,UAAAA,EAAYC,SAAS,GAAA,EAAKC,SAAS,GAAA,CAAA,EACnDH,QAAQ,UAAUI,cAAAA,EAAgBD,SAAS,GAAC,CAAA,EAE5CX,UAAUnB,IAAAA,EACVgC,YAAY,GAAA,EACZC,aAAa,GAAA,EACbC,gBAAe;IACpB,GAAG;MAAClC;MAAMX;MAAOC;MAAQK,WAAWE;KAAQ;AAE5C,UAAM2B,kBAAkB,MAAA;AACtB7B,iBAAWE,SAASsC,UAAU,KAAK,EAAA;IACrC;AAEA,WACE,gBAAAC,OAAA,cAACC,OAAAA;MAAIjD;MAAUkD,WAAU;MAAgBC,SAASf;OAChD,gBAAAY,OAAA,cAACC,OAAAA;MAAIjD,KAAKK;MAAS6C,WAAU;;;;;AAGnC;",
6
- "names": ["React", "useCallback", "useEffect", "useMemo", "useRef", "Obj", "SelectionModel", "GraphForceProjector", "SVG", "getHashColor", "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", "getHashColor", "Obj", "getTypename", "classes", "onSelect", "forceLink", "forceManyBody", "NativeForceGraph", "React", "useEffect", "useRef", "useState", "useResizeDetector", "filterObjectsSync", "GraphAdapter", "graph", "_nodes", "_links", "nodes", "map", "node", "id", "type", "data", "edges", "edge", "source", "target", "links", "ForceGraph", "model", "match", "ref", "width", "height", "useResizeDetector", "refreshRate", "rootRef", "useRef", "forceGraph", "filteredRef", "current", "filterObjectsSync", "objects", "data", "setData", "useState", "useEffect", "subscribe", "GraphAdapter", "graph", "NativeForceGraph", "nodeRelSize", "nodeLabel", "node", "type", "typename", "label", "id", "nodeAutoColorBy", "linkAutoColorBy", "link", "pauseAnimation", "graphData", "nodes", "links", "undefined", "onEngineStop", "handleZoomToFit", "onNodeClick", "emitParticle", "d3Force", "forceLink", "distance", "strength", "forceManyBody", "warmupTicks", "cooldownTime", "resumeAnimation", "zoomToFit", "React", "div", "className", "onClick"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, 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 { getHashColor } 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: FC<D3ForceGraphProps> = ({ classNames, model, selection: _selection, grid, ...props }) => {\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: getHashColor(obj && Obj.getTypename(obj))?.color,\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>();\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 = undefined;\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", "getHashColor", "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", "getHashColor", "Obj", "getTypename", "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", "undefined", "onEngineStop", "handleZoomToFit", "onNodeClick", "emitParticle", "d3Force", "forceLink", "distance", "strength", "forceManyBody", "warmupTicks", "cooldownTime", "resumeAnimation", "zoomToFit", "React", "div", "className", "onClick"]
7
7
  }
@@ -1,17 +1,17 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
- // packages/plugins/plugin-explorer/src/components/Chart/Chart.tsx
3
+ // src/components/Chart/Chart.tsx
4
4
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
5
5
  import * as Plot from "@observablehq/plot";
6
6
  import React, { useEffect } from "react";
7
7
  import { useResizeDetector } from "react-resize-detector";
8
8
 
9
- // packages/plugins/plugin-explorer/src/components/plot.ts
9
+ // src/components/plot.ts
10
10
  var createAdapter = (prop, accessor) => accessor ? {
11
11
  transform: (values) => values.map((value) => accessor(value)[prop])
12
12
  } : prop;
13
13
 
14
- // packages/plugins/plugin-explorer/src/components/Chart/Chart.tsx
14
+ // src/components/Chart/Chart.tsx
15
15
  var defaultOptions = {
16
16
  r: 4,
17
17
  stroke: "gray",
@@ -60,14 +60,14 @@ var Chart = ({ items = [], accessor, options = defaultOptions }) => {
60
60
  }
61
61
  };
62
62
 
63
- // packages/plugins/plugin-explorer/src/components/Globe/Globe.tsx
63
+ // src/components/Globe/Globe.tsx
64
64
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
65
65
  import * as Plot2 from "@observablehq/plot";
66
66
  import React2, { useEffect as useEffect2 } from "react";
67
67
  import { useResizeDetector as useResizeDetector2 } from "react-resize-detector";
68
68
  import * as topojson from "topojson-client";
69
69
 
70
- // packages/plugins/plugin-explorer/data/countries-110m.js
70
+ // data/countries-110m.js
71
71
  var countries_110m_default = {
72
72
  type: "Topology",
73
73
  objects: {
@@ -10769,7 +10769,7 @@ var countries_110m_default = {
10769
10769
  }
10770
10770
  };
10771
10771
 
10772
- // packages/plugins/plugin-explorer/src/components/Globe/Globe.tsx
10772
+ // src/components/Globe/Globe.tsx
10773
10773
  var defaultOptions2 = {
10774
10774
  r: 4,
10775
10775
  fill: "#003300"
@@ -10834,14 +10834,14 @@ var Globe = ({ items = [], accessor, projection = "orthographic", options = defa
10834
10834
  }
10835
10835
  };
10836
10836
 
10837
- // packages/plugins/plugin-explorer/src/components/Tree/Tree.tsx
10837
+ // src/components/Tree/Tree.tsx
10838
10838
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
10839
10839
  import React3, { useEffect as useEffect3, useRef, useState } from "react";
10840
10840
  import { useAsyncState } from "@dxos/react-ui";
10841
10841
  import { SVG } from "@dxos/react-ui-graph";
10842
10842
  import { SpaceGraphModel } from "@dxos/schema";
10843
10843
 
10844
- // packages/plugins/plugin-explorer/src/components/Tree/layout/HierarchicalEdgeBundling.ts
10844
+ // src/components/Tree/layout/HierarchicalEdgeBundling.ts
10845
10845
  import { cluster, curveBundle, hierarchy, lineRadial, select } from "d3";
10846
10846
  var HierarchicalEdgeBundling = (s, data, options) => {
10847
10847
  const svg = select(s);
@@ -10904,7 +10904,7 @@ var flatten = (node) => {
10904
10904
  };
10905
10905
  var HierarchicalEdgeBundling_default = HierarchicalEdgeBundling;
10906
10906
 
10907
- // packages/plugins/plugin-explorer/src/components/Tree/layout/RadialTree.ts
10907
+ // src/components/Tree/layout/RadialTree.ts
10908
10908
  import { hierarchy as hierarchy2, linkRadial, select as select2, tree } from "d3";
10909
10909
  var RadialTree = (s, data, options) => {
10910
10910
  const svg = select2(s);
@@ -10929,7 +10929,7 @@ var RadialTree = (s, data, options) => {
10929
10929
  };
10930
10930
  var RadialTree_default = RadialTree;
10931
10931
 
10932
- // packages/plugins/plugin-explorer/src/components/Tree/layout/TidyTree.ts
10932
+ // src/components/Tree/layout/TidyTree.ts
10933
10933
  import { curveBumpX, hierarchy as hierarchy3, link, select as select3, tree as tree2 } from "d3";
10934
10934
  var TidyTree = (s, data, options) => {
10935
10935
  const svg = select3(s);
@@ -10974,11 +10974,24 @@ var TidyTree = (s, data, options) => {
10974
10974
  };
10975
10975
  var TidyTree_default = TidyTree;
10976
10976
 
10977
- // packages/plugins/plugin-explorer/src/components/Tree/types/tree.ts
10977
+ // src/components/Tree/types/tree.ts
10978
10978
  import { Schema } from "effect";
10979
10979
  import { Key, Obj, Type } from "@dxos/echo";
10980
10980
  import { invariant } from "@dxos/invariant";
10981
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-explorer/src/components/Tree/types/tree.ts";
10981
+ function _define_property(obj, key, value) {
10982
+ if (key in obj) {
10983
+ Object.defineProperty(obj, key, {
10984
+ value,
10985
+ enumerable: true,
10986
+ configurable: true,
10987
+ writable: true
10988
+ });
10989
+ } else {
10990
+ obj[key] = value;
10991
+ }
10992
+ return obj;
10993
+ }
10994
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-explorer/src/components/Tree/types/tree.ts";
10982
10995
  var TreeNodeType = Schema.Struct({
10983
10996
  id: Key.ObjectId,
10984
10997
  children: Schema.mutable(Schema.Array(Key.ObjectId)),
@@ -10999,26 +11012,6 @@ var TreeType = Schema.Struct({
10999
11012
  version: "0.1.0"
11000
11013
  }));
11001
11014
  var Tree = class _Tree {
11002
- static {
11003
- this.create = () => {
11004
- const id = Key.ObjectId.random();
11005
- return Obj.make(TreeType, {
11006
- root: id,
11007
- nodes: {
11008
- [id]: {
11009
- id,
11010
- children: [],
11011
- data: {
11012
- text: ""
11013
- }
11014
- }
11015
- }
11016
- });
11017
- };
11018
- }
11019
- constructor(tree3) {
11020
- this._tree = tree3 ?? _Tree.create();
11021
- }
11022
11015
  get tree() {
11023
11016
  return this._tree;
11024
11017
  }
@@ -11236,15 +11229,34 @@ var Tree = class _Tree {
11236
11229
  ancestor.children.splice(parentIdx + 1, 0, node.id);
11237
11230
  node.children.push(...rest);
11238
11231
  }
11232
+ constructor(tree3) {
11233
+ _define_property(this, "_tree", void 0);
11234
+ this._tree = tree3 ?? _Tree.create();
11235
+ }
11239
11236
  };
11237
+ _define_property(Tree, "create", () => {
11238
+ const id = Key.ObjectId.random();
11239
+ return Obj.make(TreeType, {
11240
+ root: id,
11241
+ nodes: {
11242
+ [id]: {
11243
+ id,
11244
+ children: [],
11245
+ data: {
11246
+ text: ""
11247
+ }
11248
+ }
11249
+ }
11250
+ });
11251
+ });
11240
11252
 
11241
- // packages/plugins/plugin-explorer/src/components/Tree/types/types.ts
11253
+ // src/components/Tree/types/types.ts
11242
11254
  var mapGraphToTreeData = (model, maxDepth = 8) => {
11243
11255
  let data;
11244
11256
  return data;
11245
11257
  };
11246
11258
 
11247
- // packages/plugins/plugin-explorer/src/components/Tree/Tree.tsx
11259
+ // src/components/Tree/Tree.tsx
11248
11260
  var defaultTreeLayoutSlots = {
11249
11261
  node: "fill-blue-600",
11250
11262
  path: "fill-none stroke-blue-400 stroke-[0.5px]",
@@ -11317,9 +11329,9 @@ var Tree2 = ({ space, selected, variant = "tidy", onNodeClick }) => {
11317
11329
  }
11318
11330
  };
11319
11331
 
11320
- // packages/plugins/plugin-explorer/src/components/index.ts
11332
+ // src/components/index.ts
11321
11333
  import { lazy } from "react";
11322
- var ExplorerContainer = lazy(() => import("./ExplorerContainer-MFE7PXF4.mjs"));
11334
+ var ExplorerContainer = lazy(() => import("./ExplorerContainer-OBSRVHZZ.mjs"));
11323
11335
 
11324
11336
  export {
11325
11337
  Chart,
@@ -11328,4 +11340,4 @@ export {
11328
11340
  Tree2 as Tree,
11329
11341
  ExplorerContainer
11330
11342
  };
11331
- //# sourceMappingURL=chunk-IUFYOE44.mjs.map
11343
+ //# sourceMappingURL=chunk-ODMJ7DPA.mjs.map