@ereactthohir/rice-ui 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +292 -0
  2. package/dist/components/Accordion.d.ts +16 -0
  3. package/dist/components/Accordion.d.ts.map +1 -0
  4. package/dist/components/Accordion.js +74 -0
  5. package/dist/components/Accordion.js.map +1 -0
  6. package/dist/components/Alert.d.ts +12 -0
  7. package/dist/components/Alert.d.ts.map +1 -0
  8. package/dist/components/Alert.js +96 -0
  9. package/dist/components/Alert.js.map +1 -0
  10. package/dist/components/Badge.d.ts +10 -0
  11. package/dist/components/Badge.d.ts.map +1 -0
  12. package/dist/components/Badge.js +35 -0
  13. package/dist/components/Badge.js.map +1 -0
  14. package/dist/components/Button.d.ts +9 -0
  15. package/dist/components/Button.d.ts.map +1 -0
  16. package/dist/components/Button.js +29 -0
  17. package/dist/components/Button.js.map +1 -0
  18. package/dist/components/Card.d.ts +10 -0
  19. package/dist/components/Card.d.ts.map +1 -0
  20. package/dist/components/Card.js +17 -0
  21. package/dist/components/Card.js.map +1 -0
  22. package/dist/components/Dropdown.d.ts +18 -0
  23. package/dist/components/Dropdown.d.ts.map +1 -0
  24. package/dist/components/Dropdown.js +81 -0
  25. package/dist/components/Dropdown.js.map +1 -0
  26. package/dist/components/Input.d.ts +8 -0
  27. package/dist/components/Input.d.ts.map +1 -0
  28. package/dist/components/Input.js +56 -0
  29. package/dist/components/Input.js.map +1 -0
  30. package/dist/components/Layout.d.ts +9 -0
  31. package/dist/components/Layout.d.ts.map +1 -0
  32. package/dist/components/Layout.js +18 -0
  33. package/dist/components/Layout.js.map +1 -0
  34. package/dist/components/Modal.d.ts +11 -0
  35. package/dist/components/Modal.d.ts.map +1 -0
  36. package/dist/components/Modal.js +36 -0
  37. package/dist/components/Modal.js.map +1 -0
  38. package/dist/components/Progress.d.ts +14 -0
  39. package/dist/components/Progress.d.ts.map +1 -0
  40. package/dist/components/Progress.js +49 -0
  41. package/dist/components/Progress.js.map +1 -0
  42. package/dist/components/Skeleton.d.ts +9 -0
  43. package/dist/components/Skeleton.d.ts.map +1 -0
  44. package/dist/components/Skeleton.js +22 -0
  45. package/dist/components/Skeleton.js.map +1 -0
  46. package/dist/components/Table.d.ts +13 -0
  47. package/dist/components/Table.d.ts.map +1 -0
  48. package/dist/components/Table.js +19 -0
  49. package/dist/components/Table.js.map +1 -0
  50. package/dist/components/Tabs.d.ts +17 -0
  51. package/dist/components/Tabs.d.ts.map +1 -0
  52. package/dist/components/Tabs.js +91 -0
  53. package/dist/components/Tabs.js.map +1 -0
  54. package/dist/components/Toast.d.ts +9 -0
  55. package/dist/components/Toast.d.ts.map +1 -0
  56. package/dist/components/Toast.js +60 -0
  57. package/dist/components/Toast.js.map +1 -0
  58. package/dist/index.d.ts +17 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +35 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/styles/index.d.ts +8 -0
  63. package/dist/styles/index.d.ts.map +1 -0
  64. package/dist/styles/index.js +52 -0
  65. package/dist/styles/index.js.map +1 -0
  66. package/package.json +26 -0
package/README.md ADDED
@@ -0,0 +1,292 @@
1
+ # 🍚 Rice UI - The Most Powerful CSS Framework for EreactThohir
2
+
3
+ Rice UI is the default and most powerful CSS framework for EreactThohir, designed to be **more comprehensive and feature-rich than Tailwind CSS**.
4
+
5
+ ## ✨ Why Rice UI?
6
+
7
+ ### **Advantages over Tailwind CSS:**
8
+
9
+ 1. **🎨 Glassmorphism Built-in** - Advanced visual effects out of the box
10
+ 2. **🎭 Custom Animations** - Fade-in, slide-up, pulse, spin, and gradient animations
11
+ 3. **🌈 Advanced Gradients** - Rainbow, sunset, and custom gradient utilities
12
+ 4. **🎯 CSS Variables** - Easy theme customization with CSS custom properties
13
+ 5. **📦 Comprehensive Components** - 14+ pre-built components
14
+ 6. **🚀 Zero Configuration** - Works immediately without build step
15
+ 7. **💪 TypeScript Support** - Full type safety for all components
16
+ 8. **🌙 Dark Mode Ready** - Built-in support for dark themes
17
+
18
+ ## 📦 Components
19
+
20
+ Rice UI includes 14+ production-ready components:
21
+
22
+ ### Core Components
23
+ - **Button** - Multiple variants (primary, outline, ghost, danger)
24
+ - **Input** - Text inputs with labels and descriptions
25
+ - **Card** - Container component with title and description
26
+ - **Badge** - Status indicators with multiple variants
27
+ - **Modal** - Accessible dialog component
28
+ - **Toast** - Notification system
29
+ - **Table** - Data table with sorting and pagination
30
+ - **Skeleton** - Loading placeholders
31
+
32
+ ### Advanced Components (NEW!)
33
+ - **Dropdown** - Select component with search and icons
34
+ - **Tabs** - Tab navigation with 3 variants (default, pills, underline)
35
+ - **Accordion** - Collapsible content panels
36
+ - **Alert** - Contextual feedback messages
37
+ - **Progress** - Progress bars with animations
38
+ - **Layout** - Page layout utilities
39
+
40
+ ## 🎨 Utility Classes
41
+
42
+ All Rice UI classes use the `rice-` prefix to avoid conflicts:
43
+
44
+ ### Layout
45
+ ```tsx
46
+ rice-flex, rice-grid, rice-block, rice-inline-flex
47
+ rice-flex-col, rice-flex-row, rice-flex-wrap
48
+ rice-items-center, rice-justify-between
49
+ rice-gap-4, rice-gap-6, rice-gap-8
50
+ ```
51
+
52
+ ### Spacing
53
+ ```tsx
54
+ rice-p-4, rice-p-6, rice-p-8, rice-p-12
55
+ rice-m-4, rice-mx-auto, rice-mb-8
56
+ ```
57
+
58
+ ### Typography
59
+ ```tsx
60
+ rice-text-xs, rice-text-sm, rice-text-lg, rice-text-xl
61
+ rice-text-3xl, rice-text-5xl, rice-text-7xl
62
+ rice-font-medium, rice-font-bold, rice-font-black
63
+ rice-text-center, rice-text-left
64
+ ```
65
+
66
+ ### Colors
67
+ ```tsx
68
+ rice-text-primary, rice-text-success, rice-text-danger
69
+ rice-bg-primary, rice-bg-white
70
+ ```
71
+
72
+ ### Effects
73
+ ```tsx
74
+ rice-glass, rice-glass-dark
75
+ rice-shadow-lg, rice-shadow-xl, rice-shadow-2xl
76
+ rice-rounded-lg, rice-rounded-xl, rice-rounded-full
77
+ ```
78
+
79
+ ### Animations
80
+ ```tsx
81
+ rice-animate-fade-in
82
+ rice-animate-slide-up
83
+ rice-animate-pulse
84
+ rice-animate-spin
85
+ rice-animate-gradient
86
+ ```
87
+
88
+ ### Hover Effects
89
+ ```tsx
90
+ rice-hover-scale
91
+ rice-hover-shadow
92
+ rice-hover-lift
93
+ ```
94
+
95
+ ## 🚀 Usage Examples
96
+
97
+ ### Basic Example
98
+ ```tsx
99
+ import { Button, Card, Input } from '@ereactthohir/rice-ui';
100
+
101
+ function MyComponent() {
102
+ return (
103
+ <div className="rice-p-6 rice-bg-gradient">
104
+ <Card title="Welcome" description="Get started with Rice UI">
105
+ <Input label="Email" placeholder="Enter your email" />
106
+ <Button variant="primary" className="rice-mt-4">
107
+ Submit
108
+ </Button>
109
+ </Card>
110
+ </div>
111
+ );
112
+ }
113
+ ```
114
+
115
+ ### Glassmorphism Effect
116
+ ```tsx
117
+ <div className="rice-glass rice-p-8 rice-rounded-2xl rice-shadow-xl">
118
+ <h1 className="rice-text-3xl rice-font-bold">Beautiful Glass Effect</h1>
119
+ </div>
120
+ ```
121
+
122
+ ### Dropdown Component
123
+ ```tsx
124
+ import { Dropdown } from '@ereactthohir/rice-ui';
125
+
126
+ const items = [
127
+ { label: 'Option 1', value: '1', icon: '🎯' },
128
+ { label: 'Option 2', value: '2', icon: '⚡' },
129
+ { label: 'Option 3', value: '3', icon: '🚀' }
130
+ ];
131
+
132
+ <Dropdown
133
+ items={items}
134
+ label="Select an option"
135
+ onChange={(value) => console.log(value)}
136
+ />
137
+ ```
138
+
139
+ ### Tabs Component
140
+ ```tsx
141
+ import { Tabs } from '@ereactthohir/rice-ui';
142
+
143
+ const tabs = [
144
+ { id: 'tab1', label: 'Overview', icon: '📊', content: <div>Overview content</div> },
145
+ { id: 'tab2', label: 'Settings', icon: '⚙️', content: <div>Settings content</div> }
146
+ ];
147
+
148
+ <Tabs items={tabs} variant="pills" />
149
+ ```
150
+
151
+ ### Accordion Component
152
+ ```tsx
153
+ import { Accordion } from '@ereactthohir/rice-ui';
154
+
155
+ const items = [
156
+ { id: '1', title: 'What is Rice UI?', icon: '❓', content: 'Rice UI is...' },
157
+ { id: '2', title: 'How to install?', icon: '📦', content: 'Run npm install...' }
158
+ ];
159
+
160
+ <Accordion items={items} allowMultiple />
161
+ ```
162
+
163
+ ### Alert Component
164
+ ```tsx
165
+ import { Alert } from '@ereactthohir/rice-ui';
166
+
167
+ <Alert variant="success" title="Success!" dismissible>
168
+ Your changes have been saved successfully.
169
+ </Alert>
170
+ ```
171
+
172
+ ### Progress Component
173
+ ```tsx
174
+ import { Progress } from '@ereactthohir/rice-ui';
175
+
176
+ <Progress
177
+ value={75}
178
+ label="Upload Progress"
179
+ showPercentage
180
+ variant="success"
181
+ animated
182
+ striped
183
+ />
184
+ ```
185
+
186
+ ## 🎯 CSS Variables
187
+
188
+ Customize Rice UI by overriding CSS variables:
189
+
190
+ ```css
191
+ :root {
192
+ --rice-primary-500: #your-color;
193
+ --rice-space-4: 1.5rem;
194
+ --rice-radius-lg: 1rem;
195
+ --rice-shadow-xl: your-shadow;
196
+ }
197
+ ```
198
+
199
+ ## 🌙 Dark Mode
200
+
201
+ Rice UI supports dark mode out of the box:
202
+
203
+ ```tsx
204
+ <div className="rice-glass-dark rice-p-6">
205
+ <h1 className="rice-text-white">Dark Mode Content</h1>
206
+ </div>
207
+ ```
208
+
209
+ ## 📱 Responsive Design
210
+
211
+ All utilities support responsive breakpoints:
212
+
213
+ ```tsx
214
+ <div className="rice-grid rice-grid-cols-1 rice-md-grid-cols-2 rice-lg-grid-cols-3">
215
+ {/* Responsive grid */}
216
+ </div>
217
+ ```
218
+
219
+ Breakpoints:
220
+ - `sm`: 640px
221
+ - `md`: 768px
222
+ - `lg`: 1024px
223
+ - `xl`: 1280px
224
+
225
+ ## 🎨 Advanced Features
226
+
227
+ ### Gradient Text
228
+ ```tsx
229
+ <h1 className="rice-text-5xl rice-font-black rice-text-transparent rice-bg-clip-text rice-gradient-primary rice-animate-gradient">
230
+ Animated Gradient Text
231
+ </h1>
232
+ ```
233
+
234
+ ### Glassmorphism Cards
235
+ ```tsx
236
+ <div className="rice-glass rice-rounded-2xl rice-p-8 rice-shadow-2xl rice-hover-scale rice-transition">
237
+ <h2>Premium Glass Card</h2>
238
+ </div>
239
+ ```
240
+
241
+ ## 🔧 Framework Alternatives
242
+
243
+ EreactThohir also supports:
244
+ - **Tailwind CSS** (optional)
245
+ - **Bootstrap** (optional)
246
+
247
+ Choose your preferred framework during project creation with `ereact create`.
248
+
249
+ ## 📚 Full Component List
250
+
251
+ | Component | Description | Variants |
252
+ |-----------|-------------|----------|
253
+ | Button | Action buttons | primary, outline, ghost, danger |
254
+ | Input | Text input fields | - |
255
+ | Card | Content containers | - |
256
+ | Badge | Status indicators | primary, success, warning, danger, info |
257
+ | Modal | Dialog windows | - |
258
+ | Toast | Notifications | success, error, warning, info |
259
+ | Table | Data tables | - |
260
+ | Skeleton | Loading states | - |
261
+ | Dropdown | Select menus | - |
262
+ | Tabs | Tab navigation | default, pills, underline |
263
+ | Accordion | Collapsible panels | - |
264
+ | Alert | Feedback messages | info, success, warning, danger |
265
+ | Progress | Progress indicators | default, success, warning, danger |
266
+ | Layout | Page layouts | - |
267
+
268
+ ## 🚀 Getting Started
269
+
270
+ Rice UI is automatically included in all EreactThohir projects. No installation required!
271
+
272
+ ```tsx
273
+ import { Button, Card, Input } from '@ereactthohir/rice-ui';
274
+
275
+ // Start building!
276
+ ```
277
+
278
+ ## 💡 Tips
279
+
280
+ 1. **Use `rice-` prefix** for all utility classes
281
+ 2. **Combine utilities** for complex designs
282
+ 3. **Leverage CSS variables** for theming
283
+ 4. **Use glassmorphism** for premium effects
284
+ 5. **Add animations** for better UX
285
+
286
+ ## 📖 Documentation
287
+
288
+ For full documentation, visit the EreactThohir docs or explore the component source code in `packages/rice-ui/src/components/`.
289
+
290
+ ---
291
+
292
+ **Rice UI** - More powerful than Tailwind, built for EreactThohir 🚀
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ export interface AccordionItem {
3
+ id: string;
4
+ title: string;
5
+ content: React.ReactNode;
6
+ icon?: string;
7
+ disabled?: boolean;
8
+ }
9
+ export interface AccordionProps {
10
+ items: AccordionItem[];
11
+ allowMultiple?: boolean;
12
+ defaultOpen?: string[];
13
+ className?: string;
14
+ }
15
+ export declare const Accordion: React.FC<AccordionProps>;
16
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA+E9C,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Accordion = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const Accordion = ({ items, allowMultiple = false, defaultOpen = [], className = '' }) => {
39
+ const [openItems, setOpenItems] = (0, react_1.useState)(defaultOpen);
40
+ const toggleItem = (itemId) => {
41
+ if (allowMultiple) {
42
+ setOpenItems(prev => prev.includes(itemId)
43
+ ? prev.filter(id => id !== itemId)
44
+ : [...prev, itemId]);
45
+ }
46
+ else {
47
+ setOpenItems(prev => prev.includes(itemId) ? [] : [itemId]);
48
+ }
49
+ };
50
+ return (react_1.default.createElement("div", { className: `rice-w-full rice-space-y-2 ${className}` }, items.map((item) => {
51
+ const isOpen = openItems.includes(item.id);
52
+ return (react_1.default.createElement("div", { key: item.id, className: "rice-border rice-rounded-lg rice-overflow-hidden rice-bg-white rice-shadow-sm" },
53
+ react_1.default.createElement("button", { onClick: () => !item.disabled && toggleItem(item.id), disabled: item.disabled, className: "rice-w-full rice-flex rice-items-center rice-justify-between rice-p-4 rice-text-left rice-font-semibold rice-transition", style: {
54
+ cursor: item.disabled ? 'not-allowed' : 'pointer',
55
+ opacity: item.disabled ? 0.5 : 1,
56
+ backgroundColor: isOpen ? '#f8fafc' : '#ffffff',
57
+ color: '#0f172a'
58
+ } },
59
+ react_1.default.createElement("div", { className: "rice-flex rice-items-center rice-gap-3" },
60
+ item.icon && react_1.default.createElement("span", { className: "rice-text-xl" }, item.icon),
61
+ react_1.default.createElement("span", null, item.title)),
62
+ react_1.default.createElement("svg", { className: "rice-w-5 rice-h-5 rice-transition", style: {
63
+ transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',
64
+ color: '#64748b'
65
+ }, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" },
66
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }))),
67
+ isOpen && (react_1.default.createElement("div", { className: "rice-p-4 rice-border-t rice-animate-slide-up", style: {
68
+ backgroundColor: '#ffffff',
69
+ color: '#475569'
70
+ } }, item.content))));
71
+ })));
72
+ };
73
+ exports.Accordion = Accordion;
74
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sourceRoot":"","sources":["../../src/components/Accordion.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AAiBjC,MAAM,SAAS,GAA6B,CAAC,EAChD,KAAK,EACL,aAAa,GAAG,KAAK,EACrB,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,EAAE,EACjB,EAAE,EAAE;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAW,WAAW,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,IAAI,aAAa,EAAE,CAAC;YAChB,YAAY,CAAC,IAAI,CAAC,EAAE,CAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC;gBAClC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAC1B,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,YAAY,CAAC,IAAI,CAAC,EAAE,CAChB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACxC,CAAC;QACN,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACH,uCAAK,SAAS,EAAE,8BAA8B,SAAS,EAAE,IACpD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3C,OAAO,CACH,uCACI,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,SAAS,EAAC,+EAA+E;YAGzF,0CACI,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EACpD,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAC,yHAAyH,EACnI,KAAK,EAAE;oBACH,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;oBACjD,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAChC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;oBAC/C,KAAK,EAAE,SAAS;iBACnB;gBAED,uCAAK,SAAS,EAAC,wCAAwC;oBAClD,IAAI,CAAC,IAAI,IAAI,wCAAM,SAAS,EAAC,cAAc,IAAE,IAAI,CAAC,IAAI,CAAQ;oBAC/D,4CAAO,IAAI,CAAC,KAAK,CAAQ,CACvB;gBACN,uCACI,SAAS,EAAC,mCAAmC,EAC7C,KAAK,EAAE;wBACH,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,cAAc;wBACrD,KAAK,EAAE,SAAS;qBACnB,EACD,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,EACnB,MAAM,EAAC,cAAc;oBAErB,wCAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,gBAAgB,GAAG,CACtF,CACD;YAGR,MAAM,IAAI,CACP,uCACI,SAAS,EAAC,8CAA8C,EACxD,KAAK,EAAE;oBACH,eAAe,EAAE,SAAS;oBAC1B,KAAK,EAAE,SAAS;iBACnB,IAEA,IAAI,CAAC,OAAO,CACX,CACT,CACC,CACT,CAAC;IACN,CAAC,CAAC,CACA,CACT,CAAC;AACN,CAAC,CAAC;AA/EW,QAAA,SAAS,aA+EpB"}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface AlertProps {
3
+ children: React.ReactNode;
4
+ variant?: 'info' | 'success' | 'warning' | 'danger';
5
+ title?: string;
6
+ icon?: string;
7
+ dismissible?: boolean;
8
+ onDismiss?: () => void;
9
+ className?: string;
10
+ }
11
+ export declare const Alert: React.FC<AlertProps>;
12
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../src/components/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAiGtC,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Alert = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const Alert = ({ children, variant = 'info', title, icon, dismissible = false, onDismiss, className = '' }) => {
39
+ const [isVisible, setIsVisible] = (0, react_1.useState)(true);
40
+ const handleDismiss = () => {
41
+ setIsVisible(false);
42
+ onDismiss?.();
43
+ };
44
+ if (!isVisible)
45
+ return null;
46
+ const variantStyles = {
47
+ info: {
48
+ background: '#eff6ff',
49
+ border: '#93c5fd',
50
+ color: '#1e40af',
51
+ iconColor: '#3b82f6'
52
+ },
53
+ success: {
54
+ background: '#d1fae5',
55
+ border: '#6ee7b7',
56
+ color: '#065f46',
57
+ iconColor: '#10b981'
58
+ },
59
+ warning: {
60
+ background: '#fef3c7',
61
+ border: '#fcd34d',
62
+ color: '#92400e',
63
+ iconColor: '#f59e0b'
64
+ },
65
+ danger: {
66
+ background: '#fee2e2',
67
+ border: '#fca5a5',
68
+ color: '#991b1b',
69
+ iconColor: '#ef4444'
70
+ }
71
+ };
72
+ const styles = variantStyles[variant];
73
+ const defaultIcons = {
74
+ info: 'ℹ️',
75
+ success: '✅',
76
+ warning: '⚠️',
77
+ danger: '❌'
78
+ };
79
+ return (react_1.default.createElement("div", { className: `rice-flex rice-items-start rice-gap-3 rice-p-4 rice-rounded-lg rice-border rice-animate-slide-up ${className}`, style: {
80
+ backgroundColor: styles.background,
81
+ borderColor: styles.border,
82
+ color: styles.color
83
+ } },
84
+ react_1.default.createElement("div", { className: "rice-flex-shrink-0 rice-text-xl", style: { color: styles.iconColor } }, icon || defaultIcons[variant]),
85
+ react_1.default.createElement("div", { className: "rice-flex-1" },
86
+ title && (react_1.default.createElement("h4", { className: "rice-font-bold rice-mb-1", style: { color: styles.color } }, title)),
87
+ react_1.default.createElement("div", { className: "rice-text-sm", style: { color: styles.color } }, children)),
88
+ dismissible && (react_1.default.createElement("button", { onClick: handleDismiss, className: "rice-flex-shrink-0 rice-p-1 rice-rounded rice-transition rice-hover-scale-105", style: {
89
+ color: styles.color,
90
+ cursor: 'pointer'
91
+ } },
92
+ react_1.default.createElement("svg", { className: "rice-w-4 rice-h-4", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor" },
93
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }))))));
94
+ };
95
+ exports.Alert = Alert;
96
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sourceRoot":"","sources":["../../src/components/Alert.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAwC;AAYjC,MAAM,KAAK,GAAyB,CAAC,EACxC,QAAQ,EACR,OAAO,GAAG,MAAM,EAChB,KAAK,EACL,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,SAAS,GAAG,EAAE,EACjB,EAAE,EAAE;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,SAAS,EAAE,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,aAAa,GAAG;QAClB,IAAI,EAAE;YACF,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;SACvB;QACD,OAAO,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;SACvB;QACD,OAAO,EAAE;YACL,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;SACvB;QACD,MAAM,EAAE;YACJ,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,SAAS;SACvB;KACJ,CAAC;IAEF,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG;QACjB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,GAAG;KACd,CAAC;IAEF,OAAO,CACH,uCACI,SAAS,EAAE,oGAAoG,SAAS,EAAE,EAC1H,KAAK,EAAE;YACH,eAAe,EAAE,MAAM,CAAC,UAAU;YAClC,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;SACtB;QAGD,uCAAK,SAAS,EAAC,iCAAiC,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,IAC9E,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,CAC5B;QAGN,uCAAK,SAAS,EAAC,aAAa;YACvB,KAAK,IAAI,CACN,sCAAI,SAAS,EAAC,0BAA0B,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAClE,KAAK,CACL,CACR;YACD,uCAAK,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IACvD,QAAQ,CACP,CACJ;QAGL,WAAW,IAAI,CACZ,0CACI,OAAO,EAAE,aAAa,EACtB,SAAS,EAAC,+EAA+E,EACzF,KAAK,EAAE;gBACH,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,SAAS;aACpB;YAED,uCAAK,SAAS,EAAC,mBAAmB,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM,EAAC,cAAc;gBACpF,wCAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,sBAAsB,GAAG,CAC5F,CACD,CACZ,CACC,CACT,CAAC;AACN,CAAC,CAAC;AAjGW,QAAA,KAAK,SAiGhB"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface BadgeProps {
3
+ children: React.ReactNode;
4
+ variant?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info';
5
+ size?: 'sm' | 'md';
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ }
9
+ export declare const Badge: React.FC<BadgeProps>;
10
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,UAAU;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAC9E,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAyCtC,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Badge = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Badge = ({ children, variant = 'primary', size = 'md', className = '', style }) => {
9
+ const variants = {
10
+ primary: 'rice-bg-primary rice-text-primary',
11
+ secondary: 'rice-bg-secondary rice-text-secondary',
12
+ success: 'rice-text-success',
13
+ danger: 'rice-text-danger',
14
+ warning: 'rice-text-warning',
15
+ info: 'rice-text-info'
16
+ };
17
+ const sizes = {
18
+ sm: 'rice-px-2 rice-py-1 rice-text-xs',
19
+ md: 'rice-px-3 rice-py-1 rice-text-sm'
20
+ };
21
+ const baseStyles = {
22
+ display: 'inline-flex',
23
+ alignItems: 'center',
24
+ fontWeight: 700,
25
+ textTransform: 'uppercase',
26
+ letterSpacing: '0.05em',
27
+ border: '1px solid',
28
+ borderRadius: '9999px',
29
+ transition: 'all 300ms',
30
+ ...style
31
+ };
32
+ return (react_1.default.createElement("span", { className: `${variants[variant]} ${sizes[size]} ${className}`, style: baseStyles }, children));
33
+ };
34
+ exports.Badge = Badge;
35
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAUnB,MAAM,KAAK,GAAyB,CAAC,EACxC,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,EAAE,EACd,KAAK,EACR,EAAE,EAAE;IACD,MAAM,QAAQ,GAAG;QACb,OAAO,EAAE,mCAAmC;QAC5C,SAAS,EAAE,uCAAuC;QAClD,OAAO,EAAE,mBAAmB;QAC5B,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,mBAAmB;QAC5B,IAAI,EAAE,gBAAgB;KACzB,CAAC;IAEF,MAAM,KAAK,GAAG;QACV,EAAE,EAAE,kCAAkC;QACtC,EAAE,EAAE,kCAAkC;KACzC,CAAC;IAEF,MAAM,UAAU,GAAwB;QACpC,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,QAAQ;QACpB,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,WAAW;QAC1B,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,WAAW;QACnB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAE,WAAW;QACvB,GAAG,KAAK;KACX,CAAC;IAEF,OAAO,CACH,wCACI,SAAS,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,EAC7D,KAAK,EAAE,UAAU,IAEhB,QAAQ,CACN,CACV,CAAC;AACN,CAAC,CAAC;AAzCW,QAAA,KAAK,SAyChB"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
+ variant?: 'primary' | 'secondary' | 'outline' | 'danger';
4
+ size?: 'sm' | 'md' | 'lg';
5
+ label?: string;
6
+ loading?: boolean;
7
+ }
8
+ export declare const Button: React.FC<ButtonProps>;
9
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IAC9E,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA2CxC,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Button = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Button = ({ variant = 'primary', size = 'md', label, children, className = '', loading = false, ...props }) => {
9
+ const baseStyles = 'inline-flex items-center justify-center font-semibold transition-all duration-300 ease-out focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed rounded-xl active:scale-95 transform';
10
+ const variants = {
11
+ primary: 'bg-indigo-600 text-white hover:bg-indigo-700 hover:shadow-[0_0_20px_rgba(79,70,229,0.4)] focus:ring-indigo-500',
12
+ secondary: 'bg-white text-slate-900 border border-slate-200 hover:bg-slate-50 hover:shadow-lg focus:ring-slate-300',
13
+ outline: 'bg-transparent text-indigo-600 border-2 border-indigo-600 hover:bg-indigo-50 hover:shadow-md focus:ring-indigo-500',
14
+ danger: 'bg-rose-600 text-white hover:bg-rose-700 hover:shadow-[0_0_20px_rgba(225,29,72,0.4)] focus:ring-rose-500'
15
+ };
16
+ const sizes = {
17
+ sm: 'px-4 py-2 text-xs',
18
+ md: 'px-6 py-3 text-sm',
19
+ lg: 'px-8 py-4 text-base'
20
+ };
21
+ const combinedClasses = `${baseStyles} ${variants[variant]} ${sizes[size]} ${className}`;
22
+ return (react_1.default.createElement("button", { className: combinedClasses, disabled: loading, ...props }, loading ? (react_1.default.createElement("div", { className: "flex items-center gap-2" },
23
+ react_1.default.createElement("svg", { className: "animate-spin h-4 w-4 text-current", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" },
24
+ react_1.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
25
+ react_1.default.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" })),
26
+ react_1.default.createElement("span", null, "Loading..."))) : (react_1.default.createElement("span", { className: "flex items-center gap-2" }, label || children))));
27
+ };
28
+ exports.Button = Button;
29
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AASnB,MAAM,MAAM,GAA0B,CAAC,EAC1C,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,IAAI,EACX,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EACX,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,qOAAqO,CAAC;IAEzP,MAAM,QAAQ,GAAG;QACb,OAAO,EAAE,gHAAgH;QACzH,SAAS,EAAE,wGAAwG;QACnH,OAAO,EAAE,oHAAoH;QAC7H,MAAM,EAAE,0GAA0G;KACrH,CAAC;IAEF,MAAM,KAAK,GAAG;QACV,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,qBAAqB;KAC5B,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;IAEzF,OAAO,CACH,0CAAQ,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,KAAM,KAAK,IAC3D,OAAO,CAAC,CAAC,CAAC,CACP,uCAAK,SAAS,EAAC,yBAAyB;QACpC,uCAAK,SAAS,EAAC,mCAAmC,EAAC,KAAK,EAAC,4BAA4B,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW;YACjH,0CAAQ,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAU;YACrG,wCAAM,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,iHAAiH,GAAQ,CAC1K;QACN,yDAAuB,CACrB,CACT,CAAC,CAAC,CAAC,CACA,wCAAM,SAAS,EAAC,yBAAyB,IACpC,KAAK,IAAI,QAAQ,CACf,CACV,CACI,CACZ,CAAC;AACN,CAAC,CAAC;AA3CW,QAAA,MAAM,UA2CjB"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface CardProps {
3
+ title?: string;
4
+ description?: string;
5
+ children?: React.ReactNode;
6
+ footer?: React.ReactNode;
7
+ className?: string;
8
+ }
9
+ export declare const Card: React.FC<CardProps>;
10
+ //# sourceMappingURL=Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,SAAS;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAyBpC,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Card = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Card = ({ title, description, children, footer, className = '' }) => {
9
+ return (react_1.default.createElement("div", { className: `bg-white/80 backdrop-blur-sm border border-slate-200 rounded-2xl overflow-hidden shadow-sm hover:shadow-2xl hover:-translate-y-1 transition-all duration-300 ease-out group ${className}` },
10
+ (title || description) && (react_1.default.createElement("div", { className: "px-8 py-6 border-b border-slate-100 bg-gradient-to-r from-slate-50/50 to-transparent" },
11
+ title && react_1.default.createElement("h3", { className: "text-xl font-bold text-slate-900 group-hover:text-indigo-600 transition-colors duration-300" }, title),
12
+ description && react_1.default.createElement("p", { className: "text-sm text-slate-500 mt-1" }, description))),
13
+ react_1.default.createElement("div", { className: "px-8 py-6" }, children),
14
+ footer && (react_1.default.createElement("div", { className: "px-8 py-4 bg-slate-50/80 border-t border-slate-100 backdrop-blur-sm" }, footer))));
15
+ };
16
+ exports.Card = Card;
17
+ //# sourceMappingURL=Card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Card.js","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAUnB,MAAM,IAAI,GAAwB,CAAC,EACtC,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,SAAS,GAAG,EAAE,EACjB,EAAE,EAAE;IACD,OAAO,CACH,uCAAK,SAAS,EAAE,+KAA+K,SAAS,EAAE;QACrM,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACvB,uCAAK,SAAS,EAAC,sFAAsF;YAChG,KAAK,IAAI,sCAAI,SAAS,EAAC,6FAA6F,IAAE,KAAK,CAAM;YACjI,WAAW,IAAI,qCAAG,SAAS,EAAC,6BAA6B,IAAE,WAAW,CAAK,CAC1E,CACT;QACD,uCAAK,SAAS,EAAC,WAAW,IACrB,QAAQ,CACP;QACL,MAAM,IAAI,CACP,uCAAK,SAAS,EAAC,qEAAqE,IAC/E,MAAM,CACL,CACT,CACC,CACT,CAAC;AACN,CAAC,CAAC;AAzBW,QAAA,IAAI,QAyBf"}