@caffeinebounce/ui 0.62.3 → 0.63.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.
Files changed (96) hide show
  1. package/README.md +1 -1
  2. package/dist/blog.js +7 -6
  3. package/dist/blog.mjs +2 -1
  4. package/dist/charts.d.cts +1 -1
  5. package/dist/charts.d.ts +1 -1
  6. package/dist/{chunk-6DVWMJ3H.mjs → chunk-2EFVMX6V.mjs} +3 -3
  7. package/dist/{chunk-6ZJCK6KH.js → chunk-375DECW4.js} +31 -31
  8. package/dist/{chunk-PZRI43EZ.js → chunk-46JYKBRX.js} +0 -43
  9. package/dist/chunk-5D55OVD5.js +75 -0
  10. package/dist/{chunk-JORVSG52.js → chunk-663CFAHS.js} +211 -269
  11. package/dist/chunk-6HKJDV43.mjs +48 -0
  12. package/dist/chunk-6NCRGHV3.mjs +64 -0
  13. package/dist/{chunk-OLAAXLXY.mjs → chunk-6QAKQG57.mjs} +4 -4
  14. package/dist/{chunk-N6AFNFZR.mjs → chunk-7ERVZXIN.mjs} +214 -270
  15. package/dist/chunk-APFEP5B7.mjs +100 -0
  16. package/dist/chunk-C3OADNSG.js +348 -0
  17. package/dist/{chunk-GIJQE3JR.js → chunk-DH5Z3ETN.js} +66 -45
  18. package/dist/chunk-DYWZ23QT.mjs +90 -0
  19. package/dist/{chunk-DTVWRRFN.mjs → chunk-E67IR6HU.mjs} +30 -9
  20. package/dist/{chunk-OVNLC5RD.mjs → chunk-EXQSWHLD.mjs} +6 -6
  21. package/dist/{chunk-ZOA7B32D.js → chunk-F35KL6TX.js} +9 -9
  22. package/dist/{chunk-YSLD2HLP.mjs → chunk-FFJC66KO.mjs} +1 -1
  23. package/dist/{chunk-MPZFPU4X.js → chunk-GMBLPQ3I.js} +3 -3
  24. package/dist/chunk-IJFPPLQW.js +50 -0
  25. package/dist/{chunk-BMFQG6RA.mjs → chunk-KJIX6V32.mjs} +107 -1885
  26. package/dist/chunk-LABHD4PU.js +109 -0
  27. package/dist/{chunk-GAIQJCAZ.js → chunk-LT5VD4KR.js} +149 -1953
  28. package/dist/{chunk-7DHKQODW.mjs → chunk-LTLCIRZY.mjs} +256 -474
  29. package/dist/chunk-N5BHXWR3.mjs +34 -0
  30. package/dist/chunk-OCO3Z5YA.js +37 -0
  31. package/dist/chunk-OIJ7XMDV.mjs +71 -0
  32. package/dist/chunk-ORBH4IBC.mjs +316 -0
  33. package/dist/chunk-OWWOAYIY.js +2652 -0
  34. package/dist/chunk-PFHOXDSW.mjs +10 -0
  35. package/dist/chunk-QRS7DJGS.js +103 -0
  36. package/dist/{chunk-NXPEJ2UR.mjs → chunk-R3X4B4JJ.mjs} +53 -6
  37. package/dist/chunk-RM7ACPTM.mjs +2601 -0
  38. package/dist/chunk-RODSGPBB.mjs +75 -0
  39. package/dist/{chunk-T6ZBA6VJ.js → chunk-UHAV34YX.js} +8 -8
  40. package/dist/{chunk-GUSTCU2W.mjs → chunk-ULANYJ7Y.mjs} +1 -59
  41. package/dist/chunk-ULDE7QSN.js +70 -0
  42. package/dist/chunk-UT36VNVZ.mjs +47 -0
  43. package/dist/chunk-UY3H4PKB.js +71 -0
  44. package/dist/{chunk-KB7UXIQZ.mjs → chunk-VIVWFQG5.mjs} +2 -1
  45. package/dist/{chunk-ESZ7CBA2.js → chunk-VKBJ3SGT.js} +6 -5
  46. package/dist/{chunk-UM7WMXIU.js → chunk-W3YOQ5ZD.js} +264 -505
  47. package/dist/{chunk-GHOFYK2E.js → chunk-XGJL6DLV.js} +55 -5
  48. package/dist/chunk-YRIBFIQ5.js +116 -0
  49. package/dist/chunk-ZWWJ3RRA.js +15 -0
  50. package/dist/data-grid.d.cts +241 -0
  51. package/dist/data-grid.d.ts +241 -0
  52. package/dist/data-grid.js +6486 -0
  53. package/dist/data-grid.mjs +6459 -0
  54. package/dist/data-table-CDQBo-Ve.d.ts +818 -0
  55. package/dist/data-table-jLzt6plY.d.cts +818 -0
  56. package/dist/data-table.d.cts +8 -42
  57. package/dist/data-table.d.ts +8 -42
  58. package/dist/data-table.js +61 -187
  59. package/dist/data-table.mjs +11 -5
  60. package/dist/finance.d.cts +534 -0
  61. package/dist/finance.d.ts +534 -0
  62. package/dist/finance.js +188 -0
  63. package/dist/finance.mjs +15 -0
  64. package/dist/forms.js +9 -6
  65. package/dist/forms.mjs +7 -4
  66. package/dist/{hooks-B2jU1GVT.d.ts → hooks-A55E0fgf.d.ts} +3 -2
  67. package/dist/{hooks-8ORd7T1A.d.cts → hooks-Bys_AZPI.d.cts} +3 -2
  68. package/dist/hooks.d.cts +1 -1
  69. package/dist/hooks.d.ts +1 -1
  70. package/dist/hooks.js +26 -23
  71. package/dist/hooks.mjs +6 -3
  72. package/dist/index.d.cts +536 -665
  73. package/dist/index.d.ts +536 -665
  74. package/dist/index.js +3829 -3408
  75. package/dist/index.mjs +2067 -1767
  76. package/dist/layouts.js +25 -25
  77. package/dist/layouts.mjs +4 -4
  78. package/dist/marketing.js +74 -74
  79. package/dist/marketing.mjs +4 -4
  80. package/dist/navigation.js +28 -28
  81. package/dist/navigation.mjs +6 -6
  82. package/dist/primitives.d.cts +72 -109
  83. package/dist/primitives.d.ts +72 -109
  84. package/dist/primitives.js +78 -72
  85. package/dist/primitives.mjs +8 -6
  86. package/dist/settings.js +9 -9
  87. package/dist/settings.mjs +4 -4
  88. package/package.json +17 -1
  89. package/dist/UnifiedTableControls-CG299y9h.d.ts +0 -1233
  90. package/dist/UnifiedTableControls-CIjRpNhy.d.cts +0 -1233
  91. package/dist/chunk-GMBGWOCR.mjs +0 -49
  92. package/dist/chunk-HBLKVQIQ.mjs +0 -23
  93. package/dist/chunk-HMAMMC72.js +0 -26
  94. package/dist/chunk-MVYRNJA6.js +0 -75
  95. /package/dist/{chunk-RVEFPVZF.mjs → chunk-C57MX3BG.mjs} +0 -0
  96. /package/dist/{chunk-C4UT5V3P.js → chunk-OWHI5VGJ.js} +0 -0
@@ -0,0 +1,90 @@
1
+ "use client";
2
+ import { cn } from './chunk-IMKLN273.mjs';
3
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
4
+ import { cva } from 'class-variance-authority';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function Tabs({
8
+ className,
9
+ orientation = "horizontal",
10
+ ...props
11
+ }) {
12
+ return /* @__PURE__ */ jsx(
13
+ TabsPrimitive.Root,
14
+ {
15
+ "data-slot": "tabs",
16
+ "data-orientation": orientation,
17
+ orientation,
18
+ className: cn(
19
+ "group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ );
25
+ }
26
+ var tabsListVariants = cva(
27
+ "group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-9 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none",
28
+ {
29
+ variants: {
30
+ variant: {
31
+ default: "bg-muted",
32
+ line: "gap-1 bg-transparent"
33
+ }
34
+ },
35
+ defaultVariants: {
36
+ variant: "default"
37
+ }
38
+ }
39
+ );
40
+ function TabsList({
41
+ className,
42
+ // Local change over shadcn: consumers were built on the underline look, so
43
+ // "line" stays the default; pass variant="default" for the upstream pill.
44
+ variant = "line",
45
+ ...props
46
+ }) {
47
+ return /* @__PURE__ */ jsx(
48
+ TabsPrimitive.List,
49
+ {
50
+ "data-slot": "tabs-list",
51
+ "data-variant": variant,
52
+ className: cn(tabsListVariants({ variant }), className),
53
+ ...props
54
+ }
55
+ );
56
+ }
57
+ function TabsTrigger({
58
+ className,
59
+ ...props
60
+ }) {
61
+ return /* @__PURE__ */ jsx(
62
+ TabsPrimitive.Trigger,
63
+ {
64
+ "data-slot": "tabs-trigger",
65
+ className: cn(
66
+ "relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
67
+ "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent",
68
+ "data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground",
69
+ "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",
70
+ className
71
+ ),
72
+ ...props
73
+ }
74
+ );
75
+ }
76
+ function TabsContent({
77
+ className,
78
+ ...props
79
+ }) {
80
+ return /* @__PURE__ */ jsx(
81
+ TabsPrimitive.Content,
82
+ {
83
+ "data-slot": "tabs-content",
84
+ className: cn("flex-1 outline-none", className),
85
+ ...props
86
+ }
87
+ );
88
+ }
89
+
90
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-GMBGWOCR.mjs';
3
- import { SidebarTrigger, Sidebar, SidebarHeader, SidebarContent, SidebarSeparator, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarGroupLabel, SidebarFooter, UserAvatarMenu, Avatar, AvatarImage, AvatarFallback, SidebarRail, useSidebar, SidebarProvider, SidebarInset, KeyboardShortcut } from './chunk-NXPEJ2UR.mjs';
4
- import { Spinner } from './chunk-HBLKVQIQ.mjs';
2
+ import { SidebarTrigger, Sidebar, SidebarHeader, SidebarContent, SidebarSeparator, SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuButton, SidebarGroupLabel, SidebarFooter, UserAvatarMenu, Avatar, AvatarImage, AvatarFallback, SidebarRail, useSidebar, SidebarProvider, SidebarInset, KeyboardShortcut } from './chunk-R3X4B4JJ.mjs';
3
+ import { Tabs, TabsList, TabsTrigger, TabsContent } from './chunk-DYWZ23QT.mjs';
4
+ import { SizedSpinner } from './chunk-N5BHXWR3.mjs';
5
5
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem } from './chunk-OFQLWSUR.mjs';
6
6
  import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-YKZEKJMZ.mjs';
7
7
  import { getAvatarGradient } from './chunk-MHZXUOGN.mjs';
@@ -10,7 +10,7 @@ import { normalizeMicrosoftClarityProjectId, getMicrosoftClarityScriptUrl, norma
10
10
  import * as React from 'react';
11
11
  import { useEffect, useState, useCallback, useMemo, useRef } from 'react';
12
12
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
13
- import { ArrowLeft, Monitor, Sun, Moon, CircleHelp, Info, LogOut, ChevronDown, ChevronUp, User, Home, ChevronRight, Search, X, History, Link2 as Link2$1, Loader2, Check, Clock, AlertCircle } from 'lucide-react';
13
+ import { ArrowLeft, Monitor, Sun, Moon, CircleHelp, Info, LogOut, ChevronDown, ChevronUp, User, Home, ChevronRight, Search, X, History, Link2 as Link2$1, Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon, Loader2, Check, Clock, AlertCircle } from 'lucide-react';
14
14
  import Link2 from 'next/link';
15
15
  import { useTheme as useTheme$1 } from 'next-themes';
16
16
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
@@ -757,7 +757,7 @@ function AppSidebar({
757
757
  return null;
758
758
  }) }),
759
759
  /* @__PURE__ */ jsx(SidebarFooter, { children: userLoading ? /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 px-2 py-1.5", children: [
760
- /* @__PURE__ */ jsx(Spinner, { size: "sm" }),
760
+ /* @__PURE__ */ jsx(SizedSpinner, { size: "sm" }),
761
761
  /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: "Loading..." })
762
762
  ] }) }) }) : user ? /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsx(
763
763
  UserAvatarMenu,
@@ -844,7 +844,7 @@ function FloatingUserMenu({
844
844
  }, [menuItems, onSignOut]);
845
845
  if (!isMobile) return null;
846
846
  if (loading) {
847
- return /* @__PURE__ */ jsx("div", { className: "fixed bottom-2 left-2 z-50 flex h-8 w-8 items-center justify-center rounded-full bg-background shadow-md border", children: /* @__PURE__ */ jsx(Spinner, { size: "sm" }) });
847
+ return /* @__PURE__ */ jsx("div", { className: "fixed bottom-2 left-2 z-50 flex h-8 w-8 items-center justify-center rounded-full bg-background shadow-md border", children: /* @__PURE__ */ jsx(SizedSpinner, { size: "sm" }) });
848
848
  }
849
849
  if (!user) return null;
850
850
  const displayName = user.name || user.email || "User";
@@ -1467,9 +1467,30 @@ function MarketingLayout({
1467
1467
  footer
1468
1468
  ] });
1469
1469
  }
1470
- function Toaster({ ...props }) {
1471
- return /* @__PURE__ */ jsx(Toaster$1, { ...props });
1472
- }
1470
+ var Toaster = ({ ...props }) => {
1471
+ const { theme = "system" } = useTheme$1();
1472
+ return /* @__PURE__ */ jsx(
1473
+ Toaster$1,
1474
+ {
1475
+ theme,
1476
+ className: "toaster group",
1477
+ icons: {
1478
+ success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
1479
+ info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
1480
+ warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
1481
+ error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
1482
+ loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
1483
+ },
1484
+ style: {
1485
+ "--normal-bg": "var(--popover)",
1486
+ "--normal-text": "var(--popover-foreground)",
1487
+ "--normal-border": "var(--border)",
1488
+ "--border-radius": "var(--radius)"
1489
+ },
1490
+ ...props
1491
+ }
1492
+ );
1493
+ };
1473
1494
  var themeScript = `
1474
1495
  (function() {
1475
1496
  try {
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { NewsletterSignup } from './chunk-ZFLZA7UP.mjs';
3
- import { Container } from './chunk-RVEFPVZF.mjs';
4
- import { SidebarMenu, SidebarMenuItem, SidebarMenuButton, KeyboardShortcut, useSidebar, Avatar, AvatarImage, AvatarFallback, UserAvatarMenu } from './chunk-NXPEJ2UR.mjs';
5
- import { Separator } from './chunk-ZKUIUE7W.mjs';
6
- import { Spinner } from './chunk-HBLKVQIQ.mjs';
7
3
  import { useScrollDirection } from './chunk-G5TQWWQA.mjs';
4
+ import { Container } from './chunk-C57MX3BG.mjs';
8
5
  import { Button } from './chunk-VBD4Q5LL.mjs';
6
+ import { SidebarMenu, SidebarMenuItem, SidebarMenuButton, KeyboardShortcut, useSidebar, Avatar, AvatarImage, AvatarFallback, UserAvatarMenu } from './chunk-R3X4B4JJ.mjs';
7
+ import { Separator } from './chunk-ZKUIUE7W.mjs';
8
+ import { SizedSpinner } from './chunk-N5BHXWR3.mjs';
9
9
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuLabel, DropdownMenuItem, DropdownMenuSeparator } from './chunk-OFQLWSUR.mjs';
10
10
  import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-YKZEKJMZ.mjs';
11
11
  import { Input } from './chunk-STEP6C4C.mjs';
@@ -394,7 +394,7 @@ function EntitySwitcher({
394
394
  }, [handleKeyDown, enableKeyboardShortcuts]);
395
395
  if (loading) {
396
396
  return /* @__PURE__ */ jsx(SidebarMenu, { className, children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsxs(SidebarMenuButton, { size: "lg", disabled: true, children: [
397
- /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center", children: /* @__PURE__ */ jsx(Spinner, { size: "sm" }) }),
397
+ /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center", children: /* @__PURE__ */ jsx(SizedSpinner, { size: "sm" }) }),
398
398
  /* @__PURE__ */ jsx("div", { className: "grid min-w-0 flex-1 text-left text-sm leading-tight group-data-[collapsible=icon]:hidden", children: /* @__PURE__ */ jsx("span", { className: "truncate text-muted-foreground", children: "Loading..." }) })
399
399
  ] }) }) });
400
400
  }
@@ -1450,7 +1450,7 @@ function NavbarUserMenu({
1450
1450
  return items;
1451
1451
  }, [additionalItems, onSignOut]);
1452
1452
  if (loading) {
1453
- return /* @__PURE__ */ jsx("div", { className: "inline-flex h-8 w-8 items-center justify-center rounded-md", children: /* @__PURE__ */ jsx(Spinner, { size: "sm" }) });
1453
+ return /* @__PURE__ */ jsx("div", { className: "inline-flex h-8 w-8 items-center justify-center rounded-md", children: /* @__PURE__ */ jsx(SizedSpinner, { size: "sm" }) });
1454
1454
  }
1455
1455
  const metadata = user.metadata || {};
1456
1456
  const avatarUrl = profile?.avatarUrl || profile?.avatar_url || metadata.picture || metadata.avatar_url;
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
+ var chunkOWHI5VGJ_js = require('./chunk-OWHI5VGJ.js');
4
5
  var chunkEYJJQVV4_js = require('./chunk-EYJJQVV4.js');
5
6
  var chunk33JR5SYE_js = require('./chunk-33JR5SYE.js');
6
- var chunkMVYRNJA6_js = require('./chunk-MVYRNJA6.js');
7
- var chunkC4UT5V3P_js = require('./chunk-C4UT5V3P.js');
8
- var chunkHMAMMC72_js = require('./chunk-HMAMMC72.js');
9
7
  var chunk6TGV2DNP_js = require('./chunk-6TGV2DNP.js');
8
+ var chunkYRIBFIQ5_js = require('./chunk-YRIBFIQ5.js');
9
+ var chunkOCO3Z5YA_js = require('./chunk-OCO3Z5YA.js');
10
10
  var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
11
11
  var lucideReact = require('lucide-react');
12
12
  var Link = require('next/link');
@@ -81,9 +81,9 @@ function SettingsTabContent({
81
81
  children
82
82
  }) {
83
83
  if (loading) {
84
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMVYRNJA6_js.TabsContent, { value: tabId, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[300px]", children: /* @__PURE__ */ jsxRuntime.jsx(chunkHMAMMC72_js.Spinner, { size: "lg" }) }) });
84
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYRIBFIQ5_js.TabsContent, { value: tabId, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[300px]", children: /* @__PURE__ */ jsxRuntime.jsx(chunkOCO3Z5YA_js.SizedSpinner, { size: "lg" }) }) });
85
85
  }
86
- return /* @__PURE__ */ jsxRuntime.jsx(chunkMVYRNJA6_js.TabsContent, { value: tabId, children });
86
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkYRIBFIQ5_js.TabsContent, { value: tabId, children });
87
87
  }
88
88
  function SettingsTabs({
89
89
  tabs,
@@ -117,7 +117,7 @@ function SettingsTabs({
117
117
  }
118
118
  };
119
119
  return /* @__PURE__ */ jsxRuntime.jsxs(
120
- chunkMVYRNJA6_js.Tabs,
120
+ chunkYRIBFIQ5_js.Tabs,
121
121
  {
122
122
  value: activeTab,
123
123
  onValueChange: handleTabChange,
@@ -125,7 +125,7 @@ function SettingsTabs({
125
125
  className: chunkADIDI7AJ_js.cn("space-y-6", className),
126
126
  children: [
127
127
  /* @__PURE__ */ jsxRuntime.jsx(
128
- chunkMVYRNJA6_js.TabsList,
128
+ chunkYRIBFIQ5_js.TabsList,
129
129
  {
130
130
  className: chunkADIDI7AJ_js.cn(
131
131
  orientation === "vertical" && "flex-col h-auto items-stretch justify-start"
@@ -133,7 +133,7 @@ function SettingsTabs({
133
133
  children: tabs.map((tab) => {
134
134
  const Icon = tab.icon;
135
135
  return /* @__PURE__ */ jsxRuntime.jsxs(
136
- chunkMVYRNJA6_js.TabsTrigger,
136
+ chunkYRIBFIQ5_js.TabsTrigger,
137
137
  {
138
138
  value: tab.id,
139
139
  className: chunkADIDI7AJ_js.cn("gap-2", orientation === "vertical" && "w-full"),
@@ -168,7 +168,7 @@ function SettingsLayout({
168
168
  label: page.label,
169
169
  icon: page.icon
170
170
  }));
171
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkC4UT5V3P_js.Container, { size: containerSize, className, children: [
171
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkOWHI5VGJ_js.Container, { size: containerSize, className, children: [
172
172
  (title || description) && /* @__PURE__ */ jsxRuntime.jsx(PageHeader, { title, description, className: "mb-6" }),
173
173
  /* @__PURE__ */ jsxRuntime.jsx(
174
174
  SettingsTabs,
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { useLocalStorage, useDebounce } from './chunk-KB7UXIQZ.mjs';
2
+ import { useLocalStorage, useDebounce } from './chunk-VIVWFQG5.mjs';
3
3
  import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-YKZEKJMZ.mjs';
4
4
  import { cn } from './chunk-IMKLN273.mjs';
5
5
  import { useErrorLoggerSafe } from '@caffeinebounce/logger/client';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkESZ7CBA2_js = require('./chunk-ESZ7CBA2.js');
4
+ var chunkVKBJ3SGT_js = require('./chunk-VKBJ3SGT.js');
5
5
  var chunkSORWLKOK_js = require('./chunk-SORWLKOK.js');
6
6
  var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
7
7
  var client = require('@caffeinebounce/logger/client');
@@ -31,11 +31,11 @@ function FormWizard({
31
31
  const isFirstStep = currentStep === 0;
32
32
  const isLastStep = currentStep === totalSteps - 1;
33
33
  const { logError } = client.useErrorLoggerSafe();
34
- const [storedValue, setStoredValue, , isLoaded] = chunkESZ7CBA2_js.useLocalStorage(
34
+ const [storedValue, setStoredValue, , isLoaded] = chunkVKBJ3SGT_js.useLocalStorage(
35
35
  persistKey,
36
36
  null
37
37
  );
38
- const debouncedData = chunkESZ7CBA2_js.useDebounce(formData, 500);
38
+ const debouncedData = chunkVKBJ3SGT_js.useDebounce(formData, 500);
39
39
  const [hasRestored, setHasRestored] = react.useState(false);
40
40
  const isRestoring = react.useRef(false);
41
41
  const formDataRef = react.useRef(formData);
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
4
+ var classVarianceAuthority = require('class-variance-authority');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var badgeVariants = classVarianceAuthority.cva(
8
+ "inline-flex items-center border font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
13
+ secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
14
+ destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
15
+ outline: "text-foreground",
16
+ success: "border-transparent bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",
17
+ warning: "border-transparent bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400",
18
+ muted: "border-transparent bg-muted text-muted-foreground"
19
+ },
20
+ shape: {
21
+ pill: "rounded-full",
22
+ rounded: "rounded-md",
23
+ square: "rounded-none"
24
+ },
25
+ size: {
26
+ sm: "px-1 text-[9px]",
27
+ default: "px-1.5 text-[10px]",
28
+ lg: "px-2 py-0.5 text-xs"
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ variant: "default",
33
+ shape: "pill",
34
+ size: "default"
35
+ }
36
+ }
37
+ );
38
+ function Badge({ className, variant, shape, size, ...props }) {
39
+ return /* @__PURE__ */ jsxRuntime.jsx(
40
+ "div",
41
+ {
42
+ "data-slot": "badge",
43
+ className: chunkADIDI7AJ_js.cn(badgeVariants({ variant, shape, size }), className),
44
+ ...props
45
+ }
46
+ );
47
+ }
48
+
49
+ exports.Badge = Badge;
50
+ exports.badgeVariants = badgeVariants;