reactnatively-theme 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -0
- package/dist/index.d.mts +812 -0
- package/dist/index.d.ts +812 -0
- package/dist/index.js +710 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +686 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tokens/colors.ts","../src/tokens/glass.ts","../src/tokens/spacing.ts","../src/tokens/radii.ts","../src/tokens/typography.ts","../src/tokens/shadows.ts","../src/tokens/motion.ts","../src/themes/base.ts","../src/themes/dark.ts","../src/ThemeProvider.tsx","../src/createTheme.ts"],"names":["useRNColorScheme","deepMerge"],"mappings":"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","file":"index.mjs","sourcesContent":["// PRIMITIVE PALETTE — never reference directly in components, use semantic tokens\nexport const palette = {\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 950: '#172554',\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 950: '#1e1b4b',\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 950: '#2e1065',\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 950: '#083344',\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 950: '#022c22',\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 950: '#451a03',\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 950: '#4c0519',\n },\n neutral: {\n 0: '#ffffff',\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 950: '#0a0a0a',\n 1000:'#000000',\n },\n // Liquid Glass — raw RGBA primitives for glass layers\n glass: {\n white5: 'rgba(255,255,255,0.05)',\n white8: 'rgba(255,255,255,0.08)',\n white10: 'rgba(255,255,255,0.10)',\n white15: 'rgba(255,255,255,0.15)',\n white20: 'rgba(255,255,255,0.20)',\n white25: 'rgba(255,255,255,0.25)',\n white30: 'rgba(255,255,255,0.30)',\n white40: 'rgba(255,255,255,0.40)',\n white50: 'rgba(255,255,255,0.50)',\n white60: 'rgba(255,255,255,0.60)',\n white72: 'rgba(255,255,255,0.72)',\n white85: 'rgba(255,255,255,0.85)',\n black5: 'rgba(0,0,0,0.05)',\n black8: 'rgba(0,0,0,0.08)',\n black10: 'rgba(0,0,0,0.10)',\n black15: 'rgba(0,0,0,0.15)',\n black20: 'rgba(0,0,0,0.20)',\n black30: 'rgba(0,0,0,0.30)',\n black40: 'rgba(0,0,0,0.40)',\n black50: 'rgba(0,0,0,0.50)',\n black60: 'rgba(0,0,0,0.60)',\n black72: 'rgba(0,0,0,0.72)',\n black85: 'rgba(0,0,0,0.85)',\n },\n} as const;\n\nexport type Palette = typeof palette;\n","// GLASS TOKEN SYSTEM — the visual identity engine of the entire framework.\n// Every component that touches glass references ONLY these values.\n// This file is the source of truth for all glass aesthetics.\n\nexport const glassTokens = {\n // Blur intensity scale — maps to expo-blur `intensity` (0-100)\n blur: {\n none: 0,\n hairline: 4,\n subtle: 10,\n light: 20,\n medium: 35,\n heavy: 55,\n intense: 72,\n extreme: 90,\n },\n\n // Tint: semi-transparent color applied over the blur layer\n tint: {\n light: {\n ultraThin: 'rgba(255,255,255,0.45)',\n thin: 'rgba(255,255,255,0.60)',\n surface: 'rgba(255,255,255,0.72)',\n elevated: 'rgba(255,255,255,0.82)',\n overlay: 'rgba(255,255,255,0.92)',\n frosted: 'rgba(240,242,250,0.68)',\n tinted: 'rgba(59,130,246,0.12)',\n },\n dark: {\n ultraThin: 'rgba(20,20,30,0.45)',\n thin: 'rgba(20,20,30,0.58)',\n surface: 'rgba(25,25,38,0.72)',\n elevated: 'rgba(30,30,48,0.80)',\n overlay: 'rgba(15,15,25,0.88)',\n frosted: 'rgba(22,24,40,0.70)',\n tinted: 'rgba(99,102,241,0.15)',\n },\n },\n\n // Elevation: the glass depth system (0 = flat, 5 = floating modal)\n // Each level defines the complete glass rendering recipe\n elevation: {\n 0: {\n blur: 0,\n tintOpacity: 0.95,\n shadowOpacity: 0,\n shadowRadius: 0,\n shadowY: 0,\n },\n 1: {\n blur: 12,\n tintOpacity: 0.82,\n shadowOpacity: 0.06,\n shadowRadius: 8,\n shadowY: 2,\n },\n 2: {\n blur: 24,\n tintOpacity: 0.72,\n shadowOpacity: 0.12,\n shadowRadius: 16,\n shadowY: 4,\n },\n 3: {\n blur: 40,\n tintOpacity: 0.65,\n shadowOpacity: 0.18,\n shadowRadius: 24,\n shadowY: 8,\n },\n 4: {\n blur: 55,\n tintOpacity: 0.55,\n shadowOpacity: 0.24,\n shadowRadius: 36,\n shadowY: 12,\n },\n 5: {\n blur: 72,\n tintOpacity: 0.45,\n shadowOpacity: 0.32,\n shadowRadius: 48,\n shadowY: 20,\n },\n } as const,\n\n // Highlight: top-edge shimmer — creates the \"wet glass\" refraction\n highlight: {\n none: 'transparent',\n subtle: 'rgba(255,255,255,0.20)',\n medium: 'rgba(255,255,255,0.38)',\n strong: 'rgba(255,255,255,0.55)',\n intense: 'rgba(255,255,255,0.72)',\n },\n\n // Highlight gradient: gradient from highlight to transparent (vertical)\n highlightGradientEnd: 'transparent',\n\n // Border: glass edge line — makes glass surfaces feel distinct\n border: {\n light: {\n subtle: 'rgba(255,255,255,0.20)',\n medium: 'rgba(255,255,255,0.32)',\n strong: 'rgba(255,255,255,0.50)',\n },\n dark: {\n subtle: 'rgba(255,255,255,0.08)',\n medium: 'rgba(255,255,255,0.14)',\n strong: 'rgba(255,255,255,0.22)',\n },\n },\n\n // Glow: ambient glow emitted from glass surfaces\n glow: {\n primary: { color: '#6366f1', radius: 24, opacity: 0.35 },\n blue: { color: '#3b82f6', radius: 24, opacity: 0.35 },\n cyan: { color: '#06b6d4', radius: 20, opacity: 0.40 },\n rose: { color: '#f43f5e', radius: 20, opacity: 0.35 },\n success: { color: '#10b981', radius: 20, opacity: 0.30 },\n warning: { color: '#f59e0b', radius: 20, opacity: 0.30 },\n },\n\n // Vibrancy mode — controls how aggressively colors pop through glass\n vibrancy: {\n none: { saturation: 1.0, brightness: 1.0 },\n subtle: { saturation: 1.1, brightness: 1.02 },\n medium: { saturation: 1.2, brightness: 1.04 },\n vivid: { saturation: 1.4, brightness: 1.06 },\n },\n} as const;\n\nexport type GlassTokens = typeof glassTokens;\nexport type GlassElevation = 0 | 1 | 2 | 3 | 4 | 5;\nexport type GlassTintVariant = keyof typeof glassTokens.tint.light;\nexport type GlassBlurLevel = keyof typeof glassTokens.blur;\nexport type GlassHighlight = keyof typeof glassTokens.highlight;\n","// 4px base grid. Numeric keys map to Tailwind-compatible scale.\nexport const spacing = {\n 0: 0,\n px: 1,\n 0.5: 2,\n 1: 4,\n 1.5: 6,\n 2: 8,\n 2.5: 10,\n 3: 12,\n 3.5: 14,\n 4: 16,\n 5: 20,\n 6: 24,\n 7: 28,\n 8: 32,\n 9: 36,\n 10: 40,\n 11: 44,\n 12: 48,\n 14: 56,\n 16: 64,\n 20: 80,\n 24: 96,\n 28: 112,\n 32: 128,\n 36: 144,\n 40: 160,\n 48: 192,\n 56: 224,\n 64: 256,\n} as const;\n\nexport type SpacingScale = typeof spacing;\nexport type SpacingKey = keyof SpacingScale;\nexport type SpacingValue = SpacingScale[SpacingKey];\n","export const radii = {\n none: 0,\n xs: 4,\n sm: 6,\n md: 8,\n lg: 12,\n xl: 16,\n '2xl': 20,\n '3xl': 24,\n '4xl': 32,\n full: 9999,\n} as const;\n\nexport type RadiiScale = typeof radii;\nexport type RadiiKey = keyof RadiiScale;\n","export const fontFamily = {\n sans: 'System',\n mono: 'Courier',\n // Override with custom fonts via ThemeProvider:\n // fontFamily: { sans: 'Inter_400Regular', ... }\n} as const;\n\nexport const fontSize = {\n '2xs': 10,\n xs: 12,\n sm: 13,\n base: 15,\n md: 15,\n lg: 17,\n xl: 19,\n '2xl': 22,\n '3xl': 26,\n '4xl': 32,\n '5xl': 40,\n '6xl': 52,\n '7xl': 64,\n} as const;\n\nexport const lineHeight = {\n none: 1,\n tight: 1.2,\n snug: 1.35,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n} as const;\n\nexport const fontWeight = {\n thin: '100' as const,\n extralight: '200' as const,\n light: '300' as const,\n normal: '400' as const,\n medium: '500' as const,\n semibold: '600' as const,\n bold: '700' as const,\n extrabold: '800' as const,\n black: '900' as const,\n};\n\nexport const letterSpacing = {\n tighter: -0.8,\n tight: -0.4,\n normal: 0,\n wide: 0.4,\n wider: 0.8,\n widest: 1.6,\n} as const;\n\nexport const typography = {\n fontFamily,\n fontSize,\n lineHeight,\n fontWeight,\n letterSpacing,\n} as const;\n\nexport type Typography = typeof typography;\n","// Cross-platform shadow system.\n// iOS uses shadow* props. Android uses elevation.\n// Both are defined per level so components can apply either.\n\nexport const shadows = {\n none: {\n ios: {\n shadowColor: 'transparent',\n shadowOffset: { width: 0, height: 0 },\n shadowOpacity: 0,\n shadowRadius: 0,\n },\n android: { elevation: 0 },\n },\n xs: {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.05,\n shadowRadius: 2,\n },\n android: { elevation: 1 },\n },\n sm: {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.08,\n shadowRadius: 4,\n },\n android: { elevation: 2 },\n },\n md: {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 4 },\n shadowOpacity: 0.12,\n shadowRadius: 8,\n },\n android: { elevation: 4 },\n },\n lg: {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 8 },\n shadowOpacity: 0.15,\n shadowRadius: 16,\n },\n android: { elevation: 8 },\n },\n xl: {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 12 },\n shadowOpacity: 0.18,\n shadowRadius: 24,\n },\n android: { elevation: 12 },\n },\n '2xl': {\n ios: {\n shadowColor: '#000',\n shadowOffset: { width: 0, height: 20 },\n shadowOpacity: 0.22,\n shadowRadius: 40,\n },\n android: { elevation: 20 },\n },\n // Glass-specific: colored shadows for glowing surfaces\n glassGlow: {\n ios: {\n shadowColor: '#6366f1',\n shadowOffset: { width: 0, height: 8 },\n shadowOpacity: 0.40,\n shadowRadius: 24,\n },\n android: { elevation: 12 },\n },\n} as const;\n\nexport type Shadows = typeof shadows;\nexport type ShadowKey = keyof Shadows;\n","// Motion tokens — every animation in the framework uses these values.\n// reducedMotion overrides are automatically applied when the system setting is enabled.\n\nexport const duration = {\n instant: 50,\n fast: 120,\n normal: 220,\n slow: 380,\n verySlow: 550,\n // Glass-specific: blur fades need slightly longer to feel smooth\n blurIn: 280,\n blurOut: 180,\n // Entrance animations\n enter: 300,\n exit: 200,\n // Spring-based don't use duration — see springs below\n} as const;\n\nexport const easing = {\n // Cubic bezier definitions for Reanimated's `withTiming`\n // Use `Easing.bezier(x1, y1, x2, y2)` in Reanimated code\n standard: [0.4, 0.0, 0.2, 1.0], // most transitions\n decelerate: [0.0, 0.0, 0.2, 1.0], // elements entering viewport\n accelerate: [0.4, 0.0, 1.0, 1.0], // elements leaving viewport\n sharp: [0.4, 0.0, 0.6, 1.0], // quick attention-grabbing\n} as const;\n\n// Spring configs — used with Reanimated's `withSpring`\nexport const springs = {\n // iOS-style: fast, confident, no overshoot\n snappy: {\n damping: 22,\n stiffness: 420,\n mass: 0.8,\n overshootClamping: false,\n },\n // The liquid glass spring: physical, fluid, slight wobble\n liquid: {\n damping: 15,\n stiffness: 280,\n mass: 1.0,\n overshootClamping: false,\n },\n // Reveal: for blurs fading in, dialogs mounting\n reveal: {\n damping: 30,\n stiffness: 200,\n mass: 1.2,\n overshootClamping: false,\n },\n // Bounce: FAB, badges, notification pops\n bounce: {\n damping: 8,\n stiffness: 340,\n mass: 0.7,\n overshootClamping: false,\n },\n // Precise: sliders, progress — no overshoot\n precise: {\n damping: 40,\n stiffness: 300,\n mass: 1.0,\n overshootClamping: true,\n },\n} as const;\n\n// reducedMotion equivalents — same properties but collapsed to near-instant\nexport const reducedMotion = {\n duration: {\n instant: 0,\n fast: 0,\n normal: 50,\n slow: 80,\n verySlow: 100,\n blurIn: 80,\n blurOut: 60,\n enter: 80,\n exit: 60,\n },\n springs: {\n snappy: { damping: 40, stiffness: 400, mass: 1 },\n liquid: { damping: 40, stiffness: 400, mass: 1 },\n reveal: { damping: 40, stiffness: 400, mass: 1 },\n bounce: { damping: 40, stiffness: 400, mass: 1 },\n precise: { damping: 40, stiffness: 400, mass: 1 },\n },\n} as const;\n\nexport const motion = { duration, easing, springs, reducedMotion } as const;\nexport type Motion = typeof motion;\nexport type SpringConfig = (typeof springs)[keyof typeof springs];\n","import { palette } from '../tokens/colors';\nimport { glassTokens } from '../tokens/glass';\nimport { spacing } from '../tokens/spacing';\nimport { radii } from '../tokens/radii';\nimport { typography } from '../tokens/typography';\nimport { shadows } from '../tokens/shadows';\nimport { motion } from '../tokens/motion';\n\n// Colors are typed as string — NOT as const literal — so dark mode\n// overrides can supply any color value without literal type conflicts.\nexport interface ThemeColors {\n primary: string;\n primaryHover: string;\n primaryFocused: string;\n primarySubtle: string;\n primaryMuted: string;\n secondary: string;\n secondaryHover: string;\n secondarySubtle: string;\n success: string;\n successSubtle: string;\n successText: string;\n warning: string;\n warningSubtle: string;\n warningText: string;\n error: string;\n errorHover: string;\n errorSubtle: string;\n errorText: string;\n info: string;\n infoSubtle: string;\n infoText: string;\n background: string;\n backgroundDeep: string;\n surface: string;\n surfaceRaised: string;\n surfaceOverlay: string;\n text: string;\n textSecondary: string;\n textMuted: string;\n textDisabled: string;\n textInverted: string;\n border: string;\n borderSubtle: string;\n borderStrong: string;\n neutral: string;\n neutralSubtle: string;\n}\n\nconst lightColors: ThemeColors = {\n primary: palette.indigo[500],\n primaryHover: palette.indigo[600],\n primaryFocused: palette.indigo[400],\n primarySubtle: palette.indigo[50],\n primaryMuted: 'rgba(99,102,241,0.12)',\n secondary: palette.violet[500],\n secondaryHover: palette.violet[600],\n secondarySubtle: palette.violet[50],\n success: palette.emerald[500],\n successSubtle: palette.emerald[50],\n successText: palette.emerald[700],\n warning: palette.amber[500],\n warningSubtle: palette.amber[50],\n warningText: palette.amber[700],\n error: palette.rose[500],\n errorHover: palette.rose[600],\n errorSubtle: palette.rose[50],\n errorText: palette.rose[700],\n info: palette.cyan[500],\n infoSubtle: palette.cyan[50],\n infoText: palette.cyan[700],\n background: palette.neutral[50],\n backgroundDeep: palette.neutral[100],\n surface: palette.neutral[0],\n surfaceRaised: palette.neutral[0],\n surfaceOverlay: palette.neutral[0],\n text: palette.neutral[900],\n textSecondary: palette.neutral[600],\n textMuted: palette.neutral[400],\n textDisabled: palette.neutral[300],\n textInverted: palette.neutral[0],\n border: palette.neutral[200],\n borderSubtle: palette.neutral[100],\n borderStrong: palette.neutral[300],\n neutral: palette.neutral[600],\n neutralSubtle: palette.neutral[100],\n};\n\nexport interface BaseTheme {\n colors: ThemeColors;\n glass: typeof glassTokens;\n spacing: typeof spacing;\n radii: typeof radii;\n typography: typeof typography;\n shadows: typeof shadows;\n motion: typeof motion;\n}\n\nexport const baseTheme: BaseTheme = {\n colors: lightColors,\n glass: glassTokens,\n spacing,\n radii,\n typography,\n shadows,\n motion,\n};\n\nexport type ThemeColorKey = keyof ThemeColors;\n","import { palette } from '../tokens/colors';\nimport type { ThemeColors } from './base';\n\n// Dark mode color overrides only — merged on top of lightColors at runtime.\n// All values are typed as ThemeColors so every key is validated.\nexport const darkColors: ThemeColors = {\n primary: palette.indigo[400],\n primaryHover: palette.indigo[300],\n primaryFocused: palette.indigo[500],\n primarySubtle: 'rgba(99,102,241,0.15)',\n primaryMuted: 'rgba(99,102,241,0.10)',\n secondary: palette.violet[400],\n secondaryHover: palette.violet[300],\n secondarySubtle: 'rgba(139,92,246,0.15)',\n success: palette.emerald[400],\n successSubtle: 'rgba(16,185,129,0.15)',\n successText: palette.emerald[300],\n warning: palette.amber[400],\n warningSubtle: 'rgba(245,158,11,0.15)',\n warningText: palette.amber[300],\n error: palette.rose[400],\n errorHover: palette.rose[300],\n errorSubtle: 'rgba(244,63,94,0.15)',\n errorText: palette.rose[300],\n info: palette.cyan[400],\n infoSubtle: 'rgba(6,182,212,0.15)',\n infoText: palette.cyan[300],\n background: '#0c0c14',\n backgroundDeep: '#08080f',\n surface: '#13131f',\n surfaceRaised: '#1a1a2e',\n surfaceOverlay: 'rgba(13,13,25,0.95)',\n text: palette.neutral[50],\n textSecondary: palette.neutral[300],\n textMuted: palette.neutral[500],\n textDisabled: palette.neutral[700],\n textInverted: palette.neutral[900],\n border: palette.neutral[800],\n borderSubtle: palette.neutral[900],\n borderStrong: palette.neutral[700],\n neutral: palette.neutral[400],\n neutralSubtle: 'rgba(255,255,255,0.06)',\n};\n","import {\n createContext,\n useContext,\n useMemo,\n useState,\n useCallback,\n type ReactNode,\n} from 'react';\nimport { useColorScheme as useRNColorScheme } from 'react-native';\nimport { deepMerge, type DeepPartial } from 'reactnatively-utils';\nimport { baseTheme, type BaseTheme } from './themes/base';\nimport { darkColors } from './themes/dark';\n\nexport type ColorSchemePreference = 'light' | 'dark' | 'system';\nexport type ResolvedColorScheme = 'light' | 'dark';\n\nexport interface ThemeContextValue<T extends BaseTheme = BaseTheme> {\n theme: T;\n colorScheme: ResolvedColorScheme;\n colorSchemePreference: ColorSchemePreference;\n setColorScheme: (scheme: ColorSchemePreference) => void;\n isDark: boolean;\n isLight: boolean;\n}\n\nconst ThemeContext = createContext<ThemeContextValue<BaseTheme> | null>(null);\n\nexport interface ThemeProviderProps<T extends BaseTheme = BaseTheme> {\n theme?: DeepPartial<T>;\n colorScheme?: ColorSchemePreference;\n children: ReactNode;\n}\n\nexport function ThemeProvider<T extends BaseTheme = BaseTheme>({\n theme: themeOverrides,\n colorScheme: initialPreference = 'system',\n children,\n}: ThemeProviderProps<T>) {\n const systemColorScheme: ResolvedColorScheme =\n useRNColorScheme() === 'dark' ? 'dark' : 'light';\n\n const [preference, setPreference] = useState<ColorSchemePreference>(initialPreference);\n\n const resolvedScheme: ResolvedColorScheme =\n preference === 'system' ? systemColorScheme : preference;\n\n const setColorScheme = useCallback((scheme: ColorSchemePreference) => {\n setPreference(scheme);\n }, []);\n\n const resolvedTheme = useMemo((): T => {\n let result: BaseTheme = { ...baseTheme };\n\n // Apply dark color palette first\n if (resolvedScheme === 'dark') {\n result = { ...result, colors: darkColors };\n }\n\n // Apply user custom overrides on top\n if (themeOverrides) {\n result = deepMerge(\n result as unknown as Record<string, unknown>,\n themeOverrides as unknown as Record<string, unknown>,\n ) as unknown as BaseTheme;\n }\n\n return result as unknown as T;\n }, [themeOverrides, resolvedScheme]);\n\n const value = useMemo(\n (): ThemeContextValue<T> => ({\n theme: resolvedTheme,\n colorScheme: resolvedScheme,\n colorSchemePreference: preference,\n setColorScheme,\n isDark: resolvedScheme === 'dark',\n isLight: resolvedScheme === 'light',\n }),\n [resolvedTheme, resolvedScheme, preference, setColorScheme],\n );\n\n return (\n <ThemeContext.Provider value={value as unknown as ThemeContextValue<BaseTheme>}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme<T extends BaseTheme = BaseTheme>(): ThemeContextValue<T> {\n const ctx = useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\n '[Reactnatively] useTheme must be called within a <ThemeProvider>. ' +\n 'Wrap your app root with <ThemeProvider>.',\n );\n }\n return ctx as unknown as ThemeContextValue<T>;\n}\n\nexport function useColorScheme(): ResolvedColorScheme {\n return useTheme().colorScheme;\n}\n\nexport function useIsDark(): boolean {\n return useTheme().isDark;\n}\n\nexport function useToken<K extends keyof BaseTheme>(key: K): BaseTheme[K] {\n const { theme } = useTheme();\n return theme[key] as BaseTheme[K];\n}\n","import { deepMerge, type DeepPartial } from 'reactnatively-utils';\nimport { baseTheme, type BaseTheme } from './themes/base';\n\n// createTheme: user-facing factory with full IntelliSense on the override shape.\n// The return type is the merged theme — consumers get autocomplete on every token.\nexport function createTheme<T extends DeepPartial<BaseTheme>>(overrides: T): BaseTheme & T {\n return deepMerge(\n baseTheme as unknown as Record<string, unknown>,\n overrides as unknown as Record<string, unknown>,\n ) as unknown as BaseTheme & T;\n}\n\n// Type helper: infer the exact theme type created by createTheme\nexport type InferTheme<TFactory extends (...args: any[]) => any> = ReturnType<TFactory>;\n\n// Re-export base theme for consumers who want to extend it without overriding\nexport { baseTheme };\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "reactnatively-theme",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Liquid Glass token engine and theme system for Reactnatively",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"reactnatively-utils": "0.1.0"
|
|
21
|
+
},
|
|
22
|
+
"peerDependencies": {
|
|
23
|
+
"react": ">=18.0.0",
|
|
24
|
+
"react-native": ">=0.73.0"
|
|
25
|
+
},
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"tsup": "^8.2.4",
|
|
28
|
+
"typescript": "^5.5.3",
|
|
29
|
+
"@reactnatively/tsconfig": "0.0.0"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"react-native",
|
|
33
|
+
"expo",
|
|
34
|
+
"theme",
|
|
35
|
+
"tokens",
|
|
36
|
+
"design-system",
|
|
37
|
+
"glass",
|
|
38
|
+
"liquid-glass",
|
|
39
|
+
"dark-mode",
|
|
40
|
+
"typescript"
|
|
41
|
+
],
|
|
42
|
+
"repository": {
|
|
43
|
+
"type": "git",
|
|
44
|
+
"url": "https://github.com/hakizimana-fred/reactnatively.git",
|
|
45
|
+
"directory": "packages/theme"
|
|
46
|
+
},
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"publishConfig": {
|
|
49
|
+
"access": "public"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"build": "tsup",
|
|
53
|
+
"dev": "tsup --watch",
|
|
54
|
+
"typecheck": "tsc --noEmit",
|
|
55
|
+
"clean": "rm -rf dist"
|
|
56
|
+
}
|
|
57
|
+
}
|