@xyo-network/react-node-renderer 2.64.3 → 2.64.5

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 (281) hide show
  1. package/dist/browser/Cytoscape/CytoscapeElements.cjs +5 -5
  2. package/dist/browser/Cytoscape/CytoscapeElements.cjs.map +1 -1
  3. package/dist/browser/Cytoscape/CytoscapeElements.d.cts +3 -1
  4. package/dist/browser/Cytoscape/CytoscapeElements.d.cts.map +1 -1
  5. package/dist/browser/Cytoscape/CytoscapeElements.d.mts +3 -1
  6. package/dist/browser/Cytoscape/CytoscapeElements.d.mts.map +1 -1
  7. package/dist/browser/Cytoscape/CytoscapeElements.d.ts +3 -1
  8. package/dist/browser/Cytoscape/CytoscapeElements.d.ts.map +1 -1
  9. package/dist/browser/Cytoscape/CytoscapeElements.js +5 -5
  10. package/dist/browser/Cytoscape/CytoscapeElements.js.map +1 -1
  11. package/dist/browser/Cytoscape/CytoscapeStyles.cjs +2 -0
  12. package/dist/browser/Cytoscape/CytoscapeStyles.cjs.map +1 -1
  13. package/dist/browser/Cytoscape/CytoscapeStyles.d.cts +1 -0
  14. package/dist/browser/Cytoscape/CytoscapeStyles.d.cts.map +1 -1
  15. package/dist/browser/Cytoscape/CytoscapeStyles.d.mts +1 -0
  16. package/dist/browser/Cytoscape/CytoscapeStyles.d.mts.map +1 -1
  17. package/dist/browser/Cytoscape/CytoscapeStyles.d.ts +1 -0
  18. package/dist/browser/Cytoscape/CytoscapeStyles.d.ts.map +1 -1
  19. package/dist/browser/Cytoscape/CytoscapeStyles.js +2 -0
  20. package/dist/browser/Cytoscape/CytoscapeStyles.js.map +1 -1
  21. package/dist/browser/Cytoscape/index.cjs +7 -5
  22. package/dist/browser/Cytoscape/index.cjs.map +1 -1
  23. package/dist/browser/Cytoscape/index.js +7 -5
  24. package/dist/browser/Cytoscape/index.js.map +1 -1
  25. package/dist/browser/components/ProvidedNodeRenderer.cjs +13 -11
  26. package/dist/browser/components/ProvidedNodeRenderer.cjs.map +1 -1
  27. package/dist/browser/components/ProvidedNodeRenderer.js +14 -12
  28. package/dist/browser/components/ProvidedNodeRenderer.js.map +1 -1
  29. package/dist/browser/components/RelationalGraph.cjs +3 -3
  30. package/dist/browser/components/RelationalGraph.cjs.map +1 -1
  31. package/dist/browser/components/RelationalGraph.d.cts.map +1 -1
  32. package/dist/browser/components/RelationalGraph.d.mts.map +1 -1
  33. package/dist/browser/components/RelationalGraph.d.ts.map +1 -1
  34. package/dist/browser/components/RelationalGraph.js +4 -4
  35. package/dist/browser/components/RelationalGraph.js.map +1 -1
  36. package/dist/browser/components/index.cjs +119 -81
  37. package/dist/browser/components/index.cjs.map +1 -1
  38. package/dist/browser/components/index.js +119 -81
  39. package/dist/browser/components/index.js.map +1 -1
  40. package/dist/browser/components/module/graph/GraphFlexBox.cjs +118 -80
  41. package/dist/browser/components/module/graph/GraphFlexBox.cjs.map +1 -1
  42. package/dist/browser/components/module/graph/GraphFlexBox.d.cts +1 -0
  43. package/dist/browser/components/module/graph/GraphFlexBox.d.cts.map +1 -1
  44. package/dist/browser/components/module/graph/GraphFlexBox.d.mts +1 -0
  45. package/dist/browser/components/module/graph/GraphFlexBox.d.mts.map +1 -1
  46. package/dist/browser/components/module/graph/GraphFlexBox.d.ts +1 -0
  47. package/dist/browser/components/module/graph/GraphFlexBox.d.ts.map +1 -1
  48. package/dist/browser/components/module/graph/GraphFlexBox.js +118 -80
  49. package/dist/browser/components/module/graph/GraphFlexBox.js.map +1 -1
  50. package/dist/browser/components/module/graph/NodeHover.cjs +17 -10
  51. package/dist/browser/components/module/graph/NodeHover.cjs.map +1 -1
  52. package/dist/browser/components/module/graph/NodeHover.d.cts.map +1 -1
  53. package/dist/browser/components/module/graph/NodeHover.d.mts.map +1 -1
  54. package/dist/browser/components/module/graph/NodeHover.d.ts.map +1 -1
  55. package/dist/browser/components/module/graph/NodeHover.js +20 -13
  56. package/dist/browser/components/module/graph/NodeHover.js.map +1 -1
  57. package/dist/browser/components/module/graph/Popper.cjs +2 -2
  58. package/dist/browser/components/module/graph/Popper.cjs.map +1 -1
  59. package/dist/browser/components/module/graph/Popper.d.cts +1 -1
  60. package/dist/browser/components/module/graph/Popper.d.cts.map +1 -1
  61. package/dist/browser/components/module/graph/Popper.d.mts +1 -1
  62. package/dist/browser/components/module/graph/Popper.d.mts.map +1 -1
  63. package/dist/browser/components/module/graph/Popper.d.ts +1 -1
  64. package/dist/browser/components/module/graph/Popper.d.ts.map +1 -1
  65. package/dist/browser/components/module/graph/Popper.js +3 -3
  66. package/dist/browser/components/module/graph/Popper.js.map +1 -1
  67. package/dist/browser/components/module/graph/index.cjs +118 -80
  68. package/dist/browser/components/module/graph/index.cjs.map +1 -1
  69. package/dist/browser/components/module/graph/index.js +118 -80
  70. package/dist/browser/components/module/graph/index.js.map +1 -1
  71. package/dist/browser/components/module/index.cjs +118 -80
  72. package/dist/browser/components/module/index.cjs.map +1 -1
  73. package/dist/browser/components/module/index.js +118 -80
  74. package/dist/browser/components/module/index.js.map +1 -1
  75. package/dist/browser/hooks/cytoscape/index.cjs +46 -28
  76. package/dist/browser/hooks/cytoscape/index.cjs.map +1 -1
  77. package/dist/browser/hooks/cytoscape/index.js +42 -24
  78. package/dist/browser/hooks/cytoscape/index.js.map +1 -1
  79. package/dist/browser/hooks/cytoscape/useCytoscapeElements.cjs +5 -5
  80. package/dist/browser/hooks/cytoscape/useCytoscapeElements.cjs.map +1 -1
  81. package/dist/browser/hooks/cytoscape/useCytoscapeElements.js +5 -5
  82. package/dist/browser/hooks/cytoscape/useCytoscapeElements.js.map +1 -1
  83. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.cjs +5 -3
  84. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.cjs.map +1 -1
  85. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.d.cts.map +1 -1
  86. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.d.mts.map +1 -1
  87. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.d.ts.map +1 -1
  88. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.js +5 -3
  89. package/dist/browser/hooks/cytoscape/useCytoscapeOptions.js.map +1 -1
  90. package/dist/browser/hooks/cytoscape/useCytoscapeStyle.cjs.map +1 -1
  91. package/dist/browser/hooks/cytoscape/useCytoscapeStyle.js.map +1 -1
  92. package/dist/browser/hooks/cytoscape/useNewElements.cjs +5 -22
  93. package/dist/browser/hooks/cytoscape/useNewElements.cjs.map +1 -1
  94. package/dist/browser/hooks/cytoscape/useNewElements.d.cts.map +1 -1
  95. package/dist/browser/hooks/cytoscape/useNewElements.d.mts.map +1 -1
  96. package/dist/browser/hooks/cytoscape/useNewElements.d.ts.map +1 -1
  97. package/dist/browser/hooks/cytoscape/useNewElements.js +5 -22
  98. package/dist/browser/hooks/cytoscape/useNewElements.js.map +1 -1
  99. package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.cjs +10 -8
  100. package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.cjs.map +1 -1
  101. package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.js +10 -8
  102. package/dist/browser/hooks/cytoscape/useRelationalGraphOptions.js.map +1 -1
  103. package/dist/browser/hooks/cytoscape/useSelectedElement.cjs +30 -3
  104. package/dist/browser/hooks/cytoscape/useSelectedElement.cjs.map +1 -1
  105. package/dist/browser/hooks/cytoscape/useSelectedElement.d.cts.map +1 -1
  106. package/dist/browser/hooks/cytoscape/useSelectedElement.d.mts.map +1 -1
  107. package/dist/browser/hooks/cytoscape/useSelectedElement.d.ts.map +1 -1
  108. package/dist/browser/hooks/cytoscape/useSelectedElement.js +30 -3
  109. package/dist/browser/hooks/cytoscape/useSelectedElement.js.map +1 -1
  110. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.cjs +57 -0
  111. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.cjs.map +1 -0
  112. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.cts +4 -0
  113. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.cts.map +1 -0
  114. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.mts +4 -0
  115. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.mts.map +1 -0
  116. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.ts +4 -0
  117. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.d.ts.map +1 -0
  118. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.js +36 -0
  119. package/dist/browser/hooks/cytoscape/useToggleSelectedElement.js.map +1 -0
  120. package/dist/browser/hooks/index.cjs +46 -28
  121. package/dist/browser/hooks/index.cjs.map +1 -1
  122. package/dist/browser/hooks/index.js +42 -24
  123. package/dist/browser/hooks/index.js.map +1 -1
  124. package/dist/browser/index.cjs +123 -81
  125. package/dist/browser/index.cjs.map +1 -1
  126. package/dist/browser/index.d.cts +1 -0
  127. package/dist/browser/index.d.cts.map +1 -1
  128. package/dist/browser/index.d.mts +1 -0
  129. package/dist/browser/index.d.mts.map +1 -1
  130. package/dist/browser/index.d.ts +1 -0
  131. package/dist/browser/index.d.ts.map +1 -1
  132. package/dist/browser/index.js +123 -81
  133. package/dist/browser/index.js.map +1 -1
  134. package/dist/docs.json +2026 -1305
  135. package/dist/node/Cytoscape/CytoscapeElements.cjs +5 -5
  136. package/dist/node/Cytoscape/CytoscapeElements.cjs.map +1 -1
  137. package/dist/node/Cytoscape/CytoscapeElements.d.cts +3 -1
  138. package/dist/node/Cytoscape/CytoscapeElements.d.cts.map +1 -1
  139. package/dist/node/Cytoscape/CytoscapeElements.d.mts +3 -1
  140. package/dist/node/Cytoscape/CytoscapeElements.d.mts.map +1 -1
  141. package/dist/node/Cytoscape/CytoscapeElements.d.ts +3 -1
  142. package/dist/node/Cytoscape/CytoscapeElements.d.ts.map +1 -1
  143. package/dist/node/Cytoscape/CytoscapeElements.js +5 -5
  144. package/dist/node/Cytoscape/CytoscapeElements.js.map +1 -1
  145. package/dist/node/Cytoscape/CytoscapeStyles.cjs +3 -0
  146. package/dist/node/Cytoscape/CytoscapeStyles.cjs.map +1 -1
  147. package/dist/node/Cytoscape/CytoscapeStyles.d.cts +1 -0
  148. package/dist/node/Cytoscape/CytoscapeStyles.d.cts.map +1 -1
  149. package/dist/node/Cytoscape/CytoscapeStyles.d.mts +1 -0
  150. package/dist/node/Cytoscape/CytoscapeStyles.d.mts.map +1 -1
  151. package/dist/node/Cytoscape/CytoscapeStyles.d.ts +1 -0
  152. package/dist/node/Cytoscape/CytoscapeStyles.d.ts.map +1 -1
  153. package/dist/node/Cytoscape/CytoscapeStyles.js +2 -0
  154. package/dist/node/Cytoscape/CytoscapeStyles.js.map +1 -1
  155. package/dist/node/Cytoscape/index.cjs +8 -5
  156. package/dist/node/Cytoscape/index.cjs.map +1 -1
  157. package/dist/node/Cytoscape/index.js +7 -5
  158. package/dist/node/Cytoscape/index.js.map +1 -1
  159. package/dist/node/components/ProvidedNodeRenderer.cjs +13 -11
  160. package/dist/node/components/ProvidedNodeRenderer.cjs.map +1 -1
  161. package/dist/node/components/ProvidedNodeRenderer.js +14 -12
  162. package/dist/node/components/ProvidedNodeRenderer.js.map +1 -1
  163. package/dist/node/components/RelationalGraph.cjs +3 -3
  164. package/dist/node/components/RelationalGraph.cjs.map +1 -1
  165. package/dist/node/components/RelationalGraph.d.cts.map +1 -1
  166. package/dist/node/components/RelationalGraph.d.mts.map +1 -1
  167. package/dist/node/components/RelationalGraph.d.ts.map +1 -1
  168. package/dist/node/components/RelationalGraph.js +4 -4
  169. package/dist/node/components/RelationalGraph.js.map +1 -1
  170. package/dist/node/components/index.cjs +120 -81
  171. package/dist/node/components/index.cjs.map +1 -1
  172. package/dist/node/components/index.js +119 -81
  173. package/dist/node/components/index.js.map +1 -1
  174. package/dist/node/components/module/graph/GraphFlexBox.cjs +120 -81
  175. package/dist/node/components/module/graph/GraphFlexBox.cjs.map +1 -1
  176. package/dist/node/components/module/graph/GraphFlexBox.d.cts +1 -0
  177. package/dist/node/components/module/graph/GraphFlexBox.d.cts.map +1 -1
  178. package/dist/node/components/module/graph/GraphFlexBox.d.mts +1 -0
  179. package/dist/node/components/module/graph/GraphFlexBox.d.mts.map +1 -1
  180. package/dist/node/components/module/graph/GraphFlexBox.d.ts +1 -0
  181. package/dist/node/components/module/graph/GraphFlexBox.d.ts.map +1 -1
  182. package/dist/node/components/module/graph/GraphFlexBox.js +118 -80
  183. package/dist/node/components/module/graph/GraphFlexBox.js.map +1 -1
  184. package/dist/node/components/module/graph/NodeHover.cjs +17 -10
  185. package/dist/node/components/module/graph/NodeHover.cjs.map +1 -1
  186. package/dist/node/components/module/graph/NodeHover.d.cts.map +1 -1
  187. package/dist/node/components/module/graph/NodeHover.d.mts.map +1 -1
  188. package/dist/node/components/module/graph/NodeHover.d.ts.map +1 -1
  189. package/dist/node/components/module/graph/NodeHover.js +20 -13
  190. package/dist/node/components/module/graph/NodeHover.js.map +1 -1
  191. package/dist/node/components/module/graph/Popper.cjs +2 -2
  192. package/dist/node/components/module/graph/Popper.cjs.map +1 -1
  193. package/dist/node/components/module/graph/Popper.d.cts +1 -1
  194. package/dist/node/components/module/graph/Popper.d.cts.map +1 -1
  195. package/dist/node/components/module/graph/Popper.d.mts +1 -1
  196. package/dist/node/components/module/graph/Popper.d.mts.map +1 -1
  197. package/dist/node/components/module/graph/Popper.d.ts +1 -1
  198. package/dist/node/components/module/graph/Popper.d.ts.map +1 -1
  199. package/dist/node/components/module/graph/Popper.js +3 -3
  200. package/dist/node/components/module/graph/Popper.js.map +1 -1
  201. package/dist/node/components/module/graph/index.cjs +120 -81
  202. package/dist/node/components/module/graph/index.cjs.map +1 -1
  203. package/dist/node/components/module/graph/index.js +118 -80
  204. package/dist/node/components/module/graph/index.js.map +1 -1
  205. package/dist/node/components/module/index.cjs +120 -81
  206. package/dist/node/components/module/index.cjs.map +1 -1
  207. package/dist/node/components/module/index.js +118 -80
  208. package/dist/node/components/module/index.js.map +1 -1
  209. package/dist/node/hooks/cytoscape/index.cjs +46 -28
  210. package/dist/node/hooks/cytoscape/index.cjs.map +1 -1
  211. package/dist/node/hooks/cytoscape/index.js +42 -24
  212. package/dist/node/hooks/cytoscape/index.js.map +1 -1
  213. package/dist/node/hooks/cytoscape/useCytoscapeElements.cjs +5 -5
  214. package/dist/node/hooks/cytoscape/useCytoscapeElements.cjs.map +1 -1
  215. package/dist/node/hooks/cytoscape/useCytoscapeElements.js +5 -5
  216. package/dist/node/hooks/cytoscape/useCytoscapeElements.js.map +1 -1
  217. package/dist/node/hooks/cytoscape/useCytoscapeOptions.cjs +5 -3
  218. package/dist/node/hooks/cytoscape/useCytoscapeOptions.cjs.map +1 -1
  219. package/dist/node/hooks/cytoscape/useCytoscapeOptions.d.cts.map +1 -1
  220. package/dist/node/hooks/cytoscape/useCytoscapeOptions.d.mts.map +1 -1
  221. package/dist/node/hooks/cytoscape/useCytoscapeOptions.d.ts.map +1 -1
  222. package/dist/node/hooks/cytoscape/useCytoscapeOptions.js +5 -3
  223. package/dist/node/hooks/cytoscape/useCytoscapeOptions.js.map +1 -1
  224. package/dist/node/hooks/cytoscape/useCytoscapeStyle.cjs.map +1 -1
  225. package/dist/node/hooks/cytoscape/useCytoscapeStyle.js.map +1 -1
  226. package/dist/node/hooks/cytoscape/useNewElements.cjs +5 -22
  227. package/dist/node/hooks/cytoscape/useNewElements.cjs.map +1 -1
  228. package/dist/node/hooks/cytoscape/useNewElements.d.cts.map +1 -1
  229. package/dist/node/hooks/cytoscape/useNewElements.d.mts.map +1 -1
  230. package/dist/node/hooks/cytoscape/useNewElements.d.ts.map +1 -1
  231. package/dist/node/hooks/cytoscape/useNewElements.js +5 -22
  232. package/dist/node/hooks/cytoscape/useNewElements.js.map +1 -1
  233. package/dist/node/hooks/cytoscape/useRelationalGraphOptions.cjs +10 -8
  234. package/dist/node/hooks/cytoscape/useRelationalGraphOptions.cjs.map +1 -1
  235. package/dist/node/hooks/cytoscape/useRelationalGraphOptions.js +10 -8
  236. package/dist/node/hooks/cytoscape/useRelationalGraphOptions.js.map +1 -1
  237. package/dist/node/hooks/cytoscape/useSelectedElement.cjs +30 -3
  238. package/dist/node/hooks/cytoscape/useSelectedElement.cjs.map +1 -1
  239. package/dist/node/hooks/cytoscape/useSelectedElement.d.cts.map +1 -1
  240. package/dist/node/hooks/cytoscape/useSelectedElement.d.mts.map +1 -1
  241. package/dist/node/hooks/cytoscape/useSelectedElement.d.ts.map +1 -1
  242. package/dist/node/hooks/cytoscape/useSelectedElement.js +30 -3
  243. package/dist/node/hooks/cytoscape/useSelectedElement.js.map +1 -1
  244. package/dist/node/hooks/cytoscape/useToggleSelectedElement.cjs +61 -0
  245. package/dist/node/hooks/cytoscape/useToggleSelectedElement.cjs.map +1 -0
  246. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.cts +4 -0
  247. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.cts.map +1 -0
  248. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.mts +4 -0
  249. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.mts.map +1 -0
  250. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.ts +4 -0
  251. package/dist/node/hooks/cytoscape/useToggleSelectedElement.d.ts.map +1 -0
  252. package/dist/node/hooks/cytoscape/useToggleSelectedElement.js +36 -0
  253. package/dist/node/hooks/cytoscape/useToggleSelectedElement.js.map +1 -0
  254. package/dist/node/hooks/index.cjs +46 -28
  255. package/dist/node/hooks/index.cjs.map +1 -1
  256. package/dist/node/hooks/index.js +42 -24
  257. package/dist/node/hooks/index.js.map +1 -1
  258. package/dist/node/index.cjs +128 -81
  259. package/dist/node/index.cjs.map +1 -1
  260. package/dist/node/index.d.cts +1 -0
  261. package/dist/node/index.d.cts.map +1 -1
  262. package/dist/node/index.d.mts +1 -0
  263. package/dist/node/index.d.mts.map +1 -1
  264. package/dist/node/index.d.ts +1 -0
  265. package/dist/node/index.d.ts.map +1 -1
  266. package/dist/node/index.js +123 -81
  267. package/dist/node/index.js.map +1 -1
  268. package/package.json +27 -27
  269. package/src/Cytoscape/CytoscapeElements.ts +4 -4
  270. package/src/Cytoscape/CytoscapeStyles.ts +2 -0
  271. package/src/components/RelationalGraph.stories.tsx +4 -1
  272. package/src/components/RelationalGraph.tsx +14 -6
  273. package/src/components/module/graph/GraphFlexBox.stories.tsx +7 -10
  274. package/src/components/module/graph/GraphFlexBox.tsx +9 -0
  275. package/src/components/module/graph/NodeHover.tsx +32 -20
  276. package/src/components/module/graph/Popper.tsx +14 -10
  277. package/src/hooks/cytoscape/useCytoscapeOptions.ts +6 -3
  278. package/src/hooks/cytoscape/useNewElements.tsx +0 -10
  279. package/src/hooks/cytoscape/useSelectedElement.tsx +8 -3
  280. package/src/hooks/cytoscape/useToggleSelectedElement.tsx +30 -0
  281. package/src/index.ts +1 -0
package/package.json CHANGED
@@ -10,19 +10,19 @@
10
10
  "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/react-async-effect": "^3.0.6",
14
- "@xylabs/react-flexbox": "^3.0.6",
15
- "@xylabs/react-identicon": "^3.0.6",
16
- "@xylabs/react-shared": "^3.0.6",
17
- "@xyo-network/account-model": "^2.75.4",
18
- "@xyo-network/archivist-model": "^2.75.4",
19
- "@xyo-network/diviner-model": "^2.75.4",
20
- "@xyo-network/module": "^2.75.4",
21
- "@xyo-network/node-model": "^2.75.4",
22
- "@xyo-network/react-archivist": "~2.64.3",
23
- "@xyo-network/react-module": "~2.64.3",
24
- "@xyo-network/react-node": "~2.64.3",
25
- "@xyo-network/react-shared": "~2.64.3",
13
+ "@xylabs/react-async-effect": "^3.0.8",
14
+ "@xylabs/react-flexbox": "^3.0.8",
15
+ "@xylabs/react-identicon": "^3.0.8",
16
+ "@xylabs/react-shared": "^3.0.8",
17
+ "@xyo-network/account-model": "^2.75.6",
18
+ "@xyo-network/archivist-model": "^2.75.6",
19
+ "@xyo-network/diviner-model": "^2.75.6",
20
+ "@xyo-network/module": "^2.75.6",
21
+ "@xyo-network/node-model": "^2.75.6",
22
+ "@xyo-network/react-archivist": "~2.64.5",
23
+ "@xyo-network/react-module": "~2.64.5",
24
+ "@xyo-network/react-node": "~2.64.5",
25
+ "@xyo-network/react-shared": "~2.64.5",
26
26
  "cytoscape": "^3.26.0",
27
27
  "cytoscape-cola": "^2.5.1"
28
28
  },
@@ -39,19 +39,19 @@
39
39
  "@storybook/react": "^7.4.5",
40
40
  "@types/cytoscape": "^3.19.11",
41
41
  "@types/react-dom": "^18.2.8",
42
- "@xylabs/ts-scripts-yarn3": "^3.0.79",
43
- "@xylabs/tsconfig-react": "^3.0.79",
44
- "@xyo-network/archivist": "^2.75.4",
45
- "@xyo-network/bridge-model": "^2.75.5",
46
- "@xyo-network/http-bridge": "^2.75.4",
47
- "@xyo-network/id-plugin": "^2.75.4",
48
- "@xyo-network/module": "^2.75.4",
49
- "@xyo-network/node-memory": "^2.75.4",
50
- "@xyo-network/react-node": "~2.64.3",
51
- "@xyo-network/react-storybook": "~2.64.3",
52
- "@xyo-network/react-wallet": "~2.64.3",
53
- "@xyo-network/sentinel": "^2.75.4",
54
- "@xyo-network/witness": "^2.75.4",
42
+ "@xylabs/ts-scripts-yarn3": "^3.0.82",
43
+ "@xylabs/tsconfig-react": "^3.0.82",
44
+ "@xyo-network/archivist": "^2.75.6",
45
+ "@xyo-network/bridge-model": "^2.75.6",
46
+ "@xyo-network/http-bridge": "^2.75.6",
47
+ "@xyo-network/id-plugin": "^2.75.6",
48
+ "@xyo-network/module": "^2.75.6",
49
+ "@xyo-network/node-memory": "^2.75.6",
50
+ "@xyo-network/react-node": "~2.64.5",
51
+ "@xyo-network/react-storybook": "~2.64.5",
52
+ "@xyo-network/react-wallet": "~2.64.5",
53
+ "@xyo-network/sentinel": "^2.75.6",
54
+ "@xyo-network/witness": "^2.75.6",
55
55
  "typescript": "^5.2.2"
56
56
  },
57
57
  "description": "Common React library for all XYO projects that use React",
@@ -105,6 +105,6 @@
105
105
  },
106
106
  "sideEffects": false,
107
107
  "types": "dist/browser/index.d.ts",
108
- "version": "2.64.3",
108
+ "version": "2.64.5",
109
109
  "type": "module"
110
110
  }
@@ -24,7 +24,7 @@ export class CytoscapeElements {
24
24
  try {
25
25
  const childElements = await CytoscapeElements.recurseNodes(module)
26
26
  childElements?.forEach((module) => {
27
- const newNode = CytoscapeElements.buildNode(module, newRootNode.data.id)
27
+ const newNode = CytoscapeElements.buildNode(module, { rootNodeId: newRootNode.data.id })
28
28
  newElements.push(newNode)
29
29
 
30
30
  const newEdge = CytoscapeElements.buildEdge(newRootNode, newNode)
@@ -38,7 +38,7 @@ export class CytoscapeElements {
38
38
  }
39
39
  }
40
40
 
41
- static buildNode(module: ModuleInstance, rootNodeId?: string): ElementDefinition {
41
+ static buildNode(module: ModuleInstance, properties?: { [key: string]: unknown }): ElementDefinition {
42
42
  const { address, config } = module
43
43
  const normalizedName = config.name ?? address.substring(0, 8)
44
44
  return {
@@ -46,14 +46,14 @@ export class CytoscapeElements {
46
46
  address,
47
47
  id: address,
48
48
  name: normalizedName,
49
- rootNodeId,
50
49
  type: parseModuleType(module),
50
+ ...properties,
51
51
  },
52
52
  }
53
53
  }
54
54
 
55
55
  static buildRootNode = (module: ModuleInstance): ElementDefinition => {
56
- return CytoscapeElements.buildNode(module)
56
+ return CytoscapeElements.buildNode(module, { root: true })
57
57
  }
58
58
 
59
59
  static normalizeName(name?: string) {
@@ -39,3 +39,5 @@ export const EdgeStyled = (lineColor?: string, targetArrowColor?: string) => ({
39
39
  width: 3,
40
40
  },
41
41
  })
42
+
43
+ export const NodeBgStyles = (bgColor: string): [string, string] => ['background-color', bgColor]
@@ -12,6 +12,7 @@ import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
12
12
  import { MemorySentinel, SentinelConfigSchema } from '@xyo-network/sentinel'
13
13
  import { useState } from 'react'
14
14
 
15
+ import { CytoscapeInstanceProvider } from '../contexts'
15
16
  import { useCytoscapeElements, useCytoscapeOptions } from '../hooks'
16
17
  import { ProvidedNodeRenderer } from './ProvidedNodeRenderer'
17
18
  import { NodeRelationalGraphFlexBox } from './RelationalGraph'
@@ -62,7 +63,9 @@ const MemoryNodeDecorator: Decorator = (Story, args) => {
62
63
  return (
63
64
  <WalletProvider rootWallet={wallet}>
64
65
  <NodeProvider node={node}>
65
- <Story {...args} />
66
+ <CytoscapeInstanceProvider>
67
+ <Story {...args} />
68
+ </CytoscapeInstanceProvider>
66
69
  </NodeProvider>
67
70
  </WalletProvider>
68
71
  )
@@ -34,12 +34,20 @@ export const NodeRelationalGraphFlexBox = forwardRef<HTMLDivElement, NodeRelatio
34
34
  return (
35
35
  <FlexCol {...props}>
36
36
  <ActionsContainer>
37
- <ButtonGroup>
38
- {actions}
39
- <Button size={'small'} variant={'contained'} onClick={handleReset}>
40
- Reset
41
- </Button>
42
- </ButtonGroup>
37
+ <>
38
+ {actions ? (
39
+ <ButtonGroup>
40
+ {actions}
41
+ <Button size={'small'} variant={'contained'} onClick={handleReset}>
42
+ Reset View
43
+ </Button>
44
+ </ButtonGroup>
45
+ ) : (
46
+ <Button size={'small'} variant={'contained'} onClick={handleReset}>
47
+ Reset
48
+ </Button>
49
+ )}
50
+ </>
43
51
  </ActionsContainer>
44
52
  {/* Cytoscape Element */}
45
53
  <FlexCol alignItems="stretch" height="100%" position="absolute" ref={sharedRef} width="100%"></FlexCol>
@@ -10,8 +10,7 @@ import { useWallet, WalletProvider } from '@xyo-network/react-wallet'
10
10
  import { MemorySentinel, SentinelConfigSchema } from '@xyo-network/sentinel'
11
11
  import { useState } from 'react'
12
12
 
13
- import { CytoscapeInstanceProvider } from '../../../contexts'
14
- import { ModuleGraphFlexBox } from './GraphFlexBox'
13
+ import { ModuleGraphFlexBoxWithProvider } from './GraphFlexBox'
15
14
 
16
15
  const nodeUrl = 'http://localhost:8080/node'
17
16
 
@@ -58,9 +57,7 @@ const MemoryNodeDecorator: Decorator = (Story, args) => {
58
57
  return (
59
58
  <WalletProvider rootWallet={wallet}>
60
59
  <NodeProvider node={node}>
61
- <CytoscapeInstanceProvider>
62
- <Story {...args} />
63
- </CytoscapeInstanceProvider>
60
+ <Story {...args} />
64
61
  </NodeProvider>
65
62
  </WalletProvider>
66
63
  )
@@ -68,15 +65,15 @@ const MemoryNodeDecorator: Decorator = (Story, args) => {
68
65
 
69
66
  // eslint-disable-next-line import/no-default-export
70
67
  export default {
71
- component: ModuleGraphFlexBox,
72
- title: 'node/renderer/ModuleGraphFlexBox',
68
+ component: ModuleGraphFlexBoxWithProvider,
69
+ title: 'node/renderer/ModuleGraphFlexBoxWithProvider',
73
70
  } as Meta
74
71
 
75
- const Template: StoryFn<typeof ModuleGraphFlexBox> = (props) => <ModuleGraphFlexBox {...props} />
72
+ const Template: StoryFn<typeof ModuleGraphFlexBoxWithProvider> = (props) => <ModuleGraphFlexBoxWithProvider {...props} />
76
73
 
77
- const TemplateWithProvidedModule: StoryFn<typeof ModuleGraphFlexBox> = (props) => {
74
+ const TemplateWithProvidedModule: StoryFn<typeof ModuleGraphFlexBoxWithProvider> = (props) => {
78
75
  const [node] = useProvidedNode()
79
- return <ModuleGraphFlexBox rootModule={node} {...props} />
76
+ return <ModuleGraphFlexBoxWithProvider rootModule={node} {...props} />
80
77
  }
81
78
 
82
79
  const defaultProps = {
@@ -2,6 +2,7 @@ import { Button } from '@mui/material'
2
2
  import { FlexBoxProps } from '@xylabs/react-flexbox'
3
3
  import { ModuleInstance } from '@xyo-network/module'
4
4
 
5
+ import { CytoscapeInstanceProvider } from '../../../contexts'
5
6
  import { useHoveredNode, useNewElements, useRelationalGraphOptions, useRenderNewElements, useSelectedElement } from '../../../hooks'
6
7
  import { WithExtensions } from '../../cytoscape-extensions'
7
8
  import { NodeRelationalGraphFlexBox } from '../../RelationalGraph'
@@ -34,3 +35,11 @@ export const ModuleGraphFlexBox: React.FC<ModuleGraphFlexBoxProps> = ({ rootModu
34
35
  </WithExtensions>
35
36
  )
36
37
  }
38
+
39
+ export const ModuleGraphFlexBoxWithProvider: React.FC<ModuleGraphFlexBoxProps> = (props) => {
40
+ return (
41
+ <CytoscapeInstanceProvider>
42
+ <ModuleGraphFlexBox {...props} />
43
+ </CytoscapeInstanceProvider>
44
+ )
45
+ }
@@ -1,5 +1,7 @@
1
+ import { PopperProps } from '@mui/material'
2
+ import { FlexCol } from '@xylabs/react-flexbox'
1
3
  import { NodeSingular } from 'cytoscape'
2
- import { useLayoutEffect, useRef, useState } from 'react'
4
+ import { useEffect, useLayoutEffect, useRef, useState } from 'react'
3
5
 
4
6
  import { ModuleHoverPopper } from './Popper'
5
7
 
@@ -11,12 +13,16 @@ export const ModuleGraphNodeHover: React.FC<ModuleHoverProps> = ({ node }) => {
11
13
  const { address, name } = node?.data() ?? {}
12
14
  const [boundingBox, setBoundingBox] = useState(node?.renderedBoundingBox())
13
15
  const ref = useRef<HTMLDivElement>(null)
14
- const [currentEl, setCurrentEl] = useState<HTMLDivElement | null>(null)
16
+ const [currentEl, setCurrentEl] = useState<PopperProps['anchorEl'] | null>(null)
15
17
 
16
- useLayoutEffect(() => {
17
- if (node && ref.current) {
18
+ // Ensure first render clears the previous element when node changes to avoid flicker
19
+ useEffect(() => {
20
+ setCurrentEl(null)
21
+ }, [node])
22
+
23
+ useEffect(() => {
24
+ if (node) {
18
25
  setBoundingBox(node.renderedBoundingBox())
19
- setCurrentEl(ref.current)
20
26
  }
21
27
 
22
28
  const listener = () => {
@@ -30,25 +36,31 @@ export const ModuleGraphNodeHover: React.FC<ModuleHoverProps> = ({ node }) => {
30
36
  }
31
37
  }, [node])
32
38
 
39
+ // Once boundingBox state is set and applied to the layout, update the ref
40
+ useLayoutEffect(() => {
41
+ setCurrentEl(ref.current)
42
+ }, [boundingBox])
43
+
33
44
  return (
34
45
  <>
46
+ <FlexCol
47
+ ref={ref}
48
+ sx={{
49
+ // For easier debugging of the 'ghost' element that matches the hovered cytoscape node
50
+ // backgroundColor: '#fff',
51
+ // opacity: 0.25,
52
+ cursor: 'pointer',
53
+ height: boundingBox?.h,
54
+ left: boundingBox?.x1,
55
+ pointerEvents: 'none',
56
+ position: 'absolute',
57
+ top: boundingBox?.y1,
58
+ width: boundingBox?.w,
59
+ }}
60
+ />
35
61
  {node ? (
36
62
  <>
37
- <div
38
- ref={ref}
39
- style={{
40
- // backgroundColor: '#fff',
41
- // opacity: 0.25,
42
- cursor: 'pointer',
43
- height: boundingBox?.h,
44
- left: boundingBox?.x1,
45
- pointerEvents: 'none',
46
- position: 'absolute',
47
- top: boundingBox?.y1,
48
- width: boundingBox?.w,
49
- }}
50
- ></div>
51
- <ModuleHoverPopper address={address} element={currentEl} name={name} placement={'top'} open />
63
+ <ModuleHoverPopper address={address} element={currentEl} name={name} placement={'top'} open sx={{ zIndex: 2 }} />
52
64
  </>
53
65
  ) : null}
54
66
  </>
@@ -4,20 +4,24 @@ import { Identicon } from '@xylabs/react-identicon'
4
4
 
5
5
  export interface ModuleHoverPopperProps extends PopperProps {
6
6
  address?: string
7
- element?: HTMLElement | null
7
+ element?: PopperProps['anchorEl']
8
8
  name?: string
9
9
  }
10
10
 
11
11
  export const ModuleHoverPopper: React.FC<ModuleHoverPopperProps> = ({ address, element, name, ...props }) => {
12
12
  return (
13
- <Popper anchorEl={element} {...props}>
14
- <FlexCol gap={2} p={2} paper sx={{ backgroundColor: (theme: Theme) => alpha(theme.palette.background.paper, 0.95) }}>
15
- <FlexRow gap={2}>
16
- <Identicon value={address} size={24} />
17
- <Typography>{name}</Typography>
18
- </FlexRow>
19
- <Chip label={address} color={'primary'} />
20
- </FlexCol>
21
- </Popper>
13
+ <>
14
+ {element ? (
15
+ <Popper anchorEl={element} {...props}>
16
+ <FlexCol gap={2} p={2} paper sx={{ backgroundColor: (theme: Theme) => alpha(theme.palette.background.paper, 0.95) }}>
17
+ <FlexRow gap={2}>
18
+ <Identicon value={address} size={24} />
19
+ <Typography>{name}</Typography>
20
+ </FlexRow>
21
+ <Chip label={address} color={'primary'} />
22
+ </FlexCol>
23
+ </Popper>
24
+ ) : null}
25
+ </>
22
26
  )
23
27
  }
@@ -11,12 +11,15 @@ export const useCytoscapeOptions = (
11
11
  ) => {
12
12
  const defaultStyle = useCytoscapeStyle()
13
13
 
14
+ const resolvedLayout = layout ?? ConcentricLayout
15
+ const resolvedStyle = style ?? defaultStyle
16
+
14
17
  const options = useMemo<CytoscapeOptions | undefined>(() => {
15
- if (elements && layout && style) {
18
+ if (elements && resolvedLayout && resolvedStyle) {
16
19
  return {
17
20
  elements,
18
- layout: layout ?? ConcentricLayout,
19
- style: style ?? defaultStyle,
21
+ layout: resolvedLayout,
22
+ style: resolvedStyle,
20
23
  }
21
24
  }
22
25
  }, [elements, layout, style])
@@ -1,22 +1,12 @@
1
1
  import { useModuleFromNode } from '@xyo-network/react-node'
2
2
  import { NodeSingular } from 'cytoscape'
3
- import { useEffect } from 'react'
4
3
 
5
- import { useCytoscapeInstance } from '../../contexts'
6
4
  import { useCytoscapeElements } from './useCytoscapeElements'
7
5
 
8
6
  export const useNewElements = (selectedElement?: NodeSingular) => {
9
- const { cy } = useCytoscapeInstance(true)
10
7
  const { address: selectedAddress } = selectedElement?.data() ?? {}
11
8
  const [module] = useModuleFromNode(selectedAddress)
12
9
  const newElements = useCytoscapeElements(module)
13
10
 
14
- useEffect(() => {
15
- if (selectedAddress) {
16
- const element = cy?.$(`node[id="${selectedAddress}"]`)
17
- if (element?.length) cy?.center(element)
18
- }
19
- }, [cy, selectedAddress])
20
-
21
11
  return newElements
22
12
  }
@@ -2,22 +2,27 @@ import { EventObject, NodeSingular } from 'cytoscape'
2
2
  import { useEffect, useState } from 'react'
3
3
 
4
4
  import { useCytoscapeInstance } from '../../contexts'
5
+ import { useToggleSelectedElement } from './useToggleSelectedElement'
5
6
 
6
7
  export const useSelectedElement = () => {
7
8
  const { cy } = useCytoscapeInstance(true)
8
9
  const [selectedElement, setSelectedElement] = useState<NodeSingular>()
10
+ const toggleSelectedElement = useToggleSelectedElement(setSelectedElement)
9
11
 
10
12
  useEffect(() => {
11
13
  const listener = (event: EventObject) => {
12
- const element = event.target[0]
13
- if (element.isNode()) setSelectedElement(element)
14
+ const element: NodeSingular = event.target[0]
15
+ if (element.isNode()) {
16
+ toggleSelectedElement(element)
17
+ }
14
18
  }
19
+
15
20
  cy?.on('select', listener)
16
21
 
17
22
  return () => {
18
23
  cy?.off('select', listener)
19
24
  }
20
- }, [cy, setSelectedElement])
25
+ }, [cy, toggleSelectedElement])
21
26
 
22
27
  return selectedElement
23
28
  }
@@ -0,0 +1,30 @@
1
+ import { useTheme } from '@mui/material'
2
+ import { NodeSingular } from 'cytoscape'
3
+ import { Dispatch, SetStateAction } from 'react'
4
+
5
+ import { useCytoscapeInstance } from '../../contexts'
6
+ import { NodeBgStyles } from '../../Cytoscape'
7
+
8
+ export const useToggleSelectedElement = (setSelectedElement: Dispatch<SetStateAction<NodeSingular | undefined>>) => {
9
+ const { cy } = useCytoscapeInstance(true)
10
+ const theme = useTheme()
11
+
12
+ const updateStyles = (element: NodeSingular, styles: [string, string]) => {
13
+ cy
14
+ ?.style()
15
+ .selector(`node[id="${element.data().id}"]`)
16
+ .style(...styles)
17
+ }
18
+
19
+ const toggleSelectedElement = (element: NodeSingular) => {
20
+ setSelectedElement((previousSelectedElement) => {
21
+ if (previousSelectedElement) {
22
+ updateStyles(previousSelectedElement, NodeBgStyles(theme.palette.primary.main))
23
+ }
24
+ return element
25
+ })
26
+ updateStyles(element, NodeBgStyles(theme.palette.secondary.main))
27
+ }
28
+
29
+ return toggleSelectedElement
30
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './components'
2
+ export * from './contexts'
2
3
  export * from './Cytoscape'
3
4
  export * from './hooks'