@tamagui/web 3.0.0-beta.1577.1 → 3.0.0-beta.1604.1

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.
@@ -209,41 +209,34 @@ function useMedia(componentContext, debug, uid) {
209
209
  };
210
210
  r.proxy = tracker;
211
211
  }
212
- r.getSnapshot = () => {
213
- if (r.optimizeForFirstRender) {
214
- const ms2 = getMedia();
215
- if (ms2 === r.lastState) {
216
- return r.lastState;
217
- }
218
- if (r.componentContext?.mediaEmit) {
219
- r.componentContext.mediaEmit(ms2);
220
- r.pendingState = ms2;
221
- return r.lastState;
222
- }
223
- r.lastState = ms2;
224
- return ms2;
225
- }
212
+ r.getSnapshot = (inRender) => {
213
+ const { lastState } = r;
226
214
  const curKeys = mediaListenKeys(r);
227
- const { lastState, pendingState } = r;
228
- if (!curKeys.size) {
229
- return lastState;
230
- }
231
215
  const ms = getMedia();
232
- for (const key of curKeys) {
233
- if (ms[key] !== (pendingState || lastState)[key]) {
234
- if (process.env.NODE_ENV === "development" && r.debug) {
235
- console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
216
+ if (curKeys) {
217
+ let changed = false;
218
+ for (const key of curKeys) {
219
+ if (ms[key] !== (r.pendingState || lastState)[key]) {
220
+ if (process.env.NODE_ENV === "development" && r.debug) {
221
+ console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
222
+ }
223
+ changed = true;
224
+ break;
236
225
  }
237
- if (r.componentContext?.mediaEmit) {
238
- r.componentContext.mediaEmit(ms);
239
- r.pendingState = ms;
240
- return lastState;
241
- }
242
- r.lastState = ms;
243
- return ms;
244
226
  }
227
+ if (!changed) return lastState;
228
+ } else if (ms === lastState) {
229
+ return lastState;
230
+ }
231
+ const mediaEmit = r.componentContext?.mediaEmit;
232
+ if (mediaEmit) {
233
+ if (inRender) queueMicrotask(() => mediaEmit(ms));
234
+ else mediaEmit(ms);
235
+ r.pendingState = ms;
236
+ return lastState;
245
237
  }
246
- return lastState;
238
+ r.lastState = ms;
239
+ return ms;
247
240
  };
248
241
  internalRef.current = r;
249
242
  } else {
@@ -261,7 +254,7 @@ function useMedia(componentContext, debug, uid) {
261
254
  ref.keys.clear();
262
255
  }
263
256
  const [, forceUpdate] = useReducer(incReducer, 0);
264
- const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();
257
+ const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);
265
258
  ref.proxyTarget = state;
266
259
  if (!ref.optimizeForFirstRender) {
267
260
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n ) : \"\\u274C Error 013\"\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = () => {\n if (r.optimizeForFirstRender) {\n const ms2 = getMedia();\n if (ms2 === r.lastState) {\n return r.lastState;\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms2);\n r.pendingState = ms2;\n return r.lastState;\n }\n r.lastState = ms2;\n return ms2;\n }\n const curKeys = mediaListenKeys(r);\n const { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n const ms = getMedia();\n for (const key of curKeys) {\n if (ms[key] !== (pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n if (r.componentContext?.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":";;;;;;;;;;AAeA,IAAI;AACJ,MAAM,0BAA0B,IAAI,IAAI;AACxC,IAAI,eAAe;AACnB,MAAM,kBAAkB,WAAW;CACjC,MAAM,EAAE,UAAU;CAClB,MAAM,0BAA0B,WAAW,yBAAyB;CACpE,IAAI,CAAC,OAAO;CACZ;CACA,uBAAuB;CACvB,iBAAiB;CACjB,KAAK,MAAM,OAAO,OAAO;EACvB,SAAS,CAAC,CAAC,OAAO,0BAA0B,QAAQ;EACpD,UAAU,IAAI,GAAG;CACnB;CACA,OAAO,OAAO,kBAAkB,KAAK;CACrC,YAAY,EAAE,GAAG,SAAS,EAAE;CAC5B,oBAAoB;AACtB;AACA,SAAS,WAAW;CAClB,QAAQ,SAAS,OAAO,GAAG,CAAC;CAC5B,QAAQ,MAAM;AAChB;AACA,IAAI,eAAe,CAAC;AACpB,SAAS,sBAAsB;CAC7B,IAAI,SAAS,UAAU;CACvB,IAAI,QAAQ,IAAI,WAAW;CAC3B,IAAI,iBAAiB,cAAc;CACnC,eAAe;CACf,SAAS;CACT,KAAK,MAAM,OAAO,kBAAkB;EAClC,IAAI,SAAS,WAAW;GACtB,MAAM,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;GAC1B,IAAI,SAAS,SAAS,CAAC,CAAC,MAAM;GAC9B,cAAc;IAAE,GAAG,SAAS;KAAI,MAAM;GAAK,CAAC;GAC5C,qBAAqB;EACvB;EACA,MAAM,MAAM,oBAAoB,iBAAiB,IAAI;EACrD,MAAM,iBAAiB,WAAW,GAAG;EACrC,MAAM,QAAQ,SAAS;EACvB,IAAI,CAAC,OAAO;GACV,MAAM,IAAI,MACR,QAAQ,IAAI,aAAa,eAAe,iBACtC,uBACA,YACA,yCACA,qEACA,sBACA;IAAE;IAAK,OAAO;IAAK,UAAU,QAAQ,QAAQ;GAAS,CACxD,IAAI,aACN;EACF;EACA,MAAM,YAAY,MAAM;EACxB,QAAQ,UAAU;GAChB,MAAM,eAAe,MAAM;EAC7B,CAAC;EACD,OAAO;CACT;AACF;AACA,MAAM,iCAAiC,IAAI,IAAI;AAC/C,MAAM,kCAAkC,IAAI,IAAI;AAChD,IAAI,iBAAiB;AACrB,MAAM,sBAAsB;CAC1B,WAAW;CACX,UAAU;AACZ;AACA,SAAS,uBAAuB;CAC9B,oBAAoB;CACpB,MAAM,QAAQ,SAAS;CACvB,MAAM,OAAO;CACb,iBAAiB;CACjB,IAAI,eAAe,MAAM;EACvB,MAAM,wBAAwB,IAAI,IAAI;EACtC,KAAK,MAAM,OAAO,WAAW;GAC3B,IAAI,SAAS,QAAQ,MAAM,SAAS,KAAK,MAAM;GAC/C,MAAM,SAAS,eAAe,IAAI,GAAG;GACrC,IAAI,QAAQ;IACV,KAAK,MAAM,MAAM,QAAQ,MAAM,IAAI,EAAE;GACvC;EACF;EACA,KAAK,MAAM,MAAM,OAAO;GACtB,oBAAoB;GACpB,GAAG,KAAK;EACV;CACF;CACA,gBAAgB,SAAS,OAAO;EAC9B,oBAAoB;EACpB,GAAG,KAAK;CACV,CAAC;AACH;AACA,MAAM,yBAAyB,IAAI,QAAQ;AAC3C,IAAI,oBAAoB;AACxB,MAAM,UAA0B,uBAAO,cAAc;AACrD,SAAS,yBAAyB;CAChC,MAAM,QAAQ,CAAC;CACf,KAAK,MAAM,OAAO,WAAW;EAC3B,MAAM,OAAO;GACX,YAAY;GACZ,cAAc;GACd,MAAM;IACJ,MAAM,OAAO,KAAK;IAClB,IAAI,CAAC,mBAAmB;KACtB,KAAK,KAAK,IAAI,GAAG;IACnB;IACA,OAAO,KAAK,YAAY;GAC1B;EACF;CACF;CACA,OAAO,OAAO,OAAO,MAAM,KAAK;AAClC;AACA,SAAS,uBAAuB;CAC9B,IAAI,CAAC,mBAAmB,oBAAoB,uBAAuB;CACnE,OAAO;AACT;AACA,SAAS,yBAAyB;CAChC,oBAAoB;AACtB;AACA,SAAS,qBAAqB,KAAK,SAAS,MAAM,yBAAyB,OAAO;CAChF,IAAI,wBAAwB;CAC5B,MAAM,MAAM,OAAO,IAAI,GAAG;CAC1B,IAAI,CAAC,OAAO,IAAI,YAAY,WAAW,MAAM;EAC3C,OAAO,IAAI,KAAK;GACd,GAAG;GACH;GACA;EACF,CAAC;CACH;AACF;AACA,SAAS,gBAAgB,KAAK;CAC5B,IAAI,IAAI,wBAAwB,OAAO;CACvC,QAAQ,IAAI,MAAM,OAAO,IAAI,IAAI,GAAG,CAAC,EAAE,OAAO,KAAK,MAAM,IAAI;AAC/D;AACA,SAAS,mBAAmB,KAAK;CAC/B,MAAM,OAAO,gBAAgB,GAAG;CAChC,MAAM,MAAM,IAAI;CAChB,IAAI,QAAQ,KAAK,KAAK,cAAc,KAAK,IAAI,GAAG;CAChD,qBAAqB,GAAG;CACxB,MAAM,KAAK,IAAI;CACf,IAAI,SAAS,MAAM;EACjB,gBAAgB,IAAI,EAAE;EACtB,IAAI,cAAc;EAClB;CACF;CACA,IAAI,cAAc,IAAI,IAAI,IAAI;CAC9B,KAAK,MAAM,OAAO,MAAM;EACtB,IAAI,SAAS,eAAe,IAAI,GAAG;EACnC,IAAI,CAAC,QAAQ;GACX,yBAAyB,IAAI,IAAI;GACjC,eAAe,IAAI,KAAK,MAAM;EAChC;EACA,OAAO,IAAI,EAAE;CACf;AACF;AACA,SAAS,qBAAqB,KAAK;CACjC,MAAM,OAAO,IAAI;CACjB,IAAI,SAAS,KAAK,GAAG;CACrB,IAAI,cAAc,KAAK;CACvB,MAAM,KAAK,IAAI;CACf,IAAI,SAAS,MAAM;EACjB,gBAAgB,OAAO,EAAE;EACzB;CACF;CACA,KAAK,MAAM,OAAO,MAAM;EACtB,MAAM,SAAS,eAAe,IAAI,GAAG;EACrC,IAAI,CAAC,QAAQ;EACb,OAAO,OAAO,EAAE;EAChB,IAAI,CAAC,OAAO,MAAM,eAAe,OAAO,GAAG;CAC7C;AACF;AACA,SAAS,cAAc,GAAG,GAAG;CAC3B,IAAI,MAAM,QAAQ,MAAM,MAAM,OAAO,MAAM;CAC3C,IAAI,EAAE,SAAS,EAAE,MAAM,OAAO;CAC9B,KAAK,MAAM,OAAO,GAAG;EACnB,IAAI,CAAC,EAAE,IAAI,GAAG,GAAG,OAAO;CAC1B;CACA,OAAO;AACT;AACA,SAAS,SAAS,kBAAkB,OAAO,KAAK;CAC9C;CACA,MAAM,cAAc,OAAO,IAAI;CAC/B,IAAI,CAAC,YAAY,SAAS;EACxB,MAAM,UAAU,SAAS,CAAC,YAAY,CAAC,WAAW,YAAY,IAAI,YAAY,SAAS;EACvF,MAAM,yBAAyB,0BAA0B;EACzD,MAAM,IAAI;GACR,MAAM,yBAAyB,uBAAuB,IAAI,IAAI;GAC9D,WAAW;GACX,eAAe;GACf,aAAa;GACb,OAAO,KAAK;GACZ,aAAa,KAAK;GAClB;GACA;GACA;GACA;EACF;EACA,IAAI,wBAAwB;GAC1B,EAAE,QAAQ;EACZ,OAAO;GACL,MAAM,UAAU,OAAO,OAAO,qBAAqB,CAAC;GACpD,QAAQ,WAAW;IACjB,aAAa;IACb,MAAM,EAAE;GACV;GACA,EAAE,QAAQ;EACZ;EACA,EAAE,oBAAoB;GACpB,IAAI,EAAE,wBAAwB;IAC5B,MAAM,MAAM,SAAS;IACrB,IAAI,QAAQ,EAAE,WAAW;KACvB,OAAO,EAAE;IACX;IACA,IAAI,EAAE,kBAAkB,WAAW;KACjC,EAAE,iBAAiB,UAAU,GAAG;KAChC,EAAE,eAAe;KACjB,OAAO,EAAE;IACX;IACA,EAAE,YAAY;IACd,OAAO;GACT;GACA,MAAM,UAAU,gBAAgB,CAAC;GACjC,MAAM,EAAE,WAAW,iBAAiB;GACpC,IAAI,CAAC,QAAQ,MAAM;IACjB,OAAO;GACT;GACA,MAAM,KAAK,SAAS;GACpB,KAAK,MAAM,OAAO,SAAS;IACzB,IAAI,GAAG,UAAU,gBAAgB,UAAS,CAAE,MAAM;KAChD,IAAI,QAAQ,IAAI,aAAa,iBAAiB,EAAE,OAAO;MACrD,QAAQ,KAAK,2BAA2B,KAAK,UAAU,MAAM,MAAM,GAAG,IAAI;KAC5E;KACA,IAAI,EAAE,kBAAkB,WAAW;MACjC,EAAE,iBAAiB,UAAU,EAAE;MAC/B,EAAE,eAAe;MACjB,OAAO;KACT;KACA,EAAE,YAAY;KACd,OAAO;IACT;GACF;GACA,OAAO;EACT;EACA,YAAY,UAAU;CACxB,OAAO;EACL,YAAY,QAAQ,mBAAmB;EACvC,YAAY,QAAQ,MAAM;EAC1B,YAAY,QAAQ,QAAQ;CAC9B;CACA,MAAM,MAAM,YAAY;CACxB,IAAI;CACJ,IAAI,IAAI,cAAc;EACpB,IAAI,YAAY,IAAI;EACpB,IAAI,eAAe,KAAK;CAC1B;CACA,IAAI,IAAI,MAAM,MAAM;EAClB,IAAI,KAAK,MAAM;CACjB;CACA,MAAM,GAAG,eAAe,WAAW,YAAY,CAAC;CAChD,MAAM,QAAQ,WAAW,YAAY,IAAI,0BAA0B,IAAI,kBAAkB,IAAI,IAAI,YAAY,IAAI,YAAY;CAC7H,IAAI,cAAc;CAClB,IAAI,CAAC,IAAI,wBAAwB;EAC/B;EACA,IAAI,MAAM,QAAQ,CAAC,cAAc;CACnC;CACA,gCAAgC;EAC9B,MAAM,SAAS,IAAI,YAAY;EAC/B,IAAI,WAAW,IAAI,aAAa;GAC9B,IAAI,cAAc;GAClB,IAAI,CAAC,IAAI,wBAAwB;IAC/B;IACA,IAAI,MAAM,QAAQ,CAAC,cAAc;GACnC;GACA,YAAY;EACd;CACF,GAAG,CAAC,CAAC;CACL,gBAAgB;EACd,MAAM,gBAAgB,IAAI;EAC1B,MAAM,kBAAkB,IAAI,0BAA0B,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,EAAE;EACzF,IAAI,iBAAiB;GACnB,IAAI,mBAAmB;IACrB,MAAM,OAAO,IAAI,YAAY;IAC7B,IAAI,SAAS,IAAI,aAAa;KAC5B,IAAI,cAAc;KAClB,IAAI,CAAC,IAAI,wBAAwB;MAC/B;MACA,IAAI,MAAM,QAAQ,CAAC,cAAc;KACnC;KACA,IAAI,IAAI,KAAK,oBAAoB,WAAW,GAAG;KAC/C,YAAY;IACd;GACF;GACA,mBAAmB,GAAG;EACxB,OAAO;GACL,qBAAqB,GAAG;EAC1B;EACA,aAAa;GACX,IAAI,IAAI,kBAAkB,eAAe;IACvC,qBAAqB,GAAG;GAC1B;EACF;CACF,CAAC;CACD,OAAO,IAAI,yBAAyB,QAAQ,IAAI;AAClD;AACA,MAAM,cAAc,MAAM,IAAI;AAC9B,IAAI,oBAAoB;AACxB,SAAS,mBAAmB,KAAK;CAC/B,oBAAoB;AACtB;AACA,SAAS,cAAc,aAAa,QAAQ;CAC1C,oBAAoB;CACpB,IAAI;CACJ,IAAI;EACF,MAAM,OAAO,YACX,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,aAAa;GACjC,OAAO,CAAC,UAAU,cAAc,UAAU,MAAM,CAAC;EACnD,CAAC,CACH;CACF,UAAU;EACR,oBAAoB;CACtB;CACA,OAAO;AACT;AACA,MAAM,wBAAwB,CAAC;AAC/B,SAAS,gBAAgB,KAAK;CAC5B,OAAO,sBAAsB,SAAS,sBAAsB,OAAO,oBAAoB,iBAAiB,IAAI;AAC9G"}
1
+ {"version":3,"file":"useMedia.js","names":[],"sources":["esm/hooks/useMedia.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport {\n getMedia,\n mediaKeyMatch,\n mediaKeys,\n mediaQueryConfig,\n setMediaState\n} from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nlet initState;\nconst dispose = /* @__PURE__ */ new Set();\nlet mediaVersion = 0;\nconst configureMedia = (config) => {\n const { media } = config;\n const mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (const key in media) {\n getMedia()[key] = mediaQueryDefaultActive?.[key] || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = { ...getMedia() };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach((cb) => cb());\n dispose.clear();\n}\nlet setupVersion = -1;\nfunction setupMediaListeners() {\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (const key in mediaQueryConfig) {\n let update = function() {\n const next = !!getMatch().matches;\n if (next === getMedia()[key]) return;\n setMediaState({ ...getMedia(), [key]: next });\n updateMediaListeners();\n };\n const str = mediaObjectToString(mediaQueryConfig[key]);\n const getMatch = () => matchMedia(str);\n const match = getMatch();\n if (!match) {\n throw new Error(\n process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\n \"TAMAGUI_MEDIA_MATCH\",\n \"useMedia\",\n \"matchMedia returned no MediaQueryList\",\n \"Provide a matchMedia implementation that returns a MediaQueryList\",\n \"key,query,platform\",\n { key, query: str, platform: isWeb ? \"web\" : \"native\" }\n ) : \"\\u274C Error 013\"\n );\n }\n match.addListener(update);\n dispose.add(() => {\n match.removeListener(update);\n });\n update();\n }\n}\nconst listenersByKey = /* @__PURE__ */ new Map();\nconst globalListeners = /* @__PURE__ */ new Set();\nlet publishedState = null;\nconst _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n const media = getMedia();\n const prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n const woken = /* @__PURE__ */ new Set();\n for (const key of mediaKeys) {\n if (prev !== null && media[key] === prev[key]) continue;\n const bucket = listenersByKey.get(key);\n if (bucket) {\n for (const cb of bucket) woken.add(cb);\n }\n }\n for (const cb of woken) {\n _mediaListenerStats.notified++;\n cb(media);\n }\n }\n globalListeners.forEach((cb) => {\n _mediaListenerStats.notified++;\n cb(media);\n });\n}\nconst States = /* @__PURE__ */ new WeakMap();\nlet touchTrackerProto = null;\nconst refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n const proto = {};\n for (const key of mediaKeys) {\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n const slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys, optimizeForFirstRender = false) {\n if (optimizeForFirstRender) return;\n const cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? States.get(ref.uid)?.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n const keys = mediaListenKeys(ref);\n const cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n for (const key of keys) {\n let bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n}\nfunction unindexMediaListener(ref) {\n const keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n const cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n for (const key of keys) {\n const bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n for (const key of b) {\n if (!a.has(key)) return false;\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n const internalRef = useRef(null);\n if (!internalRef.current) {\n const initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n const optimizeForFirstRender = isOptimizedForFirstRender();\n const r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n const tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = (inRender) => {\n const { lastState } = r;\n const curKeys = mediaListenKeys(r);\n const ms = getMedia();\n if (curKeys) {\n let changed = false;\n for (const key of curKeys) {\n if (ms[key] !== (r.pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n changed = true;\n break;\n }\n }\n if (!changed) return lastState;\n } else if (ms === lastState) {\n return lastState;\n }\n const mediaEmit = r.componentContext?.mediaEmit;\n if (mediaEmit) {\n if (inRender) queueMicrotask(() => mediaEmit(ms));\n else mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n const ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if (ref.keys?.size) {\n ref.keys.clear();\n }\n const [, forceUpdate] = useReducer(incReducer, 0);\n const state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(() => {\n const synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(() => {\n const renderVersion = ref.renderVersion;\n const shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!States.get(ref.uid)?.enabled;\n if (shouldSubscribe) {\n ref.onChange ||= () => {\n const next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if (ref.uid?.nativeMediaUpdate?.(forceUpdate)) return;\n forceUpdate();\n }\n };\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return () => {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nconst incReducer = (c) => c + 1;\nlet disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n let res;\n try {\n res = Object.fromEntries(\n [...mediaGroups].map((mediaKey) => {\n return [mediaKey, mediaKeyMatch(mediaKey, layout)];\n })\n );\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nconst cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
@@ -339,60 +339,54 @@ function useMedia(componentContext, debug, uid) {
339
339
  };
340
340
  r.proxy = tracker;
341
341
  }
342
- r.getSnapshot = function() {
343
- if (r.optimizeForFirstRender) {
344
- var _r_componentContext;
345
- var ms = getMedia();
346
- if (ms === r.lastState) {
347
- return r.lastState;
348
- }
349
- if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {
350
- r.componentContext.mediaEmit(ms);
351
- r.pendingState = ms;
352
- return r.lastState;
353
- }
354
- r.lastState = ms;
355
- return ms;
356
- }
342
+ r.getSnapshot = function(inRender) {
343
+ var _r_componentContext;
344
+ var { lastState } = r;
357
345
  var curKeys = mediaListenKeys(r);
358
- var { lastState, pendingState } = r;
359
- if (!curKeys.size) {
360
- return lastState;
361
- }
362
- var ms1 = getMedia();
363
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
364
- try {
365
- for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
366
- var key = _step.value;
367
- if (ms1[key] !== (pendingState || lastState)[key]) {
368
- var _r_componentContext1;
369
- if (process.env.NODE_ENV === "development" && r.debug) {
370
- console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms1[key]);
371
- }
372
- if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {
373
- r.componentContext.mediaEmit(ms1);
374
- r.pendingState = ms1;
375
- return lastState;
376
- }
377
- r.lastState = ms1;
378
- return ms1;
379
- }
380
- }
381
- } catch (err) {
382
- _didIteratorError = true;
383
- _iteratorError = err;
384
- } finally {
346
+ var ms = getMedia();
347
+ if (curKeys) {
348
+ var changed = false;
349
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
385
350
  try {
386
- if (!_iteratorNormalCompletion && _iterator.return != null) {
387
- _iterator.return();
351
+ for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
352
+ var key = _step.value;
353
+ if (ms[key] !== (r.pendingState || lastState)[key]) {
354
+ if (process.env.NODE_ENV === "development" && r.debug) {
355
+ console.warn(`useMedia() \u270D\uFE0F`, key, lastState[key], "=>", ms[key]);
356
+ }
357
+ changed = true;
358
+ break;
359
+ }
388
360
  }
361
+ } catch (err) {
362
+ _didIteratorError = true;
363
+ _iteratorError = err;
389
364
  } finally {
390
- if (_didIteratorError) {
391
- throw _iteratorError;
365
+ try {
366
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
367
+ _iterator.return();
368
+ }
369
+ } finally {
370
+ if (_didIteratorError) {
371
+ throw _iteratorError;
372
+ }
392
373
  }
393
374
  }
375
+ if (!changed) return lastState;
376
+ } else if (ms === lastState) {
377
+ return lastState;
378
+ }
379
+ var mediaEmit = (_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit;
380
+ if (mediaEmit) {
381
+ if (inRender) queueMicrotask(function() {
382
+ return mediaEmit(ms);
383
+ });
384
+ else mediaEmit(ms);
385
+ r.pendingState = ms;
386
+ return lastState;
394
387
  }
395
- return lastState;
388
+ r.lastState = ms;
389
+ return ms;
396
390
  };
397
391
  internalRef.current = r;
398
392
  } else {
@@ -410,7 +404,7 @@ function useMedia(componentContext, debug, uid) {
410
404
  ref.keys.clear();
411
405
  }
412
406
  var [, forceUpdate] = useReducer(incReducer, 0);
413
- var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();
407
+ var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);
414
408
  ref.proxyTarget = state;
415
409
  if (!ref.optimizeForFirstRender) {
416
410
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }) : \"\\u274C Error 013\");\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function() {\n if (r.optimizeForFirstRender) {\n var _r_componentContext;\n var ms = getMedia();\n if (ms === r.lastState) {\n return r.lastState;\n }\n if ((_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit) {\n r.componentContext.mediaEmit(ms);\n r.pendingState = ms;\n return r.lastState;\n }\n r.lastState = ms;\n return ms;\n }\n var curKeys = mediaListenKeys(r);\n var { lastState, pendingState } = r;\n if (!curKeys.size) {\n return lastState;\n }\n var ms1 = getMedia();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms1[key] !== (pendingState || lastState)[key]) {\n var _r_componentContext1;\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms1[key]);\n }\n if ((_r_componentContext1 = r.componentContext) === null || _r_componentContext1 === void 0 ? void 0 : _r_componentContext1.mediaEmit) {\n r.componentContext.mediaEmit(ms1);\n r.pendingState = ms1;\n return lastState;\n }\n r.lastState = ms1;\n return ms1;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return lastState;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot();\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"useMedia.native.js","names":[],"sources":["esm/hooks/useMedia.native.js"],"sourcesContent":["import { isServer, isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { useEffect, useReducer, useRef } from \"react\";\nimport { getSetting } from \"../config\";\nimport { formatDiagnostic } from \"../helpers/formatDiagnostic\";\nimport { isOptimizedForFirstRender } from \"./isOptimizedForFirstRender\";\nimport { matchMedia } from \"../helpers/matchMedia\";\nimport { mediaObjectToString } from \"../helpers/mediaObjectToString\";\nimport { getMedia, mediaKeyMatch, mediaKeys, mediaQueryConfig, setMediaState } from \"../helpers/mediaState\";\nimport { mediaKeyMatch as mediaKeyMatch2 } from \"../helpers/mediaState\";\nvar initState;\nvar dispose = /* @__PURE__ */ new Set();\nvar mediaVersion = 0;\nvar configureMedia = function(config) {\n var { media } = config;\n var mediaQueryDefaultActive = getSetting(\"mediaQueryDefaultActive\");\n if (!media) return;\n mediaVersion++;\n resetMediaTouchTracker();\n publishedState = null;\n for (var key in media) {\n getMedia()[key] = (mediaQueryDefaultActive === null || mediaQueryDefaultActive === void 0 ? void 0 : mediaQueryDefaultActive[key]) || false;\n mediaKeys.add(key);\n }\n Object.assign(mediaQueryConfig, media);\n initState = {\n ...getMedia()\n };\n setupMediaListeners();\n};\nfunction unlisten() {\n dispose.forEach(function(cb) {\n return cb();\n });\n dispose.clear();\n}\nvar setupVersion = -1;\nfunction setupMediaListeners() {\n var _loop = function(key2) {\n var str = mediaObjectToString(mediaQueryConfig[key2]);\n var getMatch = function() {\n return matchMedia(str);\n };\n var match = getMatch();\n if (!match) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? formatDiagnostic(\"TAMAGUI_MEDIA_MATCH\", \"useMedia\", \"matchMedia returned no MediaQueryList\", \"Provide a matchMedia implementation that returns a MediaQueryList\", \"key,query,platform\", {\n key: key2,\n query: str,\n platform: isWeb ? \"web\" : \"native\"\n }) : \"\\u274C Error 013\");\n }\n match.addListener(update);\n dispose.add(function() {\n match.removeListener(update);\n });\n function update() {\n var next = !!getMatch().matches;\n if (next === getMedia()[key2]) return;\n setMediaState({\n ...getMedia(),\n [key2]: next\n });\n updateMediaListeners();\n }\n update();\n };\n if (isWeb && isServer) return;\n if (process.env.IS_STATIC) return;\n if (setupVersion === mediaVersion) return;\n setupVersion = mediaVersion;\n unlisten();\n for (var key in mediaQueryConfig) _loop(key);\n}\nvar listenersByKey = /* @__PURE__ */ new Map();\nvar globalListeners = /* @__PURE__ */ new Set();\nvar publishedState = null;\nvar _mediaListenerStats = {\n publishes: 0,\n notified: 0\n};\nfunction updateMediaListeners() {\n _mediaListenerStats.publishes++;\n var media = getMedia();\n var prev = publishedState;\n publishedState = media;\n if (listenersByKey.size) {\n var woken = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (prev !== null && media[key] === prev[key]) continue;\n var bucket = listenersByKey.get(key);\n if (bucket) {\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = bucket[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var cb = _step1.value;\n woken.add(cb);\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = woken[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var cb1 = _step2.value;\n _mediaListenerStats.notified++;\n cb1(media);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n globalListeners.forEach(function(cb2) {\n _mediaListenerStats.notified++;\n cb2(media);\n });\n}\nvar States = /* @__PURE__ */ new WeakMap();\nvar touchTrackerProto = null;\nvar refSlot = /* @__PURE__ */ Symbol(\"mediaRefSlot\");\nfunction buildTouchTrackerProto() {\n var proto = {};\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var key = _step.value;\n proto[key] = {\n enumerable: true,\n configurable: true,\n get() {\n var slot = this[refSlot];\n if (!disableMediaTouch) {\n slot.keys.add(key);\n }\n return slot.proxyTarget[key];\n }\n };\n };\n for (var _iterator = mediaKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return Object.create(null, proto);\n}\nfunction getTouchTrackerProto() {\n if (!touchTrackerProto) touchTrackerProto = buildTouchTrackerProto();\n return touchTrackerProto;\n}\nfunction resetMediaTouchTracker() {\n touchTrackerProto = null;\n}\nfunction setMediaShouldUpdate(ref, enabled, keys) {\n var optimizeForFirstRender = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;\n if (optimizeForFirstRender) return;\n var cur = States.get(ref);\n if (!cur || cur.enabled !== enabled || keys) {\n States.set(ref, {\n ...cur,\n enabled,\n keys\n });\n }\n}\nfunction mediaListenKeys(ref) {\n var _States_get;\n if (ref.optimizeForFirstRender) return null;\n return (ref.uid ? (_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.keys : void 0) || ref.keys;\n}\nfunction indexMediaListener(ref) {\n var keys = mediaListenKeys(ref);\n var cur = ref.listeningTo;\n if (cur !== void 0 && sameMediaKeys(cur, keys)) return;\n unindexMediaListener(ref);\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.add(cb);\n ref.listeningTo = null;\n return;\n }\n ref.listeningTo = new Set(keys);\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) {\n bucket = /* @__PURE__ */ new Set();\n listenersByKey.set(key, bucket);\n }\n bucket.add(cb);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction unindexMediaListener(ref) {\n var keys = ref.listeningTo;\n if (keys === void 0) return;\n ref.listeningTo = void 0;\n var cb = ref.onChange;\n if (keys === null) {\n globalListeners.delete(cb);\n return;\n }\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n var bucket = listenersByKey.get(key);\n if (!bucket) continue;\n bucket.delete(cb);\n if (!bucket.size) listenersByKey.delete(key);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction sameMediaKeys(a, b) {\n if (a === null || b === null) return a === b;\n if (a.size !== b.size) return false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = b[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (!a.has(key)) return false;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return true;\n}\nfunction useMedia(componentContext, debug, uid) {\n \"use no memo\";\n var _ref_keys;\n var internalRef = useRef(null);\n if (!internalRef.current) {\n var initial = isWeb && !isServer && !getSetting(\"disableSSR\") ? initState : getMedia();\n var optimizeForFirstRender = isOptimizedForFirstRender();\n var r = {\n keys: optimizeForFirstRender ? null : /* @__PURE__ */ new Set(),\n lastState: initial,\n renderVersion: 0,\n proxyTarget: initial,\n proxy: void 0,\n getSnapshot: void 0,\n componentContext,\n uid,\n debug,\n optimizeForFirstRender\n };\n if (optimizeForFirstRender) {\n r.proxy = initial;\n } else {\n var tracker = Object.create(getTouchTrackerProto());\n tracker[refSlot] = {\n proxyTarget: initial,\n keys: r.keys\n };\n r.proxy = tracker;\n }\n r.getSnapshot = function(inRender) {\n var _r_componentContext;\n var { lastState } = r;\n var curKeys = mediaListenKeys(r);\n var ms = getMedia();\n if (curKeys) {\n var changed = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = curKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n if (ms[key] !== (r.pendingState || lastState)[key]) {\n if (process.env.NODE_ENV === \"development\" && r.debug) {\n console.warn(`useMedia() \\u270D\\uFE0F`, key, lastState[key], \"=>\", ms[key]);\n }\n changed = true;\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (!changed) return lastState;\n } else if (ms === lastState) {\n return lastState;\n }\n var mediaEmit = (_r_componentContext = r.componentContext) === null || _r_componentContext === void 0 ? void 0 : _r_componentContext.mediaEmit;\n if (mediaEmit) {\n if (inRender) queueMicrotask(function() {\n return mediaEmit(ms);\n });\n else mediaEmit(ms);\n r.pendingState = ms;\n return lastState;\n }\n r.lastState = ms;\n return ms;\n };\n internalRef.current = r;\n } else {\n internalRef.current.componentContext = componentContext;\n internalRef.current.uid = uid;\n internalRef.current.debug = debug;\n }\n var ref = internalRef.current;\n ref.renderVersion++;\n if (ref.pendingState) {\n ref.lastState = ref.pendingState;\n ref.pendingState = void 0;\n }\n if ((_ref_keys = ref.keys) === null || _ref_keys === void 0 ? void 0 : _ref_keys.size) {\n ref.keys.clear();\n }\n var [, forceUpdate] = useReducer(incReducer, 0);\n var state = isServer ? initState : ref.optimizeForFirstRender && ref.renderVersion === 1 ? ref.lastState : ref.getSnapshot(true);\n ref.proxyTarget = state;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = state;\n }\n useIsomorphicLayoutEffect(function() {\n var synced = ref.getSnapshot();\n if (synced !== ref.proxyTarget) {\n ref.proxyTarget = synced;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = synced;\n }\n forceUpdate();\n }\n }, []);\n useEffect(function() {\n var _States_get;\n var renderVersion = ref.renderVersion;\n var shouldSubscribe = ref.optimizeForFirstRender || !ref.uid || !!((_States_get = States.get(ref.uid)) === null || _States_get === void 0 ? void 0 : _States_get.enabled);\n if (shouldSubscribe) {\n var _ref;\n (_ref = ref).onChange || (_ref.onChange = function() {\n var next = ref.getSnapshot();\n if (next !== ref.proxyTarget) {\n var _ref_uid_nativeMediaUpdate, _ref_uid;\n ref.proxyTarget = next;\n if (!ref.optimizeForFirstRender) {\n ;\n ref.proxy[refSlot].proxyTarget = next;\n }\n if ((_ref_uid = ref.uid) === null || _ref_uid === void 0 ? void 0 : (_ref_uid_nativeMediaUpdate = _ref_uid.nativeMediaUpdate) === null || _ref_uid_nativeMediaUpdate === void 0 ? void 0 : _ref_uid_nativeMediaUpdate.call(_ref_uid, forceUpdate)) return;\n forceUpdate();\n }\n });\n indexMediaListener(ref);\n } else {\n unindexMediaListener(ref);\n }\n return function() {\n if (ref.renderVersion === renderVersion) {\n unindexMediaListener(ref);\n }\n };\n });\n return ref.optimizeForFirstRender ? state : ref.proxy;\n}\nvar incReducer = function(c) {\n return c + 1;\n};\nvar disableMediaTouch = false;\nfunction _disableMediaTouch(val) {\n disableMediaTouch = val;\n}\nfunction getMediaState(mediaGroups, layout) {\n disableMediaTouch = true;\n var res;\n try {\n res = Object.fromEntries([\n ...mediaGroups\n ].map(function(mediaKey) {\n return [\n mediaKey,\n mediaKeyMatch(mediaKey, layout)\n ];\n }));\n } finally {\n disableMediaTouch = false;\n }\n return res;\n}\nvar cachedMediaKeyToQuery = {};\nfunction mediaKeyToQuery(key) {\n return cachedMediaKeyToQuery[key] || (cachedMediaKeyToQuery[key] = mediaObjectToString(mediaQueryConfig[key]));\n}\nexport {\n _disableMediaTouch,\n _mediaListenerStats,\n configureMedia,\n getMediaState,\n mediaKeyMatch2 as mediaKeyMatch,\n mediaKeyToQuery,\n setMediaShouldUpdate,\n setupMediaListeners,\n updateMediaListeners,\n useMedia\n};\n//# sourceMappingURL=useMedia.js.map\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/web",
3
- "version": "3.0.0-beta.1577.1",
3
+ "version": "3.0.0-beta.1604.1",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "Nate Wienert"
@@ -100,23 +100,23 @@
100
100
  "test:web": "vitest --typecheck --run"
101
101
  },
102
102
  "dependencies": {
103
- "@tamagui/animation-helpers": "3.0.0-beta.1577.1",
104
- "@tamagui/compose-refs": "3.0.0-beta.1577.1",
105
- "@tamagui/constants": "3.0.0-beta.1577.1",
106
- "@tamagui/dom": "3.0.0-beta.1577.1",
107
- "@tamagui/helpers": "3.0.0-beta.1577.1",
108
- "@tamagui/is-equal-shallow": "3.0.0-beta.1577.1",
109
- "@tamagui/native": "3.0.0-beta.1577.1",
110
- "@tamagui/normalize-css-color": "3.0.0-beta.1577.1",
111
- "@tamagui/react-native-types": "3.0.0-beta.1577.1",
112
- "@tamagui/style-grammar": "3.0.0-beta.1577.1",
113
- "@tamagui/types": "3.0.0-beta.1577.1",
114
- "@tamagui/use-did-finish-ssr": "3.0.0-beta.1577.1",
115
- "@tamagui/use-event": "3.0.0-beta.1577.1",
116
- "@tamagui/use-force-update": "3.0.0-beta.1577.1"
103
+ "@tamagui/animation-helpers": "3.0.0-beta.1604.1",
104
+ "@tamagui/compose-refs": "3.0.0-beta.1604.1",
105
+ "@tamagui/constants": "3.0.0-beta.1604.1",
106
+ "@tamagui/dom": "3.0.0-beta.1604.1",
107
+ "@tamagui/helpers": "3.0.0-beta.1604.1",
108
+ "@tamagui/is-equal-shallow": "3.0.0-beta.1604.1",
109
+ "@tamagui/native": "3.0.0-beta.1604.1",
110
+ "@tamagui/normalize-css-color": "3.0.0-beta.1604.1",
111
+ "@tamagui/react-native-types": "3.0.0-beta.1604.1",
112
+ "@tamagui/style-grammar": "3.0.0-beta.1604.1",
113
+ "@tamagui/types": "3.0.0-beta.1604.1",
114
+ "@tamagui/use-did-finish-ssr": "3.0.0-beta.1604.1",
115
+ "@tamagui/use-event": "3.0.0-beta.1604.1",
116
+ "@tamagui/use-force-update": "3.0.0-beta.1604.1"
117
117
  },
118
118
  "devDependencies": {
119
- "@tamagui/build": "3.0.0-beta.1577.1",
119
+ "@tamagui/build": "3.0.0-beta.1604.1",
120
120
  "@testing-library/react": "^16.1.0",
121
121
  "csstype": "^3.0.10",
122
122
  "react": "19.2.3",
@@ -129,5 +129,5 @@
129
129
  "react": ">=19",
130
130
  "react-dom": "*"
131
131
  },
132
- "releaseSourceCommit": "980b3a380372214960b940793500cb42394a36fb"
132
+ "releaseSourceCommit": "360e4e0e611bb81518cc274cccff03d38e59a2a0"
133
133
  }
@@ -768,9 +768,13 @@ function contributeProp(
768
768
  const styleOriginals = shouldTrackStyleTokenProvenance
769
769
  ? styleOriginalValues.get(style)
770
770
  : undefined
771
- for (const key in style) {
772
- const value = style[key]
771
+ for (const authoredKey in style) {
772
+ const value = style[authoredKey]
773
773
  if (value == null) continue
774
+ // style objects and pieces take the same shorthands as props
775
+ const key = disableExpandShorthands
776
+ ? authoredKey
777
+ : shorthands[authoredKey] || authoredKey
774
778
  // the style prop is the inline style attribute, as in react: a plain
775
779
  // value never becomes an atomic class, so element.style reads it back
776
780
  // and it can change every frame without inserting a rule. a value that
@@ -805,7 +809,7 @@ function contributeProp(
805
809
  }
806
810
  }
807
811
  ;(styleState as DirectState).flatInlineStyleProp = inline
808
- contributeValue(styleState, key, value, styleOriginals?.[key])
812
+ contributeValue(styleState, key, value, styleOriginals?.[authoredKey])
809
813
  ;(styleState as DirectState).flatInlineStyleProp = false
810
814
  }
811
815
  }
@@ -247,7 +247,7 @@ type MediaRef = {
247
247
  // by mutating `proxyTarget` and re-reading it in the get trap.
248
248
  proxyTarget: MediaQueryState
249
249
  proxy: UseMediaState
250
- getSnapshot: () => MediaQueryState
250
+ getSnapshot: (inRender?: boolean) => MediaQueryState
251
251
  componentContext?: ComponentContextI
252
252
  uid?: object
253
253
  debug?: DebugProp
@@ -362,51 +362,37 @@ export function useMedia(
362
362
  } as MediaRefSlot
363
363
  r.proxy = tracker as UseMediaState
364
364
  }
365
- r.getSnapshot = () => {
366
- if (r.optimizeForFirstRender) {
367
- const ms = getMedia()
368
- if (ms === r.lastState) {
369
- return r.lastState
370
- }
371
-
372
- if (r.componentContext?.mediaEmit) {
373
- r.componentContext.mediaEmit(ms)
374
- r.pendingState = ms
375
- return r.lastState
376
- }
377
-
378
- r.lastState = ms
379
- return ms
380
- }
381
-
382
- const curKeys = mediaListenKeys(r)!
383
- const { lastState, pendingState } = r
384
-
385
- if (!curKeys.size) {
386
- return lastState
387
- }
388
-
365
+ r.getSnapshot = (inRender) => {
366
+ const { lastState } = r
367
+ const curKeys = mediaListenKeys(r)
389
368
  const ms = getMedia()
390
- for (const key of curKeys) {
391
- if (ms[key] !== (pendingState || lastState)[key]) {
392
- if (process.env.NODE_ENV === 'development' && r.debug) {
393
- console.warn(`useMedia() ✍️`, key, lastState[key], '=>', ms[key])
394
- }
395
-
396
- // in emitter mode (no-rerender) avoid changing state, instead emit
397
- if (r.componentContext?.mediaEmit) {
398
- r.componentContext.mediaEmit(ms)
399
- r.pendingState = ms
400
- return lastState
369
+ if (curKeys) {
370
+ let changed = false
371
+ for (const key of curKeys) {
372
+ if (ms[key] !== (r.pendingState || lastState)[key]) {
373
+ if (process.env.NODE_ENV === 'development' && r.debug) {
374
+ console.warn(`useMedia() ✍️`, key, lastState[key], '=>', ms[key])
375
+ }
376
+ changed = true
377
+ break
401
378
  }
402
-
403
- r.lastState = ms
404
-
405
- return ms
406
379
  }
380
+ if (!changed) return lastState
381
+ } else if (ms === lastState) {
382
+ return lastState
407
383
  }
408
384
 
409
- return lastState
385
+ // render-time emits update siblings through setState, so defer those
386
+ // until render finishes; effect and subscription emits stay synchronous.
387
+ const mediaEmit = r.componentContext?.mediaEmit
388
+ if (mediaEmit) {
389
+ if (inRender) queueMicrotask(() => mediaEmit(ms))
390
+ else mediaEmit(ms)
391
+ r.pendingState = ms
392
+ return lastState
393
+ }
394
+ r.lastState = ms
395
+ return ms
410
396
  }
411
397
  internalRef.current = r
412
398
  } else {
@@ -440,7 +426,7 @@ export function useMedia(
440
426
  ? initState
441
427
  : ref.optimizeForFirstRender && ref.renderVersion === 1
442
428
  ? ref.lastState
443
- : ref.getSnapshot()
429
+ : ref.getSnapshot(true)
444
430
  ref.proxyTarget = state
445
431
  if (!ref.optimizeForFirstRender) {
446
432
  ;(ref.proxy as any)[refSlot].proxyTarget = state
package/src/types.tsx CHANGED
@@ -1999,20 +1999,6 @@ export type GetTokenFontKeysFor<
1999
1999
  > = keyof TamaguiConfig['fonts']['body'][A]
2000
2000
 
2001
2001
  export type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>
2002
- /** generic css families, valid as a single-token fontFamily without a config font */
2003
- export type GenericFontFamily =
2004
- | 'serif'
2005
- | 'sans-serif'
2006
- | 'monospace'
2007
- | 'cursive'
2008
- | 'fantasy'
2009
- | 'system-ui'
2010
- | 'ui-serif'
2011
- | 'ui-sans-serif'
2012
- | 'ui-monospace'
2013
- | 'ui-rounded'
2014
- | 'math'
2015
- | 'inherit'
2016
2002
  export type FontFamilyTokens = FontTokens
2017
2003
  export type FontSize =
2018
2004
  | GetTokenString<GetTokenFontKeysFor<'size'>>
@@ -2115,7 +2101,7 @@ export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme
2115
2101
  : K extends SizeKeys
2116
2102
  ? SizeTokens
2117
2103
  : K extends FontKeys
2118
- ? FontTokens | GenericFontFamily
2104
+ ? FontTokens
2119
2105
  : K extends FontSizeKeys
2120
2106
  ? FontSizeTokens | FontStyleValueFallback
2121
2107
  : K extends `${`border${string | ''}Radius`}`
@@ -1 +1 @@
1
- {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAGb,eAAe,EACf,YAAY,EAGZ,qBAAqB,EACrB,qBAAqB,EAErB,WAAW,EAGZ,MAAM,UAAU,CAAA;AAkBjB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKlF,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAqB/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAe3D,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACvF,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAK3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAEtC,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,KAAK,CAAC,EAAE,SAAS,EAEjB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAC5C,iBAAiB,CAAC,EAAE,iBAAiB,KAClC,IAAI,GAAG,cAAc,CAAA;AA6U1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAEhF;AA2rBD,eAAO,MAAM,cAAc,EAAE,aAuuB5B,CAAA;AAoYD,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,gBAAgB,CAAC,EAAE,OAAO,EAC1B,aAAa,CAAC,EAAE,GAAG,KAChB,IAAI,CAAA;AA63CT,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;AAgCnF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,GAAG,IAAI,EACjC,QAAQ,SAAI,EACZ,WAAW,UAAQ,WA4OpB;AA6HD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,QAyBlB;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBAgBtF;AAMD,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,gBAAgB,EAEhB,mBAAmB,EAEnB,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,aAAa,EAGb,eAAe,EACf,YAAY,EAGZ,qBAAqB,EACrB,qBAAqB,EAErB,WAAW,EAGZ,MAAM,UAAU,CAAA;AAkBjB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKlF,OAAO,EAAE,oBAAoB,EAAE,CAAA;AAqB/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAe3D,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AACvF,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAK3D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAMhE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,qBAAqB,EACrC,UAAU,EAAE,eAAe,EAC3B,iBAAiB,CAAC,EAAE,cAAc,GAAG,IAAI,EACzC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAEtC,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,OAAO,EAC3B,KAAK,CAAC,EAAE,SAAS,EAEjB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAC5C,iBAAiB,CAAC,EAAE,iBAAiB,KAClC,IAAI,GAAG,cAAc,CAAA;AA6U1B,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAEhF;AA+rBD,eAAO,MAAM,cAAc,EAAE,aAuuB5B,CAAA;AAoYD,MAAM,MAAM,UAAU,GAAG,CACvB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,gBAAgB,CAAC,EAAE,OAAO,EAC1B,aAAa,CAAC,EAAE,GAAG,KAChB,IAAI,CAAA;AA63CT,KAAK,oBAAoB,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;AAgCnF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,oBAAoB,GAAG,IAAI,EACjC,QAAQ,SAAI,EACZ,WAAW,UAAQ,WA4OpB;AA6HD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,OAAO,EAClB,QAAQ,EAAE,OAAO,QAyBlB;AAID,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,qBAAqB,sBAgBtF;AAMD,cAAc,mBAAmB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAET,qBAAqB,EACrB,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAA;AASjB,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAgB3D,CAAA;AAaD,wBAAgB,mBAAmB,SA6ClC;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B,SAAS;IACT,QAAQ;CACT,CAAA;AAED,wBAAgB,oBAAoB,SA0BnC;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC1B,CAAA;AAiDD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,sBAAsB,UAAQ,QAa/B;AAyFD,wBAAgB,QAAQ,CACtB,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,EAGjB,GAAG,CAAC,EAAE,MAAM,GACX,aAAa,CA+Kf;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,QAE9C;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,2BAa1E;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAK1C"}
1
+ {"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,SAAS,EAET,qBAAqB,EACrB,aAAa,EACb,WAAW,EACZ,MAAM,UAAU,CAAA;AASjB,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAgB3D,CAAA;AAaD,wBAAgB,mBAAmB,SA6ClC;AAiBD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B,SAAS;IACT,QAAQ;CACT,CAAA;AAED,wBAAgB,oBAAoB,SA0BnC;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;CAC1B,CAAA;AAiDD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,sBAAsB,UAAQ,QAa/B;AAyFD,wBAAgB,QAAQ,CACtB,gBAAgB,CAAC,EAAE,iBAAiB,EACpC,KAAK,CAAC,EAAE,SAAS,EAGjB,GAAG,CAAC,EAAE,MAAM,GACX,aAAa,CAiKf;AAKD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,QAE9C;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,2BAa1E;AAID,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,UAK1C"}
package/types/types.d.ts CHANGED
@@ -1173,8 +1173,6 @@ export type Fonts = DefaultFont extends string ? TamaguiConfig['fonts'][DefaultF
1173
1173
  export type Font = ParseFont<Fonts>;
1174
1174
  export type GetTokenFontKeysFor<A extends 'size' | 'weight' | 'letterSpacing' | 'family' | 'lineHeight' | 'transform' | 'style' | 'color'> = keyof TamaguiConfig['fonts']['body'][A];
1175
1175
  export type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>;
1176
- /** generic css families, valid as a single-token fontFamily without a config font */
1177
- export type GenericFontFamily = 'serif' | 'sans-serif' | 'monospace' | 'cursive' | 'fantasy' | 'system-ui' | 'ui-serif' | 'ui-sans-serif' | 'ui-monospace' | 'ui-rounded' | 'math' | 'inherit';
1178
1176
  export type FontFamilyTokens = FontTokens;
1179
1177
  export type FontSize = GetTokenString<GetTokenFontKeysFor<'size'>> | number | RemString | true;
1180
1178
  export type FontSizeTokens = FontSize;
@@ -1207,7 +1205,7 @@ export type LineHeightKeys = 'lineHeight';
1207
1205
  export type ZIndexKeys = 'zIndex';
1208
1206
  export type OpacityKeys = 'opacity';
1209
1207
  type FontStyleValueFallback = GetThemeValueFallbackFor<AllowedValueSettingSize, never, never, never, WebStyleValueUniversal | `${number}%`>;
1210
- export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme' ? ThemeTokens : K extends SizeKeys ? SizeTokens : K extends FontKeys ? FontTokens | GenericFontFamily : K extends FontSizeKeys ? FontSizeTokens | FontStyleValueFallback : K extends `${`border${string | ''}Radius`}` ? RadiusTokens : K extends SpaceKeys ? K extends 'shadowOffset' ? {
1208
+ export type ThemeValueGet<K extends string | number | symbol> = K extends 'theme' ? ThemeTokens : K extends SizeKeys ? SizeTokens : K extends FontKeys ? FontTokens : K extends FontSizeKeys ? FontSizeTokens | FontStyleValueFallback : K extends `${`border${string | ''}Radius`}` ? RadiusTokens : K extends SpaceKeys ? K extends 'shadowOffset' ? {
1211
1209
  width: SpaceTokens;
1212
1210
  height: SpaceTokens;
1213
1211
  } : SpaceTokens : K extends ColorKeys ? ColorTokens | ThemeValueFallbackColor : K extends ZIndexKeys ? ZIndexTokens : K extends LineHeightKeys ? FontLineHeightTokens | FontStyleValueFallback : K extends FontWeightKeys ? FontWeightTokens : K extends FontLetterSpacingKeys ? FontLetterSpacingTokens : K extends OpacityKeys ? ThemeValueFallback : never;