@nerds-with-charisma/revit-ui 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +119 -1
- package/dist/index.d.ts +36 -1
- package/dist/index.js +294 -174
- package/dist/index.js.map +1 -1
- package/dist/native/index.cjs +898 -0
- package/dist/native/index.cjs.map +1 -0
- package/dist/native/index.d.cts +119 -0
- package/dist/native/index.d.ts +119 -0
- package/dist/native/index.js +861 -0
- package/dist/native/index.js.map +1 -0
- package/dist/native/theme/index.cjs +480 -0
- package/dist/native/theme/index.cjs.map +1 -0
- package/dist/native/theme/index.d.cts +122 -0
- package/dist/native/theme/index.d.ts +122 -0
- package/dist/native/theme/index.js +440 -0
- package/dist/native/theme/index.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +41 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/native/index.ts","../../src/native/components/Alert.tsx","../../src/native/lib/mergeStyles.ts","../../src/native/theme/tokensToStyles.ts","../../src/native/lib/remToPx.ts","../../src/native/theme/useRevitTheme.tsx","../../src/theme/tokens.revit.ts","../../src/native/components/Button.tsx","../../src/native/components/Card.tsx","../../src/native/components/Heading.tsx","../../src/native/components/Input.tsx","../../src/native/components/Label.tsx","../../src/native/components/Tabs.tsx","../../src/native/components/Text.tsx"],"sourcesContent":["export { Alert, AlertDescription, AlertTitle } from './components/Alert'\nexport type { AlertProps, AlertVariant } from './components/Alert'\n\nexport { Button } from './components/Button'\nexport type { ButtonProps, ButtonSize, ButtonVariant } from './components/Button'\n\nexport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from './components/Card'\nexport type { CardProps, CardSize, CardVariant } from './components/Card'\n\nexport { Heading } from './components/Heading'\nexport type { HeadingProps, HeadingTag, HeadingVariant } from './components/Heading'\n\nexport { Input } from './components/Input'\nexport type { InputProps, InputSize, InputVariant } from './components/Input'\n\nexport { Label } from './components/Label'\nexport type { LabelProps, LabelVariant } from './components/Label'\n\nexport { Tabs, TabsList, TabsTrigger } from './components/Tabs'\nexport type { TabsListProps, TabsProps, TabsTriggerProps } from './components/Tabs'\n\nexport { Text } from './components/Text'\nexport type { TextProps, TextVariant } from './components/Text'\n\nexport {\n RevitThemeProvider,\n getAlertStyles,\n getButtonStyles,\n getCardPadding,\n getCardStyles,\n getHeadingStyles,\n getInputStyles,\n getLabelStyles,\n getTabsListStyles,\n getTabsTriggerStyles,\n getTextStyles,\n getThemeColors,\n tokensToStyleSheet,\n useRevitTheme,\n} from './theme'\n\nexport type {\n RevitNativeColorScheme,\n RevitNativeThemeStyles,\n RevitThemeContextValue,\n} from './theme'\n","import type { ReactNode } from 'react'\nimport {\n Text,\n View,\n type StyleProp,\n type TextProps,\n type TextStyle,\n type ViewProps,\n type ViewStyle,\n} from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getAlertStyles, type AlertVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype AlertProps = ViewProps & {\n variant?: AlertVariant\n icon?: ReactNode\n style?: StyleProp<ViewStyle>\n testID?: string\n}\n\nexport const Alert = ({\n variant = 'default',\n icon,\n style,\n testID = 'Alert',\n children,\n ...props\n}: AlertProps) => {\n const { tokens, colors } = useRevitTheme()\n const alertColor =\n variant === 'destructive'\n ? colors.destructive\n : variant === 'warning'\n ? colors.foreground\n : colors.cardForeground\n\n return (\n <View\n testID={testID}\n accessibilityRole=\"alert\"\n style={mergeStyles<ViewStyle>(\n getAlertStyles(colors, tokens, variant),\n icon ? { flexDirection: 'row', alignItems: 'flex-start', gap: 12 } : undefined,\n style,\n )}\n {...props}\n >\n {icon ? <View style={{ marginTop: 2 }}>{icon}</View> : null}\n <View style={{ flex: 1, gap: 4 }}>\n {typeof children === 'string' ? (\n <Text style={{ fontSize: 14, color: alertColor }}>{children}</Text>\n ) : (\n children\n )}\n </View>\n </View>\n )\n}\n\ntype AlertTitleProps = TextProps & {\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const AlertTitle = ({ style, testID = 'AlertTitle', ...props }: AlertTitleProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <Text\n testID={testID}\n accessibilityRole=\"header\"\n style={mergeStyles<TextStyle>(\n {\n marginBottom: 4,\n fontSize: 14,\n fontWeight: '600',\n letterSpacing: -0.15,\n color: colors.foreground,\n },\n style,\n )}\n {...props}\n />\n )\n}\n\ntype AlertDescriptionProps = TextProps & {\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const AlertDescription = ({\n style,\n testID = 'AlertDescription',\n ...props\n}: AlertDescriptionProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <Text\n testID={testID}\n style={mergeStyles<TextStyle>({ fontSize: 14, color: colors.mutedForeground }, style)}\n {...props}\n />\n )\n}\n\nexport type { AlertProps, AlertVariant }\n","import type { StyleProp, TextStyle, ViewStyle } from 'react-native'\n\ntype NativeStyle = ViewStyle | TextStyle\n\nexport const mergeStyles = <T extends NativeStyle>(\n ...styles: (StyleProp<T> | undefined | false)[]\n): StyleProp<T> => styles.filter(Boolean) as StyleProp<T>\n","import { StyleSheet, type TextStyle, type ViewStyle } from 'react-native'\n\nimport type { RevitColorTokens, RevitThemeTokens } from '../../theme/types'\nimport { remToPx } from '../lib/remToPx'\n\nexport type RevitNativeColorScheme = 'light' | 'dark'\n\nexport const getThemeColors = (\n tokens: RevitThemeTokens,\n scheme: RevitNativeColorScheme = 'light',\n): RevitColorTokens => (scheme === 'dark' ? tokens.colorsDark : tokens.colors)\n\nexport type ButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive'\nexport type ButtonSize = 'default' | 'sm' | 'lg' | 'icon'\n\nexport type InputVariant = 'default' | 'pill' | 'filled'\nexport type InputSize = 'default' | 'sm' | 'md'\n\nexport type CardVariant = 'default' | 'elevated' | 'frost' | 'outline'\nexport type CardSize = 'sm' | 'default' | 'lg'\n\nexport type AlertVariant = 'default' | 'warning' | 'destructive'\n\nexport type LabelVariant = 'default' | 'eyebrow'\n\nexport type HeadingVariant = 'page' | 'title' | 'section' | 'eyebrow' | 'subtitle'\n\nexport type TextVariant = 'body' | 'sm' | 'muted' | 'lead' | 'label' | 'destructive'\n\nconst withAlpha = (hex: string, alpha: number): string => {\n const normalized = hex.replace('#', '')\n const value =\n normalized.length === 3\n ? normalized\n .split('')\n .map((char) => char + char)\n .join('')\n : normalized.slice(0, 6)\n const r = parseInt(value.slice(0, 2), 16)\n const g = parseInt(value.slice(2, 4), 16)\n const b = parseInt(value.slice(4, 6), 16)\n return `rgba(${r}, ${g}, ${b}, ${alpha})`\n}\n\nconst buttonSizeStyles = (size: ButtonSize): ViewStyle & TextStyle => {\n switch (size) {\n case 'sm':\n return { paddingHorizontal: 12, paddingVertical: 6, fontSize: 10 }\n case 'lg':\n return { minWidth: 160, paddingHorizontal: 24, paddingVertical: 12, fontSize: 14 }\n case 'icon':\n return { width: 36, height: 36, paddingHorizontal: 0, paddingVertical: 0 }\n default:\n return { paddingHorizontal: 16, paddingVertical: 8, fontSize: 12 }\n }\n}\n\nexport const getButtonStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n variant: ButtonVariant = 'default',\n size: ButtonSize = 'default',\n): { container: ViewStyle; text: TextStyle } => {\n const pillRadius = remToPx(tokens.radius.pill)\n const base: ViewStyle & TextStyle = {\n ...buttonSizeStyles(size),\n alignItems: 'center',\n justifyContent: 'center',\n flexDirection: 'row',\n gap: 8,\n borderRadius: size === 'icon' ? pillRadius : pillRadius,\n borderWidth: 2,\n fontWeight: '600',\n textTransform: variant === 'link' ? 'none' : 'uppercase',\n letterSpacing: variant === 'link' ? 0 : 1.2,\n }\n\n switch (variant) {\n case 'secondary':\n return {\n container: {\n ...base,\n backgroundColor: colors.secondary,\n borderColor: colors.secondary,\n },\n text: { color: colors.secondaryForeground },\n }\n case 'outline':\n return {\n container: {\n ...base,\n backgroundColor: colors.card,\n borderColor: colors.border,\n },\n text: { color: colors.cardForeground },\n }\n case 'ghost':\n return {\n container: {\n ...base,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n borderWidth: 0,\n },\n text: { color: colors.foreground },\n }\n case 'link':\n return {\n container: {\n ...base,\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n borderWidth: 0,\n borderRadius: 0,\n paddingHorizontal: 0,\n paddingVertical: 0,\n },\n text: { color: colors.primary, textDecorationLine: 'underline' },\n }\n case 'destructive':\n return {\n container: {\n ...base,\n backgroundColor: colors.destructive,\n borderColor: colors.destructive,\n },\n text: { color: colors.destructiveForeground },\n }\n }\n\n return {\n container: {\n ...base,\n backgroundColor: colors.primary,\n borderColor: colors.primary,\n shadowColor: '#000000',\n shadowOffset: { width: 0, height: 8 },\n shadowOpacity: 0.07,\n shadowRadius: 12,\n elevation: 4,\n },\n text: { color: colors.primaryForeground },\n }\n}\n\nexport const getInputStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n variant: InputVariant = 'default',\n size: InputSize = 'default',\n): TextStyle => {\n const radius =\n variant === 'pill' ? remToPx(tokens.radius.pill) : remToPx(tokens.radius.md)\n\n const sizeStyles: TextStyle =\n size === 'sm'\n ? { height: 36, paddingHorizontal: 12, paddingVertical: 4, fontSize: 14 }\n : size === 'md'\n ? { height: 44, paddingHorizontal: 16, paddingVertical: 8, fontSize: 16 }\n : { height: 48, paddingHorizontal: 20, paddingVertical: 12, fontSize: 16 }\n\n return {\n ...sizeStyles,\n width: '100%',\n borderWidth: 1,\n borderColor: colors.border,\n backgroundColor: variant === 'filled' ? colors.muted : colors.card,\n color: colors.foreground,\n borderRadius: radius,\n }\n}\n\nexport const getCardStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n variant: CardVariant = 'default',\n): ViewStyle => {\n switch (variant) {\n case 'elevated':\n return {\n backgroundColor: colors.card,\n borderRadius: remToPx(tokens.radius.xl),\n shadowColor: '#000000',\n shadowOffset: { width: 0, height: 24 },\n shadowOpacity: 0.12,\n shadowRadius: 48,\n elevation: 8,\n }\n case 'frost':\n return {\n backgroundColor: withAlpha(colors.card, 0.85),\n borderRadius: remToPx(tokens.radius.lg),\n borderWidth: 1,\n borderColor: withAlpha('#ffffff', 0.55),\n }\n case 'outline':\n return {\n backgroundColor: 'transparent',\n borderRadius: remToPx(tokens.radius.lg),\n borderWidth: 1,\n borderColor: colors.border,\n }\n default:\n return {\n backgroundColor: colors.card,\n borderRadius: remToPx(tokens.radius.lg),\n borderWidth: 1,\n borderColor: colors.border,\n shadowColor: '#000000',\n shadowOffset: { width: 0, height: 18 },\n shadowOpacity: 0.04,\n shadowRadius: 40,\n elevation: 3,\n }\n }\n}\n\nexport const getCardPadding = (size: CardSize = 'default') => {\n switch (size) {\n case 'sm':\n return 16\n case 'lg':\n return 32\n default:\n return 24\n }\n}\n\nexport const getAlertStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n variant: AlertVariant = 'default',\n): ViewStyle => {\n const base: ViewStyle = {\n width: '100%',\n borderRadius: remToPx(tokens.radius.lg),\n borderWidth: 1,\n paddingHorizontal: 16,\n paddingVertical: 12,\n }\n\n switch (variant) {\n case 'warning':\n return {\n ...base,\n borderColor: withAlpha(colors.primary, 0.6),\n backgroundColor: withAlpha(colors.primary, 0.15),\n }\n case 'destructive':\n return {\n ...base,\n borderColor: withAlpha(colors.destructive, 0.4),\n backgroundColor: withAlpha(colors.destructive, 0.1),\n }\n default:\n return {\n ...base,\n borderColor: colors.border,\n backgroundColor: colors.card,\n }\n }\n}\n\nexport const getLabelStyles = (\n colors: RevitColorTokens,\n variant: LabelVariant = 'default',\n): TextStyle => {\n if (variant === 'eyebrow') {\n return {\n fontSize: 12,\n fontWeight: '700',\n textTransform: 'uppercase',\n letterSpacing: 3.5,\n color: colors.brand.gold,\n }\n }\n\n return {\n fontSize: 14,\n fontWeight: '500',\n lineHeight: 14,\n color: colors.foreground,\n }\n}\n\nexport const getHeadingStyles = (\n colors: RevitColorTokens,\n variant: HeadingVariant = 'title',\n): TextStyle => {\n switch (variant) {\n case 'page':\n return { fontSize: 24, fontWeight: '600', letterSpacing: -0.5, color: colors.foreground }\n case 'section':\n return { fontSize: 18, fontWeight: '600', letterSpacing: -0.25, color: colors.foreground }\n case 'eyebrow':\n return {\n fontSize: 12,\n fontWeight: '700',\n textTransform: 'uppercase',\n letterSpacing: 3.5,\n color: colors.brand.gold,\n }\n case 'subtitle':\n return { fontSize: 14, fontWeight: '400', color: colors.mutedForeground }\n default:\n return {\n fontSize: 20,\n fontWeight: '600',\n lineHeight: 20,\n letterSpacing: -0.25,\n color: colors.foreground,\n }\n }\n}\n\nexport const getTextStyles = (\n colors: RevitColorTokens,\n variant: TextVariant = 'body',\n): TextStyle => {\n switch (variant) {\n case 'sm':\n return { fontSize: 14, fontWeight: '400', color: colors.foreground }\n case 'muted':\n return { fontSize: 14, fontWeight: '400', color: colors.mutedForeground }\n case 'lead':\n return { fontSize: 18, fontWeight: '400', color: colors.foreground }\n case 'label':\n return { fontSize: 14, fontWeight: '500', lineHeight: 14, color: colors.foreground }\n case 'destructive':\n return { fontSize: 14, fontWeight: '400', color: colors.destructive }\n default:\n return { fontSize: 16, fontWeight: '400', color: colors.foreground }\n }\n}\n\nexport const getTabsListStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n): ViewStyle => ({\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n borderRadius: remToPx(tokens.radius.pill),\n borderWidth: 1,\n borderColor: colors.border,\n backgroundColor: colors.card,\n padding: 4,\n})\n\nexport const getTabsTriggerStyles = (\n colors: RevitColorTokens,\n tokens: RevitThemeTokens,\n isActive: boolean,\n): { container: ViewStyle; text: TextStyle } => ({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: remToPx(tokens.radius.pill),\n paddingHorizontal: 16,\n paddingVertical: 8,\n backgroundColor: isActive ? colors.primary : 'transparent',\n },\n text: {\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: 1.2,\n color: isActive ? colors.primaryForeground : colors.foreground,\n },\n})\n\nexport type RevitNativeThemeStyles = ReturnType<typeof tokensToStyleSheet>\n\nexport const tokensToStyleSheet = (\n tokens: RevitThemeTokens,\n scheme: RevitNativeColorScheme = 'light',\n) => {\n const colors = getThemeColors(tokens, scheme)\n\n return StyleSheet.create({\n screen: {\n flex: 1,\n backgroundColor: colors.background,\n },\n foregroundText: {\n color: colors.foreground,\n },\n mutedText: {\n color: colors.mutedForeground,\n },\n destructiveText: {\n color: colors.destructive,\n },\n card: getCardStyles(colors, tokens, 'default'),\n cardElevated: getCardStyles(colors, tokens, 'elevated'),\n input: getInputStyles(colors, tokens),\n button: getButtonStyles(colors, tokens).container,\n buttonText: getButtonStyles(colors, tokens).text,\n alert: getAlertStyles(colors, tokens),\n tabsList: getTabsListStyles(colors, tokens),\n })\n}\n","/** Convert rem/px token strings to numeric px for React Native StyleSheet. */\nexport const remToPx = (value: string, base = 16): number => {\n const parsed = parseFloat(value)\n if (Number.isNaN(parsed)) return base\n if (value.endsWith('rem')) return parsed * base\n return parsed\n}\n","import { createContext, useContext, useMemo, type ReactNode } from 'react'\n\nimport { revitTokens } from '../../theme/tokens.revit'\nimport type { RevitColorTokens, RevitThemeTokens } from '../../theme/types'\n\nimport {\n getThemeColors,\n tokensToStyleSheet,\n type RevitNativeColorScheme,\n type RevitNativeThemeStyles,\n} from './tokensToStyles'\n\ntype RevitThemeContextValue = {\n tokens: RevitThemeTokens\n scheme: RevitNativeColorScheme\n colors: RevitColorTokens\n styles: RevitNativeThemeStyles\n}\n\nconst RevitThemeContext = createContext<RevitThemeContextValue | null>(null)\n\ntype RevitThemeProviderProps = {\n children: ReactNode\n tokens?: RevitThemeTokens\n scheme?: RevitNativeColorScheme\n}\n\nexport const RevitThemeProvider = ({\n children,\n tokens = revitTokens,\n scheme = 'light',\n}: RevitThemeProviderProps) => {\n const value = useMemo<RevitThemeContextValue>(\n () => ({\n tokens,\n scheme,\n colors: getThemeColors(tokens, scheme),\n styles: tokensToStyleSheet(tokens, scheme),\n }),\n [tokens, scheme],\n )\n\n return <RevitThemeContext.Provider value={value}>{children}</RevitThemeContext.Provider>\n}\n\nexport const useRevitTheme = (): RevitThemeContextValue => {\n const context = useContext(RevitThemeContext)\n\n if (!context) {\n return {\n tokens: revitTokens,\n scheme: 'light',\n colors: getThemeColors(revitTokens, 'light'),\n styles: tokensToStyleSheet(revitTokens, 'light'),\n }\n }\n\n return context\n}\n\nexport type { RevitNativeColorScheme, RevitThemeContextValue }\n","/**\n * Example token file — Revit yellow brand. Duplicate and swap values to restyle the kit.\n *\n * @example\n * import { revitTokens } from '@nerds-with-charisma/revit-ui/theme/revit'\n * <RevitUIProvider tokens={revitTokens}>…</RevitUIProvider>\n */\n\nimport type { RevitColorTokens, RevitThemeTokens } from './types'\n\nconst brand = {\n yellow: '#FFE500',\n yellowLight: '#FFF06E',\n offBlack: '#2C2C2C',\n pink: '#FF005C',\n purple: '#BA00FF',\n blue: '#00FFFB',\n gold: '#B8A500',\n brown: '#78350F',\n umber: '#58483B',\n mist: '#F2F2F7',\n} as const\n\nconst light: RevitColorTokens = {\n background: '#ffffff',\n foreground: brand.offBlack,\n card: '#ffffff',\n cardForeground: brand.offBlack,\n popover: '#ffffff',\n popoverForeground: brand.offBlack,\n primary: brand.yellow,\n primaryForeground: '#000000',\n secondary: '#000000',\n secondaryForeground: '#ffffff',\n muted: brand.mist,\n mutedForeground: brand.umber,\n accent: brand.yellowLight,\n accentForeground: '#000000',\n destructive: '#FF002B',\n destructiveForeground: '#ffffff',\n border: brand.mist,\n input: brand.mist,\n ring: brand.yellow,\n brand,\n}\n\nconst dark: RevitColorTokens = {\n background: '#0f172a',\n foreground: '#ffffff',\n card: '#0f172a',\n cardForeground: '#ffffff',\n popover: '#0f172a',\n popoverForeground: '#ffffff',\n primary: brand.yellow,\n primaryForeground: '#000000',\n secondary: brand.yellow,\n secondaryForeground: '#000000',\n muted: '#1e293b',\n mutedForeground: '#cbd5e1',\n accent: '#1e293b',\n accentForeground: '#ffffff',\n destructive: '#FF002B',\n destructiveForeground: '#ffffff',\n border: '#334155',\n input: '#334155',\n ring: brand.yellow,\n brand,\n}\n\nexport const revitTokens: RevitThemeTokens = {\n colors: light,\n colorsDark: dark,\n radius: {\n sm: '0.375rem',\n md: '0.5rem',\n lg: '1.25rem',\n xl: '1.5rem',\n pill: '9999px',\n },\n fontFamily: {\n sans: 'Afacad, ui-sans-serif, system-ui, sans-serif',\n },\n}\n","import type { ReactNode } from 'react'\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getButtonStyles, type ButtonSize, type ButtonVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype ButtonProps = Omit<PressableProps, 'style' | 'children'> & {\n variant?: ButtonVariant\n size?: ButtonSize\n loading?: boolean\n children?: ReactNode\n style?: StyleProp<ViewStyle>\n textStyle?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const Button = ({\n variant = 'default',\n size = 'default',\n loading = false,\n disabled,\n children,\n style,\n textStyle,\n testID = 'Button',\n ...props\n}: ButtonProps) => {\n const { tokens, colors } = useRevitTheme()\n const styles = getButtonStyles(colors, tokens, variant, size)\n const isDisabled = disabled || loading\n\n return (\n <Pressable\n testID={testID}\n accessibilityRole=\"button\"\n disabled={isDisabled}\n style={({ pressed }) =>\n mergeStyles<ViewStyle>(\n styles.container,\n isDisabled ? { opacity: 0.5 } : undefined,\n pressed && !isDisabled ? { transform: [{ scale: 1.02 }] } : undefined,\n style,\n )\n }\n {...props}\n >\n {loading ? (\n <ActivityIndicator color={styles.text.color} size=\"small\" />\n ) : typeof children === 'string' ? (\n <Text style={mergeStyles<TextStyle>(styles.text, textStyle)}>{children}</Text>\n ) : (\n children\n )}\n </Pressable>\n )\n}\n\nexport type { ButtonProps, ButtonSize, ButtonVariant }\n","import {\n Text,\n View,\n type StyleProp,\n type TextProps,\n type TextStyle,\n type ViewProps,\n type ViewStyle,\n} from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getCardPadding, getCardStyles, type CardSize, type CardVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype CardProps = ViewProps & {\n variant?: CardVariant\n size?: CardSize\n style?: StyleProp<ViewStyle>\n testID?: string\n}\n\nexport const Card = ({\n variant = 'default',\n size: _size = 'default',\n style,\n testID = 'Card',\n ...props\n}: CardProps) => {\n const { tokens, colors } = useRevitTheme()\n\n return (\n <View\n testID={testID}\n style={mergeStyles<ViewStyle>(getCardStyles(colors, tokens, variant), style)}\n {...props}\n />\n )\n}\n\ntype CardHeaderProps = ViewProps & {\n size?: CardSize\n style?: StyleProp<ViewStyle>\n testID?: string\n}\n\nexport const CardHeader = ({\n size = 'default',\n style,\n testID = 'CardHeader',\n ...props\n}: CardHeaderProps) => {\n const padding = getCardPadding(size)\n\n return (\n <View\n testID={testID}\n style={mergeStyles<ViewStyle>({ flexDirection: 'column', gap: 6, padding }, style)}\n {...props}\n />\n )\n}\n\ntype CardTitleProps = TextProps & {\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const CardTitle = ({ style, testID = 'CardTitle', ...props }: CardTitleProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <Text\n testID={testID}\n accessibilityRole=\"header\"\n style={mergeStyles<TextStyle>(\n {\n fontSize: 20,\n fontWeight: '600',\n lineHeight: 20,\n letterSpacing: -0.25,\n color: colors.foreground,\n },\n style,\n )}\n {...props}\n />\n )\n}\n\ntype CardDescriptionProps = TextProps & {\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const CardDescription = ({\n style,\n testID = 'CardDescription',\n ...props\n}: CardDescriptionProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <Text\n testID={testID}\n style={mergeStyles<TextStyle>({ fontSize: 14, color: colors.mutedForeground }, style)}\n {...props}\n />\n )\n}\n\ntype CardContentProps = ViewProps & {\n size?: CardSize\n style?: StyleProp<ViewStyle>\n testID?: string\n}\n\nexport const CardContent = ({\n size = 'default',\n style,\n testID = 'CardContent',\n ...props\n}: CardContentProps) => {\n const padding = getCardPadding(size)\n\n return (\n <View\n testID={testID}\n style={mergeStyles<ViewStyle>({ paddingHorizontal: padding, paddingBottom: padding }, style)}\n {...props}\n />\n )\n}\n\nexport type { CardProps, CardSize, CardVariant }\n","import { Text, type StyleProp, type TextProps, type TextStyle } from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getHeadingStyles, type HeadingVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p'\n\nconst accessibilityLevels: Record<HeadingTag, 'header' | 'text' | undefined> = {\n h1: 'header',\n h2: 'header',\n h3: 'header',\n h4: 'header',\n h5: 'header',\n h6: 'header',\n p: 'text',\n}\n\nconst defaultTag: Record<HeadingVariant, HeadingTag> = {\n page: 'h1',\n title: 'h2',\n section: 'h3',\n eyebrow: 'h2',\n subtitle: 'p',\n}\n\ntype HeadingProps = TextProps & {\n as?: HeadingTag\n variant?: HeadingVariant\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const Heading = ({\n as,\n variant = 'title',\n style,\n testID = 'Heading',\n ...props\n}: HeadingProps) => {\n const { colors } = useRevitTheme()\n const tag = as ?? defaultTag[variant]\n\n return (\n <Text\n testID={testID}\n accessibilityRole={accessibilityLevels[tag]}\n style={mergeStyles<TextStyle>(getHeadingStyles(colors, variant), style)}\n {...props}\n />\n )\n}\n\nexport type { HeadingProps, HeadingTag, HeadingVariant }\n","import { TextInput, type StyleProp, type TextInputProps, type TextStyle } from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getInputStyles, type InputSize, type InputVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype InputProps = Omit<TextInputProps, 'style'> & {\n variant?: InputVariant\n size?: InputSize\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const Input = ({\n variant = 'default',\n size = 'default',\n editable = true,\n style,\n placeholderTextColor,\n testID = 'Input',\n ...props\n}: InputProps) => {\n const { tokens, colors } = useRevitTheme()\n const inputStyles = getInputStyles(colors, tokens, variant, size)\n\n return (\n <TextInput\n testID={testID}\n editable={editable}\n placeholderTextColor={placeholderTextColor ?? colors.mutedForeground}\n style={mergeStyles<TextStyle>(\n inputStyles,\n !editable ? { opacity: 0.5 } : undefined,\n style,\n )}\n {...props}\n />\n )\n}\n\nexport type { InputProps, InputSize, InputVariant }\n","import { Text, type StyleProp, type TextProps, type TextStyle } from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getLabelStyles, type LabelVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype LabelProps = TextProps & {\n variant?: LabelVariant\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const Label = ({\n variant = 'default',\n style,\n testID = 'Label',\n ...props\n}: LabelProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <Text\n testID={testID}\n accessibilityRole=\"text\"\n style={mergeStyles<TextStyle>(getLabelStyles(colors, variant), style)}\n {...props}\n />\n )\n}\n\nexport type { LabelProps, LabelVariant }\n","import {\n createContext,\n useContext,\n useMemo,\n useState,\n type ReactNode,\n} from 'react'\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewProps,\n type ViewStyle,\n} from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getTabsListStyles, getTabsTriggerStyles } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype TabsContextValue = {\n value: string\n onValueChange: (nextValue: string) => void\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null)\n\nconst useTabsContext = () => {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('Tabs components must be used within Tabs')\n }\n return context\n}\n\ntype TabsProps = {\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n children: ReactNode\n testID?: string\n}\n\nexport const Tabs = ({\n value,\n defaultValue = '',\n onValueChange,\n children,\n testID = 'Tabs',\n}: TabsProps) => {\n const [internalValue, internalValueSetter] = useState(defaultValue)\n const currentValue = value ?? internalValue\n\n const contextValue = useMemo<TabsContextValue>(\n () => ({\n value: currentValue,\n onValueChange: (nextValue: string) => {\n if (value === undefined) {\n internalValueSetter(nextValue)\n }\n onValueChange?.(nextValue)\n },\n }),\n [currentValue, onValueChange, value],\n )\n\n return (\n <TabsContext.Provider value={contextValue}>\n <View testID={testID}>{children}</View>\n </TabsContext.Provider>\n )\n}\n\ntype TabsListProps = ViewProps & {\n style?: StyleProp<ViewStyle>\n testID?: string\n}\n\nexport const TabsList = ({ style, testID = 'TabsList', ...props }: TabsListProps) => {\n const { tokens, colors } = useRevitTheme()\n\n return (\n <View\n testID={testID}\n style={mergeStyles<ViewStyle>(getTabsListStyles(colors, tokens), style)}\n {...props}\n />\n )\n}\n\ntype TabsTriggerProps = Omit<PressableProps, 'style' | 'children'> & {\n value: string\n children?: ReactNode\n style?: StyleProp<ViewStyle>\n textStyle?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const TabsTrigger = ({\n value,\n disabled,\n children,\n style,\n textStyle,\n testID = 'TabsTrigger',\n ...props\n}: TabsTriggerProps) => {\n const { tokens, colors } = useRevitTheme()\n const { value: activeValue, onValueChange } = useTabsContext()\n const isActive = activeValue === value\n const styles = getTabsTriggerStyles(colors, tokens, isActive)\n\n return (\n <Pressable\n testID={testID}\n accessibilityRole=\"tab\"\n accessibilityState={{ selected: isActive, disabled: Boolean(disabled) }}\n disabled={disabled}\n onPress={() => onValueChange(value)}\n style={({ pressed }) =>\n mergeStyles<ViewStyle>(\n styles.container,\n pressed && !disabled ? { opacity: 0.9 } : undefined,\n disabled ? { opacity: 0.5 } : undefined,\n style,\n )\n }\n {...props}\n >\n {typeof children === 'string' ? (\n <Text style={mergeStyles<TextStyle>(styles.text, textStyle)}>{children}</Text>\n ) : (\n children\n )}\n </Pressable>\n )\n}\n\nexport type { TabsListProps, TabsProps, TabsTriggerProps }\n","import { Text as RNText, type StyleProp, type TextProps, type TextStyle } from 'react-native'\n\nimport { mergeStyles } from '../lib/mergeStyles'\nimport { getTextStyles, type TextVariant } from '../theme/tokensToStyles'\nimport { useRevitTheme } from '../theme/useRevitTheme'\n\ntype TextComponentProps = TextProps & {\n variant?: TextVariant\n style?: StyleProp<TextStyle>\n testID?: string\n}\n\nexport const Text = ({\n variant = 'body',\n style,\n testID = 'Text',\n ...props\n}: TextComponentProps) => {\n const { colors } = useRevitTheme()\n\n return (\n <RNText\n testID={testID}\n style={mergeStyles<TextStyle>(getTextStyles(colors, variant), style)}\n {...props}\n />\n )\n}\n\nexport type { TextComponentProps as TextProps, TextVariant }\n"],"mappings":"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","names":["Text","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","import_react","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","Text","RNText"]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { ViewProps, StyleProp, ViewStyle, TextProps, TextStyle, PressableProps, TextInputProps } from 'react-native';
|
|
4
|
+
import { AlertVariant, ButtonVariant, ButtonSize, CardVariant, CardSize, HeadingVariant, InputVariant, InputSize, LabelVariant, TextVariant } from './theme/index.cjs';
|
|
5
|
+
export { RevitNativeColorScheme, RevitNativeThemeStyles, RevitThemeContextValue, RevitThemeProvider, getAlertStyles, getButtonStyles, getCardPadding, getCardStyles, getHeadingStyles, getInputStyles, getLabelStyles, getTabsListStyles, getTabsTriggerStyles, getTextStyles, getThemeColors, tokensToStyleSheet, useRevitTheme } from './theme/index.cjs';
|
|
6
|
+
|
|
7
|
+
type AlertProps = ViewProps & {
|
|
8
|
+
variant?: AlertVariant;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
style?: StyleProp<ViewStyle>;
|
|
11
|
+
testID?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const Alert: ({ variant, icon, style, testID, children, ...props }: AlertProps) => react.JSX.Element;
|
|
14
|
+
type AlertTitleProps = TextProps & {
|
|
15
|
+
style?: StyleProp<TextStyle>;
|
|
16
|
+
testID?: string;
|
|
17
|
+
};
|
|
18
|
+
declare const AlertTitle: ({ style, testID, ...props }: AlertTitleProps) => react.JSX.Element;
|
|
19
|
+
type AlertDescriptionProps = TextProps & {
|
|
20
|
+
style?: StyleProp<TextStyle>;
|
|
21
|
+
testID?: string;
|
|
22
|
+
};
|
|
23
|
+
declare const AlertDescription: ({ style, testID, ...props }: AlertDescriptionProps) => react.JSX.Element;
|
|
24
|
+
|
|
25
|
+
type ButtonProps = Omit<PressableProps, 'style' | 'children'> & {
|
|
26
|
+
variant?: ButtonVariant;
|
|
27
|
+
size?: ButtonSize;
|
|
28
|
+
loading?: boolean;
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
style?: StyleProp<ViewStyle>;
|
|
31
|
+
textStyle?: StyleProp<TextStyle>;
|
|
32
|
+
testID?: string;
|
|
33
|
+
};
|
|
34
|
+
declare const Button: ({ variant, size, loading, disabled, children, style, textStyle, testID, ...props }: ButtonProps) => react.JSX.Element;
|
|
35
|
+
|
|
36
|
+
type CardProps = ViewProps & {
|
|
37
|
+
variant?: CardVariant;
|
|
38
|
+
size?: CardSize;
|
|
39
|
+
style?: StyleProp<ViewStyle>;
|
|
40
|
+
testID?: string;
|
|
41
|
+
};
|
|
42
|
+
declare const Card: ({ variant, size: _size, style, testID, ...props }: CardProps) => react.JSX.Element;
|
|
43
|
+
type CardHeaderProps = ViewProps & {
|
|
44
|
+
size?: CardSize;
|
|
45
|
+
style?: StyleProp<ViewStyle>;
|
|
46
|
+
testID?: string;
|
|
47
|
+
};
|
|
48
|
+
declare const CardHeader: ({ size, style, testID, ...props }: CardHeaderProps) => react.JSX.Element;
|
|
49
|
+
type CardTitleProps = TextProps & {
|
|
50
|
+
style?: StyleProp<TextStyle>;
|
|
51
|
+
testID?: string;
|
|
52
|
+
};
|
|
53
|
+
declare const CardTitle: ({ style, testID, ...props }: CardTitleProps) => react.JSX.Element;
|
|
54
|
+
type CardDescriptionProps = TextProps & {
|
|
55
|
+
style?: StyleProp<TextStyle>;
|
|
56
|
+
testID?: string;
|
|
57
|
+
};
|
|
58
|
+
declare const CardDescription: ({ style, testID, ...props }: CardDescriptionProps) => react.JSX.Element;
|
|
59
|
+
type CardContentProps = ViewProps & {
|
|
60
|
+
size?: CardSize;
|
|
61
|
+
style?: StyleProp<ViewStyle>;
|
|
62
|
+
testID?: string;
|
|
63
|
+
};
|
|
64
|
+
declare const CardContent: ({ size, style, testID, ...props }: CardContentProps) => react.JSX.Element;
|
|
65
|
+
|
|
66
|
+
type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';
|
|
67
|
+
type HeadingProps = TextProps & {
|
|
68
|
+
as?: HeadingTag;
|
|
69
|
+
variant?: HeadingVariant;
|
|
70
|
+
style?: StyleProp<TextStyle>;
|
|
71
|
+
testID?: string;
|
|
72
|
+
};
|
|
73
|
+
declare const Heading: ({ as, variant, style, testID, ...props }: HeadingProps) => react.JSX.Element;
|
|
74
|
+
|
|
75
|
+
type InputProps = Omit<TextInputProps, 'style'> & {
|
|
76
|
+
variant?: InputVariant;
|
|
77
|
+
size?: InputSize;
|
|
78
|
+
style?: StyleProp<TextStyle>;
|
|
79
|
+
testID?: string;
|
|
80
|
+
};
|
|
81
|
+
declare const Input: ({ variant, size, editable, style, placeholderTextColor, testID, ...props }: InputProps) => react.JSX.Element;
|
|
82
|
+
|
|
83
|
+
type LabelProps = TextProps & {
|
|
84
|
+
variant?: LabelVariant;
|
|
85
|
+
style?: StyleProp<TextStyle>;
|
|
86
|
+
testID?: string;
|
|
87
|
+
};
|
|
88
|
+
declare const Label: ({ variant, style, testID, ...props }: LabelProps) => react.JSX.Element;
|
|
89
|
+
|
|
90
|
+
type TabsProps = {
|
|
91
|
+
value?: string;
|
|
92
|
+
defaultValue?: string;
|
|
93
|
+
onValueChange?: (value: string) => void;
|
|
94
|
+
children: ReactNode;
|
|
95
|
+
testID?: string;
|
|
96
|
+
};
|
|
97
|
+
declare const Tabs: ({ value, defaultValue, onValueChange, children, testID, }: TabsProps) => react.JSX.Element;
|
|
98
|
+
type TabsListProps = ViewProps & {
|
|
99
|
+
style?: StyleProp<ViewStyle>;
|
|
100
|
+
testID?: string;
|
|
101
|
+
};
|
|
102
|
+
declare const TabsList: ({ style, testID, ...props }: TabsListProps) => react.JSX.Element;
|
|
103
|
+
type TabsTriggerProps = Omit<PressableProps, 'style' | 'children'> & {
|
|
104
|
+
value: string;
|
|
105
|
+
children?: ReactNode;
|
|
106
|
+
style?: StyleProp<ViewStyle>;
|
|
107
|
+
textStyle?: StyleProp<TextStyle>;
|
|
108
|
+
testID?: string;
|
|
109
|
+
};
|
|
110
|
+
declare const TabsTrigger: ({ value, disabled, children, style, textStyle, testID, ...props }: TabsTriggerProps) => react.JSX.Element;
|
|
111
|
+
|
|
112
|
+
type TextComponentProps = TextProps & {
|
|
113
|
+
variant?: TextVariant;
|
|
114
|
+
style?: StyleProp<TextStyle>;
|
|
115
|
+
testID?: string;
|
|
116
|
+
};
|
|
117
|
+
declare const Text: ({ variant, style, testID, ...props }: TextComponentProps) => react.JSX.Element;
|
|
118
|
+
|
|
119
|
+
export { Alert, AlertDescription, type AlertProps, AlertTitle, AlertVariant, Button, type ButtonProps, ButtonSize, ButtonVariant, Card, CardContent, CardDescription, CardHeader, type CardProps, CardSize, CardTitle, CardVariant, Heading, type HeadingProps, type HeadingTag, HeadingVariant, Input, type InputProps, InputSize, InputVariant, Label, type LabelProps, LabelVariant, Tabs, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Text, type TextComponentProps as TextProps, TextVariant };
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { ViewProps, StyleProp, ViewStyle, TextProps, TextStyle, PressableProps, TextInputProps } from 'react-native';
|
|
4
|
+
import { AlertVariant, ButtonVariant, ButtonSize, CardVariant, CardSize, HeadingVariant, InputVariant, InputSize, LabelVariant, TextVariant } from './theme/index.js';
|
|
5
|
+
export { RevitNativeColorScheme, RevitNativeThemeStyles, RevitThemeContextValue, RevitThemeProvider, getAlertStyles, getButtonStyles, getCardPadding, getCardStyles, getHeadingStyles, getInputStyles, getLabelStyles, getTabsListStyles, getTabsTriggerStyles, getTextStyles, getThemeColors, tokensToStyleSheet, useRevitTheme } from './theme/index.js';
|
|
6
|
+
|
|
7
|
+
type AlertProps = ViewProps & {
|
|
8
|
+
variant?: AlertVariant;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
style?: StyleProp<ViewStyle>;
|
|
11
|
+
testID?: string;
|
|
12
|
+
};
|
|
13
|
+
declare const Alert: ({ variant, icon, style, testID, children, ...props }: AlertProps) => react.JSX.Element;
|
|
14
|
+
type AlertTitleProps = TextProps & {
|
|
15
|
+
style?: StyleProp<TextStyle>;
|
|
16
|
+
testID?: string;
|
|
17
|
+
};
|
|
18
|
+
declare const AlertTitle: ({ style, testID, ...props }: AlertTitleProps) => react.JSX.Element;
|
|
19
|
+
type AlertDescriptionProps = TextProps & {
|
|
20
|
+
style?: StyleProp<TextStyle>;
|
|
21
|
+
testID?: string;
|
|
22
|
+
};
|
|
23
|
+
declare const AlertDescription: ({ style, testID, ...props }: AlertDescriptionProps) => react.JSX.Element;
|
|
24
|
+
|
|
25
|
+
type ButtonProps = Omit<PressableProps, 'style' | 'children'> & {
|
|
26
|
+
variant?: ButtonVariant;
|
|
27
|
+
size?: ButtonSize;
|
|
28
|
+
loading?: boolean;
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
style?: StyleProp<ViewStyle>;
|
|
31
|
+
textStyle?: StyleProp<TextStyle>;
|
|
32
|
+
testID?: string;
|
|
33
|
+
};
|
|
34
|
+
declare const Button: ({ variant, size, loading, disabled, children, style, textStyle, testID, ...props }: ButtonProps) => react.JSX.Element;
|
|
35
|
+
|
|
36
|
+
type CardProps = ViewProps & {
|
|
37
|
+
variant?: CardVariant;
|
|
38
|
+
size?: CardSize;
|
|
39
|
+
style?: StyleProp<ViewStyle>;
|
|
40
|
+
testID?: string;
|
|
41
|
+
};
|
|
42
|
+
declare const Card: ({ variant, size: _size, style, testID, ...props }: CardProps) => react.JSX.Element;
|
|
43
|
+
type CardHeaderProps = ViewProps & {
|
|
44
|
+
size?: CardSize;
|
|
45
|
+
style?: StyleProp<ViewStyle>;
|
|
46
|
+
testID?: string;
|
|
47
|
+
};
|
|
48
|
+
declare const CardHeader: ({ size, style, testID, ...props }: CardHeaderProps) => react.JSX.Element;
|
|
49
|
+
type CardTitleProps = TextProps & {
|
|
50
|
+
style?: StyleProp<TextStyle>;
|
|
51
|
+
testID?: string;
|
|
52
|
+
};
|
|
53
|
+
declare const CardTitle: ({ style, testID, ...props }: CardTitleProps) => react.JSX.Element;
|
|
54
|
+
type CardDescriptionProps = TextProps & {
|
|
55
|
+
style?: StyleProp<TextStyle>;
|
|
56
|
+
testID?: string;
|
|
57
|
+
};
|
|
58
|
+
declare const CardDescription: ({ style, testID, ...props }: CardDescriptionProps) => react.JSX.Element;
|
|
59
|
+
type CardContentProps = ViewProps & {
|
|
60
|
+
size?: CardSize;
|
|
61
|
+
style?: StyleProp<ViewStyle>;
|
|
62
|
+
testID?: string;
|
|
63
|
+
};
|
|
64
|
+
declare const CardContent: ({ size, style, testID, ...props }: CardContentProps) => react.JSX.Element;
|
|
65
|
+
|
|
66
|
+
type HeadingTag = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p';
|
|
67
|
+
type HeadingProps = TextProps & {
|
|
68
|
+
as?: HeadingTag;
|
|
69
|
+
variant?: HeadingVariant;
|
|
70
|
+
style?: StyleProp<TextStyle>;
|
|
71
|
+
testID?: string;
|
|
72
|
+
};
|
|
73
|
+
declare const Heading: ({ as, variant, style, testID, ...props }: HeadingProps) => react.JSX.Element;
|
|
74
|
+
|
|
75
|
+
type InputProps = Omit<TextInputProps, 'style'> & {
|
|
76
|
+
variant?: InputVariant;
|
|
77
|
+
size?: InputSize;
|
|
78
|
+
style?: StyleProp<TextStyle>;
|
|
79
|
+
testID?: string;
|
|
80
|
+
};
|
|
81
|
+
declare const Input: ({ variant, size, editable, style, placeholderTextColor, testID, ...props }: InputProps) => react.JSX.Element;
|
|
82
|
+
|
|
83
|
+
type LabelProps = TextProps & {
|
|
84
|
+
variant?: LabelVariant;
|
|
85
|
+
style?: StyleProp<TextStyle>;
|
|
86
|
+
testID?: string;
|
|
87
|
+
};
|
|
88
|
+
declare const Label: ({ variant, style, testID, ...props }: LabelProps) => react.JSX.Element;
|
|
89
|
+
|
|
90
|
+
type TabsProps = {
|
|
91
|
+
value?: string;
|
|
92
|
+
defaultValue?: string;
|
|
93
|
+
onValueChange?: (value: string) => void;
|
|
94
|
+
children: ReactNode;
|
|
95
|
+
testID?: string;
|
|
96
|
+
};
|
|
97
|
+
declare const Tabs: ({ value, defaultValue, onValueChange, children, testID, }: TabsProps) => react.JSX.Element;
|
|
98
|
+
type TabsListProps = ViewProps & {
|
|
99
|
+
style?: StyleProp<ViewStyle>;
|
|
100
|
+
testID?: string;
|
|
101
|
+
};
|
|
102
|
+
declare const TabsList: ({ style, testID, ...props }: TabsListProps) => react.JSX.Element;
|
|
103
|
+
type TabsTriggerProps = Omit<PressableProps, 'style' | 'children'> & {
|
|
104
|
+
value: string;
|
|
105
|
+
children?: ReactNode;
|
|
106
|
+
style?: StyleProp<ViewStyle>;
|
|
107
|
+
textStyle?: StyleProp<TextStyle>;
|
|
108
|
+
testID?: string;
|
|
109
|
+
};
|
|
110
|
+
declare const TabsTrigger: ({ value, disabled, children, style, textStyle, testID, ...props }: TabsTriggerProps) => react.JSX.Element;
|
|
111
|
+
|
|
112
|
+
type TextComponentProps = TextProps & {
|
|
113
|
+
variant?: TextVariant;
|
|
114
|
+
style?: StyleProp<TextStyle>;
|
|
115
|
+
testID?: string;
|
|
116
|
+
};
|
|
117
|
+
declare const Text: ({ variant, style, testID, ...props }: TextComponentProps) => react.JSX.Element;
|
|
118
|
+
|
|
119
|
+
export { Alert, AlertDescription, type AlertProps, AlertTitle, AlertVariant, Button, type ButtonProps, ButtonSize, ButtonVariant, Card, CardContent, CardDescription, CardHeader, type CardProps, CardSize, CardTitle, CardVariant, Heading, type HeadingProps, type HeadingTag, HeadingVariant, Input, type InputProps, InputSize, InputVariant, Label, type LabelProps, LabelVariant, Tabs, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Text, type TextComponentProps as TextProps, TextVariant };
|