@xyo-network/react-schema 2.81.9 → 2.82.0

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 (284) hide show
  1. package/dist/browser/components/Property/SchemaProperty.d.cts +6 -5
  2. package/dist/browser/components/Property/SchemaProperty.d.cts.map +1 -1
  3. package/dist/browser/components/Property/SchemaProperty.d.mts +6 -5
  4. package/dist/browser/components/Property/SchemaProperty.d.mts.map +1 -1
  5. package/dist/browser/components/Property/SchemaProperty.d.ts +6 -5
  6. package/dist/browser/components/Property/SchemaProperty.d.ts.map +1 -1
  7. package/dist/browser/components/Property/index.d.cts +1 -1
  8. package/dist/browser/components/Property/index.d.cts.map +1 -1
  9. package/dist/browser/components/Property/index.d.mts +1 -1
  10. package/dist/browser/components/Property/index.d.mts.map +1 -1
  11. package/dist/browser/components/Property/index.d.ts +1 -1
  12. package/dist/browser/components/Property/index.d.ts.map +1 -1
  13. package/dist/browser/components/SelectEx/SchemaSelectEx.d.cts +1 -0
  14. package/dist/browser/components/SelectEx/SchemaSelectEx.d.cts.map +1 -1
  15. package/dist/browser/components/SelectEx/SchemaSelectEx.d.mts +1 -0
  16. package/dist/browser/components/SelectEx/SchemaSelectEx.d.mts.map +1 -1
  17. package/dist/browser/components/SelectEx/SchemaSelectEx.d.ts +1 -0
  18. package/dist/browser/components/SelectEx/SchemaSelectEx.d.ts.map +1 -1
  19. package/dist/browser/components/SelectEx/index.d.cts +1 -1
  20. package/dist/browser/components/SelectEx/index.d.cts.map +1 -1
  21. package/dist/browser/components/SelectEx/index.d.mts +1 -1
  22. package/dist/browser/components/SelectEx/index.d.mts.map +1 -1
  23. package/dist/browser/components/SelectEx/index.d.ts +1 -1
  24. package/dist/browser/components/SelectEx/index.d.ts.map +1 -1
  25. package/dist/browser/components/index.d.cts +2 -2
  26. package/dist/browser/components/index.d.mts +2 -2
  27. package/dist/browser/components/index.d.ts +2 -2
  28. package/dist/browser/contexts/Schema/Context.d.cts +1 -1
  29. package/dist/browser/contexts/Schema/Context.d.mts +1 -1
  30. package/dist/browser/contexts/Schema/Context.d.ts +1 -1
  31. package/dist/browser/contexts/Schema/Provider/Memory.d.cts +2 -1
  32. package/dist/browser/contexts/Schema/Provider/Memory.d.cts.map +1 -1
  33. package/dist/browser/contexts/Schema/Provider/Memory.d.mts +2 -1
  34. package/dist/browser/contexts/Schema/Provider/Memory.d.mts.map +1 -1
  35. package/dist/browser/contexts/Schema/Provider/Memory.d.ts +2 -1
  36. package/dist/browser/contexts/Schema/Provider/Memory.d.ts.map +1 -1
  37. package/dist/browser/contexts/Schema/Provider/Props.d.cts.map +1 -1
  38. package/dist/browser/contexts/Schema/Provider/Props.d.mts.map +1 -1
  39. package/dist/browser/contexts/Schema/Provider/Props.d.ts.map +1 -1
  40. package/dist/browser/contexts/Schema/Provider/Route.d.cts +2 -1
  41. package/dist/browser/contexts/Schema/Provider/Route.d.cts.map +1 -1
  42. package/dist/browser/contexts/Schema/Provider/Route.d.mts +2 -1
  43. package/dist/browser/contexts/Schema/Provider/Route.d.mts.map +1 -1
  44. package/dist/browser/contexts/Schema/Provider/Route.d.ts +2 -1
  45. package/dist/browser/contexts/Schema/Provider/Route.d.ts.map +1 -1
  46. package/dist/browser/contexts/Schema/Provider/index.d.cts +3 -3
  47. package/dist/browser/contexts/Schema/Provider/index.d.cts.map +1 -1
  48. package/dist/browser/contexts/Schema/Provider/index.d.mts +3 -3
  49. package/dist/browser/contexts/Schema/Provider/index.d.mts.map +1 -1
  50. package/dist/browser/contexts/Schema/Provider/index.d.ts +3 -3
  51. package/dist/browser/contexts/Schema/Provider/index.d.ts.map +1 -1
  52. package/dist/browser/contexts/Schema/index.d.cts +4 -4
  53. package/dist/browser/contexts/Schema/index.d.mts +4 -4
  54. package/dist/browser/contexts/Schema/index.d.ts +4 -4
  55. package/dist/browser/contexts/Schema/use.d.cts +1 -1
  56. package/dist/browser/contexts/Schema/use.d.mts +1 -1
  57. package/dist/browser/contexts/Schema/use.d.ts +1 -1
  58. package/dist/browser/contexts/index.d.cts +1 -1
  59. package/dist/browser/contexts/index.d.mts +1 -1
  60. package/dist/browser/contexts/index.d.ts +1 -1
  61. package/dist/browser/hooks/index.d.cts +4 -4
  62. package/dist/browser/hooks/index.d.cts.map +1 -1
  63. package/dist/browser/hooks/index.d.mts +4 -4
  64. package/dist/browser/hooks/index.d.mts.map +1 -1
  65. package/dist/browser/hooks/index.d.ts +4 -4
  66. package/dist/browser/hooks/index.d.ts.map +1 -1
  67. package/dist/browser/hooks/useGetSchema.d.cts.map +1 -1
  68. package/dist/browser/hooks/useGetSchema.d.mts.map +1 -1
  69. package/dist/browser/hooks/useGetSchema.d.ts.map +1 -1
  70. package/dist/browser/hooks/useSchemaDefinitions.d.cts.map +1 -1
  71. package/dist/browser/hooks/useSchemaDefinitions.d.mts.map +1 -1
  72. package/dist/browser/hooks/useSchemaDefinitions.d.ts.map +1 -1
  73. package/dist/browser/hooks/useSchemaList.d.cts.map +1 -1
  74. package/dist/browser/hooks/useSchemaList.d.mts.map +1 -1
  75. package/dist/browser/hooks/useSchemaList.d.ts.map +1 -1
  76. package/dist/browser/hooks/useSchemaStats.d.cts.map +1 -1
  77. package/dist/browser/hooks/useSchemaStats.d.mts.map +1 -1
  78. package/dist/browser/hooks/useSchemaStats.d.ts.map +1 -1
  79. package/dist/browser/index.cjs +301 -205
  80. package/dist/browser/index.cjs.map +1 -1
  81. package/dist/browser/index.d.cts +3 -3
  82. package/dist/browser/index.d.mts +3 -3
  83. package/dist/browser/index.d.ts +3 -3
  84. package/dist/browser/index.mjs +422 -0
  85. package/dist/browser/index.mjs.map +1 -0
  86. package/dist/neutral/components/Property/SchemaProperty.d.cts +6 -5
  87. package/dist/neutral/components/Property/SchemaProperty.d.cts.map +1 -1
  88. package/dist/neutral/components/Property/SchemaProperty.d.mts +6 -5
  89. package/dist/neutral/components/Property/SchemaProperty.d.mts.map +1 -1
  90. package/dist/neutral/components/Property/SchemaProperty.d.ts +6 -5
  91. package/dist/neutral/components/Property/SchemaProperty.d.ts.map +1 -1
  92. package/dist/neutral/components/Property/index.d.cts +1 -1
  93. package/dist/neutral/components/Property/index.d.cts.map +1 -1
  94. package/dist/neutral/components/Property/index.d.mts +1 -1
  95. package/dist/neutral/components/Property/index.d.mts.map +1 -1
  96. package/dist/neutral/components/Property/index.d.ts +1 -1
  97. package/dist/neutral/components/Property/index.d.ts.map +1 -1
  98. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.cts +1 -0
  99. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.cts.map +1 -1
  100. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.mts +1 -0
  101. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.mts.map +1 -1
  102. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.ts +1 -0
  103. package/dist/neutral/components/SelectEx/SchemaSelectEx.d.ts.map +1 -1
  104. package/dist/neutral/components/SelectEx/index.d.cts +1 -1
  105. package/dist/neutral/components/SelectEx/index.d.cts.map +1 -1
  106. package/dist/neutral/components/SelectEx/index.d.mts +1 -1
  107. package/dist/neutral/components/SelectEx/index.d.mts.map +1 -1
  108. package/dist/neutral/components/SelectEx/index.d.ts +1 -1
  109. package/dist/neutral/components/SelectEx/index.d.ts.map +1 -1
  110. package/dist/neutral/components/index.d.cts +2 -2
  111. package/dist/neutral/components/index.d.mts +2 -2
  112. package/dist/neutral/components/index.d.ts +2 -2
  113. package/dist/neutral/contexts/Schema/Context.d.cts +1 -1
  114. package/dist/neutral/contexts/Schema/Context.d.mts +1 -1
  115. package/dist/neutral/contexts/Schema/Context.d.ts +1 -1
  116. package/dist/neutral/contexts/Schema/Provider/Memory.d.cts +2 -1
  117. package/dist/neutral/contexts/Schema/Provider/Memory.d.cts.map +1 -1
  118. package/dist/neutral/contexts/Schema/Provider/Memory.d.mts +2 -1
  119. package/dist/neutral/contexts/Schema/Provider/Memory.d.mts.map +1 -1
  120. package/dist/neutral/contexts/Schema/Provider/Memory.d.ts +2 -1
  121. package/dist/neutral/contexts/Schema/Provider/Memory.d.ts.map +1 -1
  122. package/dist/neutral/contexts/Schema/Provider/Props.d.cts.map +1 -1
  123. package/dist/neutral/contexts/Schema/Provider/Props.d.mts.map +1 -1
  124. package/dist/neutral/contexts/Schema/Provider/Props.d.ts.map +1 -1
  125. package/dist/neutral/contexts/Schema/Provider/Route.d.cts +2 -1
  126. package/dist/neutral/contexts/Schema/Provider/Route.d.cts.map +1 -1
  127. package/dist/neutral/contexts/Schema/Provider/Route.d.mts +2 -1
  128. package/dist/neutral/contexts/Schema/Provider/Route.d.mts.map +1 -1
  129. package/dist/neutral/contexts/Schema/Provider/Route.d.ts +2 -1
  130. package/dist/neutral/contexts/Schema/Provider/Route.d.ts.map +1 -1
  131. package/dist/neutral/contexts/Schema/Provider/index.d.cts +3 -3
  132. package/dist/neutral/contexts/Schema/Provider/index.d.cts.map +1 -1
  133. package/dist/neutral/contexts/Schema/Provider/index.d.mts +3 -3
  134. package/dist/neutral/contexts/Schema/Provider/index.d.mts.map +1 -1
  135. package/dist/neutral/contexts/Schema/Provider/index.d.ts +3 -3
  136. package/dist/neutral/contexts/Schema/Provider/index.d.ts.map +1 -1
  137. package/dist/neutral/contexts/Schema/index.d.cts +4 -4
  138. package/dist/neutral/contexts/Schema/index.d.mts +4 -4
  139. package/dist/neutral/contexts/Schema/index.d.ts +4 -4
  140. package/dist/neutral/contexts/Schema/use.d.cts +1 -1
  141. package/dist/neutral/contexts/Schema/use.d.mts +1 -1
  142. package/dist/neutral/contexts/Schema/use.d.ts +1 -1
  143. package/dist/neutral/contexts/index.d.cts +1 -1
  144. package/dist/neutral/contexts/index.d.mts +1 -1
  145. package/dist/neutral/contexts/index.d.ts +1 -1
  146. package/dist/neutral/hooks/index.d.cts +4 -4
  147. package/dist/neutral/hooks/index.d.cts.map +1 -1
  148. package/dist/neutral/hooks/index.d.mts +4 -4
  149. package/dist/neutral/hooks/index.d.mts.map +1 -1
  150. package/dist/neutral/hooks/index.d.ts +4 -4
  151. package/dist/neutral/hooks/index.d.ts.map +1 -1
  152. package/dist/neutral/hooks/useGetSchema.d.cts.map +1 -1
  153. package/dist/neutral/hooks/useGetSchema.d.mts.map +1 -1
  154. package/dist/neutral/hooks/useGetSchema.d.ts.map +1 -1
  155. package/dist/neutral/hooks/useSchemaDefinitions.d.cts.map +1 -1
  156. package/dist/neutral/hooks/useSchemaDefinitions.d.mts.map +1 -1
  157. package/dist/neutral/hooks/useSchemaDefinitions.d.ts.map +1 -1
  158. package/dist/neutral/hooks/useSchemaList.d.cts.map +1 -1
  159. package/dist/neutral/hooks/useSchemaList.d.mts.map +1 -1
  160. package/dist/neutral/hooks/useSchemaList.d.ts.map +1 -1
  161. package/dist/neutral/hooks/useSchemaStats.d.cts.map +1 -1
  162. package/dist/neutral/hooks/useSchemaStats.d.mts.map +1 -1
  163. package/dist/neutral/hooks/useSchemaStats.d.ts.map +1 -1
  164. package/dist/neutral/index.cjs +301 -205
  165. package/dist/neutral/index.cjs.map +1 -1
  166. package/dist/neutral/index.d.cts +3 -3
  167. package/dist/neutral/index.d.mts +3 -3
  168. package/dist/neutral/index.d.ts +3 -3
  169. package/dist/neutral/index.mjs +422 -0
  170. package/dist/neutral/index.mjs.map +1 -0
  171. package/dist/node/components/Property/SchemaProperty.d.cts +6 -5
  172. package/dist/node/components/Property/SchemaProperty.d.cts.map +1 -1
  173. package/dist/node/components/Property/SchemaProperty.d.mts +6 -5
  174. package/dist/node/components/Property/SchemaProperty.d.mts.map +1 -1
  175. package/dist/node/components/Property/SchemaProperty.d.ts +6 -5
  176. package/dist/node/components/Property/SchemaProperty.d.ts.map +1 -1
  177. package/dist/node/components/Property/index.d.cts +1 -1
  178. package/dist/node/components/Property/index.d.cts.map +1 -1
  179. package/dist/node/components/Property/index.d.mts +1 -1
  180. package/dist/node/components/Property/index.d.mts.map +1 -1
  181. package/dist/node/components/Property/index.d.ts +1 -1
  182. package/dist/node/components/Property/index.d.ts.map +1 -1
  183. package/dist/node/components/SelectEx/SchemaSelectEx.d.cts +1 -0
  184. package/dist/node/components/SelectEx/SchemaSelectEx.d.cts.map +1 -1
  185. package/dist/node/components/SelectEx/SchemaSelectEx.d.mts +1 -0
  186. package/dist/node/components/SelectEx/SchemaSelectEx.d.mts.map +1 -1
  187. package/dist/node/components/SelectEx/SchemaSelectEx.d.ts +1 -0
  188. package/dist/node/components/SelectEx/SchemaSelectEx.d.ts.map +1 -1
  189. package/dist/node/components/SelectEx/index.d.cts +1 -1
  190. package/dist/node/components/SelectEx/index.d.cts.map +1 -1
  191. package/dist/node/components/SelectEx/index.d.mts +1 -1
  192. package/dist/node/components/SelectEx/index.d.mts.map +1 -1
  193. package/dist/node/components/SelectEx/index.d.ts +1 -1
  194. package/dist/node/components/SelectEx/index.d.ts.map +1 -1
  195. package/dist/node/components/index.d.cts +2 -2
  196. package/dist/node/components/index.d.mts +2 -2
  197. package/dist/node/components/index.d.ts +2 -2
  198. package/dist/node/contexts/Schema/Context.d.cts +1 -1
  199. package/dist/node/contexts/Schema/Context.d.mts +1 -1
  200. package/dist/node/contexts/Schema/Context.d.ts +1 -1
  201. package/dist/node/contexts/Schema/Provider/Memory.d.cts +2 -1
  202. package/dist/node/contexts/Schema/Provider/Memory.d.cts.map +1 -1
  203. package/dist/node/contexts/Schema/Provider/Memory.d.mts +2 -1
  204. package/dist/node/contexts/Schema/Provider/Memory.d.mts.map +1 -1
  205. package/dist/node/contexts/Schema/Provider/Memory.d.ts +2 -1
  206. package/dist/node/contexts/Schema/Provider/Memory.d.ts.map +1 -1
  207. package/dist/node/contexts/Schema/Provider/Props.d.cts.map +1 -1
  208. package/dist/node/contexts/Schema/Provider/Props.d.mts.map +1 -1
  209. package/dist/node/contexts/Schema/Provider/Props.d.ts.map +1 -1
  210. package/dist/node/contexts/Schema/Provider/Route.d.cts +2 -1
  211. package/dist/node/contexts/Schema/Provider/Route.d.cts.map +1 -1
  212. package/dist/node/contexts/Schema/Provider/Route.d.mts +2 -1
  213. package/dist/node/contexts/Schema/Provider/Route.d.mts.map +1 -1
  214. package/dist/node/contexts/Schema/Provider/Route.d.ts +2 -1
  215. package/dist/node/contexts/Schema/Provider/Route.d.ts.map +1 -1
  216. package/dist/node/contexts/Schema/Provider/index.d.cts +3 -3
  217. package/dist/node/contexts/Schema/Provider/index.d.cts.map +1 -1
  218. package/dist/node/contexts/Schema/Provider/index.d.mts +3 -3
  219. package/dist/node/contexts/Schema/Provider/index.d.mts.map +1 -1
  220. package/dist/node/contexts/Schema/Provider/index.d.ts +3 -3
  221. package/dist/node/contexts/Schema/Provider/index.d.ts.map +1 -1
  222. package/dist/node/contexts/Schema/index.d.cts +4 -4
  223. package/dist/node/contexts/Schema/index.d.mts +4 -4
  224. package/dist/node/contexts/Schema/index.d.ts +4 -4
  225. package/dist/node/contexts/Schema/use.d.cts +1 -1
  226. package/dist/node/contexts/Schema/use.d.mts +1 -1
  227. package/dist/node/contexts/Schema/use.d.ts +1 -1
  228. package/dist/node/contexts/index.d.cts +1 -1
  229. package/dist/node/contexts/index.d.mts +1 -1
  230. package/dist/node/contexts/index.d.ts +1 -1
  231. package/dist/node/hooks/index.d.cts +4 -4
  232. package/dist/node/hooks/index.d.cts.map +1 -1
  233. package/dist/node/hooks/index.d.mts +4 -4
  234. package/dist/node/hooks/index.d.mts.map +1 -1
  235. package/dist/node/hooks/index.d.ts +4 -4
  236. package/dist/node/hooks/index.d.ts.map +1 -1
  237. package/dist/node/hooks/useGetSchema.d.cts.map +1 -1
  238. package/dist/node/hooks/useGetSchema.d.mts.map +1 -1
  239. package/dist/node/hooks/useGetSchema.d.ts.map +1 -1
  240. package/dist/node/hooks/useSchemaDefinitions.d.cts.map +1 -1
  241. package/dist/node/hooks/useSchemaDefinitions.d.mts.map +1 -1
  242. package/dist/node/hooks/useSchemaDefinitions.d.ts.map +1 -1
  243. package/dist/node/hooks/useSchemaList.d.cts.map +1 -1
  244. package/dist/node/hooks/useSchemaList.d.mts.map +1 -1
  245. package/dist/node/hooks/useSchemaList.d.ts.map +1 -1
  246. package/dist/node/hooks/useSchemaStats.d.cts.map +1 -1
  247. package/dist/node/hooks/useSchemaStats.d.mts.map +1 -1
  248. package/dist/node/hooks/useSchemaStats.d.ts.map +1 -1
  249. package/dist/node/index.cjs +305 -209
  250. package/dist/node/index.cjs.map +1 -1
  251. package/dist/node/index.d.cts +3 -3
  252. package/dist/node/index.d.mts +3 -3
  253. package/dist/node/index.d.ts +3 -3
  254. package/dist/node/index.mjs +426 -0
  255. package/dist/node/index.mjs.map +1 -0
  256. package/package.json +33 -33
  257. package/src/components/Property/SchemaProperty.stories.tsx +2 -2
  258. package/src/components/Property/SchemaProperty.tsx +40 -29
  259. package/src/components/Property/index.ts +1 -1
  260. package/src/components/SelectEx/SchemaSelectEx.tsx +2 -1
  261. package/src/components/SelectEx/index.ts +1 -1
  262. package/src/components/index.ts +2 -2
  263. package/src/contexts/Schema/Context.ts +1 -1
  264. package/src/contexts/Schema/Provider/Memory.tsx +8 -6
  265. package/src/contexts/Schema/Provider/Route.tsx +13 -11
  266. package/src/contexts/Schema/Provider/index.ts +3 -3
  267. package/src/contexts/Schema/index.ts +4 -4
  268. package/src/contexts/Schema/use.ts +2 -2
  269. package/src/contexts/index.ts +1 -1
  270. package/src/hooks/index.ts +4 -4
  271. package/src/hooks/stories/TestSchemaHooks.stories.tsx +12 -14
  272. package/src/hooks/useGetSchema.stories.tsx +3 -4
  273. package/src/hooks/useGetSchema.tsx +0 -1
  274. package/src/hooks/useSchemaDefinitions.tsx +2 -3
  275. package/src/hooks/useSchemaList.tsx +8 -9
  276. package/src/hooks/useSchemaStats.tsx +1 -2
  277. package/src/index.ts +3 -3
  278. package/dist/browser/index.js +0 -337
  279. package/dist/browser/index.js.map +0 -1
  280. package/dist/neutral/index.js +0 -337
  281. package/dist/neutral/index.js.map +0 -1
  282. package/dist/node/index.js +0 -341
  283. package/dist/node/index.js.map +0 -1
  284. /package/src/contexts/Schema/Provider/{Props.tsx → Props.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/components/Property/SchemaProperty.tsx","../../src/components/SelectEx/SchemaSelectEx.tsx","../../src/contexts/Schema/Context.ts","../../src/contexts/Schema/Provider/Memory.tsx","../../src/hooks/useGetSchema.tsx","../../src/hooks/useSchemaDefinitions.tsx","../../src/hooks/useSchemaList.tsx","../../src/hooks/useSchemaStats.tsx","../../src/contexts/Schema/Provider/Route.tsx","../../src/contexts/Schema/use.ts"],"sourcesContent":["export * from './components/index.js'\nexport * from './contexts/index.js'\nexport * from './hooks/index.js'\n","import { NewReleases as NewReleasesIcon, OpenInNew as OpenInNewIcon, Verified as VerifiedIcon } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { LinkEx } from '@xylabs/react-link'\nimport { EventDispatch, EventNoun, useEvent } from '@xyo-network/react-event'\nimport { Property, PropertyProps, PropertyValue } from '@xyo-network/react-property'\nimport { SchemaCache, SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { forwardRef, useState } from 'react'\n\nexport type SchemaPropertyProps = PropertyProps & {\n showLinkNames?: boolean\n showOpenNewWindowLink?: boolean\n showStatusIcon?: boolean\n value?: string\n}\n\nconst useResolveSchema = (schema?: string) => {\n const [entry, setEntry] = useState<SchemaCacheEntry | null>()\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (schema) {\n const entry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setEntry(entry)\n }\n }\n },\n [schema],\n )\n return entry\n}\n\nexport const SchemaProperty = forwardRef<HTMLDivElement, SchemaPropertyProps>(\n ({ showLinkNames = true, showOpenNewWindowLink = true, showStatusIcon = true, titleProps, value, ...props }, forwardedRef) => {\n const resolvedSchema = useResolveSchema(value)\n const [buttonRef, buttonDispatch] = useEvent<HTMLButtonElement>()\n const [divRef, divDispatch] = useEvent<HTMLDivElement>()\n\n const onClick = (dispatch?: EventDispatch<EventNoun, 'click', string>, openNewWindow = false) => {\n dispatch?.(\n 'schema',\n 'click',\n JSON.stringify({\n openNewWindow,\n schema: value,\n }),\n )\n }\n\n return (\n <Property ref={forwardedRef} title=\"Schema\" value={value} tip=\"Schema sent with the payload\" titleProps={titleProps} {...props}>\n {value && showStatusIcon ?\n resolvedSchema === null ?\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch)}>\n <NewReleasesIcon color=\"warning\" fontSize=\"inherit\" />\n </IconButton>\n : resolvedSchema === undefined ?\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch)}>\n <NewReleasesIcon color=\"disabled\" fontSize=\"inherit\" />\n </IconButton>\n : <IconButton rel=\"noopener noreferrer\" size=\"small\" target=\"_blank\" href={resolvedSchema?.huri?.href ?? ''}>\n <VerifiedIcon color=\"success\" fontSize=\"inherit\" />\n </IconButton>\n\n : null}\n {value ?\n <>\n {showLinkNames ?\n <LinkEx display=\"block\" width=\"100%\" sx={{ cursor: 'pointer' }}>\n <PropertyValue ref={divRef} value={value} title=\"view schema\" onClick={() => onClick(divDispatch)} />\n </LinkEx>\n : <PropertyValue ref={divRef} value={value} title=\"view schema\" onClick={() => onClick(divDispatch)} />}\n {showOpenNewWindowLink ?\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch, true)}>\n <OpenInNewIcon fontSize=\"inherit\" />\n </IconButton>\n : null}\n </>\n : null}\n </Property>\n )\n },\n)\n\nSchemaProperty.displayName = 'SchemaProperty'\n","import { MenuItem, Typography } from '@mui/material'\nimport { SelectEx, SelectExProps } from '@xylabs/react-select'\n\nimport { useSchema } from '../../contexts/index.js'\n\nexport type SchemaSelectExProps = SelectExProps<string>\n\nexport const SchemaSelectEx: React.FC<SchemaSelectExProps> = ({ onChange, variant = 'outlined', ...props }) => {\n const { schema, setSchema, schemaList } = useSchema(false)\n\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={schema ?? 'none'}\n onChange={(event, child) => {\n if (event.target.value !== schema) {\n onChange?.(event, child)\n setSchema?.(event.target.value)\n }\n }}\n renderValue={(value) => {\n return <Typography>{value === 'none' ? '- None -' : value}</Typography>\n }}\n {...props}\n >\n {schemaList?.map((schema, index) => {\n return (\n <MenuItem key={index} value={schema}>\n {schema}\n </MenuItem>\n )\n })}\n <MenuItem key=\"none\" value=\"none\">\n - None -\n </MenuItem>\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SchemaContextState } from './State.js'\n\nexport const SchemaContext = createContextEx<SchemaContextState>()\n","import { compact } from '@xylabs/lodash'\nimport { WithChildren } from '@xylabs/react-shared'\nimport { useEffect, useState } from 'react'\n\nimport { useSchemaStats } from '../../../hooks/index.js'\nimport { SchemaContext } from '../Context.js'\nimport { SchemaProviderProps } from './Props.js'\n\nexport const SchemaMemoryProvider: React.FC<WithChildren<SchemaProviderProps>> = ({ defaultSchema, knownSchemaList = [], ...props }) => {\n const [schema, setSchema] = useState(defaultSchema)\n const [schemaList, setSchemaList] = useState<string[] | undefined>(knownSchemaList)\n const [fetchedSchemaStats] = useSchemaStats()\n\n useEffect(() => {\n if (fetchedSchemaStats) {\n const schemaList = compact(fetchedSchemaStats.map(({ name }) => name))\n setSchemaList(schemaList)\n }\n }, [fetchedSchemaStats])\n\n return <SchemaContext.Provider value={{ provided: true, schema, schemaList: knownSchemaList ?? schemaList, setSchema, setSchemaList }} {...props} />\n}\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { SchemaCache, SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\n/**\n * Gets a Huri and schema payload from a schema string\n */\nconst useGetSchemaPayload = (schema?: string) => {\n const [notFound, setNotFound] = useState(false)\n const [xyoError, setError] = useState<ModuleError>()\n const [schemaCacheEntry, setSchemaCacheEntry] = useState<SchemaCacheEntry | null | undefined>()\n const [schemaLocal, setSchemaLocal] = useState<string>()\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const firstRequest = !notFound && !schemaCacheEntry && !xyoError\n const schemaChanged = schema !== schemaLocal\n\n if ((schema && firstRequest) || (schema && schemaChanged)) {\n try {\n const schemaCacheEntry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setSchemaCacheEntry(schemaCacheEntry)\n setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined)\n }\n } catch (e) {\n const error = e as Error\n console.error(e)\n if (mounted()) {\n setError({ message: error.message, schema: ModuleErrorSchema, sources: [] })\n }\n }\n }\n if (schemaChanged) {\n setSchemaLocal(schema)\n }\n },\n [xyoError, notFound, schema, schemaLocal, schemaCacheEntry],\n )\n\n return {\n notFound,\n schemaHuri: schemaCacheEntry?.huri,\n schemaPayload:\n schemaCacheEntry ? new PayloadBuilder<SchemaPayload>(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build() : schemaCacheEntry,\n xyoError,\n }\n}\n\nexport { useGetSchemaPayload }\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\nexport type SchemaList = { name: string }\n\nexport const useSchemaDefinitions = (schemaList?: SchemaList[]): SchemaPayload[] | undefined => {\n const [schemaPayloads, setSchemaPayloads] = useState<SchemaPayload[]>()\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n if (schemaList) {\n const promiseResults = await Promise.allSettled(schemaList?.map(({ name }) => SchemaCache.instance.get(name)))\n if (mounted()) {\n setSchemaPayloads(\n promiseResults\n .map((result) => (result.status === 'fulfilled' ? result.value?.payload : undefined))\n .filter((item) => item !== undefined && item !== null) as SchemaPayload[],\n )\n }\n }\n },\n [schemaList],\n )\n return schemaPayloads\n}\n","import { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaListPayload, SchemaListQueryPayload, SchemaListQuerySchema } from '@xyo-network/diviner-schema-list-model'\nimport { WithMeta } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { useEffect, useMemo, useState } from 'react'\n\nexport const useSchemaList = (address?: Address, nameOrAddress = 'SchemaListDiviner'): [SchemaListPayload | null | undefined, Error | undefined] => {\n const [schemaList, setSchemaList] = useState<SchemaListPayload | null>()\n const [error, setError] = useState<Error>()\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n\n const query: SchemaListQueryPayload[] | undefined = useMemo(\n () =>\n address ?\n [\n {\n address,\n schema: SchemaListQuerySchema,\n },\n ]\n : undefined,\n [address],\n )\n\n useEffect(() => {\n if (diviner === null) {\n setSchemaList(null)\n setError(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps, require-await\n async (mounted) => {\n const divinerInstance = diviner?.deref()\n if (divinerInstance) {\n try {\n const response = (await divinerInstance.divine(query)) as WithMeta<SchemaListPayload>[]\n if (mounted()) {\n setSchemaList(response?.[0])\n setError(undefined)\n }\n } catch (e) {\n setError(e as Error)\n setSchemaList(undefined)\n }\n }\n },\n [diviner, divinerError, query],\n )\n return [schemaList, error]\n}\n","import { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport {\n SchemaStatsDivinerSchema,\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n SchemaStatsQuerySchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport { isPayloadOfSchemaTypeWithMeta, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { Dispatch, SetStateAction, useMemo, useState } from 'react'\n\nexport const useSchemaStats = (\n statsAddress?: Address,\n nameOrAddress = TYPES.SchemaStatsDiviner,\n): [SchemaStatsPayload[] | undefined, Error | undefined, Dispatch<SetStateAction<number>>] => {\n const [refresh, setRefresh] = useState(1)\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n const [error, setError] = useState<Error>()\n const refreshHistory = () => setRefresh((previous) => previous + 1)\n\n const [schemaList, setSchemaList] = useState<WithSources<WithMeta<SchemaStatsPayload>>[]>()\n\n const query: SchemaStatsQueryPayload = useMemo(\n () => ({\n address: statsAddress,\n schema: SchemaStatsQuerySchema,\n }),\n [statsAddress],\n )\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const instance = diviner?.deref()\n if (instance) {\n if (divinerError) {\n if (mounted()) {\n setError(divinerError)\n setSchemaList(undefined)\n }\n } else {\n try {\n const schemas = (await instance.divine([query])).filter(isPayloadOfSchemaTypeWithMeta(SchemaStatsDivinerSchema)) as WithSources<\n WithMeta<SchemaStatsPayload>\n >[]\n if (mounted()) {\n setSchemaList(schemas)\n setError(undefined)\n }\n } catch (ex) {\n setError(ex as Error)\n setSchemaList(undefined)\n }\n }\n }\n },\n [diviner, refresh, divinerError, query],\n )\n\n return [schemaList, error, refreshHistory]\n}\n","import type { WithChildren } from '@xylabs/react-shared'\nimport { useCallback, useEffect } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { SchemaContext } from '../Context.js'\nimport { useSchema } from '../use.js'\nimport { SchemaMemoryProvider } from './Memory.js'\nimport { SchemaProviderProps } from './Props.js'\n\nconst SchemaRouteProviderInner: React.FC<WithChildren> = ({ children }) => {\n const { schema, setSchema, schemaList } = useSchema()\n\n const [params, setParams] = useSearchParams()\n\n const routeSchema = params.get('schema')\n\n //update the network stored in the route\n const setSchemaParam = useCallback(\n (schema?: string) => {\n if (schema) {\n params.set('schema', schema)\n setParams(params, { replace: true })\n setSchema?.(schema)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setSchema],\n )\n\n //if the network is actively changed, update both memory and route\n const setSchemaLocal = useCallback(\n (schema: string) => {\n setSchemaParam(schema)\n setSchema?.(schema)\n },\n [setSchemaParam, setSchema],\n )\n\n //sync memory and route storage of network\n useEffect(() => {\n if (routeSchema !== schema) {\n if (routeSchema === undefined && schema !== undefined) {\n //if the route does not have a network selected, use what is in the memory context\n setSchemaLocal(schema)\n } else if (routeSchema) {\n //if the route has a selection and it is different from memory, update memory\n setSchema?.(routeSchema)\n }\n }\n }, [routeSchema, schema, setSchemaParam, setSchema, setSchemaLocal])\n\n return <SchemaContext.Provider value={{ provided: true, schema, schemaList, setSchema: setSchemaLocal }}>{children}</SchemaContext.Provider>\n}\n\nexport const SchemaRouteProvider: React.FC<WithChildren<SchemaProviderProps>> = ({ knownSchemaList, defaultSchema, ...props }) => {\n return (\n <SchemaMemoryProvider knownSchemaList={knownSchemaList} defaultSchema={defaultSchema}>\n <SchemaRouteProviderInner {...props} />\n </SchemaMemoryProvider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SchemaContext } from './Context.js'\nimport { SchemaContextState } from './State.js'\n\nexport const useSchema = (required = false) => {\n return useContextEx<SchemaContextState>(SchemaContext, 'Schema', required)\n}\n"],"mappings":"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","names":["entry","NewReleasesIcon","VerifiedIcon","OpenInNewIcon","import_material","import_react","import_react_async_effect","import_schema_cache","import_react","schemaCacheEntry","import_react_async_effect","import_schema_cache","import_react","import_react_async_effect","import_react","import_react_async_effect","import_payload_model","import_react_diviner","import_react","import_jsx_runtime","schemaList","import_react","import_react_shared","import_jsx_runtime","schema","import_jsx_runtime","schema"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/components/Property/SchemaProperty.tsx","../../src/components/SelectEx/SchemaSelectEx.tsx","../../src/contexts/Schema/Context.ts","../../src/contexts/Schema/Provider/Memory.tsx","../../src/hooks/useGetSchema.tsx","../../src/hooks/useSchemaDefinitions.tsx","../../src/hooks/useSchemaList.tsx","../../src/hooks/useSchemaStats.tsx","../../src/contexts/Schema/Provider/Route.tsx","../../src/contexts/Schema/use.ts"],"sourcesContent":["export * from './components/index.ts'\nexport * from './contexts/index.ts'\nexport * from './hooks/index.ts'\n","import { NewReleases as NewReleasesIcon, OpenInNew as OpenInNewIcon, Verified as VerifiedIcon } from '@mui/icons-material'\nimport { IconButton } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { LinkEx } from '@xylabs/react-link'\nimport { EventDispatch, EventNoun, useEvent } from '@xyo-network/react-event'\nimport { Property, PropertyProps, PropertyValue } from '@xyo-network/react-property'\nimport { SchemaCache, SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport React, { forwardRef, useState } from 'react'\n\nexport type SchemaPropertyProps = PropertyProps & {\n showLinkNames?: boolean\n showOpenNewWindowLink?: boolean\n showStatusIcon?: boolean\n value?: string\n}\n\nconst useResolveSchema = (schema?: string) => {\n const [entry, setEntry] = useState<SchemaCacheEntry | null>()\n useAsyncEffect(\n async (mounted) => {\n if (schema) {\n const entry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setEntry(entry)\n }\n }\n },\n [schema],\n )\n return entry\n}\n\nexport const SchemaProperty = forwardRef<HTMLDivElement, SchemaPropertyProps>(\n ({ showLinkNames = true, showOpenNewWindowLink = true, showStatusIcon = true, titleProps, value, ...props }, forwardedRef) => {\n const resolvedSchema = useResolveSchema(value)\n const [buttonRef, buttonDispatch] = useEvent<HTMLButtonElement>()\n const [divRef, divDispatch] = useEvent<HTMLDivElement>()\n\n const onClick = (dispatch?: EventDispatch<EventNoun, 'click', string>, openNewWindow = false) => {\n dispatch?.(\n 'schema',\n 'click',\n JSON.stringify({\n openNewWindow,\n schema: value,\n }),\n )\n }\n\n return (\n <Property ref={forwardedRef} title=\"Schema\" value={value} tip=\"Schema sent with the payload\" titleProps={titleProps} {...props}>\n {value && showStatusIcon\n ? resolvedSchema === null\n ? (\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch)}>\n <NewReleasesIcon color=\"warning\" fontSize=\"inherit\" />\n </IconButton>\n )\n : resolvedSchema === undefined\n ? (\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch)}>\n <NewReleasesIcon color=\"disabled\" fontSize=\"inherit\" />\n </IconButton>\n )\n : (\n <IconButton rel=\"noopener noreferrer\" size=\"small\" target=\"_blank\" href={resolvedSchema?.huri?.href ?? ''}>\n <VerifiedIcon color=\"success\" fontSize=\"inherit\" />\n </IconButton>\n )\n\n : null}\n {value\n ? (\n <>\n {showLinkNames\n ? (\n <LinkEx display=\"block\" width=\"100%\" sx={{ cursor: 'pointer' }}>\n <PropertyValue ref={divRef} value={value} title=\"view schema\" onClick={() => onClick(divDispatch)} />\n </LinkEx>\n )\n : <PropertyValue ref={divRef} value={value} title=\"view schema\" onClick={() => onClick(divDispatch)} />}\n {showOpenNewWindowLink\n ? (\n <IconButton ref={buttonRef} size=\"small\" onClick={() => onClick(buttonDispatch, true)}>\n <OpenInNewIcon fontSize=\"inherit\" />\n </IconButton>\n )\n : null}\n </>\n )\n : null}\n </Property>\n )\n },\n)\n\nSchemaProperty.displayName = 'SchemaProperty'\n","import { MenuItem, Typography } from '@mui/material'\nimport { SelectEx, SelectExProps } from '@xylabs/react-select'\nimport React from 'react'\n\nimport { useSchema } from '../../contexts/index.ts'\n\nexport type SchemaSelectExProps = SelectExProps<string>\n\nexport const SchemaSelectEx: React.FC<SchemaSelectExProps> = ({ onChange, variant = 'outlined', ...props }) => {\n const { schema, setSchema, schemaList } = useSchema(false)\n\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={schema ?? 'none'}\n onChange={(event, child) => {\n if (event.target.value !== schema) {\n onChange?.(event, child)\n setSchema?.(event.target.value)\n }\n }}\n renderValue={(value) => {\n return <Typography>{value === 'none' ? '- None -' : value}</Typography>\n }}\n {...props}\n >\n {schemaList?.map((schema, index) => {\n return (\n <MenuItem key={index} value={schema}>\n {schema}\n </MenuItem>\n )\n })}\n <MenuItem key=\"none\" value=\"none\">\n - None -\n </MenuItem>\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xyo-network/react-shared'\n\nimport { SchemaContextState } from './State.ts'\n\nexport const SchemaContext = createContextEx<SchemaContextState>()\n","import { compact } from '@xylabs/lodash'\nimport { WithChildren } from '@xylabs/react-shared'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useSchemaStats } from '../../../hooks/index.ts'\nimport { SchemaContext } from '../Context.ts'\nimport { SchemaProviderProps } from './Props.ts'\n\nexport const SchemaMemoryProvider: React.FC<WithChildren<SchemaProviderProps>> = ({ defaultSchema, knownSchemaList, ...props }) => {\n const [schema, setSchema] = useState(defaultSchema)\n const [schemaList, setSchemaList] = useState<string[] | undefined>(knownSchemaList)\n const [fetchedSchemaStats] = useSchemaStats()\n\n useEffect(() => {\n if (fetchedSchemaStats) {\n const schemaList = compact(fetchedSchemaStats.map(({ name }) => name))\n setSchemaList(schemaList)\n }\n }, [fetchedSchemaStats])\n\n const value = useMemo(() => ({ provided: true, schema, schemaList: knownSchemaList ?? schemaList, setSchema, setSchemaList }), [schema, schemaList, knownSchemaList])\n\n return <SchemaContext.Provider value={value} {...props} />\n}\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { ModuleError, ModuleErrorSchema } from '@xyo-network/payload-model'\nimport { SchemaCache, SchemaCacheEntry } from '@xyo-network/schema-cache'\nimport { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\n/**\n * Gets a Huri and schema payload from a schema string\n */\nconst useGetSchemaPayload = (schema?: string) => {\n const [notFound, setNotFound] = useState(false)\n const [xyoError, setError] = useState<ModuleError>()\n const [schemaCacheEntry, setSchemaCacheEntry] = useState<SchemaCacheEntry | null | undefined>()\n const [schemaLocal, setSchemaLocal] = useState<string>()\n\n useAsyncEffect(\n async (mounted) => {\n const firstRequest = !notFound && !schemaCacheEntry && !xyoError\n const schemaChanged = schema !== schemaLocal\n\n if ((schema && firstRequest) || (schema && schemaChanged)) {\n try {\n const schemaCacheEntry = await SchemaCache.instance.get(schema)\n if (mounted()) {\n setSchemaCacheEntry(schemaCacheEntry)\n setNotFound(schemaCacheEntry === null || schemaCacheEntry === undefined)\n }\n } catch (e) {\n const error = e as Error\n console.error(e)\n if (mounted()) {\n setError({ message: error.message, schema: ModuleErrorSchema, sources: [] })\n }\n }\n }\n if (schemaChanged) {\n setSchemaLocal(schema)\n }\n },\n [xyoError, notFound, schema, schemaLocal, schemaCacheEntry],\n )\n\n return {\n notFound,\n schemaHuri: schemaCacheEntry?.huri,\n schemaPayload:\n schemaCacheEntry ? new PayloadBuilder<SchemaPayload>(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build() : schemaCacheEntry,\n xyoError,\n }\n}\n\nexport { useGetSchemaPayload }\n","import { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaCache } from '@xyo-network/schema-cache'\nimport { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { useState } from 'react'\n\nexport type SchemaList = { name: string }\n\nexport const useSchemaDefinitions = (schemaList?: SchemaList[]): SchemaPayload[] | undefined => {\n const [schemaPayloads, setSchemaPayloads] = useState<SchemaPayload[]>()\n useAsyncEffect(\n async (mounted) => {\n if (schemaList) {\n const promiseResults = await Promise.allSettled(schemaList?.map(({ name }) => SchemaCache.instance.get(name)))\n if (mounted()) {\n setSchemaPayloads(\n promiseResults\n .map(result => (result.status === 'fulfilled' ? result.value?.payload : undefined))\n .filter(item => item !== undefined && item !== null) as SchemaPayload[],\n )\n }\n }\n },\n [schemaList],\n )\n return schemaPayloads\n}\n","import { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { SchemaListPayload, SchemaListQueryPayload, SchemaListQuerySchema } from '@xyo-network/diviner-schema-list-model'\nimport { WithMeta } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { useEffect, useMemo, useState } from 'react'\n\nexport const useSchemaList = (address?: Address, nameOrAddress = 'SchemaListDiviner'): [SchemaListPayload | null | undefined, Error | undefined] => {\n const [schemaList, setSchemaList] = useState<SchemaListPayload | null>()\n const [error, setError] = useState<Error>()\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n\n const query: SchemaListQueryPayload[] | undefined = useMemo(\n () =>\n address\n ? [\n {\n address,\n schema: SchemaListQuerySchema,\n },\n ]\n : undefined,\n [address],\n )\n\n useEffect(() => {\n if (diviner === null) {\n setSchemaList(null)\n setError(undefined)\n }\n }, [diviner])\n\n useAsyncEffect(\n async (mounted) => {\n const divinerInstance = diviner?.deref()\n if (divinerInstance) {\n try {\n const response = (await divinerInstance.divine(query)) as WithMeta<SchemaListPayload>[]\n if (mounted()) {\n setSchemaList(response?.[0])\n setError(undefined)\n }\n } catch (e) {\n setError(e as Error)\n setSchemaList(undefined)\n }\n }\n },\n [diviner, divinerError, query],\n )\n return [schemaList, error]\n}\n","import { Address } from '@xylabs/hex'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport {\n SchemaStatsDivinerSchema,\n SchemaStatsPayload,\n SchemaStatsQueryPayload,\n SchemaStatsQuerySchema,\n} from '@xyo-network/diviner-schema-stats-model'\nimport { TYPES } from '@xyo-network/node-core-types'\nimport { isPayloadOfSchemaTypeWithMeta, WithMeta, WithSources } from '@xyo-network/payload-model'\nimport { useWeakDivinerFromNode } from '@xyo-network/react-diviner'\nimport { Dispatch, SetStateAction, useMemo, useState } from 'react'\n\nexport const useSchemaStats = (\n statsAddress?: Address,\n nameOrAddress = TYPES.SchemaStatsDiviner,\n): [SchemaStatsPayload[] | undefined, Error | undefined, Dispatch<SetStateAction<number>>] => {\n const [refresh, setRefresh] = useState(1)\n const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress)\n const [error, setError] = useState<Error>()\n const refreshHistory = () => setRefresh(previous => previous + 1)\n\n const [schemaList, setSchemaList] = useState<WithSources<WithMeta<SchemaStatsPayload>>[]>()\n\n const query: SchemaStatsQueryPayload = useMemo(\n () => ({\n address: statsAddress,\n schema: SchemaStatsQuerySchema,\n }),\n [statsAddress],\n )\n\n useAsyncEffect(\n async (mounted) => {\n const instance = diviner?.deref()\n if (instance) {\n if (divinerError) {\n if (mounted()) {\n setError(divinerError)\n setSchemaList(undefined)\n }\n } else {\n try {\n const schemas = (await instance.divine([query])).filter(isPayloadOfSchemaTypeWithMeta(SchemaStatsDivinerSchema)) as WithSources<\n WithMeta<SchemaStatsPayload>\n >[]\n if (mounted()) {\n setSchemaList(schemas)\n setError(undefined)\n }\n } catch (ex) {\n setError(ex as Error)\n setSchemaList(undefined)\n }\n }\n }\n },\n [diviner, refresh, divinerError, query],\n )\n\n return [schemaList, error, refreshHistory]\n}\n","import type { WithChildren } from '@xylabs/react-shared'\nimport React, { useCallback, useEffect, useMemo } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { SchemaContext } from '../Context.ts'\nimport { useSchema } from '../use.ts'\nimport { SchemaMemoryProvider } from './Memory.tsx'\nimport { SchemaProviderProps } from './Props.ts'\n\nconst SchemaRouteProviderInner: React.FC<WithChildren> = ({ children }) => {\n const { schema, setSchema, schemaList } = useSchema()\n\n const [params, setParams] = useSearchParams()\n\n const routeSchema = params.get('schema')\n\n // update the network stored in the route\n const setSchemaParam = useCallback(\n (schema?: string) => {\n if (schema) {\n params.set('schema', schema)\n setParams(params, { replace: true })\n setSchema?.(schema)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setSchema],\n )\n\n // if the network is actively changed, update both memory and route\n const setSchemaLocal = useCallback(\n (schema: string) => {\n setSchemaParam(schema)\n setSchema?.(schema)\n },\n [setSchemaParam, setSchema],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeSchema !== schema) {\n if (routeSchema === undefined && schema !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setSchemaLocal(schema)\n } else if (routeSchema) {\n // if the route has a selection and it is different from memory, update memory\n setSchema?.(routeSchema)\n }\n }\n }, [routeSchema, schema, setSchemaParam, setSchema, setSchemaLocal])\n\n const value = useMemo(() => ({ provided: true, schema, schemaList, setSchema: setSchemaLocal }), [schema, schemaList, setSchemaLocal])\n\n return <SchemaContext.Provider value={value}>{children}</SchemaContext.Provider>\n}\n\nexport const SchemaRouteProvider: React.FC<WithChildren<SchemaProviderProps>> = ({ knownSchemaList, defaultSchema, ...props }) => {\n return (\n <SchemaMemoryProvider knownSchemaList={knownSchemaList} defaultSchema={defaultSchema}>\n <SchemaRouteProviderInner {...props} />\n </SchemaMemoryProvider>\n )\n}\n","import { useContextEx } from '@xyo-network/react-shared'\n\nimport { SchemaContext } from './Context.ts'\nimport { SchemaContextState } from './State.ts'\n\nexport const useSchema = (required = false) => {\n return useContextEx<SchemaContextState>(SchemaContext, 'Schema', required)\n}\n"],"mappings":"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","names":["useResolveSchema","schema","entry","setEntry","useState","useAsyncEffect","mounted","SchemaCache","instance","get","SchemaProperty","forwardRef","showLinkNames","showOpenNewWindowLink","showStatusIcon","titleProps","value","props","forwardedRef","resolvedSchema","buttonRef","buttonDispatch","useEvent","divRef","divDispatch","onClick","dispatch","openNewWindow","JSON","stringify","React","Property","ref","title","tip","IconButton","size","NewReleasesIcon","color","fontSize","undefined","rel","target","href","huri","VerifiedIcon","LinkEx","display","width","sx","cursor","PropertyValue","OpenInNewIcon","displayName","import_material","import_react","SchemaContext","createContextEx","import_react","import_react_async_effect","import_schema_cache","import_react","useGetSchemaPayload","schema","notFound","setNotFound","useState","xyoError","setError","schemaCacheEntry","setSchemaCacheEntry","schemaLocal","setSchemaLocal","useAsyncEffect","mounted","firstRequest","schemaChanged","SchemaCache","instance","get","undefined","e","error","console","message","ModuleErrorSchema","sources","schemaHuri","huri","schemaPayload","PayloadBuilder","payload","fields","build","import_react_async_effect","import_schema_cache","import_react","useSchemaDefinitions","schemaList","schemaPayloads","setSchemaPayloads","useState","useAsyncEffect","mounted","promiseResults","Promise","allSettled","map","name","SchemaCache","instance","get","result","status","value","payload","undefined","filter","item","import_react_async_effect","import_react","useSchemaList","address","nameOrAddress","schemaList","setSchemaList","useState","error","setError","diviner","divinerError","useWeakDivinerFromNode","query","useMemo","schema","SchemaListQuerySchema","undefined","useEffect","useAsyncEffect","mounted","divinerInstance","deref","response","divine","e","import_react_async_effect","import_payload_model","import_react_diviner","import_react","useSchemaStats","statsAddress","nameOrAddress","TYPES","SchemaStatsDiviner","refresh","setRefresh","useState","diviner","divinerError","useWeakDivinerFromNode","error","setError","refreshHistory","previous","schemaList","setSchemaList","query","useMemo","address","schema","SchemaStatsQuerySchema","useAsyncEffect","mounted","instance","deref","undefined","schemas","divine","filter","isPayloadOfSchemaTypeWithMeta","SchemaStatsDivinerSchema","ex","SchemaMemoryProvider","defaultSchema","knownSchemaList","props","schema","setSchema","useState","schemaList","setSchemaList","fetchedSchemaStats","useSchemaStats","useEffect","compact","map","name","value","useMemo","provided","React","SchemaContext","Provider","import_react","import_react_shared","useSchema","required","useContextEx","SchemaContext","SchemaRouteProviderInner","children","schema","setSchema","schemaList","useSchema","params","setParams","useSearchParams","routeSchema","get","setSchemaParam","useCallback","set","replace","delete","setSchemaLocal","useEffect","undefined","value","useMemo","provided","React","SchemaContext","Provider","SchemaRouteProvider","knownSchemaList","defaultSchema","props","SchemaMemoryProvider","SchemaSelectEx","onChange","variant","props","schema","setSchema","schemaList","useSchema","React","SelectEx","size","value","event","child","target","renderValue","Typography","map","index","MenuItem","key"]}
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export * from './components/index.js';
2
- export * from './contexts/index.js';
3
- export * from './hooks/index.js';
1
+ export * from './components/index.ts';
2
+ export * from './contexts/index.ts';
3
+ export * from './hooks/index.ts';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,422 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ // src/components/Property/SchemaProperty.tsx
5
+ import { NewReleases as NewReleasesIcon, OpenInNew as OpenInNewIcon, Verified as VerifiedIcon } from "@mui/icons-material";
6
+ import { IconButton } from "@mui/material";
7
+ import { useAsyncEffect } from "@xylabs/react-async-effect";
8
+ import { LinkEx } from "@xylabs/react-link";
9
+ import { useEvent } from "@xyo-network/react-event";
10
+ import { Property, PropertyValue } from "@xyo-network/react-property";
11
+ import { SchemaCache } from "@xyo-network/schema-cache";
12
+ import React, { forwardRef, useState } from "react";
13
+ var useResolveSchema = /* @__PURE__ */ __name((schema) => {
14
+ const [entry, setEntry] = useState();
15
+ useAsyncEffect(async (mounted) => {
16
+ if (schema) {
17
+ const entry2 = await SchemaCache.instance.get(schema);
18
+ if (mounted()) {
19
+ setEntry(entry2);
20
+ }
21
+ }
22
+ }, [
23
+ schema
24
+ ]);
25
+ return entry;
26
+ }, "useResolveSchema");
27
+ var SchemaProperty = /* @__PURE__ */ forwardRef(({ showLinkNames = true, showOpenNewWindowLink = true, showStatusIcon = true, titleProps, value, ...props }, forwardedRef) => {
28
+ const resolvedSchema = useResolveSchema(value);
29
+ const [buttonRef, buttonDispatch] = useEvent();
30
+ const [divRef, divDispatch] = useEvent();
31
+ const onClick = /* @__PURE__ */ __name((dispatch, openNewWindow = false) => {
32
+ dispatch?.("schema", "click", JSON.stringify({
33
+ openNewWindow,
34
+ schema: value
35
+ }));
36
+ }, "onClick");
37
+ return /* @__PURE__ */ React.createElement(Property, {
38
+ ref: forwardedRef,
39
+ title: "Schema",
40
+ value,
41
+ tip: "Schema sent with the payload",
42
+ titleProps,
43
+ ...props
44
+ }, value && showStatusIcon ? resolvedSchema === null ? /* @__PURE__ */ React.createElement(IconButton, {
45
+ ref: buttonRef,
46
+ size: "small",
47
+ onClick: /* @__PURE__ */ __name(() => onClick(buttonDispatch), "onClick")
48
+ }, /* @__PURE__ */ React.createElement(NewReleasesIcon, {
49
+ color: "warning",
50
+ fontSize: "inherit"
51
+ })) : resolvedSchema === void 0 ? /* @__PURE__ */ React.createElement(IconButton, {
52
+ ref: buttonRef,
53
+ size: "small",
54
+ onClick: /* @__PURE__ */ __name(() => onClick(buttonDispatch), "onClick")
55
+ }, /* @__PURE__ */ React.createElement(NewReleasesIcon, {
56
+ color: "disabled",
57
+ fontSize: "inherit"
58
+ })) : /* @__PURE__ */ React.createElement(IconButton, {
59
+ rel: "noopener noreferrer",
60
+ size: "small",
61
+ target: "_blank",
62
+ href: resolvedSchema?.huri?.href ?? ""
63
+ }, /* @__PURE__ */ React.createElement(VerifiedIcon, {
64
+ color: "success",
65
+ fontSize: "inherit"
66
+ })) : null, value ? /* @__PURE__ */ React.createElement(React.Fragment, null, showLinkNames ? /* @__PURE__ */ React.createElement(LinkEx, {
67
+ display: "block",
68
+ width: "100%",
69
+ sx: {
70
+ cursor: "pointer"
71
+ }
72
+ }, /* @__PURE__ */ React.createElement(PropertyValue, {
73
+ ref: divRef,
74
+ value,
75
+ title: "view schema",
76
+ onClick: /* @__PURE__ */ __name(() => onClick(divDispatch), "onClick")
77
+ })) : /* @__PURE__ */ React.createElement(PropertyValue, {
78
+ ref: divRef,
79
+ value,
80
+ title: "view schema",
81
+ onClick: /* @__PURE__ */ __name(() => onClick(divDispatch), "onClick")
82
+ }), showOpenNewWindowLink ? /* @__PURE__ */ React.createElement(IconButton, {
83
+ ref: buttonRef,
84
+ size: "small",
85
+ onClick: /* @__PURE__ */ __name(() => onClick(buttonDispatch, true), "onClick")
86
+ }, /* @__PURE__ */ React.createElement(OpenInNewIcon, {
87
+ fontSize: "inherit"
88
+ })) : null) : null);
89
+ });
90
+ SchemaProperty.displayName = "SchemaProperty";
91
+
92
+ // src/components/SelectEx/SchemaSelectEx.tsx
93
+ import { MenuItem, Typography } from "@mui/material";
94
+ import { SelectEx } from "@xylabs/react-select";
95
+ import React4 from "react";
96
+
97
+ // src/contexts/Schema/Context.ts
98
+ import { createContextEx } from "@xyo-network/react-shared";
99
+ var SchemaContext = createContextEx();
100
+
101
+ // src/contexts/Schema/Provider/Memory.tsx
102
+ import { compact } from "@xylabs/lodash";
103
+ import React2, { useEffect as useEffect2, useMemo as useMemo3, useState as useState6 } from "react";
104
+
105
+ // src/hooks/useGetSchema.tsx
106
+ import { useAsyncEffect as useAsyncEffect2 } from "@xylabs/react-async-effect";
107
+ import { PayloadBuilder } from "@xyo-network/payload-builder";
108
+ import { ModuleErrorSchema } from "@xyo-network/payload-model";
109
+ import { SchemaCache as SchemaCache2 } from "@xyo-network/schema-cache";
110
+ import { useState as useState2 } from "react";
111
+ var useGetSchemaPayload = /* @__PURE__ */ __name((schema) => {
112
+ const [notFound, setNotFound] = useState2(false);
113
+ const [xyoError, setError] = useState2();
114
+ const [schemaCacheEntry, setSchemaCacheEntry] = useState2();
115
+ const [schemaLocal, setSchemaLocal] = useState2();
116
+ useAsyncEffect2(async (mounted) => {
117
+ const firstRequest = !notFound && !schemaCacheEntry && !xyoError;
118
+ const schemaChanged = schema !== schemaLocal;
119
+ if (schema && firstRequest || schema && schemaChanged) {
120
+ try {
121
+ const schemaCacheEntry2 = await SchemaCache2.instance.get(schema);
122
+ if (mounted()) {
123
+ setSchemaCacheEntry(schemaCacheEntry2);
124
+ setNotFound(schemaCacheEntry2 === null || schemaCacheEntry2 === void 0);
125
+ }
126
+ } catch (e) {
127
+ const error = e;
128
+ console.error(e);
129
+ if (mounted()) {
130
+ setError({
131
+ message: error.message,
132
+ schema: ModuleErrorSchema,
133
+ sources: []
134
+ });
135
+ }
136
+ }
137
+ }
138
+ if (schemaChanged) {
139
+ setSchemaLocal(schema);
140
+ }
141
+ }, [
142
+ xyoError,
143
+ notFound,
144
+ schema,
145
+ schemaLocal,
146
+ schemaCacheEntry
147
+ ]);
148
+ return {
149
+ notFound,
150
+ schemaHuri: schemaCacheEntry?.huri,
151
+ schemaPayload: schemaCacheEntry ? new PayloadBuilder(schemaCacheEntry?.payload).fields(schemaCacheEntry.payload).build() : schemaCacheEntry,
152
+ xyoError
153
+ };
154
+ }, "useGetSchemaPayload");
155
+
156
+ // src/hooks/useSchemaDefinitions.tsx
157
+ import { useAsyncEffect as useAsyncEffect3 } from "@xylabs/react-async-effect";
158
+ import { SchemaCache as SchemaCache3 } from "@xyo-network/schema-cache";
159
+ import { useState as useState3 } from "react";
160
+ var useSchemaDefinitions = /* @__PURE__ */ __name((schemaList) => {
161
+ const [schemaPayloads, setSchemaPayloads] = useState3();
162
+ useAsyncEffect3(async (mounted) => {
163
+ if (schemaList) {
164
+ const promiseResults = await Promise.allSettled(schemaList?.map(({ name }) => SchemaCache3.instance.get(name)));
165
+ if (mounted()) {
166
+ setSchemaPayloads(promiseResults.map((result) => result.status === "fulfilled" ? result.value?.payload : void 0).filter((item) => item !== void 0 && item !== null));
167
+ }
168
+ }
169
+ }, [
170
+ schemaList
171
+ ]);
172
+ return schemaPayloads;
173
+ }, "useSchemaDefinitions");
174
+
175
+ // src/hooks/useSchemaList.tsx
176
+ import { useAsyncEffect as useAsyncEffect4 } from "@xylabs/react-async-effect";
177
+ import { SchemaListQuerySchema } from "@xyo-network/diviner-schema-list-model";
178
+ import { useWeakDivinerFromNode } from "@xyo-network/react-diviner";
179
+ import { useEffect, useMemo, useState as useState4 } from "react";
180
+ var useSchemaList = /* @__PURE__ */ __name((address, nameOrAddress = "SchemaListDiviner") => {
181
+ const [schemaList, setSchemaList] = useState4();
182
+ const [error, setError] = useState4();
183
+ const [diviner, divinerError] = useWeakDivinerFromNode(nameOrAddress);
184
+ const query = useMemo(() => address ? [
185
+ {
186
+ address,
187
+ schema: SchemaListQuerySchema
188
+ }
189
+ ] : void 0, [
190
+ address
191
+ ]);
192
+ useEffect(() => {
193
+ if (diviner === null) {
194
+ setSchemaList(null);
195
+ setError(void 0);
196
+ }
197
+ }, [
198
+ diviner
199
+ ]);
200
+ useAsyncEffect4(async (mounted) => {
201
+ const divinerInstance = diviner?.deref();
202
+ if (divinerInstance) {
203
+ try {
204
+ const response = await divinerInstance.divine(query);
205
+ if (mounted()) {
206
+ setSchemaList(response?.[0]);
207
+ setError(void 0);
208
+ }
209
+ } catch (e) {
210
+ setError(e);
211
+ setSchemaList(void 0);
212
+ }
213
+ }
214
+ }, [
215
+ diviner,
216
+ divinerError,
217
+ query
218
+ ]);
219
+ return [
220
+ schemaList,
221
+ error
222
+ ];
223
+ }, "useSchemaList");
224
+
225
+ // src/hooks/useSchemaStats.tsx
226
+ import { useAsyncEffect as useAsyncEffect5 } from "@xylabs/react-async-effect";
227
+ import { SchemaStatsDivinerSchema, SchemaStatsQuerySchema } from "@xyo-network/diviner-schema-stats-model";
228
+ import { TYPES } from "@xyo-network/node-core-types";
229
+ import { isPayloadOfSchemaTypeWithMeta } from "@xyo-network/payload-model";
230
+ import { useWeakDivinerFromNode as useWeakDivinerFromNode2 } from "@xyo-network/react-diviner";
231
+ import { useMemo as useMemo2, useState as useState5 } from "react";
232
+ var useSchemaStats = /* @__PURE__ */ __name((statsAddress, nameOrAddress = TYPES.SchemaStatsDiviner) => {
233
+ const [refresh, setRefresh] = useState5(1);
234
+ const [diviner, divinerError] = useWeakDivinerFromNode2(nameOrAddress);
235
+ const [error, setError] = useState5();
236
+ const refreshHistory = /* @__PURE__ */ __name(() => setRefresh((previous) => previous + 1), "refreshHistory");
237
+ const [schemaList, setSchemaList] = useState5();
238
+ const query = useMemo2(() => ({
239
+ address: statsAddress,
240
+ schema: SchemaStatsQuerySchema
241
+ }), [
242
+ statsAddress
243
+ ]);
244
+ useAsyncEffect5(async (mounted) => {
245
+ const instance = diviner?.deref();
246
+ if (instance) {
247
+ if (divinerError) {
248
+ if (mounted()) {
249
+ setError(divinerError);
250
+ setSchemaList(void 0);
251
+ }
252
+ } else {
253
+ try {
254
+ const schemas = (await instance.divine([
255
+ query
256
+ ])).filter(isPayloadOfSchemaTypeWithMeta(SchemaStatsDivinerSchema));
257
+ if (mounted()) {
258
+ setSchemaList(schemas);
259
+ setError(void 0);
260
+ }
261
+ } catch (ex) {
262
+ setError(ex);
263
+ setSchemaList(void 0);
264
+ }
265
+ }
266
+ }
267
+ }, [
268
+ diviner,
269
+ refresh,
270
+ divinerError,
271
+ query
272
+ ]);
273
+ return [
274
+ schemaList,
275
+ error,
276
+ refreshHistory
277
+ ];
278
+ }, "useSchemaStats");
279
+
280
+ // src/contexts/Schema/Provider/Memory.tsx
281
+ var SchemaMemoryProvider = /* @__PURE__ */ __name(({ defaultSchema, knownSchemaList, ...props }) => {
282
+ const [schema, setSchema] = useState6(defaultSchema);
283
+ const [schemaList, setSchemaList] = useState6(knownSchemaList);
284
+ const [fetchedSchemaStats] = useSchemaStats();
285
+ useEffect2(() => {
286
+ if (fetchedSchemaStats) {
287
+ const schemaList2 = compact(fetchedSchemaStats.map(({ name }) => name));
288
+ setSchemaList(schemaList2);
289
+ }
290
+ }, [
291
+ fetchedSchemaStats
292
+ ]);
293
+ const value = useMemo3(() => ({
294
+ provided: true,
295
+ schema,
296
+ schemaList: knownSchemaList ?? schemaList,
297
+ setSchema,
298
+ setSchemaList
299
+ }), [
300
+ schema,
301
+ schemaList,
302
+ knownSchemaList
303
+ ]);
304
+ return /* @__PURE__ */ React2.createElement(SchemaContext.Provider, {
305
+ value,
306
+ ...props
307
+ });
308
+ }, "SchemaMemoryProvider");
309
+
310
+ // src/contexts/Schema/Provider/Route.tsx
311
+ import React3, { useCallback, useEffect as useEffect3, useMemo as useMemo4 } from "react";
312
+ import { useSearchParams } from "react-router-dom";
313
+
314
+ // src/contexts/Schema/use.ts
315
+ import { useContextEx } from "@xyo-network/react-shared";
316
+ var useSchema = /* @__PURE__ */ __name((required = false) => {
317
+ return useContextEx(SchemaContext, "Schema", required);
318
+ }, "useSchema");
319
+
320
+ // src/contexts/Schema/Provider/Route.tsx
321
+ var SchemaRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
322
+ const { schema, setSchema, schemaList } = useSchema();
323
+ const [params, setParams] = useSearchParams();
324
+ const routeSchema = params.get("schema");
325
+ const setSchemaParam = useCallback((schema2) => {
326
+ if (schema2) {
327
+ params.set("schema", schema2);
328
+ setParams(params, {
329
+ replace: true
330
+ });
331
+ setSchema?.(schema2);
332
+ } else {
333
+ params.delete("network");
334
+ }
335
+ }, [
336
+ params,
337
+ setParams,
338
+ setSchema
339
+ ]);
340
+ const setSchemaLocal = useCallback((schema2) => {
341
+ setSchemaParam(schema2);
342
+ setSchema?.(schema2);
343
+ }, [
344
+ setSchemaParam,
345
+ setSchema
346
+ ]);
347
+ useEffect3(() => {
348
+ if (routeSchema !== schema) {
349
+ if (routeSchema === void 0 && schema !== void 0) {
350
+ setSchemaLocal(schema);
351
+ } else if (routeSchema) {
352
+ setSchema?.(routeSchema);
353
+ }
354
+ }
355
+ }, [
356
+ routeSchema,
357
+ schema,
358
+ setSchemaParam,
359
+ setSchema,
360
+ setSchemaLocal
361
+ ]);
362
+ const value = useMemo4(() => ({
363
+ provided: true,
364
+ schema,
365
+ schemaList,
366
+ setSchema: setSchemaLocal
367
+ }), [
368
+ schema,
369
+ schemaList,
370
+ setSchemaLocal
371
+ ]);
372
+ return /* @__PURE__ */ React3.createElement(SchemaContext.Provider, {
373
+ value
374
+ }, children);
375
+ }, "SchemaRouteProviderInner");
376
+ var SchemaRouteProvider = /* @__PURE__ */ __name(({ knownSchemaList, defaultSchema, ...props }) => {
377
+ return /* @__PURE__ */ React3.createElement(SchemaMemoryProvider, {
378
+ knownSchemaList,
379
+ defaultSchema
380
+ }, /* @__PURE__ */ React3.createElement(SchemaRouteProviderInner, props));
381
+ }, "SchemaRouteProvider");
382
+
383
+ // src/components/SelectEx/SchemaSelectEx.tsx
384
+ var SchemaSelectEx = /* @__PURE__ */ __name(({ onChange, variant = "outlined", ...props }) => {
385
+ const { schema, setSchema, schemaList } = useSchema(false);
386
+ return /* @__PURE__ */ React4.createElement(SelectEx, {
387
+ variant,
388
+ size: "small",
389
+ value: schema ?? "none",
390
+ onChange: /* @__PURE__ */ __name((event, child) => {
391
+ if (event.target.value !== schema) {
392
+ onChange?.(event, child);
393
+ setSchema?.(event.target.value);
394
+ }
395
+ }, "onChange"),
396
+ renderValue: /* @__PURE__ */ __name((value) => {
397
+ return /* @__PURE__ */ React4.createElement(Typography, null, value === "none" ? "- None -" : value);
398
+ }, "renderValue"),
399
+ ...props
400
+ }, schemaList?.map((schema2, index) => {
401
+ return /* @__PURE__ */ React4.createElement(MenuItem, {
402
+ key: index,
403
+ value: schema2
404
+ }, schema2);
405
+ }), /* @__PURE__ */ React4.createElement(MenuItem, {
406
+ key: "none",
407
+ value: "none"
408
+ }, "- None -"));
409
+ }, "SchemaSelectEx");
410
+ export {
411
+ SchemaContext,
412
+ SchemaMemoryProvider,
413
+ SchemaProperty,
414
+ SchemaRouteProvider,
415
+ SchemaSelectEx,
416
+ useGetSchemaPayload,
417
+ useSchema,
418
+ useSchemaDefinitions,
419
+ useSchemaList,
420
+ useSchemaStats
421
+ };
422
+ //# sourceMappingURL=index.mjs.map