@propknot/shared-ui 1.0.26 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -202,9 +202,23 @@ var require_notificationTypes = __commonJS({
202
202
  // src/index.js
203
203
  var index_exports = {};
204
204
  __export(index_exports, {
205
+ Accordion: () => Accordion,
206
+ AccordionContent: () => AccordionContent,
207
+ AccordionItem: () => AccordionItem,
208
+ AccordionTrigger: () => AccordionTrigger,
209
+ Alert: () => Alert,
210
+ AlertDescription: () => AlertDescription,
211
+ AlertTitle: () => AlertTitle,
205
212
  AuthLayout: () => AuthLayout_default,
206
213
  AuthProvider: () => AuthProvider,
214
+ Avatar: () => Avatar2,
215
+ AvatarFallback: () => AvatarFallback,
216
+ AvatarImage: () => AvatarImage,
217
+ Badge: () => Badge2,
207
218
  Blockquote: () => Blockquote,
219
+ BreadcrumbItem: () => BreadcrumbItem,
220
+ BreadcrumbLink: () => BreadcrumbLink,
221
+ Breadcrumbs: () => Breadcrumbs2,
208
222
  Button: () => Button2,
209
223
  Card: () => Card2,
210
224
  CardContent: () => CardContent2,
@@ -212,12 +226,33 @@ __export(index_exports, {
212
226
  CardFooter: () => CardFooter,
213
227
  CardHeader: () => CardHeader,
214
228
  CardTitle: () => CardTitle,
229
+ Checkbox: () => Checkbox,
230
+ Container: () => Container2,
215
231
  CustomThemeProvider: () => CustomThemeProvider,
232
+ Dialog: () => Dialog,
233
+ DialogClose: () => DialogClose,
234
+ DialogContent: () => DialogContent,
235
+ DialogDescription: () => DialogDescription,
236
+ DialogFooter: () => DialogFooter,
237
+ DialogHeader: () => DialogHeader,
238
+ DialogOverlay: () => DialogOverlay,
239
+ DialogPortal: () => DialogPortal,
240
+ DialogTitle: () => DialogTitle,
241
+ DialogTrigger: () => DialogTrigger,
216
242
  ErrorBoundary: () => ErrorBoundary_default,
243
+ Grid: () => Grid,
244
+ GridItem: () => GridItem,
217
245
  H1: () => H1,
218
246
  H2: () => H2,
219
247
  H3: () => H3,
220
248
  H4: () => H4,
249
+ HStack: () => HStack,
250
+ Header: () => Header2,
251
+ HeaderActions: () => HeaderActions,
252
+ HeaderBrand: () => HeaderBrand,
253
+ HeaderContainer: () => HeaderContainer,
254
+ HeaderLink: () => HeaderLink,
255
+ HeaderNav: () => HeaderNav,
221
256
  Heading: () => Heading,
222
257
  InlineCode: () => InlineCode,
223
258
  Input: () => Input,
@@ -225,6 +260,9 @@ __export(index_exports, {
225
260
  Large: () => Large,
226
261
  Lead: () => Lead,
227
262
  List: () => List2,
263
+ ListItem: () => ListItem2,
264
+ ListItemIcon: () => ListItemIcon2,
265
+ ListItemText: () => ListItemText2,
228
266
  LoadingSpinner: () => LoadingSpinner_default,
229
267
  ModernCard: () => ModernCard_default,
230
268
  Muted: () => Muted,
@@ -238,12 +276,61 @@ __export(index_exports, {
238
276
  P: () => P,
239
277
  PageHeader: () => PageHeader_default,
240
278
  PageLayout: () => PageLayout_default,
279
+ Popover: () => Popover,
280
+ PopoverAnchor: () => PopoverAnchor,
281
+ PopoverContent: () => PopoverContent,
282
+ PopoverTrigger: () => PopoverTrigger,
283
+ Progress: () => Progress,
284
+ Select: () => Select,
285
+ SelectContent: () => SelectContent,
286
+ SelectGroup: () => SelectGroup,
287
+ SelectItem: () => SelectItem,
288
+ SelectLabel: () => SelectLabel,
289
+ SelectScrollDownButton: () => SelectScrollDownButton,
290
+ SelectScrollUpButton: () => SelectScrollUpButton,
291
+ SelectSeparator: () => SelectSeparator,
292
+ SelectTrigger: () => SelectTrigger,
293
+ SelectValue: () => SelectValue,
294
+ Separator: () => Separator2,
295
+ Sheet: () => Sheet,
296
+ SheetClose: () => SheetClose,
297
+ SheetContent: () => SheetContent,
298
+ SheetDescription: () => SheetDescription,
299
+ SheetFooter: () => SheetFooter,
300
+ SheetHeader: () => SheetHeader,
301
+ SheetOverlay: () => SheetOverlay,
302
+ SheetPortal: () => SheetPortal,
303
+ SheetTitle: () => SheetTitle,
304
+ SheetTrigger: () => SheetTrigger,
305
+ Skeleton: () => Skeleton,
241
306
  Small: () => Small,
242
307
  SocketProvider: () => SocketProvider,
308
+ Stack: () => Stack5,
309
+ Switch: () => Switch,
310
+ Table: () => Table,
311
+ TableBody: () => TableBody,
312
+ TableCaption: () => TableCaption,
313
+ TableCell: () => TableCell,
314
+ TableFooter: () => TableFooter,
315
+ TableHead: () => TableHead,
316
+ TableHeader: () => TableHeader,
317
+ TableRow: () => TableRow,
318
+ Tabs: () => Tabs,
319
+ TabsContent: () => TabsContent,
320
+ TabsList: () => TabsList,
321
+ TabsTrigger: () => TabsTrigger,
243
322
  TenantLayout: () => TenantLayout_default,
244
323
  TenantThemeProvider: () => TenantThemeProvider,
324
+ Textarea: () => Textarea,
325
+ Toaster: () => Toaster,
326
+ Tooltip: () => Tooltip,
327
+ TooltipContent: () => TooltipContent,
328
+ TooltipProvider: () => TooltipProvider,
329
+ TooltipTrigger: () => TooltipTrigger,
330
+ VStack: () => VStack,
245
331
  api: () => api,
246
332
  auditNotifications: () => auditNotifications,
333
+ badgeVariants: () => badgeVariants,
247
334
  buttonVariants: () => buttonVariants,
248
335
  cn: () => cn,
249
336
  createContrastEnhancedComponents: () => createContrastEnhancedComponents,
@@ -319,13 +406,19 @@ var import_react = __toESM(require("react"));
319
406
 
320
407
  // src/services/api.js
321
408
  var import_axios = __toESM(require("axios"));
409
+ var import_meta = {};
322
410
  var getApiUrl = () => {
323
- if (process.env.REACT_APP_API_URL) {
411
+ if (typeof import_meta !== "undefined" && import_meta.env && import_meta.env.VITE_API_URL) {
412
+ return import_meta.env.VITE_API_URL;
413
+ }
414
+ if (typeof process !== "undefined" && process.env && process.env.REACT_APP_API_URL) {
324
415
  return process.env.REACT_APP_API_URL;
325
416
  }
326
417
  const hostname = window.location.hostname;
327
- const port = hostname === "localhost" ? "5000" : "5000";
328
- return `http://${hostname}:${port}/api`;
418
+ if (hostname === "localhost" || hostname === "127.0.0.1") {
419
+ return "http://localhost:5000/api";
420
+ }
421
+ return `https://api.${hostname}/api`;
329
422
  };
330
423
  var apiUrl = getApiUrl();
331
424
  var api = import_axios.default.create({
@@ -1623,17 +1716,23 @@ var CustomThemeProvider = ({ children }) => {
1623
1716
  if (!isEmbedded) return;
1624
1717
  let isInitialRequest = true;
1625
1718
  const handleMessage = (event) => {
1626
- if (!event.origin.startsWith("http://localhost:")) return;
1719
+ const expectedOriginProtocol = window.location.protocol;
1720
+ const expectedOriginHostname = window.location.hostname;
1721
+ if (!event.origin.startsWith(`${expectedOriginProtocol}//${expectedOriginHostname}`)) {
1722
+ console.warn("[SharedUI Theme] Rejected message from:", event.origin);
1723
+ return;
1724
+ }
1725
+ console.log("[SharedUI Theme] Received message:", event.data);
1627
1726
  const { type, theme } = event.data;
1628
- if (type === "THEME_CHANGE" && theme && ["light", "dark"].includes(theme)) {
1629
- const storedTheme2 = localStorage.getItem("embedded-theme");
1630
- if (isInitialRequest && storedTheme2 && storedTheme2 !== theme) {
1727
+ if (type === "THEME_CHANGE" && theme) {
1728
+ const themeValue = typeof theme === "object" ? theme.mode : theme;
1729
+ if (["light", "dark"].includes(themeValue)) {
1730
+ console.log("[SharedUI Theme] Updating theme to:", themeValue);
1731
+ const storedTheme2 = localStorage.getItem("embedded-theme");
1631
1732
  isInitialRequest = false;
1632
- return;
1733
+ setCurrentTheme(themeValue);
1734
+ localStorage.setItem("embedded-theme", themeValue);
1633
1735
  }
1634
- isInitialRequest = false;
1635
- setCurrentTheme(theme);
1636
- localStorage.setItem("embedded-theme", theme);
1637
1736
  }
1638
1737
  };
1639
1738
  window.addEventListener("message", handleMessage);
@@ -1696,6 +1795,15 @@ var CustomThemeProvider = ({ children }) => {
1696
1795
  const themeObject = effectiveTheme === "dark" ? darkTheme : lightTheme;
1697
1796
  const isDarkMode = effectiveTheme === "dark";
1698
1797
  const effectiveBrandingColor = getEffectiveBrandingColor();
1798
+ (0, import_react3.useEffect)(() => {
1799
+ const root = window.document.documentElement;
1800
+ root.classList.remove("light", "dark");
1801
+ if (effectiveTheme === "dark") {
1802
+ root.classList.add("dark");
1803
+ } else {
1804
+ root.classList.add("light");
1805
+ }
1806
+ }, [effectiveTheme]);
1699
1807
  const value = {
1700
1808
  currentThemeKey: effectiveTheme,
1701
1809
  theme: themeObject,
@@ -3262,11 +3370,219 @@ var ModernCardContent = ({ children, sx = {}, ...props }) => {
3262
3370
  ModernCard.Content = ModernCardContent;
3263
3371
  var ModernCard_default = ModernCard;
3264
3372
 
3265
- // src/components/UI/button.jsx
3373
+ // src/components/UI/accordion.jsx
3266
3374
  var React13 = __toESM(require("react"));
3267
- var import_react_slot = require("@radix-ui/react-slot");
3375
+ var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"));
3376
+ var import_lucide_react = require("lucide-react");
3377
+ var Accordion = AccordionPrimitive.Root;
3378
+ var AccordionItem = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React13.createElement(
3379
+ AccordionPrimitive.Item,
3380
+ {
3381
+ ref,
3382
+ className: cn("border-b", className),
3383
+ ...props
3384
+ }
3385
+ ));
3386
+ AccordionItem.displayName = "AccordionItem";
3387
+ var AccordionTrigger = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React13.createElement(AccordionPrimitive.Header, { className: "flex" }, /* @__PURE__ */ React13.createElement(
3388
+ AccordionPrimitive.Trigger,
3389
+ {
3390
+ ref,
3391
+ className: cn(
3392
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
3393
+ className
3394
+ ),
3395
+ ...props
3396
+ },
3397
+ children,
3398
+ /* @__PURE__ */ React13.createElement(import_lucide_react.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
3399
+ )));
3400
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
3401
+ var AccordionContent = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React13.createElement(
3402
+ AccordionPrimitive.Content,
3403
+ {
3404
+ ref,
3405
+ className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
3406
+ ...props
3407
+ },
3408
+ /* @__PURE__ */ React13.createElement("div", { className: cn("pb-4 pt-0", className) }, children)
3409
+ ));
3410
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
3411
+
3412
+ // src/components/UI/alert.jsx
3413
+ var React14 = __toESM(require("react"));
3268
3414
  var import_class_variance_authority = require("class-variance-authority");
3269
- var buttonVariants = (0, import_class_variance_authority.cva)(
3415
+ var alertVariants = (0, import_class_variance_authority.cva)(
3416
+ "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
3417
+ {
3418
+ variants: {
3419
+ variant: {
3420
+ default: "bg-background text-foreground",
3421
+ destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"
3422
+ }
3423
+ },
3424
+ defaultVariants: {
3425
+ variant: "default"
3426
+ }
3427
+ }
3428
+ );
3429
+ var Alert = React14.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3430
+ "div",
3431
+ {
3432
+ ref,
3433
+ role: "alert",
3434
+ className: cn(alertVariants({ variant }), className),
3435
+ ...props
3436
+ }
3437
+ ));
3438
+ Alert.displayName = "Alert";
3439
+ var AlertTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3440
+ "h5",
3441
+ {
3442
+ ref,
3443
+ className: cn("mb-1 font-medium leading-none tracking-tight", className),
3444
+ ...props
3445
+ }
3446
+ ));
3447
+ AlertTitle.displayName = "AlertTitle";
3448
+ var AlertDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3449
+ "div",
3450
+ {
3451
+ ref,
3452
+ className: cn("text-sm [&_p]:leading-relaxed", className),
3453
+ ...props
3454
+ }
3455
+ ));
3456
+ AlertDescription.displayName = "AlertDescription";
3457
+
3458
+ // src/components/UI/avatar.jsx
3459
+ var React15 = __toESM(require("react"));
3460
+ var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
3461
+ var Avatar2 = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
3462
+ AvatarPrimitive.Root,
3463
+ {
3464
+ ref,
3465
+ className: cn(
3466
+ "relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",
3467
+ className
3468
+ ),
3469
+ ...props
3470
+ }
3471
+ ));
3472
+ Avatar2.displayName = AvatarPrimitive.Root.displayName;
3473
+ var AvatarImage = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
3474
+ AvatarPrimitive.Image,
3475
+ {
3476
+ ref,
3477
+ className: cn("aspect-square h-full w-full", className),
3478
+ ...props
3479
+ }
3480
+ ));
3481
+ AvatarImage.displayName = AvatarPrimitive.Image.displayName;
3482
+ var AvatarFallback = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React15.createElement(
3483
+ AvatarPrimitive.Fallback,
3484
+ {
3485
+ ref,
3486
+ className: cn(
3487
+ "flex h-full w-full items-center justify-center rounded-full bg-muted",
3488
+ className
3489
+ ),
3490
+ ...props
3491
+ }
3492
+ ));
3493
+ AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
3494
+
3495
+ // src/components/UI/badge.jsx
3496
+ var React16 = __toESM(require("react"));
3497
+ var import_class_variance_authority2 = require("class-variance-authority");
3498
+ var badgeVariants = (0, import_class_variance_authority2.cva)(
3499
+ "inline-flex items-center rounded-full 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",
3500
+ {
3501
+ variants: {
3502
+ variant: {
3503
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
3504
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
3505
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
3506
+ outline: "text-foreground"
3507
+ }
3508
+ },
3509
+ defaultVariants: {
3510
+ variant: "default"
3511
+ }
3512
+ }
3513
+ );
3514
+ function Badge2({ className, variant, ...props }) {
3515
+ return /* @__PURE__ */ React16.createElement("div", { className: cn(badgeVariants({ variant }), className), ...props });
3516
+ }
3517
+
3518
+ // src/components/UI/breadcrumbs.jsx
3519
+ var React17 = __toESM(require("react"));
3520
+ var import_lucide_react2 = require("lucide-react");
3521
+ var Breadcrumbs2 = React17.forwardRef(({
3522
+ className,
3523
+ separator,
3524
+ children,
3525
+ ...props
3526
+ }, ref) => {
3527
+ const Separator3 = separator || /* @__PURE__ */ React17.createElement(import_lucide_react2.ChevronRight, { className: "h-4 w-4" });
3528
+ const items = React17.Children.toArray(children);
3529
+ return /* @__PURE__ */ React17.createElement(
3530
+ "nav",
3531
+ {
3532
+ ref,
3533
+ "aria-label": "Breadcrumb",
3534
+ className: cn("flex items-center space-x-1 text-sm text-muted-foreground", className),
3535
+ ...props
3536
+ },
3537
+ /* @__PURE__ */ React17.createElement("ol", { className: "flex items-center space-x-1" }, items.map((child, index) => /* @__PURE__ */ React17.createElement("li", { key: index, className: "flex items-center space-x-1" }, child, index < items.length - 1 && /* @__PURE__ */ React17.createElement("span", { className: "mx-1", "aria-hidden": "true" }, Separator3))))
3538
+ );
3539
+ });
3540
+ Breadcrumbs2.displayName = "Breadcrumbs";
3541
+ var BreadcrumbItem = React17.forwardRef(({
3542
+ className,
3543
+ isCurrentPage,
3544
+ children,
3545
+ ...props
3546
+ }, ref) => /* @__PURE__ */ React17.createElement(
3547
+ "span",
3548
+ {
3549
+ ref,
3550
+ className: cn(
3551
+ "inline-flex items-center",
3552
+ isCurrentPage ? "font-medium text-foreground" : "hover:text-foreground transition-colors",
3553
+ className
3554
+ ),
3555
+ "aria-current": isCurrentPage ? "page" : void 0,
3556
+ ...props
3557
+ },
3558
+ children
3559
+ ));
3560
+ BreadcrumbItem.displayName = "BreadcrumbItem";
3561
+ var BreadcrumbLink = React17.forwardRef(({
3562
+ className,
3563
+ href,
3564
+ children,
3565
+ ...props
3566
+ }, ref) => /* @__PURE__ */ React17.createElement(
3567
+ "a",
3568
+ {
3569
+ ref,
3570
+ href,
3571
+ className: cn(
3572
+ "hover:text-foreground transition-colors hover:underline",
3573
+ className
3574
+ ),
3575
+ ...props
3576
+ },
3577
+ children
3578
+ ));
3579
+ BreadcrumbLink.displayName = "BreadcrumbLink";
3580
+
3581
+ // src/components/UI/button.jsx
3582
+ var React18 = __toESM(require("react"));
3583
+ var import_react_slot = require("@radix-ui/react-slot");
3584
+ var import_class_variance_authority3 = require("class-variance-authority");
3585
+ var buttonVariants = (0, import_class_variance_authority3.cva)(
3270
3586
  "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
3271
3587
  {
3272
3588
  variants: {
@@ -3291,12 +3607,12 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
3291
3607
  }
3292
3608
  }
3293
3609
  );
3294
- var Button2 = React13.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
3610
+ var Button2 = React18.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
3295
3611
  const Comp = asChild ? import_react_slot.Slot : "button";
3296
- return /* @__PURE__ */ React13.createElement(
3612
+ return /* @__PURE__ */ React18.createElement(
3297
3613
  Comp,
3298
3614
  {
3299
- className: cn(buttonVariants({ variant, size, className })),
3615
+ className: cn(buttonVariants({ variant, size }), className),
3300
3616
  ref,
3301
3617
  ...props
3302
3618
  }
@@ -3305,8 +3621,8 @@ var Button2 = React13.forwardRef(({ className, variant, size, asChild = false, .
3305
3621
  Button2.displayName = "Button";
3306
3622
 
3307
3623
  // src/components/UI/card.jsx
3308
- var React14 = __toESM(require("react"));
3309
- var Card2 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3624
+ var React19 = __toESM(require("react"));
3625
+ var Card2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
3310
3626
  "div",
3311
3627
  {
3312
3628
  ref,
@@ -3318,7 +3634,7 @@ var Card2 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
3318
3634
  }
3319
3635
  ));
3320
3636
  Card2.displayName = "Card";
3321
- var CardHeader = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3637
+ var CardHeader = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
3322
3638
  "div",
3323
3639
  {
3324
3640
  ref,
@@ -3327,7 +3643,7 @@ var CardHeader = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE
3327
3643
  }
3328
3644
  ));
3329
3645
  CardHeader.displayName = "CardHeader";
3330
- var CardTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3646
+ var CardTitle = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
3331
3647
  "h3",
3332
3648
  {
3333
3649
  ref,
@@ -3339,7 +3655,7 @@ var CardTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE_
3339
3655
  }
3340
3656
  ));
3341
3657
  CardTitle.displayName = "CardTitle";
3342
- var CardDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3658
+ var CardDescription = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
3343
3659
  "p",
3344
3660
  {
3345
3661
  ref,
@@ -3348,9 +3664,9 @@ var CardDescription = React14.forwardRef(({ className, ...props }, ref) => /* @_
3348
3664
  }
3349
3665
  ));
3350
3666
  CardDescription.displayName = "CardDescription";
3351
- var CardContent2 = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement("div", { ref, className: cn("p-6 pt-0", className), ...props }));
3667
+ var CardContent2 = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement("div", { ref, className: cn("p-6 pt-0", className), ...props }));
3352
3668
  CardContent2.displayName = "CardContent";
3353
- var CardFooter = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React14.createElement(
3669
+ var CardFooter = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React19.createElement(
3354
3670
  "div",
3355
3671
  {
3356
3672
  ref,
@@ -3360,100 +3676,1010 @@ var CardFooter = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE
3360
3676
  ));
3361
3677
  CardFooter.displayName = "CardFooter";
3362
3678
 
3363
- // src/components/UI/input.jsx
3364
- var React15 = __toESM(require("react"));
3365
- var Input = React15.forwardRef(({ className, type, ...props }, ref) => {
3366
- return /* @__PURE__ */ React15.createElement(
3367
- "input",
3679
+ // src/components/UI/checkbox.jsx
3680
+ var React20 = __toESM(require("react"));
3681
+ var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"));
3682
+ var import_lucide_react3 = require("lucide-react");
3683
+ var Checkbox = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
3684
+ CheckboxPrimitive.Root,
3685
+ {
3686
+ ref,
3687
+ className: cn(
3688
+ "peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
3689
+ className
3690
+ ),
3691
+ ...props
3692
+ },
3693
+ /* @__PURE__ */ React20.createElement(
3694
+ CheckboxPrimitive.Indicator,
3368
3695
  {
3369
- type,
3696
+ className: cn("flex items-center justify-center text-current")
3697
+ },
3698
+ /* @__PURE__ */ React20.createElement(import_lucide_react3.Check, { className: "h-4 w-4" })
3699
+ )
3700
+ ));
3701
+ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
3702
+
3703
+ // src/components/UI/container.jsx
3704
+ var React21 = __toESM(require("react"));
3705
+ var Container2 = React21.forwardRef(({ className, maxWidth = "7xl", centered = true, ...props }, ref) => {
3706
+ const maxWidthClasses = {
3707
+ sm: "max-w-screen-sm",
3708
+ md: "max-w-screen-md",
3709
+ lg: "max-w-screen-lg",
3710
+ xl: "max-w-screen-xl",
3711
+ "2xl": "max-w-screen-2xl",
3712
+ "7xl": "max-w-7xl",
3713
+ full: "max-w-full"
3714
+ };
3715
+ return /* @__PURE__ */ React21.createElement(
3716
+ "div",
3717
+ {
3718
+ ref,
3370
3719
  className: cn(
3371
- "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background 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-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
3720
+ "w-full px-4 sm:px-6 lg:px-8",
3721
+ centered && "mx-auto",
3722
+ maxWidthClasses[maxWidth] || maxWidthClasses["7xl"],
3372
3723
  className
3373
3724
  ),
3374
- ref,
3375
3725
  ...props
3376
3726
  }
3377
3727
  );
3378
3728
  });
3379
- Input.displayName = "Input";
3729
+ Container2.displayName = "Container";
3380
3730
 
3381
- // src/components/UI/label.jsx
3382
- var React16 = __toESM(require("react"));
3383
- var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
3384
- var import_class_variance_authority2 = require("class-variance-authority");
3385
- var labelVariants = (0, import_class_variance_authority2.cva)(
3386
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
3731
+ // src/components/UI/dialog.jsx
3732
+ var React22 = __toESM(require("react"));
3733
+ var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
3734
+ var import_lucide_react4 = require("lucide-react");
3735
+ var Dialog = DialogPrimitive.Root;
3736
+ var DialogTrigger = DialogPrimitive.Trigger;
3737
+ var DialogPortal = DialogPrimitive.Portal;
3738
+ var DialogClose = DialogPrimitive.Close;
3739
+ var DialogOverlay = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
3740
+ DialogPrimitive.Overlay,
3741
+ {
3742
+ ref,
3743
+ className: cn(
3744
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
3745
+ className
3746
+ ),
3747
+ ...props
3748
+ }
3749
+ ));
3750
+ DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
3751
+ var DialogContent = React22.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React22.createElement(DialogPortal, null, /* @__PURE__ */ React22.createElement(DialogOverlay, null), /* @__PURE__ */ React22.createElement(
3752
+ DialogPrimitive.Content,
3753
+ {
3754
+ ref,
3755
+ className: cn(
3756
+ "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",
3757
+ className
3758
+ ),
3759
+ ...props
3760
+ },
3761
+ children,
3762
+ /* @__PURE__ */ React22.createElement(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground" }, /* @__PURE__ */ React22.createElement(import_lucide_react4.X, { className: "h-4 w-4" }), /* @__PURE__ */ React22.createElement("span", { className: "sr-only" }, "Close"))
3763
+ )));
3764
+ DialogContent.displayName = DialogPrimitive.Content.displayName;
3765
+ var DialogHeader = ({
3766
+ className,
3767
+ ...props
3768
+ }) => /* @__PURE__ */ React22.createElement(
3769
+ "div",
3770
+ {
3771
+ className: cn(
3772
+ "flex flex-col space-y-1.5 text-center sm:text-left",
3773
+ className
3774
+ ),
3775
+ ...props
3776
+ }
3387
3777
  );
3388
- var Label = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React16.createElement(
3389
- LabelPrimitive.Root,
3778
+ DialogHeader.displayName = "DialogHeader";
3779
+ var DialogFooter = ({
3780
+ className,
3781
+ ...props
3782
+ }) => /* @__PURE__ */ React22.createElement(
3783
+ "div",
3784
+ {
3785
+ className: cn(
3786
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
3787
+ className
3788
+ ),
3789
+ ...props
3790
+ }
3791
+ );
3792
+ DialogFooter.displayName = "DialogFooter";
3793
+ var DialogTitle = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
3794
+ DialogPrimitive.Title,
3390
3795
  {
3391
3796
  ref,
3392
- className: cn(labelVariants(), className),
3797
+ className: cn(
3798
+ "text-lg font-semibold leading-none tracking-tight",
3799
+ className
3800
+ ),
3393
3801
  ...props
3394
3802
  }
3395
3803
  ));
3396
- Label.displayName = LabelPrimitive.Root.displayName;
3804
+ DialogTitle.displayName = DialogPrimitive.Title.displayName;
3805
+ var DialogDescription = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React22.createElement(
3806
+ DialogPrimitive.Description,
3807
+ {
3808
+ ref,
3809
+ className: cn("text-sm text-muted-foreground", className),
3810
+ ...props
3811
+ }
3812
+ ));
3813
+ DialogDescription.displayName = DialogPrimitive.Description.displayName;
3397
3814
 
3398
- // src/components/UI/typography.jsx
3399
- var React17 = __toESM(require("react"));
3400
- var import_class_variance_authority3 = require("class-variance-authority");
3401
- var headingVariants = (0, import_class_variance_authority3.cva)("scroll-m-20 tracking-tight", {
3402
- variants: {
3403
- level: {
3404
- h1: "text-4xl font-extrabold lg:text-5xl",
3405
- h2: "text-3xl font-semibold",
3406
- h3: "text-2xl font-semibold",
3407
- h4: "text-xl font-semibold",
3408
- h5: "text-lg font-semibold",
3409
- h6: "text-base font-semibold"
3815
+ // src/components/UI/grid.jsx
3816
+ var React23 = __toESM(require("react"));
3817
+ var Grid = React23.forwardRef(({
3818
+ className,
3819
+ cols = 1,
3820
+ sm,
3821
+ md,
3822
+ lg,
3823
+ xl,
3824
+ gap = 4,
3825
+ ...props
3826
+ }, ref) => {
3827
+ const colsClasses = {
3828
+ 1: "grid-cols-1",
3829
+ 2: "grid-cols-2",
3830
+ 3: "grid-cols-3",
3831
+ 4: "grid-cols-4",
3832
+ 5: "grid-cols-5",
3833
+ 6: "grid-cols-6",
3834
+ 12: "grid-cols-12"
3835
+ };
3836
+ const responsiveClasses = {
3837
+ sm: sm ? `sm:grid-cols-${sm}` : null,
3838
+ md: md ? `md:grid-cols-${md}` : null,
3839
+ lg: lg ? `lg:grid-cols-${lg}` : null,
3840
+ xl: xl ? `xl:grid-cols-${xl}` : null
3841
+ };
3842
+ const gapClass = `gap-${gap}`;
3843
+ return /* @__PURE__ */ React23.createElement(
3844
+ "div",
3845
+ {
3846
+ ref,
3847
+ className: cn(
3848
+ "grid",
3849
+ colsClasses[cols] || "grid-cols-1",
3850
+ responsiveClasses.sm,
3851
+ responsiveClasses.md,
3852
+ responsiveClasses.lg,
3853
+ responsiveClasses.xl,
3854
+ gapClass,
3855
+ className
3856
+ ),
3857
+ ...props
3410
3858
  }
3411
- },
3412
- defaultVariants: {
3413
- level: "h2"
3414
- }
3859
+ );
3415
3860
  });
3416
- var Heading = React17.forwardRef(({ className, level = "h2", ...props }, ref) => {
3417
- const Comp = level;
3418
- return /* @__PURE__ */ React17.createElement(
3419
- Comp,
3861
+ Grid.displayName = "Grid";
3862
+ var GridItem = React23.forwardRef(({
3863
+ className,
3864
+ colSpan = 1,
3865
+ colStart,
3866
+ colEnd,
3867
+ rowSpan = 1,
3868
+ rowStart,
3869
+ rowEnd,
3870
+ ...props
3871
+ }, ref) => {
3872
+ const spanClasses = {
3873
+ 1: "col-span-1",
3874
+ 2: "col-span-2",
3875
+ 3: "col-span-3",
3876
+ 4: "col-span-4",
3877
+ 5: "col-span-5",
3878
+ 6: "col-span-6",
3879
+ 12: "col-span-12",
3880
+ full: "col-span-full"
3881
+ };
3882
+ const rowSpanClasses = {
3883
+ 1: "row-span-1",
3884
+ 2: "row-span-2",
3885
+ 3: "row-span-3",
3886
+ 4: "row-span-4",
3887
+ 5: "row-span-5",
3888
+ 6: "row-span-6"
3889
+ };
3890
+ return /* @__PURE__ */ React23.createElement(
3891
+ "div",
3420
3892
  {
3421
3893
  ref,
3422
- className: cn(headingVariants({ level, className })),
3894
+ className: cn(
3895
+ spanClasses[colSpan],
3896
+ rowSpanClasses[rowSpan],
3897
+ colStart && `col-start-${colStart}`,
3898
+ colEnd && `col-end-${colEnd}`,
3899
+ rowStart && `row-start-${rowStart}`,
3900
+ rowEnd && `row-end-${rowEnd}`,
3901
+ className
3902
+ ),
3423
3903
  ...props
3424
3904
  }
3425
3905
  );
3426
3906
  });
3427
- Heading.displayName = "Heading";
3428
- var H1 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
3429
- "h1",
3907
+ GridItem.displayName = "GridItem";
3908
+ Grid.Item = GridItem;
3909
+
3910
+ // src/components/UI/header.jsx
3911
+ var React24 = __toESM(require("react"));
3912
+ var Header2 = React24.forwardRef(({
3913
+ className,
3914
+ sticky = false,
3915
+ ...props
3916
+ }, ref) => /* @__PURE__ */ React24.createElement(
3917
+ "header",
3430
3918
  {
3431
3919
  ref,
3432
- className: cn("scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl", className),
3920
+ className: cn(
3921
+ "w-full border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60",
3922
+ sticky && "sticky top-0 z-50",
3923
+ className
3924
+ ),
3433
3925
  ...props
3434
3926
  }
3435
3927
  ));
3436
- H1.displayName = "H1";
3437
- var H2 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
3438
- "h2",
3928
+ Header2.displayName = "Header";
3929
+ var HeaderContainer = React24.forwardRef(({
3930
+ className,
3931
+ ...props
3932
+ }, ref) => /* @__PURE__ */ React24.createElement(
3933
+ "div",
3439
3934
  {
3440
3935
  ref,
3441
- className: cn("scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0", className),
3936
+ className: cn(
3937
+ "container flex h-14 items-center",
3938
+ className
3939
+ ),
3442
3940
  ...props
3443
3941
  }
3444
3942
  ));
3445
- H2.displayName = "H2";
3446
- var H3 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
3447
- "h3",
3943
+ HeaderContainer.displayName = "HeaderContainer";
3944
+ var HeaderNav = React24.forwardRef(({
3945
+ className,
3946
+ ...props
3947
+ }, ref) => /* @__PURE__ */ React24.createElement(
3948
+ "nav",
3448
3949
  {
3449
3950
  ref,
3450
- className: cn("scroll-m-20 text-2xl font-semibold tracking-tight", className),
3951
+ className: cn("flex items-center space-x-4 lg:space-x-6", className),
3451
3952
  ...props
3452
3953
  }
3453
3954
  ));
3454
- H3.displayName = "H3";
3455
- var H4 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
3456
- "h4",
3955
+ HeaderNav.displayName = "HeaderNav";
3956
+ var HeaderActions = React24.forwardRef(({
3957
+ className,
3958
+ ...props
3959
+ }, ref) => /* @__PURE__ */ React24.createElement(
3960
+ "div",
3961
+ {
3962
+ ref,
3963
+ className: cn("ml-auto flex items-center space-x-4", className),
3964
+ ...props
3965
+ }
3966
+ ));
3967
+ HeaderActions.displayName = "HeaderActions";
3968
+ var HeaderBrand = React24.forwardRef(({
3969
+ className,
3970
+ ...props
3971
+ }, ref) => /* @__PURE__ */ React24.createElement(
3972
+ "div",
3973
+ {
3974
+ ref,
3975
+ className: cn("mr-4 flex items-center space-x-2", className),
3976
+ ...props
3977
+ }
3978
+ ));
3979
+ HeaderBrand.displayName = "HeaderBrand";
3980
+ var HeaderLink = React24.forwardRef(({
3981
+ className,
3982
+ active = false,
3983
+ ...props
3984
+ }, ref) => /* @__PURE__ */ React24.createElement(
3985
+ "a",
3986
+ {
3987
+ ref,
3988
+ className: cn(
3989
+ "text-sm font-medium transition-colors hover:text-primary",
3990
+ active ? "text-foreground" : "text-muted-foreground",
3991
+ className
3992
+ ),
3993
+ ...props
3994
+ }
3995
+ ));
3996
+ HeaderLink.displayName = "HeaderLink";
3997
+
3998
+ // src/components/UI/input.jsx
3999
+ var React25 = __toESM(require("react"));
4000
+ var Input = React25.forwardRef(({ className, type, ...props }, ref) => {
4001
+ return /* @__PURE__ */ React25.createElement(
4002
+ "input",
4003
+ {
4004
+ type,
4005
+ className: cn(
4006
+ "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background 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-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
4007
+ className
4008
+ ),
4009
+ ref,
4010
+ ...props
4011
+ }
4012
+ );
4013
+ });
4014
+ Input.displayName = "Input";
4015
+
4016
+ // src/components/UI/label.jsx
4017
+ var React26 = __toESM(require("react"));
4018
+ var LabelPrimitive = __toESM(require("@radix-ui/react-label"));
4019
+ var import_class_variance_authority4 = require("class-variance-authority");
4020
+ var labelVariants = (0, import_class_variance_authority4.cva)(
4021
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
4022
+ );
4023
+ var Label = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React26.createElement(
4024
+ LabelPrimitive.Root,
4025
+ {
4026
+ ref,
4027
+ className: cn(labelVariants(), className),
4028
+ ...props
4029
+ }
4030
+ ));
4031
+ Label.displayName = LabelPrimitive.Root.displayName;
4032
+
4033
+ // src/components/UI/list.jsx
4034
+ var React27 = __toESM(require("react"));
4035
+ var List2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
4036
+ "ul",
4037
+ {
4038
+ ref,
4039
+ className: cn("space-y-1", className),
4040
+ ...props
4041
+ }
4042
+ ));
4043
+ List2.displayName = "List";
4044
+ var ListItem2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
4045
+ "li",
4046
+ {
4047
+ ref,
4048
+ className: cn(
4049
+ "flex items-center gap-3 rounded-lg px-3 py-2",
4050
+ className
4051
+ ),
4052
+ ...props
4053
+ }
4054
+ ));
4055
+ ListItem2.displayName = "ListItem";
4056
+ var ListItemText2 = React27.forwardRef(({ primary, secondary, className, ...props }, ref) => /* @__PURE__ */ React27.createElement("div", { ref, className: cn("flex flex-col gap-1", className), ...props }, primary && /* @__PURE__ */ React27.createElement("p", { className: "text-sm font-medium leading-none" }, primary), secondary && /* @__PURE__ */ React27.createElement("p", { className: "text-sm text-muted-foreground" }, secondary)));
4057
+ ListItemText2.displayName = "ListItemText";
4058
+ var ListItemIcon2 = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
4059
+ "div",
4060
+ {
4061
+ ref,
4062
+ className: cn("flex h-5 w-5 shrink-0 items-center justify-center", className),
4063
+ ...props
4064
+ }
4065
+ ));
4066
+ ListItemIcon2.displayName = "ListItemIcon";
4067
+
4068
+ // src/components/UI/popover.jsx
4069
+ var React28 = __toESM(require("react"));
4070
+ var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
4071
+ var Popover = PopoverPrimitive.Root;
4072
+ var PopoverTrigger = PopoverPrimitive.Trigger;
4073
+ var PopoverAnchor = PopoverPrimitive.Anchor;
4074
+ var PopoverContent = React28.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React28.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React28.createElement(
4075
+ PopoverPrimitive.Content,
4076
+ {
4077
+ ref,
4078
+ align,
4079
+ sideOffset,
4080
+ className: cn(
4081
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4082
+ className
4083
+ ),
4084
+ ...props
4085
+ }
4086
+ )));
4087
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
4088
+
4089
+ // src/components/UI/progress.jsx
4090
+ var React29 = __toESM(require("react"));
4091
+ var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
4092
+ var Progress = React29.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ React29.createElement(
4093
+ ProgressPrimitive.Root,
4094
+ {
4095
+ ref,
4096
+ className: cn(
4097
+ "relative h-4 w-full overflow-hidden rounded-full bg-secondary",
4098
+ className
4099
+ ),
4100
+ ...props
4101
+ },
4102
+ /* @__PURE__ */ React29.createElement(
4103
+ ProgressPrimitive.Indicator,
4104
+ {
4105
+ className: "h-full w-full flex-1 bg-primary transition-all",
4106
+ style: { transform: `translateX(-${100 - (value || 0)}%)` }
4107
+ }
4108
+ )
4109
+ ));
4110
+ Progress.displayName = ProgressPrimitive.Root.displayName;
4111
+
4112
+ // src/components/UI/select.jsx
4113
+ var React30 = __toESM(require("react"));
4114
+ var SelectPrimitive = __toESM(require("@radix-ui/react-select"));
4115
+ var import_lucide_react5 = require("lucide-react");
4116
+ var Select = SelectPrimitive.Root;
4117
+ var SelectGroup = SelectPrimitive.Group;
4118
+ var SelectValue = SelectPrimitive.Value;
4119
+ var SelectTrigger = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4120
+ SelectPrimitive.Trigger,
4121
+ {
4122
+ ref,
4123
+ className: cn(
4124
+ "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
4125
+ className
4126
+ ),
4127
+ ...props
4128
+ },
4129
+ children,
4130
+ /* @__PURE__ */ React30.createElement(SelectPrimitive.Icon, { asChild: true }, /* @__PURE__ */ React30.createElement(import_lucide_react5.ChevronDown, { className: "h-4 w-4 opacity-50" }))
4131
+ ));
4132
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
4133
+ var SelectScrollUpButton = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4134
+ SelectPrimitive.ScrollUpButton,
4135
+ {
4136
+ ref,
4137
+ className: cn(
4138
+ "flex cursor-default items-center justify-center py-1",
4139
+ className
4140
+ ),
4141
+ ...props
4142
+ },
4143
+ /* @__PURE__ */ React30.createElement(import_lucide_react5.ChevronUp, { className: "h-4 w-4" })
4144
+ ));
4145
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
4146
+ var SelectScrollDownButton = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4147
+ SelectPrimitive.ScrollDownButton,
4148
+ {
4149
+ ref,
4150
+ className: cn(
4151
+ "flex cursor-default items-center justify-center py-1",
4152
+ className
4153
+ ),
4154
+ ...props
4155
+ },
4156
+ /* @__PURE__ */ React30.createElement(import_lucide_react5.ChevronDown, { className: "h-4 w-4" })
4157
+ ));
4158
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
4159
+ var SelectContent = React30.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ React30.createElement(SelectPrimitive.Portal, null, /* @__PURE__ */ React30.createElement(
4160
+ SelectPrimitive.Content,
4161
+ {
4162
+ ref,
4163
+ className: cn(
4164
+ "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4165
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
4166
+ className
4167
+ ),
4168
+ position,
4169
+ ...props
4170
+ },
4171
+ /* @__PURE__ */ React30.createElement(SelectScrollUpButton, null),
4172
+ /* @__PURE__ */ React30.createElement(
4173
+ SelectPrimitive.Viewport,
4174
+ {
4175
+ className: cn(
4176
+ "p-1",
4177
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
4178
+ )
4179
+ },
4180
+ children
4181
+ ),
4182
+ /* @__PURE__ */ React30.createElement(SelectScrollDownButton, null)
4183
+ )));
4184
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
4185
+ var SelectLabel = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4186
+ SelectPrimitive.Label,
4187
+ {
4188
+ ref,
4189
+ className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
4190
+ ...props
4191
+ }
4192
+ ));
4193
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
4194
+ var SelectItem = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4195
+ SelectPrimitive.Item,
4196
+ {
4197
+ ref,
4198
+ className: cn(
4199
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
4200
+ className
4201
+ ),
4202
+ ...props
4203
+ },
4204
+ /* @__PURE__ */ React30.createElement("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center" }, /* @__PURE__ */ React30.createElement(SelectPrimitive.ItemIndicator, null, /* @__PURE__ */ React30.createElement(import_lucide_react5.Check, { className: "h-4 w-4" }))),
4205
+ /* @__PURE__ */ React30.createElement(SelectPrimitive.ItemText, null, children)
4206
+ ));
4207
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
4208
+ var SelectSeparator = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
4209
+ SelectPrimitive.Separator,
4210
+ {
4211
+ ref,
4212
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
4213
+ ...props
4214
+ }
4215
+ ));
4216
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4217
+
4218
+ // src/components/UI/separator.jsx
4219
+ var React31 = __toESM(require("react"));
4220
+ var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"));
4221
+ var Separator2 = React31.forwardRef(
4222
+ ({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ React31.createElement(
4223
+ SeparatorPrimitive.Root,
4224
+ {
4225
+ ref,
4226
+ decorative,
4227
+ orientation,
4228
+ className: cn(
4229
+ "shrink-0 bg-border",
4230
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
4231
+ className
4232
+ ),
4233
+ ...props
4234
+ }
4235
+ )
4236
+ );
4237
+ Separator2.displayName = SeparatorPrimitive.Root.displayName;
4238
+
4239
+ // src/components/UI/sheet.jsx
4240
+ var React32 = __toESM(require("react"));
4241
+ var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"));
4242
+ var import_class_variance_authority5 = require("class-variance-authority");
4243
+ var import_lucide_react6 = require("lucide-react");
4244
+ var Sheet = DialogPrimitive2.Root;
4245
+ var SheetTrigger = DialogPrimitive2.Trigger;
4246
+ var SheetClose = DialogPrimitive2.Close;
4247
+ var SheetPortal = DialogPrimitive2.Portal;
4248
+ var SheetOverlay = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
4249
+ DialogPrimitive2.Overlay,
4250
+ {
4251
+ className: cn(
4252
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
4253
+ className
4254
+ ),
4255
+ ...props,
4256
+ ref
4257
+ }
4258
+ ));
4259
+ SheetOverlay.displayName = DialogPrimitive2.Overlay.displayName;
4260
+ var sheetVariants = (0, import_class_variance_authority5.cva)(
4261
+ "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
4262
+ {
4263
+ variants: {
4264
+ side: {
4265
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
4266
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
4267
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
4268
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
4269
+ }
4270
+ },
4271
+ defaultVariants: {
4272
+ side: "right"
4273
+ }
4274
+ }
4275
+ );
4276
+ var SheetContent = React32.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ React32.createElement(SheetPortal, null, /* @__PURE__ */ React32.createElement(SheetOverlay, null), /* @__PURE__ */ React32.createElement(
4277
+ DialogPrimitive2.Content,
4278
+ {
4279
+ ref,
4280
+ className: cn(sheetVariants({ side }), className),
4281
+ ...props
4282
+ },
4283
+ children,
4284
+ /* @__PURE__ */ React32.createElement(DialogPrimitive2.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary" }, /* @__PURE__ */ React32.createElement(import_lucide_react6.X, { className: "h-4 w-4" }), /* @__PURE__ */ React32.createElement("span", { className: "sr-only" }, "Close"))
4285
+ )));
4286
+ SheetContent.displayName = DialogPrimitive2.Content.displayName;
4287
+ var SheetHeader = ({
4288
+ className,
4289
+ ...props
4290
+ }) => /* @__PURE__ */ React32.createElement(
4291
+ "div",
4292
+ {
4293
+ className: cn(
4294
+ "flex flex-col space-y-2 text-center sm:text-left",
4295
+ className
4296
+ ),
4297
+ ...props
4298
+ }
4299
+ );
4300
+ SheetHeader.displayName = "SheetHeader";
4301
+ var SheetFooter = ({
4302
+ className,
4303
+ ...props
4304
+ }) => /* @__PURE__ */ React32.createElement(
4305
+ "div",
4306
+ {
4307
+ className: cn(
4308
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
4309
+ className
4310
+ ),
4311
+ ...props
4312
+ }
4313
+ );
4314
+ SheetFooter.displayName = "SheetFooter";
4315
+ var SheetTitle = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
4316
+ DialogPrimitive2.Title,
4317
+ {
4318
+ ref,
4319
+ className: cn("text-lg font-semibold text-foreground", className),
4320
+ ...props
4321
+ }
4322
+ ));
4323
+ SheetTitle.displayName = DialogPrimitive2.Title.displayName;
4324
+ var SheetDescription = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React32.createElement(
4325
+ DialogPrimitive2.Description,
4326
+ {
4327
+ ref,
4328
+ className: cn("text-sm text-muted-foreground", className),
4329
+ ...props
4330
+ }
4331
+ ));
4332
+ SheetDescription.displayName = DialogPrimitive2.Description.displayName;
4333
+
4334
+ // src/components/UI/skeleton.jsx
4335
+ var React33 = __toESM(require("react"));
4336
+ function Skeleton({
4337
+ className,
4338
+ ...props
4339
+ }) {
4340
+ return /* @__PURE__ */ React33.createElement(
4341
+ "div",
4342
+ {
4343
+ className: cn("animate-pulse rounded-md bg-muted", className),
4344
+ ...props
4345
+ }
4346
+ );
4347
+ }
4348
+
4349
+ // src/components/UI/stack.jsx
4350
+ var React34 = __toESM(require("react"));
4351
+ var Stack5 = React34.forwardRef(({
4352
+ className,
4353
+ direction = "vertical",
4354
+ spacing = 4,
4355
+ align = "stretch",
4356
+ justify = "start",
4357
+ wrap = false,
4358
+ ...props
4359
+ }, ref) => {
4360
+ const directionClasses = {
4361
+ vertical: "flex-col",
4362
+ horizontal: "flex-row"
4363
+ };
4364
+ const spacingClasses = {
4365
+ vertical: {
4366
+ 0: "space-y-0",
4367
+ 1: "space-y-1",
4368
+ 2: "space-y-2",
4369
+ 3: "space-y-3",
4370
+ 4: "space-y-4",
4371
+ 5: "space-y-5",
4372
+ 6: "space-y-6",
4373
+ 8: "space-y-8"
4374
+ },
4375
+ horizontal: {
4376
+ 0: "space-x-0",
4377
+ 1: "space-x-1",
4378
+ 2: "space-x-2",
4379
+ 3: "space-x-3",
4380
+ 4: "space-x-4",
4381
+ 5: "space-x-5",
4382
+ 6: "space-x-6",
4383
+ 8: "space-x-8"
4384
+ }
4385
+ };
4386
+ const alignClasses = {
4387
+ start: "items-start",
4388
+ center: "items-center",
4389
+ end: "items-end",
4390
+ stretch: "items-stretch",
4391
+ baseline: "items-baseline"
4392
+ };
4393
+ const justifyClasses = {
4394
+ start: "justify-start",
4395
+ center: "justify-center",
4396
+ end: "justify-end",
4397
+ between: "justify-between",
4398
+ around: "justify-around",
4399
+ evenly: "justify-evenly"
4400
+ };
4401
+ return /* @__PURE__ */ React34.createElement(
4402
+ "div",
4403
+ {
4404
+ ref,
4405
+ className: cn(
4406
+ "flex",
4407
+ directionClasses[direction] || directionClasses.vertical,
4408
+ spacingClasses[direction][spacing] || spacingClasses.vertical[4],
4409
+ alignClasses[align] || alignClasses.stretch,
4410
+ justifyClasses[justify] || justifyClasses.start,
4411
+ wrap && "flex-wrap",
4412
+ className
4413
+ ),
4414
+ ...props
4415
+ }
4416
+ );
4417
+ });
4418
+ Stack5.displayName = "Stack";
4419
+ var HStack = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React34.createElement(Stack5, { ref, direction: "horizontal", ...props }));
4420
+ HStack.displayName = "HStack";
4421
+ var VStack = React34.forwardRef(({ ...props }, ref) => /* @__PURE__ */ React34.createElement(Stack5, { ref, direction: "vertical", ...props }));
4422
+ VStack.displayName = "VStack";
4423
+
4424
+ // src/components/UI/switch.jsx
4425
+ var React35 = __toESM(require("react"));
4426
+ var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"));
4427
+ var Switch = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React35.createElement(
4428
+ SwitchPrimitives.Root,
4429
+ {
4430
+ className: cn(
4431
+ "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent 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",
4432
+ className
4433
+ ),
4434
+ ...props,
4435
+ ref
4436
+ },
4437
+ /* @__PURE__ */ React35.createElement(
4438
+ SwitchPrimitives.Thumb,
4439
+ {
4440
+ className: cn(
4441
+ "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
4442
+ )
4443
+ }
4444
+ )
4445
+ ));
4446
+ Switch.displayName = SwitchPrimitives.Root.displayName;
4447
+
4448
+ // src/components/UI/table.jsx
4449
+ var React36 = __toESM(require("react"));
4450
+ var Table = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement("div", { className: "relative w-full overflow-auto" }, /* @__PURE__ */ React36.createElement(
4451
+ "table",
4452
+ {
4453
+ ref,
4454
+ className: cn("w-full caption-bottom text-sm", className),
4455
+ ...props
4456
+ }
4457
+ )));
4458
+ Table.displayName = "Table";
4459
+ var TableHeader = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
4460
+ TableHeader.displayName = "TableHeader";
4461
+ var TableBody = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4462
+ "tbody",
4463
+ {
4464
+ ref,
4465
+ className: cn("[&_tr:last-child]:border-0", className),
4466
+ ...props
4467
+ }
4468
+ ));
4469
+ TableBody.displayName = "TableBody";
4470
+ var TableFooter = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4471
+ "tfoot",
4472
+ {
4473
+ ref,
4474
+ className: cn(
4475
+ "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
4476
+ className
4477
+ ),
4478
+ ...props
4479
+ }
4480
+ ));
4481
+ TableFooter.displayName = "TableFooter";
4482
+ var TableRow = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4483
+ "tr",
4484
+ {
4485
+ ref,
4486
+ className: cn(
4487
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
4488
+ className
4489
+ ),
4490
+ ...props
4491
+ }
4492
+ ));
4493
+ TableRow.displayName = "TableRow";
4494
+ var TableHead = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4495
+ "th",
4496
+ {
4497
+ ref,
4498
+ className: cn(
4499
+ "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
4500
+ className
4501
+ ),
4502
+ ...props
4503
+ }
4504
+ ));
4505
+ TableHead.displayName = "TableHead";
4506
+ var TableCell = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4507
+ "td",
4508
+ {
4509
+ ref,
4510
+ className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
4511
+ ...props
4512
+ }
4513
+ ));
4514
+ TableCell.displayName = "TableCell";
4515
+ var TableCaption = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React36.createElement(
4516
+ "caption",
4517
+ {
4518
+ ref,
4519
+ className: cn("mt-4 text-sm text-muted-foreground", className),
4520
+ ...props
4521
+ }
4522
+ ));
4523
+ TableCaption.displayName = "TableCaption";
4524
+
4525
+ // src/components/UI/tabs.jsx
4526
+ var React37 = __toESM(require("react"));
4527
+ var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"));
4528
+ var Tabs = TabsPrimitive.Root;
4529
+ var TabsList = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
4530
+ TabsPrimitive.List,
4531
+ {
4532
+ ref,
4533
+ className: cn(
4534
+ "inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",
4535
+ className
4536
+ ),
4537
+ ...props
4538
+ }
4539
+ ));
4540
+ TabsList.displayName = TabsPrimitive.List.displayName;
4541
+ var TabsTrigger = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
4542
+ TabsPrimitive.Trigger,
4543
+ {
4544
+ ref,
4545
+ className: cn(
4546
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 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-sm",
4547
+ className
4548
+ ),
4549
+ ...props
4550
+ }
4551
+ ));
4552
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
4553
+ var TabsContent = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React37.createElement(
4554
+ TabsPrimitive.Content,
4555
+ {
4556
+ ref,
4557
+ className: cn(
4558
+ "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
4559
+ className
4560
+ ),
4561
+ ...props
4562
+ }
4563
+ ));
4564
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
4565
+
4566
+ // src/components/UI/textarea.jsx
4567
+ var React38 = __toESM(require("react"));
4568
+ var Textarea = React38.forwardRef(({ className, ...props }, ref) => {
4569
+ return /* @__PURE__ */ React38.createElement(
4570
+ "textarea",
4571
+ {
4572
+ className: cn(
4573
+ "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
4574
+ className
4575
+ ),
4576
+ ref,
4577
+ ...props
4578
+ }
4579
+ );
4580
+ });
4581
+ Textarea.displayName = "Textarea";
4582
+
4583
+ // src/components/UI/toast.jsx
4584
+ var React39 = __toESM(require("react"));
4585
+ var import_sonner = require("sonner");
4586
+ var Toaster = ({ ...props }) => {
4587
+ return /* @__PURE__ */ React39.createElement(
4588
+ import_sonner.Toaster,
4589
+ {
4590
+ className: "toaster group",
4591
+ toastOptions: {
4592
+ classNames: {
4593
+ toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
4594
+ description: "group-[.toast]:text-muted-foreground",
4595
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
4596
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
4597
+ }
4598
+ },
4599
+ ...props
4600
+ }
4601
+ );
4602
+ };
4603
+
4604
+ // src/components/UI/tooltip.jsx
4605
+ var React40 = __toESM(require("react"));
4606
+ var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
4607
+ var TooltipProvider = TooltipPrimitive.Provider;
4608
+ var Tooltip = TooltipPrimitive.Root;
4609
+ var TooltipTrigger = TooltipPrimitive.Trigger;
4610
+ var TooltipContent = React40.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React40.createElement(
4611
+ TooltipPrimitive.Content,
4612
+ {
4613
+ ref,
4614
+ sideOffset,
4615
+ className: cn(
4616
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4617
+ className
4618
+ ),
4619
+ ...props
4620
+ }
4621
+ ));
4622
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4623
+
4624
+ // src/components/UI/typography.jsx
4625
+ var React41 = __toESM(require("react"));
4626
+ var import_class_variance_authority6 = require("class-variance-authority");
4627
+ var headingVariants = (0, import_class_variance_authority6.cva)("scroll-m-20 tracking-tight", {
4628
+ variants: {
4629
+ level: {
4630
+ h1: "text-4xl font-extrabold lg:text-5xl",
4631
+ h2: "text-3xl font-semibold",
4632
+ h3: "text-2xl font-semibold",
4633
+ h4: "text-xl font-semibold",
4634
+ h5: "text-lg font-semibold",
4635
+ h6: "text-base font-semibold"
4636
+ }
4637
+ },
4638
+ defaultVariants: {
4639
+ level: "h2"
4640
+ }
4641
+ });
4642
+ var Heading = React41.forwardRef(({ className, level = "h2", ...props }, ref) => {
4643
+ const Comp = level;
4644
+ return /* @__PURE__ */ React41.createElement(
4645
+ Comp,
4646
+ {
4647
+ ref,
4648
+ className: cn(headingVariants({ level, className })),
4649
+ ...props
4650
+ }
4651
+ );
4652
+ });
4653
+ Heading.displayName = "Heading";
4654
+ var H1 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
4655
+ "h1",
4656
+ {
4657
+ ref,
4658
+ className: cn("scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl", className),
4659
+ ...props
4660
+ }
4661
+ ));
4662
+ H1.displayName = "H1";
4663
+ var H2 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
4664
+ "h2",
4665
+ {
4666
+ ref,
4667
+ className: cn("scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0", className),
4668
+ ...props
4669
+ }
4670
+ ));
4671
+ H2.displayName = "H2";
4672
+ var H3 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
4673
+ "h3",
4674
+ {
4675
+ ref,
4676
+ className: cn("scroll-m-20 text-2xl font-semibold tracking-tight", className),
4677
+ ...props
4678
+ }
4679
+ ));
4680
+ H3.displayName = "H3";
4681
+ var H4 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
4682
+ "h4",
3457
4683
  {
3458
4684
  ref,
3459
4685
  className: cn("scroll-m-20 text-xl font-semibold tracking-tight", className),
@@ -3461,7 +4687,7 @@ var H4 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ Re
3461
4687
  }
3462
4688
  ));
3463
4689
  H4.displayName = "H4";
3464
- var P = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4690
+ var P = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3465
4691
  "p",
3466
4692
  {
3467
4693
  ref,
@@ -3470,7 +4696,7 @@ var P = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ Rea
3470
4696
  }
3471
4697
  ));
3472
4698
  P.displayName = "P";
3473
- var Blockquote = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4699
+ var Blockquote = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3474
4700
  "blockquote",
3475
4701
  {
3476
4702
  ref,
@@ -3479,7 +4705,7 @@ var Blockquote = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
3479
4705
  }
3480
4706
  ));
3481
4707
  Blockquote.displayName = "Blockquote";
3482
- var List2 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4708
+ var List4 = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3483
4709
  "ul",
3484
4710
  {
3485
4711
  ref,
@@ -3487,8 +4713,8 @@ var List2 = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
3487
4713
  ...props
3488
4714
  }
3489
4715
  ));
3490
- List2.displayName = "List";
3491
- var InlineCode = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4716
+ List4.displayName = "List";
4717
+ var InlineCode = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3492
4718
  "code",
3493
4719
  {
3494
4720
  ref,
@@ -3500,7 +4726,7 @@ var InlineCode = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
3500
4726
  }
3501
4727
  ));
3502
4728
  InlineCode.displayName = "InlineCode";
3503
- var Lead = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4729
+ var Lead = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3504
4730
  "p",
3505
4731
  {
3506
4732
  ref,
@@ -3509,7 +4735,7 @@ var Lead = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
3509
4735
  }
3510
4736
  ));
3511
4737
  Lead.displayName = "Lead";
3512
- var Large = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4738
+ var Large = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3513
4739
  "div",
3514
4740
  {
3515
4741
  ref,
@@ -3518,7 +4744,7 @@ var Large = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
3518
4744
  }
3519
4745
  ));
3520
4746
  Large.displayName = "Large";
3521
- var Small = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4747
+ var Small = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3522
4748
  "small",
3523
4749
  {
3524
4750
  ref,
@@ -3527,7 +4753,7 @@ var Small = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
3527
4753
  }
3528
4754
  ));
3529
4755
  Small.displayName = "Small";
3530
- var Muted = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React17.createElement(
4756
+ var Muted = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React41.createElement(
3531
4757
  "p",
3532
4758
  {
3533
4759
  ref,
@@ -5695,9 +6921,23 @@ var isTenantAuthenticated = () => {
5695
6921
  };
5696
6922
  // Annotate the CommonJS export names for ESM import in node:
5697
6923
  0 && (module.exports = {
6924
+ Accordion,
6925
+ AccordionContent,
6926
+ AccordionItem,
6927
+ AccordionTrigger,
6928
+ Alert,
6929
+ AlertDescription,
6930
+ AlertTitle,
5698
6931
  AuthLayout,
5699
6932
  AuthProvider,
6933
+ Avatar,
6934
+ AvatarFallback,
6935
+ AvatarImage,
6936
+ Badge,
5700
6937
  Blockquote,
6938
+ BreadcrumbItem,
6939
+ BreadcrumbLink,
6940
+ Breadcrumbs,
5701
6941
  Button,
5702
6942
  Card,
5703
6943
  CardContent,
@@ -5705,12 +6945,33 @@ var isTenantAuthenticated = () => {
5705
6945
  CardFooter,
5706
6946
  CardHeader,
5707
6947
  CardTitle,
6948
+ Checkbox,
6949
+ Container,
5708
6950
  CustomThemeProvider,
6951
+ Dialog,
6952
+ DialogClose,
6953
+ DialogContent,
6954
+ DialogDescription,
6955
+ DialogFooter,
6956
+ DialogHeader,
6957
+ DialogOverlay,
6958
+ DialogPortal,
6959
+ DialogTitle,
6960
+ DialogTrigger,
5709
6961
  ErrorBoundary,
6962
+ Grid,
6963
+ GridItem,
5710
6964
  H1,
5711
6965
  H2,
5712
6966
  H3,
5713
6967
  H4,
6968
+ HStack,
6969
+ Header,
6970
+ HeaderActions,
6971
+ HeaderBrand,
6972
+ HeaderContainer,
6973
+ HeaderLink,
6974
+ HeaderNav,
5714
6975
  Heading,
5715
6976
  InlineCode,
5716
6977
  Input,
@@ -5718,6 +6979,9 @@ var isTenantAuthenticated = () => {
5718
6979
  Large,
5719
6980
  Lead,
5720
6981
  List,
6982
+ ListItem,
6983
+ ListItemIcon,
6984
+ ListItemText,
5721
6985
  LoadingSpinner,
5722
6986
  ModernCard,
5723
6987
  Muted,
@@ -5731,12 +6995,61 @@ var isTenantAuthenticated = () => {
5731
6995
  P,
5732
6996
  PageHeader,
5733
6997
  PageLayout,
6998
+ Popover,
6999
+ PopoverAnchor,
7000
+ PopoverContent,
7001
+ PopoverTrigger,
7002
+ Progress,
7003
+ Select,
7004
+ SelectContent,
7005
+ SelectGroup,
7006
+ SelectItem,
7007
+ SelectLabel,
7008
+ SelectScrollDownButton,
7009
+ SelectScrollUpButton,
7010
+ SelectSeparator,
7011
+ SelectTrigger,
7012
+ SelectValue,
7013
+ Separator,
7014
+ Sheet,
7015
+ SheetClose,
7016
+ SheetContent,
7017
+ SheetDescription,
7018
+ SheetFooter,
7019
+ SheetHeader,
7020
+ SheetOverlay,
7021
+ SheetPortal,
7022
+ SheetTitle,
7023
+ SheetTrigger,
7024
+ Skeleton,
5734
7025
  Small,
5735
7026
  SocketProvider,
7027
+ Stack,
7028
+ Switch,
7029
+ Table,
7030
+ TableBody,
7031
+ TableCaption,
7032
+ TableCell,
7033
+ TableFooter,
7034
+ TableHead,
7035
+ TableHeader,
7036
+ TableRow,
7037
+ Tabs,
7038
+ TabsContent,
7039
+ TabsList,
7040
+ TabsTrigger,
5736
7041
  TenantLayout,
5737
7042
  TenantThemeProvider,
7043
+ Textarea,
7044
+ Toaster,
7045
+ Tooltip,
7046
+ TooltipContent,
7047
+ TooltipProvider,
7048
+ TooltipTrigger,
7049
+ VStack,
5738
7050
  api,
5739
7051
  auditNotifications,
7052
+ badgeVariants,
5740
7053
  buttonVariants,
5741
7054
  cn,
5742
7055
  createContrastEnhancedComponents,