import { StyleSheet } from 'react-native'; import { tv } from 'tailwind-variants'; const portal = tv({ base: 'absolute inset-0', }); /** * Overlay style definition * * @note ANIMATED PROPERTIES (cannot be set via className): * The following property is animated and cannot be overridden using Tailwind classes: * - `opacity` - Animated for overlay show/hide transitions (idle: 0, open: 1, close: 0) * * To customize this property, use the `animation` prop on `Popover.Overlay`: * ```tsx * * ``` * * To completely disable animated styles and apply your own via className or style prop, * set `isAnimatedStyleActive={false}` on `Popover.Overlay`. */ const overlay = tv({ base: 'absolute inset-0', }); /** * Popover content style definition * * @note ANIMATED PROPERTIES (cannot be set via className): * The following properties are animated and cannot be overridden using Tailwind classes: * - `opacity` - Animated for content show/hide transitions (idle: 0, open: 1, close: 0) * - `transform` (specifically `scale`, `translateX`, `translateY`) - Animated for content show/hide transitions (scale: idle: 0.95, open: 1, close: 0.95; translateX/translateY: based on placement) * - `transformOrigin` - Animated for content show/hide transitions (based on placement: 'top', 'bottom', 'left', 'right') * * To customize these properties, use the `animation` prop on `Popover.Content`: * ```tsx * * ``` * * To completely disable animated styles and apply your own via className or style prop, * set `isAnimatedStyleActive={false}` on `Popover.Content`. */ const popoverContent = tv({ base: 'absolute bg-overlay rounded-3xl border border-border p-3 px-4 shadow-lg shadow-black/5 dark:shadow-none', }); const close = tv({ base: '', }); const label = tv({ base: 'text-lg font-medium text-foreground', }); const description = tv({ base: 'text-base/snug text-muted', }); const arrow = tv({ base: 'absolute z-50', }); const popoverStyles = { portal, overlay, popoverContent, close, label, description, arrow, }; export const styleSheet = StyleSheet.create({ contentContainer: { borderCurve: 'continuous', }, }); export default popoverStyles;