@nextsparkjs/ui 0.1.0-beta.1 → 0.1.0-beta.2
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.d.ts +90 -5
- package/dist/index.js +157 -69
- package/dist/index.js.map +1 -1
- package/package.json +6 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
5
|
import { VariantProps } from 'class-variance-authority';
|
|
4
6
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
|
5
7
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
6
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
7
8
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
8
9
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
9
10
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
@@ -13,8 +14,92 @@ import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
|
13
14
|
import * as SliderPrimitive from '@radix-ui/react-slider';
|
|
14
15
|
import { ClassValue } from 'clsx';
|
|
15
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Theme color types for React Native
|
|
19
|
+
* These define the contract for theming native components
|
|
20
|
+
*/
|
|
21
|
+
interface ThemeColors {
|
|
22
|
+
background: string;
|
|
23
|
+
foreground: string;
|
|
24
|
+
card: string;
|
|
25
|
+
cardForeground: string;
|
|
26
|
+
primary: string;
|
|
27
|
+
primaryForeground: string;
|
|
28
|
+
secondary: string;
|
|
29
|
+
secondaryForeground: string;
|
|
30
|
+
muted: string;
|
|
31
|
+
mutedForeground: string;
|
|
32
|
+
accent: string;
|
|
33
|
+
accentForeground: string;
|
|
34
|
+
destructive: string;
|
|
35
|
+
destructiveForeground: string;
|
|
36
|
+
success: string;
|
|
37
|
+
successForeground: string;
|
|
38
|
+
border: string;
|
|
39
|
+
input: string;
|
|
40
|
+
ring: string;
|
|
41
|
+
placeholder: string;
|
|
42
|
+
statusTodo?: string;
|
|
43
|
+
statusInProgress?: string;
|
|
44
|
+
statusReview?: string;
|
|
45
|
+
statusDone?: string;
|
|
46
|
+
statusBlocked?: string;
|
|
47
|
+
statusTodoText?: string;
|
|
48
|
+
statusInProgressText?: string;
|
|
49
|
+
statusReviewText?: string;
|
|
50
|
+
statusDoneText?: string;
|
|
51
|
+
statusBlockedText?: string;
|
|
52
|
+
dotTodo?: string;
|
|
53
|
+
dotInProgress?: string;
|
|
54
|
+
dotReview?: string;
|
|
55
|
+
dotDone?: string;
|
|
56
|
+
dotBlocked?: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
interface ThemeContextValue {
|
|
60
|
+
colors: ThemeColors;
|
|
61
|
+
}
|
|
62
|
+
interface ThemeProviderProps {
|
|
63
|
+
colors?: Partial<ThemeColors>;
|
|
64
|
+
children: ReactNode;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* ThemeProvider - Wrap your app to customize component colors
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```tsx
|
|
71
|
+
* import { ThemeProvider } from "@nextsparkjs/ui";
|
|
72
|
+
*
|
|
73
|
+
* const myColors = {
|
|
74
|
+
* primary: "#3B82F6",
|
|
75
|
+
* primaryForeground: "#FFFFFF",
|
|
76
|
+
* };
|
|
77
|
+
*
|
|
78
|
+
* export default function RootLayout() {
|
|
79
|
+
* return (
|
|
80
|
+
* <ThemeProvider colors={myColors}>
|
|
81
|
+
* <Stack />
|
|
82
|
+
* </ThemeProvider>
|
|
83
|
+
* );
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
declare function ThemeProvider({ colors: customColors, children }: ThemeProviderProps): react_jsx_runtime.JSX.Element;
|
|
88
|
+
/**
|
|
89
|
+
* useTheme - Access theme colors in components
|
|
90
|
+
* Falls back to defaultColors if no ThemeProvider is present
|
|
91
|
+
*/
|
|
92
|
+
declare function useTheme(): ThemeContextValue;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Default colors for React Native components
|
|
96
|
+
* These are used when no ThemeProvider is present or as fallback values
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
declare const defaultColors: ThemeColors;
|
|
100
|
+
|
|
16
101
|
declare const buttonVariants: (props?: ({
|
|
17
|
-
variant?: "
|
|
102
|
+
variant?: "secondary" | "destructive" | "link" | "default" | "outline" | "ghost" | null | undefined;
|
|
18
103
|
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
19
104
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
20
105
|
interface ButtonProps extends React.ComponentProps<"button">, VariantProps<typeof buttonVariants> {
|
|
@@ -53,7 +138,7 @@ interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {
|
|
|
53
138
|
declare function Label({ className, ...props }: LabelProps): react_jsx_runtime.JSX.Element;
|
|
54
139
|
|
|
55
140
|
declare const badgeVariants: (props?: ({
|
|
56
|
-
variant?: "
|
|
141
|
+
variant?: "secondary" | "destructive" | "default" | "outline" | null | undefined;
|
|
57
142
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
58
143
|
interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
59
144
|
}
|
|
@@ -192,4 +277,4 @@ declare const Slider: React.ForwardRefExoticComponent<Omit<SliderPrimitive.Slide
|
|
|
192
277
|
|
|
193
278
|
declare function cn(...inputs: ClassValue[]): string;
|
|
194
279
|
|
|
195
|
-
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, type CheckboxProps, Dialog, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, type DialogProps, DialogTitle, type DialogTitleProps, Input, type InputProps, Label, type LabelProps, PressableCard, type PressableCardProps, Progress, type ProgressProps, Separator, type SeparatorProps, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonContainer, type SkeletonProps, SkeletonText, type SkeletonTextProps, SkeletonTitle, Slider, type SliderProps, Switch, type SwitchProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, type TextareaProps, badgeVariants, buttonVariants, cn, getInitials };
|
|
280
|
+
export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Avatar, AvatarFallback, type AvatarFallbackProps, AvatarImage, type AvatarImageProps, type AvatarProps, type AvatarSize, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, type CardContentProps, CardDescription, type CardDescriptionProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, CardTitle, type CardTitleProps, Checkbox, type CheckboxProps, Dialog, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, type DialogProps, DialogTitle, type DialogTitleProps, Input, type InputProps, Label, type LabelProps, PressableCard, type PressableCardProps, Progress, type ProgressProps, Separator, type SeparatorProps, Skeleton, SkeletonAvatar, SkeletonCard, SkeletonContainer, type SkeletonProps, SkeletonText, type SkeletonTextProps, SkeletonTitle, Slider, type SliderProps, Switch, type SwitchProps, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, type TextareaProps, type ThemeColors, ThemeProvider, type ThemeProviderProps, badgeVariants, buttonVariants, cn, defaultColors, getInitials, useTheme };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,90 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
// src/native/ThemeContext.tsx
|
|
4
|
+
import { createContext, useContext, useMemo } from "react";
|
|
5
|
+
|
|
6
|
+
// src/native/defaultColors.ts
|
|
7
|
+
var defaultColors = {
|
|
8
|
+
// Base
|
|
9
|
+
background: "#FFFFFF",
|
|
10
|
+
foreground: "#1a1a1a",
|
|
11
|
+
card: "#FFFFFF",
|
|
12
|
+
cardForeground: "#1a1a1a",
|
|
13
|
+
// Interactive
|
|
14
|
+
primary: "#171717",
|
|
15
|
+
primaryForeground: "#fafafa",
|
|
16
|
+
secondary: "#f5f5f5",
|
|
17
|
+
secondaryForeground: "#1a1a1a",
|
|
18
|
+
// States
|
|
19
|
+
muted: "#f5f5f5",
|
|
20
|
+
mutedForeground: "#737373",
|
|
21
|
+
accent: "#f5f5f5",
|
|
22
|
+
accentForeground: "#1a1a1a",
|
|
23
|
+
// Alerts
|
|
24
|
+
destructive: "#ef4444",
|
|
25
|
+
destructiveForeground: "#FFFFFF",
|
|
26
|
+
success: "#22c55e",
|
|
27
|
+
successForeground: "#FFFFFF",
|
|
28
|
+
// UI
|
|
29
|
+
border: "#e5e5e5",
|
|
30
|
+
input: "#e5e5e5",
|
|
31
|
+
ring: "#a3a3a3",
|
|
32
|
+
placeholder: "#a3a3a3",
|
|
33
|
+
// Status colors
|
|
34
|
+
statusTodo: "rgba(107, 114, 128, 0.2)",
|
|
35
|
+
// gray-500/20
|
|
36
|
+
statusInProgress: "rgba(59, 130, 246, 0.2)",
|
|
37
|
+
// blue-500/20
|
|
38
|
+
statusReview: "rgba(245, 158, 11, 0.2)",
|
|
39
|
+
// amber-500/20
|
|
40
|
+
statusDone: "rgba(34, 197, 94, 0.2)",
|
|
41
|
+
// green-500/20
|
|
42
|
+
statusBlocked: "rgba(239, 68, 68, 0.2)",
|
|
43
|
+
// red-500/20
|
|
44
|
+
// Status text colors
|
|
45
|
+
statusTodoText: "#4b5563",
|
|
46
|
+
// gray-600
|
|
47
|
+
statusInProgressText: "#2563eb",
|
|
48
|
+
// blue-600
|
|
49
|
+
statusReviewText: "#d97706",
|
|
50
|
+
// amber-600
|
|
51
|
+
statusDoneText: "#16a34a",
|
|
52
|
+
// green-600
|
|
53
|
+
statusBlockedText: "#dc2626",
|
|
54
|
+
// red-600
|
|
55
|
+
// Dot colors
|
|
56
|
+
dotTodo: "#6b7280",
|
|
57
|
+
// gray-500
|
|
58
|
+
dotInProgress: "#3b82f6",
|
|
59
|
+
// blue-500
|
|
60
|
+
dotReview: "#f59e0b",
|
|
61
|
+
// amber-500
|
|
62
|
+
dotDone: "#22c55e",
|
|
63
|
+
// green-500
|
|
64
|
+
dotBlocked: "#ef4444"
|
|
65
|
+
// red-500
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
// src/native/ThemeContext.tsx
|
|
69
|
+
import { jsx } from "react/jsx-runtime";
|
|
70
|
+
var ThemeContext = createContext(null);
|
|
71
|
+
function ThemeProvider({ colors: customColors, children }) {
|
|
72
|
+
const value = useMemo(
|
|
73
|
+
() => ({
|
|
74
|
+
colors: { ...defaultColors, ...customColors }
|
|
75
|
+
}),
|
|
76
|
+
[customColors]
|
|
77
|
+
);
|
|
78
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, { value, children });
|
|
79
|
+
}
|
|
80
|
+
function useTheme() {
|
|
81
|
+
const context = useContext(ThemeContext);
|
|
82
|
+
if (!context) {
|
|
83
|
+
return { colors: defaultColors };
|
|
84
|
+
}
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
|
|
3
88
|
// src/components/Button.tsx
|
|
4
89
|
import * as React from "react";
|
|
5
90
|
import { Slot } from "@radix-ui/react-slot";
|
|
@@ -13,7 +98,7 @@ function cn(...inputs) {
|
|
|
13
98
|
}
|
|
14
99
|
|
|
15
100
|
// src/components/Button.tsx
|
|
16
|
-
import { jsx } from "react/jsx-runtime";
|
|
101
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
17
102
|
var buttonVariants = cva(
|
|
18
103
|
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
|
|
19
104
|
{
|
|
@@ -42,7 +127,7 @@ var buttonVariants = cva(
|
|
|
42
127
|
var Button = React.forwardRef(
|
|
43
128
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
44
129
|
const Comp = asChild ? Slot : "button";
|
|
45
|
-
return /* @__PURE__ */
|
|
130
|
+
return /* @__PURE__ */ jsx2(
|
|
46
131
|
Comp,
|
|
47
132
|
{
|
|
48
133
|
ref,
|
|
@@ -57,10 +142,10 @@ Button.displayName = "Button";
|
|
|
57
142
|
|
|
58
143
|
// src/components/Input.tsx
|
|
59
144
|
import * as React2 from "react";
|
|
60
|
-
import { jsx as
|
|
145
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
61
146
|
var Input = React2.forwardRef(
|
|
62
147
|
({ className, type, ...props }, ref) => {
|
|
63
|
-
return /* @__PURE__ */
|
|
148
|
+
return /* @__PURE__ */ jsx3(
|
|
64
149
|
"input",
|
|
65
150
|
{
|
|
66
151
|
type,
|
|
@@ -78,10 +163,10 @@ Input.displayName = "Input";
|
|
|
78
163
|
|
|
79
164
|
// src/components/Textarea.tsx
|
|
80
165
|
import * as React3 from "react";
|
|
81
|
-
import { jsx as
|
|
166
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
82
167
|
var Textarea = React3.forwardRef(
|
|
83
168
|
({ className, ...props }, ref) => {
|
|
84
|
-
return /* @__PURE__ */
|
|
169
|
+
return /* @__PURE__ */ jsx4(
|
|
85
170
|
"textarea",
|
|
86
171
|
{
|
|
87
172
|
className: cn(
|
|
@@ -100,8 +185,8 @@ Textarea.displayName = "Textarea";
|
|
|
100
185
|
import * as React4 from "react";
|
|
101
186
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
102
187
|
import { CheckIcon } from "@radix-ui/react-icons";
|
|
103
|
-
import { jsx as
|
|
104
|
-
var Checkbox = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
188
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
189
|
+
var Checkbox = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
105
190
|
CheckboxPrimitive.Root,
|
|
106
191
|
{
|
|
107
192
|
ref,
|
|
@@ -110,11 +195,11 @@ var Checkbox = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
110
195
|
className
|
|
111
196
|
),
|
|
112
197
|
...props,
|
|
113
|
-
children: /* @__PURE__ */
|
|
198
|
+
children: /* @__PURE__ */ jsx5(
|
|
114
199
|
CheckboxPrimitive.Indicator,
|
|
115
200
|
{
|
|
116
201
|
className: cn("flex items-center justify-center text-current"),
|
|
117
|
-
children: /* @__PURE__ */
|
|
202
|
+
children: /* @__PURE__ */ jsx5(CheckIcon, { className: "h-4 w-4" })
|
|
118
203
|
}
|
|
119
204
|
)
|
|
120
205
|
}
|
|
@@ -124,8 +209,8 @@ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
|
124
209
|
// src/components/Switch.tsx
|
|
125
210
|
import * as React5 from "react";
|
|
126
211
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
127
|
-
import { jsx as
|
|
128
|
-
var Switch = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
212
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
213
|
+
var Switch = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
129
214
|
SwitchPrimitives.Root,
|
|
130
215
|
{
|
|
131
216
|
className: cn(
|
|
@@ -134,7 +219,7 @@ var Switch = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
134
219
|
),
|
|
135
220
|
...props,
|
|
136
221
|
ref,
|
|
137
|
-
children: /* @__PURE__ */
|
|
222
|
+
children: /* @__PURE__ */ jsx6(
|
|
138
223
|
SwitchPrimitives.Thumb,
|
|
139
224
|
{
|
|
140
225
|
className: cn(
|
|
@@ -148,9 +233,9 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
|
148
233
|
|
|
149
234
|
// src/components/Label.tsx
|
|
150
235
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
151
|
-
import { jsx as
|
|
236
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
152
237
|
function Label({ className, ...props }) {
|
|
153
|
-
return /* @__PURE__ */
|
|
238
|
+
return /* @__PURE__ */ jsx7(
|
|
154
239
|
LabelPrimitive.Root,
|
|
155
240
|
{
|
|
156
241
|
"data-slot": "label",
|
|
@@ -165,7 +250,7 @@ function Label({ className, ...props }) {
|
|
|
165
250
|
|
|
166
251
|
// src/components/Badge.tsx
|
|
167
252
|
import { cva as cva2 } from "class-variance-authority";
|
|
168
|
-
import { jsx as
|
|
253
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
169
254
|
var badgeVariants = cva2(
|
|
170
255
|
"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
171
256
|
{
|
|
@@ -183,14 +268,14 @@ var badgeVariants = cva2(
|
|
|
183
268
|
}
|
|
184
269
|
);
|
|
185
270
|
function Badge({ className, variant, ...props }) {
|
|
186
|
-
return /* @__PURE__ */
|
|
271
|
+
return /* @__PURE__ */ jsx8("div", { className: cn(badgeVariants({ variant }), className), ...props });
|
|
187
272
|
}
|
|
188
273
|
|
|
189
274
|
// src/components/Avatar.tsx
|
|
190
275
|
import * as React6 from "react";
|
|
191
276
|
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
192
|
-
import { jsx as
|
|
193
|
-
var Avatar = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
277
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
278
|
+
var Avatar = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
194
279
|
AvatarPrimitive.Root,
|
|
195
280
|
{
|
|
196
281
|
ref,
|
|
@@ -202,7 +287,7 @@ var Avatar = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
202
287
|
}
|
|
203
288
|
));
|
|
204
289
|
Avatar.displayName = AvatarPrimitive.Root.displayName;
|
|
205
|
-
var AvatarImage = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
290
|
+
var AvatarImage = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
206
291
|
AvatarPrimitive.Image,
|
|
207
292
|
{
|
|
208
293
|
ref,
|
|
@@ -211,7 +296,7 @@ var AvatarImage = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
211
296
|
}
|
|
212
297
|
));
|
|
213
298
|
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
214
|
-
var AvatarFallback = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
299
|
+
var AvatarFallback = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
|
|
215
300
|
AvatarPrimitive.Fallback,
|
|
216
301
|
{
|
|
217
302
|
ref,
|
|
@@ -234,9 +319,9 @@ function getInitials(name) {
|
|
|
234
319
|
|
|
235
320
|
// src/components/Card.tsx
|
|
236
321
|
import * as React7 from "react";
|
|
237
|
-
import { jsx as
|
|
322
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
238
323
|
var Card = React7.forwardRef(
|
|
239
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
324
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
240
325
|
"div",
|
|
241
326
|
{
|
|
242
327
|
ref,
|
|
@@ -250,7 +335,7 @@ var Card = React7.forwardRef(
|
|
|
250
335
|
);
|
|
251
336
|
Card.displayName = "Card";
|
|
252
337
|
var PressableCard = React7.forwardRef(
|
|
253
|
-
({ className, onClick, ...props }, ref) => /* @__PURE__ */
|
|
338
|
+
({ className, onClick, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
254
339
|
"div",
|
|
255
340
|
{
|
|
256
341
|
ref,
|
|
@@ -273,7 +358,7 @@ var PressableCard = React7.forwardRef(
|
|
|
273
358
|
);
|
|
274
359
|
PressableCard.displayName = "PressableCard";
|
|
275
360
|
var CardHeader = React7.forwardRef(
|
|
276
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
361
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
277
362
|
"div",
|
|
278
363
|
{
|
|
279
364
|
ref,
|
|
@@ -284,7 +369,7 @@ var CardHeader = React7.forwardRef(
|
|
|
284
369
|
);
|
|
285
370
|
CardHeader.displayName = "CardHeader";
|
|
286
371
|
var CardTitle = React7.forwardRef(
|
|
287
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
372
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
288
373
|
"div",
|
|
289
374
|
{
|
|
290
375
|
ref,
|
|
@@ -295,7 +380,7 @@ var CardTitle = React7.forwardRef(
|
|
|
295
380
|
);
|
|
296
381
|
CardTitle.displayName = "CardTitle";
|
|
297
382
|
var CardDescription = React7.forwardRef(
|
|
298
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
383
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
299
384
|
"div",
|
|
300
385
|
{
|
|
301
386
|
ref,
|
|
@@ -306,11 +391,11 @@ var CardDescription = React7.forwardRef(
|
|
|
306
391
|
);
|
|
307
392
|
CardDescription.displayName = "CardDescription";
|
|
308
393
|
var CardContent = React7.forwardRef(
|
|
309
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
394
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
310
395
|
);
|
|
311
396
|
CardContent.displayName = "CardContent";
|
|
312
397
|
var CardFooter = React7.forwardRef(
|
|
313
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
398
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
|
|
314
399
|
"div",
|
|
315
400
|
{
|
|
316
401
|
ref,
|
|
@@ -324,9 +409,9 @@ CardFooter.displayName = "CardFooter";
|
|
|
324
409
|
// src/components/Separator.tsx
|
|
325
410
|
import * as React8 from "react";
|
|
326
411
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
327
|
-
import { jsx as
|
|
412
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
328
413
|
var Separator = React8.forwardRef(
|
|
329
|
-
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */
|
|
414
|
+
({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx11(
|
|
330
415
|
SeparatorPrimitive.Root,
|
|
331
416
|
{
|
|
332
417
|
ref,
|
|
@@ -345,10 +430,10 @@ Separator.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
345
430
|
|
|
346
431
|
// src/components/Skeleton.tsx
|
|
347
432
|
import * as React9 from "react";
|
|
348
|
-
import { jsx as
|
|
433
|
+
import { jsx as jsx12, jsxs } from "react/jsx-runtime";
|
|
349
434
|
var Skeleton = React9.forwardRef(
|
|
350
435
|
({ className, ...props }, ref) => {
|
|
351
|
-
return /* @__PURE__ */
|
|
436
|
+
return /* @__PURE__ */ jsx12(
|
|
352
437
|
"div",
|
|
353
438
|
{
|
|
354
439
|
ref,
|
|
@@ -369,7 +454,7 @@ var Skeleton = React9.forwardRef(
|
|
|
369
454
|
Skeleton.displayName = "Skeleton";
|
|
370
455
|
var SkeletonContainer = React9.forwardRef(
|
|
371
456
|
({ className, children, ...props }, ref) => {
|
|
372
|
-
return /* @__PURE__ */
|
|
457
|
+
return /* @__PURE__ */ jsx12(
|
|
373
458
|
"div",
|
|
374
459
|
{
|
|
375
460
|
ref,
|
|
@@ -383,7 +468,7 @@ var SkeletonContainer = React9.forwardRef(
|
|
|
383
468
|
SkeletonContainer.displayName = "SkeletonContainer";
|
|
384
469
|
var SkeletonText = React9.forwardRef(
|
|
385
470
|
({ className, lines = 1, ...props }, ref) => {
|
|
386
|
-
return /* @__PURE__ */
|
|
471
|
+
return /* @__PURE__ */ jsx12("div", { ref, className: cn("space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx12(
|
|
387
472
|
Skeleton,
|
|
388
473
|
{
|
|
389
474
|
className: cn(
|
|
@@ -399,13 +484,13 @@ var SkeletonText = React9.forwardRef(
|
|
|
399
484
|
SkeletonText.displayName = "SkeletonText";
|
|
400
485
|
var SkeletonTitle = React9.forwardRef(
|
|
401
486
|
({ className, ...props }, ref) => {
|
|
402
|
-
return /* @__PURE__ */
|
|
487
|
+
return /* @__PURE__ */ jsx12(Skeleton, { ref, className: cn("h-6 w-1/2", className), ...props });
|
|
403
488
|
}
|
|
404
489
|
);
|
|
405
490
|
SkeletonTitle.displayName = "SkeletonTitle";
|
|
406
491
|
var SkeletonAvatar = React9.forwardRef(
|
|
407
492
|
({ className, ...props }, ref) => {
|
|
408
|
-
return /* @__PURE__ */
|
|
493
|
+
return /* @__PURE__ */ jsx12(Skeleton, { ref, className: cn("h-10 w-10 rounded-full", className), ...props });
|
|
409
494
|
}
|
|
410
495
|
);
|
|
411
496
|
SkeletonAvatar.displayName = "SkeletonAvatar";
|
|
@@ -418,12 +503,12 @@ var SkeletonCard = React9.forwardRef(
|
|
|
418
503
|
className: cn("space-y-3 rounded-xl border border-border bg-card p-4", className),
|
|
419
504
|
...props,
|
|
420
505
|
children: [
|
|
421
|
-
/* @__PURE__ */
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
/* @__PURE__ */
|
|
506
|
+
/* @__PURE__ */ jsx12(Skeleton, { className: "h-5 w-2/3" }),
|
|
507
|
+
/* @__PURE__ */ jsx12(Skeleton, { className: "h-4 w-full" }),
|
|
508
|
+
/* @__PURE__ */ jsx12(Skeleton, { className: "h-4 w-4/5" }),
|
|
424
509
|
/* @__PURE__ */ jsxs("div", { className: "flex gap-2 pt-2", children: [
|
|
425
|
-
/* @__PURE__ */
|
|
426
|
-
/* @__PURE__ */
|
|
510
|
+
/* @__PURE__ */ jsx12(Skeleton, { className: "h-6 w-16 rounded-full" }),
|
|
511
|
+
/* @__PURE__ */ jsx12(Skeleton, { className: "h-6 w-16 rounded-full" })
|
|
427
512
|
] })
|
|
428
513
|
]
|
|
429
514
|
}
|
|
@@ -434,7 +519,7 @@ SkeletonCard.displayName = "SkeletonCard";
|
|
|
434
519
|
|
|
435
520
|
// src/components/Dialog.tsx
|
|
436
521
|
import * as React10 from "react";
|
|
437
|
-
import { jsx as
|
|
522
|
+
import { jsx as jsx13, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
438
523
|
var DialogContext = React10.createContext(void 0);
|
|
439
524
|
function useDialogContext() {
|
|
440
525
|
const context = React10.useContext(DialogContext);
|
|
@@ -449,7 +534,7 @@ function Dialog({
|
|
|
449
534
|
},
|
|
450
535
|
children
|
|
451
536
|
}) {
|
|
452
|
-
return /* @__PURE__ */
|
|
537
|
+
return /* @__PURE__ */ jsx13(DialogContext.Provider, { value: { open, onOpenChange }, children });
|
|
453
538
|
}
|
|
454
539
|
Dialog.displayName = "Dialog";
|
|
455
540
|
var DialogContent = React10.forwardRef(
|
|
@@ -466,14 +551,14 @@ var DialogContent = React10.forwardRef(
|
|
|
466
551
|
}, [open, onOpenChange]);
|
|
467
552
|
if (!open) return null;
|
|
468
553
|
return /* @__PURE__ */ jsxs2("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
|
|
469
|
-
/* @__PURE__ */
|
|
554
|
+
/* @__PURE__ */ jsx13(
|
|
470
555
|
"div",
|
|
471
556
|
{
|
|
472
557
|
className: "fixed inset-0 bg-black/50 animate-in fade-in-0",
|
|
473
558
|
onClick: () => onOpenChange(false)
|
|
474
559
|
}
|
|
475
560
|
),
|
|
476
|
-
/* @__PURE__ */
|
|
561
|
+
/* @__PURE__ */ jsx13(
|
|
477
562
|
"div",
|
|
478
563
|
{
|
|
479
564
|
ref,
|
|
@@ -495,7 +580,7 @@ var DialogContent = React10.forwardRef(
|
|
|
495
580
|
DialogContent.displayName = "DialogContent";
|
|
496
581
|
var DialogHeader = React10.forwardRef(
|
|
497
582
|
({ className, children, ...props }, ref) => {
|
|
498
|
-
return /* @__PURE__ */
|
|
583
|
+
return /* @__PURE__ */ jsx13(
|
|
499
584
|
"div",
|
|
500
585
|
{
|
|
501
586
|
ref,
|
|
@@ -509,7 +594,7 @@ var DialogHeader = React10.forwardRef(
|
|
|
509
594
|
DialogHeader.displayName = "DialogHeader";
|
|
510
595
|
var DialogTitle = React10.forwardRef(
|
|
511
596
|
({ className, children, ...props }, ref) => {
|
|
512
|
-
return /* @__PURE__ */
|
|
597
|
+
return /* @__PURE__ */ jsx13(
|
|
513
598
|
"h2",
|
|
514
599
|
{
|
|
515
600
|
ref,
|
|
@@ -523,7 +608,7 @@ var DialogTitle = React10.forwardRef(
|
|
|
523
608
|
DialogTitle.displayName = "DialogTitle";
|
|
524
609
|
var DialogDescription = React10.forwardRef(
|
|
525
610
|
({ className, children, ...props }, ref) => {
|
|
526
|
-
return /* @__PURE__ */
|
|
611
|
+
return /* @__PURE__ */ jsx13(
|
|
527
612
|
"p",
|
|
528
613
|
{
|
|
529
614
|
ref,
|
|
@@ -537,13 +622,13 @@ var DialogDescription = React10.forwardRef(
|
|
|
537
622
|
DialogDescription.displayName = "DialogDescription";
|
|
538
623
|
var DialogBody = React10.forwardRef(
|
|
539
624
|
({ className, children, ...props }, ref) => {
|
|
540
|
-
return /* @__PURE__ */
|
|
625
|
+
return /* @__PURE__ */ jsx13("div", { ref, className: cn("p-4", className), ...props, children });
|
|
541
626
|
}
|
|
542
627
|
);
|
|
543
628
|
DialogBody.displayName = "DialogBody";
|
|
544
629
|
var DialogFooter = React10.forwardRef(
|
|
545
630
|
({ className, children, ...props }, ref) => {
|
|
546
|
-
return /* @__PURE__ */
|
|
631
|
+
return /* @__PURE__ */ jsx13(
|
|
547
632
|
"div",
|
|
548
633
|
{
|
|
549
634
|
ref,
|
|
@@ -558,7 +643,7 @@ DialogFooter.displayName = "DialogFooter";
|
|
|
558
643
|
var DialogClose = React10.forwardRef(
|
|
559
644
|
({ children, onClick, ...props }, ref) => {
|
|
560
645
|
const { onOpenChange } = useDialogContext();
|
|
561
|
-
return /* @__PURE__ */
|
|
646
|
+
return /* @__PURE__ */ jsx13(
|
|
562
647
|
"button",
|
|
563
648
|
{
|
|
564
649
|
ref,
|
|
@@ -578,8 +663,8 @@ DialogClose.displayName = "DialogClose";
|
|
|
578
663
|
// src/components/Progress.tsx
|
|
579
664
|
import * as React11 from "react";
|
|
580
665
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
581
|
-
import { jsx as
|
|
582
|
-
var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */
|
|
666
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
667
|
+
var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx14(
|
|
583
668
|
ProgressPrimitive.Root,
|
|
584
669
|
{
|
|
585
670
|
ref,
|
|
@@ -588,7 +673,7 @@ var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @_
|
|
|
588
673
|
className
|
|
589
674
|
),
|
|
590
675
|
...props,
|
|
591
|
-
children: /* @__PURE__ */
|
|
676
|
+
children: /* @__PURE__ */ jsx14(
|
|
592
677
|
ProgressPrimitive.Indicator,
|
|
593
678
|
{
|
|
594
679
|
className: "h-full w-full flex-1 bg-primary transition-all",
|
|
@@ -602,9 +687,9 @@ Progress.displayName = ProgressPrimitive.Root.displayName;
|
|
|
602
687
|
// src/components/Tabs.tsx
|
|
603
688
|
import * as React12 from "react";
|
|
604
689
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
605
|
-
import { jsx as
|
|
690
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
606
691
|
var Tabs = TabsPrimitive.Root;
|
|
607
|
-
var TabsList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
692
|
+
var TabsList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
608
693
|
TabsPrimitive.List,
|
|
609
694
|
{
|
|
610
695
|
ref,
|
|
@@ -616,7 +701,7 @@ var TabsList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
616
701
|
}
|
|
617
702
|
));
|
|
618
703
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
619
|
-
var TabsTrigger = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
704
|
+
var TabsTrigger = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
620
705
|
TabsPrimitive.Trigger,
|
|
621
706
|
{
|
|
622
707
|
ref,
|
|
@@ -628,7 +713,7 @@ var TabsTrigger = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
628
713
|
}
|
|
629
714
|
));
|
|
630
715
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
631
|
-
var TabsContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
716
|
+
var TabsContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
|
|
632
717
|
TabsPrimitive.Content,
|
|
633
718
|
{
|
|
634
719
|
ref,
|
|
@@ -645,9 +730,9 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
645
730
|
import * as React13 from "react";
|
|
646
731
|
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
647
732
|
import { ChevronDownIcon } from "@radix-ui/react-icons";
|
|
648
|
-
import { jsx as
|
|
733
|
+
import { jsx as jsx16, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
649
734
|
var Accordion = AccordionPrimitive.Root;
|
|
650
|
-
var AccordionItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
735
|
+
var AccordionItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
651
736
|
AccordionPrimitive.Item,
|
|
652
737
|
{
|
|
653
738
|
ref,
|
|
@@ -656,7 +741,7 @@ var AccordionItem = React13.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
656
741
|
}
|
|
657
742
|
));
|
|
658
743
|
AccordionItem.displayName = "AccordionItem";
|
|
659
|
-
var AccordionTrigger = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
744
|
+
var AccordionTrigger = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx16(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs3(
|
|
660
745
|
AccordionPrimitive.Trigger,
|
|
661
746
|
{
|
|
662
747
|
ref,
|
|
@@ -667,18 +752,18 @@ var AccordionTrigger = React13.forwardRef(({ className, children, ...props }, re
|
|
|
667
752
|
...props,
|
|
668
753
|
children: [
|
|
669
754
|
children,
|
|
670
|
-
/* @__PURE__ */
|
|
755
|
+
/* @__PURE__ */ jsx16(ChevronDownIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
|
|
671
756
|
]
|
|
672
757
|
}
|
|
673
758
|
) }));
|
|
674
759
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
675
|
-
var AccordionContent = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
760
|
+
var AccordionContent = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx16(
|
|
676
761
|
AccordionPrimitive.Content,
|
|
677
762
|
{
|
|
678
763
|
ref,
|
|
679
764
|
className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
680
765
|
...props,
|
|
681
|
-
children: /* @__PURE__ */
|
|
766
|
+
children: /* @__PURE__ */ jsx16("div", { className: cn("pb-4 pt-0", className), children })
|
|
682
767
|
}
|
|
683
768
|
));
|
|
684
769
|
AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
@@ -686,7 +771,7 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
|
|
|
686
771
|
// src/components/Slider.tsx
|
|
687
772
|
import * as React14 from "react";
|
|
688
773
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
689
|
-
import { jsx as
|
|
774
|
+
import { jsx as jsx17, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
690
775
|
var Slider = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs4(
|
|
691
776
|
SliderPrimitive.Root,
|
|
692
777
|
{
|
|
@@ -697,8 +782,8 @@ var Slider = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
697
782
|
),
|
|
698
783
|
...props,
|
|
699
784
|
children: [
|
|
700
|
-
/* @__PURE__ */
|
|
701
|
-
/* @__PURE__ */
|
|
785
|
+
/* @__PURE__ */ jsx17(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ jsx17(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
786
|
+
/* @__PURE__ */ jsx17(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border-2 border-primary bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50" })
|
|
702
787
|
]
|
|
703
788
|
}
|
|
704
789
|
));
|
|
@@ -746,9 +831,12 @@ export {
|
|
|
746
831
|
TabsList,
|
|
747
832
|
TabsTrigger,
|
|
748
833
|
Textarea,
|
|
834
|
+
ThemeProvider,
|
|
749
835
|
badgeVariants,
|
|
750
836
|
buttonVariants,
|
|
751
837
|
cn,
|
|
752
|
-
|
|
838
|
+
defaultColors,
|
|
839
|
+
getInitials,
|
|
840
|
+
useTheme
|
|
753
841
|
};
|
|
754
842
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Button.tsx","../src/utils.ts","../src/components/Input.tsx","../src/components/Textarea.tsx","../src/components/Checkbox.tsx","../src/components/Switch.tsx","../src/components/Label.tsx","../src/components/Badge.tsx","../src/components/Avatar.tsx","../src/components/Card.tsx","../src/components/Separator.tsx","../src/components/Skeleton.tsx","../src/components/Dialog.tsx","../src/components/Progress.tsx","../src/components/Tabs.tsx","../src/components/Accordion.tsx","../src/components/Slider.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref as React.Ref<HTMLButtonElement>}\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n }\n)\n\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Input Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface InputProps extends React.ComponentProps<\"input\"> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","/**\n * Textarea Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface TextareaProps extends React.ComponentProps<\"textarea\"> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","/**\n * Checkbox Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"@radix-ui/react-icons\";\nimport { cn } from \"../utils\";\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\n\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","/**\n * Switch Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../utils\";\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\n\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","/**\n * Label Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils\";\n\nexport interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {}\n\nfunction Label({ className, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","/**\n * Badge Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","/**\n * Avatar Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from \"../utils\";\n\nexport type AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> {}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport interface AvatarImageProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {}\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n AvatarImageProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport interface AvatarFallbackProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n AvatarFallbackProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\n// Convenience function to get initials\nfunction getInitials(name?: string | null): string {\n if (!name) return \"U\";\n const parts = name.trim().split(\" \");\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, getInitials };\n","/**\n * Card Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n )\n);\nCard.displayName = \"Card\";\n\nexport interface PressableCardProps extends React.HTMLAttributes<HTMLDivElement> {\n onClick?: () => void;\n}\n\nconst PressableCard = React.forwardRef<HTMLDivElement, PressableCardProps>(\n ({ className, onClick, ...props }, ref) => (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow cursor-pointer transition-opacity hover:opacity-80 active:opacity-70\",\n className\n )}\n {...props}\n />\n )\n);\nPressableCard.displayName = \"PressableCard\";\n\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardTitle = React.forwardRef<HTMLDivElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport interface CardDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardDescription = React.forwardRef<HTMLDivElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n PressableCard,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","/**\n * Separator Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../utils\";\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {}\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\n\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","/**\n * Skeleton Component - Web version\n * Optimized for INP (Interaction to Next Paint)\n *\n * Performance optimizations:\n * - CSS containment isolates layout/paint calculations\n * - content-visibility:auto skips rendering for off-screen elements\n * - GPU-accelerated opacity animation with will-change hint\n * - Respects prefers-reduced-motion for accessibility\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"rounded-md bg-muted\",\n // Optimized animation - GPU accelerated\n \"animate-skeleton-pulse\",\n // CSS containment for better INP\n \"skeleton-contained\",\n className\n )}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = \"Skeleton\";\n\n/**\n * SkeletonContainer - Wraps multiple skeletons with content-visibility optimization\n * Use this for lists or grids of skeleton items to improve rendering performance\n */\nconst SkeletonContainer = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"skeleton-container\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nSkeletonContainer.displayName = \"SkeletonContainer\";\n\n/**\n * SkeletonText - Optimized skeleton for text content\n * Pre-sized for common text patterns to reduce layout shift\n */\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n lines?: number;\n}\n\nconst SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n ({ className, lines = 1, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n className={cn(\n \"h-4\",\n // Last line is typically shorter\n i === lines - 1 && lines > 1 ? \"w-3/4\" : \"w-full\"\n )}\n />\n ))}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Simple preset components\nconst SkeletonTitle = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-6 w-1/2\", className)} {...props} />;\n }\n);\n\nSkeletonTitle.displayName = \"SkeletonTitle\";\n\nconst SkeletonAvatar = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-10 w-10 rounded-full\", className)} {...props} />;\n }\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3 rounded-xl border border-border bg-card p-4\", className)}\n {...props}\n >\n <Skeleton className=\"h-5 w-2/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n <div className=\"flex gap-2 pt-2\">\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n </div>\n </div>\n );\n }\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\nexport {\n Skeleton,\n SkeletonContainer,\n SkeletonText,\n SkeletonTitle,\n SkeletonAvatar,\n SkeletonCard,\n};\n","\"use client\";\n\n/**\n * Dialog Component - Web version\n * Modal dialog with portal and backdrop\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\n// Dialog Context\ninterface DialogContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nconst DialogContext = React.createContext<DialogContextValue | undefined>(undefined);\n\nfunction useDialogContext() {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\"Dialog components must be used within a Dialog\");\n }\n return context;\n}\n\n// Dialog Root\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction Dialog({\n open = false,\n onOpenChange = () => {},\n children,\n}: DialogProps) {\n return (\n <DialogContext.Provider value={{ open, onOpenChange }}>\n {children}\n </DialogContext.Provider>\n );\n}\n\nDialog.displayName = \"Dialog\";\n\n// Dialog Portal + Backdrop + Content wrapper\nexport interface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, onOpenChange } = useDialogContext();\n\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange(false);\n }\n };\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 bg-black/50 animate-in fade-in-0\"\n onClick={() => onOpenChange(false)}\n />\n {/* Content */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-50 w-full max-w-lg rounded-xl bg-card shadow-lg animate-in fade-in-0 zoom-in-95\",\n \"max-h-[85vh] overflow-auto\",\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n\nDialogContent.displayName = \"DialogContent\";\n\n// Dialog Header\nexport interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"border-b border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n\n// Dialog Title\nexport interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n >\n {children}\n </h2>\n );\n }\n);\n\nDialogTitle.displayName = \"DialogTitle\";\n\n// Dialog Description\nexport interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\"mt-1 text-sm text-muted-foreground\", className)}\n {...props}\n >\n {children}\n </p>\n );\n }\n);\n\nDialogDescription.displayName = \"DialogDescription\";\n\n// Dialog Body/Content area\nexport interface DialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogBody = React.forwardRef<HTMLDivElement, DialogBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"p-4\", className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDialogBody.displayName = \"DialogBody\";\n\n// Dialog Footer\nexport interface DialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogFooter = React.forwardRef<HTMLDivElement, DialogFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex justify-end gap-2 border-t border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n\n// Dialog Close (wrapper for close trigger)\nexport interface DialogCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ children, onClick, ...props }, ref) => {\n const { onOpenChange } = useDialogContext();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={(e) => {\n onClick?.(e);\n onOpenChange(false);\n }}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nDialogClose.displayName = \"DialogClose\";\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogBody,\n DialogFooter,\n DialogClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"../utils\";\n\nexport type ProgressProps = React.ComponentPropsWithoutRef<\n typeof ProgressPrimitive.Root\n>;\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-4 w-full overflow-hidden rounded-full bg-secondary\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../utils\";\n\nexport type TabsProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>;\n\nconst Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow cursor-pointer\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nexport type TabsContentProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../utils\";\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\n\nconst Accordion = AccordionPrimitive.Root;\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n AccordionItemProps\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../utils\"\n\nexport type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border-2 border-primary bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"],"mappings":";;;AAAA,YAAY,WAAW;AACvB,SAAS,YAAY;AACrB,SAAS,WAA8B;;;ACFvC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADyCM;AAzCN,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OAAO;AAAA,QACP,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAQA,IAAM,SAAe;AAAA,EACnB,CAAC,EAAE,WAAW,SAAS,MAAM,UAAU,OAAO,GAAG,MAAM,GAAG,QAAQ;AAChE,UAAM,OAAO,UAAU,OAAO;AAE9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,aAAU;AAAA,QACV,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,QACzD,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;AEpDrB,YAAYA,YAAW;AAQjB,gBAAAC,YAAA;AAHN,IAAM,QAAc;AAAA,EAClB,CAAC,EAAE,WAAW,MAAM,GAAG,MAAM,GAAG,QAAQ;AACtC,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,MAAM,cAAc;;;ACrBpB,YAAYC,YAAW;AAQjB,gBAAAC,YAAA;AAHN,IAAM,WAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;;;AClBvB,YAAYC,YAAW;AACvB,YAAY,uBAAuB;AACnC,SAAS,iBAAiB;AAqBpB,gBAAAC,YAAA;AAfN,IAAM,WAAiB,kBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAW,GAAG,+CAA+C;AAAA,QAE7D,0BAAAA,KAAC,aAAU,WAAU,WAAU;AAAA;AAAA,IACjC;AAAA;AACF,CACD;AAED,SAAS,cAAgC,uBAAK;;;AC5B9C,YAAYC,YAAW;AACvB,YAAY,sBAAsB;AAkB9B,gBAAAC,YAAA;AAZJ,IAAM,SAAe,kBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAkB;AAAA,EAAjB;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IACJ;AAAA,IAEA,0BAAAA;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,QACF;AAAA;AAAA,IACF;AAAA;AACF,CACD;AAED,OAAO,cAA+B,sBAAK;;;AC1B3C,YAAY,oBAAoB;AAO5B,gBAAAC,YAAA;AAFJ,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAe;AAClD,SACE,gBAAAA;AAAA,IAAgB;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AClBA,SAAS,OAAAC,YAA8B;AA6BnC,gBAAAC,YAAA;AA1BJ,IAAM,gBAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,aACE;AAAA,QACF,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAMA,SAAS,MAAM,EAAE,WAAW,SAAS,GAAG,MAAM,GAAe;AAC3D,SACE,gBAAAD,KAAC,SAAI,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAE1E;;;AC9BA,YAAYE,YAAW;AACvB,YAAY,qBAAqB;AAY/B,gBAAAC,YAAA;AAJF,IAAM,SAAe,kBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,OAAO,cAA8B,qBAAK;AAK1C,IAAM,cAAoB,kBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,+BAA+B,SAAS;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAKhD,IAAM,iBAAuB,kBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAA8B,yBAAS;AAGtD,SAAS,YAAY,MAA8B;AACjD,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,QAAQ,KAAK,KAAK,EAAE,MAAM,GAAG;AACnC,MAAI,MAAM,UAAU,GAAG;AACrB,WAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY;AAAA,EACpD;AACA,SAAO,KAAK,UAAU,GAAG,CAAC,EAAE,YAAY;AAC1C;;;ACnEA,YAAYC,YAAW;AAOnB,gBAAAC,YAAA;AAFJ,IAAM,OAAa;AAAA,EACjB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,KAAK,cAAc;AAMnB,IAAM,gBAAsB;AAAA,EAC1B,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL,UAAU;AAAA,MACV;AAAA,MACA,WAAW,CAAC,MAAM;AAChB,YAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,YAAE,eAAe;AACjB,oBAAU;AAAA,QACZ;AAAA,MACF;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,cAAc,cAAc;AAI5B,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,WAAW,cAAc;AAIzB,IAAM,YAAkB;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,6CAA6C,SAAS;AAAA,MACnE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc;AAIxB,IAAM,kBAAwB;AAAA,EAC5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;AAI9B,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA,KAAC,SAAI,KAAU,WAAW,GAAG,YAAY,SAAS,GAAI,GAAG,OAAO;AAEpE;AACA,YAAY,cAAc;AAI1B,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,MACpD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,WAAW,cAAc;;;ACvGzB,YAAYC,YAAW;AACvB,YAAY,wBAAwB;AAchC,gBAAAC,aAAA;AARJ,IAAM,YAAkB;AAAA,EAItB,CACE,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,GAAG,MAAM,GACrE,QAEA,gBAAAA;AAAA,IAAoB;AAAA,IAAnB;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,gBAAgB,eAAe,mBAAmB;AAAA,QAClD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,UAAU,cAAiC,wBAAK;;;ACzBhD,YAAYC,YAAW;AAQjB,gBAAAC,OAgGE,YAhGF;AAHN,IAAM,WAAiB;AAAA,EACrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA;AAAA,UAET;AAAA;AAAA,UAEA;AAAA;AAAA,UAEA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AAEA,SAAS,cAAc;AAMvB,IAAM,oBAA0B;AAAA,EAC9B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,sBAAsB,SAAS;AAAA,QAC5C,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,kBAAkB,cAAc;AAUhC,IAAM,eAAqB;AAAA,EACzB,CAAC,EAAE,WAAW,QAAQ,GAAG,GAAG,MAAM,GAAG,QAAQ;AAC3C,WACE,gBAAAA,MAAC,SAAI,KAAU,WAAW,GAAG,aAAa,SAAS,GAAI,GAAG,OACvD,gBAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,MACrC,gBAAAA;AAAA,MAAC;AAAA;AAAA,QAEC,WAAW;AAAA,UACT;AAAA;AAAA,UAEA,MAAM,QAAQ,KAAK,QAAQ,IAAI,UAAU;AAAA,QAC3C;AAAA;AAAA,MALK;AAAA,IAMP,CACD,GACH;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;AAG3B,IAAM,gBAAsB;AAAA,EAC1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WAAO,gBAAAA,MAAC,YAAS,KAAU,WAAW,GAAG,aAAa,SAAS,GAAI,GAAG,OAAO;AAAA,EAC/E;AACF;AAEA,cAAc,cAAc;AAE5B,IAAM,iBAAuB;AAAA,EAC3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WAAO,gBAAAA,MAAC,YAAS,KAAU,WAAW,GAAG,0BAA0B,SAAS,GAAI,GAAG,OAAO;AAAA,EAC5F;AACF;AAEA,eAAe,cAAc;AAE7B,IAAM,eAAqB;AAAA,EACzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,yDAAyD,SAAS;AAAA,QAC/E,GAAG;AAAA,QAEJ;AAAA,0BAAAA,MAAC,YAAS,WAAU,aAAY;AAAA,UAChC,gBAAAA,MAAC,YAAS,WAAU,cAAa;AAAA,UACjC,gBAAAA,MAAC,YAAS,WAAU,aAAY;AAAA,UAChC,qBAAC,SAAI,WAAU,mBACb;AAAA,4BAAAA,MAAC,YAAS,WAAU,yBAAwB;AAAA,YAC5C,gBAAAA,MAAC,YAAS,WAAU,yBAAwB;AAAA,aAC9C;AAAA;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;;;ACrH3B,YAAYC,aAAW;AAgCnB,gBAAAC,OA4BE,QAAAC,aA5BF;AAvBJ,IAAM,gBAAsB,sBAA8C,MAAS;AAEnF,SAAS,mBAAmB;AAC1B,QAAM,UAAgB,mBAAW,aAAa;AAC9C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,gDAAgD;AAAA,EAClE;AACA,SAAO;AACT;AASA,SAAS,OAAO;AAAA,EACd,OAAO;AAAA,EACP,eAAe,MAAM;AAAA,EAAC;AAAA,EACtB;AACF,GAAgB;AACd,SACE,gBAAAD,MAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,MAAM,aAAa,GACjD,UACH;AAEJ;AAEA,OAAO,cAAc;AAKrB,IAAM,gBAAsB;AAAA,EAC1B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,UAAM,EAAE,MAAM,aAAa,IAAI,iBAAiB;AAEhD,IAAM,kBAAU,MAAM;AACpB,YAAM,eAAe,CAAC,MAAqB;AACzC,YAAI,EAAE,QAAQ,YAAY,MAAM;AAC9B,uBAAa,KAAK;AAAA,QACpB;AAAA,MACF;AACA,eAAS,iBAAiB,WAAW,YAAY;AACjD,aAAO,MAAM,SAAS,oBAAoB,WAAW,YAAY;AAAA,IACnE,GAAG,CAAC,MAAM,YAAY,CAAC;AAEvB,QAAI,CAAC,KAAM,QAAO;AAElB,WACE,gBAAAC,MAAC,SAAI,WAAU,uDAEb;AAAA,sBAAAD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,SAAS,MAAM,aAAa,KAAK;AAAA;AAAA,MACnC;AAAA,MAEA,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA,UACL,cAAW;AAAA,UACX,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,UACjC,GAAG;AAAA,UAEH;AAAA;AAAA,MACH;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,cAAc,cAAc;AAK5B,IAAM,eAAqB;AAAA,EACzB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,QACpD,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;AAK3B,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,yBAAyB,SAAS;AAAA,QAC/C,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;AAK1B,IAAM,oBAA0B;AAAA,EAC9B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,sCAAsC,SAAS;AAAA,QAC5D,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,kBAAkB,cAAc;AAKhC,IAAM,aAAmB;AAAA,EACvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA,MAAC,SAAI,KAAU,WAAW,GAAG,OAAO,SAAS,GAAI,GAAG,OACjD,UACH;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAKzB,IAAM,eAAqB;AAAA,EACzB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,qDAAqD,SAAS;AAAA,QAC3E,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;AAO3B,IAAM,cAAoB;AAAA,EACxB,CAAC,EAAE,UAAU,SAAS,GAAG,MAAM,GAAG,QAAQ;AACxC,UAAM,EAAE,aAAa,IAAI,iBAAiB;AAE1C,WACE,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,SAAS,CAAC,MAAM;AACd,oBAAU,CAAC;AACX,uBAAa,KAAK;AAAA,QACpB;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;;;AChN1B,YAAYE,aAAW;AACvB,YAAY,uBAAuB;AAoB/B,gBAAAC,aAAA;AAZJ,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QACjC,gBAAAA;AAAA,EAAmB;AAAA,EAAlB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ,0BAAAA;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,EAAE,KAAK;AAAA;AAAA,IAC5D;AAAA;AACF,CACD;AACD,SAAS,cAAgC,uBAAK;;;AC3B9C,YAAYC,aAAW;AACvB,YAAY,mBAAmB;AAc7B,gBAAAC,aAAA;AARF,IAAM,OAAqB;AAI3B,IAAM,WAAiB,mBAGrB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,SAAS,cAA4B,mBAAK;AAI1C,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA4B,sBAAQ;AAIhD,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA4B,sBAAQ;;;AC1DhD,YAAYC,aAAW;AACvB,YAAY,wBAAwB;AACpC,SAAS,uBAAuB;AAc9B,gBAAAC,OAeE,QAAAC,aAfF;AARF,IAAM,YAA+B;AAIrC,IAAM,gBAAsB,mBAG1B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,YAAY,SAAS;AAAA,IAClC,GAAG;AAAA;AACN,CACD;AACD,cAAc,cAAc;AAI5B,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAA,MAAoB,2BAAnB,EAA0B,WAAU,QACnC,0BAAAC;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AAAA,MACD,gBAAAD,MAAC,mBAAgB,WAAU,4EAA2E;AAAA;AAAA;AACxG,GACF,CACD;AACD,iBAAiB,cAAiC,2BAAQ;AAI1D,IAAM,mBAAyB,mBAG7B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,gBAAAA;AAAA,EAAoB;AAAA,EAAnB;AAAA,IACC;AAAA,IACA,WAAU;AAAA,IACT,GAAG;AAAA,IAEJ,0BAAAA,MAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GAAI,UAAS;AAAA;AACxD,CACD;AACD,iBAAiB,cAAiC,2BAAQ;;;AC5D1D,YAAYE,aAAW;AACvB,YAAY,qBAAqB;AAS/B,SASI,OAAAC,OATJ,QAAAC,aAAA;AAJF,IAAM,SAAe,mBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAA;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEJ;AAAA,sBAAAD,MAAiB,uBAAhB,EAAsB,WAAU,wEAC/B,0BAAAA,MAAiB,uBAAhB,EAAsB,WAAU,8BAA6B,GAChE;AAAA,MACA,gBAAAA,MAAiB,uBAAhB,EAAsB,WAAU,sNAAqN;AAAA;AAAA;AACxP,CACD;AACD,OAAO,cAA8B,qBAAK;","names":["React","jsx","React","jsx","React","jsx","React","jsx","jsx","cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../src/native/ThemeContext.tsx","../src/native/defaultColors.ts","../src/components/Button.tsx","../src/utils.ts","../src/components/Input.tsx","../src/components/Textarea.tsx","../src/components/Checkbox.tsx","../src/components/Switch.tsx","../src/components/Label.tsx","../src/components/Badge.tsx","../src/components/Avatar.tsx","../src/components/Card.tsx","../src/components/Separator.tsx","../src/components/Skeleton.tsx","../src/components/Dialog.tsx","../src/components/Progress.tsx","../src/components/Tabs.tsx","../src/components/Accordion.tsx","../src/components/Slider.tsx"],"sourcesContent":["/**\n * Theme Provider for React Native\n * Allows apps to customize colors by wrapping their root with ThemeProvider\n */\nimport { createContext, useContext, useMemo, type ReactNode } from \"react\";\nimport { defaultColors } from \"./defaultColors\";\nimport type { ThemeColors } from \"./types\";\n\ninterface ThemeContextValue {\n colors: ThemeColors;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n colors?: Partial<ThemeColors>;\n children: ReactNode;\n}\n\n/**\n * ThemeProvider - Wrap your app to customize component colors\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from \"@nextsparkjs/ui\";\n *\n * const myColors = {\n * primary: \"#3B82F6\",\n * primaryForeground: \"#FFFFFF\",\n * };\n *\n * export default function RootLayout() {\n * return (\n * <ThemeProvider colors={myColors}>\n * <Stack />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nexport function ThemeProvider({ colors: customColors, children }: ThemeProviderProps) {\n const value = useMemo(\n () => ({\n colors: { ...defaultColors, ...customColors },\n }),\n [customColors]\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * useTheme - Access theme colors in components\n * Falls back to defaultColors if no ThemeProvider is present\n */\nexport function useTheme(): ThemeContextValue {\n const context = useContext(ThemeContext);\n // Graceful fallback if no provider - components work without wrapping\n if (!context) {\n return { colors: defaultColors };\n }\n return context;\n}\n","/**\n * Default colors for React Native components\n * These are used when no ThemeProvider is present or as fallback values\n */\nimport type { ThemeColors } from \"./types\";\n\nexport const defaultColors: ThemeColors = {\n // Base\n background: \"#FFFFFF\",\n foreground: \"#1a1a1a\",\n card: \"#FFFFFF\",\n cardForeground: \"#1a1a1a\",\n\n // Interactive\n primary: \"#171717\",\n primaryForeground: \"#fafafa\",\n secondary: \"#f5f5f5\",\n secondaryForeground: \"#1a1a1a\",\n\n // States\n muted: \"#f5f5f5\",\n mutedForeground: \"#737373\",\n accent: \"#f5f5f5\",\n accentForeground: \"#1a1a1a\",\n\n // Alerts\n destructive: \"#ef4444\",\n destructiveForeground: \"#FFFFFF\",\n success: \"#22c55e\",\n successForeground: \"#FFFFFF\",\n\n // UI\n border: \"#e5e5e5\",\n input: \"#e5e5e5\",\n ring: \"#a3a3a3\",\n placeholder: \"#a3a3a3\",\n\n // Status colors\n statusTodo: \"rgba(107, 114, 128, 0.2)\", // gray-500/20\n statusInProgress: \"rgba(59, 130, 246, 0.2)\", // blue-500/20\n statusReview: \"rgba(245, 158, 11, 0.2)\", // amber-500/20\n statusDone: \"rgba(34, 197, 94, 0.2)\", // green-500/20\n statusBlocked: \"rgba(239, 68, 68, 0.2)\", // red-500/20\n\n // Status text colors\n statusTodoText: \"#4b5563\", // gray-600\n statusInProgressText: \"#2563eb\", // blue-600\n statusReviewText: \"#d97706\", // amber-600\n statusDoneText: \"#16a34a\", // green-600\n statusBlockedText: \"#dc2626\", // red-600\n\n // Dot colors\n dotTodo: \"#6b7280\", // gray-500\n dotInProgress: \"#3b82f6\", // blue-500\n dotReview: \"#f59e0b\", // amber-500\n dotDone: \"#22c55e\", // green-500\n dotBlocked: \"#ef4444\", // red-500\n};\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref as React.Ref<HTMLButtonElement>}\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n }\n)\n\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","/**\n * Input Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface InputProps extends React.ComponentProps<\"input\"> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n","/**\n * Textarea Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface TextareaProps extends React.ComponentProps<\"textarea\"> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-background px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","/**\n * Checkbox Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"@radix-ui/react-icons\";\nimport { cn } from \"../utils\";\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> {}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\n\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","/**\n * Switch Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../utils\";\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\n\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","/**\n * Label Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../utils\";\n\nexport interface LabelProps extends React.ComponentProps<typeof LabelPrimitive.Root> {}\n\nfunction Label({ className, ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","/**\n * Badge Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","/**\n * Avatar Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from \"../utils\";\n\nexport type AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root> {}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport interface AvatarImageProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image> {}\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n AvatarImageProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport interface AvatarFallbackProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback> {}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n AvatarFallbackProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\n// Convenience function to get initials\nfunction getInitials(name?: string | null): string {\n if (!name) return \"U\";\n const parts = name.trim().split(\" \");\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, getInitials };\n","/**\n * Card Component - Web version\n * Matches @nextsparkjs/core implementation\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n )\n);\nCard.displayName = \"Card\";\n\nexport interface PressableCardProps extends React.HTMLAttributes<HTMLDivElement> {\n onClick?: () => void;\n}\n\nconst PressableCard = React.forwardRef<HTMLDivElement, PressableCardProps>(\n ({ className, onClick, ...props }, ref) => (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n onClick?.();\n }\n }}\n className={cn(\n \"rounded-xl border bg-card text-card-foreground shadow cursor-pointer transition-opacity hover:opacity-80 active:opacity-70\",\n className\n )}\n {...props}\n />\n )\n);\nPressableCard.displayName = \"PressableCard\";\n\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardTitle = React.forwardRef<HTMLDivElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport interface CardDescriptionProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardDescription = React.forwardRef<HTMLDivElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n PressableCard,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","/**\n * Separator Component - Web version\n * Matches @nextsparkjs/core implementation (uses Radix)\n */\n\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../utils\";\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {}\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\n\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","/**\n * Skeleton Component - Web version\n * Optimized for INP (Interaction to Next Paint)\n *\n * Performance optimizations:\n * - CSS containment isolates layout/paint calculations\n * - content-visibility:auto skips rendering for off-screen elements\n * - GPU-accelerated opacity animation with will-change hint\n * - Respects prefers-reduced-motion for accessibility\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n // Base styles\n \"rounded-md bg-muted\",\n // Optimized animation - GPU accelerated\n \"animate-skeleton-pulse\",\n // CSS containment for better INP\n \"skeleton-contained\",\n className\n )}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = \"Skeleton\";\n\n/**\n * SkeletonContainer - Wraps multiple skeletons with content-visibility optimization\n * Use this for lists or grids of skeleton items to improve rendering performance\n */\nconst SkeletonContainer = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"skeleton-container\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nSkeletonContainer.displayName = \"SkeletonContainer\";\n\n/**\n * SkeletonText - Optimized skeleton for text content\n * Pre-sized for common text patterns to reduce layout shift\n */\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n lines?: number;\n}\n\nconst SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n ({ className, lines = 1, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n className={cn(\n \"h-4\",\n // Last line is typically shorter\n i === lines - 1 && lines > 1 ? \"w-3/4\" : \"w-full\"\n )}\n />\n ))}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\n// Simple preset components\nconst SkeletonTitle = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-6 w-1/2\", className)} {...props} />;\n }\n);\n\nSkeletonTitle.displayName = \"SkeletonTitle\";\n\nconst SkeletonAvatar = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return <Skeleton ref={ref} className={cn(\"h-10 w-10 rounded-full\", className)} {...props} />;\n }\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"space-y-3 rounded-xl border border-border bg-card p-4\", className)}\n {...props}\n >\n <Skeleton className=\"h-5 w-2/3\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n <div className=\"flex gap-2 pt-2\">\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n </div>\n </div>\n );\n }\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\nexport {\n Skeleton,\n SkeletonContainer,\n SkeletonText,\n SkeletonTitle,\n SkeletonAvatar,\n SkeletonCard,\n};\n","\"use client\";\n\n/**\n * Dialog Component - Web version\n * Modal dialog with portal and backdrop\n */\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\n\n// Dialog Context\ninterface DialogContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nconst DialogContext = React.createContext<DialogContextValue | undefined>(undefined);\n\nfunction useDialogContext() {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\"Dialog components must be used within a Dialog\");\n }\n return context;\n}\n\n// Dialog Root\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction Dialog({\n open = false,\n onOpenChange = () => {},\n children,\n}: DialogProps) {\n return (\n <DialogContext.Provider value={{ open, onOpenChange }}>\n {children}\n </DialogContext.Provider>\n );\n}\n\nDialog.displayName = \"Dialog\";\n\n// Dialog Portal + Backdrop + Content wrapper\nexport interface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, onOpenChange } = useDialogContext();\n\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n onOpenChange(false);\n }\n };\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n {/* Backdrop */}\n <div\n className=\"fixed inset-0 bg-black/50 animate-in fade-in-0\"\n onClick={() => onOpenChange(false)}\n />\n {/* Content */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n \"relative z-50 w-full max-w-lg rounded-xl bg-card shadow-lg animate-in fade-in-0 zoom-in-95\",\n \"max-h-[85vh] overflow-auto\",\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {children}\n </div>\n </div>\n );\n }\n);\n\nDialogContent.displayName = \"DialogContent\";\n\n// Dialog Header\nexport interface DialogHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogHeader = React.forwardRef<HTMLDivElement, DialogHeaderProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"border-b border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n\n// Dialog Title\nexport interface DialogTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {}\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n >\n {children}\n </h2>\n );\n }\n);\n\nDialogTitle.displayName = \"DialogTitle\";\n\n// Dialog Description\nexport interface DialogDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\"mt-1 text-sm text-muted-foreground\", className)}\n {...props}\n >\n {children}\n </p>\n );\n }\n);\n\nDialogDescription.displayName = \"DialogDescription\";\n\n// Dialog Body/Content area\nexport interface DialogBodyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogBody = React.forwardRef<HTMLDivElement, DialogBodyProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"p-4\", className)} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDialogBody.displayName = \"DialogBody\";\n\n// Dialog Footer\nexport interface DialogFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DialogFooter = React.forwardRef<HTMLDivElement, DialogFooterProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\"flex justify-end gap-2 border-t border-border p-4\", className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n\n// Dialog Close (wrapper for close trigger)\nexport interface DialogCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(\n ({ children, onClick, ...props }, ref) => {\n const { onOpenChange } = useDialogContext();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={(e) => {\n onClick?.(e);\n onOpenChange(false);\n }}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\n\nDialogClose.displayName = \"DialogClose\";\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogBody,\n DialogFooter,\n DialogClose,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"../utils\";\n\nexport type ProgressProps = React.ComponentPropsWithoutRef<\n typeof ProgressPrimitive.Root\n>;\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative h-4 w-full overflow-hidden rounded-full bg-secondary\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../utils\";\n\nexport type TabsProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>;\n\nconst Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow cursor-pointer\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nexport type TabsContentProps = React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDownIcon } from \"@radix-ui/react-icons\";\n\nimport { cn } from \"../utils\";\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\n\nconst Accordion = AccordionPrimitive.Root;\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n AccordionItemProps\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../utils\"\n\nexport type SliderProps = React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4 w-4 rounded-full border-2 border-primary bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n))\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n"],"mappings":"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","names":["jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsx","cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","jsxs"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextsparkjs/ui",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.2",
|
|
4
4
|
"description": "Shared UI components for NextSpark",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,6 +16,11 @@
|
|
|
16
16
|
"import": "./dist/index.js"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
|
+
"./native": {
|
|
20
|
+
"types": "./dist/index.native.d.ts",
|
|
21
|
+
"import": "./dist/index.native.js"
|
|
22
|
+
},
|
|
23
|
+
"./package.json": "./package.json",
|
|
19
24
|
"./variants/*": {
|
|
20
25
|
"types": "./dist/variants/*.d.ts",
|
|
21
26
|
"import": "./dist/variants/*.js"
|