@absolutejs/absolute 0.19.0-beta.337 → 0.19.0-beta.338

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.
@@ -297,31 +297,45 @@ var initializeIslandStores = (state) => {
297
297
  };
298
298
  globalThis.__ABS_ISLAND_STATE__ = nextSnapshot;
299
299
  for (const [storeId, store] of getIslandStores()) {
300
- applySnapshot(store, nextSnapshot[storeId]);
300
+ for (const instance of store) {
301
+ instance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});
302
+ }
301
303
  }
302
304
  };
303
- var createIslandStore = (storeId) => (createState) => {
305
+ var createIslandStore = (storeId, createState) => {
306
+ const store = createStore(createState);
304
307
  const stores = getIslandStores();
305
- const existingStore = stores.get(storeId);
306
- if (existingStore) {
307
- return existingStore;
308
- }
309
- const store = createStore()((set, get, api) => createState((update) => {
310
- set((state) => {
311
- const nextPartial = typeof update === "function" ? update(state) : update;
312
- return {
313
- ...state,
314
- ...nextPartial
315
- };
316
- });
317
- }, get, api));
308
+ const storeInstances = stores.get(storeId) ?? new Set;
318
309
  const initialSnapshot = getIslandStoreSnapshot()[storeId];
319
310
  applySnapshot(store, initialSnapshot);
320
- getIslandStoreSnapshot()[storeId] = toSerializableState(store.getState());
311
+ let isApplyingExternalSnapshot = false;
312
+ const applyExternalSnapshot = (snapshot) => {
313
+ isApplyingExternalSnapshot = true;
314
+ applySnapshot(store, snapshot);
315
+ };
316
+ const syncSnapshot = (state) => {
317
+ const nextSnapshot = toSerializableState(state);
318
+ getIslandStoreSnapshot()[storeId] = nextSnapshot;
319
+ for (const peerStore of storeInstances) {
320
+ if (peerStore.store === store) {
321
+ continue;
322
+ }
323
+ peerStore.applyExternalSnapshot(nextSnapshot);
324
+ }
325
+ };
326
+ storeInstances.add({
327
+ applyExternalSnapshot,
328
+ store
329
+ });
330
+ stores.set(storeId, storeInstances);
331
+ syncSnapshot(store.getState());
321
332
  store.subscribe((state) => {
322
- getIslandStoreSnapshot()[storeId] = toSerializableState(state);
333
+ if (isApplyingExternalSnapshot) {
334
+ isApplyingExternalSnapshot = false;
335
+ return;
336
+ }
337
+ syncSnapshot(state);
323
338
  });
324
- stores.set(storeId, store);
325
339
  return store;
326
340
  };
327
341
  var readIslandStore = (store, selector) => selector(store.getState());
@@ -348,5 +362,5 @@ export {
348
362
  Island
349
363
  };
350
364
 
351
- //# debugId=30D7AD11969D663C64756E2164756E21
365
+ //# debugId=07B6FDA39F15B7AA64756E2164756E21
352
366
  //# sourceMappingURL=browser.js.map
@@ -10,9 +10,9 @@
10
10
  "import type { JSX } from 'react';\nimport type {\n\tIslandRegistry,\n\tIslandRegistryInput,\n\tTypedIslandRenderProps\n} from '../../types/island';\nimport { preserveIslandMarkup } from '../client/preserveIslandMarkup';\n\nexport const createTypedIsland = <T extends IslandRegistryInput>(\n\t_registry: IslandRegistry<T>\n) => {\n\tconst Island = (props: TypedIslandRenderProps<T>): JSX.Element => {\n\t\tconst { attributes, innerHTML } = preserveIslandMarkup(props);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{...attributes}\n\t\t\t\tdangerouslySetInnerHTML={{ __html: innerHTML }}\n\t\t\t\tsuppressHydrationWarning\n\t\t\t/>\n\t\t);\n\t};\n\n\treturn Island;\n};\n",
11
11
  "import { useSyncExternalStore } from 'react';\nimport type { StoreApi } from 'zustand/vanilla';\nimport {\n\tgetIslandStoreServerSnapshot,\n\treadIslandStore,\n\tsubscribeIslandStore,\n\ttype IslandStoreState\n} from '../../client/islandStore';\n\nexport const useIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) =>\n\tuseSyncExternalStore(\n\t\t(listener) =>\n\t\t\tsubscribeIslandStore(store, selector, () => {\n\t\t\t\tlistener();\n\t\t\t}),\n\t\t() => readIslandStore(store, selector),\n\t\t() => getIslandStoreServerSnapshot(store, selector)\n\t);\n",
12
12
  "const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n",
13
- "import {\n\tcreateStore,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\nexport type IslandStoreSetState<T extends IslandStoreState> = (\n\tupdate:\n\t\t| Partial<T>\n\t\t| ((state: T) => Partial<T>)\n) => void;\nexport type IslandStoreInitializer<T extends IslandStoreState> = (\n\tset: IslandStoreSetState<T>,\n\tget: () => T,\n\tstore: StoreApi<T>\n) => T;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\n\nconst ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nconst ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__: Map<string, AnyIslandStore> | undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends IslandStoreState>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends IslandStoreState>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreState | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tapplySnapshot(store, nextSnapshot[storeId]);\n\t}\n};\n\nexport const createIslandStore =\n\t(storeId: string) =>\n\t<T extends IslandStoreState>(\n\t\tcreateState: IslandStoreInitializer<T>\n\t) => {\n\t\tconst stores = getIslandStores();\n\t\tconst existingStore = stores.get(storeId);\n\t\tif (existingStore) {\n\t\t\treturn existingStore as StoreApi<T>;\n\t\t}\n\n\t\tconst store = createStore<T>()((set, get, api) =>\n\t\t\tcreateState(\n\t\t\t\t(update) => {\n\t\t\t\t\tset((state) => {\n\t\t\t\t\t\tconst nextPartial =\n\t\t\t\t\t\t\ttypeof update === 'function' ? update(state) : update;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t...nextPartial\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tget,\n\t\t\t\tapi\n\t\t\t)\n\t\t);\n\t\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\t\tapplySnapshot(store, initialSnapshot);\n\n\t\tgetIslandStoreSnapshot()[storeId] = toSerializableState(\n\t\t\tstore.getState()\n\t\t);\n\t\tstore.subscribe((state) => {\n\t\t\tgetIslandStoreSnapshot()[storeId] = toSerializableState(state);\n\t\t});\n\n\t\tstores.set(storeId, store as AnyIslandStore);\n\t\treturn store;\n\t};\n\nexport const readIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\n\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\n\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\n\nexport { ABSOLUTE_ISLAND_STATE, ABSOLUTE_ISLAND_STORES };\n"
13
+ "import {\n\tcreateStore,\n\ttype StateCreator,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreState) => void;\n\tstore: AnyIslandStore;\n};\n\nconst ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nconst ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__:\n\t\t| Map<string, Set<IslandStoreInstance>>\n\t\t| undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends IslandStoreState>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends IslandStoreState>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreState | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tfor (const instance of store) {\n\t\t\tinstance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});\n\t\t}\n\t}\n};\n\nexport const createIslandStore = <T extends IslandStoreState>(\n\tstoreId: string,\n\tcreateState: StateCreator<T, [], []>\n) => {\n\tconst store = createStore<T>(createState);\n\tconst stores = getIslandStores();\n\tconst storeInstances = stores.get(storeId) ?? new Set<IslandStoreInstance>();\n\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\tapplySnapshot(store, initialSnapshot);\n\tlet isApplyingExternalSnapshot = false;\n\n\tconst applyExternalSnapshot = (snapshot: IslandStoreState) => {\n\t\tisApplyingExternalSnapshot = true;\n\t\tapplySnapshot(store, snapshot);\n\t};\n\n\tconst syncSnapshot = (state: T) => {\n\t\tconst nextSnapshot = toSerializableState(state);\n\t\tgetIslandStoreSnapshot()[storeId] = nextSnapshot;\n\n\t\tfor (const peerStore of storeInstances) {\n\t\t\tif (peerStore.store === store) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpeerStore.applyExternalSnapshot(nextSnapshot);\n\t\t}\n\t};\n\n\tstoreInstances.add({\n\t\tapplyExternalSnapshot,\n\t\tstore\n\t});\n\tstores.set(storeId, storeInstances);\n\n\tsyncSnapshot(store.getState());\n\tstore.subscribe((state) => {\n\t\tif (isApplyingExternalSnapshot) {\n\t\t\tisApplyingExternalSnapshot = false;\n\t\t\treturn;\n\t\t}\n\n\t\tsyncSnapshot(state);\n\t});\n\n\treturn store;\n};\n\nexport const readIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\n\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\n\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\n\nexport { ABSOLUTE_ISLAND_STATE, ABSOLUTE_ISLAND_STORES };\n"
14
14
  ],
15
- "mappings": "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",
16
- "debugId": "30D7AD11969D663C64756E2164756E21",
15
+ "mappings": "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",
16
+ "debugId": "07B6FDA39F15B7AA64756E2164756E21",
17
17
  "names": []
18
18
  }
@@ -132,31 +132,45 @@ var initializeIslandStores = (state) => {
132
132
  };
133
133
  globalThis.__ABS_ISLAND_STATE__ = nextSnapshot;
134
134
  for (const [storeId, store] of getIslandStores()) {
135
- applySnapshot(store, nextSnapshot[storeId]);
135
+ for (const instance of store) {
136
+ instance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});
137
+ }
136
138
  }
137
139
  };
138
- var createIslandStore = (storeId) => (createState) => {
140
+ var createIslandStore = (storeId, createState) => {
141
+ const store = createStore(createState);
139
142
  const stores = getIslandStores();
140
- const existingStore = stores.get(storeId);
141
- if (existingStore) {
142
- return existingStore;
143
- }
144
- const store = createStore()((set, get, api) => createState((update) => {
145
- set((state) => {
146
- const nextPartial = typeof update === "function" ? update(state) : update;
147
- return {
148
- ...state,
149
- ...nextPartial
150
- };
151
- });
152
- }, get, api));
143
+ const storeInstances = stores.get(storeId) ?? new Set;
153
144
  const initialSnapshot = getIslandStoreSnapshot()[storeId];
154
145
  applySnapshot(store, initialSnapshot);
155
- getIslandStoreSnapshot()[storeId] = toSerializableState(store.getState());
146
+ let isApplyingExternalSnapshot = false;
147
+ const applyExternalSnapshot = (snapshot) => {
148
+ isApplyingExternalSnapshot = true;
149
+ applySnapshot(store, snapshot);
150
+ };
151
+ const syncSnapshot = (state) => {
152
+ const nextSnapshot = toSerializableState(state);
153
+ getIslandStoreSnapshot()[storeId] = nextSnapshot;
154
+ for (const peerStore of storeInstances) {
155
+ if (peerStore.store === store) {
156
+ continue;
157
+ }
158
+ peerStore.applyExternalSnapshot(nextSnapshot);
159
+ }
160
+ };
161
+ storeInstances.add({
162
+ applyExternalSnapshot,
163
+ store
164
+ });
165
+ stores.set(storeId, storeInstances);
166
+ syncSnapshot(store.getState());
156
167
  store.subscribe((state) => {
157
- getIslandStoreSnapshot()[storeId] = toSerializableState(state);
168
+ if (isApplyingExternalSnapshot) {
169
+ isApplyingExternalSnapshot = false;
170
+ return;
171
+ }
172
+ syncSnapshot(state);
158
173
  });
159
- stores.set(storeId, store);
160
174
  return store;
161
175
  };
162
176
  var readIslandStore = (store, selector) => selector(store.getState());
@@ -261,5 +275,5 @@ export {
261
275
  UserAgentProvider
262
276
  };
263
277
 
264
- //# debugId=0F5CC2CBCCB1D8CB64756E2164756E21
278
+ //# debugId=F36F293E87BD930264756E2164756E21
265
279
  //# sourceMappingURL=index.js.map
@@ -4,10 +4,10 @@
4
4
  "sourcesContent": [
5
5
  "import { useSyncExternalStore } from 'react';\nimport type { StoreApi } from 'zustand/vanilla';\nimport {\n\tgetIslandStoreServerSnapshot,\n\treadIslandStore,\n\tsubscribeIslandStore,\n\ttype IslandStoreState\n} from '../../client/islandStore';\n\nexport const useIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) =>\n\tuseSyncExternalStore(\n\t\t(listener) =>\n\t\t\tsubscribeIslandStore(store, selector, () => {\n\t\t\t\tlistener();\n\t\t\t}),\n\t\t() => readIslandStore(store, selector),\n\t\t() => getIslandStoreServerSnapshot(store, selector)\n\t);\n",
6
6
  "const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const api = { setState, getState, getInitialState, subscribe };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = ((createState) => createState ? createStoreImpl(createState) : createStoreImpl);\n\nexport { createStore };\n",
7
- "import {\n\tcreateStore,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\nexport type IslandStoreSetState<T extends IslandStoreState> = (\n\tupdate:\n\t\t| Partial<T>\n\t\t| ((state: T) => Partial<T>)\n) => void;\nexport type IslandStoreInitializer<T extends IslandStoreState> = (\n\tset: IslandStoreSetState<T>,\n\tget: () => T,\n\tstore: StoreApi<T>\n) => T;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\n\nconst ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nconst ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__: Map<string, AnyIslandStore> | undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends IslandStoreState>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends IslandStoreState>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreState | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tapplySnapshot(store, nextSnapshot[storeId]);\n\t}\n};\n\nexport const createIslandStore =\n\t(storeId: string) =>\n\t<T extends IslandStoreState>(\n\t\tcreateState: IslandStoreInitializer<T>\n\t) => {\n\t\tconst stores = getIslandStores();\n\t\tconst existingStore = stores.get(storeId);\n\t\tif (existingStore) {\n\t\t\treturn existingStore as StoreApi<T>;\n\t\t}\n\n\t\tconst store = createStore<T>()((set, get, api) =>\n\t\t\tcreateState(\n\t\t\t\t(update) => {\n\t\t\t\t\tset((state) => {\n\t\t\t\t\t\tconst nextPartial =\n\t\t\t\t\t\t\ttypeof update === 'function' ? update(state) : update;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t...nextPartial\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tget,\n\t\t\t\tapi\n\t\t\t)\n\t\t);\n\t\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\t\tapplySnapshot(store, initialSnapshot);\n\n\t\tgetIslandStoreSnapshot()[storeId] = toSerializableState(\n\t\t\tstore.getState()\n\t\t);\n\t\tstore.subscribe((state) => {\n\t\t\tgetIslandStoreSnapshot()[storeId] = toSerializableState(state);\n\t\t});\n\n\t\tstores.set(storeId, store as AnyIslandStore);\n\t\treturn store;\n\t};\n\nexport const readIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\n\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\n\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\n\nexport { ABSOLUTE_ISLAND_STATE, ABSOLUTE_ISLAND_STORES };\n",
7
+ "import {\n\tcreateStore,\n\ttype StateCreator,\n\ttype StoreApi\n} from 'zustand/vanilla';\n\nexport type IslandStoreState = Record<string, unknown>;\nexport type IslandStateSnapshot = Record<string, IslandStoreState>;\ntype AnyIslandStore = StoreApi<IslandStoreState>;\ntype IslandStoreInstance = {\n\tapplyExternalSnapshot: (snapshot: IslandStoreState) => void;\n\tstore: AnyIslandStore;\n};\n\nconst ABSOLUTE_ISLAND_STATE = '__ABS_ISLAND_STATE__';\nconst ABSOLUTE_ISLAND_STORES = '__ABS_ISLAND_STORES__';\n\ndeclare global {\n\tvar __ABS_ISLAND_STATE__: IslandStateSnapshot | undefined;\n\tvar __ABS_ISLAND_STORES__:\n\t\t| Map<string, Set<IslandStoreInstance>>\n\t\t| undefined;\n}\n\nconst getIslandStoreSnapshot = () => {\n\tglobalThis.__ABS_ISLAND_STATE__ ??= {};\n\treturn globalThis.__ABS_ISLAND_STATE__;\n};\n\nconst getIslandStores = () => {\n\tglobalThis.__ABS_ISLAND_STORES__ ??= new Map();\n\treturn globalThis.__ABS_ISLAND_STORES__;\n};\n\nconst isSerializableValue = (value: unknown) =>\n\ttypeof value !== 'function' && value !== undefined;\n\nconst toSerializableState = <T extends IslandStoreState>(state: T) =>\n\tObject.fromEntries(\n\t\tObject.entries(state).filter(([, value]) => isSerializableValue(value))\n\t);\n\nconst applySnapshot = <T extends IslandStoreState>(\n\tstore: StoreApi<T>,\n\tsnapshot: IslandStoreState | undefined\n) => {\n\tif (!snapshot) {\n\t\treturn;\n\t}\n\n\tstore.setState({\n\t\t...store.getState(),\n\t\t...snapshot\n\t});\n};\n\nexport const initializeIslandStores = (state: IslandStateSnapshot) => {\n\tconst currentSnapshot = getIslandStoreSnapshot();\n\tconst nextSnapshot = {\n\t\t...state,\n\t\t...currentSnapshot\n\t};\n\n\tglobalThis.__ABS_ISLAND_STATE__ = nextSnapshot;\n\n\tfor (const [storeId, store] of getIslandStores()) {\n\t\tfor (const instance of store) {\n\t\t\tinstance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});\n\t\t}\n\t}\n};\n\nexport const createIslandStore = <T extends IslandStoreState>(\n\tstoreId: string,\n\tcreateState: StateCreator<T, [], []>\n) => {\n\tconst store = createStore<T>(createState);\n\tconst stores = getIslandStores();\n\tconst storeInstances = stores.get(storeId) ?? new Set<IslandStoreInstance>();\n\tconst initialSnapshot = getIslandStoreSnapshot()[storeId];\n\tapplySnapshot(store, initialSnapshot);\n\tlet isApplyingExternalSnapshot = false;\n\n\tconst applyExternalSnapshot = (snapshot: IslandStoreState) => {\n\t\tisApplyingExternalSnapshot = true;\n\t\tapplySnapshot(store, snapshot);\n\t};\n\n\tconst syncSnapshot = (state: T) => {\n\t\tconst nextSnapshot = toSerializableState(state);\n\t\tgetIslandStoreSnapshot()[storeId] = nextSnapshot;\n\n\t\tfor (const peerStore of storeInstances) {\n\t\t\tif (peerStore.store === store) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpeerStore.applyExternalSnapshot(nextSnapshot);\n\t\t}\n\t};\n\n\tstoreInstances.add({\n\t\tapplyExternalSnapshot,\n\t\tstore\n\t});\n\tstores.set(storeId, storeInstances);\n\n\tsyncSnapshot(store.getState());\n\tstore.subscribe((state) => {\n\t\tif (isApplyingExternalSnapshot) {\n\t\t\tisApplyingExternalSnapshot = false;\n\t\t\treturn;\n\t\t}\n\n\t\tsyncSnapshot(state);\n\t});\n\n\treturn store;\n};\n\nexport const readIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getState());\n\nexport const subscribeIslandStore = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected,\n\tlistener: (value: TSelected) => void\n) => {\n\tlet currentSelection = selector(store.getState());\n\n\treturn store.subscribe((state) => {\n\t\tconst nextSelection = selector(state);\n\t\tif (Object.is(nextSelection, currentSelection)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcurrentSelection = nextSelection;\n\t\tlistener(nextSelection);\n\t});\n};\n\nexport const getIslandStoreServerSnapshot = <\n\tTState extends IslandStoreState,\n\tTSelected\n>(\n\tstore: StoreApi<TState>,\n\tselector: (state: TState) => TSelected\n) => selector(store.getInitialState());\n\nexport const resetIslandStoreForTesting = () => {\n\tdelete globalThis.__ABS_ISLAND_STATE__;\n\tdelete globalThis.__ABS_ISLAND_STORES__;\n};\n\nexport { ABSOLUTE_ISLAND_STATE, ABSOLUTE_ISLAND_STORES };\n",
8
8
  "import { createContext, useContext, useSyncExternalStore } from 'react';\nimport { Breakpoint, Breakpoints } from '../../../types/mediaQuery';\nimport { UserAgentType } from '../../../types/userAgentTypes';\n\nconst UserAgentContext = createContext<UserAgentType | null>(null);\n\nexport const UserAgentProvider = UserAgentContext.Provider;\n\nconst useUserAgentType = () => {\n\tconst context = useContext(UserAgentContext);\n\tif (context === null) {\n\t\tthrow new Error(\n\t\t\t'useMediaQuery must be used within a UserAgentProvider'\n\t\t);\n\t}\n\n\treturn context;\n};\n\nconst defaultBreakpoints: Breakpoints = {\n\t'2xl': 1536,\n\tlg: 1024,\n\tmd: 768,\n\tsm: 640,\n\txl: 1280,\n\txs: 0\n};\n\nconst userAgentInitialWidth: Record<UserAgentType, number> = {\n\tbot: 1024,\n\tcar: 768,\n\tconsole: 1024,\n\tdesktop: 1024,\n\tiot: 640,\n\tother: 768,\n\tphone: 375,\n\ttablet: 768,\n\ttv: 1280\n};\n\nconst subscribers = new Set<() => void>();\nlet width = typeof window !== 'undefined' ? window.innerWidth : 0;\nlet isListening = false;\n\nconst ensureListener = () => {\n\tif (isListening || typeof window === 'undefined') return;\n\tisListening = true;\n\n\tlet isTicking = false;\n\tconst onResize = () => {\n\t\tif (isTicking) return;\n\t\tisTicking = true;\n\t\trequestAnimationFrame(() => {\n\t\t\tisTicking = false;\n\t\t\twidth = window.innerWidth;\n\t\t\tsubscribers.forEach((notify) => notify());\n\t\t});\n\t};\n\n\twindow.addEventListener('resize', onResize, { passive: true });\n};\n\nconst subscribe = (callback: () => void) => {\n\tensureListener();\n\tsubscribers.add(callback);\n\n\treturn () => subscribers.delete(callback);\n};\n\nconst getViewportWidth = () => width;\n\nconst computeBreakpoint = (widthValue: number, breakpoints: Breakpoints) => {\n\tif (widthValue < breakpoints.sm) return 'xs';\n\tif (widthValue < breakpoints.md) return 'sm';\n\tif (widthValue < breakpoints.lg) return 'md';\n\tif (widthValue < breakpoints.xl) return 'lg';\n\tif (widthValue < breakpoints['2xl']) return 'xl';\n\n\treturn '2xl';\n};\n\nexport const useMediaQuery = (\n\tcustomBreakpoints: Breakpoints = defaultBreakpoints\n) => {\n\tconst userAgentType = useUserAgentType();\n\tconst getServerWidth = () => userAgentInitialWidth[userAgentType];\n\n\tconst currentWidth = useSyncExternalStore(\n\t\tsubscribe,\n\t\tgetViewportWidth,\n\t\tgetServerWidth\n\t);\n\n\tconst breakpoint = computeBreakpoint(currentWidth, customBreakpoints);\n\n\tconst isSizeOrGreater = (target: Breakpoint) =>\n\t\tcustomBreakpoints[breakpoint] >= customBreakpoints[target];\n\n\tconst isSizeOrLess = (target: Breakpoint) =>\n\t\tcustomBreakpoints[breakpoint] <= customBreakpoints[target];\n\n\treturn { breakpoint, isSizeOrGreater, isSizeOrLess };\n};\n"
9
9
  ],
10
- "mappings": "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",
11
- "debugId": "0F5CC2CBCCB1D8CB64756E2164756E21",
10
+ "mappings": "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",
11
+ "debugId": "F36F293E87BD930264756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -30644,31 +30644,45 @@ var initializeIslandStores = (state) => {
30644
30644
  };
30645
30645
  globalThis.__ABS_ISLAND_STATE__ = nextSnapshot;
30646
30646
  for (const [storeId, store] of getIslandStores()) {
30647
- applySnapshot(store, nextSnapshot[storeId]);
30647
+ for (const instance of store) {
30648
+ instance.applyExternalSnapshot(nextSnapshot[storeId] ?? {});
30649
+ }
30648
30650
  }
30649
30651
  };
30650
- var createIslandStore = (storeId) => (createState) => {
30652
+ var createIslandStore = (storeId, createState) => {
30653
+ const store = createStore(createState);
30651
30654
  const stores = getIslandStores();
30652
- const existingStore = stores.get(storeId);
30653
- if (existingStore) {
30654
- return existingStore;
30655
- }
30656
- const store = createStore()((set, get, api) => createState((update) => {
30657
- set((state) => {
30658
- const nextPartial = typeof update === "function" ? update(state) : update;
30659
- return {
30660
- ...state,
30661
- ...nextPartial
30662
- };
30663
- });
30664
- }, get, api));
30655
+ const storeInstances = stores.get(storeId) ?? new Set;
30665
30656
  const initialSnapshot = getIslandStoreSnapshot()[storeId];
30666
30657
  applySnapshot(store, initialSnapshot);
30667
- getIslandStoreSnapshot()[storeId] = toSerializableState(store.getState());
30658
+ let isApplyingExternalSnapshot = false;
30659
+ const applyExternalSnapshot = (snapshot) => {
30660
+ isApplyingExternalSnapshot = true;
30661
+ applySnapshot(store, snapshot);
30662
+ };
30663
+ const syncSnapshot = (state) => {
30664
+ const nextSnapshot = toSerializableState(state);
30665
+ getIslandStoreSnapshot()[storeId] = nextSnapshot;
30666
+ for (const peerStore of storeInstances) {
30667
+ if (peerStore.store === store) {
30668
+ continue;
30669
+ }
30670
+ peerStore.applyExternalSnapshot(nextSnapshot);
30671
+ }
30672
+ };
30673
+ storeInstances.add({
30674
+ applyExternalSnapshot,
30675
+ store
30676
+ });
30677
+ stores.set(storeId, storeInstances);
30678
+ syncSnapshot(store.getState());
30668
30679
  store.subscribe((state) => {
30669
- getIslandStoreSnapshot()[storeId] = toSerializableState(state);
30680
+ if (isApplyingExternalSnapshot) {
30681
+ isApplyingExternalSnapshot = false;
30682
+ return;
30683
+ }
30684
+ syncSnapshot(state);
30670
30685
  });
30671
- stores.set(storeId, store);
30672
30686
  return store;
30673
30687
  };
30674
30688
  var readIslandStore = (store, selector) => selector(store.getState());
@@ -30696,5 +30710,5 @@ export {
30696
30710
  Island
30697
30711
  };
30698
30712
 
30699
- //# debugId=196D0B77F527901164756E2164756E21
30713
+ //# debugId=172D9C02CDB392D564756E2164756E21
30700
30714
  //# sourceMappingURL=index.js.map