@tamagui/web 2.3.3 → 2.4.0

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.
Files changed (86) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/cjs/createComponent.native.js +1 -1
  3. package/dist/cjs/createComponent.native.js.map +1 -1
  4. package/dist/cjs/helpers/getSplitStyles.cjs +5 -0
  5. package/dist/cjs/helpers/getSplitStyles.native.js +9 -0
  6. package/dist/cjs/helpers/getSplitStyles.native.js.map +1 -1
  7. package/dist/cjs/helpers/pointerEvents.native.js +26 -20
  8. package/dist/cjs/helpers/pointerEvents.native.js.map +1 -1
  9. package/dist/cjs/hooks/useComponentState.cjs +25 -1
  10. package/dist/cjs/hooks/useComponentState.native.js +25 -1
  11. package/dist/cjs/hooks/useComponentState.native.js.map +1 -1
  12. package/dist/cjs/hooks/useMedia.cjs +107 -42
  13. package/dist/cjs/hooks/useMedia.native.js +149 -60
  14. package/dist/cjs/hooks/useMedia.native.js.map +1 -1
  15. package/dist/cjs/hooks/useTheme.cjs +17 -4
  16. package/dist/cjs/hooks/useTheme.native.js +18 -4
  17. package/dist/cjs/hooks/useTheme.native.js.map +1 -1
  18. package/dist/cjs/hooks/useThemeState.cjs +132 -67
  19. package/dist/cjs/hooks/useThemeState.native.js +144 -70
  20. package/dist/cjs/hooks/useThemeState.native.js.map +1 -1
  21. package/dist/cjs/index.cjs +2 -0
  22. package/dist/cjs/index.native.js +2 -0
  23. package/dist/cjs/index.native.js.map +1 -1
  24. package/dist/cjs/views/Theme.cjs +1 -1
  25. package/dist/cjs/views/Theme.native.js +1 -1
  26. package/dist/cjs/views/Theme.native.js.map +1 -1
  27. package/dist/esm/createComponent.native.js +2 -2
  28. package/dist/esm/createComponent.native.js.map +1 -1
  29. package/dist/esm/helpers/getSplitStyles.mjs +5 -0
  30. package/dist/esm/helpers/getSplitStyles.mjs.map +1 -1
  31. package/dist/esm/helpers/getSplitStyles.native.js +9 -0
  32. package/dist/esm/helpers/getSplitStyles.native.js.map +1 -1
  33. package/dist/esm/helpers/pointerEvents.native.js +26 -20
  34. package/dist/esm/helpers/pointerEvents.native.js.map +1 -1
  35. package/dist/esm/hooks/useComponentState.mjs +26 -2
  36. package/dist/esm/hooks/useComponentState.mjs.map +1 -1
  37. package/dist/esm/hooks/useComponentState.native.js +26 -2
  38. package/dist/esm/hooks/useComponentState.native.js.map +1 -1
  39. package/dist/esm/hooks/useMedia.mjs +108 -43
  40. package/dist/esm/hooks/useMedia.mjs.map +1 -1
  41. package/dist/esm/hooks/useMedia.native.js +150 -61
  42. package/dist/esm/hooks/useMedia.native.js.map +1 -1
  43. package/dist/esm/hooks/useTheme.mjs +17 -4
  44. package/dist/esm/hooks/useTheme.mjs.map +1 -1
  45. package/dist/esm/hooks/useTheme.native.js +18 -4
  46. package/dist/esm/hooks/useTheme.native.js.map +1 -1
  47. package/dist/esm/hooks/useThemeState.mjs +133 -68
  48. package/dist/esm/hooks/useThemeState.mjs.map +1 -1
  49. package/dist/esm/hooks/useThemeState.native.js +145 -71
  50. package/dist/esm/hooks/useThemeState.native.js.map +1 -1
  51. package/dist/esm/index.js +3 -3
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/index.mjs +3 -3
  54. package/dist/esm/index.mjs.map +1 -1
  55. package/dist/esm/index.native.js +3 -3
  56. package/dist/esm/index.native.js.map +1 -1
  57. package/dist/esm/views/Theme.mjs +1 -1
  58. package/dist/esm/views/Theme.mjs.map +1 -1
  59. package/dist/esm/views/Theme.native.js +1 -1
  60. package/dist/esm/views/Theme.native.js.map +1 -1
  61. package/package.json +13 -13
  62. package/src/createComponent.tsx +8 -2
  63. package/src/helpers/getSplitStyles.tsx +33 -0
  64. package/src/helpers/pointerEvents.native.ts +26 -19
  65. package/src/hooks/useComponentState.ts +39 -2
  66. package/src/hooks/useMedia.tsx +147 -42
  67. package/src/hooks/useTheme.tsx +27 -5
  68. package/src/hooks/useThemeState.ts +263 -137
  69. package/src/index.ts +7 -1
  70. package/src/types.tsx +53 -5
  71. package/src/views/Theme.tsx +4 -1
  72. package/types/createComponent.d.ts.map +1 -1
  73. package/types/helpers/getSplitStyles.d.ts.map +1 -1
  74. package/types/helpers/pointerEvents.native.d.ts.map +1 -1
  75. package/types/hooks/useComponentState.d.ts +1 -1
  76. package/types/hooks/useComponentState.d.ts.map +1 -1
  77. package/types/hooks/useMedia.d.ts.map +1 -1
  78. package/types/hooks/useTheme.d.ts +1 -1
  79. package/types/hooks/useTheme.d.ts.map +1 -1
  80. package/types/hooks/useThemeState.d.ts +1 -1
  81. package/types/hooks/useThemeState.d.ts.map +1 -1
  82. package/types/index.d.ts +2 -2
  83. package/types/index.d.ts.map +1 -1
  84. package/types/types.d.ts +3 -1
  85. package/types/types.d.ts.map +1 -1
  86. package/types/views/Theme.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","MISSING_THEME_MESSAGE","ThemeStateContext","allListeners","Map","listenersByParent","HasRenderedOnce","WeakMap","HadTheme","PendingUpdate","states","localStates","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","id","get","themeNameCache","themeNameCacheVer","themes","rootThemeState","getRootThemeState","useThemeState","props","isRoot","keys","schemeKeys","disable","parentId","Error","process","env","NODE_ENV","name","componentName","theme","light","subscribe","Set","add","set","delete","propsKey","getPropsKey","getSnapshot","local","parentState","has","_parentName","_propsKey","isSchemeOnlyChange","keysSize","current","size","allKeysSchemeOptimized","canSkipForSchemeChange","needsUpdate","passThrough","rerender","next","getNextState","debug","console","groupCollapsed","info","groupEnd","Object","assign","globalThis","time","state","scheduleUpdate","warn","lastState","pendingUpdate","isNew","getNewThemeName","isSameAsParent","shouldRerender","Boolean","message","trace","scheme","getScheme","isInverse","nextState","parentName","shouldAvoidRerender","queue","visited","length","children","shift","childId","push","validSchemes","dark","split","forceUpdate","reset","unstyled","cacheKey","clear","cached","themes2","result2","lastPartIndex","lastIndexOf","name2","slice","result","parentParts","lastName","toLowerCase","pop","subNames","filter","found","nameHasScheme","subName","potentialBases","i","join","outer","base","candidates","potential","max","forceClassName","hasThemeUpdatingProps"],"sources":["useThemeState.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useCallback, useContext, useId, useSyncExternalStore } from \"react\";\nimport { getConfig } from \"../config\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nconst ThemeStateContext = createContext(\"\");\nconst allListeners = /* @__PURE__ */ new Map();\nconst listenersByParent = {};\nconst HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nconst HadTheme = /* @__PURE__ */ new WeakMap();\nconst PendingUpdate = /* @__PURE__ */ new Map();\nconst states = /* @__PURE__ */ new Map();\nconst localStates = /* @__PURE__ */ new Map();\nlet shouldForce = false;\nconst forceUpdateThemes = () => {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach((cb) => cb());\n\tshouldForce = false;\n};\nconst getThemeState = (id) => states.get(id);\nlet cacheVersion = 0;\nconst themeNameCache = /* @__PURE__ */ new Map();\nlet themeNameCacheVer = -1;\nlet themes = null;\nlet rootThemeState = null;\nconst getRootThemeState = () => rootThemeState;\nconst useThemeState = (props, isRoot = false, keys, schemeKeys) => {\n\t\"use no memo\";\n\tconst { disable } = props;\n\tconst parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tconst id = useId();\n\tconst subscribe = useCallback((cb) => {\n\t\tlistenersByParent[parentId] = listenersByParent[parentId] || /* @__PURE__ */ new Set();\n\t\tlistenersByParent[parentId].add(id);\n\t\tallListeners.set(id, () => {\n\t\t\tPendingUpdate.set(id, shouldForce ? \"force\" : true);\n\t\t\tcb();\n\t\t});\n\t\treturn () => {\n\t\t\tallListeners.delete(id);\n\t\t\tlistenersByParent[parentId].delete(id);\n\t\t\tlocalStates.delete(id);\n\t\t\tstates.delete(id);\n\t\t\tPendingUpdate.delete(id);\n\t\t};\n\t}, [id, parentId]);\n\tconst propsKey = getPropsKey(props);\n\tconst getSnapshot = () => {\n\t\tlet local = localStates.get(id);\n\t\tconst parentState = states.get(parentId);\n\t\tif (local && !PendingUpdate.has(id)) {\n\t\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t\t}\n\t\tconst isSchemeOnlyChange = false;\n\t\tconst keysSize = keys?.current?.size ?? 0;\n\t\tconst allKeysSchemeOptimized = (schemeKeys?.current?.size ?? 0) === keysSize && keysSize > 0;\n\t\tconst canSkipForSchemeChange = isSchemeOnlyChange;\n\t\tconst needsUpdate = props.passThrough ? false : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : keys?.current?.size ? true : props.needsUpdate?.();\n\t\tconst [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\t\tPendingUpdate.delete(id);\n\t\tif (!local || rerender) {\n\t\t\tlocal = { ...next };\n\t\t\tlocalStates.set(id, local);\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\t\tconsole.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, \">\", next.name);\n\t\t\tconsole.info({\n\t\t\t\tprops,\n\t\t\t\tpropsKey,\n\t\t\t\tisRoot,\n\t\t\t\tparentId,\n\t\t\t\tlocal,\n\t\t\t\tnext,\n\t\t\t\tneedsUpdate,\n\t\t\t\tisSchemeOnlyChange,\n\t\t\t\tallKeysSchemeOptimized,\n\t\t\t\tcanSkipForSchemeChange\n\t\t\t});\n\t\t\tconsole.groupEnd();\n\t\t}\n\t\tif (next !== local) {\n\t\t\tObject.assign(local, next);\n\t\t\tlocal.id = id;\n\t\t}\n\t\tlocal._parentName = parentState?.name;\n\t\tlocal._propsKey = propsKey;\n\t\tstates.set(id, next);\n\t\treturn local;\n\t};\n\tif (process.env.NODE_ENV === \"development\" && globalThis.time) globalThis.time`theme-prep-uses`;\n\tconst state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\tuseIsomorphicLayoutEffect(() => {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") console.warn(` \\xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name);\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nconst getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {\n\tconst { debug } = props;\n\tconst parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tif (!themes) themes = getConfig().themes;\n\tconst name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tconst isSameAsParent = parentState && (!name || name === parentState.name);\n\tconst shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconst message = ` \\xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;\n\t\tconsole.groupCollapsed(message);\n\t\tconsole.trace({\n\t\t\tname,\n\t\t\tlastState,\n\t\t\tparentState,\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tid,\n\t\t\tisSameAsParent\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tconst next = lastState ?? parentState;\n\t\tif (!next) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no theme state was resolved (parentId: ${parentId}, id: ${id}).` : MISSING_THEME_MESSAGE);\n\t\tif (shouldRerender) return [true, { ...parentState || lastState }];\n\t\treturn [false, next];\n\t}\n\tconst scheme = getScheme(name);\n\tconst isInverse = parentState && scheme !== parentState.scheme;\n\tconst nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState?.name,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\tconst shouldAvoidRerender = pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name;\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` \\xB7 useTheme(${id}) \\u23ED\\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);\n\t\tconsole.info({\n\t\t\tlastState,\n\t\t\tneedsUpdate,\n\t\t\tnextState,\n\t\t\tpendingUpdate\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (shouldAvoidRerender) return [false, nextState];\n\treturn [true, nextState];\n};\nfunction scheduleUpdate(id) {\n\tconst queue = [id];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tconst children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tfor (const childId of children) if (!visited.has(childId)) {\n\t\t\t\tvisited.add(childId);\n\t\t\t\tqueue.push(childId);\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach((childId) => {\n\t\tallListeners.get(childId)?.();\n\t});\n}\nconst validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName(parentName = \"\", props, forceUpdate = false) {\n\tconst { name, reset } = props;\n\tconst componentName = props.unstyled ? void 0 : props.componentName;\n\tif (name && reset) throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C004` : \"Cannot reset and set a new name at the same time.\");\n\tconst cacheKey = `${parentName}|${name || \"\"}|${componentName || \"\"}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tconst cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tconst { themes: themes2 } = getConfig();\n\tif (reset) {\n\t\tif (parentName === \"light\" || parentName === \"dark\") {\n\t\t\tconst result2 = parentName === \"light\" ? \"dark\" : \"light\";\n\t\t\tthemeNameCache.set(cacheKey, result2);\n\t\t\treturn result2;\n\t\t}\n\t\tconst lastPartIndex = parentName.lastIndexOf(\"_\");\n\t\tconst name2 = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);\n\t\tconst scheme = parentName.slice(0, lastPartIndex);\n\t\tconst result = themes2[name2] ? name2 : scheme;\n\t\tthemeNameCache.set(cacheKey, result);\n\t\treturn result;\n\t}\n\tconst parentParts = parentName.split(\"_\");\n\tconst lastName = parentParts[parentParts.length - 1];\n\tif (lastName && lastName[0].toLowerCase() !== lastName[0]) parentParts.pop();\n\tconst subNames = [\n\t\tname && componentName ? `${name}_${componentName}` : void 0,\n\t\tname,\n\t\tcomponentName\n\t].filter(Boolean);\n\tlet found = null;\n\tif (name) {\n\t\tconst nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme) {\n\t\t\tfor (const subName of subNames) if (subName in themes2) {\n\t\t\t\tfound = subName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!found && !nameHasScheme) {\n\t\t\tif (getScheme(parentName)) {\n\t\t\t\tconst potentialBases = [];\n\t\t\t\tfor (let i = parentParts.length; i >= 1; i--) potentialBases.push(parentParts.slice(0, i).join(\"_\"));\n\t\t\t\touter: for (const base of potentialBases) {\n\t\t\t\t\tconst candidates = [componentName ? `${base}_${name}_${componentName}` : void 0, `${base}_${name}`].filter(Boolean);\n\t\t\t\t\tfor (const potential of candidates) if (potential in themes2) {\n\t\t\t\t\t\tfound = potential;\n\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (!found) if (!name && componentName) {\n\t\tconst potential = `${parentParts.join(\"_\")}_${componentName}`;\n\t\tif (potential in themes2) found = potential;\n\t} else {\n\t\tconst max = parentParts.length;\n\t\tfor (let i = 0; i <= max; i++) {\n\t\t\tconst base = (i === 0 ? parentParts : parentParts.slice(0, -i)).join(\"_\");\n\t\t\tfor (const subName of subNames) {\n\t\t\t\tconst potential = base ? `${base}_${subName}` : subName;\n\t\t\t\tif (potential in themes2) {\n\t\t\t\t\tfound = potential;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (found) break;\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) {\n\t\tthemeNameCache.set(cacheKey, null);\n\t\treturn null;\n\t}\n\tthemeNameCache.set(cacheKey, found);\n\treturn found;\n}\nconst getPropsKey = ({ name, reset, forceClassName, componentName }) => `${name || \"\"}${reset || \"\"}${forceClassName || \"\"}${componentName || \"\"}`;\nconst hasThemeUpdatingProps = (props) => \"name\" in props || \"reset\" in props || \"forceClassName\" in props;\n\nexport { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, useThemeState };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useEffect","useId","useReducer","useRef","getConfig","MISSING_THEME_MESSAGE","ThemeStateContext","allListeners","Map","listenersByParent","HasRenderedOnce","WeakMap","HadTheme","PendingUpdate","states","localStates","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","id","get","themeNameCache","themeNameCacheVer","themes","rootThemeState","getRootThemeState","incReducer","c","useThemeState","props","isRoot","keys","schemeKeys","cascadeOnChange","disable","parentId","Error","process","env","NODE_ENV","name","componentName","theme","light","propsKey","getPropsKey","ref","current","renderVersion","globalThis","time","forceUpdate","state","getSnapshotImpl","lastSnap","r","unsubscribe","subscribedParentId","cleanupThemeSubscription","shouldSubscribeToTheme","pid","sid","next","Set","add","set","delete","cleanupThemeState","scheduleUpdate","debug","console","warn","hasThemeUpdatingProps","size","needsUpdate","local","parentState","has","_parentName","_propsKey","isSchemeOnlyChange","keysSize","allKeysSchemeOptimized","canSkipForSchemeChange","passThrough","rerender","getNextState","groupCollapsed","info","groupEnd","Object","assign","lastState","pendingUpdate","isNew","getNewThemeName","isSameAsParent","shouldRerender","Boolean","message","trace","scheme","getScheme","isInverse","nextState","parentName","shouldAvoidRerender","queue","visited","length","children","shift","childId","push","validSchemes","dark","split","reset","unstyled","cacheKey","clear","cached","themes2","result2","lastPartIndex","lastIndexOf","name2","slice","result","parentParts","lastName","toLowerCase","pop","subNames","filter","found","nameHasScheme","subName","potentialBases","i","join","outer","base","candidates","potential","max","forceClassName"],"sources":["useThemeState.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useEffect, useId, useReducer, useRef } from \"react\";\nimport { getConfig } from \"../config\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nconst ThemeStateContext = createContext(\"\");\nconst allListeners = /* @__PURE__ */ new Map();\nconst listenersByParent = {};\nconst HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nconst HadTheme = /* @__PURE__ */ new WeakMap();\nconst PendingUpdate = /* @__PURE__ */ new Map();\nconst states = /* @__PURE__ */ new Map();\nconst localStates = /* @__PURE__ */ new Map();\nlet shouldForce = false;\nconst forceUpdateThemes = () => {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach((cb) => cb());\n\tshouldForce = false;\n};\nconst getThemeState = (id) => states.get(id);\nlet cacheVersion = 0;\nconst themeNameCache = /* @__PURE__ */ new Map();\nlet themeNameCacheVer = -1;\nlet themes = null;\nlet rootThemeState = null;\nconst getRootThemeState = () => rootThemeState;\nconst incReducer = (c) => c + 1;\nconst useThemeState = (props, isRoot = false, keys, schemeKeys, cascadeOnChange = false) => {\n\t\"use no memo\";\n\tconst { disable } = props;\n\tconst parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tconst id = useId();\n\tconst propsKey = getPropsKey(props);\n\tconst ref = useRef(null);\n\tif (!ref.current) ref.current = {\n\t\tid,\n\t\tparentId,\n\t\tprops,\n\t\tpropsKey,\n\t\tisRoot,\n\t\tkeys,\n\t\tschemeKeys,\n\t\trenderVersion: 0\n\t};\n\telse {\n\t\tref.current.props = props;\n\t\tref.current.propsKey = propsKey;\n\t\tref.current.isRoot = isRoot;\n\t\tref.current.keys = keys;\n\t\tref.current.schemeKeys = schemeKeys;\n\t\tref.current.parentId = parentId;\n\t}\n\tref.current.renderVersion++;\n\tif (process.env.NODE_ENV === \"development\" && globalThis.time) globalThis.time`theme-prep-uses`;\n\tconst [, forceUpdate] = useReducer(incReducer, 0);\n\tconst state = getSnapshotImpl(ref.current);\n\tref.current.lastSnap = state;\n\tuseEffect(() => {\n\t\tconst r = ref.current;\n\t\tconst renderVersion = r.renderVersion;\n\t\tif (r.unsubscribe && r.subscribedParentId !== r.parentId) cleanupThemeSubscription(r);\n\t\tif (shouldSubscribeToTheme(r, cascadeOnChange)) {\n\t\t\tif (!r.unsubscribe) {\n\t\t\t\tconst pid = r.parentId;\n\t\t\t\tconst sid = r.id;\n\t\t\t\tconst cb = () => {\n\t\t\t\t\tconst next = getSnapshotImpl(r);\n\t\t\t\t\tif (next !== r.lastSnap) {\n\t\t\t\t\t\tr.lastSnap = next;\n\t\t\t\t\t\tforceUpdate();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tlistenersByParent[pid] = listenersByParent[pid] || /* @__PURE__ */ new Set();\n\t\t\t\tlistenersByParent[pid].add(sid);\n\t\t\t\tallListeners.set(sid, () => {\n\t\t\t\t\tPendingUpdate.set(sid, shouldForce ? \"force\" : true);\n\t\t\t\t\tcb();\n\t\t\t\t});\n\t\t\t\tr.subscribedParentId = pid;\n\t\t\t\tr.unsubscribe = () => {\n\t\t\t\t\tallListeners.delete(sid);\n\t\t\t\t\tlistenersByParent[pid]?.delete(sid);\n\t\t\t\t\tlocalStates.delete(sid);\n\t\t\t\t\tstates.delete(sid);\n\t\t\t\t\tPendingUpdate.delete(sid);\n\t\t\t\t\tr.unsubscribe = void 0;\n\t\t\t\t\tr.subscribedParentId = void 0;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (r.unsubscribe) cleanupThemeSubscription(r);\n\t\treturn () => {\n\t\t\tif (r.renderVersion === renderVersion) cleanupThemeState(r);\n\t\t};\n\t});\n\tif (cascadeOnChange) useIsomorphicLayoutEffect(() => {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") console.warn(` \\xB7 useTheme(${id}) scheduleUpdate`, propsKey, states.get(id)?.name);\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nconst shouldSubscribeToTheme = (r, cascadeOnChange) => r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || !!r.keys.current?.size || !!r.props.needsUpdate?.();\nfunction cleanupThemeSubscription(r) {\n\tr.unsubscribe?.();\n}\nfunction cleanupThemeState(r) {\n\tif (r.unsubscribe) cleanupThemeSubscription(r);\n\telse {\n\t\tlocalStates.delete(r.id);\n\t\tstates.delete(r.id);\n\t\tPendingUpdate.delete(r.id);\n\t}\n}\nconst getSnapshotImpl = (r) => {\n\tconst { id, parentId, props, propsKey, isRoot, keys, schemeKeys } = r;\n\tlet local = localStates.get(id);\n\tconst parentState = states.get(parentId);\n\tif (local && !PendingUpdate.has(id)) {\n\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t}\n\tconst isSchemeOnlyChange = false;\n\tconst keysSize = keys?.current?.size ?? 0;\n\tconst allKeysSchemeOptimized = (schemeKeys?.current?.size ?? 0) === keysSize && keysSize > 0;\n\tconst canSkipForSchemeChange = isSchemeOnlyChange;\n\tconst needsUpdate = props.passThrough ? false : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : keys?.current?.size ? true : props.needsUpdate?.();\n\tconst [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\tPendingUpdate.delete(id);\n\tif (!local || rerender) {\n\t\tlocal = { ...next };\n\t\tlocalStates.set(id, local);\n\t}\n\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, \">\", next.name);\n\t\tconsole.info({\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tisRoot,\n\t\t\tparentId,\n\t\t\tlocal,\n\t\t\tnext,\n\t\t\tneedsUpdate,\n\t\t\tisSchemeOnlyChange,\n\t\t\tallKeysSchemeOptimized,\n\t\t\tcanSkipForSchemeChange\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (next !== local) {\n\t\tObject.assign(local, next);\n\t\tlocal.id = id;\n\t}\n\tlocal._parentName = parentState?.name;\n\tlocal._propsKey = propsKey;\n\tstates.set(id, next);\n\treturn local;\n};\nconst getNextState = (lastState, props, propsKey, isRoot = false, id, parentId, needsUpdate, pendingUpdate) => {\n\tconst { debug } = props;\n\tconst parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tif (!themes) themes = getConfig().themes;\n\tconst name = !propsKey && (!lastState || !lastState?.isNew) ? null : getNewThemeName(parentState?.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tconst isSameAsParent = parentState && (!name || name === parentState.name);\n\tconst shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || lastState?.name !== parentState?.name));\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconst message = ` \\xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;\n\t\tconsole.groupCollapsed(message);\n\t\tconsole.trace({\n\t\t\tname,\n\t\t\tlastState,\n\t\t\tparentState,\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tid,\n\t\t\tisSameAsParent\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tconst next = lastState ?? parentState ?? rootThemeState ?? {\n\t\t\tid,\n\t\t\tname: \"light\",\n\t\t\ttheme: getConfig().themes.light\n\t\t};\n\t\tif (shouldRerender) return [true, { ...parentState || lastState || next }];\n\t\treturn [false, next];\n\t}\n\tconst scheme = getScheme(name);\n\tconst isInverse = parentState && scheme !== parentState.scheme;\n\tconst nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState?.name,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\tconst shouldAvoidRerender = pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name;\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` \\xB7 useTheme(${id}) \\u23ED\\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);\n\t\tconsole.info({\n\t\t\tlastState,\n\t\t\tneedsUpdate,\n\t\t\tnextState,\n\t\t\tpendingUpdate\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (shouldAvoidRerender) return [false, nextState];\n\treturn [true, nextState];\n};\nfunction scheduleUpdate(id) {\n\tconst queue = [id];\n\tconst visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tconst children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tfor (const childId of children) if (!visited.has(childId)) {\n\t\t\t\tvisited.add(childId);\n\t\t\t\tqueue.push(childId);\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach((childId) => {\n\t\tallListeners.get(childId)?.();\n\t});\n}\nconst validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName(parentName = \"\", props, forceUpdate = false) {\n\tconst { name, reset } = props;\n\tconst componentName = props.unstyled ? void 0 : props.componentName;\n\tif (name && reset) throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C004` : \"Cannot reset and set a new name at the same time.\");\n\tconst cacheKey = `${parentName}|${name || \"\"}|${componentName || \"\"}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tconst cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tconst { themes: themes2 } = getConfig();\n\tif (reset) {\n\t\tif (parentName === \"light\" || parentName === \"dark\") {\n\t\t\tconst result2 = parentName === \"light\" ? \"dark\" : \"light\";\n\t\t\tthemeNameCache.set(cacheKey, result2);\n\t\t\treturn result2;\n\t\t}\n\t\tconst lastPartIndex = parentName.lastIndexOf(\"_\");\n\t\tconst name2 = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);\n\t\tconst scheme = parentName.slice(0, lastPartIndex);\n\t\tconst result = themes2[name2] ? name2 : scheme;\n\t\tthemeNameCache.set(cacheKey, result);\n\t\treturn result;\n\t}\n\tconst parentParts = parentName.split(\"_\");\n\tconst lastName = parentParts[parentParts.length - 1];\n\tif (lastName && lastName[0].toLowerCase() !== lastName[0]) parentParts.pop();\n\tconst subNames = [\n\t\tname && componentName ? `${name}_${componentName}` : void 0,\n\t\tname,\n\t\tcomponentName\n\t].filter(Boolean);\n\tlet found = null;\n\tif (name) {\n\t\tconst nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme) {\n\t\t\tfor (const subName of subNames) if (subName in themes2) {\n\t\t\t\tfound = subName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!found && !nameHasScheme) {\n\t\t\tif (getScheme(parentName)) {\n\t\t\t\tconst potentialBases = [];\n\t\t\t\tfor (let i = parentParts.length; i >= 1; i--) potentialBases.push(parentParts.slice(0, i).join(\"_\"));\n\t\t\t\touter: for (const base of potentialBases) {\n\t\t\t\t\tconst candidates = [componentName ? `${base}_${name}_${componentName}` : void 0, `${base}_${name}`].filter(Boolean);\n\t\t\t\t\tfor (const potential of candidates) if (potential in themes2) {\n\t\t\t\t\t\tfound = potential;\n\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (!found) if (!name && componentName) {\n\t\tconst potential = `${parentParts.join(\"_\")}_${componentName}`;\n\t\tif (potential in themes2) found = potential;\n\t} else {\n\t\tconst max = parentParts.length;\n\t\tfor (let i = 0; i <= max; i++) {\n\t\t\tconst base = (i === 0 ? parentParts : parentParts.slice(0, -i)).join(\"_\");\n\t\t\tfor (const subName of subNames) {\n\t\t\t\tconst potential = base ? `${base}_${subName}` : subName;\n\t\t\t\tif (potential in themes2) {\n\t\t\t\t\tfound = potential;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (found) break;\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) {\n\t\tthemeNameCache.set(cacheKey, null);\n\t\treturn null;\n\t}\n\tthemeNameCache.set(cacheKey, found);\n\treturn found;\n}\nconst getPropsKey = ({ name, reset, forceClassName, componentName }) => `${name || \"\"}${reset || \"\"}${forceClassName || \"\"}${componentName || \"\"}`;\nconst hasThemeUpdatingProps = (props) => \"name\" in props || \"reset\" in props || \"forceClassName\" in props;\n\nexport { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, useThemeState };"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import { supportsDynamicColorIOS, useIsomorphicLayoutEffect } from "@tamagui/constants";
2
- import { createContext, useCallback, useContext, useId, useSyncExternalStore } from "react";
2
+ import { createContext, useContext, useEffect, useId, useReducer, useRef } from "react";
3
3
  import { getConfig, getSetting } from "../config.native.js";
4
4
  import { MISSING_THEME_MESSAGE } from "../constants/constants.native.js";
5
5
  var ThemeStateContext = createContext("");
@@ -33,12 +33,16 @@ var getRootThemeState = function () {
33
33
  var getThemeBaseName = function (name) {
34
34
  return name.replace(/^(light|dark)_/, "");
35
35
  };
36
+ var incReducer = function (c) {
37
+ return c + 1;
38
+ };
36
39
  var useThemeState = function (props) {
37
40
  "use no memo";
38
41
 
39
42
  var isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false,
40
43
  keys = arguments.length > 2 ? arguments[2] : void 0,
41
- schemeKeys = arguments.length > 3 ? arguments[3] : void 0;
44
+ schemeKeys = arguments.length > 3 ? arguments[3] : void 0,
45
+ cascadeOnChange = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;
42
46
  var {
43
47
  disable
44
48
  } = props;
@@ -52,72 +56,69 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}${props.componentName ? `
52
56
  theme: getConfig().themes.light
53
57
  };
54
58
  var id = useId();
55
- var subscribe = useCallback(function (cb) {
56
- listenersByParent[parentId] = listenersByParent[parentId] || /* @__PURE__ */new Set();
57
- listenersByParent[parentId].add(id);
58
- allListeners.set(id, function () {
59
- PendingUpdate.set(id, shouldForce ? "force" : true);
60
- cb();
61
- });
62
- return function () {
63
- allListeners.delete(id);
64
- listenersByParent[parentId].delete(id);
65
- localStates.delete(id);
66
- states.delete(id);
67
- PendingUpdate.delete(id);
68
- };
69
- }, [id, parentId]);
70
59
  var propsKey = getPropsKey(props);
71
- var getSnapshot = function () {
72
- var _keys_current, _schemeKeys_current, _keys_current1, _props_needsUpdate;
73
- var local = localStates.get(id);
74
- var parentState = states.get(parentId);
75
- if (local && !PendingUpdate.has(id)) {
76
- if (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;
77
- }
78
- var isSchemeOnlyChange = supportsDynamicColorIOS && getSetting("fastSchemeChange") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);
79
- var _keys_current_size;
80
- var keysSize = (_keys_current_size = keys === null || keys === void 0 ? void 0 : (_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) !== null && _keys_current_size !== void 0 ? _keys_current_size : 0;
81
- var _schemeKeys_current_size;
82
- var allKeysSchemeOptimized = ((_schemeKeys_current_size = schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) !== null && _schemeKeys_current_size !== void 0 ? _schemeKeys_current_size : 0) === keysSize && keysSize > 0;
83
- var canSkipForSchemeChange = isSchemeOnlyChange && allKeysSchemeOptimized;
84
- var needsUpdate = props.passThrough ? false : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
85
- var [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
86
- PendingUpdate.delete(id);
87
- if (!local || rerender) {
88
- local = {
89
- ...next
90
- };
91
- localStates.set(id, local);
92
- }
93
- if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
94
- console.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, ">", next.name);
95
- console.info({
96
- props,
97
- propsKey,
98
- isRoot,
99
- parentId,
100
- local,
101
- next,
102
- needsUpdate,
103
- isSchemeOnlyChange,
104
- allKeysSchemeOptimized,
105
- canSkipForSchemeChange
106
- });
107
- console.groupEnd();
108
- }
109
- if (next !== local) {
110
- Object.assign(local, next);
111
- local.id = id;
112
- }
113
- local._parentName = parentState === null || parentState === void 0 ? void 0 : parentState.name;
114
- local._propsKey = propsKey;
115
- states.set(id, next);
116
- return local;
117
- };
60
+ var ref = useRef(null);
61
+ if (!ref.current) ref.current = {
62
+ id,
63
+ parentId,
64
+ props,
65
+ propsKey,
66
+ isRoot,
67
+ keys,
68
+ schemeKeys,
69
+ renderVersion: 0
70
+ };else {
71
+ ref.current.props = props;
72
+ ref.current.propsKey = propsKey;
73
+ ref.current.isRoot = isRoot;
74
+ ref.current.keys = keys;
75
+ ref.current.schemeKeys = schemeKeys;
76
+ ref.current.parentId = parentId;
77
+ }
78
+ ref.current.renderVersion++;
118
79
  if (process.env.NODE_ENV === "development" && globalThis.time) globalThis.time`theme-prep-uses`;
119
- var state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
120
- useIsomorphicLayoutEffect(function () {
80
+ var [, forceUpdate] = useReducer(incReducer, 0);
81
+ var state = getSnapshotImpl(ref.current);
82
+ ref.current.lastSnap = state;
83
+ useEffect(function () {
84
+ var r = ref.current;
85
+ var renderVersion = r.renderVersion;
86
+ if (r.unsubscribe && r.subscribedParentId !== r.parentId) cleanupThemeSubscription(r);
87
+ if (shouldSubscribeToTheme(r, cascadeOnChange)) {
88
+ if (!r.unsubscribe) {
89
+ var pid = r.parentId;
90
+ var sid = r.id;
91
+ var cb = function () {
92
+ var next = getSnapshotImpl(r);
93
+ if (next !== r.lastSnap) {
94
+ r.lastSnap = next;
95
+ forceUpdate();
96
+ }
97
+ };
98
+ listenersByParent[pid] = listenersByParent[pid] || /* @__PURE__ */new Set();
99
+ listenersByParent[pid].add(sid);
100
+ allListeners.set(sid, function () {
101
+ PendingUpdate.set(sid, shouldForce ? "force" : true);
102
+ cb();
103
+ });
104
+ r.subscribedParentId = pid;
105
+ r.unsubscribe = function () {
106
+ var _listenersByParent_pid;
107
+ allListeners.delete(sid);
108
+ (_listenersByParent_pid = listenersByParent[pid]) === null || _listenersByParent_pid === void 0 || _listenersByParent_pid.delete(sid);
109
+ localStates.delete(sid);
110
+ states.delete(sid);
111
+ PendingUpdate.delete(sid);
112
+ r.unsubscribe = void 0;
113
+ r.subscribedParentId = void 0;
114
+ };
115
+ }
116
+ } else if (r.unsubscribe) cleanupThemeSubscription(r);
117
+ return function () {
118
+ if (r.renderVersion === renderVersion) cleanupThemeState(r);
119
+ };
120
+ });
121
+ if (cascadeOnChange) useIsomorphicLayoutEffect(function () {
121
122
  if (!HasRenderedOnce.get(keys)) {
122
123
  HasRenderedOnce.set(keys, true);
123
124
  return;
@@ -136,6 +137,77 @@ Looked for theme${props.name ? ` "${props.name}"` : ""}${props.componentName ? `
136
137
  }, [keys, propsKey]);
137
138
  return state;
138
139
  };
140
+ var shouldSubscribeToTheme = function (r, cascadeOnChange) {
141
+ var _r_keys_current, _r_props_needsUpdate, _r_props;
142
+ return r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || !!((_r_keys_current = r.keys.current) === null || _r_keys_current === void 0 ? void 0 : _r_keys_current.size) || !!((_r_props_needsUpdate = (_r_props = r.props).needsUpdate) === null || _r_props_needsUpdate === void 0 ? void 0 : _r_props_needsUpdate.call(_r_props));
143
+ };
144
+ function cleanupThemeSubscription(r) {
145
+ var _r_unsubscribe;
146
+ (_r_unsubscribe = r.unsubscribe) === null || _r_unsubscribe === void 0 || _r_unsubscribe.call(r);
147
+ }
148
+ function cleanupThemeState(r) {
149
+ if (r.unsubscribe) cleanupThemeSubscription(r);else {
150
+ localStates.delete(r.id);
151
+ states.delete(r.id);
152
+ PendingUpdate.delete(r.id);
153
+ }
154
+ }
155
+ var getSnapshotImpl = function (r) {
156
+ var _keys_current, _schemeKeys_current, _keys_current1, _props_needsUpdate;
157
+ var {
158
+ id,
159
+ parentId,
160
+ props,
161
+ propsKey,
162
+ isRoot,
163
+ keys,
164
+ schemeKeys
165
+ } = r;
166
+ var local = localStates.get(id);
167
+ var parentState = states.get(parentId);
168
+ if (local && !PendingUpdate.has(id)) {
169
+ if (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;
170
+ }
171
+ var isSchemeOnlyChange = supportsDynamicColorIOS && getSetting("fastSchemeChange") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);
172
+ var _keys_current_size;
173
+ var keysSize = (_keys_current_size = keys === null || keys === void 0 ? void 0 : (_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) !== null && _keys_current_size !== void 0 ? _keys_current_size : 0;
174
+ var _schemeKeys_current_size;
175
+ var allKeysSchemeOptimized = ((_schemeKeys_current_size = schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) !== null && _schemeKeys_current_size !== void 0 ? _schemeKeys_current_size : 0) === keysSize && keysSize > 0;
176
+ var canSkipForSchemeChange = isSchemeOnlyChange && allKeysSchemeOptimized;
177
+ var needsUpdate = props.passThrough ? false : isRoot || props.name === "light" || props.name === "dark" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);
178
+ var [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));
179
+ PendingUpdate.delete(id);
180
+ if (!local || rerender) {
181
+ local = {
182
+ ...next
183
+ };
184
+ localStates.set(id, local);
185
+ }
186
+ if (process.env.NODE_ENV === "development" && props.debug === "verbose") {
187
+ console.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, ">", next.name);
188
+ console.info({
189
+ props,
190
+ propsKey,
191
+ isRoot,
192
+ parentId,
193
+ local,
194
+ next,
195
+ needsUpdate,
196
+ isSchemeOnlyChange,
197
+ allKeysSchemeOptimized,
198
+ canSkipForSchemeChange
199
+ });
200
+ console.groupEnd();
201
+ }
202
+ if (next !== local) {
203
+ Object.assign(local, next);
204
+ local.id = id;
205
+ }
206
+ local._parentName = parentState === null || parentState === void 0 ? void 0 : parentState.name;
207
+ local._propsKey = propsKey;
208
+ states.set(id, next);
209
+ return local;
210
+ };
139
211
  var getNextState = function (lastState, props, propsKey) {
140
212
  var isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false,
141
213
  id = arguments.length > 4 ? arguments[4] : void 0,
@@ -165,12 +237,14 @@ var getNextState = function (lastState, props, propsKey) {
165
237
  }];
166
238
  }
167
239
  if (!name) {
168
- var next = lastState !== null && lastState !== void 0 ? lastState : parentState;
169
- if (!next) throw new Error(process.env.NODE_ENV === "development" ? `${MISSING_THEME_MESSAGE}
170
-
171
- Looked for theme${props.name ? ` "${props.name}"` : ""}${props.componentName ? ` (component: ${props.componentName})` : ""}, but no theme state was resolved (parentId: ${parentId}, id: ${id}).` : MISSING_THEME_MESSAGE);
240
+ var _ref, _ref1;
241
+ var next = (_ref1 = (_ref = lastState !== null && lastState !== void 0 ? lastState : parentState) !== null && _ref !== void 0 ? _ref : rootThemeState) !== null && _ref1 !== void 0 ? _ref1 : {
242
+ id,
243
+ name: "light",
244
+ theme: getConfig().themes.light
245
+ };
172
246
  if (shouldRerender) return [true, {
173
- ...(parentState || lastState)
247
+ ...(parentState || lastState || next)
174
248
  }];
175
249
  return [false, next];
176
250
  }
@@ -1 +1 @@
1
- {"version":3,"names":["supportsDynamicColorIOS","useIsomorphicLayoutEffect","createContext","useCallback","useContext","useId","useSyncExternalStore","getConfig","getSetting","MISSING_THEME_MESSAGE","ThemeStateContext","allListeners","Map","listenersByParent","HasRenderedOnce","WeakMap","HadTheme","PendingUpdate","states","localStates","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","id","get","themeNameCache","themeNameCacheVer","themes","rootThemeState","getRootThemeState","getThemeBaseName","name","replace","useThemeState","props","isRoot","arguments","length","keys","schemeKeys","disable","parentId","Error","process","env","NODE_ENV","componentName","theme","light","subscribe","Set","add","set","delete","propsKey","getPropsKey","getSnapshot","_keys_current","_schemeKeys_current","_keys_current1","_props_needsUpdate","local","parentState","has","_parentName","_propsKey","isSchemeOnlyChange","scheme","_keys_current_size","keysSize","current","size","_schemeKeys_current_size","allKeysSchemeOptimized","canSkipForSchemeChange","needsUpdate","passThrough","call","rerender","next","getNextState","debug","console","groupCollapsed","info","groupEnd","Object","assign","globalThis","time","state","scheduleUpdate","_states_get","warn","lastState","pendingUpdate","isNew","getNewThemeName","isSameAsParent","shouldRerender","Boolean","message","getScheme","isInverse","nextState","parentName","shouldAvoidRerender","queue","visited","children","shift","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","childId","value","push","err","return","childId2","validSchemes","dark","split","forceUpdate","reset","unstyled","cacheKey","clear","cached","themes2","result","lastPartIndex","lastIndexOf","name1","slice","result1","parentParts","lastName","toLowerCase","pop","subNames","filter","found","nameHasScheme","subName","potentialBases","i","join","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","outer","_iterator1","_step1","base","candidates","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","potential","potential1","max","i1","base1","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","subName1","potential2","param","forceClassName","hasThemeUpdatingProps"],"sources":["useThemeState.native.js"],"sourcesContent":["import { supportsDynamicColorIOS, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useCallback, useContext, useId, useSyncExternalStore } from \"react\";\nimport { getConfig, getSetting } from \"../config\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nvar ThemeStateContext = createContext(\"\");\nvar allListeners = /* @__PURE__ */ new Map();\nvar listenersByParent = {};\nvar HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nvar HadTheme = /* @__PURE__ */ new WeakMap();\nvar PendingUpdate = /* @__PURE__ */ new Map();\nvar states = /* @__PURE__ */ new Map();\nvar localStates = /* @__PURE__ */ new Map();\nvar shouldForce = false;\nvar forceUpdateThemes = function() {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach(function(cb) {\n\t\treturn cb();\n\t});\n\tshouldForce = false;\n};\nvar getThemeState = function(id) {\n\treturn states.get(id);\n};\nvar cacheVersion = 0;\nvar themeNameCache = /* @__PURE__ */ new Map();\nvar themeNameCacheVer = -1;\nvar themes = null;\nvar rootThemeState = null;\nvar getRootThemeState = function() {\n\treturn rootThemeState;\n};\nvar getThemeBaseName = function(name) {\n\treturn name.replace(/^(light|dark)_/, \"\");\n};\nvar useThemeState = function(props) {\n\t\"use no memo\";\n\tvar isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, keys = arguments.length > 2 ? arguments[2] : void 0, schemeKeys = arguments.length > 3 ? arguments[3] : void 0;\n\tvar { disable } = props;\n\tvar parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tvar id = useId();\n\tvar subscribe = useCallback(function(cb) {\n\t\tlistenersByParent[parentId] = listenersByParent[parentId] || /* @__PURE__ */ new Set();\n\t\tlistenersByParent[parentId].add(id);\n\t\tallListeners.set(id, function() {\n\t\t\tPendingUpdate.set(id, shouldForce ? \"force\" : true);\n\t\t\tcb();\n\t\t});\n\t\treturn function() {\n\t\t\tallListeners.delete(id);\n\t\t\tlistenersByParent[parentId].delete(id);\n\t\t\tlocalStates.delete(id);\n\t\t\tstates.delete(id);\n\t\t\tPendingUpdate.delete(id);\n\t\t};\n\t}, [id, parentId]);\n\tvar propsKey = getPropsKey(props);\n\tvar getSnapshot = function() {\n\t\tvar _keys_current, _schemeKeys_current, _keys_current1, _props_needsUpdate;\n\t\tvar local = localStates.get(id);\n\t\tvar parentState = states.get(parentId);\n\t\tif (local && !PendingUpdate.has(id)) {\n\t\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t\t}\n\t\tvar isSchemeOnlyChange = supportsDynamicColorIOS && getSetting(\"fastSchemeChange\") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);\n\t\tvar _keys_current_size;\n\t\tvar keysSize = (_keys_current_size = keys === null || keys === void 0 ? void 0 : (_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) !== null && _keys_current_size !== void 0 ? _keys_current_size : 0;\n\t\tvar _schemeKeys_current_size;\n\t\tvar allKeysSchemeOptimized = ((_schemeKeys_current_size = schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) !== null && _schemeKeys_current_size !== void 0 ? _schemeKeys_current_size : 0) === keysSize && keysSize > 0;\n\t\tvar canSkipForSchemeChange = isSchemeOnlyChange && allKeysSchemeOptimized;\n\t\tvar needsUpdate = props.passThrough ? false : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);\n\t\tvar [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\t\tPendingUpdate.delete(id);\n\t\tif (!local || rerender) {\n\t\t\tlocal = { ...next };\n\t\t\tlocalStates.set(id, local);\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\t\tconsole.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, \">\", next.name);\n\t\t\tconsole.info({\n\t\t\t\tprops,\n\t\t\t\tpropsKey,\n\t\t\t\tisRoot,\n\t\t\t\tparentId,\n\t\t\t\tlocal,\n\t\t\t\tnext,\n\t\t\t\tneedsUpdate,\n\t\t\t\tisSchemeOnlyChange,\n\t\t\t\tallKeysSchemeOptimized,\n\t\t\t\tcanSkipForSchemeChange\n\t\t\t});\n\t\t\tconsole.groupEnd();\n\t\t}\n\t\tif (next !== local) {\n\t\t\tObject.assign(local, next);\n\t\t\tlocal.id = id;\n\t\t}\n\t\tlocal._parentName = parentState === null || parentState === void 0 ? void 0 : parentState.name;\n\t\tlocal._propsKey = propsKey;\n\t\tstates.set(id, next);\n\t\treturn local;\n\t};\n\tif (process.env.NODE_ENV === \"development\" && globalThis.time) globalThis.time`theme-prep-uses`;\n\tvar state = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);\n\tuseIsomorphicLayoutEffect(function() {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\t\tvar _states_get;\n\t\t\tconsole.warn(` \\xB7 useTheme(${id}) scheduleUpdate`, propsKey, (_states_get = states.get(id)) === null || _states_get === void 0 ? void 0 : _states_get.name);\n\t\t}\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nvar getNextState = function(lastState, props, propsKey) {\n\tvar isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate = arguments.length > 7 ? arguments[7] : void 0;\n\tvar { debug } = props;\n\tvar parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tif (!themes) themes = getConfig().themes;\n\tvar name = !propsKey && (!lastState || !(lastState === null || lastState === void 0 ? void 0 : lastState.isNew)) ? null : getNewThemeName(parentState === null || parentState === void 0 ? void 0 : parentState.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tvar isSameAsParent = parentState && (!name || name === parentState.name);\n\tvar shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || (lastState === null || lastState === void 0 ? void 0 : lastState.name) !== (parentState === null || parentState === void 0 ? void 0 : parentState.name)));\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tvar message = ` \\xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;\n\t\tconsole.info(message);\n\t}\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tvar next = lastState !== null && lastState !== void 0 ? lastState : parentState;\n\t\tif (!next) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no theme state was resolved (parentId: ${parentId}, id: ${id}).` : MISSING_THEME_MESSAGE);\n\t\tif (shouldRerender) return [true, { ...parentState || lastState }];\n\t\treturn [false, next];\n\t}\n\tvar scheme = getScheme(name);\n\tvar isInverse = parentState && scheme !== parentState.scheme;\n\tvar nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState === null || parentState === void 0 ? void 0 : parentState.name,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\tvar shouldAvoidRerender = pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name;\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` \\xB7 useTheme(${id}) \\u23ED\\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);\n\t\tconsole.info({\n\t\t\tlastState,\n\t\t\tneedsUpdate,\n\t\t\tnextState,\n\t\t\tpendingUpdate\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (shouldAvoidRerender) return [false, nextState];\n\treturn [true, nextState];\n};\nfunction scheduleUpdate(id) {\n\tvar queue = [id];\n\tvar visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tvar children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar childId = _step.value;\n\t\t\t\t\tif (!visited.has(childId)) {\n\t\t\t\t\t\tvisited.add(childId);\n\t\t\t\t\t\tqueue.push(childId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach(function(childId2) {\n\t\tvar cb = allListeners.get(childId2);\n\t\tcb === null || cb === void 0 || cb();\n\t});\n}\nvar validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName() {\n\tvar parentName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"\", props = arguments.length > 1 ? arguments[1] : void 0, forceUpdate = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n\tvar { name, reset } = props;\n\tvar componentName = props.unstyled ? void 0 : props.componentName;\n\tif (name && reset) throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C004` : \"Cannot reset and set a new name at the same time.\");\n\tvar cacheKey = `${parentName}|${name || \"\"}|${componentName || \"\"}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tvar cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tvar { themes: themes2 } = getConfig();\n\tif (reset) {\n\t\tif (parentName === \"light\" || parentName === \"dark\") {\n\t\t\tvar result = parentName === \"light\" ? \"dark\" : \"light\";\n\t\t\tthemeNameCache.set(cacheKey, result);\n\t\t\treturn result;\n\t\t}\n\t\tvar lastPartIndex = parentName.lastIndexOf(\"_\");\n\t\tvar name1 = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);\n\t\tvar scheme = parentName.slice(0, lastPartIndex);\n\t\tvar result1 = themes2[name1] ? name1 : scheme;\n\t\tthemeNameCache.set(cacheKey, result1);\n\t\treturn result1;\n\t}\n\tvar parentParts = parentName.split(\"_\");\n\tvar lastName = parentParts[parentParts.length - 1];\n\tif (lastName && lastName[0].toLowerCase() !== lastName[0]) parentParts.pop();\n\tvar subNames = [\n\t\tname && componentName ? `${name}_${componentName}` : void 0,\n\t\tname,\n\t\tcomponentName\n\t].filter(Boolean);\n\tvar found = null;\n\tif (name) {\n\t\tvar nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme) {\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = subNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar subName = _step.value;\n\t\t\t\t\tif (subName in themes2) {\n\t\t\t\t\t\tfound = subName;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!found && !nameHasScheme) {\n\t\t\tif (getScheme(parentName)) {\n\t\t\t\tvar potentialBases = [];\n\t\t\t\tfor (var i = parentParts.length; i >= 1; i--) potentialBases.push(parentParts.slice(0, i).join(\"_\"));\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\touter: for (var _iterator1 = potentialBases[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar base = _step1.value;\n\t\t\t\t\t\tvar candidates = [componentName ? `${base}_${name}_${componentName}` : void 0, `${base}_${name}`].filter(Boolean);\n\t\t\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tfor (var _iterator2 = candidates[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\t\t\tvar potential = _step2.value;\n\t\t\t\t\t\t\t\tif (potential in themes2) {\n\t\t\t\t\t\t\t\t\tfound = potential;\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (!found) if (!name && componentName) {\n\t\tvar potential1 = `${parentParts.join(\"_\")}_${componentName}`;\n\t\tif (potential1 in themes2) found = potential1;\n\t} else {\n\t\tvar max = parentParts.length;\n\t\tfor (var i1 = 0; i1 <= max; i1++) {\n\t\t\tvar base1 = (i1 === 0 ? parentParts : parentParts.slice(0, -i1)).join(\"_\");\n\t\t\tvar _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator3 = subNames[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\t\tvar subName1 = _step3.value;\n\t\t\t\t\tvar potential2 = base1 ? `${base1}_${subName1}` : subName1;\n\t\t\t\t\tif (potential2 in themes2) {\n\t\t\t\t\t\tfound = potential2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError3 = true;\n\t\t\t\t_iteratorError3 = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return != null) _iterator3.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError3) throw _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (found) break;\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) {\n\t\tthemeNameCache.set(cacheKey, null);\n\t\treturn null;\n\t}\n\tthemeNameCache.set(cacheKey, found);\n\treturn found;\n}\nvar getPropsKey = function(param) {\n\tvar { name, reset, forceClassName, componentName } = param;\n\treturn `${name || \"\"}${reset || \"\"}${forceClassName || \"\"}${componentName || \"\"}`;\n};\nvar hasThemeUpdatingProps = function(props) {\n\treturn \"name\" in props || \"reset\" in props || \"forceClassName\" in props;\n};\n\nexport { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, useThemeState };"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["supportsDynamicColorIOS","useIsomorphicLayoutEffect","createContext","useContext","useEffect","useId","useReducer","useRef","getConfig","getSetting","MISSING_THEME_MESSAGE","ThemeStateContext","allListeners","Map","listenersByParent","HasRenderedOnce","WeakMap","HadTheme","PendingUpdate","states","localStates","shouldForce","forceUpdateThemes","cacheVersion","forEach","cb","getThemeState","id","get","themeNameCache","themeNameCacheVer","themes","rootThemeState","getRootThemeState","getThemeBaseName","name","replace","incReducer","c","useThemeState","props","isRoot","arguments","length","keys","schemeKeys","cascadeOnChange","disable","parentId","Error","process","env","NODE_ENV","componentName","theme","light","propsKey","getPropsKey","ref","current","renderVersion","globalThis","time","forceUpdate","state","getSnapshotImpl","lastSnap","r","unsubscribe","subscribedParentId","cleanupThemeSubscription","shouldSubscribeToTheme","pid","sid","next","Set","add","set","_listenersByParent_pid","delete","cleanupThemeState","scheduleUpdate","debug","_states_get","console","warn","_r_keys_current","_r_props_needsUpdate","_r_props","hasThemeUpdatingProps","size","needsUpdate","call","_r_unsubscribe","_keys_current","_schemeKeys_current","_keys_current1","_props_needsUpdate","local","parentState","has","_parentName","_propsKey","isSchemeOnlyChange","scheme","_keys_current_size","keysSize","_schemeKeys_current_size","allKeysSchemeOptimized","canSkipForSchemeChange","passThrough","rerender","getNextState","groupCollapsed","info","groupEnd","Object","assign","lastState","pendingUpdate","isNew","getNewThemeName","isSameAsParent","shouldRerender","Boolean","message","_ref","_ref1","getScheme","isInverse","nextState","parentName","shouldAvoidRerender","queue","visited","children","shift","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","done","childId","value","push","err","return","childId2","validSchemes","dark","split","reset","unstyled","cacheKey","clear","cached","themes2","result","lastPartIndex","lastIndexOf","name1","slice","result1","parentParts","lastName","toLowerCase","pop","subNames","filter","found","nameHasScheme","subName","potentialBases","i","join","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","outer","_iterator1","_step1","base","candidates","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","potential","potential1","max","i1","base1","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","subName1","potential2","param","forceClassName"],"sources":["useThemeState.native.js"],"sourcesContent":["import { supportsDynamicColorIOS, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createContext, useContext, useEffect, useId, useReducer, useRef } from \"react\";\nimport { getConfig, getSetting } from \"../config\";\nimport { MISSING_THEME_MESSAGE } from \"../constants/constants\";\n\nvar ThemeStateContext = createContext(\"\");\nvar allListeners = /* @__PURE__ */ new Map();\nvar listenersByParent = {};\nvar HasRenderedOnce = /* @__PURE__ */ new WeakMap();\nvar HadTheme = /* @__PURE__ */ new WeakMap();\nvar PendingUpdate = /* @__PURE__ */ new Map();\nvar states = /* @__PURE__ */ new Map();\nvar localStates = /* @__PURE__ */ new Map();\nvar shouldForce = false;\nvar forceUpdateThemes = function() {\n\tcacheVersion++;\n\tshouldForce = true;\n\tallListeners.forEach(function(cb) {\n\t\treturn cb();\n\t});\n\tshouldForce = false;\n};\nvar getThemeState = function(id) {\n\treturn states.get(id);\n};\nvar cacheVersion = 0;\nvar themeNameCache = /* @__PURE__ */ new Map();\nvar themeNameCacheVer = -1;\nvar themes = null;\nvar rootThemeState = null;\nvar getRootThemeState = function() {\n\treturn rootThemeState;\n};\nvar getThemeBaseName = function(name) {\n\treturn name.replace(/^(light|dark)_/, \"\");\n};\nvar incReducer = function(c) {\n\treturn c + 1;\n};\nvar useThemeState = function(props) {\n\t\"use no memo\";\n\tvar isRoot = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false, keys = arguments.length > 2 ? arguments[2] : void 0, schemeKeys = arguments.length > 3 ? arguments[3] : void 0, cascadeOnChange = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : false;\n\tvar { disable } = props;\n\tvar parentId = useContext(ThemeStateContext);\n\tif (!parentId && !isRoot) throw new Error(process.env.NODE_ENV === \"development\" ? `${MISSING_THEME_MESSAGE}\n\nLooked for theme${props.name ? ` \"${props.name}\"` : \"\"}${props.componentName ? ` (component: ${props.componentName})` : \"\"}, but no parent theme context was found (parentId: ${parentId}).` : MISSING_THEME_MESSAGE);\n\tif (disable) return states.get(parentId) || {\n\t\tid: \"\",\n\t\tname: \"light\",\n\t\ttheme: getConfig().themes.light\n\t};\n\tvar id = useId();\n\tvar propsKey = getPropsKey(props);\n\tvar ref = useRef(null);\n\tif (!ref.current) ref.current = {\n\t\tid,\n\t\tparentId,\n\t\tprops,\n\t\tpropsKey,\n\t\tisRoot,\n\t\tkeys,\n\t\tschemeKeys,\n\t\trenderVersion: 0\n\t};\n\telse {\n\t\tref.current.props = props;\n\t\tref.current.propsKey = propsKey;\n\t\tref.current.isRoot = isRoot;\n\t\tref.current.keys = keys;\n\t\tref.current.schemeKeys = schemeKeys;\n\t\tref.current.parentId = parentId;\n\t}\n\tref.current.renderVersion++;\n\tif (process.env.NODE_ENV === \"development\" && globalThis.time) globalThis.time`theme-prep-uses`;\n\tvar [, forceUpdate] = useReducer(incReducer, 0);\n\tvar state = getSnapshotImpl(ref.current);\n\tref.current.lastSnap = state;\n\tuseEffect(function() {\n\t\tvar r = ref.current;\n\t\tvar renderVersion = r.renderVersion;\n\t\tif (r.unsubscribe && r.subscribedParentId !== r.parentId) cleanupThemeSubscription(r);\n\t\tif (shouldSubscribeToTheme(r, cascadeOnChange)) {\n\t\t\tif (!r.unsubscribe) {\n\t\t\t\tvar pid = r.parentId;\n\t\t\t\tvar sid = r.id;\n\t\t\t\tvar cb = function() {\n\t\t\t\t\tvar next = getSnapshotImpl(r);\n\t\t\t\t\tif (next !== r.lastSnap) {\n\t\t\t\t\t\tr.lastSnap = next;\n\t\t\t\t\t\tforceUpdate();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tlistenersByParent[pid] = listenersByParent[pid] || /* @__PURE__ */ new Set();\n\t\t\t\tlistenersByParent[pid].add(sid);\n\t\t\t\tallListeners.set(sid, function() {\n\t\t\t\t\tPendingUpdate.set(sid, shouldForce ? \"force\" : true);\n\t\t\t\t\tcb();\n\t\t\t\t});\n\t\t\t\tr.subscribedParentId = pid;\n\t\t\t\tr.unsubscribe = function() {\n\t\t\t\t\tvar _listenersByParent_pid;\n\t\t\t\t\tallListeners.delete(sid);\n\t\t\t\t\t(_listenersByParent_pid = listenersByParent[pid]) === null || _listenersByParent_pid === void 0 || _listenersByParent_pid.delete(sid);\n\t\t\t\t\tlocalStates.delete(sid);\n\t\t\t\t\tstates.delete(sid);\n\t\t\t\t\tPendingUpdate.delete(sid);\n\t\t\t\t\tr.unsubscribe = void 0;\n\t\t\t\t\tr.subscribedParentId = void 0;\n\t\t\t\t};\n\t\t\t}\n\t\t} else if (r.unsubscribe) cleanupThemeSubscription(r);\n\t\treturn function() {\n\t\t\tif (r.renderVersion === renderVersion) cleanupThemeState(r);\n\t\t};\n\t});\n\tif (cascadeOnChange) useIsomorphicLayoutEffect(function() {\n\t\tif (!HasRenderedOnce.get(keys)) {\n\t\t\tHasRenderedOnce.set(keys, true);\n\t\t\treturn;\n\t\t}\n\t\tif (!propsKey) {\n\t\t\tif (HadTheme.get(keys)) scheduleUpdate(id);\n\t\t\tHadTheme.set(keys, false);\n\t\t\treturn;\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\t\tvar _states_get;\n\t\t\tconsole.warn(` \\xB7 useTheme(${id}) scheduleUpdate`, propsKey, (_states_get = states.get(id)) === null || _states_get === void 0 ? void 0 : _states_get.name);\n\t\t}\n\t\tscheduleUpdate(id);\n\t\tHadTheme.set(keys, true);\n\t}, [keys, propsKey]);\n\treturn state;\n};\nvar shouldSubscribeToTheme = function(r, cascadeOnChange) {\n\tvar _r_keys_current, _r_props_needsUpdate, _r_props;\n\treturn r.isRoot || cascadeOnChange || hasThemeUpdatingProps(r.props) || !!((_r_keys_current = r.keys.current) === null || _r_keys_current === void 0 ? void 0 : _r_keys_current.size) || !!((_r_props_needsUpdate = (_r_props = r.props).needsUpdate) === null || _r_props_needsUpdate === void 0 ? void 0 : _r_props_needsUpdate.call(_r_props));\n};\nfunction cleanupThemeSubscription(r) {\n\tvar _r_unsubscribe;\n\t(_r_unsubscribe = r.unsubscribe) === null || _r_unsubscribe === void 0 || _r_unsubscribe.call(r);\n}\nfunction cleanupThemeState(r) {\n\tif (r.unsubscribe) cleanupThemeSubscription(r);\n\telse {\n\t\tlocalStates.delete(r.id);\n\t\tstates.delete(r.id);\n\t\tPendingUpdate.delete(r.id);\n\t}\n}\nvar getSnapshotImpl = function(r) {\n\tvar _keys_current, _schemeKeys_current, _keys_current1, _props_needsUpdate;\n\tvar { id, parentId, props, propsKey, isRoot, keys, schemeKeys } = r;\n\tvar local = localStates.get(id);\n\tvar parentState = states.get(parentId);\n\tif (local && !PendingUpdate.has(id)) {\n\t\tif (parentState && local._parentName === parentState.name && local._propsKey === propsKey) return local;\n\t}\n\tvar isSchemeOnlyChange = supportsDynamicColorIOS && getSetting(\"fastSchemeChange\") && local && parentState && local.scheme !== parentState.scheme && getThemeBaseName(local.name) === getThemeBaseName(parentState.name);\n\tvar _keys_current_size;\n\tvar keysSize = (_keys_current_size = keys === null || keys === void 0 ? void 0 : (_keys_current = keys.current) === null || _keys_current === void 0 ? void 0 : _keys_current.size) !== null && _keys_current_size !== void 0 ? _keys_current_size : 0;\n\tvar _schemeKeys_current_size;\n\tvar allKeysSchemeOptimized = ((_schemeKeys_current_size = schemeKeys === null || schemeKeys === void 0 ? void 0 : (_schemeKeys_current = schemeKeys.current) === null || _schemeKeys_current === void 0 ? void 0 : _schemeKeys_current.size) !== null && _schemeKeys_current_size !== void 0 ? _schemeKeys_current_size : 0) === keysSize && keysSize > 0;\n\tvar canSkipForSchemeChange = isSchemeOnlyChange && allKeysSchemeOptimized;\n\tvar needsUpdate = props.passThrough ? false : isRoot || props.name === \"light\" || props.name === \"dark\" || props.name === null ? true : !HasRenderedOnce.get(keys) ? true : canSkipForSchemeChange ? false : (keys === null || keys === void 0 ? void 0 : (_keys_current1 = keys.current) === null || _keys_current1 === void 0 ? void 0 : _keys_current1.size) ? true : (_props_needsUpdate = props.needsUpdate) === null || _props_needsUpdate === void 0 ? void 0 : _props_needsUpdate.call(props);\n\tvar [rerender, next] = getNextState(local, props, propsKey, isRoot, id, parentId, needsUpdate, PendingUpdate.get(id));\n\tPendingUpdate.delete(id);\n\tif (!local || rerender) {\n\t\tlocal = { ...next };\n\t\tlocalStates.set(id, local);\n\t}\n\tif (process.env.NODE_ENV === \"development\" && props.debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` ${id} getSnapshot ${rerender}`, local.name, \">\", next.name);\n\t\tconsole.info({\n\t\t\tprops,\n\t\t\tpropsKey,\n\t\t\tisRoot,\n\t\t\tparentId,\n\t\t\tlocal,\n\t\t\tnext,\n\t\t\tneedsUpdate,\n\t\t\tisSchemeOnlyChange,\n\t\t\tallKeysSchemeOptimized,\n\t\t\tcanSkipForSchemeChange\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (next !== local) {\n\t\tObject.assign(local, next);\n\t\tlocal.id = id;\n\t}\n\tlocal._parentName = parentState === null || parentState === void 0 ? void 0 : parentState.name;\n\tlocal._propsKey = propsKey;\n\tstates.set(id, next);\n\treturn local;\n};\nvar getNextState = function(lastState, props, propsKey) {\n\tvar isRoot = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, id = arguments.length > 4 ? arguments[4] : void 0, parentId = arguments.length > 5 ? arguments[5] : void 0, needsUpdate = arguments.length > 6 ? arguments[6] : void 0, pendingUpdate = arguments.length > 7 ? arguments[7] : void 0;\n\tvar { debug } = props;\n\tvar parentState = states.get(parentId);\n\tif (props.passThrough) return [false, lastState || parentState || { name: \"\" }];\n\tif (!themes) themes = getConfig().themes;\n\tvar name = !propsKey && (!lastState || !(lastState === null || lastState === void 0 ? void 0 : lastState.isNew)) ? null : getNewThemeName(parentState === null || parentState === void 0 ? void 0 : parentState.name, props, pendingUpdate === \"force\" ? true : !!needsUpdate);\n\tvar isSameAsParent = parentState && (!name || name === parentState.name);\n\tvar shouldRerender = Boolean(pendingUpdate === \"force\" || needsUpdate && (pendingUpdate || (lastState === null || lastState === void 0 ? void 0 : lastState.name) !== (parentState === null || parentState === void 0 ? void 0 : parentState.name)));\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tvar message = ` \\xB7 useTheme(${id}) getNextState => ${name} needsUpdate ${needsUpdate} shouldRerender ${shouldRerender}`;\n\t\tconsole.info(message);\n\t}\n\tif (isSameAsParent) {\n\t\tif (!shouldRerender && lastState && lastState.name === parentState.name) return [false, lastState];\n\t\treturn [shouldRerender, {\n\t\t\t...parentState,\n\t\t\tisNew: false\n\t\t}];\n\t}\n\tif (!name) {\n\t\tvar _ref, _ref1;\n\t\tvar next = (_ref1 = (_ref = lastState !== null && lastState !== void 0 ? lastState : parentState) !== null && _ref !== void 0 ? _ref : rootThemeState) !== null && _ref1 !== void 0 ? _ref1 : {\n\t\t\tid,\n\t\t\tname: \"light\",\n\t\t\ttheme: getConfig().themes.light\n\t\t};\n\t\tif (shouldRerender) return [true, { ...parentState || lastState || next }];\n\t\treturn [false, next];\n\t}\n\tvar scheme = getScheme(name);\n\tvar isInverse = parentState && scheme !== parentState.scheme;\n\tvar nextState = {\n\t\tid,\n\t\tname,\n\t\ttheme: themes[name],\n\t\tscheme,\n\t\tparentId,\n\t\tparentName: parentState === null || parentState === void 0 ? void 0 : parentState.name,\n\t\tisInverse,\n\t\tisNew: true\n\t};\n\tif (isRoot) rootThemeState = nextState;\n\tif (pendingUpdate !== \"force\" && lastState && lastState.name === name) return [false, nextState];\n\tvar shouldAvoidRerender = pendingUpdate !== \"force\" && lastState && !needsUpdate && nextState.name === lastState.name;\n\tif (process.env.NODE_ENV === \"development\" && debug === \"verbose\") {\n\t\tconsole.groupCollapsed(` \\xB7 useTheme(${id}) \\u23ED\\uFE0F ${name} shouldAvoidRerender: ${shouldAvoidRerender}`);\n\t\tconsole.info({\n\t\t\tlastState,\n\t\t\tneedsUpdate,\n\t\t\tnextState,\n\t\t\tpendingUpdate\n\t\t});\n\t\tconsole.groupEnd();\n\t}\n\tif (shouldAvoidRerender) return [false, nextState];\n\treturn [true, nextState];\n};\nfunction scheduleUpdate(id) {\n\tvar queue = [id];\n\tvar visited = /* @__PURE__ */ new Set();\n\twhile (queue.length) {\n\t\tvar children = listenersByParent[queue.shift()];\n\t\tif (children) {\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar childId = _step.value;\n\t\t\t\t\tif (!visited.has(childId)) {\n\t\t\t\t\t\tvisited.add(childId);\n\t\t\t\t\t\tqueue.push(childId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvisited.forEach(function(childId2) {\n\t\tvar cb = allListeners.get(childId2);\n\t\tcb === null || cb === void 0 || cb();\n\t});\n}\nvar validSchemes = {\n\tlight: \"light\",\n\tdark: \"dark\"\n};\nfunction getScheme(name) {\n\treturn validSchemes[name.split(\"_\")[0]];\n}\nfunction getNewThemeName() {\n\tvar parentName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : \"\", props = arguments.length > 1 ? arguments[1] : void 0, forceUpdate = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;\n\tvar { name, reset } = props;\n\tvar componentName = props.unstyled ? void 0 : props.componentName;\n\tif (name && reset) throw new Error(process.env.NODE_ENV === \"production\" ? `\\u274C004` : \"Cannot reset and set a new name at the same time.\");\n\tvar cacheKey = `${parentName}|${name || \"\"}|${componentName || \"\"}|${reset ? 1 : 0}|${forceUpdate ? 1 : 0}`;\n\tif (themeNameCacheVer !== cacheVersion) {\n\t\tthemeNameCache.clear();\n\t\tthemeNameCacheVer = cacheVersion;\n\t} else {\n\t\tvar cached = themeNameCache.get(cacheKey);\n\t\tif (cached !== void 0) return cached;\n\t}\n\tvar { themes: themes2 } = getConfig();\n\tif (reset) {\n\t\tif (parentName === \"light\" || parentName === \"dark\") {\n\t\t\tvar result = parentName === \"light\" ? \"dark\" : \"light\";\n\t\t\tthemeNameCache.set(cacheKey, result);\n\t\t\treturn result;\n\t\t}\n\t\tvar lastPartIndex = parentName.lastIndexOf(\"_\");\n\t\tvar name1 = lastPartIndex <= 0 ? parentName : parentName.slice(lastPartIndex);\n\t\tvar scheme = parentName.slice(0, lastPartIndex);\n\t\tvar result1 = themes2[name1] ? name1 : scheme;\n\t\tthemeNameCache.set(cacheKey, result1);\n\t\treturn result1;\n\t}\n\tvar parentParts = parentName.split(\"_\");\n\tvar lastName = parentParts[parentParts.length - 1];\n\tif (lastName && lastName[0].toLowerCase() !== lastName[0]) parentParts.pop();\n\tvar subNames = [\n\t\tname && componentName ? `${name}_${componentName}` : void 0,\n\t\tname,\n\t\tcomponentName\n\t].filter(Boolean);\n\tvar found = null;\n\tif (name) {\n\t\tvar nameHasScheme = getScheme(name);\n\t\tif (nameHasScheme) {\n\t\t\tvar _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator = subNames[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t\t\t\t\tvar subName = _step.value;\n\t\t\t\t\tif (subName in themes2) {\n\t\t\t\t\t\tfound = subName;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError = true;\n\t\t\t\t_iteratorError = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion && _iterator.return != null) _iterator.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError) throw _iteratorError;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!found && !nameHasScheme) {\n\t\t\tif (getScheme(parentName)) {\n\t\t\t\tvar potentialBases = [];\n\t\t\t\tfor (var i = parentParts.length; i >= 1; i--) potentialBases.push(parentParts.slice(0, i).join(\"_\"));\n\t\t\t\tvar _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n\t\t\t\ttry {\n\t\t\t\t\touter: for (var _iterator1 = potentialBases[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n\t\t\t\t\t\tvar base = _step1.value;\n\t\t\t\t\t\tvar candidates = [componentName ? `${base}_${name}_${componentName}` : void 0, `${base}_${name}`].filter(Boolean);\n\t\t\t\t\t\tvar _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tfor (var _iterator2 = candidates[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n\t\t\t\t\t\t\t\tvar potential = _step2.value;\n\t\t\t\t\t\t\t\tif (potential in themes2) {\n\t\t\t\t\t\t\t\t\tfound = potential;\n\t\t\t\t\t\t\t\t\tbreak outer;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t_didIteratorError2 = true;\n\t\t\t\t\t\t\t_iteratorError2 = err;\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (!_iteratorNormalCompletion2 && _iterator2.return != null) _iterator2.return();\n\t\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\t\tif (_didIteratorError2) throw _iteratorError2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (err) {\n\t\t\t\t\t_didIteratorError1 = true;\n\t\t\t\t\t_iteratorError1 = err;\n\t\t\t\t} finally {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (!_iteratorNormalCompletion1 && _iterator1.return != null) _iterator1.return();\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif (_didIteratorError1) throw _iteratorError1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tif (!found) if (!name && componentName) {\n\t\tvar potential1 = `${parentParts.join(\"_\")}_${componentName}`;\n\t\tif (potential1 in themes2) found = potential1;\n\t} else {\n\t\tvar max = parentParts.length;\n\t\tfor (var i1 = 0; i1 <= max; i1++) {\n\t\t\tvar base1 = (i1 === 0 ? parentParts : parentParts.slice(0, -i1)).join(\"_\");\n\t\t\tvar _iteratorNormalCompletion3 = true, _didIteratorError3 = false, _iteratorError3 = void 0;\n\t\t\ttry {\n\t\t\t\tfor (var _iterator3 = subNames[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n\t\t\t\t\tvar subName1 = _step3.value;\n\t\t\t\t\tvar potential2 = base1 ? `${base1}_${subName1}` : subName1;\n\t\t\t\t\tif (potential2 in themes2) {\n\t\t\t\t\t\tfound = potential2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_didIteratorError3 = true;\n\t\t\t\t_iteratorError3 = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_iteratorNormalCompletion3 && _iterator3.return != null) _iterator3.return();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_didIteratorError3) throw _iteratorError3;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (found) break;\n\t\t}\n\t}\n\tif (!forceUpdate && found === parentName && !validSchemes[found]) {\n\t\tthemeNameCache.set(cacheKey, null);\n\t\treturn null;\n\t}\n\tthemeNameCache.set(cacheKey, found);\n\treturn found;\n}\nvar getPropsKey = function(param) {\n\tvar { name, reset, forceClassName, componentName } = param;\n\treturn `${name || \"\"}${reset || \"\"}${forceClassName || \"\"}${componentName || \"\"}`;\n};\nvar hasThemeUpdatingProps = function(props) {\n\treturn \"name\" in props || \"reset\" in props || \"forceClassName\" in props;\n};\n\nexport { ThemeStateContext, forceUpdateThemes, getRootThemeState, getThemeState, hasThemeUpdatingProps, useThemeState };"],"mappings":"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","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -48,9 +48,9 @@ import { getConfig, getSetting, getStyleCompat, getThemes, getToken, getTokens,
48
48
  import { setNonce } from "./helpers/insertStyleRule.mjs";
49
49
  export * from "./constants/constants.mjs";
50
50
  export * from "./hooks/useIsTouchDevice.mjs";
51
- import { _disableMediaTouch, configureMedia, mediaKeyMatch, useMedia } from "./hooks/useMedia.mjs";
51
+ import { _disableMediaTouch, configureMedia, mediaKeyMatch, updateMediaListeners, useMedia } from "./hooks/useMedia.mjs";
52
52
  import { mediaObjectToString } from "./helpers/mediaObjectToString.mjs";
53
- import { getMedia, mediaQueryConfig, mediaState } from "./helpers/mediaState.mjs";
53
+ import { getMedia, mediaQueryConfig, mediaState, setMediaState } from "./helpers/mediaState.mjs";
54
54
  export * from "./hooks/useProps.mjs";
55
55
  export * from "./hooks/useTheme.mjs";
56
56
  export * from "./hooks/useThemeName.mjs";
@@ -70,5 +70,5 @@ export * from "@tamagui/helpers";
70
70
  export * from "@tamagui/use-did-finish-ssr";
71
71
  export * from "@tamagui/use-event";
72
72
  export * from "./setupHooks.mjs";
73
- export { _disableMediaTouch, autoVariables, configureMedia, forceUpdateThemes, getConfig, getMedia, getSetting, getStyleCompat, getThemes, getToken, getTokenValue, getTokens, insertStyleRules, loadAnimationDriver, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mutatedAutoVariables, setConfig, setNonce, setupDev, updateConfig, useMedia };
73
+ export { _disableMediaTouch, autoVariables, configureMedia, forceUpdateThemes, getConfig, getMedia, getSetting, getStyleCompat, getThemes, getToken, getTokenValue, getTokens, insertStyleRules, loadAnimationDriver, mediaKeyMatch, mediaObjectToString, mediaQueryConfig, mediaState, mutatedAutoVariables, setConfig, setMediaState, setNonce, setupDev, updateConfig, updateMediaListeners, useMedia };
74
74
  //# sourceMappingURL=index.js.map