@b3-crow/ui-kit 0.0.19 → 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.
Files changed (40) hide show
  1. package/.github/workflows/publish.yml +8 -4
  2. package/.husky/pre-commit +1 -1
  3. package/.prettierignore +1 -1
  4. package/README.md +35 -45
  5. package/bun.lock +1042 -0
  6. package/docs/screenshot.svg +57 -0
  7. package/package.json +22 -11
  8. package/src/components/coming-soon/AnimatedBackground.tsx +71 -0
  9. package/src/components/coming-soon/HeroText.tsx +40 -0
  10. package/src/components/coming-soon/Logo.tsx +27 -0
  11. package/src/components/coming-soon/Subtitle.tsx +37 -0
  12. package/src/components/coming-soon/TypewriterText.tsx +89 -0
  13. package/src/components/coming-soon/index.ts +5 -0
  14. package/src/index.ts +2 -5
  15. package/tsconfig.json +2 -2
  16. package/dist/components/ui/button.d.ts +0 -15
  17. package/dist/components/ui/button.d.ts.map +0 -1
  18. package/dist/components/ui/button.js +0 -33
  19. package/dist/components/ui/button.js.map +0 -1
  20. package/dist/components/ui/index.d.ts +0 -2
  21. package/dist/components/ui/index.d.ts.map +0 -1
  22. package/dist/components/ui/index.js +0 -2
  23. package/dist/components/ui/index.js.map +0 -1
  24. package/dist/index.d.ts +0 -3
  25. package/dist/index.d.ts.map +0 -1
  26. package/dist/index.js +0 -5
  27. package/dist/index.js.map +0 -1
  28. package/dist/lib/index.d.ts +0 -2
  29. package/dist/lib/index.d.ts.map +0 -1
  30. package/dist/lib/index.js +0 -2
  31. package/dist/lib/index.js.map +0 -1
  32. package/dist/lib/utils.d.ts +0 -3
  33. package/dist/lib/utils.d.ts.map +0 -1
  34. package/dist/lib/utils.js +0 -6
  35. package/dist/lib/utils.js.map +0 -1
  36. package/src/components/ui/button.tsx +0 -63
  37. package/src/components/ui/index.ts +0 -1
  38. package/src/lib/index.ts +0 -1
  39. package/src/lib/utils.ts +0 -7
  40. 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.19",
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
+ }
@@ -0,0 +1,5 @@
1
+ export { AnimatedBackground } from './AnimatedBackground';
2
+ export { HeroText } from './HeroText';
3
+ export { Logo } from './Logo';
4
+ export { Subtitle } from './Subtitle';
5
+ export { TypewriterText } from './TypewriterText';
package/src/index.ts CHANGED
@@ -1,5 +1,2 @@
1
- // Export components
2
- export * from './components/ui';
3
-
4
- // Export utilities
5
- export * from './lib';
1
+ // Coming Soon Components
2
+ export * from './components/coming-soon';
package/tsconfig.json CHANGED
@@ -13,9 +13,9 @@
13
13
  "declarationMap": true,
14
14
  "sourceMap": true,
15
15
  "jsx": "react-jsx",
16
- "baseUrl": ".",
16
+ "baseUrl": "./src",
17
17
  "paths": {
18
- "@/*": ["./src/*"]
18
+ "@/components/*": ["components/*"]
19
19
  }
20
20
  },
21
21
  "include": ["src/**/*"],
@@ -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,2 +0,0 @@
1
- export { Button, type ButtonProps, buttonVariants } from './button';
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,2 +0,0 @@
1
- export { Button, buttonVariants } from './button';
2
- //# sourceMappingURL=index.js.map
@@ -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
@@ -1,3 +0,0 @@
1
- export * from './components/ui';
2
- export * from './lib';
3
- //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -1,5 +0,0 @@
1
- // Export components
2
- export * from './components/ui';
3
- // Export utilities
4
- export * from './lib';
5
- //# sourceMappingURL=index.js.map
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"}
@@ -1,2 +0,0 @@
1
- export { cn } from './utils';
2
- //# sourceMappingURL=index.d.ts.map
@@ -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
@@ -1,2 +0,0 @@
1
- export { cn } from './utils';
2
- //# sourceMappingURL=index.js.map
@@ -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"}
@@ -1,3 +0,0 @@
1
- import type { ClassValue } from 'clsx';
2
- export declare function cn(...inputs: ClassValue[]): string;
3
- //# sourceMappingURL=utils.d.ts.map
@@ -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
@@ -1,6 +0,0 @@
1
- import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
3
- export function cn(...inputs) {
4
- return twMerge(clsx(inputs));
5
- }
6
- //# sourceMappingURL=utils.js.map
@@ -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
@@ -1,7 +0,0 @@
1
- import type { ClassValue } from 'clsx';
2
- import { clsx } from 'clsx';
3
- import { twMerge } from 'tailwind-merge';
4
-
5
- export function cn(...inputs: ClassValue[]) {
6
- return twMerge(clsx(inputs));
7
- }
@@ -1,7 +0,0 @@
1
- @import 'tailwindcss';
2
-
3
- @layer base {
4
- :root {
5
- --radius: 0.5rem;
6
- }
7
- }