atom.io 0.40.5 → 0.40.6

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.
@@ -19,22 +19,6 @@ declare function useJSON<T extends Transceiver<any, any, any>>(token: MutableAto
19
19
  declare function useJSON<T extends Transceiver<any, any, any>, K extends Canonical>(token: MutableAtomFamilyToken<T, K>, key: K): AsJSON<T>;
20
20
  //#endregion
21
21
  //#region src/react/use-loadable.d.ts
22
- declare function useLoadable<T>(token: ReadableToken<Loadable<T>, any, never>): `LOADING` | {
23
- loading: boolean;
24
- value: T;
25
- };
26
- declare function useLoadable<T, K extends Canonical, Key extends K>(token: ReadableFamilyToken<Loadable<T>, K, never>, key: Key): `LOADING` | {
27
- loading: boolean;
28
- value: T;
29
- };
30
- declare function useLoadable<T, F extends T>(token: ReadableToken<Loadable<T>, any, never>, fallback: F): {
31
- loading: boolean;
32
- value: T;
33
- };
34
- declare function useLoadable<T, K extends Canonical, F extends T, Key extends K>(token: ReadableFamilyToken<Loadable<T>, K, never>, key: Key, fallback: F): {
35
- loading: boolean;
36
- value: T;
37
- };
38
22
  declare function useLoadable<T, E>(token: ReadableToken<Loadable<T>, any, E>): `LOADING` | {
39
23
  loading: boolean;
40
24
  value: E | T;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>"],"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,4BACN,SAAS,aAAa,MAAM;iBAE5B,kBAAkB,WDRlC,YCQyD,CDR5CD,CAA4B,CAAA,KAAA,ECSjC,mBDTiC,CCSb,CDTa,ECSV,CDTU,EAAA,GAAA,CAAA,EAAA,GAAA,ECUnC,GDVmC,CAAA,EAAA,CAAA,YCWzB,CDXyB,CAAA,CAAA,IAAA,ECWhB,GDXgB,GAAA,CAAA,CAAA,GAAA,ECWH,CDXG,EAAA,GCWG,GDXH,CAAA,EAAA,GAAA,IAAA;;;iBEKzB,kBAAkB,mCAC1B,iBAAiB,KACtB,OAAO;iBAEM,kBACL,4BFVX,UEWW,SFX8B,CAAA,CAAA,KAAA,EEYhC,sBFZgC,CEYT,CFZS,EEYN,CFZM,CAAA,EAAA,GAAA,EEYG,CFZH,CAAA,EEYO,MFZP,CEYc,CFZd,CAAA;;;iBGGzB,sBACR,cAAc,SAAS;;SACW;AHL1C,CAAA;AAAyC,iBGOzB,WHPyB,cGOA,SHPR,cGO+B,EHHhE,CAAA,KAAaC,EGIL,mBHJKA,CGIe,QHJfA,CGIwB,CHJxBA,CAAAA,EGI4B,CHJ5BA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,EGKP,GHLOA,CAAAA,EAAAA,SAAAA,GAAAA;;SGM6B,CHL/B;;AADiB,iBGQZ,WHRkB,cGQO,UACjC,cAAc,SAAS,2BACpB;;EFVX,KAAgB,EEWc,CFXd;CAAA;AACM,iBEYN,WFZM,cEYmB,SFXzB,YEW8C,CFXrC,cEWoD,CFXvC,OAAM,EEYpC,mBFZoC,CEYhB,QFZgB,CEYP,CFZO,CAAA,EEYH,CFZG,EAAA,KAAA,CAAA,EAAA,GAAA,EEatC,GFbsC,EAAA,QAAA,EEcjC,CFdiC,CAAA,EAAA;;EAE5C,KAAgB,EEac,CFbd;CAAA;AAAkB,iBEelB,WFfkB,YACH,EEevB,aFfuB,CEeT,QFfS,CEeA,CFfA,CAAA,EAAA,GAAA,EEeS,CFfT,CAAA,CAAA,EAAA,SAAA,GAAA;SAAvB,EAAA,OAAA;SEgBkC,CFfpC,GEewC,CFfxC;;AACmB,iBEgBT,WFhBS,cEgBgB,SFhBG,cEgBoB,aACxD,oBAAoB,SAAS,IAAI,GAAG,SACtC;;EDxBN,KAAgB,ECyB0B,CDzB1B,GCyB8B,CDzB9B;CAAA;AAAkB,iBC2BlB,WD3BkB,cC2BO,CD1BjC,UACL,EC0BK,aD1BL,CC0BmB,QD1BnB,CC0B4B,CD1B5B,CAAA,EAAA,GAAA,EC0BqC,CD1BrC,CAAA,EAAA,QAAA,EC2BQ,CD3BR,CAAA,EAAA;;EAEH,KAAgB,EC0Bc,CD1Bd;EAAA,KAAA,CAAA,EC0ByB,CD1BzB;;AAEL,iBC0BK,WD1BL,cC4BA,SD3BwB,YC4BxB,CD5BF,cC6BI,CD7B+B,UAAI,ECgCxC,mBDhCwC,CCgCpB,QDhCoB,CCgCX,CDhCW,CAAA,ECgCP,CDhCO,ECgCJ,CDhCI,CAAA,EAAA,GAAA,ECiC1C,GDjC0C,EAAA,QAAA,ECkCrC,CDlCqC,CAAA,EAAA;;SCmClB;UAAW;;;;iBC3CzB,kBAAkB,cAAc,QAAQ,KAAK,IAAI;AJJpDD,iBIMG,IJNyB,CAAA,CAAA,YIMP,SJNO,cIMgB,CJN9B,IAI3B,CAAA,KAAaC,EIGL,mBJHKA,CIGe,CJHfA,EIGkB,CJHlBA,EIGqB,CJHrBA,CAAAA,EAAAA,GAAAA,EIIP,GJJOA,CAAAA,EIKV,CJLUA,GIKN,CJLMA;;;KKDD,YAAA;;;;;ALHZ,CAAA;AAAyC,iBKUzB,KAAA,CLVyB,KAAA,EKUZ,aLVY,CAAA,GAAA,CAAA,CAAA,EKUS,YLVT"}
1
+ {"version":3,"file":"index.d.ts","names":["StoreContext: React.Context<RootStore>","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>"],"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,4BACN,SAAS,aAAa,MAAM;iBAE5B,kBAAkB,WDRlC,YCQyD,CDR5CD,CAA4B,CAAA,KAAA,ECSjC,mBDTiC,CCSb,CDTa,ECSV,CDTU,EAAA,GAAA,CAAA,EAAA,GAAA,ECUnC,GDVmC,CAAA,EAAA,CAAA,YCWzB,CDXyB,CAAA,CAAA,IAAA,ECWhB,GDXgB,GAAA,CAAA,CAAA,GAAA,ECWH,CDXG,EAAA,GCWG,GDXH,CAAA,EAAA,GAAA,IAAA;;;iBEKzB,kBAAkB,mCAC1B,iBAAiB,KACtB,OAAO;iBAEM,kBACL,4BFVX,UEWW,SFX8B,CAAA,CAAA,KAAA,EEYhC,sBFZgC,CEYT,CFZS,EEYN,CFZM,CAAA,EAAA,GAAA,EEYG,CFZH,CAAA,EEYO,MFZP,CEYc,CFZd,CAAA;;;iBGGzB,iBHHhB,CAAA,KAAaA,EGIL,aHJiC,CGInB,QHJmB,CGIV,CHJU,CAAA,EAAA,GAAA,EGID,CHJC,CAAA,CAAA,EAAA,SAAA,GAAA;EAAA,OAAA,EAAA,OAAA;SGKC,CHLD,GGKK,CHLL;;iBGOzB,YHHhB,CAAA,YGGyC,uBAAuB,CHFrD,UADiB,EGIpB,mBHJ0B,CGIN,QHJM,CGIG,CHJH,CAAA,EGIO,CHJP,EGIU,CHJV,CAAA,EAAA,GAAA,EGK5B,GHL4B,CAAA,EAAA,SAAA,GAAA;;SGMQ,IAAI;;iBAE9B,YFRhB,CAAA,EAAgB,UEQyB,CFRzB,UACR,EEQA,aFRA,CEQc,QFRd,CEQuB,CFRvB,CAAA,EAAA,GAAA,EEQgC,CFRhC,CAAA,EAAA,QAAA,EESG,CFTH,CAAA,EAAA;SACQ,EAAA,OAAA;SESc,CFTL;QAAa,EESG,CFTH;;iBEWtB,YFThB,CAAA,EAAgB,UEWL,SFXK,YEYL,CFZuB,cEarB,CFb4C,UAC1B,EEevB,mBFfuB,CEeH,QFfG,CEeM,CFfN,CAAA,EEeU,CFfV,EEea,CFfb,CAAA,EAAA,GAAA,EEgBzB,GFhByB,EAAA,QAAA,EEiBpB,CFjBoB,CAAA,EAAA;SAAvB,EAAA,OAAA;SEkBsB,CFjBxB;QACU,EEgByB,CFhBzB;;;;iBGPA,kBAAkB,cAAc,QAAQ,KAAK,IAAI;AJJpDA,iBIMG,IJNyB,CAAA,CAAA,YIMP,SJNO,cIMgB,CJN9B,IAI3B,CAAA,KAAaC,EIGL,mBJHKA,CIGe,CJHfA,EIGkB,CJHlBA,EIGqB,CJHrBA,CAAAA,EAAAA,GAAAA,EIIP,GJJOA,CAAAA,EIKV,CJLUA,GIKN,CJLMA;;;KKDD,YAAA;;;;;ALHZ,CAAA;AAAyC,iBKUzB,KAAA,CLVyB,KAAA,EKUZ,aLVY,CAAA,GAAA,CAAA,CAAA,EKUS,YLVT"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["StoreContext: React.Context<RootStore>","React","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>","token: ReadableToken<any, any, any>","React","setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t>","React","React","stateToken: MutableAtomToken<any>","StoreContext","value: unknown","state: ReadableState<any, any>","fallback: unknown","key: Canonical","useO","React"],"sources":["../../src/react/store-context.tsx","../../src/react/parse-state-overloads.ts","../../src/react/use-i.ts","../../src/react/use-o.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type { RootStore } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext: React.Context<RootStore> = React.createContext(\n\tIMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import type {\n\tReadableFamilyToken,\n\tReadableToken,\n\tWritableFamilyToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [WritableFamilyToken<T, K, E>, Key] | [WritableToken<T, any, E>]\n): WritableToken<T, K, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, K, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, K, E> {\n\tlet token: ReadableToken<any, any, any>\n\tif (rest.length === 2) {\n\t\tconst family = rest[0]\n\t\tconst key = rest[1]\n\n\t\ttoken = findInStore(store, family, key)\n\t} else {\n\t\ttoken = rest[0]\n\t}\n\treturn token\n}\n","import type { WritableFamilyToken, WritableToken } from \"atom.io\"\nimport { setIntoStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: WritableToken<T, any, any>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical, Key extends K>(\n\ttoken: WritableFamilyToken<T, K, any>,\n\tkey: Key,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical, Key extends K>(\n\t...params: [WritableFamilyToken<T, K, any>, Key] | [WritableToken<T, any, any>]\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = React.useRef(null)\n\tsetter.current ??= (next) => {\n\t\tsetIntoStore(store, token, next)\n\t}\n\treturn setter.current\n}\n","import type { ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { getFromStore, subscribeToState } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useO<T, E>(token: ReadableToken<T, any, E>): E | T\n\nexport function useO<T, K extends Canonical, Key extends K, E>(\n\ttoken: ReadableFamilyToken<T, K, E>,\n\tkey: Key,\n): E | T\n\nexport function useO<T, K extends Canonical, Key extends K, E>(\n\t...params: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): E | T {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<E | T>(\n\t\t(dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch),\n\t\t() => getFromStore(store, token),\n\t\t() => getFromStore(store, token),\n\t)\n}\n","import type { MutableAtomFamilyToken, MutableAtomToken } from \"atom.io\"\nimport type { AsJSON, Transceiver } from \"atom.io/internal\"\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<T extends Transceiver<any, any, any>>(\n\ttoken: MutableAtomToken<T>,\n): AsJSON<T>\n\nexport function useJSON<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(token: MutableAtomFamilyToken<T, K>, key: K): AsJSON<T>\n\nexport function useJSON(\n\ttoken: MutableAtomFamilyToken<any, any> | MutableAtomToken<any>,\n\tkey?: Canonical,\n): Json.Serializable {\n\tconst store = React.useContext(StoreContext)\n\tconst stateToken: MutableAtomToken<any> =\n\t\ttoken.type === `mutable_atom_family` ? findInStore(store, token, key) : 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 { findInStore, type ReadableState, withdraw } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport React from \"react\"\n\nexport function useLoadable<T>(\n\ttoken: ReadableToken<Loadable<T>, any, never>,\n): `LOADING` | { loading: boolean; value: T }\n\nexport function useLoadable<T, K extends Canonical, Key extends K>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, never>,\n\tkey: Key,\n): `LOADING` | { loading: boolean; value: T }\n\nexport function useLoadable<T, F extends T>(\n\ttoken: ReadableToken<Loadable<T>, any, never>,\n\tfallback: F,\n): { loading: boolean; value: T }\n\nexport function useLoadable<T, K extends Canonical, F extends T, Key extends K>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, never>,\n\tkey: Key,\n\tfallback: F,\n): { loading: boolean; value: T }\n\nexport function useLoadable<T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, K extends Canonical, Key extends K, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: Key,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, F extends T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable<\n\tT,\n\tK extends Canonical,\n\tF extends T,\n\tKey extends K,\n\tE,\n>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: Key,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable(\n\t...params:\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical, unknown]\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical]\n\t\t| readonly [ReadableToken<any, any, any>, unknown]\n\t\t| readonly [ReadableToken<any, any, any>]\n): `LOADING` | { loading: boolean; value: unknown; error?: unknown } {\n\tconst store = React.useContext(StoreContext)\n\n\tlet value: unknown\n\tlet state: ReadableState<any, 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\tvalue = useO(token)\n\t\t\tstate = withdraw(store, 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\tvalue = useO(token, key)\n\t\t\tstate = withdraw(store, findInStore(store, token, key))\n\t\t\tfallback = params[2]\n\t}\n\n\tconst isErr = `catch` in state && state.catch.some((E) => value instanceof E)\n\n\tconst wrapperRef = React.useRef<{\n\t\tloading: boolean\n\t\tvalue: unknown\n\t\terror?: unknown\n\t}>({ loading: false, value: null as unknown })\n\tconst lastLoadedRef = React.useRef(\n\t\tfallback ?? (value instanceof Promise ? `LOADING` : value),\n\t)\n\n\tconst { current: lastLoaded } = lastLoadedRef\n\tlet { current: wrapper } = wrapperRef\n\n\tconst wasErr =\n\t\t`catch` in state && state.catch.some((E) => lastLoaded instanceof E)\n\n\tif (value instanceof Promise) {\n\t\tif (lastLoaded === `LOADING`) {\n\t\t\treturn `LOADING`\n\t\t}\n\t\tif (wasErr && fallback) {\n\t\t\twrapper = wrapperRef.current = {\n\t\t\t\tloading: true,\n\t\t\t\tvalue: fallback,\n\t\t\t\terror: lastLoaded,\n\t\t\t}\n\t\t} else {\n\t\t\twrapper = wrapperRef.current = { loading: true, value: lastLoaded }\n\t\t}\n\t} else {\n\t\tlastLoadedRef.current = value\n\t\tif (wrapper.loading === true) {\n\t\t\tif (isErr && fallback) {\n\t\t\t\twrapper = wrapperRef.current = {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tvalue: fallback,\n\t\t\t\t\terror: value,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twrapper = wrapperRef.current = { loading: false, value: value }\n\t\t\t}\n\t\t} else {\n\t\t\tif (isErr && fallback) {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = fallback\n\t\t\t\twrapper.error = value\n\t\t\t} else {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = value\n\t\t\t\tdelete wrapper.error\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wrapper\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":"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"}
1
+ {"version":3,"file":"index.js","names":["StoreContext: React.Context<RootStore>","React","StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}>","token: ReadableToken<any, any, any>","React","setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t>","React","React","stateToken: MutableAtomToken<any>","StoreContext","value: unknown","state: ReadableState<any, any>","fallback: unknown","key: Canonical","useO","React"],"sources":["../../src/react/store-context.tsx","../../src/react/parse-state-overloads.ts","../../src/react/use-i.ts","../../src/react/use-o.ts","../../src/react/use-json.ts","../../src/react/use-loadable.ts","../../src/react/use-tl.ts"],"sourcesContent":["import type { RootStore } from \"atom.io/internal\"\nimport { IMPLICIT } from \"atom.io/internal\"\nimport * as React from \"react\"\n\nexport const StoreContext: React.Context<RootStore> = React.createContext(\n\tIMPLICIT.STORE,\n)\n\nexport const StoreProvider: React.FC<{\n\tchildren: React.ReactNode\n\tstore?: RootStore\n}> = ({ children, store = IMPLICIT.STORE }) => (\n\t<StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n)\n","import type {\n\tReadableFamilyToken,\n\tReadableToken,\n\tWritableFamilyToken,\n\tWritableToken,\n} from \"atom.io\"\nimport type { Store } from \"atom.io/internal\"\nimport { findInStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [WritableFamilyToken<T, K, E>, Key] | [WritableToken<T, any, E>]\n): WritableToken<T, K, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, K, E>\n\nexport function parseStateOverloads<T, K extends Canonical, Key extends K, E>(\n\tstore: Store,\n\t...rest: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): ReadableToken<T, K, E> {\n\tlet token: ReadableToken<any, any, any>\n\tif (rest.length === 2) {\n\t\tconst family = rest[0]\n\t\tconst key = rest[1]\n\n\t\ttoken = findInStore(store, family, key)\n\t} else {\n\t\ttoken = rest[0]\n\t}\n\treturn token\n}\n","import type { WritableFamilyToken, WritableToken } from \"atom.io\"\nimport { setIntoStore } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useI<T>(\n\ttoken: WritableToken<T, any, any>,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical, Key extends K>(\n\ttoken: WritableFamilyToken<T, K, any>,\n\tkey: Key,\n): <New extends T>(next: New | ((old: T) => New)) => void\n\nexport function useI<T, K extends Canonical, Key extends K>(\n\t...params: [WritableFamilyToken<T, K, any>, Key] | [WritableToken<T, any, any>]\n): <New extends T>(next: New | ((old: T) => New)) => void {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst setter: React.RefObject<\n\t\t(<New extends T>(next: New | ((old: T) => New)) => void) | null\n\t> = React.useRef(null)\n\tsetter.current ??= (next) => {\n\t\tsetIntoStore(store, token, next)\n\t}\n\treturn setter.current\n}\n","import type { ReadableFamilyToken, ReadableToken } from \"atom.io\"\nimport { getFromStore, subscribeToState } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport * as React from \"react\"\n\nimport { parseStateOverloads } from \"./parse-state-overloads\"\nimport { StoreContext } from \"./store-context\"\n\nexport function useO<T, E>(token: ReadableToken<T, any, E>): E | T\n\nexport function useO<T, K extends Canonical, Key extends K, E>(\n\ttoken: ReadableFamilyToken<T, K, E>,\n\tkey: Key,\n): E | T\n\nexport function useO<T, K extends Canonical, Key extends K, E>(\n\t...params: [ReadableFamilyToken<T, K, E>, Key] | [ReadableToken<T, any, E>]\n): E | T {\n\tconst store = React.useContext(StoreContext)\n\tconst token = parseStateOverloads(store, ...params)\n\tconst id = React.useId()\n\treturn React.useSyncExternalStore<E | T>(\n\t\t(dispatch) => subscribeToState(store, token, `use-o:${id}`, dispatch),\n\t\t() => getFromStore(store, token),\n\t\t() => getFromStore(store, token),\n\t)\n}\n","import type { MutableAtomFamilyToken, MutableAtomToken } from \"atom.io\"\nimport type { AsJSON, Transceiver } from \"atom.io/internal\"\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<T extends Transceiver<any, any, any>>(\n\ttoken: MutableAtomToken<T>,\n): AsJSON<T>\n\nexport function useJSON<\n\tT extends Transceiver<any, any, any>,\n\tK extends Canonical,\n>(token: MutableAtomFamilyToken<T, K>, key: K): AsJSON<T>\n\nexport function useJSON(\n\ttoken: MutableAtomFamilyToken<any, any> | MutableAtomToken<any>,\n\tkey?: Canonical,\n): Json.Serializable {\n\tconst store = React.useContext(StoreContext)\n\tconst stateToken: MutableAtomToken<any> =\n\t\ttoken.type === `mutable_atom_family` ? findInStore(store, token, key) : 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 { findInStore, type ReadableState, withdraw } from \"atom.io/internal\"\nimport type { Canonical } from \"atom.io/json\"\nimport { StoreContext, useO } from \"atom.io/react\"\nimport React from \"react\"\n\nexport function useLoadable<T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, K extends Canonical, Key extends K, E>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: Key,\n): `LOADING` | { loading: boolean; value: E | T }\n\nexport function useLoadable<T, F extends T, E>(\n\ttoken: ReadableToken<Loadable<T>, any, E>,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable<\n\tT,\n\tK extends Canonical,\n\tF extends T,\n\tKey extends K,\n\tE,\n>(\n\ttoken: ReadableFamilyToken<Loadable<T>, K, E>,\n\tkey: Key,\n\tfallback: F,\n): { loading: boolean; value: T; error?: E }\n\nexport function useLoadable(\n\t...params:\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical, unknown]\n\t\t| readonly [ReadableFamilyToken<any, Canonical, any>, Canonical]\n\t\t| readonly [ReadableToken<any, any, any>, unknown]\n\t\t| readonly [ReadableToken<any, any, any>]\n): `LOADING` | { loading: boolean; value: unknown; error?: unknown } {\n\tconst store = React.useContext(StoreContext)\n\n\tlet value: unknown\n\tlet state: ReadableState<any, 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\tvalue = useO(token)\n\t\t\tstate = withdraw(store, 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\tvalue = useO(token, key)\n\t\t\tstate = withdraw(store, findInStore(store, token, key))\n\t\t\tfallback = params[2]\n\t}\n\n\tconst isErr = `catch` in state && state.catch.some((E) => value instanceof E)\n\n\tconst wrapperRef = React.useRef<{\n\t\tloading: boolean\n\t\tvalue: unknown\n\t\terror?: unknown\n\t}>({ loading: false, value: null as unknown })\n\tconst lastLoadedRef = React.useRef(\n\t\tfallback ?? (value instanceof Promise ? `LOADING` : value),\n\t)\n\n\tconst { current: lastLoaded } = lastLoadedRef\n\tlet { current: wrapper } = wrapperRef\n\n\tconst wasErr =\n\t\t`catch` in state && state.catch.some((E) => lastLoaded instanceof E)\n\n\tif (value instanceof Promise) {\n\t\tif (lastLoaded === `LOADING`) {\n\t\t\treturn `LOADING`\n\t\t}\n\t\tif (wasErr && fallback) {\n\t\t\twrapper = wrapperRef.current = {\n\t\t\t\tloading: true,\n\t\t\t\tvalue: fallback,\n\t\t\t\terror: lastLoaded,\n\t\t\t}\n\t\t} else {\n\t\t\twrapper = wrapperRef.current = { loading: true, value: lastLoaded }\n\t\t}\n\t} else {\n\t\tlastLoadedRef.current = value\n\t\tif (wrapper.loading === true) {\n\t\t\tif (isErr && fallback) {\n\t\t\t\twrapper = wrapperRef.current = {\n\t\t\t\t\tloading: false,\n\t\t\t\t\tvalue: fallback,\n\t\t\t\t\terror: value,\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twrapper = wrapperRef.current = { loading: false, value: value }\n\t\t\t}\n\t\t} else {\n\t\t\tif (isErr && fallback) {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = fallback\n\t\t\t\twrapper.error = value\n\t\t\t} else {\n\t\t\t\twrapper.loading = false\n\t\t\t\twrapper.value = value\n\t\t\t\tdelete wrapper.error\n\t\t\t}\n\t\t}\n\t}\n\n\treturn wrapper\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":";;;;;;;;AAIA,MAAaA,eAAyCC,QAAM,cAC3D,SAAS;AAGV,MAAaC,iBAGP,EAAE,UAAU,QAAQ,SAAS,YAClC,oBAAC,aAAa;CAAS,OAAO;CAAQ;;;;;ACQvC,SAAgB,oBACf,OACA,GAAG,MACsB;CACzB,IAAIC;AACJ,KAAI,KAAK,WAAW,GAAG;EACtB,MAAM,SAAS,KAAK;EACpB,MAAM,MAAM,KAAK;AAEjB,UAAQ,YAAY,OAAO,QAAQ;OAEnC,SAAQ,KAAK;AAEd,QAAO;;;;;AChBR,SAAgB,KACf,GAAG,QACsD;CACzD,MAAM,QAAQC,QAAM,WAAW;CAC/B,MAAM,QAAQ,oBAAoB,OAAO,GAAG;CAC5C,MAAMC,SAEFD,QAAM,OAAO;AACjB,QAAO,aAAa,SAAS;AAC5B,eAAa,OAAO,OAAO;;AAE5B,QAAO,OAAO;;;;;ACbf,SAAgB,KACf,GAAG,QACK;CACR,MAAM,QAAQE,QAAM,WAAW;CAC/B,MAAM,QAAQ,oBAAoB,OAAO,GAAG;CAC5C,MAAM,KAAKA,QAAM;AACjB,QAAOA,QAAM,sBACX,aAAa,iBAAiB,OAAO,OAAO,SAAS,MAAM,iBACtD,aAAa,OAAO,cACpB,aAAa,OAAO;;;;;ACN5B,SAAgB,QACf,OACA,KACoB;CACpB,MAAM,QAAQC,QAAM,WAAW;CAC/B,MAAMC,aACL,MAAM,SAAS,wBAAwB,YAAY,OAAO,OAAO,OAAO;CACzE,MAAM,YAAY,aAAa,OAAO;AACtC,QAAO,KAAK;;;;;ACOb,SAAgB,YACf,GAAG,QAKiE;CACpE,MAAM,QAAQ,MAAM,WAAWC;CAE/B,IAAIC;CACJ,IAAIC;CACJ,IAAIC;CAEJ,MAAM,CAAC,SAAS;CAChB,IAAIC;AACJ,SAAQ,MAAM,MAAd;EACC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACJ,WAAQC,OAAK;AACb,WAAQ,SAAS,OAAO;AACxB,cAAW,OAAO;AAClB;EACD,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACJ,SAAM,OAAO;AACb,WAAQA,OAAK,OAAO;AACpB,WAAQ,SAAS,OAAO,YAAY,OAAO,OAAO;AAClD,cAAW,OAAO;;CAGpB,MAAM,QAAQ,WAAW,SAAS,MAAM,MAAM,MAAM,MAAM,iBAAiB;CAE3E,MAAM,aAAa,MAAM,OAItB;EAAE,SAAS;EAAO,OAAO;;CAC5B,MAAM,gBAAgB,MAAM,OAC3B,aAAa,iBAAiB,UAAU,YAAY;CAGrD,MAAM,EAAE,SAAS,eAAe;CAChC,IAAI,EAAE,SAAS,YAAY;CAE3B,MAAM,SACL,WAAW,SAAS,MAAM,MAAM,MAAM,MAAM,sBAAsB;AAEnE,KAAI,iBAAiB,SAAS;AAC7B,MAAI,eAAe,UAClB,QAAO;AAER,MAAI,UAAU,SACb,WAAU,WAAW,UAAU;GAC9B,SAAS;GACT,OAAO;GACP,OAAO;;MAGR,WAAU,WAAW,UAAU;GAAE,SAAS;GAAM,OAAO;;QAElD;AACN,gBAAc,UAAU;AACxB,MAAI,QAAQ,YAAY,KACvB,KAAI,SAAS,SACZ,WAAU,WAAW,UAAU;GAC9B,SAAS;GACT,OAAO;GACP,OAAO;;MAGR,WAAU,WAAW,UAAU;GAAE,SAAS;GAAc;;WAGrD,SAAS,UAAU;AACtB,WAAQ,UAAU;AAClB,WAAQ,QAAQ;AAChB,WAAQ,QAAQ;SACV;AACN,WAAQ,UAAU;AAClB,WAAQ,QAAQ;AAChB,UAAO,QAAQ;;;AAKlB,QAAO;;;;;AChHR,SAAgB,MAAM,OAAyC;CAC9D,MAAM,QAAQC,QAAM,WAAW;CAC/B,MAAM,KAAKA,QAAM;CACjB,MAAM,WAAW,SAAS,OAAO;CACjC,MAAM,WAAWA,QAAM,OAAO;CAC9B,MAAM,oBAAoB;AACzB,SAAO;GACN,IAAI,SAAS;GACb,QAAQ,SAAS,QAAQ;GACzB,YAAY;AACX,SAAK;;GAEN,YAAY;AACX,SAAK;;;;CAIR,MAAM,OAAOA,QAAM,OAAqB;CACxC,MAAM,iBAAiB;AACtB,MACC,KAAK,QAAQ,OAAO,UAAU,MAC9B,KAAK,QAAQ,WAAW,UAAU,QAAQ,UAC1C,SAAS,YAAY,OACpB;AACD,YAAS,UAAU;AACnB,QAAK,UAAU;;AAEhB,SAAO,KAAK;;AAEb,QAAOA,QAAM,sBACX,aAAa,oBAAoB,OAAO,OAAO,UAAU,MAAM,WAChE,UACA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atom.io",
3
- "version": "0.40.5",
3
+ "version": "0.40.6",
4
4
  "description": "Composable and testable reactive data library.",
5
5
  "homepage": "https://atom.io.fyi",
6
6
  "sideEffects": false,
@@ -5,26 +5,6 @@ import type { Canonical } from "atom.io/json"
5
5
  import { StoreContext, useO } from "atom.io/react"
6
6
  import React from "react"
7
7
 
8
- export function useLoadable<T>(
9
- token: ReadableToken<Loadable<T>, any, never>,
10
- ): `LOADING` | { loading: boolean; value: T }
11
-
12
- export function useLoadable<T, K extends Canonical, Key extends K>(
13
- token: ReadableFamilyToken<Loadable<T>, K, never>,
14
- key: Key,
15
- ): `LOADING` | { loading: boolean; value: T }
16
-
17
- export function useLoadable<T, F extends T>(
18
- token: ReadableToken<Loadable<T>, any, never>,
19
- fallback: F,
20
- ): { loading: boolean; value: T }
21
-
22
- export function useLoadable<T, K extends Canonical, F extends T, Key extends K>(
23
- token: ReadableFamilyToken<Loadable<T>, K, never>,
24
- key: Key,
25
- fallback: F,
26
- ): { loading: boolean; value: T }
27
-
28
8
  export function useLoadable<T, E>(
29
9
  token: ReadableToken<Loadable<T>, any, E>,
30
10
  ): `LOADING` | { loading: boolean; value: E | T }