@b3-crow/ui-kit 0.0.19 → 0.0.24

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 (65) hide show
  1. package/.prettierignore +1 -1
  2. package/README.md +35 -45
  3. package/dist/components/coming-soon/AnimatedBackground.d.ts +10 -0
  4. package/dist/components/coming-soon/AnimatedBackground.d.ts.map +1 -0
  5. package/dist/components/coming-soon/AnimatedBackground.js +42 -0
  6. package/dist/components/coming-soon/AnimatedBackground.js.map +1 -0
  7. package/dist/components/coming-soon/HeroText.d.ts +7 -0
  8. package/dist/components/coming-soon/HeroText.d.ts.map +1 -0
  9. package/dist/components/coming-soon/HeroText.js +22 -0
  10. package/dist/components/coming-soon/HeroText.js.map +1 -0
  11. package/dist/components/coming-soon/Logo.d.ts +7 -0
  12. package/dist/components/coming-soon/Logo.d.ts.map +1 -0
  13. package/dist/components/coming-soon/Logo.js +7 -0
  14. package/dist/components/coming-soon/Logo.js.map +1 -0
  15. package/dist/components/coming-soon/Subtitle.d.ts +7 -0
  16. package/dist/components/coming-soon/Subtitle.d.ts.map +1 -0
  17. package/dist/components/coming-soon/Subtitle.js +22 -0
  18. package/dist/components/coming-soon/Subtitle.js.map +1 -0
  19. package/dist/components/coming-soon/TypewriterText.d.ts +6 -0
  20. package/dist/components/coming-soon/TypewriterText.d.ts.map +1 -0
  21. package/dist/components/coming-soon/TypewriterText.js +57 -0
  22. package/dist/components/coming-soon/TypewriterText.js.map +1 -0
  23. package/dist/components/coming-soon/index.d.ts +6 -0
  24. package/dist/components/coming-soon/index.d.ts.map +1 -0
  25. package/dist/components/coming-soon/index.js +6 -0
  26. package/dist/components/coming-soon/index.js.map +1 -0
  27. package/dist/index.d.ts +1 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -4
  30. package/dist/index.js.map +1 -1
  31. package/docs/screenshot.svg +57 -0
  32. package/package.json +22 -11
  33. package/.github/dependabot.yml +0 -6
  34. package/.github/workflows/publish.yml +0 -71
  35. package/.github/workflows/template-sync.yml +0 -31
  36. package/.husky/commit-msg +0 -1
  37. package/.husky/pre-commit +0 -1
  38. package/.prettierrc +0 -13
  39. package/commitlint.config.cjs +0 -4
  40. package/dist/components/ui/button.d.ts +0 -15
  41. package/dist/components/ui/button.d.ts.map +0 -1
  42. package/dist/components/ui/button.js +0 -33
  43. package/dist/components/ui/button.js.map +0 -1
  44. package/dist/components/ui/index.d.ts +0 -2
  45. package/dist/components/ui/index.d.ts.map +0 -1
  46. package/dist/components/ui/index.js +0 -2
  47. package/dist/components/ui/index.js.map +0 -1
  48. package/dist/lib/index.d.ts +0 -2
  49. package/dist/lib/index.d.ts.map +0 -1
  50. package/dist/lib/index.js +0 -2
  51. package/dist/lib/index.js.map +0 -1
  52. package/dist/lib/utils.d.ts +0 -3
  53. package/dist/lib/utils.d.ts.map +0 -1
  54. package/dist/lib/utils.js +0 -6
  55. package/dist/lib/utils.js.map +0 -1
  56. package/eslint.config.mts +0 -7
  57. package/lint-staged +0 -0
  58. package/postcss.config.mjs +0 -5
  59. package/src/components/ui/button.tsx +0 -63
  60. package/src/components/ui/index.ts +0 -1
  61. package/src/index.ts +0 -5
  62. package/src/lib/index.ts +0 -1
  63. package/src/lib/utils.ts +0 -7
  64. package/src/styles/globals.css +0 -7
  65. package/tsconfig.json +0 -23
package/.prettierignore CHANGED
@@ -16,7 +16,7 @@ build/
16
16
  # Package manager files
17
17
  package-lock.json
18
18
  yarn.lock
19
- pnpm-lock.yaml
19
+ bun.lock
20
20
 
21
21
  # IDE files
22
22
  .vscode/
package/README.md CHANGED
@@ -1,12 +1,16 @@
1
1
  # CROW-B3 UI Kit
2
2
 
3
3
  CROW-B3 UI Kit is a set of UI components for CROW-B3 projects.
4
- A React component library built with shadcn/ui and Tailwind CSS v4.
4
+ A React component library built with Framer Motion for smooth animations.
5
+
6
+ ## Preview
7
+
8
+ ![Coming Soon Page](https://raw.githubusercontent.com/CROW-B3/ui-kit/main/docs/screenshot.svg)
5
9
 
6
10
  ## Installation
7
11
 
8
12
  ```bash
9
- pnpm add @b3-crow/ui-kit
13
+ bun add @b3-crow/ui-kit
10
14
  ```
11
15
 
12
16
  ## Local Development
@@ -20,44 +24,36 @@ pnpm add @b3-crow/ui-kit
20
24
  ### 1. Install Peer Dependencies
21
25
 
22
26
  ```bash
23
- pnpm add react react-dom
24
- pnpm add -D tailwindcss @tailwindcss/postcss postcss
25
- ```
26
-
27
- ### 2. Configure PostCSS
28
-
29
- Create or update `postcss.config.mjs`:
30
-
31
- ```js
32
- export default {
33
- plugins: {
34
- '@tailwindcss/postcss': {},
35
- },
36
- };
37
- ```
38
-
39
- ### 3. Import Styles
40
-
41
- Import the global styles in your app:
42
-
43
- ```tsx
44
- import '@b3-crow/ui-kit/dist/styles/globals.css';
27
+ bun add react react-dom framer-motion
45
28
  ```
46
29
 
47
30
  ## Usage
48
31
 
49
- ### Button Component
32
+ ### Coming Soon Components
33
+
34
+ The UI kit includes a complete Coming Soon page with animated components:
50
35
 
51
36
  ```tsx
52
- import { Button } from '@b3-crow/ui-kit';
37
+ import {
38
+ AnimatedBackground,
39
+ HeroText,
40
+ Logo,
41
+ TypewriterText,
42
+ Subtitle,
43
+ } from '@b3-crow/ui-kit';
53
44
 
54
45
  function App() {
55
46
  return (
56
47
  <div>
57
- <Button>Click me</Button>
58
- <Button variant="outline">Outline</Button>
59
- <Button variant="destructive">Delete</Button>
60
- <Button size="lg">Large</Button>
48
+ <AnimatedBackground />
49
+ <Logo src="/your-logo.png" alt="Your Logo" />
50
+ <HeroText text="Your Brand" />
51
+ <TypewriterText text="COMING SOON" />
52
+ <Subtitle>
53
+ Your subtitle text here
54
+ <br />
55
+ Can be multi-line with custom formatting
56
+ </Subtitle>
61
57
  </div>
62
58
  );
63
59
  }
@@ -65,32 +61,26 @@ function App() {
65
61
 
66
62
  ### Available Components
67
63
 
68
- - **Button**: Fully customizable button component with multiple variants and sizes
69
-
70
- ### Utilities
71
-
72
- - **cn**: Utility function for merging Tailwind classes
73
-
74
- ```tsx
75
- import { cn } from '@b3-crow/ui-kit';
76
-
77
- const className = cn('px-4 py-2', 'bg-blue-500', { 'text-white': true });
78
- ```
64
+ - **AnimatedBackground**: Animated gradient background with blurred circles
65
+ - **HeroText**: Large gradient text with fade-in animation (requires `text` prop, optional `gradient` prop)
66
+ - **Logo**: Animated logo component with breathing effect (requires `src` and `alt` props)
67
+ - **TypewriterText**: Typewriter effect text with blinking cursor (requires `text` prop)
68
+ - **Subtitle**: Subtitle text with fade-in animation (requires `children` for custom JSX content)
79
69
 
80
70
  ## Development
81
71
 
82
72
  ```bash
83
73
  # Install dependencies
84
- pnpm install
74
+ bun install
85
75
 
86
76
  # Build the library
87
- pnpm run build
77
+ bun run build
88
78
 
89
79
  # Lint
90
- pnpm run lint
80
+ bun run lint
91
81
 
92
82
  # Format
93
- pnpm run format
83
+ bun run format
94
84
  ```
95
85
 
96
86
  ## License
@@ -0,0 +1,10 @@
1
+ interface AnimatedBackgroundProps {
2
+ backgroundColor?: string;
3
+ primaryGlowColor?: string;
4
+ secondaryGlowColor?: string;
5
+ tertiaryGlowColor?: string;
6
+ primaryGlowOpacity?: number;
7
+ }
8
+ export declare function AnimatedBackground({ backgroundColor, primaryGlowColor, secondaryGlowColor, tertiaryGlowColor, primaryGlowOpacity, }: AnimatedBackgroundProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=AnimatedBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedBackground.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/AnimatedBackground.tsx"],"names":[],"mappings":"AAEA,UAAU,uBAAuB;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,kBAAkB,CAAC,EACjC,eAA2B,EAC3B,gBAA4B,EAC5B,kBAAgC,EAChC,iBAA+B,EAC/B,kBAAwB,GACzB,EAAE,uBAAuB,2CAsDzB"}
@@ -0,0 +1,42 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ export function AnimatedBackground({ backgroundColor = '#000000', primaryGlowColor = '#854ED2', secondaryGlowColor = '#ffffffbd', tertiaryGlowColor = '#e0c8ffbe', primaryGlowOpacity = 0.5, }) {
4
+ return (_jsxs("div", { style: {
5
+ position: 'fixed',
6
+ top: 0,
7
+ left: 0,
8
+ right: 0,
9
+ bottom: 0,
10
+ zIndex: -10,
11
+ overflow: 'hidden',
12
+ }, children: [_jsx("div", { style: {
13
+ position: 'absolute',
14
+ top: 0,
15
+ left: 0,
16
+ right: 0,
17
+ bottom: 0,
18
+ background: backgroundColor,
19
+ } }), _jsx("div", { style: {
20
+ position: 'absolute',
21
+ top: '50%',
22
+ left: '100%',
23
+ transform: 'translate(-50%, -50%)',
24
+ width: '1700px',
25
+ height: '900px',
26
+ borderRadius: '50%',
27
+ background: `radial-gradient(circle, ${primaryGlowColor} 0%, transparent 70%)`,
28
+ opacity: primaryGlowOpacity,
29
+ filter: 'blur(40px)',
30
+ } }), _jsx("div", { style: {
31
+ position: 'absolute',
32
+ top: '50%',
33
+ left: '100%',
34
+ transform: 'translate(-50%, -50%)',
35
+ width: '500px',
36
+ height: '400px',
37
+ borderRadius: '50%',
38
+ background: `radial-gradient(circle, ${secondaryGlowColor} 0%, ${tertiaryGlowColor} 40%, transparent 65%)`,
39
+ filter: 'blur(80px)',
40
+ } })] }));
41
+ }
42
+ //# sourceMappingURL=AnimatedBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedBackground.js","sourceRoot":"","sources":["../../../src/components/coming-soon/AnimatedBackground.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAUb,MAAM,UAAU,kBAAkB,CAAC,EACjC,eAAe,GAAG,SAAS,EAC3B,gBAAgB,GAAG,SAAS,EAC5B,kBAAkB,GAAG,WAAW,EAChC,iBAAiB,GAAG,WAAW,EAC/B,kBAAkB,GAAG,GAAG,GACA;IACxB,OAAO,CACL,eACE,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC,EAAE;YACX,QAAQ,EAAE,QAAQ;SACnB,aAED,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;oBACT,UAAU,EAAE,eAAe;iBAC5B,GACD,EAEF,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,uBAAuB;oBAClC,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,2BAA2B,gBAAgB,uBAAuB;oBAC9E,OAAO,EAAE,kBAAkB;oBAC3B,MAAM,EAAE,YAAY;iBACrB,GACD,EAEF,cACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,MAAM;oBACZ,SAAS,EAAE,uBAAuB;oBAClC,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,2BAA2B,kBAAkB,QAAQ,iBAAiB,wBAAwB;oBAC1G,MAAM,EAAE,YAAY;iBACrB,GACD,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface HeroTextProps {
2
+ text: string;
3
+ gradient?: string;
4
+ }
5
+ export declare function HeroText({ text, gradient, }: HeroTextProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=HeroText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroText.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/HeroText.tsx"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,QAA2I,GAC5I,EAAE,aAAa,2CA2Bf"}
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion } from 'framer-motion';
4
+ export function HeroText({ text, gradient = 'linear-gradient(70deg, #1B0637 0%, #210E3C 10%, #24113F 20%, #2E1A4B 35%, #3A2559 45%, #563F77 65%, #604882 80%, #765F97 100%)', }) {
5
+ return (_jsx(motion.h1, { initial: { opacity: 0, y: 40 }, animate: { opacity: 1, y: 0 }, transition: { duration: 1, delay: 0.3, ease: 'easeOut' }, style: {
6
+ fontSize: 'clamp(9rem, 22vw, 22rem)',
7
+ fontWeight: 650,
8
+ lineHeight: 0.9,
9
+ letterSpacing: '0.01em',
10
+ background: gradient,
11
+ WebkitBackgroundClip: 'text',
12
+ backgroundClip: 'text',
13
+ WebkitTextFillColor: 'transparent',
14
+ textAlign: 'center',
15
+ margin: 0,
16
+ marginTop: '-5vh',
17
+ padding: 0,
18
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif',
19
+ filter: 'drop-shadow(0 0 80px rgba(87, 84, 96, 0.3))',
20
+ }, children: text }));
21
+ }
22
+ //# sourceMappingURL=HeroText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroText.js","sourceRoot":"","sources":["../../../src/components/coming-soon/HeroText.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,QAAQ,GAAG,gIAAgI,GAC7H;IACd,OAAO,CACL,KAAC,MAAM,CAAC,EAAE,IACR,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAC9B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EACxD,KAAK,EAAE;YACL,QAAQ,EAAE,0BAA0B;YACpC,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EAAE,QAAQ;YACpB,oBAAoB,EAAE,MAAM;YAC5B,cAAc,EAAE,MAAM;YACtB,mBAAmB,EAAE,aAAa;YAClC,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,CAAC;YACV,UAAU,EACR,2FAA2F;YAC7F,MAAM,EAAE,6CAA6C;SACtD,YAEA,IAAI,GACK,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ interface LogoProps {
2
+ src: string;
3
+ alt: string;
4
+ }
5
+ export declare function Logo({ src, alt }: LogoProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Logo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/Logo.tsx"],"names":[],"mappings":"AAIA,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,2CAiB3C"}
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion } from 'framer-motion';
4
+ export function Logo({ src, alt }) {
5
+ return (_jsx(motion.div, { initial: { opacity: 0, y: -20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.8, ease: 'easeOut' }, className: "fixed left-8 top-8 z-50", children: _jsx("img", { src: src, alt: alt, width: 80, height: 80, className: "h-16 w-16 object-contain sm:h-20 sm:w-20" }) }));
6
+ }
7
+ //# sourceMappingURL=Logo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/components/coming-soon/Logo.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,MAAM,UAAU,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAa;IAC1C,OAAO,CACL,KAAC,MAAM,CAAC,GAAG,IACT,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAC/B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAC7B,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAC9C,SAAS,EAAC,yBAAyB,YAEnC,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,0CAA0C,GACpD,GACS,CACd,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from 'react';
2
+ interface SubtitleProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare function Subtitle({ children }: SubtitleProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=Subtitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subtitle.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/Subtitle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,aAAa,2CA2BnD"}
@@ -0,0 +1,22 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion } from 'framer-motion';
4
+ export function Subtitle({ children }) {
5
+ return (_jsx(motion.p, { initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 1, delay: 0.6, ease: 'easeOut' }, style: {
6
+ position: 'fixed',
7
+ bottom: '1.5vh',
8
+ left: '50%',
9
+ transform: 'translateX(-50%)',
10
+ fontSize: 'clamp(0.75rem, 1vw, 0.95rem)',
11
+ lineHeight: 1.4,
12
+ color: 'rgba(255, 255, 255, 0.52)',
13
+ textAlign: 'center',
14
+ maxWidth: '50rem',
15
+ padding: '0 2rem',
16
+ fontWeight: 400,
17
+ letterSpacing: '0.01em',
18
+ fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", sans-serif',
19
+ zIndex: 10,
20
+ }, children: children }));
21
+ }
22
+ //# sourceMappingURL=Subtitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subtitle.js","sourceRoot":"","sources":["../../../src/components/coming-soon/Subtitle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAOvC,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAiB;IAClD,OAAO,CACL,KAAC,MAAM,CAAC,CAAC,IACP,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EACxD,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,kBAAkB;YAC7B,QAAQ,EAAE,8BAA8B;YACxC,UAAU,EAAE,GAAG;YACf,KAAK,EAAE,2BAA2B;YAClC,SAAS,EAAE,QAAQ;YACnB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,GAAG;YACf,aAAa,EAAE,QAAQ;YACvB,UAAU,EACR,2FAA2F;YAC7F,MAAM,EAAE,EAAE;SACX,YAEA,QAAQ,GACA,CACZ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface TypewriterTextProps {
2
+ text: string;
3
+ }
4
+ export declare function TypewriterText({ text }: TypewriterTextProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=TypewriterText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypewriterText.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/TypewriterText.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,2CA+E3D"}
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { motion } from 'framer-motion';
4
+ import { useEffect, useRef, useState } from 'react';
5
+ export function TypewriterText({ text }) {
6
+ const [displayedText, setDisplayedText] = useState('');
7
+ const [currentIndex, setCurrentIndex] = useState(0);
8
+ const [showCursor, setShowCursor] = useState(true);
9
+ const timeoutRef = useRef(null);
10
+ // Reset typewriter when text prop changes
11
+ useEffect(() => {
12
+ if (timeoutRef.current) {
13
+ clearTimeout(timeoutRef.current);
14
+ timeoutRef.current = null;
15
+ }
16
+ setDisplayedText('');
17
+ setCurrentIndex(0);
18
+ }, [text]);
19
+ useEffect(() => {
20
+ if (currentIndex < text.length) {
21
+ const delay = currentIndex === 0 ? 2500 : 150;
22
+ timeoutRef.current = setTimeout(() => {
23
+ setDisplayedText(prev => prev + text[currentIndex]);
24
+ setCurrentIndex(prev => prev + 1);
25
+ }, delay);
26
+ return () => {
27
+ if (timeoutRef.current) {
28
+ clearTimeout(timeoutRef.current);
29
+ timeoutRef.current = null;
30
+ }
31
+ };
32
+ }
33
+ }, [currentIndex, text]);
34
+ useEffect(() => {
35
+ const cursorInterval = setInterval(() => {
36
+ setShowCursor(prev => !prev);
37
+ }, 530);
38
+ return () => clearInterval(cursorInterval);
39
+ }, []);
40
+ return (_jsxs(motion.div, { role: "status", "aria-live": "polite", "aria-atomic": "true", "aria-label": "Status message", initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { duration: 1, delay: 1.5 }, style: {
41
+ fontSize: 'clamp(1rem, 2vw, 1.5rem)',
42
+ fontWeight: 600,
43
+ letterSpacing: '0.3em',
44
+ color: '#8b7fb8',
45
+ textAlign: 'center',
46
+ fontFamily: '"Courier New", Courier, monospace',
47
+ marginTop: '3rem',
48
+ textTransform: 'uppercase',
49
+ }, children: [_jsx("span", { style: {
50
+ textShadow: '0 0 10px rgba(139, 127, 184, 0.5), 0 0 20px rgba(139, 127, 184, 0.3)',
51
+ }, children: displayedText }), _jsx("span", { "aria-hidden": "true", style: {
52
+ opacity: showCursor ? 1 : 0,
53
+ color: '#8b7fb8',
54
+ marginLeft: '2px',
55
+ }, children: "_" })] }));
56
+ }
57
+ //# sourceMappingURL=TypewriterText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypewriterText.js","sourceRoot":"","sources":["../../../src/components/coming-soon/TypewriterText.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
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';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/coming-soon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
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';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/coming-soon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export * from './components/ui';
2
- export * from './lib';
1
+ export * from './components/coming-soon';
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAGhC,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,3 @@
1
- // Export components
2
- export * from './components/ui';
3
- // Export utilities
4
- export * from './lib';
1
+ // Coming Soon Components
2
+ export * from './components/coming-soon';
5
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,0BAA0B,CAAC"}
@@ -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.24",
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
+ }
@@ -1,6 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: "npm"
4
- directory: "/"
5
- schedule:
6
- interval: "weekly"
@@ -1,71 +0,0 @@
1
- name: Publish npm Package
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- permissions:
9
- contents: write
10
- packages: write
11
-
12
- jobs:
13
- update-version:
14
- runs-on: ubuntu-latest
15
- if: ${{ github.actor != 'github-actions[bot]' }}
16
- outputs:
17
- version: ${{ steps.read_version.outputs.new_version }}
18
- steps:
19
- - name: Checkout
20
- uses: actions/checkout@v4
21
- with:
22
- persist-credentials: false
23
-
24
- - name: Configure Git Identity
25
- run: |
26
- git config user.name "github-actions[bot]"
27
- git config user.email "github-actions[bot]@users.noreply.github.com"
28
-
29
- - name: Read current version
30
- id: read_version
31
- run: |
32
- current=$(jq -r '.version' package.json)
33
- echo "current version: $current"
34
- IFS='.' read -r major minor patch <<< "$current"
35
- patch=$((patch + 1))
36
- new="$major.$minor.$patch"
37
- echo "new version: $new"
38
- echo "new_version=$new" >> $GITHUB_OUTPUT
39
-
40
- - name: Bump version in package.json
41
- run: |
42
- jq --arg v "${{ steps.read_version.outputs.new_version }}" '.version = $v' package.json > package.json.tmp
43
- mv package.json.tmp package.json
44
-
45
- - name: Commit & push version bump
46
- env:
47
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48
- run: |
49
- git remote set-url origin https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git
50
- git add package.json
51
- git diff --cached --quiet || git commit -m "chore: bump up version +0.0.1 [skip ci]"
52
- git push origin HEAD
53
-
54
- build:
55
- runs-on: ubuntu-latest
56
- needs: update-version
57
- permissions:
58
- contents: read
59
- packages: write
60
- steps:
61
- - uses: actions/checkout@v4
62
- - uses: actions/setup-node@v4
63
- with:
64
- node-version: '20.x'
65
- registry-url: 'https://registry.npmjs.org'
66
- - uses: pnpm/action-setup@v4
67
- - run: pnpm install
68
- - run: pnpm build
69
- - run: pnpm publish --no-git-checks
70
- env:
71
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -1,31 +0,0 @@
1
- on:
2
- schedule:
3
- - cron: '0 0 1 * *'
4
- workflow_dispatch:
5
-
6
- permissions:
7
- contents: write
8
- pull-requests: write
9
-
10
- jobs:
11
- repo-sync:
12
- runs-on: ubuntu-latest
13
- permissions:
14
- contents: write
15
- pull-requests: write
16
-
17
- steps:
18
- - name: Checkout
19
- uses: actions/checkout@v4
20
- with:
21
- token: ${{ secrets.GH_TOKEN }}
22
- persist-credentials: false
23
-
24
- - name: actions-template-sync
25
- uses: AndreasAugustin/actions-template-sync@v2
26
- with:
27
- git_user_name: Methika Fernando
28
- git_user_email: methikafernando2006@gmail.com
29
- source_gh_token: ${{ secrets.GH_TOKEN }}
30
- target_gh_token: ${{ secrets.GH_TOKEN }}
31
- source_repo_path: CROW-B3/npm-sdk-template
package/.husky/commit-msg DELETED
@@ -1 +0,0 @@
1
- npx commitlint --edit $1
package/.husky/pre-commit DELETED
@@ -1 +0,0 @@
1
- pnpm run lint-staged
package/.prettierrc DELETED
@@ -1,13 +0,0 @@
1
- {
2
- "semi": true,
3
- "trailingComma": "es5",
4
- "singleQuote": true,
5
- "tabWidth": 2,
6
- "useTabs": false,
7
- "printWidth": 80,
8
- "bracketSpacing": true,
9
- "arrowParens": "avoid",
10
- "endOfLine": "lf",
11
- "jsxSingleQuote": false,
12
- "bracketSameLine": false
13
- }
@@ -1,4 +0,0 @@
1
- module.exports = {
2
- extends: ['@commitlint/config-conventional'],
3
- rules: {},
4
- };
@@ -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"}
@@ -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"}
package/eslint.config.mts DELETED
@@ -1,7 +0,0 @@
1
- import antfu from "@antfu/eslint-config";
2
-
3
- export default antfu({
4
- react: true,
5
- typescript: true,
6
- stylistic: false,
7
- });
package/lint-staged DELETED
File without changes
@@ -1,5 +0,0 @@
1
- export default {
2
- plugins: {
3
- "@tailwindcss/postcss": {},
4
- },
5
- }
@@ -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/index.ts DELETED
@@ -1,5 +0,0 @@
1
- // Export components
2
- export * from './components/ui';
3
-
4
- // Export utilities
5
- export * from './lib';
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
- }
package/tsconfig.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "ESNext",
5
- "moduleResolution": "Node",
6
- "strict": true,
7
- "esModuleInterop": true,
8
- "forceConsistentCasingInFileNames": true,
9
- "skipLibCheck": true,
10
- "resolveJsonModule": true,
11
- "outDir": "dist",
12
- "declaration": true,
13
- "declarationMap": true,
14
- "sourceMap": true,
15
- "jsx": "react-jsx",
16
- "baseUrl": ".",
17
- "paths": {
18
- "@/*": ["./src/*"]
19
- }
20
- },
21
- "include": ["src/**/*"],
22
- "exclude": ["node_modules", "dist"]
23
- }