@cupcodev/ui 5.1.2 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{charts-citXBvHw.d.cts → charts-eumneI2w.d.cts} +1 -1
- package/dist/{charts-citXBvHw.d.ts → charts-eumneI2w.d.ts} +1 -1
- package/dist/charts.cjs +2 -1
- package/dist/charts.d.cts +1 -1
- package/dist/charts.d.ts +1 -1
- package/dist/charts.js +2 -1
- package/dist/index.cjs +1427 -768
- package/dist/index.d.cts +29 -5
- package/dist/index.d.ts +29 -5
- package/dist/index.js +1348 -688
- package/dist/styles.css +3 -1
- package/package.json +1 -1
- package/styles/global.css +266 -143
- package/styles/tokens.css +21 -0
package/dist/index.cjs
CHANGED
|
@@ -51,6 +51,7 @@ __export(src_exports, {
|
|
|
51
51
|
AlertDialogTitle: () => AlertDialogTitle,
|
|
52
52
|
AlertDialogTrigger: () => AlertDialogTrigger,
|
|
53
53
|
AlertTitle: () => AlertTitle,
|
|
54
|
+
AnimatedThemeToggle: () => ThemeToggle,
|
|
54
55
|
AppSidebar: () => AppSidebar,
|
|
55
56
|
AspectRatio: () => AspectRatio,
|
|
56
57
|
AuthProvider: () => AuthProvider,
|
|
@@ -339,7 +340,9 @@ __export(src_exports, {
|
|
|
339
340
|
TelescupVideo: () => TelescupVideo,
|
|
340
341
|
Textarea: () => Textarea,
|
|
341
342
|
TextareaField: () => TextareaField,
|
|
342
|
-
|
|
343
|
+
ThemeProvider: () => ThemeProvider,
|
|
344
|
+
ThemeScript: () => ThemeScript,
|
|
345
|
+
ThemeToggle: () => ThemeToggle2,
|
|
343
346
|
Timeline: () => Timeline,
|
|
344
347
|
Toast: () => Toast,
|
|
345
348
|
ToastAction: () => ToastAction,
|
|
@@ -399,6 +402,7 @@ __export(src_exports, {
|
|
|
399
402
|
toast: () => toast,
|
|
400
403
|
toggleVariants: () => toggleVariants,
|
|
401
404
|
useActiveSection: () => useActiveSection,
|
|
405
|
+
useAppTheme: () => useAppTheme,
|
|
402
406
|
useAuth: () => useAuth,
|
|
403
407
|
useBreakpoint: () => useBreakpoint,
|
|
404
408
|
useFormField: () => useFormField,
|
|
@@ -2315,10 +2319,10 @@ var DockWrapper_default = DockWrapper;
|
|
|
2315
2319
|
|
|
2316
2320
|
// src/components/layout/main-layout.tsx
|
|
2317
2321
|
var import_lucide_react11 = require("lucide-react");
|
|
2318
|
-
var
|
|
2322
|
+
var import_react20 = require("react");
|
|
2319
2323
|
|
|
2320
2324
|
// src/components/cupcode/MainNavbar.tsx
|
|
2321
|
-
var
|
|
2325
|
+
var import_react18 = require("react");
|
|
2322
2326
|
|
|
2323
2327
|
// src/components/cupcode/NavbarCupcode.tsx
|
|
2324
2328
|
var React5 = __toESM(require("react"), 1);
|
|
@@ -2389,23 +2393,23 @@ var NavbarCupcode = ({
|
|
|
2389
2393
|
{
|
|
2390
2394
|
ref: navRef,
|
|
2391
2395
|
className: cn(
|
|
2392
|
-
"fixed left-
|
|
2393
|
-
"
|
|
2396
|
+
"fixed left-[var(--cc-navbar-side-offset-mobile)] right-[var(--cc-navbar-side-offset-mobile)] top-[calc(max(env(safe-area-inset-top),0px)+var(--cc-navbar-top-offset,8px))] z-[200] overflow-hidden rounded-[var(--cc-navbar-radius)]",
|
|
2397
|
+
"border border-[hsl(var(--cc-navbar-border))] bg-[hsl(var(--cc-navbar-bg))] shadow-[var(--cc-navbar-shadow)] backdrop-blur-[var(--glass-blur-md)] md:left-[var(--cc-navbar-side-offset-desktop)] md:right-[var(--cc-navbar-side-offset-desktop)]",
|
|
2394
2398
|
className
|
|
2395
2399
|
),
|
|
2396
2400
|
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "cc-container", children: [
|
|
2397
|
-
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "hidden h-
|
|
2401
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "hidden h-[var(--cc-navbar-height-desktop)] items-center md:flex", children: [
|
|
2398
2402
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex-shrink-0", !hasItems && "mr-auto"), children: logo }),
|
|
2399
2403
|
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "mx-auto flex items-center space-x-8", children: items.map((item, index) => {
|
|
2400
2404
|
const key = `${item.label}-${index}`;
|
|
2401
2405
|
const isActive = item.isActive;
|
|
2402
2406
|
const baseClasses = cn(
|
|
2403
2407
|
"flex items-center gap-2 text-sm font-semibold text-foreground",
|
|
2404
|
-
"hover:text-
|
|
2408
|
+
"hover:text-[hsl(var(--cc-navbar-link-hover))] transition-colors duration-200",
|
|
2405
2409
|
"relative after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-0",
|
|
2406
|
-
"after:bg-
|
|
2410
|
+
"after:bg-[hsl(var(--cc-navbar-link-hover))] after:transition-all after:duration-300",
|
|
2407
2411
|
"hover:after:w-full",
|
|
2408
|
-
isActive && "text-
|
|
2412
|
+
isActive && "text-[hsl(var(--cc-navbar-link-active))] after:w-full after:bg-[hsl(var(--cc-navbar-link-active))]"
|
|
2409
2413
|
);
|
|
2410
2414
|
const handleClick = (event) => {
|
|
2411
2415
|
var _a78;
|
|
@@ -2444,7 +2448,7 @@ var NavbarCupcode = ({
|
|
|
2444
2448
|
}) }) : null,
|
|
2445
2449
|
actions && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("flex", !hasItems && "ml-auto"), children: actions })
|
|
2446
2450
|
] }),
|
|
2447
|
-
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative flex h-
|
|
2451
|
+
hasItems ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "relative flex h-[var(--cc-navbar-height-mobile)] items-center md:hidden", children: [
|
|
2448
2452
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2449
2453
|
"button",
|
|
2450
2454
|
{
|
|
@@ -2459,7 +2463,7 @@ var NavbarCupcode = ({
|
|
|
2459
2463
|
),
|
|
2460
2464
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "pointer-events-none absolute left-1/2 top-1/2 z-0 w-[min(62vw,18rem)] -translate-x-1/2 -translate-y-1/2 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex items-center justify-center", children: logo }) }),
|
|
2461
2465
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "z-10 ml-auto flex items-center", children: actions != null ? actions : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex h-10 w-10", "aria-hidden": "true" }) })
|
|
2462
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex h-
|
|
2466
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex h-[var(--cc-navbar-height-mobile)] items-center justify-between gap-3 md:hidden", children: [
|
|
2463
2467
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "min-w-0 shrink", children: logo }),
|
|
2464
2468
|
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "flex items-center", children: actions != null ? actions : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "inline-flex h-10 w-10", "aria-hidden": "true" }) })
|
|
2465
2469
|
] })
|
|
@@ -2482,7 +2486,7 @@ var NavbarCupcode = ({
|
|
|
2482
2486
|
id: mobileMenuId,
|
|
2483
2487
|
ref: mobileDrawerRef,
|
|
2484
2488
|
className: cn(
|
|
2485
|
-
"
|
|
2489
|
+
"absolute inset-y-0 left-0 z-10 w-[min(84vw,22rem)] border-r border-r-[hsl(var(--cc-navbar-drawer-border))] bg-[hsl(var(--cc-navbar-drawer-bg))] px-3 pb-[max(env(safe-area-inset-bottom),0.75rem)] pt-[max(env(safe-area-inset-top),0.9rem)] text-foreground shadow-[var(--elevation-5)] backdrop-blur-[var(--glass-blur-lg)]",
|
|
2486
2490
|
"data-[state=open]:animate-in data-[state=open]:slide-in-from-left data-[state=open]:duration-300"
|
|
2487
2491
|
),
|
|
2488
2492
|
"data-state": "open",
|
|
@@ -2505,7 +2509,7 @@ var NavbarCupcode = ({
|
|
|
2505
2509
|
const isActive = item.isActive;
|
|
2506
2510
|
const classes = cn(
|
|
2507
2511
|
"flex min-h-11 items-center gap-2 rounded-lg px-4 py-2.5 text-sm font-semibold text-foreground transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
2508
|
-
isActive && "text-
|
|
2512
|
+
isActive && "text-[hsl(var(--cc-navbar-link-active))]"
|
|
2509
2513
|
);
|
|
2510
2514
|
const handleClick = (event) => {
|
|
2511
2515
|
var _a78;
|
|
@@ -2759,7 +2763,7 @@ var JellyButton = (0, import_react9.forwardRef)(
|
|
|
2759
2763
|
md: "cc-blob-cta--md",
|
|
2760
2764
|
lg: "cc-blob-cta--lg"
|
|
2761
2765
|
}[size];
|
|
2762
|
-
const variantClass = variant === "
|
|
2766
|
+
const variantClass = variant === "primary" || variant === "original-green" ? "cc-blob-cta--primary" : variant === "secondary" || variant === "original-pink" ? "cc-blob-cta--secondary" : "cc-blob-cta--half";
|
|
2763
2767
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2764
2768
|
"button",
|
|
2765
2769
|
{
|
|
@@ -2979,7 +2983,8 @@ var buttonVariants = (0, import_class_variance_authority.cva)(
|
|
|
2979
2983
|
{
|
|
2980
2984
|
variants: {
|
|
2981
2985
|
variant: {
|
|
2982
|
-
default: "bg-
|
|
2986
|
+
default: "bg-[#18b765] text-white hover:bg-[#149355]",
|
|
2987
|
+
primary: "bg-[#18b765] text-white hover:bg-[#149355]",
|
|
2983
2988
|
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
|
|
2984
2989
|
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
|
|
2985
2990
|
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
@@ -10402,7 +10407,7 @@ var UserMenuCupcode = ({
|
|
|
10402
10407
|
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: cn("h-11 w-11 animate-pulse rounded-full bg-muted/70", className) });
|
|
10403
10408
|
}
|
|
10404
10409
|
if (!isAuthenticated) {
|
|
10405
|
-
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(JellyButtonOriginal, { label: loginLabel, size: "sm", className, onClick: onLogin });
|
|
10410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(JellyButtonOriginal, { label: loginLabel, color: "green", size: "sm", className, onClick: onLogin });
|
|
10406
10411
|
}
|
|
10407
10412
|
const customPanel = panels == null ? void 0 : panels[activeTab];
|
|
10408
10413
|
const hasCustomPanel = typeof customPanel !== "undefined";
|
|
@@ -22249,10 +22254,490 @@ var Toaster = ({ theme, ...props }) => {
|
|
|
22249
22254
|
);
|
|
22250
22255
|
};
|
|
22251
22256
|
|
|
22257
|
+
// src/components/use-app-theme.ts
|
|
22258
|
+
var import_react17 = require("react");
|
|
22259
|
+
|
|
22260
|
+
// src/components/theme-context.ts
|
|
22261
|
+
var import_react16 = require("react");
|
|
22262
|
+
var ThemeContext = (0, import_react16.createContext)(null);
|
|
22263
|
+
|
|
22264
|
+
// src/components/use-app-theme.ts
|
|
22265
|
+
function useAppTheme() {
|
|
22266
|
+
const context = (0, import_react17.useContext)(ThemeContext);
|
|
22267
|
+
if (!context) {
|
|
22268
|
+
throw new Error("useAppTheme must be used inside ThemeProvider");
|
|
22269
|
+
}
|
|
22270
|
+
return context;
|
|
22271
|
+
}
|
|
22272
|
+
|
|
22273
|
+
// src/components/theme-toggle.tsx
|
|
22274
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
22275
|
+
function ThemeToggle({ className }) {
|
|
22276
|
+
const { theme, toggleTheme } = useAppTheme();
|
|
22277
|
+
const isDark = theme === "dark";
|
|
22278
|
+
const handleClick = (event) => {
|
|
22279
|
+
toggleTheme({
|
|
22280
|
+
x: event.clientX,
|
|
22281
|
+
y: event.clientY
|
|
22282
|
+
});
|
|
22283
|
+
};
|
|
22284
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
|
|
22285
|
+
"button",
|
|
22286
|
+
{
|
|
22287
|
+
type: "button",
|
|
22288
|
+
onClick: handleClick,
|
|
22289
|
+
"aria-label": isDark ? "Ativar modo claro" : "Ativar modo escuro",
|
|
22290
|
+
"aria-pressed": isDark,
|
|
22291
|
+
title: isDark ? "Ativar modo claro" : "Ativar modo escuro",
|
|
22292
|
+
className: ["cc-theme-toggle", isDark ? "is-dark" : "", className].filter(Boolean).join(" "),
|
|
22293
|
+
children: [
|
|
22294
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "track", children: [
|
|
22295
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "light-bg", children: [
|
|
22296
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-orb light-orb-1" }),
|
|
22297
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-orb light-orb-2" }),
|
|
22298
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-sweep" }),
|
|
22299
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "light-veil" })
|
|
22300
|
+
] }),
|
|
22301
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-1" }),
|
|
22302
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-2" }),
|
|
22303
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "stars stars-3" }),
|
|
22304
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "cloud cloud-1" }),
|
|
22305
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "cloud cloud-2" }),
|
|
22306
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "thumb", children: [
|
|
22307
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "sun-core" }),
|
|
22308
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "moon-cut" })
|
|
22309
|
+
] })
|
|
22310
|
+
] }),
|
|
22311
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("style", { children: `
|
|
22312
|
+
:root {
|
|
22313
|
+
--toggle-width: 76px;
|
|
22314
|
+
--toggle-height: 42px;
|
|
22315
|
+
--thumb-size: 30px;
|
|
22316
|
+
--toggle-thumb-offset: 34px;
|
|
22317
|
+
--duration: 560ms;
|
|
22318
|
+
--ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
22319
|
+
--dark-top: #7c5bbb;
|
|
22320
|
+
--dark-bottom: #3a2a58;
|
|
22321
|
+
}
|
|
22322
|
+
|
|
22323
|
+
.cc-theme-toggle {
|
|
22324
|
+
border: 0;
|
|
22325
|
+
background: transparent;
|
|
22326
|
+
padding: 0;
|
|
22327
|
+
cursor: pointer;
|
|
22328
|
+
display: inline-flex;
|
|
22329
|
+
align-items: center;
|
|
22330
|
+
justify-content: center;
|
|
22331
|
+
flex-shrink: 0;
|
|
22332
|
+
}
|
|
22333
|
+
|
|
22334
|
+
.cc-theme-toggle .track {
|
|
22335
|
+
position: relative;
|
|
22336
|
+
width: var(--toggle-width);
|
|
22337
|
+
height: var(--toggle-height);
|
|
22338
|
+
border-radius: 999px;
|
|
22339
|
+
overflow: hidden;
|
|
22340
|
+
background: linear-gradient(180deg, #f7f6fb 0%, #f1edf9 55%, #e6def5 100%);
|
|
22341
|
+
box-shadow:
|
|
22342
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.92),
|
|
22343
|
+
inset 0 0 0 1px rgba(232, 219, 255, 0.85),
|
|
22344
|
+
0 0 0 1px rgba(227, 182, 255, 0.45),
|
|
22345
|
+
0 8px 24px rgba(134, 102, 182, 0.18);
|
|
22346
|
+
transition:
|
|
22347
|
+
background var(--duration) var(--ease),
|
|
22348
|
+
box-shadow var(--duration) var(--ease);
|
|
22349
|
+
}
|
|
22350
|
+
|
|
22351
|
+
.cc-theme-toggle .track::before {
|
|
22352
|
+
content: "";
|
|
22353
|
+
position: absolute;
|
|
22354
|
+
inset: 0;
|
|
22355
|
+
border-radius: inherit;
|
|
22356
|
+
padding: 1px;
|
|
22357
|
+
background: linear-gradient(
|
|
22358
|
+
90deg,
|
|
22359
|
+
rgba(200, 106, 232, 0.95) 0%,
|
|
22360
|
+
rgba(199, 166, 255, 0.95) 38%,
|
|
22361
|
+
rgba(239, 233, 255, 0.95) 68%,
|
|
22362
|
+
rgba(243, 123, 175, 0.95) 100%
|
|
22363
|
+
);
|
|
22364
|
+
-webkit-mask:
|
|
22365
|
+
linear-gradient(#000 0 0) content-box,
|
|
22366
|
+
linear-gradient(#000 0 0);
|
|
22367
|
+
-webkit-mask-composite: xor;
|
|
22368
|
+
mask-composite: exclude;
|
|
22369
|
+
pointer-events: none;
|
|
22370
|
+
}
|
|
22371
|
+
|
|
22372
|
+
.cc-theme-toggle .track::after {
|
|
22373
|
+
content: "";
|
|
22374
|
+
position: absolute;
|
|
22375
|
+
inset: 4px;
|
|
22376
|
+
border-radius: inherit;
|
|
22377
|
+
border: 1px solid rgba(255, 255, 255, 0.72);
|
|
22378
|
+
box-shadow: inset 0 0 0 1px rgba(217, 204, 248, 0.38);
|
|
22379
|
+
pointer-events: none;
|
|
22380
|
+
}
|
|
22381
|
+
|
|
22382
|
+
.cc-theme-toggle .light-bg {
|
|
22383
|
+
position: absolute;
|
|
22384
|
+
inset: 0;
|
|
22385
|
+
border-radius: inherit;
|
|
22386
|
+
overflow: hidden;
|
|
22387
|
+
opacity: 1;
|
|
22388
|
+
transition: opacity 240ms ease;
|
|
22389
|
+
z-index: 0;
|
|
22390
|
+
}
|
|
22391
|
+
|
|
22392
|
+
.cc-theme-toggle .light-orb {
|
|
22393
|
+
position: absolute;
|
|
22394
|
+
border-radius: 999px;
|
|
22395
|
+
filter: blur(10px);
|
|
22396
|
+
will-change: transform, opacity;
|
|
22397
|
+
}
|
|
22398
|
+
|
|
22399
|
+
.cc-theme-toggle .light-orb-1 {
|
|
22400
|
+
width: 48px;
|
|
22401
|
+
height: 28px;
|
|
22402
|
+
left: -8px;
|
|
22403
|
+
bottom: -1px;
|
|
22404
|
+
background: radial-gradient(
|
|
22405
|
+
ellipse at center,
|
|
22406
|
+
rgba(241, 138, 195, 0.58) 0%,
|
|
22407
|
+
rgba(232, 167, 208, 0.24) 58%,
|
|
22408
|
+
rgba(255, 255, 255, 0) 100%
|
|
22409
|
+
);
|
|
22410
|
+
animation: cc-theme-light-flow-pink 6.4s ease-in-out infinite;
|
|
22411
|
+
}
|
|
22412
|
+
|
|
22413
|
+
.cc-theme-toggle .light-orb-2 {
|
|
22414
|
+
width: 52px;
|
|
22415
|
+
height: 30px;
|
|
22416
|
+
right: -10px;
|
|
22417
|
+
top: -3px;
|
|
22418
|
+
background: radial-gradient(
|
|
22419
|
+
ellipse at center,
|
|
22420
|
+
rgba(200, 141, 255, 0.34) 0%,
|
|
22421
|
+
rgba(217, 184, 255, 0.14) 60%,
|
|
22422
|
+
rgba(255, 255, 255, 0) 100%
|
|
22423
|
+
);
|
|
22424
|
+
animation: cc-theme-light-flow-purple 6.4s ease-in-out infinite;
|
|
22425
|
+
}
|
|
22426
|
+
|
|
22427
|
+
.cc-theme-toggle .light-sweep {
|
|
22428
|
+
position: absolute;
|
|
22429
|
+
left: -44px;
|
|
22430
|
+
bottom: 5px;
|
|
22431
|
+
width: 42px;
|
|
22432
|
+
height: 4px;
|
|
22433
|
+
border-radius: 999px;
|
|
22434
|
+
background: linear-gradient(
|
|
22435
|
+
90deg,
|
|
22436
|
+
rgba(255, 122, 200, 0) 0%,
|
|
22437
|
+
rgba(217, 108, 255, 0.65) 35%,
|
|
22438
|
+
rgba(183, 124, 255, 0.8) 70%,
|
|
22439
|
+
rgba(255, 255, 255, 0) 100%
|
|
22440
|
+
);
|
|
22441
|
+
filter: blur(2px);
|
|
22442
|
+
opacity: 0.9;
|
|
22443
|
+
animation: cc-theme-light-sweep 4.3s linear infinite;
|
|
22444
|
+
}
|
|
22445
|
+
|
|
22446
|
+
.cc-theme-toggle .light-veil {
|
|
22447
|
+
position: absolute;
|
|
22448
|
+
inset: 0;
|
|
22449
|
+
background: rgba(255, 255, 255, 0.16);
|
|
22450
|
+
animation: cc-theme-light-veil 5.8s ease-in-out infinite;
|
|
22451
|
+
}
|
|
22452
|
+
|
|
22453
|
+
.cc-theme-toggle.is-dark .track {
|
|
22454
|
+
background: linear-gradient(180deg, var(--dark-top) 0%, var(--dark-bottom) 100%);
|
|
22455
|
+
box-shadow:
|
|
22456
|
+
inset 0 2px 8px rgba(255, 255, 255, 0.06),
|
|
22457
|
+
inset 0 -4px 12px rgba(0, 0, 0, 0.28),
|
|
22458
|
+
0 8px 24px rgba(58, 42, 88, 0.3);
|
|
22459
|
+
}
|
|
22460
|
+
|
|
22461
|
+
.cc-theme-toggle.is-dark .track::before,
|
|
22462
|
+
.cc-theme-toggle.is-dark .track::after,
|
|
22463
|
+
.cc-theme-toggle.is-dark .light-bg {
|
|
22464
|
+
opacity: 0;
|
|
22465
|
+
}
|
|
22466
|
+
|
|
22467
|
+
.cc-theme-toggle .thumb {
|
|
22468
|
+
position: absolute;
|
|
22469
|
+
top: 6px;
|
|
22470
|
+
left: 6px;
|
|
22471
|
+
width: var(--thumb-size);
|
|
22472
|
+
height: var(--thumb-size);
|
|
22473
|
+
border-radius: 50%;
|
|
22474
|
+
background: linear-gradient(180deg, #ffd76a 0%, #ffb238 100%);
|
|
22475
|
+
box-shadow:
|
|
22476
|
+
0 4px 10px rgba(255, 176, 56, 0.35),
|
|
22477
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.5);
|
|
22478
|
+
transition:
|
|
22479
|
+
transform var(--duration) var(--ease),
|
|
22480
|
+
background var(--duration) var(--ease),
|
|
22481
|
+
box-shadow var(--duration) var(--ease);
|
|
22482
|
+
z-index: 3;
|
|
22483
|
+
overflow: hidden;
|
|
22484
|
+
}
|
|
22485
|
+
|
|
22486
|
+
.cc-theme-toggle.is-dark .thumb {
|
|
22487
|
+
transform: translateX(var(--toggle-thumb-offset));
|
|
22488
|
+
background: linear-gradient(180deg, #f5f7ff 0%, #cfd8ef 100%);
|
|
22489
|
+
box-shadow:
|
|
22490
|
+
0 4px 12px rgba(194, 208, 255, 0.25),
|
|
22491
|
+
inset 0 2px 4px rgba(255, 255, 255, 0.8);
|
|
22492
|
+
}
|
|
22493
|
+
|
|
22494
|
+
.cc-theme-toggle .sun-core {
|
|
22495
|
+
position: absolute;
|
|
22496
|
+
inset: 0;
|
|
22497
|
+
border-radius: 50%;
|
|
22498
|
+
}
|
|
22499
|
+
|
|
22500
|
+
.cc-theme-toggle .moon-cut {
|
|
22501
|
+
position: absolute;
|
|
22502
|
+
width: 22px;
|
|
22503
|
+
height: 22px;
|
|
22504
|
+
border-radius: 50%;
|
|
22505
|
+
background: linear-gradient(180deg, var(--dark-top) 0%, var(--dark-bottom) 100%);
|
|
22506
|
+
top: 4px;
|
|
22507
|
+
left: 12px;
|
|
22508
|
+
transform: scale(0.2);
|
|
22509
|
+
opacity: 0;
|
|
22510
|
+
transition:
|
|
22511
|
+
transform var(--duration) var(--ease),
|
|
22512
|
+
opacity calc(var(--duration) * 0.8) var(--ease);
|
|
22513
|
+
}
|
|
22514
|
+
|
|
22515
|
+
.cc-theme-toggle.is-dark .moon-cut {
|
|
22516
|
+
transform: scale(1);
|
|
22517
|
+
opacity: 1;
|
|
22518
|
+
}
|
|
22519
|
+
|
|
22520
|
+
.cc-theme-toggle .stars {
|
|
22521
|
+
position: absolute;
|
|
22522
|
+
border-radius: 50%;
|
|
22523
|
+
background: white;
|
|
22524
|
+
opacity: 0;
|
|
22525
|
+
transform: scale(0.9);
|
|
22526
|
+
z-index: 1;
|
|
22527
|
+
}
|
|
22528
|
+
|
|
22529
|
+
.cc-theme-toggle .stars::after {
|
|
22530
|
+
content: "";
|
|
22531
|
+
position: absolute;
|
|
22532
|
+
inset: -3px;
|
|
22533
|
+
border-radius: 50%;
|
|
22534
|
+
background: rgba(255, 255, 255, 0.18);
|
|
22535
|
+
filter: blur(3px);
|
|
22536
|
+
}
|
|
22537
|
+
|
|
22538
|
+
.cc-theme-toggle .stars-1 {
|
|
22539
|
+
width: 4px;
|
|
22540
|
+
height: 4px;
|
|
22541
|
+
top: 9px;
|
|
22542
|
+
left: 14px;
|
|
22543
|
+
animation: cc-theme-star-blink-1 1.9s ease-in-out infinite;
|
|
22544
|
+
}
|
|
22545
|
+
|
|
22546
|
+
.cc-theme-toggle .stars-2 {
|
|
22547
|
+
width: 4px;
|
|
22548
|
+
height: 4px;
|
|
22549
|
+
top: 15px;
|
|
22550
|
+
left: 26px;
|
|
22551
|
+
animation: cc-theme-star-blink-2 2.3s ease-in-out infinite;
|
|
22552
|
+
}
|
|
22553
|
+
|
|
22554
|
+
.cc-theme-toggle .stars-3 {
|
|
22555
|
+
width: 3px;
|
|
22556
|
+
height: 3px;
|
|
22557
|
+
top: 26px;
|
|
22558
|
+
left: 20px;
|
|
22559
|
+
animation: cc-theme-star-blink-3 1.7s ease-in-out infinite;
|
|
22560
|
+
}
|
|
22561
|
+
|
|
22562
|
+
.cc-theme-toggle:not(.is-dark) .stars {
|
|
22563
|
+
opacity: 0;
|
|
22564
|
+
animation-play-state: paused;
|
|
22565
|
+
}
|
|
22566
|
+
|
|
22567
|
+
.cc-theme-toggle.is-dark .stars {
|
|
22568
|
+
animation-play-state: running;
|
|
22569
|
+
}
|
|
22570
|
+
|
|
22571
|
+
.cc-theme-toggle .cloud {
|
|
22572
|
+
position: absolute;
|
|
22573
|
+
background: #fff;
|
|
22574
|
+
border-radius: 999px;
|
|
22575
|
+
transition: opacity 320ms ease;
|
|
22576
|
+
will-change: transform;
|
|
22577
|
+
}
|
|
22578
|
+
|
|
22579
|
+
.cc-theme-toggle .cloud::before,
|
|
22580
|
+
.cc-theme-toggle .cloud::after {
|
|
22581
|
+
content: "";
|
|
22582
|
+
position: absolute;
|
|
22583
|
+
background: inherit;
|
|
22584
|
+
border-radius: 50%;
|
|
22585
|
+
}
|
|
22586
|
+
|
|
22587
|
+
.cc-theme-toggle .cloud-1 {
|
|
22588
|
+
width: 6px;
|
|
22589
|
+
height: 2.5px;
|
|
22590
|
+
left: 58px;
|
|
22591
|
+
top: 11px;
|
|
22592
|
+
box-shadow: 3.5px 0 0 0 #fff;
|
|
22593
|
+
z-index: 2;
|
|
22594
|
+
animation: cc-theme-cloud-float-small 4.8s ease-in-out infinite;
|
|
22595
|
+
}
|
|
22596
|
+
|
|
22597
|
+
.cc-theme-toggle .cloud-1::before {
|
|
22598
|
+
width: 3px;
|
|
22599
|
+
height: 3px;
|
|
22600
|
+
left: 0.5px;
|
|
22601
|
+
top: -1.5px;
|
|
22602
|
+
}
|
|
22603
|
+
|
|
22604
|
+
.cc-theme-toggle .cloud-1::after {
|
|
22605
|
+
width: 4px;
|
|
22606
|
+
height: 4px;
|
|
22607
|
+
left: 2.5px;
|
|
22608
|
+
top: -2.5px;
|
|
22609
|
+
}
|
|
22610
|
+
|
|
22611
|
+
.cc-theme-toggle .cloud-2 {
|
|
22612
|
+
width: 18px;
|
|
22613
|
+
height: 7px;
|
|
22614
|
+
left: 40px;
|
|
22615
|
+
top: 23px;
|
|
22616
|
+
box-shadow: 12px 0 0 0 #fff;
|
|
22617
|
+
z-index: 2;
|
|
22618
|
+
animation: cc-theme-cloud-float-large 9.6s ease-in-out infinite;
|
|
22619
|
+
}
|
|
22620
|
+
|
|
22621
|
+
.cc-theme-toggle .cloud-2::before {
|
|
22622
|
+
width: 10px;
|
|
22623
|
+
height: 10px;
|
|
22624
|
+
left: 2px;
|
|
22625
|
+
top: -5px;
|
|
22626
|
+
}
|
|
22627
|
+
|
|
22628
|
+
.cc-theme-toggle .cloud-2::after {
|
|
22629
|
+
width: 13px;
|
|
22630
|
+
height: 13px;
|
|
22631
|
+
left: 9px;
|
|
22632
|
+
top: -9px;
|
|
22633
|
+
}
|
|
22634
|
+
|
|
22635
|
+
.cc-theme-toggle.is-dark .cloud {
|
|
22636
|
+
opacity: 0;
|
|
22637
|
+
animation-play-state: paused;
|
|
22638
|
+
}
|
|
22639
|
+
|
|
22640
|
+
.cc-theme-toggle:focus-visible .track {
|
|
22641
|
+
outline: 3px solid rgba(99, 102, 241, 0.45);
|
|
22642
|
+
outline-offset: 4px;
|
|
22643
|
+
}
|
|
22644
|
+
|
|
22645
|
+
@keyframes cc-theme-light-flow-pink {
|
|
22646
|
+
0% { transform: translateX(-8px) translateY(0px); opacity: 0.7; }
|
|
22647
|
+
25% { transform: translateX(4px) translateY(-1px); opacity: 0.48; }
|
|
22648
|
+
50% { transform: translateX(18px) translateY(-3px); opacity: 0.22; }
|
|
22649
|
+
75% { transform: translateX(30px) translateY(-5px); opacity: 0.12; }
|
|
22650
|
+
100% { transform: translateX(-8px) translateY(0px); opacity: 0.7; }
|
|
22651
|
+
}
|
|
22652
|
+
|
|
22653
|
+
@keyframes cc-theme-light-flow-purple {
|
|
22654
|
+
0% { transform: translateX(0px) translateY(0px); opacity: 0.22; }
|
|
22655
|
+
25% { transform: translateX(-12px) translateY(0px); opacity: 0.34; }
|
|
22656
|
+
50% { transform: translateX(-24px) translateY(2px); opacity: 0.46; }
|
|
22657
|
+
75% { transform: translateX(-34px) translateY(5px); opacity: 0.24; }
|
|
22658
|
+
100% { transform: translateX(0px) translateY(0px); opacity: 0.22; }
|
|
22659
|
+
}
|
|
22660
|
+
|
|
22661
|
+
@keyframes cc-theme-light-sweep {
|
|
22662
|
+
0% { transform: translateX(0); opacity: 0; }
|
|
22663
|
+
25% { opacity: 0.95; }
|
|
22664
|
+
60% { opacity: 0.72; }
|
|
22665
|
+
100% { transform: translateX(124px); opacity: 0; }
|
|
22666
|
+
}
|
|
22667
|
+
|
|
22668
|
+
@keyframes cc-theme-light-veil {
|
|
22669
|
+
0%, 100% { opacity: 0.18; }
|
|
22670
|
+
30% { opacity: 0.1; }
|
|
22671
|
+
60% { opacity: 0.16; }
|
|
22672
|
+
80% { opacity: 0.22; }
|
|
22673
|
+
}
|
|
22674
|
+
|
|
22675
|
+
@keyframes cc-theme-cloud-float-small {
|
|
22676
|
+
0% { transform: translateX(0); }
|
|
22677
|
+
50% { transform: translateX(-12px); }
|
|
22678
|
+
100% { transform: translateX(0); }
|
|
22679
|
+
}
|
|
22680
|
+
|
|
22681
|
+
@keyframes cc-theme-cloud-float-large {
|
|
22682
|
+
0% { transform: translateX(0); }
|
|
22683
|
+
50% { transform: translateX(-18px); }
|
|
22684
|
+
100% { transform: translateX(0); }
|
|
22685
|
+
}
|
|
22686
|
+
|
|
22687
|
+
@keyframes cc-theme-star-blink-1 {
|
|
22688
|
+
0%, 100% { opacity: 0.35; transform: scale(0.9); }
|
|
22689
|
+
50% { opacity: 1; transform: scale(1.08); }
|
|
22690
|
+
}
|
|
22691
|
+
|
|
22692
|
+
@keyframes cc-theme-star-blink-2 {
|
|
22693
|
+
0%, 100% { opacity: 0.25; transform: scale(0.85); }
|
|
22694
|
+
45% { opacity: 0.95; transform: scale(1.05); }
|
|
22695
|
+
}
|
|
22696
|
+
|
|
22697
|
+
@keyframes cc-theme-star-blink-3 {
|
|
22698
|
+
0%, 100% { opacity: 0.3; transform: scale(0.9); }
|
|
22699
|
+
55% { opacity: 1; transform: scale(1.12); }
|
|
22700
|
+
}
|
|
22701
|
+
` })
|
|
22702
|
+
]
|
|
22703
|
+
}
|
|
22704
|
+
);
|
|
22705
|
+
}
|
|
22706
|
+
|
|
22252
22707
|
// src/lib/accountsAuth.ts
|
|
22253
22708
|
var normalizeBaseUrl2 = (value) => value.replace(/\/+$/, "");
|
|
22709
|
+
var AUTH_REQUEST_TIMEOUT_MS = 8e3;
|
|
22710
|
+
var LOCAL_BROWSER_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
|
|
22711
|
+
var isLocalBrowserOrigin = () => {
|
|
22712
|
+
if (typeof window === "undefined") return false;
|
|
22713
|
+
return LOCAL_BROWSER_HOSTNAMES.has(window.location.hostname);
|
|
22714
|
+
};
|
|
22715
|
+
var getLocalRedirectUri = () => {
|
|
22716
|
+
if (typeof window === "undefined") {
|
|
22717
|
+
return "http://localhost:8080/auth/callback";
|
|
22718
|
+
}
|
|
22719
|
+
const port = window.location.port || "8080";
|
|
22720
|
+
return `${window.location.protocol}//localhost:${port}/auth/callback`;
|
|
22721
|
+
};
|
|
22722
|
+
var fetchWithTimeout = async (input, init, timeoutMs = AUTH_REQUEST_TIMEOUT_MS) => {
|
|
22723
|
+
const controller = new AbortController();
|
|
22724
|
+
const timeoutId = window.setTimeout(() => controller.abort(), timeoutMs);
|
|
22725
|
+
try {
|
|
22726
|
+
return await fetch(input, {
|
|
22727
|
+
...init,
|
|
22728
|
+
signal: controller.signal
|
|
22729
|
+
});
|
|
22730
|
+
} catch (error) {
|
|
22731
|
+
if (error.name === "AbortError") {
|
|
22732
|
+
throw new Error("Timeout ao consultar o Accounts.");
|
|
22733
|
+
}
|
|
22734
|
+
throw error;
|
|
22735
|
+
} finally {
|
|
22736
|
+
window.clearTimeout(timeoutId);
|
|
22737
|
+
}
|
|
22738
|
+
};
|
|
22254
22739
|
var getAccountsConfig = () => {
|
|
22255
|
-
var _a78, _b7
|
|
22740
|
+
var _a78, _b7;
|
|
22256
22741
|
const baseUrl = normalizeBaseUrl2(
|
|
22257
22742
|
(_a78 = getRuntimeEnv("VITE_ACCOUNTS_BASE_URL")) != null ? _a78 : "https://accounts.cupcode.com.br"
|
|
22258
22743
|
);
|
|
@@ -22260,12 +22745,14 @@ var getAccountsConfig = () => {
|
|
|
22260
22745
|
if (!clientId) {
|
|
22261
22746
|
throw new Error("VITE_ACCOUNTS_CLIENT_ID \xE9 obrigat\xF3rio para login.");
|
|
22262
22747
|
}
|
|
22263
|
-
const
|
|
22748
|
+
const runtimeRedirectUri = getRuntimeEnv("VITE_ACCOUNTS_REDIRECT_URI");
|
|
22749
|
+
const fallbackRedirectUri = typeof window === "undefined" ? "http://localhost:8080/auth/callback" : `${window.location.origin}/auth/callback`;
|
|
22750
|
+
const redirectUri = runtimeRedirectUri != null ? runtimeRedirectUri : isLocalBrowserOrigin() ? getLocalRedirectUri() : fallbackRedirectUri;
|
|
22264
22751
|
return {
|
|
22265
22752
|
baseUrl,
|
|
22266
22753
|
clientId,
|
|
22267
22754
|
redirectUri,
|
|
22268
|
-
scope: (
|
|
22755
|
+
scope: (_b7 = getRuntimeEnv("VITE_ACCOUNTS_SCOPE")) != null ? _b7 : "openid profile email",
|
|
22269
22756
|
audience: getRuntimeEnv("VITE_ACCOUNTS_AUDIENCE"),
|
|
22270
22757
|
authUrl: getRuntimeEnv("VITE_ACCOUNTS_AUTH_URL"),
|
|
22271
22758
|
tokenUrl: getRuntimeEnv("VITE_ACCOUNTS_TOKEN_URL"),
|
|
@@ -22291,7 +22778,7 @@ var resolveOidcEndpoints = async (config) => {
|
|
|
22291
22778
|
};
|
|
22292
22779
|
}
|
|
22293
22780
|
const discoveryUrl = `${normalizeBaseUrl2(config.baseUrl)}/.well-known/openid-configuration`;
|
|
22294
|
-
const response = await
|
|
22781
|
+
const response = await fetchWithTimeout(discoveryUrl);
|
|
22295
22782
|
if (!response.ok) {
|
|
22296
22783
|
throw new Error("Falha ao resolver configura\xE7\xE3o OIDC do accounts.");
|
|
22297
22784
|
}
|
|
@@ -22382,7 +22869,7 @@ var exchangeCodeForToken = async (config, tokenUrl, code, verifier) => {
|
|
|
22382
22869
|
redirect_uri: config.redirectUri,
|
|
22383
22870
|
code_verifier: verifier
|
|
22384
22871
|
});
|
|
22385
|
-
const response = await
|
|
22872
|
+
const response = await fetchWithTimeout(tokenUrl, {
|
|
22386
22873
|
method: "POST",
|
|
22387
22874
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
22388
22875
|
body
|
|
@@ -22429,7 +22916,7 @@ var decodeJwt = (token) => {
|
|
|
22429
22916
|
};
|
|
22430
22917
|
|
|
22431
22918
|
// src/components/cupcode/MainNavbar.tsx
|
|
22432
|
-
var
|
|
22919
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
22433
22920
|
var parsePositiveInteger = (rawValue, fallback) => {
|
|
22434
22921
|
const parsed = Number(rawValue);
|
|
22435
22922
|
if (!Number.isFinite(parsed) || parsed <= 0) return fallback;
|
|
@@ -23080,24 +23567,24 @@ var MainNavbar = ({
|
|
|
23080
23567
|
appVersion
|
|
23081
23568
|
}) => {
|
|
23082
23569
|
var _a78, _b7, _c;
|
|
23083
|
-
const [chatUsers, setChatUsers] = (0,
|
|
23084
|
-
const [chatMessages, setChatMessages] = (0,
|
|
23085
|
-
const [chatMessageLogs, setChatMessageLogs] = (0,
|
|
23086
|
-
const [chatReactions, setChatReactions] = (0,
|
|
23087
|
-
const [isChatLoading, setIsChatLoading] = (0,
|
|
23088
|
-
const [isChatSending, setIsChatSending] = (0,
|
|
23089
|
-
const [chatError, setChatError] = (0,
|
|
23090
|
-
const [resolvedSenderId, setResolvedSenderId] = (0,
|
|
23091
|
-
const [tokenDerivedUserId, setTokenDerivedUserId] = (0,
|
|
23092
|
-
const [tokenDerivedEmail, setTokenDerivedEmail] = (0,
|
|
23093
|
-
const [persistedProfileAvatarValue, setPersistedProfileAvatarValue] = (0,
|
|
23094
|
-
const [accountsLanguage, setAccountsLanguage] = (0,
|
|
23095
|
-
const [accountsRecentActivity, setAccountsRecentActivity] = (0,
|
|
23096
|
-
const [isAccountsActivityLoading, setIsAccountsActivityLoading] = (0,
|
|
23097
|
-
const chatMessagesRef = (0,
|
|
23098
|
-
const chatFeatureFlagsRef = (0,
|
|
23099
|
-
const presenceSnapshotsRef = (0,
|
|
23100
|
-
const updateChatFeatureFlags = (0,
|
|
23570
|
+
const [chatUsers, setChatUsers] = (0, import_react18.useState)([]);
|
|
23571
|
+
const [chatMessages, setChatMessages] = (0, import_react18.useState)([]);
|
|
23572
|
+
const [chatMessageLogs, setChatMessageLogs] = (0, import_react18.useState)([]);
|
|
23573
|
+
const [chatReactions, setChatReactions] = (0, import_react18.useState)([]);
|
|
23574
|
+
const [isChatLoading, setIsChatLoading] = (0, import_react18.useState)(false);
|
|
23575
|
+
const [isChatSending, setIsChatSending] = (0, import_react18.useState)(false);
|
|
23576
|
+
const [chatError, setChatError] = (0, import_react18.useState)(null);
|
|
23577
|
+
const [resolvedSenderId, setResolvedSenderId] = (0, import_react18.useState)(null);
|
|
23578
|
+
const [tokenDerivedUserId, setTokenDerivedUserId] = (0, import_react18.useState)(null);
|
|
23579
|
+
const [tokenDerivedEmail, setTokenDerivedEmail] = (0, import_react18.useState)(void 0);
|
|
23580
|
+
const [persistedProfileAvatarValue, setPersistedProfileAvatarValue] = (0, import_react18.useState)(void 0);
|
|
23581
|
+
const [accountsLanguage, setAccountsLanguage] = (0, import_react18.useState)("pt-BR");
|
|
23582
|
+
const [accountsRecentActivity, setAccountsRecentActivity] = (0, import_react18.useState)([]);
|
|
23583
|
+
const [isAccountsActivityLoading, setIsAccountsActivityLoading] = (0, import_react18.useState)(false);
|
|
23584
|
+
const chatMessagesRef = (0, import_react18.useRef)([]);
|
|
23585
|
+
const chatFeatureFlagsRef = (0, import_react18.useRef)(readStoredChatFeatureFlags());
|
|
23586
|
+
const presenceSnapshotsRef = (0, import_react18.useRef)(/* @__PURE__ */ new Map());
|
|
23587
|
+
const updateChatFeatureFlags = (0, import_react18.useCallback)((partial) => {
|
|
23101
23588
|
const nextFlags = {
|
|
23102
23589
|
...chatFeatureFlagsRef.current,
|
|
23103
23590
|
...partial
|
|
@@ -23105,28 +23592,28 @@ var MainNavbar = ({
|
|
|
23105
23592
|
chatFeatureFlagsRef.current = nextFlags;
|
|
23106
23593
|
persistChatFeatureFlags(nextFlags);
|
|
23107
23594
|
}, []);
|
|
23108
|
-
const currentPathname = (0,
|
|
23595
|
+
const currentPathname = (0, import_react18.useMemo)(() => {
|
|
23109
23596
|
if (pathname && pathname.trim() !== "") return pathname;
|
|
23110
23597
|
if (typeof window !== "undefined") return window.location.pathname || "/";
|
|
23111
23598
|
return "/";
|
|
23112
23599
|
}, [pathname]);
|
|
23113
|
-
const currentUserId = (0,
|
|
23600
|
+
const currentUserId = (0, import_react18.useMemo)(() => {
|
|
23114
23601
|
var _a79;
|
|
23115
23602
|
return (_a79 = resolveCurrentUserId(authUser)) != null ? _a79 : tokenDerivedUserId;
|
|
23116
23603
|
}, [authUser, tokenDerivedUserId]);
|
|
23117
|
-
const authEmail = (0,
|
|
23604
|
+
const authEmail = (0, import_react18.useMemo)(
|
|
23118
23605
|
() => {
|
|
23119
23606
|
var _a79, _b8;
|
|
23120
23607
|
return (_b8 = (_a79 = toStringOrUndefined(authUser == null ? void 0 : authUser.email)) == null ? void 0 : _a79.toLowerCase()) != null ? _b8 : tokenDerivedEmail;
|
|
23121
23608
|
},
|
|
23122
23609
|
[authUser == null ? void 0 : authUser.email, tokenDerivedEmail]
|
|
23123
23610
|
);
|
|
23124
|
-
const isChatSuperAdmin = (0,
|
|
23611
|
+
const isChatSuperAdmin = (0, import_react18.useMemo)(() => {
|
|
23125
23612
|
var _a79, _b8;
|
|
23126
23613
|
const roleTokens = `${(_a79 = authUser == null ? void 0 : authUser.role) != null ? _a79 : ""} ${(_b8 = authUser == null ? void 0 : authUser.jobTitle) != null ? _b8 : ""}`.toLowerCase();
|
|
23127
23614
|
return roleTokens.includes("superadmin") || roleTokens.includes("super admin");
|
|
23128
23615
|
}, [authUser == null ? void 0 : authUser.jobTitle, authUser == null ? void 0 : authUser.role]);
|
|
23129
|
-
const resolvedTelescupBaseUrl = (0,
|
|
23616
|
+
const resolvedTelescupBaseUrl = (0, import_react18.useMemo)(() => {
|
|
23130
23617
|
if (TELESCUP_BASE_URL) {
|
|
23131
23618
|
return TELESCUP_BASE_URL;
|
|
23132
23619
|
}
|
|
@@ -23142,7 +23629,7 @@ var MainNavbar = ({
|
|
|
23142
23629
|
return false;
|
|
23143
23630
|
}
|
|
23144
23631
|
})();
|
|
23145
|
-
const resolvedAuthStatus = (0,
|
|
23632
|
+
const resolvedAuthStatus = (0, import_react18.useMemo)(() => {
|
|
23146
23633
|
if (authStatus) return authStatus;
|
|
23147
23634
|
if ((authUser == null ? void 0 : authUser.sub) || (authUser == null ? void 0 : authUser.id) || (authUser == null ? void 0 : authUser.userId) || (authUser == null ? void 0 : authUser.email)) {
|
|
23148
23635
|
return "authenticated";
|
|
@@ -23162,7 +23649,7 @@ var MainNavbar = ({
|
|
|
23162
23649
|
tokenDerivedUserId
|
|
23163
23650
|
]);
|
|
23164
23651
|
const isAuthenticated = resolvedAuthStatus === "authenticated";
|
|
23165
|
-
(0,
|
|
23652
|
+
(0, import_react18.useEffect)(() => {
|
|
23166
23653
|
if (authStatus === "unauthenticated") {
|
|
23167
23654
|
setTokenDerivedUserId(null);
|
|
23168
23655
|
setTokenDerivedEmail(void 0);
|
|
@@ -23205,7 +23692,7 @@ var MainNavbar = ({
|
|
|
23205
23692
|
canceled = true;
|
|
23206
23693
|
};
|
|
23207
23694
|
}, [authStatus, getAccessToken]);
|
|
23208
|
-
(0,
|
|
23695
|
+
(0, import_react18.useEffect)(() => {
|
|
23209
23696
|
if (!isAuthenticated) {
|
|
23210
23697
|
setResolvedSenderId(null);
|
|
23211
23698
|
setPersistedProfileAvatarValue(void 0);
|
|
@@ -23284,7 +23771,7 @@ var MainNavbar = ({
|
|
|
23284
23771
|
canceled = true;
|
|
23285
23772
|
};
|
|
23286
23773
|
}, [authEmail, currentUserId, isAuthenticated]);
|
|
23287
|
-
(0,
|
|
23774
|
+
(0, import_react18.useEffect)(() => {
|
|
23288
23775
|
if (!isAuthenticated) return;
|
|
23289
23776
|
if (typeof window === "undefined") return;
|
|
23290
23777
|
const controller = new AbortController();
|
|
@@ -23360,10 +23847,10 @@ var MainNavbar = ({
|
|
|
23360
23847
|
controller.abort();
|
|
23361
23848
|
};
|
|
23362
23849
|
}, [getAccessToken, isAuthenticated, currentUserId]);
|
|
23363
|
-
(0,
|
|
23850
|
+
(0, import_react18.useEffect)(() => {
|
|
23364
23851
|
chatMessagesRef.current = chatMessages;
|
|
23365
23852
|
}, [chatMessages]);
|
|
23366
|
-
(0,
|
|
23853
|
+
(0, import_react18.useEffect)(() => {
|
|
23367
23854
|
if (!isAuthenticated) {
|
|
23368
23855
|
presenceSnapshotsRef.current.clear();
|
|
23369
23856
|
setChatUsers([]);
|
|
@@ -23764,7 +24251,7 @@ var MainNavbar = ({
|
|
|
23764
24251
|
canceled = true;
|
|
23765
24252
|
};
|
|
23766
24253
|
}, [effectiveCurrentUserId, isAuthenticated, isChatSuperAdmin, updateChatFeatureFlags]);
|
|
23767
|
-
(0,
|
|
24254
|
+
(0, import_react18.useEffect)(() => {
|
|
23768
24255
|
if (!isAuthenticated || !effectiveCurrentUserId) return;
|
|
23769
24256
|
const supabase = getSupabase();
|
|
23770
24257
|
if (!supabase) return;
|
|
@@ -23896,7 +24383,7 @@ var MainNavbar = ({
|
|
|
23896
24383
|
void supabase.removeChannel(presenceChannel);
|
|
23897
24384
|
};
|
|
23898
24385
|
}, [effectiveCurrentUserId, isAuthenticated, isChatSuperAdmin]);
|
|
23899
|
-
(0,
|
|
24386
|
+
(0, import_react18.useEffect)(() => {
|
|
23900
24387
|
if (!isAuthenticated) return;
|
|
23901
24388
|
const intervalId = window.setInterval(() => {
|
|
23902
24389
|
const now = Date.now();
|
|
@@ -23922,7 +24409,7 @@ var MainNavbar = ({
|
|
|
23922
24409
|
window.clearInterval(intervalId);
|
|
23923
24410
|
};
|
|
23924
24411
|
}, [isAuthenticated]);
|
|
23925
|
-
const chatUnreadByUser = (0,
|
|
24412
|
+
const chatUnreadByUser = (0, import_react18.useMemo)(() => {
|
|
23926
24413
|
const counters = {};
|
|
23927
24414
|
chatMessages.forEach((message) => {
|
|
23928
24415
|
var _a79;
|
|
@@ -23932,10 +24419,10 @@ var MainNavbar = ({
|
|
|
23932
24419
|
});
|
|
23933
24420
|
return counters;
|
|
23934
24421
|
}, [chatMessages]);
|
|
23935
|
-
const chatUnreadCount = (0,
|
|
24422
|
+
const chatUnreadCount = (0, import_react18.useMemo)(() => {
|
|
23936
24423
|
return Object.values(chatUnreadByUser).reduce((total, count2) => total + count2, 0);
|
|
23937
24424
|
}, [chatUnreadByUser]);
|
|
23938
|
-
const handleChatMarkConversationRead = (0,
|
|
24425
|
+
const handleChatMarkConversationRead = (0, import_react18.useCallback)(
|
|
23939
24426
|
async ({ contactId }) => {
|
|
23940
24427
|
if (!effectiveCurrentUserId || !contactId) return;
|
|
23941
24428
|
const readAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -23986,7 +24473,7 @@ var MainNavbar = ({
|
|
|
23986
24473
|
},
|
|
23987
24474
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
23988
24475
|
);
|
|
23989
|
-
const handleChatToggleReaction = (0,
|
|
24476
|
+
const handleChatToggleReaction = (0, import_react18.useCallback)(
|
|
23990
24477
|
async ({ messageId, emoji }) => {
|
|
23991
24478
|
if (!effectiveCurrentUserId || !messageId || !emoji) return;
|
|
23992
24479
|
const localToggleReaction = () => {
|
|
@@ -24064,7 +24551,7 @@ var MainNavbar = ({
|
|
|
24064
24551
|
},
|
|
24065
24552
|
[chatReactions, effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24066
24553
|
);
|
|
24067
|
-
const insertChatLog = (0,
|
|
24554
|
+
const insertChatLog = (0, import_react18.useCallback)(
|
|
24068
24555
|
async ({
|
|
24069
24556
|
messageId,
|
|
24070
24557
|
action,
|
|
@@ -24095,7 +24582,7 @@ var MainNavbar = ({
|
|
|
24095
24582
|
},
|
|
24096
24583
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24097
24584
|
);
|
|
24098
|
-
const handleChatEditMessage = (0,
|
|
24585
|
+
const handleChatEditMessage = (0, import_react18.useCallback)(
|
|
24099
24586
|
async ({ messageId, text }) => {
|
|
24100
24587
|
if (!effectiveCurrentUserId || !messageId) return;
|
|
24101
24588
|
const nextText = text.trim();
|
|
@@ -24165,7 +24652,7 @@ var MainNavbar = ({
|
|
|
24165
24652
|
},
|
|
24166
24653
|
[chatMessages, effectiveCurrentUserId, insertChatLog, updateChatFeatureFlags]
|
|
24167
24654
|
);
|
|
24168
|
-
const handleChatDeleteMessage = (0,
|
|
24655
|
+
const handleChatDeleteMessage = (0, import_react18.useCallback)(
|
|
24169
24656
|
async ({ messageId }) => {
|
|
24170
24657
|
if (!effectiveCurrentUserId || !messageId) return;
|
|
24171
24658
|
const targetMessage = chatMessages.find((message) => message.id === messageId);
|
|
@@ -24252,7 +24739,7 @@ var MainNavbar = ({
|
|
|
24252
24739
|
},
|
|
24253
24740
|
[chatMessages, chatReactions, effectiveCurrentUserId, insertChatLog, updateChatFeatureFlags]
|
|
24254
24741
|
);
|
|
24255
|
-
const handleChatViewMessageData = (0,
|
|
24742
|
+
const handleChatViewMessageData = (0, import_react18.useCallback)(
|
|
24256
24743
|
({ messageId }) => {
|
|
24257
24744
|
const message = chatMessages.find((entry) => entry.id === messageId);
|
|
24258
24745
|
if (!message) return;
|
|
@@ -24271,7 +24758,7 @@ var MainNavbar = ({
|
|
|
24271
24758
|
},
|
|
24272
24759
|
[chatMessages]
|
|
24273
24760
|
);
|
|
24274
|
-
const handleChatSendMessage = (0,
|
|
24761
|
+
const handleChatSendMessage = (0, import_react18.useCallback)(
|
|
24275
24762
|
async ({
|
|
24276
24763
|
recipientId,
|
|
24277
24764
|
text,
|
|
@@ -24360,7 +24847,7 @@ var MainNavbar = ({
|
|
|
24360
24847
|
},
|
|
24361
24848
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24362
24849
|
);
|
|
24363
|
-
const items = (0,
|
|
24850
|
+
const items = (0, import_react18.useMemo)(() => {
|
|
24364
24851
|
var _a79;
|
|
24365
24852
|
if (!showNavItems) return [];
|
|
24366
24853
|
const normalizedPathname = currentPathname === "" ? "/" : currentPathname;
|
|
@@ -24388,10 +24875,10 @@ var MainNavbar = ({
|
|
|
24388
24875
|
};
|
|
24389
24876
|
});
|
|
24390
24877
|
}, [currentPathname, onNavigate, showNavItems]);
|
|
24391
|
-
const resolvedLogo = (0,
|
|
24878
|
+
const resolvedLogo = (0, import_react18.useMemo)(() => {
|
|
24392
24879
|
if (logo !== void 0) return logo;
|
|
24393
|
-
return /* @__PURE__ */ (0,
|
|
24394
|
-
/* @__PURE__ */ (0,
|
|
24880
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-[15px]", children: [
|
|
24881
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24395
24882
|
TelescupImage,
|
|
24396
24883
|
{
|
|
24397
24884
|
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
@@ -24402,7 +24889,7 @@ var MainNavbar = ({
|
|
|
24402
24889
|
className: "h-10 w-auto"
|
|
24403
24890
|
}
|
|
24404
24891
|
),
|
|
24405
|
-
/* @__PURE__ */ (0,
|
|
24892
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24406
24893
|
TelescupImage,
|
|
24407
24894
|
{
|
|
24408
24895
|
apiId: "3b913721-2eda-48fd-8d76-1a53055a337f",
|
|
@@ -24448,7 +24935,7 @@ var MainNavbar = ({
|
|
|
24448
24935
|
if (typeof window === "undefined") return;
|
|
24449
24936
|
window.open(`${MC_BASE_URL2}/tasks`, "_blank", "noopener,noreferrer");
|
|
24450
24937
|
};
|
|
24451
|
-
const handleChatOpenUserProfile = (0,
|
|
24938
|
+
const handleChatOpenUserProfile = (0, import_react18.useCallback)(({ userId }) => {
|
|
24452
24939
|
var _a79;
|
|
24453
24940
|
if (!userId || typeof window === "undefined") return;
|
|
24454
24941
|
const baseUrl = ((_a79 = getRuntimeEnv("VITE_ACCOUNTS_BASE_URL")) != null ? _a79 : "https://accounts.cupcode.com.br").replace(
|
|
@@ -24457,7 +24944,7 @@ var MainNavbar = ({
|
|
|
24457
24944
|
);
|
|
24458
24945
|
window.open(`${baseUrl}/users/${encodeURIComponent(userId)}`, "_blank", "noopener,noreferrer");
|
|
24459
24946
|
}, []);
|
|
24460
|
-
const handleChatSendEmail = (0,
|
|
24947
|
+
const handleChatSendEmail = (0, import_react18.useCallback)(({ email }) => {
|
|
24461
24948
|
if (!email) {
|
|
24462
24949
|
import_sonner.toast.message("E-mail indispon\xEDvel", {
|
|
24463
24950
|
description: "Esse usu\xE1rio n\xE3o possui e-mail dispon\xEDvel para contato."
|
|
@@ -24467,7 +24954,7 @@ var MainNavbar = ({
|
|
|
24467
24954
|
if (typeof window === "undefined") return;
|
|
24468
24955
|
window.open(`mailto:${email}`, "_blank", "noopener,noreferrer");
|
|
24469
24956
|
}, []);
|
|
24470
|
-
const handleChatAddToAgenda = (0,
|
|
24957
|
+
const handleChatAddToAgenda = (0, import_react18.useCallback)(
|
|
24471
24958
|
({ email, name }) => {
|
|
24472
24959
|
if (typeof window === "undefined") return;
|
|
24473
24960
|
const attendee = email ? `&add=${encodeURIComponent(email)}` : "";
|
|
@@ -24480,7 +24967,7 @@ var MainNavbar = ({
|
|
|
24480
24967
|
},
|
|
24481
24968
|
[]
|
|
24482
24969
|
);
|
|
24483
|
-
const getTelescupAccessToken = (0,
|
|
24970
|
+
const getTelescupAccessToken = (0, import_react18.useCallback)(async () => {
|
|
24484
24971
|
if (getAccessToken) {
|
|
24485
24972
|
return getAccessToken();
|
|
24486
24973
|
}
|
|
@@ -24493,7 +24980,7 @@ var MainNavbar = ({
|
|
|
24493
24980
|
}
|
|
24494
24981
|
return token;
|
|
24495
24982
|
}, [getAccessToken]);
|
|
24496
|
-
const handleLanguageChange = (0,
|
|
24983
|
+
const handleLanguageChange = (0, import_react18.useCallback)(
|
|
24497
24984
|
async (nextLanguage) => {
|
|
24498
24985
|
setAccountsLanguage(nextLanguage);
|
|
24499
24986
|
if (!ACCOUNTS_LANGUAGE_ENDPOINT || typeof window === "undefined") return;
|
|
@@ -24519,7 +25006,7 @@ var MainNavbar = ({
|
|
|
24519
25006
|
},
|
|
24520
25007
|
[getAccessToken]
|
|
24521
25008
|
);
|
|
24522
|
-
const handleProfileAvatarChange = (0,
|
|
25009
|
+
const handleProfileAvatarChange = (0, import_react18.useCallback)(
|
|
24523
25010
|
async ({ avatarId, avatarUrl }) => {
|
|
24524
25011
|
var _a79;
|
|
24525
25012
|
const normalizedAvatarId = (_a79 = parseAssetId(avatarId)) != null ? _a79 : parseAssetId(avatarUrl);
|
|
@@ -24637,61 +25124,64 @@ var MainNavbar = ({
|
|
|
24637
25124
|
},
|
|
24638
25125
|
[authEmail, currentUserId, resolvedSenderId]
|
|
24639
25126
|
);
|
|
24640
|
-
return /* @__PURE__ */ (0,
|
|
25127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_jsx_runtime39.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
24641
25128
|
NavbarCupcode,
|
|
24642
25129
|
{
|
|
24643
25130
|
logo: resolvedLogo,
|
|
24644
25131
|
items,
|
|
24645
25132
|
className,
|
|
24646
|
-
actions: /* @__PURE__ */ (0,
|
|
24647
|
-
|
|
24648
|
-
|
|
24649
|
-
|
|
24650
|
-
|
|
24651
|
-
|
|
24652
|
-
|
|
24653
|
-
|
|
24654
|
-
|
|
24655
|
-
|
|
24656
|
-
|
|
24657
|
-
|
|
24658
|
-
|
|
24659
|
-
|
|
24660
|
-
|
|
24661
|
-
|
|
24662
|
-
|
|
24663
|
-
|
|
24664
|
-
|
|
24665
|
-
|
|
24666
|
-
|
|
24667
|
-
|
|
24668
|
-
|
|
24669
|
-
|
|
24670
|
-
|
|
24671
|
-
|
|
24672
|
-
|
|
24673
|
-
|
|
24674
|
-
|
|
24675
|
-
|
|
24676
|
-
|
|
24677
|
-
|
|
24678
|
-
|
|
24679
|
-
|
|
24680
|
-
|
|
24681
|
-
|
|
24682
|
-
|
|
24683
|
-
|
|
24684
|
-
|
|
24685
|
-
|
|
24686
|
-
|
|
24687
|
-
|
|
24688
|
-
|
|
24689
|
-
|
|
24690
|
-
|
|
24691
|
-
|
|
24692
|
-
|
|
24693
|
-
|
|
24694
|
-
|
|
25133
|
+
actions: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
25134
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(ThemeToggle, {}),
|
|
25135
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
25136
|
+
UserMenuCupcode,
|
|
25137
|
+
{
|
|
25138
|
+
isAuthenticated: resolvedAuthStatus === "authenticated",
|
|
25139
|
+
isLoading: resolvedAuthStatus === "loading",
|
|
25140
|
+
loginLabel: ctaLabel,
|
|
25141
|
+
displayName: authUser == null ? void 0 : authUser.name,
|
|
25142
|
+
username: (_c = authUser == null ? void 0 : authUser.preferredUsername) != null ? _c : authUser == null ? void 0 : authUser.nickname,
|
|
25143
|
+
email: authUser == null ? void 0 : authUser.email,
|
|
25144
|
+
avatarUrl: resolvedProfileAvatarUrl,
|
|
25145
|
+
roleLabel: authUser == null ? void 0 : authUser.jobTitle,
|
|
25146
|
+
status: presenceStatus,
|
|
25147
|
+
onStatusChange: onPresenceStatusChange,
|
|
25148
|
+
chatUsers,
|
|
25149
|
+
chatMessages,
|
|
25150
|
+
chatReactions,
|
|
25151
|
+
chatMessageLogs,
|
|
25152
|
+
currentChatUserId: effectiveCurrentUserId,
|
|
25153
|
+
chatUnreadCount,
|
|
25154
|
+
chatUnreadByUser,
|
|
25155
|
+
isChatSuperAdmin,
|
|
25156
|
+
isChatLoading,
|
|
25157
|
+
isChatSending,
|
|
25158
|
+
chatError,
|
|
25159
|
+
onChatSendMessage: handleChatSendMessage,
|
|
25160
|
+
onChatMarkConversationRead: handleChatMarkConversationRead,
|
|
25161
|
+
onChatToggleReaction: handleChatToggleReaction,
|
|
25162
|
+
onChatEditMessage: handleChatEditMessage,
|
|
25163
|
+
onChatDeleteMessage: handleChatDeleteMessage,
|
|
25164
|
+
onChatViewMessageData: handleChatViewMessageData,
|
|
25165
|
+
onChatOpenUserProfile: handleChatOpenUserProfile,
|
|
25166
|
+
onChatSendEmail: handleChatSendEmail,
|
|
25167
|
+
onChatAddToAgenda: handleChatAddToAgenda,
|
|
25168
|
+
onLogin: handleCtaClick,
|
|
25169
|
+
onLogout: handleLogoutClick,
|
|
25170
|
+
onOpenAccount: handleOpenAccounts,
|
|
25171
|
+
onOpenProfile: handleOpenAccountsProfile,
|
|
25172
|
+
onOpenBilling: handleOpenAccountsBilling,
|
|
25173
|
+
onOpenTasks: handleOpenMcTasks,
|
|
25174
|
+
onProfileAvatarChange: handleProfileAvatarChange,
|
|
25175
|
+
language: accountsLanguage,
|
|
25176
|
+
onLanguageChange: handleLanguageChange,
|
|
25177
|
+
recentActivity: accountsRecentActivity,
|
|
25178
|
+
isRecentActivityLoading: isAccountsActivityLoading,
|
|
25179
|
+
telescupBaseUrl: resolvedTelescupBaseUrl,
|
|
25180
|
+
getTelescupAccessToken,
|
|
25181
|
+
appVersion
|
|
25182
|
+
}
|
|
25183
|
+
)
|
|
25184
|
+
] })
|
|
24695
25185
|
}
|
|
24696
25186
|
) });
|
|
24697
25187
|
};
|
|
@@ -24699,14 +25189,14 @@ var MainNavbar = ({
|
|
|
24699
25189
|
// src/components/layout/sidebar.tsx
|
|
24700
25190
|
var import_framer_motion = require("framer-motion");
|
|
24701
25191
|
var import_lucide_react10 = require("lucide-react");
|
|
24702
|
-
var
|
|
25192
|
+
var import_react19 = require("react");
|
|
24703
25193
|
var import_react_router_dom = require("react-router-dom");
|
|
24704
25194
|
|
|
24705
25195
|
// src/components/layout/DsNavbarLogo.tsx
|
|
24706
|
-
var
|
|
25196
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
24707
25197
|
var DsNavbarLogo = () => {
|
|
24708
|
-
return /* @__PURE__ */ (0,
|
|
24709
|
-
/* @__PURE__ */ (0,
|
|
25198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-[15px]", children: [
|
|
25199
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
24710
25200
|
TelescupImage,
|
|
24711
25201
|
{
|
|
24712
25202
|
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
@@ -24717,7 +25207,7 @@ var DsNavbarLogo = () => {
|
|
|
24717
25207
|
className: "h-10 w-auto"
|
|
24718
25208
|
}
|
|
24719
25209
|
),
|
|
24720
|
-
/* @__PURE__ */ (0,
|
|
25210
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
24721
25211
|
TelescupImage,
|
|
24722
25212
|
{
|
|
24723
25213
|
apiId: "3b913721-2eda-48fd-8d76-1a53055a337f",
|
|
@@ -24731,7 +25221,7 @@ var DsNavbarLogo = () => {
|
|
|
24731
25221
|
] });
|
|
24732
25222
|
};
|
|
24733
25223
|
var DsNavbarCompactLogo = () => {
|
|
24734
|
-
return /* @__PURE__ */ (0,
|
|
25224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
24735
25225
|
TelescupImage,
|
|
24736
25226
|
{
|
|
24737
25227
|
apiId: "be574751-cf1b-499a-8473-360b4115b447",
|
|
@@ -24788,26 +25278,26 @@ var buildSidebarGroupsFromNavItems = (items, defaultGroupLabel = "Principal") =>
|
|
|
24788
25278
|
var defaultSidebarGroups = buildSidebarGroupsFromNavItems(getMainNavItems());
|
|
24789
25279
|
|
|
24790
25280
|
// src/components/layout/sidebar.tsx
|
|
24791
|
-
var
|
|
25281
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
24792
25282
|
var findGroupByRoute = (groups, pathname) => {
|
|
24793
25283
|
var _a78, _b7;
|
|
24794
25284
|
return (_b7 = (_a78 = groups.find((group) => group.items.some((item) => item.route === pathname))) == null ? void 0 : _a78.label) != null ? _b7 : null;
|
|
24795
25285
|
};
|
|
24796
|
-
var IconFallback = () => /* @__PURE__ */ (0,
|
|
24797
|
-
var IconSlot = ({ icon, className }) => /* @__PURE__ */ (0,
|
|
25286
|
+
var IconFallback = () => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react10.Circle, { className: "h-3 w-3 opacity-80", "aria-hidden": "true" });
|
|
25287
|
+
var IconSlot = ({ icon, className }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: cn("inline-flex items-center justify-center [&>svg]:h-4 [&>svg]:w-4", className), children: icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconFallback, {}) });
|
|
24798
25288
|
var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
24799
25289
|
const location = (0, import_react_router_dom.useLocation)();
|
|
24800
|
-
const navScrollRef = (0,
|
|
24801
|
-
const scrollTopRef = (0,
|
|
24802
|
-
const [searchQuery, setSearchQuery] = (0,
|
|
24803
|
-
const [openGroup, setOpenGroup] = (0,
|
|
25290
|
+
const navScrollRef = (0, import_react19.useRef)(null);
|
|
25291
|
+
const scrollTopRef = (0, import_react19.useRef)(0);
|
|
25292
|
+
const [searchQuery, setSearchQuery] = (0, import_react19.useState)("");
|
|
25293
|
+
const [openGroup, setOpenGroup] = (0, import_react19.useState)(null);
|
|
24804
25294
|
const normalizedQuery = searchQuery.trim().toLowerCase();
|
|
24805
|
-
const resolvedGroups = (0,
|
|
25295
|
+
const resolvedGroups = (0, import_react19.useMemo)(() => {
|
|
24806
25296
|
if (groups && groups.length > 0) return groups;
|
|
24807
25297
|
return defaultSidebarGroups;
|
|
24808
25298
|
}, [groups]);
|
|
24809
|
-
const activeGroup = (0,
|
|
24810
|
-
const filteredGroups = (0,
|
|
25299
|
+
const activeGroup = (0, import_react19.useMemo)(() => findGroupByRoute(resolvedGroups, location.pathname), [location.pathname, resolvedGroups]);
|
|
25300
|
+
const filteredGroups = (0, import_react19.useMemo)(() => {
|
|
24811
25301
|
if (!normalizedQuery) return resolvedGroups;
|
|
24812
25302
|
return resolvedGroups.map((group) => ({
|
|
24813
25303
|
...group,
|
|
@@ -24815,27 +25305,27 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24815
25305
|
})).filter((group) => group.items.length > 0);
|
|
24816
25306
|
}, [normalizedQuery, resolvedGroups]);
|
|
24817
25307
|
const visibleGroups = isCollapsed ? resolvedGroups : filteredGroups;
|
|
24818
|
-
const resolvedExpandedLogo = logo != null ? logo : /* @__PURE__ */ (0,
|
|
24819
|
-
const resolvedCollapsedLogo = collapsedLogo != null ? collapsedLogo : /* @__PURE__ */ (0,
|
|
24820
|
-
(0,
|
|
25308
|
+
const resolvedExpandedLogo = logo != null ? logo : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DsNavbarLogo, {});
|
|
25309
|
+
const resolvedCollapsedLogo = collapsedLogo != null ? collapsedLogo : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(DsNavbarCompactLogo, {});
|
|
25310
|
+
(0, import_react19.useEffect)(() => {
|
|
24821
25311
|
if (!openGroup && resolvedGroups.length > 0) {
|
|
24822
25312
|
setOpenGroup(resolvedGroups[0].label);
|
|
24823
25313
|
}
|
|
24824
25314
|
}, [openGroup, resolvedGroups]);
|
|
24825
|
-
(0,
|
|
25315
|
+
(0, import_react19.useEffect)(() => {
|
|
24826
25316
|
const groupForRoute = findGroupByRoute(resolvedGroups, location.pathname);
|
|
24827
25317
|
if (groupForRoute) {
|
|
24828
25318
|
setOpenGroup(groupForRoute);
|
|
24829
25319
|
}
|
|
24830
25320
|
}, [location.pathname, resolvedGroups]);
|
|
24831
|
-
(0,
|
|
25321
|
+
(0, import_react19.useEffect)(() => {
|
|
24832
25322
|
if (isCollapsed || visibleGroups.length === 0) return;
|
|
24833
25323
|
const hasOpenGroup = openGroup ? visibleGroups.some((group) => group.label === openGroup) : false;
|
|
24834
25324
|
if (!hasOpenGroup) {
|
|
24835
25325
|
setOpenGroup(visibleGroups[0].label);
|
|
24836
25326
|
}
|
|
24837
25327
|
}, [isCollapsed, openGroup, visibleGroups]);
|
|
24838
|
-
(0,
|
|
25328
|
+
(0, import_react19.useEffect)(() => {
|
|
24839
25329
|
const element = navScrollRef.current;
|
|
24840
25330
|
if (!element) return void 0;
|
|
24841
25331
|
const handleScroll = () => {
|
|
@@ -24846,7 +25336,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24846
25336
|
element.removeEventListener("scroll", handleScroll);
|
|
24847
25337
|
};
|
|
24848
25338
|
}, []);
|
|
24849
|
-
(0,
|
|
25339
|
+
(0, import_react19.useEffect)(() => {
|
|
24850
25340
|
const element = navScrollRef.current;
|
|
24851
25341
|
if (!element) return void 0;
|
|
24852
25342
|
const frame = window.requestAnimationFrame(() => {
|
|
@@ -24856,17 +25346,17 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24856
25346
|
window.cancelAnimationFrame(frame);
|
|
24857
25347
|
};
|
|
24858
25348
|
}, [location.pathname]);
|
|
24859
|
-
return /* @__PURE__ */ (0,
|
|
25349
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
24860
25350
|
import_framer_motion.motion.aside,
|
|
24861
25351
|
{
|
|
24862
25352
|
className: "fixed left-0 top-0 h-full z-30 p-2 overflow-hidden",
|
|
24863
25353
|
animate: { width: isCollapsed ? 76 : 320 },
|
|
24864
25354
|
transition: { duration: 0.25, ease: "easeInOut" },
|
|
24865
|
-
children: /* @__PURE__ */ (0,
|
|
24866
|
-
/* @__PURE__ */ (0,
|
|
24867
|
-
!isCollapsed ? /* @__PURE__ */ (0,
|
|
24868
|
-
/* @__PURE__ */ (0,
|
|
24869
|
-
/* @__PURE__ */ (0,
|
|
25355
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "h-full rounded-r-2xl border border-l-0 border-white/15 bg-background/40 p-3 shadow-[0_24px_44px_-30px_rgba(58,42,88,0.7)] backdrop-blur-xl [transform:translateZ(0)] flex flex-col overflow-hidden", children: [
|
|
25356
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: cn("mb-3 flex min-h-11 items-center", isCollapsed ? "justify-center" : "justify-start px-1"), children: isCollapsed ? resolvedCollapsedLogo : resolvedExpandedLogo }),
|
|
25357
|
+
!isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "relative mb-3", children: [
|
|
25358
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react10.Search, { className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-ink/65" }),
|
|
25359
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
24870
25360
|
"input",
|
|
24871
25361
|
{
|
|
24872
25362
|
type: "search",
|
|
@@ -24877,9 +25367,9 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24877
25367
|
}
|
|
24878
25368
|
)
|
|
24879
25369
|
] }) : null,
|
|
24880
|
-
/* @__PURE__ */ (0,
|
|
25370
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { ref: navScrollRef, className: "cc-scrollbar cc-scrollbar-purple flex-1 overflow-y-auto overflow-x-hidden pr-1", children: isCollapsed ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "flex flex-col items-center gap-2", children: resolvedGroups.map((group) => {
|
|
24881
25371
|
const isActiveGroup = (activeGroup != null ? activeGroup : openGroup) === group.label;
|
|
24882
|
-
return /* @__PURE__ */ (0,
|
|
25372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
24883
25373
|
"button",
|
|
24884
25374
|
{
|
|
24885
25375
|
type: "button",
|
|
@@ -24892,14 +25382,14 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24892
25382
|
isActiveGroup ? "bg-cupcode-purple shadow-md text-white" : "bg-white/10 hover:bg-[rgba(151,90,182,0.30)] text-ink"
|
|
24893
25383
|
),
|
|
24894
25384
|
"aria-label": `Abrir grupo ${group.label}`,
|
|
24895
|
-
children: /* @__PURE__ */ (0,
|
|
25385
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconSlot, { icon: group.icon, className: cn("[&>svg]:h-5 [&>svg]:w-5", isActiveGroup && "text-white") })
|
|
24896
25386
|
},
|
|
24897
25387
|
group.id
|
|
24898
25388
|
);
|
|
24899
|
-
}) }) : /* @__PURE__ */ (0,
|
|
25389
|
+
}) }) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "space-y-2", children: visibleGroups.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "rounded-xl bg-white/20 px-3 py-3 text-xs text-ink-muted", children: "Nenhum item encontrado." }) : visibleGroups.map((group) => {
|
|
24900
25390
|
const isOpen = openGroup === group.label;
|
|
24901
|
-
return /* @__PURE__ */ (0,
|
|
24902
|
-
/* @__PURE__ */ (0,
|
|
25391
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("section", { className: "rounded-xl bg-white/14", children: [
|
|
25392
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
24903
25393
|
"button",
|
|
24904
25394
|
{
|
|
24905
25395
|
type: "button",
|
|
@@ -24907,13 +25397,13 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24907
25397
|
className: "flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left transition-colors duration-200 hover:bg-[rgba(151,90,182,0.30)]",
|
|
24908
25398
|
"aria-expanded": isOpen,
|
|
24909
25399
|
children: [
|
|
24910
|
-
/* @__PURE__ */ (0,
|
|
24911
|
-
/* @__PURE__ */ (0,
|
|
24912
|
-
/* @__PURE__ */ (0,
|
|
25400
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconSlot, { icon: group.icon, className: "h-8 w-8 rounded-xl bg-white/55 text-ink" }),
|
|
25401
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-ink/80", children: group.label }),
|
|
25402
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_lucide_react10.ChevronDown, { className: cn("ml-auto h-4 w-4 text-ink/65 transition-transform", isOpen && "rotate-90") })
|
|
24913
25403
|
]
|
|
24914
25404
|
}
|
|
24915
25405
|
),
|
|
24916
|
-
/* @__PURE__ */ (0,
|
|
25406
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_framer_motion.AnimatePresence, { initial: false, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
24917
25407
|
import_framer_motion.motion.div,
|
|
24918
25408
|
{
|
|
24919
25409
|
initial: { height: 0 },
|
|
@@ -24921,9 +25411,9 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24921
25411
|
exit: { height: 0 },
|
|
24922
25412
|
transition: { duration: 0.2, ease: "easeInOut" },
|
|
24923
25413
|
className: "overflow-hidden",
|
|
24924
|
-
children: /* @__PURE__ */ (0,
|
|
25414
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("nav", { className: "space-y-1 pb-2", children: group.items.map((item) => {
|
|
24925
25415
|
const isActive = location.pathname === item.route;
|
|
24926
|
-
return /* @__PURE__ */ (0,
|
|
25416
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
|
|
24927
25417
|
import_react_router_dom.NavLink,
|
|
24928
25418
|
{
|
|
24929
25419
|
to: item.route,
|
|
@@ -24932,7 +25422,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24932
25422
|
isActive && "bg-white/40 font-medium text-ink"
|
|
24933
25423
|
),
|
|
24934
25424
|
children: [
|
|
24935
|
-
/* @__PURE__ */ (0,
|
|
25425
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
24936
25426
|
IconSlot,
|
|
24937
25427
|
{
|
|
24938
25428
|
icon: item.icon,
|
|
@@ -24942,7 +25432,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24942
25432
|
)
|
|
24943
25433
|
}
|
|
24944
25434
|
),
|
|
24945
|
-
/* @__PURE__ */ (0,
|
|
25435
|
+
/* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: cn("truncate", isActive && "font-medium"), children: item.label })
|
|
24946
25436
|
]
|
|
24947
25437
|
},
|
|
24948
25438
|
item.id
|
|
@@ -24958,7 +25448,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo }) => {
|
|
|
24958
25448
|
};
|
|
24959
25449
|
|
|
24960
25450
|
// src/components/layout/main-layout.tsx
|
|
24961
|
-
var
|
|
25451
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
24962
25452
|
var SIDEBAR_COLLAPSED_WIDTH = 76;
|
|
24963
25453
|
var SIDEBAR_EXPANDED_WIDTH = 320;
|
|
24964
25454
|
var SIDEBAR_COLLAPSED_STORAGE_KEY = "cc-layout-sidebar-collapsed";
|
|
@@ -24980,11 +25470,11 @@ var MainLayout = ({
|
|
|
24980
25470
|
sidebarLogo,
|
|
24981
25471
|
sidebarCollapsedLogo
|
|
24982
25472
|
}) => {
|
|
24983
|
-
const [sidebarCollapsed, setSidebarCollapsed] = (0,
|
|
24984
|
-
const toggleSidebar = (0,
|
|
25473
|
+
const [sidebarCollapsed, setSidebarCollapsed] = (0, import_react20.useState)(getInitialSidebarCollapsed);
|
|
25474
|
+
const toggleSidebar = (0, import_react20.useCallback)(() => {
|
|
24985
25475
|
setSidebarCollapsed((current) => !current);
|
|
24986
25476
|
}, []);
|
|
24987
|
-
(0,
|
|
25477
|
+
(0, import_react20.useEffect)(() => {
|
|
24988
25478
|
if (typeof window === "undefined") return;
|
|
24989
25479
|
try {
|
|
24990
25480
|
window.localStorage.setItem(SIDEBAR_COLLAPSED_STORAGE_KEY, String(sidebarCollapsed));
|
|
@@ -24993,12 +25483,12 @@ var MainLayout = ({
|
|
|
24993
25483
|
}, [sidebarCollapsed]);
|
|
24994
25484
|
const contentMarginLeft = sidebarCollapsed ? SIDEBAR_COLLAPSED_WIDTH : SIDEBAR_EXPANDED_WIDTH;
|
|
24995
25485
|
const navbarOffsetClassName = sidebarCollapsed ? "left-[84px] md:left-[88px] right-3 md:right-4" : "left-[328px] md:left-[332px] right-3 md:right-4";
|
|
24996
|
-
const mergedNavbarClassName = (0,
|
|
25486
|
+
const mergedNavbarClassName = (0, import_react20.useMemo)(
|
|
24997
25487
|
() => cn(navbarOffsetClassName, navbarProps == null ? void 0 : navbarProps.className),
|
|
24998
25488
|
[navbarOffsetClassName, navbarProps == null ? void 0 : navbarProps.className]
|
|
24999
25489
|
);
|
|
25000
|
-
return /* @__PURE__ */ (0,
|
|
25001
|
-
/* @__PURE__ */ (0,
|
|
25490
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: cn("relative min-h-screen", className), children: [
|
|
25491
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25002
25492
|
AppSidebar,
|
|
25003
25493
|
{
|
|
25004
25494
|
isCollapsed: sidebarCollapsed,
|
|
@@ -25007,7 +25497,7 @@ var MainLayout = ({
|
|
|
25007
25497
|
collapsedLogo: sidebarCollapsedLogo
|
|
25008
25498
|
}
|
|
25009
25499
|
),
|
|
25010
|
-
/* @__PURE__ */ (0,
|
|
25500
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25011
25501
|
MainNavbar,
|
|
25012
25502
|
{
|
|
25013
25503
|
...navbarProps,
|
|
@@ -25015,7 +25505,7 @@ var MainLayout = ({
|
|
|
25015
25505
|
className: mergedNavbarClassName
|
|
25016
25506
|
}
|
|
25017
25507
|
),
|
|
25018
|
-
/* @__PURE__ */ (0,
|
|
25508
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25019
25509
|
"div",
|
|
25020
25510
|
{
|
|
25021
25511
|
className: "fixed z-[210]",
|
|
@@ -25023,14 +25513,14 @@ var MainLayout = ({
|
|
|
25023
25513
|
left: contentMarginLeft - 22,
|
|
25024
25514
|
top: "calc(max(env(safe-area-inset-top), 0px) + 18px)"
|
|
25025
25515
|
},
|
|
25026
|
-
children: /* @__PURE__ */ (0,
|
|
25516
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25027
25517
|
"button",
|
|
25028
25518
|
{
|
|
25029
25519
|
type: "button",
|
|
25030
25520
|
onClick: toggleSidebar,
|
|
25031
25521
|
"aria-label": sidebarCollapsed ? "Expandir sidebar" : "Recolher sidebar",
|
|
25032
25522
|
className: "inline-flex h-20 w-11 items-center justify-center rounded-[22px] border border-white/20 bg-[hsla(258,34%,34%,0.4)] text-white/90 shadow-[0_12px_28px_-16px_rgba(0,0,0,0.75)] backdrop-blur-xl transition-colors duration-200 hover:bg-[hsla(258,38%,38%,0.52)]",
|
|
25033
|
-
children: /* @__PURE__ */ (0,
|
|
25523
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25034
25524
|
import_lucide_react11.ChevronRight,
|
|
25035
25525
|
{
|
|
25036
25526
|
className: cn(
|
|
@@ -25043,7 +25533,7 @@ var MainLayout = ({
|
|
|
25043
25533
|
)
|
|
25044
25534
|
}
|
|
25045
25535
|
),
|
|
25046
|
-
/* @__PURE__ */ (0,
|
|
25536
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
25047
25537
|
"main",
|
|
25048
25538
|
{
|
|
25049
25539
|
className: cn("relative min-h-screen pt-24", contentClassName),
|
|
@@ -25058,10 +25548,10 @@ var MainLayout = ({
|
|
|
25058
25548
|
};
|
|
25059
25549
|
|
|
25060
25550
|
// src/components/cupcode/ErrorBoundary.tsx
|
|
25061
|
-
var
|
|
25551
|
+
var import_react21 = __toESM(require("react"), 1);
|
|
25062
25552
|
var import_lucide_react12 = require("lucide-react");
|
|
25063
|
-
var
|
|
25064
|
-
var ErrorBoundary = class extends
|
|
25553
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
25554
|
+
var ErrorBoundary = class extends import_react21.default.Component {
|
|
25065
25555
|
constructor(props) {
|
|
25066
25556
|
super(props);
|
|
25067
25557
|
__publicField(this, "handleReset", () => {
|
|
@@ -25080,17 +25570,17 @@ var ErrorBoundary = class extends import_react19.default.Component {
|
|
|
25080
25570
|
if (this.props.fallback) {
|
|
25081
25571
|
return this.props.fallback;
|
|
25082
25572
|
}
|
|
25083
|
-
return /* @__PURE__ */ (0,
|
|
25084
|
-
/* @__PURE__ */ (0,
|
|
25085
|
-
/* @__PURE__ */ (0,
|
|
25086
|
-
/* @__PURE__ */ (0,
|
|
25087
|
-
this.state.error && /* @__PURE__ */ (0,
|
|
25088
|
-
/* @__PURE__ */ (0,
|
|
25089
|
-
/* @__PURE__ */ (0,
|
|
25573
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "min-h-screen flex items-center justify-center p-6 bg-gradient-to-br from-cupcode-surface to-muted", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "max-w-md w-full glass rounded-xl p-8 text-center animate-scale-in", children: [
|
|
25574
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "p-4 rounded-full bg-destructive/10", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_lucide_react12.AlertTriangle, { className: "w-12 h-12 text-destructive" }) }) }),
|
|
25575
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h2", { className: "text-2xl font-display font-bold text-foreground mb-3", children: "Algo deu errado" }),
|
|
25576
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-muted-foreground mb-6", children: "Desculpe, encontramos um erro inesperado. Por favor, tente novamente." }),
|
|
25577
|
+
this.state.error && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("details", { className: "mb-6 text-left", children: [
|
|
25578
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("summary", { className: "cursor-pointer text-sm text-muted-foreground hover:text-foreground", children: "Detalhes t\xE9cnicos" }),
|
|
25579
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)("pre", { className: "mt-2 p-3 bg-muted rounded-md text-xs overflow-x-auto", children: this.state.error.message })
|
|
25090
25580
|
] }),
|
|
25091
|
-
/* @__PURE__ */ (0,
|
|
25092
|
-
/* @__PURE__ */ (0,
|
|
25093
|
-
/* @__PURE__ */ (0,
|
|
25581
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex gap-3 justify-center", children: [
|
|
25582
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(JellyButton, { onClick: this.handleReset, variant: "primary", children: "Tentar novamente" }),
|
|
25583
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsx)(JellyButton, { onClick: () => window.location.href = "/", variant: "secondary", children: "Ir para in\xEDcio" })
|
|
25094
25584
|
] })
|
|
25095
25585
|
] }) });
|
|
25096
25586
|
}
|
|
@@ -25099,9 +25589,9 @@ var ErrorBoundary = class extends import_react19.default.Component {
|
|
|
25099
25589
|
};
|
|
25100
25590
|
|
|
25101
25591
|
// src/components/cupcode/EyebrowCupcode.tsx
|
|
25102
|
-
var
|
|
25103
|
-
var
|
|
25104
|
-
var Eyebrow = (0,
|
|
25592
|
+
var import_react22 = require("react");
|
|
25593
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
25594
|
+
var Eyebrow = (0, import_react22.forwardRef)(
|
|
25105
25595
|
({ variant = "galaxy", glow = false, className, children, ...props }, ref) => {
|
|
25106
25596
|
const baseClasses = cn(
|
|
25107
25597
|
"inline-flex items-center gap-2",
|
|
@@ -25116,7 +25606,7 @@ var Eyebrow = (0, import_react20.forwardRef)(
|
|
|
25116
25606
|
purple: "bg-cupcode-purple text-white shadow-[0_0_20px_rgba(124,91,187,0.4)]",
|
|
25117
25607
|
outline: "border-2 border-cupcode-purple text-cupcode-purple bg-transparent"
|
|
25118
25608
|
};
|
|
25119
|
-
return /* @__PURE__ */ (0,
|
|
25609
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
25120
25610
|
"div",
|
|
25121
25611
|
{
|
|
25122
25612
|
ref,
|
|
@@ -25130,7 +25620,7 @@ var Eyebrow = (0, import_react20.forwardRef)(
|
|
|
25130
25620
|
Eyebrow.displayName = "Eyebrow";
|
|
25131
25621
|
|
|
25132
25622
|
// src/components/cupcode/HeroTitle.tsx
|
|
25133
|
-
var
|
|
25623
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
25134
25624
|
var HeroTitle = ({
|
|
25135
25625
|
eyebrow,
|
|
25136
25626
|
smallPrefix,
|
|
@@ -25144,25 +25634,25 @@ var HeroTitle = ({
|
|
|
25144
25634
|
3: "h3"
|
|
25145
25635
|
};
|
|
25146
25636
|
const Tag = headingTagMap[level];
|
|
25147
|
-
return /* @__PURE__ */ (0,
|
|
25148
|
-
eyebrow && /* @__PURE__ */ (0,
|
|
25149
|
-
/* @__PURE__ */ (0,
|
|
25150
|
-
smallPrefix && /* @__PURE__ */ (0,
|
|
25151
|
-
/* @__PURE__ */ (0,
|
|
25637
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: cn("space-y-3", className), children: [
|
|
25638
|
+
eyebrow && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { className: "span-destaque animate-fade-in", children: eyebrow }),
|
|
25639
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(Tag, { className: "font-display font-bold leading-tight animate-slide-up", children: [
|
|
25640
|
+
smallPrefix && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("small", { className: "block text-base font-normal opacity-70 mb-1", children: smallPrefix }),
|
|
25641
|
+
/* @__PURE__ */ (0, import_jsx_runtime45.jsx)("b", { className: "block bg-gradient-to-r from-cupcode-hover to-cupcode-purple bg-clip-text text-transparent", children: strong })
|
|
25152
25642
|
] })
|
|
25153
25643
|
] });
|
|
25154
25644
|
};
|
|
25155
25645
|
|
|
25156
25646
|
// src/components/cupcode/InputField.tsx
|
|
25157
25647
|
var React25 = __toESM(require("react"), 1);
|
|
25158
|
-
var
|
|
25648
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
25159
25649
|
var InputField = React25.forwardRef(
|
|
25160
25650
|
({ className, type, label, error, leftIcon, rightIcon, ...props }, ref) => {
|
|
25161
|
-
return /* @__PURE__ */ (0,
|
|
25162
|
-
label && /* @__PURE__ */ (0,
|
|
25163
|
-
/* @__PURE__ */ (0,
|
|
25164
|
-
leftIcon && /* @__PURE__ */ (0,
|
|
25165
|
-
/* @__PURE__ */ (0,
|
|
25651
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "cc-stack space-2 w-full", children: [
|
|
25652
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
25653
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "relative", children: [
|
|
25654
|
+
leftIcon && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60", children: leftIcon }),
|
|
25655
|
+
/* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
25166
25656
|
"input",
|
|
25167
25657
|
{
|
|
25168
25658
|
type,
|
|
@@ -25184,16 +25674,16 @@ var InputField = React25.forwardRef(
|
|
|
25184
25674
|
...props
|
|
25185
25675
|
}
|
|
25186
25676
|
),
|
|
25187
|
-
rightIcon && /* @__PURE__ */ (0,
|
|
25677
|
+
rightIcon && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60", children: rightIcon })
|
|
25188
25678
|
] }),
|
|
25189
|
-
error && /* @__PURE__ */ (0,
|
|
25679
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
25190
25680
|
] });
|
|
25191
25681
|
}
|
|
25192
25682
|
);
|
|
25193
25683
|
InputField.displayName = "InputField";
|
|
25194
25684
|
|
|
25195
25685
|
// src/components/cupcode/LoadingSpinner.tsx
|
|
25196
|
-
var
|
|
25686
|
+
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
25197
25687
|
var sizes = {
|
|
25198
25688
|
sm: "h-4 w-4 border-2",
|
|
25199
25689
|
md: "h-8 w-8 border-3",
|
|
@@ -25203,7 +25693,7 @@ var LoadingSpinner = ({
|
|
|
25203
25693
|
size = "md",
|
|
25204
25694
|
className
|
|
25205
25695
|
}) => {
|
|
25206
|
-
return /* @__PURE__ */ (0,
|
|
25696
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
25207
25697
|
"div",
|
|
25208
25698
|
{
|
|
25209
25699
|
className: cn(
|
|
@@ -25213,12 +25703,12 @@ var LoadingSpinner = ({
|
|
|
25213
25703
|
),
|
|
25214
25704
|
role: "status",
|
|
25215
25705
|
"aria-label": "Loading",
|
|
25216
|
-
children: /* @__PURE__ */ (0,
|
|
25706
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("span", { className: "sr-only", children: "Loading..." })
|
|
25217
25707
|
}
|
|
25218
25708
|
);
|
|
25219
25709
|
};
|
|
25220
25710
|
var Skeleton2 = ({ className }) => {
|
|
25221
|
-
return /* @__PURE__ */ (0,
|
|
25711
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
25222
25712
|
"div",
|
|
25223
25713
|
{
|
|
25224
25714
|
className: cn(
|
|
@@ -25229,7 +25719,7 @@ var Skeleton2 = ({ className }) => {
|
|
|
25229
25719
|
);
|
|
25230
25720
|
};
|
|
25231
25721
|
var SkeletonText = ({ lines = 3 }) => {
|
|
25232
|
-
return /* @__PURE__ */ (0,
|
|
25722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "space-y-2", children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
|
|
25233
25723
|
Skeleton2,
|
|
25234
25724
|
{
|
|
25235
25725
|
className: cn(
|
|
@@ -25242,7 +25732,7 @@ var SkeletonText = ({ lines = 3 }) => {
|
|
|
25242
25732
|
};
|
|
25243
25733
|
|
|
25244
25734
|
// src/components/cupcode/LoadingScreen.tsx
|
|
25245
|
-
var
|
|
25735
|
+
var import_jsx_runtime48 = require("react/jsx-runtime");
|
|
25246
25736
|
var LoadingScreen = ({
|
|
25247
25737
|
message = "Carregando...",
|
|
25248
25738
|
fullScreen = true,
|
|
@@ -25250,28 +25740,28 @@ var LoadingScreen = ({
|
|
|
25250
25740
|
}) => {
|
|
25251
25741
|
const containerClasses = fullScreen ? "fixed inset-0 z-50 flex items-center justify-center bg-background" : "flex items-center justify-center p-12";
|
|
25252
25742
|
if (variant === "minimal") {
|
|
25253
|
-
return /* @__PURE__ */ (0,
|
|
25743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: containerClasses, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LoadingSpinner, { size: "lg" }) });
|
|
25254
25744
|
}
|
|
25255
25745
|
if (variant === "galaxy") {
|
|
25256
|
-
return /* @__PURE__ */ (0,
|
|
25257
|
-
/* @__PURE__ */ (0,
|
|
25258
|
-
/* @__PURE__ */ (0,
|
|
25259
|
-
/* @__PURE__ */ (0,
|
|
25746
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: cn(containerClasses, "cc-gradient-galaxy"), children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "glass rounded-2xl p-8 flex flex-col items-center space-y-4 animate-scale-in", children: [
|
|
25747
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "relative", children: [
|
|
25748
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LoadingSpinner, { size: "lg" }),
|
|
25749
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute inset-0 blur-2xl bg-cupcode-hover/30 animate-pulse-scale" })
|
|
25260
25750
|
] }),
|
|
25261
|
-
message && /* @__PURE__ */ (0,
|
|
25751
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "text-white font-semibold text-lg animate-pulse", children: message })
|
|
25262
25752
|
] }) });
|
|
25263
25753
|
}
|
|
25264
|
-
return /* @__PURE__ */ (0,
|
|
25265
|
-
/* @__PURE__ */ (0,
|
|
25266
|
-
/* @__PURE__ */ (0,
|
|
25267
|
-
/* @__PURE__ */ (0,
|
|
25754
|
+
return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: containerClasses, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "glass rounded-2xl p-8 flex flex-col items-center space-y-6 animate-scale-in max-w-sm", children: [
|
|
25755
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "relative", children: [
|
|
25756
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-20 h-20 rounded-full cc-gradient-animated flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-16 h-16 rounded-full bg-background flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(LoadingSpinner, { size: "md" }) }) }),
|
|
25757
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute inset-0 blur-xl bg-cupcode-purple/20 animate-pulse-scale -z-10" })
|
|
25268
25758
|
] }),
|
|
25269
|
-
message && /* @__PURE__ */ (0,
|
|
25270
|
-
/* @__PURE__ */ (0,
|
|
25271
|
-
/* @__PURE__ */ (0,
|
|
25272
|
-
/* @__PURE__ */ (0,
|
|
25273
|
-
/* @__PURE__ */ (0,
|
|
25274
|
-
/* @__PURE__ */ (0,
|
|
25759
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "text-center space-y-2", children: [
|
|
25760
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "font-bold text-lg cc-text-gradient-galaxy", children: message }),
|
|
25761
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "flex gap-1 justify-center", children: [
|
|
25762
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-2 h-2 rounded-full bg-cupcode-hover animate-bounce", style: { animationDelay: "0ms" } }),
|
|
25763
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-2 h-2 rounded-full bg-cupcode-purple animate-bounce", style: { animationDelay: "150ms" } }),
|
|
25764
|
+
/* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "w-2 h-2 rounded-full bg-cupcode-hover animate-bounce", style: { animationDelay: "300ms" } })
|
|
25275
25765
|
] })
|
|
25276
25766
|
] })
|
|
25277
25767
|
] }) });
|
|
@@ -25281,12 +25771,12 @@ var LoadingScreen = ({
|
|
|
25281
25771
|
var React26 = __toESM(require("react"), 1);
|
|
25282
25772
|
var DialogPrimitive3 = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
25283
25773
|
var import_lucide_react13 = require("lucide-react");
|
|
25284
|
-
var
|
|
25774
|
+
var import_jsx_runtime49 = require("react/jsx-runtime");
|
|
25285
25775
|
var Modal = DialogPrimitive3.Root;
|
|
25286
25776
|
var ModalTrigger = DialogPrimitive3.Trigger;
|
|
25287
25777
|
var ModalPortal = DialogPrimitive3.Portal;
|
|
25288
25778
|
var ModalClose = DialogPrimitive3.Close;
|
|
25289
|
-
var ModalOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
25779
|
+
var ModalOverlay = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
25290
25780
|
DialogPrimitive3.Overlay,
|
|
25291
25781
|
{
|
|
25292
25782
|
ref,
|
|
@@ -25306,9 +25796,9 @@ var ModalContent = React26.forwardRef(({ className, children, size = "md", ...pr
|
|
|
25306
25796
|
lg: "max-w-lg",
|
|
25307
25797
|
xl: "max-w-xl"
|
|
25308
25798
|
};
|
|
25309
|
-
return /* @__PURE__ */ (0,
|
|
25310
|
-
/* @__PURE__ */ (0,
|
|
25311
|
-
/* @__PURE__ */ (0,
|
|
25799
|
+
return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(ModalPortal, { children: [
|
|
25800
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ModalOverlay, {}),
|
|
25801
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
|
|
25312
25802
|
DialogPrimitive3.Content,
|
|
25313
25803
|
{
|
|
25314
25804
|
ref,
|
|
@@ -25323,9 +25813,9 @@ var ModalContent = React26.forwardRef(({ className, children, size = "md", ...pr
|
|
|
25323
25813
|
...props,
|
|
25324
25814
|
children: [
|
|
25325
25815
|
children,
|
|
25326
|
-
/* @__PURE__ */ (0,
|
|
25327
|
-
/* @__PURE__ */ (0,
|
|
25328
|
-
/* @__PURE__ */ (0,
|
|
25816
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(DialogPrimitive3.Close, { className: "absolute right-4 top-4 rounded-md p-1 opacity-70 ring-offset-background transition-opacity hover:opacity-100 hover:bg-cupcode-ink/10 focus:outline-none focus:ring-2 focus:ring-cupcode-purple focus:ring-offset-2 disabled:pointer-events-none", children: [
|
|
25817
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_lucide_react13.X, { className: "h-4 w-4" }),
|
|
25818
|
+
/* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "sr-only", children: "Close" })
|
|
25329
25819
|
] })
|
|
25330
25820
|
]
|
|
25331
25821
|
}
|
|
@@ -25336,7 +25826,7 @@ ModalContent.displayName = DialogPrimitive3.Content.displayName;
|
|
|
25336
25826
|
var ModalHeader = ({
|
|
25337
25827
|
className,
|
|
25338
25828
|
...props
|
|
25339
|
-
}) => /* @__PURE__ */ (0,
|
|
25829
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
25340
25830
|
"div",
|
|
25341
25831
|
{
|
|
25342
25832
|
className: cn("flex flex-col space-y-2 text-center sm:text-left mb-4", className),
|
|
@@ -25347,7 +25837,7 @@ ModalHeader.displayName = "ModalHeader";
|
|
|
25347
25837
|
var ModalFooter = ({
|
|
25348
25838
|
className,
|
|
25349
25839
|
...props
|
|
25350
|
-
}) => /* @__PURE__ */ (0,
|
|
25840
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
25351
25841
|
"div",
|
|
25352
25842
|
{
|
|
25353
25843
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 mt-6", className),
|
|
@@ -25355,7 +25845,7 @@ var ModalFooter = ({
|
|
|
25355
25845
|
}
|
|
25356
25846
|
);
|
|
25357
25847
|
ModalFooter.displayName = "ModalFooter";
|
|
25358
|
-
var ModalTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
25848
|
+
var ModalTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
25359
25849
|
DialogPrimitive3.Title,
|
|
25360
25850
|
{
|
|
25361
25851
|
ref,
|
|
@@ -25364,7 +25854,7 @@ var ModalTitle = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
25364
25854
|
}
|
|
25365
25855
|
));
|
|
25366
25856
|
ModalTitle.displayName = DialogPrimitive3.Title.displayName;
|
|
25367
|
-
var ModalDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
25857
|
+
var ModalDescription = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
|
|
25368
25858
|
DialogPrimitive3.Description,
|
|
25369
25859
|
{
|
|
25370
25860
|
ref,
|
|
@@ -25375,15 +25865,15 @@ var ModalDescription = React26.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
25375
25865
|
ModalDescription.displayName = DialogPrimitive3.Description.displayName;
|
|
25376
25866
|
|
|
25377
25867
|
// src/components/cupcode/ParticleSystem.tsx
|
|
25378
|
-
var
|
|
25379
|
-
var
|
|
25868
|
+
var import_react23 = require("react");
|
|
25869
|
+
var import_jsx_runtime50 = require("react/jsx-runtime");
|
|
25380
25870
|
function ParticleSystem({
|
|
25381
25871
|
count: count2 = 50,
|
|
25382
25872
|
variant = "stars",
|
|
25383
25873
|
className
|
|
25384
25874
|
}) {
|
|
25385
|
-
const canvasRef = (0,
|
|
25386
|
-
(0,
|
|
25875
|
+
const canvasRef = (0, import_react23.useRef)(null);
|
|
25876
|
+
(0, import_react23.useEffect)(() => {
|
|
25387
25877
|
const canvas = canvasRef.current;
|
|
25388
25878
|
if (!canvas) return;
|
|
25389
25879
|
const ctx = canvas.getContext("2d");
|
|
@@ -25448,7 +25938,7 @@ function ParticleSystem({
|
|
|
25448
25938
|
cancelAnimationFrame(animationId);
|
|
25449
25939
|
};
|
|
25450
25940
|
}, [count2, variant]);
|
|
25451
|
-
return /* @__PURE__ */ (0,
|
|
25941
|
+
return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
|
|
25452
25942
|
"canvas",
|
|
25453
25943
|
{
|
|
25454
25944
|
ref: canvasRef,
|
|
@@ -25459,7 +25949,7 @@ function ParticleSystem({
|
|
|
25459
25949
|
|
|
25460
25950
|
// src/components/cupcode/PricingCard.tsx
|
|
25461
25951
|
var import_lucide_react14 = require("lucide-react");
|
|
25462
|
-
var
|
|
25952
|
+
var import_jsx_runtime51 = require("react/jsx-runtime");
|
|
25463
25953
|
function PricingCard({
|
|
25464
25954
|
title,
|
|
25465
25955
|
price,
|
|
@@ -25471,7 +25961,7 @@ function PricingCard({
|
|
|
25471
25961
|
buttonText = "Escolher plano",
|
|
25472
25962
|
className
|
|
25473
25963
|
}) {
|
|
25474
|
-
return /* @__PURE__ */ (0,
|
|
25964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
|
|
25475
25965
|
CardGlass,
|
|
25476
25966
|
{
|
|
25477
25967
|
className: cn(
|
|
@@ -25481,17 +25971,17 @@ function PricingCard({
|
|
|
25481
25971
|
className
|
|
25482
25972
|
),
|
|
25483
25973
|
children: [
|
|
25484
|
-
highlighted && /* @__PURE__ */ (0,
|
|
25485
|
-
/* @__PURE__ */ (0,
|
|
25486
|
-
/* @__PURE__ */ (0,
|
|
25487
|
-
description && /* @__PURE__ */ (0,
|
|
25974
|
+
highlighted && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "bg-cupcode-purple text-white text-xs font-bold px-4 py-1 rounded-pill", children: "POPULAR" }) }),
|
|
25975
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "text-center mb-6", children: [
|
|
25976
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("h3", { className: "text-2xl font-display font-bold text-foreground mb-2", children: title }),
|
|
25977
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("p", { className: "text-sm text-muted-foreground", children: description })
|
|
25488
25978
|
] }),
|
|
25489
|
-
/* @__PURE__ */ (0,
|
|
25490
|
-
/* @__PURE__ */ (0,
|
|
25491
|
-
/* @__PURE__ */ (0,
|
|
25979
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "text-center mb-8", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "flex items-baseline justify-center gap-2", children: [
|
|
25980
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-5xl font-display font-bold cc-text-gradient-galaxy", children: price }),
|
|
25981
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "text-muted-foreground", children: period })
|
|
25492
25982
|
] }) }),
|
|
25493
|
-
/* @__PURE__ */ (0,
|
|
25494
|
-
/* @__PURE__ */ (0,
|
|
25983
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)("ul", { className: "space-3 mb-8", children: features.map((feature, index) => /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("li", { className: "flex items-start gap-3", children: [
|
|
25984
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
25495
25985
|
import_lucide_react14.Check,
|
|
25496
25986
|
{
|
|
25497
25987
|
className: cn(
|
|
@@ -25500,7 +25990,7 @@ function PricingCard({
|
|
|
25500
25990
|
)
|
|
25501
25991
|
}
|
|
25502
25992
|
),
|
|
25503
|
-
/* @__PURE__ */ (0,
|
|
25993
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
25504
25994
|
"span",
|
|
25505
25995
|
{
|
|
25506
25996
|
className: cn(
|
|
@@ -25511,7 +26001,7 @@ function PricingCard({
|
|
|
25511
26001
|
}
|
|
25512
26002
|
)
|
|
25513
26003
|
] }, index)) }),
|
|
25514
|
-
/* @__PURE__ */ (0,
|
|
26004
|
+
/* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
|
|
25515
26005
|
JellyButton,
|
|
25516
26006
|
{
|
|
25517
26007
|
onClick: onSelect,
|
|
@@ -25528,7 +26018,7 @@ function PricingCard({
|
|
|
25528
26018
|
// src/components/cupcode/ProgressCupcode.tsx
|
|
25529
26019
|
var React27 = __toESM(require("react"), 1);
|
|
25530
26020
|
var ProgressPrimitive2 = __toESM(require("@radix-ui/react-progress"), 1);
|
|
25531
|
-
var
|
|
26021
|
+
var import_jsx_runtime52 = require("react/jsx-runtime");
|
|
25532
26022
|
var ProgressCupcode = React27.forwardRef(({ className, value, variant = "default", showLabel = false, size = "md", ...props }, ref) => {
|
|
25533
26023
|
const sizeClasses2 = {
|
|
25534
26024
|
sm: "h-2",
|
|
@@ -25542,15 +26032,15 @@ var ProgressCupcode = React27.forwardRef(({ className, value, variant = "default
|
|
|
25542
26032
|
warning: "bg-warning",
|
|
25543
26033
|
error: "bg-destructive"
|
|
25544
26034
|
};
|
|
25545
|
-
return /* @__PURE__ */ (0,
|
|
25546
|
-
showLabel && /* @__PURE__ */ (0,
|
|
25547
|
-
/* @__PURE__ */ (0,
|
|
25548
|
-
/* @__PURE__ */ (0,
|
|
26035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full space-y-2", children: [
|
|
26036
|
+
showLabel && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center justify-between text-sm", children: [
|
|
26037
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "font-semibold text-foreground", children: "Progresso" }),
|
|
26038
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "text-muted-foreground", children: [
|
|
25549
26039
|
value,
|
|
25550
26040
|
"%"
|
|
25551
26041
|
] })
|
|
25552
26042
|
] }),
|
|
25553
|
-
/* @__PURE__ */ (0,
|
|
26043
|
+
/* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
25554
26044
|
ProgressPrimitive2.Root,
|
|
25555
26045
|
{
|
|
25556
26046
|
ref,
|
|
@@ -25560,7 +26050,7 @@ var ProgressCupcode = React27.forwardRef(({ className, value, variant = "default
|
|
|
25560
26050
|
className
|
|
25561
26051
|
),
|
|
25562
26052
|
...props,
|
|
25563
|
-
children: /* @__PURE__ */ (0,
|
|
26053
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
|
|
25564
26054
|
ProgressPrimitive2.Indicator,
|
|
25565
26055
|
{
|
|
25566
26056
|
className: cn(
|
|
@@ -25578,7 +26068,7 @@ ProgressCupcode.displayName = "ProgressCupcode";
|
|
|
25578
26068
|
|
|
25579
26069
|
// src/components/cupcode/ScrollbarTheme.tsx
|
|
25580
26070
|
var React28 = __toESM(require("react"), 1);
|
|
25581
|
-
var
|
|
26071
|
+
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
25582
26072
|
var SCROLLBAR_COLOR_ATTR = "data-cc-scrollbar-color";
|
|
25583
26073
|
var SCROLLBAR_THEME_ATTR = "data-cc-scrollbar-theme";
|
|
25584
26074
|
var ScrollbarThemeProvider = ({
|
|
@@ -25617,7 +26107,7 @@ var ScrollbarThemeProvider = ({
|
|
|
25617
26107
|
return null;
|
|
25618
26108
|
};
|
|
25619
26109
|
var ScrollbarArea = React28.forwardRef(
|
|
25620
|
-
({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26110
|
+
({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
25621
26111
|
"div",
|
|
25622
26112
|
{
|
|
25623
26113
|
ref,
|
|
@@ -25638,11 +26128,11 @@ ScrollbarArea.displayName = "ScrollbarArea";
|
|
|
25638
26128
|
var React29 = __toESM(require("react"), 1);
|
|
25639
26129
|
var SelectPrimitive2 = __toESM(require("@radix-ui/react-select"), 1);
|
|
25640
26130
|
var import_lucide_react15 = require("lucide-react");
|
|
25641
|
-
var
|
|
26131
|
+
var import_jsx_runtime54 = require("react/jsx-runtime");
|
|
25642
26132
|
var Select2 = SelectPrimitive2.Root;
|
|
25643
26133
|
var SelectGroup2 = SelectPrimitive2.Group;
|
|
25644
26134
|
var SelectValue2 = SelectPrimitive2.Value;
|
|
25645
|
-
var SelectTrigger2 = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26135
|
+
var SelectTrigger2 = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
25646
26136
|
SelectPrimitive2.Trigger,
|
|
25647
26137
|
{
|
|
25648
26138
|
ref,
|
|
@@ -25660,12 +26150,12 @@ var SelectTrigger2 = React29.forwardRef(({ className, children, ...props }, ref)
|
|
|
25660
26150
|
...props,
|
|
25661
26151
|
children: [
|
|
25662
26152
|
children,
|
|
25663
|
-
/* @__PURE__ */ (0,
|
|
26153
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectPrimitive2.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react15.ChevronDown, { className: "h-4 w-4 opacity-50" }) })
|
|
25664
26154
|
]
|
|
25665
26155
|
}
|
|
25666
26156
|
));
|
|
25667
26157
|
SelectTrigger2.displayName = SelectPrimitive2.Trigger.displayName;
|
|
25668
|
-
var SelectContent2 = React29.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0,
|
|
26158
|
+
var SelectContent2 = React29.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectPrimitive2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
25669
26159
|
SelectPrimitive2.Content,
|
|
25670
26160
|
{
|
|
25671
26161
|
ref,
|
|
@@ -25682,7 +26172,7 @@ var SelectContent2 = React29.forwardRef(({ className, children, position = "popp
|
|
|
25682
26172
|
),
|
|
25683
26173
|
position,
|
|
25684
26174
|
...props,
|
|
25685
|
-
children: /* @__PURE__ */ (0,
|
|
26175
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
|
|
25686
26176
|
SelectPrimitive2.Viewport,
|
|
25687
26177
|
{
|
|
25688
26178
|
className: cn(
|
|
@@ -25695,7 +26185,7 @@ var SelectContent2 = React29.forwardRef(({ className, children, position = "popp
|
|
|
25695
26185
|
}
|
|
25696
26186
|
) }));
|
|
25697
26187
|
SelectContent2.displayName = SelectPrimitive2.Content.displayName;
|
|
25698
|
-
var SelectItem2 = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26188
|
+
var SelectItem2 = React29.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
|
|
25699
26189
|
SelectPrimitive2.Item,
|
|
25700
26190
|
{
|
|
25701
26191
|
ref,
|
|
@@ -25708,8 +26198,8 @@ var SelectItem2 = React29.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
25708
26198
|
),
|
|
25709
26199
|
...props,
|
|
25710
26200
|
children: [
|
|
25711
|
-
/* @__PURE__ */ (0,
|
|
25712
|
-
/* @__PURE__ */ (0,
|
|
26201
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectPrimitive2.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react15.Check, { className: "h-4 w-4 text-cupcode-purple" }) }) }),
|
|
26202
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectPrimitive2.ItemText, { children })
|
|
25713
26203
|
]
|
|
25714
26204
|
}
|
|
25715
26205
|
));
|
|
@@ -25723,21 +26213,21 @@ var SelectField = ({
|
|
|
25723
26213
|
options,
|
|
25724
26214
|
disabled
|
|
25725
26215
|
}) => {
|
|
25726
|
-
return /* @__PURE__ */ (0,
|
|
25727
|
-
label && /* @__PURE__ */ (0,
|
|
25728
|
-
/* @__PURE__ */ (0,
|
|
25729
|
-
/* @__PURE__ */ (0,
|
|
25730
|
-
/* @__PURE__ */ (0,
|
|
26216
|
+
return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "cc-stack space-2 w-full", children: [
|
|
26217
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
26218
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Select2, { value, onValueChange, disabled, children: [
|
|
26219
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectTrigger2, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectValue2, { placeholder }) }),
|
|
26220
|
+
/* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectContent2, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectGroup2, { children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectItem2, { value: option.value, children: option.label }, option.value)) }) })
|
|
25731
26221
|
] }),
|
|
25732
|
-
error && /* @__PURE__ */ (0,
|
|
26222
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
25733
26223
|
] });
|
|
25734
26224
|
};
|
|
25735
26225
|
|
|
25736
26226
|
// src/components/cupcode/SwitchField.tsx
|
|
25737
26227
|
var React30 = __toESM(require("react"), 1);
|
|
25738
26228
|
var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
|
|
25739
|
-
var
|
|
25740
|
-
var Switch2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26229
|
+
var import_jsx_runtime55 = require("react/jsx-runtime");
|
|
26230
|
+
var Switch2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
25741
26231
|
SwitchPrimitives2.Root,
|
|
25742
26232
|
{
|
|
25743
26233
|
className: cn(
|
|
@@ -25752,7 +26242,7 @@ var Switch2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
25752
26242
|
),
|
|
25753
26243
|
...props,
|
|
25754
26244
|
ref,
|
|
25755
|
-
children: /* @__PURE__ */ (0,
|
|
26245
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
|
|
25756
26246
|
SwitchPrimitives2.Thumb,
|
|
25757
26247
|
{
|
|
25758
26248
|
className: cn(
|
|
@@ -25768,21 +26258,21 @@ var Switch2 = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
25768
26258
|
));
|
|
25769
26259
|
Switch2.displayName = SwitchPrimitives2.Root.displayName;
|
|
25770
26260
|
var SwitchField = ({ label, description, ...props }) => {
|
|
25771
|
-
return /* @__PURE__ */ (0,
|
|
25772
|
-
/* @__PURE__ */ (0,
|
|
25773
|
-
label && /* @__PURE__ */ (0,
|
|
25774
|
-
description && /* @__PURE__ */ (0,
|
|
26261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center justify-between space-x-4", children: [
|
|
26262
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "cc-stack space-1 flex-1", children: [
|
|
26263
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink cursor-pointer", children: label }),
|
|
26264
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-xs text-muted-foreground", children: description })
|
|
25775
26265
|
] }),
|
|
25776
|
-
/* @__PURE__ */ (0,
|
|
26266
|
+
/* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Switch2, { ...props })
|
|
25777
26267
|
] });
|
|
25778
26268
|
};
|
|
25779
26269
|
|
|
25780
26270
|
// src/components/cupcode/TabsCupcode.tsx
|
|
25781
26271
|
var React31 = __toESM(require("react"), 1);
|
|
25782
26272
|
var TabsPrimitive2 = __toESM(require("@radix-ui/react-tabs"), 1);
|
|
25783
|
-
var
|
|
26273
|
+
var import_jsx_runtime56 = require("react/jsx-runtime");
|
|
25784
26274
|
var Tabs2 = TabsPrimitive2.Root;
|
|
25785
|
-
var TabsList2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26275
|
+
var TabsList2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
25786
26276
|
TabsPrimitive2.List,
|
|
25787
26277
|
{
|
|
25788
26278
|
ref,
|
|
@@ -25795,7 +26285,7 @@ var TabsList2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
25795
26285
|
}
|
|
25796
26286
|
));
|
|
25797
26287
|
TabsList2.displayName = TabsPrimitive2.List.displayName;
|
|
25798
|
-
var TabsTrigger2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26288
|
+
var TabsTrigger2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
25799
26289
|
TabsPrimitive2.Trigger,
|
|
25800
26290
|
{
|
|
25801
26291
|
ref,
|
|
@@ -25817,7 +26307,7 @@ var TabsTrigger2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
25817
26307
|
}
|
|
25818
26308
|
));
|
|
25819
26309
|
TabsTrigger2.displayName = TabsPrimitive2.Trigger.displayName;
|
|
25820
|
-
var TabsContent2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26310
|
+
var TabsContent2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
|
|
25821
26311
|
TabsPrimitive2.Content,
|
|
25822
26312
|
{
|
|
25823
26313
|
ref,
|
|
@@ -25834,12 +26324,12 @@ TabsContent2.displayName = TabsPrimitive2.Content.displayName;
|
|
|
25834
26324
|
|
|
25835
26325
|
// src/components/cupcode/TextareaField.tsx
|
|
25836
26326
|
var React32 = __toESM(require("react"), 1);
|
|
25837
|
-
var
|
|
26327
|
+
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
25838
26328
|
var TextareaField = React32.forwardRef(
|
|
25839
26329
|
({ className, label, error, ...props }, ref) => {
|
|
25840
|
-
return /* @__PURE__ */ (0,
|
|
25841
|
-
label && /* @__PURE__ */ (0,
|
|
25842
|
-
/* @__PURE__ */ (0,
|
|
26330
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "cc-stack space-2 w-full", children: [
|
|
26331
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
26332
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
25843
26333
|
"textarea",
|
|
25844
26334
|
{
|
|
25845
26335
|
className: cn(
|
|
@@ -25859,7 +26349,7 @@ var TextareaField = React32.forwardRef(
|
|
|
25859
26349
|
...props
|
|
25860
26350
|
}
|
|
25861
26351
|
),
|
|
25862
|
-
error && /* @__PURE__ */ (0,
|
|
26352
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
25863
26353
|
] });
|
|
25864
26354
|
}
|
|
25865
26355
|
);
|
|
@@ -25868,7 +26358,7 @@ TextareaField.displayName = "TextareaField";
|
|
|
25868
26358
|
// src/components/cupcode/ThemeToggle.tsx
|
|
25869
26359
|
var React33 = __toESM(require("react"), 1);
|
|
25870
26360
|
var import_lucide_react16 = require("lucide-react");
|
|
25871
|
-
var
|
|
26361
|
+
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
25872
26362
|
var THEME_STORAGE_KEY2 = "cupcode-theme";
|
|
25873
26363
|
function isThemeMode(value) {
|
|
25874
26364
|
return value === "light" || value === "dark";
|
|
@@ -25908,7 +26398,7 @@ function resolveTheme(defaultTheme) {
|
|
|
25908
26398
|
}
|
|
25909
26399
|
return defaultTheme;
|
|
25910
26400
|
}
|
|
25911
|
-
var
|
|
26401
|
+
var ThemeToggle2 = ({
|
|
25912
26402
|
className,
|
|
25913
26403
|
theme,
|
|
25914
26404
|
defaultTheme = "light",
|
|
@@ -25940,7 +26430,7 @@ var ThemeToggle = ({
|
|
|
25940
26430
|
return () => observer.disconnect();
|
|
25941
26431
|
}, [defaultTheme, isControlled]);
|
|
25942
26432
|
if (!mounted) {
|
|
25943
|
-
return /* @__PURE__ */ (0,
|
|
26433
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: cn("w-10 h-10 rounded-lg bg-muted", className) });
|
|
25944
26434
|
}
|
|
25945
26435
|
const handleToggle = () => {
|
|
25946
26436
|
const nextTheme = activeTheme === "dark" ? "light" : "dark";
|
|
@@ -25949,7 +26439,7 @@ var ThemeToggle = ({
|
|
|
25949
26439
|
}
|
|
25950
26440
|
onThemeChange == null ? void 0 : onThemeChange(nextTheme);
|
|
25951
26441
|
};
|
|
25952
|
-
return /* @__PURE__ */ (0,
|
|
26442
|
+
return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
|
|
25953
26443
|
"button",
|
|
25954
26444
|
{
|
|
25955
26445
|
onClick: handleToggle,
|
|
@@ -25962,9 +26452,9 @@ var ThemeToggle = ({
|
|
|
25962
26452
|
),
|
|
25963
26453
|
"aria-label": "Toggle theme",
|
|
25964
26454
|
children: [
|
|
25965
|
-
/* @__PURE__ */ (0,
|
|
25966
|
-
/* @__PURE__ */ (0,
|
|
25967
|
-
/* @__PURE__ */ (0,
|
|
26455
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react16.Sun, { className: "h-5 w-5 text-cupcode-purple rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
26456
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react16.Moon, { className: "absolute h-5 w-5 text-cupcode-hover rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
|
|
26457
|
+
/* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("span", { className: "sr-only", children: [
|
|
25968
26458
|
"Current theme: ",
|
|
25969
26459
|
activeTheme
|
|
25970
26460
|
] })
|
|
@@ -25973,12 +26463,140 @@ var ThemeToggle = ({
|
|
|
25973
26463
|
);
|
|
25974
26464
|
};
|
|
25975
26465
|
|
|
26466
|
+
// src/components/theme-provider.tsx
|
|
26467
|
+
var import_react24 = require("react");
|
|
26468
|
+
var import_react_dom = require("react-dom");
|
|
26469
|
+
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
26470
|
+
var STORAGE_KEY2 = "cupcode-theme";
|
|
26471
|
+
var LEGACY_STORAGE_KEY = "theme";
|
|
26472
|
+
function getPreferredTheme() {
|
|
26473
|
+
if (typeof window === "undefined") {
|
|
26474
|
+
return "light";
|
|
26475
|
+
}
|
|
26476
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
26477
|
+
}
|
|
26478
|
+
function getStoredTheme() {
|
|
26479
|
+
var _a78;
|
|
26480
|
+
if (typeof window === "undefined") {
|
|
26481
|
+
return null;
|
|
26482
|
+
}
|
|
26483
|
+
const storedTheme = (_a78 = window.localStorage.getItem(STORAGE_KEY2)) != null ? _a78 : window.localStorage.getItem(LEGACY_STORAGE_KEY);
|
|
26484
|
+
return storedTheme === "light" || storedTheme === "dark" ? storedTheme : null;
|
|
26485
|
+
}
|
|
26486
|
+
function applyThemeToRoot(theme) {
|
|
26487
|
+
const root = document.documentElement;
|
|
26488
|
+
root.classList.toggle("dark", theme === "dark");
|
|
26489
|
+
root.classList.toggle("light", theme === "light");
|
|
26490
|
+
root.dataset.theme = theme;
|
|
26491
|
+
root.style.colorScheme = theme;
|
|
26492
|
+
}
|
|
26493
|
+
function persistTheme(theme) {
|
|
26494
|
+
window.localStorage.setItem(STORAGE_KEY2, theme);
|
|
26495
|
+
window.localStorage.setItem(LEGACY_STORAGE_KEY, theme);
|
|
26496
|
+
}
|
|
26497
|
+
function ThemeProvider({ children }) {
|
|
26498
|
+
const [theme, setThemeState] = (0, import_react24.useState)(() => {
|
|
26499
|
+
var _a78;
|
|
26500
|
+
return (_a78 = getStoredTheme()) != null ? _a78 : getPreferredTheme();
|
|
26501
|
+
});
|
|
26502
|
+
const [mounted, setMounted] = (0, import_react24.useState)(false);
|
|
26503
|
+
(0, import_react24.useEffect)(() => {
|
|
26504
|
+
var _a78;
|
|
26505
|
+
const initialTheme = (_a78 = getStoredTheme()) != null ? _a78 : getPreferredTheme();
|
|
26506
|
+
setThemeState(initialTheme);
|
|
26507
|
+
applyThemeToRoot(initialTheme);
|
|
26508
|
+
setMounted(true);
|
|
26509
|
+
}, []);
|
|
26510
|
+
(0, import_react24.useEffect)(() => {
|
|
26511
|
+
if (!mounted) {
|
|
26512
|
+
return;
|
|
26513
|
+
}
|
|
26514
|
+
persistTheme(theme);
|
|
26515
|
+
applyThemeToRoot(theme);
|
|
26516
|
+
}, [mounted, theme]);
|
|
26517
|
+
(0, import_react24.useEffect)(() => {
|
|
26518
|
+
if (typeof window === "undefined") {
|
|
26519
|
+
return;
|
|
26520
|
+
}
|
|
26521
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
26522
|
+
const handleChange = () => {
|
|
26523
|
+
if (getStoredTheme()) {
|
|
26524
|
+
return;
|
|
26525
|
+
}
|
|
26526
|
+
const nextTheme = mediaQuery.matches ? "dark" : "light";
|
|
26527
|
+
setThemeState(nextTheme);
|
|
26528
|
+
applyThemeToRoot(nextTheme);
|
|
26529
|
+
};
|
|
26530
|
+
mediaQuery.addEventListener("change", handleChange);
|
|
26531
|
+
return () => mediaQuery.removeEventListener("change", handleChange);
|
|
26532
|
+
}, []);
|
|
26533
|
+
const setTheme = (0, import_react24.useCallback)((nextTheme) => {
|
|
26534
|
+
setThemeState(nextTheme);
|
|
26535
|
+
}, []);
|
|
26536
|
+
const toggleTheme = (0, import_react24.useCallback)((coords) => {
|
|
26537
|
+
var _a78;
|
|
26538
|
+
const documentWithTransition = document;
|
|
26539
|
+
const prefersReducedMotion = window.matchMedia(
|
|
26540
|
+
"(prefers-reduced-motion: reduce)"
|
|
26541
|
+
).matches;
|
|
26542
|
+
const supportsTransition = typeof documentWithTransition.startViewTransition === "function";
|
|
26543
|
+
const flipTheme = () => {
|
|
26544
|
+
setThemeState(
|
|
26545
|
+
(currentTheme) => currentTheme === "light" ? "dark" : "light"
|
|
26546
|
+
);
|
|
26547
|
+
};
|
|
26548
|
+
if (coords) {
|
|
26549
|
+
document.documentElement.style.setProperty("--theme-x", `${coords.x}px`);
|
|
26550
|
+
document.documentElement.style.setProperty("--theme-y", `${coords.y}px`);
|
|
26551
|
+
}
|
|
26552
|
+
if (!supportsTransition || prefersReducedMotion) {
|
|
26553
|
+
flipTheme();
|
|
26554
|
+
return;
|
|
26555
|
+
}
|
|
26556
|
+
(_a78 = documentWithTransition.startViewTransition) == null ? void 0 : _a78.call(documentWithTransition, () => {
|
|
26557
|
+
(0, import_react_dom.flushSync)(() => {
|
|
26558
|
+
flipTheme();
|
|
26559
|
+
});
|
|
26560
|
+
});
|
|
26561
|
+
}, []);
|
|
26562
|
+
const value = (0, import_react24.useMemo)(
|
|
26563
|
+
() => ({
|
|
26564
|
+
theme,
|
|
26565
|
+
setTheme,
|
|
26566
|
+
toggleTheme
|
|
26567
|
+
}),
|
|
26568
|
+
[theme, setTheme, toggleTheme]
|
|
26569
|
+
);
|
|
26570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ThemeContext.Provider, { value, children });
|
|
26571
|
+
}
|
|
26572
|
+
function ThemeScript() {
|
|
26573
|
+
const script = `
|
|
26574
|
+
(() => {
|
|
26575
|
+
const storageKey = "${STORAGE_KEY2}";
|
|
26576
|
+
const legacyStorageKey = "${LEGACY_STORAGE_KEY}";
|
|
26577
|
+
const storedTheme = localStorage.getItem(storageKey) ?? localStorage.getItem(legacyStorageKey);
|
|
26578
|
+
const theme =
|
|
26579
|
+
storedTheme === "light" || storedTheme === "dark"
|
|
26580
|
+
? storedTheme
|
|
26581
|
+
: window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
26582
|
+
? "dark"
|
|
26583
|
+
: "light";
|
|
26584
|
+
const root = document.documentElement;
|
|
26585
|
+
root.classList.toggle("dark", theme === "dark");
|
|
26586
|
+
root.classList.toggle("light", theme === "light");
|
|
26587
|
+
root.dataset.theme = theme;
|
|
26588
|
+
root.style.colorScheme = theme;
|
|
26589
|
+
})();
|
|
26590
|
+
`;
|
|
26591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("script", { dangerouslySetInnerHTML: { __html: script } });
|
|
26592
|
+
}
|
|
26593
|
+
|
|
25976
26594
|
// src/components/cupcode/TimelineCupcode.tsx
|
|
25977
|
-
var
|
|
26595
|
+
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
25978
26596
|
function Timeline({ items, variant = "vertical", className }) {
|
|
25979
26597
|
if (variant === "horizontal") {
|
|
25980
|
-
return /* @__PURE__ */ (0,
|
|
25981
|
-
/* @__PURE__ */ (0,
|
|
26598
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: cn("flex items-start gap-4 overflow-x-auto pb-4", className), children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col items-center min-w-[200px]", children: [
|
|
26599
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
25982
26600
|
"div",
|
|
25983
26601
|
{
|
|
25984
26602
|
className: cn(
|
|
@@ -25986,27 +26604,27 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
25986
26604
|
"transition-all duration-300",
|
|
25987
26605
|
item.active ? "cc-gradient-galaxy text-white elevation-3 scale-110" : "bg-muted text-muted-foreground"
|
|
25988
26606
|
),
|
|
25989
|
-
children: item.icon || /* @__PURE__ */ (0,
|
|
26607
|
+
children: item.icon || /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-sm font-bold", children: index + 1 })
|
|
25990
26608
|
}
|
|
25991
26609
|
),
|
|
25992
|
-
index < items.length - 1 && /* @__PURE__ */ (0,
|
|
26610
|
+
index < items.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: cn(
|
|
25993
26611
|
"h-1 w-full mb-3",
|
|
25994
26612
|
item.active ? "bg-cupcode-purple" : "bg-muted"
|
|
25995
26613
|
) }),
|
|
25996
|
-
/* @__PURE__ */ (0,
|
|
25997
|
-
/* @__PURE__ */ (0,
|
|
26614
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "text-center", children: [
|
|
26615
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h4", { className: cn(
|
|
25998
26616
|
"font-display font-semibold mb-1",
|
|
25999
26617
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
26000
26618
|
), children: item.title }),
|
|
26001
|
-
item.description && /* @__PURE__ */ (0,
|
|
26002
|
-
item.date && /* @__PURE__ */ (0,
|
|
26619
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-sm text-muted-foreground", children: item.description }),
|
|
26620
|
+
item.date && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs text-muted-foreground mt-1", children: item.date })
|
|
26003
26621
|
] })
|
|
26004
26622
|
] }, item.id)) });
|
|
26005
26623
|
}
|
|
26006
|
-
return /* @__PURE__ */ (0,
|
|
26007
|
-
/* @__PURE__ */ (0,
|
|
26008
|
-
items.map((item, index) => /* @__PURE__ */ (0,
|
|
26009
|
-
/* @__PURE__ */ (0,
|
|
26624
|
+
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: cn("relative space-6", className), children: [
|
|
26625
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "absolute left-6 top-0 bottom-0 w-0.5 bg-muted" }),
|
|
26626
|
+
items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "relative flex gap-6 pb-8 last:pb-0", children: [
|
|
26627
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
|
|
26010
26628
|
"div",
|
|
26011
26629
|
{
|
|
26012
26630
|
className: cn(
|
|
@@ -26014,16 +26632,16 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
26014
26632
|
"transition-all duration-300",
|
|
26015
26633
|
item.active ? "cc-gradient-galaxy text-white elevation-3" : "bg-muted text-muted-foreground"
|
|
26016
26634
|
),
|
|
26017
|
-
children: item.icon || /* @__PURE__ */ (0,
|
|
26635
|
+
children: item.icon || /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("span", { className: "text-sm font-bold", children: index + 1 })
|
|
26018
26636
|
}
|
|
26019
26637
|
),
|
|
26020
|
-
/* @__PURE__ */ (0,
|
|
26021
|
-
/* @__PURE__ */ (0,
|
|
26638
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex-1 pt-1", children: [
|
|
26639
|
+
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h4", { className: cn(
|
|
26022
26640
|
"font-display font-semibold mb-1",
|
|
26023
26641
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
26024
26642
|
), children: item.title }),
|
|
26025
|
-
item.description && /* @__PURE__ */ (0,
|
|
26026
|
-
item.date && /* @__PURE__ */ (0,
|
|
26643
|
+
item.description && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-sm text-muted-foreground mb-2", children: item.description }),
|
|
26644
|
+
item.date && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "text-xs text-muted-foreground", children: item.date })
|
|
26027
26645
|
] })
|
|
26028
26646
|
] }, item.id))
|
|
26029
26647
|
] });
|
|
@@ -26031,7 +26649,7 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
26031
26649
|
|
|
26032
26650
|
// src/components/cupcode/ToastCupcode.tsx
|
|
26033
26651
|
var import_lucide_react17 = require("lucide-react");
|
|
26034
|
-
var
|
|
26652
|
+
var import_jsx_runtime61 = require("react/jsx-runtime");
|
|
26035
26653
|
var variantStyles2 = {
|
|
26036
26654
|
success: {
|
|
26037
26655
|
gradient: "from-success/20 to-success/5",
|
|
@@ -26066,7 +26684,7 @@ var ToastCupcode = ({
|
|
|
26066
26684
|
}) => {
|
|
26067
26685
|
const style = variantStyles2[variant];
|
|
26068
26686
|
const Icon3 = style.icon;
|
|
26069
|
-
return /* @__PURE__ */ (0,
|
|
26687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
26070
26688
|
"div",
|
|
26071
26689
|
{
|
|
26072
26690
|
className: cn(
|
|
@@ -26078,18 +26696,18 @@ var ToastCupcode = ({
|
|
|
26078
26696
|
"min-w-[300px] max-w-[420px]",
|
|
26079
26697
|
"animate-slide-up"
|
|
26080
26698
|
),
|
|
26081
|
-
children: /* @__PURE__ */ (0,
|
|
26082
|
-
/* @__PURE__ */ (0,
|
|
26083
|
-
/* @__PURE__ */ (0,
|
|
26084
|
-
/* @__PURE__ */ (0,
|
|
26085
|
-
description && /* @__PURE__ */ (0,
|
|
26699
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start gap-3", children: [
|
|
26700
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Icon3, { className: cn("h-5 w-5 shrink-0 mt-0.5", style.iconColor) }),
|
|
26701
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex-1 space-y-1", children: [
|
|
26702
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm font-semibold text-cupcode-ink", children: title }),
|
|
26703
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-xs text-cupcode-ink/70", children: description })
|
|
26086
26704
|
] }),
|
|
26087
|
-
onClose && /* @__PURE__ */ (0,
|
|
26705
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
26088
26706
|
"button",
|
|
26089
26707
|
{
|
|
26090
26708
|
onClick: onClose,
|
|
26091
26709
|
className: "shrink-0 rounded-md p-1 hover:bg-cupcode-ink/10 transition-colors",
|
|
26092
|
-
children: /* @__PURE__ */ (0,
|
|
26710
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_lucide_react17.X, { className: "h-4 w-4 text-cupcode-ink/50" })
|
|
26093
26711
|
}
|
|
26094
26712
|
)
|
|
26095
26713
|
] })
|
|
@@ -26098,12 +26716,12 @@ var ToastCupcode = ({
|
|
|
26098
26716
|
};
|
|
26099
26717
|
|
|
26100
26718
|
// src/components/cupcode/VideoWatchButton.tsx
|
|
26101
|
-
var
|
|
26102
|
-
var
|
|
26103
|
-
var PlayGlyph = () => /* @__PURE__ */ (0,
|
|
26104
|
-
var VideoWatchButton =
|
|
26105
|
-
({ className, label = "
|
|
26106
|
-
return /* @__PURE__ */ (0,
|
|
26719
|
+
var import_react25 = __toESM(require("react"), 1);
|
|
26720
|
+
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
26721
|
+
var PlayGlyph = () => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", className: "h-[18px] w-[18px]", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("path", { d: "M6 4.5L13.5 9L6 13.5V4.5Z", fill: "currentColor" }) });
|
|
26722
|
+
var VideoWatchButton = import_react25.default.forwardRef(
|
|
26723
|
+
({ className, label = "Assistir", type = "button", "aria-label": ariaLabel, ...props }, ref) => {
|
|
26724
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
|
|
26107
26725
|
"button",
|
|
26108
26726
|
{
|
|
26109
26727
|
ref,
|
|
@@ -26112,18 +26730,18 @@ var VideoWatchButton = import_react22.default.forwardRef(
|
|
|
26112
26730
|
className: cn("cc-video-watch-btn", className),
|
|
26113
26731
|
...props,
|
|
26114
26732
|
children: [
|
|
26115
|
-
/* @__PURE__ */ (0,
|
|
26116
|
-
/* @__PURE__ */ (0,
|
|
26117
|
-
/* @__PURE__ */ (0,
|
|
26118
|
-
/* @__PURE__ */ (0,
|
|
26119
|
-
/* @__PURE__ */ (0,
|
|
26120
|
-
/* @__PURE__ */ (0,
|
|
26121
|
-
/* @__PURE__ */ (0,
|
|
26122
|
-
/* @__PURE__ */ (0,
|
|
26123
|
-
/* @__PURE__ */ (0,
|
|
26733
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "cc-video-watch-btn__bg", children: [
|
|
26734
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__icon", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(PlayGlyph, {}) }),
|
|
26735
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__label", children: label }),
|
|
26736
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "cc-video-watch-btn__mask", "aria-hidden": "true", children: [
|
|
26737
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--1" }),
|
|
26738
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--2" }),
|
|
26739
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--3" }),
|
|
26740
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--4" }),
|
|
26741
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--5" })
|
|
26124
26742
|
] })
|
|
26125
26743
|
] }),
|
|
26126
|
-
/* @__PURE__ */ (0,
|
|
26744
|
+
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "cc-video-watch-btn__glow", "aria-hidden": "true" })
|
|
26127
26745
|
]
|
|
26128
26746
|
}
|
|
26129
26747
|
);
|
|
@@ -26132,13 +26750,13 @@ var VideoWatchButton = import_react22.default.forwardRef(
|
|
|
26132
26750
|
VideoWatchButton.displayName = "VideoWatchButton";
|
|
26133
26751
|
|
|
26134
26752
|
// src/components/cupcode/TooltipCupcode.tsx
|
|
26135
|
-
var
|
|
26753
|
+
var React36 = __toESM(require("react"), 1);
|
|
26136
26754
|
var TooltipPrimitive2 = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
26137
|
-
var
|
|
26755
|
+
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
26138
26756
|
var TooltipProvider2 = TooltipPrimitive2.Provider;
|
|
26139
26757
|
var TooltipCupcode = TooltipPrimitive2.Root;
|
|
26140
26758
|
var TooltipTrigger2 = TooltipPrimitive2.Trigger;
|
|
26141
|
-
var TooltipContent2 =
|
|
26759
|
+
var TooltipContent2 = React36.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
|
|
26142
26760
|
TooltipPrimitive2.Content,
|
|
26143
26761
|
{
|
|
26144
26762
|
ref,
|
|
@@ -26159,14 +26777,14 @@ var TooltipContent2 = React35.forwardRef(({ className, sideOffset = 4, ...props
|
|
|
26159
26777
|
TooltipContent2.displayName = TooltipPrimitive2.Content.displayName;
|
|
26160
26778
|
|
|
26161
26779
|
// src/components/ui/accordion.tsx
|
|
26162
|
-
var
|
|
26780
|
+
var React37 = __toESM(require("react"), 1);
|
|
26163
26781
|
var AccordionPrimitive2 = __toESM(require("@radix-ui/react-accordion"), 1);
|
|
26164
26782
|
var import_lucide_react18 = require("lucide-react");
|
|
26165
|
-
var
|
|
26783
|
+
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
26166
26784
|
var Accordion = AccordionPrimitive2.Root;
|
|
26167
|
-
var AccordionItem2 =
|
|
26785
|
+
var AccordionItem2 = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
|
|
26168
26786
|
AccordionItem2.displayName = "AccordionItem";
|
|
26169
|
-
var AccordionTrigger2 =
|
|
26787
|
+
var AccordionTrigger2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
|
|
26170
26788
|
AccordionPrimitive2.Trigger,
|
|
26171
26789
|
{
|
|
26172
26790
|
ref,
|
|
@@ -26177,26 +26795,26 @@ var AccordionTrigger2 = React36.forwardRef(({ className, children, ...props }, r
|
|
|
26177
26795
|
...props,
|
|
26178
26796
|
children: [
|
|
26179
26797
|
children,
|
|
26180
|
-
/* @__PURE__ */ (0,
|
|
26798
|
+
/* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react18.ChevronDown, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
26181
26799
|
]
|
|
26182
26800
|
}
|
|
26183
26801
|
) }));
|
|
26184
26802
|
AccordionTrigger2.displayName = AccordionPrimitive2.Trigger.displayName;
|
|
26185
|
-
var AccordionContent2 =
|
|
26803
|
+
var AccordionContent2 = React37.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
26186
26804
|
AccordionPrimitive2.Content,
|
|
26187
26805
|
{
|
|
26188
26806
|
ref,
|
|
26189
26807
|
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
26190
26808
|
...props,
|
|
26191
|
-
children: /* @__PURE__ */ (0,
|
|
26809
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: cn("pb-4 pt-0", className), children })
|
|
26192
26810
|
}
|
|
26193
26811
|
));
|
|
26194
26812
|
AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
|
|
26195
26813
|
|
|
26196
26814
|
// src/components/ui/alert.tsx
|
|
26197
|
-
var
|
|
26815
|
+
var React38 = __toESM(require("react"), 1);
|
|
26198
26816
|
var import_class_variance_authority3 = require("class-variance-authority");
|
|
26199
|
-
var
|
|
26817
|
+
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
26200
26818
|
var alertVariants = (0, import_class_variance_authority3.cva)(
|
|
26201
26819
|
"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",
|
|
26202
26820
|
{
|
|
@@ -26211,14 +26829,14 @@ var alertVariants = (0, import_class_variance_authority3.cva)(
|
|
|
26211
26829
|
}
|
|
26212
26830
|
}
|
|
26213
26831
|
);
|
|
26214
|
-
var Alert =
|
|
26832
|
+
var Alert = React38.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
26215
26833
|
Alert.displayName = "Alert";
|
|
26216
|
-
var AlertTitle =
|
|
26217
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26834
|
+
var AlertTitle = React38.forwardRef(
|
|
26835
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
|
|
26218
26836
|
);
|
|
26219
26837
|
AlertTitle.displayName = "AlertTitle";
|
|
26220
|
-
var AlertDescription =
|
|
26221
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26838
|
+
var AlertDescription = React38.forwardRef(
|
|
26839
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
|
|
26222
26840
|
);
|
|
26223
26841
|
AlertDescription.displayName = "AlertDescription";
|
|
26224
26842
|
|
|
@@ -26227,14 +26845,14 @@ var AspectRatioPrimitive = __toESM(require("@radix-ui/react-aspect-ratio"), 1);
|
|
|
26227
26845
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
26228
26846
|
|
|
26229
26847
|
// src/components/ui/breadcrumb.tsx
|
|
26230
|
-
var
|
|
26848
|
+
var React39 = __toESM(require("react"), 1);
|
|
26231
26849
|
var import_react_slot2 = require("@radix-ui/react-slot");
|
|
26232
26850
|
var import_lucide_react19 = require("lucide-react");
|
|
26233
|
-
var
|
|
26234
|
-
var Breadcrumb =
|
|
26851
|
+
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
26852
|
+
var Breadcrumb = React39.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
26235
26853
|
Breadcrumb.displayName = "Breadcrumb";
|
|
26236
|
-
var BreadcrumbList =
|
|
26237
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26854
|
+
var BreadcrumbList = React39.forwardRef(
|
|
26855
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
26238
26856
|
"ol",
|
|
26239
26857
|
{
|
|
26240
26858
|
ref,
|
|
@@ -26247,17 +26865,17 @@ var BreadcrumbList = React38.forwardRef(
|
|
|
26247
26865
|
)
|
|
26248
26866
|
);
|
|
26249
26867
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
26250
|
-
var BreadcrumbItem =
|
|
26251
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26868
|
+
var BreadcrumbItem = React39.forwardRef(
|
|
26869
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
26252
26870
|
);
|
|
26253
26871
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
26254
|
-
var BreadcrumbLink =
|
|
26872
|
+
var BreadcrumbLink = React39.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
26255
26873
|
const Comp = asChild ? import_react_slot2.Slot : "a";
|
|
26256
|
-
return /* @__PURE__ */ (0,
|
|
26874
|
+
return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
26257
26875
|
});
|
|
26258
26876
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
26259
|
-
var BreadcrumbPage =
|
|
26260
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26877
|
+
var BreadcrumbPage = React39.forwardRef(
|
|
26878
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
|
|
26261
26879
|
"span",
|
|
26262
26880
|
{
|
|
26263
26881
|
ref,
|
|
@@ -26270,9 +26888,9 @@ var BreadcrumbPage = React38.forwardRef(
|
|
|
26270
26888
|
)
|
|
26271
26889
|
);
|
|
26272
26890
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
26273
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0,
|
|
26891
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children != null ? children : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react19.ChevronRight, {}) });
|
|
26274
26892
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
26275
|
-
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
26893
|
+
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
26276
26894
|
"span",
|
|
26277
26895
|
{
|
|
26278
26896
|
role: "presentation",
|
|
@@ -26280,8 +26898,8 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import
|
|
|
26280
26898
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
26281
26899
|
...props,
|
|
26282
26900
|
children: [
|
|
26283
|
-
/* @__PURE__ */ (0,
|
|
26284
|
-
/* @__PURE__ */ (0,
|
|
26901
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_lucide_react19.MoreHorizontal, { className: "h-4 w-4" }),
|
|
26902
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "sr-only", children: "More" })
|
|
26285
26903
|
]
|
|
26286
26904
|
}
|
|
26287
26905
|
);
|
|
@@ -26290,9 +26908,9 @@ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
|
26290
26908
|
// src/components/ui/calendar.tsx
|
|
26291
26909
|
var import_lucide_react20 = require("lucide-react");
|
|
26292
26910
|
var import_react_day_picker = require("react-day-picker");
|
|
26293
|
-
var
|
|
26911
|
+
var import_jsx_runtime67 = require("react/jsx-runtime");
|
|
26294
26912
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
26295
|
-
return /* @__PURE__ */ (0,
|
|
26913
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
26296
26914
|
import_react_day_picker.DayPicker,
|
|
26297
26915
|
{
|
|
26298
26916
|
showOutsideDays,
|
|
@@ -26327,9 +26945,9 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
26327
26945
|
components: {
|
|
26328
26946
|
Chevron: ({ orientation, className: className2, ...chevronProps }) => {
|
|
26329
26947
|
if (orientation === "left") {
|
|
26330
|
-
return /* @__PURE__ */ (0,
|
|
26948
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react20.ChevronLeft, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
26331
26949
|
}
|
|
26332
|
-
return /* @__PURE__ */ (0,
|
|
26950
|
+
return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_lucide_react20.ChevronRight, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
26333
26951
|
}
|
|
26334
26952
|
},
|
|
26335
26953
|
...props
|
|
@@ -26339,45 +26957,45 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
26339
26957
|
Calendar.displayName = "Calendar";
|
|
26340
26958
|
|
|
26341
26959
|
// src/components/ui/card.tsx
|
|
26342
|
-
var
|
|
26343
|
-
var
|
|
26344
|
-
var Card =
|
|
26960
|
+
var React40 = __toESM(require("react"), 1);
|
|
26961
|
+
var import_jsx_runtime68 = require("react/jsx-runtime");
|
|
26962
|
+
var Card = React40.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
|
|
26345
26963
|
Card.displayName = "Card";
|
|
26346
|
-
var CardHeader =
|
|
26347
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26964
|
+
var CardHeader = React40.forwardRef(
|
|
26965
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
26348
26966
|
);
|
|
26349
26967
|
CardHeader.displayName = "CardHeader";
|
|
26350
|
-
var CardTitle =
|
|
26351
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26968
|
+
var CardTitle = React40.forwardRef(
|
|
26969
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
|
|
26352
26970
|
);
|
|
26353
26971
|
CardTitle.displayName = "CardTitle";
|
|
26354
|
-
var CardDescription =
|
|
26355
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26972
|
+
var CardDescription = React40.forwardRef(
|
|
26973
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
26356
26974
|
);
|
|
26357
26975
|
CardDescription.displayName = "CardDescription";
|
|
26358
|
-
var CardContent =
|
|
26359
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26976
|
+
var CardContent = React40.forwardRef(
|
|
26977
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
26360
26978
|
);
|
|
26361
26979
|
CardContent.displayName = "CardContent";
|
|
26362
|
-
var CardFooter =
|
|
26363
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
26980
|
+
var CardFooter = React40.forwardRef(
|
|
26981
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
26364
26982
|
);
|
|
26365
26983
|
CardFooter.displayName = "CardFooter";
|
|
26366
26984
|
|
|
26367
26985
|
// src/components/ui/carousel.tsx
|
|
26368
|
-
var
|
|
26986
|
+
var React41 = __toESM(require("react"), 1);
|
|
26369
26987
|
var import_embla_carousel_react = __toESM(require("embla-carousel-react"), 1);
|
|
26370
26988
|
var import_lucide_react21 = require("lucide-react");
|
|
26371
|
-
var
|
|
26372
|
-
var CarouselContext =
|
|
26989
|
+
var import_jsx_runtime69 = require("react/jsx-runtime");
|
|
26990
|
+
var CarouselContext = React41.createContext(null);
|
|
26373
26991
|
function useCarousel() {
|
|
26374
|
-
const context =
|
|
26992
|
+
const context = React41.useContext(CarouselContext);
|
|
26375
26993
|
if (!context) {
|
|
26376
26994
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
26377
26995
|
}
|
|
26378
26996
|
return context;
|
|
26379
26997
|
}
|
|
26380
|
-
var Carousel =
|
|
26998
|
+
var Carousel = React41.forwardRef(
|
|
26381
26999
|
({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
|
|
26382
27000
|
const [carouselRef, api] = (0, import_embla_carousel_react.default)(
|
|
26383
27001
|
{
|
|
@@ -26386,22 +27004,22 @@ var Carousel = React40.forwardRef(
|
|
|
26386
27004
|
},
|
|
26387
27005
|
plugins
|
|
26388
27006
|
);
|
|
26389
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
26390
|
-
const [canScrollNext, setCanScrollNext] =
|
|
26391
|
-
const onSelect =
|
|
27007
|
+
const [canScrollPrev, setCanScrollPrev] = React41.useState(false);
|
|
27008
|
+
const [canScrollNext, setCanScrollNext] = React41.useState(false);
|
|
27009
|
+
const onSelect = React41.useCallback((api2) => {
|
|
26392
27010
|
if (!api2) {
|
|
26393
27011
|
return;
|
|
26394
27012
|
}
|
|
26395
27013
|
setCanScrollPrev(api2.canScrollPrev());
|
|
26396
27014
|
setCanScrollNext(api2.canScrollNext());
|
|
26397
27015
|
}, []);
|
|
26398
|
-
const scrollPrev =
|
|
27016
|
+
const scrollPrev = React41.useCallback(() => {
|
|
26399
27017
|
api == null ? void 0 : api.scrollPrev();
|
|
26400
27018
|
}, [api]);
|
|
26401
|
-
const scrollNext =
|
|
27019
|
+
const scrollNext = React41.useCallback(() => {
|
|
26402
27020
|
api == null ? void 0 : api.scrollNext();
|
|
26403
27021
|
}, [api]);
|
|
26404
|
-
const handleKeyDown =
|
|
27022
|
+
const handleKeyDown = React41.useCallback(
|
|
26405
27023
|
(event) => {
|
|
26406
27024
|
if (event.key === "ArrowLeft") {
|
|
26407
27025
|
event.preventDefault();
|
|
@@ -26413,13 +27031,13 @@ var Carousel = React40.forwardRef(
|
|
|
26413
27031
|
},
|
|
26414
27032
|
[scrollPrev, scrollNext]
|
|
26415
27033
|
);
|
|
26416
|
-
|
|
27034
|
+
React41.useEffect(() => {
|
|
26417
27035
|
if (!api || !setApi) {
|
|
26418
27036
|
return;
|
|
26419
27037
|
}
|
|
26420
27038
|
setApi(api);
|
|
26421
27039
|
}, [api, setApi]);
|
|
26422
|
-
|
|
27040
|
+
React41.useEffect(() => {
|
|
26423
27041
|
if (!api) {
|
|
26424
27042
|
return;
|
|
26425
27043
|
}
|
|
@@ -26430,7 +27048,7 @@ var Carousel = React40.forwardRef(
|
|
|
26430
27048
|
api == null ? void 0 : api.off("select", onSelect);
|
|
26431
27049
|
};
|
|
26432
27050
|
}, [api, onSelect]);
|
|
26433
|
-
return /* @__PURE__ */ (0,
|
|
27051
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26434
27052
|
CarouselContext.Provider,
|
|
26435
27053
|
{
|
|
26436
27054
|
value: {
|
|
@@ -26443,7 +27061,7 @@ var Carousel = React40.forwardRef(
|
|
|
26443
27061
|
canScrollPrev,
|
|
26444
27062
|
canScrollNext
|
|
26445
27063
|
},
|
|
26446
|
-
children: /* @__PURE__ */ (0,
|
|
27064
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26447
27065
|
"div",
|
|
26448
27066
|
{
|
|
26449
27067
|
ref,
|
|
@@ -26460,10 +27078,10 @@ var Carousel = React40.forwardRef(
|
|
|
26460
27078
|
}
|
|
26461
27079
|
);
|
|
26462
27080
|
Carousel.displayName = "Carousel";
|
|
26463
|
-
var CarouselContent =
|
|
27081
|
+
var CarouselContent = React41.forwardRef(
|
|
26464
27082
|
({ className, ...props }, ref) => {
|
|
26465
27083
|
const { carouselRef, orientation } = useCarousel();
|
|
26466
|
-
return /* @__PURE__ */ (0,
|
|
27084
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26467
27085
|
"div",
|
|
26468
27086
|
{
|
|
26469
27087
|
ref,
|
|
@@ -26474,10 +27092,10 @@ var CarouselContent = React40.forwardRef(
|
|
|
26474
27092
|
}
|
|
26475
27093
|
);
|
|
26476
27094
|
CarouselContent.displayName = "CarouselContent";
|
|
26477
|
-
var CarouselItem =
|
|
27095
|
+
var CarouselItem = React41.forwardRef(
|
|
26478
27096
|
({ className, ...props }, ref) => {
|
|
26479
27097
|
const { orientation } = useCarousel();
|
|
26480
|
-
return /* @__PURE__ */ (0,
|
|
27098
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
|
|
26481
27099
|
"div",
|
|
26482
27100
|
{
|
|
26483
27101
|
ref,
|
|
@@ -26490,10 +27108,10 @@ var CarouselItem = React40.forwardRef(
|
|
|
26490
27108
|
}
|
|
26491
27109
|
);
|
|
26492
27110
|
CarouselItem.displayName = "CarouselItem";
|
|
26493
|
-
var CarouselPrevious =
|
|
27111
|
+
var CarouselPrevious = React41.forwardRef(
|
|
26494
27112
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
26495
27113
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
26496
|
-
return /* @__PURE__ */ (0,
|
|
27114
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26497
27115
|
Button,
|
|
26498
27116
|
{
|
|
26499
27117
|
ref,
|
|
@@ -26508,18 +27126,18 @@ var CarouselPrevious = React40.forwardRef(
|
|
|
26508
27126
|
onClick: scrollPrev,
|
|
26509
27127
|
...props,
|
|
26510
27128
|
children: [
|
|
26511
|
-
/* @__PURE__ */ (0,
|
|
26512
|
-
/* @__PURE__ */ (0,
|
|
27129
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react21.ArrowLeft, { className: "h-4 w-4" }),
|
|
27130
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "sr-only", children: "Previous slide" })
|
|
26513
27131
|
]
|
|
26514
27132
|
}
|
|
26515
27133
|
);
|
|
26516
27134
|
}
|
|
26517
27135
|
);
|
|
26518
27136
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
26519
|
-
var CarouselNext =
|
|
27137
|
+
var CarouselNext = React41.forwardRef(
|
|
26520
27138
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
26521
27139
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
26522
|
-
return /* @__PURE__ */ (0,
|
|
27140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
|
|
26523
27141
|
Button,
|
|
26524
27142
|
{
|
|
26525
27143
|
ref,
|
|
@@ -26534,8 +27152,8 @@ var CarouselNext = React40.forwardRef(
|
|
|
26534
27152
|
onClick: scrollNext,
|
|
26535
27153
|
...props,
|
|
26536
27154
|
children: [
|
|
26537
|
-
/* @__PURE__ */ (0,
|
|
26538
|
-
/* @__PURE__ */ (0,
|
|
27155
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react21.ArrowRight, { className: "h-4 w-4" }),
|
|
27156
|
+
/* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "sr-only", children: "Next slide" })
|
|
26539
27157
|
]
|
|
26540
27158
|
}
|
|
26541
27159
|
);
|
|
@@ -26544,22 +27162,22 @@ var CarouselNext = React40.forwardRef(
|
|
|
26544
27162
|
CarouselNext.displayName = "CarouselNext";
|
|
26545
27163
|
|
|
26546
27164
|
// src/components/ui/chart.tsx
|
|
26547
|
-
var
|
|
27165
|
+
var React42 = __toESM(require("react"), 1);
|
|
26548
27166
|
var RechartsPrimitive = __toESM(require("recharts"), 1);
|
|
26549
|
-
var
|
|
27167
|
+
var import_jsx_runtime70 = require("react/jsx-runtime");
|
|
26550
27168
|
var THEMES = { light: "", dark: ".dark" };
|
|
26551
|
-
var ChartContext =
|
|
27169
|
+
var ChartContext = React42.createContext(null);
|
|
26552
27170
|
function useChart() {
|
|
26553
|
-
const context =
|
|
27171
|
+
const context = React42.useContext(ChartContext);
|
|
26554
27172
|
if (!context) {
|
|
26555
27173
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
26556
27174
|
}
|
|
26557
27175
|
return context;
|
|
26558
27176
|
}
|
|
26559
|
-
var ChartContainer =
|
|
26560
|
-
const uniqueId =
|
|
27177
|
+
var ChartContainer = React42.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
27178
|
+
const uniqueId = React42.useId();
|
|
26561
27179
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
26562
|
-
return /* @__PURE__ */ (0,
|
|
27180
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
26563
27181
|
"div",
|
|
26564
27182
|
{
|
|
26565
27183
|
"data-chart": chartId,
|
|
@@ -26570,8 +27188,8 @@ var ChartContainer = React41.forwardRef(({ id, className, children, config, ...p
|
|
|
26570
27188
|
),
|
|
26571
27189
|
...props,
|
|
26572
27190
|
children: [
|
|
26573
|
-
/* @__PURE__ */ (0,
|
|
26574
|
-
/* @__PURE__ */ (0,
|
|
27191
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(ChartStyle, { id: chartId, config }),
|
|
27192
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)(RechartsPrimitive.ResponsiveContainer, { children })
|
|
26575
27193
|
]
|
|
26576
27194
|
}
|
|
26577
27195
|
) });
|
|
@@ -26582,7 +27200,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
26582
27200
|
if (!colorConfig.length) {
|
|
26583
27201
|
return null;
|
|
26584
27202
|
}
|
|
26585
|
-
return /* @__PURE__ */ (0,
|
|
27203
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26586
27204
|
"style",
|
|
26587
27205
|
{
|
|
26588
27206
|
dangerouslySetInnerHTML: {
|
|
@@ -26602,7 +27220,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
26602
27220
|
);
|
|
26603
27221
|
};
|
|
26604
27222
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
26605
|
-
var ChartTooltipContent =
|
|
27223
|
+
var ChartTooltipContent = React42.forwardRef(
|
|
26606
27224
|
({
|
|
26607
27225
|
active,
|
|
26608
27226
|
payload,
|
|
@@ -26619,7 +27237,7 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26619
27237
|
labelKey
|
|
26620
27238
|
}, ref) => {
|
|
26621
27239
|
const { config } = useChart();
|
|
26622
|
-
const tooltipLabel =
|
|
27240
|
+
const tooltipLabel = React42.useMemo(() => {
|
|
26623
27241
|
var _a78;
|
|
26624
27242
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
26625
27243
|
return null;
|
|
@@ -26629,18 +27247,18 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26629
27247
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26630
27248
|
const value = !labelKey && typeof label === "string" ? ((_a78 = config[label]) == null ? void 0 : _a78.label) || label : itemConfig == null ? void 0 : itemConfig.label;
|
|
26631
27249
|
if (labelFormatter) {
|
|
26632
|
-
return /* @__PURE__ */ (0,
|
|
27250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
26633
27251
|
}
|
|
26634
27252
|
if (!value) {
|
|
26635
27253
|
return null;
|
|
26636
27254
|
}
|
|
26637
|
-
return /* @__PURE__ */ (0,
|
|
27255
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: cn("font-medium", labelClassName), children: value });
|
|
26638
27256
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
26639
27257
|
if (!active || !(payload == null ? void 0 : payload.length)) {
|
|
26640
27258
|
return null;
|
|
26641
27259
|
}
|
|
26642
27260
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
26643
|
-
return /* @__PURE__ */ (0,
|
|
27261
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
26644
27262
|
"div",
|
|
26645
27263
|
{
|
|
26646
27264
|
ref,
|
|
@@ -26650,19 +27268,19 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26650
27268
|
),
|
|
26651
27269
|
children: [
|
|
26652
27270
|
!nestLabel ? tooltipLabel : null,
|
|
26653
|
-
/* @__PURE__ */ (0,
|
|
27271
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
26654
27272
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
26655
27273
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26656
27274
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
26657
|
-
return /* @__PURE__ */ (0,
|
|
27275
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26658
27276
|
"div",
|
|
26659
27277
|
{
|
|
26660
27278
|
className: cn(
|
|
26661
27279
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
26662
27280
|
indicator === "dot" && "items-center"
|
|
26663
27281
|
),
|
|
26664
|
-
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0,
|
|
26665
|
-
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ (0,
|
|
27282
|
+
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_jsx_runtime70.Fragment, { children: [
|
|
27283
|
+
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26666
27284
|
"div",
|
|
26667
27285
|
{
|
|
26668
27286
|
className: cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
|
|
@@ -26677,7 +27295,7 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26677
27295
|
}
|
|
26678
27296
|
}
|
|
26679
27297
|
),
|
|
26680
|
-
/* @__PURE__ */ (0,
|
|
27298
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
26681
27299
|
"div",
|
|
26682
27300
|
{
|
|
26683
27301
|
className: cn(
|
|
@@ -26685,11 +27303,11 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26685
27303
|
nestLabel ? "items-end" : "items-center"
|
|
26686
27304
|
),
|
|
26687
27305
|
children: [
|
|
26688
|
-
/* @__PURE__ */ (0,
|
|
27306
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "grid gap-1.5", children: [
|
|
26689
27307
|
nestLabel ? tooltipLabel : null,
|
|
26690
|
-
/* @__PURE__ */ (0,
|
|
27308
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
|
|
26691
27309
|
] }),
|
|
26692
|
-
item.value && /* @__PURE__ */ (0,
|
|
27310
|
+
item.value && /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
26693
27311
|
]
|
|
26694
27312
|
}
|
|
26695
27313
|
)
|
|
@@ -26705,12 +27323,12 @@ var ChartTooltipContent = React41.forwardRef(
|
|
|
26705
27323
|
);
|
|
26706
27324
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
26707
27325
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
26708
|
-
var ChartLegendContent =
|
|
27326
|
+
var ChartLegendContent = React42.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
26709
27327
|
const { config } = useChart();
|
|
26710
27328
|
if (!(payload == null ? void 0 : payload.length)) {
|
|
26711
27329
|
return null;
|
|
26712
27330
|
}
|
|
26713
|
-
return /* @__PURE__ */ (0,
|
|
27331
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26714
27332
|
"div",
|
|
26715
27333
|
{
|
|
26716
27334
|
ref,
|
|
@@ -26718,12 +27336,12 @@ var ChartLegendContent = React41.forwardRef(({ className, hideIcon = false, payl
|
|
|
26718
27336
|
children: payload.map((item) => {
|
|
26719
27337
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
26720
27338
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
26721
|
-
return /* @__PURE__ */ (0,
|
|
27339
|
+
return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
|
|
26722
27340
|
"div",
|
|
26723
27341
|
{
|
|
26724
27342
|
className: cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
|
|
26725
27343
|
children: [
|
|
26726
|
-
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ (0,
|
|
27344
|
+
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(itemConfig.icon, {}) : /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
|
|
26727
27345
|
"div",
|
|
26728
27346
|
{
|
|
26729
27347
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -26757,11 +27375,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
26757
27375
|
}
|
|
26758
27376
|
|
|
26759
27377
|
// src/components/ui/checkbox.tsx
|
|
26760
|
-
var
|
|
27378
|
+
var React43 = __toESM(require("react"), 1);
|
|
26761
27379
|
var CheckboxPrimitive = __toESM(require("@radix-ui/react-checkbox"), 1);
|
|
26762
27380
|
var import_lucide_react22 = require("lucide-react");
|
|
26763
|
-
var
|
|
26764
|
-
var Checkbox =
|
|
27381
|
+
var import_jsx_runtime71 = require("react/jsx-runtime");
|
|
27382
|
+
var Checkbox = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
|
|
26765
27383
|
CheckboxPrimitive.Root,
|
|
26766
27384
|
{
|
|
26767
27385
|
ref,
|
|
@@ -26770,7 +27388,7 @@ var Checkbox = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
26770
27388
|
className
|
|
26771
27389
|
),
|
|
26772
27390
|
...props,
|
|
26773
|
-
children: /* @__PURE__ */ (0,
|
|
27391
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react22.Check, { className: "h-4 w-4" }) })
|
|
26774
27392
|
}
|
|
26775
27393
|
));
|
|
26776
27394
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
@@ -26782,11 +27400,11 @@ var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
|
26782
27400
|
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
26783
27401
|
|
|
26784
27402
|
// src/components/ui/command.tsx
|
|
26785
|
-
var
|
|
27403
|
+
var React44 = __toESM(require("react"), 1);
|
|
26786
27404
|
var import_cmdk = require("cmdk");
|
|
26787
27405
|
var import_lucide_react23 = require("lucide-react");
|
|
26788
|
-
var
|
|
26789
|
-
var Command =
|
|
27406
|
+
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
27407
|
+
var Command = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26790
27408
|
import_cmdk.Command,
|
|
26791
27409
|
{
|
|
26792
27410
|
ref,
|
|
@@ -26799,11 +27417,11 @@ var Command = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
26799
27417
|
));
|
|
26800
27418
|
Command.displayName = import_cmdk.Command.displayName;
|
|
26801
27419
|
var CommandDialog = ({ children, ...props }) => {
|
|
26802
|
-
return /* @__PURE__ */ (0,
|
|
27420
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Dialog, { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) }) });
|
|
26803
27421
|
};
|
|
26804
|
-
var CommandInput =
|
|
26805
|
-
/* @__PURE__ */ (0,
|
|
26806
|
-
/* @__PURE__ */ (0,
|
|
27422
|
+
var CommandInput = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
27423
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react23.Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
27424
|
+
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26807
27425
|
import_cmdk.Command.Input,
|
|
26808
27426
|
{
|
|
26809
27427
|
ref,
|
|
@@ -26816,7 +27434,7 @@ var CommandInput = React43.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
26816
27434
|
)
|
|
26817
27435
|
] }));
|
|
26818
27436
|
CommandInput.displayName = import_cmdk.Command.Input.displayName;
|
|
26819
|
-
var CommandList =
|
|
27437
|
+
var CommandList = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26820
27438
|
import_cmdk.Command.List,
|
|
26821
27439
|
{
|
|
26822
27440
|
ref,
|
|
@@ -26825,9 +27443,9 @@ var CommandList = React43.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
26825
27443
|
}
|
|
26826
27444
|
));
|
|
26827
27445
|
CommandList.displayName = import_cmdk.Command.List.displayName;
|
|
26828
|
-
var CommandEmpty =
|
|
27446
|
+
var CommandEmpty = React44.forwardRef((props, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_cmdk.Command.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
26829
27447
|
CommandEmpty.displayName = import_cmdk.Command.Empty.displayName;
|
|
26830
|
-
var CommandGroup =
|
|
27448
|
+
var CommandGroup = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26831
27449
|
import_cmdk.Command.Group,
|
|
26832
27450
|
{
|
|
26833
27451
|
ref,
|
|
@@ -26839,9 +27457,9 @@ var CommandGroup = React43.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
26839
27457
|
}
|
|
26840
27458
|
));
|
|
26841
27459
|
CommandGroup.displayName = import_cmdk.Command.Group.displayName;
|
|
26842
|
-
var CommandSeparator =
|
|
27460
|
+
var CommandSeparator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_cmdk.Command.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
26843
27461
|
CommandSeparator.displayName = import_cmdk.Command.Separator.displayName;
|
|
26844
|
-
var CommandItem =
|
|
27462
|
+
var CommandItem = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
26845
27463
|
import_cmdk.Command.Item,
|
|
26846
27464
|
{
|
|
26847
27465
|
ref,
|
|
@@ -26854,22 +27472,22 @@ var CommandItem = React43.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
26854
27472
|
));
|
|
26855
27473
|
CommandItem.displayName = import_cmdk.Command.Item.displayName;
|
|
26856
27474
|
var CommandShortcut = ({ className, ...props }) => {
|
|
26857
|
-
return /* @__PURE__ */ (0,
|
|
27475
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
26858
27476
|
};
|
|
26859
27477
|
CommandShortcut.displayName = "CommandShortcut";
|
|
26860
27478
|
|
|
26861
27479
|
// src/components/ui/context-menu.tsx
|
|
26862
|
-
var
|
|
27480
|
+
var React45 = __toESM(require("react"), 1);
|
|
26863
27481
|
var ContextMenuPrimitive = __toESM(require("@radix-ui/react-context-menu"), 1);
|
|
26864
27482
|
var import_lucide_react24 = require("lucide-react");
|
|
26865
|
-
var
|
|
27483
|
+
var import_jsx_runtime73 = require("react/jsx-runtime");
|
|
26866
27484
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
26867
27485
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
26868
27486
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
26869
27487
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
26870
27488
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
26871
27489
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
26872
|
-
var ContextMenuSubTrigger =
|
|
27490
|
+
var ContextMenuSubTrigger = React45.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
26873
27491
|
ContextMenuPrimitive.SubTrigger,
|
|
26874
27492
|
{
|
|
26875
27493
|
ref,
|
|
@@ -26881,12 +27499,12 @@ var ContextMenuSubTrigger = React44.forwardRef(({ className, inset, children, ..
|
|
|
26881
27499
|
...props,
|
|
26882
27500
|
children: [
|
|
26883
27501
|
children,
|
|
26884
|
-
/* @__PURE__ */ (0,
|
|
27502
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react24.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
26885
27503
|
]
|
|
26886
27504
|
}
|
|
26887
27505
|
));
|
|
26888
27506
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
26889
|
-
var ContextMenuSubContent =
|
|
27507
|
+
var ContextMenuSubContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
26890
27508
|
ContextMenuPrimitive.SubContent,
|
|
26891
27509
|
{
|
|
26892
27510
|
ref,
|
|
@@ -26898,7 +27516,7 @@ var ContextMenuSubContent = React44.forwardRef(({ className, ...props }, ref) =>
|
|
|
26898
27516
|
}
|
|
26899
27517
|
));
|
|
26900
27518
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
26901
|
-
var ContextMenuContent =
|
|
27519
|
+
var ContextMenuContent = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
26902
27520
|
ContextMenuPrimitive.Content,
|
|
26903
27521
|
{
|
|
26904
27522
|
ref,
|
|
@@ -26910,7 +27528,7 @@ var ContextMenuContent = React44.forwardRef(({ className, ...props }, ref) => /*
|
|
|
26910
27528
|
}
|
|
26911
27529
|
) }));
|
|
26912
27530
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
26913
|
-
var ContextMenuItem =
|
|
27531
|
+
var ContextMenuItem = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
26914
27532
|
ContextMenuPrimitive.Item,
|
|
26915
27533
|
{
|
|
26916
27534
|
ref,
|
|
@@ -26923,7 +27541,7 @@ var ContextMenuItem = React44.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
26923
27541
|
}
|
|
26924
27542
|
));
|
|
26925
27543
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
26926
|
-
var ContextMenuCheckboxItem =
|
|
27544
|
+
var ContextMenuCheckboxItem = React45.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
26927
27545
|
ContextMenuPrimitive.CheckboxItem,
|
|
26928
27546
|
{
|
|
26929
27547
|
ref,
|
|
@@ -26934,13 +27552,13 @@ var ContextMenuCheckboxItem = React44.forwardRef(({ className, children, checked
|
|
|
26934
27552
|
checked,
|
|
26935
27553
|
...props,
|
|
26936
27554
|
children: [
|
|
26937
|
-
/* @__PURE__ */ (0,
|
|
27555
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react24.Check, { className: "h-4 w-4" }) }) }),
|
|
26938
27556
|
children
|
|
26939
27557
|
]
|
|
26940
27558
|
}
|
|
26941
27559
|
));
|
|
26942
27560
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
26943
|
-
var ContextMenuRadioItem =
|
|
27561
|
+
var ContextMenuRadioItem = React45.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
26944
27562
|
ContextMenuPrimitive.RadioItem,
|
|
26945
27563
|
{
|
|
26946
27564
|
ref,
|
|
@@ -26950,13 +27568,13 @@ var ContextMenuRadioItem = React44.forwardRef(({ className, children, ...props }
|
|
|
26950
27568
|
),
|
|
26951
27569
|
...props,
|
|
26952
27570
|
children: [
|
|
26953
|
-
/* @__PURE__ */ (0,
|
|
27571
|
+
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react24.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
26954
27572
|
children
|
|
26955
27573
|
]
|
|
26956
27574
|
}
|
|
26957
27575
|
));
|
|
26958
27576
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
26959
|
-
var ContextMenuLabel =
|
|
27577
|
+
var ContextMenuLabel = React45.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
26960
27578
|
ContextMenuPrimitive.Label,
|
|
26961
27579
|
{
|
|
26962
27580
|
ref,
|
|
@@ -26965,39 +27583,39 @@ var ContextMenuLabel = React44.forwardRef(({ className, inset, ...props }, ref)
|
|
|
26965
27583
|
}
|
|
26966
27584
|
));
|
|
26967
27585
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
26968
|
-
var ContextMenuSeparator =
|
|
27586
|
+
var ContextMenuSeparator = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
26969
27587
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
26970
27588
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
26971
|
-
return /* @__PURE__ */ (0,
|
|
27589
|
+
return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
26972
27590
|
};
|
|
26973
27591
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
26974
27592
|
|
|
26975
27593
|
// src/components/ui/form.tsx
|
|
26976
|
-
var
|
|
27594
|
+
var React47 = __toESM(require("react"), 1);
|
|
26977
27595
|
var import_react_slot3 = require("@radix-ui/react-slot");
|
|
26978
27596
|
var import_react_hook_form = require("react-hook-form");
|
|
26979
27597
|
|
|
26980
27598
|
// src/components/ui/label.tsx
|
|
26981
|
-
var
|
|
27599
|
+
var React46 = __toESM(require("react"), 1);
|
|
26982
27600
|
var LabelPrimitive = __toESM(require("@radix-ui/react-label"), 1);
|
|
26983
27601
|
var import_class_variance_authority4 = require("class-variance-authority");
|
|
26984
|
-
var
|
|
27602
|
+
var import_jsx_runtime74 = require("react/jsx-runtime");
|
|
26985
27603
|
var labelVariants = (0, import_class_variance_authority4.cva)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
26986
|
-
var Label4 =
|
|
27604
|
+
var Label4 = React46.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
26987
27605
|
Label4.displayName = LabelPrimitive.Root.displayName;
|
|
26988
27606
|
|
|
26989
27607
|
// src/components/ui/form.tsx
|
|
26990
|
-
var
|
|
27608
|
+
var import_jsx_runtime75 = require("react/jsx-runtime");
|
|
26991
27609
|
var Form = import_react_hook_form.FormProvider;
|
|
26992
|
-
var FormFieldContext =
|
|
27610
|
+
var FormFieldContext = React47.createContext({});
|
|
26993
27611
|
var FormField = ({
|
|
26994
27612
|
...props
|
|
26995
27613
|
}) => {
|
|
26996
|
-
return /* @__PURE__ */ (0,
|
|
27614
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_react_hook_form.Controller, { ...props }) });
|
|
26997
27615
|
};
|
|
26998
27616
|
var useFormField = () => {
|
|
26999
|
-
const fieldContext =
|
|
27000
|
-
const itemContext =
|
|
27617
|
+
const fieldContext = React47.useContext(FormFieldContext);
|
|
27618
|
+
const itemContext = React47.useContext(FormItemContext);
|
|
27001
27619
|
const { getFieldState, formState } = (0, import_react_hook_form.useFormContext)();
|
|
27002
27620
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
27003
27621
|
if (!fieldContext) {
|
|
@@ -27013,23 +27631,23 @@ var useFormField = () => {
|
|
|
27013
27631
|
...fieldState
|
|
27014
27632
|
};
|
|
27015
27633
|
};
|
|
27016
|
-
var FormItemContext =
|
|
27017
|
-
var FormItem =
|
|
27634
|
+
var FormItemContext = React47.createContext({});
|
|
27635
|
+
var FormItem = React47.forwardRef(
|
|
27018
27636
|
({ className, ...props }, ref) => {
|
|
27019
|
-
const id =
|
|
27020
|
-
return /* @__PURE__ */ (0,
|
|
27637
|
+
const id = React47.useId();
|
|
27638
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
27021
27639
|
}
|
|
27022
27640
|
);
|
|
27023
27641
|
FormItem.displayName = "FormItem";
|
|
27024
|
-
var FormLabel =
|
|
27642
|
+
var FormLabel = React47.forwardRef(({ className, ...props }, ref) => {
|
|
27025
27643
|
const { error, formItemId } = useFormField();
|
|
27026
|
-
return /* @__PURE__ */ (0,
|
|
27644
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Label4, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
27027
27645
|
});
|
|
27028
27646
|
FormLabel.displayName = "FormLabel";
|
|
27029
|
-
var FormControl =
|
|
27647
|
+
var FormControl = React47.forwardRef(
|
|
27030
27648
|
({ ...props }, ref) => {
|
|
27031
27649
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
27032
|
-
return /* @__PURE__ */ (0,
|
|
27650
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
|
|
27033
27651
|
import_react_slot3.Slot,
|
|
27034
27652
|
{
|
|
27035
27653
|
ref,
|
|
@@ -27042,42 +27660,42 @@ var FormControl = React46.forwardRef(
|
|
|
27042
27660
|
}
|
|
27043
27661
|
);
|
|
27044
27662
|
FormControl.displayName = "FormControl";
|
|
27045
|
-
var FormDescription =
|
|
27663
|
+
var FormDescription = React47.forwardRef(
|
|
27046
27664
|
({ className, ...props }, ref) => {
|
|
27047
27665
|
const { formDescriptionId } = useFormField();
|
|
27048
|
-
return /* @__PURE__ */ (0,
|
|
27666
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
27049
27667
|
}
|
|
27050
27668
|
);
|
|
27051
27669
|
FormDescription.displayName = "FormDescription";
|
|
27052
|
-
var FormMessage =
|
|
27670
|
+
var FormMessage = React47.forwardRef(
|
|
27053
27671
|
({ className, children, ...props }, ref) => {
|
|
27054
27672
|
const { error, formMessageId } = useFormField();
|
|
27055
27673
|
const body = error ? String(error == null ? void 0 : error.message) : children;
|
|
27056
27674
|
if (!body) {
|
|
27057
27675
|
return null;
|
|
27058
27676
|
}
|
|
27059
|
-
return /* @__PURE__ */ (0,
|
|
27677
|
+
return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
|
|
27060
27678
|
}
|
|
27061
27679
|
);
|
|
27062
27680
|
FormMessage.displayName = "FormMessage";
|
|
27063
27681
|
|
|
27064
27682
|
// src/components/ui/glass-card.tsx
|
|
27065
|
-
var
|
|
27066
|
-
var
|
|
27067
|
-
var GlassCard =
|
|
27683
|
+
var React48 = __toESM(require("react"), 1);
|
|
27684
|
+
var import_jsx_runtime76 = require("react/jsx-runtime");
|
|
27685
|
+
var GlassCard = React48.forwardRef(
|
|
27068
27686
|
({ className, ...props }, ref) => {
|
|
27069
|
-
return /* @__PURE__ */ (0,
|
|
27687
|
+
return /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("div", { ref, className: cn("glass-card", className), ...props });
|
|
27070
27688
|
}
|
|
27071
27689
|
);
|
|
27072
27690
|
GlassCard.displayName = "GlassCard";
|
|
27073
27691
|
|
|
27074
27692
|
// src/components/ui/hover-card.tsx
|
|
27075
|
-
var
|
|
27693
|
+
var React49 = __toESM(require("react"), 1);
|
|
27076
27694
|
var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
|
|
27077
|
-
var
|
|
27695
|
+
var import_jsx_runtime77 = require("react/jsx-runtime");
|
|
27078
27696
|
var HoverCard = HoverCardPrimitive.Root;
|
|
27079
27697
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
27080
|
-
var HoverCardContent =
|
|
27698
|
+
var HoverCardContent = React49.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
|
|
27081
27699
|
HoverCardPrimitive.Content,
|
|
27082
27700
|
{
|
|
27083
27701
|
ref,
|
|
@@ -27093,12 +27711,12 @@ var HoverCardContent = React48.forwardRef(({ className, align = "center", sideOf
|
|
|
27093
27711
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
27094
27712
|
|
|
27095
27713
|
// src/components/ui/input-otp.tsx
|
|
27096
|
-
var
|
|
27714
|
+
var React50 = __toESM(require("react"), 1);
|
|
27097
27715
|
var import_input_otp = require("input-otp");
|
|
27098
27716
|
var import_lucide_react25 = require("lucide-react");
|
|
27099
|
-
var
|
|
27100
|
-
var InputOTP =
|
|
27101
|
-
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0,
|
|
27717
|
+
var import_jsx_runtime78 = require("react/jsx-runtime");
|
|
27718
|
+
var InputOTP = React50.forwardRef(
|
|
27719
|
+
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
|
|
27102
27720
|
import_input_otp.OTPInput,
|
|
27103
27721
|
{
|
|
27104
27722
|
ref,
|
|
@@ -27109,14 +27727,14 @@ var InputOTP = React49.forwardRef(
|
|
|
27109
27727
|
)
|
|
27110
27728
|
);
|
|
27111
27729
|
InputOTP.displayName = "InputOTP";
|
|
27112
|
-
var InputOTPGroup =
|
|
27113
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
27730
|
+
var InputOTPGroup = React50.forwardRef(
|
|
27731
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { ref, className: cn("flex items-center", className), ...props })
|
|
27114
27732
|
);
|
|
27115
27733
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
27116
|
-
var InputOTPSlot =
|
|
27117
|
-
const inputOTPContext =
|
|
27734
|
+
var InputOTPSlot = React50.forwardRef(({ index, className, ...props }, ref) => {
|
|
27735
|
+
const inputOTPContext = React50.useContext(import_input_otp.OTPInputContext);
|
|
27118
27736
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
27119
|
-
return /* @__PURE__ */ (0,
|
|
27737
|
+
return /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(
|
|
27120
27738
|
"div",
|
|
27121
27739
|
{
|
|
27122
27740
|
ref,
|
|
@@ -27128,28 +27746,28 @@ var InputOTPSlot = React49.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
27128
27746
|
...props,
|
|
27129
27747
|
children: [
|
|
27130
27748
|
char,
|
|
27131
|
-
hasFakeCaret && /* @__PURE__ */ (0,
|
|
27749
|
+
hasFakeCaret && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
27132
27750
|
]
|
|
27133
27751
|
}
|
|
27134
27752
|
);
|
|
27135
27753
|
});
|
|
27136
27754
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
27137
|
-
var InputOTPSeparator =
|
|
27138
|
-
({ ...props }, ref) => /* @__PURE__ */ (0,
|
|
27755
|
+
var InputOTPSeparator = React50.forwardRef(
|
|
27756
|
+
({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_lucide_react25.Dot, {}) })
|
|
27139
27757
|
);
|
|
27140
27758
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
27141
27759
|
|
|
27142
27760
|
// src/components/ui/menubar.tsx
|
|
27143
|
-
var
|
|
27761
|
+
var React51 = __toESM(require("react"), 1);
|
|
27144
27762
|
var MenubarPrimitive = __toESM(require("@radix-ui/react-menubar"), 1);
|
|
27145
27763
|
var import_lucide_react26 = require("lucide-react");
|
|
27146
|
-
var
|
|
27764
|
+
var import_jsx_runtime79 = require("react/jsx-runtime");
|
|
27147
27765
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
27148
27766
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
27149
27767
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
27150
27768
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
27151
27769
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
27152
|
-
var Menubar =
|
|
27770
|
+
var Menubar = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27153
27771
|
MenubarPrimitive.Root,
|
|
27154
27772
|
{
|
|
27155
27773
|
ref,
|
|
@@ -27158,7 +27776,7 @@ var Menubar = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
27158
27776
|
}
|
|
27159
27777
|
));
|
|
27160
27778
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
27161
|
-
var MenubarTrigger =
|
|
27779
|
+
var MenubarTrigger = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27162
27780
|
MenubarPrimitive.Trigger,
|
|
27163
27781
|
{
|
|
27164
27782
|
ref,
|
|
@@ -27170,7 +27788,7 @@ var MenubarTrigger = React50.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
27170
27788
|
}
|
|
27171
27789
|
));
|
|
27172
27790
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
27173
|
-
var MenubarSubTrigger =
|
|
27791
|
+
var MenubarSubTrigger = React51.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
27174
27792
|
MenubarPrimitive.SubTrigger,
|
|
27175
27793
|
{
|
|
27176
27794
|
ref,
|
|
@@ -27182,12 +27800,12 @@ var MenubarSubTrigger = React50.forwardRef(({ className, inset, children, ...pro
|
|
|
27182
27800
|
...props,
|
|
27183
27801
|
children: [
|
|
27184
27802
|
children,
|
|
27185
|
-
/* @__PURE__ */ (0,
|
|
27803
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react26.ChevronRight, { className: "ml-auto h-4 w-4" })
|
|
27186
27804
|
]
|
|
27187
27805
|
}
|
|
27188
27806
|
));
|
|
27189
27807
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
27190
|
-
var MenubarSubContent =
|
|
27808
|
+
var MenubarSubContent = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27191
27809
|
MenubarPrimitive.SubContent,
|
|
27192
27810
|
{
|
|
27193
27811
|
ref,
|
|
@@ -27199,7 +27817,7 @@ var MenubarSubContent = React50.forwardRef(({ className, ...props }, ref) => /*
|
|
|
27199
27817
|
}
|
|
27200
27818
|
));
|
|
27201
27819
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
27202
|
-
var MenubarContent =
|
|
27820
|
+
var MenubarContent = React51.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(MenubarPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27203
27821
|
MenubarPrimitive.Content,
|
|
27204
27822
|
{
|
|
27205
27823
|
ref,
|
|
@@ -27214,7 +27832,7 @@ var MenubarContent = React50.forwardRef(({ className, align = "start", alignOffs
|
|
|
27214
27832
|
}
|
|
27215
27833
|
) }));
|
|
27216
27834
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
27217
|
-
var MenubarItem =
|
|
27835
|
+
var MenubarItem = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27218
27836
|
MenubarPrimitive.Item,
|
|
27219
27837
|
{
|
|
27220
27838
|
ref,
|
|
@@ -27227,7 +27845,7 @@ var MenubarItem = React50.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
27227
27845
|
}
|
|
27228
27846
|
));
|
|
27229
27847
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
27230
|
-
var MenubarCheckboxItem =
|
|
27848
|
+
var MenubarCheckboxItem = React51.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
27231
27849
|
MenubarPrimitive.CheckboxItem,
|
|
27232
27850
|
{
|
|
27233
27851
|
ref,
|
|
@@ -27238,13 +27856,13 @@ var MenubarCheckboxItem = React50.forwardRef(({ className, children, checked, ..
|
|
|
27238
27856
|
checked,
|
|
27239
27857
|
...props,
|
|
27240
27858
|
children: [
|
|
27241
|
-
/* @__PURE__ */ (0,
|
|
27859
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react26.Check, { className: "h-4 w-4" }) }) }),
|
|
27242
27860
|
children
|
|
27243
27861
|
]
|
|
27244
27862
|
}
|
|
27245
27863
|
));
|
|
27246
27864
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
27247
|
-
var MenubarRadioItem =
|
|
27865
|
+
var MenubarRadioItem = React51.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
27248
27866
|
MenubarPrimitive.RadioItem,
|
|
27249
27867
|
{
|
|
27250
27868
|
ref,
|
|
@@ -27254,13 +27872,13 @@ var MenubarRadioItem = React50.forwardRef(({ className, children, ...props }, re
|
|
|
27254
27872
|
),
|
|
27255
27873
|
...props,
|
|
27256
27874
|
children: [
|
|
27257
|
-
/* @__PURE__ */ (0,
|
|
27875
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react26.Circle, { className: "h-2 w-2 fill-current" }) }) }),
|
|
27258
27876
|
children
|
|
27259
27877
|
]
|
|
27260
27878
|
}
|
|
27261
27879
|
));
|
|
27262
27880
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
27263
|
-
var MenubarLabel =
|
|
27881
|
+
var MenubarLabel = React51.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
27264
27882
|
MenubarPrimitive.Label,
|
|
27265
27883
|
{
|
|
27266
27884
|
ref,
|
|
@@ -27269,20 +27887,20 @@ var MenubarLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
27269
27887
|
}
|
|
27270
27888
|
));
|
|
27271
27889
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
27272
|
-
var MenubarSeparator =
|
|
27890
|
+
var MenubarSeparator = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
27273
27891
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
27274
27892
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
27275
|
-
return /* @__PURE__ */ (0,
|
|
27893
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
27276
27894
|
};
|
|
27277
27895
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
27278
27896
|
|
|
27279
27897
|
// src/components/ui/navigation-menu.tsx
|
|
27280
|
-
var
|
|
27898
|
+
var React52 = __toESM(require("react"), 1);
|
|
27281
27899
|
var NavigationMenuPrimitive = __toESM(require("@radix-ui/react-navigation-menu"), 1);
|
|
27282
27900
|
var import_class_variance_authority5 = require("class-variance-authority");
|
|
27283
27901
|
var import_lucide_react27 = require("lucide-react");
|
|
27284
|
-
var
|
|
27285
|
-
var NavigationMenu =
|
|
27902
|
+
var import_jsx_runtime80 = require("react/jsx-runtime");
|
|
27903
|
+
var NavigationMenu = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
27286
27904
|
NavigationMenuPrimitive.Root,
|
|
27287
27905
|
{
|
|
27288
27906
|
ref,
|
|
@@ -27290,12 +27908,12 @@ var NavigationMenu = React51.forwardRef(({ className, children, ...props }, ref)
|
|
|
27290
27908
|
...props,
|
|
27291
27909
|
children: [
|
|
27292
27910
|
children,
|
|
27293
|
-
/* @__PURE__ */ (0,
|
|
27911
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(NavigationMenuViewport, {})
|
|
27294
27912
|
]
|
|
27295
27913
|
}
|
|
27296
27914
|
));
|
|
27297
27915
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
27298
|
-
var NavigationMenuList =
|
|
27916
|
+
var NavigationMenuList = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27299
27917
|
NavigationMenuPrimitive.List,
|
|
27300
27918
|
{
|
|
27301
27919
|
ref,
|
|
@@ -27308,7 +27926,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
27308
27926
|
var navigationMenuTriggerStyle = (0, import_class_variance_authority5.cva)(
|
|
27309
27927
|
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
27310
27928
|
);
|
|
27311
|
-
var NavigationMenuTrigger =
|
|
27929
|
+
var NavigationMenuTrigger = React52.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(
|
|
27312
27930
|
NavigationMenuPrimitive.Trigger,
|
|
27313
27931
|
{
|
|
27314
27932
|
ref,
|
|
@@ -27317,7 +27935,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
|
|
|
27317
27935
|
children: [
|
|
27318
27936
|
children,
|
|
27319
27937
|
" ",
|
|
27320
|
-
/* @__PURE__ */ (0,
|
|
27938
|
+
/* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27321
27939
|
import_lucide_react27.ChevronDown,
|
|
27322
27940
|
{
|
|
27323
27941
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
@@ -27328,7 +27946,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
|
|
|
27328
27946
|
}
|
|
27329
27947
|
));
|
|
27330
27948
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
27331
|
-
var NavigationMenuContent =
|
|
27949
|
+
var NavigationMenuContent = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27332
27950
|
NavigationMenuPrimitive.Content,
|
|
27333
27951
|
{
|
|
27334
27952
|
ref,
|
|
@@ -27341,7 +27959,7 @@ var NavigationMenuContent = React51.forwardRef(({ className, ...props }, ref) =>
|
|
|
27341
27959
|
));
|
|
27342
27960
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
27343
27961
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
27344
|
-
var NavigationMenuViewport =
|
|
27962
|
+
var NavigationMenuViewport = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27345
27963
|
NavigationMenuPrimitive.Viewport,
|
|
27346
27964
|
{
|
|
27347
27965
|
className: cn(
|
|
@@ -27353,7 +27971,7 @@ var NavigationMenuViewport = React51.forwardRef(({ className, ...props }, ref) =
|
|
|
27353
27971
|
}
|
|
27354
27972
|
) }));
|
|
27355
27973
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
27356
|
-
var NavigationMenuIndicator =
|
|
27974
|
+
var NavigationMenuIndicator = React52.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
|
|
27357
27975
|
NavigationMenuPrimitive.Indicator,
|
|
27358
27976
|
{
|
|
27359
27977
|
ref,
|
|
@@ -27362,16 +27980,16 @@ var NavigationMenuIndicator = React51.forwardRef(({ className, ...props }, ref)
|
|
|
27362
27980
|
className
|
|
27363
27981
|
),
|
|
27364
27982
|
...props,
|
|
27365
|
-
children: /* @__PURE__ */ (0,
|
|
27983
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
27366
27984
|
}
|
|
27367
27985
|
));
|
|
27368
27986
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
27369
27987
|
|
|
27370
27988
|
// src/components/ui/pagination.tsx
|
|
27371
|
-
var
|
|
27989
|
+
var React53 = __toESM(require("react"), 1);
|
|
27372
27990
|
var import_lucide_react28 = require("lucide-react");
|
|
27373
|
-
var
|
|
27374
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27991
|
+
var import_jsx_runtime81 = require("react/jsx-runtime");
|
|
27992
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
27375
27993
|
"nav",
|
|
27376
27994
|
{
|
|
27377
27995
|
role: "navigation",
|
|
@@ -27381,13 +27999,13 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_run
|
|
|
27381
27999
|
}
|
|
27382
28000
|
);
|
|
27383
28001
|
Pagination.displayName = "Pagination";
|
|
27384
|
-
var PaginationContent =
|
|
27385
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28002
|
+
var PaginationContent = React53.forwardRef(
|
|
28003
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
27386
28004
|
);
|
|
27387
28005
|
PaginationContent.displayName = "PaginationContent";
|
|
27388
|
-
var PaginationItem =
|
|
28006
|
+
var PaginationItem = React53.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("li", { ref, className: cn("", className), ...props }));
|
|
27389
28007
|
PaginationItem.displayName = "PaginationItem";
|
|
27390
|
-
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ (0,
|
|
28008
|
+
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
|
|
27391
28009
|
"a",
|
|
27392
28010
|
{
|
|
27393
28011
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -27402,29 +28020,29 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
|
|
|
27402
28020
|
}
|
|
27403
28021
|
);
|
|
27404
28022
|
PaginationLink.displayName = "PaginationLink";
|
|
27405
|
-
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27406
|
-
/* @__PURE__ */ (0,
|
|
27407
|
-
/* @__PURE__ */ (0,
|
|
28023
|
+
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(PaginationLink, { "aria-label": "Go to previous page", size: "default", className: cn("gap-1 pl-2.5", className), ...props, children: [
|
|
28024
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react28.ChevronLeft, { className: "h-4 w-4" }),
|
|
28025
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { children: "Previous" })
|
|
27408
28026
|
] });
|
|
27409
28027
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
27410
|
-
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27411
|
-
/* @__PURE__ */ (0,
|
|
27412
|
-
/* @__PURE__ */ (0,
|
|
28028
|
+
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(PaginationLink, { "aria-label": "Go to next page", size: "default", className: cn("gap-1 pr-2.5", className), ...props, children: [
|
|
28029
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { children: "Next" }),
|
|
28030
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react28.ChevronRight, { className: "h-4 w-4" })
|
|
27413
28031
|
] });
|
|
27414
28032
|
PaginationNext.displayName = "PaginationNext";
|
|
27415
|
-
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
27416
|
-
/* @__PURE__ */ (0,
|
|
27417
|
-
/* @__PURE__ */ (0,
|
|
28033
|
+
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)("span", { "aria-hidden": true, className: cn("flex h-9 w-9 items-center justify-center", className), ...props, children: [
|
|
28034
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_lucide_react28.MoreHorizontal, { className: "h-4 w-4" }),
|
|
28035
|
+
/* @__PURE__ */ (0, import_jsx_runtime81.jsx)("span", { className: "sr-only", children: "More pages" })
|
|
27418
28036
|
] });
|
|
27419
28037
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
27420
28038
|
|
|
27421
28039
|
// src/components/ui/popover.tsx
|
|
27422
|
-
var
|
|
28040
|
+
var React54 = __toESM(require("react"), 1);
|
|
27423
28041
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
|
|
27424
|
-
var
|
|
28042
|
+
var import_jsx_runtime82 = require("react/jsx-runtime");
|
|
27425
28043
|
var Popover = PopoverPrimitive.Root;
|
|
27426
28044
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
27427
|
-
var PopoverContent =
|
|
28045
|
+
var PopoverContent = React54.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
|
|
27428
28046
|
PopoverPrimitive.Content,
|
|
27429
28047
|
{
|
|
27430
28048
|
ref,
|
|
@@ -27440,16 +28058,16 @@ var PopoverContent = React53.forwardRef(({ className, align = "center", sideOffs
|
|
|
27440
28058
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
27441
28059
|
|
|
27442
28060
|
// src/components/ui/radio-group.tsx
|
|
27443
|
-
var
|
|
28061
|
+
var React55 = __toESM(require("react"), 1);
|
|
27444
28062
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
27445
28063
|
var import_lucide_react29 = require("lucide-react");
|
|
27446
|
-
var
|
|
27447
|
-
var RadioGroup4 =
|
|
27448
|
-
return /* @__PURE__ */ (0,
|
|
28064
|
+
var import_jsx_runtime83 = require("react/jsx-runtime");
|
|
28065
|
+
var RadioGroup4 = React55.forwardRef(({ className, ...props }, ref) => {
|
|
28066
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
|
|
27449
28067
|
});
|
|
27450
28068
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
27451
|
-
var RadioGroupItem =
|
|
27452
|
-
return /* @__PURE__ */ (0,
|
|
28069
|
+
var RadioGroupItem = React55.forwardRef(({ className, ...props }, ref) => {
|
|
28070
|
+
return /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
|
|
27453
28071
|
RadioGroupPrimitive.Item,
|
|
27454
28072
|
{
|
|
27455
28073
|
ref,
|
|
@@ -27458,7 +28076,7 @@ var RadioGroupItem = React54.forwardRef(({ className, ...props }, ref) => {
|
|
|
27458
28076
|
className
|
|
27459
28077
|
),
|
|
27460
28078
|
...props,
|
|
27461
|
-
children: /* @__PURE__ */ (0,
|
|
28079
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(import_lucide_react29.Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
27462
28080
|
}
|
|
27463
28081
|
);
|
|
27464
28082
|
});
|
|
@@ -27467,8 +28085,8 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
27467
28085
|
// src/components/ui/resizable.tsx
|
|
27468
28086
|
var import_lucide_react30 = require("lucide-react");
|
|
27469
28087
|
var ResizablePrimitive = __toESM(require("react-resizable-panels"), 1);
|
|
27470
|
-
var
|
|
27471
|
-
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28088
|
+
var import_jsx_runtime84 = require("react/jsx-runtime");
|
|
28089
|
+
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
27472
28090
|
ResizablePrimitive.PanelGroup,
|
|
27473
28091
|
{
|
|
27474
28092
|
className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
|
|
@@ -27480,7 +28098,7 @@ var ResizableHandle = ({
|
|
|
27480
28098
|
withHandle,
|
|
27481
28099
|
className,
|
|
27482
28100
|
...props
|
|
27483
|
-
}) => /* @__PURE__ */ (0,
|
|
28101
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
|
|
27484
28102
|
ResizablePrimitive.PanelResizeHandle,
|
|
27485
28103
|
{
|
|
27486
28104
|
className: cn(
|
|
@@ -27488,15 +28106,15 @@ var ResizableHandle = ({
|
|
|
27488
28106
|
className
|
|
27489
28107
|
),
|
|
27490
28108
|
...props,
|
|
27491
|
-
children: withHandle && /* @__PURE__ */ (0,
|
|
28109
|
+
children: withHandle && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react30.GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
27492
28110
|
}
|
|
27493
28111
|
);
|
|
27494
28112
|
|
|
27495
28113
|
// src/components/ui/separator.tsx
|
|
27496
|
-
var
|
|
28114
|
+
var React56 = __toESM(require("react"), 1);
|
|
27497
28115
|
var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
|
|
27498
|
-
var
|
|
27499
|
-
var Separator5 =
|
|
28116
|
+
var import_jsx_runtime85 = require("react/jsx-runtime");
|
|
28117
|
+
var Separator5 = React56.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
|
|
27500
28118
|
SeparatorPrimitive.Root,
|
|
27501
28119
|
{
|
|
27502
28120
|
ref,
|
|
@@ -27512,13 +28130,13 @@ Separator5.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
27512
28130
|
var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
27513
28131
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
27514
28132
|
var import_lucide_react31 = require("lucide-react");
|
|
27515
|
-
var
|
|
27516
|
-
var
|
|
28133
|
+
var React57 = __toESM(require("react"), 1);
|
|
28134
|
+
var import_jsx_runtime86 = require("react/jsx-runtime");
|
|
27517
28135
|
var Sheet = SheetPrimitive.Root;
|
|
27518
28136
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
27519
28137
|
var SheetClose = SheetPrimitive.Close;
|
|
27520
28138
|
var SheetPortal = SheetPrimitive.Portal;
|
|
27521
|
-
var SheetOverlay =
|
|
28139
|
+
var SheetOverlay = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
|
|
27522
28140
|
SheetPrimitive.Overlay,
|
|
27523
28141
|
{
|
|
27524
28142
|
className: cn(
|
|
@@ -27546,7 +28164,7 @@ var sheetVariants = (0, import_class_variance_authority6.cva)(
|
|
|
27546
28164
|
}
|
|
27547
28165
|
}
|
|
27548
28166
|
);
|
|
27549
|
-
var SheetContent =
|
|
28167
|
+
var SheetContent = React57.forwardRef(
|
|
27550
28168
|
({
|
|
27551
28169
|
side = "right",
|
|
27552
28170
|
className,
|
|
@@ -27555,11 +28173,11 @@ var SheetContent = React56.forwardRef(
|
|
|
27555
28173
|
closeButtonClassName,
|
|
27556
28174
|
closeButtonLabel = "Close",
|
|
27557
28175
|
...props
|
|
27558
|
-
}, ref) => /* @__PURE__ */ (0,
|
|
27559
|
-
/* @__PURE__ */ (0,
|
|
27560
|
-
/* @__PURE__ */ (0,
|
|
28176
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(SheetPortal, { children: [
|
|
28177
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SheetOverlay, {}),
|
|
28178
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
27561
28179
|
children,
|
|
27562
|
-
showCloseButton ? /* @__PURE__ */ (0,
|
|
28180
|
+
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(
|
|
27563
28181
|
SheetPrimitive.Close,
|
|
27564
28182
|
{
|
|
27565
28183
|
className: cn(
|
|
@@ -27567,8 +28185,8 @@ var SheetContent = React56.forwardRef(
|
|
|
27567
28185
|
closeButtonClassName
|
|
27568
28186
|
),
|
|
27569
28187
|
children: [
|
|
27570
|
-
/* @__PURE__ */ (0,
|
|
27571
|
-
/* @__PURE__ */ (0,
|
|
28188
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_lucide_react31.X, { className: "h-4 w-4" }),
|
|
28189
|
+
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "sr-only", children: closeButtonLabel })
|
|
27572
28190
|
]
|
|
27573
28191
|
}
|
|
27574
28192
|
) : null
|
|
@@ -27576,27 +28194,27 @@ var SheetContent = React56.forwardRef(
|
|
|
27576
28194
|
] })
|
|
27577
28195
|
);
|
|
27578
28196
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
27579
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28197
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
27580
28198
|
SheetHeader.displayName = "SheetHeader";
|
|
27581
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
28199
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
27582
28200
|
SheetFooter.displayName = "SheetFooter";
|
|
27583
|
-
var SheetTitle =
|
|
28201
|
+
var SheetTitle = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
27584
28202
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
27585
|
-
var SheetDescription =
|
|
28203
|
+
var SheetDescription = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
27586
28204
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
27587
28205
|
|
|
27588
28206
|
// src/components/ui/sidebar.tsx
|
|
27589
|
-
var
|
|
28207
|
+
var React59 = __toESM(require("react"), 1);
|
|
27590
28208
|
var import_react_slot4 = require("@radix-ui/react-slot");
|
|
27591
28209
|
var import_class_variance_authority7 = require("class-variance-authority");
|
|
27592
28210
|
var import_lucide_react32 = require("lucide-react");
|
|
27593
28211
|
|
|
27594
28212
|
// src/hooks/use-mobile.tsx
|
|
27595
|
-
var
|
|
28213
|
+
var React58 = __toESM(require("react"), 1);
|
|
27596
28214
|
var MOBILE_BREAKPOINT = 768;
|
|
27597
28215
|
function useIsMobile() {
|
|
27598
|
-
const [isMobile, setIsMobile] =
|
|
27599
|
-
|
|
28216
|
+
const [isMobile, setIsMobile] = React58.useState(void 0);
|
|
28217
|
+
React58.useEffect(() => {
|
|
27600
28218
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
27601
28219
|
const onChange = () => {
|
|
27602
28220
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -27609,27 +28227,27 @@ function useIsMobile() {
|
|
|
27609
28227
|
}
|
|
27610
28228
|
|
|
27611
28229
|
// src/components/ui/sidebar.tsx
|
|
27612
|
-
var
|
|
28230
|
+
var import_jsx_runtime87 = require("react/jsx-runtime");
|
|
27613
28231
|
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
27614
28232
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
27615
28233
|
var SIDEBAR_WIDTH = "16rem";
|
|
27616
28234
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
27617
28235
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
27618
28236
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
27619
|
-
var SidebarContext =
|
|
28237
|
+
var SidebarContext = React59.createContext(null);
|
|
27620
28238
|
function useSidebar() {
|
|
27621
|
-
const context =
|
|
28239
|
+
const context = React59.useContext(SidebarContext);
|
|
27622
28240
|
if (!context) {
|
|
27623
28241
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
27624
28242
|
}
|
|
27625
28243
|
return context;
|
|
27626
28244
|
}
|
|
27627
|
-
var SidebarProvider =
|
|
28245
|
+
var SidebarProvider = React59.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
|
|
27628
28246
|
const isMobile = useIsMobile();
|
|
27629
|
-
const [openMobile, setOpenMobile] =
|
|
27630
|
-
const [_open, _setOpen] =
|
|
28247
|
+
const [openMobile, setOpenMobile] = React59.useState(false);
|
|
28248
|
+
const [_open, _setOpen] = React59.useState(defaultOpen);
|
|
27631
28249
|
const open = openProp != null ? openProp : _open;
|
|
27632
|
-
const setOpen =
|
|
28250
|
+
const setOpen = React59.useCallback(
|
|
27633
28251
|
(value) => {
|
|
27634
28252
|
const openState = typeof value === "function" ? value(open) : value;
|
|
27635
28253
|
if (setOpenProp) {
|
|
@@ -27641,10 +28259,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27641
28259
|
},
|
|
27642
28260
|
[setOpenProp, open]
|
|
27643
28261
|
);
|
|
27644
|
-
const toggleSidebar =
|
|
28262
|
+
const toggleSidebar = React59.useCallback(() => {
|
|
27645
28263
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
27646
28264
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
27647
|
-
|
|
28265
|
+
React59.useEffect(() => {
|
|
27648
28266
|
const handleKeyDown = (event) => {
|
|
27649
28267
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
27650
28268
|
event.preventDefault();
|
|
@@ -27655,7 +28273,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27655
28273
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
27656
28274
|
}, [toggleSidebar]);
|
|
27657
28275
|
const state = open ? "expanded" : "collapsed";
|
|
27658
|
-
const contextValue =
|
|
28276
|
+
const contextValue = React59.useMemo(
|
|
27659
28277
|
() => ({
|
|
27660
28278
|
state,
|
|
27661
28279
|
open,
|
|
@@ -27667,7 +28285,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27667
28285
|
}),
|
|
27668
28286
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
27669
28287
|
);
|
|
27670
|
-
return /* @__PURE__ */ (0,
|
|
28288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27671
28289
|
"div",
|
|
27672
28290
|
{
|
|
27673
28291
|
style: {
|
|
@@ -27683,10 +28301,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
27683
28301
|
) }) });
|
|
27684
28302
|
});
|
|
27685
28303
|
SidebarProvider.displayName = "SidebarProvider";
|
|
27686
|
-
var Sidebar =
|
|
28304
|
+
var Sidebar = React59.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
27687
28305
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
27688
28306
|
if (collapsible === "none") {
|
|
27689
|
-
return /* @__PURE__ */ (0,
|
|
28307
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27690
28308
|
"div",
|
|
27691
28309
|
{
|
|
27692
28310
|
className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className),
|
|
@@ -27697,7 +28315,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27697
28315
|
);
|
|
27698
28316
|
}
|
|
27699
28317
|
if (isMobile) {
|
|
27700
|
-
return /* @__PURE__ */ (0,
|
|
28318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27701
28319
|
SheetContent,
|
|
27702
28320
|
{
|
|
27703
28321
|
"data-sidebar": "sidebar",
|
|
@@ -27707,11 +28325,11 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27707
28325
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
27708
28326
|
},
|
|
27709
28327
|
side,
|
|
27710
|
-
children: /* @__PURE__ */ (0,
|
|
28328
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { className: "flex h-full w-full flex-col", children })
|
|
27711
28329
|
}
|
|
27712
28330
|
) });
|
|
27713
28331
|
}
|
|
27714
|
-
return /* @__PURE__ */ (0,
|
|
28332
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
27715
28333
|
"div",
|
|
27716
28334
|
{
|
|
27717
28335
|
ref,
|
|
@@ -27721,7 +28339,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27721
28339
|
"data-variant": variant,
|
|
27722
28340
|
"data-side": side,
|
|
27723
28341
|
children: [
|
|
27724
|
-
/* @__PURE__ */ (0,
|
|
28342
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27725
28343
|
"div",
|
|
27726
28344
|
{
|
|
27727
28345
|
className: cn(
|
|
@@ -27732,7 +28350,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27732
28350
|
)
|
|
27733
28351
|
}
|
|
27734
28352
|
),
|
|
27735
|
-
/* @__PURE__ */ (0,
|
|
28353
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27736
28354
|
"div",
|
|
27737
28355
|
{
|
|
27738
28356
|
className: cn(
|
|
@@ -27743,7 +28361,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27743
28361
|
className
|
|
27744
28362
|
),
|
|
27745
28363
|
...props,
|
|
27746
|
-
children: /* @__PURE__ */ (0,
|
|
28364
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27747
28365
|
"div",
|
|
27748
28366
|
{
|
|
27749
28367
|
"data-sidebar": "sidebar",
|
|
@@ -27758,10 +28376,10 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
27758
28376
|
);
|
|
27759
28377
|
});
|
|
27760
28378
|
Sidebar.displayName = "Sidebar";
|
|
27761
|
-
var SidebarTrigger =
|
|
28379
|
+
var SidebarTrigger = React59.forwardRef(
|
|
27762
28380
|
({ className, onClick, ...props }, ref) => {
|
|
27763
28381
|
const { toggleSidebar } = useSidebar();
|
|
27764
|
-
return /* @__PURE__ */ (0,
|
|
28382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
27765
28383
|
Button,
|
|
27766
28384
|
{
|
|
27767
28385
|
ref,
|
|
@@ -27775,18 +28393,18 @@ var SidebarTrigger = React58.forwardRef(
|
|
|
27775
28393
|
},
|
|
27776
28394
|
...props,
|
|
27777
28395
|
children: [
|
|
27778
|
-
/* @__PURE__ */ (0,
|
|
27779
|
-
/* @__PURE__ */ (0,
|
|
28396
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react32.PanelLeft, {}),
|
|
28397
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
27780
28398
|
]
|
|
27781
28399
|
}
|
|
27782
28400
|
);
|
|
27783
28401
|
}
|
|
27784
28402
|
);
|
|
27785
28403
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
27786
|
-
var SidebarRail =
|
|
28404
|
+
var SidebarRail = React59.forwardRef(
|
|
27787
28405
|
({ className, ...props }, ref) => {
|
|
27788
28406
|
const { toggleSidebar } = useSidebar();
|
|
27789
|
-
return /* @__PURE__ */ (0,
|
|
28407
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27790
28408
|
"button",
|
|
27791
28409
|
{
|
|
27792
28410
|
ref,
|
|
@@ -27810,8 +28428,8 @@ var SidebarRail = React58.forwardRef(
|
|
|
27810
28428
|
}
|
|
27811
28429
|
);
|
|
27812
28430
|
SidebarRail.displayName = "SidebarRail";
|
|
27813
|
-
var SidebarInset =
|
|
27814
|
-
return /* @__PURE__ */ (0,
|
|
28431
|
+
var SidebarInset = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28432
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27815
28433
|
"main",
|
|
27816
28434
|
{
|
|
27817
28435
|
ref,
|
|
@@ -27825,9 +28443,9 @@ var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27825
28443
|
);
|
|
27826
28444
|
});
|
|
27827
28445
|
SidebarInset.displayName = "SidebarInset";
|
|
27828
|
-
var SidebarInput =
|
|
28446
|
+
var SidebarInput = React59.forwardRef(
|
|
27829
28447
|
({ className, ...props }, ref) => {
|
|
27830
|
-
return /* @__PURE__ */ (0,
|
|
28448
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27831
28449
|
Input,
|
|
27832
28450
|
{
|
|
27833
28451
|
ref,
|
|
@@ -27842,17 +28460,17 @@ var SidebarInput = React58.forwardRef(
|
|
|
27842
28460
|
}
|
|
27843
28461
|
);
|
|
27844
28462
|
SidebarInput.displayName = "SidebarInput";
|
|
27845
|
-
var SidebarHeader =
|
|
27846
|
-
return /* @__PURE__ */ (0,
|
|
28463
|
+
var SidebarHeader = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28464
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
27847
28465
|
});
|
|
27848
28466
|
SidebarHeader.displayName = "SidebarHeader";
|
|
27849
|
-
var SidebarFooter =
|
|
27850
|
-
return /* @__PURE__ */ (0,
|
|
28467
|
+
var SidebarFooter = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28468
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
27851
28469
|
});
|
|
27852
28470
|
SidebarFooter.displayName = "SidebarFooter";
|
|
27853
|
-
var SidebarSeparator =
|
|
28471
|
+
var SidebarSeparator = React59.forwardRef(
|
|
27854
28472
|
({ className, ...props }, ref) => {
|
|
27855
|
-
return /* @__PURE__ */ (0,
|
|
28473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27856
28474
|
Separator5,
|
|
27857
28475
|
{
|
|
27858
28476
|
ref,
|
|
@@ -27864,8 +28482,8 @@ var SidebarSeparator = React58.forwardRef(
|
|
|
27864
28482
|
}
|
|
27865
28483
|
);
|
|
27866
28484
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
27867
|
-
var SidebarContent =
|
|
27868
|
-
return /* @__PURE__ */ (0,
|
|
28485
|
+
var SidebarContent = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28486
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27869
28487
|
"div",
|
|
27870
28488
|
{
|
|
27871
28489
|
ref,
|
|
@@ -27879,8 +28497,8 @@ var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27879
28497
|
);
|
|
27880
28498
|
});
|
|
27881
28499
|
SidebarContent.displayName = "SidebarContent";
|
|
27882
|
-
var SidebarGroup =
|
|
27883
|
-
return /* @__PURE__ */ (0,
|
|
28500
|
+
var SidebarGroup = React59.forwardRef(({ className, ...props }, ref) => {
|
|
28501
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27884
28502
|
"div",
|
|
27885
28503
|
{
|
|
27886
28504
|
ref,
|
|
@@ -27891,10 +28509,10 @@ var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
27891
28509
|
);
|
|
27892
28510
|
});
|
|
27893
28511
|
SidebarGroup.displayName = "SidebarGroup";
|
|
27894
|
-
var SidebarGroupLabel =
|
|
28512
|
+
var SidebarGroupLabel = React59.forwardRef(
|
|
27895
28513
|
({ className, asChild = false, ...props }, ref) => {
|
|
27896
28514
|
const Comp = asChild ? import_react_slot4.Slot : "div";
|
|
27897
|
-
return /* @__PURE__ */ (0,
|
|
28515
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27898
28516
|
Comp,
|
|
27899
28517
|
{
|
|
27900
28518
|
ref,
|
|
@@ -27910,10 +28528,10 @@ var SidebarGroupLabel = React58.forwardRef(
|
|
|
27910
28528
|
}
|
|
27911
28529
|
);
|
|
27912
28530
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
27913
|
-
var SidebarGroupAction =
|
|
28531
|
+
var SidebarGroupAction = React59.forwardRef(
|
|
27914
28532
|
({ className, asChild = false, ...props }, ref) => {
|
|
27915
28533
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27916
|
-
return /* @__PURE__ */ (0,
|
|
28534
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27917
28535
|
Comp,
|
|
27918
28536
|
{
|
|
27919
28537
|
ref,
|
|
@@ -27931,13 +28549,13 @@ var SidebarGroupAction = React58.forwardRef(
|
|
|
27931
28549
|
}
|
|
27932
28550
|
);
|
|
27933
28551
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
27934
|
-
var SidebarGroupContent =
|
|
27935
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28552
|
+
var SidebarGroupContent = React59.forwardRef(
|
|
28553
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
27936
28554
|
);
|
|
27937
28555
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
27938
|
-
var SidebarMenu =
|
|
28556
|
+
var SidebarMenu = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
27939
28557
|
SidebarMenu.displayName = "SidebarMenu";
|
|
27940
|
-
var SidebarMenuItem =
|
|
28558
|
+
var SidebarMenuItem = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
27941
28559
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
27942
28560
|
var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
|
|
27943
28561
|
"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
|
|
@@ -27959,10 +28577,10 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority7.cva)(
|
|
|
27959
28577
|
}
|
|
27960
28578
|
}
|
|
27961
28579
|
);
|
|
27962
|
-
var SidebarMenuButton =
|
|
28580
|
+
var SidebarMenuButton = React59.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
27963
28581
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27964
28582
|
const { isMobile, state } = useSidebar();
|
|
27965
|
-
const button = /* @__PURE__ */ (0,
|
|
28583
|
+
const button = /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27966
28584
|
Comp,
|
|
27967
28585
|
{
|
|
27968
28586
|
ref,
|
|
@@ -27981,15 +28599,15 @@ var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false,
|
|
|
27981
28599
|
children: tooltip
|
|
27982
28600
|
};
|
|
27983
28601
|
}
|
|
27984
|
-
return /* @__PURE__ */ (0,
|
|
27985
|
-
/* @__PURE__ */ (0,
|
|
27986
|
-
/* @__PURE__ */ (0,
|
|
28602
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(Tooltip, { children: [
|
|
28603
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(TooltipTrigger, { asChild: true, children: button }),
|
|
28604
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
|
|
27987
28605
|
] });
|
|
27988
28606
|
});
|
|
27989
28607
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
27990
|
-
var SidebarMenuAction =
|
|
28608
|
+
var SidebarMenuAction = React59.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
27991
28609
|
const Comp = asChild ? import_react_slot4.Slot : "button";
|
|
27992
|
-
return /* @__PURE__ */ (0,
|
|
28610
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
27993
28611
|
Comp,
|
|
27994
28612
|
{
|
|
27995
28613
|
ref,
|
|
@@ -28010,8 +28628,8 @@ var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOn
|
|
|
28010
28628
|
);
|
|
28011
28629
|
});
|
|
28012
28630
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
28013
|
-
var SidebarMenuBadge =
|
|
28014
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28631
|
+
var SidebarMenuBadge = React59.forwardRef(
|
|
28632
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
28015
28633
|
"div",
|
|
28016
28634
|
{
|
|
28017
28635
|
ref,
|
|
@@ -28030,11 +28648,11 @@ var SidebarMenuBadge = React58.forwardRef(
|
|
|
28030
28648
|
)
|
|
28031
28649
|
);
|
|
28032
28650
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
28033
|
-
var SidebarMenuSkeleton =
|
|
28034
|
-
const width =
|
|
28651
|
+
var SidebarMenuSkeleton = React59.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
28652
|
+
const width = React59.useMemo(() => {
|
|
28035
28653
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
28036
28654
|
}, []);
|
|
28037
|
-
return /* @__PURE__ */ (0,
|
|
28655
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
|
|
28038
28656
|
"div",
|
|
28039
28657
|
{
|
|
28040
28658
|
ref,
|
|
@@ -28042,8 +28660,8 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
|
|
|
28042
28660
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
28043
28661
|
...props,
|
|
28044
28662
|
children: [
|
|
28045
|
-
showIcon && /* @__PURE__ */ (0,
|
|
28046
|
-
/* @__PURE__ */ (0,
|
|
28663
|
+
showIcon && /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
28664
|
+
/* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
28047
28665
|
Skeleton,
|
|
28048
28666
|
{
|
|
28049
28667
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -28058,8 +28676,8 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
|
|
|
28058
28676
|
);
|
|
28059
28677
|
});
|
|
28060
28678
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
28061
|
-
var SidebarMenuSub =
|
|
28062
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28679
|
+
var SidebarMenuSub = React59.forwardRef(
|
|
28680
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
28063
28681
|
"ul",
|
|
28064
28682
|
{
|
|
28065
28683
|
ref,
|
|
@@ -28074,11 +28692,11 @@ var SidebarMenuSub = React58.forwardRef(
|
|
|
28074
28692
|
)
|
|
28075
28693
|
);
|
|
28076
28694
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
28077
|
-
var SidebarMenuSubItem =
|
|
28695
|
+
var SidebarMenuSubItem = React59.forwardRef(({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("li", { ref, ...props }));
|
|
28078
28696
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
28079
|
-
var SidebarMenuSubButton =
|
|
28697
|
+
var SidebarMenuSubButton = React59.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
28080
28698
|
const Comp = asChild ? import_react_slot4.Slot : "a";
|
|
28081
|
-
return /* @__PURE__ */ (0,
|
|
28699
|
+
return /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
|
|
28082
28700
|
Comp,
|
|
28083
28701
|
{
|
|
28084
28702
|
ref,
|
|
@@ -28100,44 +28718,44 @@ var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", i
|
|
|
28100
28718
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
28101
28719
|
|
|
28102
28720
|
// src/components/ui/slider.tsx
|
|
28103
|
-
var
|
|
28721
|
+
var React60 = __toESM(require("react"), 1);
|
|
28104
28722
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
|
|
28105
|
-
var
|
|
28106
|
-
var Slider =
|
|
28723
|
+
var import_jsx_runtime88 = require("react/jsx-runtime");
|
|
28724
|
+
var Slider = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(
|
|
28107
28725
|
SliderPrimitive.Root,
|
|
28108
28726
|
{
|
|
28109
28727
|
ref,
|
|
28110
28728
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
28111
28729
|
...props,
|
|
28112
28730
|
children: [
|
|
28113
|
-
/* @__PURE__ */ (0,
|
|
28114
|
-
/* @__PURE__ */ (0,
|
|
28731
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
28732
|
+
/* @__PURE__ */ (0, import_jsx_runtime88.jsx)(SliderPrimitive.Thumb, { className: "block h-5 w-5 rounded-full border-2 border-primary bg-background 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" })
|
|
28115
28733
|
]
|
|
28116
28734
|
}
|
|
28117
28735
|
));
|
|
28118
28736
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
28119
28737
|
|
|
28120
28738
|
// src/components/ui/table.tsx
|
|
28121
|
-
var
|
|
28122
|
-
var
|
|
28123
|
-
var Table =
|
|
28124
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28739
|
+
var React61 = __toESM(require("react"), 1);
|
|
28740
|
+
var import_jsx_runtime89 = require("react/jsx-runtime");
|
|
28741
|
+
var Table = React61.forwardRef(
|
|
28742
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
28125
28743
|
);
|
|
28126
28744
|
Table.displayName = "Table";
|
|
28127
|
-
var TableHeader =
|
|
28128
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28745
|
+
var TableHeader = React61.forwardRef(
|
|
28746
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
28129
28747
|
);
|
|
28130
28748
|
TableHeader.displayName = "TableHeader";
|
|
28131
|
-
var TableBody =
|
|
28132
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28749
|
+
var TableBody = React61.forwardRef(
|
|
28750
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
28133
28751
|
);
|
|
28134
28752
|
TableBody.displayName = "TableBody";
|
|
28135
|
-
var TableFooter =
|
|
28136
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28753
|
+
var TableFooter = React61.forwardRef(
|
|
28754
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
28137
28755
|
);
|
|
28138
28756
|
TableFooter.displayName = "TableFooter";
|
|
28139
|
-
var TableRow =
|
|
28140
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28757
|
+
var TableRow = React61.forwardRef(
|
|
28758
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
28141
28759
|
"tr",
|
|
28142
28760
|
{
|
|
28143
28761
|
ref,
|
|
@@ -28147,8 +28765,8 @@ var TableRow = React60.forwardRef(
|
|
|
28147
28765
|
)
|
|
28148
28766
|
);
|
|
28149
28767
|
TableRow.displayName = "TableRow";
|
|
28150
|
-
var TableHead =
|
|
28151
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28768
|
+
var TableHead = React61.forwardRef(
|
|
28769
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
|
|
28152
28770
|
"th",
|
|
28153
28771
|
{
|
|
28154
28772
|
ref,
|
|
@@ -28161,23 +28779,23 @@ var TableHead = React60.forwardRef(
|
|
|
28161
28779
|
)
|
|
28162
28780
|
);
|
|
28163
28781
|
TableHead.displayName = "TableHead";
|
|
28164
|
-
var TableCell =
|
|
28165
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28782
|
+
var TableCell = React61.forwardRef(
|
|
28783
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
28166
28784
|
);
|
|
28167
28785
|
TableCell.displayName = "TableCell";
|
|
28168
|
-
var TableCaption =
|
|
28169
|
-
({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
28786
|
+
var TableCaption = React61.forwardRef(
|
|
28787
|
+
({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
28170
28788
|
);
|
|
28171
28789
|
TableCaption.displayName = "TableCaption";
|
|
28172
28790
|
|
|
28173
28791
|
// src/components/ui/toast.tsx
|
|
28174
|
-
var
|
|
28792
|
+
var React62 = __toESM(require("react"), 1);
|
|
28175
28793
|
var ToastPrimitives = __toESM(require("@radix-ui/react-toast"), 1);
|
|
28176
28794
|
var import_class_variance_authority8 = require("class-variance-authority");
|
|
28177
28795
|
var import_lucide_react33 = require("lucide-react");
|
|
28178
|
-
var
|
|
28796
|
+
var import_jsx_runtime90 = require("react/jsx-runtime");
|
|
28179
28797
|
var ToastProvider = ToastPrimitives.Provider;
|
|
28180
|
-
var ToastViewport =
|
|
28798
|
+
var ToastViewport = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
28181
28799
|
ToastPrimitives.Viewport,
|
|
28182
28800
|
{
|
|
28183
28801
|
ref,
|
|
@@ -28203,11 +28821,11 @@ var toastVariants = (0, import_class_variance_authority8.cva)(
|
|
|
28203
28821
|
}
|
|
28204
28822
|
}
|
|
28205
28823
|
);
|
|
28206
|
-
var Toast =
|
|
28207
|
-
return /* @__PURE__ */ (0,
|
|
28824
|
+
var Toast = React62.forwardRef(({ className, variant, ...props }, ref) => {
|
|
28825
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
|
|
28208
28826
|
});
|
|
28209
28827
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
28210
|
-
var ToastAction =
|
|
28828
|
+
var ToastAction = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
28211
28829
|
ToastPrimitives.Action,
|
|
28212
28830
|
{
|
|
28213
28831
|
ref,
|
|
@@ -28219,7 +28837,7 @@ var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
28219
28837
|
}
|
|
28220
28838
|
));
|
|
28221
28839
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
28222
|
-
var ToastClose =
|
|
28840
|
+
var ToastClose = React62.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
28223
28841
|
ToastPrimitives.Close,
|
|
28224
28842
|
{
|
|
28225
28843
|
ref,
|
|
@@ -28233,39 +28851,39 @@ var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /
|
|
|
28233
28851
|
},
|
|
28234
28852
|
"toast-close": "",
|
|
28235
28853
|
...props,
|
|
28236
|
-
children: /* @__PURE__ */ (0,
|
|
28854
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_lucide_react33.X, { className: "h-4 w-4" })
|
|
28237
28855
|
}
|
|
28238
28856
|
));
|
|
28239
28857
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
28240
|
-
var ToastTitle =
|
|
28858
|
+
var ToastTitle = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
28241
28859
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
28242
|
-
var ToastDescription =
|
|
28860
|
+
var ToastDescription = React62.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
|
|
28243
28861
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
28244
28862
|
|
|
28245
28863
|
// src/components/ui/toaster.tsx
|
|
28246
|
-
var
|
|
28864
|
+
var import_jsx_runtime91 = require("react/jsx-runtime");
|
|
28247
28865
|
function Toaster2() {
|
|
28248
28866
|
const { toasts } = useToast();
|
|
28249
|
-
return /* @__PURE__ */ (0,
|
|
28867
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(ToastProvider, { children: [
|
|
28250
28868
|
toasts.map(function({ id, title, description, action, ...props }) {
|
|
28251
|
-
return /* @__PURE__ */ (0,
|
|
28252
|
-
/* @__PURE__ */ (0,
|
|
28253
|
-
title && /* @__PURE__ */ (0,
|
|
28254
|
-
description && /* @__PURE__ */ (0,
|
|
28869
|
+
return /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(Toast, { ...props, children: [
|
|
28870
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsxs)("div", { className: "grid gap-1", children: [
|
|
28871
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ToastTitle, { children: title }),
|
|
28872
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ToastDescription, { children: description })
|
|
28255
28873
|
] }),
|
|
28256
28874
|
action,
|
|
28257
|
-
/* @__PURE__ */ (0,
|
|
28875
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ToastClose, {})
|
|
28258
28876
|
] }, id);
|
|
28259
28877
|
}),
|
|
28260
|
-
/* @__PURE__ */ (0,
|
|
28878
|
+
/* @__PURE__ */ (0, import_jsx_runtime91.jsx)(ToastViewport, {})
|
|
28261
28879
|
] });
|
|
28262
28880
|
}
|
|
28263
28881
|
|
|
28264
28882
|
// src/components/ui/toggle.tsx
|
|
28265
|
-
var
|
|
28883
|
+
var React63 = __toESM(require("react"), 1);
|
|
28266
28884
|
var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
|
|
28267
28885
|
var import_class_variance_authority9 = require("class-variance-authority");
|
|
28268
|
-
var
|
|
28886
|
+
var import_jsx_runtime92 = require("react/jsx-runtime");
|
|
28269
28887
|
var toggleVariants = (0, import_class_variance_authority9.cva)(
|
|
28270
28888
|
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground 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=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
28271
28889
|
{
|
|
@@ -28286,22 +28904,22 @@ var toggleVariants = (0, import_class_variance_authority9.cva)(
|
|
|
28286
28904
|
}
|
|
28287
28905
|
}
|
|
28288
28906
|
);
|
|
28289
|
-
var Toggle =
|
|
28907
|
+
var Toggle = React63.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
28290
28908
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
28291
28909
|
|
|
28292
28910
|
// src/components/ui/toggle-group.tsx
|
|
28293
|
-
var
|
|
28911
|
+
var React64 = __toESM(require("react"), 1);
|
|
28294
28912
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
28295
|
-
var
|
|
28296
|
-
var ToggleGroupContext =
|
|
28913
|
+
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
28914
|
+
var ToggleGroupContext = React64.createContext({
|
|
28297
28915
|
size: "default",
|
|
28298
28916
|
variant: "default"
|
|
28299
28917
|
});
|
|
28300
|
-
var ToggleGroup =
|
|
28918
|
+
var ToggleGroup = React64.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
28301
28919
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
28302
|
-
var ToggleGroupItem =
|
|
28303
|
-
const context =
|
|
28304
|
-
return /* @__PURE__ */ (0,
|
|
28920
|
+
var ToggleGroupItem = React64.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
28921
|
+
const context = React64.useContext(ToggleGroupContext);
|
|
28922
|
+
return /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
|
|
28305
28923
|
ToggleGroupPrimitive.Item,
|
|
28306
28924
|
{
|
|
28307
28925
|
ref,
|
|
@@ -28320,11 +28938,11 @@ var ToggleGroupItem = React63.forwardRef(({ className, children, variant, size,
|
|
|
28320
28938
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
28321
28939
|
|
|
28322
28940
|
// src/hooks/useActiveSection.ts
|
|
28323
|
-
var
|
|
28941
|
+
var import_react26 = require("react");
|
|
28324
28942
|
var useActiveSection = (sectionIds, offset = 180) => {
|
|
28325
28943
|
var _a78;
|
|
28326
|
-
const [activeId, setActiveId] = (0,
|
|
28327
|
-
(0,
|
|
28944
|
+
const [activeId, setActiveId] = (0, import_react26.useState)((_a78 = sectionIds[0]) != null ? _a78 : "");
|
|
28945
|
+
(0, import_react26.useEffect)(() => {
|
|
28328
28946
|
if (!sectionIds.length || typeof window === "undefined") return;
|
|
28329
28947
|
const update = () => {
|
|
28330
28948
|
let nextActive = sectionIds[0];
|
|
@@ -28356,7 +28974,7 @@ function slugify(value) {
|
|
|
28356
28974
|
}
|
|
28357
28975
|
|
|
28358
28976
|
// src/lib/layoutMode.ts
|
|
28359
|
-
var
|
|
28977
|
+
var import_react27 = require("react");
|
|
28360
28978
|
var LAYOUT_MODE_STORAGE_KEY = "cc-layout-preview-mode";
|
|
28361
28979
|
var LAYOUT_MODE_CHANGE_EVENT = "cc-layout-mode-change";
|
|
28362
28980
|
var normalizeLayoutMode = (value) => {
|
|
@@ -28379,8 +28997,8 @@ var writeStoredLayoutMode = (mode) => {
|
|
|
28379
28997
|
window.dispatchEvent(new CustomEvent(LAYOUT_MODE_CHANGE_EVENT, { detail: mode }));
|
|
28380
28998
|
};
|
|
28381
28999
|
var useLayoutMode = () => {
|
|
28382
|
-
const [mode, setMode] = (0,
|
|
28383
|
-
(0,
|
|
29000
|
+
const [mode, setMode] = (0, import_react27.useState)(readStoredLayoutMode);
|
|
29001
|
+
(0, import_react27.useEffect)(() => {
|
|
28384
29002
|
if (typeof window === "undefined") return void 0;
|
|
28385
29003
|
const handleStorage = (event) => {
|
|
28386
29004
|
if (event.key !== LAYOUT_MODE_STORAGE_KEY) return;
|
|
@@ -28402,15 +29020,15 @@ var useLayoutMode = () => {
|
|
|
28402
29020
|
};
|
|
28403
29021
|
var useLayoutModeControl = () => {
|
|
28404
29022
|
const mode = useLayoutMode();
|
|
28405
|
-
const setMode = (0,
|
|
29023
|
+
const setMode = (0, import_react27.useCallback)((nextMode) => {
|
|
28406
29024
|
writeStoredLayoutMode(nextMode);
|
|
28407
29025
|
}, []);
|
|
28408
29026
|
return { mode, setMode };
|
|
28409
29027
|
};
|
|
28410
29028
|
|
|
28411
29029
|
// src/lib/auth.tsx
|
|
28412
|
-
var
|
|
28413
|
-
var
|
|
29030
|
+
var import_react28 = require("react");
|
|
29031
|
+
var import_jsx_runtime94 = require("react/jsx-runtime");
|
|
28414
29032
|
var STORAGE_KEYS = {
|
|
28415
29033
|
accessToken: "cc_access_token",
|
|
28416
29034
|
idToken: "cc_id_token",
|
|
@@ -28490,6 +29108,39 @@ var PRESENCE_HEARTBEAT_INTERVAL_MS = parsePositiveInteger2(
|
|
|
28490
29108
|
);
|
|
28491
29109
|
var INACTIVITY_CHECK_INTERVAL_MS = 3e4;
|
|
28492
29110
|
var SILENT_AUTH_ERRORS = /* @__PURE__ */ new Set(["login_required", "interaction_required", "consent_required", "account_selection_required"]);
|
|
29111
|
+
var PROTECTED_ROUTE_PREFIXES = ["/layout-preview", "/componentes", "/docs", "/animacoes"];
|
|
29112
|
+
var LOOPBACK_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "127.0.0.1", "::1"]);
|
|
29113
|
+
var isTruthyEnvFlag = (value) => {
|
|
29114
|
+
if (!value) return false;
|
|
29115
|
+
const normalized = value.trim().toLowerCase();
|
|
29116
|
+
return normalized === "1" || normalized === "true" || normalized === "yes" || normalized === "on";
|
|
29117
|
+
};
|
|
29118
|
+
var isProtectedRoute = (pathname) => {
|
|
29119
|
+
return PROTECTED_ROUTE_PREFIXES.some((prefix) => pathname === prefix || pathname.startsWith(`${prefix}/`));
|
|
29120
|
+
};
|
|
29121
|
+
var shouldAttemptSilentLoginForPath = (pathname) => {
|
|
29122
|
+
const override = getRuntimeEnv("VITE_ACCOUNTS_SILENT_AUTH");
|
|
29123
|
+
if (typeof override === "string") {
|
|
29124
|
+
return isTruthyEnvFlag(override);
|
|
29125
|
+
}
|
|
29126
|
+
return isProtectedRoute(pathname);
|
|
29127
|
+
};
|
|
29128
|
+
var isSilentAuthRedirectCompatible = () => {
|
|
29129
|
+
if (typeof window === "undefined") return true;
|
|
29130
|
+
const configuredRedirectUri = getRuntimeEnv("VITE_ACCOUNTS_REDIRECT_URI");
|
|
29131
|
+
if (!configuredRedirectUri) return true;
|
|
29132
|
+
try {
|
|
29133
|
+
const currentUrl = new URL(window.location.href);
|
|
29134
|
+
const redirectUrl = new URL(configuredRedirectUri, window.location.origin);
|
|
29135
|
+
if (redirectUrl.origin === currentUrl.origin) {
|
|
29136
|
+
return true;
|
|
29137
|
+
}
|
|
29138
|
+
const usesLoopbackHosts = LOOPBACK_HOSTNAMES.has(redirectUrl.hostname) && LOOPBACK_HOSTNAMES.has(currentUrl.hostname);
|
|
29139
|
+
return usesLoopbackHosts && redirectUrl.protocol === currentUrl.protocol && redirectUrl.port === currentUrl.port;
|
|
29140
|
+
} catch (e) {
|
|
29141
|
+
return true;
|
|
29142
|
+
}
|
|
29143
|
+
};
|
|
28493
29144
|
var DEFAULT_PRESENCE_STATUS = "online";
|
|
28494
29145
|
var PRESENCE_STATUS_VALUES2 = [
|
|
28495
29146
|
"online",
|
|
@@ -28569,7 +29220,7 @@ var readStoredPresenceSource = () => {
|
|
|
28569
29220
|
if (isPresenceSource(stored)) return stored;
|
|
28570
29221
|
return "auto";
|
|
28571
29222
|
};
|
|
28572
|
-
var AuthContext = (0,
|
|
29223
|
+
var AuthContext = (0, import_react28.createContext)(void 0);
|
|
28573
29224
|
var readStoredToken = () => {
|
|
28574
29225
|
const accessToken = sessionStorage.getItem(STORAGE_KEYS.accessToken);
|
|
28575
29226
|
const idToken = sessionStorage.getItem(STORAGE_KEYS.idToken);
|
|
@@ -28688,17 +29339,17 @@ var buildUserFromTokens = ({
|
|
|
28688
29339
|
};
|
|
28689
29340
|
};
|
|
28690
29341
|
var AuthProvider = ({ children }) => {
|
|
28691
|
-
const [status, setStatus] = (0,
|
|
28692
|
-
const [accessToken, setAccessToken] = (0,
|
|
28693
|
-
const [user, setUser] = (0,
|
|
28694
|
-
const [presenceStatus, setPresenceStatusState] = (0,
|
|
28695
|
-
const presenceStatusRef = (0,
|
|
28696
|
-
const presenceSourceRef = (0,
|
|
28697
|
-
const lastActivityAtRef = (0,
|
|
28698
|
-
const lastActivityBroadcastAtRef = (0,
|
|
28699
|
-
const resolvedPresenceIdentityKeyRef = (0,
|
|
28700
|
-
const resolvedPresenceUserIdRef = (0,
|
|
28701
|
-
const storePresenceStatus = (0,
|
|
29342
|
+
const [status, setStatus] = (0, import_react28.useState)("loading");
|
|
29343
|
+
const [accessToken, setAccessToken] = (0, import_react28.useState)(null);
|
|
29344
|
+
const [user, setUser] = (0, import_react28.useState)(null);
|
|
29345
|
+
const [presenceStatus, setPresenceStatusState] = (0, import_react28.useState)(() => readStoredPresence());
|
|
29346
|
+
const presenceStatusRef = (0, import_react28.useRef)(readStoredPresence());
|
|
29347
|
+
const presenceSourceRef = (0, import_react28.useRef)(readStoredPresenceSource());
|
|
29348
|
+
const lastActivityAtRef = (0, import_react28.useRef)(Date.now());
|
|
29349
|
+
const lastActivityBroadcastAtRef = (0, import_react28.useRef)(0);
|
|
29350
|
+
const resolvedPresenceIdentityKeyRef = (0, import_react28.useRef)(null);
|
|
29351
|
+
const resolvedPresenceUserIdRef = (0, import_react28.useRef)(null);
|
|
29352
|
+
const storePresenceStatus = (0, import_react28.useCallback)((nextStatus, source) => {
|
|
28702
29353
|
setPresenceStatusState(nextStatus);
|
|
28703
29354
|
presenceStatusRef.current = nextStatus;
|
|
28704
29355
|
sessionStorage.setItem(STORAGE_KEYS.presence, nextStatus);
|
|
@@ -28708,7 +29359,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28708
29359
|
localStorage.setItem(LOCAL_STORAGE_KEYS.presenceSource, source);
|
|
28709
29360
|
}
|
|
28710
29361
|
}, []);
|
|
28711
|
-
const resolvePresenceUserId = (0,
|
|
29362
|
+
const resolvePresenceUserId = (0, import_react28.useCallback)(async (targetUser) => {
|
|
28712
29363
|
var _a78, _b7, _c, _d;
|
|
28713
29364
|
const sub = toNonEmptyString(targetUser == null ? void 0 : targetUser.sub);
|
|
28714
29365
|
const id = toNonEmptyString(targetUser == null ? void 0 : targetUser.id);
|
|
@@ -28746,7 +29397,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28746
29397
|
resolvedPresenceUserIdRef.current = fallbackUserId;
|
|
28747
29398
|
return fallbackUserId;
|
|
28748
29399
|
}, []);
|
|
28749
|
-
const syncPresenceFromRecord = (0,
|
|
29400
|
+
const syncPresenceFromRecord = (0, import_react28.useCallback)(
|
|
28750
29401
|
(rawRow) => {
|
|
28751
29402
|
var _a78, _b7, _c;
|
|
28752
29403
|
if (!rawRow) return;
|
|
@@ -28761,7 +29412,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28761
29412
|
},
|
|
28762
29413
|
[storePresenceStatus]
|
|
28763
29414
|
);
|
|
28764
|
-
const persistPresenceLegacy = (0,
|
|
29415
|
+
const persistPresenceLegacy = (0, import_react28.useCallback)(
|
|
28765
29416
|
async (nextStatus, source, targetUser, options) => {
|
|
28766
29417
|
const userId = await resolvePresenceUserId(targetUser != null ? targetUser : user);
|
|
28767
29418
|
if (!userId) return false;
|
|
@@ -28796,7 +29447,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28796
29447
|
},
|
|
28797
29448
|
[resolvePresenceUserId, syncPresenceFromRecord, user]
|
|
28798
29449
|
);
|
|
28799
|
-
const executePresenceRpc = (0,
|
|
29450
|
+
const executePresenceRpc = (0, import_react28.useCallback)(
|
|
28800
29451
|
async (fnName, payload, options) => {
|
|
28801
29452
|
const supabase = getSupabase();
|
|
28802
29453
|
if (!supabase) {
|
|
@@ -28824,7 +29475,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28824
29475
|
},
|
|
28825
29476
|
[persistPresenceLegacy, syncPresenceFromRecord]
|
|
28826
29477
|
);
|
|
28827
|
-
const touchPresence = (0,
|
|
29478
|
+
const touchPresence = (0, import_react28.useCallback)(
|
|
28828
29479
|
async (options) => {
|
|
28829
29480
|
var _a78;
|
|
28830
29481
|
const targetUser = (_a78 = options == null ? void 0 : options.targetUser) != null ? _a78 : user;
|
|
@@ -28855,7 +29506,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28855
29506
|
},
|
|
28856
29507
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28857
29508
|
);
|
|
28858
|
-
const markPresenceIdle = (0,
|
|
29509
|
+
const markPresenceIdle = (0, import_react28.useCallback)(
|
|
28859
29510
|
async (targetUser) => {
|
|
28860
29511
|
const resolvedTargetUser = targetUser != null ? targetUser : user;
|
|
28861
29512
|
const userId = await resolvePresenceUserId(resolvedTargetUser);
|
|
@@ -28880,7 +29531,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28880
29531
|
},
|
|
28881
29532
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28882
29533
|
);
|
|
28883
|
-
const setPresenceNetworkStatus = (0,
|
|
29534
|
+
const setPresenceNetworkStatus = (0, import_react28.useCallback)(
|
|
28884
29535
|
async (nextStatus, source, targetUser) => {
|
|
28885
29536
|
const resolvedTargetUser = targetUser != null ? targetUser : user;
|
|
28886
29537
|
const userId = await resolvePresenceUserId(resolvedTargetUser);
|
|
@@ -28906,7 +29557,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28906
29557
|
},
|
|
28907
29558
|
[executePresenceRpc, resolvePresenceUserId, user]
|
|
28908
29559
|
);
|
|
28909
|
-
const loadPresenceFromDatabase = (0,
|
|
29560
|
+
const loadPresenceFromDatabase = (0, import_react28.useCallback)(
|
|
28910
29561
|
async (targetUser) => {
|
|
28911
29562
|
const userId = await resolvePresenceUserId(targetUser);
|
|
28912
29563
|
if (!userId) return;
|
|
@@ -28940,7 +29591,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28940
29591
|
},
|
|
28941
29592
|
[resolvePresenceUserId, syncPresenceFromRecord, touchPresence]
|
|
28942
29593
|
);
|
|
28943
|
-
const clearAuthFlowState = (0,
|
|
29594
|
+
const clearAuthFlowState = (0, import_react28.useCallback)((options) => {
|
|
28944
29595
|
sessionStorage.removeItem(STORAGE_KEYS.state);
|
|
28945
29596
|
sessionStorage.removeItem(STORAGE_KEYS.verifier);
|
|
28946
29597
|
sessionStorage.removeItem(STORAGE_KEYS.nonce);
|
|
@@ -28950,7 +29601,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28950
29601
|
sessionStorage.removeItem(STORAGE_KEYS.silentCheckDone);
|
|
28951
29602
|
}
|
|
28952
29603
|
}, []);
|
|
28953
|
-
const startAuthorization = (0,
|
|
29604
|
+
const startAuthorization = (0, import_react28.useCallback)(
|
|
28954
29605
|
async (options) => {
|
|
28955
29606
|
var _a78, _b7;
|
|
28956
29607
|
const config = getAccountsConfig();
|
|
@@ -28976,7 +29627,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28976
29627
|
},
|
|
28977
29628
|
[]
|
|
28978
29629
|
);
|
|
28979
|
-
const attemptSilentLogin = (0,
|
|
29630
|
+
const attemptSilentLogin = (0, import_react28.useCallback)(async () => {
|
|
28980
29631
|
if (typeof window === "undefined") return false;
|
|
28981
29632
|
if (window.location.pathname.startsWith("/auth/callback")) return false;
|
|
28982
29633
|
if (sessionStorage.getItem(STORAGE_KEYS.silentCheckDone) === "1") return false;
|
|
@@ -28987,7 +29638,7 @@ var AuthProvider = ({ children }) => {
|
|
|
28987
29638
|
});
|
|
28988
29639
|
return true;
|
|
28989
29640
|
}, [startAuthorization]);
|
|
28990
|
-
(0,
|
|
29641
|
+
(0, import_react28.useEffect)(() => {
|
|
28991
29642
|
let cancelled = false;
|
|
28992
29643
|
const initializeAuth = async () => {
|
|
28993
29644
|
var _a78;
|
|
@@ -29011,9 +29662,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29011
29662
|
sessionStorage.removeItem(STORAGE_KEYS.presence);
|
|
29012
29663
|
sessionStorage.removeItem(STORAGE_KEYS.presenceSource);
|
|
29013
29664
|
localStorage.removeItem(LOCAL_STORAGE_KEYS.presenceSource);
|
|
29665
|
+
const pathname = typeof window === "undefined" ? "/" : window.location.pathname;
|
|
29666
|
+
const shouldAttemptSilentLogin = shouldAttemptSilentLoginForPath(pathname) && isSilentAuthRedirectCompatible();
|
|
29014
29667
|
try {
|
|
29015
|
-
|
|
29016
|
-
|
|
29668
|
+
if (shouldAttemptSilentLogin) {
|
|
29669
|
+
const redirected = await attemptSilentLogin();
|
|
29670
|
+
if (redirected || cancelled) return;
|
|
29671
|
+
}
|
|
29017
29672
|
} catch (error) {
|
|
29018
29673
|
if (isRuntimeDev()) {
|
|
29019
29674
|
console.warn("[auth] Falha na verifica\xE7\xE3o silenciosa de sess\xE3o:", error.message);
|
|
@@ -29028,7 +29683,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29028
29683
|
cancelled = true;
|
|
29029
29684
|
};
|
|
29030
29685
|
}, [attemptSilentLogin]);
|
|
29031
|
-
(0,
|
|
29686
|
+
(0, import_react28.useEffect)(() => {
|
|
29032
29687
|
var _a78;
|
|
29033
29688
|
if (status !== "authenticated") return;
|
|
29034
29689
|
if (user) return;
|
|
@@ -29041,15 +29696,15 @@ var AuthProvider = ({ children }) => {
|
|
|
29041
29696
|
if (!hydratedUser) return;
|
|
29042
29697
|
setUser(hydratedUser);
|
|
29043
29698
|
}, [status, user]);
|
|
29044
|
-
(0,
|
|
29699
|
+
(0, import_react28.useEffect)(() => {
|
|
29045
29700
|
resolvedPresenceIdentityKeyRef.current = null;
|
|
29046
29701
|
resolvedPresenceUserIdRef.current = null;
|
|
29047
29702
|
}, [user == null ? void 0 : user.email, user == null ? void 0 : user.id, user == null ? void 0 : user.sub, user == null ? void 0 : user.userId]);
|
|
29048
|
-
(0,
|
|
29703
|
+
(0, import_react28.useEffect)(() => {
|
|
29049
29704
|
if (status !== "authenticated") return;
|
|
29050
29705
|
void loadPresenceFromDatabase(user);
|
|
29051
29706
|
}, [loadPresenceFromDatabase, status, user]);
|
|
29052
|
-
(0,
|
|
29707
|
+
(0, import_react28.useEffect)(() => {
|
|
29053
29708
|
if (status !== "authenticated") return;
|
|
29054
29709
|
const supabase = getSupabase();
|
|
29055
29710
|
if (!supabase) return;
|
|
@@ -29086,7 +29741,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29086
29741
|
}
|
|
29087
29742
|
};
|
|
29088
29743
|
}, [resolvePresenceUserId, status, storePresenceStatus, syncPresenceFromRecord, user]);
|
|
29089
|
-
(0,
|
|
29744
|
+
(0, import_react28.useEffect)(() => {
|
|
29090
29745
|
if (status !== "authenticated") return;
|
|
29091
29746
|
const registerActivity = () => {
|
|
29092
29747
|
lastActivityAtRef.current = Date.now();
|
|
@@ -29135,13 +29790,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29135
29790
|
document.removeEventListener("visibilitychange", onVisibility);
|
|
29136
29791
|
};
|
|
29137
29792
|
}, [markPresenceIdle, status, touchPresence]);
|
|
29138
|
-
const login = (0,
|
|
29793
|
+
const login = (0, import_react28.useCallback)(async (redirectTo) => {
|
|
29139
29794
|
await startAuthorization({
|
|
29140
29795
|
mode: "interactive",
|
|
29141
29796
|
redirectTo: redirectTo != null ? redirectTo : window.location.pathname + window.location.search + window.location.hash
|
|
29142
29797
|
});
|
|
29143
29798
|
}, [startAuthorization]);
|
|
29144
|
-
const completeLogin = (0,
|
|
29799
|
+
const completeLogin = (0, import_react28.useCallback)(async () => {
|
|
29145
29800
|
var _a78;
|
|
29146
29801
|
const params = new URLSearchParams(window.location.search);
|
|
29147
29802
|
const redirectTo = (_a78 = sessionStorage.getItem(STORAGE_KEYS.redirect)) != null ? _a78 : "/";
|
|
@@ -29211,7 +29866,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29211
29866
|
return { ok: false, error: err.message };
|
|
29212
29867
|
}
|
|
29213
29868
|
}, [clearAuthFlowState]);
|
|
29214
|
-
const logout = (0,
|
|
29869
|
+
const logout = (0, import_react28.useCallback)(async () => {
|
|
29215
29870
|
var _a78;
|
|
29216
29871
|
const config = getAccountsConfig();
|
|
29217
29872
|
const { logoutUrl } = await resolveOidcEndpoints(config);
|
|
@@ -29230,13 +29885,13 @@ var AuthProvider = ({ children }) => {
|
|
|
29230
29885
|
window.location.assign(url);
|
|
29231
29886
|
}
|
|
29232
29887
|
}, [setPresenceNetworkStatus, storePresenceStatus, user]);
|
|
29233
|
-
const getAccessToken = (0,
|
|
29888
|
+
const getAccessToken = (0, import_react28.useCallback)(async () => {
|
|
29234
29889
|
const stored = readStoredToken();
|
|
29235
29890
|
if (stored == null ? void 0 : stored.accessToken) return stored.accessToken;
|
|
29236
29891
|
if (accessToken) return accessToken;
|
|
29237
29892
|
throw new Error("Usu\xE1rio n\xE3o autenticado.");
|
|
29238
29893
|
}, [accessToken]);
|
|
29239
|
-
const setPresenceStatus = (0,
|
|
29894
|
+
const setPresenceStatus = (0, import_react28.useCallback)(
|
|
29240
29895
|
async (nextStatus) => {
|
|
29241
29896
|
if (!isUserPresenceStatus(nextStatus) || nextStatus === "offline") return;
|
|
29242
29897
|
const now = Date.now();
|
|
@@ -29247,7 +29902,7 @@ var AuthProvider = ({ children }) => {
|
|
|
29247
29902
|
},
|
|
29248
29903
|
[setPresenceNetworkStatus]
|
|
29249
29904
|
);
|
|
29250
|
-
const value = (0,
|
|
29905
|
+
const value = (0, import_react28.useMemo)(
|
|
29251
29906
|
() => ({
|
|
29252
29907
|
status,
|
|
29253
29908
|
user,
|
|
@@ -29261,10 +29916,10 @@ var AuthProvider = ({ children }) => {
|
|
|
29261
29916
|
}),
|
|
29262
29917
|
[status, user, accessToken, login, logout, completeLogin, getAccessToken, presenceStatus, setPresenceStatus]
|
|
29263
29918
|
);
|
|
29264
|
-
return /* @__PURE__ */ (0,
|
|
29919
|
+
return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(AuthContext.Provider, { value, children });
|
|
29265
29920
|
};
|
|
29266
29921
|
var useAuth = () => {
|
|
29267
|
-
const ctx = (0,
|
|
29922
|
+
const ctx = (0, import_react28.useContext)(AuthContext);
|
|
29268
29923
|
if (!ctx) {
|
|
29269
29924
|
throw new Error("useAuth deve ser usado dentro de AuthProvider.");
|
|
29270
29925
|
}
|
|
@@ -29291,6 +29946,7 @@ var useAuth = () => {
|
|
|
29291
29946
|
AlertDialogTitle,
|
|
29292
29947
|
AlertDialogTrigger,
|
|
29293
29948
|
AlertTitle,
|
|
29949
|
+
AnimatedThemeToggle,
|
|
29294
29950
|
AppSidebar,
|
|
29295
29951
|
AspectRatio,
|
|
29296
29952
|
AuthProvider,
|
|
@@ -29579,6 +30235,8 @@ var useAuth = () => {
|
|
|
29579
30235
|
TelescupVideo,
|
|
29580
30236
|
Textarea,
|
|
29581
30237
|
TextareaField,
|
|
30238
|
+
ThemeProvider,
|
|
30239
|
+
ThemeScript,
|
|
29582
30240
|
ThemeToggle,
|
|
29583
30241
|
Timeline,
|
|
29584
30242
|
Toast,
|
|
@@ -29639,6 +30297,7 @@ var useAuth = () => {
|
|
|
29639
30297
|
toast,
|
|
29640
30298
|
toggleVariants,
|
|
29641
30299
|
useActiveSection,
|
|
30300
|
+
useAppTheme,
|
|
29642
30301
|
useAuth,
|
|
29643
30302
|
useBreakpoint,
|
|
29644
30303
|
useFormField,
|