atom.io 0.33.16 → 0.33.18
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.
- package/dist/react/index.d.ts +24 -6
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +54 -9
- package/dist/react/index.js.map +1 -1
- package/dist/react-devtools/index.d.ts +3 -1
- package/dist/react-devtools/index.d.ts.map +1 -1
- package/dist/react-devtools/index.js +33 -18
- package/dist/react-devtools/index.js.map +1 -1
- package/dist/realtime-react/index.d.ts +4 -4
- package/dist/realtime-react/index.d.ts.map +1 -1
- package/dist/realtime-react/index.js +17 -17
- package/dist/realtime-react/index.js.map +1 -1
- package/dist/realtime-testing/index.d.ts +3 -3
- package/dist/realtime-testing/index.d.ts.map +1 -1
- package/dist/{use-o-BrXc7Qro.js → use-o-DXPncKmZ.js} +8 -8
- package/dist/use-o-DXPncKmZ.js.map +1 -0
- package/package.json +5 -5
- package/src/react/index.ts +1 -0
- package/src/react/use-loadable.ts +79 -0
- package/src/react-devtools/AtomIODevtools.tsx +85 -77
- package/src/react-devtools/store.ts +32 -10
- package/dist/use-o-BrXc7Qro.js.map +0 -1
package/dist/react/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Store } from "atom.io/internal";
|
|
2
2
|
import { Canonical, Json } from "atom.io/json";
|
|
3
|
-
import { MutableAtomFamilyToken, MutableAtomToken, ReadableFamilyToken, ReadableToken, TimelineToken, WritableFamilyToken, WritableToken } from "atom.io";
|
|
4
|
-
import * as React from "react";
|
|
3
|
+
import { Loadable, MutableAtomFamilyToken, MutableAtomToken, ReadableFamilyToken, ReadableToken, TimelineToken, WritableFamilyToken, WritableToken } from "atom.io";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/react/store-context.d.ts
|
|
7
|
-
declare const StoreContext: React.Context<Store>;
|
|
8
|
-
declare const StoreProvider: React.FC<{
|
|
9
|
-
children: React.ReactNode;
|
|
7
|
+
declare const StoreContext: React$1.Context<Store>;
|
|
8
|
+
declare const StoreProvider: React$1.FC<{
|
|
9
|
+
children: React$1.ReactNode;
|
|
10
10
|
store?: Store;
|
|
11
11
|
}>;
|
|
12
12
|
//#endregion
|
|
@@ -18,6 +18,24 @@ declare function useI<T, K extends Canonical>(token: WritableFamilyToken<T, K>,
|
|
|
18
18
|
declare function useJSON<Serializable extends Json.Serializable>(token: MutableAtomToken<any, Serializable>): Serializable;
|
|
19
19
|
declare function useJSON<Serializable extends Json.Serializable, Key extends Canonical>(token: MutableAtomFamilyToken<any, Serializable, Key>, key: Key): Serializable;
|
|
20
20
|
//#endregion
|
|
21
|
+
//#region src/react/use-loadable.d.ts
|
|
22
|
+
declare function useLoadable<T>(token: ReadableToken<Loadable<T>>): `LOADING` | {
|
|
23
|
+
loading: boolean;
|
|
24
|
+
value: T;
|
|
25
|
+
};
|
|
26
|
+
declare function useLoadable<T, K extends Canonical>(token: ReadableFamilyToken<Loadable<T>, K>, key: K): `LOADING` | {
|
|
27
|
+
loading: boolean;
|
|
28
|
+
value: T;
|
|
29
|
+
};
|
|
30
|
+
declare function useLoadable<T, F extends T>(token: ReadableToken<Loadable<T>>, fallback: F): {
|
|
31
|
+
loading: boolean;
|
|
32
|
+
value: T;
|
|
33
|
+
};
|
|
34
|
+
declare function useLoadable<T, K extends Canonical, F extends T>(token: ReadableFamilyToken<Loadable<T>, K>, key: K, fallback: F): {
|
|
35
|
+
loading: boolean;
|
|
36
|
+
value: T;
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
21
39
|
//#region src/react/use-o.d.ts
|
|
22
40
|
declare function useO<T>(token: ReadableToken<T>): T;
|
|
23
41
|
declare function useO<T, K extends Canonical>(token: ReadableFamilyToken<T, K>, key: K): T;
|
|
@@ -31,5 +49,5 @@ type TimelineMeta = {
|
|
|
31
49
|
};
|
|
32
50
|
declare function useTL(token: TimelineToken<any>): TimelineMeta;
|
|
33
51
|
//#endregion
|
|
34
|
-
export { StoreContext, StoreProvider, TimelineMeta, useI, useJSON, useO, useTL };
|
|
52
|
+
export { StoreContext, StoreProvider, TimelineMeta, useI, useJSON, useLoadable, useO, useTL };
|
|
35
53
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<Store>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}>","token: WritableToken<T>","next: New | ((old: T) => New)","old: T","token: WritableFamilyToken<T, K>","key: K","token: MutableAtomToken<any, Serializable>","token: MutableAtomFamilyToken<any, Serializable, Key>","key: Key","token: ReadableToken<T>","token: ReadableFamilyToken<T, K>","key: K","token: TimelineToken<any>"],"sources":["../../src/react/store-context.tsx","../../src/react/use-i.ts","../../src/react/use-json.ts","../../src/react/use-o.ts","../../src/react/use-tl.ts"],"sourcesContent":[],"mappings":";;;;;;cAIaA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<Store>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: Store\n}>","token: WritableToken<T>","next: New | ((old: T) => New)","old: T","token: WritableFamilyToken<T, K>","key: K","token: MutableAtomToken<any, Serializable>","token: MutableAtomFamilyToken<any, Serializable, Key>","key: Key","token: ReadableToken<Loadable<T>>","token: ReadableFamilyToken<Loadable<T>, K>","key: K","fallback: F","token: ReadableToken<T>","token: ReadableFamilyToken<T, K>","key: K","token: TimelineToken<any>"],"sources":["../../src/react/store-context.tsx","../../src/react/use-i.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-o.ts","../../src/react/use-tl.ts"],"sourcesContent":[],"mappings":";;;;;;cAIaA,cAAc,OAAA,CAAM,QAAQ;cAI5BC,eAAe,OAAA,CAAM;YACvB,OAAA,CAAM;UACR;AANT,CAAA,CAAA;;;iBCIgB,eACR,cAAc,kBACN,SAAS,aAAa,MAAM;iBAE5B,kBAAkB,UDRlC,CAAA,KAAaD,ECSL,mBDTiC,CCSb,CDTa,ECSV,CDTU,CAAA,EAAA,GAAA,ECUnC,CDVmC,CAAA,EAAA,CAAA,YCWzB,CDXyB,CAAA,CAAA,IAAA,ECWhB,GDXgB,GAAA,CAAA,CAAA,GAAA,ECWH,CDXG,EAAA,GCWG,GDXH,CAAA,EAAA,GAAA,IAAA;;;iBEQzB,6BAA6B,IAAA,CAAK,qBAC1C,sBAAsB,gBAC3B;iBAEa,6BACM,IAAA,CAAK,0BACd,UFdb,CAAA,KAAaA,EEeJ,sBFfgC,CAAA,GAAA,EEeJ,YFfI,EEeU,GFfV,CAAA,EAAA,GAAA,EEeqB,GFfrB,CAAA,EEe2B,YFf3B;;;iBGEzB,sBACR,cAAc,SAAS;;SACW;AHJ1C,CAAA;AAAyC,iBGMzB,WHNyB,CAAA,CAAA,EAAA,UGMA,SHNR,CAAA,CAAA,KAAA,EGOzB,mBHPyB,CGOL,QHPK,CGOI,CHPJ,CAAA,EGOQ,CHPR,CAAA,EAAA,GAAA,EGQ3B,CHR2B,CAAA,EAAA,SAAA,GAAA;EAIjC,OAAaC,EAAAA,OAAAA;EAGZ,KAAA,EGEyC,CHFzC;CAAA;AADQ,iBGKO,WHLP,CAAA,CAAA,EAFyB,UGOO,CHPP,SGQ1B,cAAc,SAAS,eACpB;;SACmB;AFV9B,CAAA;AAAgB,iBEYA,WFZA,CAAA,CAAA,EACM,UEWmB,SFXjC,EAAA,UEWsD,CFV9C,CAAA,CAAA,KAAS,EEWjB,mBFXiB,CEWG,QFXH,CEWY,CFXZ,CAAA,EEWgB,CFXhB,CAAA,EAAA,GAAA,EEYnB,CFZmB,EAAA,QAAA,EEad,CFbc,CAAA,EAAA;EAAA,OAAa,EAAA,OAAA;EAAA,KAAA,EEcR,CFdc;AAAA,CAAA;;;iBGF5B,eAAe,cAAc,KAAK;iBAElC,kBAAkB,UJNlC,CAAA,KAAaD,EIOL,mBJPiC,CIOb,CJPa,EIOV,CJPU,CAAA,EAAA,GAAA,EIQnC,CJRmC,CAAA,EIStC,CJTsC;;;KKG7B,YAAA;;;;;ALHZ,CAAA;AAAyC,iBKUzB,KAAA,CLVyB,KAAA,EKUZ,aLVY,CAAA,GAAA,CAAA,CAAA,EKUS,YLVT"}
|
package/dist/react/index.js
CHANGED
|
@@ -1,23 +1,68 @@
|
|
|
1
|
-
import { StoreContext, StoreProvider, useI, useO } from "../use-o-
|
|
1
|
+
import { StoreContext, StoreProvider, useI, useO } from "../use-o-DXPncKmZ.js";
|
|
2
2
|
import { findInStore, getJsonToken, subscribeToTimeline, withdraw } from "atom.io/internal";
|
|
3
3
|
import { redo, undo } from "atom.io";
|
|
4
|
-
import * as React from "react";
|
|
4
|
+
import * as React$1 from "react";
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { useO as useO$1 } from "atom.io/react";
|
|
5
7
|
|
|
6
8
|
//#region src/react/use-json.ts
|
|
7
9
|
function useJSON(token, key) {
|
|
8
|
-
const store = React.useContext(StoreContext);
|
|
10
|
+
const store = React$1.useContext(StoreContext);
|
|
9
11
|
const stateToken = token.type === `mutable_atom_family` ? findInStore(store, token, key) : token;
|
|
10
12
|
const jsonToken = getJsonToken(store, stateToken);
|
|
11
13
|
return useO(jsonToken);
|
|
12
14
|
}
|
|
13
15
|
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/react/use-loadable.ts
|
|
18
|
+
function useLoadable(...params) {
|
|
19
|
+
let loadable;
|
|
20
|
+
let fallback;
|
|
21
|
+
const [token] = params;
|
|
22
|
+
let key;
|
|
23
|
+
switch (token.type) {
|
|
24
|
+
case `atom`:
|
|
25
|
+
case `mutable_atom`:
|
|
26
|
+
case `readonly_held_selector`:
|
|
27
|
+
case `readonly_pure_selector`:
|
|
28
|
+
case `writable_held_selector`:
|
|
29
|
+
case `writable_pure_selector`:
|
|
30
|
+
loadable = useO$1(token);
|
|
31
|
+
fallback = params[1];
|
|
32
|
+
break;
|
|
33
|
+
case `atom_family`:
|
|
34
|
+
case `mutable_atom_family`:
|
|
35
|
+
case `readonly_held_selector_family`:
|
|
36
|
+
case `readonly_pure_selector_family`:
|
|
37
|
+
case `writable_held_selector_family`:
|
|
38
|
+
case `writable_pure_selector_family`:
|
|
39
|
+
key = params[1];
|
|
40
|
+
loadable = useO$1(token, key);
|
|
41
|
+
fallback = params[2];
|
|
42
|
+
}
|
|
43
|
+
const lastLoadedRef = React.useRef(fallback ?? (loadable instanceof Promise ? `LOADING` : loadable));
|
|
44
|
+
const { current: lastLoaded } = lastLoadedRef;
|
|
45
|
+
if (loadable instanceof Promise) {
|
|
46
|
+
if (lastLoaded === `LOADING`) return `LOADING`;
|
|
47
|
+
return {
|
|
48
|
+
loading: true,
|
|
49
|
+
value: lastLoaded
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
lastLoadedRef.current = loadable;
|
|
53
|
+
return {
|
|
54
|
+
loading: false,
|
|
55
|
+
value: loadable
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
14
59
|
//#endregion
|
|
15
60
|
//#region src/react/use-tl.ts
|
|
16
61
|
function useTL(token) {
|
|
17
|
-
const store = React.useContext(StoreContext);
|
|
18
|
-
const id = React.useId();
|
|
62
|
+
const store = React$1.useContext(StoreContext);
|
|
63
|
+
const id = React$1.useId();
|
|
19
64
|
const timeline = withdraw(store, token);
|
|
20
|
-
const tokenRef = React.useRef(token);
|
|
65
|
+
const tokenRef = React$1.useRef(token);
|
|
21
66
|
const rebuildMeta = () => {
|
|
22
67
|
return {
|
|
23
68
|
at: timeline.at,
|
|
@@ -30,7 +75,7 @@ function useTL(token) {
|
|
|
30
75
|
}
|
|
31
76
|
};
|
|
32
77
|
};
|
|
33
|
-
const meta = React.useRef(rebuildMeta());
|
|
78
|
+
const meta = React$1.useRef(rebuildMeta());
|
|
34
79
|
const retrieve = () => {
|
|
35
80
|
if (meta.current.at !== timeline?.at || meta.current.length !== timeline?.history.length || tokenRef.current !== token) {
|
|
36
81
|
tokenRef.current = token;
|
|
@@ -38,9 +83,9 @@ function useTL(token) {
|
|
|
38
83
|
}
|
|
39
84
|
return meta.current;
|
|
40
85
|
};
|
|
41
|
-
return React.useSyncExternalStore((dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch), retrieve, retrieve);
|
|
86
|
+
return React$1.useSyncExternalStore((dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch), retrieve, retrieve);
|
|
42
87
|
}
|
|
43
88
|
|
|
44
89
|
//#endregion
|
|
45
|
-
export { StoreContext, StoreProvider, useI, useJSON, useO, useTL };
|
|
90
|
+
export { StoreContext, StoreProvider, useI, useJSON, useLoadable, useO, useTL };
|
|
46
91
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["token:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>","key?: Key","stateToken: ReadableToken<any>","token: TimelineToken<any>"],"sources":["../../src/react/use-json.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type {\n\tMutableAtomFamilyToken,\n\tMutableAtomToken,\n\tReadableToken,\n} from \"atom.io\"\nimport { findInStore, getJsonToken } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\nimport { useO } from \"./use-o\"\n\nexport function useJSON<Serializable extends Json.Serializable>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(token: MutableAtomFamilyToken<any, Serializable, Key>, key: Key): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(\n\ttoken:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>,\n\tkey?: Key,\n): Serializable {\n\tconst store = React.useContext(StoreContext)\n\tconst stateToken: ReadableToken<any> =\n\t\ttoken.type === `mutable_atom_family`\n\t\t\t? findInStore(store, token, key as Key)\n\t\t\t: token\n\tconst jsonToken = getJsonToken(store, stateToken)\n\treturn useO(jsonToken)\n}\n","import type { TimelineToken } from \"atom.io\"\nimport { redo, undo } from \"atom.io\"\nimport { subscribeToTimeline, withdraw } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\tconst timeline = withdraw(store, token)\n\tconst tokenRef = React.useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline.at,\n\t\t\tlength: timeline.history.length,\n\t\t\tundo: () => {\n\t\t\t\tundo(token)\n\t\t\t},\n\t\t\tredo: () => {\n\t\t\t\tredo(token)\n\t\t\t},\n\t\t}\n\t}\n\tconst meta = React.useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn React.useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["token:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>","key?: Key","React","stateToken: ReadableToken<any>","loadable: ReadableToken<any>","fallback: unknown","key: Canonical","useO","token: TimelineToken<any>","React"],"sources":["../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type {\n\tMutableAtomFamilyToken,\n\tMutableAtomToken,\n\tReadableToken,\n} from \"atom.io\"\nimport { findInStore, getJsonToken } from \"atom.io/internal\"\nimport type { Canonical, Json } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\nimport { useO } from \"./use-o\"\n\nexport function useJSON<Serializable extends Json.Serializable>(\n\ttoken: MutableAtomToken<any, Serializable>,\n): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(token: MutableAtomFamilyToken<any, Serializable, Key>, key: Key): Serializable\n\nexport function useJSON<\n\tSerializable extends Json.Serializable,\n\tKey extends Canonical,\n>(\n\ttoken:\n\t\t| MutableAtomFamilyToken<any, Serializable, Key>\n\t\t| MutableAtomToken<any, Serializable>,\n\tkey?: Key,\n): Serializable {\n\tconst store = React.useContext(StoreContext)\n\tconst stateToken: ReadableToken<any> =\n\t\ttoken.type === `mutable_atom_family`\n\t\t\t? findInStore(store, token, key as Key)\n\t\t\t: token\n\tconst jsonToken = getJsonToken(store, stateToken)\n\treturn useO(jsonToken)\n}\n","/** biome-ignore-all lint/correctness/useHookAtTopLevel: params are used in an invariant way */\nimport type { Loadable, ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport type { Canonical } from \"atom.io/json\"\nimport { useO } from \"atom.io/react\"\nimport React from \"react\"\n\nexport function useLoadable<T>(\n\ttoken: ReadableToken<Loadable<T>>,\n): `LOADING` | { loading: boolean; value: T }\n\nexport function useLoadable<T, K extends Canonical>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K>,\n\tkey: K,\n): `LOADING` | { loading: boolean; value: T }\n\nexport function useLoadable<T, F extends T>(\n\ttoken: ReadableToken<Loadable<T>>,\n\tfallback: F,\n): { loading: boolean; value: T }\n\nexport function useLoadable<T, K extends Canonical, F extends T>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K>,\n\tkey: K,\n\tfallback: F,\n): { loading: boolean; value: T }\n\nexport function useLoadable(\n\t...params:\n\t\t| readonly [ReadableFamilyToken<any, Canonical>, Canonical, unknown]\n\t\t| readonly [ReadableFamilyToken<any, Canonical>, Canonical]\n\t\t| readonly [ReadableToken<any>, unknown]\n\t\t| readonly [ReadableToken<any>]\n): `LOADING` | { loading: boolean; value: unknown } {\n\tlet loadable: ReadableToken<any>\n\tlet fallback: unknown\n\n\tconst [token] = params\n\tlet key: Canonical\n\tswitch (token.type) {\n\t\tcase `atom`:\n\t\tcase `mutable_atom`:\n\t\tcase `readonly_held_selector`:\n\t\tcase `readonly_pure_selector`:\n\t\tcase `writable_held_selector`:\n\t\tcase `writable_pure_selector`:\n\t\t\tloadable = useO(token)\n\t\t\tfallback = params[1]\n\t\t\tbreak\n\t\tcase `atom_family`:\n\t\tcase `mutable_atom_family`:\n\t\tcase `readonly_held_selector_family`:\n\t\tcase `readonly_pure_selector_family`:\n\t\tcase `writable_held_selector_family`:\n\t\tcase `writable_pure_selector_family`:\n\t\t\tkey = params[1] as Canonical\n\t\t\tloadable = useO(token, key)\n\t\t\tfallback = params[2]\n\t}\n\n\tconst lastLoadedRef = React.useRef(\n\t\tfallback ?? (loadable instanceof Promise ? `LOADING` : loadable),\n\t)\n\tconst { current: lastLoaded } = lastLoadedRef\n\tif (loadable instanceof Promise) {\n\t\tif (lastLoaded === `LOADING`) {\n\t\t\treturn `LOADING`\n\t\t}\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tvalue: lastLoaded,\n\t\t}\n\t}\n\n\tlastLoadedRef.current = loadable\n\treturn {\n\t\tloading: false,\n\t\tvalue: loadable,\n\t}\n}\n","import type { TimelineToken } from \"atom.io\"\nimport { redo, undo } from \"atom.io\"\nimport { subscribeToTimeline, withdraw } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nimport { StoreContext } from \"./store-context\"\n\nexport type TimelineMeta = {\n\tat: number\n\tlength: number\n\tundo: () => void\n\tredo: () => void\n}\n\nexport function useTL(token: TimelineToken<any>): TimelineMeta {\n\tconst store = React.useContext(StoreContext)\n\tconst id = React.useId()\n\tconst timeline = withdraw(store, token)\n\tconst tokenRef = React.useRef(token)\n\tconst rebuildMeta = () => {\n\t\treturn {\n\t\t\tat: timeline.at,\n\t\t\tlength: timeline.history.length,\n\t\t\tundo: () => {\n\t\t\t\tundo(token)\n\t\t\t},\n\t\t\tredo: () => {\n\t\t\t\tredo(token)\n\t\t\t},\n\t\t}\n\t}\n\tconst meta = React.useRef<TimelineMeta>(rebuildMeta())\n\tconst retrieve = () => {\n\t\tif (\n\t\t\tmeta.current.at !== timeline?.at ||\n\t\t\tmeta.current.length !== timeline?.history.length ||\n\t\t\ttokenRef.current !== token\n\t\t) {\n\t\t\ttokenRef.current = token\n\t\t\tmeta.current = rebuildMeta()\n\t\t}\n\t\treturn meta.current\n\t}\n\treturn React.useSyncExternalStore<TimelineMeta>(\n\t\t(dispatch) => subscribeToTimeline(store, token, `use-tl:${id}`, dispatch),\n\t\tretrieve,\n\t\tretrieve,\n\t)\n}\n"],"mappings":";;;;;;;;AAqBA,SAAgB,QAIfA,OAGAC,KACe;CACf,MAAM,QAAQC,QAAM,WAAW,aAAa;CAC5C,MAAMC,aACL,MAAM,SAAS,CAAC,mBAAmB,CAAC,GACjC,YAAY,OAAO,OAAO,IAAW,GACrC;CACJ,MAAM,YAAY,aAAa,OAAO,WAAW;AACjD,QAAO,KAAK,UAAU;AACtB;;;;ACXD,SAAgB,YACf,GAAG,QAKgD;CACnD,IAAIC;CACJ,IAAIC;CAEJ,MAAM,CAAC,MAAM,GAAG;CAChB,IAAIC;AACJ,SAAQ,MAAM,MAAd;EACC,KAAK,CAAC,IAAI,CAAC;EACX,KAAK,CAAC,YAAY,CAAC;EACnB,KAAK,CAAC,sBAAsB,CAAC;EAC7B,KAAK,CAAC,sBAAsB,CAAC;EAC7B,KAAK,CAAC,sBAAsB,CAAC;EAC7B,KAAK,CAAC,sBAAsB,CAAC;GAC5B,WAAWC,OAAK,MAAM;GACtB,WAAW,OAAO;AAClB;EACD,KAAK,CAAC,WAAW,CAAC;EAClB,KAAK,CAAC,mBAAmB,CAAC;EAC1B,KAAK,CAAC,6BAA6B,CAAC;EACpC,KAAK,CAAC,6BAA6B,CAAC;EACpC,KAAK,CAAC,6BAA6B,CAAC;EACpC,KAAK,CAAC,6BAA6B,CAAC;GACnC,MAAM,OAAO;GACb,WAAWA,OAAK,OAAO,IAAI;GAC3B,WAAW,OAAO;CACnB;CAED,MAAM,gBAAgB,MAAM,OAC3B,aAAa,oBAAoB,UAAU,CAAC,OAAO,CAAC,GAAG,UACvD;CACD,MAAM,EAAE,SAAS,YAAY,GAAG;AAChC,KAAI,oBAAoB,SAAS;AAChC,MAAI,eAAe,CAAC,OAAO,CAAC,CAC3B,QAAO,CAAC,OAAO,CAAC;AAEjB,SAAO;GACN,SAAS;GACT,OAAO;EACP;CACD;CAED,cAAc,UAAU;AACxB,QAAO;EACN,SAAS;EACT,OAAO;CACP;AACD;;;;AChED,SAAgB,MAAMC,OAAyC;CAC9D,MAAM,QAAQC,QAAM,WAAW,aAAa;CAC5C,MAAM,KAAKA,QAAM,OAAO;CACxB,MAAM,WAAW,SAAS,OAAO,MAAM;CACvC,MAAM,WAAWA,QAAM,OAAO,MAAM;CACpC,MAAM,cAAc,MAAM;AACzB,SAAO;GACN,IAAI,SAAS;GACb,QAAQ,SAAS,QAAQ;GACzB,MAAM,MAAM;IACX,KAAK,MAAM;GACX;GACD,MAAM,MAAM;IACX,KAAK,MAAM;GACX;EACD;CACD;CACD,MAAM,OAAOA,QAAM,OAAqB,aAAa,CAAC;CACtD,MAAM,WAAW,MAAM;AACtB,MACC,KAAK,QAAQ,OAAO,UAAU,MAC9B,KAAK,QAAQ,WAAW,UAAU,QAAQ,UAC1C,SAAS,YAAY,OACpB;GACD,SAAS,UAAU;GACnB,KAAK,UAAU,aAAa;EAC5B;AACD,SAAO,KAAK;CACZ;AACD,QAAOA,QAAM,qBACZ,CAAC,aAAa,oBAAoB,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EACzE,UACA,SACA;AACD"}
|
|
@@ -2,7 +2,9 @@ import { Json, JsonTypes } from "atom.io/json";
|
|
|
2
2
|
import { CSSProperties, Component, DetailedHTMLProps, ErrorInfo, FC, ForwardRefExoticComponent, InputHTMLAttributes, ReactElement, ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/react-devtools/AtomIODevtools.d.ts
|
|
5
|
-
declare const AtomIODevtools: React.FC
|
|
5
|
+
declare const AtomIODevtools: React.FC<{
|
|
6
|
+
hideByDefault?: boolean;
|
|
7
|
+
}>;
|
|
6
8
|
//#endregion
|
|
7
9
|
//#region src/react-devtools/elastic-input/ElasticInput.d.ts
|
|
8
10
|
type ElasticInputProps = DetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["AtomIODevtools: React.FC","ElasticInput: ForwardRefExoticComponent<\n\tDetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {\n\t\twidthPadding?: number\n\t}\n>","min: number","max: number","value: number","input: string","VALID_NON_NUMBER_INTERPRETATIONS: Readonly<\n\tRecord<ValidNonNumber, number | null>\n>","DEFAULT_NUMBER_CONSTRAINTS: NumberConstraints","e: React.ChangeEvent<HTMLInputElement>","e: React.MouseEvent<HTMLDivElement, MouseEvent>","newValue: number | null","NumberInput: FC<NumberInputProps>","value: string","TextInput: FC<TextInputProps>","DefaultFallback: FC<FallbackProps>","error: Error | string","errorInfo: ErrorInfo","newState:\n\t\t\t\t| ErrorBoundaryState\n\t\t\t\t| ((currState: ErrorBoundaryState) => ErrorBoundaryState)","currState: ErrorBoundaryState","props: ErrorBoundaryProps","error: Error","DEFAULT_JSON_EDITOR_COMPONENTS: JsonEditorComponents","newKey: string","newType: keyof JsonTypes","path: ReadonlyArray<number | string>","newValue: boolean","SubEditors: Record<\n\tkeyof JsonTypes,\n\tFC<JsonEditorProps_INTERNAL<any>>\n>","valOrUpdater: T | ((currVal: T) => T)","currVal: T","newKey: string","path: ReadonlyArray<number | string>","input: unknown","next: New | ((old: T) => New)","old: T"],"sources":["../../src/react-devtools/AtomIODevtools.tsx","../../src/react-devtools/elastic-input/ElasticInput.tsx","../../src/react-devtools/elastic-input/NumberInput.tsx","../../src/react-devtools/elastic-input/TextInput.tsx","../../src/react-devtools/error-boundary/DefaultFallback.tsx","../../src/react-devtools/error-boundary/ReactErrorBoundary.tsx","../../src/react-devtools/json-editor/default-components.tsx","../../src/react-devtools/json-editor/json-editor-internal.tsx","../../src/react-devtools/json-editor/developer-interface.tsx","../../src/react-devtools/json-editor/editors-by-type/utilities/cast-to-json.ts","../../src/react-devtools/json-editor/index.ts"],"sourcesContent":[],"mappings":";;;;cAWaA,gBAAgB,KAAA,CAAM
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["AtomIODevtools: React.FC<{ hideByDefault?: boolean }>","ElasticInput: ForwardRefExoticComponent<\n\tDetailedHTMLProps<InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {\n\t\twidthPadding?: number\n\t}\n>","min: number","max: number","value: number","input: string","VALID_NON_NUMBER_INTERPRETATIONS: Readonly<\n\tRecord<ValidNonNumber, number | null>\n>","DEFAULT_NUMBER_CONSTRAINTS: NumberConstraints","e: React.ChangeEvent<HTMLInputElement>","e: React.MouseEvent<HTMLDivElement, MouseEvent>","newValue: number | null","NumberInput: FC<NumberInputProps>","value: string","TextInput: FC<TextInputProps>","DefaultFallback: FC<FallbackProps>","error: Error | string","errorInfo: ErrorInfo","newState:\n\t\t\t\t| ErrorBoundaryState\n\t\t\t\t| ((currState: ErrorBoundaryState) => ErrorBoundaryState)","currState: ErrorBoundaryState","props: ErrorBoundaryProps","error: Error","DEFAULT_JSON_EDITOR_COMPONENTS: JsonEditorComponents","newKey: string","newType: keyof JsonTypes","path: ReadonlyArray<number | string>","newValue: boolean","SubEditors: Record<\n\tkeyof JsonTypes,\n\tFC<JsonEditorProps_INTERNAL<any>>\n>","valOrUpdater: T | ((currVal: T) => T)","currVal: T","newKey: string","path: ReadonlyArray<number | string>","input: unknown","next: New | ((old: T) => New)","old: T"],"sources":["../../src/react-devtools/AtomIODevtools.tsx","../../src/react-devtools/elastic-input/ElasticInput.tsx","../../src/react-devtools/elastic-input/NumberInput.tsx","../../src/react-devtools/elastic-input/TextInput.tsx","../../src/react-devtools/error-boundary/DefaultFallback.tsx","../../src/react-devtools/error-boundary/ReactErrorBoundary.tsx","../../src/react-devtools/json-editor/default-components.tsx","../../src/react-devtools/json-editor/json-editor-internal.tsx","../../src/react-devtools/json-editor/developer-interface.tsx","../../src/react-devtools/json-editor/editors-by-type/utilities/cast-to-json.ts","../../src/react-devtools/json-editor/index.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useI, useO } from "../use-o-
|
|
1
|
+
import { useI, useO } from "../use-o-DXPncKmZ.js";
|
|
2
2
|
import { IMPLICIT, actUponStore, arbitrary, become, createAtomFamily, createStandaloneAtom, createTransaction, disposeFromStore, findInStore, getFromStore } from "atom.io/internal";
|
|
3
3
|
import { JSON_DEFAULTS, fromEntries, isJson, stringifyJson, toEntries } from "atom.io/json";
|
|
4
4
|
import { redo, undo } from "atom.io";
|
|
@@ -167,19 +167,31 @@ const DEFAULT_JSON_EDITOR_COMPONENTS = {
|
|
|
167
167
|
|
|
168
168
|
//#endregion
|
|
169
169
|
//#region src/react-devtools/store.ts
|
|
170
|
-
function attachDevtoolsStates(store) {
|
|
170
|
+
function attachDevtoolsStates(store, hideByDefault = false) {
|
|
171
171
|
const introspectionStates = attachIntrospectionStates(store);
|
|
172
|
-
const
|
|
172
|
+
const devtoolsAreHiddenAtom = createStandaloneAtom(store, {
|
|
173
|
+
key: `🔍 Devtools Are Hidden`,
|
|
174
|
+
default: hideByDefault,
|
|
175
|
+
effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `🔍 Devtools Are Hidden`), ({ setSelf }) => {
|
|
176
|
+
window.addEventListener(`keydown`, (e) => {
|
|
177
|
+
if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === `a`) {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
setSelf((state) => !state);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}]
|
|
183
|
+
});
|
|
184
|
+
const devtoolsAreOpenAtom = createStandaloneAtom(store, {
|
|
173
185
|
key: `🔍 Devtools Are Open`,
|
|
174
186
|
default: true,
|
|
175
187
|
effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `🔍 Devtools Are Open`)]
|
|
176
188
|
});
|
|
177
|
-
const
|
|
189
|
+
const devtoolsViewSelectionAtom = createStandaloneAtom(store, {
|
|
178
190
|
key: `🔍 Devtools View Selection`,
|
|
179
191
|
default: `atoms`,
|
|
180
192
|
effects: typeof window === `undefined` ? [] : [persistSync(window.localStorage, JSON, `🔍 Devtools View`)]
|
|
181
193
|
});
|
|
182
|
-
const
|
|
194
|
+
const devtoolsViewOptionsAtom = createStandaloneAtom(store, {
|
|
183
195
|
key: `🔍 Devtools View Options`,
|
|
184
196
|
default: [
|
|
185
197
|
`atoms`,
|
|
@@ -197,7 +209,7 @@ function attachDevtoolsStates(store) {
|
|
|
197
209
|
const openCloseAllTX = createTransaction(store, {
|
|
198
210
|
key: `🔍 Open Close All`,
|
|
199
211
|
do: ({ get, set }, path, current) => {
|
|
200
|
-
const currentView = get(
|
|
212
|
+
const currentView = get(devtoolsViewSelectionAtom);
|
|
201
213
|
let states;
|
|
202
214
|
switch (currentView) {
|
|
203
215
|
case `atoms`:
|
|
@@ -241,9 +253,10 @@ function attachDevtoolsStates(store) {
|
|
|
241
253
|
});
|
|
242
254
|
return {
|
|
243
255
|
...introspectionStates,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
256
|
+
devtoolsAreHiddenAtom,
|
|
257
|
+
devtoolsAreOpenAtom,
|
|
258
|
+
devtoolsViewSelectionAtom,
|
|
259
|
+
devtoolsViewOptionsAtom,
|
|
247
260
|
viewIsOpenAtoms,
|
|
248
261
|
openCloseAllTX,
|
|
249
262
|
store
|
|
@@ -1417,21 +1430,22 @@ const TransactionIndex = () => {
|
|
|
1417
1430
|
|
|
1418
1431
|
//#endregion
|
|
1419
1432
|
//#region src/react-devtools/AtomIODevtools.tsx
|
|
1420
|
-
const AtomIODevtools = () => {
|
|
1433
|
+
const AtomIODevtools = ({ hideByDefault = false }) => {
|
|
1421
1434
|
const store = useContext(StoreContext);
|
|
1422
1435
|
return /* @__PURE__ */ jsx(DevtoolsContext.Provider, {
|
|
1423
|
-
value: attachDevtoolsStates(store),
|
|
1436
|
+
value: attachDevtoolsStates(store, hideByDefault),
|
|
1424
1437
|
children: /* @__PURE__ */ jsx(AtomIODevtoolsInternal, {})
|
|
1425
1438
|
});
|
|
1426
1439
|
};
|
|
1427
1440
|
const AtomIODevtoolsInternal = () => {
|
|
1428
1441
|
const constraintsRef = useRef(null);
|
|
1429
|
-
const { atomIndex, selectorIndex,
|
|
1430
|
-
const
|
|
1431
|
-
const
|
|
1432
|
-
const
|
|
1433
|
-
const
|
|
1434
|
-
const
|
|
1442
|
+
const { atomIndex, selectorIndex, devtoolsAreHiddenAtom, devtoolsAreOpenAtom, devtoolsViewSelectionAtom, devtoolsViewOptionsAtom } = useContext(DevtoolsContext);
|
|
1443
|
+
const devtoolsAreHidden = useO$1(devtoolsAreHiddenAtom);
|
|
1444
|
+
const setDevtoolsAreOpen = useI$1(devtoolsAreOpenAtom);
|
|
1445
|
+
const devtoolsAreOpen = useO$1(devtoolsAreOpenAtom);
|
|
1446
|
+
const setDevtoolsView = useI$1(devtoolsViewSelectionAtom);
|
|
1447
|
+
const devtoolsView = useO$1(devtoolsViewSelectionAtom);
|
|
1448
|
+
const devtoolsViewOptions = useO$1(devtoolsViewOptionsAtom);
|
|
1435
1449
|
const mouseHasMoved = useRef(false);
|
|
1436
1450
|
return /* @__PURE__ */ jsxs("span", {
|
|
1437
1451
|
style: {
|
|
@@ -1453,10 +1467,11 @@ const AtomIODevtoolsInternal = () => {
|
|
|
1453
1467
|
bottom: 0,
|
|
1454
1468
|
pointerEvents: `none`
|
|
1455
1469
|
}
|
|
1456
|
-
}), /* @__PURE__ */ jsxs(motion.main, {
|
|
1470
|
+
}), devtoolsAreHidden ? null : /* @__PURE__ */ jsxs(motion.main, {
|
|
1457
1471
|
drag: true,
|
|
1458
1472
|
dragConstraints: constraintsRef,
|
|
1459
1473
|
"data-css": "atom_io_devtools",
|
|
1474
|
+
"data-testid": "devtools",
|
|
1460
1475
|
transition: {
|
|
1461
1476
|
type: `spring`,
|
|
1462
1477
|
bounce: .25
|