@propknot/shared-ui 1.0.26 → 1.1.0

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