@cupcodev/ui 1.2.3 → 1.2.6
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/README.md +4 -0
- package/dist/index.cjs +265 -95
- package/dist/index.d.cts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +364 -195
- package/dist/styles.css +1 -1
- package/package.json +4 -2
- package/postinstall.cjs +20 -0
- package/styles/base.css +0 -4
- package/styles/global.css +0 -4
package/README.md
CHANGED
|
@@ -70,6 +70,10 @@ setCupcodeRuntimeEnv({
|
|
|
70
70
|
});
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
+
Observação:
|
|
74
|
+
- Ao instalar/atualizar `@cupcodev/ui`, o pacote exibe esse lembrete no `postinstall`.
|
|
75
|
+
- Se o projeto usa `npm install --ignore-scripts`, esse aviso não aparece; nesse caso, aplique a configuração manualmente.
|
|
76
|
+
|
|
73
77
|
### Uso básico
|
|
74
78
|
|
|
75
79
|
```tsx
|
package/dist/index.cjs
CHANGED
|
@@ -374,6 +374,7 @@ __export(src_exports, {
|
|
|
374
374
|
parseAssetId: () => parseAssetId,
|
|
375
375
|
reducer: () => reducer,
|
|
376
376
|
resolveOidcEndpoints: () => resolveOidcEndpoints,
|
|
377
|
+
resolveTelescupImageURL: () => resolveTelescupImageURL,
|
|
377
378
|
responsiveSizeClasses: () => responsiveSizeClasses,
|
|
378
379
|
setCupcodeRuntimeEnv: () => setCupcodeRuntimeEnv,
|
|
379
380
|
sonnerToast: () => import_sonner.toast,
|
|
@@ -1253,6 +1254,31 @@ var isRuntimeDev = () => {
|
|
|
1253
1254
|
return mode === "development";
|
|
1254
1255
|
};
|
|
1255
1256
|
|
|
1257
|
+
// src/utils/parseAssetId.ts
|
|
1258
|
+
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
1259
|
+
var UUID_IN_TEXT_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i;
|
|
1260
|
+
var isUuid = (value) => {
|
|
1261
|
+
if (typeof value !== "string") return false;
|
|
1262
|
+
return UUID_REGEX.test(value.trim());
|
|
1263
|
+
};
|
|
1264
|
+
function parseAssetId(input) {
|
|
1265
|
+
var _a65, _b5, _c, _d;
|
|
1266
|
+
const raw = input == null ? void 0 : input.trim();
|
|
1267
|
+
if (!raw) return void 0;
|
|
1268
|
+
if (UUID_REGEX.test(raw)) return raw;
|
|
1269
|
+
const matchFromRaw = (_a65 = raw.match(UUID_IN_TEXT_REGEX)) == null ? void 0 : _a65[0];
|
|
1270
|
+
if (isUuid(matchFromRaw)) return matchFromRaw;
|
|
1271
|
+
try {
|
|
1272
|
+
const url = new URL(raw);
|
|
1273
|
+
const queryParamId = (_c = (_b5 = url.searchParams.get("id")) != null ? _b5 : url.searchParams.get("asset_id")) != null ? _c : url.searchParams.get("assetId");
|
|
1274
|
+
if (isUuid(queryParamId)) return queryParamId;
|
|
1275
|
+
const matchFromPath = (_d = url.pathname.match(UUID_IN_TEXT_REGEX)) == null ? void 0 : _d[0];
|
|
1276
|
+
if (isUuid(matchFromPath)) return matchFromPath;
|
|
1277
|
+
} catch (e) {
|
|
1278
|
+
}
|
|
1279
|
+
return void 0;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1256
1282
|
// src/hooks/useTelescupAsset.ts
|
|
1257
1283
|
var getApiBase = () => getRuntimeEnvOr("VITE_TELESCUP_API_BASE", "https://cdn.cupcode.com.br").replace(/\/+$/, "");
|
|
1258
1284
|
function buildTelescupImageURL(options) {
|
|
@@ -1265,6 +1291,25 @@ function buildTelescupImageURL(options) {
|
|
|
1265
1291
|
params.set("q", quality.toString());
|
|
1266
1292
|
return `${getApiBase()}/i?${params.toString()}`;
|
|
1267
1293
|
}
|
|
1294
|
+
function resolveTelescupImageURL(value, options) {
|
|
1295
|
+
const raw = value == null ? void 0 : value.trim();
|
|
1296
|
+
if (!raw) return void 0;
|
|
1297
|
+
const parsedId = parseAssetId(raw);
|
|
1298
|
+
if (parsedId) {
|
|
1299
|
+
return buildTelescupImageURL({
|
|
1300
|
+
id: parsedId,
|
|
1301
|
+
width: options == null ? void 0 : options.width,
|
|
1302
|
+
height: options == null ? void 0 : options.height,
|
|
1303
|
+
fit: options == null ? void 0 : options.fit,
|
|
1304
|
+
format: options == null ? void 0 : options.format,
|
|
1305
|
+
quality: options == null ? void 0 : options.quality
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
if (raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") || raw.startsWith("blob:")) {
|
|
1309
|
+
return raw;
|
|
1310
|
+
}
|
|
1311
|
+
return void 0;
|
|
1312
|
+
}
|
|
1268
1313
|
function buildTelescupVideoURL(id) {
|
|
1269
1314
|
return `${getApiBase()}/i/v?id=${id}`;
|
|
1270
1315
|
}
|
|
@@ -1299,31 +1344,6 @@ function useTelescupImage(options, lang) {
|
|
|
1299
1344
|
return { url, meta, loading };
|
|
1300
1345
|
}
|
|
1301
1346
|
|
|
1302
|
-
// src/utils/parseAssetId.ts
|
|
1303
|
-
var UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
|
|
1304
|
-
var UUID_IN_TEXT_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/i;
|
|
1305
|
-
var isUuid = (value) => {
|
|
1306
|
-
if (typeof value !== "string") return false;
|
|
1307
|
-
return UUID_REGEX.test(value.trim());
|
|
1308
|
-
};
|
|
1309
|
-
function parseAssetId(input) {
|
|
1310
|
-
var _a65, _b5, _c, _d;
|
|
1311
|
-
const raw = input == null ? void 0 : input.trim();
|
|
1312
|
-
if (!raw) return void 0;
|
|
1313
|
-
if (UUID_REGEX.test(raw)) return raw;
|
|
1314
|
-
const matchFromRaw = (_a65 = raw.match(UUID_IN_TEXT_REGEX)) == null ? void 0 : _a65[0];
|
|
1315
|
-
if (isUuid(matchFromRaw)) return matchFromRaw;
|
|
1316
|
-
try {
|
|
1317
|
-
const url = new URL(raw);
|
|
1318
|
-
const queryParamId = (_c = (_b5 = url.searchParams.get("id")) != null ? _b5 : url.searchParams.get("asset_id")) != null ? _c : url.searchParams.get("assetId");
|
|
1319
|
-
if (isUuid(queryParamId)) return queryParamId;
|
|
1320
|
-
const matchFromPath = (_d = url.pathname.match(UUID_IN_TEXT_REGEX)) == null ? void 0 : _d[0];
|
|
1321
|
-
if (isUuid(matchFromPath)) return matchFromPath;
|
|
1322
|
-
} catch (e) {
|
|
1323
|
-
}
|
|
1324
|
-
return void 0;
|
|
1325
|
-
}
|
|
1326
|
-
|
|
1327
1347
|
// src/components/cupcode/DockWrapper.tsx
|
|
1328
1348
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1329
1349
|
var getImageUrl = (rawId, width = 60, height = 60, format = "avif", quality = 60) => {
|
|
@@ -2675,9 +2695,54 @@ var NavbarCupcode = ({
|
|
|
2675
2695
|
className
|
|
2676
2696
|
}) => {
|
|
2677
2697
|
const [isOpen, setIsOpen] = React10.useState(false);
|
|
2698
|
+
const navRef = React10.useRef(null);
|
|
2699
|
+
const mobileMenuId = React10.useId();
|
|
2700
|
+
React10.useEffect(() => {
|
|
2701
|
+
if (!isOpen) return;
|
|
2702
|
+
const handlePointerDown = (event) => {
|
|
2703
|
+
var _a65;
|
|
2704
|
+
const target = event.target;
|
|
2705
|
+
if (!(target instanceof Node)) return;
|
|
2706
|
+
if (!((_a65 = navRef.current) == null ? void 0 : _a65.contains(target))) {
|
|
2707
|
+
setIsOpen(false);
|
|
2708
|
+
}
|
|
2709
|
+
};
|
|
2710
|
+
const handleEscape = (event) => {
|
|
2711
|
+
if (event.key === "Escape") {
|
|
2712
|
+
setIsOpen(false);
|
|
2713
|
+
}
|
|
2714
|
+
};
|
|
2715
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
2716
|
+
document.addEventListener("keydown", handleEscape);
|
|
2717
|
+
return () => {
|
|
2718
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
2719
|
+
document.removeEventListener("keydown", handleEscape);
|
|
2720
|
+
};
|
|
2721
|
+
}, [isOpen]);
|
|
2722
|
+
React10.useEffect(() => {
|
|
2723
|
+
if (!isOpen) return;
|
|
2724
|
+
const { style } = document.body;
|
|
2725
|
+
const previousOverflow = style.overflow;
|
|
2726
|
+
style.overflow = "hidden";
|
|
2727
|
+
return () => {
|
|
2728
|
+
style.overflow = previousOverflow;
|
|
2729
|
+
};
|
|
2730
|
+
}, [isOpen]);
|
|
2731
|
+
React10.useEffect(() => {
|
|
2732
|
+
const handleResize = () => {
|
|
2733
|
+
if (window.innerWidth >= 768) {
|
|
2734
|
+
setIsOpen(false);
|
|
2735
|
+
}
|
|
2736
|
+
};
|
|
2737
|
+
window.addEventListener("resize", handleResize);
|
|
2738
|
+
return () => {
|
|
2739
|
+
window.removeEventListener("resize", handleResize);
|
|
2740
|
+
};
|
|
2741
|
+
}, []);
|
|
2678
2742
|
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2679
2743
|
"nav",
|
|
2680
2744
|
{
|
|
2745
|
+
ref: navRef,
|
|
2681
2746
|
className: cn(
|
|
2682
2747
|
"fixed top-0 left-0 right-0 z-[200] pointer-events-auto",
|
|
2683
2748
|
"glass border-b border-border",
|
|
@@ -2736,38 +2801,49 @@ var NavbarCupcode = ({
|
|
|
2736
2801
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2737
2802
|
"button",
|
|
2738
2803
|
{
|
|
2804
|
+
type: "button",
|
|
2739
2805
|
onClick: () => setIsOpen(!isOpen),
|
|
2740
|
-
|
|
2741
|
-
|
|
2806
|
+
"aria-controls": mobileMenuId,
|
|
2807
|
+
"aria-expanded": isOpen,
|
|
2808
|
+
"aria-label": isOpen ? "Fechar menu de navega\xE7\xE3o" : "Abrir menu de navega\xE7\xE3o",
|
|
2809
|
+
className: "md:hidden inline-flex h-10 w-10 items-center justify-center rounded-lg transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
2810
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_lucide_react5.Menu, { className: cn("h-6 w-6 text-foreground", isOpen && "text-primary") })
|
|
2742
2811
|
}
|
|
2743
2812
|
)
|
|
2744
2813
|
] }),
|
|
2745
|
-
isOpen && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2768
|
-
|
|
2769
|
-
|
|
2770
|
-
|
|
2814
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
2815
|
+
"div",
|
|
2816
|
+
{
|
|
2817
|
+
id: mobileMenuId,
|
|
2818
|
+
className: "md:hidden max-h-[calc(100dvh-4rem)] space-y-3 overflow-y-auto border-t border-border/60 py-4 animate-slide-up",
|
|
2819
|
+
children: [
|
|
2820
|
+
items.map((item, index) => {
|
|
2821
|
+
const key = `${item.label}-${index}`;
|
|
2822
|
+
const isActive = item.isActive;
|
|
2823
|
+
const classes = cn(
|
|
2824
|
+
"flex min-h-11 items-center gap-2 rounded-lg px-4 py-2.5 text-sm font-semibold text-foreground transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",
|
|
2825
|
+
isActive && "text-primary"
|
|
2826
|
+
);
|
|
2827
|
+
const handleClick = (event) => {
|
|
2828
|
+
var _a65;
|
|
2829
|
+
(_a65 = item.onClick) == null ? void 0 : _a65.call(item, event);
|
|
2830
|
+
setIsOpen(false);
|
|
2831
|
+
};
|
|
2832
|
+
if (item.href.startsWith("#")) {
|
|
2833
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("a", { href: item.href, className: classes, onClick: handleClick, children: [
|
|
2834
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: item.icon }),
|
|
2835
|
+
item.label
|
|
2836
|
+
] }, key);
|
|
2837
|
+
}
|
|
2838
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("a", { href: item.href, className: classes, onClick: handleClick, children: [
|
|
2839
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children: item.icon }),
|
|
2840
|
+
item.label
|
|
2841
|
+
] }, key);
|
|
2842
|
+
}),
|
|
2843
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "px-4 pb-[max(env(safe-area-inset-bottom),0.5rem)] pt-2", children: actions })
|
|
2844
|
+
]
|
|
2845
|
+
}
|
|
2846
|
+
)
|
|
2771
2847
|
] })
|
|
2772
2848
|
}
|
|
2773
2849
|
);
|
|
@@ -6680,21 +6756,13 @@ var extractSharedFilesFromMessages = (messages) => {
|
|
|
6680
6756
|
};
|
|
6681
6757
|
var resolveTelescupImageUrl = (value, options) => {
|
|
6682
6758
|
var _a65, _b5, _c;
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
if (parsedId2) {
|
|
6691
|
-
return buildTelescupImageURL({ id: parsedId2, width, height, fit: "cover", format: "avif", quality });
|
|
6692
|
-
}
|
|
6693
|
-
return raw;
|
|
6694
|
-
}
|
|
6695
|
-
const parsedId = parseAssetId(raw);
|
|
6696
|
-
if (!parsedId) return void 0;
|
|
6697
|
-
return buildTelescupImageURL({ id: parsedId, width, height, fit: "cover", format: "avif", quality });
|
|
6759
|
+
return resolveTelescupImageURL(value, {
|
|
6760
|
+
width: (_a65 = options == null ? void 0 : options.width) != null ? _a65 : 96,
|
|
6761
|
+
height: (_b5 = options == null ? void 0 : options.height) != null ? _b5 : 96,
|
|
6762
|
+
fit: "cover",
|
|
6763
|
+
format: "avif",
|
|
6764
|
+
quality: (_c = options == null ? void 0 : options.quality) != null ? _c : 72
|
|
6765
|
+
});
|
|
6698
6766
|
};
|
|
6699
6767
|
var resolveGroupAvatarFromTelescup = (asset, fallbackId) => {
|
|
6700
6768
|
var _a65, _b5;
|
|
@@ -10118,7 +10186,7 @@ var UserMenuCupcode = ({
|
|
|
10118
10186
|
type: "button",
|
|
10119
10187
|
onClick: () => openChatPanel(),
|
|
10120
10188
|
className: cn(
|
|
10121
|
-
"relative z-0 inline-flex h-9 min-w-[2.55rem] origin-right items-center justify-center rounded-[12px] border border-border/70 bg-background/80 px-2.5 text-foreground shadow-[0_10px_22px_-18px_rgba(0,0,0,0.75)] transition-[transform,opacity] duration
|
|
10189
|
+
"relative z-0 inline-flex h-9 min-w-[2.55rem] origin-right items-center justify-center rounded-[12px] border border-border/70 bg-background/80 px-2.5 text-foreground shadow-[0_10px_22px_-18px_rgba(0,0,0,0.75)] transition-[transform,opacity] [transition-duration:260ms] will-change-transform",
|
|
10122
10190
|
prefersReducedMotion ? isChatIndicatorVisible ? "opacity-100" : "opacity-0" : isChatIndicatorVisible ? "translate-x-0 opacity-100" : "translate-x-[10px] opacity-0"
|
|
10123
10191
|
),
|
|
10124
10192
|
style: {
|
|
@@ -10131,7 +10199,7 @@ var UserMenuCupcode = ({
|
|
|
10131
10199
|
"span",
|
|
10132
10200
|
{
|
|
10133
10201
|
className: cn(
|
|
10134
|
-
"relative inline-flex transition-[transform,opacity] duration
|
|
10202
|
+
"relative inline-flex transition-[transform,opacity] [transition-duration:220ms]",
|
|
10135
10203
|
prefersReducedMotion ? isChatIndicatorVisible ? "scale-100 opacity-100" : "scale-100 opacity-0" : isChatIndicatorVisible ? isChatIndicatorIntroAnimating ? "scale-[1.08] opacity-100" : "scale-100 opacity-100" : "scale-[0.84] opacity-0"
|
|
10136
10204
|
),
|
|
10137
10205
|
style: {
|
|
@@ -10144,7 +10212,7 @@ var UserMenuCupcode = ({
|
|
|
10144
10212
|
"span",
|
|
10145
10213
|
{
|
|
10146
10214
|
className: cn(
|
|
10147
|
-
"absolute -right-1 -top-1 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full border border-background bg-destructive px-1 text-[9px] font-bold text-destructive-foreground transition-[transform,opacity] duration
|
|
10215
|
+
"absolute -right-1 -top-1 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full border border-background bg-destructive px-1 text-[9px] font-bold text-destructive-foreground transition-[transform,opacity] [transition-duration:180ms]",
|
|
10148
10216
|
prefersReducedMotion ? isChatIndicatorVisible ? "scale-100 opacity-100" : "scale-100 opacity-0" : isChatIndicatorVisible ? isChatBadgePulsing ? "scale-[1.14] opacity-100" : "scale-100 opacity-100" : "scale-[0.72] opacity-0"
|
|
10149
10217
|
),
|
|
10150
10218
|
style: {
|
|
@@ -22507,8 +22575,22 @@ var buildHandle2 = (value, email, fallbackId) => {
|
|
|
22507
22575
|
var resolveCurrentUserId = (user) => {
|
|
22508
22576
|
const sub = toStringOrUndefined(user == null ? void 0 : user.sub);
|
|
22509
22577
|
if (sub) return sub;
|
|
22578
|
+
const id = toStringOrUndefined(user == null ? void 0 : user.id);
|
|
22579
|
+
if (id) return id;
|
|
22580
|
+
const userId = toStringOrUndefined(user == null ? void 0 : user.userId);
|
|
22581
|
+
if (userId) return userId;
|
|
22510
22582
|
return null;
|
|
22511
22583
|
};
|
|
22584
|
+
var resolveUserIdFromClaims = (claims) => {
|
|
22585
|
+
var _a65, _b5, _c, _d, _e;
|
|
22586
|
+
return (_e = (_d = (_c = (_b5 = (_a65 = toStringOrUndefined(claims.sub)) != null ? _a65 : toStringOrUndefined(claims.user_id)) != null ? _b5 : toStringOrUndefined(claims.userId)) != null ? _c : toStringOrUndefined(claims.uid)) != null ? _d : toStringOrUndefined(claims.id)) != null ? _e : toStringOrUndefined(claims["https://cupcode.com/user_id"]);
|
|
22587
|
+
};
|
|
22588
|
+
var resolveEmailFromClaims = (claims) => {
|
|
22589
|
+
var _a65, _b5;
|
|
22590
|
+
const candidate = (_b5 = (_a65 = toStringOrUndefined(claims.email)) != null ? _a65 : toStringOrUndefined(claims["https://cupcode.com/email"])) != null ? _b5 : toStringOrUndefined(claims.preferred_username);
|
|
22591
|
+
if (!candidate || !candidate.includes("@")) return void 0;
|
|
22592
|
+
return candidate.toLowerCase();
|
|
22593
|
+
};
|
|
22512
22594
|
var formatMessageTime = (rawTimestamp) => {
|
|
22513
22595
|
if (!rawTimestamp) return "";
|
|
22514
22596
|
const parsed = new Date(rawTimestamp);
|
|
@@ -22516,18 +22598,7 @@ var formatMessageTime = (rawTimestamp) => {
|
|
|
22516
22598
|
return parsed.toLocaleTimeString("pt-BR", { hour: "2-digit", minute: "2-digit" });
|
|
22517
22599
|
};
|
|
22518
22600
|
var resolveChatAvatarUrl = (value) => {
|
|
22519
|
-
|
|
22520
|
-
if (!raw) return void 0;
|
|
22521
|
-
if (raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") || raw.startsWith("blob:")) {
|
|
22522
|
-
const parsedId2 = parseAssetId(raw);
|
|
22523
|
-
if (parsedId2) {
|
|
22524
|
-
return buildTelescupImageURL({ id: parsedId2, width: 72, height: 72, fit: "cover", format: "avif", quality: 70 });
|
|
22525
|
-
}
|
|
22526
|
-
return raw;
|
|
22527
|
-
}
|
|
22528
|
-
const parsedId = parseAssetId(raw);
|
|
22529
|
-
if (!parsedId) return void 0;
|
|
22530
|
-
return buildTelescupImageURL({ id: parsedId, width: 72, height: 72, fit: "cover", format: "avif", quality: 70 });
|
|
22601
|
+
return resolveTelescupImageURL(value, { width: 72, height: 72, fit: "cover", format: "avif", quality: 70 });
|
|
22531
22602
|
};
|
|
22532
22603
|
var isGenericRecord = (value) => typeof value === "object" && value !== null;
|
|
22533
22604
|
var buildExternalUrl = (baseUrl, target) => {
|
|
@@ -22773,7 +22844,7 @@ var MainNavbar = ({
|
|
|
22773
22844
|
ctaHref = "/login",
|
|
22774
22845
|
pathname,
|
|
22775
22846
|
onNavigate,
|
|
22776
|
-
authStatus
|
|
22847
|
+
authStatus,
|
|
22777
22848
|
authUser,
|
|
22778
22849
|
presenceStatus,
|
|
22779
22850
|
onPresenceStatusChange,
|
|
@@ -22790,6 +22861,8 @@ var MainNavbar = ({
|
|
|
22790
22861
|
const [isChatSending, setIsChatSending] = (0, import_react19.useState)(false);
|
|
22791
22862
|
const [chatError, setChatError] = (0, import_react19.useState)(null);
|
|
22792
22863
|
const [resolvedSenderId, setResolvedSenderId] = (0, import_react19.useState)(null);
|
|
22864
|
+
const [tokenDerivedUserId, setTokenDerivedUserId] = (0, import_react19.useState)(null);
|
|
22865
|
+
const [tokenDerivedEmail, setTokenDerivedEmail] = (0, import_react19.useState)(void 0);
|
|
22793
22866
|
const [persistedProfileAvatarValue, setPersistedProfileAvatarValue] = (0, import_react19.useState)(void 0);
|
|
22794
22867
|
const [accountsLanguage, setAccountsLanguage] = (0, import_react19.useState)("pt-BR");
|
|
22795
22868
|
const [accountsRecentActivity, setAccountsRecentActivity] = (0, import_react19.useState)([]);
|
|
@@ -22809,8 +22882,17 @@ var MainNavbar = ({
|
|
|
22809
22882
|
if (typeof window !== "undefined") return window.location.pathname || "/";
|
|
22810
22883
|
return "/";
|
|
22811
22884
|
}, [pathname]);
|
|
22812
|
-
const currentUserId = (0, import_react19.useMemo)(() =>
|
|
22813
|
-
|
|
22885
|
+
const currentUserId = (0, import_react19.useMemo)(() => {
|
|
22886
|
+
var _a66;
|
|
22887
|
+
return (_a66 = resolveCurrentUserId(authUser)) != null ? _a66 : tokenDerivedUserId;
|
|
22888
|
+
}, [authUser, tokenDerivedUserId]);
|
|
22889
|
+
const authEmail = (0, import_react19.useMemo)(
|
|
22890
|
+
() => {
|
|
22891
|
+
var _a66, _b6;
|
|
22892
|
+
return (_b6 = (_a66 = toStringOrUndefined(authUser == null ? void 0 : authUser.email)) == null ? void 0 : _a66.toLowerCase()) != null ? _b6 : tokenDerivedEmail;
|
|
22893
|
+
},
|
|
22894
|
+
[authUser == null ? void 0 : authUser.email, tokenDerivedEmail]
|
|
22895
|
+
);
|
|
22814
22896
|
const isChatSuperAdmin = (0, import_react19.useMemo)(() => {
|
|
22815
22897
|
var _a66, _b6;
|
|
22816
22898
|
const roleTokens = `${(_a66 = authUser == null ? void 0 : authUser.role) != null ? _a66 : ""} ${(_b6 = authUser == null ? void 0 : authUser.jobTitle) != null ? _b6 : ""}`.toLowerCase();
|
|
@@ -22824,7 +22906,77 @@ var MainNavbar = ({
|
|
|
22824
22906
|
}, []);
|
|
22825
22907
|
const resolvedProfileAvatarUrl = (_b5 = (_a65 = resolveChatAvatarUrl(persistedProfileAvatarValue)) != null ? _a65 : authUser == null ? void 0 : authUser.picture) != null ? _b5 : void 0;
|
|
22826
22908
|
const effectiveCurrentUserId = resolvedSenderId != null ? resolvedSenderId : currentUserId;
|
|
22827
|
-
const
|
|
22909
|
+
const hasStoredAccessToken = (() => {
|
|
22910
|
+
if (typeof window === "undefined") return false;
|
|
22911
|
+
try {
|
|
22912
|
+
return Boolean(sessionStorage.getItem(ACCESS_TOKEN_STORAGE_KEY));
|
|
22913
|
+
} catch (e) {
|
|
22914
|
+
return false;
|
|
22915
|
+
}
|
|
22916
|
+
})();
|
|
22917
|
+
const resolvedAuthStatus = (0, import_react19.useMemo)(() => {
|
|
22918
|
+
if (authStatus) return authStatus;
|
|
22919
|
+
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)) {
|
|
22920
|
+
return "authenticated";
|
|
22921
|
+
}
|
|
22922
|
+
if (tokenDerivedUserId || tokenDerivedEmail || hasStoredAccessToken) {
|
|
22923
|
+
return "authenticated";
|
|
22924
|
+
}
|
|
22925
|
+
return "unauthenticated";
|
|
22926
|
+
}, [
|
|
22927
|
+
authStatus,
|
|
22928
|
+
authUser == null ? void 0 : authUser.email,
|
|
22929
|
+
authUser == null ? void 0 : authUser.id,
|
|
22930
|
+
authUser == null ? void 0 : authUser.sub,
|
|
22931
|
+
authUser == null ? void 0 : authUser.userId,
|
|
22932
|
+
hasStoredAccessToken,
|
|
22933
|
+
tokenDerivedEmail,
|
|
22934
|
+
tokenDerivedUserId
|
|
22935
|
+
]);
|
|
22936
|
+
const isAuthenticated = resolvedAuthStatus === "authenticated";
|
|
22937
|
+
(0, import_react19.useEffect)(() => {
|
|
22938
|
+
if (authStatus === "unauthenticated") {
|
|
22939
|
+
setTokenDerivedUserId(null);
|
|
22940
|
+
setTokenDerivedEmail(void 0);
|
|
22941
|
+
return;
|
|
22942
|
+
}
|
|
22943
|
+
let canceled = false;
|
|
22944
|
+
const resolveIdentityFromToken = async () => {
|
|
22945
|
+
var _a66, _b6;
|
|
22946
|
+
try {
|
|
22947
|
+
let token = null;
|
|
22948
|
+
if (typeof window !== "undefined") {
|
|
22949
|
+
try {
|
|
22950
|
+
token = sessionStorage.getItem(ACCESS_TOKEN_STORAGE_KEY);
|
|
22951
|
+
} catch (e) {
|
|
22952
|
+
token = null;
|
|
22953
|
+
}
|
|
22954
|
+
}
|
|
22955
|
+
if (!token && getAccessToken) {
|
|
22956
|
+
token = await getAccessToken();
|
|
22957
|
+
}
|
|
22958
|
+
if (!token) {
|
|
22959
|
+
if (!canceled) {
|
|
22960
|
+
setTokenDerivedUserId(null);
|
|
22961
|
+
setTokenDerivedEmail(void 0);
|
|
22962
|
+
}
|
|
22963
|
+
return;
|
|
22964
|
+
}
|
|
22965
|
+
const claims = (_a66 = decodeJwt(token)) != null ? _a66 : {};
|
|
22966
|
+
if (canceled) return;
|
|
22967
|
+
setTokenDerivedUserId((_b6 = resolveUserIdFromClaims(claims)) != null ? _b6 : null);
|
|
22968
|
+
setTokenDerivedEmail(resolveEmailFromClaims(claims));
|
|
22969
|
+
} catch (error) {
|
|
22970
|
+
if (isRuntimeDev()) {
|
|
22971
|
+
console.warn("[chat] Falha ao resolver identidade via access token:", error.message);
|
|
22972
|
+
}
|
|
22973
|
+
}
|
|
22974
|
+
};
|
|
22975
|
+
void resolveIdentityFromToken();
|
|
22976
|
+
return () => {
|
|
22977
|
+
canceled = true;
|
|
22978
|
+
};
|
|
22979
|
+
}, [authStatus, getAccessToken]);
|
|
22828
22980
|
(0, import_react19.useEffect)(() => {
|
|
22829
22981
|
if (!isAuthenticated) {
|
|
22830
22982
|
setResolvedSenderId(null);
|
|
@@ -24185,8 +24337,8 @@ var MainNavbar = ({
|
|
|
24185
24337
|
actions: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "flex items-center gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
24186
24338
|
UserMenuCupcode,
|
|
24187
24339
|
{
|
|
24188
|
-
isAuthenticated:
|
|
24189
|
-
isLoading:
|
|
24340
|
+
isAuthenticated: resolvedAuthStatus === "authenticated",
|
|
24341
|
+
isLoading: resolvedAuthStatus === "loading",
|
|
24190
24342
|
loginLabel: ctaLabel,
|
|
24191
24343
|
displayName: authUser == null ? void 0 : authUser.name,
|
|
24192
24344
|
username: (_c = authUser == null ? void 0 : authUser.preferredUsername) != null ? _c : authUser == null ? void 0 : authUser.nickname,
|
|
@@ -26363,14 +26515,31 @@ var sheetVariants = (0, import_class_variance_authority6.cva)(
|
|
|
26363
26515
|
}
|
|
26364
26516
|
);
|
|
26365
26517
|
var SheetContent = React56.forwardRef(
|
|
26366
|
-
({
|
|
26518
|
+
({
|
|
26519
|
+
side = "right",
|
|
26520
|
+
className,
|
|
26521
|
+
children,
|
|
26522
|
+
showCloseButton = false,
|
|
26523
|
+
closeButtonClassName,
|
|
26524
|
+
closeButtonLabel = "Close",
|
|
26525
|
+
...props
|
|
26526
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(SheetPortal, { children: [
|
|
26367
26527
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SheetOverlay, {}),
|
|
26368
26528
|
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
|
|
26369
26529
|
children,
|
|
26370
|
-
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
26371
|
-
|
|
26372
|
-
|
|
26373
|
-
|
|
26530
|
+
showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
26531
|
+
SheetPrimitive.Close,
|
|
26532
|
+
{
|
|
26533
|
+
className: cn(
|
|
26534
|
+
"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
|
|
26535
|
+
closeButtonClassName
|
|
26536
|
+
),
|
|
26537
|
+
children: [
|
|
26538
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_lucide_react28.X, { className: "h-4 w-4" }),
|
|
26539
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "sr-only", children: closeButtonLabel })
|
|
26540
|
+
]
|
|
26541
|
+
}
|
|
26542
|
+
) : null
|
|
26374
26543
|
] })
|
|
26375
26544
|
] })
|
|
26376
26545
|
);
|
|
@@ -26501,7 +26670,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
26501
26670
|
{
|
|
26502
26671
|
"data-sidebar": "sidebar",
|
|
26503
26672
|
"data-mobile": "true",
|
|
26504
|
-
className: "w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground
|
|
26673
|
+
className: "w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground",
|
|
26505
26674
|
style: {
|
|
26506
26675
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
26507
26676
|
},
|
|
@@ -27968,6 +28137,7 @@ var useAuth = () => {
|
|
|
27968
28137
|
parseAssetId,
|
|
27969
28138
|
reducer,
|
|
27970
28139
|
resolveOidcEndpoints,
|
|
28140
|
+
resolveTelescupImageURL,
|
|
27971
28141
|
responsiveSizeClasses,
|
|
27972
28142
|
setCupcodeRuntimeEnv,
|
|
27973
28143
|
sonnerToast,
|
package/dist/index.d.cts
CHANGED
|
@@ -442,6 +442,8 @@ declare const UserMenuCupcode: React.FC<UserMenuCupcodeProps>;
|
|
|
442
442
|
type MainNavbarAuthStatus = "loading" | "authenticated" | "unauthenticated";
|
|
443
443
|
type MainNavbarAuthUser = {
|
|
444
444
|
sub?: string;
|
|
445
|
+
id?: string;
|
|
446
|
+
userId?: string;
|
|
445
447
|
name?: string;
|
|
446
448
|
email?: string;
|
|
447
449
|
picture?: string;
|
|
@@ -1308,6 +1310,9 @@ declare const sheetVariants: (props?: ({
|
|
|
1308
1310
|
side?: "top" | "right" | "bottom" | "left" | null | undefined;
|
|
1309
1311
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1310
1312
|
interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
|
|
1313
|
+
showCloseButton?: boolean;
|
|
1314
|
+
closeButtonClassName?: string;
|
|
1315
|
+
closeButtonLabel?: string;
|
|
1311
1316
|
}
|
|
1312
1317
|
declare const SheetContent: React$1.ForwardRefExoticComponent<SheetContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1313
1318
|
declare const SheetHeader: {
|
|
@@ -1598,7 +1603,9 @@ interface TelescupMeta {
|
|
|
1598
1603
|
title?: string;
|
|
1599
1604
|
description?: string;
|
|
1600
1605
|
}
|
|
1606
|
+
type ResolveTelescupImageOptions = Omit<TelescupImageOptions, "id">;
|
|
1601
1607
|
declare function buildTelescupImageURL(options: TelescupImageOptions): string;
|
|
1608
|
+
declare function resolveTelescupImageURL(value?: string, options?: ResolveTelescupImageOptions): string | undefined;
|
|
1602
1609
|
declare function buildTelescupVideoURL(id: string): string;
|
|
1603
1610
|
declare function useTelescupMeta(id: string, lang?: string): {
|
|
1604
1611
|
meta: TelescupMeta;
|
|
@@ -1696,4 +1703,4 @@ declare const getRuntimeEnv: (key: string) => string | undefined;
|
|
|
1696
1703
|
declare const getRuntimeEnvOr: (key: string, fallback: string) => string;
|
|
1697
1704
|
declare const isRuntimeDev: () => boolean;
|
|
1698
1705
|
|
|
1699
|
-
export { Accordion, AccordionContent, AccordionCupcode, AccordionItem, AccordionTrigger, type AccountsAuthConfig, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AuthContextValue, AuthProvider, type AuthStatus, type AuthUser, type UserPresenceStatus as AuthUserPresenceStatus, Avatar, AvatarFallback, AvatarImage, AvatarWithStatus, BackgroundRainbow, BackgroundStars, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardGlass, CardHeader, CardTitle, Checkbox, ChipTag, type ChipTagProps, type ChipVariant, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, AccordionContent$1 as CupcodeAccordionContent, AccordionItem$1 as CupcodeAccordionItem, AccordionTrigger$1 as CupcodeAccordionTrigger, Avatar$1 as CupcodeAvatar, AvatarFallback$1 as CupcodeAvatarFallback, AvatarImage$1 as CupcodeAvatarImage, type StatusType as CupcodeAvatarStatus, Badge$1 as CupcodeBadge, type CupcodeRuntimeEnv, type CupcodeRuntimeEnvValue, Select$1 as CupcodeSelect, SelectContent$1 as CupcodeSelectContent, SelectGroup$1 as CupcodeSelectGroup, SelectItem$1 as CupcodeSelectItem, SelectTrigger$1 as CupcodeSelectTrigger, SelectValue$1 as CupcodeSelectValue, Skeleton$1 as CupcodeSkeleton, type SkeletonProps as CupcodeSkeletonProps, SkeletonText as CupcodeSkeletonText, Switch$1 as CupcodeSwitch, Tabs$1 as CupcodeTabs, TabsContent$1 as CupcodeTabsContent, TabsList$1 as CupcodeTabsList, TabsTrigger$1 as CupcodeTabsTrigger, TooltipContent$1 as CupcodeTooltipContent, TooltipProvider$1 as CupcodeTooltipProvider, TooltipTrigger$1 as CupcodeTooltipTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Dock, type DockButton, type DockCard, type DockCategory, type DockItem, type DockProps, DockWrapper, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EnqueueResult, ErrorBoundary, Eyebrow, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeroTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputField, type InputFieldProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, JellyButton, JellyButtonOriginal, type JellyButtonOriginalProps, Label, LoadingScreen, LoadingSpinner, type LoadingSpinnerProps, MainNavbar, type MainNavbarAuthUser, type MainNavbarProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, type NavItem, NavbarCupcode, type NavbarCupcodeProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParticleSystem, Popover, PopoverContent, PopoverTrigger, PricingCard, Progress, ProgressCupcode, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, type ResponsiveSize, ScrollArea, ScrollBar, ScrollbarArea, type ScrollbarAreaProps, type ScrollbarColor, type ScrollbarThemeMode, ScrollbarThemeProvider, type ScrollbarThemeProviderProps, Select, SelectContent, SelectField, type SelectFieldProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Toaster$1 as SonnerToaster, type StatusType, Switch, SwitchField, type SwitchFieldProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagGroup, type TagGroupProps, type TelescupAsset, TelescupAssetPicker, type TelescupAssetPickerProps, type TelescupClient, type TelescupClientConfig, TelescupClientError, type TelescupFilters, TelescupImage, type TelescupLanguage, type TelescupMeta$1 as TelescupMeta, TelescupUpload, type TelescupUploadLabels, type TelescupUploadProps, TelescupUploader, type TelescupUploaderProps, TelescupVideo, Textarea, TextareaField, type TextareaFieldProps, type TextareaProps, ThemeToggle, Timeline, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastCupcode, type ToastCupcodeProps, ToastDescription, type ToastProps, ToastProvider, ToastTitle, type ToastVariant, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, type TokenResponse, Tooltip, TooltipContent, TooltipCupcode, TooltipProvider, TooltipTrigger, type UploadConflictPolicy, type UploadPolicy, type UploadQueueItem, type UploadQueueStatus, type UseTelescupAssetsOptions, type UseTelescupUploadQueueOptions, type UserMenuChatMessage, type UserMenuChatMessageLog, type UserMenuChatOpenRequest, type UserMenuChatReaction, type UserMenuChatUser, UserMenuCupcode, type UserMenuCupcodeProps, type UserMenuLanguage, type UserMenuNotification, type UserMenuNotificationKind, type UserMenuRecentActivity, type UserMenuTabId, type UserPresenceStatus$1 as UserPresenceStatus, badgeVariants, buildAuthorizeUrl, buildLogoutUrl, buildTelescupImageURL, buildTelescupVideoURL, cn, createTelescupClient, decodeJwt, exchangeCodeForToken, generateCodeChallenge, generateCodeVerifier, generateNonce, generateState, getAccountsConfig, getMainNavItems, getRuntimeEnv, getRuntimeEnvOr, getSupabase, getSupabasePublic, isRuntimeDev, navigationMenuTriggerStyle, parseAssetId, reducer, resolveOidcEndpoints, responsiveSizeClasses, setCupcodeRuntimeEnv, toast, toggleVariants, useActiveSection, useAuth, useBreakpoint, useFormField, useIsMobile, useSidebar, useTelescupAssets, useTelescupImage, useTelescupMeta, useTelescupUploadQueue, useToast };
|
|
1706
|
+
export { Accordion, AccordionContent, AccordionCupcode, AccordionItem, AccordionTrigger, type AccountsAuthConfig, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, type AuthContextValue, AuthProvider, type AuthStatus, type AuthUser, type UserPresenceStatus as AuthUserPresenceStatus, Avatar, AvatarFallback, AvatarImage, AvatarWithStatus, BackgroundRainbow, BackgroundStars, Badge, type BadgeProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, ButtonProps, Calendar, type CalendarProps, Card, CardContent, CardDescription, CardFooter, CardGlass, CardHeader, CardTitle, Checkbox, ChipTag, type ChipTagProps, type ChipVariant, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, AccordionContent$1 as CupcodeAccordionContent, AccordionItem$1 as CupcodeAccordionItem, AccordionTrigger$1 as CupcodeAccordionTrigger, Avatar$1 as CupcodeAvatar, AvatarFallback$1 as CupcodeAvatarFallback, AvatarImage$1 as CupcodeAvatarImage, type StatusType as CupcodeAvatarStatus, Badge$1 as CupcodeBadge, type CupcodeRuntimeEnv, type CupcodeRuntimeEnvValue, Select$1 as CupcodeSelect, SelectContent$1 as CupcodeSelectContent, SelectGroup$1 as CupcodeSelectGroup, SelectItem$1 as CupcodeSelectItem, SelectTrigger$1 as CupcodeSelectTrigger, SelectValue$1 as CupcodeSelectValue, Skeleton$1 as CupcodeSkeleton, type SkeletonProps as CupcodeSkeletonProps, SkeletonText as CupcodeSkeletonText, Switch$1 as CupcodeSwitch, Tabs$1 as CupcodeTabs, TabsContent$1 as CupcodeTabsContent, TabsList$1 as CupcodeTabsList, TabsTrigger$1 as CupcodeTabsTrigger, TooltipContent$1 as CupcodeTooltipContent, TooltipProvider$1 as CupcodeTooltipProvider, TooltipTrigger$1 as CupcodeTooltipTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Dock, type DockButton, type DockCard, type DockCategory, type DockItem, type DockProps, DockWrapper, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, type EnqueueResult, ErrorBoundary, Eyebrow, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HeroTitle, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputField, type InputFieldProps, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, JellyButton, JellyButtonOriginal, type JellyButtonOriginalProps, Label, LoadingScreen, LoadingSpinner, type LoadingSpinnerProps, MainNavbar, type MainNavbarAuthUser, type MainNavbarProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, type NavItem, NavbarCupcode, type NavbarCupcodeProps, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, ParticleSystem, Popover, PopoverContent, PopoverTrigger, PricingCard, Progress, ProgressCupcode, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, type ResolveTelescupImageOptions, type ResponsiveSize, ScrollArea, ScrollBar, ScrollbarArea, type ScrollbarAreaProps, type ScrollbarColor, type ScrollbarThemeMode, ScrollbarThemeProvider, type ScrollbarThemeProviderProps, Select, SelectContent, SelectField, type SelectFieldProps, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Toaster$1 as SonnerToaster, type StatusType, Switch, SwitchField, type SwitchFieldProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagGroup, type TagGroupProps, type TelescupAsset, TelescupAssetPicker, type TelescupAssetPickerProps, type TelescupClient, type TelescupClientConfig, TelescupClientError, type TelescupFilters, TelescupImage, type TelescupLanguage, type TelescupMeta$1 as TelescupMeta, TelescupUpload, type TelescupUploadLabels, type TelescupUploadProps, TelescupUploader, type TelescupUploaderProps, TelescupVideo, Textarea, TextareaField, type TextareaFieldProps, type TextareaProps, ThemeToggle, Timeline, Toast$1 as Toast, ToastAction, type ToastActionElement, ToastClose, ToastCupcode, type ToastCupcodeProps, ToastDescription, type ToastProps, ToastProvider, ToastTitle, type ToastVariant, ToastViewport, Toaster, Toggle, ToggleGroup, ToggleGroupItem, type TokenResponse, Tooltip, TooltipContent, TooltipCupcode, TooltipProvider, TooltipTrigger, type UploadConflictPolicy, type UploadPolicy, type UploadQueueItem, type UploadQueueStatus, type UseTelescupAssetsOptions, type UseTelescupUploadQueueOptions, type UserMenuChatMessage, type UserMenuChatMessageLog, type UserMenuChatOpenRequest, type UserMenuChatReaction, type UserMenuChatUser, UserMenuCupcode, type UserMenuCupcodeProps, type UserMenuLanguage, type UserMenuNotification, type UserMenuNotificationKind, type UserMenuRecentActivity, type UserMenuTabId, type UserPresenceStatus$1 as UserPresenceStatus, badgeVariants, buildAuthorizeUrl, buildLogoutUrl, buildTelescupImageURL, buildTelescupVideoURL, cn, createTelescupClient, decodeJwt, exchangeCodeForToken, generateCodeChallenge, generateCodeVerifier, generateNonce, generateState, getAccountsConfig, getMainNavItems, getRuntimeEnv, getRuntimeEnvOr, getSupabase, getSupabasePublic, isRuntimeDev, navigationMenuTriggerStyle, parseAssetId, reducer, resolveOidcEndpoints, resolveTelescupImageURL, responsiveSizeClasses, setCupcodeRuntimeEnv, toast, toggleVariants, useActiveSection, useAuth, useBreakpoint, useFormField, useIsMobile, useSidebar, useTelescupAssets, useTelescupImage, useTelescupMeta, useTelescupUploadQueue, useToast };
|