@b3-crow/ui-kit 0.0.23 → 0.0.25

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 (82) hide show
  1. package/README.md +83 -35
  2. package/dist/components/AnimatedBackground.d.ts +9 -0
  3. package/dist/components/AnimatedBackground.d.ts.map +1 -0
  4. package/dist/components/AnimatedBackground.js +43 -0
  5. package/dist/components/AnimatedBackground.js.map +1 -0
  6. package/dist/components/Button.d.ts +15 -0
  7. package/dist/components/Button.d.ts.map +1 -0
  8. package/dist/components/Button.js +26 -0
  9. package/dist/components/Button.js.map +1 -0
  10. package/dist/components/Card.d.ts +22 -0
  11. package/dist/components/Card.d.ts.map +1 -0
  12. package/dist/components/Card.js +50 -0
  13. package/dist/components/Card.js.map +1 -0
  14. package/dist/components/Globe.d.ts +14 -0
  15. package/dist/components/Globe.d.ts.map +1 -0
  16. package/dist/components/Globe.js +67 -0
  17. package/dist/components/Globe.js.map +1 -0
  18. package/dist/components/GradientBackground.d.ts +16 -0
  19. package/dist/components/GradientBackground.d.ts.map +1 -0
  20. package/dist/components/GradientBackground.js +18 -0
  21. package/dist/components/GradientBackground.js.map +1 -0
  22. package/dist/components/HeroText.d.ts +6 -0
  23. package/dist/components/HeroText.d.ts.map +1 -0
  24. package/dist/components/HeroText.js +22 -0
  25. package/dist/components/HeroText.js.map +1 -0
  26. package/dist/components/InputField.d.ts +25 -0
  27. package/dist/components/InputField.d.ts.map +1 -0
  28. package/dist/components/InputField.js +73 -0
  29. package/dist/components/InputField.js.map +1 -0
  30. package/dist/components/Logo.d.ts +6 -0
  31. package/dist/components/Logo.d.ts.map +1 -0
  32. package/dist/components/Logo.js +7 -0
  33. package/dist/components/Logo.js.map +1 -0
  34. package/dist/components/SectionLabel.d.ts +7 -0
  35. package/dist/components/SectionLabel.d.ts.map +1 -0
  36. package/dist/components/SectionLabel.js +11 -0
  37. package/dist/components/SectionLabel.js.map +1 -0
  38. package/dist/components/Subtitle.d.ts +6 -0
  39. package/dist/components/Subtitle.d.ts.map +1 -0
  40. package/dist/components/Subtitle.js +18 -0
  41. package/dist/components/Subtitle.js.map +1 -0
  42. package/dist/components/TypewriterText.d.ts +5 -0
  43. package/dist/components/TypewriterText.d.ts.map +1 -0
  44. package/dist/components/TypewriterText.js +57 -0
  45. package/dist/components/TypewriterText.js.map +1 -0
  46. package/dist/components/index.d.ts +12 -0
  47. package/dist/components/index.d.ts.map +1 -0
  48. package/dist/components/index.js +12 -0
  49. package/dist/components/index.js.map +1 -0
  50. package/dist/index.d.ts +3 -0
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +5 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/lib/utils.d.ts +3 -0
  55. package/dist/lib/utils.d.ts.map +1 -0
  56. package/dist/lib/utils.js +6 -0
  57. package/dist/lib/utils.js.map +1 -0
  58. package/dist/styles.css +2 -0
  59. package/docs/components.md +265 -0
  60. package/docs/development.md +291 -0
  61. package/docs/examples.md +333 -0
  62. package/docs/setup.md +73 -0
  63. package/package.json +9 -4
  64. package/.github/dependabot.yml +0 -6
  65. package/.github/workflows/publish.yml +0 -75
  66. package/.github/workflows/template-sync.yml +0 -31
  67. package/.husky/commit-msg +0 -1
  68. package/.husky/pre-commit +0 -1
  69. package/.prettierrc +0 -13
  70. package/bun.lock +0 -1042
  71. package/commitlint.config.cjs +0 -4
  72. package/eslint.config.mts +0 -7
  73. package/lint-staged +0 -0
  74. package/postcss.config.mjs +0 -5
  75. package/src/components/coming-soon/AnimatedBackground.tsx +0 -71
  76. package/src/components/coming-soon/HeroText.tsx +0 -40
  77. package/src/components/coming-soon/Logo.tsx +0 -27
  78. package/src/components/coming-soon/Subtitle.tsx +0 -37
  79. package/src/components/coming-soon/TypewriterText.tsx +0 -89
  80. package/src/components/coming-soon/index.ts +0 -5
  81. package/src/index.ts +0 -2
  82. package/tsconfig.json +0 -23
package/README.md CHANGED
@@ -1,71 +1,118 @@
1
1
  # CROW-B3 UI Kit
2
2
 
3
- CROW-B3 UI Kit is a set of UI components for CROW-B3 projects.
4
- A React component library built with Framer Motion for smooth animations.
3
+ A modern React component library built with Framer Motion for smooth animations and designed for dark-themed web applications.
5
4
 
6
- ## Preview
5
+ ![Coming Soon Page](https://raw.githubusercontent.com/CROW-B3/ui-kit/main/docs/screenshot.svg)
7
6
 
8
- ![Coming Soon Page](./docs/screenshot.svg)
7
+ ## Features
9
8
 
10
- ## Installation
9
+ - 🎨 Beautiful animated components for hero sections and landing pages
10
+ - 🌙 Designed for dark themes with elegant gradients
11
+ - ⚡ Built with performance in mind using Framer Motion
12
+ - 📦 TypeScript support with full type definitions
13
+ - 🎯 Tailwind CSS v4 compatible
14
+ - 🔧 Easy to customize and extend
11
15
 
12
- ```bash
13
- bun add @b3-crow/ui-kit
14
- ```
16
+ ## Quick Start
15
17
 
16
- ## Local Development
18
+ ### Installation
17
19
 
18
- ```json
19
- "@b3-crow/ui-kit": "file:../ui-kit"
20
+ ```bash
21
+ bun add @b3-crow/ui-kit
20
22
  ```
21
23
 
22
- ## Setup
24
+ ### Install Dependencies
23
25
 
24
- ### 1. Install Peer Dependencies
26
+ This library requires React 19.2.0 or later. Ensure your application has React installed:
25
27
 
26
28
  ```bash
27
- bun add react react-dom framer-motion
29
+ # If you haven't installed React yet
30
+ bun add react@^19.2.0 react-dom@^19.2.0
28
31
  ```
29
32
 
30
- ## Usage
33
+ Then install the UI kit's dependencies:
31
34
 
32
- ### Coming Soon Components
35
+ ```bash
36
+ bun add framer-motion react-icons cobe
37
+ ```
33
38
 
34
- The UI kit includes a complete Coming Soon page with animated components:
39
+ ### Basic Usage
35
40
 
36
41
  ```tsx
37
42
  import {
38
43
  AnimatedBackground,
39
44
  HeroText,
40
- Logo,
41
45
  TypewriterText,
42
46
  Subtitle,
43
47
  } from '@b3-crow/ui-kit';
44
48
 
45
49
  function App() {
46
50
  return (
47
- <div>
51
+ <section
52
+ style={{
53
+ position: 'relative',
54
+ minHeight: '100vh',
55
+ display: 'flex',
56
+ flexDirection: 'column',
57
+ justifyContent: 'center',
58
+ alignItems: 'center',
59
+ }}
60
+ >
48
61
  <AnimatedBackground />
49
- <Logo src="/your-logo.png" alt="Your Logo" />
50
62
  <HeroText text="Your Brand" />
51
63
  <TypewriterText text="COMING SOON" />
52
- <Subtitle>
53
- Your subtitle text here
54
- <br />
55
- Can be multi-line with custom formatting
56
- </Subtitle>
57
- </div>
64
+ <Subtitle>Building something amazing</Subtitle>
65
+ </section>
58
66
  );
59
67
  }
60
68
  ```
61
69
 
62
- ### Available Components
70
+ ## Components
71
+
72
+ ### Hero Components
73
+
74
+ - **AnimatedBackground** - Animated gradient background
75
+ - **HeroText** - Large gradient text with fade-in
76
+ - **Logo** - Animated logo with breathing effect
77
+ - **TypewriterText** - Typewriter effect with cursor
78
+ - **Subtitle** - Subtitle text with fade-in
79
+
80
+ ### UI Components
81
+
82
+ - **Button** - Customizable button with variants
83
+ - **Card** - Feature and documentation cards
84
+ - **Globe** - Interactive 3D globe
85
+ - **GradientBackground** - Radial gradient effects
86
+ - **SectionLabel** - Animated section labels
87
+ - **InputField** - Input with submit button
88
+
89
+ ## Documentation
90
+
91
+ - **[Setup Guide](./docs/setup.md)** - Installation and configuration
92
+ - **[Component Reference](./docs/components.md)** - Complete API documentation
93
+ - **[Usage Examples](./docs/examples.md)** - Code examples and patterns
94
+ - **[Development Guide](./docs/development.md)** - Contributing and building
95
+
96
+ ## Local Development
97
+
98
+ Link the package for local development:
99
+
100
+ ```json
101
+ {
102
+ "dependencies": {
103
+ "@b3-crow/ui-kit": "file:../ui-kit"
104
+ }
105
+ }
106
+ ```
107
+
108
+ For Next.js projects:
63
109
 
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)
110
+ ```ts
111
+ // next.config.ts
112
+ export default {
113
+ transpilePackages: ['@b3-crow/ui-kit'],
114
+ };
115
+ ```
69
116
 
70
117
  ## Development
71
118
 
@@ -76,10 +123,11 @@ bun install
76
123
  # Build the library
77
124
  bun run build
78
125
 
79
- # Lint
80
- bun run lint
126
+ # Watch mode
127
+ bun run build:watch
81
128
 
82
- # Format
129
+ # Lint and format
130
+ bun run lint
83
131
  bun run format
84
132
  ```
85
133
 
@@ -0,0 +1,9 @@
1
+ export 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
+ //# sourceMappingURL=AnimatedBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedBackground.d.ts","sourceRoot":"","sources":["../../src/components/AnimatedBackground.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,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,2CAuDzB"}
@@ -0,0 +1,43 @@
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: 'absolute',
6
+ top: 0,
7
+ left: 0,
8
+ right: 0,
9
+ bottom: 0,
10
+ zIndex: -10,
11
+ overflow: 'hidden',
12
+ pointerEvents: 'none',
13
+ }, children: [_jsx("div", { style: {
14
+ position: 'absolute',
15
+ top: 0,
16
+ left: 0,
17
+ right: 0,
18
+ bottom: 0,
19
+ background: backgroundColor,
20
+ } }), _jsx("div", { style: {
21
+ position: 'absolute',
22
+ top: '50%',
23
+ left: '100%',
24
+ transform: 'translate(-50%, -50%)',
25
+ width: '1700px',
26
+ height: '900px',
27
+ borderRadius: '50%',
28
+ background: `radial-gradient(circle, ${primaryGlowColor} 0%, transparent 70%)`,
29
+ opacity: primaryGlowOpacity,
30
+ filter: 'blur(40px)',
31
+ } }), _jsx("div", { style: {
32
+ position: 'absolute',
33
+ top: '50%',
34
+ left: '100%',
35
+ transform: 'translate(-50%, -50%)',
36
+ width: '500px',
37
+ height: '400px',
38
+ borderRadius: '50%',
39
+ background: `radial-gradient(circle, ${secondaryGlowColor} 0%, ${tertiaryGlowColor} 40%, transparent 65%)`,
40
+ filter: 'blur(80px)',
41
+ } })] }));
42
+ }
43
+ //# sourceMappingURL=AnimatedBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedBackground.js","sourceRoot":"","sources":["../../src/components/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,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC,EAAE;YACX,QAAQ,EAAE,QAAQ;YAClB,aAAa,EAAE,MAAM;SACtB,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,15 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ declare const buttonVariants: (props?: ({
3
+ variant?: "outline" | "solid" | null | undefined;
4
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
+ export interface ButtonProps extends VariantProps<typeof buttonVariants> {
6
+ children: React.ReactNode;
7
+ onClick?: () => void;
8
+ href?: string;
9
+ showArrow?: boolean;
10
+ className?: string;
11
+ arrowClassName?: string;
12
+ }
13
+ export declare function Button({ children, onClick, href, variant, showArrow, className, arrowClassName, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,cAAc;;mFAcnB,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IACtE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,MAAM,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAmB,EACnB,SAAgB,EAChB,SAAc,EACd,cAAmB,GACpB,EAAE,WAAW,2CA+Bb"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { LuArrowUpRight } from 'react-icons/lu';
4
+ import { cva } from 'class-variance-authority';
5
+ import { cn } from '../lib/utils';
6
+ const buttonVariants = cva('px-4 py-2 rounded-full transition-all text-sm font-medium flex items-center gap-2 w-fit', {
7
+ variants: {
8
+ variant: {
9
+ outline: 'border border-white/30 text-white/90 hover:text-white hover:border-white/50 group-hover:bg-white/5',
10
+ solid: 'bg-purple-600 text-white hover:bg-purple-700',
11
+ },
12
+ },
13
+ defaultVariants: {
14
+ variant: 'outline',
15
+ },
16
+ });
17
+ export function Button({ children, onClick, href, variant = 'outline', showArrow = true, className = '', arrowClassName = '', }) {
18
+ const buttonContent = (_jsxs(_Fragment, { children: [children, showArrow && (_jsx(LuArrowUpRight, { className: cn('w-4 h-4', arrowClassName) }))] }));
19
+ const buttonClasses = cn(buttonVariants({ variant }), className);
20
+ if (href) {
21
+ const isExternal = href.startsWith('http');
22
+ return (_jsx("a", { href: href, className: buttonClasses, target: isExternal ? '_blank' : undefined, rel: isExternal ? 'noopener noreferrer' : undefined, children: buttonContent }));
23
+ }
24
+ return (_jsx("button", { onClick: onClick, className: buttonClasses, children: buttonContent }));
25
+ }
26
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,MAAM,cAAc,GAAG,GAAG,CACxB,yFAAyF,EACzF;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,oGAAoG;YACtG,KAAK,EAAE,8CAA8C;SACtD;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAWF,MAAM,UAAU,MAAM,CAAC,EACrB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,OAAO,GAAG,SAAS,EACnB,SAAS,GAAG,IAAI,EAChB,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,EAAE,GACP;IACZ,MAAM,aAAa,GAAG,CACpB,8BACG,QAAQ,EACR,SAAS,IAAI,CACZ,KAAC,cAAc,IAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,GAAI,CAC7D,IACA,CACJ,CAAC;IAEF,MAAM,aAAa,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IAEjE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,OAAO,CACL,YACE,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACzC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,YAElD,aAAa,GACZ,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,iBAAQ,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,YAC/C,aAAa,GACP,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ declare const cardVariants: (props?: ({
3
+ border?: "none" | "first" | "middle" | "last" | null | undefined;
4
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
+ export interface CardProps extends VariantProps<typeof cardVariants> {
6
+ title: string;
7
+ description: string;
8
+ icon?: React.ReactNode;
9
+ button?: React.ReactNode;
10
+ index: number;
11
+ isFirst?: boolean;
12
+ isLast?: boolean;
13
+ layout?: 'feature' | 'documentation';
14
+ className?: string;
15
+ titleClassName?: string;
16
+ descriptionClassName?: string;
17
+ iconClassName?: string;
18
+ contentAlign?: 'left' | 'center';
19
+ }
20
+ export declare function Card({ title, description, icon, button, index, isFirst, isLast, layout, className, titleClassName, descriptionClassName, iconClassName, contentAlign, }: CardProps): import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,YAAY;;mFAejB,CAAC;AA+BF,MAAM,WAAW,SAAU,SAAQ,YAAY,CAAC,OAAO,YAAY,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,GAAG,eAAe,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAClC;AAED,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAe,EACf,MAAc,EACd,MAAkB,EAClB,SAAc,EACd,cAAmB,EACnB,oBAAyB,EACzB,aAAkB,EAClB,YAAqB,GACtB,EAAE,SAAS,2CAsDX"}
@@ -0,0 +1,50 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { motion } from 'framer-motion';
4
+ import { cva } from 'class-variance-authority';
5
+ import { cn } from '../lib/utils';
6
+ const cardVariants = cva('relative p-8 flex flex-col h-full bg-black/40 backdrop-blur-sm group border-white/10', {
7
+ variants: {
8
+ border: {
9
+ first: 'border-l border-r',
10
+ middle: 'border-r',
11
+ last: 'border-r',
12
+ none: '',
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ border: 'none',
17
+ },
18
+ });
19
+ const contentVariants = cva('', {
20
+ variants: {
21
+ align: {
22
+ left: 'text-left',
23
+ center: 'text-center',
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ align: 'left',
28
+ },
29
+ });
30
+ const descriptionVariants = cva('text-sm leading-relaxed mb-8', {
31
+ variants: {
32
+ layout: {
33
+ feature: '',
34
+ documentation: 'flex-grow',
35
+ },
36
+ align: {
37
+ left: 'text-left',
38
+ center: 'text-center',
39
+ },
40
+ },
41
+ defaultVariants: {
42
+ layout: 'feature',
43
+ align: 'left',
44
+ },
45
+ });
46
+ export function Card({ title, description, icon, button, index, isFirst = false, isLast = false, layout = 'feature', className = '', titleClassName = '', descriptionClassName = '', iconClassName = '', contentAlign = 'left', }) {
47
+ const borderVariant = isFirst ? 'first' : isLast ? 'last' : 'middle';
48
+ return (_jsxs(motion.div, { className: cn(cardVariants({ border: borderVariant }), className), initial: { opacity: 0, y: 20 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true }, transition: { duration: 0.6, delay: index * 0.2 }, children: [layout === 'documentation' && icon && (_jsx("div", { className: cn('flex items-center justify-center mb-6', iconClassName), children: _jsx("div", { className: "text-white/80", children: icon }) })), _jsx("h3", { className: cn('text-2xl font-semibold text-white mb-3', contentVariants({ align: contentAlign }), titleClassName), children: title }), _jsx("p", { className: cn(descriptionVariants({ layout, align: contentAlign }), descriptionClassName), children: description }), layout === 'feature' && icon && (_jsx("div", { className: cn('flex-grow flex items-center justify-center my-8', iconClassName), children: _jsx("div", { className: "w-full h-28 flex items-center justify-center", children: icon }) })), button && _jsx("div", { className: "flex justify-center", children: button })] }));
49
+ }
50
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface GlobePoint {
2
+ label: string;
3
+ icon: React.ReactNode;
4
+ position: {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ }
9
+ export interface GlobeProps {
10
+ points?: GlobePoint[];
11
+ size?: number;
12
+ }
13
+ export declare function Globe({ points, size }: GlobeProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=Globe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Globe.d.ts","sourceRoot":"","sources":["../../src/components/Globe.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,KAAK,CAAC,EAAE,MAAM,EAAE,IAAU,EAAE,EAAE,UAAU,2CAiGvD"}
@@ -0,0 +1,67 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import createGlobe from 'cobe';
4
+ import { useEffect, useRef } from 'react';
5
+ import { motion } from 'framer-motion';
6
+ import { HiOutlineShare } from 'react-icons/hi';
7
+ import { BsGlobe2 } from 'react-icons/bs';
8
+ import { BiCctv } from 'react-icons/bi';
9
+ export function Globe({ points, size = 500 }) {
10
+ const canvasRef = useRef(null);
11
+ const defaultPoints = [
12
+ {
13
+ label: 'Internet',
14
+ icon: _jsx(BsGlobe2, { className: "text-xl" }),
15
+ position: { x: 50, y: 25 },
16
+ },
17
+ {
18
+ label: 'CCTV',
19
+ icon: _jsx(BiCctv, { className: "text-xl" }),
20
+ position: { x: 25, y: 50 },
21
+ },
22
+ {
23
+ label: 'Social Media',
24
+ icon: _jsx(HiOutlineShare, { className: "text-xl" }),
25
+ position: { x: 75, y: 55 },
26
+ },
27
+ ];
28
+ const displayPoints = points || defaultPoints;
29
+ useEffect(() => {
30
+ let phi = 0;
31
+ if (!canvasRef.current)
32
+ return;
33
+ const globe = createGlobe(canvasRef.current, {
34
+ devicePixelRatio: 2,
35
+ width: size * 2,
36
+ height: size * 2,
37
+ phi: 0,
38
+ theta: 0,
39
+ dark: 1,
40
+ diffuse: 1.2,
41
+ mapSamples: 16000,
42
+ mapBrightness: 6,
43
+ baseColor: [0.1, 0.1, 0.1],
44
+ markerColor: [0.54, 0.68, 1],
45
+ glowColor: [0.2, 0.2, 0.3],
46
+ markers: [],
47
+ onRender: state => {
48
+ // Auto-rotate the globe
49
+ state.phi = phi;
50
+ phi += 0.003;
51
+ },
52
+ });
53
+ return () => {
54
+ globe.destroy();
55
+ };
56
+ }, [size]);
57
+ return (_jsxs("div", { className: "relative", style: { width: size, height: size }, children: [_jsx("canvas", { ref: canvasRef, style: {
58
+ width: size,
59
+ height: size,
60
+ maxWidth: '100%',
61
+ aspectRatio: '1',
62
+ } }), displayPoints.map((point, index) => (_jsx(motion.div, { className: "absolute -translate-x-1/2 -translate-y-1/2", style: {
63
+ left: `${point.position.x}%`,
64
+ top: `${point.position.y}%`,
65
+ }, initial: { opacity: 0, scale: 0 }, animate: { opacity: 1, scale: 1 }, transition: { delay: 0.5 + index * 0.2 }, children: _jsxs("div", { className: "relative group", children: [_jsx("div", { className: "w-14 h-14 rounded-full bg-black/60 border border-white/40 backdrop-blur-sm flex items-center justify-center group-hover:border-white/60 transition-colors text-white", children: point.icon }), _jsx("div", { className: "absolute top-full mt-2 left-1/2 -translate-x-1/2 whitespace-nowrap", children: _jsx("span", { className: "text-xs text-white/70 font-medium", children: point.label }) })] }) }, point.label)))] }));
66
+ }
67
+ //# sourceMappingURL=Globe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Globe.js","sourceRoot":"","sources":["../../src/components/Globe.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,WAAW,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAaxC,MAAM,UAAU,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,GAAG,EAAc;IACtD,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAElD,MAAM,aAAa,GAAiB;QAClC;YACE,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG;YACtC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SAC3B;QACD;YACE,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG;YACpC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SAC3B;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,GAAG;YAC5C,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;SAC3B;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,MAAM,IAAI,aAAa,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,GAAG,CAAC,CAAC;QAEZ,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAO;QAE/B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,EAAE;YAC3C,gBAAgB,EAAE,CAAC;YACnB,KAAK,EAAE,IAAI,GAAG,CAAC;YACf,MAAM,EAAE,IAAI,GAAG,CAAC;YAChB,GAAG,EAAE,CAAC;YACN,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,CAAC;YAChB,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC1B,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;YAC1B,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,wBAAwB;gBACxB,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;gBAChB,GAAG,IAAI,KAAK,CAAC;YACf,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAE5D,iBACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,MAAM;oBAChB,WAAW,EAAE,GAAG;iBACjB,GACD,EAGD,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACnC,KAAC,MAAM,CAAC,GAAG,IAET,SAAS,EAAC,4CAA4C,EACtD,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG;oBAC5B,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG;iBAC5B,EACD,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACjC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EACjC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,YAExC,eAAK,SAAS,EAAC,gBAAgB,aAE7B,cAAK,SAAS,EAAC,sKAAsK,YAClL,KAAK,CAAC,IAAI,GACP,EAGN,cAAK,SAAS,EAAC,oEAAoE,YACjF,eAAM,SAAS,EAAC,mCAAmC,YAChD,KAAK,CAAC,KAAK,GACP,GACH,IACF,IAtBD,KAAK,CAAC,KAAK,CAuBL,CACd,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface GradientBackgroundProps {
2
+ position?: 'top' | 'bottom';
3
+ offset?: string;
4
+ width?: string;
5
+ height?: string;
6
+ colors?: {
7
+ start: string;
8
+ middle1: string;
9
+ middle2: string;
10
+ middle3: string;
11
+ };
12
+ blur?: string;
13
+ className?: string;
14
+ }
15
+ export declare function GradientBackground({ position, offset, width, height, colors, blur, className, }: GradientBackgroundProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=GradientBackground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GradientBackground.d.ts","sourceRoot":"","sources":["../../src/components/GradientBackground.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,QAAgB,EAChB,MAAe,EACf,KAAc,EACd,MAAgB,EAChB,MAKC,EACD,IAAa,EACb,SAAc,GACf,EAAE,uBAAuB,2CAezB"}
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export function GradientBackground({ position = 'top', offset = '-70%', width = '130%', height = '100vh', colors = {
4
+ start: 'rgba(60, 40, 100, 0.9)',
5
+ middle1: 'rgba(50, 30, 80, 0.7)',
6
+ middle2: 'rgba(40, 20, 70, 0.6)',
7
+ middle3: 'rgba(30, 15, 50, 0.4)',
8
+ }, blur = '60px', className = '', }) {
9
+ const background = `radial-gradient(circle at center, ${colors.start}, ${colors.middle1} 25%, ${colors.middle2} 45%, ${colors.middle3} 65%, transparent 80%)`;
10
+ return (_jsx("div", { className: `absolute left-1/2 -translate-x-1/2 pointer-events-none ${className}`, style: {
11
+ [position]: offset,
12
+ width,
13
+ height,
14
+ background,
15
+ filter: `blur(${blur})`,
16
+ } }));
17
+ }
18
+ //# sourceMappingURL=GradientBackground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GradientBackground.js","sourceRoot":"","sources":["../../src/components/GradientBackground.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAiBb,MAAM,UAAU,kBAAkB,CAAC,EACjC,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,MAAM,EACf,KAAK,GAAG,MAAM,EACd,MAAM,GAAG,OAAO,EAChB,MAAM,GAAG;IACP,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,uBAAuB;IAChC,OAAO,EAAE,uBAAuB;CACjC,EACD,IAAI,GAAG,MAAM,EACb,SAAS,GAAG,EAAE,GACU;IACxB,MAAM,UAAU,GAAG,qCAAqC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,wBAAwB,CAAC;IAE9J,OAAO,CACL,cACE,SAAS,EAAE,0DAA0D,SAAS,EAAE,EAChF,KAAK,EAAE;YACL,CAAC,QAAQ,CAAC,EAAE,MAAM;YAClB,KAAK;YACL,MAAM;YACN,UAAU;YACV,MAAM,EAAE,QAAQ,IAAI,GAAG;SACxB,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export interface HeroTextProps {
2
+ text: string;
3
+ gradient?: string;
4
+ }
5
+ export declare function HeroText({ text, gradient, }: HeroTextProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=HeroText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroText.d.ts","sourceRoot":"","sources":["../../src/components/HeroText.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,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/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,25 @@
1
+ import { type VariantProps } from 'class-variance-authority';
2
+ declare const inputVariants: (props?: ({
3
+ variant?: "transparent" | "filled" | null | undefined;
4
+ size?: "sm" | "md" | "lg" | null | undefined;
5
+ buttonPosition?: "left" | "right" | "none" | null | undefined;
6
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
7
+ export interface InputFieldProps extends Omit<VariantProps<typeof inputVariants>, 'buttonPosition'> {
8
+ placeholder?: string;
9
+ onSubmit?: (value: string) => void;
10
+ onChange?: (value: string) => void;
11
+ value?: string;
12
+ defaultValue?: string;
13
+ showButton?: boolean;
14
+ buttonIcon?: React.ReactNode;
15
+ buttonPosition?: 'left' | 'right';
16
+ className?: string;
17
+ inputClassName?: string;
18
+ buttonClassName?: string;
19
+ containerClassName?: string;
20
+ disabled?: boolean;
21
+ type?: string;
22
+ }
23
+ export declare function InputField({ placeholder, onSubmit, onChange, value: controlledValue, defaultValue, showButton, buttonIcon, buttonPosition, variant, size, className, inputClassName, buttonClassName, containerClassName, disabled, type, }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=InputField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputField.d.ts","sourceRoot":"","sources":["../../src/components/InputField.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,aAAa;;;;mFA0BlB,CAAC;AAuBF,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,CAAC,EACzB,WAAoC,EACpC,QAAQ,EACR,QAAQ,EACR,KAAK,EAAE,eAAe,EACtB,YAAiB,EACjB,UAAiB,EACjB,UAA8D,EAC9D,cAAwB,EACxB,OAAuB,EACvB,IAAW,EACX,SAAc,EACd,cAAmB,EACnB,eAAoB,EACpB,kBAAuB,EACvB,QAAgB,EAChB,IAAa,GACd,EAAE,eAAe,2CA0DjB"}