app-studio 0.7.18 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -33
- package/dist/native/index.cjs +3360 -0
- package/dist/native/index.cjs.map +1 -0
- package/dist/native/index.d.mts +251 -0
- package/dist/native/index.d.ts +251 -0
- package/dist/native/index.js +3268 -0
- package/dist/native/index.js.map +1 -0
- package/dist/viewAnimation-B4BIoOwQ.d.mts +2246 -0
- package/dist/viewAnimation-B4BIoOwQ.d.ts +2246 -0
- package/dist/web/app-studio.umd.production.min.global.js +28 -0
- package/dist/web/app-studio.umd.production.min.global.js.map +1 -0
- package/dist/web/index.cjs +6109 -0
- package/dist/web/index.cjs.map +1 -0
- package/dist/web/index.d.mts +638 -0
- package/dist/web/index.d.ts +638 -0
- package/dist/web/index.js +6008 -0
- package/dist/web/index.js.map +1 -0
- package/docs/Animation.md +2 -0
- package/docs/Components.md +12 -0
- package/docs/Design.md +2 -0
- package/docs/Events.md +2 -0
- package/docs/Hooks.md +2 -0
- package/docs/IframeSupport.md +2 -0
- package/docs/Native.md +428 -0
- package/docs/Providers.md +2 -0
- package/docs/README.md +14 -1
- package/docs/Responsive.md +2 -0
- package/docs/Styling.md +2 -0
- package/docs/Theming.md +53 -0
- package/package.json +76 -14
- package/dist/app-studio.cjs.development.js +0 -6754
- package/dist/app-studio.cjs.development.js.map +0 -1
- package/dist/app-studio.cjs.production.min.js +0 -2
- package/dist/app-studio.cjs.production.min.js.map +0 -1
- package/dist/app-studio.esm.js +0 -6650
- package/dist/app-studio.esm.js.map +0 -1
- package/dist/app-studio.umd.development.js +0 -6757
- package/dist/app-studio.umd.development.js.map +0 -1
- package/dist/app-studio.umd.production.min.js +0 -2
- package/dist/app-studio.umd.production.min.js.map +0 -1
- package/dist/components/Form.d.ts +0 -17
- package/dist/components/Image.d.ts +0 -7
- package/dist/components/Skeleton.d.ts +0 -3
- package/dist/components/Text/Text.props.d.ts +0 -27
- package/dist/components/Text/Text.type.d.ts +0 -3
- package/dist/components/Text/Text.utils.d.ts +0 -2
- package/dist/components/Text/Text.view.d.ts +0 -20
- package/dist/components/Text.d.ts +0 -5
- package/dist/components/View.d.ts +0 -16
- package/dist/components/Wrapper.d.ts +0 -4
- package/dist/element/Animation.d.ts +0 -1164
- package/dist/element/Element.d.ts +0 -4
- package/dist/element/Element.types.d.ts +0 -123
- package/dist/element/css.d.ts +0 -50
- package/dist/element/utils.d.ts +0 -4
- package/dist/hooks/useActive.d.ts +0 -2
- package/dist/hooks/useClickOutside.d.ts +0 -6
- package/dist/hooks/useElementPosition.d.ts +0 -39
- package/dist/hooks/useFocus.d.ts +0 -2
- package/dist/hooks/useHover.d.ts +0 -2
- package/dist/hooks/useIframeStyles.d.ts +0 -41
- package/dist/hooks/useInView.d.ts +0 -11
- package/dist/hooks/useKeyPress.d.ts +0 -1
- package/dist/hooks/useMount.d.ts +0 -1
- package/dist/hooks/useOnScreen.d.ts +0 -6
- package/dist/hooks/useResponsive.d.ts +0 -59
- package/dist/hooks/useScroll.d.ts +0 -49
- package/dist/hooks/useWindowSize.d.ts +0 -4
- package/dist/index.d.ts +0 -33
- package/dist/index.js +0 -8
- package/dist/providers/Analytics.d.ts +0 -9
- package/dist/providers/Responsive.d.ts +0 -58
- package/dist/providers/StyleRegistry.d.ts +0 -32
- package/dist/providers/Theme.d.ts +0 -46
- package/dist/providers/WindowSize.d.ts +0 -11
- package/dist/stories/AnimateOn.stories.d.ts +0 -30
- package/dist/stories/Animation.stories.d.ts +0 -35
- package/dist/stories/BorderColor.stories.d.ts +0 -4
- package/dist/stories/Color.stories.d.ts +0 -4
- package/dist/stories/ColorAlpha.stories.d.ts +0 -5
- package/dist/stories/Component.stories.d.ts +0 -7
- package/dist/stories/CrossBrowserCompatibility.stories.d.ts +0 -6
- package/dist/stories/CssCascadeOrder.stories.d.ts +0 -10
- package/dist/stories/EmptyBeforeExample.stories.d.ts +0 -7
- package/dist/stories/EventHandlers.stories.d.ts +0 -6
- package/dist/stories/GradientColors.stories.d.ts +0 -6
- package/dist/stories/GroupPeer.stories.d.ts +0 -7
- package/dist/stories/Hooks.stories.d.ts +0 -17
- package/dist/stories/IframeCSSSupport.stories.d.ts +0 -28
- package/dist/stories/IframeSupport.stories.d.ts +0 -20
- package/dist/stories/Image.stories.d.ts +0 -6
- package/dist/stories/Scroll.stories.d.ts +0 -9
- package/dist/stories/ScrollAnimation.stories.d.ts +0 -36
- package/dist/stories/ScrollTimeline.stories.d.ts +0 -6
- package/dist/stories/Skeleton.stories.d.ts +0 -5
- package/dist/stories/Text.stories.d.ts +0 -18
- package/dist/stories/VendorPrefix.stories.d.ts +0 -6
- package/dist/stories/View.stories.d.ts +0 -10
- package/dist/stories/ViewAnimation.stories.d.ts +0 -33
- package/dist/test/CssVariablesTest.d.ts +0 -3
- package/dist/test/LowercaseVendorPrefixTest.d.ts +0 -3
- package/dist/test/VendorPrefixTest.d.ts +0 -3
- package/dist/test/WebkitTextStrokeTest.d.ts +0 -3
- package/dist/types/scrollAnimation.types.d.ts +0 -75
- package/dist/utils/colors.d.ts +0 -21
- package/dist/utils/constants.d.ts +0 -24
- package/dist/utils/cssProperties.d.ts +0 -8
- package/dist/utils/env.d.ts +0 -15
- package/dist/utils/hash.d.ts +0 -4
- package/dist/utils/shadow.d.ts +0 -10
- package/dist/utils/style.d.ts +0 -22
- package/dist/utils/typography.d.ts +0 -45
- package/dist/utils/vendorPrefixes.d.ts +0 -19
- package/dist/utils/viewAnimation.d.ts +0 -138
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/native/index.tsx","../../src/native/components.tsx","../../src/native/style.ts","../../src/native/providers/Responsive.tsx","../../src/native/providers/Theme.tsx","../../src/utils/colors.ts","../../src/shared/theme.ts","../../src/native/providers/WindowSize.tsx","../../src/native/providers/StyleRegistry.tsx","../../src/providers/Analytics.tsx","../../src/native/hooks.ts","../../src/element/Animation.tsx","../../src/utils/typography.ts","../../src/utils/shadow.ts","../../src/utils/env.ts","../../src/utils/viewAnimation.ts"],"sourcesContent":["export * from './components';\nexport * from './providers/Theme';\nexport * from './providers/Responsive';\nexport * from './providers/WindowSize';\nexport * from './providers/StyleRegistry';\nexport * from '../providers/Analytics';\nexport * from './hooks';\nexport * as Animation from '../element/Animation';\nexport * from '../utils/typography';\nexport * from '../utils/shadow';\nexport * from '../utils/env';\nexport * from '../utils/colors';\nexport * from '../utils/viewAnimation';\nexport * from '../types/scrollAnimation.types';\n","import React from 'react';\nimport {\n Image as RNImage,\n ImageBackground as RNImageBackground,\n ImageSourcePropType,\n Pressable,\n SafeAreaView,\n ScrollView as RNScrollView,\n Text as RNText,\n TextInput,\n View as RNView,\n} from 'react-native';\nimport {\n NativeElementProps,\n NativeStyleProps,\n splitNativeProps,\n useNativeStyle,\n} from './style';\n\nexport type CssProps = NativeStyleProps;\nexport type ElementProps = NativeElementProps;\nexport type ViewProps = NativeElementProps;\nexport type TextProps = NativeElementProps & {\n toUpperCase?: boolean;\n isItalic?: boolean;\n isStriked?: boolean;\n isUnderlined?: boolean;\n isSub?: boolean;\n isSup?: boolean;\n maxLines?: number;\n bgColor?: string;\n};\nexport type ImageProps = NativeElementProps & {\n src?: string;\n source?: ImageSourcePropType;\n alt?: string;\n};\nexport type InputProps = NativeElementProps & {\n value?: string;\n defaultValue?: string;\n placeholder?: string;\n onChangeText?: (value: string) => void;\n};\nexport type ButtonProps = NativeElementProps & {\n disabled?: boolean;\n};\n\nfunction renderChildren(\n children: React.ReactNode,\n textProps?: Pick<TextProps, 'toUpperCase'>\n) {\n if (!textProps?.toUpperCase) return children;\n\n return React.Children.map(children, (child) =>\n typeof child === 'string' ? child.toUpperCase() : child\n );\n}\n\nfunction sourceFromProps({ source, src }: ImageProps) {\n if (source) return source;\n if (src) return { uri: src };\n return undefined;\n}\n\nexport const Element = React.forwardRef<any, ElementProps>((props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n const onPress = props.onPress || props.onClick;\n const Component = onPress ? Pressable : RNView;\n\n return (\n <Component {...nativeProps} ref={ref} onPress={onPress} style={style}>\n {props.before}\n {props.children}\n {props.after}\n </Component>\n );\n});\n\nElement.displayName = 'Element';\n\nexport const View = React.forwardRef<any, ViewProps>((props, ref) => (\n <Element {...props} ref={ref} />\n));\n\nView.displayName = 'View';\n\nexport const Horizontal = React.forwardRef<any, ViewProps>((props, ref) => (\n <Element flexDirection=\"row\" {...props} ref={ref} />\n));\n\nHorizontal.displayName = 'Horizontal';\n\nexport const Vertical = React.forwardRef<any, ViewProps>((props, ref) => (\n <Element flexDirection=\"column\" {...props} ref={ref} />\n));\n\nVertical.displayName = 'Vertical';\n\nexport const Center = React.forwardRef<any, ViewProps>((props, ref) => (\n <Element justifyContent=\"center\" alignItems=\"center\" {...props} ref={ref} />\n));\n\nCenter.displayName = 'Center';\n\nexport const HorizontalResponsive = React.forwardRef<any, ViewProps>(\n ({ media = {}, ...props }, ref) => (\n <Horizontal\n media={{\n ...media,\n mobile: {\n ...(media as any).mobile,\n flexDirection: 'column',\n },\n }}\n {...props}\n ref={ref}\n />\n )\n);\n\nHorizontalResponsive.displayName = 'HorizontalResponsive';\n\nexport const VerticalResponsive = React.forwardRef<any, ViewProps>(\n ({ media = {}, ...props }, ref) => (\n <Vertical\n media={{\n ...media,\n mobile: {\n ...(media as any).mobile,\n flexDirection: 'row',\n },\n }}\n {...props}\n ref={ref}\n />\n )\n);\n\nVerticalResponsive.displayName = 'VerticalResponsive';\n\nexport const Scroll = React.forwardRef<any, ViewProps>((props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n\n return (\n <RNScrollView {...nativeProps} ref={ref} style={style}>\n {props.children}\n </RNScrollView>\n );\n});\n\nScroll.displayName = 'Scroll';\n\nexport const SafeArea = React.forwardRef<any, ViewProps>((props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n\n return (\n <SafeAreaView {...nativeProps} ref={ref} style={style}>\n {props.children}\n </SafeAreaView>\n );\n});\n\nSafeArea.displayName = 'SafeArea';\n\nexport const Div = View;\nexport const Span = View;\n\nexport const Text = React.forwardRef<any, TextProps>(\n (\n {\n children,\n toUpperCase,\n isItalic,\n isStriked,\n isUnderlined,\n isSub,\n isSup,\n maxLines,\n ...props\n },\n ref\n ) => {\n const style = useNativeStyle({\n ...props,\n fontStyle: isItalic ? 'italic' : props.fontStyle,\n textDecorationLine: isStriked\n ? 'line-through'\n : isUnderlined\n ? 'underline'\n : props.textDecorationLine,\n fontSize: isSub || isSup ? props.fontSize || 12 : props.fontSize,\n });\n const nativeProps = splitNativeProps(props);\n\n return (\n <RNText {...nativeProps} ref={ref} numberOfLines={maxLines} style={style}>\n {renderChildren(children, { toUpperCase })}\n </RNText>\n );\n }\n);\n\nText.displayName = 'Text';\n\nexport const Image = React.forwardRef<any, ImageProps>((props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n\n return (\n <RNImage\n {...nativeProps}\n ref={ref}\n source={sourceFromProps(props)}\n accessibilityLabel={props.alt || nativeProps.accessibilityLabel}\n style={style}\n />\n );\n});\n\nImage.displayName = 'Image';\n\nexport const ImageBackground = React.forwardRef<any, ImageProps>(\n (props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n\n return (\n <RNImageBackground\n {...nativeProps}\n ref={ref}\n source={sourceFromProps(props)}\n accessibilityLabel={props.alt || nativeProps.accessibilityLabel}\n style={style}\n >\n {props.children}\n </RNImageBackground>\n );\n }\n);\n\nImageBackground.displayName = 'ImageBackground';\n\nexport const Form = View;\n\nexport const Input = React.forwardRef<any, InputProps>((props, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n\n return <TextInput {...nativeProps} ref={ref} style={style} />;\n});\n\nInput.displayName = 'Input';\n\nexport const Button = React.forwardRef<any, ButtonProps>(\n ({ children, disabled, ...props }, ref) => {\n const style = useNativeStyle(props);\n const nativeProps = splitNativeProps(props);\n const onPress = disabled ? undefined : props.onPress || props.onClick;\n\n return (\n <Pressable\n {...nativeProps}\n ref={ref}\n accessibilityRole=\"button\"\n disabled={disabled}\n onPress={onPress}\n style={style}\n >\n {typeof children === 'string' || typeof children === 'number' ? (\n <RNText>{children}</RNText>\n ) : (\n children\n )}\n </Pressable>\n );\n }\n);\n\nButton.displayName = 'Button';\n\nexport const Skeleton = React.forwardRef<any, ViewProps>(\n ({ backgroundColor = 'color-gray-200', ...props }, ref) => (\n <View\n accessibilityRole=\"progressbar\"\n backgroundColor={backgroundColor}\n {...props}\n ref={ref}\n />\n )\n);\n\nSkeleton.displayName = 'Skeleton';\n","import { useMemo } from 'react';\nimport type React from 'react';\nimport {\n ImageStyle,\n StyleProp,\n StyleSheet,\n TextStyle,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\nimport { useResponsiveContext } from './providers/Responsive';\nimport { useTheme } from './providers/Theme';\n\ntype NativeStyle = ViewStyle & TextStyle & ImageStyle;\ntype NativeStyleValue = NativeStyle[keyof NativeStyle] | string | number;\n\nexport type NativeStyleProps = Partial<\n Record<keyof NativeStyle, NativeStyleValue>\n> & {\n widthHeight?: number | string;\n paddingHorizontal?: number | string;\n paddingVertical?: number | string;\n marginHorizontal?: number | string;\n marginVertical?: number | string;\n shadow?: boolean | number;\n};\n\nexport interface NativeElementProps extends NativeStyleProps {\n children?: React.ReactNode;\n style?: StyleProp<NativeStyle>;\n css?: NativeStyle;\n media?: Record<string, NativeStyleProps>;\n on?: Record<string, NativeStyleProps>;\n onPress?: (...args: any[]) => void;\n onClick?: (...args: any[]) => void;\n testID?: string;\n className?: string;\n as?: unknown;\n animate?: unknown;\n animateIn?: unknown;\n animateOut?: unknown;\n animateOn?: unknown;\n blend?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n theme?: Record<string, string>;\n [key: string]: any;\n}\n\nconst stylePropNames = new Set<string>([\n 'alignContent',\n 'alignItems',\n 'alignSelf',\n 'aspectRatio',\n 'backfaceVisibility',\n 'backgroundColor',\n 'borderBottomColor',\n 'borderBottomEndRadius',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomStartRadius',\n 'borderBottomWidth',\n 'borderColor',\n 'borderCurve',\n 'borderEndColor',\n 'borderEndWidth',\n 'borderLeftColor',\n 'borderLeftWidth',\n 'borderRadius',\n 'borderRightColor',\n 'borderRightWidth',\n 'borderStartColor',\n 'borderStartWidth',\n 'borderStyle',\n 'borderTopColor',\n 'borderTopEndRadius',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopStartRadius',\n 'borderTopWidth',\n 'borderWidth',\n 'bottom',\n 'boxShadow',\n 'color',\n 'columnGap',\n 'direction',\n 'display',\n 'elevation',\n 'end',\n 'flex',\n 'flexBasis',\n 'flexDirection',\n 'flexGrow',\n 'flexShrink',\n 'flexWrap',\n 'fontFamily',\n 'fontSize',\n 'fontStyle',\n 'fontVariant',\n 'fontWeight',\n 'gap',\n 'height',\n 'includeFontPadding',\n 'justifyContent',\n 'left',\n 'letterSpacing',\n 'lineHeight',\n 'margin',\n 'marginBottom',\n 'marginEnd',\n 'marginHorizontal',\n 'marginLeft',\n 'marginRight',\n 'marginStart',\n 'marginTop',\n 'marginVertical',\n 'maxHeight',\n 'maxWidth',\n 'minHeight',\n 'minWidth',\n 'objectFit',\n 'opacity',\n 'overflow',\n 'overlayColor',\n 'padding',\n 'paddingBottom',\n 'paddingEnd',\n 'paddingHorizontal',\n 'paddingLeft',\n 'paddingRight',\n 'paddingStart',\n 'paddingTop',\n 'paddingVertical',\n 'position',\n 'resizeMode',\n 'right',\n 'rowGap',\n 'shadowColor',\n 'shadowOffset',\n 'shadowOpacity',\n 'shadowRadius',\n 'start',\n 'textAlign',\n 'textAlignVertical',\n 'textDecorationColor',\n 'textDecorationLine',\n 'textDecorationStyle',\n 'textShadowColor',\n 'textShadowOffset',\n 'textShadowRadius',\n 'textTransform',\n 'tintColor',\n 'top',\n 'transform',\n 'transformOrigin',\n 'verticalAlign',\n 'width',\n 'writingDirection',\n 'zIndex',\n]);\n\nconst controlProps = new Set([\n 'children',\n 'style',\n 'css',\n 'media',\n 'on',\n 'onPress',\n 'onClick',\n 'className',\n 'as',\n 'animate',\n 'animateIn',\n 'animateOut',\n 'animateOn',\n 'blend',\n 'before',\n 'after',\n 'theme',\n 'widthHeight',\n 'shadow',\n]);\n\nconst webOnlyProps = new Set([\n '_hover',\n '_active',\n '_focus',\n '_visited',\n '_disabled',\n '_enabled',\n '_checked',\n '_unchecked',\n '_invalid',\n '_valid',\n '_required',\n '_optional',\n '_selected',\n '_target',\n '_firstChild',\n '_lastChild',\n '_onlyChild',\n '_firstOfType',\n '_lastOfType',\n '_empty',\n '_focusVisible',\n '_focusWithin',\n '_placeholder',\n '_groupHover',\n '_groupFocus',\n '_groupActive',\n '_groupDisabled',\n '_peerHover',\n '_peerFocus',\n '_peerActive',\n '_peerDisabled',\n '_peerChecked',\n '_before',\n '_after',\n '_firstLetter',\n '_firstLine',\n '_selection',\n '_backdrop',\n '_marker',\n]);\n\nfunction isColorStyle(property: string) {\n return property === 'color' || property.toLowerCase().includes('color');\n}\n\nfunction normalizeValue(\n property: string,\n value: any,\n getColor: (token: string) => string\n) {\n if (typeof value === 'string' && isColorStyle(property)) {\n return getColor(value);\n }\n\n return value;\n}\n\nfunction applyShadow(style: Record<string, any>, value: boolean | number) {\n if (!value) return;\n\n const opacity = typeof value === 'number' ? value : 0.2;\n style.shadowColor = '#000000';\n style.shadowOpacity = opacity;\n style.shadowRadius = 4;\n style.shadowOffset = { width: 0, height: 1 };\n style.elevation = Math.max(1, Math.round(opacity * 25));\n}\n\nfunction appendStyleProps(\n input: Record<string, any> | undefined,\n output: Record<string, any>,\n getColor: (token: string) => string\n) {\n if (!input) return;\n\n Object.keys(input).forEach((property) => {\n const value = input[property];\n if (value === undefined || value === null || value === '') return;\n\n if (property === 'widthHeight') {\n output.width = value;\n output.height = value;\n return;\n }\n\n if (property === 'shadow') {\n applyShadow(output, value);\n return;\n }\n\n if (stylePropNames.has(property)) {\n output[property] = normalizeValue(property, value, getColor);\n }\n });\n}\n\nfunction matchesMedia(\n target: string,\n width: number,\n breakpoints: Record<string, number>,\n devices: Record<string, string[]>\n) {\n const ordered = Object.entries(breakpoints).sort(([, a], [, b]) => b - a);\n const breakpoint = ordered.find(([, min]) => width >= min)?.[0] || 'xs';\n\n if (target === breakpoint) return true;\n if (devices[target]?.includes(breakpoint)) return true;\n return false;\n}\n\nexport function splitNativeProps(props: NativeElementProps) {\n const nativeProps: Record<string, any> = {};\n\n Object.keys(props).forEach((key) => {\n if (\n controlProps.has(key) ||\n stylePropNames.has(key) ||\n webOnlyProps.has(key)\n ) {\n return;\n }\n\n if (key === 'data-testid') {\n nativeProps.testID = props[key];\n return;\n }\n\n if (key === 'aria-label') {\n nativeProps.accessibilityLabel = props[key];\n return;\n }\n\n nativeProps[key] = props[key];\n });\n\n return nativeProps;\n}\n\nexport function useNativeStyle(props: NativeElementProps) {\n const { getColor, theme } = useTheme();\n const responsive = useResponsiveContext();\n const dimensions = useWindowDimensions();\n\n const scopedGetColor = useMemo(() => {\n if (!props.theme) return getColor;\n\n return (token: string) => {\n if (!token.startsWith('theme-')) return getColor(token);\n const themeKey = token.slice('theme-'.length).split('-')[0];\n const override = props.theme?.[themeKey];\n return override ? getColor(override) : getColor(token);\n };\n }, [getColor, props.theme]);\n\n const style = useMemo(() => {\n const next: Record<string, any> = {};\n\n appendStyleProps(props, next, scopedGetColor);\n\n if (props.media) {\n Object.keys(props.media).forEach((target) => {\n if (\n matchesMedia(\n target,\n dimensions.width || responsive.currentWidth,\n responsive.breakpoints,\n responsive.devices\n )\n ) {\n appendStyleProps(props.media?.[target], next, scopedGetColor);\n }\n });\n }\n\n if (props.css && typeof props.css === 'object') {\n appendStyleProps(props.css, next, scopedGetColor);\n }\n\n const flattened = StyleSheet.flatten(props.style) || {};\n return { ...next, ...flattened };\n }, [\n props,\n scopedGetColor,\n dimensions.width,\n responsive.currentWidth,\n responsive.breakpoints,\n responsive.devices,\n theme,\n ]);\n\n return style;\n}\n","import React, { ReactNode, createContext, useContext, useMemo } from 'react';\nimport { useWindowDimensions as useRNWindowDimensions } from 'react-native';\n\nexport type ResponsiveConfig = Record<string, number>;\nexport type DeviceConfig = Record<string, string[]>;\nexport type QueryConfig = Record<string, string>;\nexport type ScreenOrientation = 'landscape' | 'portrait';\nexport type DeviceType = 'mobile' | 'tablet' | 'desktop';\n\nexport type BreakpointConfig = {\n breakpoints: ResponsiveConfig;\n devices: DeviceConfig;\n mediaQueries: QueryConfig;\n currentBreakpoint: keyof ResponsiveConfig;\n currentDevice: DeviceType;\n orientation: ScreenOrientation;\n};\n\nexport type WindowDimensions = {\n width: number;\n height: number;\n};\n\nexport type ScreenConfig = BreakpointConfig & {\n currentWidth: number;\n currentHeight: number;\n};\n\nconst defaultBreakpointsConfig: ResponsiveConfig = {\n xs: 0,\n sm: 340,\n md: 560,\n lg: 1080,\n xl: 1300,\n};\n\nconst defaultDeviceConfig: DeviceConfig = {\n mobile: ['xs', 'sm'],\n tablet: ['md', 'lg'],\n desktop: ['lg', 'xl'],\n};\n\nfunction getMediaQueries(breakpoints: ResponsiveConfig): QueryConfig {\n const sorted = Object.keys(breakpoints)\n .map((breakpoint) => ({\n breakpoint,\n min: breakpoints[breakpoint],\n max: undefined as number | undefined,\n }))\n .sort((a, b) => a.min - b.min);\n\n for (let i = 0; i < sorted.length - 1; i++) {\n sorted[i].max = sorted[i + 1].min - 1;\n }\n\n return sorted.reduce<QueryConfig>((queries, item) => {\n queries[item.breakpoint] = `only screen${\n item.min > 0 ? ` and (min-width: ${item.min}px)` : ''\n }${item.max !== undefined ? ` and (max-width: ${item.max}px)` : ''}`;\n return queries;\n }, {});\n}\n\nexport function getBreakpointFromWidth(\n width: number,\n breakpoints: ResponsiveConfig\n) {\n const sorted = Object.entries(breakpoints).sort(([, a], [, b]) => b - a);\n const match = sorted.find(([, min]) => width >= min);\n return (match?.[0] ||\n sorted[sorted.length - 1]?.[0] ||\n 'xs') as keyof ResponsiveConfig;\n}\n\nexport function getDeviceFromBreakpoint(\n breakpoint: string,\n devices: DeviceConfig\n): DeviceType {\n const device = Object.keys(devices).find((key) =>\n devices[key].includes(breakpoint)\n );\n return (device || 'desktop') as DeviceType;\n}\n\nconst defaultBreakpointConfig: BreakpointConfig = {\n breakpoints: defaultBreakpointsConfig,\n devices: defaultDeviceConfig,\n mediaQueries: getMediaQueries(defaultBreakpointsConfig),\n currentBreakpoint: 'xs',\n currentDevice: 'mobile',\n orientation: 'portrait',\n};\n\nconst defaultWindowDimensions: WindowDimensions = {\n width: 0,\n height: 0,\n};\n\nexport const BreakpointContext = createContext<BreakpointConfig>(\n defaultBreakpointConfig\n);\nexport const WindowDimensionsContext = createContext<WindowDimensions>(\n defaultWindowDimensions\n);\nexport const ResponsiveContext = createContext<ScreenConfig>({\n ...defaultBreakpointConfig,\n currentWidth: 0,\n currentHeight: 0,\n});\n\nexport const useBreakpointContext = () => useContext(BreakpointContext);\nexport const useWindowDimensionsContext = () =>\n useContext(WindowDimensionsContext);\nexport const useResponsiveContext = () => useContext(ResponsiveContext);\n\nexport interface ResponsiveProviderProps {\n breakpoints?: ResponsiveConfig;\n devices?: DeviceConfig;\n children?: ReactNode;\n targetWindow?: Window;\n}\n\nexport const ResponsiveProvider = ({\n breakpoints = defaultBreakpointsConfig,\n devices = defaultDeviceConfig,\n children,\n}: ResponsiveProviderProps) => {\n const dimensions = useRNWindowDimensions();\n const width = dimensions.width || 0;\n const height = dimensions.height || 0;\n const currentBreakpoint = getBreakpointFromWidth(width, breakpoints);\n const currentDevice = getDeviceFromBreakpoint(currentBreakpoint, devices);\n const orientation: ScreenOrientation =\n width >= height ? 'landscape' : 'portrait';\n\n const breakpointValue = useMemo<BreakpointConfig>(\n () => ({\n breakpoints,\n devices,\n mediaQueries: getMediaQueries(breakpoints),\n currentBreakpoint,\n currentDevice,\n orientation,\n }),\n [breakpoints, devices, currentBreakpoint, currentDevice, orientation]\n );\n\n const windowValue = useMemo<WindowDimensions>(\n () => ({ width, height }),\n [width, height]\n );\n\n const responsiveValue = useMemo<ScreenConfig>(\n () => ({\n ...breakpointValue,\n currentWidth: width,\n currentHeight: height,\n }),\n [breakpointValue, width, height]\n );\n\n return (\n <BreakpointContext.Provider value={breakpointValue}>\n <WindowDimensionsContext.Provider value={windowValue}>\n <ResponsiveContext.Provider value={responsiveValue}>\n {children}\n </ResponsiveContext.Provider>\n </WindowDimensionsContext.Provider>\n </BreakpointContext.Provider>\n );\n};\n","import React, {\n ReactNode,\n createContext,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react';\nimport {\n Colors,\n Theme,\n ThemeColorConfig,\n ThemeMode,\n deepMerge,\n defaultThemeColors,\n defaultThemeMain,\n normalizeHex,\n resolveThemeColor,\n} from '../../shared/theme';\n\ninterface ThemeContextProps {\n getColor: (name: string) => string;\n getColorHex: (name: string) => string;\n getColorRGBA: (name: string, alpha?: number) => string;\n getColorScheme: (name: string) => string | undefined;\n getContrastColor: (name: string) => 'black' | 'white';\n theme: Theme;\n colors: Colors;\n themeMode: ThemeMode;\n setThemeMode: (mode: ThemeMode) => void;\n}\n\nexport interface ThemeProviderProps {\n colors?: Partial<Colors>;\n lightColors?: Partial<Colors>;\n darkColors?: Partial<Colors>;\n theme?: Theme;\n initialMode?: ThemeMode;\n children?: ReactNode;\n}\n\nconst defaultContext: ThemeContextProps = {\n getColor: (name) => name,\n getColorHex: (name) => name,\n getColorRGBA: (name) => name,\n getColorScheme: () => undefined,\n getContrastColor: () => 'black',\n theme: defaultThemeMain,\n colors: defaultThemeColors.light,\n themeMode: 'light',\n setThemeMode: () => {},\n};\n\nexport const ThemeContext = createContext<ThemeContextProps>(defaultContext);\n\nexport const useTheme = () => useContext(ThemeContext);\n\nfunction toRgba(color: string, alpha?: number): string {\n if (typeof alpha !== 'number') return color;\n const normalized = Math.max(0, Math.min(1000, alpha)) / 1000;\n const hex = normalizeHex(color);\n if (!hex.startsWith('#') || hex.length < 7) return color;\n\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r}, ${g}, ${b}, ${normalized})`;\n}\n\nfunction contrastColor(hex: string): 'black' | 'white' {\n const normalized = normalizeHex(hex);\n if (!normalized.startsWith('#') || normalized.length < 7) return 'black';\n\n const r = parseInt(normalized.slice(1, 3), 16);\n const g = parseInt(normalized.slice(3, 5), 16);\n const b = parseInt(normalized.slice(5, 7), 16);\n const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255;\n return luminance > 0.58 ? 'black' : 'white';\n}\n\nexport const ThemeProvider = ({\n colors,\n lightColors,\n darkColors,\n theme,\n initialMode = 'light',\n children,\n}: ThemeProviderProps) => {\n const [themeMode, setThemeMode] = useState<ThemeMode>(initialMode);\n\n const mergedTheme = useMemo(\n () => deepMerge(defaultThemeMain, theme),\n [theme]\n );\n\n const mergedColors = useMemo<ThemeColorConfig>(\n () => ({\n light: deepMerge(\n defaultThemeColors.light,\n deepMerge(colors || {}, lightColors || {}) as Partial<Colors>\n ),\n dark: deepMerge(\n defaultThemeColors.dark,\n deepMerge(colors || {}, darkColors || {}) as Partial<Colors>\n ),\n }),\n [colors, lightColors, darkColors]\n );\n\n const getColor = useCallback(\n (name: string) =>\n resolveThemeColor(name, {\n colors: mergedColors,\n theme: mergedTheme,\n themeMode,\n }),\n [mergedColors, mergedTheme, themeMode]\n );\n\n const getColorHex = useCallback(\n (name: string) => normalizeHex(getColor(name)),\n [getColor]\n );\n\n const getColorRGBA = useCallback(\n (name: string, alpha?: number) => toRgba(getColor(name), alpha),\n [getColor]\n );\n\n const getColorScheme = useCallback((name: string) => {\n if (name.startsWith('theme-')) return name.slice('theme-'.length);\n if (name.startsWith('color-')) return name.split('-')[1];\n return undefined;\n }, []);\n\n const getContrastColor = useCallback(\n (name: string) => contrastColor(getColorHex(name)),\n [getColorHex]\n );\n\n const value = useMemo<ThemeContextProps>(\n () => ({\n getColor,\n getColorHex,\n getColorRGBA,\n getColorScheme,\n getContrastColor,\n theme: mergedTheme,\n colors: mergedColors[themeMode],\n themeMode,\n setThemeMode,\n }),\n [\n getColor,\n getColorHex,\n getColorRGBA,\n getColorScheme,\n getContrastColor,\n mergedTheme,\n mergedColors,\n themeMode,\n ]\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n\nexport type { Colors, Theme, ThemeMode };\n","export type ColorPalette = Record<string, Record<number, string>>;\n\nexport type ColorSingleton = Record<string, string>;\n\nexport const defaultLightPalette: ColorPalette = {\n white: {\n 50: 'rgba(255, 255, 255, 0.04)',\n 100: 'rgba(255, 255, 255, 0.08)',\n 200: 'rgba(255, 255, 255, 0.16)',\n 300: 'rgba(255, 255, 255, 0.24)',\n 400: 'rgba(255, 255, 255, 0.36)',\n 500: 'rgba(255, 255, 255, 0.48)',\n 600: 'rgba(255, 255, 255, 0.64)',\n 700: 'rgba(255, 255, 255, 0.80)',\n 800: 'rgba(255, 255, 255, 0.92)',\n 900: 'rgba(255, 255, 255, 1)',\n },\n\n black: {\n 50: 'rgba(0, 0, 0, 0.04)',\n 100: 'rgba(0, 0, 0, 0.08)',\n 200: 'rgba(0, 0, 0, 0.16)',\n 300: 'rgba(0, 0, 0, 0.24)',\n 400: 'rgba(0, 0, 0, 0.36)',\n 500: 'rgba(0, 0, 0, 0.48)',\n 600: 'rgba(0, 0, 0, 0.64)',\n 700: 'rgba(0, 0, 0, 0.80)',\n 800: 'rgba(0, 0, 0, 0.92)',\n 900: 'rgba(0, 0, 0, 1)',\n },\n rose: {\n 50: '#fff1f2',\n 100: '#ffe4e6',\n 200: '#fecdd3',\n 300: '#fda4af',\n 400: '#fb7185',\n 500: '#f43f5e',\n 600: '#e11d48',\n 700: '#be123c',\n 800: '#9f1239',\n 900: '#881337',\n },\n pink: {\n 50: '#fdf2f8',\n 100: '#fce7f3',\n 200: '#fbcfe8',\n 300: '#f9a8d4',\n 400: '#f472b6',\n 500: '#ec4899',\n 600: '#db2777',\n 700: '#be185d',\n 800: '#9d174d',\n 900: '#831843',\n },\n fuchsia: {\n 50: '#fdf4ff',\n 100: '#fae8ff',\n 200: '#f5d0fe',\n 300: '#f0abfc',\n 400: '#e879f9',\n 500: '#d946ef',\n 600: '#c026d3',\n 700: '#a21caf',\n 800: '#86198f',\n 900: '#701a75',\n },\n purple: {\n 50: '#faf5ff',\n 100: '#f3e8ff',\n 200: '#e9d5ff',\n 300: '#d8b4fe',\n 400: '#c084fc',\n 500: '#a855f7',\n 600: '#9333ea',\n 700: '#7e22ce',\n 800: '#6b21a8',\n 900: '#581c87',\n },\n violet: {\n 50: '#f5f3ff',\n 100: '#ede9fe',\n 200: '#ddd6fe',\n 300: '#c4b5fd',\n 400: '#a78bfa',\n 500: '#8b5cf6',\n 600: '#7c3aed',\n 700: '#6d28d9',\n 800: '#5b21b6',\n 900: '#4c1d95',\n },\n indigo: {\n 50: '#eef2ff',\n 100: '#e0e7ff',\n 200: '#c7d2fe',\n 300: '#a5b4fc',\n 400: '#818cf8',\n 500: '#6366f1',\n 600: '#4f46e5',\n 700: '#4338ca',\n 800: '#3730a3',\n 900: '#312e81',\n },\n blue: {\n 50: '#eff6ff',\n 100: '#dbeafe',\n 200: '#bfdbfe',\n 300: '#93c5fd',\n 400: '#60a5fa',\n 500: '#3b82f6',\n 600: '#2563eb',\n 700: '#1d4ed8',\n 800: '#1e40af',\n 900: '#1e3a8a',\n },\n lightBlue: {\n 50: '#f0f9ff',\n 100: '#e0f2fe',\n 200: '#bae6fd',\n 300: '#7dd3fc',\n 400: '#38bdf8',\n 500: '#0ea5e9',\n 600: '#0284c7',\n 700: '#0369a1',\n 800: '#075985',\n 900: '#0c4a6e',\n },\n cyan: {\n 50: '#ecfeff',\n 100: '#cffafe',\n 200: '#a5f3fc',\n 300: '#67e8f9',\n 400: '#22d3ee',\n 500: '#06b6d4',\n 600: '#0891b2',\n 700: '#0e7490',\n 800: '#155e75',\n 900: '#164e63',\n },\n teal: {\n 50: '#f0fdfa',\n 100: '#ccfbf1',\n 200: '#99f6e4',\n 300: '#5eead4',\n 400: '#2dd4bf',\n 500: '#14b8a6',\n 600: '#0d9488',\n 700: '#0f766e',\n 800: '#115e59',\n 900: '#134e4a',\n },\n emerald: {\n 50: '#ecfdf5',\n 100: '#d1fae5',\n 200: '#a7f3d0',\n 300: '#6ee7b7',\n 400: '#34d399',\n 500: '#10b981',\n 600: '#059669',\n 700: '#047857',\n 800: '#065f46',\n 900: '#064e3b',\n },\n green: {\n 50: '#f0fdf4',\n 100: '#dcfce7',\n 200: '#bbf7d0',\n 300: '#86efac',\n 400: '#4ade80',\n 500: '#22c55e',\n 600: '#16a34a',\n 700: '#15803d',\n 800: '#166534',\n 900: '#14532d',\n },\n lime: {\n 50: '#f7fee7',\n 100: '#ecfccb',\n 200: '#d9f99d',\n 300: '#bef264',\n 400: '#a3e635',\n 500: '#84cc16',\n 600: '#65a30d',\n 700: '#4d7c0f',\n 800: '#3f6212',\n 900: '#365314',\n },\n yellow: {\n 50: '#fefce8',\n 100: '#fef9c3',\n 200: '#fef08a',\n 300: '#fde047',\n 400: '#facc15',\n 500: '#eab308',\n 600: '#ca8a04',\n 700: '#a16207',\n 800: '#854d0e',\n 900: '#713f12',\n },\n amber: {\n 50: '#fffbeb',\n 100: '#fef3c7',\n 200: '#fde68a',\n 300: '#fcd34d',\n 400: '#fbbf24',\n 500: '#f59e0b',\n 600: '#d97706',\n 700: '#b45309',\n 800: '#92400e',\n 900: '#78350f',\n },\n orange: {\n 50: '#fff7ed',\n 100: '#ffedd5',\n 200: '#fed7aa',\n 300: '#fdba74',\n 400: '#fb923c',\n 500: '#f97316',\n 600: '#ea580c',\n 700: '#c2410c',\n 800: '#9a3412',\n 900: '#7c2d12',\n },\n red: {\n 50: '#fef2f2',\n 100: '#fee2e2',\n 200: '#fecaca',\n 300: '#fca5a5',\n 400: '#f87171',\n 500: '#ef4444',\n 600: '#dc2626',\n 700: '#b91c1c',\n 800: '#991b1b',\n 900: '#7f1d1d',\n },\n warmGray: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n trueGray: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n gray: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n dark: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n light: {\n 50: '#f8f9fa',\n 100: '#f1f3f5',\n 200: '#e9ecef',\n 300: '#dee2e6',\n 400: '#ced4da',\n 500: '#adb5bd',\n 600: '#868e96',\n 700: '#495057',\n 800: '#343a40',\n 900: '#212529',\n },\n coolGray: {\n 50: '#f9fafb',\n 100: '#f3f4f6',\n 200: '#e5e7eb',\n 300: '#d1d5db',\n 400: '#9ca3af',\n 500: '#6b7280',\n 600: '#4b5563',\n 700: '#374151',\n 800: '#1f2937',\n 900: '#111827',\n },\n blueGray: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n slate: {\n 50: '#f8fafc',\n 100: '#f1f5f9',\n 200: '#e2e8f0',\n 300: '#cbd5e1',\n 400: '#94a3b8',\n 500: '#64748b',\n 600: '#475569',\n 700: '#334155',\n 800: '#1e293b',\n 900: '#0f172a',\n },\n zinc: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n neutral: {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#e5e5e5',\n 300: '#d4d4d4',\n 400: '#a3a3a3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#171717',\n },\n stone: {\n 50: '#fafaf9',\n 100: '#f5f5f4',\n 200: '#e7e5e4',\n 300: '#d6d3d1',\n 400: '#a8a29e',\n 500: '#78716c',\n 600: '#57534e',\n 700: '#44403c',\n 800: '#292524',\n 900: '#1c1917',\n },\n};\n\nexport const defaultDarkPalette: ColorPalette = {\n white: {\n 50: 'rgba(0, 0, 0, 0.04)',\n 100: 'rgba(0, 0, 0, 0.08)',\n 200: 'rgba(0, 0, 0, 0.16)',\n 300: 'rgba(0, 0, 0, 0.24)',\n 400: 'rgba(0, 0, 0, 0.36)',\n 500: 'rgba(0, 0, 0, 0.48)',\n 600: 'rgba(0, 0, 0, 0.64)',\n 700: 'rgba(0, 0, 0, 0.80)',\n 800: 'rgba(0, 0, 0, 0.92)',\n 900: 'rgba(0, 0, 0, 1)',\n },\n\n black: {\n 50: 'rgba(255, 255, 255, 0.04)',\n 100: 'rgba(255, 255, 255, 0.08)',\n 200: 'rgba(255, 255, 255, 0.16)',\n 300: 'rgba(255, 255, 255, 0.24)',\n 400: 'rgba(255, 255, 255, 0.36)',\n 500: 'rgba(255, 255, 255, 0.48)',\n 600: 'rgba(255, 255, 255, 0.64)',\n 700: 'rgba(255, 255, 255, 0.80)',\n 800: 'rgba(255, 255, 255, 0.92)',\n 900: 'rgba(255, 255, 255, 1)',\n },\n\n rose: {\n 50: '#330517',\n 100: '#4a031e',\n 200: '#6b112f',\n 300: '#9f1239',\n 400: '#c81e5b',\n 500: '#e11d48',\n 600: '#be123c',\n 700: '#9f1239',\n 800: '#7f1235',\n 900: '#581c87',\n },\n pink: {\n 50: '#fce7f3',\n 100: '#fbcfe8',\n 200: '#f9a8d4',\n 300: '#f472b6',\n 400: '#ec4899',\n 500: '#db2777',\n 600: '#be185d',\n 700: '#9d174d',\n 800: '#831843',\n 900: '#581c87',\n },\n fuchsia: {\n 50: '#c026d3',\n 100: '#a21caf',\n 200: '#86198f',\n 300: '#701a75',\n 400: '#9333ea',\n 500: '#d946ef',\n 600: '#e879f9',\n 700: '#f0abfc',\n 800: '#f5d0fe',\n 900: '#fae8ff',\n },\n purple: {\n 50: '#6b21a8',\n 100: '#7e22ce',\n 200: '#9333ea',\n 300: '#a855f7',\n 400: '#c084fc',\n 500: '#d8b4fe',\n 600: '#e9d5ff',\n 700: '#f3e8ff',\n 800: '#faf5ff',\n 900: '#fef4ff',\n },\n violet: {\n 50: '#4c1d95',\n 100: '#701a75',\n 200: '#86198f',\n 300: '#a21caf',\n 400: '#c026d3',\n 500: '#d946ef',\n 600: '#e879f9',\n 700: '#f0abfc',\n 800: '#f5d0fe',\n 900: '#fae8ff',\n },\n indigo: {\n 50: '#312e81',\n 100: '#3730a3',\n 200: '#1e40af',\n 300: '#1d4ed8',\n 400: '#2563eb',\n 500: '#3b82f6',\n 600: '#60a5fa',\n 700: '#93c5fd',\n 800: '#bfdbfe',\n 900: '#dbeafe',\n },\n blue: {\n 50: '#1e3a8a',\n 100: '#1e40af',\n 200: '#1d4ed8',\n 300: '#2563eb',\n 400: '#3b82f6',\n 500: '#60a5fa',\n 600: '#93c5fd',\n 700: '#bfdbfe',\n 800: '#dbeafe',\n 900: '#eff6ff',\n },\n lightBlue: {\n 50: '#0c4a6e',\n 100: '#075985',\n 200: '#0369a1',\n 300: '#0284c7',\n 400: '#0ea5e9',\n 500: '#38bdf8',\n 600: '#7dd3fc',\n 700: '#bae6fd',\n 800: '#e0f2fe',\n 900: '#f0f9ff',\n },\n cyan: {\n 50: '#164e63',\n 100: '#155e75',\n 200: '#0e7490',\n 300: '#0891b2',\n 400: '#22d3ee',\n 500: '#67e8f9',\n 600: '#a5f3fc',\n 700: '#cffafe',\n 800: '#ecfeff',\n 900: '#f0fefe',\n },\n teal: {\n 50: '#134e4a',\n 100: '#166534',\n 200: '#15803d',\n 300: '#16a34a',\n 400: '#22c55e',\n 500: '#4ade80',\n 600: '#5eead4',\n 700: '#99f6e4',\n 800: '#ccfbf1',\n 900: '#f0fdfa',\n },\n emerald: {\n 50: '#064e3b',\n 100: '#065f46',\n 200: '#047857',\n 300: '#059669',\n 400: '#10b981',\n 500: '#34d399',\n 600: '#6ee7b7',\n 700: '#a7f3d0',\n 800: '#d1fae5',\n 900: '#ecfdf5',\n },\n green: {\n 50: '#14532d',\n 100: '#166534',\n 200: '#15803d',\n 300: '#16a34a',\n 400: '#22c55e',\n 500: '#4ade80',\n 600: '#86efac',\n 700: '#bbf7d0',\n 800: '#dcfce7',\n 900: '#f0fdf4',\n },\n lime: {\n 50: '#365314',\n 100: '#3f6212',\n 200: '#4d7c0f',\n 300: '#65a30d',\n 400: '#84cc16',\n 500: '#a3e635',\n 600: '#bef264',\n 700: '#d9f99d',\n 800: '#ecfccb',\n 900: '#f7fee7',\n },\n yellow: {\n 50: '#713f12',\n 100: '#854d0e',\n 200: '#a16207',\n 300: '#ca8a04',\n 400: '#eab308',\n 500: '#facc15',\n 600: '#fde047',\n 700: '#fef08a',\n 800: '#fef9c3',\n 900: '#fefce8',\n },\n amber: {\n 50: '#78350f',\n 100: '#92400e',\n 200: '#b45309',\n 300: '#d97706',\n 400: '#f59e0b',\n 500: '#fbbf24',\n 600: '#fcd34d',\n 700: '#fde68a',\n 800: '#fef3c7',\n 900: '#fffbeb',\n },\n orange: {\n 50: '#7c2d12',\n 100: '#9a3412',\n 200: '#c2410c',\n 300: '#ea580c',\n 400: '#f97316',\n 500: '#fb923c',\n 600: '#fdba74',\n 700: '#fed7aa',\n 800: '#ffedd5',\n 900: '#fff7ed',\n },\n red: {\n 50: '#7f1d1d',\n 100: '#991b1b',\n 200: '#b91c1c',\n 300: '#dc2626',\n 400: '#ef4444',\n 500: '#f87171',\n 600: '#fca5a5',\n 700: '#fecaca',\n 800: '#fee2e2',\n 900: '#fef2f2',\n },\n warmGray: {\n 50: '#1c1917',\n 100: '#292524',\n 200: '#44403c',\n 300: '#57534e',\n 400: '#78716c',\n 500: '#a8a29e',\n 600: '#d6d3d1',\n 700: '#e7e5e4',\n 800: '#f5f5f4',\n 900: '#fafaf9',\n },\n trueGray: {\n 50: '#171717',\n 100: '#262626',\n 200: '#404040',\n 300: '#525252',\n 400: '#737373',\n 500: '#a3a3a3',\n 600: '#d4d4d4',\n 700: '#e5e5e5',\n 800: '#f5f5f5',\n 900: '#fafafa',\n },\n gray: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n dark: {\n 50: '#212529',\n 100: '#343a40',\n 200: '#495057',\n 300: '#868e96',\n 400: '#adb5bd',\n 500: '#ced4da',\n 600: '#dee2e6',\n 700: '#f1f3f5',\n 800: '#f8f9fa',\n 900: '#ffffff',\n },\n light: {\n 50: '#fafafa',\n 100: '#f4f4f5',\n 200: '#e4e4e7',\n 300: '#d4d4d8',\n 400: '#a1a1aa',\n 500: '#71717a',\n 600: '#52525b',\n 700: '#3f3f46',\n 800: '#27272a',\n 900: '#18181b',\n },\n coolGray: {\n 50: '#111827',\n 100: '#1f2937',\n 200: '#374151',\n 300: '#4b5563',\n 400: '#6b7280',\n 500: '#9ca3af',\n 600: '#d1d5db',\n 700: '#e5e7eb',\n 800: '#f3f4f6',\n 900: '#f9fafb',\n },\n blueGray: {\n 50: '#0f172a',\n 100: '#1e293b',\n 200: '#334155',\n 300: '#475569',\n 400: '#64748b',\n 500: '#94a3b8',\n 600: '#cbd5e1',\n 700: '#e2e8f0',\n 800: '#f1f5f9',\n 900: '#f8fafc',\n },\n slate: {\n 50: '#0f172a',\n 100: '#1e293b',\n 200: '#334155',\n 300: '#475569',\n 400: '#64748b',\n 500: '#94a3b8',\n 600: '#cbd5e1',\n 700: '#e2e8f0',\n 800: '#f1f5f9',\n 900: '#f8fafc',\n },\n zinc: {\n 50: '#18181b',\n 100: '#27272a',\n 200: '#3f3f46',\n 300: '#52525b',\n 400: '#71717a',\n 500: '#a1a1aa',\n 600: '#d4d4d8',\n 700: '#e4e4e7',\n 800: '#f4f4f5',\n 900: '#fafafa',\n },\n neutral: {\n 50: '#171717',\n 100: '#262626',\n 200: '#404040',\n 300: '#525252',\n 400: '#737373',\n 500: '#a3a3a3',\n 600: '#d4d4d4',\n 700: '#e5e5e5',\n 800: '#f5f5f5',\n 900: '#fafafa',\n },\n stone: {\n 50: '#1c1917',\n 100: '#292524',\n 200: '#44403c',\n 300: '#57534e',\n 400: '#78716c',\n 500: '#a8a29e',\n 600: '#d6d3d1',\n 700: '#e7e5e4',\n 800: '#f5f5f4',\n 900: '#fafaf9',\n },\n};\n\nexport const defaultColors: ColorConfig = {\n white: '#FFFFFF',\n black: '#000000',\n red: '#FF0000',\n green: '#00FF00',\n blue: '#0000FF',\n yellow: '#FFFF00',\n cyan: '#00FFFF',\n magenta: '#FF00FF',\n grey: '#808080',\n orange: '#FFA500',\n brown: '#A52A2A',\n purple: '#800080',\n pink: '#FFC0CB',\n};\n\nexport type ColorConfig = Record<string, string>;\n\nexport const defaultLightColors: ColorConfig = { ...defaultColors };\nexport const defaultDarkColors: ColorConfig = {\n ...defaultColors,\n white: '#000000',\n black: '#FFFFFF',\n};\n\n// Centralized regex for color token detection\n// Matches color-x-y-z or theme-x-y (dash notation)\nconst COLOR_TOKEN_REGEX = /(color-[a-zA-Z0-9-]+|theme-[a-zA-Z0-9-]+)/g;\n\n/**\n * Checks if a value contains color tokens.\n * @param value - The string to check.\n * @returns True if the value contains color tokens.\n */\nexport const hasColorToken = (value: string): boolean => {\n return value.includes('color-') || value.includes('theme-');\n};\n\n/**\n * Replaces color tokens in a string with values returned by a resolver function.\n * @param value - The string containing color tokens.\n * @param resolver - A function that takes a token and returns its replacement value.\n * @returns The string with color tokens replaced.\n */\nexport const replaceColorTokens = (\n value: string,\n resolver: (token: string) => string\n): string => {\n if (!hasColorToken(value)) {\n return value;\n }\n\n return value.replace(COLOR_TOKEN_REGEX, (token) => {\n return resolver(token);\n });\n};\n","import {\n ColorPalette,\n ColorSingleton,\n defaultDarkColors,\n defaultDarkPalette,\n defaultLightColors,\n defaultLightPalette,\n} from '../utils/colors';\n\nexport type ThemeMode = 'light' | 'dark';\n\nexport interface Colors {\n main: ColorSingleton;\n palette: ColorPalette;\n}\n\nexport interface Theme {\n primary?: string;\n secondary?: string;\n success?: string;\n error?: string;\n warning?: string;\n disabled?: string;\n loading?: string;\n [key: string]: string | undefined;\n}\n\nexport interface ThemeColorConfig {\n light: Colors;\n dark: Colors;\n}\n\nexport interface ResolveColorOptions {\n colors: ThemeColorConfig;\n theme: Theme;\n themeMode: ThemeMode;\n}\n\nconst COLOR_PREFIX = 'color-';\nconst THEME_PREFIX = 'theme-';\nconst LIGHT_PREFIX = 'light-';\nconst DARK_PREFIX = 'dark-';\nconst TRANSPARENT = 'transparent';\n\nexport const defaultThemeMain: Theme = {\n primary: 'color-black',\n secondary: 'color-blue',\n success: 'color-green-500',\n error: 'color-red-500',\n warning: 'color-orange-500',\n disabled: 'color-gray-500',\n loading: 'color-dark-500',\n};\n\nexport const defaultThemeColors: ThemeColorConfig = {\n light: {\n main: defaultLightColors,\n palette: defaultLightPalette,\n },\n dark: {\n main: defaultDarkColors,\n palette: defaultDarkPalette,\n },\n};\n\nexport function deepMerge<T extends Record<string, any>>(\n target: T,\n source?: Partial<T>\n): T {\n if (!source) return target;\n\n const output: Record<string, any> = { ...target };\n Object.keys(source).forEach((key) => {\n const sourceValue = source[key as keyof T];\n const targetValue = target[key as keyof T];\n\n if (\n sourceValue &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n targetValue &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue)\n ) {\n output[key] = deepMerge(targetValue, sourceValue as any);\n } else if (sourceValue !== undefined) {\n output[key] = sourceValue;\n }\n });\n\n return output as T;\n}\n\nfunction applyAlpha(color: string, alpha: number): string {\n const normalized = Math.max(0, Math.min(1000, alpha)) / 1000;\n\n if (color.startsWith('#')) {\n let hex = color.slice(1);\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n if (hex.length >= 6) {\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n return `rgba(${r}, ${g}, ${b}, ${normalized})`;\n }\n }\n\n if (color.startsWith('rgb')) {\n const rgbMatch = color.match(/rgba?\\(([^)]+)\\)/);\n if (rgbMatch) {\n const values = rgbMatch[1].split(',').map((value) => value.trim());\n return `rgba(${values[0]}, ${values[1]}, ${values[2]}, ${normalized})`;\n }\n }\n\n return color;\n}\n\nexport function resolveThemeColor(\n token: string,\n options: ResolveColorOptions,\n depth = 0\n): string {\n if (!token || typeof token !== 'string') return String(token);\n if (token === TRANSPARENT) return token;\n if (depth > 25) return token;\n\n if (token.startsWith(THEME_PREFIX)) {\n const parts = token.substring(THEME_PREFIX.length).split('-');\n const lastPart = parts[parts.length - 1];\n const maybeAlpha = parseInt(lastPart, 10);\n const hasAlpha =\n parts.length >= 2 &&\n !isNaN(maybeAlpha) &&\n maybeAlpha >= 0 &&\n maybeAlpha <= 1000;\n\n const themeKey = (\n hasAlpha ? parts.slice(0, -1).join('-') : parts.join('-')\n ) as keyof Theme;\n const themeValue = options.theme[themeKey];\n if (typeof themeValue !== 'string') return token;\n\n const resolved = resolveThemeColor(themeValue, options, depth + 1);\n return hasAlpha ? applyAlpha(resolved, maybeAlpha) : resolved;\n }\n\n if (token.startsWith(COLOR_PREFIX)) {\n const parts = token.substring(COLOR_PREFIX.length).split('-');\n const colors = options.colors[options.themeMode];\n\n if (parts.length >= 3) {\n const maybeAlpha = parseInt(parts[parts.length - 1], 10);\n if (!isNaN(maybeAlpha) && maybeAlpha >= 0 && maybeAlpha <= 1000) {\n const colorName = parts[0];\n const shade = Number(parts[1]);\n const value = colors.palette[colorName]?.[shade];\n return typeof value === 'string'\n ? applyAlpha(value, maybeAlpha)\n : token;\n }\n }\n\n if (parts.length === 2) {\n const value = colors.palette[parts[0]]?.[Number(parts[1])];\n return typeof value === 'string' ? value : token;\n }\n\n if (parts.length === 1) {\n const value = colors.main[parts[0]];\n return typeof value === 'string' ? value : token;\n }\n\n return token;\n }\n\n if (token.startsWith(LIGHT_PREFIX) || token.startsWith(DARK_PREFIX)) {\n const themeMode = token.startsWith(LIGHT_PREFIX) ? 'light' : 'dark';\n const prefix = token.startsWith(LIGHT_PREFIX) ? LIGHT_PREFIX : DARK_PREFIX;\n return resolveThemeColor(\n `${COLOR_PREFIX}${token.substring(prefix.length)}`,\n { ...options, themeMode },\n depth + 1\n );\n }\n\n return token;\n}\n\nexport function normalizeHex(color: string): string {\n if (!color || typeof color !== 'string') return String(color);\n if (color === TRANSPARENT) return '#00000000';\n\n if (color.startsWith('#')) {\n const hex = color.slice(1);\n if (hex.length === 3) {\n return `#${hex\n .split('')\n .map((char) => char + char)\n .join('')}`.toLowerCase();\n }\n return color.toLowerCase();\n }\n\n const rgbMatch = color.match(/rgba?\\(([^)]+)\\)/);\n if (!rgbMatch) return color;\n\n const values = rgbMatch[1].split(',').map((value) => Number(value.trim()));\n if (values.length < 3 || values.some((value) => Number.isNaN(value))) {\n return color;\n }\n\n const [r, g, b] = values;\n return `#${[r, g, b]\n .map((value) =>\n Math.max(0, Math.min(255, Math.round(value)))\n .toString(16)\n .padStart(2, '0')\n )\n .join('')}`;\n}\n","import React, { ReactNode, createContext } from 'react';\nimport { useWindowDimensions as useRNWindowDimensions } from 'react-native';\n\nexport const WindowSizeContext = createContext({ width: 0, height: 0 });\n\nexport interface WindowSizeProviderProps {\n children: ReactNode;\n targetWindow?: Window;\n}\n\nexport const WindowSizeProvider = ({ children }: WindowSizeProviderProps) => {\n const { width, height } = useRNWindowDimensions();\n\n return (\n <WindowSizeContext.Provider value={{ width, height }}>\n {children}\n </WindowSizeContext.Provider>\n );\n};\n","import React from 'react';\n\nexport const useStyleRegistry = () => ({ manager: undefined });\n\nexport const StyleRegistry = ({ children }: { children: React.ReactNode }) => (\n <>{children}</>\n);\n\nexport const createStyleRegistry = () => undefined;\n\nexport const useServerInsertedHTML = () => () => null;\n","// analytics/AnalyticsContext.tsx\nimport React, { createContext, ReactNode, useContext, useMemo } from 'react';\n\nexport type AnalyticsConfig = {\n trackEvent?: (event: any) => void;\n};\n\n// Create the context with a default no-op implementation\nexport const AnalyticsContext = createContext<AnalyticsConfig>({});\n\nexport const useAnalytics = (): AnalyticsConfig => useContext(AnalyticsContext);\n\nexport const AnalyticsProvider = ({\n trackEvent,\n children,\n}: AnalyticsConfig & {\n children?: ReactNode;\n}): React.ReactElement => {\n const value = useMemo(() => ({ trackEvent }), [trackEvent]);\n\n return (\n <AnalyticsContext.Provider value={value}>\n {children}\n </AnalyticsContext.Provider>\n );\n};\n","import {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { WindowSizeContext } from './providers/WindowSize';\nimport {\n BreakpointConfig,\n WindowDimensions,\n useBreakpointContext,\n useResponsiveContext,\n useWindowDimensionsContext,\n} from './providers/Responsive';\n\nexport const useWindowSize = () => useContext(WindowSizeContext);\n\nexport const useBreakpoint = () => {\n const context = useBreakpointContext();\n const { currentBreakpoint: screen, devices, orientation } = context;\n const on = useCallback(\n (target: string) =>\n devices[target] ? devices[target].includes(screen) : target === screen,\n [devices, screen]\n );\n\n return useMemo(\n () => ({ ...context, screen, orientation, on, is: on }),\n [context, screen, orientation, on]\n );\n};\n\nexport const useWindowDimensions = (): WindowDimensions =>\n useWindowDimensionsContext();\n\nexport const useResponsive = () => {\n const context = useResponsiveContext();\n const { currentBreakpoint: screen, devices, orientation } = context;\n const on = useCallback(\n (target: string) =>\n devices[target] ? devices[target].includes(screen) : target === screen,\n [devices, screen]\n );\n\n return useMemo(\n () => ({ ...context, screen, orientation, on, is: on }),\n [context, screen, orientation, on]\n );\n};\n\nexport const useMount = (callback: () => void) => {\n useEffect(() => {\n callback();\n }, [callback]);\n};\n\nexport const useHover = () => {\n const [isHovered] = useState(false);\n return { isHovered, hoverProps: {} };\n};\n\nexport const useActive = () => {\n const [isActive] = useState(false);\n return { isActive, activeProps: {} };\n};\n\nexport const useFocus = () => {\n const [isFocused] = useState(false);\n return { isFocused, focusProps: {} };\n};\n\nexport const useClickOutside = () => ({ ref: useRef(null), isOutside: false });\nexport const useElementPosition = () => ({ ref: useRef(null), position: null });\nexport const useKeyPress = () => false;\nexport const useOnScreen = () => ({ ref: useRef(null), isOnScreen: true });\nexport const useInView = () => ({ ref: useRef(null), inView: true });\nexport const useIframeStyles = () => ({ iframeRef: useRef(null) });\nexport const useScroll = () => ({\n scrollY: 0,\n scrollX: 0,\n scrollDirection: null,\n scrollTo: () => {},\n scrollToTop: () => {},\n scrollToBottom: () => {},\n});\n\nexport type { BreakpointConfig, WindowDimensions };\n","// animations.ts\n\nimport { AnimationProps } from '../utils/constants';\n\nexport const fadeIn = (\n { duration = '1s', timingFunction = 'ease', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease',\n }\n) => ({\n from: { opacity: 0 },\n to: { opacity: 1 },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const fadeOut = (\n { duration = '1s', timingFunction = 'ease', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease',\n }\n) => ({\n from: { opacity: 1 },\n to: { opacity: 0 },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideInLeft = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'translateX(-100%)' },\n to: { transform: 'translateX(0)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideInRight = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'translateX(100%)' },\n to: { transform: 'translateX(0)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideInDown = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'translateY(-100%)' },\n to: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideInUp = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'translateY(100%)' },\n to: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const bounce = (\n {\n duration = '2s',\n timingFunction = 'ease',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '2s',\n timingFunction: 'ease',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'translateY(0)' },\n '20%': { transform: 'translateY(-30px)' },\n '40%': { transform: 'translateY(0)' },\n '60%': { transform: 'translateY(-15px)' },\n '80%': { transform: 'translateY(0)' },\n to: { transform: 'translateY(0)' },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\n\nexport const rotate = (\n {\n duration = '1s',\n timingFunction = 'linear',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'rotate(0deg)' },\n to: { transform: 'rotate(360deg)' },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\n\nexport const pulse = (\n {\n duration = '1s',\n timingFunction = 'ease-in-out',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in-out',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'scale(1)' },\n '50%': { transform: 'scale(1.05)' },\n to: { transform: 'scale(1)' },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\n\nexport const zoomIn = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'scale(0)' },\n to: { transform: 'scale(1)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const zoomOut = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: { transform: 'scale(1)' },\n to: { transform: 'scale(0)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const flash = (\n { duration = '1s', iterationCount = 'infinite', ...props }: AnimationProps = {\n duration: '1s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { opacity: 1 },\n '50%': { opacity: 0 },\n to: { opacity: 1 },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const scale = (\n {\n duration = '1s',\n timingFunction = 'ease-in-out',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in-out',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'scale(1)' },\n '50%': { transform: 'scale(1.05)' },\n to: { transform: 'scale(1)' },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\n\nexport const shake = (\n {\n duration = '0.5s',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'translateX(0)' },\n '10%': { transform: 'translateX(-10px)' },\n '20%': { transform: 'translateX(10px)' },\n '30%': { transform: 'translateX(-10px)' },\n '40%': { transform: 'translateX(10px)' },\n '50%': { transform: 'translateX(-10px)' },\n '60%': { transform: 'translateX(10px)' },\n '70%': { transform: 'translateX(-10px)' },\n '80%': { transform: 'translateX(10px)' },\n '90%': { transform: 'translateX(-10px)' },\n to: { transform: 'translateX(0)' },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const swing = (\n { duration = '1s', iterationCount = 'infinite', ...props }: AnimationProps = {\n duration: '1s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'rotate(0deg)' },\n '20%': { transform: 'rotate(15deg)' },\n '40%': { transform: 'rotate(-10deg)' },\n '60%': { transform: 'rotate(5deg)' },\n '80%': { transform: 'rotate(-5deg)' },\n to: { transform: 'rotate(0deg)' },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const rubberBand = (\n {\n duration = '1s',\n timingFunction = 'ease-in-out',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in-out',\n }\n) => ({\n from: { transform: 'scale3d(1, 1, 1)' },\n '30%': { transform: 'scale3d(1.25, 0.75, 1)' },\n '40%': { transform: 'scale3d(0.75, 1.25, 1)' },\n '50%': { transform: 'scale3d(1.15, 0.85, 1)' },\n '65%': { transform: 'scale3d(0.95, 1.05, 1)' },\n '75%': { transform: 'scale3d(1.05, 0.95, 1)' },\n to: { transform: 'scale3d(1, 1, 1)' },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const wobble = (\n { duration = '1s', ...props }: AnimationProps = {\n duration: '1s',\n }\n) => ({\n from: { transform: 'translateX(0%)' },\n '15%': { transform: 'translateX(-25%) rotate(-5deg)' },\n '30%': { transform: 'translateX(20%) rotate(3deg)' },\n '45%': { transform: 'translateX(-15%) rotate(-3deg)' },\n '60%': { transform: 'translateX(10%) rotate(2deg)' },\n '75%': { transform: 'translateX(-5%) rotate(-1deg)' },\n to: { transform: 'translateX(0%)' },\n duration,\n ...props,\n});\n\nexport const flip = (\n { duration = '1s', ...props }: AnimationProps = {\n duration: '1s',\n }\n) => ({\n from: {\n transform: 'perspective(400px) rotateY(0deg)',\n },\n '40%': {\n transform: 'perspective(400px) rotateY(-180deg)',\n },\n to: {\n transform: 'perspective(400px) rotateY(-360deg)',\n },\n duration,\n ...props,\n});\n\nexport const heartBeat = (\n {\n duration = '1.3s',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '1.3s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'scale(1)' },\n '14%': { transform: 'scale(1.3)' },\n '28%': { transform: 'scale(1)' },\n '42%': { transform: 'scale(1.3)' },\n '70%': { transform: 'scale(1)' },\n to: { transform: 'scale(1)' },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const rollIn = (\n { duration = '1s', ...props }: AnimationProps = {\n duration: '1s',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'translateX(-100%) rotate(-120deg)',\n },\n to: {\n opacity: 1,\n transform: 'translateX(0px) rotate(0deg)',\n },\n duration,\n ...props,\n});\n\nexport const rollOut = (\n { duration = '1s', ...props }: AnimationProps = {\n duration: '1s',\n }\n) => ({\n from: {\n opacity: 1,\n transform: 'translateX(0px) rotate(0deg)',\n },\n to: {\n opacity: 0,\n transform: 'translateX(100%) rotate(120deg)',\n },\n duration,\n ...props,\n});\n\nexport const lightSpeedIn = (\n { duration = '1s', timingFunction = 'ease-out', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: {\n transform: 'translateX(100%) skewX(-30deg)',\n opacity: 0,\n },\n '60%': {\n transform: 'skewX(20deg)',\n opacity: 1,\n },\n '80%': {\n transform: 'skewX(-5deg)',\n },\n to: {\n transform: 'translateX(0)',\n opacity: 1,\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const lightSpeedOut = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n opacity: 1,\n },\n '20%': {\n opacity: 1,\n transform: 'translateX(-20%) skewX(20deg)',\n },\n to: {\n opacity: 0,\n transform: 'translateX(-100%) skewX(30deg)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const hinge = (\n {\n duration = '2s',\n timingFunction = 'ease-in-out',\n ...props\n }: AnimationProps = {\n duration: '2s',\n timingFunction: 'ease-in-out',\n }\n) => ({\n from: {\n transform: 'rotate(0deg)',\n transformOrigin: 'top left',\n opacity: 1,\n },\n '20%': {\n transform: 'rotate(80deg)',\n opacity: 1,\n },\n '40%': {\n transform: 'rotate(60deg)',\n opacity: 1,\n },\n '60%': {\n transform: 'rotate(80deg)',\n opacity: 1,\n },\n '80%': {\n transform: 'rotate(60deg)',\n opacity: 1,\n },\n to: {\n transform: 'translateY(700px)',\n opacity: 0,\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const jackInTheBox = (\n { duration = '1s', timingFunction = 'ease', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'scale(0.1) rotate(30deg)',\n transformOrigin: 'center bottom',\n },\n '50%': {\n transform: 'rotate(-10deg)',\n },\n '70%': {\n transform: 'rotate(3deg)',\n },\n to: {\n opacity: 1,\n transform: 'scale(1) rotate(0deg)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const flipInX = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n transform: 'perspective(400px) rotateX(90deg)',\n opacity: 0,\n },\n '40%': {\n transform: 'perspective(400px) rotateX(-10deg)',\n opacity: 1,\n },\n to: {\n transform: 'perspective(400px) rotateX(0deg)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const flipInY = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n transform: 'perspective(400px) rotateY(90deg)',\n opacity: 0,\n },\n '40%': {\n transform: 'perspective(400px) rotateY(-10deg)',\n opacity: 1,\n },\n to: {\n transform: 'perspective(400px) rotateY(0deg)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const headShake = (\n { duration = '1s', iterationCount = 'infinite', ...props }: AnimationProps = {\n duration: '1s',\n iterationCount: 'infinite',\n }\n) => ({\n from: {\n transform: 'translateX(0)',\n },\n '6.5%': {\n transform: 'translateX(-6px) rotateY(-9deg)',\n },\n '18.5%': {\n transform: 'translateX(5px) rotateY(7deg)',\n },\n '31.5%': {\n transform: 'translateX(-3px) rotateY(-5deg)',\n },\n '43.5%': {\n transform: 'translateX(2px) rotateY(3deg)',\n },\n '50%': {\n transform: 'translateX(0)',\n },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const tada = (\n { duration = '1s', iterationCount = 'infinite', ...props }: AnimationProps = {\n duration: '1s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'scale3d(1, 1, 1)', opacity: 1 },\n '10%, 20%': {\n transform: 'scale3d(0.9, 0.9, 0.9) rotate(-3deg)',\n },\n '30%, 50%, 70%, 90%': {\n transform: 'scale3d(1.1, 1.1, 1.1) rotate(3deg)',\n },\n '40%, 60%, 80%': {\n transform: 'scale3d(1.1, 1.1, 1.1) rotate(-3deg)',\n },\n to: { transform: 'scale3d(1, 1, 1)', opacity: 1 },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const jello = (\n { duration = '1s', iterationCount = 'infinite', ...props }: AnimationProps = {\n duration: '1s',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'none' },\n '11.1%': { transform: 'skewX(-12.5deg) skewY(-12.5deg)' },\n '22.2%': { transform: 'skewX(6.25deg) skewY(6.25deg)' },\n '33.3%': { transform: 'skewX(-3.125deg) skewY(-3.125deg)' },\n '44.4%': { transform: 'skewX(1.5625deg) skewY(1.5625deg)' },\n '55.5%': { transform: 'skewX(-0.78125deg) skewY(-0.78125deg)' },\n '66.6%': { transform: 'skewX(0.390625deg) skewY(0.390625deg)' },\n '77.7%': { transform: 'skewX(-0.1953125deg) skewY(-0.1953125deg)' },\n '88.8%': { transform: 'skewX(0.09765625deg) skewY(0.09765625deg)' },\n to: { transform: 'none' },\n duration,\n iterationCount,\n ...props,\n});\n\nexport const fadeInDown = (\n { duration = '1s', timingFunction = 'ease-out', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'translateY(-100%)',\n },\n to: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const fadeInUp = (\n { duration = '1s', timingFunction = 'ease-out', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'translateY(100%)',\n },\n to: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const bounceIn = (\n {\n duration = '0.75s',\n timingFunction = 'ease-in',\n ...props\n }: AnimationProps = {\n duration: '0.75s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'scale(0.3)',\n },\n '50%': {\n opacity: 1,\n transform: 'scale(1.05)',\n },\n '70%': {\n transform: 'scale(0.9)',\n },\n to: {\n transform: 'scale(1)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const bounceOut = (\n {\n duration = '0.75s',\n timingFunction = 'ease-out',\n ...props\n }: AnimationProps = {\n duration: '0.75s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: {\n transform: 'scale(1)',\n },\n '20%': {\n transform: 'scale(0.9)',\n },\n '50%, 55%': {\n opacity: 1,\n transform: 'scale(1.1)',\n },\n to: {\n opacity: 0,\n transform: 'scale(0.3)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideOutLeft = (\n {\n duration = '0.5s',\n timingFunction = 'ease-in',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n transform: 'translateX(0)',\n },\n to: {\n transform: 'translateX(-100%)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const slideOutRight = (\n {\n duration = '0.5s',\n timingFunction = 'ease-in',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n transform: 'translateX(0)',\n },\n to: {\n transform: 'translateX(100%)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const zoomInDown = (\n { duration = '1s', timingFunction = 'ease-out', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-out',\n }\n) => ({\n from: {\n opacity: 0,\n transform: 'scale(0.1) translateY(-1000px)',\n },\n '60%': {\n opacity: 1,\n transform: 'scale(0.475) translateY(60px)',\n },\n to: {\n transform: 'scale(1) translateY(0)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const zoomOutUp = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n opacity: 1,\n transform: 'scale(1) translateY(0)',\n },\n '40%': {\n opacity: 1,\n transform: 'scale(0.475) translateY(-60px)',\n },\n to: {\n opacity: 0,\n transform: 'scale(0.1) translateY(-1000px)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const backInDown = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n opacity: 0.7,\n transform: 'translateY(-2000px) scaleY(2.5) scaleX(0.2)',\n },\n to: {\n opacity: 1,\n transform: 'translateY(0) scaleY(1) scaleX(1)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const backOutUp = (\n { duration = '1s', timingFunction = 'ease-in', ...props }: AnimationProps = {\n duration: '1s',\n timingFunction: 'ease-in',\n }\n) => ({\n from: {\n opacity: 1,\n transform: 'translateY(0)',\n },\n '80%': {\n opacity: 0.7,\n transform: 'translateY(-20px)',\n },\n to: {\n opacity: 0,\n transform: 'translateY(-2000px)',\n },\n duration,\n timingFunction,\n ...props,\n});\n\nexport const shimmer = (\n {\n duration = '2s',\n timingFunction = 'linear',\n iterationCount = 'infinite',\n ...props\n }: AnimationProps = {\n duration: '2s',\n timingFunction: 'linear',\n iterationCount: 'infinite',\n }\n) => ({\n from: { transform: 'translateX(-100%)' },\n '50%': { transform: 'translateX(100%)' },\n to: { transform: 'translateX(100%)' },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\n\nexport const progress = (\n {\n duration = '2s',\n timingFunction = 'linear',\n direction = 'forwards',\n from = { width: '0%' },\n to = { width: '100%' },\n ...props\n }: AnimationProps = {\n duration: '2s',\n timingFunction: 'linear',\n direction: 'forwards',\n from: { width: '0%' },\n to: { width: '100%' },\n }\n) => ({\n from,\n to,\n duration,\n timingFunction,\n direction,\n ...props,\n});\n\nexport const typewriter = (\n {\n duration = '10s',\n steps = 10,\n iterationCount = 1,\n width = 0,\n ...props\n }: AnimationProps = {\n duration: '10s',\n steps: 10,\n iterationCount: 1,\n width: 0,\n }\n) => ({\n from: { width: '0px' },\n to: { width: `${width}px` },\n timingFunction: `steps(${steps})`,\n duration,\n iterationCount,\n ...props,\n});\n\nexport const blinkCursor = (\n {\n duration = '0.75s',\n timingFunction = 'step-end',\n iterationCount = 'infinite',\n color = 'black',\n ...props\n }: AnimationProps = {\n duration: '0.75s',\n timingFunction: 'step-end',\n iterationCount: 'infinite',\n color: 'black',\n }\n) => ({\n from: { color: color },\n to: { color: color },\n '0%': { color: color },\n '50%': { color: 'transparent' },\n '100%': { color: color },\n duration,\n timingFunction,\n iterationCount,\n ...props,\n});\nexport const fadeInScroll = (\n {\n duration = '0.5s',\n timingFunction = 'ease',\n timeline = 'scroll()',\n range = 'cover',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease',\n timeline: 'scroll()',\n range: 'cover',\n }\n) => ({\n from: { opacity: 0 },\n to: { opacity: 1 },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\nexport const slideInLeftScroll = (\n {\n duration = '0.5s',\n timingFunction = 'ease-out',\n timeline = 'scroll()',\n range = 'cover',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease-out',\n timeline: 'scroll()',\n range: 'cover',\n }\n) => ({\n from: { transform: 'translateX(-200%)' },\n to: { transform: 'translateX(0)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\nexport const scaleDownScroll = (\n {\n duration = '0.8s',\n timingFunction = 'ease',\n timeline = 'scroll()',\n range = 'cover',\n ...props\n }: AnimationProps = {\n duration: '0.8s',\n timingFunction: 'ease',\n timeline: 'scroll()',\n range: 'cover',\n }\n) => ({\n from: { transform: 'scale(3)' },\n to: { transform: 'scale(1)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Text fill reveal on scroll driven by a custom property (--fill)\n// Requires @property --fill defined in CSS\nexport const fillTextScroll = (\n {\n duration = '1s',\n timingFunction = 'linear',\n timeline = '--section',\n range = 'entry 100% cover 50%, cover 50% exit 0%',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n timeline: '--section',\n range: 'entry 100% cover 50%, cover 50% exit 0%',\n }\n) => ({\n from: {\n '--fill': 0,\n color: 'transparent',\n backgroundPositionX:\n 'calc(var(--underline-block-width) * -1), calc(var(--underline-block-width) * -1), 0',\n },\n '50%': { '--fill': 0.5 },\n to: {\n '--fill': 1,\n backgroundPositionX: '0, 0, 0',\n color: 'var(--finish-fill)',\n },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Collapsing floating call-to-action on scroll\n// This animates the width from an expanded value to a collapsed width.\nexport const ctaCollapseScroll = (\n {\n duration = '1s',\n timingFunction = 'linear',\n timeline = 'scroll()',\n range = '0 400px',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n timeline: 'scroll()',\n range: '0 400px',\n }\n) => ({\n from: { width: 'calc(48px + 120px)' },\n to: { width: '48px' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Hand wave animation on scroll with a defined view range\nexport const handWaveScroll = (\n {\n duration = '2s',\n timingFunction = 'linear',\n timeline = 'scroll()',\n range = '10vh 60vh',\n ...props\n }: AnimationProps = {\n duration: '2s',\n timingFunction: 'linear',\n timeline: 'scroll()',\n range: '10vh 60vh',\n }\n) => ({\n from: { transform: 'rotate(0deg)' },\n '50%': { transform: 'rotate(20deg)' },\n to: { transform: 'rotate(0deg)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Fade out and blur text on scroll exit\nexport const fadeBlurScroll = (\n {\n duration = '1s',\n timingFunction = 'linear',\n timeline = 'view()',\n range = 'cover 40% cover 85%',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n timeline: 'view()',\n range: 'cover 40% cover 85%',\n }\n) => ({\n to: { opacity: 0, filter: 'blur(2rem)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Unclip animation using clip-path on scroll\nexport const unclipScroll = (\n {\n duration = '1s',\n timingFunction = 'linear',\n timeline = '--article',\n range = 'entry',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n timeline: '--article',\n range: 'entry',\n }\n) => ({\n to: { clipPath: 'ellipse(220% 200% at 50% 175%)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// Scale down image (or content) on scroll using article timeline\nexport const scaleDownArticleScroll = (\n {\n duration = '1s',\n timingFunction = 'linear',\n timeline = '--article',\n range = 'entry',\n ...props\n }: AnimationProps = {\n duration: '1s',\n timingFunction: 'linear',\n timeline: '--article',\n range: 'entry',\n }\n) => ({\n '0%': { transform: 'scale(5)' },\n to: { transform: 'scale(1)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n\n// List item scaling animation on scroll driven by an inline view-timeline (--i)\nexport const listItemScaleScroll = (\n {\n duration = '0.5s',\n timingFunction = 'ease',\n timeline = '--i',\n range = 'cover 40% cover 60%',\n ...props\n }: AnimationProps = {\n duration: '0.5s',\n timingFunction: 'ease',\n timeline: '--i',\n range: 'cover 40% cover 60%',\n }\n) => ({\n from: { transform: 'scale(0.8)' },\n '50%': { transform: 'scale(1)' },\n duration,\n timingFunction,\n timeline,\n range,\n ...props,\n});\n","export const Typography = {\n letterSpacings: {\n tighter: -0.08,\n tight: -0.4,\n normal: 0,\n wide: 0.4,\n wider: 0.8,\n widest: 1.6,\n },\n lineHeights: {\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 64,\n },\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semiBold: 600,\n bold: 700,\n extraBold: 800,\n black: 900,\n },\n fontSizes: {\n xs: 10,\n sm: 12,\n md: 14,\n lg: 16,\n xl: 20,\n '2xl': 24,\n '3xl': 30,\n '4xl': 36,\n '5xl': 48,\n '6xl': 64,\n },\n};\n","export type Shadow = {\n shadowColor: string;\n shadowOffset: {\n width: number;\n height: number;\n };\n shadowOpacity: number;\n shadowRadius: number;\n};\n\nexport const Shadows: Record<number, Shadow> = {\n 0: {\n shadowColor: '#000',\n shadowOffset: {\n width: 1,\n height: 2,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n },\n 1: {\n shadowColor: '#000',\n shadowOffset: {\n width: 2,\n height: 2,\n },\n shadowOpacity: 0.2,\n shadowRadius: 1.41,\n },\n 2: {\n shadowColor: '#000',\n shadowOffset: {\n width: 3,\n height: 3,\n },\n shadowOpacity: 0.22,\n shadowRadius: 2.22,\n },\n 3: {\n shadowColor: '#000',\n shadowOffset: {\n width: 4,\n height: 4,\n },\n shadowOpacity: 0.23,\n shadowRadius: 2.62,\n },\n 4: {\n shadowColor: '#000',\n shadowOffset: {\n width: 5,\n height: 5,\n },\n shadowOpacity: 0.25,\n shadowRadius: 3.84,\n },\n 5: {\n shadowColor: '#000',\n shadowOffset: {\n width: 6,\n height: 6,\n },\n shadowOpacity: 0.27,\n shadowRadius: 4.65,\n },\n 6: {\n shadowColor: '#000',\n shadowOffset: {\n width: 7,\n height: 7,\n },\n shadowOpacity: 0.29,\n shadowRadius: 4.65,\n },\n 7: {\n shadowColor: '#000',\n shadowOffset: {\n width: 8,\n height: 8,\n },\n shadowOpacity: 0.3,\n shadowRadius: 4.65,\n },\n 8: {\n shadowColor: '#000',\n shadowOffset: {\n width: 9,\n height: 9,\n },\n shadowOpacity: 0.32,\n shadowRadius: 5.46,\n },\n 9: {\n shadowColor: '#000',\n shadowOffset: {\n width: 10,\n height: 10,\n },\n shadowOpacity: 0.34,\n shadowRadius: 6.27,\n },\n};\n","/**\n * whether in browser env\n */\nexport const isBrowser = (): boolean =>\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined';\n\n/**\n * get window.g_initialProps\n */\nexport const getWindowInitialProps = () =>\n isBrowser() ? (window as any).g_initialProps : undefined;\n\n/**\n * whether SSR success in client\n */\nexport const isSSR = !isBrowser();\n\nexport function isDev() {\n let dev = false;\n\n if (isBrowser()) {\n dev = !(window.location.hostname.indexOf('localhost') === -1);\n }\n return dev;\n}\n\nexport function isProd() {\n if (isBrowser()) {\n if (window && window.location && window.location.hostname) {\n return (\n window.location.hostname.includes('localhost') ||\n window.location.hostname.includes('develop')\n );\n }\n }\n return false;\n}\n\nexport function isMobile() {\n return navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i);\n}\n","/**\n * View Animation Utilities\n *\n * Create performant CSS scroll-driven animations using view() timeline.\n * These animations are pure CSS - no JavaScript state or IntersectionObserver needed!\n */\n\nimport {\n ViewAnimationConfig,\n ViewAnimationOptions,\n SlideAnimationOptions,\n ScaleAnimationOptions,\n BlurAnimationOptions,\n RotateAnimationOptions,\n} from '../types/scrollAnimation.types';\nimport { AnimationProps } from './constants';\n\n/**\n * Convert ViewAnimationConfig to AnimationProps with view() timeline\n * This enables CSS-only animations without JavaScript state\n *\n * @example\n * <View animate={createViewAnimation({\n * keyframes: { from: { opacity: 0 }, to: { opacity: 1 } },\n * range: 'entry'\n * })} />\n */\nexport const createViewAnimation = (\n config: ViewAnimationConfig\n): AnimationProps => {\n const { keyframes, timing = {}, range = 'entry' } = config;\n\n return {\n ...keyframes,\n duration: timing.duration || '0.6s',\n timingFunction: timing.timingFunction || 'ease',\n fillMode: timing.fillMode || 'both',\n delay: timing.delay,\n timeline: 'view()', // CSS view() timeline - pure CSS, no JS!\n range,\n };\n};\n\n/**\n * Create an animation that triggers when element enters viewport\n * Uses CSS view() timeline - NO JavaScript state required!\n *\n * @example\n * <View animate={animateOnView({\n * keyframes: { from: { opacity: 0 }, to: { opacity: 1 } },\n * range: 'entry'\n * })} />\n */\nexport const animateOnView = (config: ViewAnimationConfig): AnimationProps => {\n return createViewAnimation(config);\n};\n\n/**\n * Preset: Fade in when entering viewport\n *\n * @example\n * <View animate={fadeInOnView()} />\n * <View animate={fadeInOnView({ duration: '1s' })} />\n */\nexport const fadeInOnView = (\n options: ViewAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: { from: { opacity: 0 }, to: { opacity: 1 } },\n timing: {\n duration: options.duration || '0.5s',\n timingFunction: options.timingFunction || 'ease',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Fade out when exiting viewport\n *\n * @example\n * <View animate={fadeOutOnView()} />\n */\nexport const fadeOutOnView = (\n options: ViewAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: { from: { opacity: 1 }, to: { opacity: 0 } },\n timing: {\n duration: options.duration || '0.5s',\n timingFunction: options.timingFunction || 'ease',\n delay: options.delay,\n },\n range: options.range || 'exit',\n });\n\n/**\n * Preset: Slide up and fade in when entering viewport\n *\n * @example\n * <View animate={slideUpOnView()} />\n * <View animate={slideUpOnView({ distance: '50px', duration: '0.8s' })} />\n */\nexport const slideUpOnView = (\n options: SlideAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: `translateY(${options.distance || '30px'})`,\n },\n to: { opacity: 1, transform: 'translateY(0)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Slide down and fade in when entering viewport\n *\n * @example\n * <View animate={slideDownOnView()} />\n */\nexport const slideDownOnView = (\n options: SlideAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: `translateY(-${options.distance || '30px'})`,\n },\n to: { opacity: 1, transform: 'translateY(0)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Slide in from left when entering viewport\n *\n * @example\n * <View animate={slideLeftOnView()} />\n */\nexport const slideLeftOnView = (\n options: SlideAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: `translateX(-${options.distance || '50px'})`,\n },\n to: { opacity: 1, transform: 'translateX(0)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Slide in from right when entering viewport\n *\n * @example\n * <View animate={slideRightOnView()} />\n */\nexport const slideRightOnView = (\n options: SlideAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: `translateX(${options.distance || '50px'})`,\n },\n to: { opacity: 1, transform: 'translateX(0)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Scale up when entering viewport\n *\n * @example\n * <View animate={scaleUpOnView()} />\n * <View animate={scaleUpOnView({ scale: 0.8 })} />\n */\nexport const scaleUpOnView = (\n options: ScaleAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: { opacity: 0, transform: `scale(${options.scale || 0.9})` },\n to: { opacity: 1, transform: 'scale(1)' },\n },\n timing: {\n duration: options.duration || '0.5s',\n timingFunction: options.timingFunction || 'ease',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Scale down when entering viewport\n *\n * @example\n * <View animate={scaleDownOnView({ scale: 1.1 })} />\n */\nexport const scaleDownOnView = (\n options: ScaleAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: { opacity: 0, transform: `scale(${options.scale || 1.1})` },\n to: { opacity: 1, transform: 'scale(1)' },\n },\n timing: {\n duration: options.duration || '0.5s',\n timingFunction: options.timingFunction || 'ease',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Blur in when entering viewport\n *\n * @example\n * <View animate={blurInOnView()} />\n * <View animate={blurInOnView({ blur: '15px' })} />\n */\nexport const blurInOnView = (\n options: BlurAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: { opacity: 0, filter: `blur(${options.blur || '10px'})` },\n to: { opacity: 1, filter: 'blur(0)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Blur out when exiting viewport\n *\n * @example\n * <View animate={blurOutOnView()} />\n */\nexport const blurOutOnView = (\n options: BlurAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: { opacity: 1, filter: 'blur(0)' },\n to: { opacity: 0, filter: `blur(${options.blur || '10px'})` },\n },\n timing: {\n duration: options.duration || '0.5s',\n timingFunction: options.timingFunction || 'ease-in',\n delay: options.delay,\n },\n range: options.range || 'exit',\n });\n\n/**\n * Preset: Rotate in when entering viewport\n *\n * @example\n * <View animate={rotateInOnView()} />\n * <View animate={rotateInOnView({ angle: '-15deg' })} />\n */\nexport const rotateInOnView = (\n options: RotateAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: `rotate(${options.angle || '-10deg'}) scale(0.9)`,\n },\n to: { opacity: 1, transform: 'rotate(0) scale(1)' },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Reveal with clip-path from bottom\n *\n * @example\n * <View animate={revealOnView()} />\n */\nexport const revealOnView = (\n options: ViewAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: { clipPath: 'inset(100% 0 0 0)' },\n to: { clipPath: 'inset(0 0 0 0)' },\n },\n timing: {\n duration: options.duration || '0.7s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry 0% entry 80%',\n });\n\n/**\n * Preset: Flip in on X axis\n *\n * @example\n * <View animate={flipXOnView()} />\n */\nexport const flipXOnView = (\n options: ViewAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: 'perspective(400px) rotateX(90deg)',\n },\n to: {\n opacity: 1,\n transform: 'perspective(400px) rotateX(0)',\n },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset: Flip in on Y axis\n *\n * @example\n * <View animate={flipYOnView()} />\n */\nexport const flipYOnView = (\n options: ViewAnimationOptions = {}\n): AnimationProps =>\n animateOnView({\n keyframes: {\n from: {\n opacity: 0,\n transform: 'perspective(400px) rotateY(90deg)',\n },\n to: {\n opacity: 1,\n transform: 'perspective(400px) rotateY(0)',\n },\n },\n timing: {\n duration: options.duration || '0.6s',\n timingFunction: options.timingFunction || 'ease-out',\n delay: options.delay,\n },\n range: options.range || 'entry',\n });\n\n/**\n * Preset JSON configurations for common view animations\n * Use with createViewAnimation() or animateOnView()\n */\nexport const viewAnimationPresets: Record<string, ViewAnimationConfig> = {\n fadeIn: {\n keyframes: { from: { opacity: 0 }, to: { opacity: 1 } },\n timing: { duration: '0.5s', timingFunction: 'ease' },\n range: 'entry',\n },\n\n fadeOut: {\n keyframes: { from: { opacity: 1 }, to: { opacity: 0 } },\n timing: { duration: '0.5s', timingFunction: 'ease' },\n range: 'exit',\n },\n\n slideUp: {\n keyframes: {\n from: { opacity: 0, transform: 'translateY(30px)' },\n to: { opacity: 1, transform: 'translateY(0)' },\n },\n timing: { duration: '0.6s', timingFunction: 'ease-out' },\n range: 'entry',\n },\n\n slideDown: {\n keyframes: {\n from: { opacity: 0, transform: 'translateY(-30px)' },\n to: { opacity: 1, transform: 'translateY(0)' },\n },\n timing: { duration: '0.6s', timingFunction: 'ease-out' },\n range: 'entry',\n },\n\n scaleUp: {\n keyframes: {\n from: { opacity: 0, transform: 'scale(0.9)' },\n to: { opacity: 1, transform: 'scale(1)' },\n },\n timing: { duration: '0.5s', timingFunction: 'ease' },\n range: 'entry',\n },\n\n blurIn: {\n keyframes: {\n from: { opacity: 0, filter: 'blur(10px)' },\n to: { opacity: 1, filter: 'blur(0)' },\n },\n timing: { duration: '0.6s', timingFunction: 'ease-out' },\n range: 'entry',\n },\n\n reveal: {\n keyframes: {\n from: { clipPath: 'inset(100% 0 0 0)' },\n to: { clipPath: 'inset(0 0 0 0)' },\n },\n timing: { duration: '0.7s', timingFunction: 'ease-out' },\n range: 'entry 0% entry 80%',\n },\n};\n"],"mappings":"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SAAe,QAAS;AAEnD;;;AFtHA,IAAM,iBAAiB,oBAAI,IAAY;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,eAAe,oBAAI,IAAI;AAAA,EAC3B;AAAA,EACA;AAAA,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","names":["useWindowDimensions","import_react","import_react_native","import_react","import_react_native","useRNWindowDimensions","React","import_react","React","React","RNView","RNScrollView","RNText","RNImage","RNImageBackground","import_react","import_react_native","useRNWindowDimensions","React","import_react","React","import_react","React","import_react","useWindowDimensions"]}
|