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

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 (271) hide show
  1. package/LICENSE +102 -5
  2. package/dist/lib/neutral/ExplorerArticle-LLNHXWNG.mjs +420 -0
  3. package/dist/lib/neutral/ExplorerArticle-LLNHXWNG.mjs.map +7 -0
  4. package/dist/lib/neutral/ExplorerPlugin.mjs +10 -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/neutral/chunk-7FSP4SPO.mjs +69 -0
  8. package/dist/lib/neutral/chunk-7FSP4SPO.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-CWN2BELW.mjs +287 -0
  10. package/dist/lib/neutral/chunk-CWN2BELW.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-GRJXLL4Z.mjs +25 -0
  12. package/dist/lib/neutral/chunk-GRJXLL4Z.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-IKHJV3Q4.mjs +20 -0
  14. package/dist/lib/neutral/chunk-IKHJV3Q4.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-LL3PXKB5.mjs +40 -0
  16. package/dist/lib/neutral/chunk-LL3PXKB5.mjs.map +7 -0
  17. package/dist/lib/{browser/chunk-MOM5KCKC.mjs → neutral/components/index.mjs} +882 -556
  18. package/dist/lib/neutral/components/index.mjs.map +7 -0
  19. package/dist/lib/neutral/containers/index.mjs +9 -0
  20. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  21. package/dist/lib/neutral/create-object-F6TKVAGV.mjs +39 -0
  22. package/dist/lib/neutral/create-object-F6TKVAGV.mjs.map +7 -0
  23. package/dist/lib/neutral/hooks/index.mjs +45 -0
  24. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  25. package/dist/lib/neutral/index.mjs +14 -0
  26. package/dist/lib/neutral/meta.json +1 -0
  27. package/dist/lib/{browser → neutral}/meta.mjs +1 -1
  28. package/dist/lib/neutral/plugin.mjs +12 -0
  29. package/dist/lib/neutral/plugin.mjs.map +7 -0
  30. package/dist/lib/neutral/react-surface-APBW2VQG.mjs +26 -0
  31. package/dist/lib/neutral/react-surface-APBW2VQG.mjs.map +7 -0
  32. package/dist/lib/neutral/testing/index.mjs +193 -0
  33. package/dist/lib/neutral/testing/index.mjs.map +7 -0
  34. package/dist/lib/neutral/translations.mjs +33 -0
  35. package/dist/lib/neutral/translations.mjs.map +7 -0
  36. package/dist/lib/{browser → neutral}/types/index.mjs +1 -2
  37. package/dist/types/data/cities.d.ts +4 -4
  38. package/dist/types/data/cities.d.ts.map +1 -1
  39. package/dist/types/data/countries-110m.d.ts +19 -22
  40. package/dist/types/data/countries-110m.d.ts.map +1 -1
  41. package/dist/types/src/ExplorerPlugin.d.ts +3 -1
  42. package/dist/types/src/ExplorerPlugin.d.ts.map +1 -1
  43. package/dist/types/src/ExplorerPlugin.test.d.ts +2 -0
  44. package/dist/types/src/ExplorerPlugin.test.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/create-object.d.ts +11 -0
  46. package/dist/types/src/capabilities/create-object.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/index.d.ts +8 -2
  48. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  49. package/dist/types/src/capabilities/react-surface.d.ts +3 -2
  50. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  51. package/dist/types/src/components/Chart/Chart.d.ts +1 -1
  52. package/dist/types/src/components/Chart/Chart.d.ts.map +1 -1
  53. package/dist/types/src/components/Chart/Chart.stories.d.ts +4 -1
  54. package/dist/types/src/components/Chart/Chart.stories.d.ts.map +1 -1
  55. package/dist/types/src/components/Globe/Globe.d.ts +1 -1
  56. package/dist/types/src/components/Globe/Globe.d.ts.map +1 -1
  57. package/dist/types/src/components/Globe/Globe.stories.d.ts +5 -2
  58. package/dist/types/src/components/Globe/Globe.stories.d.ts.map +1 -1
  59. package/dist/types/src/components/Graph/CanvasForceGraph.d.ts +13 -0
  60. package/dist/types/src/components/Graph/CanvasForceGraph.d.ts.map +1 -0
  61. package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts +17 -0
  62. package/dist/types/src/components/Graph/CanvasForceGraph.stories.d.ts.map +1 -0
  63. package/dist/types/src/components/Graph/ForceGraph.d.ts +12 -5
  64. package/dist/types/src/components/Graph/ForceGraph.d.ts.map +1 -1
  65. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts +4 -2
  66. package/dist/types/src/components/Graph/ForceGraph.stories.d.ts.map +1 -1
  67. package/dist/types/src/components/Graph/{adapter.d.ts → graph-adapter.d.ts} +2 -2
  68. package/dist/types/src/components/Graph/graph-adapter.d.ts.map +1 -0
  69. package/dist/types/src/components/Graph/index.d.ts +1 -1
  70. package/dist/types/src/components/Graph/index.d.ts.map +1 -1
  71. package/dist/types/src/components/Lattice/Lattice.d.ts +20 -0
  72. package/dist/types/src/components/Lattice/Lattice.d.ts.map +1 -0
  73. package/dist/types/src/components/Lattice/Lattice.stories.d.ts +8 -0
  74. package/dist/types/src/components/Lattice/Lattice.stories.d.ts.map +1 -0
  75. package/dist/types/src/components/Lattice/index.d.ts +2 -0
  76. package/dist/types/src/components/Lattice/index.d.ts.map +1 -0
  77. package/dist/types/src/components/Tree/EdgeBundling.stories.d.ts +21 -0
  78. package/dist/types/src/components/Tree/EdgeBundling.stories.d.ts.map +1 -0
  79. package/dist/types/src/components/Tree/Tree.d.ts +20 -23
  80. package/dist/types/src/components/Tree/Tree.d.ts.map +1 -1
  81. package/dist/types/src/components/Tree/Tree.stories.d.ts +5 -12
  82. package/dist/types/src/components/Tree/Tree.stories.d.ts.map +1 -1
  83. package/dist/types/src/components/Tree/index.d.ts +2 -0
  84. package/dist/types/src/components/Tree/index.d.ts.map +1 -1
  85. package/dist/types/src/components/Tree/layout/HierarchicalEdgeBundling.d.ts +37 -2
  86. package/dist/types/src/components/Tree/layout/HierarchicalEdgeBundling.d.ts.map +1 -1
  87. package/dist/types/src/components/Tree/layout/RadialTree.d.ts +35 -2
  88. package/dist/types/src/components/Tree/layout/RadialTree.d.ts.map +1 -1
  89. package/dist/types/src/components/Tree/layout/TidyTree.d.ts +24 -2
  90. package/dist/types/src/components/Tree/layout/TidyTree.d.ts.map +1 -1
  91. package/dist/types/src/components/Tree/layout/hierarchy.d.ts +17 -0
  92. package/dist/types/src/components/Tree/layout/hierarchy.d.ts.map +1 -0
  93. package/dist/types/src/components/Tree/layout/index.d.ts +5 -4
  94. package/dist/types/src/components/Tree/layout/index.d.ts.map +1 -1
  95. package/dist/types/src/components/Tree/layout/slots.d.ts +7 -0
  96. package/dist/types/src/components/Tree/layout/slots.d.ts.map +1 -0
  97. package/dist/types/src/components/Tree/layout/useContainerSize.d.ts +15 -0
  98. package/dist/types/src/components/Tree/layout/useContainerSize.d.ts.map +1 -0
  99. package/dist/types/src/components/Tree/types/tree.d.ts +45 -22
  100. package/dist/types/src/components/Tree/types/tree.d.ts.map +1 -1
  101. package/dist/types/src/components/Tree/types/types.d.ts +14 -4
  102. package/dist/types/src/components/Tree/types/types.d.ts.map +1 -1
  103. package/dist/types/src/components/index.d.ts +1 -4
  104. package/dist/types/src/components/index.d.ts.map +1 -1
  105. package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.d.ts +13 -0
  106. package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.d.ts.map +1 -0
  107. package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.stories.d.ts +30 -0
  108. package/dist/types/src/containers/ExplorerArticle/ExplorerArticle.stories.d.ts.map +1 -0
  109. package/dist/types/src/containers/ExplorerArticle/Visualization.d.ts +24 -0
  110. package/dist/types/src/containers/ExplorerArticle/Visualization.d.ts.map +1 -0
  111. package/dist/types/src/containers/ExplorerArticle/experimental.stories.d.ts +7 -0
  112. package/dist/types/src/containers/ExplorerArticle/experimental.stories.d.ts.map +1 -0
  113. package/dist/types/src/containers/ExplorerArticle/index.d.ts +2 -0
  114. package/dist/types/src/containers/ExplorerArticle/index.d.ts.map +1 -0
  115. package/dist/types/src/containers/ExplorerArticle/variants.d.ts +9 -0
  116. package/dist/types/src/containers/ExplorerArticle/variants.d.ts.map +1 -0
  117. package/dist/types/src/containers/index.d.ts +3 -0
  118. package/dist/types/src/containers/index.d.ts.map +1 -0
  119. package/dist/types/src/hooks/useGraphModel.d.ts +2 -2
  120. package/dist/types/src/hooks/useGraphModel.d.ts.map +1 -1
  121. package/dist/types/src/index.d.ts +1 -3
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/meta.d.ts +2 -2
  124. package/dist/types/src/meta.d.ts.map +1 -1
  125. package/dist/types/src/plugin.d.ts +3 -0
  126. package/dist/types/src/plugin.d.ts.map +1 -0
  127. package/dist/types/src/{components/Tree/testing → testing}/generator.d.ts +1 -1
  128. package/dist/types/src/testing/generator.d.ts.map +1 -0
  129. package/dist/types/src/testing/index.d.ts +4 -0
  130. package/dist/types/src/testing/index.d.ts.map +1 -0
  131. package/dist/types/src/testing/relations.d.ts +47 -0
  132. package/dist/types/src/testing/relations.d.ts.map +1 -0
  133. package/dist/types/src/translations.d.ts +31 -22
  134. package/dist/types/src/translations.d.ts.map +1 -1
  135. package/dist/types/src/types/ExplorerAction.d.ts +1 -18
  136. package/dist/types/src/types/ExplorerAction.d.ts.map +1 -1
  137. package/dist/types/src/types/Graph.d.ts +14 -25
  138. package/dist/types/src/types/Graph.d.ts.map +1 -1
  139. package/dist/types/src/util/index.d.ts +3 -0
  140. package/dist/types/src/util/index.d.ts.map +1 -0
  141. package/dist/types/src/util/node-color.d.ts +13 -0
  142. package/dist/types/src/util/node-color.d.ts.map +1 -0
  143. package/dist/types/src/{components → util}/plot.d.ts +1 -1
  144. package/dist/types/src/util/plot.d.ts.map +1 -0
  145. package/dist/types/tsconfig.tsbuildinfo +1 -1
  146. package/package.json +114 -61
  147. package/src/ExplorerPlugin.test.ts +26 -0
  148. package/src/ExplorerPlugin.tsx +15 -56
  149. package/src/capabilities/create-object.ts +36 -0
  150. package/src/capabilities/index.ts +3 -3
  151. package/src/capabilities/react-surface.tsx +24 -19
  152. package/src/components/Chart/Chart.stories.tsx +16 -23
  153. package/src/components/Chart/Chart.tsx +1 -1
  154. package/src/components/Globe/Globe.stories.tsx +19 -22
  155. package/src/components/Globe/Globe.tsx +1 -1
  156. package/src/components/Graph/CanvasForceGraph.stories.tsx +83 -0
  157. package/src/components/Graph/CanvasForceGraph.tsx +124 -0
  158. package/src/components/Graph/ForceGraph.stories.tsx +83 -41
  159. package/src/components/Graph/ForceGraph.tsx +105 -85
  160. package/src/components/Graph/{adapter.ts → graph-adapter.ts} +14 -8
  161. package/src/components/Graph/index.ts +1 -1
  162. package/src/components/Lattice/Lattice.stories.tsx +90 -0
  163. package/src/components/Lattice/Lattice.tsx +182 -0
  164. package/src/components/Lattice/index.ts +5 -0
  165. package/src/components/Tree/EdgeBundling.stories.tsx +144 -0
  166. package/src/components/Tree/Tree.stories.tsx +20 -38
  167. package/src/components/Tree/Tree.tsx +69 -95
  168. package/src/components/Tree/index.ts +2 -0
  169. package/src/components/Tree/layout/HierarchicalEdgeBundling.tsx +335 -0
  170. package/src/components/Tree/layout/RadialTree.tsx +242 -0
  171. package/src/components/Tree/layout/TidyTree.tsx +246 -0
  172. package/src/components/Tree/layout/hierarchy.ts +32 -0
  173. package/src/components/Tree/layout/index.ts +5 -5
  174. package/src/components/Tree/layout/slots.ts +19 -0
  175. package/src/components/Tree/layout/useContainerSize.ts +43 -0
  176. package/src/components/Tree/types/tree.test.ts +8 -7
  177. package/src/components/Tree/types/tree.ts +42 -26
  178. package/src/components/Tree/types/types.ts +38 -29
  179. package/src/components/index.ts +1 -4
  180. package/src/containers/ExplorerArticle/ExplorerArticle.stories.tsx +142 -0
  181. package/src/containers/ExplorerArticle/ExplorerArticle.tsx +112 -0
  182. package/src/containers/ExplorerArticle/Visualization.tsx +497 -0
  183. package/src/containers/ExplorerArticle/experimental.stories.tsx +446 -0
  184. package/src/containers/ExplorerArticle/index.ts +5 -0
  185. package/src/containers/ExplorerArticle/variants.ts +37 -0
  186. package/src/containers/index.ts +7 -0
  187. package/src/hooks/useGraphModel.ts +25 -14
  188. package/src/index.ts +1 -4
  189. package/src/meta.ts +28 -5
  190. package/src/plugin.ts +9 -0
  191. package/src/{components/Tree/testing → testing}/generator.ts +5 -3
  192. package/src/testing/index.ts +9 -0
  193. package/src/testing/relations.ts +192 -0
  194. package/src/translations.ts +16 -13
  195. package/src/types/ExplorerAction.ts +10 -19
  196. package/src/types/Graph.ts +25 -24
  197. package/src/typings.d.ts +8 -0
  198. package/src/util/index.ts +6 -0
  199. package/src/util/node-color.ts +23 -0
  200. package/src/{components → util}/plot.ts +16 -4
  201. package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs +0 -50
  202. package/dist/lib/browser/ExplorerContainer-6SHZJ6AK.mjs.map +0 -7
  203. package/dist/lib/browser/chunk-2DGFNLRO.mjs +0 -19
  204. package/dist/lib/browser/chunk-2DGFNLRO.mjs.map +0 -7
  205. package/dist/lib/browser/chunk-2MKBRIUT.mjs +0 -31
  206. package/dist/lib/browser/chunk-2MKBRIUT.mjs.map +0 -7
  207. package/dist/lib/browser/chunk-BZ65T5M3.mjs +0 -79
  208. package/dist/lib/browser/chunk-BZ65T5M3.mjs.map +0 -7
  209. package/dist/lib/browser/chunk-MOM5KCKC.mjs.map +0 -7
  210. package/dist/lib/browser/chunk-NXGP6NTP.mjs +0 -203
  211. package/dist/lib/browser/chunk-NXGP6NTP.mjs.map +0 -7
  212. package/dist/lib/browser/index.mjs +0 -119
  213. package/dist/lib/browser/index.mjs.map +0 -7
  214. package/dist/lib/browser/intent-resolver-K57C3LIX.mjs +0 -31
  215. package/dist/lib/browser/intent-resolver-K57C3LIX.mjs.map +0 -7
  216. package/dist/lib/browser/meta.json +0 -1
  217. package/dist/lib/browser/react-surface-OPBND5W3.mjs +0 -35
  218. package/dist/lib/browser/react-surface-OPBND5W3.mjs.map +0 -7
  219. package/dist/lib/node-esm/ExplorerContainer-FRTDXZI5.mjs +0 -51
  220. package/dist/lib/node-esm/ExplorerContainer-FRTDXZI5.mjs.map +0 -7
  221. package/dist/lib/node-esm/chunk-3ODK27PU.mjs +0 -33
  222. package/dist/lib/node-esm/chunk-3ODK27PU.mjs.map +0 -7
  223. package/dist/lib/node-esm/chunk-6JACZE7E.mjs +0 -205
  224. package/dist/lib/node-esm/chunk-6JACZE7E.mjs.map +0 -7
  225. package/dist/lib/node-esm/chunk-ES6AOMCY.mjs +0 -80
  226. package/dist/lib/node-esm/chunk-ES6AOMCY.mjs.map +0 -7
  227. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  228. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +0 -7
  229. package/dist/lib/node-esm/chunk-PX6LHR2N.mjs +0 -21
  230. package/dist/lib/node-esm/chunk-PX6LHR2N.mjs.map +0 -7
  231. package/dist/lib/node-esm/chunk-ZCV4U7LT.mjs +0 -11343
  232. package/dist/lib/node-esm/chunk-ZCV4U7LT.mjs.map +0 -7
  233. package/dist/lib/node-esm/index.mjs +0 -120
  234. package/dist/lib/node-esm/index.mjs.map +0 -7
  235. package/dist/lib/node-esm/intent-resolver-BLPPTTEY.mjs +0 -32
  236. package/dist/lib/node-esm/intent-resolver-BLPPTTEY.mjs.map +0 -7
  237. package/dist/lib/node-esm/meta.json +0 -1
  238. package/dist/lib/node-esm/meta.mjs +0 -9
  239. package/dist/lib/node-esm/react-surface-HCKQSHKJ.mjs +0 -36
  240. package/dist/lib/node-esm/react-surface-HCKQSHKJ.mjs.map +0 -7
  241. package/dist/lib/node-esm/types/index.mjs +0 -12
  242. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  243. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  244. package/dist/types/src/components/ExplorerContainer.d.ts +0 -9
  245. package/dist/types/src/components/ExplorerContainer.d.ts.map +0 -1
  246. package/dist/types/src/components/Graph/D3ForceGraph.d.ts +0 -14
  247. package/dist/types/src/components/Graph/D3ForceGraph.d.ts.map +0 -1
  248. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts +0 -15
  249. package/dist/types/src/components/Graph/D3ForceGraph.stories.d.ts.map +0 -1
  250. package/dist/types/src/components/Graph/adapter.d.ts.map +0 -1
  251. package/dist/types/src/components/Graph/testing.d.ts +0 -14
  252. package/dist/types/src/components/Graph/testing.d.ts.map +0 -1
  253. package/dist/types/src/components/Tree/testing/generator.d.ts.map +0 -1
  254. package/dist/types/src/components/Tree/testing/index.d.ts +0 -2
  255. package/dist/types/src/components/Tree/testing/index.d.ts.map +0 -1
  256. package/dist/types/src/components/plot.d.ts.map +0 -1
  257. package/src/capabilities/intent-resolver.ts +0 -21
  258. package/src/components/ExplorerContainer.tsx +0 -54
  259. package/src/components/Graph/D3ForceGraph.stories.tsx +0 -77
  260. package/src/components/Graph/D3ForceGraph.tsx +0 -101
  261. package/src/components/Graph/testing.ts +0 -55
  262. package/src/components/Tree/layout/HierarchicalEdgeBundling.ts +0 -162
  263. package/src/components/Tree/layout/RadialTree.ts +0 -94
  264. package/src/components/Tree/layout/TidyTree.ts +0 -101
  265. package/src/components/Tree/testing/index.ts +0 -5
  266. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/ExplorerPlugin.mjs.map} +0 -0
  267. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  268. /package/dist/lib/{browser/meta.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  269. /package/dist/lib/{browser/types → neutral}/index.mjs.map +0 -0
  270. /package/dist/lib/{node-esm → neutral}/meta.mjs.map +0 -0
  271. /package/dist/lib/{node-esm → neutral}/types/index.mjs.map +0 -0
@@ -1,4 +1,37 @@
1
- import { type TreeOptions } from '../Tree';
2
- declare const RadialTree: (s: SVGSVGElement, data: any, options: TreeOptions) => SVGSVGElement | null;
1
+ import React from 'react';
2
+ import { type ThemedClassName } from '@dxos/react-ui';
3
+ import { type TreeNode } from '../types';
4
+ import { type TreeLayoutSlots } from './slots';
5
+ export type RadialTreeProps = ThemedClassName<{
6
+ data: TreeNode;
7
+ label?: (d: TreeNode) => string;
8
+ slots?: TreeLayoutSlots;
9
+ /** Node radius. */
10
+ r?: number;
11
+ /** Optional padding (in screen pixels) reserved around the radial layout. */
12
+ padding?: number;
13
+ /** Initial set of collapsed node ids. */
14
+ initialCollapsed?: Iterable<string>;
15
+ /**
16
+ * Use `d3.cluster` (all leaves equidistant from center) instead of `d3.tree`.
17
+ * Matches https://observablehq.com/@d3/radial-cluster.
18
+ */
19
+ cluster?: boolean;
20
+ /** Notified when the user clicks a node. */
21
+ onNodeClick?: (node: TreeNode) => void;
22
+ /**
23
+ * Notified on pointerenter (and `null` on pointerleave) for nodes. Used to wire previews
24
+ * (dispatch `DxAnchorActivate`). The event target on enter is the hovered circle — dispatch
25
+ * from it so the preview anchors there.
26
+ */
27
+ onNodeHover?: (node: TreeNode | null, event?: MouseEvent) => void;
28
+ }>;
29
+ /**
30
+ * Radial tree layout based on the D3 reference component.
31
+ * https://observablehq.com/@d3/radial-tree-component
32
+ *
33
+ * Click a node with children to toggle collapse / expand.
34
+ */
35
+ export declare const RadialTree: ({ classNames, data, label, slots, r, padding, initialCollapsed, cluster, onNodeClick, onNodeHover, }: RadialTreeProps) => React.JSX.Element;
3
36
  export default RadialTree;
4
37
  //# sourceMappingURL=RadialTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadialTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/RadialTree.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAK3C,QAAA,MAAM,UAAU,GAAI,GAAG,aAAa,EAAE,MAAM,GAAG,EAAE,SAAS,WAAW,yBA+EpE,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RadialTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/RadialTree.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAGjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAKvE,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,mBAAmB;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnE,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,yGAWpB,eAAe,sBA6DjB,CAAC;eAsHa,UAAU"}
@@ -1,4 +1,26 @@
1
- import { type TreeOptions } from '../Tree';
2
- declare const TidyTree: (s: SVGSVGElement, data: any, options: TreeOptions) => void;
1
+ import React from 'react';
2
+ import { type ThemedClassName } from '@dxos/react-ui';
3
+ import { type TreeNode } from '../types';
4
+ import { type TreeLayoutSlots } from './slots';
5
+ export type TidyTreeProps = ThemedClassName<{
6
+ data: TreeNode;
7
+ label?: (d: TreeNode) => string;
8
+ slots?: TreeLayoutSlots;
9
+ /** Node radius. */
10
+ r?: number;
11
+ /** Margin in screen pixels reserved around the layout. */
12
+ margin?: number;
13
+ /** Initial set of collapsed node ids. */
14
+ initialCollapsed?: Iterable<string>;
15
+ /** Notified when the user clicks a node. */
16
+ onNodeClick?: (node: TreeNode) => void;
17
+ }>;
18
+ /**
19
+ * Tidy (horizontal) tree layout based on the D3 reference component.
20
+ * https://observablehq.com/@d3/tree-component
21
+ *
22
+ * Click a node with children to toggle collapse / expand.
23
+ */
24
+ export declare const TidyTree: ({ classNames, data, label, slots, r, margin, initialCollapsed, onNodeClick, }: TidyTreeProps) => React.JSX.Element;
3
25
  export default TidyTree;
4
26
  //# sourceMappingURL=TidyTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TidyTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/TidyTree.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,QAAA,MAAM,QAAQ,GAAI,GAAG,aAAa,EAAE,MAAM,GAAG,EAAE,SAAS,WAAW,SAuFlE,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"TidyTree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/TidyTree.tsx"],"names":[],"mappings":"AAMA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,KAAK,eAAe,EAA0B,MAAM,SAAS,CAAC;AAKvE,MAAM,MAAM,aAAa,GAAG,eAAe,CAAC;IAC1C,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,mBAAmB;IACnB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;CACxC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,kFASlB,aAAa,sBA0Df,CAAC;eA4Ia,QAAQ"}
@@ -0,0 +1,17 @@
1
+ import { type HierarchyNode } from 'd3';
2
+ import { type TreeNode } from '../types';
3
+ /**
4
+ * Build a d3 hierarchy from a TreeNode, pruning children of nodes whose ids are in `collapsed`.
5
+ * Nodes that have children but are collapsed retain their identity in the hierarchy and can be
6
+ * distinguished by `node._children` (the original list).
7
+ */
8
+ export declare const buildHierarchy: (data: TreeNode, collapsed?: Set<string>) => HierarchyNode<TreeNode>;
9
+ /**
10
+ * True when the node has children that have been hidden via collapse.
11
+ */
12
+ export declare const isCollapsed: (data: TreeNode, collapsed: Set<string>) => boolean;
13
+ /**
14
+ * True when the node has no children at all (a real leaf, not a collapsed branch).
15
+ */
16
+ export declare const isLeaf: (data: TreeNode) => boolean;
17
+ //# sourceMappingURL=hierarchy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/hierarchy.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAA4B,MAAM,IAAI,CAAC;AAElE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,QAAQ,cAAa,GAAG,CAAC,MAAM,CAAC,KAAe,aAAa,CAAC,QAAQ,CAOzG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,SAAU,QAAQ,aAAa,GAAG,CAAC,MAAM,CAAC,KAAG,OACX,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,MAAM,SAAU,QAAQ,KAAG,OAAiC,CAAC"}
@@ -1,5 +1,6 @@
1
- import HierarchicalEdgeBundling from './HierarchicalEdgeBundling';
2
- import RadialTree from './RadialTree';
3
- import TidyTree from './TidyTree';
4
- export { HierarchicalEdgeBundling, RadialTree, TidyTree };
1
+ export * from './HierarchicalEdgeBundling';
2
+ export * from './RadialTree';
3
+ export * from './TidyTree';
4
+ export * from './hierarchy';
5
+ export * from './slots';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/index.ts"],"names":[],"mappings":"AAIA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/index.ts"],"names":[],"mappings":"AAIA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type TreeLayoutSlots = {
2
+ node?: string;
3
+ path?: string;
4
+ text?: string;
5
+ };
6
+ export declare const defaultTreeLayoutSlots: TreeLayoutSlots;
7
+ //# sourceMappingURL=slots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/slots.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,eAQpC,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Track an element's content-box size via ResizeObserver.
3
+ * Returns the most recently observed `{ width, height }` plus a callback ref to attach to the element.
4
+ *
5
+ * Why not `react-resize-detector` directly: its `targetRef` API doesn't pick up a ref whose
6
+ * `.current` is set later than the hook runs, and the returned-`ref` API forces the consumer to
7
+ * forward a callback ref through their own component — which is awkward for class refs.
8
+ * This hook returns a setter so the consumer assigns it directly to `<div ref={setRef}>`.
9
+ */
10
+ export declare const useContainerSize: () => {
11
+ setRef: (el: HTMLDivElement | null) => void;
12
+ width: number;
13
+ height: number;
14
+ };
15
+ //# sourceMappingURL=useContainerSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContainerSize.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/layout/useContainerSize.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAO;IAClC,MAAM,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAwBhB,CAAC"}
@@ -1,30 +1,30 @@
1
1
  import * as Schema from 'effect/Schema';
2
- import { Key, Type } from '@dxos/echo';
2
+ import { Key, Obj, Ref, Type } from '@dxos/echo';
3
3
  export declare const TreeNodeType: Schema.mutable<Schema.Struct<{
4
4
  id: import("@dxos/keys").ObjectIdClass;
5
5
  children: Schema.mutable<Schema.Array$<import("@dxos/keys").ObjectIdClass>>;
6
6
  data: Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
7
- ref: Schema.optional<Type.ref<Schema.Schema<Type.Expando, {
8
- [x: string]: any;
9
- id: string;
10
- }, never>>>;
7
+ ref: Schema.optional<Ref.RefSchema<{
8
+ readonly [x: string]: any;
9
+ } & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown>>;
11
10
  }>>;
12
- export interface TreeNodeType extends Schema.Schema.Type<typeof TreeNodeType> {
13
- }
14
- export declare const TreeType: Type.obj<Schema.Struct<{
15
- root: import("@dxos/keys").ObjectIdClass;
16
- nodes: Schema.mutable<Schema.Record$<import("@dxos/keys").ObjectIdClass, Schema.mutable<Schema.Struct<{
17
- id: import("@dxos/keys").ObjectIdClass;
18
- children: Schema.mutable<Schema.Array$<import("@dxos/keys").ObjectIdClass>>;
19
- data: Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
20
- ref: Schema.optional<Type.ref<Schema.Schema<Type.Expando, {
21
- [x: string]: any;
11
+ export type TreeNodeType = Schema.Schema.Type<typeof TreeNodeType>;
12
+ export declare const TreeType: Type.Obj<{
13
+ readonly root: string;
14
+ readonly nodes: {
15
+ [x: string]: {
22
16
  id: string;
23
- }, never>>>;
24
- }>>>>;
25
- }>>;
26
- export interface TreeType extends Schema.Schema.Type<typeof TreeType> {
27
- }
17
+ children: string[];
18
+ data: {
19
+ [x: string]: any;
20
+ };
21
+ ref?: import("@dxos/echo/internal").Ref<{
22
+ readonly [x: string]: any;
23
+ } & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
24
+ };
25
+ };
26
+ }, Schema.Struct.Fields>;
27
+ export type TreeType = Type.InstanceType<typeof TreeType>;
28
28
  /**
29
29
  * Wrapper object for tree.
30
30
  */
@@ -32,9 +32,32 @@ export declare class Tree {
32
32
  static create: () => TreeType;
33
33
  private _tree;
34
34
  constructor(tree?: TreeType);
35
- get tree(): TreeType;
35
+ get tree(): {
36
+ readonly root: string;
37
+ readonly nodes: {
38
+ [x: string]: {
39
+ id: string;
40
+ children: string[];
41
+ data: {
42
+ [x: string]: any;
43
+ };
44
+ ref?: import("@dxos/echo/internal").Ref<{
45
+ readonly [x: string]: any;
46
+ } & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
47
+ };
48
+ };
49
+ } & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object>;
36
50
  get size(): number;
37
- get root(): TreeNodeType;
51
+ get root(): {
52
+ id: string;
53
+ children: string[];
54
+ data: {
55
+ [x: string]: any;
56
+ };
57
+ ref?: import("@dxos/echo/internal").Ref<{
58
+ readonly [x: string]: any;
59
+ } & import("@dxos/echo/Entity").OfKind<import("@dxos/echo/internal").EntityKind.Object> & Obj.Unknown> | undefined;
60
+ };
38
61
  /**
39
62
  * Recursively traverse the tree until the callback returns a value.
40
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,GAAG,EAAO,IAAI,EAAE,MAAM,YAAY,CAAC;AAK5C,eAAO,MAAM,YAAY;;;;;;;;GAKF,CAAC;AAExB,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG;AAEhF,eAAO,MAAM,QAAQ;;;;;;;;;;;GAQpB,CAAC;AAEF,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC;CAAG;AAExE;;GAEG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,MAAM,QAAO,QAAQ,CAY1B;IAEF,OAAO,CAAC,KAAK,CAAW;gBAEZ,IAAI,CAAC,EAAE,QAAQ;IAI3B,IAAI,IAAI,aAEP;IAGD,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,iBAEP;IAMD;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EACzD,IAAI,GAAE,GAAG,CAAC,QAA0B,EACpC,KAAK,SAAI,GACR,CAAC,GAAG,IAAI;IAeX,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY;IAMvC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IAItD;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI;IAUlD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS;IAmB1E;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS;IAiB9E;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS;IAc/D;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY;IAWhF;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY,GAAG,SAAS;IAe5E;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAa3E;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAgBpC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;CAuBvC"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/tree.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAO,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMtD,eAAO,MAAM,YAAY;;;;;;;GAKF,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;AAEnE,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;wBAG4C,CAAC;AAElE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE1D;;GAEG;AACH,qBAAa,IAAI;IACf,MAAM,CAAC,MAAM,QAAO,QAAQ,CAY1B;IAEF,OAAO,CAAC,KAAK,CAAW;IAExB,YAAY,IAAI,CAAC,EAAE,QAAQ,EAE1B;IAED,IAAI,IAAI;;;;;;;;;;;;;;4FAEP;IAGD,IAAI,IAAI,WAEP;IAED,IAAI,IAAI;;;;;;;;;MAEP;IAMD;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,IAAI,EACzD,IAAI,GAAE,GAAG,CAAC,QAA0B,EACpC,KAAK,SAAI,GACR,CAAC,GAAG,IAAI,CAaV;IAED,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY,CAItC;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAErD;IAED;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,IAAI,CAQjD;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS,CAiBzE;IAED;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,UAAO,GAAG,YAAY,GAAG,SAAS,CAe7E;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAQ9D;IAMD;;OAEG;IACH,KAAK,IAAI,IAAI,CAQZ;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,CAY/E;IAED;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,GAAG,YAAY,GAAG,SAAS,CAiB3E;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAa1E;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAgBnC;IAED;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CA6BrC;CACF"}
@@ -1,8 +1,18 @@
1
- import { type GraphModel } from '@dxos/graph';
2
- export type TreeNode = {
1
+ import { type Key } from '@dxos/echo';
2
+ import { type TreeType } from './tree';
3
+ /**
4
+ * In-memory tree shape used by the d3 layouts.
5
+ * `data` carries through to layout callbacks (e.g. hover/inspect) — typically an ECHO object on leaves.
6
+ */
7
+ export type TreeNode<TData = unknown> = {
3
8
  id: string;
4
9
  label?: string;
5
- children?: TreeNode[];
10
+ data?: TData;
11
+ children?: TreeNode<TData>[];
6
12
  };
7
- export declare const mapGraphToTreeData: (model: GraphModel, maxDepth?: number) => TreeNode | undefined;
13
+ /**
14
+ * Convert an ECHO `TreeType` (id-keyed node map) into a nested `TreeNode` hierarchy.
15
+ * Returns `undefined` if the root id is missing — the tree is then incomplete and shouldn't render.
16
+ */
17
+ export declare const treeTypeToTreeNode: (tree: TreeType, rootId?: Key.ObjectId, visited?: Set<string>) => TreeNode | undefined;
8
18
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,UAAU,EAAE,iBAAY,KAAG,QAAQ,GAAG,SA4B/E,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Tree/types/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,KAAK,GAAG,OAAO,IAAI;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SACvB,QAAQ,WACN,GAAG,CAAC,QAAQ,YACX,GAAG,CAAC,MAAM,CAAC,KACnB,QAAQ,GAAG,SAkBb,CAAC"}
@@ -1,9 +1,6 @@
1
- export declare const ExplorerContainer: import("react").LazyExoticComponent<({ role, view }: {
2
- role: string;
3
- view: import("@dxos/schema").View;
4
- }) => import("react").JSX.Element | null>;
5
1
  export * from './Chart';
6
2
  export * from './Globe';
7
3
  export * from './Graph';
4
+ export * from './Lattice';
8
5
  export * from './Tree';
9
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB;;;yCAA4C,CAAC;AAE3E,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { type AppSurface } from '@dxos/app-toolkit/ui';
3
+ import { type View } from '@dxos/echo';
4
+ import '@dxos/react-ui-graph/styles/graph.css';
5
+ export type { ExplorerArticleVariant } from './variants';
6
+ export type ExplorerArticleProps = AppSurface.ObjectArticleProps<View.View>;
7
+ /**
8
+ * Thin wrapper: owns the query editor, the variant toggle, and the DxAnchor preview
9
+ * dispatch. The actual rendering — SVG projector swaps and the swarm canvas — lives in
10
+ * `Visualization`.
11
+ */
12
+ export declare const ExplorerArticle: ({ role, subject, variant }: ExplorerArticleProps) => React.JSX.Element | null;
13
+ //# sourceMappingURL=ExplorerArticle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerArticle.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/ExplorerArticle.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAoB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAQzD,OAAO,uCAAuC,CAAC;AAQ/C,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,eAAe,+BAAgC,oBAAoB,6BA+E/E,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ import { type ExplorerArticleVariant } from './ExplorerArticle';
3
+ type StoryArgs = {
4
+ variant: ExplorerArticleVariant;
5
+ };
6
+ declare const meta: Meta<StoryArgs>;
7
+ export default meta;
8
+ type Story = StoryObj<StoryArgs>;
9
+ /**
10
+ * Default force-directed view (the production layout).
11
+ */
12
+ export declare const Force: Story;
13
+ /**
14
+ * Radial cluster: every object on the perimeter, grouped by its schema, all under a single database root.
15
+ * Inspired by https://observablehq.com/@d3/radial-cluster.
16
+ */
17
+ export declare const Cluster: Story;
18
+ /**
19
+ * Hierarchical edge bundling: same hierarchy as `cluster`, with bundled curves
20
+ * routed through the lowest common ancestor for every relation / ref in the space.
21
+ * Inspired by https://observablehq.com/@d3/hierarchical-edge-bundling.
22
+ */
23
+ export declare const Bundle: Story;
24
+ /**
25
+ * Lattice: every object as a cell in a square-as-possible CSS grid, sorted by typename so
26
+ * objects of the same type cluster together. Each cell is colored by its typename.
27
+ */
28
+ export declare const Lattice: Story;
29
+ export declare const Swarm: Story;
30
+ //# sourceMappingURL=ExplorerArticle.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerArticle.stories.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/ExplorerArticle.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAkBjE,OAAO,EAAmB,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMjF,KAAK,SAAS,GAAG;IAAE,OAAO,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAYrD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,SAAS,CAmDzB,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAIpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAInB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { type SpaceGraphModel } from '@dxos/schema';
3
+ import { type TreeNode } from '#components';
4
+ import { type ExplorerArticleVariant } from './variants';
5
+ export type VisualizationProps = {
6
+ variant: ExplorerArticleVariant;
7
+ model: SpaceGraphModel;
8
+ onNodeHover?: (node: TreeNode | null, event?: MouseEvent) => void;
9
+ };
10
+ /**
11
+ * Renders the active visualization variant.
12
+ *
13
+ * For SVG variants (force, cluster, bundle, lattice), one `<SVG.Graph>` instance is
14
+ * kept mounted; only the projector swaps. Each new projector receives the previous
15
+ * layout so node x/y survive the swap and the projector's `animate()` tweens to the
16
+ * new target.
17
+ *
18
+ * The `swarm` variant is canvas-based and uses a `FlockModel`. On entry, boids are
19
+ * seeded from `model.graph.nodes` with positions taken from the latest SVG layout
20
+ * (matched by node id). On exit, the boids' current positions are written back to
21
+ * `lastLayoutRef` so the next SVG projector starts from where the swarm left off.
22
+ */
23
+ export declare const Visualization: ({ variant, model, onNodeHover }: VisualizationProps) => React.JSX.Element;
24
+ //# sourceMappingURL=Visualization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Visualization.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/Visualization.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAoB7F,OAAO,EAAuB,KAAK,eAAe,EAAuB,MAAM,cAAc,CAAC;AAE9F,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACnE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,oCAAqC,kBAAkB,sBA8IhF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const PathProbeStory: Story;
6
+ export declare const PathInspectorStory: Story;
7
+ //# sourceMappingURL=experimental.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experimental.stories.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/experimental.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjE,QAAA,MAAM,IAAI,EAAE,IAMX,CAAC;eAEa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC;AA8RtB,eAAO,MAAM,cAAc,EAAE,KAG5B,CAAC;AAqIF,eAAO,MAAM,kBAAkB,EAAE,KAGhC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ExplorerArticle as default } from './ExplorerArticle';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Visualization variants exposed by `ExplorerArticle`. */
2
+ export type ExplorerArticleVariant = 'force' | 'cluster' | 'bundle' | 'lattice' | 'swarm';
3
+ export declare const VARIANTS: {
4
+ value: ExplorerArticleVariant;
5
+ icon: string;
6
+ label: string;
7
+ }[];
8
+ export declare const isVariant: (value: unknown) => value is ExplorerArticleVariant;
9
+ //# sourceMappingURL=variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../../../../src/containers/ExplorerArticle/variants.ts"],"names":[],"mappings":"AAIA,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1F,eAAO,MAAM,QAAQ,EAAE;IAAE,KAAK,EAAE,sBAAsB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EA0BpF,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,OAAO,KAAG,KAAK,IAAI,sBACwD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ComponentType } from 'react';
2
+ export declare const ExplorerArticle: ComponentType<any>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/containers/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,aAAa,EAAQ,MAAM,OAAO,CAAC;AAEjD,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,GAAG,CAA2C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type Filter, type Queue, type Space } from '@dxos/client/echo';
1
+ import { type Database, type Entity, type Filter } from '@dxos/echo';
2
2
  import { SpaceGraphModel, type SpaceGraphModelOptions } from '@dxos/schema';
3
- export declare const useGraphModel: (space: Space | undefined, filter?: Filter.Any | undefined, options?: SpaceGraphModelOptions, queue?: Queue) => SpaceGraphModel | undefined;
3
+ export declare const useGraphModel: (db: Database.Database | undefined, filter?: Filter.Any | undefined, options?: SpaceGraphModelOptions, items?: readonly Entity.Unknown[]) => SpaceGraphModel | undefined;
4
4
  //# sourceMappingURL=useGraphModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG5E,eAAO,MAAM,aAAa,GACxB,OAAO,KAAK,GAAG,SAAS,EACxB,SAAS,MAAM,CAAC,GAAG,GAAG,SAAS,EAC/B,UAAU,sBAAsB,EAChC,QAAQ,KAAK,KACZ,eAAe,GAAG,SAoBpB,CAAC"}
1
+ {"version":3,"file":"useGraphModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useGraphModel.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG5E,eAAO,MAAM,aAAa,OACpB,QAAQ,CAAC,QAAQ,GAAG,SAAS,WACxB,MAAM,CAAC,GAAG,GAAG,SAAS,YACrB,sBAAsB,UACxB,SAAS,MAAM,CAAC,OAAO,EAAE,KAChC,eAAe,GAAG,SA6BpB,CAAC"}
@@ -1,5 +1,3 @@
1
- export * from './components';
2
- export * from './hooks';
3
1
  export * from './meta';
4
- export * from './ExplorerPlugin';
2
+ export * from './types';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -1,3 +1,3 @@
1
- import { type PluginMeta } from '@dxos/app-framework';
2
- export declare const meta: PluginMeta;
1
+ import { type Plugin } from '@dxos/app-framework';
2
+ export declare const meta: Plugin.Meta;
3
3
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,eAAO,MAAM,IAAI,EAAE,UAQlB,CAAC"}
1
+ {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IA8BzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from '@dxos/app-framework';
2
+ export declare const ExplorerPlugin: Plugin.PluginFactory<void>;
3
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAI7C,eAAO,MAAM,cAAc,4BAA6C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { Tree } from '../types';
1
+ import { Tree } from '../components/Tree/types';
2
2
  type NumberOrNumberArray = number | number[];
3
3
  /**
4
4
  * Create hierarchical tree.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/testing/generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,IAAI,EAAqB,MAAM,0BAA0B,CAAC;AAEnE,KAAK,mBAAmB,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAI7C;;GAEG;AACH,eAAO,MAAM,UAAU,UAAU,mBAAmB,EAAE,eAAoB,MAAM,MAAM,KAAG,IA+BxF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from '../ExplorerPlugin';
2
+ export * from './generator';
3
+ export * from './relations';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAKA,cAAc,mBAAmB,CAAC;AAElC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type Space } from '@dxos/client/echo';
2
+ import { Obj } from '@dxos/echo';
3
+ import { type TypeSpec, type ValueGenerator } from '@dxos/schema/testing';
4
+ import { type BundleEdge } from '../components/Tree/layout';
5
+ import { type TreeNode } from '../components/Tree/types';
6
+ export type ConnectedOrgsResult = {
7
+ organizations: Obj.Any[];
8
+ people: Obj.Any[];
9
+ connections: Obj.Any[];
10
+ };
11
+ export type ConnectedOrgsOptions = {
12
+ organizationCount?: number;
13
+ personCount?: number;
14
+ connectionCount?: number;
15
+ };
16
+ /**
17
+ * Populate a space with Organizations, People, and HasConnection relations between organizations.
18
+ * Uses `createObjectFactory` to generate Org/Person properties from their `GeneratorAnnotation`s,
19
+ * then layers manual HasConnection relations on top — the connection schema is fixed
20
+ * (Org→Org) so it isn't a fit for the generator's reference inference.
21
+ */
22
+ export declare const generateConnectedOrgs: (space: Space, generator: ValueGenerator, { organizationCount, personCount, connectionCount }?: ConnectedOrgsOptions) => Promise<ConnectedOrgsResult>;
23
+ /**
24
+ * Build a TreeNode hierarchy: Root → Sector → Organization (leaf).
25
+ * Organizations are deterministically bucketed into `SECTORS` so the demo has visible groups.
26
+ */
27
+ export declare const buildOrgHierarchy: (organizations: Obj.Any[], sectors?: readonly string[]) => TreeNode;
28
+ export type GenerateOptions = {
29
+ spec?: TypeSpec[];
30
+ relations?: {
31
+ count: number;
32
+ kind: string;
33
+ };
34
+ };
35
+ /**
36
+ * Populate a space with a mixed dataset (Orgs, Pipelines, People) plus
37
+ * `HasRelationship` edges between random pairs of People.
38
+ *
39
+ * Used by the force-directed and canvas-force graph stories that want a
40
+ * heterogeneous typed dataset without caring about the precise shape of relations.
41
+ */
42
+ export declare const generate: (space: Space, generator: ValueGenerator, { spec, relations }?: GenerateOptions) => Promise<void>;
43
+ /**
44
+ * Convert HasConnection relations into bundle edges between organization ids.
45
+ */
46
+ export declare const connectionsToEdges: (connections: Obj.Any[]) => BundleEdge[];
47
+ //# sourceMappingURL=relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../../src/testing/relations.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAmB,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAI/F,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UACzB,KAAK,aACD,cAAc,wDAC2C,oBAAoB,KACvF,OAAO,CAAC,mBAAmB,CAqC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,kBAAmB,GAAG,CAAC,GAAG,EAAE,YAAW,SAAS,MAAM,EAAE,KAAa,QAyBlG,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAsBF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,UACZ,KAAK,aACD,cAAc,wBAC8C,eAAe,kBAuBvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,gBAAiB,GAAG,CAAC,GAAG,EAAE,KAAG,UAAU,EAerE,CAAC"}