@tamagui/core 1.0.1-beta.204 → 1.0.1-beta.205

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.
@@ -148,7 +148,8 @@ function createComponent(configIn, ParentComponent) {
148
148
  resolveVariablesAs: "value"
149
149
  };
150
150
  const languageContext = import_constants.isRSC ? null : (0, import_react.useContext)(import_FontLanguageContext.FontLanguageContext);
151
- const useAnimations = (_a = tamaguiConfig.animations) == null ? void 0 : _a.useAnimations;
151
+ const isDisabled = props.disabled ?? ((_a = props.accessibilityState) == null ? void 0 : _a.disabled);
152
+ const useAnimations = (_b = tamaguiConfig.animations) == null ? void 0 : _b.useAnimations;
152
153
  const nextIsAnimated = !!(useAnimations && props.animation);
153
154
  const isAnimated = nextIsAnimated || state.hasAnimation;
154
155
  if (nextIsAnimated && !state.hasAnimation) {
@@ -480,7 +481,7 @@ function createComponent(configIn, ParentComponent) {
480
481
  }
481
482
  if (process.env.TAMAGUI_TARGET === "native") {
482
483
  if (splitStyles.fontFamily) {
483
- const faceInfo = (_b = tamaguiConfig.fontsParsed[splitStyles.fontFamily]) == null ? void 0 : _b.face;
484
+ const faceInfo = (_c = tamaguiConfig.fontsParsed[splitStyles.fontFamily]) == null ? void 0 : _c.face;
484
485
  if (faceInfo) {
485
486
  const [weight, style] = (() => {
486
487
  var _a2, _b2;
@@ -492,7 +493,7 @@ function createComponent(configIn, ParentComponent) {
492
493
  }
493
494
  return [weight2 || "400", style2 || "normal"];
494
495
  })();
495
- const overrideFace = (_d = (_c = faceInfo[weight]) == null ? void 0 : _c[style]) == null ? void 0 : _d.val;
496
+ const overrideFace = (_e = (_d = faceInfo[weight]) == null ? void 0 : _d[style]) == null ? void 0 : _e.val;
496
497
  if (overrideFace) {
497
498
  for (const style2 of styles) {
498
499
  if (style2 == null ? void 0 : style2.fontFamily) {
@@ -512,7 +513,7 @@ function createComponent(configIn, ParentComponent) {
512
513
  const shouldAttach = asChild ? false : Boolean(
513
514
  attachPress || attachHover || "pressStyle" in props || "onPress" in props || "onPressIn" in props || "onPressOut" in props || import_constants.isWeb && ("hoverStyle" in props || "onHoverIn" in props || "onHoverOut" in props || "onMouseEnter" in props || "onMouseLeave" in props)
514
515
  );
515
- const events = shouldAttach && !import_constants.isRSC ? {
516
+ const events = shouldAttach && !import_constants.isRSC && !isDisabled ? {
516
517
  onPressOut: attachPress ? (e) => {
517
518
  unPress();
518
519
  onPressOut == null ? void 0 : onPressOut(e);
@@ -569,7 +570,7 @@ function createComponent(configIn, ParentComponent) {
569
570
  } : void 0,
570
571
  ...!import_constants.isWeb && {
571
572
  cancelable: !props.rejectResponderTermination,
572
- disabled: props.disabled !== null ? props.disabled : (_e = props.accessibilityState) == null ? void 0 : _e.disabled,
573
+ disabled: isDisabled,
573
574
  hitSlop: props.hitSlop,
574
575
  delayLongPress: props.delayLongPress,
575
576
  delayPressIn: props.delayPressIn,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createComponent.tsx"],
4
- "sourcesContent": ["import { useComposedRefs } from '@tamagui/compose-refs'\nimport { isClient, isRSC, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'\n/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n composeEventHandlers,\n stylePropsView,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport type { ViewStyle } from '@tamagui/types-react-native'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n RefObject,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n} from 'react'\n\nimport { onConfiguredOnce } from './config'\nimport { stackDefaultStyles } from './constants/constants'\nimport { FontLanguageContext } from './contexts/FontLanguageContext'\nimport { TextAncestorContext } from './contexts/TextAncestorContext'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport {\n SplitStyleResult,\n getSubStyle,\n insertSplitStyles,\n useSplitStyles,\n} from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { mergeProps } from './helpers/mergeProps'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { useShallowSetState } from './helpers/useShallowSetState'\nimport { getRect, measureLayout, useElementLayout } from './hooks/useElementLayout'\nimport { addMediaQueryListener, getInitialMediaState } from './hooks/useMedia'\nimport { useServerRef, useServerState } from './hooks/useServerHooks'\nimport { getThemeManager, useTheme } from './hooks/useTheme'\nimport {\n SpaceDirection,\n SpaceTokens,\n SpacerProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiElement,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from './types'\nimport { usePressability } from './vendor/Pressability'\nimport { Slot, mergeEvent } from './views/Slot'\nimport { wrapThemeManagerContext } from './views/Theme'\n\nReact['keep']\n// this appears to fix expo / babel not picking this up sometimes? really odd\nprocess.env.TAMAGUI_TARGET\n\n/**\n * All things that need one-time setup after createTamagui is called\n */\nlet defaultComponentState: TamaguiComponentState | null = null\nlet defaultComponentStateMounted: TamaguiComponentState | null = null\nlet tamaguiConfig: TamaguiInternalConfig\nlet AnimatedText: any\nlet AnimatedView: any\nlet initialTheme: any\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n const cancelTouches = () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n }\n document.addEventListener('mouseup', cancelTouches)\n document.addEventListener('touchend', cancelTouches)\n document.addEventListener('touchcancel', cancelTouches)\n}\n\n// mutates\nfunction mergeShorthands({ defaultProps }: StaticConfigParsed, { shorthands }: TamaguiConfig) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key of Object.keys(defaultProps)) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\n/**\n * Only on native do we need the actual underlying View/Text\n * On the web we avoid react-native altogether in core.\n */\nlet BaseText: any\nlet BaseView: any\nif (process.env.TAMAGUI_TARGET === 'native') {\n const native = require('react-native')\n BaseText = native.Text || native.default.Text\n BaseView = native.View || native.default.View\n}\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = TamaguiElement,\n BaseProps = never\n>(configIn: Partial<StaticConfig> | StaticConfigParsed, ParentComponent?: StylableComponent) {\n const staticConfig = (() => {\n const next = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in next) {\n return next\n } else {\n return parseStaticConfig(next)\n }\n })()\n\n const defaultComponentClassName = `is_${staticConfig.componentName}`\n const avoidClassesWhileAnimating = true\n let defaultNativeStyle: any\n let tamaguiDefaultProps: any\n let defaultTag: string | undefined\n let initialSplitStyles: SplitStyleResult\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((propsIn: any, forwardedRef) => {\n // React inserts default props after your props for some reason...\n // order important so we do loops, you can't just spread because JS does weird things\n let props: any\n if (tamaguiDefaultProps && !propsIn.asChild) {\n props = mergeProps(tamaguiDefaultProps, propsIn)[0]\n } else {\n props = propsIn\n }\n\n const debugProp = props['debug']\n const { Component, isText, isZStack } = staticConfig\n const componentName = props.componentName || staticConfig.componentName\n const componentClassName = props.asChild\n ? ''\n : props.componentName\n ? `is_${props.componentName}`\n : defaultComponentClassName\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n\n /**\n * Component state for tracking animations, pseudos\n */\n const hasEnterStyle = !!props.enterStyle\n const needsMount = Boolean((isWeb ? isClient : true) && (hasEnterStyle || props.animation))\n const states = useServerState<TamaguiComponentState>(\n needsMount ? defaultComponentState! : defaultComponentStateMounted!\n )\n\n const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0]\n const setState = states[1]\n const setStateShallow = useShallowSetState(setState)\n\n const shouldSetMounted = needsMount && !state.mounted\n const setMounted = shouldSetMounted\n ? () => {\n // for some reason without some small delay it doesn't animate css\n setTimeout(\n () => {\n setStateShallow({\n mounted: true,\n })\n },\n isWeb ? 10 : 0\n )\n }\n : undefined\n\n const shouldAvoidClasses =\n !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName\n\n const shouldForcePseudo = !!propsIn.forceStyle\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const splitStyleState =\n !shouldAvoidClasses && !shouldForcePseudo\n ? {\n ...state,\n hasTextAncestor,\n dynamicStylesInline: true,\n }\n : ({\n ...state,\n noClassNames: true,\n dynamicStylesInline: true,\n hasTextAncestor,\n resolveVariablesAs: 'value',\n } as const)\n\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const nextIsAnimated = !!(useAnimations && props.animation)\n // conditional but if ever true stays true\n const isAnimated = nextIsAnimated || state.hasAnimation\n if (nextIsAnimated && !state.hasAnimation) {\n setStateShallow({ hasAnimation: true })\n }\n\n const isTaggable = !Component || typeof Component === 'string'\n // default to tag, fallback to component (when both strings)\n const element = isWeb\n ? isTaggable\n ? props.tag || defaultTag || Component\n : Component\n : Component\n\n const BaseTextComponent = BaseText || element || 'span'\n const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')\n let elementType = isText\n ? (isAnimated ? AnimatedText : null) || BaseTextComponent\n : (isAnimated ? AnimatedView : null) || BaseViewComponent\n\n elementType = Component || elementType\n const isStringElement = typeof elementType === 'string'\n\n const splitStyles = useSplitStyles(\n props,\n staticConfig,\n theme,\n splitStyleState,\n props.asChild ? null : initialSplitStyles,\n languageContext || undefined,\n elementType,\n debugProp\n )\n\n const hostRef = useServerRef<TamaguiElement>(null)\n\n // animation setup\n const isReactNative = Boolean(\n staticConfig.isReactNative || (isAnimated && tamaguiConfig.animations.isReactNative)\n )\n const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating\n\n if (process.env.NODE_ENV === 'development') {\n if (!process.env.TAMAGUI_TARGET) {\n // eslint-disable-next-line no-console\n console.error(`No process.env.TAMAGUI_TARGET set, please set it to \"native\" or \"web\".`)\n }\n\n if (debugProp) {\n const name = `${\n componentName || Component?.displayName || Component?.name || '[Unnamed Component]'\n }`\n const type = isReactNative ? 'rnw' : 'tamagui'\n const banner = `${name} ${propsIn['data-is'] || ''} ${type}`\n // eslint-disable-next-line no-console\n console.group(`%c \uD83D\uDC1B ${banner}`, 'background: yellow;')\n // eslint-disable-next-line no-console\n console.groupCollapsed('initial props/state')\n // eslint-disable-next-line no-console\n console.log('propsIn', propsIn, 'turned into', props, 'order', Object.keys(props))\n // eslint-disable-next-line no-console\n console.log('splitStyles', splitStyles)\n // eslint-disable-next-line no-console\n console.log('className', Object.values(splitStyles.classNames))\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line no-console\n console.log('ref', hostRef, '(click to view)')\n }\n // eslint-disable-next-line no-console\n console.groupEnd()\n if (debugProp === 'break') {\n // eslint-disable-next-line no-debugger\n debugger\n }\n }\n }\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n medias,\n style: splitStylesStyle,\n classNames,\n mediaKeys,\n } = splitStyles\n\n const animationFeatureStylesIn = props.animation\n ? { ...defaultNativeStyle, ...splitStylesStyle }\n : null\n const propsWithAnimation = props as UseAnimationProps\n\n // once you set animation prop don't remove it, you can set to undefined/false\n // reason is animations are heavy - no way around it, and must be run inline here (\uD83D\uDE45 loading as a sub-component)\n let animationStyles: any\n if (!isRSC && isAnimated && useAnimations) {\n const animations = useAnimations(propsWithAnimation, {\n state,\n pseudos,\n onDidAnimate: props.onDidAnimate,\n hostRef,\n staticConfig,\n getStyle({ isExiting, isEntering, exitVariant, enterVariant } = {}) {\n // we have to merge such that transforms keys all exist\n const style = animationFeatureStylesIn\n\n const enterStyle = isEntering\n ? enterVariant && staticConfig.variants?.[enterVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[enterVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.enterStyle\n : pseudos.enterStyle\n : null\n\n const exitStyle = isExiting\n ? exitVariant && staticConfig.variants?.[exitVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[exitVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.exitStyle\n : pseudos.exitStyle\n : null\n\n // if you have hoverStyle={{ scale: 1.1 }} and don't have scale set on the base style\n // no animation will run! this is really confusing. this will look at all variants,\n // and fill in base styles if they don't exist. eg:\n // input:\n // base: {}\n // hoverStyle: { scale: 2 }\n // enterStyle: { x: 100 }\n // output:\n // base: { x: 0, scale: 1 }\n ensureBaseHasDefaults(\n style,\n // enterStyle,\n pseudos.hoverStyle,\n pseudos.focusStyle,\n pseudos.pressStyle\n )\n\n enterStyle && isEntering && merge(style, enterStyle)\n state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle)\n state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle)\n state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle)\n exitStyle && isExiting && merge(style, exitStyle)\n\n if (process.env.NODE_ENV === 'development') {\n if (debugProp === 'verbose') {\n // eslint-disable-next-line no-console\n console.log('animation style', style)\n }\n }\n\n return style\n },\n //, delay\n })\n\n if (animations) {\n animationStyles = animations.style\n }\n }\n\n // media queries\n useIsomorphicLayoutEffect(() => {\n if (!mediaKeys.length) return\n const disposers: any[] = []\n for (const key of mediaKeys) {\n disposers.push(\n addMediaQueryListener(key, (next: boolean) => {\n setState((prev) => {\n if (prev.mediaState![key] !== next) {\n return {\n ...prev,\n mediaState: getMediaStateObject({\n ...prev.mediaState,\n [key]: next,\n }),\n }\n }\n return prev\n })\n })\n )\n }\n return () => {\n for (const disposer of disposers) {\n disposer()\n }\n }\n }, [mediaKeys.join(',')])\n\n const {\n hitSlop,\n asChild,\n children,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n themeShallow,\n space: spaceProp,\n spaceDirection: _spaceDirection,\n disabled: disabledProp,\n onMouseUp,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n separator,\n // ignore from here on out\n forceStyle: _forceStyle,\n // @ts-ignore for next/link compat etc\n onClick,\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n ...nonTamaguiProps\n } = viewPropsIn\n\n const disabled =\n (props.accessibilityState != null && props.accessibilityState.disabled === true) ||\n props.accessibilityDisabled\n\n // these can ultimately be for DOM, react-native-web views, or animated views\n // so the type is pretty loose\n let viewProps: Record<string, any>\n\n // if react-native-web view just pass all props down\n if (process.env.TAMAGUI_TARGET === 'web' && !isReactNative) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n\n ...webProps\n } = nonTamaguiProps\n\n viewProps = webProps\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n if (props.href != undefined && hrefAttrs != undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n const _focusable = focusable != undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n } else {\n viewProps = nonTamaguiProps\n }\n\n viewProps.ref = useComposedRefs(hostRef as any, forwardedRef, setMounted)\n\n if (process.env.NODE_ENV === 'development' && !isText && isWeb && !staticConfig.isHOC) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n // eslint-disable-next-line no-console\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n const unPress = useCallback(() => {\n setStateShallow({\n press: false,\n pressIn: false,\n })\n }, [setStateShallow])\n\n if (!isRSC) {\n useEffect(() => {\n return () => {\n mouseUps.delete(unPress)\n }\n }, [unPress])\n }\n\n let styles: any[]\n\n if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {\n styles = {\n ...defaultNativeStyle,\n ...(animationStyles ?? splitStylesStyle),\n ...medias,\n }\n } else {\n styles = [isWeb ? null : defaultNativeStyle, animationStyles ?? splitStylesStyle, medias]\n if (!animationStyles && initialSplitStyles) {\n const initPseudos = initialSplitStyles.pseudos\n !state.mounted && addPseudoToStyles(styles, initPseudos, pseudos, 'enterStyle')\n state.hover &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'hoverStyle', shouldForcePseudo)\n state.focus &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'focusStyle', shouldForcePseudo)\n state.press &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'pressStyle', shouldForcePseudo)\n }\n // ugly but for now...\n if (shouldForcePseudo) {\n const next = {}\n for (const style of styles) {\n if (style) {\n Object.assign(next, style)\n }\n }\n // @ts-ignore\n Object.assign(splitStyles.style, next)\n }\n }\n\n let fontFamily = isText ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily : null\n if (fontFamily && fontFamily[0] === '$') {\n fontFamily = fontFamily.slice(1)\n }\n const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : ''\n\n const classList = [\n componentName ? componentClassName : '',\n fontFamilyClassName,\n theme.className,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n const className = classList.join(' ')\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n const style = animationStyles ?? splitStyles.style\n\n if (isAnimatedReactNativeWeb) {\n viewProps.style = style\n } else if (isReactNative) {\n const rnwStyle = { $$css: true }\n for (const name of className.split(' ')) {\n rnwStyle[name] = name\n }\n viewProps.style = [rnwStyle, ...(Array.isArray(style) ? style : [style])]\n if (process.env.NODE_ENV === 'development') {\n // turn debug data- props into dataSet in dev mode\n Object.keys(viewProps).forEach((key) => {\n if (key.startsWith('data-')) {\n viewProps.dataSet ??= {}\n viewProps.dataSet[key.replace('data-', '')] = viewProps[key]\n delete viewProps[key]\n }\n })\n }\n } else {\n viewProps.className = className\n viewProps.style = style\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'native') {\n // swap out the right family based on weight/style\n if (splitStyles.fontFamily) {\n const faceInfo = tamaguiConfig.fontsParsed[splitStyles.fontFamily]?.face\n if (faceInfo) {\n const [weight, style] = (() => {\n let weight: string | undefined\n let style: string | undefined\n for (let i = styles.length; i >= 0; i--) {\n weight ??= styles[i]?.fontWeight\n style ??= styles[i]?.fontStyle\n }\n return [weight || '400', style || 'normal'] as const\n })()\n const overrideFace = faceInfo[weight]?.[style]?.val\n if (overrideFace) {\n for (const style of styles) {\n if (style?.fontFamily) {\n style.fontFamily = overrideFace\n }\n }\n }\n }\n }\n\n // assign styles\n viewProps.style = styles\n }\n\n // TODO need to loop active variants and see if they have matchin pseudos and apply as well\n const initialPseudos = initialSplitStyles?.pseudos\n const attachPress = !!(\n pseudos?.pressStyle ||\n initialPseudos?.pressStyle ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n\n const isHoverable = isWeb\n const attachHover =\n isHoverable &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n const handlesPressEvents = !isWeb && !asChild\n\n // check presence rather than value to prevent reparenting bugs\n // allows for onPress={x ? function : undefined} without re-ordering dom\n const shouldAttach = asChild\n ? false\n : Boolean(\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n )\n\n const events =\n shouldAttach && !isRSC\n ? {\n onPressOut: attachPress\n ? (e) => {\n unPress()\n onPressOut?.(e)\n onMouseUp?.(e)\n }\n : undefined,\n ...(isHoverable && {\n onMouseEnter: attachHover\n ? (e) => {\n const next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (attachHover || state.pressIn) {\n setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: attachHover\n ? (e) => {\n const next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onPressIn: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n hover: false,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n if (isWeb) {\n mouseUps.add(unPress)\n }\n }\n : undefined,\n onPress: attachPress\n ? (e) => {\n unPress()\n // @ts-ignore\n onClick?.(e)\n onPress?.(e)\n }\n : undefined,\n\n // replicating TouchableWithoutFeedback\n ...(!isWeb && {\n cancelable: !props.rejectResponderTermination,\n disabled:\n props.disabled !== null ? props.disabled : props.accessibilityState?.disabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n focusable: viewProps.focusable ?? true,\n minPressDuration: 0,\n }),\n }\n : null\n\n let space = spaceProp\n\n // find space by media query\n if (state.mediaState && mediaKeys.length) {\n for (const key in state.mediaState) {\n if (state.mediaState[key] && props[key] && props[key].space !== undefined) {\n space = props[key].space\n }\n }\n }\n\n const themeManager = getThemeManager(theme)\n\n const shouldSetChildrenThemeToParent = Boolean(\n themeShallow && themeManager && themeManager.didChangeTheme\n )\n\n const shouldProvideThemeManager =\n shouldSetChildrenThemeToParent || (themeManager && themeManager.didChangeTheme)\n\n const childEls =\n !children || asChild\n ? children\n : wrapThemeManagerContext(\n spacedChildren({\n separator,\n children,\n space,\n direction: props.spaceDirection || 'both',\n isZStack,\n }),\n // only set context if changed theme\n shouldProvideThemeManager ? themeManager : undefined,\n shouldSetChildrenThemeToParent\n )\n\n let content: any\n\n if (asChild) {\n elementType = Slot\n viewProps = {\n ...viewProps,\n onPress,\n onPressIn,\n onPressOut,\n }\n }\n\n // EVENTS native\n if (process.env.TAMAGUI_TARGET === 'native') {\n // add focus events\n const attachFocus = !!(\n (pseudos && pseudos.focusStyle) ||\n (initialPseudos && initialPseudos.focusStyle)\n )\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(events)\n if (attachPress && events) {\n if (hitSlop) {\n viewProps.hitSlop = hitSlop\n }\n for (const key in pressability) {\n const og = props[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n\n content = createElement(elementType, viewProps, childEls)\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (events || isAnimatedReactNativeWeb) {\n content = (\n <span\n style={styleDisplayContents}\n className={isAnimatedReactNativeWeb ? className : undefined}\n {...(events && {\n onMouseEnter: events.onMouseEnter,\n onMouseLeave: events.onMouseLeave,\n onClick: events.onPress,\n onMouseDown: events.onPressIn,\n onMouseUp: events.onPressOut,\n onTouchStart: events.onPressIn,\n onTouchEnd: events.onPressOut,\n })}\n >\n {content}\n </span>\n )\n }\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG !== 'tamagui') {\n if (debugProp) {\n const element = typeof elementType === 'string' ? elementType : 'Component'\n // eslint-disable-next-line no-console\n console.groupCollapsed(`render <${element} /> with props`, viewProps)\n for (const key in viewProps) {\n // eslint-disable-next-line no-console\n console.log(key, viewProps[key])\n }\n // eslint-disable-next-line no-console\n console.log('children', content)\n // eslint-disable-next-line no-console\n console.groupEnd()\n if (typeof window !== 'undefined') {\n // prettier-ignore\n // eslint-disable-next-line no-console\n console.log({ state, shouldProvideThemeManager, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, defaultNativeStyle, initialSplitStyles, ...(typeof window !== 'undefined' ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) } : null) })\n }\n // eslint-disable-next-line no-console\n console.groupEnd()\n }\n }\n\n return content\n })\n\n if (staticConfig.componentName) {\n component.displayName = staticConfig.componentName\n }\n\n onConfiguredOnce((conf) => {\n // one time only setup\n if (!tamaguiConfig) {\n tamaguiConfig = conf\n\n if (!defaultComponentState) {\n defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n mounted: false,\n mediaState: getMediaStateObject(getInitialMediaState()),\n }\n defaultComponentStateMounted = {\n ...defaultComponentState,\n mounted: true,\n }\n }\n\n if (tamaguiConfig.animations) {\n AnimatedText = tamaguiConfig.animations.Text\n AnimatedView = tamaguiConfig.animations.View\n }\n\n if (!initialTheme) {\n const next = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n initialTheme = proxyThemeVariables(next)\n if (!initialTheme && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log(`Warning: Missing theme`)\n }\n }\n }\n\n // per-component setup\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n let defaultPropsIn = staticConfig.defaultProps || {}\n\n // because we run createTamagui after styled() defs, have to do some work here\n // gather defaults props one time and merge downwards\n // find last unprocessed and process\n const parentNames = [...(staticConfig.parentNames || []), staticConfig.componentName]\n\n if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {\n defaultPropsIn = mergeConfigDefaultProps(\n staticConfig.componentName,\n defaultPropsIn,\n tamaguiConfig.defaultProps,\n parentNames,\n tamaguiConfig\n )\n }\n\n const debug = defaultPropsIn['debug']\n\n // remove all classNames\n const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {}, true)\n\n if (ourProps.tag) {\n defaultTag = ourProps.tag\n }\n\n const noClassNames = !staticConfig.acceptsClassName\n\n initialSplitStyles = insertSplitStyles(\n ourProps,\n staticConfig,\n initialTheme,\n {\n mounted: true,\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n resolveVariablesAs: 'both',\n noClassNames,\n keepVariantsAsProps: true,\n },\n undefined,\n undefined,\n debug\n )\n\n // must preserve prop order\n // leave out className because we handle that already with initialSplitStyles.classNames\n // otherwise it confuses variant functions getting className props\n const [defaults, defaultsClassnames] = mergeProps(\n component.defaultProps as any,\n initialSplitStyles.viewProps,\n true\n // conf.inverseShorthands\n )\n\n // avoid passing className props to variants\n initialSplitStyles.classNames = {\n ...defaultsClassnames,\n ...initialSplitStyles.classNames,\n ...ourClassNames,\n }\n\n defaultNativeStyle = {}\n\n const validStyles = staticConfig.validStyles || stylePropsView\n\n // split - keep variables on props to be processed using theme values at runtime (native)\n if (!isWeb) {\n for (const key in staticConfig.defaultProps) {\n const val = staticConfig.defaultProps[key]\n if (validPseudoKeys[key]) continue\n if ((typeof val === 'string' && val[0] === '$') || !validStyles[key]) {\n defaults[key] = val\n } else {\n defaultNativeStyle[key] = val\n }\n }\n }\n\n if (Object.keys(defaults).length) {\n tamaguiDefaultProps = defaults\n }\n\n // add debug logs\n if (process.env.NODE_ENV === 'development' && debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n // eslint-disable-next-line no-console\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n initialSplitStyles,\n tamaguiDefaultProps,\n defaultNativeStyle,\n defaults,\n defaultPropsIn,\n defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),\n defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [k, defaultPropsIn[k]]),\n ourProps,\n ourClassNames,\n defaultsClassnames,\n defaultTag,\n noClassNames,\n })\n }\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res.staticConfig = {\n validStyles: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n // res.extractable HoC\n res.extractable = (Component: any, conf?: Partial<StaticConfig>) => {\n Component.staticConfig = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n isHOC: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// for elements to avoid spacing\nexport const Unspaced = (props: { children?: any }) => {\n return props.children\n}\nUnspaced['isUnspaced'] = true\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<SpacerProps>({\n memo: true,\n componentName: 'Spacer',\n validStyles,\n\n defaultProps: {\n ...stackDefaultStyles,\n // avoid nesting issues\n tag: 'span',\n size: true,\n },\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n const sizePx = tokens.space[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flexGrow: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n both: {},\n },\n } as const,\n})\n\nexport type SpacedChildrenProps = {\n isZStack?: boolean\n children?: React.ReactNode\n space?: SpaceTokens | number | null\n spaceFlex?: boolean | number\n direction?: SpaceDirection\n separator?: React.ReactNode\n}\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n direction,\n spaceFlex,\n separator,\n}: SpacedChildrenProps) {\n const hasSpace = !!(space || spaceFlex)\n const hasSeparator = !(separator === undefined || separator === null)\n if (!hasSpace && !hasSeparator && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n if (childrenList.length <= 1 && !isZStack) {\n return childrenList\n }\n const final: React.ReactNode[] = []\n for (const [index, child] of childrenList.entries()) {\n const isEmpty =\n child === null || child === undefined || (Array.isArray(child) && child.length === 0)\n\n // push them all, but wrap some in Fragment\n if (isEmpty || !child || (child['key'] && !isZStack)) {\n final.push(child)\n } else {\n final.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\n\n // first child unspaced avoid insert space\n if (isUnspaced(child) && index === 0) {\n continue\n }\n\n // no spacing on ZStack\n if (isZStack) {\n continue\n }\n\n const next = childrenList[index + 1]\n\n if (next && !isUnspaced(next)) {\n if (separator) {\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_00tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n final.push(\n React.isValidElement(separator)\n ? React.cloneElement(separator, { key: `sep_${index}` })\n : separator\n )\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}01tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n } else {\n final.push(\n createSpacer({\n key: `_${index}02tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n }\n }\n\n return final\n}\n\ntype CreateSpacerProps = SpacedChildrenProps & { key: string }\n\nfunction createSpacer({ key, direction, space, spaceFlex }: CreateSpacerProps) {\n return (\n // @ts-ignore this one blew up but the types seem better\n <Spacer\n key={key}\n size={space}\n direction={direction}\n {...(typeof spaceFlex !== 'undefined' && {\n flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex,\n })}\n />\n )\n}\n\nfunction isUnspaced(child: React.ReactNode) {\n // console.log('unspaced?', child, getMedia())\n return child?.['type']?.['isVisuallyHidden'] || child?.['type']?.['isUnspaced']\n}\n\nfunction addPseudoToStyles(\n styles: any[],\n initialPseudos: SplitStyleResult['pseudos'],\n pseudos: any,\n name: string,\n force = false\n) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n const shouldNestObject = isWeb && name !== 'enterStyle' && name !== 'exitStyle'\n const defaultPseudoStyle = initialPseudos[name]\n const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle\n if (style) {\n styles.push(shouldNestObject && !force ? { [name]: style } : style)\n }\n}\n\nconst DefaultProps = new Map()\n\nfunction mergeConfigDefaultProps(\n name: string,\n props: Record<string, any>,\n configDefaults: Record<string, Object>,\n parentNames: (string | undefined)[],\n conf: TamaguiInternalConfig\n) {\n const len = parentNames.length\n let prev\n\n for (let i = 0; i < len; i++) {\n const n = parentNames[i]\n if (!n) continue\n if (DefaultProps.has(n)) {\n prev = DefaultProps.get(n)\n continue\n }\n const props = configDefaults[n]\n if (!props) {\n if (prev) {\n DefaultProps.set(n, prev)\n }\n continue\n }\n prev = mergeProps(prev || {}, props, false, conf.inverseShorthands)[0]\n DefaultProps.set(n, prev)\n }\n\n // overwrite the user defined defaults on top of internal defined defaults\n const ourDefaultsMerged = DefaultProps.get(name)\n if (ourDefaultsMerged) {\n return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0]\n }\n return props\n}\n\nconst defaults = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n opacity: 1,\n translateX: 0,\n translateY: 0,\n skew: 0,\n skewX: 0,\n skewY: 0,\n scale: 1,\n rotate: '0deg',\n rotateY: '0deg',\n rotateX: '0deg',\n}\n\nfunction ensureBaseHasDefaults(base: ViewStyle, ...pseudos: (ViewStyle | null | undefined)[]) {\n for (const pseudo of pseudos) {\n if (!pseudo) continue\n for (const key in pseudo) {\n const val = pseudo[key]\n // can we just use merge() here?\n if (key === 'transform') {\n if (typeof val === 'string') {\n continue\n }\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n const defaultVal = defaults[tkey]\n const tDefaultVal = { [tkey]: defaultVal } as any\n if (!base.transform) {\n base.transform = [tDefaultVal]\n } else {\n if (!base.transform.find((x) => x[tkey])) {\n base.transform.push(tDefaultVal)\n }\n }\n }\n } else {\n if (!(key in base)) {\n base[key] = defaults[key]\n }\n }\n }\n }\n}\n\nfunction merge(base: ViewStyle, next: ViewStyle) {\n if (!next.transform || !base.transform) {\n Object.assign(base, next)\n return\n }\n const { transform, ...rest } = next\n Object.assign(base, rest)\n for (const t of transform) {\n const key = Object.keys(t)[0]\n const existing = base.transform.find((x) => key in x)\n if (existing) {\n existing[key] = t[key]\n } else {\n base.transform.push(t)\n }\n }\n}\n\n// react native compat (web only)\nfunction usePlatformMethods(hostRef: RefObject<Element>) {\n useIsomorphicLayoutEffect(() => {\n const node = hostRef.current\n if (!node) return\n // @ts-ignore\n node.measure = (callback) => measureLayout(node, null, callback)\n // @ts-ignore\n node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success)\n // @ts-ignore\n node.measureInWindow = (callback) => {\n if (!node) return\n setTimeout(() => {\n const { height, left, top, width } = getRect(node as HTMLElement)!\n callback(left, top, width, height)\n }, 0)\n }\n }, [hostRef])\n}\n\nconst AbsoluteFill: any = createComponent({\n componentName: 'AbsoluteFill',\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'box-none',\n },\n})\n\nconst styleDisplayContents = {\n display: 'contents',\n}\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n\nfunction getMediaStateObject(obj: Object) {\n return Object.fromEntries(Object.entries(obj).flatMap(([k, v]) => (v ? [[`$${k}`, v]] : [])))\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useComposedRefs } from '@tamagui/compose-refs'\nimport { isClient, isRSC, isWeb, useIsomorphicLayoutEffect } from '@tamagui/constants'\n/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n composeEventHandlers,\n stylePropsView,\n validPseudoKeys,\n validStyles,\n} from '@tamagui/helpers'\nimport { useResponderEvents } from '@tamagui/react-native-use-responder-events'\nimport type { ViewStyle } from '@tamagui/types-react-native'\nimport { useForceUpdate } from '@tamagui/use-force-update'\nimport React, {\n Children,\n Fragment,\n RefObject,\n createElement,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useEffect,\n} from 'react'\n\nimport { onConfiguredOnce } from './config'\nimport { stackDefaultStyles } from './constants/constants'\nimport { FontLanguageContext } from './contexts/FontLanguageContext'\nimport { TextAncestorContext } from './contexts/TextAncestorContext'\nimport { extendStaticConfig, parseStaticConfig } from './helpers/extendStaticConfig'\nimport {\n SplitStyleResult,\n getSubStyle,\n insertSplitStyles,\n useSplitStyles,\n} from './helpers/getSplitStyles'\nimport { getAllSelectors } from './helpers/insertStyleRule'\nimport { mergeProps } from './helpers/mergeProps'\nimport { proxyThemeVariables } from './helpers/proxyThemeVariables'\nimport { useShallowSetState } from './helpers/useShallowSetState'\nimport { getRect, measureLayout, useElementLayout } from './hooks/useElementLayout'\nimport { addMediaQueryListener, getInitialMediaState } from './hooks/useMedia'\nimport { useServerRef, useServerState } from './hooks/useServerHooks'\nimport { getThemeManager, useTheme } from './hooks/useTheme'\nimport {\n SpaceDirection,\n SpaceTokens,\n SpacerProps,\n StaticConfig,\n StaticConfigParsed,\n StylableComponent,\n TamaguiComponent,\n TamaguiComponentState,\n TamaguiConfig,\n TamaguiElement,\n TamaguiInternalConfig,\n UseAnimationHook,\n UseAnimationProps,\n} from './types'\nimport { usePressability } from './vendor/Pressability'\nimport { Slot, mergeEvent } from './views/Slot'\nimport { wrapThemeManagerContext } from './views/Theme'\n\nReact['keep']\n// this appears to fix expo / babel not picking this up sometimes? really odd\nprocess.env.TAMAGUI_TARGET\n\n/**\n * All things that need one-time setup after createTamagui is called\n */\nlet defaultComponentState: TamaguiComponentState | null = null\nlet defaultComponentStateMounted: TamaguiComponentState | null = null\nlet tamaguiConfig: TamaguiInternalConfig\nlet AnimatedText: any\nlet AnimatedView: any\nlet initialTheme: any\n\nexport const mouseUps = new Set<Function>()\nif (typeof document !== 'undefined') {\n const cancelTouches = () => {\n mouseUps.forEach((x) => x())\n mouseUps.clear()\n }\n document.addEventListener('mouseup', cancelTouches)\n document.addEventListener('touchend', cancelTouches)\n document.addEventListener('touchcancel', cancelTouches)\n}\n\n// mutates\nfunction mergeShorthands({ defaultProps }: StaticConfigParsed, { shorthands }: TamaguiConfig) {\n // they are defined in correct order already { ...parent, ...child }\n for (const key of Object.keys(defaultProps)) {\n defaultProps[shorthands[key] || key] = defaultProps[key]\n }\n}\n\n/**\n * Only on native do we need the actual underlying View/Text\n * On the web we avoid react-native altogether in core.\n */\nlet BaseText: any\nlet BaseView: any\nif (process.env.TAMAGUI_TARGET === 'native') {\n const native = require('react-native')\n BaseText = native.Text || native.default.Text\n BaseView = native.View || native.default.View\n}\n\nexport function createComponent<\n ComponentPropTypes extends Object = {},\n Ref = TamaguiElement,\n BaseProps = never\n>(configIn: Partial<StaticConfig> | StaticConfigParsed, ParentComponent?: StylableComponent) {\n const staticConfig = (() => {\n const next = extendStaticConfig(configIn, ParentComponent)\n if ('parsed' in next) {\n return next\n } else {\n return parseStaticConfig(next)\n }\n })()\n\n const defaultComponentClassName = `is_${staticConfig.componentName}`\n const avoidClassesWhileAnimating = true\n let defaultNativeStyle: any\n let tamaguiDefaultProps: any\n let defaultTag: string | undefined\n let initialSplitStyles: SplitStyleResult\n\n // see onConfiguredOnce below which attaches a name then to this component\n const component = forwardRef<Ref, ComponentPropTypes>((propsIn: any, forwardedRef) => {\n // React inserts default props after your props for some reason...\n // order important so we do loops, you can't just spread because JS does weird things\n let props: any\n if (tamaguiDefaultProps && !propsIn.asChild) {\n props = mergeProps(tamaguiDefaultProps, propsIn)[0]\n } else {\n props = propsIn\n }\n\n const debugProp = props['debug']\n const { Component, isText, isZStack } = staticConfig\n const componentName = props.componentName || staticConfig.componentName\n const componentClassName = props.asChild\n ? ''\n : props.componentName\n ? `is_${props.componentName}`\n : defaultComponentClassName\n\n const forceUpdate = useForceUpdate()\n const theme = useTheme(props.theme, componentName, props, forceUpdate)\n\n /**\n * Component state for tracking animations, pseudos\n */\n const hasEnterStyle = !!props.enterStyle\n const needsMount = Boolean((isWeb ? isClient : true) && (hasEnterStyle || props.animation))\n const states = useServerState<TamaguiComponentState>(\n needsMount ? defaultComponentState! : defaultComponentStateMounted!\n )\n\n const state = propsIn.forceStyle ? { ...states[0], [propsIn.forceStyle]: true } : states[0]\n const setState = states[1]\n const setStateShallow = useShallowSetState(setState)\n\n const shouldSetMounted = needsMount && !state.mounted\n const setMounted = shouldSetMounted\n ? () => {\n // for some reason without some small delay it doesn't animate css\n setTimeout(\n () => {\n setStateShallow({\n mounted: true,\n })\n },\n isWeb ? 10 : 0\n )\n }\n : undefined\n\n const shouldAvoidClasses =\n !!(props.animation && avoidClassesWhileAnimating) || !staticConfig.acceptsClassName\n\n const shouldForcePseudo = !!propsIn.forceStyle\n const hasTextAncestor = !!(isWeb && isText ? useContext(TextAncestorContext) : false)\n const splitStyleState =\n !shouldAvoidClasses && !shouldForcePseudo\n ? {\n ...state,\n hasTextAncestor,\n dynamicStylesInline: true,\n }\n : ({\n ...state,\n noClassNames: true,\n dynamicStylesInline: true,\n hasTextAncestor,\n resolveVariablesAs: 'value',\n } as const)\n\n const languageContext = isRSC ? null : useContext(FontLanguageContext)\n\n const isDisabled = props.disabled ?? props.accessibilityState?.disabled\n\n const useAnimations = tamaguiConfig.animations?.useAnimations as UseAnimationHook | undefined\n const nextIsAnimated = !!(useAnimations && props.animation)\n // conditional but if ever true stays true\n const isAnimated = nextIsAnimated || state.hasAnimation\n if (nextIsAnimated && !state.hasAnimation) {\n setStateShallow({ hasAnimation: true })\n }\n\n const isTaggable = !Component || typeof Component === 'string'\n // default to tag, fallback to component (when both strings)\n const element = isWeb\n ? isTaggable\n ? props.tag || defaultTag || Component\n : Component\n : Component\n\n const BaseTextComponent = BaseText || element || 'span'\n const BaseViewComponent = BaseView || element || (hasTextAncestor ? 'span' : 'div')\n let elementType = isText\n ? (isAnimated ? AnimatedText : null) || BaseTextComponent\n : (isAnimated ? AnimatedView : null) || BaseViewComponent\n\n elementType = Component || elementType\n const isStringElement = typeof elementType === 'string'\n\n const splitStyles = useSplitStyles(\n props,\n staticConfig,\n theme,\n splitStyleState,\n props.asChild ? null : initialSplitStyles,\n languageContext || undefined,\n elementType,\n debugProp\n )\n\n const hostRef = useServerRef<TamaguiElement>(null)\n\n // animation setup\n const isReactNative = Boolean(\n staticConfig.isReactNative || (isAnimated && tamaguiConfig.animations.isReactNative)\n )\n const isAnimatedReactNativeWeb = isAnimated && avoidClassesWhileAnimating\n\n if (process.env.NODE_ENV === 'development') {\n if (!process.env.TAMAGUI_TARGET) {\n // eslint-disable-next-line no-console\n console.error(`No process.env.TAMAGUI_TARGET set, please set it to \"native\" or \"web\".`)\n }\n\n if (debugProp) {\n const name = `${\n componentName || Component?.displayName || Component?.name || '[Unnamed Component]'\n }`\n const type = isReactNative ? 'rnw' : 'tamagui'\n const banner = `${name} ${propsIn['data-is'] || ''} ${type}`\n // eslint-disable-next-line no-console\n console.group(`%c \uD83D\uDC1B ${banner}`, 'background: yellow;')\n // eslint-disable-next-line no-console\n console.groupCollapsed('initial props/state')\n // eslint-disable-next-line no-console\n console.log('propsIn', propsIn, 'turned into', props, 'order', Object.keys(props))\n // eslint-disable-next-line no-console\n console.log('splitStyles', splitStyles)\n // eslint-disable-next-line no-console\n console.log('className', Object.values(splitStyles.classNames))\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line no-console\n console.log('ref', hostRef, '(click to view)')\n }\n // eslint-disable-next-line no-console\n console.groupEnd()\n if (debugProp === 'break') {\n // eslint-disable-next-line no-debugger\n debugger\n }\n }\n }\n\n const {\n viewProps: viewPropsIn,\n pseudos,\n medias,\n style: splitStylesStyle,\n classNames,\n mediaKeys,\n } = splitStyles\n\n const animationFeatureStylesIn = props.animation\n ? { ...defaultNativeStyle, ...splitStylesStyle }\n : null\n const propsWithAnimation = props as UseAnimationProps\n\n // once you set animation prop don't remove it, you can set to undefined/false\n // reason is animations are heavy - no way around it, and must be run inline here (\uD83D\uDE45 loading as a sub-component)\n let animationStyles: any\n if (!isRSC && isAnimated && useAnimations) {\n const animations = useAnimations(propsWithAnimation, {\n state,\n pseudos,\n onDidAnimate: props.onDidAnimate,\n hostRef,\n staticConfig,\n getStyle({ isExiting, isEntering, exitVariant, enterVariant } = {}) {\n // we have to merge such that transforms keys all exist\n const style = animationFeatureStylesIn\n\n const enterStyle = isEntering\n ? enterVariant && staticConfig.variants?.[enterVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[enterVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.enterStyle\n : pseudos.enterStyle\n : null\n\n const exitStyle = isExiting\n ? exitVariant && staticConfig.variants?.[exitVariant]['true']\n ? getSubStyle(\n '',\n staticConfig.variants?.[exitVariant]['true'],\n staticConfig,\n theme,\n props,\n state,\n tamaguiConfig\n ) || pseudos.exitStyle\n : pseudos.exitStyle\n : null\n\n // if you have hoverStyle={{ scale: 1.1 }} and don't have scale set on the base style\n // no animation will run! this is really confusing. this will look at all variants,\n // and fill in base styles if they don't exist. eg:\n // input:\n // base: {}\n // hoverStyle: { scale: 2 }\n // enterStyle: { x: 100 }\n // output:\n // base: { x: 0, scale: 1 }\n ensureBaseHasDefaults(\n style,\n // enterStyle,\n pseudos.hoverStyle,\n pseudos.focusStyle,\n pseudos.pressStyle\n )\n\n enterStyle && isEntering && merge(style, enterStyle)\n state.hover && pseudos.hoverStyle && merge(style, pseudos.hoverStyle)\n state.focus && pseudos.focusStyle && merge(style, pseudos.focusStyle)\n state.press && pseudos.pressStyle && merge(style, pseudos.pressStyle)\n exitStyle && isExiting && merge(style, exitStyle)\n\n if (process.env.NODE_ENV === 'development') {\n if (debugProp === 'verbose') {\n // eslint-disable-next-line no-console\n console.log('animation style', style)\n }\n }\n\n return style\n },\n //, delay\n })\n\n if (animations) {\n animationStyles = animations.style\n }\n }\n\n // media queries\n useIsomorphicLayoutEffect(() => {\n if (!mediaKeys.length) return\n const disposers: any[] = []\n for (const key of mediaKeys) {\n disposers.push(\n addMediaQueryListener(key, (next: boolean) => {\n setState((prev) => {\n if (prev.mediaState![key] !== next) {\n return {\n ...prev,\n mediaState: getMediaStateObject({\n ...prev.mediaState,\n [key]: next,\n }),\n }\n }\n return prev\n })\n })\n )\n }\n return () => {\n for (const disposer of disposers) {\n disposer()\n }\n }\n }, [mediaKeys.join(',')])\n\n const {\n hitSlop,\n asChild,\n children,\n onPress,\n onPressIn,\n onPressOut,\n onHoverIn,\n onHoverOut,\n themeShallow,\n space: spaceProp,\n spaceDirection: _spaceDirection,\n disabled: disabledProp,\n onMouseUp,\n onMouseDown,\n onMouseEnter,\n onMouseLeave,\n hrefAttrs,\n separator,\n // ignore from here on out\n forceStyle: _forceStyle,\n // @ts-ignore for next/link compat etc\n onClick,\n theme: _themeProp,\n // @ts-ignore\n defaultVariants,\n\n ...nonTamaguiProps\n } = viewPropsIn\n\n const disabled =\n (props.accessibilityState != null && props.accessibilityState.disabled === true) ||\n props.accessibilityDisabled\n\n // these can ultimately be for DOM, react-native-web views, or animated views\n // so the type is pretty loose\n let viewProps: Record<string, any>\n\n // if react-native-web view just pass all props down\n if (process.env.TAMAGUI_TARGET === 'web' && !isReactNative) {\n // otherwise replicate react-native-web functionality\n const {\n // event props\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n\n // android\n collapsable,\n focusable,\n\n // deprecated,\n accessible,\n accessibilityDisabled,\n\n onLayout,\n\n ...webProps\n } = nonTamaguiProps\n\n viewProps = webProps\n\n if (!isRSC) {\n usePlatformMethods(hostRef as RefObject<Element>)\n\n useElementLayout(hostRef as RefObject<Element>, onLayout as any)\n\n useResponderEvents(hostRef, {\n onMoveShouldSetResponder,\n onMoveShouldSetResponderCapture,\n onResponderEnd,\n onResponderGrant,\n onResponderMove,\n onResponderReject,\n onResponderRelease,\n onResponderStart,\n onResponderTerminate,\n onResponderTerminationRequest,\n onScrollShouldSetResponder,\n onScrollShouldSetResponderCapture,\n onSelectionChangeShouldSetResponder,\n onSelectionChangeShouldSetResponderCapture,\n onStartShouldSetResponder,\n onStartShouldSetResponderCapture,\n } as any)\n }\n\n if (props.href != undefined && hrefAttrs != undefined) {\n const { download, rel, target } = hrefAttrs\n if (download != null) {\n viewProps.download = download\n }\n if (rel != null) {\n viewProps.rel = rel\n }\n if (typeof target === 'string') {\n viewProps.target = target.charAt(0) !== '_' ? '_' + target : target\n }\n }\n\n // FOCUS\n // \"focusable\" indicates that an element may be a keyboard tab-stop.\n const _focusable = focusable != undefined ? focusable : accessible\n const role = viewProps.role\n if (_focusable === false) {\n viewProps.tabIndex = '-1'\n }\n if (\n // These native elements are focusable by default\n elementType === 'a' ||\n elementType === 'button' ||\n elementType === 'input' ||\n elementType === 'select' ||\n elementType === 'textarea'\n ) {\n if (_focusable === false || accessibilityDisabled === true) {\n viewProps.tabIndex = '-1'\n }\n } else if (\n // These roles are made focusable by default\n role === 'button' ||\n role === 'checkbox' ||\n role === 'link' ||\n role === 'radio' ||\n role === 'textbox' ||\n role === 'switch'\n ) {\n if (_focusable !== false) {\n viewProps.tabIndex = '0'\n }\n }\n // Everything else must explicitly set the prop\n if (_focusable === true) {\n viewProps.tabIndex = '0'\n }\n } else {\n viewProps = nonTamaguiProps\n }\n\n viewProps.ref = useComposedRefs(hostRef as any, forwardedRef, setMounted)\n\n if (process.env.NODE_ENV === 'development' && !isText && isWeb && !staticConfig.isHOC) {\n Children.toArray(props.children).forEach((item) => {\n if (typeof item === 'string') {\n // eslint-disable-next-line no-console\n console.error(`Unexpected text node: ${item}. A text node cannot be a child of a <View>.`)\n }\n })\n }\n\n const unPress = useCallback(() => {\n setStateShallow({\n press: false,\n pressIn: false,\n })\n }, [setStateShallow])\n\n if (!isRSC) {\n useEffect(() => {\n return () => {\n mouseUps.delete(unPress)\n }\n }, [unPress])\n }\n\n let styles: any[]\n\n if (isStringElement && shouldAvoidClasses && !shouldForcePseudo) {\n styles = {\n ...defaultNativeStyle,\n ...(animationStyles ?? splitStylesStyle),\n ...medias,\n }\n } else {\n styles = [isWeb ? null : defaultNativeStyle, animationStyles ?? splitStylesStyle, medias]\n if (!animationStyles && initialSplitStyles) {\n const initPseudos = initialSplitStyles.pseudos\n !state.mounted && addPseudoToStyles(styles, initPseudos, pseudos, 'enterStyle')\n state.hover &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'hoverStyle', shouldForcePseudo)\n state.focus &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'focusStyle', shouldForcePseudo)\n state.press &&\n addPseudoToStyles(styles, initPseudos, pseudos, 'pressStyle', shouldForcePseudo)\n }\n // ugly but for now...\n if (shouldForcePseudo) {\n const next = {}\n for (const style of styles) {\n if (style) {\n Object.assign(next, style)\n }\n }\n // @ts-ignore\n Object.assign(splitStyles.style, next)\n }\n }\n\n let fontFamily = isText ? splitStyles.fontFamily || staticConfig.defaultProps.fontFamily : null\n if (fontFamily && fontFamily[0] === '$') {\n fontFamily = fontFamily.slice(1)\n }\n const fontFamilyClassName = fontFamily ? `font_${fontFamily}` : ''\n\n const classList = [\n componentName ? componentClassName : '',\n fontFamilyClassName,\n theme.className,\n classNames ? Object.values(classNames).join(' ') : '',\n ]\n const className = classList.join(' ')\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n const style = animationStyles ?? splitStyles.style\n\n if (isAnimatedReactNativeWeb) {\n viewProps.style = style\n } else if (isReactNative) {\n const rnwStyle = { $$css: true }\n for (const name of className.split(' ')) {\n rnwStyle[name] = name\n }\n viewProps.style = [rnwStyle, ...(Array.isArray(style) ? style : [style])]\n if (process.env.NODE_ENV === 'development') {\n // turn debug data- props into dataSet in dev mode\n Object.keys(viewProps).forEach((key) => {\n if (key.startsWith('data-')) {\n viewProps.dataSet ??= {}\n viewProps.dataSet[key.replace('data-', '')] = viewProps[key]\n delete viewProps[key]\n }\n })\n }\n } else {\n viewProps.className = className\n viewProps.style = style\n }\n }\n\n if (process.env.TAMAGUI_TARGET === 'native') {\n // swap out the right family based on weight/style\n if (splitStyles.fontFamily) {\n const faceInfo = tamaguiConfig.fontsParsed[splitStyles.fontFamily]?.face\n if (faceInfo) {\n const [weight, style] = (() => {\n let weight: string | undefined\n let style: string | undefined\n for (let i = styles.length; i >= 0; i--) {\n weight ??= styles[i]?.fontWeight\n style ??= styles[i]?.fontStyle\n }\n return [weight || '400', style || 'normal'] as const\n })()\n const overrideFace = faceInfo[weight]?.[style]?.val\n if (overrideFace) {\n for (const style of styles) {\n if (style?.fontFamily) {\n style.fontFamily = overrideFace\n }\n }\n }\n }\n }\n\n // assign styles\n viewProps.style = styles\n }\n\n // TODO need to loop active variants and see if they have matchin pseudos and apply as well\n const initialPseudos = initialSplitStyles?.pseudos\n const attachPress = !!(\n pseudos?.pressStyle ||\n initialPseudos?.pressStyle ||\n onPress ||\n onPressOut ||\n onPressIn ||\n onClick\n )\n\n const isHoverable = isWeb\n const attachHover =\n isHoverable &&\n !!((pseudos && pseudos.hoverStyle) || onHoverIn || onHoverOut || onMouseEnter || onMouseLeave)\n\n const handlesPressEvents = !isWeb && !asChild\n\n // check presence rather than value to prevent reparenting bugs\n // allows for onPress={x ? function : undefined} without re-ordering dom\n const shouldAttach = asChild\n ? false\n : Boolean(\n attachPress ||\n attachHover ||\n 'pressStyle' in props ||\n 'onPress' in props ||\n 'onPressIn' in props ||\n 'onPressOut' in props ||\n (isWeb &&\n ('hoverStyle' in props ||\n 'onHoverIn' in props ||\n 'onHoverOut' in props ||\n 'onMouseEnter' in props ||\n 'onMouseLeave' in props))\n )\n\n const events =\n shouldAttach && !isRSC && !isDisabled\n ? {\n onPressOut: attachPress\n ? (e) => {\n unPress()\n onPressOut?.(e)\n onMouseUp?.(e)\n }\n : undefined,\n ...(isHoverable && {\n onMouseEnter: attachHover\n ? (e) => {\n const next: Partial<typeof state> = {}\n if (attachHover) {\n next.hover = true\n }\n if (state.pressIn) {\n next.press = true\n }\n if (attachHover || state.pressIn) {\n setStateShallow(next)\n }\n onHoverIn?.(e)\n onMouseEnter?.(e)\n }\n : undefined,\n onMouseLeave: attachHover\n ? (e) => {\n const next: Partial<typeof state> = {}\n mouseUps.add(unPress)\n if (attachHover) {\n next.hover = false\n }\n if (state.pressIn) {\n next.press = false\n next.pressIn = false\n }\n if (Object.keys(next).length) {\n setStateShallow(next)\n }\n onHoverOut?.(e)\n onMouseLeave?.(e)\n }\n : undefined,\n }),\n onPressIn: attachPress\n ? (e) => {\n setStateShallow({\n press: true,\n pressIn: true,\n hover: false,\n })\n onPressIn?.(e)\n onMouseDown?.(e)\n if (isWeb) {\n mouseUps.add(unPress)\n }\n }\n : undefined,\n onPress: attachPress\n ? (e) => {\n unPress()\n // @ts-ignore\n onClick?.(e)\n onPress?.(e)\n }\n : undefined,\n\n // replicating TouchableWithoutFeedback\n ...(!isWeb && {\n cancelable: !props.rejectResponderTermination,\n disabled: isDisabled,\n hitSlop: props.hitSlop,\n delayLongPress: props.delayLongPress,\n delayPressIn: props.delayPressIn,\n delayPressOut: props.delayPressOut,\n focusable: viewProps.focusable ?? true,\n minPressDuration: 0,\n }),\n }\n : null\n\n let space = spaceProp\n\n // find space by media query\n if (state.mediaState && mediaKeys.length) {\n for (const key in state.mediaState) {\n if (state.mediaState[key] && props[key] && props[key].space !== undefined) {\n space = props[key].space\n }\n }\n }\n\n const themeManager = getThemeManager(theme)\n\n const shouldSetChildrenThemeToParent = Boolean(\n themeShallow && themeManager && themeManager.didChangeTheme\n )\n\n const shouldProvideThemeManager =\n shouldSetChildrenThemeToParent || (themeManager && themeManager.didChangeTheme)\n\n const childEls =\n !children || asChild\n ? children\n : wrapThemeManagerContext(\n spacedChildren({\n separator,\n children,\n space,\n direction: props.spaceDirection || 'both',\n isZStack,\n }),\n // only set context if changed theme\n shouldProvideThemeManager ? themeManager : undefined,\n shouldSetChildrenThemeToParent\n )\n\n let content: any\n\n if (asChild) {\n elementType = Slot\n viewProps = {\n ...viewProps,\n onPress,\n onPressIn,\n onPressOut,\n }\n }\n\n // EVENTS native\n if (process.env.TAMAGUI_TARGET === 'native') {\n // add focus events\n const attachFocus = !!(\n (pseudos && pseudos.focusStyle) ||\n (initialPseudos && initialPseudos.focusStyle)\n )\n if (attachFocus) {\n viewProps.onFocus = mergeEvent(viewProps.onFocus, () => {\n setStateShallow({ focus: true })\n })\n viewProps.onBlur = mergeEvent(viewProps.onBlur, () => {\n setStateShallow({ focus: false })\n })\n }\n\n // use Pressability to get smooth unPress when you press + hold + move out\n // only ever create once, use .configure() to update later\n const pressability = usePressability(events)\n if (attachPress && events) {\n if (hitSlop) {\n viewProps.hitSlop = hitSlop\n }\n for (const key in pressability) {\n const og = props[key]\n const val = pressability[key]\n viewProps[key] =\n og && !dontComposePressabilityKeys[key] ? composeEventHandlers(og, val) : val\n }\n }\n }\n\n content = createElement(elementType, viewProps, childEls)\n\n if (process.env.TAMAGUI_TARGET === 'web') {\n if (events || isAnimatedReactNativeWeb) {\n content = (\n <span\n style={styleDisplayContents}\n className={isAnimatedReactNativeWeb ? className : undefined}\n {...(events && {\n onMouseEnter: events.onMouseEnter,\n onMouseLeave: events.onMouseLeave,\n onClick: events.onPress,\n onMouseDown: events.onPressIn,\n onMouseUp: events.onPressOut,\n onTouchStart: events.onPressIn,\n onTouchEnd: events.onPressOut,\n })}\n >\n {content}\n </span>\n )\n }\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG !== 'tamagui') {\n if (debugProp) {\n const element = typeof elementType === 'string' ? elementType : 'Component'\n // eslint-disable-next-line no-console\n console.groupCollapsed(`render <${element} /> with props`, viewProps)\n for (const key in viewProps) {\n // eslint-disable-next-line no-console\n console.log(key, viewProps[key])\n }\n // eslint-disable-next-line no-console\n console.log('children', content)\n // eslint-disable-next-line no-console\n console.groupEnd()\n if (typeof window !== 'undefined') {\n // prettier-ignore\n // eslint-disable-next-line no-console\n console.log({ state, shouldProvideThemeManager, isAnimated, isAnimatedReactNativeWeb, tamaguiDefaultProps, viewProps, splitStyles, animationStyles, handlesPressEvents, isStringElement, classNamesIn: props.className?.split(' '), classNamesOut: viewProps.className?.split(' '), events, shouldAttach, styles, pseudos, content, childEls, shouldAvoidClasses, avoidClasses: avoidClassesWhileAnimating, animation: props.animation, style: splitStylesStyle, defaultNativeStyle, initialSplitStyles, ...(typeof window !== 'undefined' ? { theme, themeClassName: theme.className, staticConfig, tamaguiConfig, events, shouldAvoidClasses, shouldForcePseudo, classNames: Object.fromEntries(Object.entries(classNames).map(([k, v]) => [v, getAllSelectors()[v]])) } : null) })\n }\n // eslint-disable-next-line no-console\n console.groupEnd()\n }\n }\n\n return content\n })\n\n if (staticConfig.componentName) {\n component.displayName = staticConfig.componentName\n }\n\n onConfiguredOnce((conf) => {\n // one time only setup\n if (!tamaguiConfig) {\n tamaguiConfig = conf\n\n if (!defaultComponentState) {\n defaultComponentState = {\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n mounted: false,\n mediaState: getMediaStateObject(getInitialMediaState()),\n }\n defaultComponentStateMounted = {\n ...defaultComponentState,\n mounted: true,\n }\n }\n\n if (tamaguiConfig.animations) {\n AnimatedText = tamaguiConfig.animations.Text\n AnimatedView = tamaguiConfig.animations.View\n }\n\n if (!initialTheme) {\n const next = conf.themes[conf.defaultTheme || Object.keys(conf.themes)[0]]\n initialTheme = proxyThemeVariables(next)\n if (!initialTheme && process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log(`Warning: Missing theme`)\n }\n }\n }\n\n // per-component setup\n // do this to make sure shorthands don't duplicate with.. longhands\n mergeShorthands(staticConfig, tamaguiConfig)\n\n let defaultPropsIn = staticConfig.defaultProps || {}\n\n // because we run createTamagui after styled() defs, have to do some work here\n // gather defaults props one time and merge downwards\n // find last unprocessed and process\n const parentNames = [...(staticConfig.parentNames || []), staticConfig.componentName]\n\n if (tamaguiConfig.defaultProps && parentNames && staticConfig.componentName) {\n defaultPropsIn = mergeConfigDefaultProps(\n staticConfig.componentName,\n defaultPropsIn,\n tamaguiConfig.defaultProps,\n parentNames,\n tamaguiConfig\n )\n }\n\n const debug = defaultPropsIn['debug']\n\n // remove all classNames\n const [ourProps, ourClassNames] = mergeProps(defaultPropsIn, {}, true)\n\n if (ourProps.tag) {\n defaultTag = ourProps.tag\n }\n\n const noClassNames = !staticConfig.acceptsClassName\n\n initialSplitStyles = insertSplitStyles(\n ourProps,\n staticConfig,\n initialTheme,\n {\n mounted: true,\n hover: false,\n press: false,\n pressIn: false,\n focus: false,\n resolveVariablesAs: 'both',\n noClassNames,\n keepVariantsAsProps: true,\n },\n undefined,\n undefined,\n debug\n )\n\n // must preserve prop order\n // leave out className because we handle that already with initialSplitStyles.classNames\n // otherwise it confuses variant functions getting className props\n const [defaults, defaultsClassnames] = mergeProps(\n component.defaultProps as any,\n initialSplitStyles.viewProps,\n true\n // conf.inverseShorthands\n )\n\n // avoid passing className props to variants\n initialSplitStyles.classNames = {\n ...defaultsClassnames,\n ...initialSplitStyles.classNames,\n ...ourClassNames,\n }\n\n defaultNativeStyle = {}\n\n const validStyles = staticConfig.validStyles || stylePropsView\n\n // split - keep variables on props to be processed using theme values at runtime (native)\n if (!isWeb) {\n for (const key in staticConfig.defaultProps) {\n const val = staticConfig.defaultProps[key]\n if (validPseudoKeys[key]) continue\n if ((typeof val === 'string' && val[0] === '$') || !validStyles[key]) {\n defaults[key] = val\n } else {\n defaultNativeStyle[key] = val\n }\n }\n }\n\n if (Object.keys(defaults).length) {\n tamaguiDefaultProps = defaults\n }\n\n // add debug logs\n if (process.env.NODE_ENV === 'development' && debug) {\n if (process.env.IS_STATIC !== 'is_static') {\n // eslint-disable-next-line no-console\n console.log(`\uD83D\uDC1B [${staticConfig.componentName || 'Component'}]`, {\n staticConfig,\n initialSplitStyles,\n tamaguiDefaultProps,\n defaultNativeStyle,\n defaults,\n defaultPropsIn,\n defaultPropsKeyOrder: Object.keys(staticConfig.defaultProps),\n defaultPropsInKeyOrder: Object.keys(defaultPropsIn).map((k) => [k, defaultPropsIn[k]]),\n ourProps,\n ourClassNames,\n defaultsClassnames,\n defaultTag,\n noClassNames,\n })\n }\n }\n })\n\n let res: TamaguiComponent<ComponentPropTypes, Ref, BaseProps> = component as any\n\n if (configIn.memo) {\n res = memo(res) as any\n }\n\n res.staticConfig = {\n validStyles: staticConfig.validStyles || stylePropsView,\n ...staticConfig,\n }\n\n // res.extractable HoC\n res.extractable = (Component: any, conf?: Partial<StaticConfig>) => {\n Component.staticConfig = extendStaticConfig(\n {\n Component,\n ...conf,\n neverFlatten: true,\n isHOC: true,\n defaultProps: {\n ...Component.defaultProps,\n ...conf?.defaultProps,\n },\n },\n res\n )\n return Component\n }\n\n return res\n}\n\n// for elements to avoid spacing\nexport const Unspaced = (props: { children?: any }) => {\n return props.children\n}\nUnspaced['isUnspaced'] = true\n\n// dont used styled() here to avoid circular deps\n// keep inline to avoid circular deps\n\nexport const Spacer = createComponent<SpacerProps>({\n memo: true,\n componentName: 'Spacer',\n validStyles,\n\n defaultProps: {\n ...stackDefaultStyles,\n // avoid nesting issues\n tag: 'span',\n size: true,\n },\n\n variants: {\n size: {\n '...size': (size, { tokens }) => {\n size = size == true ? '$true' : size\n const sizePx = tokens.space[size] ?? size\n return {\n width: sizePx,\n height: sizePx,\n minWidth: sizePx,\n minHeight: sizePx,\n }\n },\n },\n\n flex: {\n true: {\n flexGrow: 1,\n },\n },\n\n direction: {\n horizontal: {\n height: 0,\n minHeight: 0,\n },\n vertical: {\n width: 0,\n minWidth: 0,\n },\n both: {},\n },\n } as const,\n})\n\nexport type SpacedChildrenProps = {\n isZStack?: boolean\n children?: React.ReactNode\n space?: SpaceTokens | number | null\n spaceFlex?: boolean | number\n direction?: SpaceDirection\n separator?: React.ReactNode\n}\n\nexport function spacedChildren({\n isZStack,\n children,\n space,\n direction,\n spaceFlex,\n separator,\n}: SpacedChildrenProps) {\n const hasSpace = !!(space || spaceFlex)\n const hasSeparator = !(separator === undefined || separator === null)\n if (!hasSpace && !hasSeparator && !isZStack) {\n return children\n }\n const childrenList = Children.toArray(children)\n if (childrenList.length <= 1 && !isZStack) {\n return childrenList\n }\n const final: React.ReactNode[] = []\n for (const [index, child] of childrenList.entries()) {\n const isEmpty =\n child === null || child === undefined || (Array.isArray(child) && child.length === 0)\n\n // push them all, but wrap some in Fragment\n if (isEmpty || !child || (child['key'] && !isZStack)) {\n final.push(child)\n } else {\n final.push(\n <Fragment key={index}>{isZStack ? <AbsoluteFill>{child}</AbsoluteFill> : child}</Fragment>\n )\n }\n\n // first child unspaced avoid insert space\n if (isUnspaced(child) && index === 0) {\n continue\n }\n\n // no spacing on ZStack\n if (isZStack) {\n continue\n }\n\n const next = childrenList[index + 1]\n\n if (next && !isUnspaced(next)) {\n if (separator) {\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}_00tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n final.push(\n React.isValidElement(separator)\n ? React.cloneElement(separator, { key: `sep_${index}` })\n : separator\n )\n if (hasSpace) {\n final.push(\n createSpacer({\n key: `_${index}01tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n } else {\n final.push(\n createSpacer({\n key: `_${index}02tmgui`,\n direction,\n space,\n spaceFlex,\n })\n )\n }\n }\n }\n\n return final\n}\n\ntype CreateSpacerProps = SpacedChildrenProps & { key: string }\n\nfunction createSpacer({ key, direction, space, spaceFlex }: CreateSpacerProps) {\n return (\n // @ts-ignore this one blew up but the types seem better\n <Spacer\n key={key}\n size={space}\n direction={direction}\n {...(typeof spaceFlex !== 'undefined' && {\n flex: spaceFlex === true ? 1 : spaceFlex === false ? 0 : spaceFlex,\n })}\n />\n )\n}\n\nfunction isUnspaced(child: React.ReactNode) {\n // console.log('unspaced?', child, getMedia())\n return child?.['type']?.['isVisuallyHidden'] || child?.['type']?.['isUnspaced']\n}\n\nfunction addPseudoToStyles(\n styles: any[],\n initialPseudos: SplitStyleResult['pseudos'],\n pseudos: any,\n name: string,\n force = false\n) {\n // on web use pseudo object { hoverStyle } to keep specificity with concatClassName\n const pseudoStyle = pseudos[name]\n const shouldNestObject = isWeb && name !== 'enterStyle' && name !== 'exitStyle'\n const defaultPseudoStyle = initialPseudos[name]\n const style = defaultPseudoStyle ? { ...defaultPseudoStyle, ...pseudoStyle } : pseudoStyle\n if (style) {\n styles.push(shouldNestObject && !force ? { [name]: style } : style)\n }\n}\n\nconst DefaultProps = new Map()\n\nfunction mergeConfigDefaultProps(\n name: string,\n props: Record<string, any>,\n configDefaults: Record<string, Object>,\n parentNames: (string | undefined)[],\n conf: TamaguiInternalConfig\n) {\n const len = parentNames.length\n let prev\n\n for (let i = 0; i < len; i++) {\n const n = parentNames[i]\n if (!n) continue\n if (DefaultProps.has(n)) {\n prev = DefaultProps.get(n)\n continue\n }\n const props = configDefaults[n]\n if (!props) {\n if (prev) {\n DefaultProps.set(n, prev)\n }\n continue\n }\n prev = mergeProps(prev || {}, props, false, conf.inverseShorthands)[0]\n DefaultProps.set(n, prev)\n }\n\n // overwrite the user defined defaults on top of internal defined defaults\n const ourDefaultsMerged = DefaultProps.get(name)\n if (ourDefaultsMerged) {\n return mergeProps(props, ourDefaultsMerged, false, conf.inverseShorthands)[0]\n }\n return props\n}\n\nconst defaults = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n opacity: 1,\n translateX: 0,\n translateY: 0,\n skew: 0,\n skewX: 0,\n skewY: 0,\n scale: 1,\n rotate: '0deg',\n rotateY: '0deg',\n rotateX: '0deg',\n}\n\nfunction ensureBaseHasDefaults(base: ViewStyle, ...pseudos: (ViewStyle | null | undefined)[]) {\n for (const pseudo of pseudos) {\n if (!pseudo) continue\n for (const key in pseudo) {\n const val = pseudo[key]\n // can we just use merge() here?\n if (key === 'transform') {\n if (typeof val === 'string') {\n continue\n }\n for (const t of val) {\n const tkey = Object.keys(t)[0]\n const defaultVal = defaults[tkey]\n const tDefaultVal = { [tkey]: defaultVal } as any\n if (!base.transform) {\n base.transform = [tDefaultVal]\n } else {\n if (!base.transform.find((x) => x[tkey])) {\n base.transform.push(tDefaultVal)\n }\n }\n }\n } else {\n if (!(key in base)) {\n base[key] = defaults[key]\n }\n }\n }\n }\n}\n\nfunction merge(base: ViewStyle, next: ViewStyle) {\n if (!next.transform || !base.transform) {\n Object.assign(base, next)\n return\n }\n const { transform, ...rest } = next\n Object.assign(base, rest)\n for (const t of transform) {\n const key = Object.keys(t)[0]\n const existing = base.transform.find((x) => key in x)\n if (existing) {\n existing[key] = t[key]\n } else {\n base.transform.push(t)\n }\n }\n}\n\n// react native compat (web only)\nfunction usePlatformMethods(hostRef: RefObject<Element>) {\n useIsomorphicLayoutEffect(() => {\n const node = hostRef.current\n if (!node) return\n // @ts-ignore\n node.measure = (callback) => measureLayout(node, null, callback)\n // @ts-ignore\n node.measureLayout = (relativeToNode, success) => measureLayout(node, relativeToNode, success)\n // @ts-ignore\n node.measureInWindow = (callback) => {\n if (!node) return\n setTimeout(() => {\n const { height, left, top, width } = getRect(node as HTMLElement)!\n callback(left, top, width, height)\n }, 0)\n }\n }, [hostRef])\n}\n\nconst AbsoluteFill: any = createComponent({\n componentName: 'AbsoluteFill',\n defaultProps: {\n ...stackDefaultStyles,\n flexDirection: 'column',\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n pointerEvents: 'box-none',\n },\n})\n\nconst styleDisplayContents = {\n display: 'contents',\n}\n\nconst dontComposePressabilityKeys = {\n onClick: true,\n}\n\nfunction getMediaStateObject(obj: Object) {\n return Object.fromEntries(Object.entries(obj).flatMap(([k, v]) => (v ? [[`$${k}`, v]] : [])))\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_constants", "React", "_a", "_b", "_c", "_d", "weight", "style", "element", "defaults", "validStyles", "props"]
7
7
  }
@@ -124,7 +124,7 @@ const accessibilityRoleToWebRole = {
124
124
  };
125
125
  const isMediaKey = (key) => Boolean(key[0] === "$" && import_useMedia.mediaQueryConfig[key.slice(1)]);
126
126
  const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, languageContext, elementType, debug) => {
127
- var _a, _b, _c, _d, _e;
127
+ var _a, _b, _c, _d, _e, _f;
128
128
  conf = conf || (0, import_config.getConfig)();
129
129
  const validStyleProps = staticConfig.isText ? import_helpers.stylePropsText : import_helpers.validStyles;
130
130
  const mediaKeys = [];
@@ -179,7 +179,9 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
179
179
  if (elementType === "button" || elementType === "form" || elementType === "input" || elementType === "select" || elementType === "textarea") {
180
180
  viewProps.disabled = true;
181
181
  }
182
- continue;
182
+ if (!((_a = staticConfig.variants) == null ? void 0 : _a.disabled)) {
183
+ continue;
184
+ }
183
185
  }
184
186
  if (keyInit === "id" || keyInit === "nativeID") {
185
187
  usedKeys[keyInit] = 1;
@@ -305,7 +307,7 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
305
307
  }
306
308
  let isMedia = isMediaKey(keyInit);
307
309
  let isPseudo = import_helpers.validPseudoKeys[keyInit];
308
- if (!isMedia && !isPseudo && !((_a = staticConfig.variants) == null ? void 0 : _a[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
310
+ if (!isMedia && !isPseudo && !((_b = staticConfig.variants) == null ? void 0 : _b[keyInit]) && !validStyleProps[keyInit] && !conf.shorthands[keyInit]) {
309
311
  usedKeys[keyInit] = 1;
310
312
  viewProps[keyInit] = valInit;
311
313
  continue;
@@ -344,7 +346,7 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
344
346
  if (!isMediaOrPseudo && usedKeys[key]) {
345
347
  continue;
346
348
  }
347
- if (((_b = staticConfig.deoptProps) == null ? void 0 : _b.has(key)) || ((_c = staticConfig.inlineProps) == null ? void 0 : _c.has(key)) || ((_d = staticConfig.inlineWhenUnflattened) == null ? void 0 : _d.has(key))) {
349
+ if (((_c = staticConfig.deoptProps) == null ? void 0 : _c.has(key)) || ((_d = staticConfig.inlineProps) == null ? void 0 : _d.has(key)) || ((_e = staticConfig.inlineWhenUnflattened) == null ? void 0 : _e.has(key))) {
348
350
  usedKeys[key] = 1;
349
351
  viewProps[key] = props[key] ?? val;
350
352
  }
@@ -376,7 +378,7 @@ const getSplitStyles = (props, staticConfig, theme, state, parentSplitStyles, la
376
378
  if (shouldDoClasses) {
377
379
  const pseudoStyles = (0, import_getStylesAtomic.getAtomicStyle)(pseudoStyleObject, import_pseudoDescriptors.pseudoDescriptors[key]);
378
380
  for (const style2 of pseudoStyles) {
379
- const postfix = ((_e = import_pseudoDescriptors.pseudoDescriptors[key]) == null ? void 0 : _e.name) || key;
381
+ const postfix = ((_f = import_pseudoDescriptors.pseudoDescriptors[key]) == null ? void 0 : _f.name) || key;
380
382
  const fullKey = `${style2.property}${PROP_SPLIT}${postfix}`;
381
383
  if (!usedKeys[fullKey]) {
382
384
  usedKeys[fullKey] = 1;