UNPKG

@ramses-superapp/ramses-ui

Version:

Skinless UI primitives for Ramses Built Apps

133 lines 3.55 kB
import type { ImageSourcePropType, TextStyle, ViewStyle } from 'react-native'; export interface RsSkinlessTextProps { text?: string; children?: React.ReactNode; style?: TextStyle; numberOfLines?: number; selectable?: boolean; } export interface RsSkinlessButtonProps { label?: string; children?: React.ReactNode; onPress?: () => void; onLongPress?: () => void; disabled?: boolean; style?: ViewStyle; labelStyle?: TextStyle; accessibilityLabel?: string; } export interface RsSkinlessTextInputProps { value?: string; onChangeText?: (text: string) => void; placeholder?: string; secureTextEntry?: boolean; multiline?: boolean; maxLength?: number; keyboardType?: 'default' | 'numeric' | 'email-address' | 'phone-pad' | 'number-pad' | 'decimal-pad'; autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters'; style?: ViewStyle; textStyle?: TextStyle; editable?: boolean; onFocus?: () => void; onBlur?: () => void; } export interface RsSkinlessDividerProps { orientation?: 'horizontal' | 'vertical'; style?: ViewStyle; } export interface RsSkinlessRowViewProps { children?: React.ReactNode; style?: ViewStyle; gap?: number; align?: 'start' | 'center' | 'end' | 'stretch'; justify?: 'start' | 'center' | 'end' | 'between' | 'around'; } export interface RsSkinlessToggleButtonProps { value: boolean; onToggle: (next: boolean) => void; disabled?: boolean; style?: ViewStyle; accessibilityLabel?: string; } export interface RsSkinlessImageProps { source: ImageSourcePropType | { uri: string; }; resizeMode?: 'cover' | 'contain' | 'stretch' | 'center'; style?: ViewStyle; alt?: string; onLoad?: () => void; onError?: () => void; } export interface RsSkinlessIconProps { name: string; source?: 'feather' | 'material' | 'ionicons'; size?: number; style?: ViewStyle; } export interface RsSkinlessModalProps { visible: boolean; onClose: () => void; animationType?: 'fade' | 'slide' | 'none'; children: React.ReactNode; style?: ViewStyle; } export interface RsSkinlessBottomSheetProps { visible: boolean; onClose: () => void; snapPoints?: number[]; children: React.ReactNode; style?: ViewStyle; } export interface RsSkinlessTabBarProps { tabs: Array<{ key: string; label: string; icon?: string; }>; activeTab: string; onTabChange: (key: string) => void; style?: ViewStyle; } export interface RsSkinlessToastProps { visible: boolean; message: string; duration?: number; position?: 'top' | 'bottom'; onDismiss?: () => void; style?: ViewStyle; } export interface RsSkinlessProgressBarProps { /** 0–1 */ progress: number; style?: ViewStyle; } export interface RsSkinlessSkeletonProps { width?: number; height?: number; borderRadius?: number; style?: ViewStyle; } export interface RsSkinlessBadgeProps { count?: number; visible?: boolean; children: React.ReactNode; style?: ViewStyle; } export interface RsSkinlessChipProps { label: string; selected?: boolean; onPress?: () => void; disabled?: boolean; style?: ViewStyle; } export interface RsSkinlessSliderProps { value: number; minimumValue?: number; maximumValue?: number; step?: number; onValueChange?: (value: number) => void; disabled?: boolean; style?: ViewStyle; } //# sourceMappingURL=props.d.ts.map