@xyo-network/react-network 7.0.0 → 7.0.2

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.
@@ -2,9 +2,9 @@ import type { Meta } from '@storybook/react-vite';
2
2
  import type { NetworkSelectExProps } from './NetworkSelectEx.tsx';
3
3
  import { NetworkSelectEx } from './NetworkSelectEx.tsx';
4
4
  declare const StorybookEntry: Meta<typeof NetworkSelectEx>;
5
- declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
6
- declare const WithMemoryProvider: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
7
- declare const WithRouteProvider: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
5
+ declare const Default: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
6
+ declare const WithMemoryProvider: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
7
+ declare const WithRouteProvider: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, NetworkSelectExProps>;
8
8
  export { Default, WithMemoryProvider, WithRouteProvider, };
9
9
  export default StorybookEntry;
10
10
  //# sourceMappingURL=NetworkSelectEx.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkSelectEx.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectEx/NetworkSelectEx.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAW1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAA,MAAM,cAAc,EAKf,IAAI,CAAC,OAAO,eAAe,CAAC,CAAA;AAiEjC,QAAA,MAAM,OAAO,wHAAoB,CAAA;AAGjC,QAAA,MAAM,kBAAkB,wHAAsC,CAAA;AAG9D,QAAA,MAAM,iBAAiB,wHAAqC,CAAA;AAG5D,OAAO,EACL,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,GAC/C,CAAA;AAED,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"NetworkSelectEx.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectEx/NetworkSelectEx.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAW1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAA,MAAM,cAAc,EAKf,IAAI,CAAC,OAAO,eAAe,CAAC,CAAA;AAiEjC,QAAA,MAAM,OAAO,0JAAoB,CAAA;AAGjC,QAAA,MAAM,kBAAkB,0JAAsC,CAAA;AAG9D,QAAA,MAAM,iBAAiB,0JAAqC,CAAA;AAG5D,OAAO,EACL,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,GAC/C,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -1,13 +1,13 @@
1
1
  import type { Meta } from '@storybook/react-vite';
2
2
  import React from 'react';
3
3
  declare const StorybookEntry: Meta;
4
- declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
4
+ declare const Default: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
5
5
  children?: React.ReactNode | undefined;
6
6
  }>;
7
- declare const DefaultNetworkName: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
7
+ declare const DefaultNetworkName: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
8
8
  children?: React.ReactNode | undefined;
9
9
  }>;
10
- declare const DefaultNetworkConfig: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
10
+ declare const DefaultNetworkConfig: import(".store/storybook-virtual-fa39dd25b7/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, import("./Props.ts").NetworkProviderProps & {
11
11
  children?: React.ReactNode | undefined;
12
12
  }>;
13
13
  export default StorybookEntry;
@@ -1,19 +1,15 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
1
  // src/components/SelectEx/NetworkSelectEx.tsx
5
2
  import { MenuItem } from "@mui/material";
6
3
  import { assertEx } from "@xylabs/assert";
7
4
  import { SelectEx } from "@xylabs/react-select";
8
5
  import { useBreakpoint } from "@xylabs/react-shared";
9
- import React3 from "react";
10
6
 
11
7
  // src/contexts/Context.ts
12
8
  import { createContextEx } from "@xylabs/react-shared";
13
9
  var NetworkContext = createContextEx();
14
10
 
15
11
  // src/contexts/Provider/Memory.tsx
16
- import React, { useMemo, useState } from "react";
12
+ import { useMemo, useState } from "react";
17
13
 
18
14
  // src/lib/archivistPresets.ts
19
15
  import { NetworkNodeSchema } from "@xyo-network/network";
@@ -37,11 +33,11 @@ var ExplorerMapHashes = {
37
33
  };
38
34
 
39
35
  // src/lib/archivistPresets.ts
40
- var findArchivistPreset = /* @__PURE__ */ __name((slug) => {
36
+ var findArchivistPreset = (slug) => {
41
37
  return archivistPresets.find((item) => {
42
38
  return item.slug === slug;
43
39
  }) ?? archivistPresets[0];
44
- }, "findArchivistPreset");
40
+ };
45
41
  var archivistPresets = [
46
42
  {
47
43
  docs: "https://beta.archivist.xyo.network/api",
@@ -72,25 +68,25 @@ var archivistPresets = [
72
68
  ];
73
69
 
74
70
  // src/lib/archivistNameToUri.ts
75
- var archivistUriToName = /* @__PURE__ */ __name(() => {
71
+ var archivistUriToName = () => {
76
72
  return archivistPresets.reduce((acc, { name, uri }) => {
77
73
  if (name) {
78
74
  acc[uri] = name;
79
75
  }
80
76
  return acc;
81
77
  }, {});
82
- }, "archivistUriToName");
78
+ };
83
79
 
84
80
  // src/lib/Config/default.ts
85
81
  import { NetworkSchema } from "@xyo-network/network";
86
82
 
87
83
  // src/lib/divinerPresets.ts
88
84
  import { NetworkNodeSchema as NetworkNodeSchema2 } from "@xyo-network/network";
89
- var findDivinerPreset = /* @__PURE__ */ __name((slug) => {
85
+ var findDivinerPreset = (slug) => {
90
86
  return divinerPresets.find((item) => {
91
87
  return item.slug === slug;
92
88
  }) ?? divinerPresets[0];
93
- }, "findDivinerPreset");
89
+ };
94
90
  var divinerPresets = [
95
91
  {
96
92
  name: "XYO Location (beta)",
@@ -122,37 +118,25 @@ var divinerPresets = [
122
118
  var defaultNetworkConfigs = [
123
119
  {
124
120
  name: "Kerplunk",
125
- nodes: [
126
- findArchivistPreset("kerplunk-archivist-xyo-network"),
127
- findDivinerPreset("beta-location-diviner-xyo-network")
128
- ],
121
+ nodes: [findArchivistPreset("kerplunk-archivist-xyo-network"), findDivinerPreset("beta-location-diviner-xyo-network")],
129
122
  schema: NetworkSchema,
130
123
  slug: "kerplunk"
131
124
  },
132
125
  {
133
126
  name: "Main",
134
- nodes: [
135
- findArchivistPreset("main-archivist-xyo-network"),
136
- findDivinerPreset("location-diviner-xyo-network")
137
- ],
127
+ nodes: [findArchivistPreset("main-archivist-xyo-network"), findDivinerPreset("location-diviner-xyo-network")],
138
128
  schema: NetworkSchema,
139
129
  slug: "main"
140
130
  },
141
131
  {
142
132
  name: "Local",
143
- nodes: [
144
- findArchivistPreset("local-archivist-xyo-network"),
145
- findDivinerPreset("local-location-diviner-xyo-network")
146
- ],
133
+ nodes: [findArchivistPreset("local-archivist-xyo-network"), findDivinerPreset("local-location-diviner-xyo-network")],
147
134
  schema: NetworkSchema,
148
135
  slug: "local"
149
136
  },
150
137
  {
151
138
  name: "Custom",
152
- nodes: [
153
- findArchivistPreset("kerplunk-archivist-xyo-network"),
154
- findDivinerPreset("beta-location-diviner-xyo-network")
155
- ],
139
+ nodes: [findArchivistPreset("kerplunk-archivist-xyo-network"), findDivinerPreset("beta-location-diviner-xyo-network")],
156
140
  schema: NetworkSchema,
157
141
  slug: "custom"
158
142
  }
@@ -160,15 +144,15 @@ var defaultNetworkConfigs = [
160
144
  var networkPresets = defaultNetworkConfigs;
161
145
 
162
146
  // src/lib/Config/find.ts
163
- var findNetworkConfig = /* @__PURE__ */ __name((slug, configs = defaultNetworkConfigs) => {
147
+ var findNetworkConfig = (slug, configs = defaultNetworkConfigs) => {
164
148
  return configs.find((item) => {
165
149
  return item.slug === slug;
166
150
  });
167
- }, "findNetworkConfig");
151
+ };
168
152
  var findNetworkPreset = findNetworkConfig;
169
153
 
170
154
  // src/lib/Config/resolveNetworkFromHostname.ts
171
- var resolveNetworkFromHostName = /* @__PURE__ */ __name((fallback = "Kerplunk", siteName) => {
155
+ var resolveNetworkFromHostName = (fallback = "Kerplunk", siteName) => {
172
156
  switch (document.location.hostname) {
173
157
  case `${siteName}.xyo.network`: {
174
158
  return "Main";
@@ -180,10 +164,15 @@ var resolveNetworkFromHostName = /* @__PURE__ */ __name((fallback = "Kerplunk",
180
164
  return fallback;
181
165
  }
182
166
  }
183
- }, "resolveNetworkFromHostName");
167
+ };
184
168
 
185
169
  // src/contexts/Provider/Memory.tsx
186
- var NetworkMemoryProvider = /* @__PURE__ */ __name(({ defaultNetworkConfig, defaultNetworkName, ...props }) => {
170
+ import { jsx } from "react/jsx-runtime";
171
+ var NetworkMemoryProvider = ({
172
+ defaultNetworkConfig,
173
+ defaultNetworkName,
174
+ ...props
175
+ }) => {
187
176
  if (defaultNetworkConfig && defaultNetworkName) {
188
177
  console.warn("Both defaultNetworkConfig and defaultNetworkName were passed to provider. Falling back to defaultNetworkConfig");
189
178
  }
@@ -194,55 +183,47 @@ var NetworkMemoryProvider = /* @__PURE__ */ __name(({ defaultNetworkConfig, defa
194
183
  networks: defaultNetworkConfigs,
195
184
  provided: true,
196
185
  setNetwork
197
- }), [
198
- network,
199
- setNetwork
200
- ]);
201
- return /* @__PURE__ */ React.createElement(NetworkContext, {
202
- value,
203
- ...props
204
- });
205
- }, "NetworkMemoryProvider");
186
+ }), [network, setNetwork]);
187
+ return /* @__PURE__ */ jsx(NetworkContext, { value, ...props });
188
+ };
206
189
  var NetworkProvider = NetworkMemoryProvider;
207
190
 
208
191
  // src/contexts/Provider/Route.tsx
209
- import React2, { useCallback, useEffect } from "react";
192
+ import { useCallback, useEffect } from "react";
210
193
  import { useSearchParams } from "react-router-dom";
211
194
 
212
195
  // src/contexts/use.ts
213
196
  import { useContextEx } from "@xylabs/react-shared";
214
- var useNetwork = /* @__PURE__ */ __name((required = false) => {
197
+ var useNetwork = (required = false) => {
215
198
  return useContextEx(NetworkContext, "Network", required);
216
- }, "useNetwork");
199
+ };
217
200
 
218
201
  // src/contexts/Provider/Route.tsx
219
- var NetworkRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
202
+ import { jsx as jsx2 } from "react/jsx-runtime";
203
+ var NetworkRouteProviderInner = ({ children }) => {
220
204
  const { network, setNetwork } = useNetwork();
221
205
  const [params, setParams] = useSearchParams();
222
206
  const slug = params.get("network");
223
207
  const routeNetwork = slug ? findNetworkConfig(slug) : void 0;
224
- const setNetworkParam = useCallback((network2) => {
225
- if (network2) {
226
- params.set("network", network2.slug);
227
- setParams(params, {
228
- replace: true
229
- });
208
+ const setNetworkParam = useCallback(
209
+ (network2) => {
210
+ if (network2) {
211
+ params.set("network", network2.slug);
212
+ setParams(params, { replace: true });
213
+ setNetwork?.(network2);
214
+ } else {
215
+ params.delete("network");
216
+ }
217
+ },
218
+ [params, setParams, setNetwork]
219
+ );
220
+ const setNetworkLocal = useCallback(
221
+ (network2) => {
222
+ setNetworkParam(network2);
230
223
  setNetwork?.(network2);
231
- } else {
232
- params.delete("network");
233
- }
234
- }, [
235
- params,
236
- setParams,
237
- setNetwork
238
- ]);
239
- const setNetworkLocal = useCallback((network2) => {
240
- setNetworkParam(network2);
241
- setNetwork?.(network2);
242
- }, [
243
- setNetworkParam,
244
- setNetwork
245
- ]);
224
+ },
225
+ [setNetworkParam, setNetwork]
226
+ );
246
227
  useEffect(() => {
247
228
  if (routeNetwork !== network) {
248
229
  if (routeNetwork === void 0 && network !== void 0) {
@@ -251,53 +232,64 @@ var NetworkRouteProviderInner = /* @__PURE__ */ __name(({ children }) => {
251
232
  setNetwork?.(routeNetwork);
252
233
  }
253
234
  }
254
- }, [
255
- routeNetwork,
256
- network,
257
- setNetworkParam,
258
- setNetwork
259
- ]);
235
+ }, [routeNetwork, network, setNetworkParam, setNetwork]);
260
236
  return (
261
237
  // eslint-disable-next-line @eslint-react/no-unstable-context-value
262
- /* @__PURE__ */ React2.createElement(NetworkContext, {
263
- value: {
264
- network,
265
- networks: defaultNetworkConfigs,
266
- provided: true,
267
- setNetwork: setNetworkLocal
238
+ /* @__PURE__ */ jsx2(
239
+ NetworkContext,
240
+ {
241
+ value: {
242
+ network,
243
+ networks: defaultNetworkConfigs,
244
+ provided: true,
245
+ setNetwork: setNetworkLocal
246
+ },
247
+ children: network ? children : null
268
248
  }
269
- }, network ? children : null)
249
+ )
270
250
  );
271
- }, "NetworkRouteProviderInner");
272
- var NetworkRouteProvider = /* @__PURE__ */ __name(({ defaultNetworkConfig, defaultNetworkName, ...props }) => {
273
- return /* @__PURE__ */ React2.createElement(NetworkMemoryProvider, {
274
- defaultNetworkConfig,
275
- defaultNetworkName
276
- }, /* @__PURE__ */ React2.createElement(NetworkRouteProviderInner, props));
277
- }, "NetworkRouteProvider");
251
+ };
252
+ var NetworkRouteProvider = ({
253
+ defaultNetworkConfig,
254
+ defaultNetworkName,
255
+ ...props
256
+ }) => {
257
+ return /* @__PURE__ */ jsx2(NetworkMemoryProvider, { defaultNetworkConfig, defaultNetworkName, children: /* @__PURE__ */ jsx2(NetworkRouteProviderInner, { ...props }) });
258
+ };
278
259
 
279
260
  // src/components/SelectEx/NetworkSelectEx.tsx
280
- var NetworkSelectEx = /* @__PURE__ */ __name(({ onChange, variant = "outlined", responsive = true, ...props }) => {
281
- const { network, setNetwork, networks } = useNetwork(false);
261
+ import { jsx as jsx3 } from "react/jsx-runtime";
262
+ var NetworkSelectEx = ({
263
+ onChange,
264
+ variant = "outlined",
265
+ responsive = true,
266
+ ...props
267
+ }) => {
268
+ const {
269
+ network,
270
+ setNetwork,
271
+ networks
272
+ } = useNetwork(false);
282
273
  const sm = useBreakpoint() === "sm";
283
- return /* @__PURE__ */ React3.createElement(SelectEx, {
284
- variant,
285
- size: "small",
286
- value: network?.slug ?? "",
287
- onChange: /* @__PURE__ */ __name((event, child) => {
288
- if (event.target.value !== network?.slug) {
289
- onChange?.(event, child);
290
- setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)));
291
- }
292
- }, "onChange"),
293
- ...props
294
- }, networks?.map((network2) => {
295
- return /* @__PURE__ */ React3.createElement(MenuItem, {
296
- key: network2.slug,
297
- value: network2.slug
298
- }, responsive && sm ? network2.name?.[0].toUpperCase() : network2.name);
299
- }));
300
- }, "NetworkSelectEx");
274
+ return /* @__PURE__ */ jsx3(
275
+ SelectEx,
276
+ {
277
+ variant,
278
+ size: "small",
279
+ value: network?.slug ?? "",
280
+ onChange: (event, child) => {
281
+ if (event.target.value !== network?.slug) {
282
+ onChange?.(event, child);
283
+ setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)));
284
+ }
285
+ },
286
+ ...props,
287
+ children: networks?.map((network2) => {
288
+ return /* @__PURE__ */ jsx3(MenuItem, { value: network2.slug, children: responsive && sm ? network2.name?.[0].toUpperCase() : network2.name }, network2.slug);
289
+ })
290
+ }
291
+ );
292
+ };
301
293
  export {
302
294
  NetworkContext,
303
295
  NetworkMemoryProvider,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/SelectEx/NetworkSelectEx.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider/Memory.tsx","../../src/lib/archivistPresets.ts","../../src/lib/ExplorerMapHashes.ts","../../src/lib/archivistNameToUri.ts","../../src/lib/Config/default.ts","../../src/lib/divinerPresets.ts","../../src/lib/Config/find.ts","../../src/lib/Config/resolveNetworkFromHostname.ts","../../src/contexts/Provider/Route.tsx","../../src/contexts/use.ts"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { assertEx } from '@xylabs/assert'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport { useNetwork } from '../../contexts/index.ts'\nimport { findNetworkConfig } from '../../lib/index.ts'\n\nexport type NetworkSelectExProps = Omit<SelectExProps<string>, 'variant'>\n & Partial<SelectExProps<string>> & {\n responsive?: boolean\n }\n\nexport const NetworkSelectEx: React.FC<NetworkSelectExProps> = ({\n onChange, variant = 'outlined', responsive = true, ...props\n}) => {\n const {\n network, setNetwork, networks,\n } = useNetwork(false)\n const sm = useBreakpoint() === 'sm'\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={network?.slug ?? ''}\n onChange={(event, child) => {\n if (event.target.value !== network?.slug) {\n onChange?.(event, child)\n setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)))\n }\n }}\n {...props}\n >\n {networks?.map((network) => {\n return (\n <MenuItem key={network.slug} value={network.slug}>\n {responsive && sm ? network.name?.[0].toUpperCase() : network.name}\n </MenuItem>\n )\n })}\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { NetworkContextState } from './State.ts'\n\nexport const NetworkContext = createContextEx<NetworkContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { defaultNetworkConfigs } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport type { NetworkContextState } from '../State.ts'\nimport type { NetworkProviderProps } from './Props.ts'\n\nexport const NetworkMemoryProvider: React.FC<PropsWithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n if (defaultNetworkConfig && defaultNetworkName) {\n console.warn('Both defaultNetworkConfig and defaultNetworkName were passed to provider. Falling back to defaultNetworkConfig')\n }\n\n const resolvedDefaultNetworkConfig = defaultNetworkName ? defaultNetworkConfigs.find(config => config.name === defaultNetworkName) : undefined\n\n const [network, setNetwork] = useState(defaultNetworkConfig ?? resolvedDefaultNetworkConfig ?? defaultNetworkConfigs[0])\n\n const value: NetworkContextState = useMemo(() => ({\n network, networks: defaultNetworkConfigs, provided: true, setNetwork,\n }), [network, setNetwork])\n\n return <NetworkContext value={value} {...props} />\n}\n\n/** @deprecated use NetworkMemoryProvider instead */\nexport const NetworkProvider = NetworkMemoryProvider\n","import type { Hash } from '@xylabs/hex'\nimport type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nimport { ExplorerMapHashes } from './ExplorerMapHashes.ts'\n\nexport type ArchivistPreset = NetworkNodePayload & {\n explorerMapHashes?: {\n animatedAnswerHashes: Hash[]\n staticAnswerHash: Hash\n }\n}\n\nexport const findArchivistPreset = (slug: string) => {\n return (\n archivistPresets.find((item) => {\n return item.slug === slug\n }) ?? archivistPresets[0]\n )\n}\n\nexport const archivistPresets: ArchivistPreset[] = [\n {\n docs: 'https://beta.archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (kerplunk)',\n schema: NetworkNodeSchema,\n slug: 'kerplunk-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://beta.api.archivist.xyo.network',\n },\n {\n docs: 'https://archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (main)',\n schema: NetworkNodeSchema,\n slug: 'main-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://api.archivist.xyo.network',\n },\n {\n docs: 'http://localhost:8080/api',\n name: 'XYO Shared Archivist (local)',\n schema: NetworkNodeSchema,\n slug: 'local-archivist-xyo-network',\n type: 'archivist',\n uri: 'http://localhost:8080',\n },\n]\n","import type { Hash } from '@xylabs/hex'\nexport const ExplorerMapHashes: { animatedAnswerHashes: Hash[]; staticAnswerHash: Hash } = {\n animatedAnswerHashes: [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e',\n ] as Hash[],\n staticAnswerHash: 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5' as Hash,\n}\n","import { archivistPresets } from './archivistPresets.ts'\n\nexport const archivistUriToName = () => {\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistPresets.reduce<Record<string, string>>((acc, { name, uri }) => {\n if (name) {\n acc[uri] = name\n }\n return acc\n }, {})\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport { NetworkSchema } from '@xyo-network/network'\n\nimport { findArchivistPreset } from '../archivistPresets.ts'\nimport { findDivinerPreset } from '../divinerPresets.ts'\n\nexport const defaultNetworkConfigs: NetworkPayload[] = [\n {\n name: 'Kerplunk',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'kerplunk',\n },\n {\n name: 'Main',\n nodes: [findArchivistPreset('main-archivist-xyo-network'), findDivinerPreset('location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'main',\n },\n {\n name: 'Local',\n nodes: [findArchivistPreset('local-archivist-xyo-network'), findDivinerPreset('local-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'local',\n },\n {\n name: 'Custom',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'custom',\n },\n]\n\n/** @deprecated use defaultNetworkConfigs instead */\nexport const networkPresets = defaultNetworkConfigs\n","import type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nexport const findDivinerPreset = (slug: string) => {\n return (\n divinerPresets.find((item) => {\n return item.slug === slug\n }) ?? divinerPresets[0]\n )\n}\n\nexport const divinerPresets: NetworkNodePayload[] = [\n {\n name: 'XYO Location (beta)',\n schema: NetworkNodeSchema,\n slug: 'beta-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://beta.api.location.diviner.xyo.network',\n web: 'https://beta.explore.xyo.network',\n },\n {\n name: 'XYO Location',\n schema: NetworkNodeSchema,\n slug: 'location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://api.location.diviner.xyo.network',\n web: 'https://explore.xyo.network',\n },\n {\n name: 'XYO Location (local)',\n schema: NetworkNodeSchema,\n slug: 'local-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'http://localhost:8082',\n web: 'http://localhost:3000',\n },\n]\n","import { defaultNetworkConfigs } from './default.ts'\n\nexport const findNetworkConfig = (slug: string, configs = defaultNetworkConfigs) => {\n return configs.find((item) => {\n return item.slug === slug\n })\n}\n\n/** @deprecated use findNetworkConfig instead */\nexport const findNetworkPreset = findNetworkConfig\n","import type { NetworkNames } from './NetworkNames.ts'\n\nexport type SiteName = 'explore' | 'node'\n\nexport const resolveNetworkFromHostName = (fallback: NetworkNames = 'Kerplunk', siteName: SiteName) => {\n switch (document.location.hostname) {\n case `${siteName}.xyo.network`: {\n return 'Main'\n }\n case `beta.${siteName}.xyo.network`: {\n return 'Kerplunk'\n }\n default: {\n return fallback\n }\n }\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport type { PropsWithChildren } from 'react'\nimport React, { useCallback, useEffect } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { defaultNetworkConfigs, findNetworkConfig } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport { useNetwork } from '../use.ts'\nimport { NetworkMemoryProvider } from './Memory.tsx'\nimport type { NetworkProviderProps } from './Props.ts'\n\nconst NetworkRouteProviderInner: React.FC<PropsWithChildren> = ({ children }) => {\n const { network, setNetwork } = useNetwork()\n\n const [params, setParams] = useSearchParams()\n\n const slug = params.get('network')\n const routeNetwork = slug ? findNetworkConfig(slug) : undefined\n\n // update the network stored in the route\n const setNetworkParam = useCallback(\n (network?: NetworkPayload) => {\n if (network) {\n params.set('network', network.slug)\n setParams(params, { replace: true })\n setNetwork?.(network)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setNetwork],\n )\n\n // if the network is actively changed, update both memory and route\n const setNetworkLocal = useCallback(\n (network: NetworkPayload) => {\n setNetworkParam(network)\n setNetwork?.(network)\n },\n [setNetworkParam, setNetwork],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeNetwork !== network) {\n if (routeNetwork === undefined && network !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setNetworkParam(network)\n } else if (routeNetwork !== undefined) {\n // if the route has a selection and it is different from memory, update memory\n setNetwork?.(routeNetwork)\n }\n }\n }, [routeNetwork, network, setNetworkParam, setNetwork])\n\n return (\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n <NetworkContext value={{\n network, networks: defaultNetworkConfigs, provided: true, setNetwork: setNetworkLocal,\n }}\n >\n {network ? children : null}\n </NetworkContext>\n )\n}\n\nexport const NetworkRouteProvider: React.FC<PropsWithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n return (\n <NetworkMemoryProvider defaultNetworkConfig={defaultNetworkConfig} defaultNetworkName={defaultNetworkName}>\n <NetworkRouteProviderInner {...props} />\n </NetworkMemoryProvider>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { NetworkContext } from './Context.ts'\nimport type { NetworkContextState } from './State.ts'\n\nexport const useNetwork = (required = false) => {\n return useContextEx<NetworkContextState>(NetworkContext, 'Network', required)\n}\n"],"mappings":"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","names":["MenuItem","assertEx","SelectEx","useBreakpoint","React","createContextEx","NetworkContext","React","useMemo","useState","NetworkNodeSchema","ExplorerMapHashes","animatedAnswerHashes","staticAnswerHash","findArchivistPreset","slug","archivistPresets","find","item","docs","explorerMapHashes","ExplorerMapHashes","name","schema","NetworkNodeSchema","type","uri","archivistUriToName","archivistPresets","reduce","acc","name","uri","NetworkSchema","NetworkNodeSchema","findDivinerPreset","slug","divinerPresets","find","item","name","schema","NetworkNodeSchema","type","uri","web","defaultNetworkConfigs","name","nodes","findArchivistPreset","findDivinerPreset","schema","NetworkSchema","slug","networkPresets","findNetworkConfig","slug","configs","defaultNetworkConfigs","find","item","findNetworkPreset","resolveNetworkFromHostName","fallback","siteName","document","location","hostname","NetworkMemoryProvider","defaultNetworkConfig","defaultNetworkName","props","console","warn","resolvedDefaultNetworkConfig","defaultNetworkConfigs","find","config","name","undefined","network","setNetwork","useState","value","useMemo","networks","provided","NetworkContext","NetworkProvider","React","useCallback","useEffect","useSearchParams","useContextEx","useNetwork","required","useContextEx","NetworkContext","NetworkRouteProviderInner","children","network","setNetwork","useNetwork","params","setParams","useSearchParams","slug","get","routeNetwork","findNetworkConfig","undefined","setNetworkParam","useCallback","set","replace","delete","setNetworkLocal","useEffect","React","NetworkContext","value","networks","defaultNetworkConfigs","provided","NetworkRouteProvider","defaultNetworkConfig","defaultNetworkName","props","NetworkMemoryProvider","NetworkSelectEx","onChange","variant","responsive","props","network","setNetwork","networks","useNetwork","sm","useBreakpoint","React","SelectEx","size","value","slug","event","child","target","assertEx","findNetworkConfig","map","MenuItem","key","name","toUpperCase"]}
1
+ {"version":3,"sources":["../../src/components/SelectEx/NetworkSelectEx.tsx","../../src/contexts/Context.ts","../../src/contexts/Provider/Memory.tsx","../../src/lib/archivistPresets.ts","../../src/lib/ExplorerMapHashes.ts","../../src/lib/archivistNameToUri.ts","../../src/lib/Config/default.ts","../../src/lib/divinerPresets.ts","../../src/lib/Config/find.ts","../../src/lib/Config/resolveNetworkFromHostname.ts","../../src/contexts/Provider/Route.tsx","../../src/contexts/use.ts"],"sourcesContent":["import { MenuItem } from '@mui/material'\nimport { assertEx } from '@xylabs/assert'\nimport type { SelectExProps } from '@xylabs/react-select'\nimport { SelectEx } from '@xylabs/react-select'\nimport { useBreakpoint } from '@xylabs/react-shared'\nimport React from 'react'\n\nimport { useNetwork } from '../../contexts/index.ts'\nimport { findNetworkConfig } from '../../lib/index.ts'\n\nexport type NetworkSelectExProps = Omit<SelectExProps<string>, 'variant'>\n & Partial<SelectExProps<string>> & {\n responsive?: boolean\n }\n\nexport const NetworkSelectEx: React.FC<NetworkSelectExProps> = ({\n onChange, variant = 'outlined', responsive = true, ...props\n}) => {\n const {\n network, setNetwork, networks,\n } = useNetwork(false)\n const sm = useBreakpoint() === 'sm'\n return (\n <SelectEx\n variant={variant}\n size=\"small\"\n value={network?.slug ?? ''}\n onChange={(event, child) => {\n if (event.target.value !== network?.slug) {\n onChange?.(event, child)\n setNetwork?.(assertEx(findNetworkConfig(event.target.value, networks)))\n }\n }}\n {...props}\n >\n {networks?.map((network) => {\n return (\n <MenuItem key={network.slug} value={network.slug}>\n {responsive && sm ? network.name?.[0].toUpperCase() : network.name}\n </MenuItem>\n )\n })}\n </SelectEx>\n )\n}\n","import { createContextEx } from '@xylabs/react-shared'\n\nimport type { NetworkContextState } from './State.ts'\n\nexport const NetworkContext = createContextEx<NetworkContextState>()\n","import type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { defaultNetworkConfigs } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport type { NetworkContextState } from '../State.ts'\nimport type { NetworkProviderProps } from './Props.ts'\n\nexport const NetworkMemoryProvider: React.FC<PropsWithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n if (defaultNetworkConfig && defaultNetworkName) {\n console.warn('Both defaultNetworkConfig and defaultNetworkName were passed to provider. Falling back to defaultNetworkConfig')\n }\n\n const resolvedDefaultNetworkConfig = defaultNetworkName ? defaultNetworkConfigs.find(config => config.name === defaultNetworkName) : undefined\n\n const [network, setNetwork] = useState(defaultNetworkConfig ?? resolvedDefaultNetworkConfig ?? defaultNetworkConfigs[0])\n\n const value: NetworkContextState = useMemo(() => ({\n network, networks: defaultNetworkConfigs, provided: true, setNetwork,\n }), [network, setNetwork])\n\n return <NetworkContext value={value} {...props} />\n}\n\n/** @deprecated use NetworkMemoryProvider instead */\nexport const NetworkProvider = NetworkMemoryProvider\n","import type { Hash } from '@xylabs/hex'\nimport type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nimport { ExplorerMapHashes } from './ExplorerMapHashes.ts'\n\nexport type ArchivistPreset = NetworkNodePayload & {\n explorerMapHashes?: {\n animatedAnswerHashes: Hash[]\n staticAnswerHash: Hash\n }\n}\n\nexport const findArchivistPreset = (slug: string) => {\n return (\n archivistPresets.find((item) => {\n return item.slug === slug\n }) ?? archivistPresets[0]\n )\n}\n\nexport const archivistPresets: ArchivistPreset[] = [\n {\n docs: 'https://beta.archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (kerplunk)',\n schema: NetworkNodeSchema,\n slug: 'kerplunk-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://beta.api.archivist.xyo.network',\n },\n {\n docs: 'https://archivist.xyo.network/api',\n explorerMapHashes: ExplorerMapHashes,\n name: 'XYO Shared Archivist (main)',\n schema: NetworkNodeSchema,\n slug: 'main-archivist-xyo-network',\n type: 'archivist',\n uri: 'https://api.archivist.xyo.network',\n },\n {\n docs: 'http://localhost:8080/api',\n name: 'XYO Shared Archivist (local)',\n schema: NetworkNodeSchema,\n slug: 'local-archivist-xyo-network',\n type: 'archivist',\n uri: 'http://localhost:8080',\n },\n]\n","import type { Hash } from '@xylabs/hex'\nexport const ExplorerMapHashes: { animatedAnswerHashes: Hash[]; staticAnswerHash: Hash } = {\n animatedAnswerHashes: [\n '79af071f451fc7af10d009dc63236ef9a9b211732c1ee0c06f028fcecf2336c5',\n '531bfba6d8dfefd3bcc888aca54cdbbd4574ed2b3ec551b230845a1f9a608898',\n 'c874412b4faa4947de81372fd1ba12fdd6f43f5e408622b7f357cb2bcb3f17cb',\n '29d3f8b882c61a82a1a1675782a27e797ea7196f45a23b4409680ab8b8d5f14e',\n 'cfd20f80ac073fd9518f4ef3f43d2a1f5e4e56e40c2677f38d6f6fecd05df60c',\n '1354fa73497519a39aed19fc99bdbae78a880a1eafb2f7898d607e07db36528d',\n '1043b0d25eacfc5013ae9dba780305a6fbf01a43543bd871d7c00537fca142a9',\n '973dfc5df142851ced258d52d0ac2784e814000ac22e35776f772256b0d4dde9',\n '463808eb74d3d87e6563970e0301a493577f8cd1b501e6e0ffa5e027ad2cea95',\n '15b21acea2e3fd9d1ace3768a72636ee7bdf67a6f8e0807bfa2273dea2207555',\n '32d377bfe7ebe382598c54dd13f8af7510e0a1e2fd2e913311fdd58e517e5e2e',\n ] as Hash[],\n staticAnswerHash: 'c7bbf61f61cfd4a1b2def160c28136fc1d100d39fbdb67b227a2c6e558d9d3a5' as Hash,\n}\n","import { archivistPresets } from './archivistPresets.ts'\n\nexport const archivistUriToName = () => {\n // eslint-disable-next-line unicorn/no-array-reduce\n return archivistPresets.reduce<Record<string, string>>((acc, { name, uri }) => {\n if (name) {\n acc[uri] = name\n }\n return acc\n }, {})\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport { NetworkSchema } from '@xyo-network/network'\n\nimport { findArchivistPreset } from '../archivistPresets.ts'\nimport { findDivinerPreset } from '../divinerPresets.ts'\n\nexport const defaultNetworkConfigs: NetworkPayload[] = [\n {\n name: 'Kerplunk',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'kerplunk',\n },\n {\n name: 'Main',\n nodes: [findArchivistPreset('main-archivist-xyo-network'), findDivinerPreset('location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'main',\n },\n {\n name: 'Local',\n nodes: [findArchivistPreset('local-archivist-xyo-network'), findDivinerPreset('local-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'local',\n },\n {\n name: 'Custom',\n nodes: [findArchivistPreset('kerplunk-archivist-xyo-network'), findDivinerPreset('beta-location-diviner-xyo-network')],\n schema: NetworkSchema,\n slug: 'custom',\n },\n]\n\n/** @deprecated use defaultNetworkConfigs instead */\nexport const networkPresets = defaultNetworkConfigs\n","import type { NetworkNodePayload } from '@xyo-network/network'\nimport { NetworkNodeSchema } from '@xyo-network/network'\n\nexport const findDivinerPreset = (slug: string) => {\n return (\n divinerPresets.find((item) => {\n return item.slug === slug\n }) ?? divinerPresets[0]\n )\n}\n\nexport const divinerPresets: NetworkNodePayload[] = [\n {\n name: 'XYO Location (beta)',\n schema: NetworkNodeSchema,\n slug: 'beta-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://beta.api.location.diviner.xyo.network',\n web: 'https://beta.explore.xyo.network',\n },\n {\n name: 'XYO Location',\n schema: NetworkNodeSchema,\n slug: 'location-diviner-xyo-network',\n type: 'diviner',\n uri: 'https://api.location.diviner.xyo.network',\n web: 'https://explore.xyo.network',\n },\n {\n name: 'XYO Location (local)',\n schema: NetworkNodeSchema,\n slug: 'local-location-diviner-xyo-network',\n type: 'diviner',\n uri: 'http://localhost:8082',\n web: 'http://localhost:3000',\n },\n]\n","import { defaultNetworkConfigs } from './default.ts'\n\nexport const findNetworkConfig = (slug: string, configs = defaultNetworkConfigs) => {\n return configs.find((item) => {\n return item.slug === slug\n })\n}\n\n/** @deprecated use findNetworkConfig instead */\nexport const findNetworkPreset = findNetworkConfig\n","import type { NetworkNames } from './NetworkNames.ts'\n\nexport type SiteName = 'explore' | 'node'\n\nexport const resolveNetworkFromHostName = (fallback: NetworkNames = 'Kerplunk', siteName: SiteName) => {\n switch (document.location.hostname) {\n case `${siteName}.xyo.network`: {\n return 'Main'\n }\n case `beta.${siteName}.xyo.network`: {\n return 'Kerplunk'\n }\n default: {\n return fallback\n }\n }\n}\n","import type { NetworkPayload } from '@xyo-network/network'\nimport type { PropsWithChildren } from 'react'\nimport React, { useCallback, useEffect } from 'react'\nimport { useSearchParams } from 'react-router-dom'\n\nimport { defaultNetworkConfigs, findNetworkConfig } from '../../lib/index.ts'\nimport { NetworkContext } from '../Context.ts'\nimport { useNetwork } from '../use.ts'\nimport { NetworkMemoryProvider } from './Memory.tsx'\nimport type { NetworkProviderProps } from './Props.ts'\n\nconst NetworkRouteProviderInner: React.FC<PropsWithChildren> = ({ children }) => {\n const { network, setNetwork } = useNetwork()\n\n const [params, setParams] = useSearchParams()\n\n const slug = params.get('network')\n const routeNetwork = slug ? findNetworkConfig(slug) : undefined\n\n // update the network stored in the route\n const setNetworkParam = useCallback(\n (network?: NetworkPayload) => {\n if (network) {\n params.set('network', network.slug)\n setParams(params, { replace: true })\n setNetwork?.(network)\n } else {\n params.delete('network')\n }\n },\n [params, setParams, setNetwork],\n )\n\n // if the network is actively changed, update both memory and route\n const setNetworkLocal = useCallback(\n (network: NetworkPayload) => {\n setNetworkParam(network)\n setNetwork?.(network)\n },\n [setNetworkParam, setNetwork],\n )\n\n // sync memory and route storage of network\n useEffect(() => {\n if (routeNetwork !== network) {\n if (routeNetwork === undefined && network !== undefined) {\n // if the route does not have a network selected, use what is in the memory context\n setNetworkParam(network)\n } else if (routeNetwork !== undefined) {\n // if the route has a selection and it is different from memory, update memory\n setNetwork?.(routeNetwork)\n }\n }\n }, [routeNetwork, network, setNetworkParam, setNetwork])\n\n return (\n // eslint-disable-next-line @eslint-react/no-unstable-context-value\n <NetworkContext value={{\n network, networks: defaultNetworkConfigs, provided: true, setNetwork: setNetworkLocal,\n }}\n >\n {network ? children : null}\n </NetworkContext>\n )\n}\n\nexport const NetworkRouteProvider: React.FC<PropsWithChildren<NetworkProviderProps>> = ({\n defaultNetworkConfig, defaultNetworkName, ...props\n}) => {\n return (\n <NetworkMemoryProvider defaultNetworkConfig={defaultNetworkConfig} defaultNetworkName={defaultNetworkName}>\n <NetworkRouteProviderInner {...props} />\n </NetworkMemoryProvider>\n )\n}\n","import { useContextEx } from '@xylabs/react-shared'\n\nimport { NetworkContext } from './Context.ts'\nimport type { NetworkContextState } from './State.ts'\n\nexport const useNetwork = (required = false) => {\n return useContextEx<NetworkContextState>(NetworkContext, 'Network', required)\n}\n"],"mappings":"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","names":["NetworkNodeSchema","jsx","network","jsx","network"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/react-network",
3
- "version": "7.0.0",
3
+ "version": "7.0.2",
4
4
  "description": "Common React library for all XYO projects that use React",
5
5
  "keywords": [
6
6
  "xyo",
@@ -43,31 +43,34 @@
43
43
  "src"
44
44
  ],
45
45
  "dependencies": {
46
- "@xylabs/assert": "^5.0.0",
47
- "@xylabs/hex": "^5.0.0",
48
- "@xylabs/react-select": "^7.0.0",
49
- "@xylabs/react-shared": "^7.0.0",
50
- "@xyo-network/network": "^5.0.0",
51
- "react-router-dom": "^7.7.1"
46
+ "@xylabs/assert": "~5.0.11",
47
+ "@xylabs/hex": "~5.0.11",
48
+ "@xylabs/react-select": "~7.0.4",
49
+ "@xylabs/react-shared": "~7.0.4",
50
+ "@xyo-network/network": "~5.0.7",
51
+ "react-router-dom": "~7.8.2"
52
52
  },
53
53
  "devDependencies": {
54
- "@mui/icons-material": "^7.2.0",
55
- "@mui/material": "^7.2.0",
56
- "@storybook/react-vite": "^9.0.18",
57
- "@types/react": "^19.1.9",
58
- "@xylabs/react-flexbox": "^7.0.0",
59
- "@xylabs/ts-scripts-yarn3": "^7.0.2",
60
- "@xylabs/tsconfig-react": "^7.0.2",
61
- "react": "^19.1.1",
62
- "react-dom": "^19.1.1",
63
- "storybook": "^9.0.18",
64
- "typescript": "^5.8.3"
54
+ "@mui/icons-material": "~7.3.1",
55
+ "@mui/material": "~7.3.1",
56
+ "@storybook/react-vite": "~9.1.3",
57
+ "@types/react": "~19.1.11",
58
+ "@xylabs/react-flexbox": "~7.0.4",
59
+ "@xylabs/ts-scripts-yarn3": "~7.1.7",
60
+ "@xylabs/tsconfig": "~7.1.7",
61
+ "@xylabs/tsconfig-dom": "~7.1.7",
62
+ "@xylabs/tsconfig-react": "~7.1.7",
63
+ "react": "~19.1.1",
64
+ "react-dom": "~19.1.1",
65
+ "storybook": "~9.1.3",
66
+ "typescript": "~5.9.2",
67
+ "vite": "~7.1.3"
65
68
  },
66
69
  "peerDependencies": {
67
70
  "@mui/icons-material": ">=6 <8",
68
71
  "@mui/material": ">=6 <8",
69
- "react": "^19",
70
- "react-dom": "^19"
72
+ "react": "~19",
73
+ "react-dom": "~19"
71
74
  },
72
75
  "publishConfig": {
73
76
  "access": "public"