@tamagui/core 1.0.1-beta.117 → 1.0.1-beta.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/helpers/getSplitStyles.js.map +2 -2
- package/dist/cjs/hooks/useMedia.js +7 -7
- package/dist/cjs/hooks/useMedia.js.map +2 -2
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/helpers/getSplitStyles.js.map +2 -2
- package/dist/esm/hooks/useMedia.js +8 -8
- package/dist/esm/hooks/useMedia.js.map +2 -2
- package/package.json +8 -8
- package/types/Tamagui.d.ts +1 -1
- package/types/conf.d.ts +1 -1
- package/types/helpers/getSplitStyles.d.ts +2 -2
- package/types/helpers/getSplitStyles.d.ts.map +1 -1
- package/types/hooks/useMedia.d.ts +5 -5
- package/types/hooks/useMedia.d.ts.map +1 -1
- package/types/types.d.ts +2 -3
- package/types/types.d.ts.map +1 -1
- package/types/views/ThemeProvider.d.ts +0 -1
- package/types/views/ThemeProvider.d.ts.map +1 -1
- package/types/helpers/wrapThemeManagerContext.d.ts +0 -1
- package/types/helpers/wrapThemeManagerContext.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/getSplitStyles.tsx"],
|
|
4
|
-
"sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport type {\n DebugProp,\n MediaKeys,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { FontLanguageProps, LanguageContextType } from '../views/FontLanguage.types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixStyles } from './expandStyles'\nimport { getAtomicStyle, getStylesAtomic, styleToCSS } from './getStylesAtomic'\nimport {\n PartialStyleObject,\n RulesToInsert,\n insertStyleRules,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n languageContext?: LanguageContextType,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaKeys, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: RulesToInsert\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n languageContext,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n const usedKeys = new Set<string>()\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n const len = propKeys.length\n const rulesToInsert: RulesToInsert = []\n const style: ViewStyle = {}\n // TODO make this CSS, not compile-friendly\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n }\n\n // loop backwards so we can skip already-used props\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n }\n\n if (state.keepVariantsAsProps) {\n if (staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {\n viewProps[keyInit] = valInit\n }\n }\n\n /**\n * There's (some) reason to this madness: we want to allow returning media/pseudo from variants\n * Say you have a variant hoverable: { true: { hoverStyle: {} } }\n * We run propMapper first to expand variant, then we run the inner loop and look again\n * for if there's a pseudo/media returned from it.\n */\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n props,\n state,\n languageContext,\n undefined,\n debug\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \uD83D\uDD39 getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext,\n true\n )\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, style)\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, out)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n // if (key === 'pointerEvents') {\n // // pointer events can be box-none which requires css\n // addStyleToInsertRules(out.identifier, out.styleRule)\n // mergeClassName(fullKey, out.identifier, true)\n // } else {\n style[key] = normalizeValueWithProperty(val, key)\n // }\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n fixStyles(style)\n if (isWeb) {\n styleToCSS(style)\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n // pointerEvents box-none must be CSS-ified\n // should probably have a few more exceptions here!\n if (key === 'pointerEvents' || !state.dynamicStylesInline) {\n addStyleToInsertRules(rulesToInsert, atomicStyle)\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n } else {\n if (classNames && state.resolveVariablesAs === 'value') {\n // getting real values for colors for animations (reverse mapped from CSS)\n // this isn't beautiful, but will do relatively fine performance for now\n // has a bug still - try adding <Switch theme=\"bouncy\" /> should animate bg color on active\n // const selectors = getAllSelectors()\n // for (const key in classNames) {\n // if (key.endsWith('Color')) {\n // const selector = classNames[key]\n // let value = selectorValuesCache[selector]\n // if (!value) {\n // const css = selectors[selector]\n // value = css.replace(/.*:/, '').replace(/;.*/, '')\n // if (value) {\n // const themeUnwrapped = getThemeUnwrapped(theme)\n // const map = themeToVariableToValueMap.get(themeUnwrapped)\n // if (map && value.startsWith('var(')) {\n // value = map[value]\n // }\n // if (value) {\n // selectorValuesCache[selector] = value\n // }\n // } else {\n // // err\n // continue\n // }\n // }\n // if (value) {\n // style[key] = value\n // }\n // }\n // }\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Error no transform', transforms, namespace)\n }\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyleToInsertRules(rulesToInsert, {\n identifier,\n rules: [rule],\n property: namespace,\n })\n }\n }\n classNames[namespace] = identifier\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state, rulesToInsert })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\n/**\n * getSubStyle calls propMapper with props\n * those should be specific to the substyle, but fallback to the base props\n * so given props:\n *\n * { fontSize: 12, color: 'red', $sm: { color: 'blue' } }\n *\n * getSubStyle props should be a proxy that ends up like:\n *\n * { fontSize: 12, color: 'blue' }\n *\n * and to avoid re-creating it over and over, use a WeakMap\n */\nconst propProxies = new WeakMap()\nfunction getSubStyleProxiedProps(baseProps: Object, specificProps: Object) {\n if (!specificProps) {\n // functional variants may want to eventually do something like:\n // have a hooks-like rule (no conditionals)\n // then we run them once on compile with a proxy to capture the keys accessed\n // then add those keys to `inlineProps` so we know we must inline them\n // for now this will trigger because compiled away\n // right now also we don't pass in any pre-extracted styled() props but we should pass them in..\n return baseProps\n }\n // can cache based only on specific it's always referentially consistent with base\n if (propProxies.has(specificProps)) {\n return propProxies.get(specificProps)\n }\n const next = new Proxy(specificProps, {\n ownKeys() {\n return [...new Set([...Object.keys(baseProps), ...Object.keys(specificProps)])]\n },\n has(_, key) {\n return key in specificProps || key in baseProps\n },\n get(_, key) {\n return specificProps[key] ?? baseProps[key]\n },\n })\n propProxies.set(specificProps, next)\n return next\n}\n\nexport const getSubStyle = (\n subKey: string,\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n conf: TamaguiInternalConfig,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (let key in styleIn) {\n const val = styleIn[key]\n key = conf.shorthands[key] || key\n const expanded = staticConfig.propMapper(\n key,\n val,\n theme,\n getSubStyleProxiedProps(props, props[subKey]),\n state,\n languageContext,\n avoidDefaultProps\n )\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = normalizeValueWithProperty(sval, key)\n }\n }\n }\n\n fixStyles(styleOut)\n\n return styleOut\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n insertStyleRules(res.rulesToInsert)\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n insertStyleRules(res.rulesToInsert)\n }, [res.rulesToInsert])\n\n return res\n}\n\nfunction addStyleToInsertRules(rulesToInsert: RulesToInsert, styleObject: PartialStyleObject) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (\n styleObject.property === 'pointerEvents' ||\n updateInsertedCache(styleObject.identifier, styleObject.rules) ||\n (!isClient && process.env.NODE_ENV === 'production')\n ) {\n rulesToInsert.push(styleObject)\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAkF;AAClF,mBAAmC;AAGnC,kBAA0B;AAC1B,sBAA2D;AAC3D,sBAA6C;
|
|
4
|
+
"sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport type {\n DebugProp,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { FontLanguageProps, LanguageContextType } from '../views/FontLanguage.types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixStyles } from './expandStyles'\nimport { getAtomicStyle, getStylesAtomic, styleToCSS } from './getStylesAtomic'\nimport {\n PartialStyleObject,\n RulesToInsert,\n insertStyleRules,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n languageContext?: LanguageContextType,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaQueryKey, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: RulesToInsert\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n languageContext,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaQueryKey, ViewStyle> = {}\n const usedKeys = new Set<string>()\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n const len = propKeys.length\n const rulesToInsert: RulesToInsert = []\n const style: ViewStyle = {}\n // TODO make this CSS, not compile-friendly\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n }\n\n // loop backwards so we can skip already-used props\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n }\n\n if (state.keepVariantsAsProps) {\n if (staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {\n viewProps[keyInit] = valInit\n }\n }\n\n /**\n * There's (some) reason to this madness: we want to allow returning media/pseudo from variants\n * Say you have a variant hoverable: { true: { hoverStyle: {} } }\n * We run propMapper first to expand variant, then we run the inner loop and look again\n * for if there's a pseudo/media returned from it.\n */\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n props,\n state,\n languageContext,\n undefined,\n debug\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \uD83D\uDD39 getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext,\n true\n )\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, style)\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, out)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n // if (key === 'pointerEvents') {\n // // pointer events can be box-none which requires css\n // addStyleToInsertRules(out.identifier, out.styleRule)\n // mergeClassName(fullKey, out.identifier, true)\n // } else {\n style[key] = normalizeValueWithProperty(val, key)\n // }\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n fixStyles(style)\n if (isWeb) {\n styleToCSS(style)\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n // pointerEvents box-none must be CSS-ified\n // should probably have a few more exceptions here!\n if (key === 'pointerEvents' || !state.dynamicStylesInline) {\n addStyleToInsertRules(rulesToInsert, atomicStyle)\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n } else {\n if (classNames && state.resolveVariablesAs === 'value') {\n // getting real values for colors for animations (reverse mapped from CSS)\n // this isn't beautiful, but will do relatively fine performance for now\n // has a bug still - try adding <Switch theme=\"bouncy\" /> should animate bg color on active\n // const selectors = getAllSelectors()\n // for (const key in classNames) {\n // if (key.endsWith('Color')) {\n // const selector = classNames[key]\n // let value = selectorValuesCache[selector]\n // if (!value) {\n // const css = selectors[selector]\n // value = css.replace(/.*:/, '').replace(/;.*/, '')\n // if (value) {\n // const themeUnwrapped = getThemeUnwrapped(theme)\n // const map = themeToVariableToValueMap.get(themeUnwrapped)\n // if (map && value.startsWith('var(')) {\n // value = map[value]\n // }\n // if (value) {\n // selectorValuesCache[selector] = value\n // }\n // } else {\n // // err\n // continue\n // }\n // }\n // if (value) {\n // style[key] = value\n // }\n // }\n // }\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Error no transform', transforms, namespace)\n }\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyleToInsertRules(rulesToInsert, {\n identifier,\n rules: [rule],\n property: namespace,\n })\n }\n }\n classNames[namespace] = identifier\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state, rulesToInsert })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\n/**\n * getSubStyle calls propMapper with props\n * those should be specific to the substyle, but fallback to the base props\n * so given props:\n *\n * { fontSize: 12, color: 'red', $sm: { color: 'blue' } }\n *\n * getSubStyle props should be a proxy that ends up like:\n *\n * { fontSize: 12, color: 'blue' }\n *\n * and to avoid re-creating it over and over, use a WeakMap\n */\nconst propProxies = new WeakMap()\nfunction getSubStyleProxiedProps(baseProps: Object, specificProps: Object) {\n if (!specificProps) {\n // functional variants may want to eventually do something like:\n // have a hooks-like rule (no conditionals)\n // then we run them once on compile with a proxy to capture the keys accessed\n // then add those keys to `inlineProps` so we know we must inline them\n // for now this will trigger because compiled away\n // right now also we don't pass in any pre-extracted styled() props but we should pass them in..\n return baseProps\n }\n // can cache based only on specific it's always referentially consistent with base\n if (propProxies.has(specificProps)) {\n return propProxies.get(specificProps)\n }\n const next = new Proxy(specificProps, {\n ownKeys() {\n return [...new Set([...Object.keys(baseProps), ...Object.keys(specificProps)])]\n },\n has(_, key) {\n return key in specificProps || key in baseProps\n },\n get(_, key) {\n return specificProps[key] ?? baseProps[key]\n },\n })\n propProxies.set(specificProps, next)\n return next\n}\n\nexport const getSubStyle = (\n subKey: string,\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n conf: TamaguiInternalConfig,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (let key in styleIn) {\n const val = styleIn[key]\n key = conf.shorthands[key] || key\n const expanded = staticConfig.propMapper(\n key,\n val,\n theme,\n getSubStyleProxiedProps(props, props[subKey]),\n state,\n languageContext,\n avoidDefaultProps\n )\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = normalizeValueWithProperty(sval, key)\n }\n }\n }\n\n fixStyles(styleOut)\n\n return styleOut\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n insertStyleRules(res.rulesToInsert)\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n insertStyleRules(res.rulesToInsert)\n }, [res.rulesToInsert])\n\n return res\n}\n\nfunction addStyleToInsertRules(rulesToInsert: RulesToInsert, styleObject: PartialStyleObject) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (\n styleObject.property === 'pointerEvents' ||\n updateInsertedCache(styleObject.identifier, styleObject.rules) ||\n (!isClient && process.env.NODE_ENV === 'production')\n ) {\n rulesToInsert.push(styleObject)\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAkF;AAClF,mBAAmC;AAGnC,kBAA0B;AAC1B,sBAA2D;AAC3D,sBAA6C;AAa7C,8BAAiC;AACjC,0BAA0B;AAC1B,6BAA4D;AAC5D,6BAOO;AACP,4BAA+B;AAC/B,wCAA2C;AAC3C,+BAAkC;AAMlC,MAAM,YAAY;AAAA,EAChB,WAAW;AAAA,EACX,aAAa;AAAA,EACb,OAAO;AAAA,EACP,eAAe;AAAA,EAEf,GAAI,CAAC,yBAAS;AAAA,IACZ,KAAK;AAAA,IACL,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,cAAc;AAAA,IACd,wBAAwB;AAAA,IACxB,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,WAAW;AAAA,IACX,WAAW;AAAA,EACb;AACF;AAIA,IAAI;AAmBG,MAAM,aAAa;AAInB,MAAM,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACT;AASO,MAAM,iBAAgC,CAC3C,OACA,cACA,OACA,OACA,mBACA,iBACA,UACG;AAzGL;AA0GE,SAAO,QAAQ,2BAAU;AACzB,QAAM,kBAAkB,aAAa,SAAS,gCAAiB;AAC/D,QAAM,YAAwB,CAAC;AAC/B,QAAM,UAAwB,CAAC;AAC/B,QAAM,SAA2C,CAAC;AAClD,QAAM,WAAW,oBAAI,IAAY;AACjC,QAAM,WAAW,OAAO,KAAK,KAAK;AAClC,QAAM,kBAAmB,0BAAS,QAAQ,IAAI,cAAc,gBAAgB,CAAC,MAAM;AACnF,QAAM,MAAM,SAAS;AACrB,QAAM,gBAA+B,CAAC;AACtC,QAAM,QAAmB,CAAC;AAE1B,MAAI,MAAM,iBAAiB;AAEzB,UAAM,UAAU;AAAA,EAClB;AACA,MAAI,aAA+B,CAAC;AAGpC,MAAI,aAAa;AAEjB,0BAAwB,KAAa,KAAa,kBAAkB,OAAO;AACzE,QAAI,QAAQ,IAAI,mBAAmB,OAAO;AAExC,UAAI,CAAC;AAAK;AACV,UAAI,IAAI,WAAW,aAAa,GAAG;AACjC,cAAM,YAAmC,kBAAkB,MAAM;AAEjE,YAAI,YAAY,0CAAmB;AACnC,YAAI,0BAAU;AACZ,cAAI,CAAC,WAAW;AAEd,uDAAe;AACf,wBAAY,0CAAmB;AAC/B,gBAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,kBAAI,CAAC,WAAW;AACd,wBAAQ,KAAK,sBAAsB,EAAE,+DAAoB,IAAI,CAAC;AAAA,cAChE;AAAA,YACF;AAAA,UACF;AACA,cAAI,CAAC,WAAW;AACd,gBAAI,yBAAS,IAAI,OAAO,KAAK;AAE3B,0BAAY;AAAA,YACd;AAAA,UACF;AACA,cAAI,QAAQ,IAAI,aAAa,iBAAiB,UAAU,WAAW;AAEjE,oBAAQ,IAAI,uDAAgD,EAAE,KAAK,KAAK,WAAW,WAAW,8DAAmB,CAAC;AAAA,UACpH;AAAA,QACF;AACA,qBAAa,cAAc,CAAC;AAC5B,mBAAW,aAAa,WAAW,cAAc,CAAC,IAAI,EAAE;AACxD,cAAM,aAAa,IAAI,QAAQ,cAAc,EAAE;AAC/C,mBAAW,WAAW,MAAM;AAE5B,YAAI,WAAW;AACb,qBAAW,WAAW,MAAM;AAAA,QAC9B;AAAA,MACF,OAAO;AACL,mBAAW,OAAO;AAAA,MACpB;AAAA,IACF;AAAA,EACF;AAGA,WAAS,IAAI,MAAM,GAAG,KAAK,GAAG,KAAK;AACjC,UAAM,UAAU,SAAS;AAEzB,QAAI,SAAS,IAAI,OAAO;AAAG;AAC3B,QAAI,UAAU;AAAU;AACxB,QAAI,CAAC,yBAAS,QAAQ,WAAW,OAAO;AAAG;AAE3C,UAAM,UAAU,MAAM;AAEtB,QAAI,YAAY,WAAW,QAAQ,WAAW,QAAQ,GAAG;AACvD,UAAI,CAAC;AAAS;AACd,iBAAW,OAAO,SAAS;AACzB,YAAI,SAAS,IAAI,GAAG;AAAG;AACvB,YAAI,WAAW,OAAO,YAAY,UAAU;AAE1C,qBAAW,QAAQ,SAAS;AAC1B,gBAAI,SAAS,IAAI,IAAI;AAAG;AACxB,qBAAS,IAAI,IAAI;AACjB,kBAAM,QAAQ,QAAQ;AAAA,UACxB;AAAA,QACF,OAAO;AACL,mBAAS,IAAI,GAAG;AAChB,gBAAM,OAAO;AAAA,QACf;AAAA,MACF;AACA;AAAA,IACF;AAEA,QAAI,QAAQ,IAAI,mBAAmB,OAAO;AACxC,UAAI,YAAY,aAAa;AAC3B,YAAI,cAAc;AAClB,YAAI,CAAC;AAAS;AACd,mBAAW,MAAM,QAAQ,MAAM,GAAG,GAAG;AACnC,cAAI,GAAG,OAAO,KAAK;AAEjB,kBAAM,CAAC,WAAW,iBAAiB,GAAG,MAAM,CAAC,EAAE,MAAM,GAAG;AACxD,kBAAM,WAAU,cAAc,OAAO;AACrC,kBAAM,YAAW,cAAc,OAAO;AACtC,kBAAM,mBAAkB,YAAW;AACnC,gBAAI,UAAU,KAAK,WAAW;AAC9B,gBAAI,UAAS;AAEX,kBAAI,gBAAgB,cAAc,MAAM,CAAC;AACzC,8BAAgB,cAAc,MAAM,GAAG,cAAc,QAAQ,GAAG,CAAC;AACjE,yBAAW,GAAG,aAAa;AAAA,YAC7B,WAAW,WAAU;AAEnB,oBAAM,iBAAiB,cAAc,MAAM,CAAC;AAC5C,yBAAW,GAAG,aAAa;AAAA,YAC7B;AACA,qBAAS,IAAI,OAAO;AACpB,2BAAe,SAAS,IAAI,gBAAe;AAAA,UAC7C,OAAO;AACL,2BAAe,MAAM;AAAA,UACvB;AAAA,QACF;AACA,YAAI,aAAa;AACf,mBAAS,IAAI,OAAO;AACpB,yBAAe,SAAS,WAAW;AAAA,QACrC;AACA;AAAA,MACF;AAEA,UAAI,WAAW,QAAQ,OAAO,KAAK;AAGjC,cAAM,mBAAmB,2BAAY;AACrC,cAAM,mBACJ,CAAC,oBACD,QAAQ,SAAS,UAAU,KAC3B,2BAAY,QAAQ,MAAM,UAAU,EAAE;AACxC,YAAI,oBAAoB,kBAAiB;AACvC,mBAAS,IAAI,OAAO;AACpB,yBAAe,SAAS,SAAS,gBAAe;AAChD;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,QAAI,MAAM,qBAAqB;AAC7B,UAAI,aAAa,mBAAmB,WAAW,aAAa,iBAAiB;AAC3E,kBAAU,WAAW;AAAA,MACvB;AAAA,IACF;AASA,QAAI,UAAU,QAAQ,OAAO;AAC7B,QAAI,WAAW,+BAAgB;AAC/B,QAAI,kBAAkB,WAAW;AAEjC,QACE,CAAC,WACD,CAAC,YACD,CAAC,oBAAa,aAAb,mBAAwB,aACzB,CAAC,gBAAgB,YACjB,CAAC,KAAK,WAAW,UACjB;AACA,eAAS,IAAI,OAAO;AACpB,gBAAU,WAAW;AACrB;AAAA,IACF;AAEA,UAAM,WACJ,WAAW,WACP,CAAC,CAAC,SAAS,OAAO,CAAC,IACnB,aAAa,WACX,SACA,SACA,OACA,OACA,OACA,iBACA,QACA,KACF;AAEN,QAAI,QAAQ,IAAI,aAAa,iBAAiB,UAAU,WAAW;AACjE,cAAQ,IAAI,8BAAuB,SAAS,SAAS,QAAQ;AAAA,IAC/D;AAEA,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,eAAW,CAAC,KAAK,QAAQ,UAAU;AACjC,UAAI,QAAQ;AAAW;AAEvB,gBAAU,IAAI,OAAO;AACrB,iBAAW,+BAAgB;AAC3B,wBAAkB,WAAW;AAE7B,UAAI,CAAC,iBAAiB;AACpB,YAAI,SAAS,IAAI,GAAG;AAAG;AAAA,MACzB;AAEA,UACG,aAAa,cAAc,aAAa,WAAW,IAAI,GAAG,KAC1D,aAAa,eAAe,aAAa,YAAY,IAAI,GAAG,KAC5D,aAAa,yBAAyB,aAAa,sBAAsB,IAAI,GAAG,GACjF;AACA,iBAAS,IAAI,GAAG;AAChB,kBAAU,OAAO,MAAM,QAAQ;AAAA,MACjC;AAGA,UAAI,UAAU;AACZ,YAAI,CAAC;AAAK;AACV,YAAI,QAAQ,gBAAgB,MAAM,SAAS;AAEzC;AAAA,QACF;AACA,gBAAQ,OAAO,QAAQ,QAAQ,CAAC;AAChC,gBAAQ,OAAO,YACb,KACA,KACA,cACA,OACA,OACA,OACA,MACA,iBACA,IACF;AACA,YAAI,iBAAiB;AACnB,gBAAM,eAAe,2CAAe,QAAQ,MAAM,2CAAkB,IAAI;AACxE,qBAAW,UAAS,cAAc;AAChC,kBAAM,UAAU,kDAAkB,SAAlB,mBAAwB,SAAQ;AAChD,kBAAM,UAAU,GAAG,OAAM,WAAW,aAAa;AACjD,gBAAI,CAAC,SAAS,IAAI,OAAO,GAAG;AAC1B,uBAAS,IAAI,OAAO;AACpB,oCAAsB,eAAe,MAAK;AAC1C,6BAAe,SAAS,OAAM,YAAY,eAAe;AAAA,YAC3D;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAGA,UAAI,SAAS;AACX,cAAM,WAAW;AACjB,cAAM,gBAAgB,SAAS,MAAM,CAAC;AAEtC,YAAI,CAAC,iCAAiB,gBAAgB;AACpC,cAAI,CAAC,SAAS,IAAI,GAAG,GAAG;AAEtB,sBAAU,OAAO;AAAA,UACnB;AACA;AAAA,QACF;AAOA,cAAM,aAAa,YACjB,KACA,KACA,cACA,OACA,OACA,OACA,MACA,eACF;AAEA,YAAI,QAAQ,IAAI,aAAa,iBAAiB,UAAU,WAAW;AAEjE,kBAAQ,IAAI,yCAAkC,EAAE,UAAU,YAAY,OAAO,gBAAgB,CAAC;AAAA,QAChG;AAEA,YAAI,iBAAiB;AACnB,gBAAM,cAAc,4CAAgB,UAAU;AAC9C,qBAAW,UAAS,aAAa;AAC/B,kBAAM,MAAM,8CAAiB,QAAO,eAAe,gCAAgB;AAEnE,kBAAM,UAAU,GAAG,OAAM,WAAW,aAAa;AACjD,gBAAI,CAAC,SAAS,IAAI,OAAO,GAAG;AAC1B,uBAAS,IAAI,OAAO;AACpB,oCAAsB,eAAe,GAAG;AACxC,6BAAe,SAAS,IAAI,YAAY,IAAI;AAAA,YAC9C;AAAA,UACF;AAAA,QACF,OAAO;AACL,cAAI,2BAAW,WAAW;AACxB,gBAAI,QAAQ,IAAI,aAAa,iBAAiB,OAAO;AACnD,sBAAQ,IAAI,qBAAqB,UAAU,0BAAU;AAAA,YACvD;AACA,mBAAO,OAAO,kBAAkB,SAAS,OAAO,UAAU;AAAA,UAC5D;AAAA,QACF;AACA;AAAA,MACF;AAEA,UAAI,CAAC,yBAAS,QAAQ,iBAAiB;AACrC,iBAAS,IAAI,GAAG;AAChB,kBAAU,OAAO;AACjB;AAAA,MACF;AAEA,UAAI,gBAAgB,MAAM;AACxB,iBAAS,IAAI,GAAG;AAChB,YAAI,OAAO,IAAI,OAAO,KAAK;AACzB,qBAAW,OAAO;AAAA,QACpB,WAAW,OAAO,oCAAqB;AACrC,oDAAe,OAAO,KAAK,KAAK,IAAI;AAAA,QACtC,OAAO;AAML,gBAAM,OAAO,kEAA2B,KAAK,GAAG;AAAA,QAElD;AACA;AAAA,MACF;AAGA,UAAI,CAAC,aAAa,YAAY,CAAE,QAAO,aAAa,WAAW;AAC7D,YAAI,CAAC,UAAU,MAAM;AACnB,oBAAU,OAAO;AACjB,mBAAS,IAAI,GAAG;AAAA,QAClB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,qCAAU,KAAK;AACf,MAAI,uBAAO;AACT,2CAAW,KAAK;AAAA,EAClB;AAGA,MAAI,mBAAmB;AACrB,iBAAa;AAAA,MACX,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAEA,MAAI,iBAAiB;AACnB,UAAM,SAAS,4CAAgB,KAAK;AACpC,eAAW,eAAe,QAAQ;AAChC,YAAM,MAAM,YAAY;AAGxB,UAAI,QAAQ,mBAAmB,CAAC,MAAM,qBAAqB;AACzD,8BAAsB,eAAe,WAAW;AAChD,uBAAe,KAAK,YAAY,UAAU;AAAA,MAC5C,OAAO;AACL,cAAM,OAAO,YAAY;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,OAAO;AACL,QAAI,cAAc,MAAM,uBAAuB,SAAS;AAAA,IA+BxD;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,mBAAmB,OAAO;AACxC,QAAI,YAAY;AACd,iBAAW,aAAa,YAAY;AAClC,YAAI,CAAC,WAAW,YAAY;AAC1B,cAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,oBAAQ,KAAK,sBAAsB,YAAY,SAAS;AAAA,UAC1D;AACA;AAAA,QACF;AACA,cAAM,CAAC,MAAM,OAAO,WAAW;AAC/B,cAAM,aAAa,aAAa;AAChC,YAAI,0BAAU;AACZ,cAAI,CAAC,0CAAmB,aAAa;AACnC,kBAAM,OAAO,IAAI,2BAA2B;AAC5C,kCAAsB,eAAe;AAAA,cACnC;AAAA,cACA,OAAO,CAAC,IAAI;AAAA,cACZ,UAAU;AAAA,YACZ,CAAC;AAAA,UACH;AAAA,QACF;AACA,mBAAW,aAAa;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,aAAa,iBAAiB,UAAU,WAAW;AACjE,QAAI,OAAO,aAAa,aAAa;AAEnC,cAAQ,IAAI,kCAA2B,EAAE,OAAO,SAAS,QAAQ,YAAY,WAAW,OAAO,cAAc,CAAC;AAAA,IAChH;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAeA,MAAM,cAAc,oBAAI,QAAQ;AAChC,iCAAiC,WAAmB,eAAuB;AACzE,MAAI,CAAC,eAAe;AAOlB,WAAO;AAAA,EACT;AAEA,MAAI,YAAY,IAAI,aAAa,GAAG;AAClC,WAAO,YAAY,IAAI,aAAa;AAAA,EACtC;AACA,QAAM,OAAO,IAAI,MAAM,eAAe;AAAA,IACpC,UAAU;AACR,aAAO,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,OAAO,KAAK,SAAS,GAAG,GAAG,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC;AAAA,IAChF;AAAA,IACA,IAAI,GAAG,KAAK;AACV,aAAO,OAAO,iBAAiB,OAAO;AAAA,IACxC;AAAA,IACA,IAAI,GAAG,KAAK;AACV,aAAO,cAAc,QAAQ,UAAU;AAAA,IACzC;AAAA,EACF,CAAC;AACD,cAAY,IAAI,eAAe,IAAI;AACnC,SAAO;AACT;AAEO,MAAM,cAAc,CACzB,QACA,SACA,cACA,OACA,OACA,OACA,OACA,iBACA,sBACc;AACd,QAAM,WAAsB,CAAC;AAC7B,WAAS,OAAO,SAAS;AACvB,UAAM,MAAM,QAAQ;AACpB,UAAM,MAAK,WAAW,QAAQ;AAC9B,UAAM,WAAW,aAAa,WAC5B,KACA,KACA,OACA,wBAAwB,OAAO,MAAM,OAAO,GAC5C,OACA,iBACA,iBACF;AACA,QAAI,CAAC;AAAU;AACf,eAAW,CAAC,MAAM,SAAS,UAAU;AACnC,UAAI,QAAQ,oCAAqB;AAC/B,kDAAe,UAAU,MAAM,IAAI;AAAA,MACrC,OAAO;AACL,iBAAS,QAAQ,kEAA2B,MAAM,GAAG;AAAA,MACvD;AAAA,IACF;AAAA,EACF;AAEA,qCAAU,QAAQ;AAElB,SAAO;AACT;AAEO,MAAM,oBAAmC,IAAI,SAAS;AAC3D,QAAM,MAAM,eAAe,GAAG,IAAI;AAClC,+CAAiB,IAAI,aAAa;AAClC,SAAO;AACT;AAGA,MAAM,wBAAwB,wBAAQ,mCAAsB,4CAA4B,MAAM;AAAC;AAExF,MAAM,iBAAgC,IAAI,SAAS;AACxD,QAAM,MAAM,eAAe,GAAG,IAAI;AAElC,wBAAsB,MAAM;AAC1B,iDAAiB,IAAI,aAAa;AAAA,EACpC,GAAG,CAAC,IAAI,aAAa,CAAC;AAEtB,SAAO;AACT;AAEA,+BAA+B,eAA8B,aAAiC;AAC5F,MAAI,QAAQ,IAAI,mBAAmB,OAAO;AAKxC,QACE,YAAY,aAAa,mBACzB,gDAAoB,YAAY,YAAY,YAAY,KAAK,KAC5D,CAAC,4BAAY,QAAQ,IAAI,aAAa,cACvC;AACA,oBAAc,KAAK,WAAW;AAAA,IAChC;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -35,14 +35,14 @@ var import_matchMedia = require("../helpers/matchMedia");
|
|
|
35
35
|
var import_useConstant = require("./useConstant");
|
|
36
36
|
const mediaState = {};
|
|
37
37
|
const mediaQueryListeners = {};
|
|
38
|
-
|
|
38
|
+
function addMediaQueryListener(key, cb) {
|
|
39
39
|
mediaQueryListeners[key] = mediaQueryListeners[key] || /* @__PURE__ */ new Set();
|
|
40
40
|
mediaQueryListeners[key].add(cb);
|
|
41
|
-
}
|
|
42
|
-
|
|
41
|
+
}
|
|
42
|
+
function removeMediaQueryListener(key, cb) {
|
|
43
43
|
var _a;
|
|
44
44
|
(_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
|
|
45
|
-
}
|
|
45
|
+
}
|
|
46
46
|
const mediaQueryConfig = {};
|
|
47
47
|
const getMedia = () => {
|
|
48
48
|
return mediaState;
|
|
@@ -95,7 +95,7 @@ const configureMedia = ({
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
|
-
|
|
98
|
+
function useMedia() {
|
|
99
99
|
const forceUpdate = (0, import_use_force_update.useForceUpdate)();
|
|
100
100
|
const state = (0, import_react.useRef)();
|
|
101
101
|
if (!state.current) {
|
|
@@ -121,7 +121,7 @@ const useMedia = () => {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
|
-
(0,
|
|
124
|
+
(0, import_react.useEffect)(() => {
|
|
125
125
|
return () => {
|
|
126
126
|
const st = state.current;
|
|
127
127
|
st.isUnmounted = true;
|
|
@@ -156,7 +156,7 @@ const useMedia = () => {
|
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
158
|
});
|
|
159
|
-
}
|
|
159
|
+
}
|
|
160
160
|
function camelToHyphen(str) {
|
|
161
161
|
return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
|
|
162
162
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useMedia.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: MediaQueryState = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAA+B;AAC/B,
|
|
4
|
+
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useEffect, useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: MediaQueryState = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport function addMediaQueryListener(key: MediaQueryKey, cb: any) {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport function removeMediaQueryListener(key: MediaQueryKey, cb: any) {\n mediaQueryListeners[key]?.delete(cb)\n}\n\nexport const mediaQueryConfig: MediaQueries = {}\n\nexport const getMedia = () => {\n return mediaState\n}\n\nconst dispose = new Set<Function>()\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (!queries) return\n // support hot reload\n if (mediaQueryConfig) {\n if (JSON.stringify(queries) === JSON.stringify(mediaQueryConfig)) {\n // hmr avoid update\n return\n }\n dispose.forEach((cb) => cb())\n dispose.clear()\n }\n\n Object.assign(mediaQueryConfig, queries)\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n const propKey = `$${key}`\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[propKey] = !!match.matches\n // note this deprecated api works with polyfills we use now\n match.addListener(update)\n dispose.add(() => match.removeListener(update))\n\n function update() {\n const next = !!getMatch().matches\n if (next === mediaState[propKey]) return\n mediaState[propKey] = next\n const listeners = mediaQueryListeners[propKey]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n }\n\n update()\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[propKey] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport function useMedia(): {\n [key in MediaQueryKey]: boolean\n} {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (key[0] !== '$') {\n key = `$${key}`\n }\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/types.tsx"],
|
|
4
|
-
"sourcesContent": ["// TODO split this into own package @tamagui/types to share with animations packages\n\nimport { Properties } from 'csstype'\nimport React from 'react'\nimport {\n GestureResponderEvent,\n Image,\n PressableProps,\n TextProps as ReactTextProps,\n Text,\n TextInput,\n TextStyle,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native'\n\nimport { Variable } from './createVariable'\nimport { ResolveVariableTypes } from './helpers/createPropMapper'\nimport { RNWTextProps, RNWViewProps } from './types-rnw'\nimport { FontLanguageProps } from './views/FontLanguage.types'\nimport { ThemeProviderProps } from './views/ThemeProvider'\n\nexport type SpaceDirection = 'vertical' | 'horizontal' | 'both'\n\nexport type TamaguiElement = HTMLElement | View\n\nexport type DebugProp = boolean | 'break' | 'verbose'\n\n//\n// base props that are accepted by createComponent (additional to react-native-web)\n//\nexport type TamaguiComponentPropsBase = {\n hitSlop?: PressableProps['hitSlop']\n asChild?: boolean\n space?: SpaceTokens | null\n spaceDirection?: SpaceDirection\n separator?: React.ReactNode\n dangerouslySetInnerHTML?: { __html: string }\n animation?: AnimationProp\n animateOnly?: string[]\n children?: any | any[]\n debug?: DebugProp\n disabled?: boolean\n className?: string\n themeShallow?: boolean\n id?: string\n tag?: string\n theme?: ThemeName | null\n componentName?: string\n forceStyle?: 'hover' | 'press' | 'focus'\n onHoverIn?: (e: MouseEvent) => any\n onHoverOut?: (e: MouseEvent) => any\n onPress?: (e: GestureResponderEvent) => any\n onPressIn?: (e: GestureResponderEvent) => any\n onPressOut?: (e: GestureResponderEvent) => any\n // WEB ONLY\n onMouseEnter?: (e: MouseEvent) => any\n onMouseLeave?: (e: MouseEvent) => any\n onMouseDown?: (e: MouseEvent) => any\n // WEB STYLES\n userSelect?: Properties['userSelect']\n cursor?: Properties['cursor']\n}\n\nexport type ReactComponentWithRef<Props, Ref> = React.ForwardRefExoticComponent<\n Props & React.RefAttributes<Ref>\n>\n\nexport type ConfigListener = (conf: TamaguiInternalConfig) => void\n\n// to prevent things from going circular, hoisting some types in this file\n// to generally order them as building up towards TamaguiConfig\n\nexport type VariableVal = number | string | Variable\nexport type VariableColorVal = string | Variable\n\ntype GenericKey = string | number | symbol\n\nexport interface CreateTokens<Val extends VariableVal = VariableVal> {\n color: { [key: GenericKey]: Val }\n space: { [key: GenericKey]: Val }\n size: { [key: GenericKey]: Val }\n radius: { [key: GenericKey]: Val }\n zIndex: { [key: GenericKey]: Val }\n}\n\nexport type TamaguiBaseTheme = {\n // defined for our tamagui kit , we could do this inside `tamagui`\n // but maybe helpful to have some sort of universally shared things +\n // + enforce if they want their own, redefine in their design sys\n background: VariableColorVal\n backgroundHover: VariableColorVal\n backgroundPress: VariableColorVal\n backgroundFocus: VariableColorVal\n color: VariableColorVal\n colorHover: VariableColorVal\n colorPress: VariableColorVal\n colorFocus: VariableColorVal\n borderColor: VariableColorVal\n borderColorHover: VariableColorVal\n borderColorPress: VariableColorVal\n borderColorFocus: VariableColorVal\n shadowColor: VariableColorVal\n shadowColorHover: VariableColorVal\n shadowColorPress: VariableColorVal\n shadowColorFocus: VariableColorVal\n}\n\ntype GenericTokens = CreateTokens\ntype GenericThemes = {\n [key: string]:\n | Partial<TamaguiBaseTheme> & {\n [key: string]: VariableVal\n }\n}\ntype GenericShorthands = {\n // [key: string]: string\n}\n\ntype GenericMedia<K extends string = string> = {\n // name => media shorthand name (camelCase) => value\n [key in K]: {\n [key: string]: number | string\n }\n}\n\nexport type GenericFonts = Record<string, GenericFont>\n\ntype GenericAnimations = {\n [key: string]:\n | string\n | {\n [key: string]: any\n }\n}\n\n// this is the \"main\" typed object, which users re-define\n// (internal) keep all types directly on this object and reference them from elsewhere\n//\n// const config = createTamagui(...)\n// type MyConfig = typeof config\n// declare module 'tamagui' {\n// export interface TamaguiCustomConfig extends MyConfig {}\n// }\n// now your whole app/kit should be typed correctly\n//\nexport interface TamaguiCustomConfig {}\n\nexport interface TamaguiConfig\n extends Omit<GenericTamaguiConfig, keyof TamaguiCustomConfig>,\n TamaguiCustomConfig {}\n\nexport type CreateTamaguiConfig<\n A extends GenericTokens,\n B extends GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = {\n fonts: RemoveLanguagePostfixes<F>\n fontLanguages: GetLanguagePostfixes<F> extends never ? string[] : GetLanguagePostfixes<F>[]\n tokens: A\n themes: B\n shorthands: C\n media: D\n animations: AnimationDriver<E>\n}\n\ntype GetLanguagePostfix<Set> = Set extends string\n ? Set extends `${string}_${infer Postfix}`\n ? Postfix\n : never\n : never\n\ntype OmitLanguagePostfix<Set> = Set extends string\n ? Set extends `${infer Prefix}_${string}`\n ? Prefix\n : Set\n : never\n\ntype RemoveLanguagePostfixes<F extends GenericFonts> = {\n [Key in OmitLanguagePostfix<keyof F>]: F[Key]\n}\n\ntype GetLanguagePostfixes<F extends GenericFonts> = GetLanguagePostfix<keyof F>\n\n// test RemoveLanguagePostfixes\n// type x = CreateTamaguiConfig<any, any, any, any, any, {\n// body: any,\n// body_en: any\n// }>['fonts']\n\ntype ConfProps<\n A extends GenericTokens,\n B extends GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = {\n tokens: A\n themes: B\n shorthands?: C\n media?: D\n animations?: AnimationDriver<E>\n fonts: F\n}\n\nexport type InferTamaguiConfig<Conf> = Conf extends ConfProps<\n infer A,\n infer B,\n infer C,\n infer D,\n infer E,\n infer F\n>\n ? TamaguiInternalConfig<A, B, C, D, E, F>\n : unknown\n\n// for use in creation functions so it doesnt get overwrtitten\nexport type GenericTamaguiConfig = CreateTamaguiConfig<\n GenericTokens,\n GenericThemes,\n GenericShorthands,\n GenericMedia,\n GenericAnimations,\n GenericFonts\n>\n\n// since TamaguiConfig will be re-declared, these will all be typed globally\nexport type ThemeObject = TamaguiConfig['themes'][keyof TamaguiConfig['themes']]\nexport type Tokens = TamaguiConfig['tokens']\nexport type Shorthands = TamaguiConfig['shorthands']\nexport type Media = TamaguiConfig['media']\nexport type Themes = TamaguiConfig['themes']\nexport type ThemeName = GetAltThemeNames<keyof Themes>\nexport type ThemeKeys = keyof ThemeObject\nexport type ThemeTokens = `$${ThemeKeys}`\nexport type AnimationKeys = Omit<GetAnimationKeys<TamaguiConfig>, number>\nexport type FontLanguages = ArrayIntersection<TamaguiConfig['fontLanguages']>\n\ntype ArrayIntersection<A extends any[]> = A[keyof A]\n\ntype GetAltThemeNames<S> = (S extends `${string}_${infer Alt}` ? GetAltThemeNames<Alt> : S) | S\n\nexport type SpacerProps = Omit<StackProps, 'flex' | 'direction' | 'size'> & {\n size?: number | SpaceTokens | null\n flex?: boolean | number\n direction?: SpaceDirection\n}\n\nexport type CreateTamaguiProps = {\n shorthands?: GenericTamaguiConfig['shorthands']\n media?: GenericTamaguiConfig['media']\n animations?: AnimationDriver<any>\n fonts: GenericTamaguiConfig['fonts']\n tokens: GenericTamaguiConfig['tokens']\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n\n defaultTheme?: string\n disableRootThemeClass?: boolean\n\n defaultProps?: Record<string, any> & {\n Stack?: StackProps\n Text?: TextProps\n Spacer?: SpacerProps\n }\n\n // for the first render, determines which media queries are true\n // useful for SSR\n mediaQueryDefaultActive?: MediaQueryKey[]\n\n // what's between each CSS style rule, set to \"\\n\" to be easier to read\n // defaults: \"\\n\" when NODE_ENV=development, \"\" otherwise\n cssStyleSeparator?: string\n\n // (Advanced)\n // on the web, tamagui treats `dark` and `light` themes as special and\n // generates extra CSS to avoid having to re-render the entire page.\n // this CSS relies on specificity hacks that multiply by your sub-themes.\n // this sets the maxiumum number of nested dark/light themes you can do\n // defaults to 3 for a balance, but can be higher if you nest them deeply.\n maxDarkLightNesting?: number\n\n // adds @media(prefers-color-scheme) media queries for dark/light\n shouldAddPrefersColorThemes?: boolean\n\n // only if you put the theme classname on the html element we have to generate diff\n themeClassNameOnRoot?: boolean\n}\n\n// this is the config generated via createTamagui()\nexport type TamaguiInternalConfig<\n A extends GenericTokens = GenericTokens,\n B extends GenericThemes = GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &\n CreateTamaguiConfig<A, B, C, D, E, F> & {\n // TODO need to make it this but this breaks types, revisit\n // animations: E //AnimationDriver<E>\n Provider: (props: TamaguiProviderProps) => any\n // with $ prefixes for fast lookups (one time cost at startup vs every render)\n tokensParsed: CreateTokens<Variable>\n themeConfig: any\n fontsParsed: GenericFonts\n getCSS: () => string\n parsed: boolean\n\n // just passed in from CreateTamaguiProps\n themeClassNameOnRoot?: boolean\n }\n\nexport type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']['animations']\n\n// prevents const intersections from being clobbered into string, keeping the consts\nexport type UnionableString = string & {}\nexport type UnionableNumber = number & {}\nexport type PropTypes<A extends TamaguiComponent> = A extends React.FunctionComponent<infer Props>\n ? Props\n : unknown\n\nexport type GenericFont<Key extends number | string = number | string> = {\n size: { [key in Key]: number | Variable }\n lineHeight: Partial<{ [key in Key]: number | Variable }>\n letterSpacing: Partial<{ [key in Key]: number | Variable }>\n weight: Partial<{ [key in Key]: number | string | Variable }>\n family: string | Variable\n style?: Partial<{ [key in Key]: TextStyle['fontStyle'] | Variable }>\n transform?: Partial<{ [key in Key]: TextStyle['textTransform'] | Variable }>\n color?: Partial<{ [key in Key]: string | Variable }>\n}\n\n// media\nexport type MediaKeys = keyof Media\nexport type MediaQueryObject = { [key: string]: string | number | string }\nexport type MediaQueryKey = keyof Media\nexport type MediaPropKeys = `$${MediaQueryKey}`\nexport type MediaQueryState = { [key in MediaPropKeys]: boolean }\nexport type MediaProps<A> = {\n [key in MediaPropKeys]?: A\n}\nexport type MediaQueries = {\n [key in MediaQueryKey]: MediaQueryObject\n}\nexport type ConfigureMediaQueryOptions = {\n queries?: MediaQueries\n defaultActive?: MediaQueryKey[]\n}\n\nexport type TransformStyleProps = {\n x?: number\n y?: number\n perspective?: number\n scale?: number\n scaleX?: number\n scaleY?: number\n skewX?: string\n skewY?: string\n matrix?: number[]\n rotate?: string\n rotateY?: string\n rotateX?: string\n rotateZ?: string\n}\n\n// createComponent props helpers\n\n// animation=\"bouncy\"\n// animation={['bouncy', { }]}\n// { all: 'name' }\n\n// TODO can override for better types\nexport type AnimationConfigType = any\n\nexport type AnimationProp =\n | AnimationKeys\n | {\n [key: string]:\n | AnimationKeys\n | {\n type: AnimationKeys\n [key: string]: any\n }\n }\n | [\n AnimationKeys,\n {\n [key: string]:\n | AnimationKeys\n | {\n type?: AnimationKeys\n [key: string]: any\n }\n }\n ]\n\ntype GetTokenFontKeysFor<\n A extends\n | 'size'\n | 'weight'\n | 'letterSpacing'\n | 'family'\n | 'lineHeight'\n | 'transform'\n | 'style'\n | 'color'\n> = keyof TamaguiConfig['fonts']['body'][A]\n\ntype GetTokenString<A> = A extends string | number ? `$${A}` : `$${string}`\n\n// base tokens\nexport type SizeTokens = GetTokenString<keyof Tokens['size']> | number\nexport type SpaceTokens = GetTokenString<keyof Tokens['space']> | number | boolean\nexport type ColorTokens =\n | GetTokenString<keyof Tokens['color']>\n | GetTokenString<keyof ThemeObject>\n | CSSColorNames\nexport type ZIndexTokens = GetTokenString<keyof Tokens['zIndex']> | number\nexport type RadiusTokens = GetTokenString<keyof Tokens['radius']> | number\n\n// font tokens\nexport type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>\nexport type FontSizeTokens = GetTokenString<GetTokenFontKeysFor<'size'>> | number\nexport type FontLineHeightTokens = `$${GetTokenFontKeysFor<'lineHeight'>}` | number\nexport type FontWeightTokens =\n | `$${GetTokenFontKeysFor<'weight'>}`\n | `${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}00`\nexport type FontColorTokens = `$${GetTokenFontKeysFor<'color'>}` | number\nexport type FontLetterSpacingTokens = `$${GetTokenFontKeysFor<'letterSpacing'>}` | number\nexport type FontStyleTokens = `$${GetTokenFontKeysFor<'style'>}` | TextStyle['fontStyle']\nexport type FontTransformTokens =\n | `$${GetTokenFontKeysFor<'transform'>}`\n | TextStyle['textTransform']\n\n//\n// adds theme short values to relevant props\n//\n\nexport type ThemeValueByCategory<K extends string | number | symbol> = K extends 'theme'\n ? ThemeTokens\n : K extends 'size'\n ? SizeTokens\n : K extends 'font'\n ? FontTokens\n : K extends 'fontSize'\n ? FontSizeTokens\n : K extends 'space'\n ? SpaceTokens\n : K extends 'color'\n ? ColorTokens\n : K extends 'zIndex'\n ? ZIndexTokens\n : K extends 'lineHeight'\n ? FontLineHeightTokens\n : K extends 'fontWeight'\n ? FontWeightTokens\n : K extends 'letterSpacing'\n ? FontLetterSpacingTokens\n : {}\n\ntype FontKeys = 'fontFamily'\ntype FontSizeKeys = 'fontSize'\ntype FontWeightKeys = 'fontWeight'\ntype FontLetterSpacingKeys = 'letterSpacing'\ntype LineHeightKeys = 'lineHeight'\ntype ZIndexKeys = 'zIndex'\n\nexport type ThemeValueGet<K extends string | number | symbol> = K extends 'theme'\n ? ThemeTokens\n : K extends SizeKeys\n ? SizeTokens\n : K extends FontKeys\n ? FontTokens\n : K extends FontSizeKeys\n ? FontSizeTokens\n : K extends SpaceKeys\n ? K extends 'shadowOffset'\n ? { width: SpaceTokens; height: SpaceTokens }\n : SpaceTokens\n : K extends ColorKeys\n ? ColorTokens\n : K extends ZIndexKeys\n ? ZIndexTokens\n : K extends LineHeightKeys\n ? FontLineHeightTokens\n : K extends FontWeightKeys\n ? FontWeightTokens\n : K extends FontLetterSpacingKeys\n ? FontLetterSpacingTokens\n : never\n\nexport type ThemeValueFallback = UnionableString | Variable\n\nexport type WithThemeValues<T extends object> = {\n [K in keyof T]: ThemeValueGet<K> extends never\n ? T[K]\n : ThemeValueGet<K> | Exclude<T[K], string> | ThemeValueFallback\n}\n\n// adds shorthand props\nexport type WithShorthands<StyleProps> = {\n [Key in keyof Shorthands]?: Shorthands[Key] extends keyof StyleProps\n ? StyleProps[Shorthands[Key]] | null\n : undefined\n}\n\n// adds pseudo props\nexport type PseudoProps<A> = {\n hoverStyle?: A | null\n pressStyle?: A | null\n focusStyle?: A | null\n exitStyle?: A | null\n enterStyle?: A | null\n}\n\nexport type PseudoPropKeys = keyof PseudoProps<any>\n\nexport type PseudoStyles = {\n hoverStyle?: ViewStyle\n pressStyle?: ViewStyle\n focusStyle?: ViewStyle\n enterStyle?: ViewStyle\n exitStyle?: ViewStyle\n}\n\n//\n// add both theme and shorthands\n//\ntype WithThemeAndShorthands<A extends object> = WithThemeValues<A> &\n WithShorthands<WithThemeValues<A>>\n\n//\n// combines all of theme, shorthands, pseudos...\n//\ntype WithThemeShorthandsAndPseudos<A extends object> =\n | WithThemeAndShorthands<A> & PseudoProps<WithThemeAndShorthands<A>>\n\n//\n// ... media queries and animations\n//\ntype WithThemeShorthandsPseudosMediaAnimation<A extends object> = WithThemeShorthandsAndPseudos<A> &\n MediaProps<WithThemeShorthandsAndPseudos<A>>\n\n//\n// Stack\n//\n\ntype WebOnlyStyleProps = {\n // WEB ONLY\n cursor?: string\n // WEB ONLY\n contain?: 'none' | 'strict' | 'content' | 'size' | 'layout' | 'paint' | string\n // WEB ONLY values: inherit, inline, block, content\n display?: 'inherit' | 'none' | 'inline' | 'block' | 'contents' | 'flex' | 'inline-flex'\n // WEB ONLY pointerEvents can be a style prop\n pointerEvents?: ViewProps['pointerEvents']\n}\n\nexport type StackStylePropsBase = Omit<ViewStyle, 'display' | 'backfaceVisibility' | 'elevation'> &\n TransformStyleProps &\n WebOnlyStyleProps\n\nexport type StackPropsBaseShared = Omit<ViewProps, 'display' | 'children'> &\n RNWViewProps &\n TamaguiComponentPropsBase\n\nexport type StackStyleProps = WithThemeShorthandsPseudosMediaAnimation<StackStylePropsBase>\nexport type StackPropsBase = StackPropsBaseShared & WithThemeAndShorthands<StackStylePropsBase>\nexport type StackProps = StackPropsBaseShared & StackStyleProps\n\nexport type GestureReponderEvent = Exclude<View['props']['onResponderMove'], void> extends (\n event: infer Event\n) => void\n ? Event\n : never\n\n//\n// Text props\n//\n\nexport type TextStylePropsBase = Omit<TextStyle, 'display' | 'backfaceVisibility'> &\n TransformStyleProps &\n WebOnlyStyleProps & {\n ellipse?: boolean\n selectable?: boolean\n textDecorationDistance?: number\n textOverflow?: Properties['textOverflow']\n whiteSpace?: Properties['whiteSpace']\n wordWrap?: Properties['wordWrap']\n }\n\nexport type TextPropsBaseShared = Omit<ReactTextProps, 'children'> &\n RNWTextProps &\n TamaguiComponentPropsBase\nexport type TextPropsBase = TextPropsBaseShared & WithThemeAndShorthands<TextStylePropsBase>\nexport type TextStyleProps = WithThemeShorthandsPseudosMediaAnimation<TextStylePropsBase>\nexport type TextProps = TextPropsBaseShared & TextStyleProps\n\n// could actually infer from parent\nexport type ViewOrTextProps = WithThemeShorthandsPseudosMediaAnimation<\n Omit<TextStylePropsBase, keyof StackStylePropsBase> & StackStylePropsBase\n>\n\n//\n// StaticComponent\n//\n\nexport type TamaguiComponent<\n Props = any,\n Ref = any,\n BaseProps = {},\n VariantProps = {}\n> = ReactComponentWithRef<Props, Ref> & StaticComponentObject\n\ntype StaticComponentObject = {\n staticConfig: StaticConfig\n /*\n * Only needed for more complex components\n * If you create a styled frame component this is a HoC to extract\n * styles from all parents.\n */\n extractable: <X>(a: X, opts?: Partial<StaticConfig>) => X\n}\n\nexport type TamaguiProviderProps = Partial<Omit<ThemeProviderProps, 'children'>> & {\n disableInjectCSS?: boolean\n children?: React.ReactNode\n}\n\nexport type PropMapper = (\n key: string,\n value: any,\n theme: ThemeObject,\n props: Record<string, any>,\n state: Partial<SplitStyleState>,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => undefined | [string, any][]\n\nexport type StaticConfigParsed = StaticConfig & {\n parsed: true\n propMapper: PropMapper\n variantsParsed?: {\n [key: string]: {\n [key: string]: any\n }\n }\n}\n\nexport type GenericVariantDefinitions = {\n [key: string]: {\n [key: string]:\n | ((a: any, b: any) => any)\n | {\n [key: string]: any\n }\n }\n}\n\nexport type StaticConfig = {\n Component?: React.FunctionComponent<any> & StaticComponentObject\n\n variants?: GenericVariantDefinitions\n\n /**\n * Used for applying sub theme style\n */\n componentName?: string\n\n /**\n * (compiler) If you need to pass context or something, prevents from ever\n * flattening. The 'jsx' option means it will never flatten. if you\n * pass JSX as a children (if its purely string, it will still flatten).\n */\n neverFlatten?: boolean | 'jsx'\n\n /**\n * Determines ultimate output tag (Text vs View)\n */\n isText?: boolean\n\n /**\n * Attempts to attach focus styles at runtime (useful for native)\n */\n isInput?: boolean\n\n /**\n * React native web images need special handling for className support\n */\n isImage?: boolean\n\n /**\n * Which style keys are allowed to be extracted.\n */\n validStyles?: { [key: string]: boolean }\n\n /**\n * Same as React.defaultProps, be sure to sync\n */\n defaultProps: Record<string, any>\n\n /**\n * (compiler) If these props are encountered, bail on all optimization.\n */\n deoptProps?: Set<string>\n\n /**\n * (compiler) If these props are encountered, leave them un-extracted.\n */\n inlineProps?: Set<string>\n\n /**\n * (compiler) If not flattening, leave this prop as original value.\n * Only applies to style attributes\n */\n inlineWhenUnflattened?: Set<string>\n\n /**\n * (compiler) A bit odd, only for more advanced heirarchies.\n * Indicates that the component will set this prop so the\n * static extraction can ensure it sets them to ={undefined}\n * so they get overriddent. In the future, this can be smarter.\n */\n ensureOverriddenProp?: { [key: string]: boolean }\n\n /**\n * Auto-detected, but can ovverride. Wraps children to space them on top\n */\n isZStack?: boolean\n\n /**\n * Merges into defaultProps later on, used internally yonly\n */\n defaultVariants?: { [key: string]: any }\n\n /**\n * Auto-detect, but can ovverride, passes styles properly to react-native-web\n */\n isReactNativeWeb?: boolean\n\n /**\n * Used internally to keep reference to the original rnw component\n */\n reactNativeWebComponent?: any\n\n /**\n * Memoize the component\n */\n memo?: boolean\n\n /**\n * Auto-detect, but can ovverride, passes styles properly to react-native-web\n */\n isTamagui?: boolean\n\n /**\n * Used internally to handle extractable HoC separate\n */\n isExtractable?: boolean\n\n /**\n * Used insternally to attach default props to names\n */\n parentNames?: string[]\n}\n\n/**\n * --------------------------------------------\n * variants\n * --------------------------------------------\n */\n\nexport type StylableComponent =\n | TamaguiComponent\n | React.Component\n | React.ForwardRefExoticComponent<any>\n | ReactComponentWithRef<any, any>\n | (new (props: any) => any)\n | typeof View\n | typeof Text\n | typeof TextInput\n | typeof Image\n\nexport type GetStyledVariants<A extends TamaguiComponent> = A extends TamaguiComponent<\n any,\n any,\n any,\n infer Variants\n>\n ? Variants\n : never\n\nexport type GetBaseProps<A extends StylableComponent> = A extends TamaguiComponent<\n any,\n any,\n infer BaseProps\n>\n ? BaseProps\n : never\n\nexport type GetProps<A extends StylableComponent> = A extends TamaguiComponent<infer Props>\n ? Props\n : A extends React.Component<infer Props>\n ? GetGenericComponentTamaguiProps<Props>\n : A extends new (props: infer Props) => any\n ? GetGenericComponentTamaguiProps<Props>\n : {}\n\ntype GetGenericComponentTamaguiProps<P> = P &\n Omit<'textAlign' extends keyof P ? TextProps : StackProps, keyof P>\n\nexport type SpreadKeys =\n | '...fontSize'\n | '...fontStyle'\n | '...fontTransform'\n | '...lineHeight'\n | '...letterSpacing'\n | '...size'\n | '...space'\n | '...color'\n | '...zIndex'\n | '...theme'\n | '...radius'\n\nexport type VariantDefinitions<\n Parent extends StylableComponent = TamaguiComponent,\n MyProps extends Object = GetProps<Parent>,\n Val = any\n> = VariantDefinitionFromProps<MyProps, Val>\n\nexport type VariantDefinitionFromProps<MyProps, Val> = MyProps extends Object\n ? {\n [propName: string]:\n | VariantSpreadFunction<MyProps, Val>\n | ({\n [Key in SpreadKeys]?: Key extends '...fontSize'\n ? FontSizeVariantSpreadFunction<MyProps>\n : Key extends '...size'\n ? SizeVariantSpreadFunction<MyProps>\n : Key extends '...space'\n ? SpaceVariantSpreadFunction<MyProps>\n : Key extends '...color'\n ? ColorVariantSpreadFunction<MyProps>\n : Key extends '...lineHeight'\n ? FontLineHeightVariantSpreadFunction<MyProps>\n : Key extends '...fontTransform'\n ? FontTransformVariantSpreadFunction<MyProps>\n : Key extends '...fontStyle'\n ? FontStyleVariantSpreadFunction<MyProps>\n : Key extends '...letterSpacing'\n ? FontLetterSpacingVariantSpreadFunction<MyProps>\n : Key extends '...zIndex'\n ? ZIndexVariantSpreadFunction<MyProps>\n : Key extends '...radius'\n ? RadiusVariantSpreadFunction<MyProps>\n : Key extends '...theme'\n ? ThemeVariantSpreadFunction<MyProps>\n : never\n } & {\n [Key in string | number | 'true' | 'false']?:\n | MyProps\n | VariantSpreadFunction<MyProps, Val>\n } & {\n [Key in VariantTypeKeys]?: Key extends ':number'\n ? VariantSpreadFunction<MyProps, number>\n : Key extends ':boolean'\n ? VariantSpreadFunction<MyProps, boolean>\n : Key extends ':string'\n ? VariantSpreadFunction<MyProps, string>\n : never\n })\n }\n : never\n\nexport type GenericStackVariants = VariantDefinitionFromProps<StackProps, any>\nexport type GenericTextVariants = VariantDefinitionFromProps<StackProps, any>\n\nexport type GetVariantProps<Variants> = {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n}\n\nexport type VariantSpreadExtras<Props> = {\n fonts: TamaguiConfig['fonts']\n tokens: TamaguiConfig['tokens']\n theme: Themes extends { [key: string]: infer B } ? B : unknown\n props: Props\n}\n\ntype PropLike = { [key: string]: any }\n\nexport type VariantSpreadFunction<Props extends PropLike, Val = any> = (\n val: Val,\n config: VariantSpreadExtras<Props>\n) =>\n | {\n [Key in keyof Props]: Props[Key] | Variable\n }\n | null\n | undefined\n\nexport type VariantTypeKeys = ':string' | ':boolean' | ':number'\n\nexport type GetVariantValues<Key> = Key extends `...${infer VariantSpread}`\n ? ThemeValueByCategory<VariantSpread>\n : Key extends 'true' | 'false'\n ? boolean\n : Key extends ':string'\n ? string\n : Key extends ':boolean'\n ? boolean\n : Key extends ':number'\n ? number\n : Key\n\nexport type FontSizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontSizeTokens\n>\nexport type SizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SizeTokens>\nexport type SpaceVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SpaceTokens>\nexport type ColorVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ColorTokens>\nexport type FontLineHeightVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontLineHeightTokens\n>\nexport type FontLetterSpacingVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontLetterSpacingTokens\n>\nexport type FontStyleVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontStyleTokens\n>\nexport type FontTransformVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontTransformTokens\n>\nexport type ZIndexVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ZIndexTokens>\nexport type RadiusVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, RadiusTokens>\nexport type ThemeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ThemeTokens>\n\n/**\n * --------------------------------------------\n * end variants\n * --------------------------------------------\n */\n\ntype SizeKeys =\n | 'width'\n | 'height'\n | 'minWidth'\n | 'minHeight'\n | 'maxWidth'\n | 'maxHeight'\n | 'shadowRadius'\n\ntype ColorKeys =\n | 'color'\n | 'backgroundColor'\n | 'borderColor'\n | 'borderBottomColor'\n | 'borderTopColor'\n | 'borderLeftColor'\n | 'borderRightColor'\n | 'shadowColor'\n | 'textShadowColor'\n\ntype SpaceKeys =\n | 'space'\n | 'padding'\n | 'paddingHorizontal'\n | 'paddingVertical'\n | 'paddingLeft'\n | 'paddingTop'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingEnd'\n | 'paddingStart'\n | 'margin'\n | 'marginHorizontal'\n | 'marginVertical'\n | 'marginLeft'\n | 'marginTop'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginEnd'\n | 'marginStart'\n | 'x'\n | 'y'\n | 'scale'\n | 'scaleX'\n | 'scaleY'\n | 'borderTopEndRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderTopStartRadius'\n | 'borderBottomEndRadius'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderBottomStartRadius'\n | 'borderBottomWidth'\n | 'borderLeftWidth'\n | 'borderRadius'\n | 'borderRightWidth'\n | 'borderTopEndRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderEndWidth'\n | 'borderStartWidth'\n | 'borderTopStartRadius'\n | 'borderTopWidth'\n | 'borderWidth'\n | 'left'\n | 'top'\n | 'right'\n | 'bottom'\n | 'shadowOffset'\n\ntype CSSColorNames =\n | 'aliceblue'\n | 'antiquewhite'\n | 'aqua'\n | 'aquamarine'\n | 'azure'\n | 'beige'\n | 'bisque'\n | 'black'\n | 'blanchedalmond'\n | 'blue'\n | 'blueviolet'\n | 'brown'\n | 'burlywood'\n | 'cadetblue'\n | 'chartreuse'\n | 'chocolate'\n | 'coral'\n | 'cornflowerblue'\n | 'cornsilk'\n | 'crimson'\n | 'cyan'\n | 'darkblue'\n | 'darkcyan'\n | 'darkgoldenrod'\n | 'darkgray'\n | 'darkgreen'\n | 'darkkhaki'\n | 'darkmagenta'\n | 'darkolivegreen'\n | 'darkorange'\n | 'darkorchid'\n | 'darkred'\n | 'darksalmon'\n | 'darkseagreen'\n | 'darkslateblue'\n | 'darkslategray'\n | 'darkturquoise'\n | 'darkviolet'\n | 'deeppink'\n | 'deepskyblue'\n | 'dimgray'\n | 'dodgerblue'\n | 'firebrick'\n | 'floralwhite'\n | 'forestgreen'\n | 'fuchsia'\n | 'gainsboro'\n | 'ghostwhite'\n | 'gold'\n | 'goldenrod'\n | 'gray'\n | 'green'\n | 'greenyellow'\n | 'honeydew'\n | 'hotpink'\n | 'indianred '\n | 'indigo '\n | 'ivory'\n | 'khaki'\n | 'lavender'\n | 'lavenderblush'\n | 'lawngreen'\n | 'lemonchiffon'\n | 'lightblue'\n | 'lightcoral'\n | 'lightcyan'\n | 'lightgoldenrodyellow'\n | 'lightgrey'\n | 'lightgreen'\n | 'lightpink'\n | 'lightsalmon'\n | 'lightseagreen'\n | 'lightskyblue'\n | 'lightslategray'\n | 'lightsteelblue'\n | 'lightyellow'\n | 'lime'\n | 'limegreen'\n | 'linen'\n | 'magenta'\n | 'maroon'\n | 'mediumaquamarine'\n | 'mediumblue'\n | 'mediumorchid'\n | 'mediumpurple'\n | 'mediumseagreen'\n | 'mediumslateblue'\n | 'mediumspringgreen'\n | 'mediumturquoise'\n | 'mediumvioletred'\n | 'midnightblue'\n | 'mintcream'\n | 'mistyrose'\n | 'moccasin'\n | 'navajowhite'\n | 'navy'\n | 'oldlace'\n | 'olive'\n | 'olivedrab'\n | 'orange'\n | 'orangered'\n | 'orchid'\n | 'palegoldenrod'\n | 'palegreen'\n | 'paleturquoise'\n | 'palevioletred'\n | 'papayawhip'\n | 'peachpuff'\n | 'peru'\n | 'pink'\n | 'plum'\n | 'powderblue'\n | 'purple'\n | 'red'\n | 'rosybrown'\n | 'royalblue'\n | 'saddlebrown'\n | 'salmon'\n | 'sandybrown'\n | 'seagreen'\n | 'seashell'\n | 'sienna'\n | 'silver'\n | 'skyblue'\n | 'slateblue'\n | 'slategray'\n | 'snow'\n | 'springgreen'\n | 'steelblue'\n | 'tan'\n | 'teal'\n | 'thistle'\n | 'tomato'\n | 'turquoise'\n | 'violet'\n | 'wheat'\n | 'white'\n | 'whitesmoke'\n | 'yellow'\n | 'yellowgreen'\n\nexport type TamaguiComponentState = {\n hover: boolean\n press: boolean\n pressIn: boolean\n focus: boolean\n mounted: boolean\n animation?: null | {\n style?: any\n avoidClasses?: boolean\n }\n}\n\nexport type SplitStyleState = TamaguiComponentState & {\n noClassNames?: boolean\n dynamicStylesInline?: boolean\n resolveVariablesAs?: ResolveVariableTypes\n fallbackProps?: Record<string, any>\n keepVariantsAsProps?: boolean\n hasTextAncestor?: boolean\n}\n\n// Animations:\n\ntype AnimationConfig = {\n [key: string]: any\n}\n\nexport type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {\n avoidClasses?: boolean\n useAnimations: UseAnimationHook\n animations: A\n View?: any\n Text?: any\n}\n\nexport type UseAnimationProps = TamaguiComponentPropsBase & Record<string, any>\n\nexport type UseAnimationHelpers = {\n staticConfig: StaticConfigParsed\n getStyle: (props?: {\n isEntering?: boolean\n isExiting?: boolean\n exitVariant?: string | null\n enterVariant?: string | null\n }) => ViewStyle\n state: SplitStyleState\n pseudos: PseudoProps<ViewStyle>\n // style: ViewStyle | null | undefined\n // isMounted: boolean\n // exitStyle?: ViewStyle | null\n onDidAnimate?: any\n delay?: number\n // mergedStyles(props?: { isExiting?: boolean }): ViewStyle\n}\n\nexport type UseAnimationHook = (\n props: UseAnimationProps,\n helpers: UseAnimationHelpers\n) => {\n style?: StackStylePropsBase | StackStylePropsBase[]\n}\n"],
|
|
4
|
+
"sourcesContent": ["// TODO split this into own package @tamagui/types to share with animations packages\n\nimport { Properties } from 'csstype'\nimport React from 'react'\nimport {\n GestureResponderEvent,\n Image,\n PressableProps,\n TextProps as ReactTextProps,\n Text,\n TextInput,\n TextStyle,\n View,\n ViewProps,\n ViewStyle,\n} from 'react-native'\n\nimport { Variable } from './createVariable'\nimport { ResolveVariableTypes } from './helpers/createPropMapper'\nimport { RNWTextProps, RNWViewProps } from './types-rnw'\nimport { FontLanguageProps } from './views/FontLanguage.types'\nimport { ThemeProviderProps } from './views/ThemeProvider'\n\nexport type SpaceDirection = 'vertical' | 'horizontal' | 'both'\n\nexport type TamaguiElement = HTMLElement | View\n\nexport type DebugProp = boolean | 'break' | 'verbose'\n\n//\n// base props that are accepted by createComponent (additional to react-native-web)\n//\nexport type TamaguiComponentPropsBase = {\n hitSlop?: PressableProps['hitSlop']\n asChild?: boolean\n space?: SpaceTokens | null\n spaceDirection?: SpaceDirection\n separator?: React.ReactNode\n dangerouslySetInnerHTML?: { __html: string }\n animation?: AnimationProp\n animateOnly?: string[]\n children?: any | any[]\n debug?: DebugProp\n disabled?: boolean\n className?: string\n themeShallow?: boolean\n id?: string\n tag?: string\n theme?: ThemeName | null\n componentName?: string\n forceStyle?: 'hover' | 'press' | 'focus'\n onHoverIn?: (e: MouseEvent) => any\n onHoverOut?: (e: MouseEvent) => any\n onPress?: (e: GestureResponderEvent) => any\n onPressIn?: (e: GestureResponderEvent) => any\n onPressOut?: (e: GestureResponderEvent) => any\n // WEB ONLY\n onMouseEnter?: (e: MouseEvent) => any\n onMouseLeave?: (e: MouseEvent) => any\n onMouseDown?: (e: MouseEvent) => any\n // WEB STYLES\n userSelect?: Properties['userSelect']\n cursor?: Properties['cursor']\n}\n\nexport type ReactComponentWithRef<Props, Ref> = React.ForwardRefExoticComponent<\n Props & React.RefAttributes<Ref>\n>\n\nexport type ConfigListener = (conf: TamaguiInternalConfig) => void\n\n// to prevent things from going circular, hoisting some types in this file\n// to generally order them as building up towards TamaguiConfig\n\nexport type VariableVal = number | string | Variable\nexport type VariableColorVal = string | Variable\n\ntype GenericKey = string | number | symbol\n\nexport interface CreateTokens<Val extends VariableVal = VariableVal> {\n color: { [key: GenericKey]: Val }\n space: { [key: GenericKey]: Val }\n size: { [key: GenericKey]: Val }\n radius: { [key: GenericKey]: Val }\n zIndex: { [key: GenericKey]: Val }\n}\n\nexport type TamaguiBaseTheme = {\n // defined for our tamagui kit , we could do this inside `tamagui`\n // but maybe helpful to have some sort of universally shared things +\n // + enforce if they want their own, redefine in their design sys\n background: VariableColorVal\n backgroundHover: VariableColorVal\n backgroundPress: VariableColorVal\n backgroundFocus: VariableColorVal\n color: VariableColorVal\n colorHover: VariableColorVal\n colorPress: VariableColorVal\n colorFocus: VariableColorVal\n borderColor: VariableColorVal\n borderColorHover: VariableColorVal\n borderColorPress: VariableColorVal\n borderColorFocus: VariableColorVal\n shadowColor: VariableColorVal\n shadowColorHover: VariableColorVal\n shadowColorPress: VariableColorVal\n shadowColorFocus: VariableColorVal\n}\n\ntype GenericTokens = CreateTokens\ntype GenericThemes = {\n [key: string]:\n | Partial<TamaguiBaseTheme> & {\n [key: string]: VariableVal\n }\n}\n\ntype GenericShorthands = {}\n\n// sm: { minWidth: 100 }\ntype GenericMedia = {\n [key: string]: {\n [key: string]: number | string\n }\n}\n\nexport type GenericFonts = Record<string, GenericFont>\n\ntype GenericAnimations = {\n [key: string]:\n | string\n | {\n [key: string]: any\n }\n}\n\n// this is the \"main\" typed object, which users re-define\n// (internal) keep all types directly on this object and reference them from elsewhere\n//\n// const config = createTamagui(...)\n// type MyConfig = typeof config\n// declare module 'tamagui' {\n// export interface TamaguiCustomConfig extends MyConfig {}\n// }\n// now your whole app/kit should be typed correctly\n//\nexport interface TamaguiCustomConfig {}\n\nexport interface TamaguiConfig\n extends Omit<GenericTamaguiConfig, keyof TamaguiCustomConfig>,\n TamaguiCustomConfig {}\n\nexport type CreateTamaguiConfig<\n A extends GenericTokens,\n B extends GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = {\n fonts: RemoveLanguagePostfixes<F>\n fontLanguages: GetLanguagePostfixes<F> extends never ? string[] : GetLanguagePostfixes<F>[]\n tokens: A\n themes: B\n shorthands: C\n media: D\n animations: AnimationDriver<E>\n}\n\ntype GetLanguagePostfix<Set> = Set extends string\n ? Set extends `${string}_${infer Postfix}`\n ? Postfix\n : never\n : never\n\ntype OmitLanguagePostfix<Set> = Set extends string\n ? Set extends `${infer Prefix}_${string}`\n ? Prefix\n : Set\n : never\n\ntype RemoveLanguagePostfixes<F extends GenericFonts> = {\n [Key in OmitLanguagePostfix<keyof F>]: F[Key]\n}\n\ntype GetLanguagePostfixes<F extends GenericFonts> = GetLanguagePostfix<keyof F>\n\n// test RemoveLanguagePostfixes\n// type x = CreateTamaguiConfig<any, any, any, any, any, {\n// body: any,\n// body_en: any\n// }>['fonts']\n\ntype ConfProps<\n A extends GenericTokens,\n B extends GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = {\n tokens: A\n themes: B\n shorthands?: C\n media?: D\n animations?: AnimationDriver<E>\n fonts: F\n}\n\nexport type InferTamaguiConfig<Conf> = Conf extends ConfProps<\n infer A,\n infer B,\n infer C,\n infer D,\n infer E,\n infer F\n>\n ? TamaguiInternalConfig<A, B, C, D, E, F>\n : unknown\n\n// for use in creation functions so it doesnt get overwrtitten\nexport type GenericTamaguiConfig = CreateTamaguiConfig<\n GenericTokens,\n GenericThemes,\n GenericShorthands,\n GenericMedia,\n GenericAnimations,\n GenericFonts\n>\n\n// since TamaguiConfig will be re-declared, these will all be typed globally\nexport type ThemeObject = TamaguiConfig['themes'][keyof TamaguiConfig['themes']]\nexport type Tokens = TamaguiConfig['tokens']\nexport type Shorthands = TamaguiConfig['shorthands']\nexport type Media = TamaguiConfig['media']\nexport type Themes = TamaguiConfig['themes']\nexport type ThemeName = GetAltThemeNames<keyof Themes>\nexport type ThemeKeys = keyof ThemeObject\nexport type ThemeTokens = `$${ThemeKeys}`\nexport type AnimationKeys = Omit<GetAnimationKeys<TamaguiConfig>, number>\nexport type FontLanguages = ArrayIntersection<TamaguiConfig['fontLanguages']>\n\ntype ArrayIntersection<A extends any[]> = A[keyof A]\n\ntype GetAltThemeNames<S> = (S extends `${string}_${infer Alt}` ? GetAltThemeNames<Alt> : S) | S\n\nexport type SpacerProps = Omit<StackProps, 'flex' | 'direction' | 'size'> & {\n size?: number | SpaceTokens | null\n flex?: boolean | number\n direction?: SpaceDirection\n}\n\nexport type CreateTamaguiProps = {\n shorthands?: GenericTamaguiConfig['shorthands']\n media?: GenericTamaguiConfig['media']\n animations?: AnimationDriver<any>\n fonts: GenericTamaguiConfig['fonts']\n tokens: GenericTamaguiConfig['tokens']\n themes: {\n [key: string]: {\n [key: string]: string | number | Variable\n }\n }\n\n defaultTheme?: string\n disableRootThemeClass?: boolean\n\n defaultProps?: Record<string, any> & {\n Stack?: StackProps\n Text?: TextProps\n Spacer?: SpacerProps\n }\n\n // for the first render, determines which media queries are true\n // useful for SSR\n mediaQueryDefaultActive?: MediaQueryKey[]\n\n // what's between each CSS style rule, set to \"\\n\" to be easier to read\n // defaults: \"\\n\" when NODE_ENV=development, \"\" otherwise\n cssStyleSeparator?: string\n\n // (Advanced)\n // on the web, tamagui treats `dark` and `light` themes as special and\n // generates extra CSS to avoid having to re-render the entire page.\n // this CSS relies on specificity hacks that multiply by your sub-themes.\n // this sets the maxiumum number of nested dark/light themes you can do\n // defaults to 3 for a balance, but can be higher if you nest them deeply.\n maxDarkLightNesting?: number\n\n // adds @media(prefers-color-scheme) media queries for dark/light\n shouldAddPrefersColorThemes?: boolean\n\n // only if you put the theme classname on the html element we have to generate diff\n themeClassNameOnRoot?: boolean\n}\n\n// this is the config generated via createTamagui()\nexport type TamaguiInternalConfig<\n A extends GenericTokens = GenericTokens,\n B extends GenericThemes = GenericThemes,\n C extends GenericShorthands = GenericShorthands,\n D extends GenericMedia = GenericMedia,\n E extends GenericAnimations = GenericAnimations,\n F extends GenericFonts = GenericFonts\n> = Omit<CreateTamaguiProps, keyof GenericTamaguiConfig> &\n CreateTamaguiConfig<A, B, C, D, E, F> & {\n // TODO need to make it this but this breaks types, revisit\n // animations: E //AnimationDriver<E>\n Provider: (props: TamaguiProviderProps) => any\n // with $ prefixes for fast lookups (one time cost at startup vs every render)\n tokensParsed: CreateTokens<Variable>\n themeConfig: any\n fontsParsed: GenericFonts\n getCSS: () => string\n parsed: boolean\n\n // just passed in from CreateTamaguiProps\n themeClassNameOnRoot?: boolean\n }\n\nexport type GetAnimationKeys<A extends GenericTamaguiConfig> = keyof A['animations']['animations']\n\n// prevents const intersections from being clobbered into string, keeping the consts\nexport type UnionableString = string & {}\nexport type UnionableNumber = number & {}\nexport type PropTypes<A extends TamaguiComponent> = A extends React.FunctionComponent<infer Props>\n ? Props\n : unknown\n\nexport type GenericFont<Key extends number | string = number | string> = {\n size: { [key in Key]: number | Variable }\n lineHeight: Partial<{ [key in Key]: number | Variable }>\n letterSpacing: Partial<{ [key in Key]: number | Variable }>\n weight: Partial<{ [key in Key]: number | string | Variable }>\n family: string | Variable\n style?: Partial<{ [key in Key]: TextStyle['fontStyle'] | Variable }>\n transform?: Partial<{ [key in Key]: TextStyle['textTransform'] | Variable }>\n color?: Partial<{ [key in Key]: string | Variable }>\n}\n\n// media\nexport type MediaQueryObject = { [key: string]: string | number | string }\nexport type MediaQueryKey = keyof Media\nexport type MediaPropKeys = `$${MediaQueryKey}`\nexport type MediaQueryState = { [key in MediaPropKeys]: boolean }\nexport type MediaProps<A> = {\n [key in MediaPropKeys]?: A\n}\nexport type MediaQueries = {\n [key in MediaQueryKey]: MediaQueryObject\n}\nexport type ConfigureMediaQueryOptions = {\n queries?: MediaQueries\n defaultActive?: MediaQueryKey[]\n}\n\nexport type TransformStyleProps = {\n x?: number\n y?: number\n perspective?: number\n scale?: number\n scaleX?: number\n scaleY?: number\n skewX?: string\n skewY?: string\n matrix?: number[]\n rotate?: string\n rotateY?: string\n rotateX?: string\n rotateZ?: string\n}\n\n// createComponent props helpers\n\n// animation=\"bouncy\"\n// animation={['bouncy', { }]}\n// { all: 'name' }\n\n// TODO can override for better types\nexport type AnimationConfigType = any\n\nexport type AnimationProp =\n | AnimationKeys\n | {\n [key: string]:\n | AnimationKeys\n | {\n type: AnimationKeys\n [key: string]: any\n }\n }\n | [\n AnimationKeys,\n {\n [key: string]:\n | AnimationKeys\n | {\n type?: AnimationKeys\n [key: string]: any\n }\n }\n ]\n\ntype GetTokenFontKeysFor<\n A extends\n | 'size'\n | 'weight'\n | 'letterSpacing'\n | 'family'\n | 'lineHeight'\n | 'transform'\n | 'style'\n | 'color'\n> = keyof TamaguiConfig['fonts']['body'][A]\n\ntype GetTokenString<A> = A extends string | number ? `$${A}` : `$${string}`\n\n// base tokens\nexport type SizeTokens = GetTokenString<keyof Tokens['size']> | number\nexport type SpaceTokens = GetTokenString<keyof Tokens['space']> | number | boolean\nexport type ColorTokens =\n | GetTokenString<keyof Tokens['color']>\n | GetTokenString<keyof ThemeObject>\n | CSSColorNames\nexport type ZIndexTokens = GetTokenString<keyof Tokens['zIndex']> | number\nexport type RadiusTokens = GetTokenString<keyof Tokens['radius']> | number\n\n// font tokens\nexport type FontTokens = GetTokenString<keyof TamaguiConfig['fonts']>\nexport type FontSizeTokens = GetTokenString<GetTokenFontKeysFor<'size'>> | number\nexport type FontLineHeightTokens = `$${GetTokenFontKeysFor<'lineHeight'>}` | number\nexport type FontWeightTokens =\n | `$${GetTokenFontKeysFor<'weight'>}`\n | `${1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}00`\nexport type FontColorTokens = `$${GetTokenFontKeysFor<'color'>}` | number\nexport type FontLetterSpacingTokens = `$${GetTokenFontKeysFor<'letterSpacing'>}` | number\nexport type FontStyleTokens = `$${GetTokenFontKeysFor<'style'>}` | TextStyle['fontStyle']\nexport type FontTransformTokens =\n | `$${GetTokenFontKeysFor<'transform'>}`\n | TextStyle['textTransform']\n\n//\n// adds theme short values to relevant props\n//\n\nexport type ThemeValueByCategory<K extends string | number | symbol> = K extends 'theme'\n ? ThemeTokens\n : K extends 'size'\n ? SizeTokens\n : K extends 'font'\n ? FontTokens\n : K extends 'fontSize'\n ? FontSizeTokens\n : K extends 'space'\n ? SpaceTokens\n : K extends 'color'\n ? ColorTokens\n : K extends 'zIndex'\n ? ZIndexTokens\n : K extends 'lineHeight'\n ? FontLineHeightTokens\n : K extends 'fontWeight'\n ? FontWeightTokens\n : K extends 'letterSpacing'\n ? FontLetterSpacingTokens\n : {}\n\ntype FontKeys = 'fontFamily'\ntype FontSizeKeys = 'fontSize'\ntype FontWeightKeys = 'fontWeight'\ntype FontLetterSpacingKeys = 'letterSpacing'\ntype LineHeightKeys = 'lineHeight'\ntype ZIndexKeys = 'zIndex'\n\nexport type ThemeValueGet<K extends string | number | symbol> = K extends 'theme'\n ? ThemeTokens\n : K extends SizeKeys\n ? SizeTokens\n : K extends FontKeys\n ? FontTokens\n : K extends FontSizeKeys\n ? FontSizeTokens\n : K extends SpaceKeys\n ? K extends 'shadowOffset'\n ? { width: SpaceTokens; height: SpaceTokens }\n : SpaceTokens\n : K extends ColorKeys\n ? ColorTokens\n : K extends ZIndexKeys\n ? ZIndexTokens\n : K extends LineHeightKeys\n ? FontLineHeightTokens\n : K extends FontWeightKeys\n ? FontWeightTokens\n : K extends FontLetterSpacingKeys\n ? FontLetterSpacingTokens\n : never\n\nexport type ThemeValueFallback = UnionableString | Variable\n\nexport type WithThemeValues<T extends object> = {\n [K in keyof T]: ThemeValueGet<K> extends never\n ? T[K]\n : ThemeValueGet<K> | Exclude<T[K], string> | ThemeValueFallback\n}\n\n// adds shorthand props\nexport type WithShorthands<StyleProps> = {\n [Key in keyof Shorthands]?: Shorthands[Key] extends keyof StyleProps\n ? StyleProps[Shorthands[Key]] | null\n : undefined\n}\n\n// adds pseudo props\nexport type PseudoProps<A> = {\n hoverStyle?: A | null\n pressStyle?: A | null\n focusStyle?: A | null\n exitStyle?: A | null\n enterStyle?: A | null\n}\n\nexport type PseudoPropKeys = keyof PseudoProps<any>\n\nexport type PseudoStyles = {\n hoverStyle?: ViewStyle\n pressStyle?: ViewStyle\n focusStyle?: ViewStyle\n enterStyle?: ViewStyle\n exitStyle?: ViewStyle\n}\n\n//\n// add both theme and shorthands\n//\ntype WithThemeAndShorthands<A extends object> = WithThemeValues<A> &\n WithShorthands<WithThemeValues<A>>\n\n//\n// combines all of theme, shorthands, pseudos...\n//\ntype WithThemeShorthandsAndPseudos<A extends object> =\n | WithThemeAndShorthands<A> & PseudoProps<WithThemeAndShorthands<A>>\n\n//\n// ... media queries and animations\n//\ntype WithThemeShorthandsPseudosMediaAnimation<A extends object> = WithThemeShorthandsAndPseudos<A> &\n MediaProps<WithThemeShorthandsAndPseudos<A>>\n\n//\n// Stack\n//\n\ntype WebOnlyStyleProps = {\n // WEB ONLY\n cursor?: string\n // WEB ONLY\n contain?: 'none' | 'strict' | 'content' | 'size' | 'layout' | 'paint' | string\n // WEB ONLY values: inherit, inline, block, content\n display?: 'inherit' | 'none' | 'inline' | 'block' | 'contents' | 'flex' | 'inline-flex'\n // WEB ONLY pointerEvents can be a style prop\n pointerEvents?: ViewProps['pointerEvents']\n}\n\nexport type StackStylePropsBase = Omit<ViewStyle, 'display' | 'backfaceVisibility' | 'elevation'> &\n TransformStyleProps &\n WebOnlyStyleProps\n\nexport type StackPropsBaseShared = Omit<ViewProps, 'display' | 'children'> &\n RNWViewProps &\n TamaguiComponentPropsBase\n\nexport type StackStyleProps = WithThemeShorthandsPseudosMediaAnimation<StackStylePropsBase>\nexport type StackPropsBase = StackPropsBaseShared & WithThemeAndShorthands<StackStylePropsBase>\nexport type StackProps = StackPropsBaseShared & StackStyleProps\n\nexport type GestureReponderEvent = Exclude<View['props']['onResponderMove'], void> extends (\n event: infer Event\n) => void\n ? Event\n : never\n\n//\n// Text props\n//\n\nexport type TextStylePropsBase = Omit<TextStyle, 'display' | 'backfaceVisibility'> &\n TransformStyleProps &\n WebOnlyStyleProps & {\n ellipse?: boolean\n selectable?: boolean\n textDecorationDistance?: number\n textOverflow?: Properties['textOverflow']\n whiteSpace?: Properties['whiteSpace']\n wordWrap?: Properties['wordWrap']\n }\n\nexport type TextPropsBaseShared = Omit<ReactTextProps, 'children'> &\n RNWTextProps &\n TamaguiComponentPropsBase\nexport type TextPropsBase = TextPropsBaseShared & WithThemeAndShorthands<TextStylePropsBase>\nexport type TextStyleProps = WithThemeShorthandsPseudosMediaAnimation<TextStylePropsBase>\nexport type TextProps = TextPropsBaseShared & TextStyleProps\n\n// could actually infer from parent\nexport type ViewOrTextProps = WithThemeShorthandsPseudosMediaAnimation<\n Omit<TextStylePropsBase, keyof StackStylePropsBase> & StackStylePropsBase\n>\n\n//\n// StaticComponent\n//\n\nexport type TamaguiComponent<\n Props = any,\n Ref = any,\n BaseProps = {},\n VariantProps = {}\n> = ReactComponentWithRef<Props, Ref> & StaticComponentObject\n\ntype StaticComponentObject = {\n staticConfig: StaticConfig\n /*\n * Only needed for more complex components\n * If you create a styled frame component this is a HoC to extract\n * styles from all parents.\n */\n extractable: <X>(a: X, opts?: Partial<StaticConfig>) => X\n}\n\nexport type TamaguiProviderProps = Partial<Omit<ThemeProviderProps, 'children'>> & {\n disableInjectCSS?: boolean\n children?: React.ReactNode\n}\n\nexport type PropMapper = (\n key: string,\n value: any,\n theme: ThemeObject,\n props: Record<string, any>,\n state: Partial<SplitStyleState>,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean,\n debug?: DebugProp\n) => undefined | [string, any][]\n\nexport type StaticConfigParsed = StaticConfig & {\n parsed: true\n propMapper: PropMapper\n variantsParsed?: {\n [key: string]: {\n [key: string]: any\n }\n }\n}\n\nexport type GenericVariantDefinitions = {\n [key: string]: {\n [key: string]:\n | ((a: any, b: any) => any)\n | {\n [key: string]: any\n }\n }\n}\n\nexport type StaticConfig = {\n Component?: React.FunctionComponent<any> & StaticComponentObject\n\n variants?: GenericVariantDefinitions\n\n /**\n * Used for applying sub theme style\n */\n componentName?: string\n\n /**\n * (compiler) If you need to pass context or something, prevents from ever\n * flattening. The 'jsx' option means it will never flatten. if you\n * pass JSX as a children (if its purely string, it will still flatten).\n */\n neverFlatten?: boolean | 'jsx'\n\n /**\n * Determines ultimate output tag (Text vs View)\n */\n isText?: boolean\n\n /**\n * Attempts to attach focus styles at runtime (useful for native)\n */\n isInput?: boolean\n\n /**\n * React native web images need special handling for className support\n */\n isImage?: boolean\n\n /**\n * Which style keys are allowed to be extracted.\n */\n validStyles?: { [key: string]: boolean }\n\n /**\n * Same as React.defaultProps, be sure to sync\n */\n defaultProps: Record<string, any>\n\n /**\n * (compiler) If these props are encountered, bail on all optimization.\n */\n deoptProps?: Set<string>\n\n /**\n * (compiler) If these props are encountered, leave them un-extracted.\n */\n inlineProps?: Set<string>\n\n /**\n * (compiler) If not flattening, leave this prop as original value.\n * Only applies to style attributes\n */\n inlineWhenUnflattened?: Set<string>\n\n /**\n * (compiler) A bit odd, only for more advanced heirarchies.\n * Indicates that the component will set this prop so the\n * static extraction can ensure it sets them to ={undefined}\n * so they get overriddent. In the future, this can be smarter.\n */\n ensureOverriddenProp?: { [key: string]: boolean }\n\n /**\n * Auto-detected, but can ovverride. Wraps children to space them on top\n */\n isZStack?: boolean\n\n /**\n * Merges into defaultProps later on, used internally yonly\n */\n defaultVariants?: { [key: string]: any }\n\n /**\n * Auto-detect, but can ovverride, passes styles properly to react-native-web\n */\n isReactNativeWeb?: boolean\n\n /**\n * Used internally to keep reference to the original rnw component\n */\n reactNativeWebComponent?: any\n\n /**\n * Memoize the component\n */\n memo?: boolean\n\n /**\n * Auto-detect, but can ovverride, passes styles properly to react-native-web\n */\n isTamagui?: boolean\n\n /**\n * Used internally to handle extractable HoC separate\n */\n isExtractable?: boolean\n\n /**\n * Used insternally to attach default props to names\n */\n parentNames?: string[]\n}\n\n/**\n * --------------------------------------------\n * variants\n * --------------------------------------------\n */\n\nexport type StylableComponent =\n | TamaguiComponent\n | React.Component\n | React.ForwardRefExoticComponent<any>\n | ReactComponentWithRef<any, any>\n | (new (props: any) => any)\n | typeof View\n | typeof Text\n | typeof TextInput\n | typeof Image\n\nexport type GetStyledVariants<A extends TamaguiComponent> = A extends TamaguiComponent<\n any,\n any,\n any,\n infer Variants\n>\n ? Variants\n : never\n\nexport type GetBaseProps<A extends StylableComponent> = A extends TamaguiComponent<\n any,\n any,\n infer BaseProps\n>\n ? BaseProps\n : never\n\nexport type GetProps<A extends StylableComponent> = A extends TamaguiComponent<infer Props>\n ? Props\n : A extends React.Component<infer Props>\n ? GetGenericComponentTamaguiProps<Props>\n : A extends new (props: infer Props) => any\n ? GetGenericComponentTamaguiProps<Props>\n : {}\n\ntype GetGenericComponentTamaguiProps<P> = P &\n Omit<'textAlign' extends keyof P ? TextProps : StackProps, keyof P>\n\nexport type SpreadKeys =\n | '...fontSize'\n | '...fontStyle'\n | '...fontTransform'\n | '...lineHeight'\n | '...letterSpacing'\n | '...size'\n | '...space'\n | '...color'\n | '...zIndex'\n | '...theme'\n | '...radius'\n\nexport type VariantDefinitions<\n Parent extends StylableComponent = TamaguiComponent,\n MyProps extends Object = GetProps<Parent>,\n Val = any\n> = VariantDefinitionFromProps<MyProps, Val>\n\nexport type VariantDefinitionFromProps<MyProps, Val> = MyProps extends Object\n ? {\n [propName: string]:\n | VariantSpreadFunction<MyProps, Val>\n | ({\n [Key in SpreadKeys]?: Key extends '...fontSize'\n ? FontSizeVariantSpreadFunction<MyProps>\n : Key extends '...size'\n ? SizeVariantSpreadFunction<MyProps>\n : Key extends '...space'\n ? SpaceVariantSpreadFunction<MyProps>\n : Key extends '...color'\n ? ColorVariantSpreadFunction<MyProps>\n : Key extends '...lineHeight'\n ? FontLineHeightVariantSpreadFunction<MyProps>\n : Key extends '...fontTransform'\n ? FontTransformVariantSpreadFunction<MyProps>\n : Key extends '...fontStyle'\n ? FontStyleVariantSpreadFunction<MyProps>\n : Key extends '...letterSpacing'\n ? FontLetterSpacingVariantSpreadFunction<MyProps>\n : Key extends '...zIndex'\n ? ZIndexVariantSpreadFunction<MyProps>\n : Key extends '...radius'\n ? RadiusVariantSpreadFunction<MyProps>\n : Key extends '...theme'\n ? ThemeVariantSpreadFunction<MyProps>\n : never\n } & {\n [Key in string | number | 'true' | 'false']?:\n | MyProps\n | VariantSpreadFunction<MyProps, Val>\n } & {\n [Key in VariantTypeKeys]?: Key extends ':number'\n ? VariantSpreadFunction<MyProps, number>\n : Key extends ':boolean'\n ? VariantSpreadFunction<MyProps, boolean>\n : Key extends ':string'\n ? VariantSpreadFunction<MyProps, string>\n : never\n })\n }\n : never\n\nexport type GenericStackVariants = VariantDefinitionFromProps<StackProps, any>\nexport type GenericTextVariants = VariantDefinitionFromProps<StackProps, any>\n\nexport type GetVariantProps<Variants> = {\n [Key in keyof Variants]?: Variants[Key] extends VariantSpreadFunction<any, infer Val>\n ? Val\n : GetVariantValues<keyof Variants[Key]>\n}\n\nexport type VariantSpreadExtras<Props> = {\n fonts: TamaguiConfig['fonts']\n tokens: TamaguiConfig['tokens']\n theme: Themes extends { [key: string]: infer B } ? B : unknown\n props: Props\n}\n\ntype PropLike = { [key: string]: any }\n\nexport type VariantSpreadFunction<Props extends PropLike, Val = any> = (\n val: Val,\n config: VariantSpreadExtras<Props>\n) =>\n | {\n [Key in keyof Props]: Props[Key] | Variable\n }\n | null\n | undefined\n\nexport type VariantTypeKeys = ':string' | ':boolean' | ':number'\n\nexport type GetVariantValues<Key> = Key extends `...${infer VariantSpread}`\n ? ThemeValueByCategory<VariantSpread>\n : Key extends 'true' | 'false'\n ? boolean\n : Key extends ':string'\n ? string\n : Key extends ':boolean'\n ? boolean\n : Key extends ':number'\n ? number\n : Key\n\nexport type FontSizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontSizeTokens\n>\nexport type SizeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SizeTokens>\nexport type SpaceVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, SpaceTokens>\nexport type ColorVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ColorTokens>\nexport type FontLineHeightVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontLineHeightTokens\n>\nexport type FontLetterSpacingVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontLetterSpacingTokens\n>\nexport type FontStyleVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontStyleTokens\n>\nexport type FontTransformVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<\n A,\n FontTransformTokens\n>\nexport type ZIndexVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ZIndexTokens>\nexport type RadiusVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, RadiusTokens>\nexport type ThemeVariantSpreadFunction<A extends PropLike> = VariantSpreadFunction<A, ThemeTokens>\n\n/**\n * --------------------------------------------\n * end variants\n * --------------------------------------------\n */\n\ntype SizeKeys =\n | 'width'\n | 'height'\n | 'minWidth'\n | 'minHeight'\n | 'maxWidth'\n | 'maxHeight'\n | 'shadowRadius'\n\ntype ColorKeys =\n | 'color'\n | 'backgroundColor'\n | 'borderColor'\n | 'borderBottomColor'\n | 'borderTopColor'\n | 'borderLeftColor'\n | 'borderRightColor'\n | 'shadowColor'\n | 'textShadowColor'\n\ntype SpaceKeys =\n | 'space'\n | 'padding'\n | 'paddingHorizontal'\n | 'paddingVertical'\n | 'paddingLeft'\n | 'paddingTop'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingEnd'\n | 'paddingStart'\n | 'margin'\n | 'marginHorizontal'\n | 'marginVertical'\n | 'marginLeft'\n | 'marginTop'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginEnd'\n | 'marginStart'\n | 'x'\n | 'y'\n | 'scale'\n | 'scaleX'\n | 'scaleY'\n | 'borderTopEndRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderTopStartRadius'\n | 'borderBottomEndRadius'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderBottomStartRadius'\n | 'borderBottomWidth'\n | 'borderLeftWidth'\n | 'borderRadius'\n | 'borderRightWidth'\n | 'borderTopEndRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderEndWidth'\n | 'borderStartWidth'\n | 'borderTopStartRadius'\n | 'borderTopWidth'\n | 'borderWidth'\n | 'left'\n | 'top'\n | 'right'\n | 'bottom'\n | 'shadowOffset'\n\ntype CSSColorNames =\n | 'aliceblue'\n | 'antiquewhite'\n | 'aqua'\n | 'aquamarine'\n | 'azure'\n | 'beige'\n | 'bisque'\n | 'black'\n | 'blanchedalmond'\n | 'blue'\n | 'blueviolet'\n | 'brown'\n | 'burlywood'\n | 'cadetblue'\n | 'chartreuse'\n | 'chocolate'\n | 'coral'\n | 'cornflowerblue'\n | 'cornsilk'\n | 'crimson'\n | 'cyan'\n | 'darkblue'\n | 'darkcyan'\n | 'darkgoldenrod'\n | 'darkgray'\n | 'darkgreen'\n | 'darkkhaki'\n | 'darkmagenta'\n | 'darkolivegreen'\n | 'darkorange'\n | 'darkorchid'\n | 'darkred'\n | 'darksalmon'\n | 'darkseagreen'\n | 'darkslateblue'\n | 'darkslategray'\n | 'darkturquoise'\n | 'darkviolet'\n | 'deeppink'\n | 'deepskyblue'\n | 'dimgray'\n | 'dodgerblue'\n | 'firebrick'\n | 'floralwhite'\n | 'forestgreen'\n | 'fuchsia'\n | 'gainsboro'\n | 'ghostwhite'\n | 'gold'\n | 'goldenrod'\n | 'gray'\n | 'green'\n | 'greenyellow'\n | 'honeydew'\n | 'hotpink'\n | 'indianred '\n | 'indigo '\n | 'ivory'\n | 'khaki'\n | 'lavender'\n | 'lavenderblush'\n | 'lawngreen'\n | 'lemonchiffon'\n | 'lightblue'\n | 'lightcoral'\n | 'lightcyan'\n | 'lightgoldenrodyellow'\n | 'lightgrey'\n | 'lightgreen'\n | 'lightpink'\n | 'lightsalmon'\n | 'lightseagreen'\n | 'lightskyblue'\n | 'lightslategray'\n | 'lightsteelblue'\n | 'lightyellow'\n | 'lime'\n | 'limegreen'\n | 'linen'\n | 'magenta'\n | 'maroon'\n | 'mediumaquamarine'\n | 'mediumblue'\n | 'mediumorchid'\n | 'mediumpurple'\n | 'mediumseagreen'\n | 'mediumslateblue'\n | 'mediumspringgreen'\n | 'mediumturquoise'\n | 'mediumvioletred'\n | 'midnightblue'\n | 'mintcream'\n | 'mistyrose'\n | 'moccasin'\n | 'navajowhite'\n | 'navy'\n | 'oldlace'\n | 'olive'\n | 'olivedrab'\n | 'orange'\n | 'orangered'\n | 'orchid'\n | 'palegoldenrod'\n | 'palegreen'\n | 'paleturquoise'\n | 'palevioletred'\n | 'papayawhip'\n | 'peachpuff'\n | 'peru'\n | 'pink'\n | 'plum'\n | 'powderblue'\n | 'purple'\n | 'red'\n | 'rosybrown'\n | 'royalblue'\n | 'saddlebrown'\n | 'salmon'\n | 'sandybrown'\n | 'seagreen'\n | 'seashell'\n | 'sienna'\n | 'silver'\n | 'skyblue'\n | 'slateblue'\n | 'slategray'\n | 'snow'\n | 'springgreen'\n | 'steelblue'\n | 'tan'\n | 'teal'\n | 'thistle'\n | 'tomato'\n | 'turquoise'\n | 'violet'\n | 'wheat'\n | 'white'\n | 'whitesmoke'\n | 'yellow'\n | 'yellowgreen'\n\nexport type TamaguiComponentState = {\n hover: boolean\n press: boolean\n pressIn: boolean\n focus: boolean\n mounted: boolean\n animation?: null | {\n style?: any\n avoidClasses?: boolean\n }\n}\n\nexport type SplitStyleState = TamaguiComponentState & {\n noClassNames?: boolean\n dynamicStylesInline?: boolean\n resolveVariablesAs?: ResolveVariableTypes\n fallbackProps?: Record<string, any>\n keepVariantsAsProps?: boolean\n hasTextAncestor?: boolean\n}\n\n// Animations:\n\ntype AnimationConfig = {\n [key: string]: any\n}\n\nexport type AnimationDriver<A extends AnimationConfig = AnimationConfig> = {\n avoidClasses?: boolean\n useAnimations: UseAnimationHook\n animations: A\n View?: any\n Text?: any\n}\n\nexport type UseAnimationProps = TamaguiComponentPropsBase & Record<string, any>\n\nexport type UseAnimationHelpers = {\n staticConfig: StaticConfigParsed\n getStyle: (props?: {\n isEntering?: boolean\n isExiting?: boolean\n exitVariant?: string | null\n enterVariant?: string | null\n }) => ViewStyle\n state: SplitStyleState\n pseudos: PseudoProps<ViewStyle>\n // style: ViewStyle | null | undefined\n // isMounted: boolean\n // exitStyle?: ViewStyle | null\n onDidAnimate?: any\n delay?: number\n // mergedStyles(props?: { isExiting?: boolean }): ViewStyle\n}\n\nexport type UseAnimationHook = (\n props: UseAnimationProps,\n helpers: UseAnimationHelpers\n) => {\n style?: StackStylePropsBase | StackStylePropsBase[]\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/helpers/getSplitStyles.tsx"],
|
|
4
|
-
"sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport type {\n DebugProp,\n MediaKeys,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { FontLanguageProps, LanguageContextType } from '../views/FontLanguage.types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixStyles } from './expandStyles'\nimport { getAtomicStyle, getStylesAtomic, styleToCSS } from './getStylesAtomic'\nimport {\n PartialStyleObject,\n RulesToInsert,\n insertStyleRules,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n languageContext?: LanguageContextType,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaKeys, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: RulesToInsert\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n languageContext,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaKeys, ViewStyle> = {}\n const usedKeys = new Set<string>()\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n const len = propKeys.length\n const rulesToInsert: RulesToInsert = []\n const style: ViewStyle = {}\n // TODO make this CSS, not compile-friendly\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n }\n\n // loop backwards so we can skip already-used props\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n }\n\n if (state.keepVariantsAsProps) {\n if (staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {\n viewProps[keyInit] = valInit\n }\n }\n\n /**\n * There's (some) reason to this madness: we want to allow returning media/pseudo from variants\n * Say you have a variant hoverable: { true: { hoverStyle: {} } }\n * We run propMapper first to expand variant, then we run the inner loop and look again\n * for if there's a pseudo/media returned from it.\n */\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n props,\n state,\n languageContext,\n undefined,\n debug\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \uD83D\uDD39 getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext,\n true\n )\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, style)\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, out)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n // if (key === 'pointerEvents') {\n // // pointer events can be box-none which requires css\n // addStyleToInsertRules(out.identifier, out.styleRule)\n // mergeClassName(fullKey, out.identifier, true)\n // } else {\n style[key] = normalizeValueWithProperty(val, key)\n // }\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n fixStyles(style)\n if (isWeb) {\n styleToCSS(style)\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n // pointerEvents box-none must be CSS-ified\n // should probably have a few more exceptions here!\n if (key === 'pointerEvents' || !state.dynamicStylesInline) {\n addStyleToInsertRules(rulesToInsert, atomicStyle)\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n } else {\n if (classNames && state.resolveVariablesAs === 'value') {\n // getting real values for colors for animations (reverse mapped from CSS)\n // this isn't beautiful, but will do relatively fine performance for now\n // has a bug still - try adding <Switch theme=\"bouncy\" /> should animate bg color on active\n // const selectors = getAllSelectors()\n // for (const key in classNames) {\n // if (key.endsWith('Color')) {\n // const selector = classNames[key]\n // let value = selectorValuesCache[selector]\n // if (!value) {\n // const css = selectors[selector]\n // value = css.replace(/.*:/, '').replace(/;.*/, '')\n // if (value) {\n // const themeUnwrapped = getThemeUnwrapped(theme)\n // const map = themeToVariableToValueMap.get(themeUnwrapped)\n // if (map && value.startsWith('var(')) {\n // value = map[value]\n // }\n // if (value) {\n // selectorValuesCache[selector] = value\n // }\n // } else {\n // // err\n // continue\n // }\n // }\n // if (value) {\n // style[key] = value\n // }\n // }\n // }\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Error no transform', transforms, namespace)\n }\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyleToInsertRules(rulesToInsert, {\n identifier,\n rules: [rule],\n property: namespace,\n })\n }\n }\n classNames[namespace] = identifier\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state, rulesToInsert })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\n/**\n * getSubStyle calls propMapper with props\n * those should be specific to the substyle, but fallback to the base props\n * so given props:\n *\n * { fontSize: 12, color: 'red', $sm: { color: 'blue' } }\n *\n * getSubStyle props should be a proxy that ends up like:\n *\n * { fontSize: 12, color: 'blue' }\n *\n * and to avoid re-creating it over and over, use a WeakMap\n */\nconst propProxies = new WeakMap()\nfunction getSubStyleProxiedProps(baseProps: Object, specificProps: Object) {\n if (!specificProps) {\n // functional variants may want to eventually do something like:\n // have a hooks-like rule (no conditionals)\n // then we run them once on compile with a proxy to capture the keys accessed\n // then add those keys to `inlineProps` so we know we must inline them\n // for now this will trigger because compiled away\n // right now also we don't pass in any pre-extracted styled() props but we should pass them in..\n return baseProps\n }\n // can cache based only on specific it's always referentially consistent with base\n if (propProxies.has(specificProps)) {\n return propProxies.get(specificProps)\n }\n const next = new Proxy(specificProps, {\n ownKeys() {\n return [...new Set([...Object.keys(baseProps), ...Object.keys(specificProps)])]\n },\n has(_, key) {\n return key in specificProps || key in baseProps\n },\n get(_, key) {\n return specificProps[key] ?? baseProps[key]\n },\n })\n propProxies.set(specificProps, next)\n return next\n}\n\nexport const getSubStyle = (\n subKey: string,\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n conf: TamaguiInternalConfig,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (let key in styleIn) {\n const val = styleIn[key]\n key = conf.shorthands[key] || key\n const expanded = staticConfig.propMapper(\n key,\n val,\n theme,\n getSubStyleProxiedProps(props, props[subKey]),\n state,\n languageContext,\n avoidDefaultProps\n )\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = normalizeValueWithProperty(sval, key)\n }\n }\n }\n\n fixStyles(styleOut)\n\n return styleOut\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n insertStyleRules(res.rulesToInsert)\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n insertStyleRules(res.rulesToInsert)\n }, [res.rulesToInsert])\n\n return res\n}\n\nfunction addStyleToInsertRules(rulesToInsert: RulesToInsert, styleObject: PartialStyleObject) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (\n styleObject.property === 'pointerEvents' ||\n updateInsertedCache(styleObject.identifier, styleObject.rules) ||\n (!isClient && process.env.NODE_ENV === 'production')\n ) {\n rulesToInsert.push(styleObject)\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA;AACA;AAGA;AACA;AACA;
|
|
4
|
+
"sourcesContent": ["import { stylePropsText, stylePropsTransform, validPseudoKeys, validStyles } from '@tamagui/helpers'\nimport { useInsertionEffect } from 'react'\nimport { ViewStyle } from 'react-native'\n\nimport { getConfig } from '../conf'\nimport { isClient, isWeb, useIsomorphicLayoutEffect } from '../constants/platform'\nimport { mediaQueryConfig, mediaState } from '../hooks/useMedia'\nimport type {\n DebugProp,\n MediaQueryKey,\n PseudoPropKeys,\n PseudoStyles,\n SplitStyleState,\n StackProps,\n StaticConfigParsed,\n TamaguiInternalConfig,\n ThemeObject,\n} from '../types'\nimport { FontLanguageProps, LanguageContextType } from '../views/FontLanguage.types'\nimport { createMediaStyle } from './createMediaStyle'\nimport { fixStyles } from './expandStyles'\nimport { getAtomicStyle, getStylesAtomic, styleToCSS } from './getStylesAtomic'\nimport {\n PartialStyleObject,\n RulesToInsert,\n insertStyleRules,\n insertedTransforms,\n updateInserted,\n updateInsertedCache,\n} from './insertStyleRule'\nimport { mergeTransform } from './mergeTransform'\nimport { normalizeValueWithProperty } from './normalizeValueWithProperty'\nimport { pseudoDescriptors } from './pseudoDescriptors'\n\nexport type SplitStyles = ReturnType<typeof getSplitStyles>\nexport type ClassNamesObject = Record<string, string>\nexport type SplitStyleResult = ReturnType<typeof getSplitStyles>\n\nconst skipProps = {\n animation: true,\n animateOnly: true,\n debug: true,\n componentName: true,\n\n ...(!isWeb && {\n tag: true,\n whiteSpace: true,\n wordWrap: true,\n textOverflow: true,\n textDecorationDistance: true,\n userSelect: true,\n selectable: true,\n cursor: true,\n contain: true,\n boxSizing: true,\n boxShadow: true,\n }),\n}\n\ntype TransformNamespaceKey = 'transform' | PseudoPropKeys | MediaQueryKey\n\nlet conf: TamaguiInternalConfig\n\ntype StyleSplitter = (\n props: { [key: string]: any },\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n state: SplitStyleState,\n defaultClassNames?: any,\n languageContext?: LanguageContextType,\n debug?: DebugProp\n) => {\n pseudos: PseudoStyles\n medias: Record<MediaQueryKey, ViewStyle>\n style: ViewStyle\n classNames: ClassNamesObject\n rulesToInsert: RulesToInsert\n viewProps: StackProps\n}\n\nexport const PROP_SPLIT = '-'\n\n// this is how compiler outputs psueodo identifier\n// TODO remove in next refactor\nexport const pseudoCNInverse = {\n hover: 'hoverStyle',\n focus: 'focusStyle',\n press: 'pressStyle',\n}\n\n// loop props backwards\n// track used keys:\n// const keys = new Set<string>()\n// keep classnames and styles separate:\n// const styles = {}\n// const classNames = {}\n\nexport const getSplitStyles: StyleSplitter = (\n props,\n staticConfig,\n theme,\n state,\n defaultClassNames,\n languageContext,\n debug\n) => {\n conf = conf || getConfig()\n const validStyleProps = staticConfig.isText ? stylePropsText : validStyles\n const viewProps: StackProps = {}\n const pseudos: PseudoStyles = {}\n const medias: Record<MediaQueryKey, ViewStyle> = {}\n const usedKeys = new Set<string>()\n const propKeys = Object.keys(props)\n const shouldDoClasses = (isWeb || process.env.IS_STATIC === 'is_static') && !state.noClassNames\n const len = propKeys.length\n const rulesToInsert: RulesToInsert = []\n const style: ViewStyle = {}\n // TODO make this CSS, not compile-friendly\n if (state.hasTextAncestor) {\n // parity with react-native-web\n style.display = 'inline-flex' as any\n }\n let classNames: ClassNamesObject = {}\n // we need to gather these specific to each media query / pseudo\n // value is [hash, val], so [\"-jnjad-asdnjk\", \"scaleX(1) rotate(10deg)\"]\n let transforms = null as Record<TransformNamespaceKey, [string, string]> | null\n\n function mergeClassName(key: string, val: string, isMediaOrPseudo = false) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // empty classnames passed by compiler sometimes\n if (!val) return\n if (val.startsWith('_transform-')) {\n const namespace: TransformNamespaceKey = isMediaOrPseudo ? key : 'transform'\n\n let transform = insertedTransforms[val]\n if (isClient) {\n if (!transform) {\n // HMR or loaded a new chunk\n updateInserted()\n transform = insertedTransforms[val]\n if (process.env.NODE_ENV === 'development') {\n if (!transform) {\n console.warn('no transform found', { insertedTransforms, val })\n }\n }\n }\n if (!transform) {\n if (isWeb && val[0] !== '_') {\n // runtime insert\n transform = val\n }\n }\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mergeClassName transform', { key, val, namespace, transform, insertedTransforms })\n }\n }\n transforms = transforms || {}\n transforms[namespace] = transforms[namespace] || ['', '']\n const identifier = val.replace('_transform', '')\n transforms[namespace][0] += identifier\n // ssr doesn't need to do anything just make the right classname\n if (transform) {\n transforms[namespace][1] += transform\n }\n } else {\n classNames[key] = val\n }\n }\n }\n\n // loop backwards so we can skip already-used props\n for (let i = len - 1; i >= 0; i--) {\n const keyInit = propKeys[i]\n\n if (usedKeys.has(keyInit)) continue\n if (skipProps[keyInit]) continue\n if (!isWeb && keyInit.startsWith('data-')) continue\n\n const valInit = props[keyInit]\n\n if (keyInit === 'style' || keyInit.startsWith('_style')) {\n if (!valInit) continue\n for (const key in valInit) {\n if (usedKeys.has(key)) continue\n if (valInit && typeof valInit === 'object') {\n // newer react native versions return a full object instead of ID\n for (const skey in valInit) {\n if (usedKeys.has(skey)) continue\n usedKeys.add(skey)\n style[skey] = valInit[skey]\n }\n } else {\n usedKeys.add(key)\n style[key] = valInit\n }\n }\n continue\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (keyInit === 'className') {\n let nonTamaguis = ''\n if (!valInit) continue\n for (const cn of valInit.split(' ')) {\n if (cn[0] === '_') {\n // tamagui, merge it expanded on key, eventually this will go away with better compiler\n const [shorthand, mediaOrPseudo] = cn.slice(1).split('-')\n const isMedia = mediaOrPseudo[0] === '_'\n const isPseudo = mediaOrPseudo[0] === '0'\n const isMediaOrPseudo = isMedia || isPseudo\n let fullKey = conf.shorthands[shorthand]\n if (isMedia) {\n // is media\n let mediaShortKey = mediaOrPseudo.slice(1)\n mediaShortKey = mediaShortKey.slice(0, mediaShortKey.indexOf('_'))\n fullKey += `${PROP_SPLIT}${mediaShortKey}`\n } else if (isPseudo) {\n // is pseudo\n const pseudoShortKey = mediaOrPseudo.slice(1)\n fullKey += `${PROP_SPLIT}${pseudoShortKey}`\n }\n usedKeys.add(fullKey)\n mergeClassName(fullKey, cn, isMediaOrPseudo)\n } else {\n nonTamaguis += ' ' + cn\n }\n }\n if (nonTamaguis) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, nonTamaguis)\n }\n continue\n }\n\n if (valInit && valInit[0] === '_') {\n // if valid style key (or pseudo like color-hover):\n // this conditional and esp the pseudo check rarely runs so not a perf issue\n const isValidClassName = validStyles[keyInit]\n const isMediaOrPseudo =\n !isValidClassName &&\n keyInit.includes(PROP_SPLIT) &&\n validStyles[keyInit.split(PROP_SPLIT)[0]]\n if (isValidClassName || isMediaOrPseudo) {\n usedKeys.add(keyInit)\n mergeClassName(keyInit, valInit, isMediaOrPseudo)\n continue\n }\n }\n }\n\n if (state.keepVariantsAsProps) {\n if (staticConfig.defaultVariants && keyInit in staticConfig.defaultVariants) {\n viewProps[keyInit] = valInit\n }\n }\n\n /**\n * There's (some) reason to this madness: we want to allow returning media/pseudo from variants\n * Say you have a variant hoverable: { true: { hoverStyle: {} } }\n * We run propMapper first to expand variant, then we run the inner loop and look again\n * for if there's a pseudo/media returned from it.\n */\n\n let isMedia = keyInit[0] === '$'\n let isPseudo = validPseudoKeys[keyInit]\n let isMediaOrPseudo = isMedia || isPseudo\n\n if (\n !isMedia &&\n !isPseudo &&\n !staticConfig.variants?.[keyInit] &&\n !validStyleProps[keyInit] &&\n !conf.shorthands[keyInit]\n ) {\n usedKeys.add(keyInit)\n viewProps[keyInit] = valInit\n continue\n }\n\n const expanded =\n isMedia || isPseudo\n ? [[keyInit, valInit]]\n : staticConfig.propMapper(\n keyInit,\n valInit,\n theme,\n props,\n state,\n languageContext,\n undefined,\n debug\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n console.log(' \uD83D\uDD39 getSplitStyles', keyInit, valInit, expanded)\n }\n\n if (!expanded) {\n continue\n }\n\n for (const [key, val] of expanded) {\n if (val === undefined) continue\n\n isMedia = key[0] === '$'\n isPseudo = validPseudoKeys[key]\n isMediaOrPseudo = isMedia || isPseudo\n\n if (!isMediaOrPseudo) {\n if (usedKeys.has(key)) continue\n }\n\n if (\n (staticConfig.deoptProps && staticConfig.deoptProps.has(key)) ||\n (staticConfig.inlineProps && staticConfig.inlineProps.has(key)) ||\n (staticConfig.inlineWhenUnflattened && staticConfig.inlineWhenUnflattened.has(key))\n ) {\n usedKeys.add(key)\n viewProps[key] = props[key] ?? val\n }\n\n // pseudo\n if (isPseudo) {\n if (!val) continue\n if (key === 'enterStyle' && state.mounted) {\n // once mounted we can ignore enterStyle\n continue\n }\n pseudos[key] = pseudos[key] || {}\n pseudos[key] = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext,\n true\n )\n if (shouldDoClasses) {\n const pseudoStyles = getAtomicStyle(pseudos[key], pseudoDescriptors[key])\n for (const style of pseudoStyles) {\n const postfix = pseudoDescriptors[key]?.name || key // exitStyle/enterStyle dont have pseudoDescriptors\n const fullKey = `${style.property}${PROP_SPLIT}${postfix}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, style)\n mergeClassName(fullKey, style.identifier, isMediaOrPseudo)\n }\n }\n }\n continue\n }\n\n // media\n if (isMedia) {\n const mediaKey = key\n const mediaKeyShort = mediaKey.slice(1)\n\n if (!mediaQueryConfig[mediaKeyShort]) {\n if (!usedKeys.has(key)) {\n // this isn't a media key, pass through\n viewProps[key] = val\n }\n continue\n }\n\n // dont check if media is active, we just apply *all* media styles\n // we combine the media props on top regular props, could proxy this\n // TODO test proxy here instead of merge\n // THIS USED TO PROXY BACK TO REGULAR PROPS BUT THAT IS THE WRONG BEHAVIOR\n // we avoid passing in default props for media queries because that would confuse things like SizableText.size:\n const mediaStyle = getSubStyle(\n key,\n val,\n staticConfig,\n theme,\n props,\n state,\n conf,\n languageContext\n )\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles mediaStyle', { mediaKey, mediaStyle, props, shouldDoClasses })\n }\n\n if (shouldDoClasses) {\n const mediaStyles = getStylesAtomic(mediaStyle)\n for (const style of mediaStyles) {\n const out = createMediaStyle(style, mediaKeyShort, mediaQueryConfig)\n // TODO handle pseudo + media, not too hard just need to set up example case\n const fullKey = `${style.property}${PROP_SPLIT}${mediaKeyShort}`\n if (!usedKeys.has(fullKey)) {\n usedKeys.add(fullKey)\n addStyleToInsertRules(rulesToInsert, out)\n mergeClassName(fullKey, out.identifier, true)\n }\n }\n } else {\n if (mediaState[mediaKey]) {\n if (process.env.NODE_ENV === 'development' && debug) {\n console.log('apply media style', mediaKey, mediaState)\n }\n Object.assign(shouldDoClasses ? medias : style, mediaStyle)\n }\n }\n continue\n }\n\n if (!isWeb && key === 'pointerEvents') {\n usedKeys.add(key)\n viewProps[key] = val\n continue\n }\n\n if (validStyleProps[key]) {\n usedKeys.add(key)\n if (val && val[0] === '_') {\n classNames[key] = val\n } else if (key in stylePropsTransform) {\n mergeTransform(style, key, val, true)\n } else {\n // if (key === 'pointerEvents') {\n // // pointer events can be box-none which requires css\n // addStyleToInsertRules(out.identifier, out.styleRule)\n // mergeClassName(fullKey, out.identifier, true)\n // } else {\n style[key] = normalizeValueWithProperty(val, key)\n // }\n }\n continue\n }\n\n // pass to view props\n if (!staticConfig.variants || !(key in staticConfig.variants)) {\n if (!skipProps[key]) {\n viewProps[key] = val\n usedKeys.add(key)\n }\n }\n }\n }\n\n fixStyles(style)\n if (isWeb) {\n styleToCSS(style)\n }\n\n // add in defaults if not set:\n if (defaultClassNames) {\n classNames = {\n ...defaultClassNames,\n ...classNames,\n }\n }\n\n if (shouldDoClasses) {\n const atomic = getStylesAtomic(style)\n for (const atomicStyle of atomic) {\n const key = atomicStyle.property\n // pointerEvents box-none must be CSS-ified\n // should probably have a few more exceptions here!\n if (key === 'pointerEvents' || !state.dynamicStylesInline) {\n addStyleToInsertRules(rulesToInsert, atomicStyle)\n mergeClassName(key, atomicStyle.identifier)\n } else {\n style[key] = atomicStyle.value\n }\n }\n } else {\n if (classNames && state.resolveVariablesAs === 'value') {\n // getting real values for colors for animations (reverse mapped from CSS)\n // this isn't beautiful, but will do relatively fine performance for now\n // has a bug still - try adding <Switch theme=\"bouncy\" /> should animate bg color on active\n // const selectors = getAllSelectors()\n // for (const key in classNames) {\n // if (key.endsWith('Color')) {\n // const selector = classNames[key]\n // let value = selectorValuesCache[selector]\n // if (!value) {\n // const css = selectors[selector]\n // value = css.replace(/.*:/, '').replace(/;.*/, '')\n // if (value) {\n // const themeUnwrapped = getThemeUnwrapped(theme)\n // const map = themeToVariableToValueMap.get(themeUnwrapped)\n // if (map && value.startsWith('var(')) {\n // value = map[value]\n // }\n // if (value) {\n // selectorValuesCache[selector] = value\n // }\n // } else {\n // // err\n // continue\n // }\n // }\n // if (value) {\n // style[key] = value\n // }\n // }\n // }\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (transforms) {\n for (const namespace in transforms) {\n if (!transforms[namespace]) {\n if (process.env.NODE_ENV === 'development') {\n console.warn('Error no transform', transforms, namespace)\n }\n continue\n }\n const [hash, val] = transforms[namespace]\n const identifier = `_transform${hash}`\n if (isClient) {\n if (!insertedTransforms[identifier]) {\n const rule = `.${identifier} { transform: ${val}; }`\n addStyleToInsertRules(rulesToInsert, {\n identifier,\n rules: [rule],\n property: namespace,\n })\n }\n }\n classNames[namespace] = identifier\n }\n }\n }\n\n if (process.env.NODE_ENV === 'development' && debug === 'verbose') {\n if (typeof document !== 'undefined') {\n // prettier-ignore\n console.log(' \uD83D\uDD39 getSplitStyles out', { style, pseudos, medias, classNames, viewProps, state, rulesToInsert })\n }\n }\n\n return {\n viewProps,\n style,\n medias,\n pseudos,\n classNames,\n rulesToInsert,\n }\n}\n\n/**\n * getSubStyle calls propMapper with props\n * those should be specific to the substyle, but fallback to the base props\n * so given props:\n *\n * { fontSize: 12, color: 'red', $sm: { color: 'blue' } }\n *\n * getSubStyle props should be a proxy that ends up like:\n *\n * { fontSize: 12, color: 'blue' }\n *\n * and to avoid re-creating it over and over, use a WeakMap\n */\nconst propProxies = new WeakMap()\nfunction getSubStyleProxiedProps(baseProps: Object, specificProps: Object) {\n if (!specificProps) {\n // functional variants may want to eventually do something like:\n // have a hooks-like rule (no conditionals)\n // then we run them once on compile with a proxy to capture the keys accessed\n // then add those keys to `inlineProps` so we know we must inline them\n // for now this will trigger because compiled away\n // right now also we don't pass in any pre-extracted styled() props but we should pass them in..\n return baseProps\n }\n // can cache based only on specific it's always referentially consistent with base\n if (propProxies.has(specificProps)) {\n return propProxies.get(specificProps)\n }\n const next = new Proxy(specificProps, {\n ownKeys() {\n return [...new Set([...Object.keys(baseProps), ...Object.keys(specificProps)])]\n },\n has(_, key) {\n return key in specificProps || key in baseProps\n },\n get(_, key) {\n return specificProps[key] ?? baseProps[key]\n },\n })\n propProxies.set(specificProps, next)\n return next\n}\n\nexport const getSubStyle = (\n subKey: string,\n styleIn: Object,\n staticConfig: StaticConfigParsed,\n theme: ThemeObject,\n props: any,\n state: SplitStyleState,\n conf: TamaguiInternalConfig,\n languageContext?: FontLanguageProps,\n avoidDefaultProps?: boolean\n): ViewStyle => {\n const styleOut: ViewStyle = {}\n for (let key in styleIn) {\n const val = styleIn[key]\n key = conf.shorthands[key] || key\n const expanded = staticConfig.propMapper(\n key,\n val,\n theme,\n getSubStyleProxiedProps(props, props[subKey]),\n state,\n languageContext,\n avoidDefaultProps\n )\n if (!expanded) continue\n for (const [skey, sval] of expanded) {\n if (skey in stylePropsTransform) {\n mergeTransform(styleOut, skey, sval)\n } else {\n styleOut[skey] = normalizeValueWithProperty(sval, key)\n }\n }\n }\n\n fixStyles(styleOut)\n\n return styleOut\n}\n\nexport const insertSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n insertStyleRules(res.rulesToInsert)\n return res\n}\n\n// on native no need to insert any css\nconst useInsertEffectCompat = isWeb ? useInsertionEffect || useIsomorphicLayoutEffect : () => {}\n\nexport const useSplitStyles: StyleSplitter = (...args) => {\n const res = getSplitStyles(...args)\n\n useInsertEffectCompat(() => {\n insertStyleRules(res.rulesToInsert)\n }, [res.rulesToInsert])\n\n return res\n}\n\nfunction addStyleToInsertRules(rulesToInsert: RulesToInsert, styleObject: PartialStyleObject) {\n if (process.env.TAMAGUI_TARGET === 'web') {\n // NOTE this is super tricky\n // for some reason, next.js dev SSR actually misses a lot of styles (pre-hydrate) with || !isClient\n // which doesn't really make sense, because that should strictly extract *more* css, but oh well\n // meanwhile, production builds *need* to always be truthy here for node, thus the cheat conditional\n if (\n styleObject.property === 'pointerEvents' ||\n updateInsertedCache(styleObject.identifier, styleObject.rules) ||\n (!isClient && process.env.NODE_ENV === 'production')\n ) {\n rulesToInsert.push(styleObject)\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { useForceUpdate } from "@tamagui/use-force-update";
|
|
2
|
-
import { useRef } from "react";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
3
|
import { useIsomorphicLayoutEffect } from "../constants/platform";
|
|
4
4
|
import { matchMedia } from "../helpers/matchMedia";
|
|
5
5
|
import { useConstant } from "./useConstant";
|
|
6
6
|
const mediaState = {};
|
|
7
7
|
const mediaQueryListeners = {};
|
|
8
|
-
|
|
8
|
+
function addMediaQueryListener(key, cb) {
|
|
9
9
|
mediaQueryListeners[key] = mediaQueryListeners[key] || /* @__PURE__ */ new Set();
|
|
10
10
|
mediaQueryListeners[key].add(cb);
|
|
11
|
-
}
|
|
12
|
-
|
|
11
|
+
}
|
|
12
|
+
function removeMediaQueryListener(key, cb) {
|
|
13
13
|
var _a;
|
|
14
14
|
(_a = mediaQueryListeners[key]) == null ? void 0 : _a.delete(cb);
|
|
15
|
-
}
|
|
15
|
+
}
|
|
16
16
|
const mediaQueryConfig = {};
|
|
17
17
|
const getMedia = () => {
|
|
18
18
|
return mediaState;
|
|
@@ -65,7 +65,7 @@ const configureMedia = ({
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
};
|
|
68
|
-
|
|
68
|
+
function useMedia() {
|
|
69
69
|
const forceUpdate = useForceUpdate();
|
|
70
70
|
const state = useRef();
|
|
71
71
|
if (!state.current) {
|
|
@@ -91,7 +91,7 @@ const useMedia = () => {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
});
|
|
94
|
-
|
|
94
|
+
useEffect(() => {
|
|
95
95
|
return () => {
|
|
96
96
|
const st = state.current;
|
|
97
97
|
st.isUnmounted = true;
|
|
@@ -126,7 +126,7 @@ const useMedia = () => {
|
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
|
-
}
|
|
129
|
+
}
|
|
130
130
|
function camelToHyphen(str) {
|
|
131
131
|
return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase();
|
|
132
132
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/hooks/useMedia.tsx"],
|
|
4
|
-
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: MediaQueryState = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport
|
|
5
|
-
"mappings": "AAAA;AACA;AAEA;AACA;AAQA;AAEO,MAAM,aAA8B,CAAC;AAC5C,MAAM,sBAAwD,CAAC;AAExD,
|
|
4
|
+
"sourcesContent": ["import { useForceUpdate } from '@tamagui/use-force-update'\nimport { useEffect, useRef } from 'react'\n\nimport { useIsomorphicLayoutEffect } from '../constants/platform'\nimport { matchMedia } from '../helpers/matchMedia'\nimport {\n ConfigureMediaQueryOptions,\n MediaQueries,\n MediaQueryKey,\n MediaQueryObject,\n MediaQueryState,\n} from '../types'\nimport { useConstant } from './useConstant'\n\nexport const mediaState: MediaQueryState = {} as any\nconst mediaQueryListeners: { [key: string]: Set<Function> } = {}\n\nexport function addMediaQueryListener(key: MediaQueryKey, cb: any) {\n mediaQueryListeners[key] = mediaQueryListeners[key] || new Set()\n mediaQueryListeners[key].add(cb)\n}\n\nexport function removeMediaQueryListener(key: MediaQueryKey, cb: any) {\n mediaQueryListeners[key]?.delete(cb)\n}\n\nexport const mediaQueryConfig: MediaQueries = {}\n\nexport const getMedia = () => {\n return mediaState\n}\n\nconst dispose = new Set<Function>()\n\nexport const configureMedia = ({\n queries,\n defaultActive = ['sm', 'xs'],\n}: ConfigureMediaQueryOptions = {}) => {\n if (!queries) return\n // support hot reload\n if (mediaQueryConfig) {\n if (JSON.stringify(queries) === JSON.stringify(mediaQueryConfig)) {\n // hmr avoid update\n return\n }\n dispose.forEach((cb) => cb())\n dispose.clear()\n }\n\n Object.assign(mediaQueryConfig, queries)\n\n // setup\n for (const key in queries) {\n const str = mediaObjectToString(queries[key])\n const propKey = `$${key}`\n try {\n const getMatch = () => matchMedia(str)\n const match = getMatch()\n if (!match || typeof match.addListener !== 'function') {\n // caught below\n throw new Error('\u26A0\uFE0F No match (seeing this in RN sometimes)')\n }\n mediaState[propKey] = !!match.matches\n // note this deprecated api works with polyfills we use now\n match.addListener(update)\n dispose.add(() => match.removeListener(update))\n\n function update() {\n const next = !!getMatch().matches\n if (next === mediaState[propKey]) return\n mediaState[propKey] = next\n const listeners = mediaQueryListeners[propKey]\n if (listeners?.size) {\n for (const cb of [...listeners]) {\n cb()\n }\n }\n }\n\n update()\n } catch (err: any) {\n console.error('Error running media query', str, err.message, err.stack)\n const isDefaultActive = defaultActive?.includes(key as any) ?? true\n mediaState[propKey] = isDefaultActive\n }\n }\n}\n\ntype UseMediaState = {\n selections: { [key: string]: boolean }\n nextSelections: { [key: string]: boolean }\n isRendering: boolean\n isUnmounted: boolean\n}\n\nexport function useMedia(): {\n [key in MediaQueryKey]: boolean\n} {\n const forceUpdate = useForceUpdate()\n const state = useRef() as React.MutableRefObject<UseMediaState>\n if (!state.current) {\n state.current = {\n selections: {},\n nextSelections: {},\n isUnmounted: false,\n isRendering: true,\n }\n }\n state.current.isRendering = true\n\n // track usage\n useIsomorphicLayoutEffect(() => {\n const st = state.current\n st.isRendering = false\n // delete old\n for (const key in st.selections) {\n if (!(key in st.nextSelections)) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n // add new\n for (const key in st.nextSelections) {\n if (!(key in st.selections)) {\n addMediaQueryListener(key, forceUpdate)\n }\n }\n })\n\n // unmount\n useEffect(() => {\n return () => {\n const st = state.current\n st.isUnmounted = true\n const allKeys = {\n ...st.selections,\n ...st.nextSelections,\n }\n for (const key in allKeys) {\n removeMediaQueryListener(key, forceUpdate)\n }\n }\n }, [])\n\n return useConstant(() => {\n const st = state.current\n return new Proxy(mediaState, {\n get(target, key: string) {\n if (key[0] !== '$') {\n key = `$${key}`\n }\n if (!(key in mediaState)) {\n return Reflect.get(target, key)\n }\n if (!st.isUnmounted) {\n if (st.isRendering) {\n st.nextSelections[key] = true\n }\n }\n if (key in mediaState) {\n return mediaState[key]\n }\n return Reflect.get(mediaState, key)\n },\n })\n })\n}\n\nfunction camelToHyphen(str: string) {\n return str.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`).toLowerCase()\n}\n\nexport function mediaObjectToString(query: string | MediaQueryObject) {\n if (typeof query === 'string') {\n return query\n }\n return Object.entries(query)\n .map(([feature, value]) => {\n feature = camelToHyphen(feature)\n if (typeof value === 'string') {\n return `(${feature}: ${value})`\n }\n if (typeof value === 'number' && /[height|width]$/.test(feature)) {\n value = `${value}px`\n }\n return `(${feature}: ${value})`\n })\n .join(' and ')\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/core",
|
|
3
|
-
"version": "1.0.1-beta.
|
|
3
|
+
"version": "1.0.1-beta.118",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@expo/match-media": "^0.3.0",
|
|
25
|
-
"@tamagui/compose-refs": "^1.0.1-beta.
|
|
26
|
-
"@tamagui/helpers": "^1.0.1-beta.
|
|
27
|
-
"@tamagui/rnw": "^1.0.1-beta.
|
|
28
|
-
"@tamagui/use-debounce": "^1.0.1-beta.
|
|
29
|
-
"@tamagui/use-event": "^1.0.1-beta.
|
|
30
|
-
"@tamagui/use-force-update": "^1.0.1-beta.
|
|
25
|
+
"@tamagui/compose-refs": "^1.0.1-beta.118",
|
|
26
|
+
"@tamagui/helpers": "^1.0.1-beta.118",
|
|
27
|
+
"@tamagui/rnw": "^1.0.1-beta.118",
|
|
28
|
+
"@tamagui/use-debounce": "^1.0.1-beta.118",
|
|
29
|
+
"@tamagui/use-event": "^1.0.1-beta.118",
|
|
30
|
+
"@tamagui/use-force-update": "^1.0.1-beta.118",
|
|
31
31
|
"expo-screen-orientation": "^4.2.0",
|
|
32
32
|
"hyphenate-style-name": "^1.0.4",
|
|
33
33
|
"normalize-css-color": "^1.0.2",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"react-native-web": "*"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@tamagui/build": "^1.0.1-beta.
|
|
41
|
+
"@tamagui/build": "^1.0.1-beta.118",
|
|
42
42
|
"@types/react": "^17.0.21",
|
|
43
43
|
"csstype": "^3.0.10",
|
|
44
44
|
"esbuild": "^0.14.49",
|
package/types/Tamagui.d.ts
CHANGED
package/types/conf.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViewStyle } from 'react-native';
|
|
2
|
-
import type { DebugProp,
|
|
2
|
+
import type { DebugProp, MediaQueryKey, PseudoStyles, SplitStyleState, StackProps, StaticConfigParsed, TamaguiInternalConfig, ThemeObject } from '../types';
|
|
3
3
|
import { FontLanguageProps, LanguageContextType } from '../views/FontLanguage.types';
|
|
4
4
|
import { RulesToInsert } from './insertStyleRule';
|
|
5
5
|
export declare type SplitStyles = ReturnType<typeof getSplitStyles>;
|
|
@@ -9,7 +9,7 @@ declare type StyleSplitter = (props: {
|
|
|
9
9
|
[key: string]: any;
|
|
10
10
|
}, staticConfig: StaticConfigParsed, theme: ThemeObject, state: SplitStyleState, defaultClassNames?: any, languageContext?: LanguageContextType, debug?: DebugProp) => {
|
|
11
11
|
pseudos: PseudoStyles;
|
|
12
|
-
medias: Record<
|
|
12
|
+
medias: Record<MediaQueryKey, ViewStyle>;
|
|
13
13
|
style: ViewStyle;
|
|
14
14
|
classNames: ClassNamesObject;
|
|
15
15
|
rulesToInsert: RulesToInsert;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKxC,OAAO,KAAK,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"getSplitStyles.d.ts","sourceRoot":"","sources":["../../src/helpers/getSplitStyles.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKxC,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAEb,YAAY,EACZ,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAIpF,OAAO,EAEL,aAAa,EAKd,MAAM,mBAAmB,CAAA;AAK1B,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAC3D,oBAAY,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACrD,oBAAY,gBAAgB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AA2BhE,aAAK,aAAa,GAAG,CACnB,KAAK,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7B,YAAY,EAAE,kBAAkB,EAChC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,eAAe,EACtB,iBAAiB,CAAC,EAAE,GAAG,EACvB,eAAe,CAAC,EAAE,mBAAmB,EACrC,KAAK,CAAC,EAAE,SAAS,KACd;IACH,OAAO,EAAE,YAAY,CAAA;IACrB,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IACxC,KAAK,EAAE,SAAS,CAAA;IAChB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,aAAa,EAAE,aAAa,CAAA;IAC5B,SAAS,EAAE,UAAU,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,UAAU,MAAM,CAAA;AAI7B,eAAO,MAAM,eAAe;;;;CAI3B,CAAA;AASD,eAAO,MAAM,cAAc,EAAE,aAoc5B,CAAA;AA6CD,eAAO,MAAM,WAAW,WACd,MAAM,WACL,MAAM,gBACD,kBAAkB,SACzB,WAAW,SACX,GAAG,SACH,eAAe,QAChB,qBAAqB,oBACT,iBAAiB,sBACf,OAAO,KAC1B,SA2BF,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,aAI/B,CAAA;AAKD,eAAO,MAAM,cAAc,EAAE,aAQ5B,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { ConfigureMediaQueryOptions, MediaQueries, MediaQueryObject, MediaQueryState } from '../types';
|
|
1
|
+
import { ConfigureMediaQueryOptions, MediaQueries, MediaQueryKey, MediaQueryObject, MediaQueryState } from '../types';
|
|
2
2
|
export declare const mediaState: MediaQueryState;
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
3
|
+
export declare function addMediaQueryListener(key: MediaQueryKey, cb: any): void;
|
|
4
|
+
export declare function removeMediaQueryListener(key: MediaQueryKey, cb: any): void;
|
|
5
5
|
export declare const mediaQueryConfig: MediaQueries;
|
|
6
6
|
export declare const getMedia: () => MediaQueryState;
|
|
7
7
|
export declare const configureMedia: ({ queries, defaultActive, }?: ConfigureMediaQueryOptions) => void;
|
|
8
|
-
export declare
|
|
9
|
-
[
|
|
8
|
+
export declare function useMedia(): {
|
|
9
|
+
[key in MediaQueryKey]: boolean;
|
|
10
10
|
};
|
|
11
11
|
export declare function mediaObjectToString(query: string | MediaQueryObject): string;
|
|
12
12
|
//# sourceMappingURL=useMedia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,0BAA0B,EAC1B,YAAY,
|
|
1
|
+
{"version":3,"file":"useMedia.d.ts","sourceRoot":"","sources":["../../src/hooks/useMedia.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EAChB,MAAM,UAAU,CAAA;AAGjB,eAAO,MAAM,UAAU,EAAE,eAA2B,CAAA;AAGpD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,QAGhE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,QAEnE;AAED,eAAO,MAAM,gBAAgB,EAAE,YAAiB,CAAA;AAEhD,eAAO,MAAM,QAAQ,uBAEpB,CAAA;AAID,eAAO,MAAM,cAAc,iCAGxB,0BAA0B,SAiD5B,CAAA;AASD,wBAAgB,QAAQ,IAAI;KACzB,GAAG,IAAI,aAAa,GAAG,OAAO;CAChC,CAoEA;AAMD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,UAgBnE"}
|
package/types/types.d.ts
CHANGED
|
@@ -88,8 +88,8 @@ declare type GenericThemes = {
|
|
|
88
88
|
});
|
|
89
89
|
};
|
|
90
90
|
declare type GenericShorthands = {};
|
|
91
|
-
declare type GenericMedia
|
|
92
|
-
[key
|
|
91
|
+
declare type GenericMedia = {
|
|
92
|
+
[key: string]: {
|
|
93
93
|
[key: string]: number | string;
|
|
94
94
|
};
|
|
95
95
|
};
|
|
@@ -206,7 +206,6 @@ export declare type GenericFont<Key extends number | string = number | string> =
|
|
|
206
206
|
[key in Key]: string | Variable;
|
|
207
207
|
}>;
|
|
208
208
|
};
|
|
209
|
-
export declare type MediaKeys = keyof Media;
|
|
210
209
|
export declare type MediaQueryObject = {
|
|
211
210
|
[key: string]: string | number | string;
|
|
212
211
|
};
|
package/types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,qBAAqB,EACrB,KAAK,EACL,cAAc,EACd,SAAS,IAAI,cAAc,EAC3B,IAAI,EACJ,SAAS,EACT,SAAS,EACT,IAAI,EACJ,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,oBAAY,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;AAE/D,oBAAY,cAAc,GAAG,WAAW,GAAG,IAAI,CAAA;AAE/C,oBAAY,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAA;AAKrD,oBAAY,yBAAyB,GAAG;IACtC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC1B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,uBAAuB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;IACxC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;IACnC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAA;IAC3C,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAA;IAC7C,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,qBAAqB,KAAK,GAAG,CAAA;IAE9C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;IACrC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;IACrC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,GAAG,CAAA;IAEpC,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACrC,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;CAC9B,CAAA;AAED,oBAAY,qBAAqB,CAAC,KAAK,EAAE,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAC7E,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CACjC,CAAA;AAED,oBAAY,cAAc,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAA;AAKlE,oBAAY,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;AACpD,oBAAY,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAEhD,aAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,WAAW;IACjE,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAA;KAAE,CAAA;IACjC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAA;KAAE,CAAA;IACjC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAA;KAAE,CAAA;IAChC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAA;KAAE,CAAA;IAClC,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAA;KAAE,CAAA;CACnC;AAED,oBAAY,gBAAgB,GAAG;IAI7B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,eAAe,EAAE,gBAAgB,CAAA;IACjC,eAAe,EAAE,gBAAgB,CAAA;IACjC,eAAe,EAAE,gBAAgB,CAAA;IACjC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,gBAAgB,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,WAAW,EAAE,gBAAgB,CAAA;IAC7B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAED,aAAK,aAAa,GAAG,YAAY,CAAA;AACjC,aAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GACV,CAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAC3B,CAAA,CAAA;CACN,CAAA;AAED,aAAK,iBAAiB,GAAG,EAAE,CAAA;AAG3B,aAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;KAC/B,CAAA;CACF,CAAA;AAED,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;AAEtD,aAAK,iBAAiB,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GACR,MAAM,GACN;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACN,CAAA;AAYD,MAAM,WAAW,mBAAmB;CAAG;AAEvC,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,mBAAmB,CAAC,EAC3D,mBAAmB;CAAG;AAE1B,oBAAY,mBAAmB,CAC7B,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,EACrC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,IACnC;IACF,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAA;IACjC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,MAAM,EAAE,GAAG,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3F,MAAM,EAAE,CAAC,CAAA;IACT,MAAM,EAAE,CAAC,CAAA;IACT,UAAU,EAAE,CAAC,CAAA;IACb,KAAK,EAAE,CAAC,CAAA;IACR,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;CAC/B,CAAA;AAED,aAAK,kBAAkB,CAAC,GAAG,IAAI,GAAG,SAAS,MAAM,GAC7C,GAAG,SAAS,GAAG,MAAM,IAAI,MAAM,OAAO,EAAE,GACtC,OAAO,GACP,KAAK,GACP,KAAK,CAAA;AAET,aAAK,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,MAAM,GAC9C,GAAG,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,EAAE,GACrC,MAAM,GACN,GAAG,GACL,KAAK,CAAA;AAET,aAAK,uBAAuB,CAAC,CAAC,SAAS,YAAY,IAAI;KACpD,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAC9C,CAAA;AAED,aAAK,oBAAoB,CAAC,CAAC,SAAS,YAAY,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAA;AAQ/E,aAAK,SAAS,CACZ,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,aAAa,EACvB,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,EACrC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,IACnC;IACF,MAAM,EAAE,CAAC,CAAA;IACT,MAAM,EAAE,CAAC,CAAA;IACT,UAAU,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,EAAE,CAAC,CAAA;IACT,UAAU,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IAC/B,KAAK,EAAE,CAAC,CAAA;CACT,CAAA;AAED,oBAAY,kBAAkB,CAAC,IAAI,IAAI,IAAI,SAAS,SAAS,CAC3D,MAAM,CAAC,EACP,MAAM,CAAC,EACP,MAAM,CAAC,EACP,MAAM,CAAC,EACP,MAAM,CAAC,EACP,MAAM,CAAC,CACR,GACG,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACvC,OAAO,CAAA;AAGX,oBAAY,oBAAoB,GAAG,mBAAmB,CACpD,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,YAAY,CACb,CAAA;AAGD,oBAAY,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAA;AAChF,oBAAY,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC5C,oBAAY,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,CAAA;AACpD,oBAAY,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;AAC1C,oBAAY,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC5C,oBAAY,SAAS,GAAG,gBAAgB,CAAC,MAAM,MAAM,CAAC,CAAA;AACtD,oBAAY,SAAS,GAAG,MAAM,WAAW,CAAA;AACzC,oBAAY,WAAW,GAAG,IAAI,SAAS,EAAE,CAAA;AACzC,oBAAY,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,CAAA;AACzE,oBAAY,aAAa,GAAG,iBAAiB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAA;AAE7E,aAAK,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAEpD,aAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AAE/F,oBAAY,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,GAAG;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAA;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED,oBAAY,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAC/C,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,CAAA;IACjC,KAAK,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IACtC,MAAM,EAAE;QACN,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;SAC1C,CAAA;KACF,CAAA;IAED,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;QACnC,KAAK,CAAC,EAAE,UAAU,CAAA;QAClB,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,MAAM,CAAC,EAAE,WAAW,CAAA;KACrB,CAAA;IAID,uBAAuB,CAAC,EAAE,aAAa,EAAE,CAAA;IAIzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAQ1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAG5B,2BAA2B,CAAC,EAAE,OAAO,CAAA;IAGrC,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAGD,oBAAY,qBAAqB,CAC/B,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,EACrC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,EAC/C,CAAC,SAAS,YAAY,GAAG,YAAY,IACnC,IAAI,CAAC,kBAAkB,EAAE,MAAM,oBAAoB,CAAC,GACtD,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAGtC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAA;IAE9C,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IACpC,WAAW,EAAE,GAAG,CAAA;IAChB,WAAW,EAAE,YAAY,CAAA;IACzB,MAAM,EAAE,MAAM,MAAM,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IAGf,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAEH,oBAAY,gBAAgB,CAAC,CAAC,SAAS,oBAAoB,IAAI,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAA;AAGlG,oBAAY,eAAe,GAAG,MAAM,GAAG,EAAE,CAAA;AACzC,oBAAY,eAAe,GAAG,MAAM,GAAG,EAAE,CAAA;AACzC,oBAAY,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,KAAK,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,GAC9F,KAAK,GACL,OAAO,CAAA;AAEX,oBAAY,WAAW,CAAC,GAAG,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI;IACvE,IAAI,EAAE;SAAG,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,QAAQ;KAAE,CAAA;IACzC,UAAU,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,QAAQ;KAAE,CAAC,CAAA;IACxD,aAAa,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,QAAQ;KAAE,CAAC,CAAA;IAC3D,MAAM,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ;KAAE,CAAC,CAAA;IAC7D,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAA;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,QAAQ;KAAE,CAAC,CAAA;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,QAAQ;KAAE,CAAC,CAAA;IAC5E,KAAK,CAAC,EAAE,OAAO,CAAC;SAAG,GAAG,IAAI,GAAG,GAAG,MAAM,GAAG,QAAQ;KAAE,CAAC,CAAA;CACrD,CAAA;AAGD,oBAAY,gBAAgB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAC1E,oBAAY,aAAa,GAAG,MAAM,KAAK,CAAA;AACvC,oBAAY,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA;AAC/C,oBAAY,eAAe,GAAG;KAAG,GAAG,IAAI,aAAa,GAAG,OAAO;CAAE,CAAA;AACjE,oBAAY,UAAU,CAAC,CAAC,IAAI;KACzB,GAAG,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC;CAC3B,CAAA;AACD,oBAAY,YAAY,GAAG;KACxB,GAAG,IAAI,aAAa,GAAG,gBAAgB;CACzC,CAAA;AACD,oBAAY,0BAA0B,GAAG;IACvC,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAA;CAChC,CAAA;AAED,oBAAY,mBAAmB,GAAG;IAChC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AASD,oBAAY,mBAAmB,GAAG,GAAG,CAAA;AAErC,oBAAY,aAAa,GACrB,aAAa,GACb;IACE,CAAC,GAAG,EAAE,MAAM,GACR,aAAa,GACb;QACE,IAAI,EAAE,aAAa,CAAA;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;CACN,GACD;IACE,aAAa;IACb;QACE,CAAC,GAAG,EAAE,MAAM,GACR,aAAa,GACb;YACE,IAAI,CAAC,EAAE,aAAa,CAAA;YACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SACnB,CAAA;KACN;CACF,CAAA;AAEL,aAAK,mBAAmB,CACtB,CAAC,SACG,MAAM,GACN,QAAQ,GACR,eAAe,GACf,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,OAAO,GACP,OAAO,IACT,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3C,aAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,EAAE,CAAA;AAG3E,oBAAY,UAAU,GAAG,cAAc,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;AACtE,oBAAY,WAAW,GAAG,cAAc,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAA;AAClF,oBAAY,WAAW,GACnB,cAAc,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,GACrC,cAAc,CAAC,MAAM,WAAW,CAAC,GACjC,aAAa,CAAA;AACjB,oBAAY,YAAY,GAAG,cAAc,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAA;AAC1E,oBAAY,YAAY,GAAG,cAAc,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAA;AAG1E,oBAAY,UAAU,GAAG,cAAc,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAA;AACrE,oBAAY,cAAc,GAAG,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;AACjF,oBAAY,oBAAoB,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,CAAA;AACnF,oBAAY,gBAAgB,GACxB,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,GACnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAA;AAC5C,oBAAY,eAAe,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAA;AACzE,oBAAY,uBAAuB,GAAG,IAAI,mBAAmB,CAAC,eAAe,CAAC,EAAE,GAAG,MAAM,CAAA;AACzF,oBAAY,eAAe,GAAG,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AACzF,oBAAY,mBAAmB,GAC3B,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,GACtC,SAAS,CAAC,eAAe,CAAC,CAAA;AAM9B,oBAAY,oBAAoB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,OAAO,GACpF,WAAW,GACX,CAAC,SAAS,MAAM,GAChB,UAAU,GACV,CAAC,SAAS,MAAM,GAChB,UAAU,GACV,CAAC,SAAS,UAAU,GACpB,cAAc,GACd,CAAC,SAAS,OAAO,GACjB,WAAW,GACX,CAAC,SAAS,OAAO,GACjB,WAAW,GACX,CAAC,SAAS,QAAQ,GAClB,YAAY,GACZ,CAAC,SAAS,YAAY,GACtB,oBAAoB,GACpB,CAAC,SAAS,YAAY,GACtB,gBAAgB,GAChB,CAAC,SAAS,eAAe,GACzB,uBAAuB,GACvB,EAAE,CAAA;AAEN,aAAK,QAAQ,GAAG,YAAY,CAAA;AAC5B,aAAK,YAAY,GAAG,UAAU,CAAA;AAC9B,aAAK,cAAc,GAAG,YAAY,CAAA;AAClC,aAAK,qBAAqB,GAAG,eAAe,CAAA;AAC5C,aAAK,cAAc,GAAG,YAAY,CAAA;AAClC,aAAK,UAAU,GAAG,QAAQ,CAAA;AAE1B,oBAAY,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,OAAO,GAC7E,WAAW,GACX,CAAC,SAAS,QAAQ,GAClB,UAAU,GACV,CAAC,SAAS,QAAQ,GAClB,UAAU,GACV,CAAC,SAAS,YAAY,GACtB,cAAc,GACd,CAAC,SAAS,SAAS,GACnB,CAAC,SAAS,cAAc,GACtB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAC3C,WAAW,GACb,CAAC,SAAS,SAAS,GACnB,WAAW,GACX,CAAC,SAAS,UAAU,GACpB,YAAY,GACZ,CAAC,SAAS,cAAc,GACxB,oBAAoB,GACpB,CAAC,SAAS,cAAc,GACxB,gBAAgB,GAChB,CAAC,SAAS,qBAAqB,GAC/B,uBAAuB,GACvB,KAAK,CAAA;AAET,oBAAY,kBAAkB,GAAG,eAAe,GAAG,QAAQ,CAAA;AAE3D,oBAAY,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI;KAC7C,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,KAAK,GAC1C,CAAC,CAAC,CAAC,CAAC,GACJ,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,kBAAkB;CAClE,CAAA;AAGD,oBAAY,cAAc,CAAC,UAAU,IAAI;KACtC,GAAG,IAAI,MAAM,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,MAAM,UAAU,GAChE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAClC,SAAS;CACd,CAAA;AAGD,oBAAY,WAAW,CAAC,CAAC,IAAI;IAC3B,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACrB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;IACpB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,oBAAY,cAAc,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAA;AAEnD,oBAAY,YAAY,GAAG;IACzB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAKD,aAAK,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,GAChE,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA;AAKpC,aAAK,6BAA6B,CAAC,CAAC,SAAS,MAAM,IAC/C,sBAAsB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAA;AAKtE,aAAK,wCAAwC,CAAC,CAAC,SAAS,MAAM,IAAI,6BAA6B,CAAC,CAAC,CAAC,GAChG,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAA;AAM9C,aAAK,iBAAiB,GAAG;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IAE9E,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,CAAA;IAEvF,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAA;CAC3C,CAAA;AAED,oBAAY,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,GAAG,WAAW,CAAC,GAC/F,mBAAmB,GACnB,iBAAiB,CAAA;AAEnB,oBAAY,oBAAoB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC,GACxE,YAAY,GACZ,yBAAyB,CAAA;AAE3B,oBAAY,eAAe,GAAG,wCAAwC,CAAC,mBAAmB,CAAC,CAAA;AAC3F,oBAAY,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;AAC/F,oBAAY,UAAU,GAAG,oBAAoB,GAAG,eAAe,CAAA;AAE/D,oBAAY,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,SAAS,CACzF,KAAK,EAAE,MAAM,KAAK,KACf,IAAI,GACL,KAAK,GACL,KAAK,CAAA;AAMT,oBAAY,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,oBAAoB,CAAC,GAChF,mBAAmB,GACnB,iBAAiB,GAAG;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAA;CAClC,CAAA;AAEH,oBAAY,mBAAmB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAChE,YAAY,GACZ,yBAAyB,CAAA;AAC3B,oBAAY,aAAa,GAAG,mBAAmB,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAA;AAC5F,oBAAY,cAAc,GAAG,wCAAwC,CAAC,kBAAkB,CAAC,CAAA;AACzF,oBAAY,SAAS,GAAG,mBAAmB,GAAG,cAAc,CAAA;AAG5D,oBAAY,eAAe,GAAG,wCAAwC,CACpE,IAAI,CAAC,kBAAkB,EAAE,MAAM,mBAAmB,CAAC,GAAG,mBAAmB,CAC1E,CAAA;AAMD,oBAAY,gBAAgB,CAC1B,KAAK,GAAG,GAAG,EACX,GAAG,GAAG,GAAG,EACT,SAAS,GAAG,EAAE,EACd,YAAY,GAAG,EAAE,IACf,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAA;AAE7D,aAAK,qBAAqB,GAAG;IAC3B,YAAY,EAAE,YAAY,CAAA;IAM1B,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;CAC1D,CAAA;AAED,oBAAY,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,GAAG;IACjF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAED,oBAAY,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,EACV,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,EAC/B,eAAe,CAAC,EAAE,iBAAiB,EACnC,iBAAiB,CAAC,EAAE,OAAO,EAC3B,KAAK,CAAC,EAAE,SAAS,KACd,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;AAEhC,oBAAY,kBAAkB,GAAG,YAAY,GAAG;IAC9C,MAAM,EAAE,IAAI,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,cAAc,CAAC,EAAE;QACf,CAAC,GAAG,EAAE,MAAM,GAAG;YACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SACnB,CAAA;KACF,CAAA;CACF,CAAA;AAED,oBAAY,yBAAyB,GAAG;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,CAAC,GAAG,EAAE,MAAM,GACR,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,GACzB;YACE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SACnB,CAAA;KACN,CAAA;CACF,CAAA;AAED,oBAAY,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAA;IAEhE,QAAQ,CAAC,EAAE,yBAAyB,CAAA;IAKpC,aAAa,CAAC,EAAE,MAAM,CAAA;IAOtB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IAK9B,MAAM,CAAC,EAAE,OAAO,CAAA;IAKhB,OAAO,CAAC,EAAE,OAAO,CAAA;IAKjB,OAAO,CAAC,EAAE,OAAO,CAAA;IAKjB,WAAW,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IAKxC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAKjC,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAKxB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAMzB,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAQnC,oBAAoB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IAKjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAKlB,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;IAKxC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAK1B,uBAAuB,CAAC,EAAE,GAAG,CAAA;IAK7B,IAAI,CAAC,EAAE,OAAO,CAAA;IAKd,SAAS,CAAC,EAAE,OAAO,CAAA;IAKnB,aAAa,CAAC,EAAE,OAAO,CAAA;IAKvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAQD,oBAAY,iBAAiB,GACzB,gBAAgB,GAChB,KAAK,CAAC,SAAS,GACf,KAAK,CAAC,yBAAyB,CAAC,GAAG,CAAC,GACpC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,GAC/B,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GACzB,OAAO,IAAI,GACX,OAAO,IAAI,GACX,OAAO,SAAS,GAChB,OAAO,KAAK,CAAA;AAEhB,oBAAY,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IAAI,CAAC,SAAS,gBAAgB,CACpF,GAAG,EACH,GAAG,EACH,GAAG,EACH,MAAM,QAAQ,CACf,GACG,QAAQ,GACR,KAAK,CAAA;AAET,oBAAY,YAAY,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAAC,SAAS,gBAAgB,CAChF,GAAG,EACH,GAAG,EACH,MAAM,SAAS,CAChB,GACG,SAAS,GACT,KAAK,CAAA;AAET,oBAAY,QAAQ,CAAC,CAAC,SAAS,iBAAiB,IAAI,CAAC,SAAS,gBAAgB,CAAC,MAAM,KAAK,CAAC,GACvF,KAAK,GACL,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,GACtC,+BAA+B,CAAC,KAAK,CAAC,GACtC,CAAC,SAAS,KAAK,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,GACzC,+BAA+B,CAAC,KAAK,CAAC,GACtC,EAAE,CAAA;AAEN,aAAK,+BAA+B,CAAC,CAAC,IAAI,CAAC,GACzC,IAAI,CAAC,WAAW,SAAS,MAAM,CAAC,GAAG,SAAS,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;AAErE,oBAAY,UAAU,GAClB,aAAa,GACb,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,CAAA;AAEf,oBAAY,kBAAkB,CAC5B,MAAM,SAAS,iBAAiB,GAAG,gBAAgB,EACnD,OAAO,SAAS,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,EACzC,GAAG,GAAG,GAAG,IACP,0BAA0B,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAE5C,oBAAY,0BAA0B,CAAC,OAAO,EAAE,GAAG,IAAI,OAAO,SAAS,MAAM,GACzE;IACE,CAAC,QAAQ,EAAE,MAAM,GACb,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC,GACnC,CAAC;SACE,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,aAAa,GAC3C,6BAA6B,CAAC,OAAO,CAAC,GACtC,GAAG,SAAS,SAAS,GACrB,yBAAyB,CAAC,OAAO,CAAC,GAClC,GAAG,SAAS,UAAU,GACtB,0BAA0B,CAAC,OAAO,CAAC,GACnC,GAAG,SAAS,UAAU,GACtB,0BAA0B,CAAC,OAAO,CAAC,GACnC,GAAG,SAAS,eAAe,GAC3B,mCAAmC,CAAC,OAAO,CAAC,GAC5C,GAAG,SAAS,kBAAkB,GAC9B,kCAAkC,CAAC,OAAO,CAAC,GAC3C,GAAG,SAAS,cAAc,GAC1B,8BAA8B,CAAC,OAAO,CAAC,GACvC,GAAG,SAAS,kBAAkB,GAC9B,sCAAsC,CAAC,OAAO,CAAC,GAC/C,GAAG,SAAS,WAAW,GACvB,2BAA2B,CAAC,OAAO,CAAC,GACpC,GAAG,SAAS,WAAW,GACvB,2BAA2B,CAAC,OAAO,CAAC,GACpC,GAAG,SAAS,UAAU,GACtB,0BAA0B,CAAC,OAAO,CAAC,GACnC,KAAK;KACV,GAAG;SACD,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EACxC,OAAO,GACP,qBAAqB,CAAC,OAAO,EAAE,GAAG,CAAC;KACxC,GAAG;SACD,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,GAAG,SAAS,SAAS,GAC5C,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,GAAG,SAAS,UAAU,GACtB,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GACvC,GAAG,SAAS,SAAS,GACrB,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,KAAK;KACV,CAAC,CAAA;CACP,GACD,KAAK,CAAA;AAET,oBAAY,oBAAoB,GAAG,0BAA0B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAC9E,oBAAY,mBAAmB,GAAG,0BAA0B,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;AAE7E,oBAAY,eAAe,CAAC,QAAQ,IAAI;KACrC,GAAG,IAAI,MAAM,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GACjF,GAAG,GACH,gBAAgB,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;CAC1C,CAAA;AAED,oBAAY,mBAAmB,CAAC,KAAK,IAAI;IACvC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAC7B,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/B,KAAK,EAAE,MAAM,SAAS;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,OAAO,CAAA;IAC9D,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,aAAK,QAAQ,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAAA;AAEtC,oBAAY,qBAAqB,CAAC,KAAK,SAAS,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,CACrE,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAEhC;KACG,GAAG,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ;CAC5C,GACD,IAAI,GACJ,SAAS,CAAA;AAEb,oBAAY,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAA;AAEhE,oBAAY,gBAAgB,CAAC,GAAG,IAAI,GAAG,SAAS,MAAM,MAAM,aAAa,EAAE,GACvE,oBAAoB,CAAC,aAAa,CAAC,GACnC,GAAG,SAAS,MAAM,GAAG,OAAO,GAC5B,OAAO,GACP,GAAG,SAAS,SAAS,GACrB,MAAM,GACN,GAAG,SAAS,UAAU,GACtB,OAAO,GACP,GAAG,SAAS,SAAS,GACrB,MAAM,GACN,GAAG,CAAA;AAEP,oBAAY,6BAA6B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CACnF,CAAC,EACD,cAAc,CACf,CAAA;AACD,oBAAY,yBAAyB,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAChG,oBAAY,0BAA0B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;AAClG,oBAAY,0BAA0B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;AAClG,oBAAY,mCAAmC,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CACzF,CAAC,EACD,oBAAoB,CACrB,CAAA;AACD,oBAAY,sCAAsC,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAC5F,CAAC,EACD,uBAAuB,CACxB,CAAA;AACD,oBAAY,8BAA8B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CACpF,CAAC,EACD,eAAe,CAChB,CAAA;AACD,oBAAY,kCAAkC,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CACxF,CAAC,EACD,mBAAmB,CACpB,CAAA;AACD,oBAAY,2BAA2B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AACpG,oBAAY,2BAA2B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AACpG,oBAAY,0BAA0B,CAAC,CAAC,SAAS,QAAQ,IAAI,qBAAqB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;AAQlG,aAAK,QAAQ,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,cAAc,CAAA;AAElB,aAAK,SAAS,GACV,OAAO,GACP,iBAAiB,GACjB,aAAa,GACb,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,iBAAiB,CAAA;AAErB,aAAK,SAAS,GACV,OAAO,GACP,SAAS,GACT,mBAAmB,GACnB,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,eAAe,GACf,aAAa,GACb,cAAc,GACd,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,cAAc,GACd,YAAY,GACZ,aAAa,GACb,WAAW,GACX,aAAa,GACb,GAAG,GACH,GAAG,GACH,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,GACzB,yBAAyB,GACzB,mBAAmB,GACnB,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,GAClB,sBAAsB,GACtB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,KAAK,GACL,OAAO,GACP,QAAQ,GACR,cAAc,CAAA;AAElB,aAAK,aAAa,GACd,WAAW,GACX,cAAc,GACd,MAAM,GACN,YAAY,GACZ,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,gBAAgB,GAChB,MAAM,GACN,YAAY,GACZ,OAAO,GACP,WAAW,GACX,WAAW,GACX,YAAY,GACZ,WAAW,GACX,OAAO,GACP,gBAAgB,GAChB,UAAU,GACV,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GACV,eAAe,GACf,UAAU,GACV,WAAW,GACX,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,cAAc,GACd,eAAe,GACf,eAAe,GACf,eAAe,GACf,YAAY,GACZ,UAAU,GACV,aAAa,GACb,SAAS,GACT,YAAY,GACZ,WAAW,GACX,aAAa,GACb,aAAa,GACb,SAAS,GACT,WAAW,GACX,YAAY,GACZ,MAAM,GACN,WAAW,GACX,MAAM,GACN,OAAO,GACP,aAAa,GACb,UAAU,GACV,SAAS,GACT,YAAY,GACZ,UAAU,GACV,OAAO,GACP,OAAO,GACP,UAAU,GACV,eAAe,GACf,WAAW,GACX,cAAc,GACd,WAAW,GACX,YAAY,GACZ,WAAW,GACX,sBAAsB,GACtB,WAAW,GACX,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,WAAW,GACX,OAAO,GACP,SAAS,GACT,QAAQ,GACR,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,aAAa,GACb,MAAM,GACN,SAAS,GACT,OAAO,GACP,WAAW,GACX,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,eAAe,GACf,WAAW,GACX,eAAe,GACf,eAAe,GACf,YAAY,GACZ,WAAW,GACX,MAAM,GACN,MAAM,GACN,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,KAAK,GACL,WAAW,GACX,WAAW,GACX,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,GACX,MAAM,GACN,aAAa,GACb,WAAW,GACX,KAAK,GACL,MAAM,GACN,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,OAAO,GACP,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,aAAa,CAAA;AAEjB,oBAAY,qBAAqB,GAAG;IAClC,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,IAAI,GAAG;QACjB,KAAK,CAAC,EAAE,GAAG,CAAA;QACX,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;CACF,CAAA;AAED,oBAAY,eAAe,GAAG,qBAAqB,GAAG;IACpD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,kBAAkB,CAAC,EAAE,oBAAoB,CAAA;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,CAAA;AAID,aAAK,eAAe,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,oBAAY,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,IAAI;IACzE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,UAAU,EAAE,CAAC,CAAA;IACb,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,IAAI,CAAC,EAAE,GAAG,CAAA;CACX,CAAA;AAED,oBAAY,iBAAiB,GAAG,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;AAE/E,oBAAY,mBAAmB,GAAG;IAChC,YAAY,EAAE,kBAAkB,CAAA;IAChC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE;QACjB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAC7B,KAAK,SAAS,CAAA;IACf,KAAK,EAAE,eAAe,CAAA;IACtB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;IAI/B,YAAY,CAAC,EAAE,GAAG,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CAEf,CAAA;AAED,oBAAY,gBAAgB,GAAG,CAC7B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,KACzB;IACH,KAAK,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,CAAA;CACpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/views/ThemeProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/views/ThemeProvider.tsx"],"names":[],"mappings":"AAUA,oBAAY,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,GAAG,CAAA;IACX,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,aAAa,UAAW,kBAAkB,gBAsCtD,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=wrapThemeManagerContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrapThemeManagerContext.d.ts","sourceRoot":"","sources":["../../src/helpers/wrapThemeManagerContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAGnE,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,EACb,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,EAClC,8BAA8B,CAAC,EAAE,OAAO,OAazC"}
|