dara-ui 0.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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/components/Accordion/Accordion.d.ts +23 -0
  4. package/dist/components/Accordion/index.d.ts +3 -0
  5. package/dist/components/AuroraBlobs/AuroraBlobs.d.ts +28 -0
  6. package/dist/components/AuroraBlobs/index.d.ts +3 -0
  7. package/dist/components/Avatar/Avatar.d.ts +65 -0
  8. package/dist/components/Avatar/index.d.ts +3 -0
  9. package/dist/components/Badge/Badge.d.ts +38 -0
  10. package/dist/components/Badge/index.d.ts +3 -0
  11. package/dist/components/BlogCard/BlogCard.d.ts +97 -0
  12. package/dist/components/BlogCard/index.d.ts +3 -0
  13. package/dist/components/Button/Button.d.ts +49 -0
  14. package/dist/components/Button/index.d.ts +3 -0
  15. package/dist/components/Card/Card.d.ts +43 -0
  16. package/dist/components/Card/index.d.ts +3 -0
  17. package/dist/components/CharacterCard/CharacterCard.d.ts +86 -0
  18. package/dist/components/CharacterCard/index.d.ts +3 -0
  19. package/dist/components/Checkbox/Checkbox.d.ts +59 -0
  20. package/dist/components/Checkbox/index.d.ts +3 -0
  21. package/dist/components/Dropdown/Dropdown.d.ts +90 -0
  22. package/dist/components/Dropdown/index.d.ts +3 -0
  23. package/dist/components/GradientRing/GradientRing.d.ts +42 -0
  24. package/dist/components/GradientRing/index.d.ts +3 -0
  25. package/dist/components/Icons/Icons.d.ts +192 -0
  26. package/dist/components/Icons/index.d.ts +1 -0
  27. package/dist/components/Input/Input.d.ts +61 -0
  28. package/dist/components/Input/index.d.ts +3 -0
  29. package/dist/components/LanguageChanger/LanguageChanger.d.ts +168 -0
  30. package/dist/components/LanguageChanger/index.d.ts +4 -0
  31. package/dist/components/Modal/Modal.d.ts +53 -0
  32. package/dist/components/Modal/index.d.ts +3 -0
  33. package/dist/components/Navbar/Navbar.d.ts +27 -0
  34. package/dist/components/Navbar/index.d.ts +3 -0
  35. package/dist/components/NoiseOverlay/NoiseOverlay.d.ts +23 -0
  36. package/dist/components/NoiseOverlay/index.d.ts +3 -0
  37. package/dist/components/Particles/Particles.d.ts +43 -0
  38. package/dist/components/Particles/index.d.ts +3 -0
  39. package/dist/components/ProductCard/ProductCard.d.ts +104 -0
  40. package/dist/components/ProductCard/index.d.ts +3 -0
  41. package/dist/components/Progress/Progress.d.ts +89 -0
  42. package/dist/components/Progress/index.d.ts +3 -0
  43. package/dist/components/QuestCard/QuestCard.d.ts +67 -0
  44. package/dist/components/QuestCard/index.d.ts +3 -0
  45. package/dist/components/Radio/Radio.d.ts +66 -0
  46. package/dist/components/Radio/index.d.ts +3 -0
  47. package/dist/components/Range/Range.d.ts +98 -0
  48. package/dist/components/Range/index.d.ts +3 -0
  49. package/dist/components/Sidebar/Sidebar.d.ts +163 -0
  50. package/dist/components/Sidebar/SidebarMobileTrigger.d.ts +33 -0
  51. package/dist/components/Sidebar/index.d.ts +5 -0
  52. package/dist/components/SocialMedia/SocialMedia.d.ts +31 -0
  53. package/dist/components/SocialMedia/index.d.ts +3 -0
  54. package/dist/components/StatsWidget/StatsWidget.d.ts +71 -0
  55. package/dist/components/StatsWidget/index.d.ts +3 -0
  56. package/dist/components/Switch/Switch.d.ts +62 -0
  57. package/dist/components/Switch/index.d.ts +3 -0
  58. package/dist/components/Tabs/Tabs.d.ts +21 -0
  59. package/dist/components/Tabs/index.d.ts +3 -0
  60. package/dist/components/ThemeChanger/ThemeChanger.d.ts +98 -0
  61. package/dist/components/ThemeChanger/index.d.ts +3 -0
  62. package/dist/components/Toast/Toast.d.ts +54 -0
  63. package/dist/components/Toast/ToastProvider.d.ts +78 -0
  64. package/dist/components/Toast/index.d.ts +5 -0
  65. package/dist/components/Tooltip/Tooltip.d.ts +83 -0
  66. package/dist/components/Tooltip/index.d.ts +3 -0
  67. package/dist/components/XPBar/XPBar.d.ts +71 -0
  68. package/dist/components/XPBar/index.d.ts +3 -0
  69. package/dist/dara-ui.cjs.js +973 -0
  70. package/dist/dara-ui.es.js +9522 -0
  71. package/dist/hooks/useAppTranslation.d.ts +7 -0
  72. package/dist/hooks/useDirection.d.ts +7 -0
  73. package/dist/index.d.ts +66 -0
  74. package/dist/style.css +2 -0
  75. package/dist/translations/en.d.ts +732 -0
  76. package/dist/translations/fa.d.ts +732 -0
  77. package/dist/translations/fr.d.ts +731 -0
  78. package/dist/translations/index.d.ts +2200 -0
  79. package/package.json +92 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2011-2026 The Bootstrap Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,185 @@
1
+ # Dara UI
2
+
3
+ A modern React component library built for interfaces that feel refined and intentional.
4
+ Glassmorphism surfaces, subtle cyberpunk accents, complete RTL support, and a flexible theming system - all in one cohesive package.
5
+
6
+ ---
7
+
8
+ ## Features
9
+
10
+ - **Glassmorphism design language** - soft translucency, layered depth, and restrained glow
11
+ - **Three built-in themes** - Nightfall, Daylight, and Dracula
12
+ - **Full RTL support** - layout, icons, scroll direction, and typography adapt automatically
13
+ - **Accessible by default** - keyboard navigation, focus states, and ARIA attributes
14
+ - **Tree-shakeable** - import only what you need
15
+ - **TypeScript-first** - complete type definitions out of the box
16
+ - **Zero-config theming** - CSS variables + simple provider pattern
17
+
18
+ ---
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install dara-ui
24
+ ```
25
+
26
+ or
27
+
28
+ ```bash
29
+ yarn add dara-ui
30
+ pnpm add dara-ui
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Quick Start
36
+
37
+ ### 1. Import styles
38
+
39
+ Add the stylesheet once at the root of your application:
40
+
41
+ ```ts
42
+ import "dara-ui/style.css";
43
+ ```
44
+
45
+ ### 2. Wrap your app with providers
46
+
47
+ ```tsx
48
+ import { ThemeProvider, I18nProvider } from "dara-ui";
49
+ import { translations } from "dara-ui/translations";
50
+
51
+ export default function Root() {
52
+ return (
53
+ <ThemeProvider defaultTheme="nightfall">
54
+ <I18nProvider translations={translations} defaultLanguage="en">
55
+ <App />
56
+ </I18nProvider>
57
+ </ThemeProvider>
58
+ );
59
+ }
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Themes
65
+
66
+ Dara UI ships with three carefully tuned themes:
67
+
68
+ | Theme | Description | Default |
69
+ | ----------- | --------------------------------------- | ------- |
70
+ | `nightfall` | Deep charcoal with cyan accents | Yes |
71
+ | `daylight` | Soft light surfaces with muted contrast | No |
72
+ | `dracula` | High-contrast purple-tinted dark mode | No |
73
+
74
+ ### Switching themes
75
+
76
+ **Option A - HTML attribute**
77
+
78
+ ```html
79
+ <html data-theme="daylight"></html>
80
+ ```
81
+
82
+ **Option B - Component**
83
+
84
+ ```tsx
85
+ import { ThemeChanger } from "dara-ui";
86
+
87
+ <ThemeChanger />;
88
+ ```
89
+
90
+ Themes are applied via CSS custom properties, so you can also override individual tokens in your own stylesheet.
91
+
92
+ ---
93
+
94
+ ## Components
95
+
96
+ ### Core
97
+
98
+ Button · Badge · Input · Checkbox · Switch · Radio · Range · Avatar · Tooltip · Progress
99
+
100
+ ### Layout & Navigation
101
+
102
+ Card · Tabs · Accordion · Dropdown · Modal · Navbar · Sidebar
103
+
104
+ ### Data Display
105
+
106
+ XPBar · StatsWidget · QuestCard · CharacterCard · ProductCard · BlogCard
107
+
108
+ ### Feedback & Utilities
109
+
110
+ Toast · ThemeChanger · LanguageChanger · SocialMedia
111
+
112
+ ### Visual Effects
113
+
114
+ AuroraBlobs · Particles · GradientRing · NoiseOverlay
115
+
116
+ All components accept standard React props and respect the active theme and text direction.
117
+
118
+ ---
119
+
120
+ ## Internationalization
121
+
122
+ Dara UI includes a lightweight `I18nProvider` that works with the built-in translation dictionaries or your own.
123
+
124
+ ```tsx
125
+ import { I18nProvider, LanguageChanger } from "dara-ui";
126
+ import { translations } from "dara-ui/translations";
127
+
128
+ <I18nProvider translations={translations} defaultLanguage="en">
129
+ <LanguageChanger />
130
+ {/* your app */}
131
+ </I18nProvider>;
132
+ ```
133
+
134
+ RTL is detected automatically from `document.documentElement.dir` and applied across layout, icons, scroll behavior, and spacing.
135
+
136
+ ---
137
+
138
+ ## Sidebar
139
+
140
+ The `Sidebar` component is fully responsive:
141
+
142
+ - **Desktop** - classic vertical navigation with collapse / expand, group labels, nested items, and icon-only mode
143
+ - **Mobile** - horizontal scrollable tab strip with edge arrows that appear only when scrolling is possible
144
+
145
+ ```tsx
146
+ import { Sidebar } from "dara-ui";
147
+
148
+ <Sidebar
149
+ groups={[
150
+ {
151
+ label: "Main",
152
+ items: [
153
+ { id: "dashboard", label: "Dashboard", icon: <IconHome /> },
154
+ { id: "settings", label: "Settings", icon: <IconSettings /> },
155
+ ],
156
+ },
157
+ ]}
158
+ collapsible
159
+ defaultCollapsed={false}
160
+ />;
161
+ ```
162
+
163
+ ---
164
+
165
+ ## Customization
166
+
167
+ All visual tokens are exposed as CSS variables. Override them globally or per component:
168
+
169
+ ```css
170
+ :root {
171
+ --color-primary: #00e5ff;
172
+ --radius-md: 10px;
173
+ --shadow-float: 0 12px 40px rgba(0, 0, 0, 0.35);
174
+ }
175
+ ```
176
+
177
+ ---
178
+
179
+ ## License
180
+
181
+ MIT © Dara UI
182
+
183
+ ---
184
+
185
+ Built with care for interfaces that deserve better defaults.
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ export interface AccordionItem {
3
+ id: string;
4
+ title: React.ReactNode;
5
+ content: React.ReactNode;
6
+ icon?: React.ReactNode;
7
+ disabled?: boolean;
8
+ }
9
+ export interface AccordionProps {
10
+ items: AccordionItem[];
11
+ openItems?: string[];
12
+ defaultOpenItems?: string[];
13
+ onOpenChange?: (openItems: string[]) => void;
14
+ multiple?: boolean;
15
+ glass?: boolean;
16
+ className?: string;
17
+ size?: "sm" | "md" | "lg";
18
+ }
19
+ /**
20
+ * Dara UI Accordion
21
+ */
22
+ export declare const Accordion: React.FC<AccordionProps>;
23
+ export default Accordion;
@@ -0,0 +1,3 @@
1
+ export { Accordion } from './Accordion';
2
+ export type { AccordionProps, AccordionItem } from './Accordion';
3
+ export { Accordion as default } from './Accordion';
@@ -0,0 +1,28 @@
1
+ import { default as React } from 'react';
2
+ export interface AuroraBlobsProps {
3
+ /**
4
+ * Colors for the three blobs
5
+ * @default ["color-mix(in srgb, var(--color-primary) 25%, transparent)", ...]
6
+ */
7
+ colors?: [string, string, string];
8
+ /**
9
+ * Sizes for the three blobs in pixels
10
+ * @default [500, 400, 350]
11
+ */
12
+ sizes?: [number, number, number];
13
+ /**
14
+ * Additional className
15
+ */
16
+ className?: string;
17
+ }
18
+ /**
19
+ * Dara UI AuroraBlobs - Animated gradient blob background
20
+ *
21
+ * Features:
22
+ * - Three animated gradient blobs
23
+ * - Smooth drifting animation
24
+ * - Theme-aware colors
25
+ * - Used as a subtle atmospheric background effect
26
+ */
27
+ export declare const AuroraBlobs: React.FC<AuroraBlobsProps>;
28
+ export default AuroraBlobs;
@@ -0,0 +1,3 @@
1
+ export { AuroraBlobs } from './AuroraBlobs';
2
+ export type { AuroraBlobsProps } from './AuroraBlobs';
3
+ export { AuroraBlobs as default } from './AuroraBlobs';
@@ -0,0 +1,65 @@
1
+ import { default as React } from 'react';
2
+ export interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Image source URL
5
+ */
6
+ src?: string;
7
+ /**
8
+ * Alternative text for the image
9
+ */
10
+ alt?: string;
11
+ /**
12
+ * Avatar size
13
+ * @default "md"
14
+ */
15
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
16
+ /**
17
+ * Display a fallback icon instead of image
18
+ * @default false
19
+ */
20
+ fallback?: boolean;
21
+ /**
22
+ * Fallback text to display (usually initials)
23
+ */
24
+ fallbackText?: string;
25
+ /**
26
+ * Shape of the avatar
27
+ * @default "circle"
28
+ */
29
+ shape?: "circle" | "rounded" | "square";
30
+ /**
31
+ * Border style
32
+ * @default false
33
+ */
34
+ bordered?: boolean;
35
+ /**
36
+ * Glow effect around the avatar
37
+ */
38
+ glow?: "primary" | "secondary" | "accent";
39
+ /**
40
+ * Online status indicator
41
+ */
42
+ status?: "online" | "offline" | "away" | "busy";
43
+ /**
44
+ * Group avatar (multiple avatars stacked)
45
+ * @default false
46
+ */
47
+ group?: boolean;
48
+ /**
49
+ * Click handler
50
+ */
51
+ onClick?: () => void;
52
+ }
53
+ /**
54
+ * Dara UI Avatar - Display user profile images with fallback support
55
+ *
56
+ * Features:
57
+ * - Image support with fallback to initials or icon
58
+ * - Multiple sizes (xs, sm, md, lg, xl)
59
+ * - Shape variants (circle, rounded, square)
60
+ * - Border and glow effects
61
+ * - Online status indicator
62
+ * - Group stacking
63
+ */
64
+ export declare const Avatar: React.ForwardRefExoticComponent<AvatarProps & React.RefAttributes<HTMLDivElement>>;
65
+ export default Avatar;
@@ -0,0 +1,3 @@
1
+ export { Avatar } from './Avatar';
2
+ export type { AvatarProps } from './Avatar';
3
+ export { Avatar as default } from './Avatar';
@@ -0,0 +1,38 @@
1
+ import { default as React } from 'react';
2
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
3
+ /**
4
+ * Badge color variant
5
+ * @default "primary"
6
+ */
7
+ variant?: "primary" | "secondary" | "success" | "danger" | "warning";
8
+ /**
9
+ * Badge size
10
+ * @default "md"
11
+ */
12
+ size?: "sm" | "md" | "lg";
13
+ /**
14
+ * If true, adds glow effect
15
+ * @default false
16
+ */
17
+ glow?: boolean;
18
+ /**
19
+ * If true, outline style
20
+ * @default false
21
+ */
22
+ outline?: boolean;
23
+ /**
24
+ * Badge content
25
+ */
26
+ children: React.ReactNode;
27
+ }
28
+ /**
29
+ * Dara UI Badge - Theme-aware status indicators
30
+ *
31
+ * Features:
32
+ * - Multiple variants with consistent colors
33
+ * - Size variants
34
+ * - Glow and outline options
35
+ * - RTL support via dir attribute
36
+ */
37
+ export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLSpanElement>>;
38
+ export default Badge;
@@ -0,0 +1,3 @@
1
+ export { Badge } from './Badge';
2
+ export type { BadgeProps } from './Badge';
3
+ export { Badge as default } from './Badge';
@@ -0,0 +1,97 @@
1
+ import { default as React } from 'react';
2
+ export interface BlogCardProps {
3
+ /**
4
+ * Blog post title
5
+ */
6
+ title: string;
7
+ /**
8
+ * Blog post excerpt
9
+ */
10
+ excerpt: string;
11
+ /**
12
+ * Cover image URL
13
+ */
14
+ coverImage?: string;
15
+ /**
16
+ * Author name
17
+ */
18
+ author?: string;
19
+ /**
20
+ * Author avatar URL
21
+ */
22
+ authorAvatar?: string;
23
+ /**
24
+ * Publication date
25
+ */
26
+ date?: string | Date;
27
+ /**
28
+ * Read time in minutes
29
+ */
30
+ readTime?: number;
31
+ /**
32
+ * Category
33
+ */
34
+ category?: string;
35
+ /**
36
+ * Tags
37
+ */
38
+ tags?: string[];
39
+ /**
40
+ * Link to full post
41
+ */
42
+ link?: string;
43
+ /**
44
+ * Click callback
45
+ */
46
+ onClick?: () => void;
47
+ /**
48
+ * Featured (larger)
49
+ * @default false
50
+ */
51
+ featured?: boolean;
52
+ /**
53
+ * Layout
54
+ * @default "vertical"
55
+ */
56
+ layout?: "vertical" | "horizontal";
57
+ /**
58
+ * Glow
59
+ * @default "none"
60
+ */
61
+ glow?: "primary" | "secondary" | "accent" | "none";
62
+ /**
63
+ * Show category badge
64
+ * @default true
65
+ */
66
+ showCategory?: boolean;
67
+ /**
68
+ * Show author
69
+ * @default true
70
+ */
71
+ showAuthor?: boolean;
72
+ /**
73
+ * Show read time
74
+ * @default true
75
+ */
76
+ showReadTime?: boolean;
77
+ /**
78
+ * Additional className
79
+ */
80
+ className?: string;
81
+ /**
82
+ * Full width on mobile
83
+ * @default false
84
+ */
85
+ fullWidthMobile?: boolean;
86
+ }
87
+ /**
88
+ * Dara UI BlogCard – glass blog card with 3D tilt, elevation & glow hover
89
+ *
90
+ * Features:
91
+ * - Vertical / horizontal layouts + featured size
92
+ * - 3D tilt + lift + glow on hover
93
+ * - Cover zoom, stable line-clamps, in-flow Read more
94
+ * - RTL-friendly badge (start-*)
95
+ */
96
+ export declare const BlogCard: React.FC<BlogCardProps>;
97
+ export default BlogCard;
@@ -0,0 +1,3 @@
1
+ export { BlogCard } from './BlogCard';
2
+ export type { BlogCardProps } from './BlogCard';
3
+ export { BlogCard as default } from './BlogCard';
@@ -0,0 +1,49 @@
1
+ import { default as React } from 'react';
2
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
+ /**
4
+ * Button visual style variant
5
+ * @default "primary"
6
+ */
7
+ variant?: "primary" | "secondary" | "accent" | "glass" | "danger" | "success" | "outline";
8
+ /**
9
+ * Button size
10
+ * @default "md"
11
+ */
12
+ size?: "sm" | "md" | "lg";
13
+ /**
14
+ * If true, button will take full width
15
+ * @default false
16
+ */
17
+ fullWidth?: boolean;
18
+ /**
19
+ * If true, shows loading spinner
20
+ * @default false
21
+ */
22
+ loading?: boolean;
23
+ /**
24
+ * Glow effect color - primary, secondary, or accent
25
+ */
26
+ glow?: "" | "primary" | "secondary" | "accent";
27
+ /**
28
+ * Icon on the left side
29
+ */
30
+ leftIcon?: React.ReactNode;
31
+ /**
32
+ * Icon on the right side
33
+ */
34
+ rightIcon?: React.ReactNode;
35
+ }
36
+ /**
37
+ * Dara UI Button - Glassmorphism style with cyberpunk aesthetics
38
+ *
39
+ * Features:
40
+ * - Multiple variants: primary, secondary, accent, glass, danger, success, outline
41
+ * - Three sizes: sm, md, lg
42
+ * - Glow effects with theme-aware shadows
43
+ * - Loading state with spinner
44
+ * - Full width option
45
+ * - Icon support on both sides
46
+ * - Smooth hover animations with scale and lift
47
+ */
48
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
49
+ export default Button;
@@ -0,0 +1,3 @@
1
+ export { Button } from './Button';
2
+ export type { ButtonProps } from './Button';
3
+ export { Button as default } from './Button';
@@ -0,0 +1,43 @@
1
+ import { default as React } from 'react';
2
+ export interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ /**
4
+ * Card visual variant
5
+ * @default "glass"
6
+ */
7
+ variant?: "glass" | "solid" | "outline";
8
+ /**
9
+ * Card padding
10
+ * @default "md"
11
+ */
12
+ padding?: "sm" | "md" | "lg" | "none";
13
+ /**
14
+ * Border radius
15
+ * @default "standard"
16
+ */
17
+ radius?: "sm" | "md" | "standard" | "large" | "xl" | "full";
18
+ /**
19
+ * Float hover effect with 3D tilt
20
+ * @default false
21
+ */
22
+ float?: boolean;
23
+ /**
24
+ * Glow effect color
25
+ */
26
+ glow?: "" | "primary" | "secondary" | "accent";
27
+ /**
28
+ * Card content
29
+ */
30
+ children?: React.ReactNode;
31
+ }
32
+ /**
33
+ * Dara UI Card
34
+ *
35
+ * Features:
36
+ * - Glass, solid, and outline variants
37
+ * - 3D tilt effect on hover when float is enabled
38
+ * - Smooth animated glow transitions
39
+ * - Theme-aware colors
40
+ * - radius prop wins over .glass border-radius (inline style)
41
+ */
42
+ export declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
43
+ export default Card;
@@ -0,0 +1,3 @@
1
+ export { Card } from './Card';
2
+ export type { CardProps } from './Card';
3
+ export { Card as default } from './Card';
@@ -0,0 +1,86 @@
1
+ import { default as React } from 'react';
2
+ export interface CharacterStat {
3
+ /**
4
+ * Stat label (e.g., "Force Alignment", "Combat", "Intelligence")
5
+ */
6
+ label: string;
7
+ /**
8
+ * Stat value (0-100)
9
+ */
10
+ value: number;
11
+ /**
12
+ * Color variant for the stat ring
13
+ */
14
+ color?: "primary" | "secondary" | "accent" | "success" | "danger" | "warning";
15
+ }
16
+ export interface CharacterCardProps {
17
+ /**
18
+ * Character name
19
+ */
20
+ name: string;
21
+ /**
22
+ * Character subtitle (e.g., "Jedi Archivist")
23
+ */
24
+ subtitle?: string;
25
+ /**
26
+ * Character quote
27
+ */
28
+ quote?: string;
29
+ /**
30
+ * Portrait image URL
31
+ */
32
+ portrait?: string;
33
+ /**
34
+ * Custom icon instead of portrait
35
+ */
36
+ icon?: React.ReactNode;
37
+ /**
38
+ * MBTI personality type
39
+ */
40
+ mbti?: string;
41
+ /**
42
+ * Species
43
+ */
44
+ species?: string;
45
+ /**
46
+ * Affiliation (e.g., "Jedi Order", "Rebel Alliance")
47
+ */
48
+ affiliation?: string;
49
+ /**
50
+ * Array of custom traits/props
51
+ */
52
+ traits?: string[];
53
+ /**
54
+ * Array of stats to display
55
+ */
56
+ stats?: CharacterStat[];
57
+ /**
58
+ * Glow variant color
59
+ * @default "primary"
60
+ */
61
+ glow?: "primary" | "secondary" | "accent" | "none";
62
+ /**
63
+ * Layout mode
64
+ * @default "vertical"
65
+ */
66
+ layout?: "vertical" | "horizontal";
67
+ /**
68
+ * Additional className
69
+ */
70
+ className?: string;
71
+ }
72
+ /**
73
+ * Dara UI CharacterCard - RPG-style character profile card
74
+ *
75
+ * Features:
76
+ * - Vertical and horizontal layouts
77
+ * - Portrait with fallback to initials
78
+ * - Name, subtitle, quote
79
+ * - Stats with radial progress rings
80
+ * - 3D tilt effect on hover
81
+ * - Glow variants
82
+ * - Theme-aware colors
83
+ * - Uses Avatar and Badge components
84
+ */
85
+ export declare const CharacterCard: React.FC<CharacterCardProps>;
86
+ export default CharacterCard;
@@ -0,0 +1,3 @@
1
+ export { CharacterCard } from './CharacterCard';
2
+ export type { CharacterCardProps, CharacterStat } from './CharacterCard';
3
+ export { CharacterCard as default } from './CharacterCard';