@moontra/moonui 2.1.5 → 2.1.8
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.
- package/dist/index.js +8249 -2869
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8464 -3017
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/ui/accordion.tsx +8 -11
- package/src/components/ui/alert.tsx +10 -13
- package/src/components/ui/analyze-components.txt +4 -0
- package/src/components/ui/aspect-ratio.tsx +6 -9
- package/src/components/ui/avatar.tsx +18 -21
- package/src/components/ui/badge.tsx +5 -8
- package/src/components/ui/breadcrumb.tsx +29 -31
- package/src/components/ui/button.tsx +11 -15
- package/src/components/ui/calendar.tsx +6 -9
- package/src/components/ui/card.tsx +19 -22
- package/src/components/ui/checkbox.tsx +12 -15
- package/src/components/ui/collapsible.tsx +12 -14
- package/src/components/ui/color-picker.tsx +2 -2
- package/src/components/ui/command.tsx +33 -35
- package/src/components/ui/component-analysis-report.md +118 -0
- package/src/components/ui/data-table.tsx +2 -2
- package/src/components/ui/date-picker.tsx +9 -9
- package/src/components/ui/dialog.tsx +29 -31
- package/src/components/ui/draggable-list.tsx +81 -0
- package/src/components/ui/dropdown-menu.tsx +42 -44
- package/src/components/ui/file-upload.tsx +3 -3
- package/src/components/ui/gesture-drawer.tsx +146 -0
- package/src/components/ui/index.ts +43 -9
- package/src/components/ui/input.tsx +6 -9
- package/src/components/ui/label.tsx +5 -8
- package/src/components/ui/moon-logo.tsx +1 -1
- package/src/components/ui/pagination.tsx +17 -19
- package/src/components/ui/popover.tsx +16 -18
- package/src/components/ui/progress.tsx +6 -9
- package/src/components/ui/radio-group.tsx +11 -14
- package/src/components/ui/rich-text-editor/index.tsx +71 -0
- package/src/components/ui/select.tsx +30 -32
- package/src/components/ui/separator.tsx +6 -9
- package/src/components/ui/simple-editor.tsx +4 -4
- package/src/components/ui/skeleton.tsx +13 -16
- package/src/components/ui/slider.tsx +5 -8
- package/src/components/ui/swipeable-card.tsx +69 -0
- package/src/components/ui/switch.tsx +4 -7
- package/src/components/ui/table.tsx +29 -31
- package/src/components/ui/tabs.tsx +13 -16
- package/src/components/ui/textarea.tsx +4 -7
- package/src/components/ui/toast.tsx +18 -20
- package/src/components/ui/toggle.tsx +5 -8
- package/src/components/ui/tooltip.tsx +16 -18
- package/src/index.tsx +16 -7
- package/src/lib/utils.ts +2 -65
- package/src/components/ui/locked-component.tsx +0 -215
- package/src/use-pro-access.ts +0 -141
|
@@ -63,11 +63,11 @@ const popoverContentVariants = cva(
|
|
|
63
63
|
}
|
|
64
64
|
);
|
|
65
65
|
|
|
66
|
-
const
|
|
67
|
-
const
|
|
66
|
+
const Popover = PopoverPrimitive.Root;
|
|
67
|
+
const PopoverTrigger = PopoverPrimitive.Trigger;
|
|
68
68
|
const PopoverAnchor = PopoverPrimitive.Anchor;
|
|
69
69
|
|
|
70
|
-
export interface
|
|
70
|
+
export interface PopoverContentProps
|
|
71
71
|
extends Omit<React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>, 'side'>,
|
|
72
72
|
VariantProps<typeof popoverContentVariants> {
|
|
73
73
|
/**
|
|
@@ -84,7 +84,7 @@ export interface MoonUIPopoverContentProps
|
|
|
84
84
|
overlayBackdrop?: boolean;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
const
|
|
87
|
+
const PopoverContent = React.forwardRef<
|
|
88
88
|
React.ElementRef<typeof PopoverPrimitive.Content>,
|
|
89
89
|
PopoverContentProps
|
|
90
90
|
>(({
|
|
@@ -130,7 +130,7 @@ const MoonUIPopoverContent = React.forwardRef<
|
|
|
130
130
|
/>
|
|
131
131
|
</>
|
|
132
132
|
));
|
|
133
|
-
|
|
133
|
+
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
134
134
|
|
|
135
135
|
/**
|
|
136
136
|
* PopoverClose bileşeni
|
|
@@ -140,46 +140,44 @@ const PopoverClose = PopoverPrimitive.Close;
|
|
|
140
140
|
/**
|
|
141
141
|
* Popover için bölüm ayırıcı
|
|
142
142
|
*/
|
|
143
|
-
const
|
|
143
|
+
const PopoverSeparator = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
144
144
|
<div
|
|
145
145
|
className={cn("my-2 h-px bg-border", className)}
|
|
146
146
|
{...props}
|
|
147
147
|
/>
|
|
148
148
|
);
|
|
149
|
-
|
|
149
|
+
PopoverSeparator.displayName = "PopoverSeparator";
|
|
150
150
|
|
|
151
151
|
/**
|
|
152
152
|
* Popover başlık bileşeni
|
|
153
153
|
*/
|
|
154
|
-
const
|
|
154
|
+
const PopoverHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
155
155
|
<div
|
|
156
156
|
className={cn("-mx-4 -mt-4 mb-3 px-4 pt-4 pb-3 border-b border-border", className)}
|
|
157
157
|
{...props}
|
|
158
158
|
/>
|
|
159
159
|
);
|
|
160
|
-
|
|
160
|
+
PopoverHeader.displayName = "PopoverHeader";
|
|
161
161
|
|
|
162
162
|
/**
|
|
163
163
|
* Popover footer bileşeni
|
|
164
164
|
*/
|
|
165
|
-
const
|
|
165
|
+
const PopoverFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (
|
|
166
166
|
<div
|
|
167
167
|
className={cn("-mx-4 -mb-4 mt-3 px-4 pt-3 pb-4 border-t border-border", className)}
|
|
168
168
|
{...props}
|
|
169
169
|
/>
|
|
170
170
|
);
|
|
171
|
-
|
|
171
|
+
PopoverFooter.displayName = "PopoverFooter";
|
|
172
172
|
|
|
173
|
-
export {
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
export {
|
|
174
|
+
Popover,
|
|
175
|
+
PopoverTrigger,
|
|
176
|
+
PopoverContent,
|
|
176
177
|
PopoverAnchor,
|
|
177
178
|
PopoverClose,
|
|
178
179
|
PopoverSeparator,
|
|
179
180
|
PopoverHeader,
|
|
180
181
|
PopoverFooter,
|
|
181
182
|
popoverContentVariants,
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
// Backward compatibility exports
|
|
185
|
-
export { MoonUIPopover as Popover, MoonUISeparator as Separator, MoonUIPopoverTrigger as PopoverTrigger, MoonUIPopoverContent as PopoverContent };
|
|
183
|
+
};
|
|
@@ -12,7 +12,7 @@ import { cn } from "../../lib/utils";
|
|
|
12
12
|
* Yükleme işlemleri, form gönderimi ve diğer zaman alan işlemleri göstermek için kullanılır.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const progressVariants = cva(
|
|
16
16
|
"relative overflow-hidden bg-muted",
|
|
17
17
|
{
|
|
18
18
|
variants: {
|
|
@@ -81,9 +81,9 @@ const progressIndicatorVariants = cva(
|
|
|
81
81
|
}
|
|
82
82
|
);
|
|
83
83
|
|
|
84
|
-
export interface
|
|
84
|
+
export interface ProgressProps
|
|
85
85
|
extends React.HTMLAttributes<HTMLDivElement>,
|
|
86
|
-
VariantProps<typeof
|
|
86
|
+
VariantProps<typeof progressVariants> {
|
|
87
87
|
/**
|
|
88
88
|
* İlerleme çubuğu değeri (0-100)
|
|
89
89
|
*/
|
|
@@ -114,7 +114,7 @@ export interface MoonUIProgressProps
|
|
|
114
114
|
max?: number;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
const
|
|
117
|
+
const Progress = React.forwardRef<
|
|
118
118
|
HTMLDivElement,
|
|
119
119
|
ProgressProps
|
|
120
120
|
>(({
|
|
@@ -173,13 +173,10 @@ const MoonUIProgress = React.forwardRef<
|
|
|
173
173
|
</>
|
|
174
174
|
);
|
|
175
175
|
});
|
|
176
|
-
|
|
176
|
+
Progress.displayName = "Progress";
|
|
177
177
|
|
|
178
178
|
// Not: Belirsiz ilerleme animasyonu için CSS keyframe styles.css veya Tailwind config içinde tanımlanmalı
|
|
179
179
|
// @keyframes indeterminate-progress içeren bir tanımlama yapılmalıdır
|
|
180
180
|
// .animate-indeterminate-progress sınıfı da bu animasyonu kullanmalıdır
|
|
181
181
|
|
|
182
|
-
export {
|
|
183
|
-
|
|
184
|
-
// Backward compatibility exports
|
|
185
|
-
export { MoonUIProgress as Progress, moonUIProgressVariants as progressVariants };
|
|
182
|
+
export { Progress, progressVariants };
|
|
@@ -36,7 +36,7 @@ const radioGroupItemVariants = cva(
|
|
|
36
36
|
}
|
|
37
37
|
);
|
|
38
38
|
|
|
39
|
-
export interface
|
|
39
|
+
export interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
40
40
|
/**
|
|
41
41
|
* Radio group value
|
|
42
42
|
*/
|
|
@@ -62,7 +62,7 @@ const RadioGroupContext = React.createContext<{
|
|
|
62
62
|
name?: string;
|
|
63
63
|
}>({});
|
|
64
64
|
|
|
65
|
-
const
|
|
65
|
+
const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(
|
|
66
66
|
({ className, value, onValueChange, disabled, name, ...props }, ref) => {
|
|
67
67
|
return (
|
|
68
68
|
<RadioGroupContext.Provider value={{ value, onValueChange, disabled, name }}>
|
|
@@ -76,9 +76,9 @@ const MoonUIRadioGroup = React.forwardRef<HTMLDivElement, MoonUIRadioGroupProps>
|
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
78
|
);
|
|
79
|
-
|
|
79
|
+
RadioGroup.displayName = "RadioGroup";
|
|
80
80
|
|
|
81
|
-
export interface
|
|
81
|
+
export interface RadioGroupItemProps
|
|
82
82
|
extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,
|
|
83
83
|
VariantProps<typeof radioGroupItemVariants> {
|
|
84
84
|
/**
|
|
@@ -99,7 +99,7 @@ export interface MoonUIRadioGroupItemProps
|
|
|
99
99
|
disabled?: boolean;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
const
|
|
102
|
+
const RadioGroupItem = React.forwardRef<
|
|
103
103
|
HTMLInputElement,
|
|
104
104
|
RadioGroupItemProps
|
|
105
105
|
>(({ className, variant, size, indicator, id, value, disabled, ...props }, ref) => {
|
|
@@ -155,7 +155,7 @@ const MoonUIRadioGroupItem = React.forwardRef<
|
|
|
155
155
|
</div>
|
|
156
156
|
);
|
|
157
157
|
});
|
|
158
|
-
|
|
158
|
+
RadioGroupItem.displayName = "RadioGroupItem";
|
|
159
159
|
|
|
160
160
|
// Radio Label Component
|
|
161
161
|
interface RadioLabelProps extends React.HTMLAttributes<HTMLLabelElement> {
|
|
@@ -173,7 +173,7 @@ interface RadioLabelProps extends React.HTMLAttributes<HTMLLabelElement> {
|
|
|
173
173
|
disabled?: boolean;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
const
|
|
176
|
+
const RadioLabel = React.forwardRef<HTMLLabelElement, RadioLabelProps>(
|
|
177
177
|
({ className, htmlFor, children, disabled = false, ...props }, ref) => {
|
|
178
178
|
return (
|
|
179
179
|
<label
|
|
@@ -191,7 +191,7 @@ const MoonUIRadioLabel = React.forwardRef<HTMLLabelElement, RadioLabelProps>(
|
|
|
191
191
|
);
|
|
192
192
|
}
|
|
193
193
|
);
|
|
194
|
-
|
|
194
|
+
RadioLabel.displayName = "RadioLabel";
|
|
195
195
|
|
|
196
196
|
// Radio Item and Label combination
|
|
197
197
|
interface RadioItemWithLabelProps extends RadioGroupItemProps {
|
|
@@ -213,7 +213,7 @@ interface RadioItemWithLabelProps extends RadioGroupItemProps {
|
|
|
213
213
|
disabled?: boolean;
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
const
|
|
216
|
+
const RadioItemWithLabel = React.forwardRef<
|
|
217
217
|
HTMLInputElement,
|
|
218
218
|
RadioItemWithLabelProps
|
|
219
219
|
>(({
|
|
@@ -238,9 +238,6 @@ const MoonUIRadioItemWithLabel = React.forwardRef<
|
|
|
238
238
|
</div>
|
|
239
239
|
);
|
|
240
240
|
});
|
|
241
|
-
|
|
241
|
+
RadioItemWithLabel.displayName = "RadioItemWithLabel";
|
|
242
242
|
|
|
243
|
-
export {
|
|
244
|
-
|
|
245
|
-
// Backward compatibility exports
|
|
246
|
-
export { MoonUILabel as Label, MoonUIRadioGroup as RadioGroup, MoonUIRadioGroupItem as RadioGroupItem };
|
|
243
|
+
export { RadioGroup, RadioGroupItem, RadioLabel, RadioItemWithLabel };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Basic Rich Text Editor - Free Version
|
|
2
|
+
"use client"
|
|
3
|
+
|
|
4
|
+
import * as React from "react"
|
|
5
|
+
import { cn } from "../../../lib/utils"
|
|
6
|
+
|
|
7
|
+
export interface RichTextEditorProps {
|
|
8
|
+
value?: string
|
|
9
|
+
onChange?: (value: string) => void
|
|
10
|
+
placeholder?: string
|
|
11
|
+
className?: string
|
|
12
|
+
disabled?: boolean
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function RichTextEditor({
|
|
16
|
+
value = "",
|
|
17
|
+
onChange,
|
|
18
|
+
placeholder = "Start typing...",
|
|
19
|
+
className,
|
|
20
|
+
disabled = false
|
|
21
|
+
}: RichTextEditorProps) {
|
|
22
|
+
const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {
|
|
23
|
+
if (!disabled && onChange) {
|
|
24
|
+
onChange(e.target.value)
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<div className={cn("border border-input rounded-md", className)}>
|
|
30
|
+
<div className="border-b border-border p-2 bg-muted/50">
|
|
31
|
+
<div className="flex gap-1">
|
|
32
|
+
<button
|
|
33
|
+
type="button"
|
|
34
|
+
className="px-2 py-1 text-sm rounded hover:bg-background disabled:opacity-50"
|
|
35
|
+
disabled={disabled}
|
|
36
|
+
title="Bold (Pro feature)"
|
|
37
|
+
>
|
|
38
|
+
B
|
|
39
|
+
</button>
|
|
40
|
+
<button
|
|
41
|
+
type="button"
|
|
42
|
+
className="px-2 py-1 text-sm rounded hover:bg-background disabled:opacity-50"
|
|
43
|
+
disabled={disabled}
|
|
44
|
+
title="Italic (Pro feature)"
|
|
45
|
+
>
|
|
46
|
+
I
|
|
47
|
+
</button>
|
|
48
|
+
<button
|
|
49
|
+
type="button"
|
|
50
|
+
className="px-2 py-1 text-sm rounded hover:bg-background disabled:opacity-50"
|
|
51
|
+
disabled={disabled}
|
|
52
|
+
title="Underline (Pro feature)"
|
|
53
|
+
>
|
|
54
|
+
U
|
|
55
|
+
</button>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
<textarea
|
|
59
|
+
value={value}
|
|
60
|
+
onChange={handleChange}
|
|
61
|
+
placeholder={placeholder}
|
|
62
|
+
disabled={disabled}
|
|
63
|
+
className={cn(
|
|
64
|
+
"w-full min-h-[200px] p-3 resize-none border-0 bg-transparent",
|
|
65
|
+
"focus:outline-none focus:ring-0",
|
|
66
|
+
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
67
|
+
)}
|
|
68
|
+
/>
|
|
69
|
+
</div>
|
|
70
|
+
)
|
|
71
|
+
}
|
|
@@ -14,17 +14,17 @@ import { cn } from "../../lib/utils"
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
// Directly re-exporting the Root component
|
|
17
|
-
const
|
|
18
|
-
|
|
17
|
+
const Select = SelectPrimitive.Root
|
|
18
|
+
Select.displayName = "Select"
|
|
19
19
|
|
|
20
|
-
const
|
|
20
|
+
const SelectGroup = SelectPrimitive.Group
|
|
21
21
|
|
|
22
|
-
const
|
|
22
|
+
const SelectValue = SelectPrimitive.Value
|
|
23
23
|
|
|
24
24
|
type SelectTriggerVariant = "standard" | "outline" | "ghost" | "underline";
|
|
25
25
|
type SelectTriggerSize = "sm" | "md" | "lg";
|
|
26
26
|
|
|
27
|
-
interface
|
|
27
|
+
interface SelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
|
|
28
28
|
/** Visual variant */
|
|
29
29
|
variant?: SelectTriggerVariant;
|
|
30
30
|
/** Size */
|
|
@@ -41,7 +41,7 @@ interface MoonUISelectTriggerProps extends React.ComponentPropsWithoutRef<typeof
|
|
|
41
41
|
rightIcon?: React.ReactNode;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
const
|
|
44
|
+
const SelectTrigger = React.forwardRef<
|
|
45
45
|
React.ElementRef<typeof SelectPrimitive.Trigger>,
|
|
46
46
|
SelectTriggerProps
|
|
47
47
|
>(({ className, children, variant = "standard", size = "md", error, success, loading, leftIcon, rightIcon, ...props }, ref) => (
|
|
@@ -97,12 +97,12 @@ const MoonUISelectTrigger = React.forwardRef<
|
|
|
97
97
|
)}
|
|
98
98
|
</SelectPrimitive.Trigger>
|
|
99
99
|
))
|
|
100
|
-
|
|
100
|
+
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
103
|
* Scroll Up Button Component
|
|
104
104
|
*/
|
|
105
|
-
const
|
|
105
|
+
const SelectScrollUpButton = React.forwardRef<
|
|
106
106
|
React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,
|
|
107
107
|
React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>
|
|
108
108
|
>(({ className, ...props }, ref) => (
|
|
@@ -117,12 +117,12 @@ const MoonUISelectScrollUpButton = React.forwardRef<
|
|
|
117
117
|
<ChevronUp className="h-4 w-4" />
|
|
118
118
|
</SelectPrimitive.ScrollUpButton>
|
|
119
119
|
))
|
|
120
|
-
|
|
120
|
+
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName
|
|
121
121
|
|
|
122
122
|
/**
|
|
123
123
|
* Scroll Down Button Component
|
|
124
124
|
*/
|
|
125
|
-
const
|
|
125
|
+
const SelectScrollDownButton = React.forwardRef<
|
|
126
126
|
React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,
|
|
127
127
|
React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>
|
|
128
128
|
>(({ className, ...props }, ref) => (
|
|
@@ -137,10 +137,10 @@ const MoonUISelectScrollDownButton = React.forwardRef<
|
|
|
137
137
|
<ChevronDown className="h-4 w-4" />
|
|
138
138
|
</SelectPrimitive.ScrollDownButton>
|
|
139
139
|
))
|
|
140
|
-
|
|
140
|
+
SelectScrollDownButton.displayName =
|
|
141
141
|
SelectPrimitive.ScrollDownButton.displayName
|
|
142
142
|
|
|
143
|
-
const
|
|
143
|
+
const SelectContent = React.forwardRef<
|
|
144
144
|
React.ElementRef<typeof SelectPrimitive.Content>,
|
|
145
145
|
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>
|
|
146
146
|
>(({ className, children, position = "item-aligned", ...props }, ref) => (
|
|
@@ -177,9 +177,9 @@ const MoonUISelectContent = React.forwardRef<
|
|
|
177
177
|
</SelectPrimitive.Content>
|
|
178
178
|
</SelectPrimitive.Portal>
|
|
179
179
|
))
|
|
180
|
-
|
|
180
|
+
SelectContent.displayName = SelectPrimitive.Content.displayName
|
|
181
181
|
|
|
182
|
-
const
|
|
182
|
+
const SelectLabel = React.forwardRef<
|
|
183
183
|
React.ElementRef<typeof SelectPrimitive.Label>,
|
|
184
184
|
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>
|
|
185
185
|
>(({ className, ...props }, ref) => (
|
|
@@ -189,12 +189,12 @@ const MoonUISelectLabel = React.forwardRef<
|
|
|
189
189
|
{...props}
|
|
190
190
|
/>
|
|
191
191
|
))
|
|
192
|
-
|
|
192
|
+
SelectLabel.displayName = SelectPrimitive.Label.displayName
|
|
193
193
|
|
|
194
194
|
type SelectItemVariant = "default" | "subtle" | "destructive" | "success" | "warning";
|
|
195
195
|
type SelectItemSize = "sm" | "md" | "lg";
|
|
196
196
|
|
|
197
|
-
interface
|
|
197
|
+
interface SelectItemProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> {
|
|
198
198
|
/** Visual variant */
|
|
199
199
|
variant?: SelectItemVariant;
|
|
200
200
|
/** Size */
|
|
@@ -205,7 +205,7 @@ interface MoonUISelectItemProps extends React.ComponentPropsWithoutRef<typeof Se
|
|
|
205
205
|
customIndicator?: React.ReactNode;
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
-
const
|
|
208
|
+
const SelectItem = React.forwardRef<
|
|
209
209
|
React.ElementRef<typeof SelectPrimitive.Item>,
|
|
210
210
|
SelectItemProps
|
|
211
211
|
>(({ className, children, variant = "default", size = "md", rightIcon, customIndicator, ...props }, ref) => (
|
|
@@ -245,9 +245,9 @@ const MoonUISelectItem = React.forwardRef<
|
|
|
245
245
|
)}
|
|
246
246
|
</SelectPrimitive.Item>
|
|
247
247
|
))
|
|
248
|
-
|
|
248
|
+
SelectItem.displayName = SelectPrimitive.Item.displayName
|
|
249
249
|
|
|
250
|
-
const
|
|
250
|
+
const SelectSeparator = React.forwardRef<
|
|
251
251
|
React.ElementRef<typeof SelectPrimitive.Separator>,
|
|
252
252
|
React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>
|
|
253
253
|
>(({ className, ...props }, ref) => (
|
|
@@ -257,19 +257,17 @@ const MoonUISelectSeparator = React.forwardRef<
|
|
|
257
257
|
{...props}
|
|
258
258
|
/>
|
|
259
259
|
))
|
|
260
|
-
|
|
260
|
+
SelectSeparator.displayName = SelectPrimitive.Separator.displayName
|
|
261
261
|
|
|
262
|
-
export {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
262
|
+
export {
|
|
263
|
+
Select,
|
|
264
|
+
SelectGroup,
|
|
265
|
+
SelectValue,
|
|
266
|
+
SelectTrigger,
|
|
267
|
+
SelectContent,
|
|
268
|
+
SelectLabel,
|
|
269
|
+
SelectItem,
|
|
270
|
+
SelectSeparator,
|
|
270
271
|
SelectScrollUpButton,
|
|
271
272
|
SelectScrollDownButton,
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
// Backward compatibility exports
|
|
275
|
-
export { MoonUIButton as Button, MoonUILabel as Label, MoonUISelect as Select, MoonUISeparator as Separator, MoonUISelectTrigger as SelectTrigger, MoonUISelectContent as SelectContent, MoonUISelectItem as SelectItem, MoonUISelectValue as SelectValue, MoonUISelectGroup as SelectGroup, MoonUISelectLabel as SelectLabel, MoonUISelectSeparator as SelectSeparator }
|
|
273
|
+
}
|
|
@@ -6,7 +6,7 @@ import { cva, type VariantProps } from "class-variance-authority"
|
|
|
6
6
|
|
|
7
7
|
import { cn } from "../../lib/utils"
|
|
8
8
|
|
|
9
|
-
const
|
|
9
|
+
const separatorVariants = cva(
|
|
10
10
|
"shrink-0 bg-border",
|
|
11
11
|
{
|
|
12
12
|
variants: {
|
|
@@ -104,11 +104,11 @@ const moonUISeparatorVariants = cva(
|
|
|
104
104
|
}
|
|
105
105
|
)
|
|
106
106
|
|
|
107
|
-
export interface
|
|
107
|
+
export interface SeparatorProps
|
|
108
108
|
extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>,
|
|
109
|
-
VariantProps<typeof
|
|
109
|
+
VariantProps<typeof separatorVariants> {}
|
|
110
110
|
|
|
111
|
-
const
|
|
111
|
+
const Separator = React.forwardRef<
|
|
112
112
|
React.ElementRef<typeof SeparatorPrimitive.Root>,
|
|
113
113
|
SeparatorProps
|
|
114
114
|
>(
|
|
@@ -135,9 +135,6 @@ const MoonUISeparator = React.forwardRef<
|
|
|
135
135
|
/>
|
|
136
136
|
)
|
|
137
137
|
)
|
|
138
|
-
|
|
138
|
+
Separator.displayName = SeparatorPrimitive.Root.displayName
|
|
139
139
|
|
|
140
|
-
export {
|
|
141
|
-
|
|
142
|
-
// Backward compatibility exports
|
|
143
|
-
export { MoonUISeparator as Separator, moonUISeparatorVariants as separatorVariants }
|
|
140
|
+
export { Separator, separatorVariants }
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
Edit
|
|
33
33
|
} from 'lucide-react'
|
|
34
34
|
|
|
35
|
-
export interface
|
|
35
|
+
export interface SimpleEditorProps {
|
|
36
36
|
value?: string
|
|
37
37
|
onChange?: (value: string) => void
|
|
38
38
|
placeholder?: string
|
|
@@ -70,7 +70,7 @@ const ToolbarButton = ({ icon, tooltip, active, onClick, disabled }: ToolbarButt
|
|
|
70
70
|
</Tooltip>
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
-
const
|
|
73
|
+
const ColorPicker = ({ onColorSelect }: { onColorSelect: (color: string) => void }) => {
|
|
74
74
|
const colors = [
|
|
75
75
|
'#000000', '#374151', '#6B7280', '#9CA3AF',
|
|
76
76
|
'#EF4444', '#F59E0B', '#EAB308', '#22C55E',
|
|
@@ -91,7 +91,7 @@ const MoonUIColorPicker = ({ onColorSelect }: { onColorSelect: (color: string) =
|
|
|
91
91
|
)
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
export const
|
|
94
|
+
export const SimpleEditor = React.forwardRef<HTMLDivElement, SimpleEditorProps>(
|
|
95
95
|
({
|
|
96
96
|
value = '',
|
|
97
97
|
onChange,
|
|
@@ -633,7 +633,7 @@ export const MoonUISimpleEditor = React.forwardRef<HTMLDivElement, MoonUISimpleE
|
|
|
633
633
|
}
|
|
634
634
|
)
|
|
635
635
|
|
|
636
|
-
|
|
636
|
+
SimpleEditor.displayName = "SimpleEditor"
|
|
637
637
|
|
|
638
638
|
// Character count component to avoid hydration issues
|
|
639
639
|
const CharacterCount = ({ content }: { content: string }) => {
|
|
@@ -4,7 +4,7 @@ import * as React from "react";
|
|
|
4
4
|
import { cva, type VariantProps } from "class-variance-authority";
|
|
5
5
|
import { cn } from "../../lib/utils";
|
|
6
6
|
import { motion } from "framer-motion";
|
|
7
|
-
import { skeletonAnimation } from "
|
|
7
|
+
import { skeletonAnimation } from "@/lib/micro-interactions";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Skeleton Component
|
|
@@ -13,7 +13,7 @@ import { skeletonAnimation } from "../../lib/micro-interactions";
|
|
|
13
13
|
* Fully integrated with the theme system and provides various shapes, sizes, and animations.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
const
|
|
16
|
+
const skeletonVariants = cva(
|
|
17
17
|
"animate-pulse rounded-md",
|
|
18
18
|
{
|
|
19
19
|
variants: {
|
|
@@ -48,9 +48,9 @@ const moonUISkeletonVariants = cva(
|
|
|
48
48
|
}
|
|
49
49
|
);
|
|
50
50
|
|
|
51
|
-
export interface
|
|
51
|
+
export interface SkeletonProps
|
|
52
52
|
extends React.HTMLAttributes<HTMLDivElement>,
|
|
53
|
-
VariantProps<typeof
|
|
53
|
+
VariantProps<typeof skeletonVariants> {
|
|
54
54
|
/**
|
|
55
55
|
* Height of the skeleton
|
|
56
56
|
*/
|
|
@@ -77,7 +77,7 @@ export interface MoonUISkeletonProps
|
|
|
77
77
|
motion?: boolean;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
export const
|
|
80
|
+
export const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(
|
|
81
81
|
({
|
|
82
82
|
className,
|
|
83
83
|
variant,
|
|
@@ -153,7 +153,7 @@ export const MoonUISkeleton = React.forwardRef<HTMLDivElement, MoonUISkeletonPro
|
|
|
153
153
|
);
|
|
154
154
|
}
|
|
155
155
|
);
|
|
156
|
-
|
|
156
|
+
Skeleton.displayName = "Skeleton";
|
|
157
157
|
|
|
158
158
|
/**
|
|
159
159
|
* Text Skeleton Component
|
|
@@ -183,7 +183,7 @@ export interface SkeletonTextProps extends Omit<SkeletonProps, "children" | "isL
|
|
|
183
183
|
randomWidths?: boolean;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
export const
|
|
186
|
+
export const SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(
|
|
187
187
|
({
|
|
188
188
|
className,
|
|
189
189
|
lines = 3,
|
|
@@ -228,7 +228,7 @@ export const MoonUISkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextP
|
|
|
228
228
|
);
|
|
229
229
|
}
|
|
230
230
|
);
|
|
231
|
-
|
|
231
|
+
SkeletonText.displayName = "SkeletonText";
|
|
232
232
|
|
|
233
233
|
/**
|
|
234
234
|
* Avatar Skeleton Component
|
|
@@ -240,7 +240,7 @@ export interface SkeletonAvatarProps extends Omit<SkeletonProps, "shape" | "size
|
|
|
240
240
|
size?: string | number;
|
|
241
241
|
}
|
|
242
242
|
|
|
243
|
-
export const
|
|
243
|
+
export const SkeletonAvatar = React.forwardRef<HTMLDivElement, SkeletonAvatarProps>(
|
|
244
244
|
({
|
|
245
245
|
className,
|
|
246
246
|
size = "2.5rem",
|
|
@@ -264,7 +264,7 @@ export const MoonUISkeletonAvatar = React.forwardRef<HTMLDivElement, SkeletonAva
|
|
|
264
264
|
);
|
|
265
265
|
}
|
|
266
266
|
);
|
|
267
|
-
|
|
267
|
+
SkeletonAvatar.displayName = "SkeletonAvatar";
|
|
268
268
|
|
|
269
269
|
/**
|
|
270
270
|
* Card Skeleton Component
|
|
@@ -284,7 +284,7 @@ export interface SkeletonCardProps extends Omit<SkeletonProps, "children" | "isL
|
|
|
284
284
|
showFooter?: boolean;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
export const
|
|
287
|
+
export const SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardProps>(
|
|
288
288
|
({
|
|
289
289
|
className,
|
|
290
290
|
showHeader = true,
|
|
@@ -346,9 +346,6 @@ export const MoonUISkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardP
|
|
|
346
346
|
);
|
|
347
347
|
}
|
|
348
348
|
);
|
|
349
|
-
|
|
349
|
+
SkeletonCard.displayName = "SkeletonCard";
|
|
350
350
|
|
|
351
|
-
export {
|
|
352
|
-
|
|
353
|
-
// Backward compatibility exports
|
|
354
|
-
export { moonUISkeletonVariants as skeletonVariants };
|
|
351
|
+
export { skeletonVariants };
|
|
@@ -12,7 +12,7 @@ import { cn } from "../../lib/utils"
|
|
|
12
12
|
* Used for value ranges like volume, brightness, price ranges.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const sliderVariants = cva(
|
|
16
16
|
"relative flex w-full touch-none select-none items-center",
|
|
17
17
|
{
|
|
18
18
|
variants: {
|
|
@@ -153,7 +153,7 @@ type SliderBaseProps = {
|
|
|
153
153
|
/**
|
|
154
154
|
* Slider size
|
|
155
155
|
*/
|
|
156
|
-
size?: VariantProps<typeof
|
|
156
|
+
size?: VariantProps<typeof sliderVariants>["size"];
|
|
157
157
|
/**
|
|
158
158
|
* Disabled state
|
|
159
159
|
*/
|
|
@@ -163,7 +163,7 @@ type SliderBaseProps = {
|
|
|
163
163
|
// Merge HTML properties without defaultValue conflicts
|
|
164
164
|
type SliderProps = SliderBaseProps & Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue'>
|
|
165
165
|
|
|
166
|
-
const
|
|
166
|
+
const Slider = React.forwardRef<
|
|
167
167
|
HTMLDivElement,
|
|
168
168
|
SliderProps
|
|
169
169
|
>(({
|
|
@@ -346,9 +346,6 @@ const MoonUISlider = React.forwardRef<
|
|
|
346
346
|
)
|
|
347
347
|
})
|
|
348
348
|
|
|
349
|
-
|
|
349
|
+
Slider.displayName = "Slider"
|
|
350
350
|
|
|
351
|
-
export {
|
|
352
|
-
|
|
353
|
-
// Backward compatibility exports
|
|
354
|
-
export { MoonUISlider as Slider }
|
|
351
|
+
export { Slider }
|