@b3-crow/ui-kit 0.0.18 → 0.0.23
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/.github/workflows/publish.yml +8 -4
- package/.husky/pre-commit +1 -1
- package/.prettierignore +1 -1
- package/README.md +35 -45
- package/bun.lock +1042 -0
- package/docs/screenshot.svg +57 -0
- package/package.json +22 -11
- package/src/components/coming-soon/AnimatedBackground.tsx +71 -0
- package/src/components/coming-soon/HeroText.tsx +40 -0
- package/src/components/coming-soon/Logo.tsx +27 -0
- package/src/components/coming-soon/Subtitle.tsx +37 -0
- package/src/components/coming-soon/TypewriterText.tsx +89 -0
- package/src/components/coming-soon/index.ts +5 -0
- package/src/index.ts +2 -5
- package/tsconfig.json +2 -2
- package/dist/components/ui/button.d.ts +0 -15
- package/dist/components/ui/button.d.ts.map +0 -1
- package/dist/components/ui/button.js +0 -33
- package/dist/components/ui/button.js.map +0 -1
- package/dist/components/ui/index.d.ts +0 -2
- package/dist/components/ui/index.d.ts.map +0 -1
- package/dist/components/ui/index.js +0 -2
- package/dist/components/ui/index.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/lib/index.d.ts +0 -2
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -2
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/utils.d.ts +0 -3
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -6
- package/dist/lib/utils.js.map +0 -1
- package/src/components/ui/button.tsx +0 -63
- package/src/components/ui/index.ts +0 -1
- package/src/lib/index.ts +0 -1
- package/src/lib/utils.ts +0 -7
- package/src/styles/globals.css +0 -7
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<svg width="1200" height="800" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- Black background -->
|
|
3
|
+
<rect width="1200" height="800" fill="#000000"/>
|
|
4
|
+
|
|
5
|
+
<!-- Purple gradient circles (background effect) -->
|
|
6
|
+
<defs>
|
|
7
|
+
<radialGradient id="purpleGrad">
|
|
8
|
+
<stop offset="0%" style="stop-color:#854ED2;stop-opacity:0.5" />
|
|
9
|
+
<stop offset="70%" style="stop-color:#854ED2;stop-opacity:0" />
|
|
10
|
+
</radialGradient>
|
|
11
|
+
<radialGradient id="whiteGrad">
|
|
12
|
+
<stop offset="0%" style="stop-color:#ffffff;stop-opacity:0.7" />
|
|
13
|
+
<stop offset="40%" style="stop-color:#e0c8ff;stop-opacity:0.7" />
|
|
14
|
+
<stop offset="65%" style="stop-color:#e0c8ff;stop-opacity:0" />
|
|
15
|
+
</radialGradient>
|
|
16
|
+
<linearGradient id="textGrad" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
17
|
+
<stop offset="0%" style="stop-color:#1B0637" />
|
|
18
|
+
<stop offset="35%" style="stop-color:#2E1A4B" />
|
|
19
|
+
<stop offset="65%" style="stop-color:#563F77" />
|
|
20
|
+
<stop offset="100%" style="stop-color:#765F97" />
|
|
21
|
+
</linearGradient>
|
|
22
|
+
</defs>
|
|
23
|
+
|
|
24
|
+
<!-- Background gradients -->
|
|
25
|
+
<ellipse cx="1100" cy="480" rx="850" ry="450" fill="url(#purpleGrad)" filter="blur(40px)"/>
|
|
26
|
+
<ellipse cx="1100" cy="480" rx="250" ry="200" fill="url(#whiteGrad)" filter="blur(80px)"/>
|
|
27
|
+
|
|
28
|
+
<!-- CROW text -->
|
|
29
|
+
<text x="600" y="360" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
30
|
+
font-size="280" font-weight="650" text-anchor="middle" fill="url(#textGrad)"
|
|
31
|
+
letter-spacing="0.01em" filter="drop-shadow(0 0 80px rgba(87, 84, 96, 0.3))">
|
|
32
|
+
CROW
|
|
33
|
+
</text>
|
|
34
|
+
|
|
35
|
+
<!-- COMING SOON text -->
|
|
36
|
+
<text x="600" y="520" font-family="'Courier New', Courier, monospace"
|
|
37
|
+
font-size="24" font-weight="600" text-anchor="middle" fill="#8b7fb8"
|
|
38
|
+
letter-spacing="0.3em" filter="drop-shadow(0 0 10px rgba(139, 127, 184, 0.5))">
|
|
39
|
+
COMING SOON_
|
|
40
|
+
</text>
|
|
41
|
+
|
|
42
|
+
<!-- Subtitle -->
|
|
43
|
+
<text x="600" y="750" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
44
|
+
font-size="14" text-anchor="middle" fill="rgba(255, 255, 255, 0.52)">
|
|
45
|
+
We are thrilled to unveil CROW, our most advanced product yet,
|
|
46
|
+
</text>
|
|
47
|
+
<text x="600" y="770" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
|
|
48
|
+
font-size="14" text-anchor="middle" fill="rgba(255, 255, 255, 0.52)">
|
|
49
|
+
blending superior reasoning with extensive pretraining knowledge.
|
|
50
|
+
</text>
|
|
51
|
+
|
|
52
|
+
<!-- Note -->
|
|
53
|
+
<text x="600" y="50" font-family="sans-serif" font-size="12" text-anchor="middle"
|
|
54
|
+
fill="rgba(255, 255, 255, 0.3)" font-style="italic">
|
|
55
|
+
Screenshot Placeholder - Replace with actual screenshot
|
|
56
|
+
</text>
|
|
57
|
+
</svg>
|
package/package.json
CHANGED
|
@@ -1,9 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@b3-crow/ui-kit",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "CROW-B3 UI Kit",
|
|
5
|
-
"main": "dist/index.js",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
6
14
|
"type": "module",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"build:watch": "tsc --watch",
|
|
18
|
+
"lint": "eslint src/",
|
|
19
|
+
"lint:fix": "eslint src/ --fix",
|
|
20
|
+
"format": "bunx prettier src/ --write",
|
|
21
|
+
"prepare": "husky install",
|
|
22
|
+
"lint-staged": "lint-staged"
|
|
23
|
+
},
|
|
7
24
|
"repository": {
|
|
8
25
|
"type": "git",
|
|
9
26
|
"url": "https://github.com/CROW-B3/npm-sdk-template.git"
|
|
@@ -13,6 +30,7 @@
|
|
|
13
30
|
},
|
|
14
31
|
"author": "CROW By B3",
|
|
15
32
|
"license": "MIT",
|
|
33
|
+
"packageManager": "bun@1.3.3",
|
|
16
34
|
"devDependencies": {
|
|
17
35
|
"@antfu/eslint-config": "^6.2.0",
|
|
18
36
|
"@commitlint/config-conventional": "^20.0.0",
|
|
@@ -45,14 +63,7 @@
|
|
|
45
63
|
"@radix-ui/react-slot": "^1.2.4",
|
|
46
64
|
"class-variance-authority": "^0.7.1",
|
|
47
65
|
"clsx": "^2.1.1",
|
|
66
|
+
"framer-motion": "^12.23.24",
|
|
48
67
|
"tailwind-merge": "^3.4.0"
|
|
49
|
-
},
|
|
50
|
-
"scripts": {
|
|
51
|
-
"build": "tsc",
|
|
52
|
-
"build:watch": "tsc --watch",
|
|
53
|
-
"lint": "eslint src/",
|
|
54
|
-
"lint:fix": "eslint src/ --fix",
|
|
55
|
-
"format": "pnpm exec prettier src/ --write",
|
|
56
|
-
"lint-staged": "lint-staged"
|
|
57
68
|
}
|
|
58
|
-
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
interface AnimatedBackgroundProps {
|
|
4
|
+
backgroundColor?: string;
|
|
5
|
+
primaryGlowColor?: string;
|
|
6
|
+
secondaryGlowColor?: string;
|
|
7
|
+
tertiaryGlowColor?: string;
|
|
8
|
+
primaryGlowOpacity?: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function AnimatedBackground({
|
|
12
|
+
backgroundColor = '#000000',
|
|
13
|
+
primaryGlowColor = '#854ED2',
|
|
14
|
+
secondaryGlowColor = '#ffffffbd',
|
|
15
|
+
tertiaryGlowColor = '#e0c8ffbe',
|
|
16
|
+
primaryGlowOpacity = 0.5,
|
|
17
|
+
}: AnimatedBackgroundProps) {
|
|
18
|
+
return (
|
|
19
|
+
<div
|
|
20
|
+
style={{
|
|
21
|
+
position: 'fixed',
|
|
22
|
+
top: 0,
|
|
23
|
+
left: 0,
|
|
24
|
+
right: 0,
|
|
25
|
+
bottom: 0,
|
|
26
|
+
zIndex: -10,
|
|
27
|
+
overflow: 'hidden',
|
|
28
|
+
}}
|
|
29
|
+
>
|
|
30
|
+
<div
|
|
31
|
+
style={{
|
|
32
|
+
position: 'absolute',
|
|
33
|
+
top: 0,
|
|
34
|
+
left: 0,
|
|
35
|
+
right: 0,
|
|
36
|
+
bottom: 0,
|
|
37
|
+
background: backgroundColor,
|
|
38
|
+
}}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<div
|
|
42
|
+
style={{
|
|
43
|
+
position: 'absolute',
|
|
44
|
+
top: '50%',
|
|
45
|
+
left: '100%',
|
|
46
|
+
transform: 'translate(-50%, -50%)',
|
|
47
|
+
width: '1700px',
|
|
48
|
+
height: '900px',
|
|
49
|
+
borderRadius: '50%',
|
|
50
|
+
background: `radial-gradient(circle, ${primaryGlowColor} 0%, transparent 70%)`,
|
|
51
|
+
opacity: primaryGlowOpacity,
|
|
52
|
+
filter: 'blur(40px)',
|
|
53
|
+
}}
|
|
54
|
+
/>
|
|
55
|
+
|
|
56
|
+
<div
|
|
57
|
+
style={{
|
|
58
|
+
position: 'absolute',
|
|
59
|
+
top: '50%',
|
|
60
|
+
left: '100%',
|
|
61
|
+
transform: 'translate(-50%, -50%)',
|
|
62
|
+
width: '500px',
|
|
63
|
+
height: '400px',
|
|
64
|
+
borderRadius: '50%',
|
|
65
|
+
background: `radial-gradient(circle, ${secondaryGlowColor} 0%, ${tertiaryGlowColor} 40%, transparent 65%)`,
|
|
66
|
+
filter: 'blur(80px)',
|
|
67
|
+
}}
|
|
68
|
+
/>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
|
|
5
|
+
interface HeroTextProps {
|
|
6
|
+
text: string;
|
|
7
|
+
gradient?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function HeroText({
|
|
11
|
+
text,
|
|
12
|
+
gradient = 'linear-gradient(70deg, #1B0637 0%, #210E3C 10%, #24113F 20%, #2E1A4B 35%, #3A2559 45%, #563F77 65%, #604882 80%, #765F97 100%)',
|
|
13
|
+
}: HeroTextProps) {
|
|
14
|
+
return (
|
|
15
|
+
<motion.h1
|
|
16
|
+
initial={{ opacity: 0, y: 40 }}
|
|
17
|
+
animate={{ opacity: 1, y: 0 }}
|
|
18
|
+
transition={{ duration: 1, delay: 0.3, ease: 'easeOut' }}
|
|
19
|
+
style={{
|
|
20
|
+
fontSize: 'clamp(9rem, 22vw, 22rem)',
|
|
21
|
+
fontWeight: 650,
|
|
22
|
+
lineHeight: 0.9,
|
|
23
|
+
letterSpacing: '0.01em',
|
|
24
|
+
background: gradient,
|
|
25
|
+
WebkitBackgroundClip: 'text',
|
|
26
|
+
backgroundClip: 'text',
|
|
27
|
+
WebkitTextFillColor: 'transparent',
|
|
28
|
+
textAlign: 'center',
|
|
29
|
+
margin: 0,
|
|
30
|
+
marginTop: '-5vh',
|
|
31
|
+
padding: 0,
|
|
32
|
+
fontFamily:
|
|
33
|
+
'-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif',
|
|
34
|
+
filter: 'drop-shadow(0 0 80px rgba(87, 84, 96, 0.3))',
|
|
35
|
+
}}
|
|
36
|
+
>
|
|
37
|
+
{text}
|
|
38
|
+
</motion.h1>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
|
|
5
|
+
interface LogoProps {
|
|
6
|
+
src: string;
|
|
7
|
+
alt: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function Logo({ src, alt }: LogoProps) {
|
|
11
|
+
return (
|
|
12
|
+
<motion.div
|
|
13
|
+
initial={{ opacity: 0, y: -20 }}
|
|
14
|
+
animate={{ opacity: 1, y: 0 }}
|
|
15
|
+
transition={{ duration: 0.8, ease: 'easeOut' }}
|
|
16
|
+
className="fixed left-8 top-8 z-50"
|
|
17
|
+
>
|
|
18
|
+
<img
|
|
19
|
+
src={src}
|
|
20
|
+
alt={alt}
|
|
21
|
+
width={80}
|
|
22
|
+
height={80}
|
|
23
|
+
className="h-16 w-16 object-contain sm:h-20 sm:w-20"
|
|
24
|
+
/>
|
|
25
|
+
</motion.div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
import type { ReactNode } from 'react';
|
|
5
|
+
|
|
6
|
+
interface SubtitleProps {
|
|
7
|
+
children: ReactNode;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function Subtitle({ children }: SubtitleProps) {
|
|
11
|
+
return (
|
|
12
|
+
<motion.p
|
|
13
|
+
initial={{ opacity: 0 }}
|
|
14
|
+
animate={{ opacity: 1 }}
|
|
15
|
+
transition={{ duration: 1, delay: 0.6, ease: 'easeOut' }}
|
|
16
|
+
style={{
|
|
17
|
+
position: 'fixed',
|
|
18
|
+
bottom: '1.5vh',
|
|
19
|
+
left: '50%',
|
|
20
|
+
transform: 'translateX(-50%)',
|
|
21
|
+
fontSize: 'clamp(0.75rem, 1vw, 0.95rem)',
|
|
22
|
+
lineHeight: 1.4,
|
|
23
|
+
color: 'rgba(255, 255, 255, 0.52)',
|
|
24
|
+
textAlign: 'center',
|
|
25
|
+
maxWidth: '50rem',
|
|
26
|
+
padding: '0 2rem',
|
|
27
|
+
fontWeight: 400,
|
|
28
|
+
letterSpacing: '0.01em',
|
|
29
|
+
fontFamily:
|
|
30
|
+
'-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif',
|
|
31
|
+
zIndex: 10,
|
|
32
|
+
}}
|
|
33
|
+
>
|
|
34
|
+
{children}
|
|
35
|
+
</motion.p>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
|
|
6
|
+
interface TypewriterTextProps {
|
|
7
|
+
text: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function TypewriterText({ text }: TypewriterTextProps) {
|
|
11
|
+
const [displayedText, setDisplayedText] = useState('');
|
|
12
|
+
const [currentIndex, setCurrentIndex] = useState(0);
|
|
13
|
+
const [showCursor, setShowCursor] = useState(true);
|
|
14
|
+
const timeoutRef = useRef<NodeJS.Timeout | null>(null);
|
|
15
|
+
|
|
16
|
+
// Reset typewriter when text prop changes
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (timeoutRef.current) {
|
|
19
|
+
clearTimeout(timeoutRef.current);
|
|
20
|
+
timeoutRef.current = null;
|
|
21
|
+
}
|
|
22
|
+
setDisplayedText('');
|
|
23
|
+
setCurrentIndex(0);
|
|
24
|
+
}, [text]);
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (currentIndex < text.length) {
|
|
28
|
+
const delay = currentIndex === 0 ? 2500 : 150;
|
|
29
|
+
timeoutRef.current = setTimeout(() => {
|
|
30
|
+
setDisplayedText(prev => prev + text[currentIndex]);
|
|
31
|
+
setCurrentIndex(prev => prev + 1);
|
|
32
|
+
}, delay);
|
|
33
|
+
return () => {
|
|
34
|
+
if (timeoutRef.current) {
|
|
35
|
+
clearTimeout(timeoutRef.current);
|
|
36
|
+
timeoutRef.current = null;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}, [currentIndex, text]);
|
|
41
|
+
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
const cursorInterval = setInterval(() => {
|
|
44
|
+
setShowCursor(prev => !prev);
|
|
45
|
+
}, 530);
|
|
46
|
+
return () => clearInterval(cursorInterval);
|
|
47
|
+
}, []);
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<motion.div
|
|
51
|
+
role="status"
|
|
52
|
+
aria-live="polite"
|
|
53
|
+
aria-atomic="true"
|
|
54
|
+
aria-label="Status message"
|
|
55
|
+
initial={{ opacity: 0 }}
|
|
56
|
+
animate={{ opacity: 1 }}
|
|
57
|
+
transition={{ duration: 1, delay: 1.5 }}
|
|
58
|
+
style={{
|
|
59
|
+
fontSize: 'clamp(1rem, 2vw, 1.5rem)',
|
|
60
|
+
fontWeight: 600,
|
|
61
|
+
letterSpacing: '0.3em',
|
|
62
|
+
color: '#8b7fb8',
|
|
63
|
+
textAlign: 'center',
|
|
64
|
+
fontFamily: '"Courier New", Courier, monospace',
|
|
65
|
+
marginTop: '3rem',
|
|
66
|
+
textTransform: 'uppercase',
|
|
67
|
+
}}
|
|
68
|
+
>
|
|
69
|
+
<span
|
|
70
|
+
style={{
|
|
71
|
+
textShadow:
|
|
72
|
+
'0 0 10px rgba(139, 127, 184, 0.5), 0 0 20px rgba(139, 127, 184, 0.3)',
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
{displayedText}
|
|
76
|
+
</span>
|
|
77
|
+
<span
|
|
78
|
+
aria-hidden="true"
|
|
79
|
+
style={{
|
|
80
|
+
opacity: showCursor ? 1 : 0,
|
|
81
|
+
color: '#8b7fb8',
|
|
82
|
+
marginLeft: '2px',
|
|
83
|
+
}}
|
|
84
|
+
>
|
|
85
|
+
_
|
|
86
|
+
</span>
|
|
87
|
+
</motion.div>
|
|
88
|
+
);
|
|
89
|
+
}
|
package/src/index.ts
CHANGED
package/tsconfig.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { VariantProps } from 'class-variance-authority';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
5
|
-
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
6
|
-
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
7
|
-
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
-
asChild?: boolean;
|
|
9
|
-
}
|
|
10
|
-
declare function Button({ className, variant, size, asChild, type, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
declare namespace Button {
|
|
12
|
-
var displayName: string;
|
|
13
|
-
}
|
|
14
|
-
export { Button, buttonVariants };
|
|
15
|
-
//# sourceMappingURL=button.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,cAAc;;;mFA4BnB,CAAC;AAEF,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,WAAW,2CASb;kBAhBQ,MAAM;;;AAmBf,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { cn } from '@/lib/utils';
|
|
5
|
-
const buttonVariants = cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', {
|
|
6
|
-
variants: {
|
|
7
|
-
variant: {
|
|
8
|
-
default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
|
|
9
|
-
destructive: 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
|
|
10
|
-
outline: 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
|
|
11
|
-
secondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
|
|
12
|
-
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
13
|
-
link: 'text-primary underline-offset-4 hover:underline',
|
|
14
|
-
},
|
|
15
|
-
size: {
|
|
16
|
-
default: 'h-9 px-4 py-2',
|
|
17
|
-
sm: 'h-8 rounded-md px-3 text-xs',
|
|
18
|
-
lg: 'h-10 rounded-md px-8',
|
|
19
|
-
icon: 'h-9 w-9',
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
defaultVariants: {
|
|
23
|
-
variant: 'default',
|
|
24
|
-
size: 'default',
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
function Button({ className, variant, size, asChild = false, type, ...props }) {
|
|
28
|
-
const Comp = asChild ? Slot : 'button';
|
|
29
|
-
return (_jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), type: asChild ? type : (type ?? 'button'), ...props }));
|
|
30
|
-
}
|
|
31
|
-
Button.displayName = 'Button';
|
|
32
|
-
export { Button, buttonVariants };
|
|
33
|
-
//# sourceMappingURL=button.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAG/C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,cAAc,GAAG,GAAG,CACxB,uSAAuS,EACvS;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,+DAA+D;YACjE,WAAW,EACT,8EAA8E;YAChF,OAAO,EACL,0FAA0F;YAC5F,SAAS,EACP,wEAAwE;YAC1E,KAAK,EAAE,8CAA8C;YACrD,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,eAAe;YACxB,EAAE,EAAE,6BAA6B;YACjC,EAAE,EAAE,sBAAsB;YAC1B,IAAI,EAAE,SAAS;SAChB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAC;AAQF,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,IAAI,EACJ,GAAG,KAAK,EACI;IACZ,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvC,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAC3D,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,KACrC,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAGhC,cAAc,OAAO,CAAC"}
|
package/dist/index.js
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,iBAAiB,CAAC;AAEhC,mBAAmB;AACnB,cAAc,OAAO,CAAC"}
|
package/dist/lib/index.d.ts
DELETED
package/dist/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/lib/index.js
DELETED
package/dist/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/lib/utils.d.ts
DELETED
package/dist/lib/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAIvC,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
package/dist/lib/utils.js
DELETED
package/dist/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { VariantProps } from 'class-variance-authority';
|
|
2
|
-
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
|
|
6
|
-
import { cn } from '@/lib/utils';
|
|
7
|
-
|
|
8
|
-
const buttonVariants = cva(
|
|
9
|
-
'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
|
|
10
|
-
{
|
|
11
|
-
variants: {
|
|
12
|
-
variant: {
|
|
13
|
-
default:
|
|
14
|
-
'bg-primary text-primary-foreground shadow hover:bg-primary/90',
|
|
15
|
-
destructive:
|
|
16
|
-
'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
|
|
17
|
-
outline:
|
|
18
|
-
'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
|
|
19
|
-
secondary:
|
|
20
|
-
'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
|
|
21
|
-
ghost: 'hover:bg-accent hover:text-accent-foreground',
|
|
22
|
-
link: 'text-primary underline-offset-4 hover:underline',
|
|
23
|
-
},
|
|
24
|
-
size: {
|
|
25
|
-
default: 'h-9 px-4 py-2',
|
|
26
|
-
sm: 'h-8 rounded-md px-3 text-xs',
|
|
27
|
-
lg: 'h-10 rounded-md px-8',
|
|
28
|
-
icon: 'h-9 w-9',
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
defaultVariants: {
|
|
32
|
-
variant: 'default',
|
|
33
|
-
size: 'default',
|
|
34
|
-
},
|
|
35
|
-
}
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
export interface ButtonProps
|
|
39
|
-
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
40
|
-
VariantProps<typeof buttonVariants> {
|
|
41
|
-
asChild?: boolean;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function Button({
|
|
45
|
-
className,
|
|
46
|
-
variant,
|
|
47
|
-
size,
|
|
48
|
-
asChild = false,
|
|
49
|
-
type,
|
|
50
|
-
...props
|
|
51
|
-
}: ButtonProps) {
|
|
52
|
-
const Comp = asChild ? Slot : 'button';
|
|
53
|
-
return (
|
|
54
|
-
<Comp
|
|
55
|
-
className={cn(buttonVariants({ variant, size, className }))}
|
|
56
|
-
type={asChild ? type : (type ?? 'button')}
|
|
57
|
-
{...props}
|
|
58
|
-
/>
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
Button.displayName = 'Button';
|
|
62
|
-
|
|
63
|
-
export { Button, buttonVariants };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { Button, type ButtonProps, buttonVariants } from './button';
|
package/src/lib/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { cn } from './utils';
|
package/src/lib/utils.ts
DELETED