@nehal712521/inprogress 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nehal712521/inprogress",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "CLI to add beautiful UI components to your project",
5
5
  "keywords": [
6
6
  "inprogress",
@@ -1,8 +1,9 @@
1
1
  "use client";
2
2
 
3
3
  import React from "react";
4
+ import { motion } from "framer-motion";
4
5
 
5
- type BadgeVariant = "default" | "secondary" | "outline" | "destructive";
6
+ type BadgeVariant = "default" | "secondary" | "outline" | "destructive" | "animated";
6
7
 
7
8
  interface BadgeProps {
8
9
  children: React.ReactNode;
@@ -15,9 +16,46 @@ const variantStyles: Record<BadgeVariant, string> = {
15
16
  secondary: "bg-zinc-800 text-zinc-100 hover:bg-zinc-700",
16
17
  outline: "border border-zinc-700 text-zinc-100 hover:bg-zinc-800",
17
18
  destructive: "bg-red-500/10 text-red-500 hover:bg-red-500/20",
19
+ animated: "bg-black text-white",
18
20
  };
19
21
 
20
22
  export function Badge({ children, variant = "default", className = "" }: BadgeProps) {
23
+ if (variant === "animated") {
24
+ return (
25
+ <motion.span
26
+ className={`relative inline-flex items-center rounded-full px-3 py-1 text-xs font-medium overflow-hidden ${className}`}
27
+ whileHover={{ scale: 1.05 }}
28
+ transition={{ type: "spring", stiffness: 400 }}
29
+ >
30
+ {/* Rotating Border Light */}
31
+ <motion.div
32
+ className="absolute inset-0 rounded-full"
33
+ style={{
34
+ background: "conic-gradient(from 0deg, transparent, #0ea5e9, transparent, #8b5cf6, transparent)",
35
+ padding: "1px",
36
+ }}
37
+ animate={{ rotate: 360 }}
38
+ transition={{ duration: 3, repeat: Infinity, ease: "linear" }}
39
+ >
40
+ <div className="absolute inset-[1px] rounded-full bg-black" />
41
+ </motion.div>
42
+ {/* Inner glow */}
43
+ <motion.div
44
+ className="absolute inset-0 rounded-full opacity-50"
45
+ animate={{
46
+ boxShadow: [
47
+ "inset 0 0 10px rgba(14, 165, 233, 0.3)",
48
+ "inset 0 0 20px rgba(139, 92, 246, 0.3)",
49
+ "inset 0 0 10px rgba(14, 165, 233, 0.3)",
50
+ ],
51
+ }}
52
+ transition={{ duration: 2, repeat: Infinity, ease: "easeInOut" }}
53
+ />
54
+ <span className="relative z-10">{children}</span>
55
+ </motion.span>
56
+ );
57
+ }
58
+
21
59
  return (
22
60
  <span
23
61
  className={`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors ${variantStyles[variant]} ${className}`}
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import React from "react";
4
+ import { motion } from "framer-motion";
4
5
 
5
6
  interface CardProps {
6
7
  children: React.ReactNode;
@@ -9,9 +10,30 @@ interface CardProps {
9
10
 
10
11
  export function Card({ children, className = "" }: CardProps) {
11
12
  return (
12
- <div className={`rounded-xl border border-zinc-800 bg-zinc-900/50 p-6 ${className}`}>
13
+ <motion.div
14
+ className={`relative rounded-xl border border-zinc-800 bg-zinc-900/50 p-6 overflow-hidden ${className}`}
15
+ initial={{ opacity: 0, y: 20 }}
16
+ animate={{ opacity: 1, y: 0 }}
17
+ transition={{ type: "spring", stiffness: 100, damping: 15 }}
18
+ whileHover={{ scale: 1.02, borderColor: "rgba(14, 165, 233, 0.3)" }}
19
+ >
20
+ {/* Animated Background Gradient */}
21
+ <div className="absolute inset-0 -z-10">
22
+ <div className="absolute inset-0 bg-gradient-to-br from-sky-500/5 via-transparent to-purple-500/5 animate-pulse" />
23
+ <motion.div
24
+ className="absolute inset-0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"
25
+ animate={{
26
+ background: [
27
+ "radial-gradient(400px circle at 0% 0%, rgba(14, 165, 233, 0.1), transparent 60%)",
28
+ "radial-gradient(400px circle at 100% 100%, rgba(14, 165, 233, 0.1), transparent 60%)",
29
+ "radial-gradient(400px circle at 0% 0%, rgba(14, 165, 233, 0.1), transparent 60%)",
30
+ ],
31
+ }}
32
+ transition={{ duration: 5, repeat: Infinity, ease: "linear" }}
33
+ />
34
+ </div>
13
35
  {children}
14
- </div>
36
+ </motion.div>
15
37
  );
16
38
  }
17
39
 
@@ -12,9 +12,9 @@
12
12
  "card": {
13
13
  "name": "card",
14
14
  "displayName": "Card",
15
- "description": "A card component with header, title, description, content, and footer",
15
+ "description": "A card component with animated background gradient and hover effects",
16
16
  "category": "Components",
17
- "dependencies": [],
17
+ "dependencies": ["framer-motion"],
18
18
  "files": ["card.tsx"]
19
19
  },
20
20
  "input": {
@@ -28,9 +28,9 @@
28
28
  "badge": {
29
29
  "name": "badge",
30
30
  "displayName": "Badge",
31
- "description": "A badge component with multiple variants",
31
+ "description": "A badge component with rotating border light animation",
32
32
  "category": "Components",
33
- "dependencies": [],
33
+ "dependencies": ["framer-motion"],
34
34
  "files": ["badge.tsx"]
35
35
  },
36
36
  "floating-dock": {