@arolariu/components 0.1.0 → 0.1.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 CHANGED
@@ -9,7 +9,7 @@ export { Button, buttonVariants } from "./components/ui/button";
9
9
  export { Calendar } from "./components/ui/calendar";
10
10
  export { Card, CardAction, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, } from "./components/ui/card";
11
11
  export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, } from "./components/ui/carousel";
12
- export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, } from "./components/ui/chart";
12
+ export { type ChartConfig, type ChartLegendContentProps, type CustomTooltipProps, ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle, } from "./components/ui/chart";
13
13
  export { Checkbox } from "./components/ui/checkbox";
14
14
  export { Collapsible, CollapsibleTrigger, CollapsibleContent, } from "./components/ui/collapsible";
15
15
  export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, } from "./components/ui/command";
@@ -58,5 +58,6 @@ export { HoleBackground, type HoleBackgroundProps, } from "./components/ui/hole-
58
58
  export { Scratcher } from "./components/ui/scratcher";
59
59
  export { DotBackground } from "./components/ui/dot-background";
60
60
  export { BackgroundBeams } from "./components/ui/background-beams";
61
+ export { TypewriterText, TypewriterTextSmooth, } from "./components/ui/typewriter";
61
62
  export { DropDrawer, DropDrawerContent, DropDrawerFooter, DropDrawerGroup, DropDrawerItem, DropDrawerLabel, DropDrawerSeparator, DropDrawerSub, DropDrawerSubContent, DropDrawerSubTrigger, DropDrawerTrigger, } from "./components/ui/dropdrawer";
62
63
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -58,5 +58,6 @@ import { HoleBackground } from "./components/ui/hole-background.js";
58
58
  import { Scratcher } from "./components/ui/scratcher.js";
59
59
  import { DotBackground } from "./components/ui/dot-background.js";
60
60
  import { BackgroundBeams } from "./components/ui/background-beams.js";
61
+ import { TypewriterText, TypewriterTextSmooth } from "./components/ui/typewriter.js";
61
62
  import { DropDrawer, DropDrawerContent, DropDrawerFooter, DropDrawerGroup, DropDrawerItem, DropDrawerLabel, DropDrawerSeparator, DropDrawerSub, DropDrawerSubContent, DropDrawerSubTrigger, DropDrawerTrigger } from "./components/ui/dropdrawer.js";
62
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BackgroundBeams, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BubbleBackground, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountingNumber, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DotBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropDrawer, DropDrawerContent, DropDrawerFooter, DropDrawerGroup, DropDrawerItem, DropDrawerLabel, DropDrawerSeparator, DropDrawerSub, DropDrawerSubContent, DropDrawerSubTrigger, DropDrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FireworksBackground, FlipButton, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GradientBackground, GradientText, HighlightText, HoleBackground, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RippleButton, Scratcher, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toast, toggleVariants, useFormField, useIsMobile, useSidebar };
63
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BackgroundBeams, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, BubbleBackground, Button, Calendar, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountingNumber, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DotBackground, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropDrawer, DropDrawerContent, DropDrawerFooter, DropDrawerGroup, DropDrawerItem, DropDrawerLabel, DropDrawerSeparator, DropDrawerSub, DropDrawerSubContent, DropDrawerSubTrigger, DropDrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FireworksBackground, FlipButton, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, GradientBackground, GradientText, HighlightText, HoleBackground, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RippleButton, Scratcher, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TypewriterText, TypewriterTextSmooth, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toast, toggleVariants, useFormField, useIsMobile, useSidebar };
@@ -1 +1 @@
1
- {"version":3,"file":"lib\\utils.js","sources":["webpack://@arolariu/components/./src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\n/**\r\n * Helper function that merges tailwindcss\r\n * class names in the given input array.\r\n */\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAOO,SAASA,GAAG,GAAGC,MAAoB;IACxC,OAAOC,QAAQC,KAAKF;AACtB"}
1
+ {"version":3,"file":"lib\\utils.js","sources":["webpack://@arolariu/components/./src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Helper function that merges tailwindcss\n * class names in the given input array.\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"names":["cn","inputs","twMerge","clsx"],"mappings":";;AAOO,SAASA,GAAG,GAAGC,MAAoB;IACxC,OAAOC,QAAQC,KAAKF;AACtB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arolariu/components",
3
3
  "displayName": "@arolariu/components",
4
- "version": "0.1.0",
4
+ "version": "0.1.1",
5
5
  "description": "🎨 60+ beautiful, accessible React components built on Radix UI. TypeScript-first, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡",
6
6
  "homepage": "https://arolariu.ro",
7
7
  "repository": {
@@ -94,50 +94,50 @@
94
94
  },
95
95
  "dependencies": {
96
96
  "@hookform/resolvers": "5.2.1",
97
- "@radix-ui/react-accordion": "1.2.11",
98
- "@radix-ui/react-alert-dialog": "1.1.14",
97
+ "@radix-ui/react-accordion": "1.2.12",
98
+ "@radix-ui/react-alert-dialog": "1.1.15",
99
99
  "@radix-ui/react-aspect-ratio": "1.1.7",
100
100
  "@radix-ui/react-avatar": "1.1.10",
101
- "@radix-ui/react-checkbox": "1.3.2",
102
- "@radix-ui/react-collapsible": "1.1.11",
103
- "@radix-ui/react-context-menu": "2.2.15",
104
- "@radix-ui/react-dialog": "1.1.14",
105
- "@radix-ui/react-dropdown-menu": "2.1.15",
106
- "@radix-ui/react-hover-card": "1.1.14",
101
+ "@radix-ui/react-checkbox": "1.3.3",
102
+ "@radix-ui/react-collapsible": "1.1.12",
103
+ "@radix-ui/react-context-menu": "2.2.16",
104
+ "@radix-ui/react-dialog": "1.1.15",
105
+ "@radix-ui/react-dropdown-menu": "2.1.16",
106
+ "@radix-ui/react-hover-card": "1.1.15",
107
107
  "@radix-ui/react-label": "2.1.7",
108
- "@radix-ui/react-menubar": "1.1.15",
109
- "@radix-ui/react-navigation-menu": "1.2.13",
110
- "@radix-ui/react-popover": "1.1.14",
108
+ "@radix-ui/react-menubar": "1.1.16",
109
+ "@radix-ui/react-navigation-menu": "1.2.14",
110
+ "@radix-ui/react-popover": "1.1.15",
111
111
  "@radix-ui/react-progress": "1.1.7",
112
- "@radix-ui/react-radio-group": "1.3.7",
113
- "@radix-ui/react-scroll-area": "1.2.9",
114
- "@radix-ui/react-select": "2.2.5",
112
+ "@radix-ui/react-radio-group": "1.3.8",
113
+ "@radix-ui/react-scroll-area": "1.2.10",
114
+ "@radix-ui/react-select": "2.2.6",
115
115
  "@radix-ui/react-separator": "1.1.7",
116
- "@radix-ui/react-slider": "1.3.5",
116
+ "@radix-ui/react-slider": "1.3.6",
117
117
  "@radix-ui/react-slot": "1.2.3",
118
- "@radix-ui/react-switch": "1.2.5",
119
- "@radix-ui/react-tabs": "1.1.12",
120
- "@radix-ui/react-toggle": "1.1.9",
121
- "@radix-ui/react-toggle-group": "1.1.10",
122
- "@radix-ui/react-tooltip": "1.2.7",
118
+ "@radix-ui/react-switch": "1.2.6",
119
+ "@radix-ui/react-tabs": "1.1.13",
120
+ "@radix-ui/react-toggle": "1.1.10",
121
+ "@radix-ui/react-toggle-group": "1.1.11",
122
+ "@radix-ui/react-tooltip": "1.2.8",
123
123
  "class-variance-authority": "0.7.1",
124
124
  "clsx": "2.1.1",
125
125
  "cmdk": "1.1.1",
126
126
  "embla-carousel-react": "8.6.0",
127
127
  "input-otp": "1.4.2",
128
- "lucide-react": "0.539.0",
128
+ "lucide-react": "0.541.0",
129
129
  "motion": "12.23.12",
130
130
  "next-themes": "0.4.6",
131
- "react-day-picker": "9.8.1",
131
+ "react-day-picker": "9.9.0",
132
132
  "react-hook-form": "7.62.0",
133
- "react-resizable-panels": "3.0.4",
134
- "recharts": "2.15.4",
135
- "shiki": "3.9.2",
133
+ "react-resizable-panels": "3.0.5",
134
+ "recharts": "3.1.2",
135
+ "shiki": "3.11.0",
136
136
  "sonner": "2.0.7",
137
137
  "tailwind-merge": "3.3.1",
138
138
  "tailwindcss-animate": "1.0.7",
139
139
  "vaul": "1.1.2",
140
- "zod": "4.0.17"
140
+ "zod": "4.1.1"
141
141
  },
142
142
  "peerDependencies": {
143
143
  "motion": "^12",
@@ -146,10 +146,10 @@
146
146
  "tailwindcss": "^4"
147
147
  },
148
148
  "devDependencies": {
149
- "@microsoft/api-extractor": "7.52.10",
150
- "@rsbuild/core": "1.4.15",
149
+ "@microsoft/api-extractor": "7.52.11",
150
+ "@rsbuild/core": "1.4.16",
151
151
  "@rsbuild/plugin-react": "1.3.5",
152
- "@rslib/core": "0.11.2",
152
+ "@rslib/core": "0.12.2",
153
153
  "@storybook/addon-a11y": "8.6.14",
154
154
  "@storybook/addon-docs": "8.6.14",
155
155
  "@storybook/addon-essentials": "8.6.14",
@@ -157,12 +157,12 @@
157
157
  "@storybook/addon-links": "8.6.14",
158
158
  "@storybook/addon-storysource": "8.6.14",
159
159
  "@storybook/addon-themes": "8.6.14",
160
- "@tailwindcss/postcss": "4.1.11",
161
- "@types/node": "24.2.1",
162
- "@types/react": "19.1.10",
160
+ "@tailwindcss/postcss": "4.1.12",
161
+ "@types/node": "24.3.0",
162
+ "@types/react": "19.1.11",
163
163
  "@types/react-dom": "19.1.7",
164
- "cssnano": "7.1.0",
165
- "playwright": "1.54.1",
164
+ "cssnano": "7.1.1",
165
+ "playwright": "1.55.0",
166
166
  "postcss": "8.5.6",
167
167
  "react": "19.1.1",
168
168
  "react-dom": "19.1.1",
@@ -171,7 +171,7 @@
171
171
  "storybook-addon-rslib": "1.0.1",
172
172
  "storybook-builder-rsbuild": "1.0.1",
173
173
  "storybook-react-rsbuild": "1.0.1",
174
- "tailwindcss": "4.1.11",
174
+ "tailwindcss": "4.1.12",
175
175
  "tsx": "4.20.4",
176
176
  "typescript": "5.9.2"
177
177
  },
@@ -484,6 +484,11 @@
484
484
  "import": "./dist/components/ui/tooltip.js",
485
485
  "default": "./dist/components/ui/tooltip.js"
486
486
  },
487
+ "./typewriter": {
488
+ "types": "./dist/components/ui/typewriter.d.ts",
489
+ "import": "./dist/components/ui/typewriter.js",
490
+ "default": "./dist/components/ui/typewriter.js"
491
+ },
487
492
  "./use-mobile": {
488
493
  "types": "./dist/components/ui/use-mobile.d.ts",
489
494
  "import": "./dist/components/ui/use-mobile.js",
@@ -495,4 +500,4 @@
495
500
  "default": "./dist/components/ui/utils.js"
496
501
  }
497
502
  }
498
- }
503
+ }
@@ -1,189 +1,189 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import {
5
- motion,
6
- type SpringOptions,
7
- Transition,
8
- useMotionValue,
9
- useSpring,
10
- } from "motion/react";
11
-
12
- import { cn } from "@/lib/utils";
13
-
14
- interface BubbleBackgroundProps extends React.HTMLAttributes<HTMLDivElement> {
15
- interactive?: boolean;
16
- transition?: SpringOptions;
17
- colors?: {
18
- first: string;
19
- second: string;
20
- third: string;
21
- fourth: string;
22
- fifth: string;
23
- sixth: string;
24
- };
25
- }
26
-
27
- const BubbleBackground = React.forwardRef<
28
- HTMLDivElement,
29
- BubbleBackgroundProps
30
- >(
31
- (
32
- {
33
- className,
34
- children,
35
- interactive = false,
36
- transition = { stiffness: 100, damping: 20 },
37
- colors = {
38
- first: "18,113,255",
39
- second: "221,74,255",
40
- third: "0,220,255",
41
- fourth: "200,50,50",
42
- fifth: "180,180,50",
43
- sixth: "140,100,255",
44
- },
45
- ...props
46
- },
47
- ref,
48
- ) => {
49
- const containerRef = React.useRef<HTMLDivElement>(null);
50
- React.useImperativeHandle(
51
- ref,
52
- () => containerRef.current as HTMLDivElement,
53
- );
54
-
55
- const mouseX = useMotionValue(0);
56
- const mouseY = useMotionValue(0);
57
- const springX = useSpring(mouseX, transition);
58
- const springY = useSpring(mouseY, transition);
59
-
60
- React.useEffect(() => {
61
- if (!interactive) return;
62
-
63
- const currentContainer = containerRef.current;
64
- if (!currentContainer) return;
65
-
66
- const handleMouseMove = (e: MouseEvent) => {
67
- const rect = currentContainer.getBoundingClientRect();
68
- const centerX = rect.left + rect.width / 2;
69
- const centerY = rect.top + rect.height / 2;
70
- mouseX.set(e.clientX - centerX);
71
- mouseY.set(e.clientY - centerY);
72
- };
73
-
74
- currentContainer?.addEventListener("mousemove", handleMouseMove);
75
- return () =>
76
- currentContainer?.removeEventListener("mousemove", handleMouseMove);
77
- }, [interactive, mouseX, mouseY]);
78
-
79
- return (
80
- <div
81
- ref={containerRef}
82
- className={cn(
83
- "relative size-full overflow-hidden bg-gradient-to-br from-violet-900 to-blue-900",
84
- className,
85
- )}
86
- {...props}
87
- >
88
- <style>
89
- {`
90
- :root {
91
- --first-color: ${colors.first};
92
- --second-color: ${colors.second};
93
- --third-color: ${colors.third};
94
- --fourth-color: ${colors.fourth};
95
- --fifth-color: ${colors.fifth};
96
- --sixth-color: ${colors.sixth};
97
- }
98
- `}
99
- </style>
100
-
101
- <svg
102
- xmlns="http://www.w3.org/2000/svg"
103
- className="absolute top-0 left-0 w-0 h-0"
104
- >
105
- <defs>
106
- <filter id="goo">
107
- <feGaussianBlur
108
- in="SourceGraphic"
109
- stdDeviation="10"
110
- result="blur"
111
- />
112
- <feColorMatrix
113
- in="blur"
114
- mode="matrix"
115
- values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -8"
116
- result="goo"
117
- />
118
- <feBlend in="SourceGraphic" in2="goo" />
119
- </filter>
120
- </defs>
121
- </svg>
122
-
123
- <div
124
- className="absolute inset-0"
125
- style={{ filter: "url(#goo) blur(40px)" }}
126
- >
127
- <motion.div
128
- className="absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--first-color),0.8)_0%,rgba(var(--first-color),0)_50%)]"
129
- animate={{ y: [-50, 50, -50] }}
130
- transition={{ duration: 30, ease: "easeInOut", repeat: Infinity }}
131
- />
132
-
133
- <motion.div
134
- className="absolute inset-0 flex justify-center items-center origin-[calc(50%-400px)]"
135
- animate={{ rotate: 360 }}
136
- transition={
137
- {
138
- duration: 20,
139
- ease: "linear",
140
- repeat: Infinity,
141
- repeatType: "reverse",
142
- } satisfies Transition
143
- }
144
- >
145
- <div className="rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--second-color),0.8)_0%,rgba(var(--second-color),0)_50%)]" />
146
- </motion.div>
147
-
148
- <motion.div
149
- className="absolute inset-0 flex justify-center items-center origin-[calc(50%+400px)]"
150
- animate={{ rotate: 360 }}
151
- transition={{ duration: 40, ease: "linear", repeat: Infinity }}
152
- >
153
- <div className="absolute rounded-full size-[80%] bg-[radial-gradient(circle_at_center,rgba(var(--third-color),0.8)_0%,rgba(var(--third-color),0)_50%)] mix-blend-hard-light top-[calc(50%+200px)] left-[calc(50%-500px)]" />
154
- </motion.div>
155
-
156
- <motion.div
157
- className="absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fourth-color),0.8)_0%,rgba(var(--fourth-color),0)_50%)] opacity-70"
158
- animate={{ x: [-50, 50, -50] }}
159
- transition={{ duration: 40, ease: "easeInOut", repeat: Infinity }}
160
- />
161
-
162
- <motion.div
163
- className="absolute inset-0 flex justify-center items-center origin-[calc(50%_-_800px)_calc(50%_+_200px)]"
164
- animate={{ rotate: 360 }}
165
- transition={{ duration: 20, ease: "linear", repeat: Infinity }}
166
- >
167
- <div className="absolute rounded-full size-[160%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fifth-color),0.8)_0%,rgba(var(--fifth-color),0)_50%)] top-[calc(50%-80%)] left-[calc(50%-80%)]" />
168
- </motion.div>
169
-
170
- {interactive && (
171
- <motion.div
172
- className="absolute rounded-full size-full mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--sixth-color),0.8)_0%,rgba(var(--sixth-color),0)_50%)] opacity-70"
173
- style={{
174
- x: springX,
175
- y: springY,
176
- }}
177
- />
178
- )}
179
- </div>
180
-
181
- {children}
182
- </div>
183
- );
184
- },
185
- );
186
-
187
- BubbleBackground.displayName = "BubbleBackground";
188
-
189
- export { BubbleBackground, type BubbleBackgroundProps };
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import {
5
+ motion,
6
+ type SpringOptions,
7
+ Transition,
8
+ useMotionValue,
9
+ useSpring,
10
+ } from "motion/react";
11
+
12
+ import { cn } from "@/lib/utils";
13
+
14
+ interface BubbleBackgroundProps extends React.HTMLAttributes<HTMLDivElement> {
15
+ interactive?: boolean;
16
+ transition?: SpringOptions;
17
+ colors?: {
18
+ first: string;
19
+ second: string;
20
+ third: string;
21
+ fourth: string;
22
+ fifth: string;
23
+ sixth: string;
24
+ };
25
+ }
26
+
27
+ const BubbleBackground = React.forwardRef<
28
+ HTMLDivElement,
29
+ BubbleBackgroundProps
30
+ >(
31
+ (
32
+ {
33
+ className,
34
+ children,
35
+ interactive = false,
36
+ transition = { stiffness: 100, damping: 20 },
37
+ colors = {
38
+ first: "18,113,255",
39
+ second: "221,74,255",
40
+ third: "0,220,255",
41
+ fourth: "200,50,50",
42
+ fifth: "180,180,50",
43
+ sixth: "140,100,255",
44
+ },
45
+ ...props
46
+ },
47
+ ref,
48
+ ) => {
49
+ const containerRef = React.useRef<HTMLDivElement>(null);
50
+ React.useImperativeHandle(
51
+ ref,
52
+ () => containerRef.current as HTMLDivElement,
53
+ );
54
+
55
+ const mouseX = useMotionValue(0);
56
+ const mouseY = useMotionValue(0);
57
+ const springX = useSpring(mouseX, transition);
58
+ const springY = useSpring(mouseY, transition);
59
+
60
+ React.useEffect(() => {
61
+ if (!interactive) return;
62
+
63
+ const currentContainer = containerRef.current;
64
+ if (!currentContainer) return;
65
+
66
+ const handleMouseMove = (e: MouseEvent) => {
67
+ const rect = currentContainer.getBoundingClientRect();
68
+ const centerX = rect.left + rect.width / 2;
69
+ const centerY = rect.top + rect.height / 2;
70
+ mouseX.set(e.clientX - centerX);
71
+ mouseY.set(e.clientY - centerY);
72
+ };
73
+
74
+ currentContainer?.addEventListener("mousemove", handleMouseMove);
75
+ return () =>
76
+ currentContainer?.removeEventListener("mousemove", handleMouseMove);
77
+ }, [interactive, mouseX, mouseY]);
78
+
79
+ return (
80
+ <div
81
+ ref={containerRef}
82
+ className={cn(
83
+ "relative size-full overflow-hidden bg-gradient-to-br from-violet-900 to-blue-900",
84
+ className,
85
+ )}
86
+ {...props}
87
+ >
88
+ <style>
89
+ {`
90
+ :root {
91
+ --first-color: ${colors.first};
92
+ --second-color: ${colors.second};
93
+ --third-color: ${colors.third};
94
+ --fourth-color: ${colors.fourth};
95
+ --fifth-color: ${colors.fifth};
96
+ --sixth-color: ${colors.sixth};
97
+ }
98
+ `}
99
+ </style>
100
+
101
+ <svg
102
+ xmlns="http://www.w3.org/2000/svg"
103
+ className="absolute top-0 left-0 w-0 h-0"
104
+ >
105
+ <defs>
106
+ <filter id="goo">
107
+ <feGaussianBlur
108
+ in="SourceGraphic"
109
+ stdDeviation="10"
110
+ result="blur"
111
+ />
112
+ <feColorMatrix
113
+ in="blur"
114
+ mode="matrix"
115
+ values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -8"
116
+ result="goo"
117
+ />
118
+ <feBlend in="SourceGraphic" in2="goo" />
119
+ </filter>
120
+ </defs>
121
+ </svg>
122
+
123
+ <div
124
+ className="absolute inset-0"
125
+ style={{ filter: "url(#goo) blur(40px)" }}
126
+ >
127
+ <motion.div
128
+ className="absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--first-color),0.8)_0%,rgba(var(--first-color),0)_50%)]"
129
+ animate={{ y: [-50, 50, -50] }}
130
+ transition={{ duration: 30, ease: "easeInOut", repeat: Infinity }}
131
+ />
132
+
133
+ <motion.div
134
+ className="absolute inset-0 flex justify-center items-center origin-[calc(50%-400px)]"
135
+ animate={{ rotate: 360 }}
136
+ transition={
137
+ {
138
+ duration: 20,
139
+ ease: "linear",
140
+ repeat: Infinity,
141
+ repeatType: "reverse",
142
+ } satisfies Transition
143
+ }
144
+ >
145
+ <div className="rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--second-color),0.8)_0%,rgba(var(--second-color),0)_50%)]" />
146
+ </motion.div>
147
+
148
+ <motion.div
149
+ className="absolute inset-0 flex justify-center items-center origin-[calc(50%+400px)]"
150
+ animate={{ rotate: 360 }}
151
+ transition={{ duration: 40, ease: "linear", repeat: Infinity }}
152
+ >
153
+ <div className="absolute rounded-full size-[80%] bg-[radial-gradient(circle_at_center,rgba(var(--third-color),0.8)_0%,rgba(var(--third-color),0)_50%)] mix-blend-hard-light top-[calc(50%+200px)] left-[calc(50%-500px)]" />
154
+ </motion.div>
155
+
156
+ <motion.div
157
+ className="absolute rounded-full size-[80%] top-[10%] left-[10%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fourth-color),0.8)_0%,rgba(var(--fourth-color),0)_50%)] opacity-70"
158
+ animate={{ x: [-50, 50, -50] }}
159
+ transition={{ duration: 40, ease: "easeInOut", repeat: Infinity }}
160
+ />
161
+
162
+ <motion.div
163
+ className="absolute inset-0 flex justify-center items-center origin-[calc(50%_-_800px)_calc(50%_+_200px)]"
164
+ animate={{ rotate: 360 }}
165
+ transition={{ duration: 20, ease: "linear", repeat: Infinity }}
166
+ >
167
+ <div className="absolute rounded-full size-[160%] mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--fifth-color),0.8)_0%,rgba(var(--fifth-color),0)_50%)] top-[calc(50%-80%)] left-[calc(50%-80%)]" />
168
+ </motion.div>
169
+
170
+ {interactive && (
171
+ <motion.div
172
+ className="absolute rounded-full size-full mix-blend-hard-light bg-[radial-gradient(circle_at_center,rgba(var(--sixth-color),0.8)_0%,rgba(var(--sixth-color),0)_50%)] opacity-70"
173
+ style={{
174
+ x: springX,
175
+ y: springY,
176
+ }}
177
+ />
178
+ )}
179
+ </div>
180
+
181
+ {children}
182
+ </div>
183
+ );
184
+ },
185
+ );
186
+
187
+ BubbleBackground.displayName = "BubbleBackground";
188
+
189
+ export { BubbleBackground, type BubbleBackgroundProps };