@nextsparkjs/ui 0.1.0-beta.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/dist/index.d.ts +195 -0
- package/dist/index.js +754 -0
- package/dist/index.js.map +1 -0
- package/dist/index.native.d.ts +456 -0
- package/dist/index.native.js +2371 -0
- package/dist/index.native.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Button.tsx","../src/utils.ts","../src/components/Input.tsx","../src/components/Textarea.tsx","../src/components/Checkbox.tsx","../src/components/Switch.tsx","../src/components/Label.tsx","../src/components/Badge.tsx","../src/components/Avatar.tsx","../src/components/Card.tsx","../src/components/Separator.tsx","../src/components/Skeleton.tsx","../src/components/Dialog.tsx","../src/components/Progress.tsx","../src/components/Tabs.tsx","../src/components/Accordion.tsx","../src/components/Slider.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref as React.Ref<HTMLButtonElement>}\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n }\n)\n\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Input Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface InputProps extends React.ComponentProps<\"input\"> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","/**\n * Textarea Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface TextareaProps extends React.ComponentProps<\"textarea\"> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","/**\n * Checkbox Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"@radix-ui/react-icons\";\nimport { cn } from \"../utils\";\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\n\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","/**\n * Switch Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../utils\";\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\n\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","/**\n * Label Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils\";\n\nexport interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {}\n\nfunction Label({ className, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","/**\n * Badge Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","/**\n * Avatar Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from \"../utils\";\n\nexport type AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> {}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport interface AvatarImageProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {}\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n AvatarImageProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport interface AvatarFallbackProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n AvatarFallbackProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\n// Convenience function to get initials\nfunction getInitials(name?: string | null): string {\n if (!name) return \"U\";\n const parts = name.trim().split(\" \");\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, getInitials };\n","/**\n * Card Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n )\n);\nCard.displayName = \"Card\";\n\nexport interface PressableCardProps extends React.HTMLAttributes<HTMLDivElement> {\n onClick?: () => void;\n}\n\nconst PressableCard = React.forwardRef<HTMLDivElement, PressableCardProps>(\n ({ className, onClick, ...props }, ref) => (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow cursor-pointer transition-opacity hover:opacity-80 active:opacity-70\",\n className\n )}\n {...props}\n />\n )\n);\nPressableCard.displayName = \"PressableCard\";\n\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardTitle = React.forwardRef<HTMLDivElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport interface CardDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardDescription = React.forwardRef<HTMLDivElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n PressableCard,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","/**\n * Separator Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../utils\";\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {}\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\n\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","/**\n * Skeleton Component - Web version\n * Optimized for INP (Interaction to Next Paint)\n *\n * Performance optimizations:\n * - CSS containment isolates layout/paint calculations\n * - content-visibility:auto skips rendering for off-screen elements\n * - GPU-accelerated opacity animation with will-change hint\n * - Respects prefers-reduced-motion for accessibility\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"rounded-md bg-muted\",\n // Optimized animation - GPU accelerated\n \"animate-skeleton-pulse\",\n // CSS containment for better INP\n \"skeleton-contained\",\n className\n )}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = \"Skeleton\";\n\n/**\n * SkeletonContainer - Wraps multiple skeletons with content-visibility optimization\n * Use this for lists or grids of skeleton items to improve rendering performance\n */\nconst SkeletonContainer = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"skeleton-container\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nSkeletonContainer.displayName = \"SkeletonContainer\";\n\n/**\n * SkeletonText - Optimized skeleton for text content\n * Pre-sized for common text patterns to reduce layout shift\n */\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n lines?: number;\n}\n\nconst SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n ({ className, lines = 1, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n className={cn(\n \"h-4\",\n // Last line is typically shorter\n i === lines - 1 && lines > 1 ? \"w-3/4\" : \"w-full\"\n )}\n />\n ))}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Simple preset components\nconst SkeletonTitle = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-6 w-1/2\", className)} {...props} />;\n }\n);\n\nSkeletonTitle.displayName = \"SkeletonTitle\";\n\nconst SkeletonAvatar = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-10 w-10 rounded-full\", className)} {...props} />;\n }\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3 rounded-xl border border-border bg-card p-4\", className)}\n {...props}\n >\n <Skeleton className=\"h-5 w-2/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n <div className=\"flex gap-2 pt-2\">\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n </div>\n </div>\n );\n }\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\nexport {\n Skeleton,\n SkeletonContainer,\n SkeletonText,\n SkeletonTitle,\n SkeletonAvatar,\n SkeletonCard,\n};\n","\"use client\";\n\n/**\n * Dialog Component - Web version\n * Modal dialog with portal and backdrop\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\n// Dialog Context\ninterface DialogContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nconst DialogContext = React.createContext<DialogContextValue | undefined>(undefined);\n\nfunction useDialogContext() {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\"Dialog components must be used within a Dialog\");\n }\n return context;\n}\n\n// Dialog Root\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction Dialog({\n open = false,\n onOpenChange = () => {},\n children,\n}: DialogProps) {\n return (\n <DialogContext.Provider value={{ open, onOpenChange }}>\n {children}\n </DialogContext.Provider>\n );\n}\n\nDialog.displayName = \"Dialog\";\n\n// Dialog Portal + Backdrop + Content wrapper\nexport interface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, onOpenChange } = useDialogContext();\n\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange(false);\n }\n };\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 bg-black/50 animate-in fade-in-0\"\n onClick={() => onOpenChange(false)}\n />\n {/* Content */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-50 w-full max-w-lg rounded-xl bg-card shadow-lg animate-in fade-in-0 zoom-in-95\",\n \"max-h-[85vh] overflow-auto\",\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n\nDialogContent.displayName = \"DialogContent\";\n\n// Dialog Header\nexport interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"border-b border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n\n// Dialog Title\nexport interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n >\n {children}\n </h2>\n );\n }\n);\n\nDialogTitle.displayName = \"DialogTitle\";\n\n// Dialog Description\nexport interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\"mt-1 text-sm text-muted-foreground\", className)}\n {...props}\n >\n {children}\n </p>\n );\n }\n);\n\nDialogDescription.displayName = \"DialogDescription\";\n\n// Dialog Body/Content area\nexport interface DialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogBody = React.forwardRef<HTMLDivElement, DialogBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"p-4\", className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDialogBody.displayName = \"DialogBody\";\n\n// Dialog Footer\nexport interface DialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogFooter = React.forwardRef<HTMLDivElement, DialogFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex justify-end gap-2 border-t border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n\n// Dialog Close (wrapper for close trigger)\nexport interface DialogCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ children, onClick, ...props }, ref) => {\n const { onOpenChange } = useDialogContext();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={(e) => {\n onClick?.(e);\n onOpenChange(false);\n }}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nDialogClose.displayName = \"DialogClose\";\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogBody,\n DialogFooter,\n DialogClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"../utils\";\n\nexport type ProgressProps = React.ComponentPropsWithoutRef<\n typeof ProgressPrimitive.Root\n>;\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-4 w-full overflow-hidden rounded-full bg-secondary\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../utils\";\n\nexport type TabsProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>;\n\nconst Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow cursor-pointer\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nexport type TabsContentProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../utils\";\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\n\nconst Accordion = AccordionPrimitive.Root;\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n AccordionItemProps\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../utils\"\n\nexport type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border-2 border-primary bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"],"mappings":"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","names":["React","jsx","React","jsx","React","jsx","React","jsx","jsx","cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","jsxs"]}
|
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
|
+
import { PressableProps, ViewStyle, TextStyle, View, TextInputProps, TextInput, ViewProps, TextProps, Text, ImageProps, Image, ModalProps } from 'react-native';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Theme color types for React Native
|
|
7
|
+
* These define the contract for theming native components
|
|
8
|
+
*/
|
|
9
|
+
interface ThemeColors {
|
|
10
|
+
background: string;
|
|
11
|
+
foreground: string;
|
|
12
|
+
card: string;
|
|
13
|
+
cardForeground: string;
|
|
14
|
+
primary: string;
|
|
15
|
+
primaryForeground: string;
|
|
16
|
+
secondary: string;
|
|
17
|
+
secondaryForeground: string;
|
|
18
|
+
muted: string;
|
|
19
|
+
mutedForeground: string;
|
|
20
|
+
accent: string;
|
|
21
|
+
accentForeground: string;
|
|
22
|
+
destructive: string;
|
|
23
|
+
destructiveForeground: string;
|
|
24
|
+
success: string;
|
|
25
|
+
successForeground: string;
|
|
26
|
+
border: string;
|
|
27
|
+
input: string;
|
|
28
|
+
ring: string;
|
|
29
|
+
placeholder: string;
|
|
30
|
+
statusTodo?: string;
|
|
31
|
+
statusInProgress?: string;
|
|
32
|
+
statusReview?: string;
|
|
33
|
+
statusDone?: string;
|
|
34
|
+
statusBlocked?: string;
|
|
35
|
+
statusTodoText?: string;
|
|
36
|
+
statusInProgressText?: string;
|
|
37
|
+
statusReviewText?: string;
|
|
38
|
+
statusDoneText?: string;
|
|
39
|
+
statusBlockedText?: string;
|
|
40
|
+
dotTodo?: string;
|
|
41
|
+
dotInProgress?: string;
|
|
42
|
+
dotReview?: string;
|
|
43
|
+
dotDone?: string;
|
|
44
|
+
dotBlocked?: string;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
interface ThemeContextValue {
|
|
48
|
+
colors: ThemeColors;
|
|
49
|
+
}
|
|
50
|
+
interface ThemeProviderProps {
|
|
51
|
+
colors?: Partial<ThemeColors>;
|
|
52
|
+
children: ReactNode;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* ThemeProvider - Wrap your app to customize component colors
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* import { ThemeProvider } from "@nextsparkjs/ui";
|
|
60
|
+
*
|
|
61
|
+
* const myColors = {
|
|
62
|
+
* primary: "#3B82F6",
|
|
63
|
+
* primaryForeground: "#FFFFFF",
|
|
64
|
+
* };
|
|
65
|
+
*
|
|
66
|
+
* export default function RootLayout() {
|
|
67
|
+
* return (
|
|
68
|
+
* <ThemeProvider colors={myColors}>
|
|
69
|
+
* <Stack />
|
|
70
|
+
* </ThemeProvider>
|
|
71
|
+
* );
|
|
72
|
+
* }
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
declare function ThemeProvider({ colors: customColors, children }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
76
|
+
/**
|
|
77
|
+
* useTheme - Access theme colors in components
|
|
78
|
+
* Falls back to defaultColors if no ThemeProvider is present
|
|
79
|
+
*/
|
|
80
|
+
declare function useTheme(): ThemeContextValue;
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Default colors for React Native components
|
|
84
|
+
* These are used when no ThemeProvider is present or as fallback values
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
declare const defaultColors: ThemeColors;
|
|
88
|
+
|
|
89
|
+
type ButtonVariant = "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | "outline-destructive";
|
|
90
|
+
type ButtonSize = "default" | "sm" | "lg" | "icon";
|
|
91
|
+
interface ButtonProps extends Omit<PressableProps, "children"> {
|
|
92
|
+
variant?: ButtonVariant;
|
|
93
|
+
size?: ButtonSize;
|
|
94
|
+
children?: React.ReactNode;
|
|
95
|
+
style?: ViewStyle;
|
|
96
|
+
textStyle?: TextStyle;
|
|
97
|
+
isLoading?: boolean;
|
|
98
|
+
asChild?: boolean;
|
|
99
|
+
className?: string;
|
|
100
|
+
textClassName?: string;
|
|
101
|
+
}
|
|
102
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<View>>;
|
|
103
|
+
declare const buttonVariants: (options: {
|
|
104
|
+
variant?: ButtonVariant;
|
|
105
|
+
size?: ButtonSize;
|
|
106
|
+
className?: string;
|
|
107
|
+
}) => string;
|
|
108
|
+
|
|
109
|
+
interface InputProps extends Omit<TextInputProps, "style"> {
|
|
110
|
+
label?: string;
|
|
111
|
+
error?: string;
|
|
112
|
+
required?: boolean;
|
|
113
|
+
containerStyle?: ViewStyle;
|
|
114
|
+
inputStyle?: TextStyle;
|
|
115
|
+
className?: string;
|
|
116
|
+
containerClassName?: string;
|
|
117
|
+
}
|
|
118
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<TextInput>>;
|
|
119
|
+
|
|
120
|
+
interface TextareaProps extends Omit<TextInputProps, "style"> {
|
|
121
|
+
label?: string;
|
|
122
|
+
error?: string;
|
|
123
|
+
required?: boolean;
|
|
124
|
+
containerStyle?: ViewStyle;
|
|
125
|
+
inputStyle?: TextStyle;
|
|
126
|
+
className?: string;
|
|
127
|
+
containerClassName?: string;
|
|
128
|
+
}
|
|
129
|
+
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<TextInput>>;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Checkbox Component - React Native version
|
|
133
|
+
* Custom checkbox using Pressable with StyleSheet
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
interface CheckboxProps extends Omit<PressableProps, "onPress"> {
|
|
137
|
+
checked?: boolean;
|
|
138
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
139
|
+
label?: string;
|
|
140
|
+
textStyle?: TextStyle;
|
|
141
|
+
className?: string;
|
|
142
|
+
}
|
|
143
|
+
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<View>>;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Switch Component - React Native version
|
|
147
|
+
* Toggle switch with Reanimated animations
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
interface SwitchProps extends Omit<PressableProps, "onPress"> {
|
|
151
|
+
checked?: boolean;
|
|
152
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
153
|
+
className?: string;
|
|
154
|
+
}
|
|
155
|
+
declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<View>>;
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Select Component - React Native version
|
|
159
|
+
* Dropdown select using Modal + FlatList
|
|
160
|
+
*/
|
|
161
|
+
|
|
162
|
+
interface SelectOption {
|
|
163
|
+
label: string;
|
|
164
|
+
value: string;
|
|
165
|
+
}
|
|
166
|
+
interface SelectProps extends ViewProps {
|
|
167
|
+
options: SelectOption[];
|
|
168
|
+
value?: string;
|
|
169
|
+
onValueChange?: (value: string) => void;
|
|
170
|
+
placeholder?: string;
|
|
171
|
+
label?: string;
|
|
172
|
+
error?: string;
|
|
173
|
+
required?: boolean;
|
|
174
|
+
disabled?: boolean;
|
|
175
|
+
className?: string;
|
|
176
|
+
}
|
|
177
|
+
declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<View>>;
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Label Component - React Native version
|
|
181
|
+
* Form label using Text with StyleSheet
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
interface LabelProps extends TextProps {
|
|
185
|
+
required?: boolean;
|
|
186
|
+
className?: string;
|
|
187
|
+
htmlFor?: string;
|
|
188
|
+
}
|
|
189
|
+
declare const Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<Text>>;
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Badge Component - React Native version
|
|
193
|
+
* Status and label indicators using StyleSheet
|
|
194
|
+
*/
|
|
195
|
+
|
|
196
|
+
type BadgeVariant = "default" | "secondary" | "destructive" | "outline" | "success" | "todo" | "in-progress" | "review" | "done" | "blocked" | "low" | "medium" | "high" | "urgent";
|
|
197
|
+
interface BadgeProps extends ViewProps {
|
|
198
|
+
variant?: BadgeVariant;
|
|
199
|
+
children?: React.ReactNode;
|
|
200
|
+
showDot?: boolean;
|
|
201
|
+
textStyle?: TextStyle;
|
|
202
|
+
className?: string;
|
|
203
|
+
textClassName?: string;
|
|
204
|
+
}
|
|
205
|
+
declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<View>>;
|
|
206
|
+
interface PressableBadgeProps extends Omit<PressableProps, "children"> {
|
|
207
|
+
variant?: BadgeVariant;
|
|
208
|
+
selectedVariant?: BadgeVariant;
|
|
209
|
+
children?: React.ReactNode;
|
|
210
|
+
selected?: boolean;
|
|
211
|
+
textStyle?: TextStyle;
|
|
212
|
+
className?: string;
|
|
213
|
+
textClassName?: string;
|
|
214
|
+
}
|
|
215
|
+
declare const PressableBadge: React.ForwardRefExoticComponent<PressableBadgeProps & React.RefAttributes<View>>;
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Avatar Component - React Native version
|
|
219
|
+
* User avatar with fallback using StyleSheet
|
|
220
|
+
*/
|
|
221
|
+
|
|
222
|
+
type AvatarSize = "sm" | "default" | "lg" | "xl";
|
|
223
|
+
interface AvatarProps extends ViewProps {
|
|
224
|
+
size?: AvatarSize;
|
|
225
|
+
className?: string;
|
|
226
|
+
}
|
|
227
|
+
declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<View>>;
|
|
228
|
+
interface AvatarImageProps extends Omit<ImageProps, "source" | "src"> {
|
|
229
|
+
src?: string | null;
|
|
230
|
+
className?: string;
|
|
231
|
+
}
|
|
232
|
+
declare const AvatarImage: React.ForwardRefExoticComponent<AvatarImageProps & React.RefAttributes<Image>>;
|
|
233
|
+
interface AvatarFallbackProps extends ViewProps {
|
|
234
|
+
size?: AvatarSize;
|
|
235
|
+
className?: string;
|
|
236
|
+
}
|
|
237
|
+
declare const AvatarFallback: React.ForwardRefExoticComponent<AvatarFallbackProps & React.RefAttributes<View>>;
|
|
238
|
+
declare function getInitials(name?: string | null): string;
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Card Component - React Native version
|
|
242
|
+
* Compound component for content containers using StyleSheet
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
interface CardProps extends ViewProps {
|
|
246
|
+
className?: string;
|
|
247
|
+
}
|
|
248
|
+
declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<View>>;
|
|
249
|
+
interface PressableCardProps extends PressableProps {
|
|
250
|
+
children?: React.ReactNode;
|
|
251
|
+
className?: string;
|
|
252
|
+
}
|
|
253
|
+
declare const PressableCard: React.ForwardRefExoticComponent<PressableCardProps & React.RefAttributes<View>>;
|
|
254
|
+
interface CardHeaderProps extends ViewProps {
|
|
255
|
+
className?: string;
|
|
256
|
+
}
|
|
257
|
+
declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<View>>;
|
|
258
|
+
interface CardTitleProps extends ViewProps {
|
|
259
|
+
children?: React.ReactNode;
|
|
260
|
+
textStyle?: TextStyle;
|
|
261
|
+
className?: string;
|
|
262
|
+
}
|
|
263
|
+
declare const CardTitle: React.ForwardRefExoticComponent<CardTitleProps & React.RefAttributes<View>>;
|
|
264
|
+
interface CardDescriptionProps extends ViewProps {
|
|
265
|
+
children?: React.ReactNode;
|
|
266
|
+
textStyle?: TextStyle;
|
|
267
|
+
className?: string;
|
|
268
|
+
}
|
|
269
|
+
declare const CardDescription: React.ForwardRefExoticComponent<CardDescriptionProps & React.RefAttributes<View>>;
|
|
270
|
+
interface CardContentProps extends ViewProps {
|
|
271
|
+
className?: string;
|
|
272
|
+
}
|
|
273
|
+
declare const CardContent: React.ForwardRefExoticComponent<CardContentProps & React.RefAttributes<View>>;
|
|
274
|
+
interface CardFooterProps extends ViewProps {
|
|
275
|
+
className?: string;
|
|
276
|
+
}
|
|
277
|
+
declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<View>>;
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Separator Component - React Native version
|
|
281
|
+
* Divider line using View with StyleSheet
|
|
282
|
+
*/
|
|
283
|
+
|
|
284
|
+
interface SeparatorProps extends ViewProps {
|
|
285
|
+
orientation?: "horizontal" | "vertical";
|
|
286
|
+
className?: string;
|
|
287
|
+
}
|
|
288
|
+
declare const Separator: React.ForwardRefExoticComponent<SeparatorProps & React.RefAttributes<View>>;
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* Skeleton Component - React Native version
|
|
292
|
+
* Loading placeholder with Reanimated pulse animation
|
|
293
|
+
*/
|
|
294
|
+
|
|
295
|
+
interface SkeletonProps extends ViewProps {
|
|
296
|
+
className?: string;
|
|
297
|
+
}
|
|
298
|
+
declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<View>>;
|
|
299
|
+
declare const SkeletonText: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<View>>;
|
|
300
|
+
declare const SkeletonTitle: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<View>>;
|
|
301
|
+
declare const SkeletonAvatar: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<View>>;
|
|
302
|
+
declare const SkeletonCard: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<View>>;
|
|
303
|
+
|
|
304
|
+
interface DialogProps extends Omit<ModalProps, "visible"> {
|
|
305
|
+
open?: boolean;
|
|
306
|
+
onOpenChange?: (open: boolean) => void;
|
|
307
|
+
children?: React.ReactNode;
|
|
308
|
+
}
|
|
309
|
+
declare function Dialog({ open, onOpenChange, children, ...props }: DialogProps): react_jsx_runtime.JSX.Element;
|
|
310
|
+
declare namespace Dialog {
|
|
311
|
+
var displayName: string;
|
|
312
|
+
}
|
|
313
|
+
interface DialogHeaderProps extends ViewProps {
|
|
314
|
+
className?: string;
|
|
315
|
+
}
|
|
316
|
+
declare const DialogHeader: React.ForwardRefExoticComponent<DialogHeaderProps & React.RefAttributes<View>>;
|
|
317
|
+
interface DialogTitleProps extends ViewProps {
|
|
318
|
+
children?: React.ReactNode;
|
|
319
|
+
textStyle?: TextStyle;
|
|
320
|
+
className?: string;
|
|
321
|
+
}
|
|
322
|
+
declare const DialogTitle: React.ForwardRefExoticComponent<DialogTitleProps & React.RefAttributes<View>>;
|
|
323
|
+
interface DialogDescriptionProps extends ViewProps {
|
|
324
|
+
children?: React.ReactNode;
|
|
325
|
+
textStyle?: TextStyle;
|
|
326
|
+
className?: string;
|
|
327
|
+
}
|
|
328
|
+
declare const DialogDescription: React.ForwardRefExoticComponent<DialogDescriptionProps & React.RefAttributes<View>>;
|
|
329
|
+
interface DialogContentProps extends ViewProps {
|
|
330
|
+
className?: string;
|
|
331
|
+
}
|
|
332
|
+
declare const DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<View>>;
|
|
333
|
+
interface DialogFooterProps extends ViewProps {
|
|
334
|
+
className?: string;
|
|
335
|
+
}
|
|
336
|
+
declare const DialogFooter: React.ForwardRefExoticComponent<DialogFooterProps & React.RefAttributes<View>>;
|
|
337
|
+
interface DialogCloseProps {
|
|
338
|
+
children?: React.ReactNode;
|
|
339
|
+
onClose?: () => void;
|
|
340
|
+
className?: string;
|
|
341
|
+
}
|
|
342
|
+
declare const DialogClose: React.ForwardRefExoticComponent<DialogCloseProps & React.RefAttributes<View>>;
|
|
343
|
+
|
|
344
|
+
interface ProgressProps {
|
|
345
|
+
/** Progress value from 0 to 100 */
|
|
346
|
+
value?: number;
|
|
347
|
+
/** Custom styles for the track */
|
|
348
|
+
style?: ViewStyle;
|
|
349
|
+
/** API compatibility - ignored in native */
|
|
350
|
+
className?: string;
|
|
351
|
+
}
|
|
352
|
+
declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<View>>;
|
|
353
|
+
|
|
354
|
+
interface TabsProps {
|
|
355
|
+
value: string;
|
|
356
|
+
onValueChange: (value: string) => void;
|
|
357
|
+
children: React.ReactNode;
|
|
358
|
+
style?: ViewStyle;
|
|
359
|
+
/** API compatibility - ignored in native */
|
|
360
|
+
className?: string;
|
|
361
|
+
/** API compatibility - ignored in native */
|
|
362
|
+
defaultValue?: string;
|
|
363
|
+
}
|
|
364
|
+
declare const Tabs: React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<View>>;
|
|
365
|
+
interface TabsListProps {
|
|
366
|
+
children: React.ReactNode;
|
|
367
|
+
style?: ViewStyle;
|
|
368
|
+
/** API compatibility - ignored in native */
|
|
369
|
+
className?: string;
|
|
370
|
+
}
|
|
371
|
+
declare const TabsList: React.ForwardRefExoticComponent<TabsListProps & React.RefAttributes<View>>;
|
|
372
|
+
interface TabsTriggerProps {
|
|
373
|
+
value: string;
|
|
374
|
+
children: React.ReactNode;
|
|
375
|
+
disabled?: boolean;
|
|
376
|
+
style?: ViewStyle;
|
|
377
|
+
textStyle?: TextStyle;
|
|
378
|
+
/** API compatibility - ignored in native */
|
|
379
|
+
className?: string;
|
|
380
|
+
}
|
|
381
|
+
declare const TabsTrigger: React.ForwardRefExoticComponent<TabsTriggerProps & React.RefAttributes<View>>;
|
|
382
|
+
interface TabsContentProps {
|
|
383
|
+
value: string;
|
|
384
|
+
children: React.ReactNode;
|
|
385
|
+
style?: ViewStyle;
|
|
386
|
+
/** API compatibility - ignored in native */
|
|
387
|
+
className?: string;
|
|
388
|
+
}
|
|
389
|
+
declare const TabsContent: React.ForwardRefExoticComponent<TabsContentProps & React.RefAttributes<View>>;
|
|
390
|
+
|
|
391
|
+
interface AccordionProps {
|
|
392
|
+
type?: "single" | "multiple";
|
|
393
|
+
value?: string | string[];
|
|
394
|
+
defaultValue?: string | string[];
|
|
395
|
+
onValueChange?: (value: string | string[]) => void;
|
|
396
|
+
collapsible?: boolean;
|
|
397
|
+
children: React.ReactNode;
|
|
398
|
+
style?: ViewStyle;
|
|
399
|
+
/** API compatibility - ignored in native */
|
|
400
|
+
className?: string;
|
|
401
|
+
}
|
|
402
|
+
declare const Accordion: React.ForwardRefExoticComponent<AccordionProps & React.RefAttributes<View>>;
|
|
403
|
+
interface AccordionItemProps {
|
|
404
|
+
value: string;
|
|
405
|
+
children: React.ReactNode;
|
|
406
|
+
style?: ViewStyle;
|
|
407
|
+
/** API compatibility - ignored in native */
|
|
408
|
+
className?: string;
|
|
409
|
+
}
|
|
410
|
+
declare const AccordionItem: React.ForwardRefExoticComponent<AccordionItemProps & React.RefAttributes<View>>;
|
|
411
|
+
interface AccordionTriggerProps {
|
|
412
|
+
children: React.ReactNode;
|
|
413
|
+
style?: ViewStyle;
|
|
414
|
+
textStyle?: TextStyle;
|
|
415
|
+
/** API compatibility - ignored in native */
|
|
416
|
+
className?: string;
|
|
417
|
+
}
|
|
418
|
+
declare const AccordionTrigger: React.ForwardRefExoticComponent<AccordionTriggerProps & React.RefAttributes<View>>;
|
|
419
|
+
interface AccordionContentProps {
|
|
420
|
+
children: React.ReactNode;
|
|
421
|
+
style?: ViewStyle;
|
|
422
|
+
/** API compatibility - ignored in native */
|
|
423
|
+
className?: string;
|
|
424
|
+
}
|
|
425
|
+
declare const AccordionContent: React.ForwardRefExoticComponent<AccordionContentProps & React.RefAttributes<View>>;
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Slider Component - React Native version
|
|
429
|
+
* Custom slider using Animated + PanResponder
|
|
430
|
+
*/
|
|
431
|
+
|
|
432
|
+
interface SliderProps {
|
|
433
|
+
/** Current value (0-100 by default, or use min/max) */
|
|
434
|
+
value?: number[];
|
|
435
|
+
/** Default value if uncontrolled */
|
|
436
|
+
defaultValue?: number[];
|
|
437
|
+
/** Callback when value changes */
|
|
438
|
+
onValueChange?: (value: number[]) => void;
|
|
439
|
+
/** Callback when sliding ends */
|
|
440
|
+
onValueCommit?: (value: number[]) => void;
|
|
441
|
+
/** Minimum value */
|
|
442
|
+
min?: number;
|
|
443
|
+
/** Maximum value */
|
|
444
|
+
max?: number;
|
|
445
|
+
/** Step increment */
|
|
446
|
+
step?: number;
|
|
447
|
+
/** Whether the slider is disabled */
|
|
448
|
+
disabled?: boolean;
|
|
449
|
+
/** Custom styles for the container */
|
|
450
|
+
style?: ViewStyle;
|
|
451
|
+
/** API compatibility - ignored in native */
|
|
452
|
+
className?: string;
|
|
453
|
+
}
|
|
454
|
+
declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<View>>;
|
|
455
|
+
|
|
456
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, type CheckboxProps, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, type DialogProps, DialogTitle, type DialogTitleProps, Input, type InputProps, Label, type LabelProps, PressableBadge, type PressableBadgeProps, PressableCard, type PressableCardProps, Progress, type ProgressProps, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, Skeleton, SkeletonAvatar, SkeletonCard, type SkeletonProps, SkeletonText, SkeletonTitle, Slider, type SliderProps, Switch, type SwitchProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, type TextareaProps, type ThemeColors, ThemeProvider, type ThemeProviderProps, buttonVariants, defaultColors, getInitials, useTheme };
|