@cupcodev/ui 8.1.1 → 8.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1269 -904
- package/dist/index.d.cts +34 -1
- package/dist/index.d.ts +34 -1
- package/dist/index.js +1100 -741
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1450,6 +1450,7 @@ function buildTelescupImageURL(options) {
|
|
|
1450
1450
|
return `${getApiBase()}/i?${params.toString()}`;
|
|
1451
1451
|
}
|
|
1452
1452
|
function resolveTelescupImageURL(value, options) {
|
|
1453
|
+
var _a25;
|
|
1453
1454
|
const raw = value == null ? void 0 : value.trim();
|
|
1454
1455
|
if (!raw) return void 0;
|
|
1455
1456
|
const parsedId = parseAssetId(raw);
|
|
@@ -1466,7 +1467,14 @@ function resolveTelescupImageURL(value, options) {
|
|
|
1466
1467
|
if (raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") || raw.startsWith("blob:")) {
|
|
1467
1468
|
return raw;
|
|
1468
1469
|
}
|
|
1469
|
-
return
|
|
1470
|
+
return buildTelescupImageURL({
|
|
1471
|
+
id: raw,
|
|
1472
|
+
width: options == null ? void 0 : options.width,
|
|
1473
|
+
height: options == null ? void 0 : options.height,
|
|
1474
|
+
fit: options == null ? void 0 : options.fit,
|
|
1475
|
+
format: (_a25 = options == null ? void 0 : options.format) != null ? _a25 : "webp",
|
|
1476
|
+
quality: options == null ? void 0 : options.quality
|
|
1477
|
+
});
|
|
1470
1478
|
}
|
|
1471
1479
|
function buildTelescupVideoURL(id) {
|
|
1472
1480
|
return `${getApiBase()}/i/v?id=${id}`;
|
|
@@ -2153,7 +2161,7 @@ var DockWrapper_default = DockWrapper;
|
|
|
2153
2161
|
|
|
2154
2162
|
// src/components/layout/main-layout.tsx
|
|
2155
2163
|
import { ChevronRight as ChevronRight2, Menu as Menu2 } from "lucide-react";
|
|
2156
|
-
import { useCallback as useCallback7, useEffect as useEffect17, useMemo as
|
|
2164
|
+
import { useCallback as useCallback7, useEffect as useEffect17, useMemo as useMemo13, useState as useState16 } from "react";
|
|
2157
2165
|
|
|
2158
2166
|
// src/lib/navigation.tsx
|
|
2159
2167
|
import { AppWindow, BookOpen, Film, Home, Layers, Link2, Package } from "lucide-react";
|
|
@@ -2202,7 +2210,7 @@ var getMainNavItems = ({ includePrivate = true } = {}) => {
|
|
|
2202
2210
|
};
|
|
2203
2211
|
|
|
2204
2212
|
// src/components/cupcode/MainNavbar.tsx
|
|
2205
|
-
import { useCallback as useCallback6, useEffect as useEffect14, useMemo as
|
|
2213
|
+
import { useCallback as useCallback6, useEffect as useEffect14, useMemo as useMemo10, useState as useState13 } from "react";
|
|
2206
2214
|
|
|
2207
2215
|
// src/components/cupcode/NavbarCupcode.tsx
|
|
2208
2216
|
import * as React5 from "react";
|
|
@@ -2448,6 +2456,7 @@ var NavbarCupcode_default = NavbarCupcode;
|
|
|
2448
2456
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
2449
2457
|
import {
|
|
2450
2458
|
Check as Check3,
|
|
2459
|
+
Clock as Clock2,
|
|
2451
2460
|
Cog,
|
|
2452
2461
|
ExternalLink,
|
|
2453
2462
|
Info,
|
|
@@ -2462,7 +2471,7 @@ import {
|
|
|
2462
2471
|
import {
|
|
2463
2472
|
useCallback as useCallback5,
|
|
2464
2473
|
useEffect as useEffect12,
|
|
2465
|
-
useMemo as
|
|
2474
|
+
useMemo as useMemo9,
|
|
2466
2475
|
useState as useState11
|
|
2467
2476
|
} from "react";
|
|
2468
2477
|
|
|
@@ -5844,6 +5853,250 @@ var TelescupUpload = ({
|
|
|
5844
5853
|
] }) });
|
|
5845
5854
|
};
|
|
5846
5855
|
|
|
5856
|
+
// src/lib/accountsLoginHistory.ts
|
|
5857
|
+
var toStringOrUndefined = (value) => {
|
|
5858
|
+
if (typeof value !== "string") return void 0;
|
|
5859
|
+
const trimmed = value.trim();
|
|
5860
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
5861
|
+
};
|
|
5862
|
+
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5863
|
+
var resolveAccountsApiBaseUrl = () => {
|
|
5864
|
+
var _a25, _b3, _c, _d;
|
|
5865
|
+
const appsApiBase = ((_b3 = (_a25 = getRuntimeEnv("VITE_APPS_API_BASE_URL")) != null ? _a25 : getRuntimeEnv("VITE_APPS_API_BASE")) != null ? _b3 : "").trim().replace(/\/+$/, "");
|
|
5866
|
+
if (appsApiBase) return `${appsApiBase}/api/accounts`;
|
|
5867
|
+
const accountsBase = ((_c = getRuntimeEnv("VITE_ACCOUNTS_BASE_URL")) != null ? _c : "https://accounts.cupcode.com.br").trim().replace(/\/+$/, "");
|
|
5868
|
+
const accountsApi = ((_d = getRuntimeEnv("VITE_ACCOUNTS_API_BASE_URL")) != null ? _d : "").trim().replace(/\/+$/, "");
|
|
5869
|
+
return accountsApi || accountsBase;
|
|
5870
|
+
};
|
|
5871
|
+
var parseBrowserFromUserAgent = (userAgent) => {
|
|
5872
|
+
var _a25;
|
|
5873
|
+
const ua = (_a25 = userAgent == null ? void 0 : userAgent.trim()) != null ? _a25 : "";
|
|
5874
|
+
if (!ua) return "Desconhecido";
|
|
5875
|
+
if (/Edg\//.test(ua)) return "Edge";
|
|
5876
|
+
if (/Chrome\//.test(ua)) return "Chrome";
|
|
5877
|
+
if (/Firefox\//.test(ua)) return "Firefox";
|
|
5878
|
+
if (/Safari\//.test(ua)) return "Safari";
|
|
5879
|
+
if (/curl/.test(ua)) return "curl";
|
|
5880
|
+
return ua.split(" ")[0] || "Desconhecido";
|
|
5881
|
+
};
|
|
5882
|
+
var parseOsFromUserAgent = (userAgent) => {
|
|
5883
|
+
var _a25;
|
|
5884
|
+
const ua = (_a25 = userAgent == null ? void 0 : userAgent.trim()) != null ? _a25 : "";
|
|
5885
|
+
if (!ua) return null;
|
|
5886
|
+
if (/Windows NT/.test(ua)) return "Windows";
|
|
5887
|
+
if (/Mac OS X/.test(ua)) return "macOS";
|
|
5888
|
+
if (/Linux/.test(ua)) return "Linux";
|
|
5889
|
+
if (/Android/.test(ua)) return "Android";
|
|
5890
|
+
if (/iPhone|iPad/.test(ua)) return "iOS";
|
|
5891
|
+
return null;
|
|
5892
|
+
};
|
|
5893
|
+
var normalizeLoginHistorySessions = (value) => {
|
|
5894
|
+
if (!Array.isArray(value)) return [];
|
|
5895
|
+
return value.filter(isRecord).map((row, index) => {
|
|
5896
|
+
var _a25, _b3, _c, _d, _e, _f;
|
|
5897
|
+
const id = (_a25 = toStringOrUndefined(row.id)) != null ? _a25 : `session-${index}`;
|
|
5898
|
+
return {
|
|
5899
|
+
id,
|
|
5900
|
+
createdAt: (_b3 = toStringOrUndefined(row.created_at)) != null ? _b3 : toStringOrUndefined(row.createdAt),
|
|
5901
|
+
lastSeen: (_c = toStringOrUndefined(row.last_seen)) != null ? _c : toStringOrUndefined(row.lastSeen),
|
|
5902
|
+
expiresAt: (_d = toStringOrUndefined(row.expires_at)) != null ? _d : toStringOrUndefined(row.expiresAt),
|
|
5903
|
+
ip: (_e = toStringOrUndefined(row.ip_address)) != null ? _e : toStringOrUndefined(row.ip),
|
|
5904
|
+
userAgent: (_f = toStringOrUndefined(row.user_agent)) != null ? _f : toStringOrUndefined(row.userAgent),
|
|
5905
|
+
active: typeof row.active === "boolean" ? row.active : null
|
|
5906
|
+
};
|
|
5907
|
+
}).filter((session) => Boolean(session == null ? void 0 : session.id));
|
|
5908
|
+
};
|
|
5909
|
+
var isLoginHistorySessionActive = (session, now = Date.now()) => {
|
|
5910
|
+
if (session.active === false) return false;
|
|
5911
|
+
if (!session.expiresAt) return Boolean(session.active);
|
|
5912
|
+
const expiresAt2 = new Date(session.expiresAt).getTime();
|
|
5913
|
+
if (Number.isNaN(expiresAt2)) return Boolean(session.active);
|
|
5914
|
+
return Boolean(session.active) && expiresAt2 > now;
|
|
5915
|
+
};
|
|
5916
|
+
var readStoredAccessToken = () => {
|
|
5917
|
+
var _a25;
|
|
5918
|
+
if (typeof window === "undefined") return null;
|
|
5919
|
+
const keys = ["cc_access_token", "access_token"];
|
|
5920
|
+
for (const key of keys) {
|
|
5921
|
+
const value = (_a25 = window.sessionStorage.getItem(key)) == null ? void 0 : _a25.trim();
|
|
5922
|
+
if (value) return value;
|
|
5923
|
+
}
|
|
5924
|
+
return null;
|
|
5925
|
+
};
|
|
5926
|
+
async function fetchAccountsLoginHistory(options) {
|
|
5927
|
+
var _a25;
|
|
5928
|
+
const base = ((_a25 = options == null ? void 0 : options.accountsApiBaseUrl) != null ? _a25 : resolveAccountsApiBaseUrl()).replace(/\/+$/, "");
|
|
5929
|
+
const resolveToken = async () => {
|
|
5930
|
+
if (options == null ? void 0 : options.getAccessToken) {
|
|
5931
|
+
try {
|
|
5932
|
+
const token2 = await options.getAccessToken();
|
|
5933
|
+
if (token2 == null ? void 0 : token2.trim()) return token2.trim();
|
|
5934
|
+
} catch (e) {
|
|
5935
|
+
}
|
|
5936
|
+
}
|
|
5937
|
+
return readStoredAccessToken();
|
|
5938
|
+
};
|
|
5939
|
+
const token = await resolveToken();
|
|
5940
|
+
if (token) {
|
|
5941
|
+
try {
|
|
5942
|
+
const response = await fetch(`${base}/me`, {
|
|
5943
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
5944
|
+
credentials: "include"
|
|
5945
|
+
});
|
|
5946
|
+
if (response.ok) {
|
|
5947
|
+
const payload = await response.json();
|
|
5948
|
+
if (isRecord(payload)) {
|
|
5949
|
+
const sessions = normalizeLoginHistorySessions(payload.sessions);
|
|
5950
|
+
if (sessions.length > 0) return sessions;
|
|
5951
|
+
}
|
|
5952
|
+
}
|
|
5953
|
+
} catch (e) {
|
|
5954
|
+
}
|
|
5955
|
+
}
|
|
5956
|
+
try {
|
|
5957
|
+
const response = await fetch(`${base}/session`, { credentials: "include" });
|
|
5958
|
+
if (response.ok) {
|
|
5959
|
+
const payload = await response.json();
|
|
5960
|
+
if (isRecord(payload)) {
|
|
5961
|
+
return normalizeLoginHistorySessions(payload.sessions);
|
|
5962
|
+
}
|
|
5963
|
+
}
|
|
5964
|
+
} catch (e) {
|
|
5965
|
+
}
|
|
5966
|
+
return [];
|
|
5967
|
+
}
|
|
5968
|
+
|
|
5969
|
+
// src/components/cupcode/LoginHistoryCupcode.tsx
|
|
5970
|
+
import { Activity, Clock, Loader2, Monitor, Wifi } from "lucide-react";
|
|
5971
|
+
import { useMemo as useMemo8 } from "react";
|
|
5972
|
+
import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
5973
|
+
var formatDateTime = (value) => {
|
|
5974
|
+
if (!value) return void 0;
|
|
5975
|
+
const date = new Date(value);
|
|
5976
|
+
if (Number.isNaN(date.getTime())) return void 0;
|
|
5977
|
+
return date.toLocaleString("pt-BR", { hour12: false });
|
|
5978
|
+
};
|
|
5979
|
+
var LoginHistoryCupcode = ({
|
|
5980
|
+
sessions = [],
|
|
5981
|
+
isLoading = false,
|
|
5982
|
+
emptyLabel = "Nenhuma sess\xE3o registrada.",
|
|
5983
|
+
loadingLabel = "Carregando sess\xF5es...",
|
|
5984
|
+
className,
|
|
5985
|
+
variant = "default",
|
|
5986
|
+
maxItems = 20
|
|
5987
|
+
}) => {
|
|
5988
|
+
const visibleSessions = useMemo8(() => sessions.slice(0, maxItems), [maxItems, sessions]);
|
|
5989
|
+
const isCompact = variant === "compact";
|
|
5990
|
+
if (isLoading) {
|
|
5991
|
+
return /* @__PURE__ */ jsxs21(
|
|
5992
|
+
"div",
|
|
5993
|
+
{
|
|
5994
|
+
className: cn(
|
|
5995
|
+
"flex items-center justify-center gap-2 text-muted-foreground",
|
|
5996
|
+
isCompact ? "py-6 text-[11px]" : "py-10 text-sm",
|
|
5997
|
+
className
|
|
5998
|
+
),
|
|
5999
|
+
children: [
|
|
6000
|
+
/* @__PURE__ */ jsx34(Loader2, { className: cn("animate-spin", isCompact ? "h-3.5 w-3.5" : "h-4 w-4") }),
|
|
6001
|
+
loadingLabel
|
|
6002
|
+
]
|
|
6003
|
+
}
|
|
6004
|
+
);
|
|
6005
|
+
}
|
|
6006
|
+
if (visibleSessions.length === 0) {
|
|
6007
|
+
return /* @__PURE__ */ jsx34(
|
|
6008
|
+
"div",
|
|
6009
|
+
{
|
|
6010
|
+
className: cn(
|
|
6011
|
+
"text-center text-muted-foreground",
|
|
6012
|
+
isCompact ? "py-6 text-[11px]" : "py-10 text-sm",
|
|
6013
|
+
className
|
|
6014
|
+
),
|
|
6015
|
+
children: emptyLabel
|
|
6016
|
+
}
|
|
6017
|
+
);
|
|
6018
|
+
}
|
|
6019
|
+
return /* @__PURE__ */ jsx34("div", { className: cn(isCompact ? "space-y-1.5" : "space-y-2", className), children: visibleSessions.map((session, index) => {
|
|
6020
|
+
var _a25;
|
|
6021
|
+
const browser = parseBrowserFromUserAgent(session.userAgent);
|
|
6022
|
+
const os = parseOsFromUserAgent(session.userAgent);
|
|
6023
|
+
const isActive = isLoginHistorySessionActive(session);
|
|
6024
|
+
const loginLabel = formatDateTime(session.createdAt);
|
|
6025
|
+
const lastSeenLabel = formatDateTime(session.lastSeen);
|
|
6026
|
+
const ip = ((_a25 = session.ip) == null ? void 0 : _a25.trim()) || "unknown";
|
|
6027
|
+
return /* @__PURE__ */ jsxs21(
|
|
6028
|
+
"div",
|
|
6029
|
+
{
|
|
6030
|
+
className: cn(
|
|
6031
|
+
"flex items-start gap-2.5 border border-primary/10 bg-background/50 transition hover:bg-primary/5",
|
|
6032
|
+
isCompact ? "rounded-md px-2.5 py-2" : "rounded-xl px-4 py-3"
|
|
6033
|
+
),
|
|
6034
|
+
children: [
|
|
6035
|
+
/* @__PURE__ */ jsx34(
|
|
6036
|
+
"span",
|
|
6037
|
+
{
|
|
6038
|
+
className: cn(
|
|
6039
|
+
"mt-0.5 min-w-[22px] font-semibold tabular-nums text-muted-foreground/60",
|
|
6040
|
+
isCompact ? "text-[10px]" : "text-[11px]"
|
|
6041
|
+
),
|
|
6042
|
+
children: String(index + 1).padStart(2, "0")
|
|
6043
|
+
}
|
|
6044
|
+
),
|
|
6045
|
+
/* @__PURE__ */ jsx34(
|
|
6046
|
+
"div",
|
|
6047
|
+
{
|
|
6048
|
+
className: cn(
|
|
6049
|
+
"mt-0.5 flex shrink-0 items-center justify-center rounded-lg",
|
|
6050
|
+
isCompact ? "h-6 w-6" : "h-7 w-7",
|
|
6051
|
+
isActive ? "bg-emerald-500/15 text-emerald-400" : "bg-muted/40 text-muted-foreground"
|
|
6052
|
+
),
|
|
6053
|
+
children: /* @__PURE__ */ jsx34(Monitor, { className: isCompact ? "h-3 w-3" : "h-3.5 w-3.5" })
|
|
6054
|
+
}
|
|
6055
|
+
),
|
|
6056
|
+
/* @__PURE__ */ jsxs21("div", { className: "min-w-0 flex-1 space-y-1", children: [
|
|
6057
|
+
/* @__PURE__ */ jsxs21("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
6058
|
+
/* @__PURE__ */ jsxs21("span", { className: cn("font-medium text-foreground", isCompact ? "text-[11px]" : "text-sm"), children: [
|
|
6059
|
+
browser,
|
|
6060
|
+
os ? ` \xB7 ${os}` : ""
|
|
6061
|
+
] }),
|
|
6062
|
+
isActive ? /* @__PURE__ */ jsxs21("span", { className: "inline-flex items-center gap-1 rounded-full bg-emerald-500/15 px-2 py-0.5 text-[10px] font-semibold text-emerald-400", children: [
|
|
6063
|
+
/* @__PURE__ */ jsx34("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-emerald-400" }),
|
|
6064
|
+
"Ativa"
|
|
6065
|
+
] }) : /* @__PURE__ */ jsx34("span", { className: "inline-flex items-center gap-1 rounded-full bg-muted/50 px-2 py-0.5 text-[10px] font-semibold text-muted-foreground", children: "Expirada" })
|
|
6066
|
+
] }),
|
|
6067
|
+
/* @__PURE__ */ jsxs21(
|
|
6068
|
+
"div",
|
|
6069
|
+
{
|
|
6070
|
+
className: cn(
|
|
6071
|
+
"flex flex-wrap items-center gap-x-3 gap-y-0.5 text-muted-foreground",
|
|
6072
|
+
isCompact ? "text-[10px]" : "text-xs"
|
|
6073
|
+
),
|
|
6074
|
+
children: [
|
|
6075
|
+
loginLabel ? /* @__PURE__ */ jsxs21("span", { className: "inline-flex items-center gap-1", children: [
|
|
6076
|
+
/* @__PURE__ */ jsx34(Clock, { className: "h-3 w-3" }),
|
|
6077
|
+
"Login: ",
|
|
6078
|
+
loginLabel
|
|
6079
|
+
] }) : null,
|
|
6080
|
+
lastSeenLabel ? /* @__PURE__ */ jsxs21("span", { className: "inline-flex items-center gap-1", children: [
|
|
6081
|
+
/* @__PURE__ */ jsx34(Activity, { className: "h-3 w-3" }),
|
|
6082
|
+
"\xDAltimo acesso: ",
|
|
6083
|
+
lastSeenLabel
|
|
6084
|
+
] }) : null,
|
|
6085
|
+
/* @__PURE__ */ jsxs21("span", { className: "inline-flex items-center gap-1 font-mono", children: [
|
|
6086
|
+
/* @__PURE__ */ jsx34(Wifi, { className: "h-3 w-3" }),
|
|
6087
|
+
ip
|
|
6088
|
+
] })
|
|
6089
|
+
]
|
|
6090
|
+
}
|
|
6091
|
+
)
|
|
6092
|
+
] })
|
|
6093
|
+
]
|
|
6094
|
+
},
|
|
6095
|
+
session.id
|
|
6096
|
+
);
|
|
6097
|
+
}) });
|
|
6098
|
+
};
|
|
6099
|
+
|
|
5847
6100
|
// src/lib/themePreference.ts
|
|
5848
6101
|
var THEME_STORAGE_KEY = "cupcode-theme";
|
|
5849
6102
|
var LEGACY_THEME_STORAGE_KEY = "theme";
|
|
@@ -5943,7 +6196,7 @@ function resolveStoredThemePreference(experienceSettingsTheme) {
|
|
|
5943
6196
|
}
|
|
5944
6197
|
|
|
5945
6198
|
// src/components/cupcode/UserMenuCupcode.tsx
|
|
5946
|
-
import { jsx as
|
|
6199
|
+
import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5947
6200
|
var PRESENCE_META = {
|
|
5948
6201
|
online: { label: "On-line", group: "online", kind: "dot", dotClass: "bg-success" },
|
|
5949
6202
|
away: { label: "Ausente", group: "away", kind: "crescent" },
|
|
@@ -6042,10 +6295,10 @@ var PresenceBadge = ({ status, size = "sm" }) => {
|
|
|
6042
6295
|
const moonSize = size === "lg" ? "h-[1.15rem] w-[1.15rem]" : size === "md" ? "h-3.5 w-3.5" : "h-3 w-3";
|
|
6043
6296
|
const emojiSize = size === "lg" ? "text-base" : size === "md" ? "text-sm" : "text-xs";
|
|
6044
6297
|
if (meta.kind === "dot") {
|
|
6045
|
-
return /* @__PURE__ */
|
|
6298
|
+
return /* @__PURE__ */ jsx35("span", { className: cn("inline-block rounded-full", dotSize, meta.dotClass), "aria-label": meta.label, title: meta.label });
|
|
6046
6299
|
}
|
|
6047
6300
|
if (meta.kind === "crescent") {
|
|
6048
|
-
return /* @__PURE__ */
|
|
6301
|
+
return /* @__PURE__ */ jsxs22(
|
|
6049
6302
|
"svg",
|
|
6050
6303
|
{
|
|
6051
6304
|
viewBox: "0 0 24 24",
|
|
@@ -6053,13 +6306,13 @@ var PresenceBadge = ({ status, size = "sm" }) => {
|
|
|
6053
6306
|
"aria-label": meta.label,
|
|
6054
6307
|
role: "img",
|
|
6055
6308
|
children: [
|
|
6056
|
-
/* @__PURE__ */
|
|
6057
|
-
/* @__PURE__ */
|
|
6309
|
+
/* @__PURE__ */ jsx35("title", { children: meta.label }),
|
|
6310
|
+
/* @__PURE__ */ jsx35("path", { d: "M21 12.79A9 9 0 1 1 11.21 3a7 7 0 0 0 9.79 9.79z", fill: "currentColor" })
|
|
6058
6311
|
]
|
|
6059
6312
|
}
|
|
6060
6313
|
);
|
|
6061
6314
|
}
|
|
6062
|
-
return /* @__PURE__ */
|
|
6315
|
+
return /* @__PURE__ */ jsx35("span", { className: cn("inline-block leading-none", emojiSize), "aria-label": meta.label, title: meta.label, children: meta.emoji });
|
|
6063
6316
|
};
|
|
6064
6317
|
var UserMenuCupcode = ({
|
|
6065
6318
|
isAuthenticated,
|
|
@@ -6083,6 +6336,9 @@ var UserMenuCupcode = ({
|
|
|
6083
6336
|
isTwoFactorStatusLoading = false,
|
|
6084
6337
|
recentActivity,
|
|
6085
6338
|
isRecentActivityLoading = false,
|
|
6339
|
+
loginHistorySessions,
|
|
6340
|
+
isLoginHistoryLoading = false,
|
|
6341
|
+
getAccountsAccessToken,
|
|
6086
6342
|
telescupBaseUrl,
|
|
6087
6343
|
getTelescupAccessToken,
|
|
6088
6344
|
appVersion,
|
|
@@ -6103,11 +6359,16 @@ var UserMenuCupcode = ({
|
|
|
6103
6359
|
const [internalLanguage, setInternalLanguage] = useState11(() => normalizeLanguage(language));
|
|
6104
6360
|
const [isLogoutConfirmOpen, setIsLogoutConfirmOpen] = useState11(false);
|
|
6105
6361
|
const [internalStatus, setInternalStatus] = useState11(defaultStatus);
|
|
6106
|
-
const
|
|
6362
|
+
const [internalLoginHistorySessions, setInternalLoginHistorySessions] = useState11([]);
|
|
6363
|
+
const [isInternalLoginHistoryLoading, setIsInternalLoginHistoryLoading] = useState11(false);
|
|
6364
|
+
const isLoginHistoryControlled = typeof loginHistorySessions !== "undefined";
|
|
6365
|
+
const resolvedLoginHistorySessions = isLoginHistoryControlled ? loginHistorySessions != null ? loginHistorySessions : [] : internalLoginHistorySessions;
|
|
6366
|
+
const resolvedLoginHistoryLoading = isLoginHistoryControlled ? isLoginHistoryLoading : isInternalLoginHistoryLoading;
|
|
6367
|
+
const initials = useMemo9(() => buildInitials(displayName, email), [displayName, email]);
|
|
6107
6368
|
const resolvedRole = roleLabel == null ? void 0 : roleLabel.trim();
|
|
6108
6369
|
const resolvedTenantId = tenantId == null ? void 0 : tenantId.trim();
|
|
6109
|
-
const resolvedAppVersion =
|
|
6110
|
-
const appVersionLabel =
|
|
6370
|
+
const resolvedAppVersion = useMemo9(() => resolveCupcodeAppVersion(appVersion), [appVersion]);
|
|
6371
|
+
const appVersionLabel = useMemo9(() => formatAppVersion(resolvedAppVersion), [resolvedAppVersion]);
|
|
6111
6372
|
const isStatusControlled = typeof status !== "undefined";
|
|
6112
6373
|
const currentStatus = status != null ? status : internalStatus;
|
|
6113
6374
|
const resolvedName = (displayName == null ? void 0 : displayName.trim()) || "Usu\xE1rio Cupcode";
|
|
@@ -6171,6 +6432,20 @@ var UserMenuCupcode = ({
|
|
|
6171
6432
|
media.addListener(onSystemThemeChange);
|
|
6172
6433
|
return () => media.removeListener(onSystemThemeChange);
|
|
6173
6434
|
}, [themePreference]);
|
|
6435
|
+
useEffect12(() => {
|
|
6436
|
+
if (!isAuthenticated || !open || isLoginHistoryControlled) return;
|
|
6437
|
+
if (activeTab !== "settings") return;
|
|
6438
|
+
let canceled = false;
|
|
6439
|
+
setIsInternalLoginHistoryLoading(true);
|
|
6440
|
+
void fetchAccountsLoginHistory({ getAccessToken: getAccountsAccessToken }).then((sessions) => {
|
|
6441
|
+
if (!canceled) setInternalLoginHistorySessions(sessions);
|
|
6442
|
+
}).finally(() => {
|
|
6443
|
+
if (!canceled) setIsInternalLoginHistoryLoading(false);
|
|
6444
|
+
});
|
|
6445
|
+
return () => {
|
|
6446
|
+
canceled = true;
|
|
6447
|
+
};
|
|
6448
|
+
}, [activeTab, getAccountsAccessToken, isAuthenticated, isLoginHistoryControlled, open]);
|
|
6174
6449
|
const runLogout = async () => {
|
|
6175
6450
|
if (!onLogout || isLoggingOut) return;
|
|
6176
6451
|
setIsLoggingOut(true);
|
|
@@ -6213,12 +6488,12 @@ var UserMenuCupcode = ({
|
|
|
6213
6488
|
const renderPresenceStatusOptions = () => {
|
|
6214
6489
|
return PRESENCE_OPTIONS.map((option) => {
|
|
6215
6490
|
const isCurrent = option === currentStatus;
|
|
6216
|
-
return /* @__PURE__ */
|
|
6217
|
-
/* @__PURE__ */
|
|
6218
|
-
/* @__PURE__ */
|
|
6219
|
-
/* @__PURE__ */
|
|
6491
|
+
return /* @__PURE__ */ jsx35(DropdownMenuItem, { onSelect: () => changeStatus(option), className: "text-xs", children: /* @__PURE__ */ jsxs22("span", { className: "flex w-full items-center justify-between gap-2", children: [
|
|
6492
|
+
/* @__PURE__ */ jsxs22("span", { className: "flex items-center gap-2", children: [
|
|
6493
|
+
/* @__PURE__ */ jsx35(PresenceBadge, { status: option, size: "md" }),
|
|
6494
|
+
/* @__PURE__ */ jsx35("span", { children: PRESENCE_META[option].label })
|
|
6220
6495
|
] }),
|
|
6221
|
-
isCurrent ? /* @__PURE__ */
|
|
6496
|
+
isCurrent ? /* @__PURE__ */ jsx35(Check3, { className: "h-3.5 w-3.5 text-primary" }) : null
|
|
6222
6497
|
] }) }, option);
|
|
6223
6498
|
});
|
|
6224
6499
|
};
|
|
@@ -6271,10 +6546,10 @@ var UserMenuCupcode = ({
|
|
|
6271
6546
|
const renderDefaultPanel = () => {
|
|
6272
6547
|
var _a25;
|
|
6273
6548
|
if (activeTab === "profile") {
|
|
6274
|
-
return /* @__PURE__ */
|
|
6275
|
-
/* @__PURE__ */
|
|
6276
|
-
/* @__PURE__ */
|
|
6277
|
-
/* @__PURE__ */
|
|
6549
|
+
return /* @__PURE__ */ jsxs22("div", { className: "space-y-4", children: [
|
|
6550
|
+
/* @__PURE__ */ jsxs22("div", { className: "pt-1 text-center", children: [
|
|
6551
|
+
/* @__PURE__ */ jsxs22("div", { className: "relative mx-auto h-20 w-20", children: [
|
|
6552
|
+
/* @__PURE__ */ jsx35(
|
|
6278
6553
|
"button",
|
|
6279
6554
|
{
|
|
6280
6555
|
type: "button",
|
|
@@ -6282,40 +6557,40 @@ var UserMenuCupcode = ({
|
|
|
6282
6557
|
className: "block h-20 w-20 rounded-full transition-all hover:shadow-[0_0_0_2px_rgba(151,90,182,0.3),0_18px_24px_-22px_rgba(151,90,182,0.3)]",
|
|
6283
6558
|
"aria-label": "Abrir foto de perfil",
|
|
6284
6559
|
title: "Abrir foto de perfil",
|
|
6285
|
-
children: /* @__PURE__ */
|
|
6286
|
-
/* @__PURE__ */
|
|
6287
|
-
/* @__PURE__ */
|
|
6560
|
+
children: /* @__PURE__ */ jsxs22(Avatar2, { className: "h-20 w-20 border border-border/70 shadow-none", children: [
|
|
6561
|
+
/* @__PURE__ */ jsx35(AvatarImage2, { src: resolvedProfileAvatarUrl, alt: resolvedName }),
|
|
6562
|
+
/* @__PURE__ */ jsx35(AvatarFallback2, { className: "bg-muted text-2xl font-semibold text-foreground", children: initials })
|
|
6288
6563
|
] })
|
|
6289
6564
|
}
|
|
6290
6565
|
),
|
|
6291
|
-
/* @__PURE__ */
|
|
6292
|
-
/* @__PURE__ */
|
|
6566
|
+
/* @__PURE__ */ jsxs22(DropdownMenu, { children: [
|
|
6567
|
+
/* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35(
|
|
6293
6568
|
"button",
|
|
6294
6569
|
{
|
|
6295
6570
|
type: "button",
|
|
6296
6571
|
className: "absolute bottom-1 right-1 inline-flex items-center justify-center rounded-full p-0.5 transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
6297
6572
|
"aria-label": "Alterar status",
|
|
6298
6573
|
title: "Alterar status",
|
|
6299
|
-
children: /* @__PURE__ */
|
|
6574
|
+
children: /* @__PURE__ */ jsx35(PresenceBadge, { status: currentStatus, size: "lg" })
|
|
6300
6575
|
}
|
|
6301
6576
|
) }),
|
|
6302
|
-
/* @__PURE__ */
|
|
6577
|
+
/* @__PURE__ */ jsx35(DropdownMenuContent, { align: "end", sideOffset: 8, className: "z-[1800] w-44", children: renderPresenceStatusOptions() })
|
|
6303
6578
|
] })
|
|
6304
6579
|
] }),
|
|
6305
|
-
/* @__PURE__ */
|
|
6306
|
-
/* @__PURE__ */
|
|
6307
|
-
/* @__PURE__ */
|
|
6308
|
-
/* @__PURE__ */
|
|
6309
|
-
/* @__PURE__ */
|
|
6310
|
-
/* @__PURE__ */
|
|
6311
|
-
/* @__PURE__ */
|
|
6312
|
-
/* @__PURE__ */
|
|
6580
|
+
/* @__PURE__ */ jsxs22("div", { className: "mt-3 space-y-2.5", children: [
|
|
6581
|
+
/* @__PURE__ */ jsx35("h3", { className: "text-xl font-bold leading-tight text-foreground", children: resolvedName }),
|
|
6582
|
+
/* @__PURE__ */ jsx35("p", { className: "truncate text-sm text-muted-foreground", children: resolvedEmail }),
|
|
6583
|
+
/* @__PURE__ */ jsx35("div", { className: "border-t border-border/60" }),
|
|
6584
|
+
/* @__PURE__ */ jsx35("div", { className: "flex justify-center pt-0.5", children: /* @__PURE__ */ jsxs22("div", { className: cn(MENU_SURFACE_CLASS_NAME, "inline-flex max-w-full items-center gap-2 px-2.5 py-1.5"), children: [
|
|
6585
|
+
/* @__PURE__ */ jsx35("span", { className: "truncate rounded-md bg-emerald-500/15 px-2 py-0.5 text-[11px] font-bold uppercase tracking-wide text-emerald-400", children: resolvedRole != null ? resolvedRole : "\u2014" }),
|
|
6586
|
+
/* @__PURE__ */ jsx35("span", { className: "shrink-0 text-[10px] font-semibold text-muted-foreground/70", "aria-hidden": true, children: "|" }),
|
|
6587
|
+
/* @__PURE__ */ jsx35("span", { className: "truncate rounded-md bg-fuchsia-500/15 px-2 py-0.5 text-[11px] font-bold text-fuchsia-300", children: resolvedTenantId != null ? resolvedTenantId : "\u2014" })
|
|
6313
6588
|
] }) })
|
|
6314
6589
|
] })
|
|
6315
6590
|
] }),
|
|
6316
|
-
/* @__PURE__ */
|
|
6317
|
-
/* @__PURE__ */
|
|
6318
|
-
/* @__PURE__ */
|
|
6591
|
+
/* @__PURE__ */ jsxs22("div", { className: cn(MENU_SURFACE_CLASS_NAME, "p-2.5"), children: [
|
|
6592
|
+
/* @__PURE__ */ jsx35("p", { className: "px-0.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground", children: "Acessos r\xE1pidos" }),
|
|
6593
|
+
/* @__PURE__ */ jsx35("div", { className: "mt-1.5 space-y-1", children: PROFILE_QUICK_LINKS.map((link) => /* @__PURE__ */ jsxs22(
|
|
6319
6594
|
"button",
|
|
6320
6595
|
{
|
|
6321
6596
|
type: "button",
|
|
@@ -6325,38 +6600,38 @@ var UserMenuCupcode = ({
|
|
|
6325
6600
|
"flex w-full items-center justify-between px-2.5 py-1.5 text-left text-xs font-semibold text-foreground shadow-none transition-all hover:border-border/70 hover:bg-background/65"
|
|
6326
6601
|
),
|
|
6327
6602
|
children: [
|
|
6328
|
-
/* @__PURE__ */
|
|
6329
|
-
/* @__PURE__ */
|
|
6603
|
+
/* @__PURE__ */ jsx35("span", { children: link.label }),
|
|
6604
|
+
/* @__PURE__ */ jsx35(ExternalLink, { className: "h-3 w-3 shrink-0 text-muted-foreground" })
|
|
6330
6605
|
]
|
|
6331
6606
|
},
|
|
6332
6607
|
link.href
|
|
6333
6608
|
)) })
|
|
6334
6609
|
] }),
|
|
6335
|
-
/* @__PURE__ */
|
|
6336
|
-
/* @__PURE__ */
|
|
6337
|
-
/* @__PURE__ */
|
|
6338
|
-
/* @__PURE__ */
|
|
6610
|
+
/* @__PURE__ */ jsxs22("div", { className: cn(MENU_SURFACE_CLASS_NAME, "space-y-2 p-2.5"), children: [
|
|
6611
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
6612
|
+
/* @__PURE__ */ jsx35("p", { className: "text-xs font-semibold text-foreground", children: "Vers\xE3o do app" }),
|
|
6613
|
+
/* @__PURE__ */ jsx35("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "Vers\xE3o do aplicativo atual que est\xE1 exibindo este menu." })
|
|
6339
6614
|
] }),
|
|
6340
|
-
/* @__PURE__ */
|
|
6341
|
-
/* @__PURE__ */
|
|
6342
|
-
/* @__PURE__ */
|
|
6615
|
+
/* @__PURE__ */ jsxs22("div", { className: cn(MENU_CARD_ITEM_CLASS_NAME, "flex items-center justify-between gap-2 px-2.5 py-1.5"), children: [
|
|
6616
|
+
/* @__PURE__ */ jsxs22("span", { className: "inline-flex items-center gap-1.5 text-xs font-semibold text-foreground", children: [
|
|
6617
|
+
/* @__PURE__ */ jsx35(Info, { className: "h-3.5 w-3.5 text-primary" }),
|
|
6343
6618
|
"Vers\xE3o atual"
|
|
6344
6619
|
] }),
|
|
6345
|
-
/* @__PURE__ */
|
|
6620
|
+
/* @__PURE__ */ jsx35("span", { className: "rounded border border-border/60 bg-background/60 px-2 py-0.5 text-[10px] font-semibold text-foreground", children: appVersionLabel })
|
|
6346
6621
|
] })
|
|
6347
6622
|
] }),
|
|
6348
|
-
/* @__PURE__ */
|
|
6349
|
-
/* @__PURE__ */
|
|
6350
|
-
/* @__PURE__ */
|
|
6351
|
-
/* @__PURE__ */
|
|
6352
|
-
/* @__PURE__ */
|
|
6353
|
-
/* @__PURE__ */
|
|
6354
|
-
/* @__PURE__ */
|
|
6355
|
-
/* @__PURE__ */
|
|
6356
|
-
/* @__PURE__ */
|
|
6357
|
-
/* @__PURE__ */
|
|
6623
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Root, { open: isProfileImageDialogOpen, onOpenChange: setIsProfileImageDialogOpen, children: /* @__PURE__ */ jsxs22(DialogPrimitive2.Portal, { children: [
|
|
6624
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Overlay, { className: "fixed inset-0 z-[3500] bg-black/70 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }),
|
|
6625
|
+
/* @__PURE__ */ jsxs22(DialogPrimitive2.Content, { className: "fixed left-1/2 top-1/2 z-[3510] w-[calc(100%-1.5rem)] max-w-md -translate-x-1/2 -translate-y-1/2 rounded-md border border-border/70 bg-background p-5 text-foreground shadow-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", children: [
|
|
6626
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Title, { className: "text-lg font-semibold", children: "Foto de perfil" }),
|
|
6627
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Description, { className: "mt-1 text-sm text-muted-foreground", children: "Visualize sua imagem atual e edite quando quiser." }),
|
|
6628
|
+
/* @__PURE__ */ jsxs22("div", { className: "mx-auto mt-4 flex w-full max-w-[18rem] flex-col items-center gap-3", children: [
|
|
6629
|
+
/* @__PURE__ */ jsxs22("div", { className: "relative", children: [
|
|
6630
|
+
/* @__PURE__ */ jsxs22(Avatar2, { className: "h-48 w-48 border border-border/70 shadow-none", children: [
|
|
6631
|
+
/* @__PURE__ */ jsx35(AvatarImage2, { src: resolvedProfileAvatarUrl, alt: resolvedName }),
|
|
6632
|
+
/* @__PURE__ */ jsx35(AvatarFallback2, { className: "bg-muted text-5xl font-semibold text-foreground", children: initials })
|
|
6358
6633
|
] }),
|
|
6359
|
-
/* @__PURE__ */
|
|
6634
|
+
/* @__PURE__ */ jsx35(
|
|
6360
6635
|
"button",
|
|
6361
6636
|
{
|
|
6362
6637
|
type: "button",
|
|
@@ -6370,20 +6645,20 @@ var UserMenuCupcode = ({
|
|
|
6370
6645
|
),
|
|
6371
6646
|
"aria-label": "Editar foto de perfil",
|
|
6372
6647
|
title: hasTelescupAvatarSupport ? isTelescupAuthPending ? "Conectando ao Telescup..." : isProfileAvatarSaving ? "Salvando foto..." : "Editar foto de perfil" : "Telescup indispon\xEDvel",
|
|
6373
|
-
children: /* @__PURE__ */
|
|
6648
|
+
children: /* @__PURE__ */ jsx35(Pencil, { className: "h-4 w-4" })
|
|
6374
6649
|
}
|
|
6375
6650
|
),
|
|
6376
|
-
/* @__PURE__ */
|
|
6651
|
+
/* @__PURE__ */ jsx35("span", { className: "absolute bottom-6 right-3", children: /* @__PURE__ */ jsx35(PresenceBadge, { status: currentStatus, size: "lg" }) })
|
|
6377
6652
|
] }),
|
|
6378
|
-
!hasTelescupAvatarSupport ? /* @__PURE__ */
|
|
6653
|
+
!hasTelescupAvatarSupport ? /* @__PURE__ */ jsx35("p", { className: "text-center text-xs text-muted-foreground", children: "Telescup indispon\xEDvel neste ambiente." }) : null
|
|
6379
6654
|
] }),
|
|
6380
|
-
/* @__PURE__ */
|
|
6381
|
-
/* @__PURE__ */
|
|
6382
|
-
/* @__PURE__ */
|
|
6655
|
+
/* @__PURE__ */ jsxs22(DialogPrimitive2.Close, { className: "absolute right-3 top-3 inline-flex h-8 w-8 items-center justify-center rounded-full border border-border/70 bg-background/70 text-muted-foreground transition-all hover:bg-background hover:text-foreground", children: [
|
|
6656
|
+
/* @__PURE__ */ jsx35(X4, { className: "h-4 w-4" }),
|
|
6657
|
+
/* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Fechar" })
|
|
6383
6658
|
] })
|
|
6384
6659
|
] })
|
|
6385
6660
|
] }) }),
|
|
6386
|
-
hasTelescupAvatarSupport ? /* @__PURE__ */
|
|
6661
|
+
hasTelescupAvatarSupport ? /* @__PURE__ */ jsx35(
|
|
6387
6662
|
TelescupUpload,
|
|
6388
6663
|
{
|
|
6389
6664
|
open: isProfileAvatarUploadOpen,
|
|
@@ -6406,10 +6681,10 @@ var UserMenuCupcode = ({
|
|
|
6406
6681
|
] });
|
|
6407
6682
|
}
|
|
6408
6683
|
if (activeTab === "logout") {
|
|
6409
|
-
return /* @__PURE__ */
|
|
6410
|
-
/* @__PURE__ */
|
|
6411
|
-
/* @__PURE__ */
|
|
6412
|
-
/* @__PURE__ */
|
|
6684
|
+
return /* @__PURE__ */ jsx35("div", { className: "space-y-3.5", children: /* @__PURE__ */ jsxs22("div", { className: cn(MENU_SURFACE_CLASS_NAME, "p-3.5"), children: [
|
|
6685
|
+
/* @__PURE__ */ jsx35("p", { className: "text-xs font-semibold text-foreground", children: "Deslogar da conta Cupcode" }),
|
|
6686
|
+
/* @__PURE__ */ jsx35("p", { className: "mt-2 text-[11px] leading-relaxed text-muted-foreground", children: "Ao sair aqui, voc\xEA ser\xE1 deslogado de todos os apps da Cupcode em que est\xE1 logado." }),
|
|
6687
|
+
/* @__PURE__ */ jsx35(
|
|
6413
6688
|
"button",
|
|
6414
6689
|
{
|
|
6415
6690
|
type: "button",
|
|
@@ -6427,29 +6702,29 @@ var UserMenuCupcode = ({
|
|
|
6427
6702
|
if (activeTab === "settings") {
|
|
6428
6703
|
const settingsCardClassName = cn(MENU_SURFACE_CLASS_NAME, "p-3.5");
|
|
6429
6704
|
const settingsItemClassName = cn(MENU_CARD_ITEM_CLASS_NAME, "px-3 py-2.5");
|
|
6430
|
-
return /* @__PURE__ */
|
|
6431
|
-
/* @__PURE__ */
|
|
6432
|
-
/* @__PURE__ */
|
|
6433
|
-
/* @__PURE__ */
|
|
6434
|
-
/* @__PURE__ */
|
|
6705
|
+
return /* @__PURE__ */ jsxs22("div", { className: "space-y-3.5", children: [
|
|
6706
|
+
/* @__PURE__ */ jsxs22("div", { className: settingsCardClassName, children: [
|
|
6707
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
6708
|
+
/* @__PURE__ */ jsx35("p", { className: "text-xs font-semibold text-foreground", children: "Experi\xEAncia" }),
|
|
6709
|
+
/* @__PURE__ */ jsx35("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "Prefer\xEAncias que afetam o uso no dia a dia." })
|
|
6435
6710
|
] }),
|
|
6436
|
-
/* @__PURE__ */
|
|
6437
|
-
/* @__PURE__ */
|
|
6438
|
-
/* @__PURE__ */
|
|
6711
|
+
/* @__PURE__ */ jsx35("div", { className: "mt-3", children: /* @__PURE__ */ jsxs22("div", { className: settingsItemClassName, children: [
|
|
6712
|
+
/* @__PURE__ */ jsxs22("p", { className: "flex items-center gap-1.5 text-xs font-semibold text-foreground", children: [
|
|
6713
|
+
/* @__PURE__ */ jsx35(Languages, { className: "h-3.5 w-3.5 text-primary" }),
|
|
6439
6714
|
"Idioma"
|
|
6440
6715
|
] }),
|
|
6441
|
-
/* @__PURE__ */
|
|
6442
|
-
/* @__PURE__ */
|
|
6443
|
-
/* @__PURE__ */
|
|
6716
|
+
/* @__PURE__ */ jsx35("div", { className: "mt-2", children: /* @__PURE__ */ jsxs22(Select, { value: resolvedLanguage, onValueChange: (value) => changeLanguage(value), children: [
|
|
6717
|
+
/* @__PURE__ */ jsx35(SelectTrigger, { className: "h-9 rounded-md border-border/70 bg-background/55 text-[11px] text-foreground shadow-none", children: /* @__PURE__ */ jsx35("span", { className: "truncate", children: (_a25 = LANGUAGE_OPTIONS.find((option) => option.value === resolvedLanguage)) == null ? void 0 : _a25.label }) }),
|
|
6718
|
+
/* @__PURE__ */ jsx35(SelectContent, { className: "z-[820] rounded-md border border-border/70 bg-background text-foreground shadow-none", children: LANGUAGE_OPTIONS.map((option) => /* @__PURE__ */ jsx35(SelectItem, { value: option.value, className: "text-xs", children: option.label }, option.value)) })
|
|
6444
6719
|
] }) })
|
|
6445
6720
|
] }) })
|
|
6446
6721
|
] }),
|
|
6447
|
-
/* @__PURE__ */
|
|
6448
|
-
/* @__PURE__ */
|
|
6449
|
-
/* @__PURE__ */
|
|
6450
|
-
/* @__PURE__ */
|
|
6722
|
+
/* @__PURE__ */ jsxs22("div", { className: cn(settingsCardClassName, "space-y-2.5"), children: [
|
|
6723
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
6724
|
+
/* @__PURE__ */ jsx35("p", { className: "text-xs font-semibold text-foreground", children: "Seguran\xE7a" }),
|
|
6725
|
+
/* @__PURE__ */ jsx35("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "A\xE7\xF5es de senha e 2FA ficam no Accounts." })
|
|
6451
6726
|
] }),
|
|
6452
|
-
/* @__PURE__ */
|
|
6727
|
+
/* @__PURE__ */ jsxs22(
|
|
6453
6728
|
"button",
|
|
6454
6729
|
{
|
|
6455
6730
|
type: "button",
|
|
@@ -6459,15 +6734,15 @@ var UserMenuCupcode = ({
|
|
|
6459
6734
|
"flex w-full items-center justify-between px-3 py-2 text-left text-xs font-semibold text-foreground shadow-none transition-all hover:bg-background/65"
|
|
6460
6735
|
),
|
|
6461
6736
|
children: [
|
|
6462
|
-
/* @__PURE__ */
|
|
6463
|
-
/* @__PURE__ */
|
|
6737
|
+
/* @__PURE__ */ jsxs22("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
6738
|
+
/* @__PURE__ */ jsx35(LockKeyhole, { className: "h-3.5 w-3.5 text-primary" }),
|
|
6464
6739
|
"Alterar senha"
|
|
6465
6740
|
] }),
|
|
6466
|
-
/* @__PURE__ */
|
|
6741
|
+
/* @__PURE__ */ jsx35(ExternalLink, { className: "h-3.5 w-3.5" })
|
|
6467
6742
|
]
|
|
6468
6743
|
}
|
|
6469
6744
|
),
|
|
6470
|
-
/* @__PURE__ */
|
|
6745
|
+
/* @__PURE__ */ jsxs22(
|
|
6471
6746
|
"button",
|
|
6472
6747
|
{
|
|
6473
6748
|
type: "button",
|
|
@@ -6477,12 +6752,12 @@ var UserMenuCupcode = ({
|
|
|
6477
6752
|
"flex w-full items-center justify-between px-3 py-2 text-left text-xs font-semibold text-foreground shadow-none transition-all hover:bg-background/65"
|
|
6478
6753
|
),
|
|
6479
6754
|
children: [
|
|
6480
|
-
/* @__PURE__ */
|
|
6481
|
-
/* @__PURE__ */
|
|
6755
|
+
/* @__PURE__ */ jsxs22("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
6756
|
+
/* @__PURE__ */ jsx35(ShieldCheck, { className: "h-3.5 w-3.5 text-primary" }),
|
|
6482
6757
|
"2FA"
|
|
6483
6758
|
] }),
|
|
6484
|
-
/* @__PURE__ */
|
|
6485
|
-
/* @__PURE__ */
|
|
6759
|
+
/* @__PURE__ */ jsxs22("span", { className: "inline-flex items-center gap-1.5", children: [
|
|
6760
|
+
/* @__PURE__ */ jsx35(
|
|
6486
6761
|
"span",
|
|
6487
6762
|
{
|
|
6488
6763
|
className: cn(
|
|
@@ -6492,25 +6767,42 @@ var UserMenuCupcode = ({
|
|
|
6492
6767
|
children: twoFactorStatusLabel
|
|
6493
6768
|
}
|
|
6494
6769
|
),
|
|
6495
|
-
/* @__PURE__ */
|
|
6770
|
+
/* @__PURE__ */ jsx35(ExternalLink, { className: "h-3.5 w-3.5" })
|
|
6496
6771
|
] })
|
|
6497
6772
|
]
|
|
6498
6773
|
}
|
|
6499
6774
|
)
|
|
6775
|
+
] }),
|
|
6776
|
+
/* @__PURE__ */ jsxs22("div", { className: cn(settingsCardClassName, "space-y-2.5"), children: [
|
|
6777
|
+
/* @__PURE__ */ jsxs22("div", { children: [
|
|
6778
|
+
/* @__PURE__ */ jsxs22("p", { className: "flex items-center gap-1.5 text-xs font-semibold text-foreground", children: [
|
|
6779
|
+
/* @__PURE__ */ jsx35(Clock2, { className: "h-3.5 w-3.5 text-primary" }),
|
|
6780
|
+
"Hist\xF3rico de logins"
|
|
6781
|
+
] }),
|
|
6782
|
+
/* @__PURE__ */ jsx35("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "Sess\xF5es registradas nesta conta." })
|
|
6783
|
+
] }),
|
|
6784
|
+
/* @__PURE__ */ jsx35(
|
|
6785
|
+
LoginHistoryCupcode,
|
|
6786
|
+
{
|
|
6787
|
+
sessions: resolvedLoginHistorySessions,
|
|
6788
|
+
isLoading: resolvedLoginHistoryLoading,
|
|
6789
|
+
variant: "compact"
|
|
6790
|
+
}
|
|
6791
|
+
)
|
|
6500
6792
|
] })
|
|
6501
6793
|
] });
|
|
6502
6794
|
}
|
|
6503
6795
|
return null;
|
|
6504
6796
|
};
|
|
6505
6797
|
if (isLoading) {
|
|
6506
|
-
return /* @__PURE__ */
|
|
6798
|
+
return /* @__PURE__ */ jsx35("div", { className: cn("h-11 w-11 animate-pulse rounded-full bg-muted/70", className) });
|
|
6507
6799
|
}
|
|
6508
6800
|
if (!isAuthenticated) {
|
|
6509
|
-
return /* @__PURE__ */
|
|
6801
|
+
return /* @__PURE__ */ jsx35(JellyButtonOriginal, { label: loginLabel, color: "green", size: "sm", className, onClick: onLogin });
|
|
6510
6802
|
}
|
|
6511
6803
|
const customPanel = panels == null ? void 0 : panels[activeTab];
|
|
6512
6804
|
const hasCustomPanel = typeof customPanel !== "undefined";
|
|
6513
|
-
return /* @__PURE__ */
|
|
6805
|
+
return /* @__PURE__ */ jsxs22(
|
|
6514
6806
|
DialogPrimitive2.Root,
|
|
6515
6807
|
{
|
|
6516
6808
|
open,
|
|
@@ -6522,36 +6814,36 @@ var UserMenuCupcode = ({
|
|
|
6522
6814
|
}
|
|
6523
6815
|
},
|
|
6524
6816
|
children: [
|
|
6525
|
-
/* @__PURE__ */
|
|
6526
|
-
/* @__PURE__ */
|
|
6817
|
+
/* @__PURE__ */ jsx35("div", { className: cn("relative inline-flex items-center", className), children: /* @__PURE__ */ jsxs22("div", { className: "relative", children: [
|
|
6818
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Trigger, { asChild: true, children: /* @__PURE__ */ jsx35(
|
|
6527
6819
|
"button",
|
|
6528
6820
|
{
|
|
6529
6821
|
type: "button",
|
|
6530
6822
|
className: "relative z-10 inline-flex h-11 w-11 items-center justify-center rounded-full border border-border/70 bg-background/35 shadow-[var(--elevation-3)] transition-all hover:bg-background/55 hover:shadow-[0_0_0_2px_rgba(151,90,182,0.3),0_14px_28px_-18px_rgba(151,90,182,0.3)]",
|
|
6531
6823
|
"aria-label": "Abrir menu do usu\xE1rio",
|
|
6532
|
-
children: /* @__PURE__ */
|
|
6533
|
-
/* @__PURE__ */
|
|
6534
|
-
/* @__PURE__ */
|
|
6824
|
+
children: /* @__PURE__ */ jsxs22(Avatar2, { className: "h-full w-full border-none", children: [
|
|
6825
|
+
/* @__PURE__ */ jsx35(AvatarImage2, { src: resolvedProfileAvatarUrl, alt: resolvedName }),
|
|
6826
|
+
/* @__PURE__ */ jsx35(AvatarFallback2, { className: "bg-muted text-sm font-semibold text-foreground", children: initials })
|
|
6535
6827
|
] })
|
|
6536
6828
|
}
|
|
6537
6829
|
) }),
|
|
6538
|
-
/* @__PURE__ */
|
|
6539
|
-
/* @__PURE__ */
|
|
6830
|
+
/* @__PURE__ */ jsxs22(DropdownMenu, { children: [
|
|
6831
|
+
/* @__PURE__ */ jsx35(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx35(
|
|
6540
6832
|
"button",
|
|
6541
6833
|
{
|
|
6542
6834
|
type: "button",
|
|
6543
6835
|
className: "absolute bottom-0 -right-0.5 z-20 inline-flex items-center justify-center rounded-full p-0.5 text-foreground transition-transform hover:scale-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
6544
6836
|
"aria-label": "Alterar status",
|
|
6545
6837
|
title: `Status: ${PRESENCE_META[currentStatus].label}`,
|
|
6546
|
-
children: /* @__PURE__ */
|
|
6838
|
+
children: /* @__PURE__ */ jsx35(PresenceBadge, { status: currentStatus, size: "md" })
|
|
6547
6839
|
}
|
|
6548
6840
|
) }),
|
|
6549
|
-
/* @__PURE__ */
|
|
6841
|
+
/* @__PURE__ */ jsx35(DropdownMenuContent, { align: "end", sideOffset: 8, className: "z-[1800] w-44", children: renderPresenceStatusOptions() })
|
|
6550
6842
|
] })
|
|
6551
6843
|
] }) }),
|
|
6552
|
-
/* @__PURE__ */
|
|
6553
|
-
/* @__PURE__ */
|
|
6554
|
-
/* @__PURE__ */
|
|
6844
|
+
/* @__PURE__ */ jsxs22(DialogPrimitive2.Portal, { children: [
|
|
6845
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Overlay, { className: "fixed inset-0 z-[650] bg-black/45 backdrop-blur-[2px] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0" }),
|
|
6846
|
+
/* @__PURE__ */ jsxs22(
|
|
6555
6847
|
DialogPrimitive2.Content,
|
|
6556
6848
|
{
|
|
6557
6849
|
className: cn(
|
|
@@ -6559,18 +6851,18 @@ var UserMenuCupcode = ({
|
|
|
6559
6851
|
"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right data-[state=closed]:duration-300 data-[state=open]:duration-500"
|
|
6560
6852
|
),
|
|
6561
6853
|
children: [
|
|
6562
|
-
/* @__PURE__ */
|
|
6563
|
-
/* @__PURE__ */
|
|
6564
|
-
/* @__PURE__ */
|
|
6565
|
-
/* @__PURE__ */
|
|
6566
|
-
/* @__PURE__ */
|
|
6567
|
-
/* @__PURE__ */
|
|
6568
|
-
/* @__PURE__ */
|
|
6854
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Title, { className: "sr-only", children: "Menu do usu\xE1rio" }),
|
|
6855
|
+
/* @__PURE__ */ jsx35(DialogPrimitive2.Description, { className: "sr-only", children: "Painel lateral com perfil e configura\xE7\xF5es." }),
|
|
6856
|
+
/* @__PURE__ */ jsxs22("div", { className: "relative flex h-full flex-col p-3 sm:p-4", children: [
|
|
6857
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2", children: [
|
|
6858
|
+
/* @__PURE__ */ jsxs22(DialogPrimitive2.Close, { className: "inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-full border border-border/70 bg-background/75 text-primary transition-all hover:bg-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40", children: [
|
|
6859
|
+
/* @__PURE__ */ jsx35(X4, { className: "h-5 w-5" }),
|
|
6860
|
+
/* @__PURE__ */ jsx35("span", { className: "sr-only", children: "Fechar menu" })
|
|
6569
6861
|
] }),
|
|
6570
|
-
/* @__PURE__ */
|
|
6862
|
+
/* @__PURE__ */ jsx35("div", { className: MENU_TAB_BAR_CLASS_NAME, children: /* @__PURE__ */ jsx35("div", { className: "grid grid-cols-3 gap-1", children: TAB_ITEMS.map((tab) => {
|
|
6571
6863
|
const Icon3 = tab.icon;
|
|
6572
6864
|
const isCurrent = tab.id === activeTab;
|
|
6573
|
-
return /* @__PURE__ */
|
|
6865
|
+
return /* @__PURE__ */ jsx35(
|
|
6574
6866
|
"button",
|
|
6575
6867
|
{
|
|
6576
6868
|
type: "button",
|
|
@@ -6585,13 +6877,13 @@ var UserMenuCupcode = ({
|
|
|
6585
6877
|
),
|
|
6586
6878
|
"aria-current": isCurrent ? "page" : void 0,
|
|
6587
6879
|
"aria-label": tab.label,
|
|
6588
|
-
children: /* @__PURE__ */
|
|
6880
|
+
children: /* @__PURE__ */ jsx35(Icon3, { className: "h-4 w-4" })
|
|
6589
6881
|
},
|
|
6590
6882
|
tab.id
|
|
6591
6883
|
);
|
|
6592
6884
|
}) }) })
|
|
6593
6885
|
] }),
|
|
6594
|
-
/* @__PURE__ */
|
|
6886
|
+
/* @__PURE__ */ jsx35(
|
|
6595
6887
|
"div",
|
|
6596
6888
|
{
|
|
6597
6889
|
className: cn(
|
|
@@ -6601,7 +6893,7 @@ var UserMenuCupcode = ({
|
|
|
6601
6893
|
children: hasCustomPanel ? customPanel : renderDefaultPanel()
|
|
6602
6894
|
}
|
|
6603
6895
|
),
|
|
6604
|
-
/* @__PURE__ */
|
|
6896
|
+
/* @__PURE__ */ jsxs22(
|
|
6605
6897
|
"div",
|
|
6606
6898
|
{
|
|
6607
6899
|
className: cn(
|
|
@@ -6610,7 +6902,7 @@ var UserMenuCupcode = ({
|
|
|
6610
6902
|
),
|
|
6611
6903
|
"aria-hidden": !isLogoutConfirmOpen,
|
|
6612
6904
|
children: [
|
|
6613
|
-
/* @__PURE__ */
|
|
6905
|
+
/* @__PURE__ */ jsx35(
|
|
6614
6906
|
"button",
|
|
6615
6907
|
{
|
|
6616
6908
|
type: "button",
|
|
@@ -6622,7 +6914,7 @@ var UserMenuCupcode = ({
|
|
|
6622
6914
|
"aria-label": "Fechar confirma\xE7\xE3o de logout"
|
|
6623
6915
|
}
|
|
6624
6916
|
),
|
|
6625
|
-
/* @__PURE__ */
|
|
6917
|
+
/* @__PURE__ */ jsxs22(
|
|
6626
6918
|
"div",
|
|
6627
6919
|
{
|
|
6628
6920
|
className: cn(
|
|
@@ -6630,9 +6922,9 @@ var UserMenuCupcode = ({
|
|
|
6630
6922
|
isLogoutConfirmOpen ? "pointer-events-auto translate-y-0" : "pointer-events-none translate-y-full"
|
|
6631
6923
|
),
|
|
6632
6924
|
children: [
|
|
6633
|
-
/* @__PURE__ */
|
|
6634
|
-
/* @__PURE__ */
|
|
6635
|
-
/* @__PURE__ */
|
|
6925
|
+
/* @__PURE__ */ jsx35("p", { className: "text-sm font-semibold text-foreground", children: "Tem certeza que deseja sair da sua conta Cupcode?" }),
|
|
6926
|
+
/* @__PURE__ */ jsxs22("div", { className: "mt-3 grid grid-cols-2 gap-2", children: [
|
|
6927
|
+
/* @__PURE__ */ jsx35(
|
|
6636
6928
|
"button",
|
|
6637
6929
|
{
|
|
6638
6930
|
type: "button",
|
|
@@ -6645,7 +6937,7 @@ var UserMenuCupcode = ({
|
|
|
6645
6937
|
children: isLoggingOut ? "Saindo..." : "Sair"
|
|
6646
6938
|
}
|
|
6647
6939
|
),
|
|
6648
|
-
/* @__PURE__ */
|
|
6940
|
+
/* @__PURE__ */ jsx35(
|
|
6649
6941
|
"button",
|
|
6650
6942
|
{
|
|
6651
6943
|
type: "button",
|
|
@@ -6675,7 +6967,7 @@ var UserMenuCupcode_default = UserMenuCupcode;
|
|
|
6675
6967
|
// src/components/ui/sonner.tsx
|
|
6676
6968
|
import * as React21 from "react";
|
|
6677
6969
|
import { Toaster as Sonner, toast as toast2 } from "sonner";
|
|
6678
|
-
import { jsx as
|
|
6970
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
6679
6971
|
function resolveDocumentTheme() {
|
|
6680
6972
|
if (typeof document === "undefined") return "system";
|
|
6681
6973
|
if (document.documentElement.classList.contains("dark")) return "dark";
|
|
@@ -6709,7 +7001,7 @@ var Toaster = ({ theme, ...props }) => {
|
|
|
6709
7001
|
observer.disconnect();
|
|
6710
7002
|
};
|
|
6711
7003
|
}, [theme]);
|
|
6712
|
-
return /* @__PURE__ */
|
|
7004
|
+
return /* @__PURE__ */ jsx36(
|
|
6713
7005
|
Sonner,
|
|
6714
7006
|
{
|
|
6715
7007
|
theme: theme != null ? theme : resolvedTheme,
|
|
@@ -6744,7 +7036,7 @@ function useAppTheme() {
|
|
|
6744
7036
|
}
|
|
6745
7037
|
|
|
6746
7038
|
// src/components/theme-toggle.tsx
|
|
6747
|
-
import { jsx as
|
|
7039
|
+
import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
6748
7040
|
function ThemeToggle({ className }) {
|
|
6749
7041
|
const { theme, toggleTheme } = useAppTheme();
|
|
6750
7042
|
const isDark = theme === "dark";
|
|
@@ -6754,7 +7046,7 @@ function ThemeToggle({ className }) {
|
|
|
6754
7046
|
y: event.clientY
|
|
6755
7047
|
});
|
|
6756
7048
|
};
|
|
6757
|
-
return /* @__PURE__ */
|
|
7049
|
+
return /* @__PURE__ */ jsxs23(
|
|
6758
7050
|
"button",
|
|
6759
7051
|
{
|
|
6760
7052
|
type: "button",
|
|
@@ -6764,24 +7056,24 @@ function ThemeToggle({ className }) {
|
|
|
6764
7056
|
title: isDark ? "Ativar modo claro" : "Ativar modo escuro",
|
|
6765
7057
|
className: ["cc-theme-toggle", isDark ? "is-dark" : "", className].filter(Boolean).join(" "),
|
|
6766
7058
|
children: [
|
|
6767
|
-
/* @__PURE__ */
|
|
6768
|
-
/* @__PURE__ */
|
|
6769
|
-
/* @__PURE__ */
|
|
6770
|
-
/* @__PURE__ */
|
|
6771
|
-
/* @__PURE__ */
|
|
6772
|
-
/* @__PURE__ */
|
|
7059
|
+
/* @__PURE__ */ jsxs23("span", { className: "track", children: [
|
|
7060
|
+
/* @__PURE__ */ jsxs23("span", { className: "light-bg", children: [
|
|
7061
|
+
/* @__PURE__ */ jsx37("span", { className: "light-orb light-orb-1" }),
|
|
7062
|
+
/* @__PURE__ */ jsx37("span", { className: "light-orb light-orb-2" }),
|
|
7063
|
+
/* @__PURE__ */ jsx37("span", { className: "light-sweep" }),
|
|
7064
|
+
/* @__PURE__ */ jsx37("span", { className: "light-veil" })
|
|
6773
7065
|
] }),
|
|
6774
|
-
/* @__PURE__ */
|
|
6775
|
-
/* @__PURE__ */
|
|
6776
|
-
/* @__PURE__ */
|
|
6777
|
-
/* @__PURE__ */
|
|
6778
|
-
/* @__PURE__ */
|
|
6779
|
-
/* @__PURE__ */
|
|
6780
|
-
/* @__PURE__ */
|
|
6781
|
-
/* @__PURE__ */
|
|
7066
|
+
/* @__PURE__ */ jsx37("span", { className: "stars stars-1" }),
|
|
7067
|
+
/* @__PURE__ */ jsx37("span", { className: "stars stars-2" }),
|
|
7068
|
+
/* @__PURE__ */ jsx37("span", { className: "stars stars-3" }),
|
|
7069
|
+
/* @__PURE__ */ jsx37("span", { className: "cloud cloud-1" }),
|
|
7070
|
+
/* @__PURE__ */ jsx37("span", { className: "cloud cloud-2" }),
|
|
7071
|
+
/* @__PURE__ */ jsxs23("span", { className: "thumb", children: [
|
|
7072
|
+
/* @__PURE__ */ jsx37("span", { className: "sun-core" }),
|
|
7073
|
+
/* @__PURE__ */ jsx37("span", { className: "moon-cut" })
|
|
6782
7074
|
] })
|
|
6783
7075
|
] }),
|
|
6784
|
-
/* @__PURE__ */
|
|
7076
|
+
/* @__PURE__ */ jsx37("style", { children: `
|
|
6785
7077
|
:root {
|
|
6786
7078
|
--toggle-width: 76px;
|
|
6787
7079
|
--toggle-height: 38px;
|
|
@@ -7841,14 +8133,34 @@ var completeTelescupOidcCallback = async () => {
|
|
|
7841
8133
|
};
|
|
7842
8134
|
|
|
7843
8135
|
// src/components/cupcode/MainNavbar.tsx
|
|
7844
|
-
import { Fragment as Fragment5, jsx as
|
|
8136
|
+
import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
8137
|
+
var TELESCUP_CDN_HOSTS = /* @__PURE__ */ new Set([
|
|
8138
|
+
"cdn.telescup.com.br",
|
|
8139
|
+
"telescup.cupcode.dev",
|
|
8140
|
+
"cdn.cupcode.com.br"
|
|
8141
|
+
]);
|
|
7845
8142
|
var resolveAppsApiBaseUrl = () => {
|
|
7846
8143
|
var _a25, _b3;
|
|
7847
8144
|
return ((_b3 = (_a25 = getRuntimeEnv("VITE_APPS_API_BASE_URL")) != null ? _a25 : getRuntimeEnv("VITE_APPS_API_BASE")) != null ? _b3 : "").trim().replace(/\/+$/, "");
|
|
7848
8145
|
};
|
|
8146
|
+
var isTelescupCdnUrl = (value) => {
|
|
8147
|
+
const normalized = value == null ? void 0 : value.trim();
|
|
8148
|
+
if (!normalized) return false;
|
|
8149
|
+
try {
|
|
8150
|
+
return TELESCUP_CDN_HOSTS.has(new URL(normalized).hostname);
|
|
8151
|
+
} catch (e) {
|
|
8152
|
+
return false;
|
|
8153
|
+
}
|
|
8154
|
+
};
|
|
7849
8155
|
var resolveTelescupBaseUrl = () => {
|
|
7850
8156
|
var _a25;
|
|
7851
|
-
|
|
8157
|
+
const appsApiBase = resolveAppsApiBaseUrl();
|
|
8158
|
+
const apiFromApps = appsApiBase ? `${appsApiBase}/api/telescup` : "";
|
|
8159
|
+
const explicitBase = (_a25 = getRuntimeEnv("VITE_TELESCUP_BASE_URL")) == null ? void 0 : _a25.trim();
|
|
8160
|
+
if (explicitBase && !isTelescupCdnUrl(explicitBase)) {
|
|
8161
|
+
return explicitBase.replace(/\/+$/, "");
|
|
8162
|
+
}
|
|
8163
|
+
return apiFromApps || explicitBase || "";
|
|
7852
8164
|
};
|
|
7853
8165
|
var ACCESS_TOKEN_STORAGE_KEY = "cc_access_token";
|
|
7854
8166
|
var ID_TOKEN_STORAGE_KEYS = ["cc_id_token", "id_token"];
|
|
@@ -7876,51 +8188,58 @@ var _a10;
|
|
|
7876
8188
|
var ACCOUNTS_ACTIVITY_ENDPOINT = (_a10 = getRuntimeEnv("VITE_ACCOUNTS_ACTIVITY_ENDPOINT")) == null ? void 0 : _a10.trim();
|
|
7877
8189
|
var _a11;
|
|
7878
8190
|
var ACCOUNTS_ME_ENDPOINT = ((_a11 = getRuntimeEnv("VITE_ACCOUNTS_ME_ENDPOINT")) == null ? void 0 : _a11.trim()) || "/me";
|
|
7879
|
-
var
|
|
8191
|
+
var resolveAccountsApiBaseUrl2 = () => {
|
|
7880
8192
|
const appsApiBase = resolveAppsApiBaseUrl();
|
|
7881
8193
|
if (appsApiBase) return `${appsApiBase}/api/accounts`;
|
|
7882
8194
|
return ACCOUNTS_BASE_URL2;
|
|
7883
8195
|
};
|
|
7884
8196
|
var DEFAULT_LOGO_SLOT_CLASS_NAME = "h-10 w-[175px] shrink-0";
|
|
7885
|
-
var
|
|
8197
|
+
var toStringOrUndefined2 = (value) => {
|
|
7886
8198
|
if (typeof value !== "string") return void 0;
|
|
7887
8199
|
const trimmed = value.trim();
|
|
7888
8200
|
return trimmed === "" ? void 0 : trimmed;
|
|
7889
8201
|
};
|
|
7890
8202
|
var resolveCurrentUserId = (user) => {
|
|
7891
|
-
const sub =
|
|
8203
|
+
const sub = toStringOrUndefined2(user == null ? void 0 : user.sub);
|
|
7892
8204
|
if (sub) return sub;
|
|
7893
|
-
const id =
|
|
8205
|
+
const id = toStringOrUndefined2(user == null ? void 0 : user.id);
|
|
7894
8206
|
if (id) return id;
|
|
7895
|
-
const userId =
|
|
8207
|
+
const userId = toStringOrUndefined2(user == null ? void 0 : user.userId);
|
|
7896
8208
|
if (userId) return userId;
|
|
7897
8209
|
return null;
|
|
7898
8210
|
};
|
|
7899
8211
|
var resolveUserIdFromClaims = (claims) => {
|
|
7900
8212
|
var _a25, _b3, _c, _d, _e;
|
|
7901
|
-
return (_e = (_d = (_c = (_b3 = (_a25 =
|
|
8213
|
+
return (_e = (_d = (_c = (_b3 = (_a25 = toStringOrUndefined2(claims.sub)) != null ? _a25 : toStringOrUndefined2(claims.user_id)) != null ? _b3 : toStringOrUndefined2(claims.userId)) != null ? _c : toStringOrUndefined2(claims.uid)) != null ? _d : toStringOrUndefined2(claims.id)) != null ? _e : toStringOrUndefined2(claims["https://cupcode.com/user_id"]);
|
|
7902
8214
|
};
|
|
7903
8215
|
var resolveEmailFromClaims = (claims) => {
|
|
7904
8216
|
var _a25, _b3;
|
|
7905
|
-
const candidate = (_b3 = (_a25 =
|
|
8217
|
+
const candidate = (_b3 = (_a25 = toStringOrUndefined2(claims.email)) != null ? _a25 : toStringOrUndefined2(claims["https://cupcode.com/email"])) != null ? _b3 : toStringOrUndefined2(claims.preferred_username);
|
|
7906
8218
|
if (!candidate || !candidate.includes("@")) return void 0;
|
|
7907
8219
|
return candidate.toLowerCase();
|
|
7908
8220
|
};
|
|
7909
8221
|
var normalizeTenantId = (value) => {
|
|
7910
8222
|
var _a25;
|
|
7911
|
-
const normalized = (_a25 =
|
|
8223
|
+
const normalized = (_a25 = toStringOrUndefined2(value)) == null ? void 0 : _a25.toLowerCase();
|
|
7912
8224
|
if (!normalized) return void 0;
|
|
7913
8225
|
return normalized.replace(/^@/, "");
|
|
7914
8226
|
};
|
|
7915
8227
|
var resolveTenantIdFromClaims = (claims) => {
|
|
7916
8228
|
var _a25, _b3, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
7917
8229
|
return normalizeTenantId(
|
|
7918
|
-
(_j = (_i = (_h = (_g = (_f = (_e = (_d = (_c = (_b3 = (_a25 =
|
|
8230
|
+
(_j = (_i = (_h = (_g = (_f = (_e = (_d = (_c = (_b3 = (_a25 = toStringOrUndefined2(claims.tenant_id)) != null ? _a25 : toStringOrUndefined2(claims.tenantId)) != null ? _b3 : toStringOrUndefined2(claims.tenant_slug)) != null ? _c : toStringOrUndefined2(claims.tenantSlug)) != null ? _d : toStringOrUndefined2(claims.company_slug)) != null ? _e : toStringOrUndefined2(claims.companySlug)) != null ? _f : toStringOrUndefined2(claims.company)) != null ? _g : toStringOrUndefined2(claims.org_slug)) != null ? _h : toStringOrUndefined2(claims.orgSlug)) != null ? _i : toStringOrUndefined2(claims["https://cupcode.com/tenant_id"])) != null ? _j : toStringOrUndefined2(claims["https://cupcode.com/tenant_slug"])
|
|
7919
8231
|
);
|
|
7920
8232
|
};
|
|
8233
|
+
var AVATAR_IMAGE_OPTIONS = {
|
|
8234
|
+
width: 300,
|
|
8235
|
+
height: 300,
|
|
8236
|
+
fit: "cover",
|
|
8237
|
+
format: "webp",
|
|
8238
|
+
quality: 80
|
|
8239
|
+
};
|
|
7921
8240
|
var resolveAvatarPreviewUrl = (asset, fallback) => {
|
|
7922
8241
|
var _a25, _b3, _c;
|
|
7923
|
-
return (_c = (_b3 = (_a25 = resolveTelescupImageURL(asset == null ? void 0 : asset.thumb_url,
|
|
8242
|
+
return (_c = (_b3 = (_a25 = resolveTelescupImageURL(asset == null ? void 0 : asset.thumb_url, AVATAR_IMAGE_OPTIONS)) != null ? _a25 : resolveTelescupImageURL(asset == null ? void 0 : asset.preview_url, AVATAR_IMAGE_OPTIONS)) != null ? _b3 : resolveTelescupImageURL(asset == null ? void 0 : asset.url, AVATAR_IMAGE_OPTIONS)) != null ? _c : resolveTelescupImageURL(fallback, AVATAR_IMAGE_OPTIONS);
|
|
7924
8243
|
};
|
|
7925
8244
|
var isGenericRecord = (value) => typeof value === "object" && value !== null;
|
|
7926
8245
|
var buildExternalUrl = (baseUrl, target) => {
|
|
@@ -7999,14 +8318,14 @@ var parseRecentActivityItems = (payload) => {
|
|
|
7999
8318
|
};
|
|
8000
8319
|
return toRows(payload).map((item, index) => {
|
|
8001
8320
|
var _a25, _b3, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
8002
|
-
const id = (_b3 = (_a25 =
|
|
8003
|
-
const title = (_e = (_d = (_c =
|
|
8321
|
+
const id = (_b3 = (_a25 = toStringOrUndefined2(item.id)) != null ? _a25 : toStringOrUndefined2(item.event_id)) != null ? _b3 : `accounts-activity-${index}`;
|
|
8322
|
+
const title = (_e = (_d = (_c = toStringOrUndefined2(item.title)) != null ? _c : toStringOrUndefined2(item.action)) != null ? _d : toStringOrUndefined2(item.event)) != null ? _e : toStringOrUndefined2(item.type);
|
|
8004
8323
|
if (!title) return null;
|
|
8005
|
-
const description = (_h = (_g = (_f =
|
|
8324
|
+
const description = (_h = (_g = (_f = toStringOrUndefined2(item.description)) != null ? _f : toStringOrUndefined2(item.details)) != null ? _g : toStringOrUndefined2(item.message)) != null ? _h : toStringOrUndefined2(item.summary);
|
|
8006
8325
|
const occurredAt = toIsoDateTime(
|
|
8007
8326
|
(_m = (_l = (_k = (_j = (_i = item.occurredAt) != null ? _i : item.occurred_at) != null ? _j : item.createdAt) != null ? _k : item.created_at) != null ? _l : item.timestamp) != null ? _m : item.time
|
|
8008
8327
|
);
|
|
8009
|
-
const kindSource = `${title} ${(_n =
|
|
8328
|
+
const kindSource = `${title} ${(_n = toStringOrUndefined2(item.type)) != null ? _n : ""}`.toLowerCase();
|
|
8010
8329
|
const kind = kindSource.includes("login") || kindSource.includes("entr") ? "login" : "action";
|
|
8011
8330
|
const normalizedItem = {
|
|
8012
8331
|
id,
|
|
@@ -8078,16 +8397,18 @@ var MainNavbar = ({
|
|
|
8078
8397
|
const [isTwoFactorStatusLoading, setIsTwoFactorStatusLoading] = useState13(false);
|
|
8079
8398
|
const [accountsRecentActivity, setAccountsRecentActivity] = useState13([]);
|
|
8080
8399
|
const [isAccountsActivityLoading, setIsAccountsActivityLoading] = useState13(false);
|
|
8081
|
-
const
|
|
8400
|
+
const [accountsLoginHistorySessions, setAccountsLoginHistorySessions] = useState13([]);
|
|
8401
|
+
const [isAccountsLoginHistoryLoading, setIsAccountsLoginHistoryLoading] = useState13(false);
|
|
8402
|
+
const currentPathname = useMemo10(() => {
|
|
8082
8403
|
if (pathname && pathname.trim() !== "") return pathname;
|
|
8083
8404
|
if (typeof window !== "undefined") return window.location.pathname || "/";
|
|
8084
8405
|
return "/";
|
|
8085
8406
|
}, [pathname]);
|
|
8086
|
-
const currentUserId =
|
|
8407
|
+
const currentUserId = useMemo10(() => {
|
|
8087
8408
|
var _a26;
|
|
8088
8409
|
return (_a26 = resolveCurrentUserId(authUser)) != null ? _a26 : tokenDerivedUserId;
|
|
8089
8410
|
}, [authUser, tokenDerivedUserId]);
|
|
8090
|
-
const resolvedTenantId =
|
|
8411
|
+
const resolvedTenantId = useMemo10(() => {
|
|
8091
8412
|
var _a26, _b4, _c2, _d, _e, _f;
|
|
8092
8413
|
const candidate = normalizeTenantId(
|
|
8093
8414
|
(_f = (_e = (_d = (_c2 = (_b4 = (_a26 = authUser == null ? void 0 : authUser.tenantSlug) != null ? _a26 : authUser == null ? void 0 : authUser.tenantId) != null ? _b4 : authUser == null ? void 0 : authUser.tenant_id) != null ? _c2 : authUser == null ? void 0 : authUser.companySlug) != null ? _d : authUser == null ? void 0 : authUser.company) != null ? _e : authUser == null ? void 0 : authUser.orgSlug) != null ? _f : tokenDerivedTenantId
|
|
@@ -8105,7 +8426,7 @@ var MainNavbar = ({
|
|
|
8105
8426
|
currentUserId,
|
|
8106
8427
|
tokenDerivedTenantId
|
|
8107
8428
|
]);
|
|
8108
|
-
const resolvedTelescupBaseUrl =
|
|
8429
|
+
const resolvedTelescupBaseUrl = useMemo10(() => {
|
|
8109
8430
|
return resolveTelescupBaseUrl();
|
|
8110
8431
|
}, []);
|
|
8111
8432
|
const resolvedProfileAvatarUrl = (_a25 = resolveAvatarPreviewUrl({ url: persistedProfileAvatarValue != null ? persistedProfileAvatarValue : authUser == null ? void 0 : authUser.picture })) != null ? _a25 : void 0;
|
|
@@ -8117,7 +8438,7 @@ var MainNavbar = ({
|
|
|
8117
8438
|
return false;
|
|
8118
8439
|
}
|
|
8119
8440
|
})();
|
|
8120
|
-
const resolvedAuthStatus =
|
|
8441
|
+
const resolvedAuthStatus = useMemo10(() => {
|
|
8121
8442
|
if (authStatus) return authStatus;
|
|
8122
8443
|
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)) {
|
|
8123
8444
|
return "authenticated";
|
|
@@ -8191,6 +8512,8 @@ var MainNavbar = ({
|
|
|
8191
8512
|
setIsTwoFactorStatusLoading(false);
|
|
8192
8513
|
setAccountsRecentActivity([]);
|
|
8193
8514
|
setIsAccountsActivityLoading(false);
|
|
8515
|
+
setAccountsLoginHistorySessions([]);
|
|
8516
|
+
setIsAccountsLoginHistoryLoading(false);
|
|
8194
8517
|
}
|
|
8195
8518
|
}, [isAuthenticated]);
|
|
8196
8519
|
useEffect14(() => {
|
|
@@ -8219,7 +8542,7 @@ var MainNavbar = ({
|
|
|
8219
8542
|
return readAccessToken();
|
|
8220
8543
|
};
|
|
8221
8544
|
const fetchAccountsMe = async (token) => {
|
|
8222
|
-
return fetch(buildExternalUrl(
|
|
8545
|
+
return fetch(buildExternalUrl(resolveAccountsApiBaseUrl2(), ACCOUNTS_ME_ENDPOINT), {
|
|
8223
8546
|
headers: { Authorization: `Bearer ${token}` },
|
|
8224
8547
|
signal: controller.signal
|
|
8225
8548
|
});
|
|
@@ -8227,6 +8550,7 @@ var MainNavbar = ({
|
|
|
8227
8550
|
const loadAccountsContext = async () => {
|
|
8228
8551
|
var _a26;
|
|
8229
8552
|
setIsAccountsActivityLoading(true);
|
|
8553
|
+
setIsAccountsLoginHistoryLoading(true);
|
|
8230
8554
|
setIsTwoFactorStatusLoading(true);
|
|
8231
8555
|
try {
|
|
8232
8556
|
const token = await resolveAccountsToken(true);
|
|
@@ -8263,6 +8587,7 @@ var MainNavbar = ({
|
|
|
8263
8587
|
const meRecord = isGenericRecord(mePayload) ? mePayload : null;
|
|
8264
8588
|
const mfaEnabled = resolveTwoFactorEnabledFromClaims(meRecord != null ? meRecord : {});
|
|
8265
8589
|
const languageFromProfile = resolveMenuLanguageFromRecord(meRecord);
|
|
8590
|
+
const sessionsFromMe = normalizeLoginHistorySessions(meRecord == null ? void 0 : meRecord.sessions);
|
|
8266
8591
|
if (!canceled) {
|
|
8267
8592
|
if (typeof mfaEnabled === "boolean") {
|
|
8268
8593
|
setTwoFactorEnabled(mfaEnabled);
|
|
@@ -8270,6 +8595,7 @@ var MainNavbar = ({
|
|
|
8270
8595
|
if (languageFromProfile) {
|
|
8271
8596
|
setAccountsLanguage(languageFromProfile);
|
|
8272
8597
|
}
|
|
8598
|
+
setAccountsLoginHistorySessions(sessionsFromMe);
|
|
8273
8599
|
}
|
|
8274
8600
|
}
|
|
8275
8601
|
if (ACCOUNTS_ACTIVITY_ENDPOINT) {
|
|
@@ -8292,6 +8618,7 @@ var MainNavbar = ({
|
|
|
8292
8618
|
} finally {
|
|
8293
8619
|
if (!canceled) {
|
|
8294
8620
|
setIsAccountsActivityLoading(false);
|
|
8621
|
+
setIsAccountsLoginHistoryLoading(false);
|
|
8295
8622
|
setIsTwoFactorStatusLoading(false);
|
|
8296
8623
|
}
|
|
8297
8624
|
}
|
|
@@ -8302,7 +8629,7 @@ var MainNavbar = ({
|
|
|
8302
8629
|
controller.abort();
|
|
8303
8630
|
};
|
|
8304
8631
|
}, [getAccessToken, isAuthenticated, currentUserId]);
|
|
8305
|
-
const items =
|
|
8632
|
+
const items = useMemo10(() => {
|
|
8306
8633
|
var _a26;
|
|
8307
8634
|
if (!showNavItems) return [];
|
|
8308
8635
|
const normalizedPathname = currentPathname === "" ? "/" : currentPathname;
|
|
@@ -8330,9 +8657,9 @@ var MainNavbar = ({
|
|
|
8330
8657
|
};
|
|
8331
8658
|
});
|
|
8332
8659
|
}, [currentPathname, onNavigate, resolvedAuthStatus, showNavItems]);
|
|
8333
|
-
const resolvedLogo =
|
|
8660
|
+
const resolvedLogo = useMemo10(() => {
|
|
8334
8661
|
if (logo !== void 0) return logo;
|
|
8335
|
-
return /* @__PURE__ */
|
|
8662
|
+
return /* @__PURE__ */ jsx38("div", { className: DEFAULT_LOGO_SLOT_CLASS_NAME, "aria-hidden": "true" });
|
|
8336
8663
|
}, [logo]);
|
|
8337
8664
|
const handleCtaClick = () => {
|
|
8338
8665
|
if (onNavigate) {
|
|
@@ -8386,7 +8713,7 @@ var MainNavbar = ({
|
|
|
8386
8713
|
try {
|
|
8387
8714
|
const token = getAccessToken ? await getAccessToken() : (_a26 = sessionStorage.getItem(ACCESS_TOKEN_STORAGE_KEY)) != null ? _a26 : readStoredIdToken2();
|
|
8388
8715
|
if (!token || !isJwtUsable(token)) return;
|
|
8389
|
-
const response = await fetch(buildExternalUrl(
|
|
8716
|
+
const response = await fetch(buildExternalUrl(resolveAccountsApiBaseUrl2(), ACCOUNTS_ME_ENDPOINT), {
|
|
8390
8717
|
method: "PATCH",
|
|
8391
8718
|
headers: {
|
|
8392
8719
|
Authorization: `Bearer ${token}`,
|
|
@@ -8434,7 +8761,7 @@ var MainNavbar = ({
|
|
|
8434
8761
|
}
|
|
8435
8762
|
const payload = await response.json().catch(() => null);
|
|
8436
8763
|
const profile = payload == null ? void 0 : payload.profile;
|
|
8437
|
-
const finalUserId = (_c2 = (_b4 =
|
|
8764
|
+
const finalUserId = (_c2 = (_b4 = toStringOrUndefined2(profile == null ? void 0 : profile.user_id)) != null ? _b4 : toStringOrUndefined2(profile == null ? void 0 : profile.id)) != null ? _c2 : currentUserId;
|
|
8438
8765
|
const nextAvatarPreview = (_d = resolveAvatarPreviewUrl({ url: avatarUrl }, normalizedAvatarId)) != null ? _d : normalizedAvatarId;
|
|
8439
8766
|
setPersistedProfileAvatarValue(nextAvatarPreview);
|
|
8440
8767
|
if (typeof window !== "undefined") {
|
|
@@ -8453,16 +8780,16 @@ var MainNavbar = ({
|
|
|
8453
8780
|
},
|
|
8454
8781
|
[currentUserId, getTelescupAccessToken, resolvedTelescupBaseUrl]
|
|
8455
8782
|
);
|
|
8456
|
-
return /* @__PURE__ */
|
|
8783
|
+
return /* @__PURE__ */ jsx38(Fragment5, { children: /* @__PURE__ */ jsx38(
|
|
8457
8784
|
NavbarCupcode,
|
|
8458
8785
|
{
|
|
8459
8786
|
logo: resolvedLogo,
|
|
8460
8787
|
items,
|
|
8461
8788
|
leadingSlot,
|
|
8462
8789
|
className,
|
|
8463
|
-
actions: /* @__PURE__ */
|
|
8464
|
-
/* @__PURE__ */
|
|
8465
|
-
/* @__PURE__ */
|
|
8790
|
+
actions: /* @__PURE__ */ jsxs24("div", { className: "flex items-center gap-3", children: [
|
|
8791
|
+
/* @__PURE__ */ jsx38(ThemeToggle, {}),
|
|
8792
|
+
/* @__PURE__ */ jsx38(
|
|
8466
8793
|
UserMenuCupcode,
|
|
8467
8794
|
{
|
|
8468
8795
|
isAuthenticated: resolvedAuthStatus === "authenticated",
|
|
@@ -8489,6 +8816,9 @@ var MainNavbar = ({
|
|
|
8489
8816
|
isTwoFactorStatusLoading,
|
|
8490
8817
|
recentActivity: accountsRecentActivity,
|
|
8491
8818
|
isRecentActivityLoading: isAccountsActivityLoading,
|
|
8819
|
+
loginHistorySessions: accountsLoginHistorySessions,
|
|
8820
|
+
isLoginHistoryLoading: isAccountsLoginHistoryLoading,
|
|
8821
|
+
getAccountsAccessToken: getAccessToken,
|
|
8492
8822
|
telescupBaseUrl: resolvedTelescupBaseUrl,
|
|
8493
8823
|
getTelescupAccessToken,
|
|
8494
8824
|
appVersion
|
|
@@ -8502,11 +8832,11 @@ var MainNavbar = ({
|
|
|
8502
8832
|
// src/components/layout/sidebar.tsx
|
|
8503
8833
|
import { AnimatePresence, motion } from "framer-motion";
|
|
8504
8834
|
import { ChevronDown as ChevronDown4, Circle as Circle2, Search as Search2 } from "lucide-react";
|
|
8505
|
-
import { useEffect as useEffect16, useMemo as
|
|
8835
|
+
import { useEffect as useEffect16, useMemo as useMemo12, useRef as useRef8, useState as useState15 } from "react";
|
|
8506
8836
|
import { NavLink, useLocation } from "react-router-dom";
|
|
8507
8837
|
|
|
8508
8838
|
// src/components/layout/DocumentationSearchDialog.tsx
|
|
8509
|
-
import { useEffect as useEffect15, useMemo as
|
|
8839
|
+
import { useEffect as useEffect15, useMemo as useMemo11, useState as useState14 } from "react";
|
|
8510
8840
|
import { ArrowUpRight, Layers3, Search } from "lucide-react";
|
|
8511
8841
|
import { useNavigate } from "react-router-dom";
|
|
8512
8842
|
|
|
@@ -9091,7 +9421,7 @@ var documentationMaps = [
|
|
|
9091
9421
|
];
|
|
9092
9422
|
|
|
9093
9423
|
// src/components/layout/DocumentationSearchDialog.tsx
|
|
9094
|
-
import { jsx as
|
|
9424
|
+
import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
9095
9425
|
var normalizeText = (value) => value.toLowerCase().normalize("NFD").replace(/\p{Diacritic}+/gu, "");
|
|
9096
9426
|
var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
9097
9427
|
const navigate = useNavigate();
|
|
@@ -9100,7 +9430,7 @@ var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
|
9100
9430
|
if (open) return;
|
|
9101
9431
|
setQuery("");
|
|
9102
9432
|
}, [open]);
|
|
9103
|
-
const visibleMaps =
|
|
9433
|
+
const visibleMaps = useMemo11(() => {
|
|
9104
9434
|
const normalizedQuery = normalizeText(query.trim());
|
|
9105
9435
|
return documentationMaps.map((map) => {
|
|
9106
9436
|
const parents = new Map(map.sections.map((section) => [section.id, section]));
|
|
@@ -9131,7 +9461,7 @@ var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
|
9131
9461
|
};
|
|
9132
9462
|
}).filter((map) => map.sections.length > 0);
|
|
9133
9463
|
}, [query]);
|
|
9134
|
-
const totalVisibleSections =
|
|
9464
|
+
const totalVisibleSections = useMemo11(
|
|
9135
9465
|
() => visibleMaps.reduce((total, map) => total + map.sections.length, 0),
|
|
9136
9466
|
[visibleMaps]
|
|
9137
9467
|
);
|
|
@@ -9139,13 +9469,13 @@ var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
|
9139
9469
|
onOpenChange(false);
|
|
9140
9470
|
navigate(`${route}#${sectionId}`);
|
|
9141
9471
|
};
|
|
9142
|
-
return /* @__PURE__ */
|
|
9143
|
-
/* @__PURE__ */
|
|
9144
|
-
/* @__PURE__ */
|
|
9145
|
-
/* @__PURE__ */
|
|
9146
|
-
/* @__PURE__ */
|
|
9147
|
-
/* @__PURE__ */
|
|
9148
|
-
/* @__PURE__ */
|
|
9472
|
+
return /* @__PURE__ */ jsx39(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs25(DialogContent, { className: "h-[min(92vh,960px)] max-w-[min(1180px,calc(100vw-1.5rem))] overflow-hidden rounded-[32px] border border-white/12 bg-[#12071f]/96 p-0 shadow-[0_36px_120px_-36px_rgba(0,0,0,0.92)] backdrop-blur-2xl", children: [
|
|
9473
|
+
/* @__PURE__ */ jsxs25(DialogHeader, { className: "border-b border-white/10 bg-[radial-gradient(circle_at_top,_rgba(151,90,182,0.28),_transparent_58%)] px-6 pb-5 pt-6 text-left", children: [
|
|
9474
|
+
/* @__PURE__ */ jsx39(DialogTitle, { className: "text-2xl font-semibold text-white", children: "Busca global da documenta\xE7\xE3o" }),
|
|
9475
|
+
/* @__PURE__ */ jsx39(DialogDescription, { className: "text-sm text-white/68", children: "Procure se\xE7\xF5es dentro dos mapas de Docs, Anima\xE7\xF5es e Componentes." }),
|
|
9476
|
+
/* @__PURE__ */ jsxs25("div", { className: "relative mt-4", children: [
|
|
9477
|
+
/* @__PURE__ */ jsx39(Search, { className: "pointer-events-none absolute left-4 top-1/2 h-4 w-4 -translate-y-1/2 text-white/45" }),
|
|
9478
|
+
/* @__PURE__ */ jsx39(
|
|
9149
9479
|
Input,
|
|
9150
9480
|
{
|
|
9151
9481
|
autoFocus: true,
|
|
@@ -9157,45 +9487,45 @@ var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
|
9157
9487
|
}
|
|
9158
9488
|
)
|
|
9159
9489
|
] }),
|
|
9160
|
-
/* @__PURE__ */
|
|
9161
|
-
/* @__PURE__ */
|
|
9490
|
+
/* @__PURE__ */ jsxs25("div", { className: "mt-3 flex flex-wrap gap-2 text-xs text-white/55", children: [
|
|
9491
|
+
/* @__PURE__ */ jsxs25("span", { children: [
|
|
9162
9492
|
totalVisibleSections,
|
|
9163
9493
|
" resultados"
|
|
9164
9494
|
] }),
|
|
9165
|
-
/* @__PURE__ */
|
|
9166
|
-
/* @__PURE__ */
|
|
9495
|
+
/* @__PURE__ */ jsx39("span", { children: "\u2022" }),
|
|
9496
|
+
/* @__PURE__ */ jsxs25("span", { children: [
|
|
9167
9497
|
documentationMaps.length,
|
|
9168
9498
|
" mapas"
|
|
9169
9499
|
] })
|
|
9170
9500
|
] })
|
|
9171
9501
|
] }),
|
|
9172
|
-
/* @__PURE__ */
|
|
9173
|
-
/* @__PURE__ */
|
|
9174
|
-
/* @__PURE__ */
|
|
9175
|
-
] }) }) : visibleMaps.map((map) => /* @__PURE__ */
|
|
9502
|
+
/* @__PURE__ */ jsx39("div", { className: "grid h-full min-h-0 grid-cols-1 gap-4 overflow-hidden px-4 pb-4 pt-4 lg:grid-cols-3", children: visibleMaps.length === 0 ? /* @__PURE__ */ jsx39("div", { className: "col-span-full flex min-h-[320px] items-center justify-center rounded-[28px] border border-dashed border-cupcode-purple/30 bg-white/[0.04] p-8 text-center", children: /* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
|
|
9503
|
+
/* @__PURE__ */ jsx39("p", { className: "text-base font-semibold text-white", children: "Nenhuma se\xE7\xE3o encontrada." }),
|
|
9504
|
+
/* @__PURE__ */ jsx39("p", { className: "text-sm text-white/55", children: "Tente outro termo ou procure pelo nome da p\xE1gina." })
|
|
9505
|
+
] }) }) : visibleMaps.map((map) => /* @__PURE__ */ jsxs25(
|
|
9176
9506
|
"section",
|
|
9177
9507
|
{
|
|
9178
9508
|
className: "flex min-h-0 max-h-full flex-col overflow-hidden rounded-[28px] border border-white/10 bg-[linear-gradient(180deg,rgba(255,255,255,0.07),rgba(255,255,255,0.03))] p-3",
|
|
9179
9509
|
children: [
|
|
9180
|
-
/* @__PURE__ */
|
|
9181
|
-
/* @__PURE__ */
|
|
9182
|
-
/* @__PURE__ */
|
|
9183
|
-
/* @__PURE__ */
|
|
9184
|
-
/* @__PURE__ */
|
|
9185
|
-
/* @__PURE__ */
|
|
9510
|
+
/* @__PURE__ */ jsxs25("div", { className: "rounded-[22px] border border-cupcode-purple/20 bg-cupcode-purple/10 p-4", children: [
|
|
9511
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-start gap-3", children: [
|
|
9512
|
+
/* @__PURE__ */ jsx39("span", { className: "inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-2xl bg-cupcode-purple/20 text-cupcode-purple", children: /* @__PURE__ */ jsx39(Layers3, { className: "h-4 w-4" }) }),
|
|
9513
|
+
/* @__PURE__ */ jsxs25("div", { className: "min-w-0", children: [
|
|
9514
|
+
/* @__PURE__ */ jsx39("p", { className: "truncate text-sm font-semibold text-white", children: map.title }),
|
|
9515
|
+
/* @__PURE__ */ jsx39("p", { className: "mt-1 text-xs leading-5 text-white/60", children: map.subtitle })
|
|
9186
9516
|
] })
|
|
9187
9517
|
] }),
|
|
9188
|
-
/* @__PURE__ */
|
|
9518
|
+
/* @__PURE__ */ jsxs25("p", { className: "mt-3 text-xs uppercase tracking-[0.14em] text-cupcode-purple/85", children: [
|
|
9189
9519
|
map.sections.length,
|
|
9190
9520
|
" de ",
|
|
9191
9521
|
map.totalSections,
|
|
9192
9522
|
" links"
|
|
9193
9523
|
] })
|
|
9194
9524
|
] }),
|
|
9195
|
-
/* @__PURE__ */
|
|
9525
|
+
/* @__PURE__ */ jsx39("div", { className: "cc-scrollbar cc-scrollbar-purple mt-3 min-h-0 flex-1 space-y-2 overflow-y-auto overflow-x-hidden pr-1", children: map.sections.map((section) => {
|
|
9196
9526
|
const parent = section.parentId ? map.parents.get(section.parentId) : null;
|
|
9197
9527
|
const isChild = Boolean(parent);
|
|
9198
|
-
return /* @__PURE__ */
|
|
9528
|
+
return /* @__PURE__ */ jsx39(
|
|
9199
9529
|
"button",
|
|
9200
9530
|
{
|
|
9201
9531
|
type: "button",
|
|
@@ -9204,23 +9534,23 @@ var DocumentationSearchDialog = ({ open, onOpenChange }) => {
|
|
|
9204
9534
|
"flex w-full overflow-hidden rounded-[22px] border px-4 py-3 text-left transition duration-200",
|
|
9205
9535
|
isChild ? "border-white/6 bg-white/[0.03] hover:border-cupcode-purple/24 hover:bg-cupcode-purple/[0.08]" : "border-white/10 bg-white/[0.05] hover:border-cupcode-purple/30 hover:bg-cupcode-purple/[0.12]"
|
|
9206
9536
|
),
|
|
9207
|
-
children: /* @__PURE__ */
|
|
9208
|
-
/* @__PURE__ */
|
|
9209
|
-
/* @__PURE__ */
|
|
9210
|
-
/* @__PURE__ */
|
|
9211
|
-
/* @__PURE__ */
|
|
9537
|
+
children: /* @__PURE__ */ jsx39("div", { className: "flex h-full w-full items-start", children: /* @__PURE__ */ jsxs25("div", { className: "min-w-0 flex-1", children: [
|
|
9538
|
+
/* @__PURE__ */ jsxs25("div", { className: "flex items-start gap-3", children: [
|
|
9539
|
+
/* @__PURE__ */ jsxs25("div", { className: "min-w-0 flex-1", children: [
|
|
9540
|
+
/* @__PURE__ */ jsx39("p", { className: "truncate text-sm font-semibold text-white", children: section.label }),
|
|
9541
|
+
/* @__PURE__ */ jsxs25("p", { className: "mt-1 text-[11px] uppercase tracking-[0.12em] text-white/48", children: [
|
|
9212
9542
|
map.searchLabel,
|
|
9213
9543
|
" \u2022 ",
|
|
9214
9544
|
section.group
|
|
9215
9545
|
] })
|
|
9216
9546
|
] }),
|
|
9217
|
-
/* @__PURE__ */
|
|
9547
|
+
/* @__PURE__ */ jsx39(ArrowUpRight, { className: "mt-0.5 h-4 w-4 shrink-0 text-white/35" })
|
|
9218
9548
|
] }),
|
|
9219
|
-
parent ? /* @__PURE__ */
|
|
9549
|
+
parent ? /* @__PURE__ */ jsxs25("p", { className: "mt-1.5 text-xs text-cupcode-purple/88", children: [
|
|
9220
9550
|
"Dentro de ",
|
|
9221
9551
|
parent.label
|
|
9222
9552
|
] }) : null,
|
|
9223
|
-
section.description ? /* @__PURE__ */
|
|
9553
|
+
section.description ? /* @__PURE__ */ jsx39("p", { className: cn("mt-1.5 truncate text-sm leading-5 text-white/62", parent && "mt-2"), children: section.description }) : null
|
|
9224
9554
|
] }) })
|
|
9225
9555
|
},
|
|
9226
9556
|
`${map.id}-${section.id}`
|
|
@@ -9277,16 +9607,16 @@ var buildSidebarGroupsFromNavItems = (items, defaultGroupLabel = "Principal") =>
|
|
|
9277
9607
|
var defaultSidebarGroups = buildSidebarGroupsFromNavItems(getMainNavItems());
|
|
9278
9608
|
|
|
9279
9609
|
// src/components/layout/sidebar.tsx
|
|
9280
|
-
import { jsx as
|
|
9610
|
+
import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
9281
9611
|
var findGroupByRoute = (groups, pathname) => {
|
|
9282
9612
|
var _a25, _b3;
|
|
9283
9613
|
return (_b3 = (_a25 = groups.find((group) => group.items.some((item) => item.route === pathname))) == null ? void 0 : _a25.label) != null ? _b3 : null;
|
|
9284
9614
|
};
|
|
9285
|
-
var IconFallback = () => /* @__PURE__ */
|
|
9286
|
-
var DEFAULT_EXPANDED_LOGO_SLOT = /* @__PURE__ */
|
|
9287
|
-
var DEFAULT_COLLAPSED_LOGO_SLOT = /* @__PURE__ */
|
|
9615
|
+
var IconFallback = () => /* @__PURE__ */ jsx40(Circle2, { className: "h-3 w-3 opacity-80", "aria-hidden": "true" });
|
|
9616
|
+
var DEFAULT_EXPANDED_LOGO_SLOT = /* @__PURE__ */ jsx40("div", { className: "h-10 w-[175px] shrink-0", "aria-hidden": "true" });
|
|
9617
|
+
var DEFAULT_COLLAPSED_LOGO_SLOT = /* @__PURE__ */ jsx40("div", { className: "h-8 w-8 shrink-0 rounded-lg", "aria-hidden": "true" });
|
|
9288
9618
|
var NAV_CLICK_DEBUG_KEY2 = "cc-debug-last-nav-click";
|
|
9289
|
-
var IconSlot = ({ icon, className }) => /* @__PURE__ */
|
|
9619
|
+
var IconSlot = ({ icon, className }) => /* @__PURE__ */ jsx40("span", { className: cn("inline-flex items-center justify-center [&>svg]:h-4 [&>svg]:w-4", className), children: icon != null ? icon : /* @__PURE__ */ jsx40(IconFallback, {}) });
|
|
9290
9620
|
var logSidebarNavClick = (source, item) => {
|
|
9291
9621
|
const payload = {
|
|
9292
9622
|
source,
|
|
@@ -9306,12 +9636,12 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9306
9636
|
const scrollTopRef = useRef8(0);
|
|
9307
9637
|
const [openGroup, setOpenGroup] = useState15(null);
|
|
9308
9638
|
const [isSearchOpen, setIsSearchOpen] = useState15(false);
|
|
9309
|
-
const resolvedGroups =
|
|
9639
|
+
const resolvedGroups = useMemo12(() => {
|
|
9310
9640
|
if (groups && groups.length > 0) return groups;
|
|
9311
9641
|
return defaultSidebarGroups;
|
|
9312
9642
|
}, [groups]);
|
|
9313
9643
|
const visibleGroups = resolvedGroups;
|
|
9314
|
-
const collapsedItems =
|
|
9644
|
+
const collapsedItems = useMemo12(
|
|
9315
9645
|
() => resolvedGroups.flatMap((group) => group.items),
|
|
9316
9646
|
[resolvedGroups]
|
|
9317
9647
|
);
|
|
@@ -9356,29 +9686,29 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9356
9686
|
window.cancelAnimationFrame(frame);
|
|
9357
9687
|
};
|
|
9358
9688
|
}, [location.pathname]);
|
|
9359
|
-
return /* @__PURE__ */
|
|
9689
|
+
return /* @__PURE__ */ jsxs26(
|
|
9360
9690
|
motion.aside,
|
|
9361
9691
|
{
|
|
9362
9692
|
className: cn("fixed left-0 top-0 z-30 h-full overflow-hidden", className),
|
|
9363
9693
|
animate: { width: isCollapsed ? 76 : 320 },
|
|
9364
9694
|
transition: { duration: 0.25, ease: "easeInOut" },
|
|
9365
9695
|
children: [
|
|
9366
|
-
/* @__PURE__ */
|
|
9367
|
-
/* @__PURE__ */
|
|
9368
|
-
!isCollapsed ? /* @__PURE__ */
|
|
9696
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex h-full flex-col overflow-hidden border-r 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)]", children: [
|
|
9697
|
+
/* @__PURE__ */ jsx40("div", { className: cn("mb-3 flex min-h-11 items-center", isCollapsed ? "justify-center" : "justify-start px-1"), children: isCollapsed ? resolvedCollapsedLogo : resolvedExpandedLogo }),
|
|
9698
|
+
!isCollapsed ? /* @__PURE__ */ jsx40("div", { className: "relative mb-3", children: /* @__PURE__ */ jsxs26(
|
|
9369
9699
|
"button",
|
|
9370
9700
|
{
|
|
9371
9701
|
type: "button",
|
|
9372
9702
|
onClick: () => setIsSearchOpen(true),
|
|
9373
9703
|
className: "glass-subtle flex h-10 w-full items-center rounded-xl border-none px-3 text-left text-sm text-ink/78 outline-none transition hover:bg-white/15 focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
9374
9704
|
children: [
|
|
9375
|
-
/* @__PURE__ */
|
|
9376
|
-
/* @__PURE__ */
|
|
9705
|
+
/* @__PURE__ */ jsx40(Search2, { className: "mr-3 h-4 w-4 shrink-0 text-ink/65" }),
|
|
9706
|
+
/* @__PURE__ */ jsx40("span", { className: "truncate text-ink/70", children: "Buscar na documenta\xE7\xE3o..." })
|
|
9377
9707
|
]
|
|
9378
9708
|
}
|
|
9379
9709
|
) }) : null,
|
|
9380
|
-
/* @__PURE__ */
|
|
9381
|
-
/* @__PURE__ */
|
|
9710
|
+
/* @__PURE__ */ jsx40("div", { ref: navScrollRef, className: "cc-scrollbar cc-scrollbar-purple flex-1 overflow-y-auto overflow-x-hidden pr-1", children: isCollapsed ? /* @__PURE__ */ jsxs26("div", { className: "flex flex-col items-center gap-2", children: [
|
|
9711
|
+
/* @__PURE__ */ jsx40(
|
|
9382
9712
|
"button",
|
|
9383
9713
|
{
|
|
9384
9714
|
type: "button",
|
|
@@ -9386,12 +9716,12 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9386
9716
|
className: "group inline-flex h-11 w-11 items-center justify-center rounded-xl bg-white/10 text-ink transition-colors duration-200 hover:bg-[rgba(151,90,182,0.30)]",
|
|
9387
9717
|
"aria-label": "Buscar na documenta\xE7\xE3o",
|
|
9388
9718
|
title: "Buscar na documenta\xE7\xE3o",
|
|
9389
|
-
children: /* @__PURE__ */
|
|
9719
|
+
children: /* @__PURE__ */ jsx40(Search2, { className: "h-5 w-5" })
|
|
9390
9720
|
}
|
|
9391
9721
|
),
|
|
9392
9722
|
collapsedItems.map((item) => {
|
|
9393
9723
|
const isActive = location.pathname === item.route;
|
|
9394
|
-
return /* @__PURE__ */
|
|
9724
|
+
return /* @__PURE__ */ jsx40(
|
|
9395
9725
|
NavLink,
|
|
9396
9726
|
{
|
|
9397
9727
|
to: item.route,
|
|
@@ -9405,17 +9735,17 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9405
9735
|
),
|
|
9406
9736
|
"aria-label": item.label,
|
|
9407
9737
|
title: item.label,
|
|
9408
|
-
children: /* @__PURE__ */
|
|
9738
|
+
children: /* @__PURE__ */ jsx40(IconSlot, { icon: item.icon, className: cn("[&>svg]:h-5 [&>svg]:w-5", isActive && "text-white") })
|
|
9409
9739
|
},
|
|
9410
9740
|
item.id
|
|
9411
9741
|
);
|
|
9412
9742
|
})
|
|
9413
|
-
] }) : /* @__PURE__ */
|
|
9743
|
+
] }) : /* @__PURE__ */ jsx40("div", { className: "space-y-2", children: visibleGroups.length === 0 ? /* @__PURE__ */ jsx40("p", { className: "rounded-xl bg-white/20 px-3 py-3 text-xs text-ink-muted", children: "Nenhum item encontrado." }) : visibleGroups.map((group) => {
|
|
9414
9744
|
const isOpen = openGroup === group.label;
|
|
9415
9745
|
const showGroupHeader = visibleGroups.length > 1;
|
|
9416
9746
|
const showGroupItems = !showGroupHeader || isOpen;
|
|
9417
|
-
return /* @__PURE__ */
|
|
9418
|
-
showGroupHeader ? /* @__PURE__ */
|
|
9747
|
+
return /* @__PURE__ */ jsxs26("section", { className: "rounded-xl bg-white/14", children: [
|
|
9748
|
+
showGroupHeader ? /* @__PURE__ */ jsxs26(
|
|
9419
9749
|
"button",
|
|
9420
9750
|
{
|
|
9421
9751
|
type: "button",
|
|
@@ -9423,13 +9753,13 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9423
9753
|
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)]",
|
|
9424
9754
|
"aria-expanded": isOpen,
|
|
9425
9755
|
children: [
|
|
9426
|
-
/* @__PURE__ */
|
|
9427
|
-
/* @__PURE__ */
|
|
9428
|
-
/* @__PURE__ */
|
|
9756
|
+
/* @__PURE__ */ jsx40(IconSlot, { icon: group.icon, className: "h-8 w-8 rounded-xl bg-white/55 text-ink" }),
|
|
9757
|
+
/* @__PURE__ */ jsx40("span", { className: "text-[11px] font-semibold uppercase tracking-[0.12em] text-ink/80", children: group.label }),
|
|
9758
|
+
/* @__PURE__ */ jsx40(ChevronDown4, { className: cn("ml-auto h-4 w-4 text-ink/65 transition-transform", isOpen && "rotate-90") })
|
|
9429
9759
|
]
|
|
9430
9760
|
}
|
|
9431
9761
|
) : null,
|
|
9432
|
-
/* @__PURE__ */
|
|
9762
|
+
/* @__PURE__ */ jsx40(AnimatePresence, { initial: false, children: showGroupItems ? /* @__PURE__ */ jsx40(
|
|
9433
9763
|
motion.div,
|
|
9434
9764
|
{
|
|
9435
9765
|
initial: { height: 0 },
|
|
@@ -9437,9 +9767,9 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9437
9767
|
exit: { height: 0 },
|
|
9438
9768
|
transition: { duration: 0.2, ease: "easeInOut" },
|
|
9439
9769
|
className: "overflow-hidden",
|
|
9440
|
-
children: /* @__PURE__ */
|
|
9770
|
+
children: /* @__PURE__ */ jsx40("nav", { className: "space-y-1 pb-2", children: group.items.map((item) => {
|
|
9441
9771
|
const isActive = location.pathname === item.route;
|
|
9442
|
-
return /* @__PURE__ */
|
|
9772
|
+
return /* @__PURE__ */ jsxs26(
|
|
9443
9773
|
NavLink,
|
|
9444
9774
|
{
|
|
9445
9775
|
to: item.route,
|
|
@@ -9452,7 +9782,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9452
9782
|
isActive && "bg-white/40 font-medium text-ink"
|
|
9453
9783
|
),
|
|
9454
9784
|
children: [
|
|
9455
|
-
/* @__PURE__ */
|
|
9785
|
+
/* @__PURE__ */ jsx40(
|
|
9456
9786
|
IconSlot,
|
|
9457
9787
|
{
|
|
9458
9788
|
icon: item.icon,
|
|
@@ -9462,7 +9792,7 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9462
9792
|
)
|
|
9463
9793
|
}
|
|
9464
9794
|
),
|
|
9465
|
-
/* @__PURE__ */
|
|
9795
|
+
/* @__PURE__ */ jsx40("span", { className: cn("truncate", isActive && "font-medium"), children: item.label })
|
|
9466
9796
|
]
|
|
9467
9797
|
},
|
|
9468
9798
|
item.id
|
|
@@ -9473,14 +9803,14 @@ var AppSidebar = ({ isCollapsed, onToggle, groups, logo, collapsedLogo, classNam
|
|
|
9473
9803
|
] }, group.id);
|
|
9474
9804
|
}) }) })
|
|
9475
9805
|
] }),
|
|
9476
|
-
/* @__PURE__ */
|
|
9806
|
+
/* @__PURE__ */ jsx40(DocumentationSearchDialog, { open: isSearchOpen, onOpenChange: setIsSearchOpen })
|
|
9477
9807
|
]
|
|
9478
9808
|
}
|
|
9479
9809
|
);
|
|
9480
9810
|
};
|
|
9481
9811
|
|
|
9482
9812
|
// src/components/layout/main-layout.tsx
|
|
9483
|
-
import { Fragment as Fragment6, jsx as
|
|
9813
|
+
import { Fragment as Fragment6, jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
9484
9814
|
var SIDEBAR_COLLAPSED_WIDTH = 76;
|
|
9485
9815
|
var SIDEBAR_EXPANDED_WIDTH = 320;
|
|
9486
9816
|
var SIDEBAR_COLLAPSED_STORAGE_KEY = "cc-layout-sidebar-collapsed";
|
|
@@ -9525,26 +9855,26 @@ var MainLayout = ({
|
|
|
9525
9855
|
return () => document.removeEventListener("keydown", handleKeyDown);
|
|
9526
9856
|
}, [isMobileSidebarOpen]);
|
|
9527
9857
|
const contentMarginLeft = sidebarCollapsed ? SIDEBAR_COLLAPSED_WIDTH : SIDEBAR_EXPANDED_WIDTH;
|
|
9528
|
-
const sidebarGroups =
|
|
9858
|
+
const sidebarGroups = useMemo13(
|
|
9529
9859
|
() => buildSidebarGroupsFromNavItems(
|
|
9530
9860
|
getMainNavItems({ includePrivate: (navbarProps == null ? void 0 : navbarProps.authStatus) === "authenticated" })
|
|
9531
9861
|
),
|
|
9532
9862
|
[navbarProps == null ? void 0 : navbarProps.authStatus]
|
|
9533
9863
|
);
|
|
9534
|
-
const mergedNavbarClassName =
|
|
9864
|
+
const mergedNavbarClassName = useMemo13(
|
|
9535
9865
|
() => cn(
|
|
9536
9866
|
"!left-0 !right-0 !top-0 !rounded-none !border-l-0 transition-[left] duration-300 ease-in-out md:!left-[var(--cc-layout-sidebar-width)]",
|
|
9537
9867
|
navbarProps == null ? void 0 : navbarProps.className
|
|
9538
9868
|
),
|
|
9539
9869
|
[navbarProps == null ? void 0 : navbarProps.className]
|
|
9540
9870
|
);
|
|
9541
|
-
return /* @__PURE__ */
|
|
9871
|
+
return /* @__PURE__ */ jsxs27(
|
|
9542
9872
|
"div",
|
|
9543
9873
|
{
|
|
9544
9874
|
className: cn("relative min-h-screen max-w-full overflow-x-clip", className),
|
|
9545
9875
|
style: { "--cc-layout-sidebar-width": `${contentMarginLeft}px` },
|
|
9546
9876
|
children: [
|
|
9547
|
-
/* @__PURE__ */
|
|
9877
|
+
/* @__PURE__ */ jsx41(
|
|
9548
9878
|
AppSidebar,
|
|
9549
9879
|
{
|
|
9550
9880
|
isCollapsed: sidebarCollapsed,
|
|
@@ -9555,8 +9885,8 @@ var MainLayout = ({
|
|
|
9555
9885
|
className: "hidden md:block"
|
|
9556
9886
|
}
|
|
9557
9887
|
),
|
|
9558
|
-
isMobileSidebarOpen ? /* @__PURE__ */
|
|
9559
|
-
/* @__PURE__ */
|
|
9888
|
+
isMobileSidebarOpen ? /* @__PURE__ */ jsxs27("div", { className: "fixed inset-0 z-[12000] md:hidden", children: [
|
|
9889
|
+
/* @__PURE__ */ jsx41(
|
|
9560
9890
|
"button",
|
|
9561
9891
|
{
|
|
9562
9892
|
type: "button",
|
|
@@ -9565,7 +9895,7 @@ var MainLayout = ({
|
|
|
9565
9895
|
onClick: () => setIsMobileSidebarOpen(false)
|
|
9566
9896
|
}
|
|
9567
9897
|
),
|
|
9568
|
-
/* @__PURE__ */
|
|
9898
|
+
/* @__PURE__ */ jsx41(
|
|
9569
9899
|
AppSidebar,
|
|
9570
9900
|
{
|
|
9571
9901
|
isCollapsed: false,
|
|
@@ -9578,31 +9908,31 @@ var MainLayout = ({
|
|
|
9578
9908
|
}
|
|
9579
9909
|
)
|
|
9580
9910
|
] }) : null,
|
|
9581
|
-
/* @__PURE__ */
|
|
9911
|
+
/* @__PURE__ */ jsx41(
|
|
9582
9912
|
MainNavbar,
|
|
9583
9913
|
{
|
|
9584
9914
|
...navbarProps,
|
|
9585
9915
|
showNavItems: false,
|
|
9586
9916
|
className: mergedNavbarClassName,
|
|
9587
|
-
leadingSlot: /* @__PURE__ */
|
|
9588
|
-
/* @__PURE__ */
|
|
9917
|
+
leadingSlot: /* @__PURE__ */ jsxs27(Fragment6, { children: [
|
|
9918
|
+
/* @__PURE__ */ jsx41(
|
|
9589
9919
|
"button",
|
|
9590
9920
|
{
|
|
9591
9921
|
type: "button",
|
|
9592
9922
|
onClick: () => setIsMobileSidebarOpen(true),
|
|
9593
9923
|
"aria-label": "Abrir menu de navega\xE7\xE3o",
|
|
9594
9924
|
className: "inline-flex h-full min-h-[var(--cc-navbar-height-mobile)] w-14 items-center justify-center border-r border-border/60 bg-background/35 text-foreground transition-colors duration-200 hover:bg-background/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 dark:border-white/15 dark:bg-white/[0.04] dark:text-white/90 dark:hover:bg-white/[0.08] md:hidden",
|
|
9595
|
-
children: /* @__PURE__ */
|
|
9925
|
+
children: /* @__PURE__ */ jsx41(Menu2, { className: "h-5 w-5" })
|
|
9596
9926
|
}
|
|
9597
9927
|
),
|
|
9598
|
-
/* @__PURE__ */
|
|
9928
|
+
/* @__PURE__ */ jsx41(
|
|
9599
9929
|
"button",
|
|
9600
9930
|
{
|
|
9601
9931
|
type: "button",
|
|
9602
9932
|
onClick: toggleSidebar,
|
|
9603
9933
|
"aria-label": sidebarCollapsed ? "Expandir sidebar" : "Recolher sidebar",
|
|
9604
9934
|
className: "hidden h-full min-h-[var(--cc-navbar-height-desktop)] w-14 items-center justify-center border-r border-border/60 bg-background/35 text-foreground transition-colors duration-200 hover:bg-background/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/45 dark:border-white/15 dark:bg-white/[0.04] dark:text-white/90 dark:hover:bg-white/[0.08] md:inline-flex",
|
|
9605
|
-
children: /* @__PURE__ */
|
|
9935
|
+
children: /* @__PURE__ */ jsx41(
|
|
9606
9936
|
ChevronRight2,
|
|
9607
9937
|
{
|
|
9608
9938
|
className: cn(
|
|
@@ -9616,7 +9946,7 @@ var MainLayout = ({
|
|
|
9616
9946
|
] })
|
|
9617
9947
|
}
|
|
9618
9948
|
),
|
|
9619
|
-
/* @__PURE__ */
|
|
9949
|
+
/* @__PURE__ */ jsx41(
|
|
9620
9950
|
"main",
|
|
9621
9951
|
{
|
|
9622
9952
|
className: cn(
|
|
@@ -9634,7 +9964,7 @@ var MainLayout = ({
|
|
|
9634
9964
|
// src/components/cupcode/ErrorBoundary.tsx
|
|
9635
9965
|
import React22 from "react";
|
|
9636
9966
|
import { AlertTriangle } from "lucide-react";
|
|
9637
|
-
import { jsx as
|
|
9967
|
+
import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
9638
9968
|
var ErrorBoundary = class extends React22.Component {
|
|
9639
9969
|
constructor(props) {
|
|
9640
9970
|
super(props);
|
|
@@ -9654,17 +9984,17 @@ var ErrorBoundary = class extends React22.Component {
|
|
|
9654
9984
|
if (this.props.fallback) {
|
|
9655
9985
|
return this.props.fallback;
|
|
9656
9986
|
}
|
|
9657
|
-
return /* @__PURE__ */
|
|
9658
|
-
/* @__PURE__ */
|
|
9659
|
-
/* @__PURE__ */
|
|
9660
|
-
/* @__PURE__ */
|
|
9661
|
-
this.state.error && /* @__PURE__ */
|
|
9662
|
-
/* @__PURE__ */
|
|
9663
|
-
/* @__PURE__ */
|
|
9987
|
+
return /* @__PURE__ */ jsx42("div", { className: "min-h-screen flex items-center justify-center p-6 bg-gradient-to-br from-cupcode-surface to-muted", children: /* @__PURE__ */ jsxs28("div", { className: "max-w-md w-full glass rounded-xl p-8 text-center animate-scale-in", children: [
|
|
9988
|
+
/* @__PURE__ */ jsx42("div", { className: "mb-6 flex justify-center", children: /* @__PURE__ */ jsx42("div", { className: "p-4 rounded-full bg-destructive/10", children: /* @__PURE__ */ jsx42(AlertTriangle, { className: "w-12 h-12 text-destructive" }) }) }),
|
|
9989
|
+
/* @__PURE__ */ jsx42("h2", { className: "text-2xl font-display font-bold text-foreground mb-3", children: "Algo deu errado" }),
|
|
9990
|
+
/* @__PURE__ */ jsx42("p", { className: "text-muted-foreground mb-6", children: "Desculpe, encontramos um erro inesperado. Por favor, tente novamente." }),
|
|
9991
|
+
this.state.error && /* @__PURE__ */ jsxs28("details", { className: "mb-6 text-left", children: [
|
|
9992
|
+
/* @__PURE__ */ jsx42("summary", { className: "cursor-pointer text-sm text-muted-foreground hover:text-foreground", children: "Detalhes t\xE9cnicos" }),
|
|
9993
|
+
/* @__PURE__ */ jsx42("pre", { className: "mt-2 p-3 bg-muted rounded-md text-xs overflow-x-auto", children: this.state.error.message })
|
|
9664
9994
|
] }),
|
|
9665
|
-
/* @__PURE__ */
|
|
9666
|
-
/* @__PURE__ */
|
|
9667
|
-
/* @__PURE__ */
|
|
9995
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex gap-3 justify-center", children: [
|
|
9996
|
+
/* @__PURE__ */ jsx42(JellyButton, { onClick: this.handleReset, variant: "primary", children: "Tentar novamente" }),
|
|
9997
|
+
/* @__PURE__ */ jsx42(JellyButton, { onClick: () => window.location.href = "/", variant: "secondary", children: "Ir para in\xEDcio" })
|
|
9668
9998
|
] })
|
|
9669
9999
|
] }) });
|
|
9670
10000
|
}
|
|
@@ -9674,7 +10004,7 @@ var ErrorBoundary = class extends React22.Component {
|
|
|
9674
10004
|
|
|
9675
10005
|
// src/components/cupcode/EyebrowCupcode.tsx
|
|
9676
10006
|
import { forwardRef as forwardRef18 } from "react";
|
|
9677
|
-
import { jsx as
|
|
10007
|
+
import { jsx as jsx43 } from "react/jsx-runtime";
|
|
9678
10008
|
var Eyebrow = forwardRef18(
|
|
9679
10009
|
({ variant = "galaxy", glow = false, className, children, ...props }, ref) => {
|
|
9680
10010
|
const baseClasses = cn(
|
|
@@ -9690,7 +10020,7 @@ var Eyebrow = forwardRef18(
|
|
|
9690
10020
|
purple: "bg-cupcode-purple text-white shadow-[0_0_20px_rgba(124,91,187,0.4)]",
|
|
9691
10021
|
outline: "border-2 border-cupcode-purple text-cupcode-purple bg-transparent"
|
|
9692
10022
|
};
|
|
9693
|
-
return /* @__PURE__ */
|
|
10023
|
+
return /* @__PURE__ */ jsx43(
|
|
9694
10024
|
"div",
|
|
9695
10025
|
{
|
|
9696
10026
|
ref,
|
|
@@ -9708,7 +10038,7 @@ import { ChevronRight as ChevronRight3 } from "lucide-react";
|
|
|
9708
10038
|
|
|
9709
10039
|
// src/components/cupcode/ThemeBackground.tsx
|
|
9710
10040
|
import { Suspense, lazy } from "react";
|
|
9711
|
-
import { jsx as
|
|
10041
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
9712
10042
|
var BackgroundRainbow2 = lazy(
|
|
9713
10043
|
() => Promise.resolve().then(() => (init_BackgroundRainbow(), BackgroundRainbow_exports)).then((module) => ({ default: module.BackgroundRainbow }))
|
|
9714
10044
|
);
|
|
@@ -9718,7 +10048,7 @@ var BackgroundStars2 = lazy(
|
|
|
9718
10048
|
var ThemeBackground = ({ enableStars = true }) => {
|
|
9719
10049
|
const { theme } = useAppTheme();
|
|
9720
10050
|
const isDark = theme === "dark";
|
|
9721
|
-
return /* @__PURE__ */
|
|
10051
|
+
return /* @__PURE__ */ jsx44(Suspense, { fallback: null, children: isDark ? enableStars ? /* @__PURE__ */ jsx44(BackgroundStars2, {}) : null : /* @__PURE__ */ jsx44(BackgroundRainbow2, {}) });
|
|
9722
10052
|
};
|
|
9723
10053
|
|
|
9724
10054
|
// src/hooks/useFooterLinks.ts
|
|
@@ -9854,7 +10184,7 @@ var useFooterLinks = () => {
|
|
|
9854
10184
|
};
|
|
9855
10185
|
|
|
9856
10186
|
// src/components/cupcode/FooterCupcode.tsx
|
|
9857
|
-
import { Fragment as Fragment7, jsx as
|
|
10187
|
+
import { Fragment as Fragment7, jsx as jsx45, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
9858
10188
|
var cupcodeFaviconUrl = "https://cdn.telescup.com.br/i?id=be574751-cf1b-499a-8473-360b4115b447&w=64&h=64&format=png";
|
|
9859
10189
|
var whatsappUrl = "https://wa.me/554196133902?text=Entrei%20no%20site%20da%20Cupcode%20e%20gostaria%20de%20falar%20sobre...";
|
|
9860
10190
|
var currentYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
@@ -9864,9 +10194,9 @@ var socialIconIds = {
|
|
|
9864
10194
|
linkedin: "eb340b49-f3f8-4d46-96b0-5b2e6cde6683",
|
|
9865
10195
|
whatsapp: "1ef28a1c-19ee-482a-a08a-521d0d1c2920"
|
|
9866
10196
|
};
|
|
9867
|
-
var LinkList = ({ groups }) => /* @__PURE__ */
|
|
9868
|
-
/* @__PURE__ */
|
|
9869
|
-
/* @__PURE__ */
|
|
10197
|
+
var LinkList = ({ groups }) => /* @__PURE__ */ jsx45("div", { className: "space-y-3", children: groups.map((group) => /* @__PURE__ */ jsxs29("section", { children: [
|
|
10198
|
+
/* @__PURE__ */ jsx45("h2", { className: "mb-2 font-display text-[18px] font-semibold leading-none text-[#ed1e79]", children: group.title }),
|
|
10199
|
+
/* @__PURE__ */ jsx45("ul", { className: "space-y-1.5", children: group.links.map((link) => /* @__PURE__ */ jsx45("li", { children: /* @__PURE__ */ jsx45(
|
|
9870
10200
|
"a",
|
|
9871
10201
|
{
|
|
9872
10202
|
className: "font-ui text-[13px] leading-tight text-[#7c45ff] transition-colors hover:text-[#ed1e79] dark:text-[#d8c8ff] dark:hover:text-[#ff4fa3]",
|
|
@@ -9875,12 +10205,12 @@ var LinkList = ({ groups }) => /* @__PURE__ */ jsx44("div", { className: "space-
|
|
|
9875
10205
|
}
|
|
9876
10206
|
) }, `${group.title}-${link.label}`)) })
|
|
9877
10207
|
] }, group.title)) });
|
|
9878
|
-
var MobileFooterAccordion = ({ groups }) => /* @__PURE__ */
|
|
9879
|
-
/* @__PURE__ */
|
|
9880
|
-
/* @__PURE__ */
|
|
9881
|
-
/* @__PURE__ */
|
|
10208
|
+
var MobileFooterAccordion = ({ groups }) => /* @__PURE__ */ jsx45("div", { className: "divide-y divide-[#d8a6ff] border-y border-[#d8a6ff] bg-white/35 backdrop-blur-sm dark:divide-[#6d3ba7] dark:border-[#6d3ba7] dark:bg-black/10", children: groups.map((group) => /* @__PURE__ */ jsxs29("details", { className: "group", children: [
|
|
10209
|
+
/* @__PURE__ */ jsxs29("summary", { className: "flex cursor-pointer list-none items-center justify-between gap-4 px-4 py-3 font-display text-[16px] font-semibold leading-none text-[#ed1e79] [&::-webkit-details-marker]:hidden", children: [
|
|
10210
|
+
/* @__PURE__ */ jsx45("span", { children: group.title }),
|
|
10211
|
+
/* @__PURE__ */ jsx45("span", { className: "text-[18px] leading-none transition-transform group-open:rotate-45", children: "+" })
|
|
9882
10212
|
] }),
|
|
9883
|
-
/* @__PURE__ */
|
|
10213
|
+
/* @__PURE__ */ jsx45("ul", { className: "space-y-1.5 px-4 pb-3", children: group.links.map((link) => /* @__PURE__ */ jsx45("li", { children: /* @__PURE__ */ jsx45(
|
|
9884
10214
|
"a",
|
|
9885
10215
|
{
|
|
9886
10216
|
className: "font-ui text-[12px] leading-tight text-[#7c45ff] transition-colors hover:text-[#ed1e79] dark:text-[#d8c8ff] dark:hover:text-[#ff4fa3]",
|
|
@@ -9889,13 +10219,13 @@ var MobileFooterAccordion = ({ groups }) => /* @__PURE__ */ jsx44("div", { class
|
|
|
9889
10219
|
}
|
|
9890
10220
|
) }, `${group.title}-${link.label}`)) })
|
|
9891
10221
|
] }, group.title)) });
|
|
9892
|
-
var SocialLink = ({ label, href, apiId }) => /* @__PURE__ */
|
|
10222
|
+
var SocialLink = ({ label, href, apiId }) => /* @__PURE__ */ jsx45(
|
|
9893
10223
|
"a",
|
|
9894
10224
|
{
|
|
9895
10225
|
"aria-label": label,
|
|
9896
10226
|
className: "grid h-8 w-8 place-items-center transition-transform hover:-translate-y-0.5 sm:h-10 sm:w-10",
|
|
9897
10227
|
href,
|
|
9898
|
-
children: /* @__PURE__ */
|
|
10228
|
+
children: /* @__PURE__ */ jsx45(
|
|
9899
10229
|
TelescupImage,
|
|
9900
10230
|
{
|
|
9901
10231
|
apiId,
|
|
@@ -9920,7 +10250,7 @@ function FooterCupcode({ embedded = false }) {
|
|
|
9920
10250
|
...footerContactGroups
|
|
9921
10251
|
];
|
|
9922
10252
|
const hasContent = footerLeftGroups.length > 0 || footerServiceGroups.some((column) => column.length > 0) || footerContactGroups.length > 0 || footerLegalLinks.length > 0;
|
|
9923
|
-
return /* @__PURE__ */
|
|
10253
|
+
return /* @__PURE__ */ jsxs29(
|
|
9924
10254
|
"footer",
|
|
9925
10255
|
{
|
|
9926
10256
|
className: cn(
|
|
@@ -9928,17 +10258,17 @@ function FooterCupcode({ embedded = false }) {
|
|
|
9928
10258
|
embedded ? "bg-transparent" : "min-h-screen bg-transparent"
|
|
9929
10259
|
),
|
|
9930
10260
|
children: [
|
|
9931
|
-
embedded ? null : /* @__PURE__ */
|
|
9932
|
-
/* @__PURE__ */
|
|
9933
|
-
embedded ? null : /* @__PURE__ */
|
|
9934
|
-
/* @__PURE__ */
|
|
9935
|
-
/* @__PURE__ */
|
|
10261
|
+
embedded ? null : /* @__PURE__ */ jsx45(ThemeBackground, {}),
|
|
10262
|
+
/* @__PURE__ */ jsxs29("div", { className: cn("relative overflow-hidden px-6 pt-8 sm:px-10 lg:px-12 xl:px-[60px]", embedded ? "pb-28" : "pb-5"), children: [
|
|
10263
|
+
embedded ? null : /* @__PURE__ */ jsx45("div", { className: "pointer-events-none absolute inset-0 z-10 bg-[radial-gradient(circle_at_0%_0%,rgba(124,69,255,0.16)_0,transparent_22%),radial-gradient(circle_at_28%_54%,rgba(237,30,121,0.18)_0,transparent_23%),radial-gradient(circle_at_76%_0%,rgba(237,30,121,0.08)_0,transparent_18%)] dark:bg-[radial-gradient(circle_at_0%_0%,rgba(124,69,255,0.10)_0,transparent_22%),radial-gradient(circle_at_28%_54%,rgba(237,30,121,0.12)_0,transparent_23%)]" }),
|
|
10264
|
+
/* @__PURE__ */ jsxs29("div", { className: "relative z-30", children: [
|
|
10265
|
+
/* @__PURE__ */ jsxs29(
|
|
9936
10266
|
"nav",
|
|
9937
10267
|
{
|
|
9938
10268
|
"aria-label": "Breadcrumb",
|
|
9939
10269
|
className: "mb-7 flex items-center gap-2 text-[17px] text-[#8c4cff] dark:text-[#d8c8ff]",
|
|
9940
10270
|
children: [
|
|
9941
|
-
/* @__PURE__ */
|
|
10271
|
+
/* @__PURE__ */ jsx45(
|
|
9942
10272
|
"img",
|
|
9943
10273
|
{
|
|
9944
10274
|
alt: "Cupcode",
|
|
@@ -9946,23 +10276,23 @@ function FooterCupcode({ embedded = false }) {
|
|
|
9946
10276
|
src: cupcodeFaviconUrl
|
|
9947
10277
|
}
|
|
9948
10278
|
),
|
|
9949
|
-
/* @__PURE__ */
|
|
9950
|
-
/* @__PURE__ */
|
|
10279
|
+
/* @__PURE__ */ jsx45(ChevronRight3, { "aria-hidden": "true", className: "h-5 w-5" }),
|
|
10280
|
+
/* @__PURE__ */ jsx45("a", { className: "leading-none transition-colors hover:text-[#ed1e79]", href: "/", children: "Home" })
|
|
9951
10281
|
]
|
|
9952
10282
|
}
|
|
9953
10283
|
),
|
|
9954
|
-
status === "loading" ? /* @__PURE__ */
|
|
9955
|
-
status === "error" ? /* @__PURE__ */
|
|
9956
|
-
status === "ready" && hasContent ? /* @__PURE__ */
|
|
9957
|
-
/* @__PURE__ */
|
|
9958
|
-
/* @__PURE__ */
|
|
9959
|
-
footerServiceGroups.map((column, index) => /* @__PURE__ */
|
|
9960
|
-
/* @__PURE__ */
|
|
10284
|
+
status === "loading" ? /* @__PURE__ */ jsx45("p", { className: "py-8 text-sm text-muted-foreground", children: "Carregando links do rodap\xE9..." }) : null,
|
|
10285
|
+
status === "error" ? /* @__PURE__ */ jsx45("p", { className: "py-8 text-sm text-destructive", role: "alert", children: error != null ? error : "N\xE3o foi poss\xEDvel carregar o rodap\xE9." }) : null,
|
|
10286
|
+
status === "ready" && hasContent ? /* @__PURE__ */ jsxs29(Fragment7, { children: [
|
|
10287
|
+
/* @__PURE__ */ jsxs29("div", { className: "hidden gap-12 lg:grid lg:grid-cols-[repeat(5,minmax(0,1fr))] xl:gap-16", children: [
|
|
10288
|
+
/* @__PURE__ */ jsx45(LinkList, { groups: footerLeftGroups }),
|
|
10289
|
+
footerServiceGroups.map((column, index) => /* @__PURE__ */ jsx45(LinkList, { groups: column }, index)),
|
|
10290
|
+
/* @__PURE__ */ jsx45(LinkList, { groups: footerContactGroups })
|
|
9961
10291
|
] }),
|
|
9962
|
-
/* @__PURE__ */
|
|
10292
|
+
/* @__PURE__ */ jsx45("div", { className: "lg:hidden", children: /* @__PURE__ */ jsx45(MobileFooterAccordion, { groups: mobileGroups }) })
|
|
9963
10293
|
] }) : null,
|
|
9964
|
-
/* @__PURE__ */
|
|
9965
|
-
/* @__PURE__ */
|
|
10294
|
+
/* @__PURE__ */ jsxs29("div", { className: "mt-10 flex flex-col gap-3 text-[11px] text-[#21113f] dark:text-white sm:flex-row sm:items-center sm:justify-between sm:gap-4 sm:text-[13px]", children: [
|
|
10295
|
+
/* @__PURE__ */ jsx45(
|
|
9966
10296
|
"a",
|
|
9967
10297
|
{
|
|
9968
10298
|
className: "transition-colors hover:text-[#ed1e79] dark:hover:text-[#ff4fa3]",
|
|
@@ -9970,20 +10300,20 @@ function FooterCupcode({ embedded = false }) {
|
|
|
9970
10300
|
children: "Mais informa\xE7\xF5es: +55 (41) 99613-3902"
|
|
9971
10301
|
}
|
|
9972
10302
|
),
|
|
9973
|
-
/* @__PURE__ */
|
|
9974
|
-
/* @__PURE__ */
|
|
9975
|
-
/* @__PURE__ */
|
|
9976
|
-
/* @__PURE__ */
|
|
10303
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-center gap-1", children: [
|
|
10304
|
+
/* @__PURE__ */ jsx45(SocialLink, { label: "Instagram", href: "https://www.instagram.com/cupcodev/", apiId: socialIconIds.instagram }),
|
|
10305
|
+
/* @__PURE__ */ jsx45(SocialLink, { label: "LinkedIn", href: "https://www.linkedin.com/company/cupcodev/", apiId: socialIconIds.linkedin }),
|
|
10306
|
+
/* @__PURE__ */ jsx45(SocialLink, { label: "WhatsApp", href: whatsappUrl, apiId: socialIconIds.whatsapp })
|
|
9977
10307
|
] })
|
|
9978
10308
|
] }),
|
|
9979
|
-
/* @__PURE__ */
|
|
9980
|
-
footerLegalLinks.length > 0 ? /* @__PURE__ */
|
|
10309
|
+
/* @__PURE__ */ jsx45("div", { className: "mt-9 border-t border-[#f0a6d0] pt-5", children: /* @__PURE__ */ jsxs29("div", { className: "flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between", children: [
|
|
10310
|
+
footerLegalLinks.length > 0 ? /* @__PURE__ */ jsx45(
|
|
9981
10311
|
"nav",
|
|
9982
10312
|
{
|
|
9983
10313
|
"aria-label": "Links legais",
|
|
9984
10314
|
className: "order-1 flex flex-nowrap items-center gap-x-2 overflow-x-auto whitespace-nowrap text-[7px] leading-none sm:gap-x-3 sm:text-[11px] lg:order-2",
|
|
9985
|
-
children: footerLegalLinks.map((link, index) => /* @__PURE__ */
|
|
9986
|
-
/* @__PURE__ */
|
|
10315
|
+
children: footerLegalLinks.map((link, index) => /* @__PURE__ */ jsxs29("span", { className: "flex shrink-0 items-center gap-2 sm:gap-3", children: [
|
|
10316
|
+
/* @__PURE__ */ jsx45(
|
|
9987
10317
|
"a",
|
|
9988
10318
|
{
|
|
9989
10319
|
className: "text-[#21113f] transition-colors hover:text-[#ed1e79] dark:text-[#d8c8ff] dark:hover:text-[#ff4fa3]",
|
|
@@ -9991,19 +10321,19 @@ function FooterCupcode({ embedded = false }) {
|
|
|
9991
10321
|
children: link.label
|
|
9992
10322
|
}
|
|
9993
10323
|
),
|
|
9994
|
-
index < footerLegalLinks.length - 1 ? /* @__PURE__ */
|
|
10324
|
+
index < footerLegalLinks.length - 1 ? /* @__PURE__ */ jsx45("span", { className: "text-[#ed1e79]", children: "|" }) : null
|
|
9995
10325
|
] }, link.label))
|
|
9996
10326
|
}
|
|
9997
10327
|
) : null,
|
|
9998
|
-
/* @__PURE__ */
|
|
10328
|
+
/* @__PURE__ */ jsxs29("p", { className: "max-w-[760px] text-[10px] leading-snug text-[#21113f] dark:text-white sm:text-[11px] sm:leading-snug", children: [
|
|
9999
10329
|
"Copyright \xA9 ",
|
|
10000
10330
|
currentYear,
|
|
10001
10331
|
" ",
|
|
10002
|
-
/* @__PURE__ */
|
|
10332
|
+
/* @__PURE__ */ jsx45("strong", { className: "font-semibold", children: "Cupcode Desenvolvimento e Marketing Ltda." }),
|
|
10003
10333
|
" Todos os direitos reservados."
|
|
10004
10334
|
] })
|
|
10005
10335
|
] }) }),
|
|
10006
|
-
/* @__PURE__ */
|
|
10336
|
+
/* @__PURE__ */ jsx45(
|
|
10007
10337
|
TelescupImage,
|
|
10008
10338
|
{
|
|
10009
10339
|
apiId: footerBannerImageId,
|
|
@@ -10024,7 +10354,7 @@ function FooterCupcode({ embedded = false }) {
|
|
|
10024
10354
|
}
|
|
10025
10355
|
|
|
10026
10356
|
// src/components/cupcode/HeroTitle.tsx
|
|
10027
|
-
import { jsx as
|
|
10357
|
+
import { jsx as jsx46, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
10028
10358
|
var HeroTitle = ({
|
|
10029
10359
|
eyebrow,
|
|
10030
10360
|
smallPrefix,
|
|
@@ -10038,25 +10368,25 @@ var HeroTitle = ({
|
|
|
10038
10368
|
3: "h3"
|
|
10039
10369
|
};
|
|
10040
10370
|
const Tag = headingTagMap[level];
|
|
10041
|
-
return /* @__PURE__ */
|
|
10042
|
-
eyebrow && /* @__PURE__ */
|
|
10043
|
-
/* @__PURE__ */
|
|
10044
|
-
smallPrefix && /* @__PURE__ */
|
|
10045
|
-
/* @__PURE__ */
|
|
10371
|
+
return /* @__PURE__ */ jsxs30("div", { className: cn("space-y-3", className), children: [
|
|
10372
|
+
eyebrow && /* @__PURE__ */ jsx46("span", { className: "span-destaque animate-fade-in", children: eyebrow }),
|
|
10373
|
+
/* @__PURE__ */ jsxs30(Tag, { className: "font-display font-bold leading-tight animate-slide-up", children: [
|
|
10374
|
+
smallPrefix && /* @__PURE__ */ jsx46("small", { className: "block text-base font-normal opacity-70 mb-1", children: smallPrefix }),
|
|
10375
|
+
/* @__PURE__ */ jsx46("b", { className: "block bg-gradient-to-r from-cupcode-hover to-cupcode-purple bg-clip-text text-transparent", children: strong })
|
|
10046
10376
|
] })
|
|
10047
10377
|
] });
|
|
10048
10378
|
};
|
|
10049
10379
|
|
|
10050
10380
|
// src/components/cupcode/InputField.tsx
|
|
10051
10381
|
import * as React23 from "react";
|
|
10052
|
-
import { jsx as
|
|
10382
|
+
import { jsx as jsx47, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
10053
10383
|
var InputField = React23.forwardRef(
|
|
10054
10384
|
({ className, type, label, error, leftIcon, rightIcon, ...props }, ref) => {
|
|
10055
|
-
return /* @__PURE__ */
|
|
10056
|
-
label && /* @__PURE__ */
|
|
10057
|
-
/* @__PURE__ */
|
|
10058
|
-
leftIcon && /* @__PURE__ */
|
|
10059
|
-
/* @__PURE__ */
|
|
10385
|
+
return /* @__PURE__ */ jsxs31("div", { className: "cc-stack space-2 w-full", children: [
|
|
10386
|
+
label && /* @__PURE__ */ jsx47("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
10387
|
+
/* @__PURE__ */ jsxs31("div", { className: "relative", children: [
|
|
10388
|
+
leftIcon && /* @__PURE__ */ jsx47("div", { className: "absolute left-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60", children: leftIcon }),
|
|
10389
|
+
/* @__PURE__ */ jsx47(
|
|
10060
10390
|
"input",
|
|
10061
10391
|
{
|
|
10062
10392
|
type,
|
|
@@ -10078,16 +10408,16 @@ var InputField = React23.forwardRef(
|
|
|
10078
10408
|
...props
|
|
10079
10409
|
}
|
|
10080
10410
|
),
|
|
10081
|
-
rightIcon && /* @__PURE__ */
|
|
10411
|
+
rightIcon && /* @__PURE__ */ jsx47("div", { className: "absolute right-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60", children: rightIcon })
|
|
10082
10412
|
] }),
|
|
10083
|
-
error && /* @__PURE__ */
|
|
10413
|
+
error && /* @__PURE__ */ jsx47("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
10084
10414
|
] });
|
|
10085
10415
|
}
|
|
10086
10416
|
);
|
|
10087
10417
|
InputField.displayName = "InputField";
|
|
10088
10418
|
|
|
10089
10419
|
// src/components/cupcode/LoadingSpinner.tsx
|
|
10090
|
-
import { jsx as
|
|
10420
|
+
import { jsx as jsx48 } from "react/jsx-runtime";
|
|
10091
10421
|
var sizes = {
|
|
10092
10422
|
sm: "h-4 w-4 border-2",
|
|
10093
10423
|
md: "h-8 w-8 border-3",
|
|
@@ -10097,7 +10427,7 @@ var LoadingSpinner = ({
|
|
|
10097
10427
|
size = "md",
|
|
10098
10428
|
className
|
|
10099
10429
|
}) => {
|
|
10100
|
-
return /* @__PURE__ */
|
|
10430
|
+
return /* @__PURE__ */ jsx48(
|
|
10101
10431
|
"div",
|
|
10102
10432
|
{
|
|
10103
10433
|
className: cn(
|
|
@@ -10107,12 +10437,12 @@ var LoadingSpinner = ({
|
|
|
10107
10437
|
),
|
|
10108
10438
|
role: "status",
|
|
10109
10439
|
"aria-label": "Loading",
|
|
10110
|
-
children: /* @__PURE__ */
|
|
10440
|
+
children: /* @__PURE__ */ jsx48("span", { className: "sr-only", children: "Loading..." })
|
|
10111
10441
|
}
|
|
10112
10442
|
);
|
|
10113
10443
|
};
|
|
10114
10444
|
var Skeleton2 = ({ className }) => {
|
|
10115
|
-
return /* @__PURE__ */
|
|
10445
|
+
return /* @__PURE__ */ jsx48(
|
|
10116
10446
|
"div",
|
|
10117
10447
|
{
|
|
10118
10448
|
className: cn(
|
|
@@ -10123,7 +10453,7 @@ var Skeleton2 = ({ className }) => {
|
|
|
10123
10453
|
);
|
|
10124
10454
|
};
|
|
10125
10455
|
var SkeletonText = ({ lines = 3 }) => {
|
|
10126
|
-
return /* @__PURE__ */
|
|
10456
|
+
return /* @__PURE__ */ jsx48("div", { className: "space-y-2", children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx48(
|
|
10127
10457
|
Skeleton2,
|
|
10128
10458
|
{
|
|
10129
10459
|
className: cn(
|
|
@@ -10136,7 +10466,7 @@ var SkeletonText = ({ lines = 3 }) => {
|
|
|
10136
10466
|
};
|
|
10137
10467
|
|
|
10138
10468
|
// src/components/cupcode/LoadingScreen.tsx
|
|
10139
|
-
import { jsx as
|
|
10469
|
+
import { jsx as jsx49, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
10140
10470
|
var LoadingScreen = ({
|
|
10141
10471
|
message = "Carregando...",
|
|
10142
10472
|
fullScreen = true,
|
|
@@ -10144,28 +10474,28 @@ var LoadingScreen = ({
|
|
|
10144
10474
|
}) => {
|
|
10145
10475
|
const containerClasses = fullScreen ? "fixed inset-0 z-50 flex items-center justify-center bg-transparent" : "flex items-center justify-center p-12";
|
|
10146
10476
|
if (variant === "minimal") {
|
|
10147
|
-
return /* @__PURE__ */
|
|
10477
|
+
return /* @__PURE__ */ jsx49("div", { className: containerClasses, children: /* @__PURE__ */ jsx49(LoadingSpinner, { size: "lg" }) });
|
|
10148
10478
|
}
|
|
10149
10479
|
if (variant === "galaxy") {
|
|
10150
|
-
return /* @__PURE__ */
|
|
10151
|
-
/* @__PURE__ */
|
|
10152
|
-
/* @__PURE__ */
|
|
10153
|
-
/* @__PURE__ */
|
|
10480
|
+
return /* @__PURE__ */ jsx49("div", { className: cn(containerClasses, "cc-gradient-galaxy"), children: /* @__PURE__ */ jsxs32("div", { className: "glass rounded-2xl p-8 flex flex-col items-center space-y-4 animate-scale-in", children: [
|
|
10481
|
+
/* @__PURE__ */ jsxs32("div", { className: "relative", children: [
|
|
10482
|
+
/* @__PURE__ */ jsx49(LoadingSpinner, { size: "lg" }),
|
|
10483
|
+
/* @__PURE__ */ jsx49("div", { className: "absolute inset-0 blur-2xl bg-cupcode-hover/30 animate-pulse-scale" })
|
|
10154
10484
|
] }),
|
|
10155
|
-
message && /* @__PURE__ */
|
|
10485
|
+
message && /* @__PURE__ */ jsx49("p", { className: "text-white font-semibold text-lg animate-pulse", children: message })
|
|
10156
10486
|
] }) });
|
|
10157
10487
|
}
|
|
10158
|
-
return /* @__PURE__ */
|
|
10159
|
-
/* @__PURE__ */
|
|
10160
|
-
/* @__PURE__ */
|
|
10161
|
-
/* @__PURE__ */
|
|
10488
|
+
return /* @__PURE__ */ jsx49("div", { className: containerClasses, children: /* @__PURE__ */ jsxs32("div", { className: "glass rounded-2xl p-8 flex flex-col items-center space-y-6 animate-scale-in max-w-sm", children: [
|
|
10489
|
+
/* @__PURE__ */ jsxs32("div", { className: "relative", children: [
|
|
10490
|
+
/* @__PURE__ */ jsx49("div", { className: "w-20 h-20 rounded-full cc-gradient-animated flex items-center justify-center", children: /* @__PURE__ */ jsx49("div", { className: "w-16 h-16 rounded-full bg-background flex items-center justify-center", children: /* @__PURE__ */ jsx49(LoadingSpinner, { size: "md" }) }) }),
|
|
10491
|
+
/* @__PURE__ */ jsx49("div", { className: "absolute inset-0 blur-xl bg-cupcode-purple/20 animate-pulse-scale -z-10" })
|
|
10162
10492
|
] }),
|
|
10163
|
-
message && /* @__PURE__ */
|
|
10164
|
-
/* @__PURE__ */
|
|
10165
|
-
/* @__PURE__ */
|
|
10166
|
-
/* @__PURE__ */
|
|
10167
|
-
/* @__PURE__ */
|
|
10168
|
-
/* @__PURE__ */
|
|
10493
|
+
message && /* @__PURE__ */ jsxs32("div", { className: "text-center space-y-2", children: [
|
|
10494
|
+
/* @__PURE__ */ jsx49("p", { className: "font-bold text-lg cc-text-gradient-galaxy", children: message }),
|
|
10495
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex gap-1 justify-center", children: [
|
|
10496
|
+
/* @__PURE__ */ jsx49("div", { className: "w-2 h-2 rounded-full bg-cupcode-hover animate-bounce", style: { animationDelay: "0ms" } }),
|
|
10497
|
+
/* @__PURE__ */ jsx49("div", { className: "w-2 h-2 rounded-full bg-cupcode-purple animate-bounce", style: { animationDelay: "150ms" } }),
|
|
10498
|
+
/* @__PURE__ */ jsx49("div", { className: "w-2 h-2 rounded-full bg-cupcode-hover animate-bounce", style: { animationDelay: "300ms" } })
|
|
10169
10499
|
] })
|
|
10170
10500
|
] })
|
|
10171
10501
|
] }) });
|
|
@@ -10175,12 +10505,12 @@ var LoadingScreen = ({
|
|
|
10175
10505
|
import * as React24 from "react";
|
|
10176
10506
|
import * as DialogPrimitive3 from "@radix-ui/react-dialog";
|
|
10177
10507
|
import { X as X5 } from "lucide-react";
|
|
10178
|
-
import { jsx as
|
|
10508
|
+
import { jsx as jsx50, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
10179
10509
|
var Modal = DialogPrimitive3.Root;
|
|
10180
10510
|
var ModalTrigger = DialogPrimitive3.Trigger;
|
|
10181
10511
|
var ModalPortal = DialogPrimitive3.Portal;
|
|
10182
10512
|
var ModalClose = DialogPrimitive3.Close;
|
|
10183
|
-
var ModalOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
10513
|
+
var ModalOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
10184
10514
|
DialogPrimitive3.Overlay,
|
|
10185
10515
|
{
|
|
10186
10516
|
ref,
|
|
@@ -10200,9 +10530,9 @@ var ModalContent = React24.forwardRef(({ className, children, size = "md", ...pr
|
|
|
10200
10530
|
lg: "max-w-lg",
|
|
10201
10531
|
xl: "max-w-xl"
|
|
10202
10532
|
};
|
|
10203
|
-
return /* @__PURE__ */
|
|
10204
|
-
/* @__PURE__ */
|
|
10205
|
-
/* @__PURE__ */
|
|
10533
|
+
return /* @__PURE__ */ jsxs33(ModalPortal, { children: [
|
|
10534
|
+
/* @__PURE__ */ jsx50(ModalOverlay, {}),
|
|
10535
|
+
/* @__PURE__ */ jsxs33(
|
|
10206
10536
|
DialogPrimitive3.Content,
|
|
10207
10537
|
{
|
|
10208
10538
|
ref,
|
|
@@ -10217,9 +10547,9 @@ var ModalContent = React24.forwardRef(({ className, children, size = "md", ...pr
|
|
|
10217
10547
|
...props,
|
|
10218
10548
|
children: [
|
|
10219
10549
|
children,
|
|
10220
|
-
/* @__PURE__ */
|
|
10221
|
-
/* @__PURE__ */
|
|
10222
|
-
/* @__PURE__ */
|
|
10550
|
+
/* @__PURE__ */ jsxs33(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: [
|
|
10551
|
+
/* @__PURE__ */ jsx50(X5, { className: "h-4 w-4" }),
|
|
10552
|
+
/* @__PURE__ */ jsx50("span", { className: "sr-only", children: "Close" })
|
|
10223
10553
|
] })
|
|
10224
10554
|
]
|
|
10225
10555
|
}
|
|
@@ -10230,7 +10560,7 @@ ModalContent.displayName = DialogPrimitive3.Content.displayName;
|
|
|
10230
10560
|
var ModalHeader = ({
|
|
10231
10561
|
className,
|
|
10232
10562
|
...props
|
|
10233
|
-
}) => /* @__PURE__ */
|
|
10563
|
+
}) => /* @__PURE__ */ jsx50(
|
|
10234
10564
|
"div",
|
|
10235
10565
|
{
|
|
10236
10566
|
className: cn("flex flex-col space-y-2 text-center sm:text-left mb-4", className),
|
|
@@ -10241,7 +10571,7 @@ ModalHeader.displayName = "ModalHeader";
|
|
|
10241
10571
|
var ModalFooter = ({
|
|
10242
10572
|
className,
|
|
10243
10573
|
...props
|
|
10244
|
-
}) => /* @__PURE__ */
|
|
10574
|
+
}) => /* @__PURE__ */ jsx50(
|
|
10245
10575
|
"div",
|
|
10246
10576
|
{
|
|
10247
10577
|
className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 mt-6", className),
|
|
@@ -10249,7 +10579,7 @@ var ModalFooter = ({
|
|
|
10249
10579
|
}
|
|
10250
10580
|
);
|
|
10251
10581
|
ModalFooter.displayName = "ModalFooter";
|
|
10252
|
-
var ModalTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
10582
|
+
var ModalTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
10253
10583
|
DialogPrimitive3.Title,
|
|
10254
10584
|
{
|
|
10255
10585
|
ref,
|
|
@@ -10258,7 +10588,7 @@ var ModalTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
10258
10588
|
}
|
|
10259
10589
|
));
|
|
10260
10590
|
ModalTitle.displayName = DialogPrimitive3.Title.displayName;
|
|
10261
|
-
var ModalDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
10591
|
+
var ModalDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx50(
|
|
10262
10592
|
DialogPrimitive3.Description,
|
|
10263
10593
|
{
|
|
10264
10594
|
ref,
|
|
@@ -10270,7 +10600,7 @@ ModalDescription.displayName = DialogPrimitive3.Description.displayName;
|
|
|
10270
10600
|
|
|
10271
10601
|
// src/components/cupcode/ParticleSystem.tsx
|
|
10272
10602
|
import { useEffect as useEffect19, useRef as useRef9 } from "react";
|
|
10273
|
-
import { jsx as
|
|
10603
|
+
import { jsx as jsx51 } from "react/jsx-runtime";
|
|
10274
10604
|
function ParticleSystem({
|
|
10275
10605
|
count: count2 = 50,
|
|
10276
10606
|
variant = "stars",
|
|
@@ -10428,7 +10758,7 @@ function ParticleSystem({
|
|
|
10428
10758
|
stop();
|
|
10429
10759
|
};
|
|
10430
10760
|
}, [count2, variant]);
|
|
10431
|
-
return /* @__PURE__ */
|
|
10761
|
+
return /* @__PURE__ */ jsx51(
|
|
10432
10762
|
"canvas",
|
|
10433
10763
|
{
|
|
10434
10764
|
ref: canvasRef,
|
|
@@ -10439,7 +10769,7 @@ function ParticleSystem({
|
|
|
10439
10769
|
|
|
10440
10770
|
// src/components/cupcode/PricingCard.tsx
|
|
10441
10771
|
import { Check as Check4 } from "lucide-react";
|
|
10442
|
-
import { jsx as
|
|
10772
|
+
import { jsx as jsx52, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
10443
10773
|
function PricingCard({
|
|
10444
10774
|
title,
|
|
10445
10775
|
price,
|
|
@@ -10451,7 +10781,7 @@ function PricingCard({
|
|
|
10451
10781
|
buttonText = "Escolher plano",
|
|
10452
10782
|
className
|
|
10453
10783
|
}) {
|
|
10454
|
-
return /* @__PURE__ */
|
|
10784
|
+
return /* @__PURE__ */ jsxs34(
|
|
10455
10785
|
CardGlass,
|
|
10456
10786
|
{
|
|
10457
10787
|
className: cn(
|
|
@@ -10461,17 +10791,17 @@ function PricingCard({
|
|
|
10461
10791
|
className
|
|
10462
10792
|
),
|
|
10463
10793
|
children: [
|
|
10464
|
-
highlighted && /* @__PURE__ */
|
|
10465
|
-
/* @__PURE__ */
|
|
10466
|
-
/* @__PURE__ */
|
|
10467
|
-
description && /* @__PURE__ */
|
|
10794
|
+
highlighted && /* @__PURE__ */ jsx52("div", { className: "absolute -top-4 left-1/2 -translate-x-1/2", children: /* @__PURE__ */ jsx52("span", { className: "bg-cupcode-purple text-white text-xs font-bold px-4 py-1 rounded-pill", children: "POPULAR" }) }),
|
|
10795
|
+
/* @__PURE__ */ jsxs34("div", { className: "text-center mb-6", children: [
|
|
10796
|
+
/* @__PURE__ */ jsx52("h3", { className: "text-2xl font-display font-bold text-foreground mb-2", children: title }),
|
|
10797
|
+
description && /* @__PURE__ */ jsx52("p", { className: "text-sm text-muted-foreground", children: description })
|
|
10468
10798
|
] }),
|
|
10469
|
-
/* @__PURE__ */
|
|
10470
|
-
/* @__PURE__ */
|
|
10471
|
-
/* @__PURE__ */
|
|
10799
|
+
/* @__PURE__ */ jsx52("div", { className: "text-center mb-8", children: /* @__PURE__ */ jsxs34("div", { className: "flex items-baseline justify-center gap-2", children: [
|
|
10800
|
+
/* @__PURE__ */ jsx52("span", { className: "text-5xl font-display font-bold cc-text-gradient-galaxy", children: price }),
|
|
10801
|
+
/* @__PURE__ */ jsx52("span", { className: "text-muted-foreground", children: period })
|
|
10472
10802
|
] }) }),
|
|
10473
|
-
/* @__PURE__ */
|
|
10474
|
-
/* @__PURE__ */
|
|
10803
|
+
/* @__PURE__ */ jsx52("ul", { className: "space-3 mb-8", children: features.map((feature, index) => /* @__PURE__ */ jsxs34("li", { className: "flex items-start gap-3", children: [
|
|
10804
|
+
/* @__PURE__ */ jsx52(
|
|
10475
10805
|
Check4,
|
|
10476
10806
|
{
|
|
10477
10807
|
className: cn(
|
|
@@ -10480,7 +10810,7 @@ function PricingCard({
|
|
|
10480
10810
|
)
|
|
10481
10811
|
}
|
|
10482
10812
|
),
|
|
10483
|
-
/* @__PURE__ */
|
|
10813
|
+
/* @__PURE__ */ jsx52(
|
|
10484
10814
|
"span",
|
|
10485
10815
|
{
|
|
10486
10816
|
className: cn(
|
|
@@ -10491,7 +10821,7 @@ function PricingCard({
|
|
|
10491
10821
|
}
|
|
10492
10822
|
)
|
|
10493
10823
|
] }, index)) }),
|
|
10494
|
-
/* @__PURE__ */
|
|
10824
|
+
/* @__PURE__ */ jsx52(
|
|
10495
10825
|
JellyButton,
|
|
10496
10826
|
{
|
|
10497
10827
|
onClick: onSelect,
|
|
@@ -10508,7 +10838,7 @@ function PricingCard({
|
|
|
10508
10838
|
// src/components/cupcode/ProgressCupcode.tsx
|
|
10509
10839
|
import * as React25 from "react";
|
|
10510
10840
|
import * as ProgressPrimitive2 from "@radix-ui/react-progress";
|
|
10511
|
-
import { jsx as
|
|
10841
|
+
import { jsx as jsx53, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
10512
10842
|
var ProgressCupcode = React25.forwardRef(({ className, value, variant = "default", showLabel = false, size = "md", ...props }, ref) => {
|
|
10513
10843
|
const sizeClasses2 = {
|
|
10514
10844
|
sm: "h-2",
|
|
@@ -10522,15 +10852,15 @@ var ProgressCupcode = React25.forwardRef(({ className, value, variant = "default
|
|
|
10522
10852
|
warning: "bg-warning",
|
|
10523
10853
|
error: "bg-destructive"
|
|
10524
10854
|
};
|
|
10525
|
-
return /* @__PURE__ */
|
|
10526
|
-
showLabel && /* @__PURE__ */
|
|
10527
|
-
/* @__PURE__ */
|
|
10528
|
-
/* @__PURE__ */
|
|
10855
|
+
return /* @__PURE__ */ jsxs35("div", { className: "w-full space-y-2", children: [
|
|
10856
|
+
showLabel && /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between text-sm", children: [
|
|
10857
|
+
/* @__PURE__ */ jsx53("span", { className: "font-semibold text-foreground", children: "Progresso" }),
|
|
10858
|
+
/* @__PURE__ */ jsxs35("span", { className: "text-muted-foreground", children: [
|
|
10529
10859
|
value,
|
|
10530
10860
|
"%"
|
|
10531
10861
|
] })
|
|
10532
10862
|
] }),
|
|
10533
|
-
/* @__PURE__ */
|
|
10863
|
+
/* @__PURE__ */ jsx53(
|
|
10534
10864
|
ProgressPrimitive2.Root,
|
|
10535
10865
|
{
|
|
10536
10866
|
ref,
|
|
@@ -10540,7 +10870,7 @@ var ProgressCupcode = React25.forwardRef(({ className, value, variant = "default
|
|
|
10540
10870
|
className
|
|
10541
10871
|
),
|
|
10542
10872
|
...props,
|
|
10543
|
-
children: /* @__PURE__ */
|
|
10873
|
+
children: /* @__PURE__ */ jsx53(
|
|
10544
10874
|
ProgressPrimitive2.Indicator,
|
|
10545
10875
|
{
|
|
10546
10876
|
className: cn(
|
|
@@ -10558,7 +10888,7 @@ ProgressCupcode.displayName = "ProgressCupcode";
|
|
|
10558
10888
|
|
|
10559
10889
|
// src/components/cupcode/ScrollbarTheme.tsx
|
|
10560
10890
|
import * as React26 from "react";
|
|
10561
|
-
import { jsx as
|
|
10891
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
10562
10892
|
var SCROLLBAR_COLOR_ATTR = "data-cc-scrollbar-color";
|
|
10563
10893
|
var SCROLLBAR_THEME_ATTR = "data-cc-scrollbar-theme";
|
|
10564
10894
|
var ScrollbarThemeProvider = ({
|
|
@@ -10597,7 +10927,7 @@ var ScrollbarThemeProvider = ({
|
|
|
10597
10927
|
return null;
|
|
10598
10928
|
};
|
|
10599
10929
|
var ScrollbarArea = React26.forwardRef(
|
|
10600
|
-
({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */
|
|
10930
|
+
({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */ jsx54(
|
|
10601
10931
|
"div",
|
|
10602
10932
|
{
|
|
10603
10933
|
ref,
|
|
@@ -10618,11 +10948,11 @@ ScrollbarArea.displayName = "ScrollbarArea";
|
|
|
10618
10948
|
import * as React27 from "react";
|
|
10619
10949
|
import * as SelectPrimitive2 from "@radix-ui/react-select";
|
|
10620
10950
|
import { Check as Check5, ChevronDown as ChevronDown5 } from "lucide-react";
|
|
10621
|
-
import { jsx as
|
|
10951
|
+
import { jsx as jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
10622
10952
|
var Select2 = SelectPrimitive2.Root;
|
|
10623
10953
|
var SelectGroup2 = SelectPrimitive2.Group;
|
|
10624
10954
|
var SelectValue2 = SelectPrimitive2.Value;
|
|
10625
|
-
var SelectTrigger2 = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
10955
|
+
var SelectTrigger2 = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs36(
|
|
10626
10956
|
SelectPrimitive2.Trigger,
|
|
10627
10957
|
{
|
|
10628
10958
|
ref,
|
|
@@ -10640,12 +10970,12 @@ var SelectTrigger2 = React27.forwardRef(({ className, children, ...props }, ref)
|
|
|
10640
10970
|
...props,
|
|
10641
10971
|
children: [
|
|
10642
10972
|
children,
|
|
10643
|
-
/* @__PURE__ */
|
|
10973
|
+
/* @__PURE__ */ jsx55(SelectPrimitive2.Icon, { asChild: true, children: /* @__PURE__ */ jsx55(ChevronDown5, { className: "h-4 w-4 opacity-50" }) })
|
|
10644
10974
|
]
|
|
10645
10975
|
}
|
|
10646
10976
|
));
|
|
10647
10977
|
SelectTrigger2.displayName = SelectPrimitive2.Trigger.displayName;
|
|
10648
|
-
var SelectContent2 = React27.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */
|
|
10978
|
+
var SelectContent2 = React27.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx55(SelectPrimitive2.Portal, { children: /* @__PURE__ */ jsx55(
|
|
10649
10979
|
SelectPrimitive2.Content,
|
|
10650
10980
|
{
|
|
10651
10981
|
ref,
|
|
@@ -10662,7 +10992,7 @@ var SelectContent2 = React27.forwardRef(({ className, children, position = "popp
|
|
|
10662
10992
|
),
|
|
10663
10993
|
position,
|
|
10664
10994
|
...props,
|
|
10665
|
-
children: /* @__PURE__ */
|
|
10995
|
+
children: /* @__PURE__ */ jsx55(
|
|
10666
10996
|
SelectPrimitive2.Viewport,
|
|
10667
10997
|
{
|
|
10668
10998
|
className: cn(
|
|
@@ -10675,7 +11005,7 @@ var SelectContent2 = React27.forwardRef(({ className, children, position = "popp
|
|
|
10675
11005
|
}
|
|
10676
11006
|
) }));
|
|
10677
11007
|
SelectContent2.displayName = SelectPrimitive2.Content.displayName;
|
|
10678
|
-
var SelectItem2 = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
11008
|
+
var SelectItem2 = React27.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs36(
|
|
10679
11009
|
SelectPrimitive2.Item,
|
|
10680
11010
|
{
|
|
10681
11011
|
ref,
|
|
@@ -10688,8 +11018,8 @@ var SelectItem2 = React27.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
10688
11018
|
),
|
|
10689
11019
|
...props,
|
|
10690
11020
|
children: [
|
|
10691
|
-
/* @__PURE__ */
|
|
10692
|
-
/* @__PURE__ */
|
|
11021
|
+
/* @__PURE__ */ jsx55("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx55(SelectPrimitive2.ItemIndicator, { children: /* @__PURE__ */ jsx55(Check5, { className: "h-4 w-4 text-cupcode-purple" }) }) }),
|
|
11022
|
+
/* @__PURE__ */ jsx55(SelectPrimitive2.ItemText, { children })
|
|
10693
11023
|
]
|
|
10694
11024
|
}
|
|
10695
11025
|
));
|
|
@@ -10703,21 +11033,21 @@ var SelectField = ({
|
|
|
10703
11033
|
options,
|
|
10704
11034
|
disabled
|
|
10705
11035
|
}) => {
|
|
10706
|
-
return /* @__PURE__ */
|
|
10707
|
-
label && /* @__PURE__ */
|
|
10708
|
-
/* @__PURE__ */
|
|
10709
|
-
/* @__PURE__ */
|
|
10710
|
-
/* @__PURE__ */
|
|
11036
|
+
return /* @__PURE__ */ jsxs36("div", { className: "cc-stack space-2 w-full", children: [
|
|
11037
|
+
label && /* @__PURE__ */ jsx55("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
11038
|
+
/* @__PURE__ */ jsxs36(Select2, { value, onValueChange, disabled, children: [
|
|
11039
|
+
/* @__PURE__ */ jsx55(SelectTrigger2, { children: /* @__PURE__ */ jsx55(SelectValue2, { placeholder }) }),
|
|
11040
|
+
/* @__PURE__ */ jsx55(SelectContent2, { children: /* @__PURE__ */ jsx55(SelectGroup2, { children: options.map((option) => /* @__PURE__ */ jsx55(SelectItem2, { value: option.value, children: option.label }, option.value)) }) })
|
|
10711
11041
|
] }),
|
|
10712
|
-
error && /* @__PURE__ */
|
|
11042
|
+
error && /* @__PURE__ */ jsx55("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
10713
11043
|
] });
|
|
10714
11044
|
};
|
|
10715
11045
|
|
|
10716
11046
|
// src/components/cupcode/SwitchField.tsx
|
|
10717
11047
|
import * as React28 from "react";
|
|
10718
11048
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
10719
|
-
import { jsx as
|
|
10720
|
-
var Switch = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11049
|
+
import { jsx as jsx56, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
11050
|
+
var Switch = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx56(
|
|
10721
11051
|
SwitchPrimitives.Root,
|
|
10722
11052
|
{
|
|
10723
11053
|
className: cn(
|
|
@@ -10732,7 +11062,7 @@ var Switch = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
10732
11062
|
),
|
|
10733
11063
|
...props,
|
|
10734
11064
|
ref,
|
|
10735
|
-
children: /* @__PURE__ */
|
|
11065
|
+
children: /* @__PURE__ */ jsx56(
|
|
10736
11066
|
SwitchPrimitives.Thumb,
|
|
10737
11067
|
{
|
|
10738
11068
|
className: cn(
|
|
@@ -10748,21 +11078,21 @@ var Switch = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
10748
11078
|
));
|
|
10749
11079
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
10750
11080
|
var SwitchField = ({ label, description, ...props }) => {
|
|
10751
|
-
return /* @__PURE__ */
|
|
10752
|
-
/* @__PURE__ */
|
|
10753
|
-
label && /* @__PURE__ */
|
|
10754
|
-
description && /* @__PURE__ */
|
|
11081
|
+
return /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between space-x-4", children: [
|
|
11082
|
+
/* @__PURE__ */ jsxs37("div", { className: "cc-stack space-1 flex-1", children: [
|
|
11083
|
+
label && /* @__PURE__ */ jsx56("label", { className: "text-sm font-semibold text-cupcode-ink cursor-pointer", children: label }),
|
|
11084
|
+
description && /* @__PURE__ */ jsx56("p", { className: "text-xs text-muted-foreground", children: description })
|
|
10755
11085
|
] }),
|
|
10756
|
-
/* @__PURE__ */
|
|
11086
|
+
/* @__PURE__ */ jsx56(Switch, { ...props })
|
|
10757
11087
|
] });
|
|
10758
11088
|
};
|
|
10759
11089
|
|
|
10760
11090
|
// src/components/cupcode/TabsCupcode.tsx
|
|
10761
11091
|
import * as React29 from "react";
|
|
10762
11092
|
import * as TabsPrimitive2 from "@radix-ui/react-tabs";
|
|
10763
|
-
import { jsx as
|
|
11093
|
+
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
10764
11094
|
var Tabs2 = TabsPrimitive2.Root;
|
|
10765
|
-
var TabsList2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11095
|
+
var TabsList2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx57(
|
|
10766
11096
|
TabsPrimitive2.List,
|
|
10767
11097
|
{
|
|
10768
11098
|
ref,
|
|
@@ -10775,7 +11105,7 @@ var TabsList2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
10775
11105
|
}
|
|
10776
11106
|
));
|
|
10777
11107
|
TabsList2.displayName = TabsPrimitive2.List.displayName;
|
|
10778
|
-
var TabsTrigger2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11108
|
+
var TabsTrigger2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx57(
|
|
10779
11109
|
TabsPrimitive2.Trigger,
|
|
10780
11110
|
{
|
|
10781
11111
|
ref,
|
|
@@ -10797,7 +11127,7 @@ var TabsTrigger2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
10797
11127
|
}
|
|
10798
11128
|
));
|
|
10799
11129
|
TabsTrigger2.displayName = TabsPrimitive2.Trigger.displayName;
|
|
10800
|
-
var TabsContent2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11130
|
+
var TabsContent2 = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx57(
|
|
10801
11131
|
TabsPrimitive2.Content,
|
|
10802
11132
|
{
|
|
10803
11133
|
ref,
|
|
@@ -10814,12 +11144,12 @@ TabsContent2.displayName = TabsPrimitive2.Content.displayName;
|
|
|
10814
11144
|
|
|
10815
11145
|
// src/components/cupcode/TextareaField.tsx
|
|
10816
11146
|
import * as React30 from "react";
|
|
10817
|
-
import { jsx as
|
|
11147
|
+
import { jsx as jsx58, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
10818
11148
|
var TextareaField = React30.forwardRef(
|
|
10819
11149
|
({ className, label, error, ...props }, ref) => {
|
|
10820
|
-
return /* @__PURE__ */
|
|
10821
|
-
label && /* @__PURE__ */
|
|
10822
|
-
/* @__PURE__ */
|
|
11150
|
+
return /* @__PURE__ */ jsxs38("div", { className: "cc-stack space-2 w-full", children: [
|
|
11151
|
+
label && /* @__PURE__ */ jsx58("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
11152
|
+
/* @__PURE__ */ jsx58(
|
|
10823
11153
|
"textarea",
|
|
10824
11154
|
{
|
|
10825
11155
|
className: cn(
|
|
@@ -10839,7 +11169,7 @@ var TextareaField = React30.forwardRef(
|
|
|
10839
11169
|
...props
|
|
10840
11170
|
}
|
|
10841
11171
|
),
|
|
10842
|
-
error && /* @__PURE__ */
|
|
11172
|
+
error && /* @__PURE__ */ jsx58("p", { className: "text-xs font-medium text-destructive animate-fade-in", children: error })
|
|
10843
11173
|
] });
|
|
10844
11174
|
}
|
|
10845
11175
|
);
|
|
@@ -10848,7 +11178,7 @@ TextareaField.displayName = "TextareaField";
|
|
|
10848
11178
|
// src/components/cupcode/ThemeToggle.tsx
|
|
10849
11179
|
import * as React31 from "react";
|
|
10850
11180
|
import { Moon, Sun } from "lucide-react";
|
|
10851
|
-
import { jsx as
|
|
11181
|
+
import { jsx as jsx59, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
10852
11182
|
var THEME_STORAGE_KEY2 = "cupcode-theme";
|
|
10853
11183
|
function isThemeMode(value) {
|
|
10854
11184
|
return value === "light" || value === "dark";
|
|
@@ -10934,7 +11264,7 @@ var ThemeToggle2 = ({
|
|
|
10934
11264
|
return () => observer.disconnect();
|
|
10935
11265
|
}, [defaultTheme, isControlled, usesProviderTheme]);
|
|
10936
11266
|
if (!mounted) {
|
|
10937
|
-
return /* @__PURE__ */
|
|
11267
|
+
return /* @__PURE__ */ jsx59("div", { className: cn("w-10 h-10 rounded-lg bg-muted", className) });
|
|
10938
11268
|
}
|
|
10939
11269
|
const handleToggle = (event) => {
|
|
10940
11270
|
var _a26;
|
|
@@ -10954,7 +11284,7 @@ var ThemeToggle2 = ({
|
|
|
10954
11284
|
}
|
|
10955
11285
|
onThemeChange == null ? void 0 : onThemeChange(nextTheme);
|
|
10956
11286
|
};
|
|
10957
|
-
return /* @__PURE__ */
|
|
11287
|
+
return /* @__PURE__ */ jsxs39(
|
|
10958
11288
|
"button",
|
|
10959
11289
|
{
|
|
10960
11290
|
type: "button",
|
|
@@ -10968,9 +11298,9 @@ var ThemeToggle2 = ({
|
|
|
10968
11298
|
),
|
|
10969
11299
|
"aria-label": "Toggle theme",
|
|
10970
11300
|
children: [
|
|
10971
|
-
/* @__PURE__ */
|
|
10972
|
-
/* @__PURE__ */
|
|
10973
|
-
/* @__PURE__ */
|
|
11301
|
+
/* @__PURE__ */ jsx59(Sun, { className: "h-5 w-5 text-cupcode-purple rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0" }),
|
|
11302
|
+
/* @__PURE__ */ jsx59(Moon, { className: "absolute h-5 w-5 text-cupcode-hover rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100" }),
|
|
11303
|
+
/* @__PURE__ */ jsxs39("span", { className: "sr-only", children: [
|
|
10974
11304
|
"Current theme: ",
|
|
10975
11305
|
activeTheme
|
|
10976
11306
|
] })
|
|
@@ -10980,9 +11310,9 @@ var ThemeToggle2 = ({
|
|
|
10980
11310
|
};
|
|
10981
11311
|
|
|
10982
11312
|
// src/components/theme-provider.tsx
|
|
10983
|
-
import { useCallback as useCallback8, useEffect as useEffect22, useMemo as
|
|
11313
|
+
import { useCallback as useCallback8, useEffect as useEffect22, useMemo as useMemo14, useState as useState19 } from "react";
|
|
10984
11314
|
import { flushSync } from "react-dom";
|
|
10985
|
-
import { jsx as
|
|
11315
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
10986
11316
|
var STORAGE_KEY = "cupcode-theme";
|
|
10987
11317
|
var LEGACY_STORAGE_KEY = "theme";
|
|
10988
11318
|
function getPreferredTheme() {
|
|
@@ -11128,7 +11458,7 @@ function ThemeProvider({ children }) {
|
|
|
11128
11458
|
const nextTheme = currentTheme === "light" ? "dark" : "light";
|
|
11129
11459
|
applyThemeSelection(nextTheme, coords);
|
|
11130
11460
|
}, [applyThemeSelection, theme]);
|
|
11131
|
-
const value =
|
|
11461
|
+
const value = useMemo14(
|
|
11132
11462
|
() => ({
|
|
11133
11463
|
theme,
|
|
11134
11464
|
setTheme,
|
|
@@ -11136,7 +11466,7 @@ function ThemeProvider({ children }) {
|
|
|
11136
11466
|
}),
|
|
11137
11467
|
[theme, setTheme, toggleTheme]
|
|
11138
11468
|
);
|
|
11139
|
-
return /* @__PURE__ */
|
|
11469
|
+
return /* @__PURE__ */ jsx60(ThemeContext.Provider, { value, children });
|
|
11140
11470
|
}
|
|
11141
11471
|
function ThemeScript() {
|
|
11142
11472
|
const script = `
|
|
@@ -11157,15 +11487,15 @@ function ThemeScript() {
|
|
|
11157
11487
|
root.style.colorScheme = theme;
|
|
11158
11488
|
})();
|
|
11159
11489
|
`;
|
|
11160
|
-
return /* @__PURE__ */
|
|
11490
|
+
return /* @__PURE__ */ jsx60("script", { dangerouslySetInnerHTML: { __html: script } });
|
|
11161
11491
|
}
|
|
11162
11492
|
|
|
11163
11493
|
// src/components/cupcode/TimelineCupcode.tsx
|
|
11164
|
-
import { jsx as
|
|
11494
|
+
import { jsx as jsx61, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
11165
11495
|
function Timeline({ items, variant = "vertical", className }) {
|
|
11166
11496
|
if (variant === "horizontal") {
|
|
11167
|
-
return /* @__PURE__ */
|
|
11168
|
-
/* @__PURE__ */
|
|
11497
|
+
return /* @__PURE__ */ jsx61("div", { className: cn("flex items-start gap-4 overflow-x-auto pb-4", className), children: items.map((item, index) => /* @__PURE__ */ jsxs40("div", { className: "flex flex-col items-center min-w-[200px]", children: [
|
|
11498
|
+
/* @__PURE__ */ jsx61(
|
|
11169
11499
|
"div",
|
|
11170
11500
|
{
|
|
11171
11501
|
className: cn(
|
|
@@ -11173,27 +11503,27 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
11173
11503
|
"transition-all duration-300",
|
|
11174
11504
|
item.active ? "cc-gradient-galaxy text-white elevation-3 scale-110" : "bg-muted text-muted-foreground"
|
|
11175
11505
|
),
|
|
11176
|
-
children: item.icon || /* @__PURE__ */
|
|
11506
|
+
children: item.icon || /* @__PURE__ */ jsx61("span", { className: "text-sm font-bold", children: index + 1 })
|
|
11177
11507
|
}
|
|
11178
11508
|
),
|
|
11179
|
-
index < items.length - 1 && /* @__PURE__ */
|
|
11509
|
+
index < items.length - 1 && /* @__PURE__ */ jsx61("div", { className: cn(
|
|
11180
11510
|
"h-1 w-full mb-3",
|
|
11181
11511
|
item.active ? "bg-cupcode-purple" : "bg-muted"
|
|
11182
11512
|
) }),
|
|
11183
|
-
/* @__PURE__ */
|
|
11184
|
-
/* @__PURE__ */
|
|
11513
|
+
/* @__PURE__ */ jsxs40("div", { className: "text-center", children: [
|
|
11514
|
+
/* @__PURE__ */ jsx61("h4", { className: cn(
|
|
11185
11515
|
"font-display font-semibold mb-1",
|
|
11186
11516
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
11187
11517
|
), children: item.title }),
|
|
11188
|
-
item.description && /* @__PURE__ */
|
|
11189
|
-
item.date && /* @__PURE__ */
|
|
11518
|
+
item.description && /* @__PURE__ */ jsx61("p", { className: "text-sm text-muted-foreground", children: item.description }),
|
|
11519
|
+
item.date && /* @__PURE__ */ jsx61("p", { className: "text-xs text-muted-foreground mt-1", children: item.date })
|
|
11190
11520
|
] })
|
|
11191
11521
|
] }, item.id)) });
|
|
11192
11522
|
}
|
|
11193
|
-
return /* @__PURE__ */
|
|
11194
|
-
/* @__PURE__ */
|
|
11195
|
-
items.map((item, index) => /* @__PURE__ */
|
|
11196
|
-
/* @__PURE__ */
|
|
11523
|
+
return /* @__PURE__ */ jsxs40("div", { className: cn("relative space-6", className), children: [
|
|
11524
|
+
/* @__PURE__ */ jsx61("div", { className: "absolute left-6 top-0 bottom-0 w-0.5 bg-muted" }),
|
|
11525
|
+
items.map((item, index) => /* @__PURE__ */ jsxs40("div", { className: "relative flex gap-6 pb-8 last:pb-0", children: [
|
|
11526
|
+
/* @__PURE__ */ jsx61(
|
|
11197
11527
|
"div",
|
|
11198
11528
|
{
|
|
11199
11529
|
className: cn(
|
|
@@ -11201,16 +11531,16 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
11201
11531
|
"transition-all duration-300",
|
|
11202
11532
|
item.active ? "cc-gradient-galaxy text-white elevation-3" : "bg-muted text-muted-foreground"
|
|
11203
11533
|
),
|
|
11204
|
-
children: item.icon || /* @__PURE__ */
|
|
11534
|
+
children: item.icon || /* @__PURE__ */ jsx61("span", { className: "text-sm font-bold", children: index + 1 })
|
|
11205
11535
|
}
|
|
11206
11536
|
),
|
|
11207
|
-
/* @__PURE__ */
|
|
11208
|
-
/* @__PURE__ */
|
|
11537
|
+
/* @__PURE__ */ jsxs40("div", { className: "flex-1 pt-1", children: [
|
|
11538
|
+
/* @__PURE__ */ jsx61("h4", { className: cn(
|
|
11209
11539
|
"font-display font-semibold mb-1",
|
|
11210
11540
|
item.active ? "text-cupcode-purple" : "text-foreground"
|
|
11211
11541
|
), children: item.title }),
|
|
11212
|
-
item.description && /* @__PURE__ */
|
|
11213
|
-
item.date && /* @__PURE__ */
|
|
11542
|
+
item.description && /* @__PURE__ */ jsx61("p", { className: "text-sm text-muted-foreground mb-2", children: item.description }),
|
|
11543
|
+
item.date && /* @__PURE__ */ jsx61("p", { className: "text-xs text-muted-foreground", children: item.date })
|
|
11214
11544
|
] })
|
|
11215
11545
|
] }, item.id))
|
|
11216
11546
|
] });
|
|
@@ -11218,7 +11548,7 @@ function Timeline({ items, variant = "vertical", className }) {
|
|
|
11218
11548
|
|
|
11219
11549
|
// src/components/cupcode/ToastCupcode.tsx
|
|
11220
11550
|
import { X as X6, CheckCircle, AlertCircle, Info as Info2, AlertTriangle as AlertTriangle2 } from "lucide-react";
|
|
11221
|
-
import { jsx as
|
|
11551
|
+
import { jsx as jsx62, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
11222
11552
|
var variantStyles2 = {
|
|
11223
11553
|
success: {
|
|
11224
11554
|
gradient: "from-success/20 to-success/5",
|
|
@@ -11253,7 +11583,7 @@ var ToastCupcode = ({
|
|
|
11253
11583
|
}) => {
|
|
11254
11584
|
const style = variantStyles2[variant];
|
|
11255
11585
|
const Icon3 = style.icon;
|
|
11256
|
-
return /* @__PURE__ */
|
|
11586
|
+
return /* @__PURE__ */ jsx62(
|
|
11257
11587
|
"div",
|
|
11258
11588
|
{
|
|
11259
11589
|
className: cn(
|
|
@@ -11265,18 +11595,18 @@ var ToastCupcode = ({
|
|
|
11265
11595
|
"min-w-[300px] max-w-[420px]",
|
|
11266
11596
|
"animate-slide-up"
|
|
11267
11597
|
),
|
|
11268
|
-
children: /* @__PURE__ */
|
|
11269
|
-
/* @__PURE__ */
|
|
11270
|
-
/* @__PURE__ */
|
|
11271
|
-
/* @__PURE__ */
|
|
11272
|
-
description && /* @__PURE__ */
|
|
11598
|
+
children: /* @__PURE__ */ jsxs41("div", { className: "flex items-start gap-3", children: [
|
|
11599
|
+
/* @__PURE__ */ jsx62(Icon3, { className: cn("h-5 w-5 shrink-0 mt-0.5", style.iconColor) }),
|
|
11600
|
+
/* @__PURE__ */ jsxs41("div", { className: "flex-1 space-y-1", children: [
|
|
11601
|
+
/* @__PURE__ */ jsx62("p", { className: "text-sm font-semibold text-foreground", children: title }),
|
|
11602
|
+
description && /* @__PURE__ */ jsx62("p", { className: "text-xs text-foreground/80", children: description })
|
|
11273
11603
|
] }),
|
|
11274
|
-
onClose && /* @__PURE__ */
|
|
11604
|
+
onClose && /* @__PURE__ */ jsx62(
|
|
11275
11605
|
"button",
|
|
11276
11606
|
{
|
|
11277
11607
|
onClick: onClose,
|
|
11278
11608
|
className: "shrink-0 rounded-md p-1 transition-colors hover:bg-foreground/10",
|
|
11279
|
-
children: /* @__PURE__ */
|
|
11609
|
+
children: /* @__PURE__ */ jsx62(X6, { className: "h-4 w-4 text-foreground/60" })
|
|
11280
11610
|
}
|
|
11281
11611
|
)
|
|
11282
11612
|
] })
|
|
@@ -11286,11 +11616,11 @@ var ToastCupcode = ({
|
|
|
11286
11616
|
|
|
11287
11617
|
// src/components/cupcode/VideoWatchButton.tsx
|
|
11288
11618
|
import React32 from "react";
|
|
11289
|
-
import { jsx as
|
|
11290
|
-
var PlayGlyph = () => /* @__PURE__ */
|
|
11619
|
+
import { jsx as jsx63, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
11620
|
+
var PlayGlyph = () => /* @__PURE__ */ jsx63("svg", { viewBox: "0 0 18 18", "aria-hidden": "true", className: "h-[18px] w-[18px]", children: /* @__PURE__ */ jsx63("path", { d: "M6 4.5L13.5 9L6 13.5V4.5Z", fill: "currentColor" }) });
|
|
11291
11621
|
var VideoWatchButton = React32.forwardRef(
|
|
11292
11622
|
({ className, label = "Assistir", type = "button", "aria-label": ariaLabel, ...props }, ref) => {
|
|
11293
|
-
return /* @__PURE__ */
|
|
11623
|
+
return /* @__PURE__ */ jsxs42(
|
|
11294
11624
|
"button",
|
|
11295
11625
|
{
|
|
11296
11626
|
ref,
|
|
@@ -11299,18 +11629,18 @@ var VideoWatchButton = React32.forwardRef(
|
|
|
11299
11629
|
className: cn("cc-video-watch-btn", className),
|
|
11300
11630
|
...props,
|
|
11301
11631
|
children: [
|
|
11302
|
-
/* @__PURE__ */
|
|
11303
|
-
/* @__PURE__ */
|
|
11304
|
-
/* @__PURE__ */
|
|
11305
|
-
/* @__PURE__ */
|
|
11306
|
-
/* @__PURE__ */
|
|
11307
|
-
/* @__PURE__ */
|
|
11308
|
-
/* @__PURE__ */
|
|
11309
|
-
/* @__PURE__ */
|
|
11310
|
-
/* @__PURE__ */
|
|
11632
|
+
/* @__PURE__ */ jsxs42("span", { className: "cc-video-watch-btn__bg", children: [
|
|
11633
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__icon", children: /* @__PURE__ */ jsx63(PlayGlyph, {}) }),
|
|
11634
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__label", children: label }),
|
|
11635
|
+
/* @__PURE__ */ jsxs42("span", { className: "cc-video-watch-btn__mask", "aria-hidden": "true", children: [
|
|
11636
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--1" }),
|
|
11637
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--2" }),
|
|
11638
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--3" }),
|
|
11639
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--4" }),
|
|
11640
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__blob cc-video-watch-btn__blob--5" })
|
|
11311
11641
|
] })
|
|
11312
11642
|
] }),
|
|
11313
|
-
/* @__PURE__ */
|
|
11643
|
+
/* @__PURE__ */ jsx63("span", { className: "cc-video-watch-btn__glow", "aria-hidden": "true" })
|
|
11314
11644
|
]
|
|
11315
11645
|
}
|
|
11316
11646
|
);
|
|
@@ -11321,11 +11651,11 @@ VideoWatchButton.displayName = "VideoWatchButton";
|
|
|
11321
11651
|
// src/components/cupcode/TooltipCupcode.tsx
|
|
11322
11652
|
import * as React33 from "react";
|
|
11323
11653
|
import * as TooltipPrimitive2 from "@radix-ui/react-tooltip";
|
|
11324
|
-
import { jsx as
|
|
11654
|
+
import { jsx as jsx64 } from "react/jsx-runtime";
|
|
11325
11655
|
var TooltipProvider2 = TooltipPrimitive2.Provider;
|
|
11326
11656
|
var TooltipCupcode = TooltipPrimitive2.Root;
|
|
11327
11657
|
var TooltipTrigger2 = TooltipPrimitive2.Trigger;
|
|
11328
|
-
var TooltipContent2 = React33.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
11658
|
+
var TooltipContent2 = React33.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx64(
|
|
11329
11659
|
TooltipPrimitive2.Content,
|
|
11330
11660
|
{
|
|
11331
11661
|
ref,
|
|
@@ -11349,11 +11679,11 @@ TooltipContent2.displayName = TooltipPrimitive2.Content.displayName;
|
|
|
11349
11679
|
import * as React34 from "react";
|
|
11350
11680
|
import * as AccordionPrimitive2 from "@radix-ui/react-accordion";
|
|
11351
11681
|
import { ChevronDown as ChevronDown6 } from "lucide-react";
|
|
11352
|
-
import { jsx as
|
|
11682
|
+
import { jsx as jsx65, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
11353
11683
|
var Accordion = AccordionPrimitive2.Root;
|
|
11354
|
-
var AccordionItem2 = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11684
|
+
var AccordionItem2 = React34.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx65(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
|
|
11355
11685
|
AccordionItem2.displayName = "AccordionItem";
|
|
11356
|
-
var AccordionTrigger2 = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
11686
|
+
var AccordionTrigger2 = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx65(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ jsxs43(
|
|
11357
11687
|
AccordionPrimitive2.Trigger,
|
|
11358
11688
|
{
|
|
11359
11689
|
ref,
|
|
@@ -11364,18 +11694,18 @@ var AccordionTrigger2 = React34.forwardRef(({ className, children, ...props }, r
|
|
|
11364
11694
|
...props,
|
|
11365
11695
|
children: [
|
|
11366
11696
|
children,
|
|
11367
|
-
/* @__PURE__ */
|
|
11697
|
+
/* @__PURE__ */ jsx65(ChevronDown6, { className: "h-4 w-4 shrink-0 transition-transform duration-200" })
|
|
11368
11698
|
]
|
|
11369
11699
|
}
|
|
11370
11700
|
) }));
|
|
11371
11701
|
AccordionTrigger2.displayName = AccordionPrimitive2.Trigger.displayName;
|
|
11372
|
-
var AccordionContent2 = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
11702
|
+
var AccordionContent2 = React34.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx65(
|
|
11373
11703
|
AccordionPrimitive2.Content,
|
|
11374
11704
|
{
|
|
11375
11705
|
ref,
|
|
11376
11706
|
className: "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
11377
11707
|
...props,
|
|
11378
|
-
children: /* @__PURE__ */
|
|
11708
|
+
children: /* @__PURE__ */ jsx65("div", { className: cn("pb-4 pt-0", className), children })
|
|
11379
11709
|
}
|
|
11380
11710
|
));
|
|
11381
11711
|
AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
|
|
@@ -11383,7 +11713,7 @@ AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
|
|
|
11383
11713
|
// src/components/ui/alert.tsx
|
|
11384
11714
|
import * as React35 from "react";
|
|
11385
11715
|
import { cva as cva3 } from "class-variance-authority";
|
|
11386
|
-
import { jsx as
|
|
11716
|
+
import { jsx as jsx66 } from "react/jsx-runtime";
|
|
11387
11717
|
var alertVariants = cva3(
|
|
11388
11718
|
"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",
|
|
11389
11719
|
{
|
|
@@ -11398,25 +11728,25 @@ var alertVariants = cva3(
|
|
|
11398
11728
|
}
|
|
11399
11729
|
}
|
|
11400
11730
|
);
|
|
11401
|
-
var Alert = React35.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */
|
|
11731
|
+
var Alert = React35.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx66("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
11402
11732
|
Alert.displayName = "Alert";
|
|
11403
11733
|
var AlertTitle = React35.forwardRef(
|
|
11404
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11734
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx66("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
|
|
11405
11735
|
);
|
|
11406
11736
|
AlertTitle.displayName = "AlertTitle";
|
|
11407
11737
|
var AlertDescription = React35.forwardRef(
|
|
11408
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11738
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx66("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
|
|
11409
11739
|
);
|
|
11410
11740
|
AlertDescription.displayName = "AlertDescription";
|
|
11411
11741
|
|
|
11412
11742
|
// src/components/ui/alert-dialog.tsx
|
|
11413
11743
|
import * as React36 from "react";
|
|
11414
11744
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
11415
|
-
import { jsx as
|
|
11745
|
+
import { jsx as jsx67, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
11416
11746
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
11417
11747
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
11418
11748
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
11419
|
-
var AlertDialogOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11749
|
+
var AlertDialogOverlay = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
11420
11750
|
AlertDialogPrimitive.Overlay,
|
|
11421
11751
|
{
|
|
11422
11752
|
className: cn(
|
|
@@ -11428,9 +11758,9 @@ var AlertDialogOverlay = React36.forwardRef(({ className, ...props }, ref) => /*
|
|
|
11428
11758
|
}
|
|
11429
11759
|
));
|
|
11430
11760
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
11431
|
-
var AlertDialogContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11432
|
-
/* @__PURE__ */
|
|
11433
|
-
/* @__PURE__ */
|
|
11761
|
+
var AlertDialogContent = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs44(AlertDialogPortal, { children: [
|
|
11762
|
+
/* @__PURE__ */ jsx67(AlertDialogOverlay, {}),
|
|
11763
|
+
/* @__PURE__ */ jsx67(
|
|
11434
11764
|
AlertDialogPrimitive.Content,
|
|
11435
11765
|
{
|
|
11436
11766
|
ref,
|
|
@@ -11443,17 +11773,17 @@ var AlertDialogContent = React36.forwardRef(({ className, ...props }, ref) => /*
|
|
|
11443
11773
|
)
|
|
11444
11774
|
] }));
|
|
11445
11775
|
AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
|
|
11446
|
-
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
11776
|
+
var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx67("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
11447
11777
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
11448
|
-
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
11778
|
+
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx67("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
11449
11779
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
11450
|
-
var AlertDialogTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11780
|
+
var AlertDialogTitle = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
11451
11781
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
11452
|
-
var AlertDialogDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11782
|
+
var AlertDialogDescription = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
11453
11783
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
11454
|
-
var AlertDialogAction = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11784
|
+
var AlertDialogAction = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
|
|
11455
11785
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
11456
|
-
var AlertDialogCancel = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11786
|
+
var AlertDialogCancel = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
11457
11787
|
AlertDialogPrimitive.Cancel,
|
|
11458
11788
|
{
|
|
11459
11789
|
ref,
|
|
@@ -11471,11 +11801,11 @@ var AspectRatio = AspectRatioPrimitive.Root;
|
|
|
11471
11801
|
import * as React37 from "react";
|
|
11472
11802
|
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
11473
11803
|
import { ChevronRight as ChevronRight4, MoreHorizontal } from "lucide-react";
|
|
11474
|
-
import { jsx as
|
|
11475
|
-
var Breadcrumb = React37.forwardRef(({ ...props }, ref) => /* @__PURE__ */
|
|
11804
|
+
import { jsx as jsx68, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
11805
|
+
var Breadcrumb = React37.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx68("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
11476
11806
|
Breadcrumb.displayName = "Breadcrumb";
|
|
11477
11807
|
var BreadcrumbList = React37.forwardRef(
|
|
11478
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11808
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx68(
|
|
11479
11809
|
"ol",
|
|
11480
11810
|
{
|
|
11481
11811
|
ref,
|
|
@@ -11489,16 +11819,16 @@ var BreadcrumbList = React37.forwardRef(
|
|
|
11489
11819
|
);
|
|
11490
11820
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
11491
11821
|
var BreadcrumbItem = React37.forwardRef(
|
|
11492
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11822
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx68("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
11493
11823
|
);
|
|
11494
11824
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
11495
11825
|
var BreadcrumbLink = React37.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
11496
11826
|
const Comp = asChild ? Slot2 : "a";
|
|
11497
|
-
return /* @__PURE__ */
|
|
11827
|
+
return /* @__PURE__ */ jsx68(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
11498
11828
|
});
|
|
11499
11829
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
11500
11830
|
var BreadcrumbPage = React37.forwardRef(
|
|
11501
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11831
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx68(
|
|
11502
11832
|
"span",
|
|
11503
11833
|
{
|
|
11504
11834
|
ref,
|
|
@@ -11511,9 +11841,9 @@ var BreadcrumbPage = React37.forwardRef(
|
|
|
11511
11841
|
)
|
|
11512
11842
|
);
|
|
11513
11843
|
BreadcrumbPage.displayName = "BreadcrumbPage";
|
|
11514
|
-
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */
|
|
11844
|
+
var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx68("li", { role: "presentation", "aria-hidden": "true", className: cn("[&>svg]:size-3.5", className), ...props, children: children != null ? children : /* @__PURE__ */ jsx68(ChevronRight4, {}) });
|
|
11515
11845
|
BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
|
|
11516
|
-
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */
|
|
11846
|
+
var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs45(
|
|
11517
11847
|
"span",
|
|
11518
11848
|
{
|
|
11519
11849
|
role: "presentation",
|
|
@@ -11521,8 +11851,8 @@ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs44(
|
|
|
11521
11851
|
className: cn("flex h-9 w-9 items-center justify-center", className),
|
|
11522
11852
|
...props,
|
|
11523
11853
|
children: [
|
|
11524
|
-
/* @__PURE__ */
|
|
11525
|
-
/* @__PURE__ */
|
|
11854
|
+
/* @__PURE__ */ jsx68(MoreHorizontal, { className: "h-4 w-4" }),
|
|
11855
|
+
/* @__PURE__ */ jsx68("span", { className: "sr-only", children: "More" })
|
|
11526
11856
|
]
|
|
11527
11857
|
}
|
|
11528
11858
|
);
|
|
@@ -11531,9 +11861,9 @@ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
|
|
|
11531
11861
|
// src/components/ui/calendar.tsx
|
|
11532
11862
|
import { ChevronLeft, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
11533
11863
|
import { DayPicker } from "react-day-picker";
|
|
11534
|
-
import { jsx as
|
|
11864
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
11535
11865
|
function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
11536
|
-
return /* @__PURE__ */
|
|
11866
|
+
return /* @__PURE__ */ jsx69(
|
|
11537
11867
|
DayPicker,
|
|
11538
11868
|
{
|
|
11539
11869
|
showOutsideDays,
|
|
@@ -11568,9 +11898,9 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
11568
11898
|
components: {
|
|
11569
11899
|
Chevron: ({ orientation, className: className2, ...chevronProps }) => {
|
|
11570
11900
|
if (orientation === "left") {
|
|
11571
|
-
return /* @__PURE__ */
|
|
11901
|
+
return /* @__PURE__ */ jsx69(ChevronLeft, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
11572
11902
|
}
|
|
11573
|
-
return /* @__PURE__ */
|
|
11903
|
+
return /* @__PURE__ */ jsx69(ChevronRight5, { className: cn("h-4 w-4", className2), ...chevronProps });
|
|
11574
11904
|
}
|
|
11575
11905
|
},
|
|
11576
11906
|
...props
|
|
@@ -11581,27 +11911,27 @@ Calendar.displayName = "Calendar";
|
|
|
11581
11911
|
|
|
11582
11912
|
// src/components/ui/card.tsx
|
|
11583
11913
|
import * as React38 from "react";
|
|
11584
|
-
import { jsx as
|
|
11585
|
-
var Card = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
11914
|
+
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
11915
|
+
var Card = React38.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx70("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
|
|
11586
11916
|
Card.displayName = "Card";
|
|
11587
11917
|
var CardHeader = React38.forwardRef(
|
|
11588
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11918
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
11589
11919
|
);
|
|
11590
11920
|
CardHeader.displayName = "CardHeader";
|
|
11591
11921
|
var CardTitle = React38.forwardRef(
|
|
11592
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11922
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
|
|
11593
11923
|
);
|
|
11594
11924
|
CardTitle.displayName = "CardTitle";
|
|
11595
11925
|
var CardDescription = React38.forwardRef(
|
|
11596
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11926
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
11597
11927
|
);
|
|
11598
11928
|
CardDescription.displayName = "CardDescription";
|
|
11599
11929
|
var CardContent = React38.forwardRef(
|
|
11600
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11930
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
11601
11931
|
);
|
|
11602
11932
|
CardContent.displayName = "CardContent";
|
|
11603
11933
|
var CardFooter = React38.forwardRef(
|
|
11604
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
11934
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx70("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
11605
11935
|
);
|
|
11606
11936
|
CardFooter.displayName = "CardFooter";
|
|
11607
11937
|
|
|
@@ -11609,7 +11939,7 @@ CardFooter.displayName = "CardFooter";
|
|
|
11609
11939
|
import * as React39 from "react";
|
|
11610
11940
|
import useEmblaCarousel from "embla-carousel-react";
|
|
11611
11941
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
11612
|
-
import { jsx as
|
|
11942
|
+
import { jsx as jsx71, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
11613
11943
|
var CarouselContext = React39.createContext(null);
|
|
11614
11944
|
function useCarousel() {
|
|
11615
11945
|
const context = React39.useContext(CarouselContext);
|
|
@@ -11671,7 +12001,7 @@ var Carousel = React39.forwardRef(
|
|
|
11671
12001
|
api == null ? void 0 : api.off("select", onSelect);
|
|
11672
12002
|
};
|
|
11673
12003
|
}, [api, onSelect]);
|
|
11674
|
-
return /* @__PURE__ */
|
|
12004
|
+
return /* @__PURE__ */ jsx71(
|
|
11675
12005
|
CarouselContext.Provider,
|
|
11676
12006
|
{
|
|
11677
12007
|
value: {
|
|
@@ -11684,7 +12014,7 @@ var Carousel = React39.forwardRef(
|
|
|
11684
12014
|
canScrollPrev,
|
|
11685
12015
|
canScrollNext
|
|
11686
12016
|
},
|
|
11687
|
-
children: /* @__PURE__ */
|
|
12017
|
+
children: /* @__PURE__ */ jsx71(
|
|
11688
12018
|
"div",
|
|
11689
12019
|
{
|
|
11690
12020
|
ref,
|
|
@@ -11704,7 +12034,7 @@ Carousel.displayName = "Carousel";
|
|
|
11704
12034
|
var CarouselContent = React39.forwardRef(
|
|
11705
12035
|
({ className, ...props }, ref) => {
|
|
11706
12036
|
const { carouselRef, orientation } = useCarousel();
|
|
11707
|
-
return /* @__PURE__ */
|
|
12037
|
+
return /* @__PURE__ */ jsx71("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx71(
|
|
11708
12038
|
"div",
|
|
11709
12039
|
{
|
|
11710
12040
|
ref,
|
|
@@ -11718,7 +12048,7 @@ CarouselContent.displayName = "CarouselContent";
|
|
|
11718
12048
|
var CarouselItem = React39.forwardRef(
|
|
11719
12049
|
({ className, ...props }, ref) => {
|
|
11720
12050
|
const { orientation } = useCarousel();
|
|
11721
|
-
return /* @__PURE__ */
|
|
12051
|
+
return /* @__PURE__ */ jsx71(
|
|
11722
12052
|
"div",
|
|
11723
12053
|
{
|
|
11724
12054
|
ref,
|
|
@@ -11734,7 +12064,7 @@ CarouselItem.displayName = "CarouselItem";
|
|
|
11734
12064
|
var CarouselPrevious = React39.forwardRef(
|
|
11735
12065
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
11736
12066
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
11737
|
-
return /* @__PURE__ */
|
|
12067
|
+
return /* @__PURE__ */ jsxs46(
|
|
11738
12068
|
Button,
|
|
11739
12069
|
{
|
|
11740
12070
|
ref,
|
|
@@ -11749,8 +12079,8 @@ var CarouselPrevious = React39.forwardRef(
|
|
|
11749
12079
|
onClick: scrollPrev,
|
|
11750
12080
|
...props,
|
|
11751
12081
|
children: [
|
|
11752
|
-
/* @__PURE__ */
|
|
11753
|
-
/* @__PURE__ */
|
|
12082
|
+
/* @__PURE__ */ jsx71(ArrowLeft, { className: "h-4 w-4" }),
|
|
12083
|
+
/* @__PURE__ */ jsx71("span", { className: "sr-only", children: "Previous slide" })
|
|
11754
12084
|
]
|
|
11755
12085
|
}
|
|
11756
12086
|
);
|
|
@@ -11760,7 +12090,7 @@ CarouselPrevious.displayName = "CarouselPrevious";
|
|
|
11760
12090
|
var CarouselNext = React39.forwardRef(
|
|
11761
12091
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
11762
12092
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
11763
|
-
return /* @__PURE__ */
|
|
12093
|
+
return /* @__PURE__ */ jsxs46(
|
|
11764
12094
|
Button,
|
|
11765
12095
|
{
|
|
11766
12096
|
ref,
|
|
@@ -11775,8 +12105,8 @@ var CarouselNext = React39.forwardRef(
|
|
|
11775
12105
|
onClick: scrollNext,
|
|
11776
12106
|
...props,
|
|
11777
12107
|
children: [
|
|
11778
|
-
/* @__PURE__ */
|
|
11779
|
-
/* @__PURE__ */
|
|
12108
|
+
/* @__PURE__ */ jsx71(ArrowRight, { className: "h-4 w-4" }),
|
|
12109
|
+
/* @__PURE__ */ jsx71("span", { className: "sr-only", children: "Next slide" })
|
|
11780
12110
|
]
|
|
11781
12111
|
}
|
|
11782
12112
|
);
|
|
@@ -11787,7 +12117,7 @@ CarouselNext.displayName = "CarouselNext";
|
|
|
11787
12117
|
// src/components/ui/chart.tsx
|
|
11788
12118
|
import * as React40 from "react";
|
|
11789
12119
|
import * as RechartsPrimitive from "recharts";
|
|
11790
|
-
import { Fragment as Fragment8, jsx as
|
|
12120
|
+
import { Fragment as Fragment8, jsx as jsx72, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
11791
12121
|
var THEMES = { light: "", dark: ".dark" };
|
|
11792
12122
|
var ChartContext = React40.createContext(null);
|
|
11793
12123
|
function useChart() {
|
|
@@ -11800,7 +12130,7 @@ function useChart() {
|
|
|
11800
12130
|
var ChartContainer = React40.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
11801
12131
|
const uniqueId = React40.useId();
|
|
11802
12132
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
11803
|
-
return /* @__PURE__ */
|
|
12133
|
+
return /* @__PURE__ */ jsx72(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs47(
|
|
11804
12134
|
"div",
|
|
11805
12135
|
{
|
|
11806
12136
|
"data-chart": chartId,
|
|
@@ -11811,8 +12141,8 @@ var ChartContainer = React40.forwardRef(({ id, className, children, config, ...p
|
|
|
11811
12141
|
),
|
|
11812
12142
|
...props,
|
|
11813
12143
|
children: [
|
|
11814
|
-
/* @__PURE__ */
|
|
11815
|
-
/* @__PURE__ */
|
|
12144
|
+
/* @__PURE__ */ jsx72(ChartStyle, { id: chartId, config }),
|
|
12145
|
+
/* @__PURE__ */ jsx72(RechartsPrimitive.ResponsiveContainer, { children })
|
|
11816
12146
|
]
|
|
11817
12147
|
}
|
|
11818
12148
|
) });
|
|
@@ -11823,7 +12153,7 @@ var ChartStyle = ({ id, config }) => {
|
|
|
11823
12153
|
if (!colorConfig.length) {
|
|
11824
12154
|
return null;
|
|
11825
12155
|
}
|
|
11826
|
-
return /* @__PURE__ */
|
|
12156
|
+
return /* @__PURE__ */ jsx72(
|
|
11827
12157
|
"style",
|
|
11828
12158
|
{
|
|
11829
12159
|
dangerouslySetInnerHTML: {
|
|
@@ -11870,18 +12200,18 @@ var ChartTooltipContent = React40.forwardRef(
|
|
|
11870
12200
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
11871
12201
|
const value = !labelKey && typeof label === "string" ? ((_a25 = config[label]) == null ? void 0 : _a25.label) || label : itemConfig == null ? void 0 : itemConfig.label;
|
|
11872
12202
|
if (labelFormatter) {
|
|
11873
|
-
return /* @__PURE__ */
|
|
12203
|
+
return /* @__PURE__ */ jsx72("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
11874
12204
|
}
|
|
11875
12205
|
if (!value) {
|
|
11876
12206
|
return null;
|
|
11877
12207
|
}
|
|
11878
|
-
return /* @__PURE__ */
|
|
12208
|
+
return /* @__PURE__ */ jsx72("div", { className: cn("font-medium", labelClassName), children: value });
|
|
11879
12209
|
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
11880
12210
|
if (!active || !(payload == null ? void 0 : payload.length)) {
|
|
11881
12211
|
return null;
|
|
11882
12212
|
}
|
|
11883
12213
|
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
11884
|
-
return /* @__PURE__ */
|
|
12214
|
+
return /* @__PURE__ */ jsxs47(
|
|
11885
12215
|
"div",
|
|
11886
12216
|
{
|
|
11887
12217
|
ref,
|
|
@@ -11891,19 +12221,19 @@ var ChartTooltipContent = React40.forwardRef(
|
|
|
11891
12221
|
),
|
|
11892
12222
|
children: [
|
|
11893
12223
|
!nestLabel ? tooltipLabel : null,
|
|
11894
|
-
/* @__PURE__ */
|
|
12224
|
+
/* @__PURE__ */ jsx72("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
11895
12225
|
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
11896
12226
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
11897
12227
|
const indicatorColor = color || item.payload.fill || item.color;
|
|
11898
|
-
return /* @__PURE__ */
|
|
12228
|
+
return /* @__PURE__ */ jsx72(
|
|
11899
12229
|
"div",
|
|
11900
12230
|
{
|
|
11901
12231
|
className: cn(
|
|
11902
12232
|
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
11903
12233
|
indicator === "dot" && "items-center"
|
|
11904
12234
|
),
|
|
11905
|
-
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */
|
|
11906
|
-
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */
|
|
12235
|
+
children: formatter && (item == null ? void 0 : item.value) !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs47(Fragment8, { children: [
|
|
12236
|
+
(itemConfig == null ? void 0 : itemConfig.icon) ? /* @__PURE__ */ jsx72(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx72(
|
|
11907
12237
|
"div",
|
|
11908
12238
|
{
|
|
11909
12239
|
className: cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
|
|
@@ -11918,7 +12248,7 @@ var ChartTooltipContent = React40.forwardRef(
|
|
|
11918
12248
|
}
|
|
11919
12249
|
}
|
|
11920
12250
|
),
|
|
11921
|
-
/* @__PURE__ */
|
|
12251
|
+
/* @__PURE__ */ jsxs47(
|
|
11922
12252
|
"div",
|
|
11923
12253
|
{
|
|
11924
12254
|
className: cn(
|
|
@@ -11926,11 +12256,11 @@ var ChartTooltipContent = React40.forwardRef(
|
|
|
11926
12256
|
nestLabel ? "items-end" : "items-center"
|
|
11927
12257
|
),
|
|
11928
12258
|
children: [
|
|
11929
|
-
/* @__PURE__ */
|
|
12259
|
+
/* @__PURE__ */ jsxs47("div", { className: "grid gap-1.5", children: [
|
|
11930
12260
|
nestLabel ? tooltipLabel : null,
|
|
11931
|
-
/* @__PURE__ */
|
|
12261
|
+
/* @__PURE__ */ jsx72("span", { className: "text-muted-foreground", children: (itemConfig == null ? void 0 : itemConfig.label) || item.name })
|
|
11932
12262
|
] }),
|
|
11933
|
-
item.value && /* @__PURE__ */
|
|
12263
|
+
item.value && /* @__PURE__ */ jsx72("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() })
|
|
11934
12264
|
]
|
|
11935
12265
|
}
|
|
11936
12266
|
)
|
|
@@ -11951,7 +12281,7 @@ var ChartLegendContent = React40.forwardRef(({ className, hideIcon = false, payl
|
|
|
11951
12281
|
if (!(payload == null ? void 0 : payload.length)) {
|
|
11952
12282
|
return null;
|
|
11953
12283
|
}
|
|
11954
|
-
return /* @__PURE__ */
|
|
12284
|
+
return /* @__PURE__ */ jsx72(
|
|
11955
12285
|
"div",
|
|
11956
12286
|
{
|
|
11957
12287
|
ref,
|
|
@@ -11959,12 +12289,12 @@ var ChartLegendContent = React40.forwardRef(({ className, hideIcon = false, payl
|
|
|
11959
12289
|
children: payload.map((item) => {
|
|
11960
12290
|
const key = `${nameKey || item.dataKey || "value"}`;
|
|
11961
12291
|
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
11962
|
-
return /* @__PURE__ */
|
|
12292
|
+
return /* @__PURE__ */ jsxs47(
|
|
11963
12293
|
"div",
|
|
11964
12294
|
{
|
|
11965
12295
|
className: cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),
|
|
11966
12296
|
children: [
|
|
11967
|
-
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */
|
|
12297
|
+
(itemConfig == null ? void 0 : itemConfig.icon) && !hideIcon ? /* @__PURE__ */ jsx72(itemConfig.icon, {}) : /* @__PURE__ */ jsx72(
|
|
11968
12298
|
"div",
|
|
11969
12299
|
{
|
|
11970
12300
|
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
@@ -12001,8 +12331,8 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
12001
12331
|
import * as React41 from "react";
|
|
12002
12332
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
12003
12333
|
import { Check as Check6 } from "lucide-react";
|
|
12004
|
-
import { jsx as
|
|
12005
|
-
var Checkbox = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12334
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
12335
|
+
var Checkbox = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
|
|
12006
12336
|
CheckboxPrimitive.Root,
|
|
12007
12337
|
{
|
|
12008
12338
|
ref,
|
|
@@ -12011,7 +12341,7 @@ var Checkbox = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
12011
12341
|
className
|
|
12012
12342
|
),
|
|
12013
12343
|
...props,
|
|
12014
|
-
children: /* @__PURE__ */
|
|
12344
|
+
children: /* @__PURE__ */ jsx73(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx73(Check6, { className: "h-4 w-4" }) })
|
|
12015
12345
|
}
|
|
12016
12346
|
));
|
|
12017
12347
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
@@ -12026,8 +12356,8 @@ var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
|
12026
12356
|
import * as React42 from "react";
|
|
12027
12357
|
import { Command as CommandPrimitive } from "cmdk";
|
|
12028
12358
|
import { Search as Search3 } from "lucide-react";
|
|
12029
|
-
import { jsx as
|
|
12030
|
-
var Command = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12359
|
+
import { jsx as jsx74, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
12360
|
+
var Command = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
12031
12361
|
CommandPrimitive,
|
|
12032
12362
|
{
|
|
12033
12363
|
ref,
|
|
@@ -12040,11 +12370,11 @@ var Command = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
12040
12370
|
));
|
|
12041
12371
|
Command.displayName = CommandPrimitive.displayName;
|
|
12042
12372
|
var CommandDialog = ({ children, ...props }) => {
|
|
12043
|
-
return /* @__PURE__ */
|
|
12373
|
+
return /* @__PURE__ */ jsx74(Dialog, { ...props, children: /* @__PURE__ */ jsx74(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx74(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 }) }) });
|
|
12044
12374
|
};
|
|
12045
|
-
var CommandInput = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12046
|
-
/* @__PURE__ */
|
|
12047
|
-
/* @__PURE__ */
|
|
12375
|
+
var CommandInput = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs48("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
12376
|
+
/* @__PURE__ */ jsx74(Search3, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
12377
|
+
/* @__PURE__ */ jsx74(
|
|
12048
12378
|
CommandPrimitive.Input,
|
|
12049
12379
|
{
|
|
12050
12380
|
ref,
|
|
@@ -12057,7 +12387,7 @@ var CommandInput = React42.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
12057
12387
|
)
|
|
12058
12388
|
] }));
|
|
12059
12389
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
12060
|
-
var CommandList = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12390
|
+
var CommandList = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
12061
12391
|
CommandPrimitive.List,
|
|
12062
12392
|
{
|
|
12063
12393
|
ref,
|
|
@@ -12066,9 +12396,9 @@ var CommandList = React42.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
12066
12396
|
}
|
|
12067
12397
|
));
|
|
12068
12398
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
12069
|
-
var CommandEmpty = React42.forwardRef((props, ref) => /* @__PURE__ */
|
|
12399
|
+
var CommandEmpty = React42.forwardRef((props, ref) => /* @__PURE__ */ jsx74(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
12070
12400
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
12071
|
-
var CommandGroup = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12401
|
+
var CommandGroup = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
12072
12402
|
CommandPrimitive.Group,
|
|
12073
12403
|
{
|
|
12074
12404
|
ref,
|
|
@@ -12080,9 +12410,9 @@ var CommandGroup = React42.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
12080
12410
|
}
|
|
12081
12411
|
));
|
|
12082
12412
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
12083
|
-
var CommandSeparator = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12413
|
+
var CommandSeparator = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
12084
12414
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
12085
|
-
var CommandItem = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12415
|
+
var CommandItem = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74(
|
|
12086
12416
|
CommandPrimitive.Item,
|
|
12087
12417
|
{
|
|
12088
12418
|
ref,
|
|
@@ -12095,7 +12425,7 @@ var CommandItem = React42.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
12095
12425
|
));
|
|
12096
12426
|
CommandItem.displayName = CommandPrimitive.Item.displayName;
|
|
12097
12427
|
var CommandShortcut = ({ className, ...props }) => {
|
|
12098
|
-
return /* @__PURE__ */
|
|
12428
|
+
return /* @__PURE__ */ jsx74("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
12099
12429
|
};
|
|
12100
12430
|
CommandShortcut.displayName = "CommandShortcut";
|
|
12101
12431
|
|
|
@@ -12103,14 +12433,14 @@ CommandShortcut.displayName = "CommandShortcut";
|
|
|
12103
12433
|
import * as React43 from "react";
|
|
12104
12434
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
12105
12435
|
import { Check as Check7, ChevronRight as ChevronRight6, Circle as Circle3 } from "lucide-react";
|
|
12106
|
-
import { jsx as
|
|
12436
|
+
import { jsx as jsx75, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
12107
12437
|
var ContextMenu = ContextMenuPrimitive.Root;
|
|
12108
12438
|
var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
12109
12439
|
var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
12110
12440
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
12111
12441
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
12112
12442
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
12113
|
-
var ContextMenuSubTrigger = React43.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */
|
|
12443
|
+
var ContextMenuSubTrigger = React43.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs49(
|
|
12114
12444
|
ContextMenuPrimitive.SubTrigger,
|
|
12115
12445
|
{
|
|
12116
12446
|
ref,
|
|
@@ -12122,12 +12452,12 @@ var ContextMenuSubTrigger = React43.forwardRef(({ className, inset, children, ..
|
|
|
12122
12452
|
...props,
|
|
12123
12453
|
children: [
|
|
12124
12454
|
children,
|
|
12125
|
-
/* @__PURE__ */
|
|
12455
|
+
/* @__PURE__ */ jsx75(ChevronRight6, { className: "ml-auto h-4 w-4" })
|
|
12126
12456
|
]
|
|
12127
12457
|
}
|
|
12128
12458
|
));
|
|
12129
12459
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
12130
|
-
var ContextMenuSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12460
|
+
var ContextMenuSubContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx75(
|
|
12131
12461
|
ContextMenuPrimitive.SubContent,
|
|
12132
12462
|
{
|
|
12133
12463
|
ref,
|
|
@@ -12139,7 +12469,7 @@ var ContextMenuSubContent = React43.forwardRef(({ className, ...props }, ref) =>
|
|
|
12139
12469
|
}
|
|
12140
12470
|
));
|
|
12141
12471
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
12142
|
-
var ContextMenuContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12472
|
+
var ContextMenuContent = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx75(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx75(
|
|
12143
12473
|
ContextMenuPrimitive.Content,
|
|
12144
12474
|
{
|
|
12145
12475
|
ref,
|
|
@@ -12151,7 +12481,7 @@ var ContextMenuContent = React43.forwardRef(({ className, ...props }, ref) => /*
|
|
|
12151
12481
|
}
|
|
12152
12482
|
) }));
|
|
12153
12483
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
12154
|
-
var ContextMenuItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
12484
|
+
var ContextMenuItem = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx75(
|
|
12155
12485
|
ContextMenuPrimitive.Item,
|
|
12156
12486
|
{
|
|
12157
12487
|
ref,
|
|
@@ -12164,7 +12494,7 @@ var ContextMenuItem = React43.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
12164
12494
|
}
|
|
12165
12495
|
));
|
|
12166
12496
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
12167
|
-
var ContextMenuCheckboxItem = React43.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */
|
|
12497
|
+
var ContextMenuCheckboxItem = React43.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs49(
|
|
12168
12498
|
ContextMenuPrimitive.CheckboxItem,
|
|
12169
12499
|
{
|
|
12170
12500
|
ref,
|
|
@@ -12175,13 +12505,13 @@ var ContextMenuCheckboxItem = React43.forwardRef(({ className, children, checked
|
|
|
12175
12505
|
checked,
|
|
12176
12506
|
...props,
|
|
12177
12507
|
children: [
|
|
12178
|
-
/* @__PURE__ */
|
|
12508
|
+
/* @__PURE__ */ jsx75("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx75(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx75(Check7, { className: "h-4 w-4" }) }) }),
|
|
12179
12509
|
children
|
|
12180
12510
|
]
|
|
12181
12511
|
}
|
|
12182
12512
|
));
|
|
12183
12513
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
12184
|
-
var ContextMenuRadioItem = React43.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
12514
|
+
var ContextMenuRadioItem = React43.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs49(
|
|
12185
12515
|
ContextMenuPrimitive.RadioItem,
|
|
12186
12516
|
{
|
|
12187
12517
|
ref,
|
|
@@ -12191,13 +12521,13 @@ var ContextMenuRadioItem = React43.forwardRef(({ className, children, ...props }
|
|
|
12191
12521
|
),
|
|
12192
12522
|
...props,
|
|
12193
12523
|
children: [
|
|
12194
|
-
/* @__PURE__ */
|
|
12524
|
+
/* @__PURE__ */ jsx75("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx75(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx75(Circle3, { className: "h-2 w-2 fill-current" }) }) }),
|
|
12195
12525
|
children
|
|
12196
12526
|
]
|
|
12197
12527
|
}
|
|
12198
12528
|
));
|
|
12199
12529
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
12200
|
-
var ContextMenuLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
12530
|
+
var ContextMenuLabel = React43.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx75(
|
|
12201
12531
|
ContextMenuPrimitive.Label,
|
|
12202
12532
|
{
|
|
12203
12533
|
ref,
|
|
@@ -12206,10 +12536,10 @@ var ContextMenuLabel = React43.forwardRef(({ className, inset, ...props }, ref)
|
|
|
12206
12536
|
}
|
|
12207
12537
|
));
|
|
12208
12538
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
12209
|
-
var ContextMenuSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12539
|
+
var ContextMenuSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx75(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
12210
12540
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
12211
12541
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
12212
|
-
return /* @__PURE__ */
|
|
12542
|
+
return /* @__PURE__ */ jsx75("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
12213
12543
|
};
|
|
12214
12544
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
12215
12545
|
|
|
@@ -12222,19 +12552,19 @@ import { Controller, FormProvider, useFormContext } from "react-hook-form";
|
|
|
12222
12552
|
import * as React44 from "react";
|
|
12223
12553
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
12224
12554
|
import { cva as cva4 } from "class-variance-authority";
|
|
12225
|
-
import { jsx as
|
|
12555
|
+
import { jsx as jsx76 } from "react/jsx-runtime";
|
|
12226
12556
|
var labelVariants = cva4("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
12227
|
-
var Label4 = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12557
|
+
var Label4 = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx76(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
12228
12558
|
Label4.displayName = LabelPrimitive.Root.displayName;
|
|
12229
12559
|
|
|
12230
12560
|
// src/components/ui/form.tsx
|
|
12231
|
-
import { jsx as
|
|
12561
|
+
import { jsx as jsx77 } from "react/jsx-runtime";
|
|
12232
12562
|
var Form = FormProvider;
|
|
12233
12563
|
var FormFieldContext = React45.createContext({});
|
|
12234
12564
|
var FormField = ({
|
|
12235
12565
|
...props
|
|
12236
12566
|
}) => {
|
|
12237
|
-
return /* @__PURE__ */
|
|
12567
|
+
return /* @__PURE__ */ jsx77(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx77(Controller, { ...props }) });
|
|
12238
12568
|
};
|
|
12239
12569
|
var useFormField = () => {
|
|
12240
12570
|
const fieldContext = React45.useContext(FormFieldContext);
|
|
@@ -12258,19 +12588,19 @@ var FormItemContext = React45.createContext({});
|
|
|
12258
12588
|
var FormItem = React45.forwardRef(
|
|
12259
12589
|
({ className, ...props }, ref) => {
|
|
12260
12590
|
const id = React45.useId();
|
|
12261
|
-
return /* @__PURE__ */
|
|
12591
|
+
return /* @__PURE__ */ jsx77(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx77("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
12262
12592
|
}
|
|
12263
12593
|
);
|
|
12264
12594
|
FormItem.displayName = "FormItem";
|
|
12265
12595
|
var FormLabel = React45.forwardRef(({ className, ...props }, ref) => {
|
|
12266
12596
|
const { error, formItemId } = useFormField();
|
|
12267
|
-
return /* @__PURE__ */
|
|
12597
|
+
return /* @__PURE__ */ jsx77(Label4, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
12268
12598
|
});
|
|
12269
12599
|
FormLabel.displayName = "FormLabel";
|
|
12270
12600
|
var FormControl = React45.forwardRef(
|
|
12271
12601
|
({ ...props }, ref) => {
|
|
12272
12602
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
12273
|
-
return /* @__PURE__ */
|
|
12603
|
+
return /* @__PURE__ */ jsx77(
|
|
12274
12604
|
Slot3,
|
|
12275
12605
|
{
|
|
12276
12606
|
ref,
|
|
@@ -12286,7 +12616,7 @@ FormControl.displayName = "FormControl";
|
|
|
12286
12616
|
var FormDescription = React45.forwardRef(
|
|
12287
12617
|
({ className, ...props }, ref) => {
|
|
12288
12618
|
const { formDescriptionId } = useFormField();
|
|
12289
|
-
return /* @__PURE__ */
|
|
12619
|
+
return /* @__PURE__ */ jsx77("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
12290
12620
|
}
|
|
12291
12621
|
);
|
|
12292
12622
|
FormDescription.displayName = "FormDescription";
|
|
@@ -12297,17 +12627,17 @@ var FormMessage = React45.forwardRef(
|
|
|
12297
12627
|
if (!body) {
|
|
12298
12628
|
return null;
|
|
12299
12629
|
}
|
|
12300
|
-
return /* @__PURE__ */
|
|
12630
|
+
return /* @__PURE__ */ jsx77("p", { ref, id: formMessageId, className: cn("text-sm font-medium text-destructive", className), ...props, children: body });
|
|
12301
12631
|
}
|
|
12302
12632
|
);
|
|
12303
12633
|
FormMessage.displayName = "FormMessage";
|
|
12304
12634
|
|
|
12305
12635
|
// src/components/ui/glass-card.tsx
|
|
12306
12636
|
import * as React46 from "react";
|
|
12307
|
-
import { jsx as
|
|
12637
|
+
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
12308
12638
|
var GlassCard = React46.forwardRef(
|
|
12309
12639
|
({ className, ...props }, ref) => {
|
|
12310
|
-
return /* @__PURE__ */
|
|
12640
|
+
return /* @__PURE__ */ jsx78("div", { ref, className: cn("glass-card", className), ...props });
|
|
12311
12641
|
}
|
|
12312
12642
|
);
|
|
12313
12643
|
GlassCard.displayName = "GlassCard";
|
|
@@ -12315,10 +12645,10 @@ GlassCard.displayName = "GlassCard";
|
|
|
12315
12645
|
// src/components/ui/hover-card.tsx
|
|
12316
12646
|
import * as React47 from "react";
|
|
12317
12647
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
12318
|
-
import { jsx as
|
|
12648
|
+
import { jsx as jsx79 } from "react/jsx-runtime";
|
|
12319
12649
|
var HoverCard = HoverCardPrimitive.Root;
|
|
12320
12650
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
12321
|
-
var HoverCardContent = React47.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
12651
|
+
var HoverCardContent = React47.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx79(
|
|
12322
12652
|
HoverCardPrimitive.Content,
|
|
12323
12653
|
{
|
|
12324
12654
|
ref,
|
|
@@ -12337,9 +12667,9 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
12337
12667
|
import * as React48 from "react";
|
|
12338
12668
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
12339
12669
|
import { Dot } from "lucide-react";
|
|
12340
|
-
import { jsx as
|
|
12670
|
+
import { jsx as jsx80, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
12341
12671
|
var InputOTP = React48.forwardRef(
|
|
12342
|
-
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */
|
|
12672
|
+
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx80(
|
|
12343
12673
|
OTPInput,
|
|
12344
12674
|
{
|
|
12345
12675
|
ref,
|
|
@@ -12351,13 +12681,13 @@ var InputOTP = React48.forwardRef(
|
|
|
12351
12681
|
);
|
|
12352
12682
|
InputOTP.displayName = "InputOTP";
|
|
12353
12683
|
var InputOTPGroup = React48.forwardRef(
|
|
12354
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
12684
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx80("div", { ref, className: cn("flex items-center", className), ...props })
|
|
12355
12685
|
);
|
|
12356
12686
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
12357
12687
|
var InputOTPSlot = React48.forwardRef(({ index, className, ...props }, ref) => {
|
|
12358
12688
|
const inputOTPContext = React48.useContext(OTPInputContext);
|
|
12359
12689
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
12360
|
-
return /* @__PURE__ */
|
|
12690
|
+
return /* @__PURE__ */ jsxs50(
|
|
12361
12691
|
"div",
|
|
12362
12692
|
{
|
|
12363
12693
|
ref,
|
|
@@ -12369,14 +12699,14 @@ var InputOTPSlot = React48.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
12369
12699
|
...props,
|
|
12370
12700
|
children: [
|
|
12371
12701
|
char,
|
|
12372
|
-
hasFakeCaret && /* @__PURE__ */
|
|
12702
|
+
hasFakeCaret && /* @__PURE__ */ jsx80("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx80("div", { className: "animate-caret-blink h-4 w-px bg-foreground duration-1000" }) })
|
|
12373
12703
|
]
|
|
12374
12704
|
}
|
|
12375
12705
|
);
|
|
12376
12706
|
});
|
|
12377
12707
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
12378
12708
|
var InputOTPSeparator = React48.forwardRef(
|
|
12379
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
12709
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx80("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx80(Dot, {}) })
|
|
12380
12710
|
);
|
|
12381
12711
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
12382
12712
|
|
|
@@ -12384,13 +12714,13 @@ InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
|
12384
12714
|
import * as React49 from "react";
|
|
12385
12715
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
12386
12716
|
import { Check as Check8, ChevronRight as ChevronRight7, Circle as Circle4 } from "lucide-react";
|
|
12387
|
-
import { jsx as
|
|
12717
|
+
import { jsx as jsx81, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
12388
12718
|
var MenubarMenu = MenubarPrimitive.Menu;
|
|
12389
12719
|
var MenubarGroup = MenubarPrimitive.Group;
|
|
12390
12720
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
12391
12721
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
12392
12722
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
12393
|
-
var Menubar = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12723
|
+
var Menubar = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx81(
|
|
12394
12724
|
MenubarPrimitive.Root,
|
|
12395
12725
|
{
|
|
12396
12726
|
ref,
|
|
@@ -12399,7 +12729,7 @@ var Menubar = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
12399
12729
|
}
|
|
12400
12730
|
));
|
|
12401
12731
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
12402
|
-
var MenubarTrigger = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12732
|
+
var MenubarTrigger = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx81(
|
|
12403
12733
|
MenubarPrimitive.Trigger,
|
|
12404
12734
|
{
|
|
12405
12735
|
ref,
|
|
@@ -12411,7 +12741,7 @@ var MenubarTrigger = React49.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
12411
12741
|
}
|
|
12412
12742
|
));
|
|
12413
12743
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
12414
|
-
var MenubarSubTrigger = React49.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */
|
|
12744
|
+
var MenubarSubTrigger = React49.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs51(
|
|
12415
12745
|
MenubarPrimitive.SubTrigger,
|
|
12416
12746
|
{
|
|
12417
12747
|
ref,
|
|
@@ -12423,12 +12753,12 @@ var MenubarSubTrigger = React49.forwardRef(({ className, inset, children, ...pro
|
|
|
12423
12753
|
...props,
|
|
12424
12754
|
children: [
|
|
12425
12755
|
children,
|
|
12426
|
-
/* @__PURE__ */
|
|
12756
|
+
/* @__PURE__ */ jsx81(ChevronRight7, { className: "ml-auto h-4 w-4" })
|
|
12427
12757
|
]
|
|
12428
12758
|
}
|
|
12429
12759
|
));
|
|
12430
12760
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
12431
|
-
var MenubarSubContent = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12761
|
+
var MenubarSubContent = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx81(
|
|
12432
12762
|
MenubarPrimitive.SubContent,
|
|
12433
12763
|
{
|
|
12434
12764
|
ref,
|
|
@@ -12440,7 +12770,7 @@ var MenubarSubContent = React49.forwardRef(({ className, ...props }, ref) => /*
|
|
|
12440
12770
|
}
|
|
12441
12771
|
));
|
|
12442
12772
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
12443
|
-
var MenubarContent = React49.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */
|
|
12773
|
+
var MenubarContent = React49.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx81(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx81(
|
|
12444
12774
|
MenubarPrimitive.Content,
|
|
12445
12775
|
{
|
|
12446
12776
|
ref,
|
|
@@ -12455,7 +12785,7 @@ var MenubarContent = React49.forwardRef(({ className, align = "start", alignOffs
|
|
|
12455
12785
|
}
|
|
12456
12786
|
) }));
|
|
12457
12787
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
12458
|
-
var MenubarItem = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
12788
|
+
var MenubarItem = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx81(
|
|
12459
12789
|
MenubarPrimitive.Item,
|
|
12460
12790
|
{
|
|
12461
12791
|
ref,
|
|
@@ -12468,7 +12798,7 @@ var MenubarItem = React49.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
12468
12798
|
}
|
|
12469
12799
|
));
|
|
12470
12800
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
12471
|
-
var MenubarCheckboxItem = React49.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */
|
|
12801
|
+
var MenubarCheckboxItem = React49.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs51(
|
|
12472
12802
|
MenubarPrimitive.CheckboxItem,
|
|
12473
12803
|
{
|
|
12474
12804
|
ref,
|
|
@@ -12479,13 +12809,13 @@ var MenubarCheckboxItem = React49.forwardRef(({ className, children, checked, ..
|
|
|
12479
12809
|
checked,
|
|
12480
12810
|
...props,
|
|
12481
12811
|
children: [
|
|
12482
|
-
/* @__PURE__ */
|
|
12812
|
+
/* @__PURE__ */ jsx81("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx81(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx81(Check8, { className: "h-4 w-4" }) }) }),
|
|
12483
12813
|
children
|
|
12484
12814
|
]
|
|
12485
12815
|
}
|
|
12486
12816
|
));
|
|
12487
12817
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
12488
|
-
var MenubarRadioItem = React49.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
12818
|
+
var MenubarRadioItem = React49.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs51(
|
|
12489
12819
|
MenubarPrimitive.RadioItem,
|
|
12490
12820
|
{
|
|
12491
12821
|
ref,
|
|
@@ -12495,13 +12825,13 @@ var MenubarRadioItem = React49.forwardRef(({ className, children, ...props }, re
|
|
|
12495
12825
|
),
|
|
12496
12826
|
...props,
|
|
12497
12827
|
children: [
|
|
12498
|
-
/* @__PURE__ */
|
|
12828
|
+
/* @__PURE__ */ jsx81("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx81(MenubarPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx81(Circle4, { className: "h-2 w-2 fill-current" }) }) }),
|
|
12499
12829
|
children
|
|
12500
12830
|
]
|
|
12501
12831
|
}
|
|
12502
12832
|
));
|
|
12503
12833
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
12504
|
-
var MenubarLabel = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */
|
|
12834
|
+
var MenubarLabel = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx81(
|
|
12505
12835
|
MenubarPrimitive.Label,
|
|
12506
12836
|
{
|
|
12507
12837
|
ref,
|
|
@@ -12510,10 +12840,10 @@ var MenubarLabel = React49.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
12510
12840
|
}
|
|
12511
12841
|
));
|
|
12512
12842
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
12513
|
-
var MenubarSeparator = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12843
|
+
var MenubarSeparator = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx81(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
12514
12844
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
12515
12845
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
12516
|
-
return /* @__PURE__ */
|
|
12846
|
+
return /* @__PURE__ */ jsx81("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
12517
12847
|
};
|
|
12518
12848
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
12519
12849
|
|
|
@@ -12522,8 +12852,8 @@ import * as React50 from "react";
|
|
|
12522
12852
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
12523
12853
|
import { cva as cva5 } from "class-variance-authority";
|
|
12524
12854
|
import { ChevronDown as ChevronDown7 } from "lucide-react";
|
|
12525
|
-
import { jsx as
|
|
12526
|
-
var NavigationMenu = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
12855
|
+
import { jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
12856
|
+
var NavigationMenu = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(
|
|
12527
12857
|
NavigationMenuPrimitive.Root,
|
|
12528
12858
|
{
|
|
12529
12859
|
ref,
|
|
@@ -12531,12 +12861,12 @@ var NavigationMenu = React50.forwardRef(({ className, children, ...props }, ref)
|
|
|
12531
12861
|
...props,
|
|
12532
12862
|
children: [
|
|
12533
12863
|
children,
|
|
12534
|
-
/* @__PURE__ */
|
|
12864
|
+
/* @__PURE__ */ jsx82(NavigationMenuViewport, {})
|
|
12535
12865
|
]
|
|
12536
12866
|
}
|
|
12537
12867
|
));
|
|
12538
12868
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
12539
|
-
var NavigationMenuList = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12869
|
+
var NavigationMenuList = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx82(
|
|
12540
12870
|
NavigationMenuPrimitive.List,
|
|
12541
12871
|
{
|
|
12542
12872
|
ref,
|
|
@@ -12549,7 +12879,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
12549
12879
|
var navigationMenuTriggerStyle = cva5(
|
|
12550
12880
|
"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"
|
|
12551
12881
|
);
|
|
12552
|
-
var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
12882
|
+
var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs52(
|
|
12553
12883
|
NavigationMenuPrimitive.Trigger,
|
|
12554
12884
|
{
|
|
12555
12885
|
ref,
|
|
@@ -12558,7 +12888,7 @@ var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props
|
|
|
12558
12888
|
children: [
|
|
12559
12889
|
children,
|
|
12560
12890
|
" ",
|
|
12561
|
-
/* @__PURE__ */
|
|
12891
|
+
/* @__PURE__ */ jsx82(
|
|
12562
12892
|
ChevronDown7,
|
|
12563
12893
|
{
|
|
12564
12894
|
className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
|
|
@@ -12569,7 +12899,7 @@ var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props
|
|
|
12569
12899
|
}
|
|
12570
12900
|
));
|
|
12571
12901
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
12572
|
-
var NavigationMenuContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12902
|
+
var NavigationMenuContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx82(
|
|
12573
12903
|
NavigationMenuPrimitive.Content,
|
|
12574
12904
|
{
|
|
12575
12905
|
ref,
|
|
@@ -12582,7 +12912,7 @@ var NavigationMenuContent = React50.forwardRef(({ className, ...props }, ref) =>
|
|
|
12582
12912
|
));
|
|
12583
12913
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
12584
12914
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
12585
|
-
var NavigationMenuViewport = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12915
|
+
var NavigationMenuViewport = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx82("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx82(
|
|
12586
12916
|
NavigationMenuPrimitive.Viewport,
|
|
12587
12917
|
{
|
|
12588
12918
|
className: cn(
|
|
@@ -12594,7 +12924,7 @@ var NavigationMenuViewport = React50.forwardRef(({ className, ...props }, ref) =
|
|
|
12594
12924
|
}
|
|
12595
12925
|
) }));
|
|
12596
12926
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
12597
|
-
var NavigationMenuIndicator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12927
|
+
var NavigationMenuIndicator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx82(
|
|
12598
12928
|
NavigationMenuPrimitive.Indicator,
|
|
12599
12929
|
{
|
|
12600
12930
|
ref,
|
|
@@ -12603,7 +12933,7 @@ var NavigationMenuIndicator = React50.forwardRef(({ className, ...props }, ref)
|
|
|
12603
12933
|
className
|
|
12604
12934
|
),
|
|
12605
12935
|
...props,
|
|
12606
|
-
children: /* @__PURE__ */
|
|
12936
|
+
children: /* @__PURE__ */ jsx82("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
12607
12937
|
}
|
|
12608
12938
|
));
|
|
12609
12939
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
@@ -12611,8 +12941,8 @@ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayN
|
|
|
12611
12941
|
// src/components/ui/pagination.tsx
|
|
12612
12942
|
import * as React51 from "react";
|
|
12613
12943
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight8, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
12614
|
-
import { jsx as
|
|
12615
|
-
var Pagination = ({ className, ...props }) => /* @__PURE__ */
|
|
12944
|
+
import { jsx as jsx83, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
12945
|
+
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx83(
|
|
12616
12946
|
"nav",
|
|
12617
12947
|
{
|
|
12618
12948
|
role: "navigation",
|
|
@@ -12623,12 +12953,12 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx82(
|
|
|
12623
12953
|
);
|
|
12624
12954
|
Pagination.displayName = "Pagination";
|
|
12625
12955
|
var PaginationContent = React51.forwardRef(
|
|
12626
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
12956
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx83("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
12627
12957
|
);
|
|
12628
12958
|
PaginationContent.displayName = "PaginationContent";
|
|
12629
|
-
var PaginationItem = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
12959
|
+
var PaginationItem = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83("li", { ref, className: cn("", className), ...props }));
|
|
12630
12960
|
PaginationItem.displayName = "PaginationItem";
|
|
12631
|
-
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */
|
|
12961
|
+
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx83(
|
|
12632
12962
|
"a",
|
|
12633
12963
|
{
|
|
12634
12964
|
"aria-current": isActive ? "page" : void 0,
|
|
@@ -12643,29 +12973,29 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
|
|
|
12643
12973
|
}
|
|
12644
12974
|
);
|
|
12645
12975
|
PaginationLink.displayName = "PaginationLink";
|
|
12646
|
-
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */
|
|
12647
|
-
/* @__PURE__ */
|
|
12648
|
-
/* @__PURE__ */
|
|
12976
|
+
var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ jsxs53(PaginationLink, { "aria-label": "Go to previous page", size: "default", className: cn("gap-1 pl-2.5", className), ...props, children: [
|
|
12977
|
+
/* @__PURE__ */ jsx83(ChevronLeft2, { className: "h-4 w-4" }),
|
|
12978
|
+
/* @__PURE__ */ jsx83("span", { children: "Previous" })
|
|
12649
12979
|
] });
|
|
12650
12980
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
12651
|
-
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */
|
|
12652
|
-
/* @__PURE__ */
|
|
12653
|
-
/* @__PURE__ */
|
|
12981
|
+
var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ jsxs53(PaginationLink, { "aria-label": "Go to next page", size: "default", className: cn("gap-1 pr-2.5", className), ...props, children: [
|
|
12982
|
+
/* @__PURE__ */ jsx83("span", { children: "Next" }),
|
|
12983
|
+
/* @__PURE__ */ jsx83(ChevronRight8, { className: "h-4 w-4" })
|
|
12654
12984
|
] });
|
|
12655
12985
|
PaginationNext.displayName = "PaginationNext";
|
|
12656
|
-
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */
|
|
12657
|
-
/* @__PURE__ */
|
|
12658
|
-
/* @__PURE__ */
|
|
12986
|
+
var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs53("span", { "aria-hidden": true, className: cn("flex h-9 w-9 items-center justify-center", className), ...props, children: [
|
|
12987
|
+
/* @__PURE__ */ jsx83(MoreHorizontal2, { className: "h-4 w-4" }),
|
|
12988
|
+
/* @__PURE__ */ jsx83("span", { className: "sr-only", children: "More pages" })
|
|
12659
12989
|
] });
|
|
12660
12990
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
12661
12991
|
|
|
12662
12992
|
// src/components/ui/popover.tsx
|
|
12663
12993
|
import * as React52 from "react";
|
|
12664
12994
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
12665
|
-
import { jsx as
|
|
12995
|
+
import { jsx as jsx84 } from "react/jsx-runtime";
|
|
12666
12996
|
var Popover = PopoverPrimitive.Root;
|
|
12667
12997
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
12668
|
-
var PopoverContent = React52.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */
|
|
12998
|
+
var PopoverContent = React52.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx84(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx84(
|
|
12669
12999
|
PopoverPrimitive.Content,
|
|
12670
13000
|
{
|
|
12671
13001
|
ref,
|
|
@@ -12684,13 +13014,13 @@ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
|
12684
13014
|
import * as React53 from "react";
|
|
12685
13015
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
12686
13016
|
import { Circle as Circle5 } from "lucide-react";
|
|
12687
|
-
import { jsx as
|
|
13017
|
+
import { jsx as jsx85 } from "react/jsx-runtime";
|
|
12688
13018
|
var RadioGroup4 = React53.forwardRef(({ className, ...props }, ref) => {
|
|
12689
|
-
return /* @__PURE__ */
|
|
13019
|
+
return /* @__PURE__ */ jsx85(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
|
|
12690
13020
|
});
|
|
12691
13021
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
12692
13022
|
var RadioGroupItem = React53.forwardRef(({ className, ...props }, ref) => {
|
|
12693
|
-
return /* @__PURE__ */
|
|
13023
|
+
return /* @__PURE__ */ jsx85(
|
|
12694
13024
|
RadioGroupPrimitive.Item,
|
|
12695
13025
|
{
|
|
12696
13026
|
ref,
|
|
@@ -12699,7 +13029,7 @@ var RadioGroupItem = React53.forwardRef(({ className, ...props }, ref) => {
|
|
|
12699
13029
|
className
|
|
12700
13030
|
),
|
|
12701
13031
|
...props,
|
|
12702
|
-
children: /* @__PURE__ */
|
|
13032
|
+
children: /* @__PURE__ */ jsx85(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx85(Circle5, { className: "h-2.5 w-2.5 fill-current text-current" }) })
|
|
12703
13033
|
}
|
|
12704
13034
|
);
|
|
12705
13035
|
});
|
|
@@ -12708,8 +13038,8 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
12708
13038
|
// src/components/ui/resizable.tsx
|
|
12709
13039
|
import { GripVertical } from "lucide-react";
|
|
12710
13040
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
12711
|
-
import { jsx as
|
|
12712
|
-
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */
|
|
13041
|
+
import { jsx as jsx86 } from "react/jsx-runtime";
|
|
13042
|
+
var ResizablePanelGroup = ({ className, ...props }) => /* @__PURE__ */ jsx86(
|
|
12713
13043
|
ResizablePrimitive.PanelGroup,
|
|
12714
13044
|
{
|
|
12715
13045
|
className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className),
|
|
@@ -12721,7 +13051,7 @@ var ResizableHandle = ({
|
|
|
12721
13051
|
withHandle,
|
|
12722
13052
|
className,
|
|
12723
13053
|
...props
|
|
12724
|
-
}) => /* @__PURE__ */
|
|
13054
|
+
}) => /* @__PURE__ */ jsx86(
|
|
12725
13055
|
ResizablePrimitive.PanelResizeHandle,
|
|
12726
13056
|
{
|
|
12727
13057
|
className: cn(
|
|
@@ -12729,15 +13059,15 @@ var ResizableHandle = ({
|
|
|
12729
13059
|
className
|
|
12730
13060
|
),
|
|
12731
13061
|
...props,
|
|
12732
|
-
children: withHandle && /* @__PURE__ */
|
|
13062
|
+
children: withHandle && /* @__PURE__ */ jsx86("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border", children: /* @__PURE__ */ jsx86(GripVertical, { className: "h-2.5 w-2.5" }) })
|
|
12733
13063
|
}
|
|
12734
13064
|
);
|
|
12735
13065
|
|
|
12736
13066
|
// src/components/ui/separator.tsx
|
|
12737
13067
|
import * as React54 from "react";
|
|
12738
13068
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
12739
|
-
import { jsx as
|
|
12740
|
-
var Separator5 = React54.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */
|
|
13069
|
+
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
13070
|
+
var Separator5 = React54.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx87(
|
|
12741
13071
|
SeparatorPrimitive.Root,
|
|
12742
13072
|
{
|
|
12743
13073
|
ref,
|
|
@@ -12754,12 +13084,12 @@ import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
|
12754
13084
|
import { cva as cva6 } from "class-variance-authority";
|
|
12755
13085
|
import { X as X7 } from "lucide-react";
|
|
12756
13086
|
import * as React55 from "react";
|
|
12757
|
-
import { jsx as
|
|
13087
|
+
import { jsx as jsx88, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
12758
13088
|
var Sheet = SheetPrimitive.Root;
|
|
12759
13089
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
12760
13090
|
var SheetClose = SheetPrimitive.Close;
|
|
12761
13091
|
var SheetPortal = SheetPrimitive.Portal;
|
|
12762
|
-
var SheetOverlay = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13092
|
+
var SheetOverlay = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx88(
|
|
12763
13093
|
SheetPrimitive.Overlay,
|
|
12764
13094
|
{
|
|
12765
13095
|
className: cn(
|
|
@@ -12796,11 +13126,11 @@ var SheetContent = React55.forwardRef(
|
|
|
12796
13126
|
closeButtonClassName,
|
|
12797
13127
|
closeButtonLabel = "Close",
|
|
12798
13128
|
...props
|
|
12799
|
-
}, ref) => /* @__PURE__ */
|
|
12800
|
-
/* @__PURE__ */
|
|
12801
|
-
/* @__PURE__ */
|
|
13129
|
+
}, ref) => /* @__PURE__ */ jsxs54(SheetPortal, { children: [
|
|
13130
|
+
/* @__PURE__ */ jsx88(SheetOverlay, {}),
|
|
13131
|
+
/* @__PURE__ */ jsxs54(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
12802
13132
|
children,
|
|
12803
|
-
showCloseButton ? /* @__PURE__ */
|
|
13133
|
+
showCloseButton ? /* @__PURE__ */ jsxs54(
|
|
12804
13134
|
SheetPrimitive.Close,
|
|
12805
13135
|
{
|
|
12806
13136
|
className: cn(
|
|
@@ -12808,8 +13138,8 @@ var SheetContent = React55.forwardRef(
|
|
|
12808
13138
|
closeButtonClassName
|
|
12809
13139
|
),
|
|
12810
13140
|
children: [
|
|
12811
|
-
/* @__PURE__ */
|
|
12812
|
-
/* @__PURE__ */
|
|
13141
|
+
/* @__PURE__ */ jsx88(X7, { className: "h-4 w-4" }),
|
|
13142
|
+
/* @__PURE__ */ jsx88("span", { className: "sr-only", children: closeButtonLabel })
|
|
12813
13143
|
]
|
|
12814
13144
|
}
|
|
12815
13145
|
) : null
|
|
@@ -12817,13 +13147,13 @@ var SheetContent = React55.forwardRef(
|
|
|
12817
13147
|
] })
|
|
12818
13148
|
);
|
|
12819
13149
|
SheetContent.displayName = SheetPrimitive.Content.displayName;
|
|
12820
|
-
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */
|
|
13150
|
+
var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx88("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
|
|
12821
13151
|
SheetHeader.displayName = "SheetHeader";
|
|
12822
|
-
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */
|
|
13152
|
+
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx88("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
12823
13153
|
SheetFooter.displayName = "SheetFooter";
|
|
12824
|
-
var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13154
|
+
var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx88(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
12825
13155
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
12826
|
-
var SheetDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13156
|
+
var SheetDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx88(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
12827
13157
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
12828
13158
|
|
|
12829
13159
|
// src/components/ui/sidebar.tsx
|
|
@@ -12850,7 +13180,7 @@ function useIsMobile() {
|
|
|
12850
13180
|
}
|
|
12851
13181
|
|
|
12852
13182
|
// src/components/ui/sidebar.tsx
|
|
12853
|
-
import { jsx as
|
|
13183
|
+
import { jsx as jsx89, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
12854
13184
|
var SIDEBAR_COOKIE_NAME = "sidebar:state";
|
|
12855
13185
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
12856
13186
|
var SIDEBAR_WIDTH = "16rem";
|
|
@@ -12908,7 +13238,7 @@ var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
12908
13238
|
}),
|
|
12909
13239
|
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]
|
|
12910
13240
|
);
|
|
12911
|
-
return /* @__PURE__ */
|
|
13241
|
+
return /* @__PURE__ */ jsx89(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx89(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx89(
|
|
12912
13242
|
"div",
|
|
12913
13243
|
{
|
|
12914
13244
|
style: {
|
|
@@ -12927,7 +13257,7 @@ SidebarProvider.displayName = "SidebarProvider";
|
|
|
12927
13257
|
var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
12928
13258
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
12929
13259
|
if (collapsible === "none") {
|
|
12930
|
-
return /* @__PURE__ */
|
|
13260
|
+
return /* @__PURE__ */ jsx89(
|
|
12931
13261
|
"div",
|
|
12932
13262
|
{
|
|
12933
13263
|
className: cn("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground", className),
|
|
@@ -12938,7 +13268,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
12938
13268
|
);
|
|
12939
13269
|
}
|
|
12940
13270
|
if (isMobile) {
|
|
12941
|
-
return /* @__PURE__ */
|
|
13271
|
+
return /* @__PURE__ */ jsx89(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsx89(
|
|
12942
13272
|
SheetContent,
|
|
12943
13273
|
{
|
|
12944
13274
|
"data-sidebar": "sidebar",
|
|
@@ -12948,11 +13278,11 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
12948
13278
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
12949
13279
|
},
|
|
12950
13280
|
side,
|
|
12951
|
-
children: /* @__PURE__ */
|
|
13281
|
+
children: /* @__PURE__ */ jsx89("div", { className: "flex h-full w-full flex-col", children })
|
|
12952
13282
|
}
|
|
12953
13283
|
) });
|
|
12954
13284
|
}
|
|
12955
|
-
return /* @__PURE__ */
|
|
13285
|
+
return /* @__PURE__ */ jsxs55(
|
|
12956
13286
|
"div",
|
|
12957
13287
|
{
|
|
12958
13288
|
ref,
|
|
@@ -12962,7 +13292,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
12962
13292
|
"data-variant": variant,
|
|
12963
13293
|
"data-side": side,
|
|
12964
13294
|
children: [
|
|
12965
|
-
/* @__PURE__ */
|
|
13295
|
+
/* @__PURE__ */ jsx89(
|
|
12966
13296
|
"div",
|
|
12967
13297
|
{
|
|
12968
13298
|
className: cn(
|
|
@@ -12973,7 +13303,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
12973
13303
|
)
|
|
12974
13304
|
}
|
|
12975
13305
|
),
|
|
12976
|
-
/* @__PURE__ */
|
|
13306
|
+
/* @__PURE__ */ jsx89(
|
|
12977
13307
|
"div",
|
|
12978
13308
|
{
|
|
12979
13309
|
className: cn(
|
|
@@ -12984,7 +13314,7 @@ var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
12984
13314
|
className
|
|
12985
13315
|
),
|
|
12986
13316
|
...props,
|
|
12987
|
-
children: /* @__PURE__ */
|
|
13317
|
+
children: /* @__PURE__ */ jsx89(
|
|
12988
13318
|
"div",
|
|
12989
13319
|
{
|
|
12990
13320
|
"data-sidebar": "sidebar",
|
|
@@ -13002,7 +13332,7 @@ Sidebar.displayName = "Sidebar";
|
|
|
13002
13332
|
var SidebarTrigger = React57.forwardRef(
|
|
13003
13333
|
({ className, onClick, ...props }, ref) => {
|
|
13004
13334
|
const { toggleSidebar } = useSidebar();
|
|
13005
|
-
return /* @__PURE__ */
|
|
13335
|
+
return /* @__PURE__ */ jsxs55(
|
|
13006
13336
|
Button,
|
|
13007
13337
|
{
|
|
13008
13338
|
ref,
|
|
@@ -13016,8 +13346,8 @@ var SidebarTrigger = React57.forwardRef(
|
|
|
13016
13346
|
},
|
|
13017
13347
|
...props,
|
|
13018
13348
|
children: [
|
|
13019
|
-
/* @__PURE__ */
|
|
13020
|
-
/* @__PURE__ */
|
|
13349
|
+
/* @__PURE__ */ jsx89(PanelLeft, {}),
|
|
13350
|
+
/* @__PURE__ */ jsx89("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
13021
13351
|
]
|
|
13022
13352
|
}
|
|
13023
13353
|
);
|
|
@@ -13027,7 +13357,7 @@ SidebarTrigger.displayName = "SidebarTrigger";
|
|
|
13027
13357
|
var SidebarRail = React57.forwardRef(
|
|
13028
13358
|
({ className, ...props }, ref) => {
|
|
13029
13359
|
const { toggleSidebar } = useSidebar();
|
|
13030
|
-
return /* @__PURE__ */
|
|
13360
|
+
return /* @__PURE__ */ jsx89(
|
|
13031
13361
|
"button",
|
|
13032
13362
|
{
|
|
13033
13363
|
ref,
|
|
@@ -13052,7 +13382,7 @@ var SidebarRail = React57.forwardRef(
|
|
|
13052
13382
|
);
|
|
13053
13383
|
SidebarRail.displayName = "SidebarRail";
|
|
13054
13384
|
var SidebarInset = React57.forwardRef(({ className, ...props }, ref) => {
|
|
13055
|
-
return /* @__PURE__ */
|
|
13385
|
+
return /* @__PURE__ */ jsx89(
|
|
13056
13386
|
"main",
|
|
13057
13387
|
{
|
|
13058
13388
|
ref,
|
|
@@ -13068,7 +13398,7 @@ var SidebarInset = React57.forwardRef(({ className, ...props }, ref) => {
|
|
|
13068
13398
|
SidebarInset.displayName = "SidebarInset";
|
|
13069
13399
|
var SidebarInput = React57.forwardRef(
|
|
13070
13400
|
({ className, ...props }, ref) => {
|
|
13071
|
-
return /* @__PURE__ */
|
|
13401
|
+
return /* @__PURE__ */ jsx89(
|
|
13072
13402
|
Input,
|
|
13073
13403
|
{
|
|
13074
13404
|
ref,
|
|
@@ -13084,16 +13414,16 @@ var SidebarInput = React57.forwardRef(
|
|
|
13084
13414
|
);
|
|
13085
13415
|
SidebarInput.displayName = "SidebarInput";
|
|
13086
13416
|
var SidebarHeader = React57.forwardRef(({ className, ...props }, ref) => {
|
|
13087
|
-
return /* @__PURE__ */
|
|
13417
|
+
return /* @__PURE__ */ jsx89("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
13088
13418
|
});
|
|
13089
13419
|
SidebarHeader.displayName = "SidebarHeader";
|
|
13090
13420
|
var SidebarFooter = React57.forwardRef(({ className, ...props }, ref) => {
|
|
13091
|
-
return /* @__PURE__ */
|
|
13421
|
+
return /* @__PURE__ */ jsx89("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
13092
13422
|
});
|
|
13093
13423
|
SidebarFooter.displayName = "SidebarFooter";
|
|
13094
13424
|
var SidebarSeparator = React57.forwardRef(
|
|
13095
13425
|
({ className, ...props }, ref) => {
|
|
13096
|
-
return /* @__PURE__ */
|
|
13426
|
+
return /* @__PURE__ */ jsx89(
|
|
13097
13427
|
Separator5,
|
|
13098
13428
|
{
|
|
13099
13429
|
ref,
|
|
@@ -13106,7 +13436,7 @@ var SidebarSeparator = React57.forwardRef(
|
|
|
13106
13436
|
);
|
|
13107
13437
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
13108
13438
|
var SidebarContent = React57.forwardRef(({ className, ...props }, ref) => {
|
|
13109
|
-
return /* @__PURE__ */
|
|
13439
|
+
return /* @__PURE__ */ jsx89(
|
|
13110
13440
|
"div",
|
|
13111
13441
|
{
|
|
13112
13442
|
ref,
|
|
@@ -13121,7 +13451,7 @@ var SidebarContent = React57.forwardRef(({ className, ...props }, ref) => {
|
|
|
13121
13451
|
});
|
|
13122
13452
|
SidebarContent.displayName = "SidebarContent";
|
|
13123
13453
|
var SidebarGroup = React57.forwardRef(({ className, ...props }, ref) => {
|
|
13124
|
-
return /* @__PURE__ */
|
|
13454
|
+
return /* @__PURE__ */ jsx89(
|
|
13125
13455
|
"div",
|
|
13126
13456
|
{
|
|
13127
13457
|
ref,
|
|
@@ -13135,7 +13465,7 @@ SidebarGroup.displayName = "SidebarGroup";
|
|
|
13135
13465
|
var SidebarGroupLabel = React57.forwardRef(
|
|
13136
13466
|
({ className, asChild = false, ...props }, ref) => {
|
|
13137
13467
|
const Comp = asChild ? Slot4 : "div";
|
|
13138
|
-
return /* @__PURE__ */
|
|
13468
|
+
return /* @__PURE__ */ jsx89(
|
|
13139
13469
|
Comp,
|
|
13140
13470
|
{
|
|
13141
13471
|
ref,
|
|
@@ -13154,7 +13484,7 @@ SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
|
13154
13484
|
var SidebarGroupAction = React57.forwardRef(
|
|
13155
13485
|
({ className, asChild = false, ...props }, ref) => {
|
|
13156
13486
|
const Comp = asChild ? Slot4 : "button";
|
|
13157
|
-
return /* @__PURE__ */
|
|
13487
|
+
return /* @__PURE__ */ jsx89(
|
|
13158
13488
|
Comp,
|
|
13159
13489
|
{
|
|
13160
13490
|
ref,
|
|
@@ -13173,12 +13503,12 @@ var SidebarGroupAction = React57.forwardRef(
|
|
|
13173
13503
|
);
|
|
13174
13504
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
13175
13505
|
var SidebarGroupContent = React57.forwardRef(
|
|
13176
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13506
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx89("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
13177
13507
|
);
|
|
13178
13508
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
13179
|
-
var SidebarMenu = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13509
|
+
var SidebarMenu = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx89("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
13180
13510
|
SidebarMenu.displayName = "SidebarMenu";
|
|
13181
|
-
var SidebarMenuItem = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13511
|
+
var SidebarMenuItem = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx89("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
13182
13512
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
13183
13513
|
var sidebarMenuButtonVariants = cva7(
|
|
13184
13514
|
"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",
|
|
@@ -13203,7 +13533,7 @@ var sidebarMenuButtonVariants = cva7(
|
|
|
13203
13533
|
var SidebarMenuButton = React57.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
13204
13534
|
const Comp = asChild ? Slot4 : "button";
|
|
13205
13535
|
const { isMobile, state } = useSidebar();
|
|
13206
|
-
const button = /* @__PURE__ */
|
|
13536
|
+
const button = /* @__PURE__ */ jsx89(
|
|
13207
13537
|
Comp,
|
|
13208
13538
|
{
|
|
13209
13539
|
ref,
|
|
@@ -13222,15 +13552,15 @@ var SidebarMenuButton = React57.forwardRef(({ asChild = false, isActive = false,
|
|
|
13222
13552
|
children: tooltip
|
|
13223
13553
|
};
|
|
13224
13554
|
}
|
|
13225
|
-
return /* @__PURE__ */
|
|
13226
|
-
/* @__PURE__ */
|
|
13227
|
-
/* @__PURE__ */
|
|
13555
|
+
return /* @__PURE__ */ jsxs55(Tooltip, { children: [
|
|
13556
|
+
/* @__PURE__ */ jsx89(TooltipTrigger, { asChild: true, children: button }),
|
|
13557
|
+
/* @__PURE__ */ jsx89(TooltipContent, { side: "right", align: "center", hidden: state !== "collapsed" || isMobile, ...tooltip })
|
|
13228
13558
|
] });
|
|
13229
13559
|
});
|
|
13230
13560
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
13231
13561
|
var SidebarMenuAction = React57.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
13232
13562
|
const Comp = asChild ? Slot4 : "button";
|
|
13233
|
-
return /* @__PURE__ */
|
|
13563
|
+
return /* @__PURE__ */ jsx89(
|
|
13234
13564
|
Comp,
|
|
13235
13565
|
{
|
|
13236
13566
|
ref,
|
|
@@ -13252,7 +13582,7 @@ var SidebarMenuAction = React57.forwardRef(({ className, asChild = false, showOn
|
|
|
13252
13582
|
});
|
|
13253
13583
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
13254
13584
|
var SidebarMenuBadge = React57.forwardRef(
|
|
13255
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13585
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx89(
|
|
13256
13586
|
"div",
|
|
13257
13587
|
{
|
|
13258
13588
|
ref,
|
|
@@ -13275,7 +13605,7 @@ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...
|
|
|
13275
13605
|
const width = React57.useMemo(() => {
|
|
13276
13606
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
13277
13607
|
}, []);
|
|
13278
|
-
return /* @__PURE__ */
|
|
13608
|
+
return /* @__PURE__ */ jsxs55(
|
|
13279
13609
|
"div",
|
|
13280
13610
|
{
|
|
13281
13611
|
ref,
|
|
@@ -13283,8 +13613,8 @@ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...
|
|
|
13283
13613
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
13284
13614
|
...props,
|
|
13285
13615
|
children: [
|
|
13286
|
-
showIcon && /* @__PURE__ */
|
|
13287
|
-
/* @__PURE__ */
|
|
13616
|
+
showIcon && /* @__PURE__ */ jsx89(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
13617
|
+
/* @__PURE__ */ jsx89(
|
|
13288
13618
|
Skeleton,
|
|
13289
13619
|
{
|
|
13290
13620
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -13300,7 +13630,7 @@ var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...
|
|
|
13300
13630
|
});
|
|
13301
13631
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
13302
13632
|
var SidebarMenuSub = React57.forwardRef(
|
|
13303
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13633
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx89(
|
|
13304
13634
|
"ul",
|
|
13305
13635
|
{
|
|
13306
13636
|
ref,
|
|
@@ -13315,11 +13645,11 @@ var SidebarMenuSub = React57.forwardRef(
|
|
|
13315
13645
|
)
|
|
13316
13646
|
);
|
|
13317
13647
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
13318
|
-
var SidebarMenuSubItem = React57.forwardRef(({ ...props }, ref) => /* @__PURE__ */
|
|
13648
|
+
var SidebarMenuSubItem = React57.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx89("li", { ref, ...props }));
|
|
13319
13649
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
13320
13650
|
var SidebarMenuSubButton = React57.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
13321
13651
|
const Comp = asChild ? Slot4 : "a";
|
|
13322
|
-
return /* @__PURE__ */
|
|
13652
|
+
return /* @__PURE__ */ jsx89(
|
|
13323
13653
|
Comp,
|
|
13324
13654
|
{
|
|
13325
13655
|
ref,
|
|
@@ -13343,16 +13673,16 @@ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
|
13343
13673
|
// src/components/ui/slider.tsx
|
|
13344
13674
|
import * as React58 from "react";
|
|
13345
13675
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
13346
|
-
import { jsx as
|
|
13347
|
-
var Slider = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13676
|
+
import { jsx as jsx90, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
13677
|
+
var Slider = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs56(
|
|
13348
13678
|
SliderPrimitive.Root,
|
|
13349
13679
|
{
|
|
13350
13680
|
ref,
|
|
13351
13681
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
13352
13682
|
...props,
|
|
13353
13683
|
children: [
|
|
13354
|
-
/* @__PURE__ */
|
|
13355
|
-
/* @__PURE__ */
|
|
13684
|
+
/* @__PURE__ */ jsx90(SliderPrimitive.Track, { className: "relative h-2 w-full grow overflow-hidden rounded-full bg-secondary", children: /* @__PURE__ */ jsx90(SliderPrimitive.Range, { className: "absolute h-full bg-primary" }) }),
|
|
13685
|
+
/* @__PURE__ */ jsx90(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" })
|
|
13356
13686
|
]
|
|
13357
13687
|
}
|
|
13358
13688
|
));
|
|
@@ -13361,8 +13691,8 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
13361
13691
|
// src/components/ui/switch.tsx
|
|
13362
13692
|
import * as React59 from "react";
|
|
13363
13693
|
import * as SwitchPrimitives2 from "@radix-ui/react-switch";
|
|
13364
|
-
import { jsx as
|
|
13365
|
-
var Switch2 = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13694
|
+
import { jsx as jsx91 } from "react/jsx-runtime";
|
|
13695
|
+
var Switch2 = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx91(
|
|
13366
13696
|
SwitchPrimitives2.Root,
|
|
13367
13697
|
{
|
|
13368
13698
|
className: cn(
|
|
@@ -13371,7 +13701,7 @@ var Switch2 = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
13371
13701
|
),
|
|
13372
13702
|
...props,
|
|
13373
13703
|
ref,
|
|
13374
|
-
children: /* @__PURE__ */
|
|
13704
|
+
children: /* @__PURE__ */ jsx91(
|
|
13375
13705
|
SwitchPrimitives2.Thumb,
|
|
13376
13706
|
{
|
|
13377
13707
|
className: cn(
|
|
@@ -13385,25 +13715,25 @@ Switch2.displayName = SwitchPrimitives2.Root.displayName;
|
|
|
13385
13715
|
|
|
13386
13716
|
// src/components/ui/table.tsx
|
|
13387
13717
|
import * as React60 from "react";
|
|
13388
|
-
import { jsx as
|
|
13718
|
+
import { jsx as jsx92 } from "react/jsx-runtime";
|
|
13389
13719
|
var Table = React60.forwardRef(
|
|
13390
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13720
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx92("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
13391
13721
|
);
|
|
13392
13722
|
Table.displayName = "Table";
|
|
13393
13723
|
var TableHeader = React60.forwardRef(
|
|
13394
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13724
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
13395
13725
|
);
|
|
13396
13726
|
TableHeader.displayName = "TableHeader";
|
|
13397
13727
|
var TableBody = React60.forwardRef(
|
|
13398
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13728
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
13399
13729
|
);
|
|
13400
13730
|
TableBody.displayName = "TableBody";
|
|
13401
13731
|
var TableFooter = React60.forwardRef(
|
|
13402
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13732
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
13403
13733
|
);
|
|
13404
13734
|
TableFooter.displayName = "TableFooter";
|
|
13405
13735
|
var TableRow = React60.forwardRef(
|
|
13406
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13736
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92(
|
|
13407
13737
|
"tr",
|
|
13408
13738
|
{
|
|
13409
13739
|
ref,
|
|
@@ -13414,7 +13744,7 @@ var TableRow = React60.forwardRef(
|
|
|
13414
13744
|
);
|
|
13415
13745
|
TableRow.displayName = "TableRow";
|
|
13416
13746
|
var TableHead = React60.forwardRef(
|
|
13417
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13747
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92(
|
|
13418
13748
|
"th",
|
|
13419
13749
|
{
|
|
13420
13750
|
ref,
|
|
@@ -13428,11 +13758,11 @@ var TableHead = React60.forwardRef(
|
|
|
13428
13758
|
);
|
|
13429
13759
|
TableHead.displayName = "TableHead";
|
|
13430
13760
|
var TableCell = React60.forwardRef(
|
|
13431
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13761
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
13432
13762
|
);
|
|
13433
13763
|
TableCell.displayName = "TableCell";
|
|
13434
13764
|
var TableCaption = React60.forwardRef(
|
|
13435
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
13765
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx92("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
13436
13766
|
);
|
|
13437
13767
|
TableCaption.displayName = "TableCaption";
|
|
13438
13768
|
|
|
@@ -13441,9 +13771,9 @@ import * as React61 from "react";
|
|
|
13441
13771
|
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
13442
13772
|
import { cva as cva8 } from "class-variance-authority";
|
|
13443
13773
|
import { X as X8 } from "lucide-react";
|
|
13444
|
-
import { jsx as
|
|
13774
|
+
import { jsx as jsx93 } from "react/jsx-runtime";
|
|
13445
13775
|
var ToastProvider = ToastPrimitives.Provider;
|
|
13446
|
-
var ToastViewport = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13776
|
+
var ToastViewport = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx93(
|
|
13447
13777
|
ToastPrimitives.Viewport,
|
|
13448
13778
|
{
|
|
13449
13779
|
ref,
|
|
@@ -13470,10 +13800,10 @@ var toastVariants = cva8(
|
|
|
13470
13800
|
}
|
|
13471
13801
|
);
|
|
13472
13802
|
var Toast = React61.forwardRef(({ className, variant, ...props }, ref) => {
|
|
13473
|
-
return /* @__PURE__ */
|
|
13803
|
+
return /* @__PURE__ */ jsx93(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
|
|
13474
13804
|
});
|
|
13475
13805
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
13476
|
-
var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13806
|
+
var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx93(
|
|
13477
13807
|
ToastPrimitives.Action,
|
|
13478
13808
|
{
|
|
13479
13809
|
ref,
|
|
@@ -13485,7 +13815,7 @@ var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
13485
13815
|
}
|
|
13486
13816
|
));
|
|
13487
13817
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
13488
|
-
var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */
|
|
13818
|
+
var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ jsx93(
|
|
13489
13819
|
ToastPrimitives.Close,
|
|
13490
13820
|
{
|
|
13491
13821
|
ref,
|
|
@@ -13499,31 +13829,31 @@ var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /
|
|
|
13499
13829
|
},
|
|
13500
13830
|
"toast-close": "",
|
|
13501
13831
|
...props,
|
|
13502
|
-
children: /* @__PURE__ */
|
|
13832
|
+
children: /* @__PURE__ */ jsx93(X8, { className: "h-4 w-4" })
|
|
13503
13833
|
}
|
|
13504
13834
|
));
|
|
13505
13835
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
13506
|
-
var ToastTitle = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13836
|
+
var ToastTitle = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx93(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
13507
13837
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
13508
|
-
var ToastDescription = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
|
|
13838
|
+
var ToastDescription = React61.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx93(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
|
|
13509
13839
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
13510
13840
|
|
|
13511
13841
|
// src/components/ui/toaster.tsx
|
|
13512
|
-
import { jsx as
|
|
13842
|
+
import { jsx as jsx94, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
13513
13843
|
function Toaster2() {
|
|
13514
13844
|
const { toasts } = useToast();
|
|
13515
|
-
return /* @__PURE__ */
|
|
13845
|
+
return /* @__PURE__ */ jsxs57(ToastProvider, { children: [
|
|
13516
13846
|
toasts.map(function({ id, title, description, action, ...props }) {
|
|
13517
|
-
return /* @__PURE__ */
|
|
13518
|
-
/* @__PURE__ */
|
|
13519
|
-
title && /* @__PURE__ */
|
|
13520
|
-
description && /* @__PURE__ */
|
|
13847
|
+
return /* @__PURE__ */ jsxs57(Toast, { ...props, children: [
|
|
13848
|
+
/* @__PURE__ */ jsxs57("div", { className: "grid gap-1", children: [
|
|
13849
|
+
title && /* @__PURE__ */ jsx94(ToastTitle, { children: title }),
|
|
13850
|
+
description && /* @__PURE__ */ jsx94(ToastDescription, { children: description })
|
|
13521
13851
|
] }),
|
|
13522
13852
|
action,
|
|
13523
|
-
/* @__PURE__ */
|
|
13853
|
+
/* @__PURE__ */ jsx94(ToastClose, {})
|
|
13524
13854
|
] }, id);
|
|
13525
13855
|
}),
|
|
13526
|
-
/* @__PURE__ */
|
|
13856
|
+
/* @__PURE__ */ jsx94(ToastViewport, {})
|
|
13527
13857
|
] });
|
|
13528
13858
|
}
|
|
13529
13859
|
|
|
@@ -13531,7 +13861,7 @@ function Toaster2() {
|
|
|
13531
13861
|
import * as React62 from "react";
|
|
13532
13862
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
13533
13863
|
import { cva as cva9 } from "class-variance-authority";
|
|
13534
|
-
import { jsx as
|
|
13864
|
+
import { jsx as jsx95 } from "react/jsx-runtime";
|
|
13535
13865
|
var toggleVariants = cva9(
|
|
13536
13866
|
"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",
|
|
13537
13867
|
{
|
|
@@ -13552,22 +13882,22 @@ var toggleVariants = cva9(
|
|
|
13552
13882
|
}
|
|
13553
13883
|
}
|
|
13554
13884
|
);
|
|
13555
|
-
var Toggle = React62.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */
|
|
13885
|
+
var Toggle = React62.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx95(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
13556
13886
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
13557
13887
|
|
|
13558
13888
|
// src/components/ui/toggle-group.tsx
|
|
13559
13889
|
import * as React63 from "react";
|
|
13560
13890
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
13561
|
-
import { jsx as
|
|
13891
|
+
import { jsx as jsx96 } from "react/jsx-runtime";
|
|
13562
13892
|
var ToggleGroupContext = React63.createContext({
|
|
13563
13893
|
size: "default",
|
|
13564
13894
|
variant: "default"
|
|
13565
13895
|
});
|
|
13566
|
-
var ToggleGroup = React63.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */
|
|
13896
|
+
var ToggleGroup = React63.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx96(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ jsx96(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
13567
13897
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
13568
13898
|
var ToggleGroupItem = React63.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
13569
13899
|
const context = React63.useContext(ToggleGroupContext);
|
|
13570
|
-
return /* @__PURE__ */
|
|
13900
|
+
return /* @__PURE__ */ jsx96(
|
|
13571
13901
|
ToggleGroupPrimitive.Item,
|
|
13572
13902
|
{
|
|
13573
13903
|
ref,
|
|
@@ -13771,7 +14101,7 @@ var useLayoutModeControl = () => {
|
|
|
13771
14101
|
};
|
|
13772
14102
|
|
|
13773
14103
|
// src/lib/auth.tsx
|
|
13774
|
-
import { createContext as createContext7, useCallback as useCallback12, useContext as useContext9, useEffect as useEffect28, useMemo as
|
|
14104
|
+
import { createContext as createContext7, useCallback as useCallback12, useContext as useContext9, useEffect as useEffect28, useMemo as useMemo17, useRef as useRef10, useState as useState25 } from "react";
|
|
13775
14105
|
|
|
13776
14106
|
// node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
|
|
13777
14107
|
function __rest(s, e) {
|
|
@@ -25305,7 +25635,7 @@ function getSupabasePublic() {
|
|
|
25305
25635
|
}
|
|
25306
25636
|
|
|
25307
25637
|
// src/lib/auth.tsx
|
|
25308
|
-
import { jsx as
|
|
25638
|
+
import { jsx as jsx97 } from "react/jsx-runtime";
|
|
25309
25639
|
var STORAGE_KEYS = {
|
|
25310
25640
|
accessToken: "cc_access_token",
|
|
25311
25641
|
idToken: "cc_id_token",
|
|
@@ -25473,6 +25803,22 @@ var toNonEmptyString = (value) => {
|
|
|
25473
25803
|
const trimmed = value.trim();
|
|
25474
25804
|
return trimmed === "" ? void 0 : trimmed;
|
|
25475
25805
|
};
|
|
25806
|
+
var UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
25807
|
+
var DEFAULT_TENANT_SLUG = "cupcode";
|
|
25808
|
+
var resolveTenantSlug = ({
|
|
25809
|
+
slugClaim,
|
|
25810
|
+
tenantId,
|
|
25811
|
+
userId
|
|
25812
|
+
}) => {
|
|
25813
|
+
const normalizedSlug = slugClaim == null ? void 0 : slugClaim.trim();
|
|
25814
|
+
if (normalizedSlug && normalizedSlug !== userId && !UUID_PATTERN.test(normalizedSlug)) {
|
|
25815
|
+
return normalizedSlug;
|
|
25816
|
+
}
|
|
25817
|
+
const normalizedTenantId = tenantId == null ? void 0 : tenantId.trim();
|
|
25818
|
+
if (!normalizedTenantId || normalizedTenantId === userId) return DEFAULT_TENANT_SLUG;
|
|
25819
|
+
if (!UUID_PATTERN.test(normalizedTenantId)) return normalizedTenantId;
|
|
25820
|
+
return DEFAULT_TENANT_SLUG;
|
|
25821
|
+
};
|
|
25476
25822
|
var normalizePresenceSource = (value) => {
|
|
25477
25823
|
if (typeof value !== "string") return "auto";
|
|
25478
25824
|
const normalized = value.trim().toLowerCase();
|
|
@@ -25648,19 +25994,21 @@ var buildUserFromTokens = ({
|
|
|
25648
25994
|
]);
|
|
25649
25995
|
const nickname = readFromClaims(["nickname", "nick", "https://cupcode.com/nickname"]);
|
|
25650
25996
|
const email = readFromClaims(["email", "https://cupcode.com/email", "upn", "preferred_username", "preferredUsername"]);
|
|
25651
|
-
const
|
|
25652
|
-
"tenant_id",
|
|
25653
|
-
"tenantId",
|
|
25997
|
+
const tenantSlugClaim = readFromClaims([
|
|
25654
25998
|
"tenant_slug",
|
|
25655
25999
|
"tenantSlug",
|
|
25656
26000
|
"company_slug",
|
|
25657
26001
|
"companySlug",
|
|
25658
|
-
"company",
|
|
25659
26002
|
"org_slug",
|
|
25660
26003
|
"orgSlug",
|
|
25661
|
-
"https://cupcode.com/tenant_id",
|
|
25662
26004
|
"https://cupcode.com/tenant_slug"
|
|
25663
26005
|
]);
|
|
26006
|
+
const tenantId = readFromClaims([
|
|
26007
|
+
"tenant_id",
|
|
26008
|
+
"tenantId",
|
|
26009
|
+
"company",
|
|
26010
|
+
"https://cupcode.com/tenant_id"
|
|
26011
|
+
]);
|
|
25664
26012
|
const givenName = readFromClaims(["given_name", "givenName", "first_name", "firstName"]);
|
|
25665
26013
|
const familyName = readFromClaims(["family_name", "familyName", "last_name", "lastName"]);
|
|
25666
26014
|
const fullNameFromClaims = readFromClaims(["name", "full_name", "fullName", "https://cupcode.com/name"]);
|
|
@@ -25678,7 +26026,11 @@ var buildUserFromTokens = ({
|
|
|
25678
26026
|
id: resolvedId,
|
|
25679
26027
|
userId: resolvedId,
|
|
25680
26028
|
tenantId,
|
|
25681
|
-
tenantSlug:
|
|
26029
|
+
tenantSlug: resolveTenantSlug({
|
|
26030
|
+
slugClaim: tenantSlugClaim,
|
|
26031
|
+
tenantId,
|
|
26032
|
+
userId: resolvedId
|
|
26033
|
+
}),
|
|
25682
26034
|
name: derivedName,
|
|
25683
26035
|
email: (email == null ? void 0 : email.includes("@")) ? email.toLowerCase() : email,
|
|
25684
26036
|
picture: resolvedPicture,
|
|
@@ -26326,7 +26678,7 @@ var AuthProvider = ({ children }) => {
|
|
|
26326
26678
|
},
|
|
26327
26679
|
[setPresenceNetworkStatus]
|
|
26328
26680
|
);
|
|
26329
|
-
const value =
|
|
26681
|
+
const value = useMemo17(
|
|
26330
26682
|
() => ({
|
|
26331
26683
|
status,
|
|
26332
26684
|
user,
|
|
@@ -26340,7 +26692,7 @@ var AuthProvider = ({ children }) => {
|
|
|
26340
26692
|
}),
|
|
26341
26693
|
[status, user, accessToken, login, logout, completeLogin, getAccessToken, presenceStatus, setPresenceStatus]
|
|
26342
26694
|
);
|
|
26343
|
-
return /* @__PURE__ */
|
|
26695
|
+
return /* @__PURE__ */ jsx97(AuthContext.Provider, { value, children });
|
|
26344
26696
|
};
|
|
26345
26697
|
var useAuth = () => {
|
|
26346
26698
|
const ctx = useContext9(AuthContext);
|
|
@@ -26527,6 +26879,7 @@ export {
|
|
|
26527
26879
|
Label4 as Label,
|
|
26528
26880
|
LoadingScreen,
|
|
26529
26881
|
LoadingSpinner,
|
|
26882
|
+
LoginHistoryCupcode,
|
|
26530
26883
|
MainLayout,
|
|
26531
26884
|
MainNavbar,
|
|
26532
26885
|
Menubar,
|
|
@@ -26717,6 +27070,7 @@ export {
|
|
|
26717
27070
|
defaultSidebarGroups,
|
|
26718
27071
|
ensureTelescupOidcToken,
|
|
26719
27072
|
exchangeCodeForToken,
|
|
27073
|
+
fetchAccountsLoginHistory,
|
|
26720
27074
|
generateCodeChallenge,
|
|
26721
27075
|
generateCodeVerifier,
|
|
26722
27076
|
generateNonce,
|
|
@@ -26730,17 +27084,22 @@ export {
|
|
|
26730
27084
|
getTelescupOidcToken,
|
|
26731
27085
|
hasPendingOidcFlow,
|
|
26732
27086
|
invalidateTelescupAssetsCache,
|
|
27087
|
+
isLoginHistorySessionActive,
|
|
26733
27088
|
isRuntimeDev,
|
|
26734
27089
|
isStoredThemeMode,
|
|
26735
27090
|
navigationMenuTriggerStyle,
|
|
27091
|
+
normalizeLoginHistorySessions,
|
|
26736
27092
|
normalizeStoredThemePreference,
|
|
26737
27093
|
parseAssetId,
|
|
27094
|
+
parseBrowserFromUserAgent,
|
|
27095
|
+
parseOsFromUserAgent,
|
|
26738
27096
|
parseStoredThemePreference,
|
|
26739
27097
|
persistThemePreferenceSelection,
|
|
26740
27098
|
readStoredLayoutMode,
|
|
26741
27099
|
readStoredThemeMode,
|
|
26742
27100
|
reducer,
|
|
26743
27101
|
refreshTokens,
|
|
27102
|
+
resolveAccountsApiBaseUrl,
|
|
26744
27103
|
resolveAppliedThemeMode,
|
|
26745
27104
|
resolveCupcodeAppVersion,
|
|
26746
27105
|
resolveOidcEndpoints,
|