@nextsparkjs/ui 0.1.0-beta.1 → 0.1.0-beta.76

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 CHANGED
@@ -1,9 +1,10 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
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?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
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?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
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__ */ jsx(
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 jsx2 } from "react/jsx-runtime";
145
+ import { jsx as jsx3 } from "react/jsx-runtime";
61
146
  var Input = React2.forwardRef(
62
147
  ({ className, type, ...props }, ref) => {
63
- return /* @__PURE__ */ jsx2(
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 jsx3 } from "react/jsx-runtime";
166
+ import { jsx as jsx4 } from "react/jsx-runtime";
82
167
  var Textarea = React3.forwardRef(
83
168
  ({ className, ...props }, ref) => {
84
- return /* @__PURE__ */ jsx3(
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 jsx4 } from "react/jsx-runtime";
104
- var Checkbox = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
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__ */ jsx4(
198
+ children: /* @__PURE__ */ jsx5(
114
199
  CheckboxPrimitive.Indicator,
115
200
  {
116
201
  className: cn("flex items-center justify-center text-current"),
117
- children: /* @__PURE__ */ jsx4(CheckIcon, { className: "h-4 w-4" })
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 jsx5 } from "react/jsx-runtime";
128
- var Switch = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
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__ */ jsx5(
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 jsx6 } from "react/jsx-runtime";
236
+ import { jsx as jsx7 } from "react/jsx-runtime";
152
237
  function Label({ className, ...props }) {
153
- return /* @__PURE__ */ jsx6(
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 jsx7 } from "react/jsx-runtime";
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__ */ jsx7("div", { className: cn(badgeVariants({ variant }), className), ...props });
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 jsx8 } from "react/jsx-runtime";
193
- var Avatar = React6.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
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__ */ jsx8(
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__ */ jsx8(
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 jsx9 } from "react/jsx-runtime";
322
+ import { jsx as jsx10 } from "react/jsx-runtime";
238
323
  var Card = React7.forwardRef(
239
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
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__ */ jsx9(
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__ */ jsx9(
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__ */ jsx9(
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__ */ jsx9(
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__ */ jsx9("div", { ref, className: cn("p-6 pt-0", className), ...props })
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__ */ jsx9(
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 jsx10 } from "react/jsx-runtime";
412
+ import { jsx as jsx11 } from "react/jsx-runtime";
328
413
  var Separator = React8.forwardRef(
329
- ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx10(
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 jsx11, jsxs } from "react/jsx-runtime";
433
+ import { jsx as jsx12, jsxs } from "react/jsx-runtime";
349
434
  var Skeleton = React9.forwardRef(
350
435
  ({ className, ...props }, ref) => {
351
- return /* @__PURE__ */ jsx11(
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__ */ jsx11(
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__ */ jsx11("div", { ref, className: cn("space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx11(
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__ */ jsx11(Skeleton, { ref, className: cn("h-6 w-1/2", className), ...props });
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__ */ jsx11(Skeleton, { ref, className: cn("h-10 w-10 rounded-full", className), ...props });
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__ */ jsx11(Skeleton, { className: "h-5 w-2/3" }),
422
- /* @__PURE__ */ jsx11(Skeleton, { className: "h-4 w-full" }),
423
- /* @__PURE__ */ jsx11(Skeleton, { className: "h-4 w-4/5" }),
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__ */ jsx11(Skeleton, { className: "h-6 w-16 rounded-full" }),
426
- /* @__PURE__ */ jsx11(Skeleton, { className: "h-6 w-16 rounded-full" })
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 jsx12, jsxs as jsxs2 } from "react/jsx-runtime";
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__ */ jsx12(DialogContext.Provider, { value: { open, onOpenChange }, children });
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__ */ jsx12(
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__ */ jsx12(
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__ */ jsx12(
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__ */ jsx12(
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__ */ jsx12(
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__ */ jsx12("div", { ref, className: cn("p-4", className), ...props, children });
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__ */ jsx12(
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__ */ jsx12(
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 jsx13 } from "react/jsx-runtime";
582
- var Progress = React11.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx13(
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__ */ jsx13(
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 jsx14 } from "react/jsx-runtime";
690
+ import { jsx as jsx15 } from "react/jsx-runtime";
606
691
  var Tabs = TabsPrimitive.Root;
607
- var TabsList = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
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__ */ jsx14(
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__ */ jsx14(
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 jsx15, jsxs as jsxs3 } from "react/jsx-runtime";
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__ */ jsx15(
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__ */ jsx15(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs3(
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__ */ jsx15(ChevronDownIcon, { className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200" })
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__ */ jsx15(
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__ */ jsx15("div", { className: cn("pb-4 pt-0", className), children })
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 jsx16, jsxs as jsxs4 } from "react/jsx-runtime";
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__ */ jsx16(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ jsx16(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
701
- /* @__PURE__ */ jsx16(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" })
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
- getInitials
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":"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","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.1",
3
+ "version": "0.1.0-beta.76",
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"