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
@@ -0,0 +1,27 @@
1
+ import { default as React } from 'react';
2
+ export interface NavLink {
3
+ label: string;
4
+ href: string;
5
+ icon?: React.ReactNode;
6
+ active?: boolean;
7
+ subLinks?: NavLink[];
8
+ }
9
+ export interface NavbarProps {
10
+ brand?: React.ReactNode;
11
+ links?: NavLink[];
12
+ showSecondaryNav?: boolean;
13
+ secondaryLinks?: NavLink[];
14
+ showSearch?: boolean;
15
+ searchPlaceholder?: string;
16
+ onSearch?: (query: string) => void;
17
+ showLanguageChanger?: boolean;
18
+ showThemeChanger?: boolean;
19
+ languageChanger?: React.ReactNode;
20
+ themeChanger?: React.ReactNode;
21
+ languageChangerMobile?: React.ReactNode;
22
+ themeChangerMobile?: React.ReactNode;
23
+ rightContent?: React.ReactNode;
24
+ className?: string;
25
+ }
26
+ export declare const Navbar: React.FC<NavbarProps>;
27
+ export default Navbar;
@@ -0,0 +1,3 @@
1
+ export { Navbar } from './Navbar';
2
+ export type { NavbarProps, NavLink } from './Navbar';
3
+ export { Navbar as default } from './Navbar';
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ export interface NoiseOverlayProps {
3
+ /**
4
+ * Opacity of the noise
5
+ * @default 0.035
6
+ */
7
+ opacity?: number;
8
+ /**
9
+ * Additional className
10
+ */
11
+ className?: string;
12
+ }
13
+ /**
14
+ * Dara UI NoiseOverlay - Subtle noise texture overlay
15
+ *
16
+ * Features:
17
+ * - SVG-based noise texture
18
+ * - Configurable opacity
19
+ * - Fixed position overlay
20
+ * - Used for adding texture to the background
21
+ */
22
+ export declare const NoiseOverlay: React.FC<NoiseOverlayProps>;
23
+ export default NoiseOverlay;
@@ -0,0 +1,3 @@
1
+ export { NoiseOverlay } from './NoiseOverlay';
2
+ export type { NoiseOverlayProps } from './NoiseOverlay';
3
+ export { NoiseOverlay as default } from './NoiseOverlay';
@@ -0,0 +1,43 @@
1
+ import { default as React } from 'react';
2
+ export interface ParticlesProps {
3
+ /**
4
+ * Number of particles
5
+ * @default 60
6
+ */
7
+ count?: number;
8
+ /**
9
+ * Colors for particles
10
+ * @default ["#7C5CFF", "#00D9FF", "#FF4D9D", "#ffffff"]
11
+ */
12
+ colors?: string[];
13
+ /**
14
+ * Opacity range [min, max]
15
+ * @default [0.15, 0.5]
16
+ */
17
+ opacityRange?: [number, number];
18
+ /**
19
+ * Size range [min, max] in pixels
20
+ * @default [0.5, 2.5]
21
+ */
22
+ sizeRange?: [number, number];
23
+ /**
24
+ * Speed range [min, max]
25
+ * @default [0.1, 0.4]
26
+ */
27
+ speedRange?: [number, number];
28
+ /**
29
+ * Additional className
30
+ */
31
+ className?: string;
32
+ }
33
+ /**
34
+ * Dara UI Particles - Animated starfield/particle background
35
+ *
36
+ * Features:
37
+ * - Configurable particle count, colors, sizes, and speeds
38
+ * - Smooth floating animation
39
+ * - Particles are created once (and on resize / count change only)
40
+ * - Safe under frequent parent re-renders (e.g. controlled Range)
41
+ */
42
+ export declare const Particles: React.FC<ParticlesProps>;
43
+ export default Particles;
@@ -0,0 +1,3 @@
1
+ export { Particles } from './Particles';
2
+ export type { ParticlesProps } from './Particles';
3
+ export { Particles as default } from './Particles';
@@ -0,0 +1,104 @@
1
+ import { default as React } from 'react';
2
+ export interface ProductCardProps {
3
+ /**
4
+ * Product title
5
+ */
6
+ title: string;
7
+ /**
8
+ * Product price
9
+ */
10
+ price: number | string;
11
+ /**
12
+ * Product currency symbol
13
+ * @default "$"
14
+ */
15
+ currency?: string;
16
+ /**
17
+ * Product image URL
18
+ */
19
+ image?: string;
20
+ /**
21
+ * Product description
22
+ */
23
+ description?: string;
24
+ /**
25
+ * Product rating (0-5)
26
+ */
27
+ rating?: number;
28
+ /**
29
+ * Number of reviews
30
+ */
31
+ reviewCount?: number;
32
+ /**
33
+ * Product category
34
+ */
35
+ category?: string;
36
+ /**
37
+ * Product tags
38
+ */
39
+ tags?: string[];
40
+ /**
41
+ * Is product on sale
42
+ * @default false
43
+ */
44
+ onSale?: boolean;
45
+ /**
46
+ * Original price (for sale items)
47
+ */
48
+ originalPrice?: number | string;
49
+ /**
50
+ * Is product in stock
51
+ * @default true
52
+ */
53
+ inStock?: boolean;
54
+ /**
55
+ * Product badge text (e.g., "New", "Limited")
56
+ */
57
+ badge?: string;
58
+ /**
59
+ * Badge variant
60
+ * @default "primary"
61
+ */
62
+ badgeVariant?: "primary" | "secondary" | "success" | "danger" | "warning";
63
+ /**
64
+ * Product link URL
65
+ */
66
+ link?: string;
67
+ /**
68
+ * Callback when add to cart is clicked
69
+ */
70
+ onAddToCart?: () => void;
71
+ /**
72
+ * Callback when product is clicked
73
+ */
74
+ onClick?: () => void;
75
+ /**
76
+ * Layout variant
77
+ * @default "vertical"
78
+ */
79
+ layout?: "vertical" | "horizontal" | "compact";
80
+ /**
81
+ * Glow variant color
82
+ * @default "none"
83
+ */
84
+ glow?: "primary" | "secondary" | "accent" | "none";
85
+ /**
86
+ * Show add-to-cart action
87
+ * @default true
88
+ */
89
+ showQuickActions?: boolean;
90
+ /**
91
+ * Additional className
92
+ */
93
+ className?: string;
94
+ /**
95
+ * Full width on mobile
96
+ * @default false
97
+ */
98
+ fullWidthMobile?: boolean;
99
+ }
100
+ /**
101
+ * Dara UI ProductCard - glass product card with 3D tilt, elevation & glow hover
102
+ */
103
+ export declare const ProductCard: React.FC<ProductCardProps>;
104
+ export default ProductCard;
@@ -0,0 +1,3 @@
1
+ export { ProductCard } from './ProductCard';
2
+ export type { ProductCardProps } from './ProductCard';
3
+ export { ProductCard as default } from './ProductCard';
@@ -0,0 +1,89 @@
1
+ import { default as React } from 'react';
2
+ export interface ProgressProps {
3
+ /**
4
+ * Progress value (0-100)
5
+ */
6
+ value?: number;
7
+ /**
8
+ * Maximum value
9
+ * @default 100
10
+ */
11
+ max?: number;
12
+ /**
13
+ * Progress variant
14
+ * @default "horizontal"
15
+ */
16
+ variant?: "horizontal" | "radial";
17
+ /**
18
+ * Progress size
19
+ * @default "md"
20
+ */
21
+ size?: "sm" | "md" | "lg";
22
+ /**
23
+ * Color variant
24
+ * @default "primary"
25
+ */
26
+ color?: "primary" | "secondary" | "accent" | "success" | "danger" | "warning" | "gradient";
27
+ /**
28
+ * Show value label
29
+ * @default false
30
+ */
31
+ showLabel?: boolean;
32
+ /**
33
+ * Label format function
34
+ * @default (value, max) => `${Math.round((value/max)*100)}%`
35
+ */
36
+ labelFormat?: (value: number, max: number) => string;
37
+ /**
38
+ * Custom label text (overrides value formatting)
39
+ */
40
+ label?: string;
41
+ /**
42
+ * Label position (horizontal only)
43
+ * @default "inside"
44
+ */
45
+ labelPosition?: "left" | "right" | "top" | "bottom" | "inside";
46
+ /**
47
+ * Animate progress changes
48
+ * @default true
49
+ */
50
+ animated?: boolean;
51
+ /**
52
+ * Thickness of the progress bar
53
+ * @default 8
54
+ */
55
+ thickness?: number;
56
+ /**
57
+ * Radial size in pixels (radial only)
58
+ * @default 80
59
+ */
60
+ radialSize?: number;
61
+ /**
62
+ * Show percentage, ratio, or custom
63
+ * @default "percentage"
64
+ */
65
+ displayType?: "percentage" | "ratio" | "custom";
66
+ /**
67
+ * Glow effect on the progress fill
68
+ * @default false
69
+ */
70
+ glow?: boolean;
71
+ /**
72
+ * Additional className
73
+ */
74
+ className?: string;
75
+ }
76
+ /**
77
+ * Dara UI Progress - Horizontal and radial progress indicators
78
+ *
79
+ * Features:
80
+ * - Horizontal and radial variants
81
+ * - Multiple color variants including gradient
82
+ * - Optional glow effect on both bars and radial rings (disabled by default)
83
+ * - Animated transitions
84
+ * - Label formatting with percentage, ratio, or custom text
85
+ * - Label inside the bar with proper positioning
86
+ * - Theme-aware colors
87
+ */
88
+ export declare const Progress: React.ForwardRefExoticComponent<ProgressProps & React.RefAttributes<HTMLDivElement>>;
89
+ export default Progress;
@@ -0,0 +1,3 @@
1
+ export { Progress } from './Progress';
2
+ export type { ProgressProps } from './Progress';
3
+ export { Progress as default } from './Progress';
@@ -0,0 +1,67 @@
1
+ import { default as React } from 'react';
2
+ export interface QuestCardProps {
3
+ /**
4
+ * Quest title
5
+ */
6
+ title: string;
7
+ /**
8
+ * Quest description
9
+ */
10
+ description: string;
11
+ /**
12
+ * XP reward value
13
+ * @default 0
14
+ */
15
+ xp?: number;
16
+ /**
17
+ * Custom label for XP (e.g., "EXP", "Points", "Score")
18
+ * @default "XP"
19
+ */
20
+ xpLabel?: string;
21
+ /**
22
+ * Deadline date string (e.g., "2024-12-25", "tomorrow", "tonight")
23
+ */
24
+ deadline?: string;
25
+ /**
26
+ * Rank label (e.g., "S", "A", "B")
27
+ */
28
+ rank?: string;
29
+ /**
30
+ * Array of requirement strings
31
+ */
32
+ requirements?: string[];
33
+ /**
34
+ * Glow variant color
35
+ * @default "none"
36
+ */
37
+ glow?: "primary" | "secondary" | "accent" | "none";
38
+ /**
39
+ * Optional done state (controlled)
40
+ */
41
+ done?: boolean;
42
+ /**
43
+ * Callback when quest is completed
44
+ */
45
+ onComplete?: () => void;
46
+ /**
47
+ * Additional className
48
+ */
49
+ className?: string;
50
+ }
51
+ /**
52
+ * Dara UI QuestCard - RPG-style mission/quest card
53
+ *
54
+ * Features:
55
+ * - Title, description, XP reward, deadline, rank
56
+ * - Glow variants (primary, secondary, accent)
57
+ * - Smart deadline display (tomorrow, tonight, X days)
58
+ * - Requirements list
59
+ * - Completion modal with sparkle drop effect
60
+ * - Theme-aware colors
61
+ * - 3D tilt effect on hover
62
+ * - Smooth animated glow transitions
63
+ * - Full i18n support for internal labels
64
+ * - RTL-aware rank badge placement
65
+ */
66
+ export declare const QuestCard: React.FC<QuestCardProps>;
67
+ export default QuestCard;
@@ -0,0 +1,3 @@
1
+ export { QuestCard } from './QuestCard';
2
+ export type { QuestCardProps } from './QuestCard';
3
+ export { QuestCard as default } from './QuestCard';
@@ -0,0 +1,66 @@
1
+ import { default as React } from 'react';
2
+ export interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> {
3
+ /**
4
+ * Whether the radio is checked
5
+ * @default false
6
+ */
7
+ checked?: boolean;
8
+ /**
9
+ * Default checked state (uncontrolled)
10
+ * @default false
11
+ */
12
+ defaultChecked?: boolean;
13
+ /**
14
+ * Callback when checked state changes
15
+ */
16
+ onCheckedChange?: (checked: boolean) => void;
17
+ /**
18
+ * Label text for the radio
19
+ */
20
+ label?: string;
21
+ /**
22
+ * Radio size
23
+ * @default "md"
24
+ */
25
+ size?: "sm" | "md" | "lg";
26
+ /**
27
+ * Glow when checked
28
+ * @default false
29
+ */
30
+ glow?: boolean;
31
+ /**
32
+ * Error state
33
+ * @default false
34
+ */
35
+ error?: boolean;
36
+ /**
37
+ * Disabled state
38
+ * @default false
39
+ */
40
+ disabled?: boolean;
41
+ /**
42
+ * Value (required for groups)
43
+ */
44
+ value?: string;
45
+ /**
46
+ * Name (shared across a group)
47
+ */
48
+ name?: string;
49
+ /**
50
+ * Additional className
51
+ */
52
+ className?: string;
53
+ }
54
+ /**
55
+ * Dara UI Radio – glass ring + spring dot
56
+ *
57
+ * Features:
58
+ * - Optimistic UI: visual state flips on click (no wait for parent re-render)
59
+ * - Glass outer ring, solid center dot
60
+ * - Fast CSS motion (~100ms)
61
+ * - Optional glow
62
+ * - RTL via document dir
63
+ * - Group-ready with name + value
64
+ */
65
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
66
+ export default Radio;
@@ -0,0 +1,3 @@
1
+ export { Radio } from './Radio';
2
+ export type { RadioProps } from './Radio';
3
+ export { Radio as default } from './Radio';
@@ -0,0 +1,98 @@
1
+ import { default as React } from 'react';
2
+ export interface RangeProps {
3
+ /**
4
+ * Current value (controlled)
5
+ */
6
+ value?: number;
7
+ /**
8
+ * Default value (uncontrolled)
9
+ * @default 0
10
+ */
11
+ defaultValue?: number;
12
+ /**
13
+ * Minimum value
14
+ * @default 0
15
+ */
16
+ min?: number;
17
+ /**
18
+ * Maximum value
19
+ * @default 100
20
+ */
21
+ max?: number;
22
+ /**
23
+ * Step increment
24
+ * @default 1
25
+ */
26
+ step?: number;
27
+ /**
28
+ * Callback when value changes
29
+ */
30
+ onChange?: (value: number) => void;
31
+ /**
32
+ * Callback when value change is complete (mouse up / touch end)
33
+ */
34
+ onChangeComplete?: (value: number) => void;
35
+ /**
36
+ * Label text for the range
37
+ */
38
+ label?: string;
39
+ /**
40
+ * Suffix for the value display (e.g., "%", "تومان", "px")
41
+ * @default "%"
42
+ */
43
+ suffix?: string;
44
+ /**
45
+ * Prefix for the value display (e.g., "$", "€")
46
+ */
47
+ prefix?: string;
48
+ /**
49
+ * Show the current value next to the range
50
+ * @default true
51
+ */
52
+ showValue?: boolean;
53
+ /**
54
+ * Value display position
55
+ * @default "right"
56
+ */
57
+ valuePosition?: "left" | "right" | "top" | "bottom";
58
+ /**
59
+ * Size of the range
60
+ * @default "md"
61
+ */
62
+ size?: "sm" | "md" | "lg";
63
+ /**
64
+ * Color variant
65
+ * @default "primary"
66
+ */
67
+ color?: "primary" | "secondary" | "accent" | "success" | "danger" | "warning";
68
+ /**
69
+ * Glow effect on the track
70
+ * @default true
71
+ */
72
+ glow?: boolean;
73
+ /**
74
+ * Disabled state
75
+ * @default false
76
+ */
77
+ disabled?: boolean;
78
+ /**
79
+ * Full width
80
+ * @default true
81
+ */
82
+ fullWidth?: boolean;
83
+ /**
84
+ * Additional className
85
+ */
86
+ className?: string;
87
+ }
88
+ /**
89
+ * Dara UI Range - Glassy range slider with sparkle animation
90
+ *
91
+ * Features:
92
+ * - Instant thumb tracking (no CSS transition while dragging)
93
+ * - Optimistic local value so controlled mode stays in sync with the pointer
94
+ * - Sparkle particles each time max is reached
95
+ * - Glass styling, RTL, sizes, colors
96
+ */
97
+ export declare const Range: React.ForwardRefExoticComponent<RangeProps & React.RefAttributes<HTMLDivElement>>;
98
+ export default Range;
@@ -0,0 +1,3 @@
1
+ export { Range } from './Range';
2
+ export type { RangeProps } from './Range';
3
+ export { Range as default } from './Range';