@cupcodev/ui 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -0
- package/dist/index.cjs +875 -563
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +952 -643
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -141,41 +141,114 @@ var AvatarWithStatus = ({
|
|
|
141
141
|
};
|
|
142
142
|
|
|
143
143
|
// src/components/cupcode/BackgroundRainbow.tsx
|
|
144
|
-
import { useEffect, useRef } from "react";
|
|
144
|
+
import { useEffect, useId, useMemo, useRef } from "react";
|
|
145
145
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
146
146
|
var BackgroundRainbow = () => {
|
|
147
|
+
const rootRef = useRef(null);
|
|
147
148
|
const interactiveRef = useRef(null);
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
const
|
|
149
|
+
const currentRef = useRef({ x: 0, y: 0 });
|
|
150
|
+
const targetRef = useRef({ x: 0, y: 0 });
|
|
151
|
+
const filterId = useId().replace(/:/g, "");
|
|
152
|
+
const config = useMemo(() => {
|
|
153
|
+
const nav = typeof navigator !== "undefined" ? navigator : null;
|
|
154
|
+
const lowMemory = !!nav && typeof nav.deviceMemory === "number" && nav.deviceMemory <= 4;
|
|
155
|
+
const lowCpu = !!nav && typeof nav.hardwareConcurrency === "number" && nav.hardwareConcurrency <= 4;
|
|
156
|
+
const lowPowerDevice = lowMemory || lowCpu;
|
|
157
|
+
return {
|
|
158
|
+
blur: lowPowerDevice ? 20 : 30,
|
|
159
|
+
interactiveOpacity: lowPowerDevice ? 0.54 : 0.7,
|
|
160
|
+
useGoo: !lowPowerDevice,
|
|
161
|
+
snapDistance: lowPowerDevice ? 2.5 : 1.5,
|
|
162
|
+
easeFactor: lowPowerDevice ? 7.5 : 10,
|
|
163
|
+
renderThirdBubble: !lowPowerDevice,
|
|
164
|
+
blendMode: lowPowerDevice ? "screen" : "hard-light"
|
|
165
|
+
};
|
|
166
|
+
}, []);
|
|
151
167
|
useEffect(() => {
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
168
|
+
const interactive = interactiveRef.current;
|
|
169
|
+
const root = rootRef.current;
|
|
170
|
+
if (!interactive || !root) return;
|
|
171
|
+
const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)");
|
|
172
|
+
let raf = 0;
|
|
173
|
+
let running = false;
|
|
174
|
+
const stop = () => {
|
|
175
|
+
running = false;
|
|
176
|
+
if (raf) {
|
|
177
|
+
cancelAnimationFrame(raf);
|
|
178
|
+
raf = 0;
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const updatePlayState = () => {
|
|
182
|
+
const enabled = !prefersReducedMotion.matches && !document.hidden && !document.documentElement.classList.contains("dark");
|
|
183
|
+
root.style.setProperty("--cc-rainbow-play", enabled ? "running" : "paused");
|
|
184
|
+
if (!enabled) stop();
|
|
185
|
+
return enabled;
|
|
186
|
+
};
|
|
187
|
+
const applyTransform = () => {
|
|
188
|
+
const x = Math.round(currentRef.current.x);
|
|
189
|
+
const y = Math.round(currentRef.current.y);
|
|
190
|
+
interactive.style.transform = `translate3d(${x}px, ${y}px, 0)`;
|
|
191
|
+
};
|
|
192
|
+
const animate = () => {
|
|
193
|
+
if (!updatePlayState()) return;
|
|
194
|
+
currentRef.current.x += (targetRef.current.x - currentRef.current.x) / config.easeFactor;
|
|
195
|
+
currentRef.current.y += (targetRef.current.y - currentRef.current.y) / config.easeFactor;
|
|
196
|
+
applyTransform();
|
|
197
|
+
const dx = Math.abs(targetRef.current.x - currentRef.current.x);
|
|
198
|
+
const dy = Math.abs(targetRef.current.y - currentRef.current.y);
|
|
199
|
+
if (dx < config.snapDistance && dy < config.snapDistance) {
|
|
200
|
+
running = false;
|
|
201
|
+
raf = 0;
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
raf = requestAnimationFrame(animate);
|
|
205
|
+
};
|
|
206
|
+
const start = () => {
|
|
207
|
+
if (running) return;
|
|
208
|
+
if (!updatePlayState()) return;
|
|
209
|
+
running = true;
|
|
210
|
+
raf = requestAnimationFrame(animate);
|
|
162
211
|
};
|
|
163
212
|
const onPointer = (e) => {
|
|
164
|
-
|
|
165
|
-
|
|
213
|
+
if (!updatePlayState()) return;
|
|
214
|
+
targetRef.current.x = e.clientX;
|
|
215
|
+
targetRef.current.y = e.clientY;
|
|
216
|
+
start();
|
|
217
|
+
};
|
|
218
|
+
const onStateChange = () => {
|
|
219
|
+
updatePlayState();
|
|
166
220
|
};
|
|
221
|
+
const centerX = window.innerWidth / 2;
|
|
222
|
+
const centerY = window.innerHeight / 2;
|
|
223
|
+
currentRef.current.x = centerX;
|
|
224
|
+
currentRef.current.y = centerY;
|
|
225
|
+
targetRef.current.x = centerX;
|
|
226
|
+
targetRef.current.y = centerY;
|
|
227
|
+
applyTransform();
|
|
228
|
+
updatePlayState();
|
|
167
229
|
window.addEventListener("pointermove", onPointer, { passive: true });
|
|
168
|
-
|
|
169
|
-
if (
|
|
170
|
-
|
|
230
|
+
document.addEventListener("visibilitychange", onStateChange);
|
|
231
|
+
if (typeof prefersReducedMotion.addEventListener === "function") {
|
|
232
|
+
prefersReducedMotion.addEventListener("change", onStateChange);
|
|
233
|
+
} else {
|
|
234
|
+
prefersReducedMotion.addListener(onStateChange);
|
|
171
235
|
}
|
|
236
|
+
const observer = new MutationObserver(onStateChange);
|
|
237
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
172
238
|
return () => {
|
|
173
239
|
window.removeEventListener("pointermove", onPointer);
|
|
174
|
-
|
|
240
|
+
document.removeEventListener("visibilitychange", onStateChange);
|
|
241
|
+
if (typeof prefersReducedMotion.removeEventListener === "function") {
|
|
242
|
+
prefersReducedMotion.removeEventListener("change", onStateChange);
|
|
243
|
+
} else {
|
|
244
|
+
prefersReducedMotion.removeListener(onStateChange);
|
|
245
|
+
}
|
|
246
|
+
observer.disconnect();
|
|
247
|
+
stop();
|
|
175
248
|
};
|
|
176
|
-
}, []);
|
|
177
|
-
return /* @__PURE__ */ jsxs3("div", { className: "fixed inset-0 overflow-hidden pointer-events-none
|
|
178
|
-
/* @__PURE__ */ jsx3("svg", { className: "hidden", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: "false", children: /* @__PURE__ */ jsx3("defs", { children: /* @__PURE__ */ jsxs3("filter", { id:
|
|
249
|
+
}, [config.easeFactor, config.snapDistance]);
|
|
250
|
+
return /* @__PURE__ */ jsxs3("div", { ref: rootRef, className: "fixed inset-0 z-0 overflow-hidden bg-white pointer-events-none dark:hidden", children: [
|
|
251
|
+
/* @__PURE__ */ jsx3("svg", { className: "hidden", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: "false", children: /* @__PURE__ */ jsx3("defs", { children: /* @__PURE__ */ jsxs3("filter", { id: filterId, children: [
|
|
179
252
|
/* @__PURE__ */ jsx3("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "10", result: "blur" }),
|
|
180
253
|
/* @__PURE__ */ jsx3(
|
|
181
254
|
"feColorMatrix",
|
|
@@ -188,79 +261,104 @@ var BackgroundRainbow = () => {
|
|
|
188
261
|
),
|
|
189
262
|
/* @__PURE__ */ jsx3("feBlend", { in: "SourceGraphic", in2: "goo" })
|
|
190
263
|
] }) }) }),
|
|
191
|
-
/* @__PURE__ */ jsxs3(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
264
|
+
/* @__PURE__ */ jsxs3(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
className: "absolute inset-0 cc-rainbow-layer",
|
|
268
|
+
style: {
|
|
269
|
+
filter: config.useGoo ? `url(#${filterId}) blur(${config.blur}px)` : `blur(${config.blur}px)`
|
|
270
|
+
},
|
|
271
|
+
children: [
|
|
272
|
+
/* @__PURE__ */ jsx3("div", { className: "cc-rainbow-bubble cc-rainbow-a cc-rainbow-g1" }),
|
|
273
|
+
/* @__PURE__ */ jsx3("div", { className: "cc-rainbow-bubble cc-rainbow-b cc-rainbow-g2" }),
|
|
274
|
+
config.renderThirdBubble ? /* @__PURE__ */ jsx3("div", { className: "cc-rainbow-bubble cc-rainbow-a cc-rainbow-g3" }) : null,
|
|
275
|
+
/* @__PURE__ */ jsx3("div", { ref: interactiveRef, className: "cc-rainbow-bubble cc-rainbow-b cc-rainbow-interactive" })
|
|
276
|
+
]
|
|
277
|
+
}
|
|
278
|
+
),
|
|
197
279
|
/* @__PURE__ */ jsx3("style", { children: `
|
|
198
|
-
.cc-
|
|
280
|
+
.cc-rainbow-layer {
|
|
281
|
+
contain: paint;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.cc-rainbow-bubble {
|
|
199
285
|
position: absolute;
|
|
200
|
-
mix-blend-mode:
|
|
286
|
+
mix-blend-mode: ${config.blendMode};
|
|
201
287
|
pointer-events: none;
|
|
202
288
|
will-change: transform;
|
|
289
|
+
transform: translate3d(0, 0, 0);
|
|
203
290
|
}
|
|
204
291
|
|
|
205
|
-
|
|
206
|
-
.cc-a {
|
|
292
|
+
.cc-rainbow-a {
|
|
207
293
|
background: radial-gradient(circle at center,
|
|
208
294
|
color-mix(in srgb, var(--color-one) 40%, transparent) 0%,
|
|
209
295
|
transparent 50%) no-repeat;
|
|
210
296
|
}
|
|
211
|
-
|
|
297
|
+
|
|
298
|
+
.cc-rainbow-b {
|
|
212
299
|
background: radial-gradient(circle at center,
|
|
213
300
|
color-mix(in srgb, var(--color-two) 40%, transparent) 0%,
|
|
214
301
|
transparent 50%) no-repeat;
|
|
215
302
|
}
|
|
216
303
|
|
|
217
|
-
.cc-g1, .cc-g2, .cc-g3 {
|
|
304
|
+
.cc-rainbow-g1, .cc-rainbow-g2, .cc-rainbow-g3 {
|
|
218
305
|
width: 80vmin;
|
|
219
306
|
height: 80vmin;
|
|
220
307
|
top: calc(50% - 40vmin);
|
|
221
308
|
left: calc(50% - 40vmin);
|
|
222
309
|
}
|
|
223
310
|
|
|
224
|
-
.cc-g1 {
|
|
311
|
+
.cc-rainbow-g1 {
|
|
225
312
|
transform-origin: center center;
|
|
226
|
-
animation: cc-
|
|
313
|
+
animation: cc-rainbow-bounce-v 28s var(--ease-smooth, ease-in-out) infinite;
|
|
314
|
+
animation-play-state: var(--cc-rainbow-play, running);
|
|
227
315
|
opacity: 1;
|
|
228
316
|
}
|
|
229
|
-
|
|
317
|
+
|
|
318
|
+
.cc-rainbow-g2 {
|
|
230
319
|
transform-origin: calc(50% - 360px);
|
|
231
|
-
animation: cc-circle 22s linear infinite reverse;
|
|
320
|
+
animation: cc-rainbow-circle 22s linear infinite reverse;
|
|
321
|
+
animation-play-state: var(--cc-rainbow-play, running);
|
|
232
322
|
opacity: 1;
|
|
233
323
|
}
|
|
234
|
-
|
|
324
|
+
|
|
325
|
+
.cc-rainbow-g3 {
|
|
235
326
|
top: calc(50% - 40vmin + 160px);
|
|
236
327
|
left: calc(50% - 40vmin - 420px);
|
|
237
328
|
transform-origin: calc(50% + 360px);
|
|
238
|
-
animation: cc-circle 38s linear infinite;
|
|
329
|
+
animation: cc-rainbow-circle 38s linear infinite;
|
|
330
|
+
animation-play-state: var(--cc-rainbow-play, running);
|
|
239
331
|
opacity: 0.9;
|
|
240
332
|
}
|
|
241
333
|
|
|
242
|
-
.cc-interactive {
|
|
334
|
+
.cc-rainbow-interactive {
|
|
243
335
|
width: 100%;
|
|
244
336
|
height: 100%;
|
|
245
337
|
top: -50%;
|
|
246
338
|
left: -50%;
|
|
247
|
-
opacity:
|
|
248
|
-
transform:
|
|
339
|
+
opacity: ${config.interactiveOpacity};
|
|
340
|
+
transform: translate3d(0px, 0px, 0);
|
|
249
341
|
}
|
|
250
342
|
|
|
251
|
-
@keyframes cc-circle {
|
|
343
|
+
@keyframes cc-rainbow-circle {
|
|
252
344
|
0% { transform: rotate(0deg); }
|
|
253
345
|
50% { transform: rotate(180deg); }
|
|
254
346
|
100% { transform: rotate(360deg); }
|
|
255
347
|
}
|
|
256
|
-
|
|
348
|
+
|
|
349
|
+
@keyframes cc-rainbow-bounce-v {
|
|
257
350
|
0% { transform: translateY(-50%); }
|
|
258
351
|
50% { transform: translateY(50%); }
|
|
259
352
|
100% { transform: translateY(-50%); }
|
|
260
353
|
}
|
|
261
354
|
|
|
262
355
|
@media (prefers-reduced-motion: reduce) {
|
|
263
|
-
.cc-g1, .cc-g2, .cc-g3 {
|
|
356
|
+
.cc-rainbow-g1, .cc-rainbow-g2, .cc-rainbow-g3 {
|
|
357
|
+
animation: none !important;
|
|
358
|
+
}
|
|
359
|
+
.cc-rainbow-interactive {
|
|
360
|
+
opacity: 0.35;
|
|
361
|
+
}
|
|
264
362
|
}
|
|
265
363
|
` })
|
|
266
364
|
] });
|
|
@@ -269,280 +367,439 @@ var BackgroundRainbow = () => {
|
|
|
269
367
|
// src/components/cupcode/BackgroundStars.tsx
|
|
270
368
|
import { useEffect as useEffect2, useRef as useRef2 } from "react";
|
|
271
369
|
import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
370
|
+
var TWO_PI = Math.PI * 2;
|
|
272
371
|
var rand = (a, b) => a + Math.random() * (b - a);
|
|
273
372
|
var choice = (arr) => arr[Math.random() * arr.length | 0];
|
|
274
|
-
function
|
|
275
|
-
const
|
|
276
|
-
|
|
277
|
-
|
|
373
|
+
function createCanvas(width, height) {
|
|
374
|
+
const canvas = document.createElement("canvas");
|
|
375
|
+
canvas.width = Math.max(1, Math.floor(width));
|
|
376
|
+
canvas.height = Math.max(1, Math.floor(height));
|
|
377
|
+
return canvas;
|
|
378
|
+
}
|
|
379
|
+
function createStarBaseSprite(size) {
|
|
380
|
+
const canvas = createCanvas(size, size);
|
|
381
|
+
const ctx = canvas.getContext("2d");
|
|
382
|
+
if (!ctx) return canvas;
|
|
383
|
+
const half = size / 2;
|
|
384
|
+
const gradient = ctx.createRadialGradient(half, half, 0, half, half, half);
|
|
385
|
+
gradient.addColorStop(0, "rgba(255,255,255,0.95)");
|
|
386
|
+
gradient.addColorStop(0.24, "rgba(255,255,255,0.72)");
|
|
387
|
+
gradient.addColorStop(0.54, "rgba(255,255,255,0.28)");
|
|
388
|
+
gradient.addColorStop(1, "rgba(0,0,0,0)");
|
|
389
|
+
ctx.fillStyle = gradient;
|
|
390
|
+
ctx.beginPath();
|
|
391
|
+
ctx.arc(half, half, half, 0, TWO_PI);
|
|
392
|
+
ctx.fill();
|
|
393
|
+
return canvas;
|
|
394
|
+
}
|
|
395
|
+
function tintSprite(base, color) {
|
|
396
|
+
const canvas = createCanvas(base.width, base.height);
|
|
397
|
+
const ctx = canvas.getContext("2d");
|
|
398
|
+
if (!ctx) return canvas;
|
|
399
|
+
ctx.drawImage(base, 0, 0);
|
|
400
|
+
ctx.globalCompositeOperation = "source-atop";
|
|
401
|
+
ctx.fillStyle = color;
|
|
402
|
+
ctx.fillRect(0, 0, base.width, base.height);
|
|
403
|
+
ctx.globalCompositeOperation = "source-over";
|
|
404
|
+
return canvas;
|
|
405
|
+
}
|
|
406
|
+
function createHaloSprite(size, color) {
|
|
407
|
+
const canvas = createCanvas(size, size);
|
|
408
|
+
const ctx = canvas.getContext("2d");
|
|
409
|
+
if (!ctx) return canvas;
|
|
410
|
+
const half = size / 2;
|
|
411
|
+
const gradient = ctx.createRadialGradient(half, half, 0, half, half, half);
|
|
412
|
+
gradient.addColorStop(0, color);
|
|
413
|
+
gradient.addColorStop(1, "rgba(0,0,0,0)");
|
|
414
|
+
ctx.fillStyle = gradient;
|
|
415
|
+
ctx.beginPath();
|
|
416
|
+
ctx.arc(half, half, half, 0, TWO_PI);
|
|
417
|
+
ctx.fill();
|
|
418
|
+
return canvas;
|
|
419
|
+
}
|
|
420
|
+
function createFlareSprite(size) {
|
|
421
|
+
const canvas = createCanvas(size * 4, size);
|
|
422
|
+
const ctx = canvas.getContext("2d");
|
|
423
|
+
if (!ctx) return canvas;
|
|
424
|
+
const centerY = size / 2;
|
|
425
|
+
const gradient = ctx.createLinearGradient(0, centerY, canvas.width, centerY);
|
|
426
|
+
gradient.addColorStop(0, "rgba(0,0,0,0)");
|
|
427
|
+
gradient.addColorStop(0.44, "rgba(41,5,40,0.92)");
|
|
428
|
+
gradient.addColorStop(0.56, "rgba(41,5,40,0.92)");
|
|
429
|
+
gradient.addColorStop(1, "rgba(0,0,0,0)");
|
|
430
|
+
ctx.fillStyle = gradient;
|
|
431
|
+
ctx.fillRect(0, (size - 4) / 2, canvas.width, 4);
|
|
432
|
+
return canvas;
|
|
433
|
+
}
|
|
434
|
+
function createCloudSprite(size, color) {
|
|
435
|
+
const canvas = createCanvas(size, size);
|
|
436
|
+
const ctx = canvas.getContext("2d");
|
|
437
|
+
if (!ctx) return canvas;
|
|
438
|
+
const center = size / 2;
|
|
439
|
+
const blobs = [
|
|
440
|
+
{ x: center * 0.76, y: center * 0.86, r: center * 0.68 },
|
|
441
|
+
{ x: center * 1.28, y: center * 0.94, r: center * 0.72 },
|
|
442
|
+
{ x: center * 1.02, y: center * 1.28, r: center * 0.78 }
|
|
443
|
+
];
|
|
444
|
+
for (const blob of blobs) {
|
|
445
|
+
const g = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blob.r);
|
|
446
|
+
g.addColorStop(0, color);
|
|
447
|
+
g.addColorStop(1, "rgba(0,0,0,0)");
|
|
448
|
+
ctx.fillStyle = g;
|
|
449
|
+
ctx.beginPath();
|
|
450
|
+
ctx.arc(blob.x, blob.y, blob.r, 0, TWO_PI);
|
|
451
|
+
ctx.fill();
|
|
452
|
+
}
|
|
453
|
+
return canvas;
|
|
454
|
+
}
|
|
455
|
+
function createCometHeadSprite(size) {
|
|
456
|
+
const canvas = createCanvas(size, size);
|
|
457
|
+
const ctx = canvas.getContext("2d");
|
|
458
|
+
if (!ctx) return canvas;
|
|
459
|
+
const half = size / 2;
|
|
460
|
+
const glowA = ctx.createRadialGradient(half, half, 0, half, half, half);
|
|
461
|
+
glowA.addColorStop(0, "rgba(255,255,255,0.96)");
|
|
462
|
+
glowA.addColorStop(0.3, "rgba(151,90,182,0.78)");
|
|
463
|
+
glowA.addColorStop(1, "rgba(0,0,0,0)");
|
|
464
|
+
ctx.fillStyle = glowA;
|
|
465
|
+
ctx.beginPath();
|
|
466
|
+
ctx.arc(half, half, half, 0, TWO_PI);
|
|
467
|
+
ctx.fill();
|
|
468
|
+
const glowB = ctx.createRadialGradient(half, half, 0, half, half, half * 0.56);
|
|
469
|
+
glowB.addColorStop(0, "rgba(255,255,255,0.95)");
|
|
470
|
+
glowB.addColorStop(1, "rgba(0,0,0,0)");
|
|
471
|
+
ctx.fillStyle = glowB;
|
|
472
|
+
ctx.beginPath();
|
|
473
|
+
ctx.arc(half, half, half * 0.56, 0, TWO_PI);
|
|
474
|
+
ctx.fill();
|
|
475
|
+
return canvas;
|
|
476
|
+
}
|
|
477
|
+
function createCometTailSprite(width, height) {
|
|
478
|
+
const canvas = createCanvas(width, height);
|
|
479
|
+
const ctx = canvas.getContext("2d");
|
|
480
|
+
if (!ctx) return canvas;
|
|
481
|
+
const center = height / 2;
|
|
482
|
+
const gradient = ctx.createLinearGradient(0, center, width, center);
|
|
483
|
+
gradient.addColorStop(0, "rgba(0,0,0,0)");
|
|
484
|
+
gradient.addColorStop(0.45, "rgba(124,91,187,0.55)");
|
|
485
|
+
gradient.addColorStop(0.8, "rgba(151,90,182,0.8)");
|
|
486
|
+
gradient.addColorStop(1, "rgba(255,255,255,0.96)");
|
|
487
|
+
ctx.fillStyle = gradient;
|
|
488
|
+
ctx.fillRect(0, center - 1, width, 2);
|
|
489
|
+
return canvas;
|
|
490
|
+
}
|
|
491
|
+
function drawHaloSprite(ctx, sprite, radius) {
|
|
492
|
+
if (radius <= 0.5) return;
|
|
493
|
+
const diameter = radius * 2;
|
|
494
|
+
ctx.drawImage(sprite, -radius, -radius, diameter, diameter);
|
|
278
495
|
}
|
|
279
496
|
function BackgroundStars() {
|
|
280
497
|
const nebulaRef = useRef2(null);
|
|
281
498
|
const starsRef = useRef2(null);
|
|
282
499
|
useEffect2(() => {
|
|
283
|
-
const w = window.innerWidth;
|
|
284
|
-
const h = window.innerHeight;
|
|
285
500
|
const nebulaCanvas = nebulaRef.current;
|
|
286
|
-
const nebulaCtx = nebulaCanvas.getContext("2d", { alpha: true });
|
|
287
|
-
nebulaCanvas.width = w;
|
|
288
|
-
nebulaCanvas.height = h;
|
|
289
501
|
const starsCanvas = starsRef.current;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
starsCanvas.
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
502
|
+
if (!nebulaCanvas || !starsCanvas) return;
|
|
503
|
+
const nebulaCtx = nebulaCanvas.getContext("2d", { alpha: true, desynchronized: true });
|
|
504
|
+
const starsCtx = starsCanvas.getContext("2d", { alpha: true, desynchronized: true });
|
|
505
|
+
if (!nebulaCtx || !starsCtx) return;
|
|
506
|
+
const width = window.innerWidth;
|
|
507
|
+
const height = window.innerHeight;
|
|
508
|
+
const nav = navigator;
|
|
509
|
+
const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
510
|
+
const lowMemory = typeof nav.deviceMemory === "number" && nav.deviceMemory <= 4;
|
|
511
|
+
const lowCpu = typeof nav.hardwareConcurrency === "number" && nav.hardwareConcurrency <= 4;
|
|
512
|
+
const lowPowerDevice = lowMemory || lowCpu;
|
|
513
|
+
const nebulaScale = lowPowerDevice ? 0.48 : 0.62;
|
|
514
|
+
const nebulaWidth = Math.max(1, Math.floor(width * nebulaScale));
|
|
515
|
+
const nebulaHeight = Math.max(1, Math.floor(height * nebulaScale));
|
|
516
|
+
nebulaCanvas.width = nebulaWidth;
|
|
517
|
+
nebulaCanvas.height = nebulaHeight;
|
|
518
|
+
nebulaCanvas.style.width = `${width}px`;
|
|
519
|
+
nebulaCanvas.style.height = `${height}px`;
|
|
520
|
+
starsCanvas.width = width;
|
|
521
|
+
starsCanvas.height = height;
|
|
522
|
+
starsCanvas.style.width = `${width}px`;
|
|
523
|
+
starsCanvas.style.height = `${height}px`;
|
|
524
|
+
const palette = ["#ffffff", "#d7c8ff", "#7c5bbb", "#b146ea", "#975ab6", "#ff8ad1"];
|
|
525
|
+
const starSpriteSize = 96;
|
|
526
|
+
const halfStarSprite = starSpriteSize / 2;
|
|
527
|
+
const starBaseSprite = createStarBaseSprite(starSpriteSize);
|
|
528
|
+
const starSprites = /* @__PURE__ */ new Map();
|
|
529
|
+
for (const color of palette) {
|
|
530
|
+
starSprites.set(color, tintSprite(starBaseSprite, color));
|
|
531
|
+
}
|
|
532
|
+
const flareSprite = createFlareSprite(starSpriteSize);
|
|
533
|
+
const haloPink = createHaloSprite(160, "rgba(251,88,235,0.68)");
|
|
534
|
+
const haloPurple = createHaloSprite(160, "rgba(151,90,182,0.6)");
|
|
535
|
+
const haloIndigo = createHaloSprite(160, "rgba(124,91,187,0.54)");
|
|
536
|
+
const haloGlow = createHaloSprite(140, "rgba(151,90,182,0.32)");
|
|
537
|
+
const cloudColors = [
|
|
538
|
+
"rgba(65,105,225,0.18)",
|
|
539
|
+
"rgba(138,43,226,0.17)",
|
|
540
|
+
"rgba(255,20,147,0.16)",
|
|
541
|
+
"rgba(75,0,130,0.18)",
|
|
542
|
+
"rgba(147,112,219,0.17)",
|
|
543
|
+
"rgba(218,112,214,0.16)"
|
|
302
544
|
];
|
|
303
|
-
const
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
const
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
flareCtx.fillStyle = g2;
|
|
327
|
-
flareCtx.filter = "blur(0.45px)";
|
|
328
|
-
flareCtx.fillRect(0, (SPR - 4) / 2, flareSprite.width, 4);
|
|
329
|
-
const off = document.createElement("canvas");
|
|
330
|
-
off.width = w;
|
|
331
|
-
off.height = h;
|
|
332
|
-
const offCtx = off.getContext("2d");
|
|
333
|
-
const bg = offCtx.createRadialGradient(w / 2, h / 2, 0, w / 2, h / 2, Math.max(w, h) / 2);
|
|
334
|
-
bg.addColorStop(0, "#0c0d1d");
|
|
335
|
-
bg.addColorStop(1, "#000000");
|
|
336
|
-
offCtx.fillStyle = bg;
|
|
337
|
-
offCtx.fillRect(0, 0, w, h);
|
|
338
|
-
const colors = [
|
|
339
|
-
"rgba(65,105,225,0.10)",
|
|
340
|
-
"rgba(138,43,226,0.10)",
|
|
341
|
-
"rgba(255,20,147,0.10)",
|
|
342
|
-
"rgba(75,0,130,0.10)",
|
|
343
|
-
"rgba(147,112,219,0.10)",
|
|
344
|
-
"rgba(218,112,214,0.10)"
|
|
345
|
-
];
|
|
346
|
-
function genCloud() {
|
|
347
|
-
const r = rand(150, 450);
|
|
348
|
-
const n = 12;
|
|
349
|
-
const step = Math.PI * 2 / n;
|
|
350
|
-
const pts = [];
|
|
351
|
-
for (let i = 0; i <= n; i++) {
|
|
352
|
-
const a = i * step;
|
|
353
|
-
const dist = rand(0.5, 1);
|
|
354
|
-
pts.push({ x: Math.cos(a) * r * dist, y: Math.sin(a) * r * dist });
|
|
355
|
-
}
|
|
545
|
+
const cloudSprites = /* @__PURE__ */ new Map();
|
|
546
|
+
for (const color of cloudColors) {
|
|
547
|
+
cloudSprites.set(color, createCloudSprite(256, color));
|
|
548
|
+
}
|
|
549
|
+
const nebulaBackdrop = createCanvas(nebulaWidth, nebulaHeight);
|
|
550
|
+
const nebulaBackdropCtx = nebulaBackdrop.getContext("2d");
|
|
551
|
+
if (nebulaBackdropCtx) {
|
|
552
|
+
const bg = nebulaBackdropCtx.createRadialGradient(
|
|
553
|
+
nebulaWidth / 2,
|
|
554
|
+
nebulaHeight / 2,
|
|
555
|
+
0,
|
|
556
|
+
nebulaWidth / 2,
|
|
557
|
+
nebulaHeight / 2,
|
|
558
|
+
Math.max(nebulaWidth, nebulaHeight) / 1.45
|
|
559
|
+
);
|
|
560
|
+
bg.addColorStop(0, "#0c0d1d");
|
|
561
|
+
bg.addColorStop(1, "#000000");
|
|
562
|
+
nebulaBackdropCtx.fillStyle = bg;
|
|
563
|
+
nebulaBackdropCtx.fillRect(0, 0, nebulaWidth, nebulaHeight);
|
|
564
|
+
}
|
|
565
|
+
const cloudCount = lowPowerDevice ? 5 : 8;
|
|
566
|
+
const clouds = Array.from({ length: cloudCount }).map(() => {
|
|
567
|
+
const color = choice(cloudColors);
|
|
356
568
|
return {
|
|
357
|
-
x: Math.random() *
|
|
358
|
-
y: Math.random() *
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
angle:
|
|
363
|
-
speed: (
|
|
569
|
+
x: Math.random() * nebulaWidth,
|
|
570
|
+
y: Math.random() * nebulaHeight,
|
|
571
|
+
size: rand(95, 230),
|
|
572
|
+
alpha: rand(0.65, 1),
|
|
573
|
+
sprite: cloudSprites.get(color),
|
|
574
|
+
angle: Math.random() * TWO_PI,
|
|
575
|
+
speed: rand(-5e-4, 5e-4),
|
|
576
|
+
pulseAmp: rand(0.03, 0.1),
|
|
577
|
+
pulsePhase: Math.random() * TWO_PI
|
|
364
578
|
};
|
|
365
|
-
}
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
for (const c of clouds) {
|
|
372
|
-
c.angle += c.speed;
|
|
373
|
-
nebulaCtx.save();
|
|
374
|
-
nebulaCtx.translate(c.x, c.y);
|
|
375
|
-
nebulaCtx.rotate(c.angle);
|
|
376
|
-
nebulaCtx.beginPath();
|
|
377
|
-
nebulaCtx.moveTo(c.pts[0].x, c.pts[0].y);
|
|
378
|
-
for (let i = 1; i < c.pts.length; i++) nebulaCtx.lineTo(c.pts[i].x, c.pts[i].y);
|
|
379
|
-
nebulaCtx.closePath();
|
|
380
|
-
const g = nebulaCtx.createRadialGradient(0, 0, 0, 0, 0, c.r);
|
|
381
|
-
g.addColorStop(0, c.color);
|
|
382
|
-
g.addColorStop(1, "rgba(0,0,0,0)");
|
|
383
|
-
nebulaCtx.fillStyle = g;
|
|
384
|
-
nebulaCtx.fill();
|
|
385
|
-
nebulaCtx.restore();
|
|
386
|
-
}
|
|
387
|
-
nebulaCtx.globalCompositeOperation = "source-over";
|
|
388
|
-
}
|
|
389
|
-
const QUANTITY = 260;
|
|
390
|
-
const stars = Array.from({ length: QUANTITY }).map(() => {
|
|
391
|
-
const r = Math.random();
|
|
579
|
+
});
|
|
580
|
+
const areaFactor = Math.min(1.25, width * height / (1920 * 1080));
|
|
581
|
+
const baseStars = lowPowerDevice ? 105 : 170;
|
|
582
|
+
const quantity = Math.max(80, Math.min(220, Math.round(baseStars * areaFactor)));
|
|
583
|
+
const stars = Array.from({ length: quantity }).map(() => {
|
|
584
|
+
const bucket = Math.random();
|
|
392
585
|
let size;
|
|
393
586
|
let isHighlight = false;
|
|
394
|
-
if (
|
|
395
|
-
else if (
|
|
587
|
+
if (bucket < 0.25) size = rand(0.35, 0.95) * (width * 1e-3);
|
|
588
|
+
else if (bucket < 0.97) size = rand(0.6, 1.8) * (width * 1e-3);
|
|
396
589
|
else {
|
|
397
|
-
size = rand(1.8, 3.
|
|
590
|
+
size = rand(1.8, 3.2) * (width * 1e-3);
|
|
398
591
|
isHighlight = true;
|
|
399
592
|
}
|
|
400
|
-
const
|
|
593
|
+
const twinkleDur = rand(5500, 32e3);
|
|
594
|
+
const sparkDur = rand(650, 1100);
|
|
595
|
+
const color = choice(palette);
|
|
401
596
|
return {
|
|
402
|
-
x: Math.random() *
|
|
403
|
-
y: Math.random() *
|
|
404
|
-
size: Math.max(
|
|
405
|
-
color: choice(palette),
|
|
597
|
+
x: Math.random() * width,
|
|
598
|
+
y: Math.random() * height,
|
|
599
|
+
size: Math.max(0.8, size),
|
|
406
600
|
isHighlight,
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
driftDy: rand(-6e-3, 6e-3) *
|
|
410
|
-
|
|
601
|
+
sprite: starSprites.get(color),
|
|
602
|
+
driftDx: rand(-6e-3, 6e-3) * width,
|
|
603
|
+
driftDy: rand(-6e-3, 6e-3) * height,
|
|
604
|
+
driftInvDur: 1 / rand(5e4, 9e4),
|
|
411
605
|
scaleTo: rand(0.9, 1.12),
|
|
412
|
-
baseOpacity: rand(0.
|
|
413
|
-
intensity: rand(
|
|
414
|
-
|
|
415
|
-
twinkleDelay: rand(0,
|
|
416
|
-
|
|
606
|
+
baseOpacity: rand(0.82, 1),
|
|
607
|
+
intensity: rand(0.95, 1.5),
|
|
608
|
+
twinkleFreq: TWO_PI / twinkleDur,
|
|
609
|
+
twinkleDelay: rand(0, 24e3),
|
|
610
|
+
sparkInvDur: 1 / sparkDur,
|
|
417
611
|
sparkDelay: rand(0, 1200),
|
|
418
|
-
phase: Math.random() *
|
|
612
|
+
phase: Math.random() * TWO_PI
|
|
419
613
|
};
|
|
420
614
|
});
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
return [r / 255, g / 255, b / 255];
|
|
424
|
-
}
|
|
615
|
+
const cometHeadSprite = createCometHeadSprite(90);
|
|
616
|
+
const cometTailSprite = createCometTailSprite(256, 8);
|
|
425
617
|
const comets = [];
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
618
|
+
const spawnComet = (now) => {
|
|
619
|
+
comets.push({
|
|
620
|
+
x: Math.random() * width,
|
|
621
|
+
y: Math.random() * height,
|
|
622
|
+
angle: Math.random() * TWO_PI,
|
|
623
|
+
len: rand(80, 160),
|
|
624
|
+
t0: now,
|
|
625
|
+
dur: rand(1400, 2200)
|
|
626
|
+
});
|
|
627
|
+
};
|
|
628
|
+
const drawNebula = (now) => {
|
|
629
|
+
nebulaCtx.clearRect(0, 0, nebulaWidth, nebulaHeight);
|
|
630
|
+
nebulaCtx.drawImage(nebulaBackdrop, 0, 0);
|
|
631
|
+
nebulaCtx.globalCompositeOperation = "screen";
|
|
632
|
+
for (const cloud of clouds) {
|
|
633
|
+
cloud.angle += cloud.speed;
|
|
634
|
+
const pulse = 1 + cloud.pulseAmp * Math.sin(now * 2e-4 + cloud.pulsePhase);
|
|
635
|
+
const radius = cloud.size * pulse;
|
|
636
|
+
nebulaCtx.save();
|
|
637
|
+
nebulaCtx.translate(cloud.x, cloud.y);
|
|
638
|
+
nebulaCtx.rotate(cloud.angle);
|
|
639
|
+
nebulaCtx.globalAlpha = cloud.alpha;
|
|
640
|
+
nebulaCtx.drawImage(cloud.sprite, -radius, -radius, radius * 2, radius * 2);
|
|
641
|
+
nebulaCtx.restore();
|
|
642
|
+
}
|
|
643
|
+
nebulaCtx.globalCompositeOperation = "source-over";
|
|
644
|
+
nebulaCtx.globalAlpha = 1;
|
|
645
|
+
};
|
|
646
|
+
const drawComets = (now) => {
|
|
647
|
+
for (let i = comets.length - 1; i >= 0; i--) {
|
|
648
|
+
const comet = comets[i];
|
|
649
|
+
const p = (now - comet.t0) / comet.dur;
|
|
650
|
+
if (p >= 1) {
|
|
651
|
+
comets.splice(i, 1);
|
|
652
|
+
continue;
|
|
653
|
+
}
|
|
654
|
+
const ease = p < 0.5 ? p * 2 : 1 - (p - 0.5) * 2;
|
|
655
|
+
const dx = Math.cos(comet.angle) * comet.len * 6.8 * p;
|
|
656
|
+
const dy = Math.sin(comet.angle) * comet.len * 6.8 * p;
|
|
657
|
+
starsCtx.save();
|
|
658
|
+
starsCtx.translate(comet.x + dx, comet.y + dy);
|
|
659
|
+
starsCtx.rotate(comet.angle);
|
|
660
|
+
starsCtx.globalAlpha = 0.2 + 0.8 * ease;
|
|
661
|
+
starsCtx.drawImage(cometHeadSprite, -14, -14, 28, 28);
|
|
662
|
+
starsCtx.globalAlpha = 0.25 + 0.65 * ease;
|
|
663
|
+
starsCtx.drawImage(cometTailSprite, -comet.len, -3, comet.len, 6);
|
|
664
|
+
starsCtx.globalAlpha = 0.45 * ease;
|
|
665
|
+
starsCtx.drawImage(cometTailSprite, 0, -2, Math.min(24, comet.len * 0.24), 4);
|
|
666
|
+
starsCtx.restore();
|
|
667
|
+
}
|
|
668
|
+
};
|
|
669
|
+
const drawStars = (now) => {
|
|
670
|
+
starsCtx.clearRect(0, 0, width, height);
|
|
439
671
|
starsCtx.globalCompositeOperation = "screen";
|
|
440
|
-
for (const
|
|
441
|
-
const
|
|
442
|
-
const sx =
|
|
443
|
-
const sy =
|
|
444
|
-
const
|
|
445
|
-
const
|
|
446
|
-
const
|
|
447
|
-
const sparkCycle = (
|
|
672
|
+
for (const star of stars) {
|
|
673
|
+
const drift = now * star.driftInvDur % 1;
|
|
674
|
+
const sx = star.x + star.driftDx * drift;
|
|
675
|
+
const sy = star.y + star.driftDy * drift;
|
|
676
|
+
const scaleByDrift = 1 + (star.scaleTo - 1) * drift;
|
|
677
|
+
const twinkle = (Math.sin((now + star.twinkleDelay) * star.twinkleFreq + star.phase) + 1) * 0.5;
|
|
678
|
+
const twinklePeak = 0.58 + 0.42 * twinkle;
|
|
679
|
+
const sparkCycle = (now + star.sparkDelay) * star.sparkInvDur % 1;
|
|
448
680
|
const sparkBoost = sparkCycle < 0.15 ? sparkCycle / 0.15 : sparkCycle < 0.45 ? 1 - (sparkCycle - 0.15) / 0.3 : 0;
|
|
449
681
|
const sparkScale = 1 + 0.28 * sparkBoost;
|
|
450
|
-
const glow = 0.38 + 0.2 * (0.5 + 0.5 * Math.sin(
|
|
451
|
-
const opacity =
|
|
452
|
-
const
|
|
453
|
-
const size =
|
|
454
|
-
const [tr, tg, tb] = tintMultiplier(s.color);
|
|
682
|
+
const glow = 0.38 + 0.2 * (0.5 + 0.5 * Math.sin(now * 2e-3 + star.phase));
|
|
683
|
+
const opacity = star.baseOpacity * twinklePeak;
|
|
684
|
+
const intensity = star.intensity * (0.82 + 0.38 * sparkBoost);
|
|
685
|
+
const size = star.size * scaleByDrift * sparkScale;
|
|
455
686
|
starsCtx.save();
|
|
456
687
|
starsCtx.globalAlpha = opacity;
|
|
457
688
|
starsCtx.translate(sx, sy);
|
|
458
|
-
starsCtx.scale(size /
|
|
459
|
-
starsCtx.drawImage(
|
|
460
|
-
starsCtx.
|
|
461
|
-
starsCtx
|
|
462
|
-
starsCtx
|
|
463
|
-
starsCtx.
|
|
464
|
-
|
|
465
|
-
const halo2 = size * 7.2 * k;
|
|
466
|
-
const halo3 = size * 10.8 * k;
|
|
467
|
-
drawHalo(starsCtx, 0, 0, halo1, "rgba(251,88,235,0.65)");
|
|
468
|
-
drawHalo(starsCtx, 0, 0, halo2, "rgba(151,90,182,0.58)");
|
|
469
|
-
drawHalo(starsCtx, 0, 0, halo3, "rgba(124,91,187,0.52)");
|
|
470
|
-
const gp = size * (1.8 + glow);
|
|
471
|
-
drawHalo(starsCtx, 0, 0, gp, "rgba(151,90,182,0.28)");
|
|
472
|
-
if (s.isHighlight) {
|
|
689
|
+
starsCtx.scale(size / starSpriteSize, size / starSpriteSize);
|
|
690
|
+
starsCtx.drawImage(star.sprite, -halfStarSprite, -halfStarSprite);
|
|
691
|
+
drawHaloSprite(starsCtx, haloPink, size * 4.1 * intensity);
|
|
692
|
+
drawHaloSprite(starsCtx, haloPurple, size * 6.9 * intensity);
|
|
693
|
+
drawHaloSprite(starsCtx, haloIndigo, size * 10.2 * intensity);
|
|
694
|
+
drawHaloSprite(starsCtx, haloGlow, size * (1.8 + glow));
|
|
695
|
+
if (star.isHighlight) {
|
|
473
696
|
starsCtx.globalAlpha = opacity * (0.35 + 0.65 * sparkBoost);
|
|
474
|
-
starsCtx.
|
|
475
|
-
starsCtx.drawImage(flareSprite, -2 * SPR, -SPR / 2, 4 * SPR, SPR);
|
|
697
|
+
starsCtx.drawImage(flareSprite, -2 * starSpriteSize, -halfStarSprite, 4 * starSpriteSize, starSpriteSize);
|
|
476
698
|
starsCtx.rotate(Math.PI / 2);
|
|
477
|
-
starsCtx.drawImage(flareSprite, -2 *
|
|
699
|
+
starsCtx.drawImage(flareSprite, -2 * starSpriteSize, -halfStarSprite, 4 * starSpriteSize, starSpriteSize);
|
|
478
700
|
}
|
|
479
701
|
starsCtx.restore();
|
|
480
702
|
}
|
|
481
|
-
if (t - lastComet > rand(3200, 6800)) {
|
|
482
|
-
spawnComet();
|
|
483
|
-
lastComet = t;
|
|
484
|
-
}
|
|
485
|
-
drawComets(starsCtx, comets, t);
|
|
486
703
|
starsCtx.globalCompositeOperation = "source-over";
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
704
|
+
};
|
|
705
|
+
let raf = 0;
|
|
706
|
+
let running = false;
|
|
707
|
+
let disposed = false;
|
|
708
|
+
let lastFrame = 0;
|
|
709
|
+
let lastNebulaFrame = 0;
|
|
710
|
+
let nextCometAt = performance.now() + rand(3200, 6800);
|
|
711
|
+
const minFrameMs = lowPowerDevice ? 22 : 16;
|
|
712
|
+
const nebulaFrameMs = lowPowerDevice ? 85 : 55;
|
|
713
|
+
const isDarkMode = () => document.documentElement.classList.contains("dark");
|
|
714
|
+
const clearCanvases = () => {
|
|
715
|
+
starsCtx.clearRect(0, 0, width, height);
|
|
716
|
+
nebulaCtx.clearRect(0, 0, nebulaWidth, nebulaHeight);
|
|
717
|
+
};
|
|
718
|
+
const shouldRun = () => !reducedMotion && !document.hidden && isDarkMode();
|
|
719
|
+
const stop = () => {
|
|
720
|
+
running = false;
|
|
721
|
+
if (raf) {
|
|
722
|
+
cancelAnimationFrame(raf);
|
|
723
|
+
raf = 0;
|
|
724
|
+
}
|
|
725
|
+
};
|
|
726
|
+
const frame = (now) => {
|
|
727
|
+
if (!running || disposed) return;
|
|
728
|
+
if (now - lastFrame < minFrameMs) {
|
|
729
|
+
raf = requestAnimationFrame(frame);
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
lastFrame = now;
|
|
733
|
+
if (now - lastNebulaFrame >= nebulaFrameMs) {
|
|
734
|
+
drawNebula(now);
|
|
735
|
+
lastNebulaFrame = now;
|
|
736
|
+
}
|
|
737
|
+
drawStars(now);
|
|
738
|
+
if (now >= nextCometAt) {
|
|
739
|
+
spawnComet(now);
|
|
740
|
+
nextCometAt = now + rand(3200, 6800);
|
|
741
|
+
}
|
|
742
|
+
drawComets(now);
|
|
743
|
+
raf = requestAnimationFrame(frame);
|
|
744
|
+
};
|
|
745
|
+
const start = () => {
|
|
746
|
+
if (running || disposed || !shouldRun()) return;
|
|
747
|
+
running = true;
|
|
748
|
+
lastFrame = 0;
|
|
749
|
+
lastNebulaFrame = 0;
|
|
750
|
+
raf = requestAnimationFrame(frame);
|
|
751
|
+
};
|
|
752
|
+
const onVisibilityOrTheme = () => {
|
|
753
|
+
if (shouldRun()) start();
|
|
754
|
+
else {
|
|
755
|
+
stop();
|
|
756
|
+
clearCanvases();
|
|
757
|
+
}
|
|
758
|
+
};
|
|
759
|
+
if (reducedMotion) {
|
|
760
|
+
if (isDarkMode()) {
|
|
761
|
+
drawNebula(0);
|
|
762
|
+
drawStars(0);
|
|
763
|
+
} else {
|
|
764
|
+
clearCanvases();
|
|
765
|
+
}
|
|
766
|
+
return () => {
|
|
767
|
+
stop();
|
|
768
|
+
};
|
|
769
|
+
}
|
|
770
|
+
const observer = new MutationObserver(onVisibilityOrTheme);
|
|
771
|
+
observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
|
|
772
|
+
document.addEventListener("visibilitychange", onVisibilityOrTheme);
|
|
773
|
+
onVisibilityOrTheme();
|
|
774
|
+
return () => {
|
|
775
|
+
disposed = true;
|
|
776
|
+
stop();
|
|
777
|
+
observer.disconnect();
|
|
778
|
+
document.removeEventListener("visibilitychange", onVisibilityOrTheme);
|
|
779
|
+
};
|
|
539
780
|
}, []);
|
|
540
781
|
return /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
541
|
-
/* @__PURE__ */ jsx4(
|
|
542
|
-
|
|
782
|
+
/* @__PURE__ */ jsx4(
|
|
783
|
+
"canvas",
|
|
784
|
+
{
|
|
785
|
+
ref: nebulaRef,
|
|
786
|
+
"aria-hidden": "true",
|
|
787
|
+
className: "cc-background-stars-canvas fixed inset-0 z-0 pointer-events-none hidden dark:block"
|
|
788
|
+
}
|
|
789
|
+
),
|
|
790
|
+
/* @__PURE__ */ jsx4(
|
|
791
|
+
"canvas",
|
|
792
|
+
{
|
|
793
|
+
ref: starsRef,
|
|
794
|
+
"aria-hidden": "true",
|
|
795
|
+
className: "cc-background-stars-canvas fixed inset-0 z-10 pointer-events-none hidden dark:block"
|
|
796
|
+
}
|
|
797
|
+
),
|
|
543
798
|
/* @__PURE__ */ jsx4("style", { children: `
|
|
544
799
|
@media (prefers-reduced-motion: reduce) {
|
|
545
|
-
canvas {
|
|
800
|
+
.cc-background-stars-canvas {
|
|
801
|
+
display: none !important;
|
|
802
|
+
}
|
|
546
803
|
}
|
|
547
804
|
` })
|
|
548
805
|
] });
|
|
@@ -680,13 +937,13 @@ var TagGroup = ({
|
|
|
680
937
|
import { useState, useRef as useRef3, useEffect as useEffect3 } from "react";
|
|
681
938
|
|
|
682
939
|
// src/components/ui/tooltip.tsx
|
|
683
|
-
import * as
|
|
940
|
+
import * as React3 from "react";
|
|
684
941
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
685
942
|
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
686
943
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
687
944
|
var Tooltip = TooltipPrimitive.Root;
|
|
688
945
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
689
|
-
var TooltipContent =
|
|
946
|
+
var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx8(
|
|
690
947
|
TooltipPrimitive.Content,
|
|
691
948
|
{
|
|
692
949
|
ref,
|
|
@@ -804,13 +1061,21 @@ var Dock = ({ items, className }) => {
|
|
|
804
1061
|
};
|
|
805
1062
|
|
|
806
1063
|
// src/components/cupcode/DockWrapper.tsx
|
|
807
|
-
import { useEffect as useEffect5, useRef as useRef4, useMemo } from "react";
|
|
1064
|
+
import { useEffect as useEffect5, useRef as useRef4, useMemo as useMemo2 } from "react";
|
|
808
1065
|
|
|
809
1066
|
// src/hooks/useTelescupAsset.ts
|
|
810
1067
|
import { useState as useState2, useEffect as useEffect4 } from "react";
|
|
811
1068
|
|
|
812
1069
|
// src/lib/runtimeEnv.ts
|
|
813
1070
|
var import_meta = {};
|
|
1071
|
+
var CUPCODE_APP_VERSION_ENV_KEY = "CUPCODE_APP_VERSION";
|
|
1072
|
+
var CUPCODE_APP_VERSION_ENV_KEYS = [
|
|
1073
|
+
CUPCODE_APP_VERSION_ENV_KEY,
|
|
1074
|
+
"VITE_APP_VERSION",
|
|
1075
|
+
"APP_VERSION",
|
|
1076
|
+
"NEXT_PUBLIC_APP_VERSION",
|
|
1077
|
+
"REACT_APP_VERSION"
|
|
1078
|
+
];
|
|
814
1079
|
var runtimeStore = {};
|
|
815
1080
|
var normalizeValue = (value) => {
|
|
816
1081
|
if (value === null || typeof value === "undefined") return void 0;
|
|
@@ -872,6 +1137,15 @@ var isRuntimeDev = () => {
|
|
|
872
1137
|
const mode = ((_c = (_b7 = getRuntimeEnv("MODE")) != null ? _b7 : getRuntimeEnv("NODE_ENV")) != null ? _c : "").toLowerCase();
|
|
873
1138
|
return mode === "development";
|
|
874
1139
|
};
|
|
1140
|
+
var resolveCupcodeAppVersion = (explicitVersion) => {
|
|
1141
|
+
const normalizedExplicitVersion = normalizeValue(explicitVersion);
|
|
1142
|
+
if (normalizedExplicitVersion) return normalizedExplicitVersion;
|
|
1143
|
+
for (const key of CUPCODE_APP_VERSION_ENV_KEYS) {
|
|
1144
|
+
const value = getRuntimeEnv(key);
|
|
1145
|
+
if (value) return value;
|
|
1146
|
+
}
|
|
1147
|
+
return void 0;
|
|
1148
|
+
};
|
|
875
1149
|
|
|
876
1150
|
// src/utils/parseAssetId.ts
|
|
877
1151
|
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;
|
|
@@ -1007,11 +1281,11 @@ var DockWrapper = ({ categories, activeCategoryId }) => {
|
|
|
1007
1281
|
const rootRef = useRef4(null);
|
|
1008
1282
|
const timeoutsRef = useRef4([]);
|
|
1009
1283
|
const listenersRef = useRef4([]);
|
|
1010
|
-
const sortedCategories =
|
|
1284
|
+
const sortedCategories = useMemo2(
|
|
1011
1285
|
() => [...categories].sort((a, b) => a.order - b.order),
|
|
1012
1286
|
[categories]
|
|
1013
1287
|
);
|
|
1014
|
-
const lastInteractiveId =
|
|
1288
|
+
const lastInteractiveId = useMemo2(() => {
|
|
1015
1289
|
for (let i = sortedCategories.length - 1; i >= 0; i -= 1) {
|
|
1016
1290
|
const candidate = sortedCategories[i];
|
|
1017
1291
|
if (candidate && candidate.type !== "divider") {
|
|
@@ -1802,10 +2076,10 @@ function EmptyState({
|
|
|
1802
2076
|
}
|
|
1803
2077
|
|
|
1804
2078
|
// src/components/cupcode/ErrorBoundary.tsx
|
|
1805
|
-
import
|
|
2079
|
+
import React5 from "react";
|
|
1806
2080
|
import { AlertTriangle } from "lucide-react";
|
|
1807
2081
|
import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1808
|
-
var ErrorBoundary = class extends
|
|
2082
|
+
var ErrorBoundary = class extends React5.Component {
|
|
1809
2083
|
constructor(props) {
|
|
1810
2084
|
super(props);
|
|
1811
2085
|
__publicField(this, "handleReset", () => {
|
|
@@ -1898,9 +2172,9 @@ var HeroTitle = ({
|
|
|
1898
2172
|
};
|
|
1899
2173
|
|
|
1900
2174
|
// src/components/cupcode/InputField.tsx
|
|
1901
|
-
import * as
|
|
2175
|
+
import * as React6 from "react";
|
|
1902
2176
|
import { jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1903
|
-
var InputField =
|
|
2177
|
+
var InputField = React6.forwardRef(
|
|
1904
2178
|
({ className, type, label, error, leftIcon, rightIcon, ...props }, ref) => {
|
|
1905
2179
|
return /* @__PURE__ */ jsxs13("div", { className: "cc-stack space-2 w-full", children: [
|
|
1906
2180
|
label && /* @__PURE__ */ jsx16("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
@@ -2207,7 +2481,7 @@ var LoadingScreen = ({
|
|
|
2207
2481
|
};
|
|
2208
2482
|
|
|
2209
2483
|
// src/components/cupcode/ModalCupcode.tsx
|
|
2210
|
-
import * as
|
|
2484
|
+
import * as React8 from "react";
|
|
2211
2485
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
2212
2486
|
import { X as X2 } from "lucide-react";
|
|
2213
2487
|
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
@@ -2215,7 +2489,7 @@ var Modal = DialogPrimitive.Root;
|
|
|
2215
2489
|
var ModalTrigger = DialogPrimitive.Trigger;
|
|
2216
2490
|
var ModalPortal = DialogPrimitive.Portal;
|
|
2217
2491
|
var ModalClose = DialogPrimitive.Close;
|
|
2218
|
-
var ModalOverlay =
|
|
2492
|
+
var ModalOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
2219
2493
|
DialogPrimitive.Overlay,
|
|
2220
2494
|
{
|
|
2221
2495
|
ref,
|
|
@@ -2228,7 +2502,7 @@ var ModalOverlay = React9.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2228
2502
|
}
|
|
2229
2503
|
));
|
|
2230
2504
|
ModalOverlay.displayName = DialogPrimitive.Overlay.displayName;
|
|
2231
|
-
var ModalContent =
|
|
2505
|
+
var ModalContent = React8.forwardRef(({ className, children, size = "md", ...props }, ref) => {
|
|
2232
2506
|
const sizeClasses2 = {
|
|
2233
2507
|
sm: "max-w-sm",
|
|
2234
2508
|
md: "max-w-md",
|
|
@@ -2284,7 +2558,7 @@ var ModalFooter = ({
|
|
|
2284
2558
|
}
|
|
2285
2559
|
);
|
|
2286
2560
|
ModalFooter.displayName = "ModalFooter";
|
|
2287
|
-
var ModalTitle =
|
|
2561
|
+
var ModalTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
2288
2562
|
DialogPrimitive.Title,
|
|
2289
2563
|
{
|
|
2290
2564
|
ref,
|
|
@@ -2293,7 +2567,7 @@ var ModalTitle = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
2293
2567
|
}
|
|
2294
2568
|
));
|
|
2295
2569
|
ModalTitle.displayName = DialogPrimitive.Title.displayName;
|
|
2296
|
-
var ModalDescription =
|
|
2570
|
+
var ModalDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx20(
|
|
2297
2571
|
DialogPrimitive.Description,
|
|
2298
2572
|
{
|
|
2299
2573
|
ref,
|
|
@@ -2304,7 +2578,7 @@ var ModalDescription = React9.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
2304
2578
|
ModalDescription.displayName = DialogPrimitive.Description.displayName;
|
|
2305
2579
|
|
|
2306
2580
|
// src/components/cupcode/NavbarCupcode.tsx
|
|
2307
|
-
import * as
|
|
2581
|
+
import * as React9 from "react";
|
|
2308
2582
|
import { Menu } from "lucide-react";
|
|
2309
2583
|
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2310
2584
|
var NavbarCupcode = ({
|
|
@@ -2313,10 +2587,10 @@ var NavbarCupcode = ({
|
|
|
2313
2587
|
actions,
|
|
2314
2588
|
className
|
|
2315
2589
|
}) => {
|
|
2316
|
-
const [isOpen, setIsOpen] =
|
|
2317
|
-
const navRef =
|
|
2318
|
-
const mobileMenuId =
|
|
2319
|
-
|
|
2590
|
+
const [isOpen, setIsOpen] = React9.useState(false);
|
|
2591
|
+
const navRef = React9.useRef(null);
|
|
2592
|
+
const mobileMenuId = React9.useId();
|
|
2593
|
+
React9.useEffect(() => {
|
|
2320
2594
|
if (!isOpen) return;
|
|
2321
2595
|
const handlePointerDown = (event) => {
|
|
2322
2596
|
var _a74;
|
|
@@ -2338,7 +2612,7 @@ var NavbarCupcode = ({
|
|
|
2338
2612
|
document.removeEventListener("keydown", handleEscape);
|
|
2339
2613
|
};
|
|
2340
2614
|
}, [isOpen]);
|
|
2341
|
-
|
|
2615
|
+
React9.useEffect(() => {
|
|
2342
2616
|
if (!isOpen) return;
|
|
2343
2617
|
const { style } = document.body;
|
|
2344
2618
|
const previousOverflow = style.overflow;
|
|
@@ -2347,7 +2621,7 @@ var NavbarCupcode = ({
|
|
|
2347
2621
|
style.overflow = previousOverflow;
|
|
2348
2622
|
};
|
|
2349
2623
|
}, [isOpen]);
|
|
2350
|
-
|
|
2624
|
+
React9.useEffect(() => {
|
|
2351
2625
|
const handleResize = () => {
|
|
2352
2626
|
if (window.innerWidth >= 768) {
|
|
2353
2627
|
setIsOpen(false);
|
|
@@ -2469,7 +2743,7 @@ var NavbarCupcode = ({
|
|
|
2469
2743
|
};
|
|
2470
2744
|
|
|
2471
2745
|
// src/components/cupcode/MainNavbar.tsx
|
|
2472
|
-
import { useCallback as useCallback6, useEffect as useEffect16, useMemo as
|
|
2746
|
+
import { useCallback as useCallback6, useEffect as useEffect16, useMemo as useMemo9, useRef as useRef12, useState as useState13 } from "react";
|
|
2473
2747
|
|
|
2474
2748
|
// src/components/cupcode/TelescupImage.tsx
|
|
2475
2749
|
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
@@ -2562,20 +2836,20 @@ import {
|
|
|
2562
2836
|
import {
|
|
2563
2837
|
useCallback as useCallback5,
|
|
2564
2838
|
useEffect as useEffect14,
|
|
2565
|
-
useMemo as
|
|
2839
|
+
useMemo as useMemo8,
|
|
2566
2840
|
useRef as useRef11,
|
|
2567
2841
|
useState as useState11
|
|
2568
2842
|
} from "react";
|
|
2569
2843
|
|
|
2570
2844
|
// src/components/ui/select.tsx
|
|
2571
|
-
import * as
|
|
2845
|
+
import * as React10 from "react";
|
|
2572
2846
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
2573
2847
|
import { Check, ChevronDown as ChevronDown2, ChevronUp } from "lucide-react";
|
|
2574
2848
|
import { jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2575
2849
|
var Select = SelectPrimitive.Root;
|
|
2576
2850
|
var SelectGroup = SelectPrimitive.Group;
|
|
2577
2851
|
var SelectValue = SelectPrimitive.Value;
|
|
2578
|
-
var SelectTrigger =
|
|
2852
|
+
var SelectTrigger = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
2579
2853
|
SelectPrimitive.Trigger,
|
|
2580
2854
|
{
|
|
2581
2855
|
ref,
|
|
@@ -2591,7 +2865,7 @@ var SelectTrigger = React11.forwardRef(({ className, children, ...props }, ref)
|
|
|
2591
2865
|
}
|
|
2592
2866
|
));
|
|
2593
2867
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
2594
|
-
var SelectScrollUpButton =
|
|
2868
|
+
var SelectScrollUpButton = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
2595
2869
|
SelectPrimitive.ScrollUpButton,
|
|
2596
2870
|
{
|
|
2597
2871
|
ref,
|
|
@@ -2601,7 +2875,7 @@ var SelectScrollUpButton = React11.forwardRef(({ className, ...props }, ref) =>
|
|
|
2601
2875
|
}
|
|
2602
2876
|
));
|
|
2603
2877
|
SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
2604
|
-
var SelectScrollDownButton =
|
|
2878
|
+
var SelectScrollDownButton = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
|
|
2605
2879
|
SelectPrimitive.ScrollDownButton,
|
|
2606
2880
|
{
|
|
2607
2881
|
ref,
|
|
@@ -2611,7 +2885,7 @@ var SelectScrollDownButton = React11.forwardRef(({ className, ...props }, ref) =
|
|
|
2611
2885
|
}
|
|
2612
2886
|
));
|
|
2613
2887
|
SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
2614
|
-
var SelectContent =
|
|
2888
|
+
var SelectContent = React10.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx23(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs18(
|
|
2615
2889
|
SelectPrimitive.Content,
|
|
2616
2890
|
{
|
|
2617
2891
|
ref,
|
|
@@ -2639,9 +2913,9 @@ var SelectContent = React11.forwardRef(({ className, children, position = "poppe
|
|
|
2639
2913
|
}
|
|
2640
2914
|
) }));
|
|
2641
2915
|
SelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
2642
|
-
var SelectLabel =
|
|
2916
|
+
var SelectLabel = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SelectPrimitive.Label, { ref, className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className), ...props }));
|
|
2643
2917
|
SelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
2644
|
-
var SelectItem =
|
|
2918
|
+
var SelectItem = React10.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs18(
|
|
2645
2919
|
SelectPrimitive.Item,
|
|
2646
2920
|
{
|
|
2647
2921
|
ref,
|
|
@@ -2657,14 +2931,14 @@ var SelectItem = React11.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
2657
2931
|
}
|
|
2658
2932
|
));
|
|
2659
2933
|
SelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
2660
|
-
var SelectSeparator =
|
|
2934
|
+
var SelectSeparator = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(SelectPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
2661
2935
|
SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
2662
2936
|
|
|
2663
2937
|
// src/components/ui/avatar.tsx
|
|
2664
|
-
import * as
|
|
2938
|
+
import * as React11 from "react";
|
|
2665
2939
|
import * as AvatarPrimitive2 from "@radix-ui/react-avatar";
|
|
2666
2940
|
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
2667
|
-
var Avatar2 =
|
|
2941
|
+
var Avatar2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
2668
2942
|
AvatarPrimitive2.Root,
|
|
2669
2943
|
{
|
|
2670
2944
|
ref,
|
|
@@ -2673,7 +2947,7 @@ var Avatar2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
2673
2947
|
}
|
|
2674
2948
|
));
|
|
2675
2949
|
Avatar2.displayName = AvatarPrimitive2.Root.displayName;
|
|
2676
|
-
var AvatarImage2 =
|
|
2950
|
+
var AvatarImage2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
2677
2951
|
AvatarPrimitive2.Image,
|
|
2678
2952
|
{
|
|
2679
2953
|
ref,
|
|
@@ -2682,7 +2956,7 @@ var AvatarImage2 = React12.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
2682
2956
|
}
|
|
2683
2957
|
));
|
|
2684
2958
|
AvatarImage2.displayName = AvatarPrimitive2.Image.displayName;
|
|
2685
|
-
var AvatarFallback2 =
|
|
2959
|
+
var AvatarFallback2 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
2686
2960
|
AvatarPrimitive2.Fallback,
|
|
2687
2961
|
{
|
|
2688
2962
|
ref,
|
|
@@ -2693,7 +2967,7 @@ var AvatarFallback2 = React12.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
2693
2967
|
AvatarFallback2.displayName = AvatarPrimitive2.Fallback.displayName;
|
|
2694
2968
|
|
|
2695
2969
|
// src/components/ui/dropdown-menu.tsx
|
|
2696
|
-
import * as
|
|
2970
|
+
import * as React12 from "react";
|
|
2697
2971
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
2698
2972
|
import { Check as Check2, ChevronRight, Circle } from "lucide-react";
|
|
2699
2973
|
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
@@ -2703,7 +2977,7 @@ var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
|
2703
2977
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
2704
2978
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
2705
2979
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
2706
|
-
var DropdownMenuSubTrigger =
|
|
2980
|
+
var DropdownMenuSubTrigger = React12.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs19(
|
|
2707
2981
|
DropdownMenuPrimitive.SubTrigger,
|
|
2708
2982
|
{
|
|
2709
2983
|
ref,
|
|
@@ -2720,7 +2994,7 @@ var DropdownMenuSubTrigger = React13.forwardRef(({ className, inset, children, .
|
|
|
2720
2994
|
}
|
|
2721
2995
|
));
|
|
2722
2996
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
2723
|
-
var DropdownMenuSubContent =
|
|
2997
|
+
var DropdownMenuSubContent = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
2724
2998
|
DropdownMenuPrimitive.SubContent,
|
|
2725
2999
|
{
|
|
2726
3000
|
ref,
|
|
@@ -2732,7 +3006,7 @@ var DropdownMenuSubContent = React13.forwardRef(({ className, ...props }, ref) =
|
|
|
2732
3006
|
}
|
|
2733
3007
|
));
|
|
2734
3008
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
2735
|
-
var DropdownMenuContent =
|
|
3009
|
+
var DropdownMenuContent = React12.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx25(
|
|
2736
3010
|
DropdownMenuPrimitive.Content,
|
|
2737
3011
|
{
|
|
2738
3012
|
ref,
|
|
@@ -2745,7 +3019,7 @@ var DropdownMenuContent = React13.forwardRef(({ className, sideOffset = 4, ...pr
|
|
|
2745
3019
|
}
|
|
2746
3020
|
) }));
|
|
2747
3021
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
2748
|
-
var DropdownMenuItem =
|
|
3022
|
+
var DropdownMenuItem = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
2749
3023
|
DropdownMenuPrimitive.Item,
|
|
2750
3024
|
{
|
|
2751
3025
|
ref,
|
|
@@ -2758,7 +3032,7 @@ var DropdownMenuItem = React13.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2758
3032
|
}
|
|
2759
3033
|
));
|
|
2760
3034
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
2761
|
-
var DropdownMenuCheckboxItem =
|
|
3035
|
+
var DropdownMenuCheckboxItem = React12.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs19(
|
|
2762
3036
|
DropdownMenuPrimitive.CheckboxItem,
|
|
2763
3037
|
{
|
|
2764
3038
|
ref,
|
|
@@ -2775,7 +3049,7 @@ var DropdownMenuCheckboxItem = React13.forwardRef(({ className, children, checke
|
|
|
2775
3049
|
}
|
|
2776
3050
|
));
|
|
2777
3051
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
2778
|
-
var DropdownMenuRadioItem =
|
|
3052
|
+
var DropdownMenuRadioItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs19(
|
|
2779
3053
|
DropdownMenuPrimitive.RadioItem,
|
|
2780
3054
|
{
|
|
2781
3055
|
ref,
|
|
@@ -2791,7 +3065,7 @@ var DropdownMenuRadioItem = React13.forwardRef(({ className, children, ...props
|
|
|
2791
3065
|
}
|
|
2792
3066
|
));
|
|
2793
3067
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
2794
|
-
var DropdownMenuLabel =
|
|
3068
|
+
var DropdownMenuLabel = React12.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx25(
|
|
2795
3069
|
DropdownMenuPrimitive.Label,
|
|
2796
3070
|
{
|
|
2797
3071
|
ref,
|
|
@@ -2800,7 +3074,7 @@ var DropdownMenuLabel = React13.forwardRef(({ className, inset, ...props }, ref)
|
|
|
2800
3074
|
}
|
|
2801
3075
|
));
|
|
2802
3076
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
2803
|
-
var DropdownMenuSeparator =
|
|
3077
|
+
var DropdownMenuSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx25(DropdownMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
2804
3078
|
DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
|
|
2805
3079
|
var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
2806
3080
|
return /* @__PURE__ */ jsx25("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
|
|
@@ -2808,11 +3082,11 @@ var DropdownMenuShortcut = ({ className, ...props }) => {
|
|
|
2808
3082
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
2809
3083
|
|
|
2810
3084
|
// src/components/ui/alert-dialog.tsx
|
|
2811
|
-
import * as
|
|
3085
|
+
import * as React14 from "react";
|
|
2812
3086
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
2813
3087
|
|
|
2814
3088
|
// src/components/ui/button.tsx
|
|
2815
|
-
import * as
|
|
3089
|
+
import * as React13 from "react";
|
|
2816
3090
|
import { Slot } from "@radix-ui/react-slot";
|
|
2817
3091
|
import { cva } from "class-variance-authority";
|
|
2818
3092
|
import { jsx as jsx26 } from "react/jsx-runtime";
|
|
@@ -2841,7 +3115,7 @@ var buttonVariants = cva(
|
|
|
2841
3115
|
}
|
|
2842
3116
|
}
|
|
2843
3117
|
);
|
|
2844
|
-
var Button =
|
|
3118
|
+
var Button = React13.forwardRef(
|
|
2845
3119
|
({ className, variant, size, asChild = false, ...props }, ref) => {
|
|
2846
3120
|
const Comp = asChild ? Slot : "button";
|
|
2847
3121
|
return /* @__PURE__ */ jsx26(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
|
|
@@ -2854,7 +3128,7 @@ import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
|
2854
3128
|
var AlertDialog = AlertDialogPrimitive.Root;
|
|
2855
3129
|
var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
|
|
2856
3130
|
var AlertDialogPortal = AlertDialogPrimitive.Portal;
|
|
2857
|
-
var AlertDialogOverlay =
|
|
3131
|
+
var AlertDialogOverlay = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2858
3132
|
AlertDialogPrimitive.Overlay,
|
|
2859
3133
|
{
|
|
2860
3134
|
className: cn(
|
|
@@ -2866,7 +3140,7 @@ var AlertDialogOverlay = React15.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2866
3140
|
}
|
|
2867
3141
|
));
|
|
2868
3142
|
AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
|
|
2869
|
-
var AlertDialogContent =
|
|
3143
|
+
var AlertDialogContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs20(AlertDialogPortal, { children: [
|
|
2870
3144
|
/* @__PURE__ */ jsx27(AlertDialogOverlay, {}),
|
|
2871
3145
|
/* @__PURE__ */ jsx27(
|
|
2872
3146
|
AlertDialogPrimitive.Content,
|
|
@@ -2885,13 +3159,13 @@ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx27("div"
|
|
|
2885
3159
|
AlertDialogHeader.displayName = "AlertDialogHeader";
|
|
2886
3160
|
var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx27("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2887
3161
|
AlertDialogFooter.displayName = "AlertDialogFooter";
|
|
2888
|
-
var AlertDialogTitle =
|
|
3162
|
+
var AlertDialogTitle = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(AlertDialogPrimitive.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
|
|
2889
3163
|
AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
|
|
2890
|
-
var AlertDialogDescription =
|
|
3164
|
+
var AlertDialogDescription = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(AlertDialogPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
2891
3165
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
2892
|
-
var AlertDialogAction =
|
|
3166
|
+
var AlertDialogAction = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
|
|
2893
3167
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
2894
|
-
var AlertDialogCancel =
|
|
3168
|
+
var AlertDialogCancel = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
|
|
2895
3169
|
AlertDialogPrimitive.Cancel,
|
|
2896
3170
|
{
|
|
2897
3171
|
ref,
|
|
@@ -2902,7 +3176,7 @@ var AlertDialogCancel = React15.forwardRef(({ className, ...props }, ref) => /*
|
|
|
2902
3176
|
AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
|
|
2903
3177
|
|
|
2904
3178
|
// src/components/ui/dialog.tsx
|
|
2905
|
-
import * as
|
|
3179
|
+
import * as React15 from "react";
|
|
2906
3180
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
2907
3181
|
import { X as X3 } from "lucide-react";
|
|
2908
3182
|
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
@@ -2910,7 +3184,7 @@ var Dialog = DialogPrimitive2.Root;
|
|
|
2910
3184
|
var DialogTrigger = DialogPrimitive2.Trigger;
|
|
2911
3185
|
var DialogPortal = DialogPrimitive2.Portal;
|
|
2912
3186
|
var DialogClose = DialogPrimitive2.Close;
|
|
2913
|
-
var DialogOverlay =
|
|
3187
|
+
var DialogOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2914
3188
|
DialogPrimitive2.Overlay,
|
|
2915
3189
|
{
|
|
2916
3190
|
ref,
|
|
@@ -2922,7 +3196,7 @@ var DialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__P
|
|
|
2922
3196
|
}
|
|
2923
3197
|
));
|
|
2924
3198
|
DialogOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
2925
|
-
var DialogContent =
|
|
3199
|
+
var DialogContent = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs21(DialogPortal, { children: [
|
|
2926
3200
|
/* @__PURE__ */ jsx28(DialogOverlay, {}),
|
|
2927
3201
|
/* @__PURE__ */ jsxs21(
|
|
2928
3202
|
DialogPrimitive2.Content,
|
|
@@ -2948,7 +3222,7 @@ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx28("div", { c
|
|
|
2948
3222
|
DialogHeader.displayName = "DialogHeader";
|
|
2949
3223
|
var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx28("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
2950
3224
|
DialogFooter.displayName = "DialogFooter";
|
|
2951
|
-
var DialogTitle =
|
|
3225
|
+
var DialogTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
|
|
2952
3226
|
DialogPrimitive2.Title,
|
|
2953
3227
|
{
|
|
2954
3228
|
ref,
|
|
@@ -2957,14 +3231,14 @@ var DialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
2957
3231
|
}
|
|
2958
3232
|
));
|
|
2959
3233
|
DialogTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
2960
|
-
var DialogDescription =
|
|
3234
|
+
var DialogDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(DialogPrimitive2.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
2961
3235
|
DialogDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
2962
3236
|
|
|
2963
3237
|
// src/components/ui/switch.tsx
|
|
2964
|
-
import * as
|
|
3238
|
+
import * as React16 from "react";
|
|
2965
3239
|
import * as SwitchPrimitives from "@radix-ui/react-switch";
|
|
2966
3240
|
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
2967
|
-
var Switch =
|
|
3241
|
+
var Switch = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
2968
3242
|
SwitchPrimitives.Root,
|
|
2969
3243
|
{
|
|
2970
3244
|
className: cn(
|
|
@@ -2986,7 +3260,7 @@ var Switch = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
2986
3260
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
2987
3261
|
|
|
2988
3262
|
// src/hooks/use-toast.ts
|
|
2989
|
-
import * as
|
|
3263
|
+
import * as React17 from "react";
|
|
2990
3264
|
var TOAST_LIMIT = 1;
|
|
2991
3265
|
var TOAST_REMOVE_DELAY = 1e6;
|
|
2992
3266
|
var count = 0;
|
|
@@ -3085,8 +3359,8 @@ function toast({ ...props }) {
|
|
|
3085
3359
|
};
|
|
3086
3360
|
}
|
|
3087
3361
|
function useToast() {
|
|
3088
|
-
const [state, setState] =
|
|
3089
|
-
|
|
3362
|
+
const [state, setState] = React17.useState(memoryState);
|
|
3363
|
+
React17.useEffect(() => {
|
|
3090
3364
|
listeners.push(setState);
|
|
3091
3365
|
return () => {
|
|
3092
3366
|
const index = listeners.indexOf(setState);
|
|
@@ -3103,7 +3377,7 @@ function useToast() {
|
|
|
3103
3377
|
}
|
|
3104
3378
|
|
|
3105
3379
|
// src/components/cupcode/TelescupUpload.tsx
|
|
3106
|
-
import
|
|
3380
|
+
import React26, { useCallback as useCallback4, useEffect as useEffect13, useMemo as useMemo7, useState as useState10 } from "react";
|
|
3107
3381
|
|
|
3108
3382
|
// src/lib/telescupClient.ts
|
|
3109
3383
|
var TelescupClientError = class extends Error {
|
|
@@ -4449,10 +4723,10 @@ var createTelescupClient = (config) => ({
|
|
|
4449
4723
|
});
|
|
4450
4724
|
|
|
4451
4725
|
// src/components/cupcode/TelescupAssetPicker.tsx
|
|
4452
|
-
import
|
|
4726
|
+
import React20, { useCallback as useCallback2, useMemo as useMemo4, useState as useState7 } from "react";
|
|
4453
4727
|
|
|
4454
4728
|
// src/hooks/useTelescupAssets.ts
|
|
4455
|
-
import { useCallback, useEffect as useEffect11, useMemo as
|
|
4729
|
+
import { useCallback, useEffect as useEffect11, useMemo as useMemo3, useRef as useRef8, useState as useState6 } from "react";
|
|
4456
4730
|
var mergeFacetValues = (current, incoming) => {
|
|
4457
4731
|
if (!current && !incoming) return void 0;
|
|
4458
4732
|
const map = /* @__PURE__ */ new Map();
|
|
@@ -4515,14 +4789,14 @@ function useTelescupAssets(options) {
|
|
|
4515
4789
|
pageSize = 24,
|
|
4516
4790
|
cacheTimeMs = DEFAULT_CACHE_MS
|
|
4517
4791
|
} = options;
|
|
4518
|
-
const resolvedClient =
|
|
4792
|
+
const resolvedClient = useMemo3(() => {
|
|
4519
4793
|
if (client) return client;
|
|
4520
4794
|
if (!baseUrl || !getAccessToken) {
|
|
4521
4795
|
throw new Error("useTelescupAssets: baseUrl e getAccessToken s\xE3o obrigat\xF3rios.");
|
|
4522
4796
|
}
|
|
4523
4797
|
return createTelescupClient({ baseUrl, getAccessToken });
|
|
4524
4798
|
}, [client, baseUrl, getAccessToken]);
|
|
4525
|
-
const cacheKey =
|
|
4799
|
+
const cacheKey = useMemo3(() => {
|
|
4526
4800
|
const base = baseUrl != null ? baseUrl : "client";
|
|
4527
4801
|
return buildCacheKey(base, filters);
|
|
4528
4802
|
}, [baseUrl, filters]);
|
|
@@ -4672,9 +4946,9 @@ var TelescupVideo = ({
|
|
|
4672
4946
|
};
|
|
4673
4947
|
|
|
4674
4948
|
// src/components/ui/input.tsx
|
|
4675
|
-
import * as
|
|
4949
|
+
import * as React18 from "react";
|
|
4676
4950
|
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4677
|
-
var Input =
|
|
4951
|
+
var Input = React18.forwardRef(
|
|
4678
4952
|
({ className, type, ...props }, ref) => {
|
|
4679
4953
|
return /* @__PURE__ */ jsx31(
|
|
4680
4954
|
"input",
|
|
@@ -4722,10 +4996,10 @@ function Skeleton2({ className, ...props }) {
|
|
|
4722
4996
|
}
|
|
4723
4997
|
|
|
4724
4998
|
// src/components/ui/scroll-area.tsx
|
|
4725
|
-
import * as
|
|
4999
|
+
import * as React19 from "react";
|
|
4726
5000
|
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4727
5001
|
import { jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4728
|
-
var ScrollArea =
|
|
5002
|
+
var ScrollArea = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs22(
|
|
4729
5003
|
ScrollAreaPrimitive.Root,
|
|
4730
5004
|
{
|
|
4731
5005
|
ref,
|
|
@@ -4741,7 +5015,7 @@ var ScrollArea = React20.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
4741
5015
|
}
|
|
4742
5016
|
));
|
|
4743
5017
|
ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
|
|
4744
|
-
var ScrollBar =
|
|
5018
|
+
var ScrollBar = React19.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx34(
|
|
4745
5019
|
ScrollAreaPrimitive.ScrollAreaScrollbar,
|
|
4746
5020
|
{
|
|
4747
5021
|
ref,
|
|
@@ -4939,7 +5213,7 @@ var TelescupAssetPicker = ({
|
|
|
4939
5213
|
const [typeFilter, setTypeFilter] = useState7("all");
|
|
4940
5214
|
const [folderFilter, setFolderFilter] = useState7("all");
|
|
4941
5215
|
const [previewAsset, setPreviewAsset] = useState7(null);
|
|
4942
|
-
const baseFilters =
|
|
5216
|
+
const baseFilters = useMemo4(
|
|
4943
5217
|
() => ({
|
|
4944
5218
|
query: query || void 0,
|
|
4945
5219
|
// Mantemos type fora da query server-side porque dados legados podem ter kind incorreto.
|
|
@@ -4955,7 +5229,7 @@ var TelescupAssetPicker = ({
|
|
|
4955
5229
|
enabled,
|
|
4956
5230
|
pageSize: 500
|
|
4957
5231
|
});
|
|
4958
|
-
const folderOptions =
|
|
5232
|
+
const folderOptions = useMemo4(() => {
|
|
4959
5233
|
const options = normalizeFacetOptions(facets == null ? void 0 : facets.folders);
|
|
4960
5234
|
return options.length ? options : collectFacetOptions(
|
|
4961
5235
|
items,
|
|
@@ -4963,11 +5237,11 @@ var TelescupAssetPicker = ({
|
|
|
4963
5237
|
(asset) => asset.folderName
|
|
4964
5238
|
);
|
|
4965
5239
|
}, [facets == null ? void 0 : facets.folders, items]);
|
|
4966
|
-
const selectedFolderOption =
|
|
5240
|
+
const selectedFolderOption = useMemo4(() => {
|
|
4967
5241
|
if (folderFilter === "all") return void 0;
|
|
4968
5242
|
return folderOptions.find((option) => option.value === folderFilter);
|
|
4969
5243
|
}, [folderFilter, folderOptions]);
|
|
4970
|
-
const filteredItems =
|
|
5244
|
+
const filteredItems = useMemo4(() => {
|
|
4971
5245
|
var _a74;
|
|
4972
5246
|
const selectedFolderAliases = new Set(
|
|
4973
5247
|
((_a74 = selectedFolderOption == null ? void 0 : selectedFolderOption.aliases) != null ? _a74 : folderFilter === "all" ? [] : [folderFilter]).map(
|
|
@@ -5004,13 +5278,13 @@ var TelescupAssetPicker = ({
|
|
|
5004
5278
|
},
|
|
5005
5279
|
[filteredItems, multiple, onChange, value]
|
|
5006
5280
|
);
|
|
5007
|
-
|
|
5281
|
+
React20.useEffect(() => {
|
|
5008
5282
|
if (filteredItems.length) onAssetsLoaded == null ? void 0 : onAssetsLoaded(filteredItems);
|
|
5009
5283
|
}, [filteredItems, onAssetsLoaded]);
|
|
5010
|
-
|
|
5284
|
+
React20.useEffect(() => {
|
|
5011
5285
|
onTotalAssetsChange == null ? void 0 : onTotalAssetsChange(total != null ? total : 0);
|
|
5012
5286
|
}, [onTotalAssetsChange, total]);
|
|
5013
|
-
|
|
5287
|
+
React20.useEffect(() => {
|
|
5014
5288
|
if (!enabled) return;
|
|
5015
5289
|
if (isLoading || isLoadingMore) return;
|
|
5016
5290
|
if (!hasMore) return;
|
|
@@ -5096,10 +5370,10 @@ var TelescupAssetPicker = ({
|
|
|
5096
5370
|
};
|
|
5097
5371
|
|
|
5098
5372
|
// src/components/cupcode/TelescupUploader.tsx
|
|
5099
|
-
import { useMemo as
|
|
5373
|
+
import { useMemo as useMemo6, useRef as useRef10, useState as useState9 } from "react";
|
|
5100
5374
|
|
|
5101
5375
|
// src/hooks/useTelescupUploadQueue.tsx
|
|
5102
|
-
import { useCallback as useCallback3, useEffect as useEffect12, useMemo as
|
|
5376
|
+
import { useCallback as useCallback3, useEffect as useEffect12, useMemo as useMemo5, useRef as useRef9, useState as useState8 } from "react";
|
|
5103
5377
|
var DEFAULT_CONCURRENCY = 3;
|
|
5104
5378
|
var TELESCUP_UPLOAD_MODE = getRuntimeEnvOr("VITE_TELESCUP_UPLOAD_MODE", "standard").trim().toLowerCase();
|
|
5105
5379
|
var makeId = () => Math.random().toString(36).slice(2, 10);
|
|
@@ -5315,7 +5589,7 @@ function useTelescupUploadQueue(options) {
|
|
|
5315
5589
|
},
|
|
5316
5590
|
[updateItem]
|
|
5317
5591
|
);
|
|
5318
|
-
const isUploading =
|
|
5592
|
+
const isUploading = useMemo5(
|
|
5319
5593
|
() => queue.some((item) => item.status === "uploading" || item.status === "queued"),
|
|
5320
5594
|
[queue]
|
|
5321
5595
|
);
|
|
@@ -5331,10 +5605,10 @@ function useTelescupUploadQueue(options) {
|
|
|
5331
5605
|
}
|
|
5332
5606
|
|
|
5333
5607
|
// src/components/ui/progress.tsx
|
|
5334
|
-
import * as
|
|
5608
|
+
import * as React21 from "react";
|
|
5335
5609
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
5336
5610
|
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
5337
|
-
var Progress =
|
|
5611
|
+
var Progress = React21.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx36(
|
|
5338
5612
|
ProgressPrimitive.Root,
|
|
5339
5613
|
{
|
|
5340
5614
|
ref,
|
|
@@ -5390,10 +5664,10 @@ var TelescupUploader = ({
|
|
|
5390
5664
|
});
|
|
5391
5665
|
}
|
|
5392
5666
|
});
|
|
5393
|
-
const accept =
|
|
5667
|
+
const accept = useMemo6(() => allowedTypes && allowedTypes.length ? allowedTypes.join(",") : void 0, [
|
|
5394
5668
|
allowedTypes
|
|
5395
5669
|
]);
|
|
5396
|
-
const conflictItem =
|
|
5670
|
+
const conflictItem = useMemo6(() => queue.find((item) => item.status === "conflict"), [queue]);
|
|
5397
5671
|
const handleFiles = (files) => {
|
|
5398
5672
|
const { rejected } = enqueueFiles(files);
|
|
5399
5673
|
rejected.forEach(({ file, reason }) => {
|
|
@@ -5522,11 +5796,11 @@ var TelescupUploader = ({
|
|
|
5522
5796
|
};
|
|
5523
5797
|
|
|
5524
5798
|
// src/components/ui/tabs.tsx
|
|
5525
|
-
import * as
|
|
5799
|
+
import * as React23 from "react";
|
|
5526
5800
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
5527
5801
|
import { jsx as jsx38 } from "react/jsx-runtime";
|
|
5528
5802
|
var Tabs = TabsPrimitive.Root;
|
|
5529
|
-
var TabsList =
|
|
5803
|
+
var TabsList = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
5530
5804
|
TabsPrimitive.List,
|
|
5531
5805
|
{
|
|
5532
5806
|
ref,
|
|
@@ -5538,7 +5812,7 @@ var TabsList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
5538
5812
|
}
|
|
5539
5813
|
));
|
|
5540
5814
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
5541
|
-
var TabsTrigger =
|
|
5815
|
+
var TabsTrigger = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
5542
5816
|
TabsPrimitive.Trigger,
|
|
5543
5817
|
{
|
|
5544
5818
|
ref,
|
|
@@ -5550,7 +5824,7 @@ var TabsTrigger = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5550
5824
|
}
|
|
5551
5825
|
));
|
|
5552
5826
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
5553
|
-
var TabsContent =
|
|
5827
|
+
var TabsContent = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx38(
|
|
5554
5828
|
TabsPrimitive.Content,
|
|
5555
5829
|
{
|
|
5556
5830
|
ref,
|
|
@@ -5564,7 +5838,7 @@ var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5564
5838
|
TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
5565
5839
|
|
|
5566
5840
|
// src/components/ui/drawer.tsx
|
|
5567
|
-
import * as
|
|
5841
|
+
import * as React24 from "react";
|
|
5568
5842
|
import { Drawer as DrawerPrimitive } from "vaul";
|
|
5569
5843
|
import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5570
5844
|
var Drawer = ({ shouldScaleBackground = true, ...props }) => /* @__PURE__ */ jsx39(DrawerPrimitive.Root, { shouldScaleBackground, ...props });
|
|
@@ -5572,9 +5846,9 @@ Drawer.displayName = "Drawer";
|
|
|
5572
5846
|
var DrawerTrigger = DrawerPrimitive.Trigger;
|
|
5573
5847
|
var DrawerPortal = DrawerPrimitive.Portal;
|
|
5574
5848
|
var DrawerClose = DrawerPrimitive.Close;
|
|
5575
|
-
var DrawerOverlay =
|
|
5849
|
+
var DrawerOverlay = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(DrawerPrimitive.Overlay, { ref, className: cn("fixed inset-0 z-50 bg-black/80", className), ...props }));
|
|
5576
5850
|
DrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;
|
|
5577
|
-
var DrawerContent =
|
|
5851
|
+
var DrawerContent = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs25(DrawerPortal, { children: [
|
|
5578
5852
|
/* @__PURE__ */ jsx39(DrawerOverlay, {}),
|
|
5579
5853
|
/* @__PURE__ */ jsxs25(
|
|
5580
5854
|
DrawerPrimitive.Content,
|
|
@@ -5597,7 +5871,7 @@ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx39("div", { c
|
|
|
5597
5871
|
DrawerHeader.displayName = "DrawerHeader";
|
|
5598
5872
|
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx39("div", { className: cn("mt-auto flex flex-col gap-2 p-4", className), ...props });
|
|
5599
5873
|
DrawerFooter.displayName = "DrawerFooter";
|
|
5600
|
-
var DrawerTitle =
|
|
5874
|
+
var DrawerTitle = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(
|
|
5601
5875
|
DrawerPrimitive.Title,
|
|
5602
5876
|
{
|
|
5603
5877
|
ref,
|
|
@@ -5606,13 +5880,13 @@ var DrawerTitle = React25.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5606
5880
|
}
|
|
5607
5881
|
));
|
|
5608
5882
|
DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
|
|
5609
|
-
var DrawerDescription =
|
|
5883
|
+
var DrawerDescription = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx39(DrawerPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
5610
5884
|
DrawerDescription.displayName = DrawerPrimitive.Description.displayName;
|
|
5611
5885
|
|
|
5612
5886
|
// src/components/ui/textarea.tsx
|
|
5613
|
-
import * as
|
|
5887
|
+
import * as React25 from "react";
|
|
5614
5888
|
import { jsx as jsx40 } from "react/jsx-runtime";
|
|
5615
|
-
var Textarea =
|
|
5889
|
+
var Textarea = React25.forwardRef(({ className, ...props }, ref) => {
|
|
5616
5890
|
return /* @__PURE__ */ jsx40(
|
|
5617
5891
|
"textarea",
|
|
5618
5892
|
{
|
|
@@ -5756,7 +6030,7 @@ var TelescupMetaEditor = ({
|
|
|
5756
6030
|
}
|
|
5757
6031
|
}, [activeAssetId, assets]);
|
|
5758
6032
|
const asset = assets.find((item) => item.id === activeAssetId);
|
|
5759
|
-
const currentDraft =
|
|
6033
|
+
const currentDraft = useMemo7(() => {
|
|
5760
6034
|
var _a75;
|
|
5761
6035
|
const existing = (_a75 = drafts[activeAssetId]) == null ? void 0 : _a75[activeLang];
|
|
5762
6036
|
if (existing) return existing;
|
|
@@ -5965,8 +6239,8 @@ var TelescupUpload = ({
|
|
|
5965
6239
|
className,
|
|
5966
6240
|
renderTrigger
|
|
5967
6241
|
}) => {
|
|
5968
|
-
const labels =
|
|
5969
|
-
const client =
|
|
6242
|
+
const labels = useMemo7(() => mergeLabels(labelsOverride), [labelsOverride]);
|
|
6243
|
+
const client = useMemo7(() => createTelescupClient({ baseUrl, getAccessToken }), [baseUrl, getAccessToken]);
|
|
5970
6244
|
const isControlled = open !== void 0;
|
|
5971
6245
|
const [internalOpen, setInternalOpen] = useState10(false);
|
|
5972
6246
|
const isOpen = isControlled ? open : internalOpen;
|
|
@@ -5975,7 +6249,7 @@ var TelescupUpload = ({
|
|
|
5975
6249
|
const [totalAssets, setTotalAssets] = useState10(0);
|
|
5976
6250
|
const [activeTab, setActiveTab] = useState10("library");
|
|
5977
6251
|
const [assetRevision, setAssetRevision] = useState10(0);
|
|
5978
|
-
const assetMapRef =
|
|
6252
|
+
const assetMapRef = React26.useRef(/* @__PURE__ */ new Map());
|
|
5979
6253
|
useEffect13(() => {
|
|
5980
6254
|
if (value) {
|
|
5981
6255
|
setInternalSelection(value);
|
|
@@ -5983,14 +6257,14 @@ var TelescupUpload = ({
|
|
|
5983
6257
|
}, [value]);
|
|
5984
6258
|
const selectedIds = value != null ? value : internalSelection;
|
|
5985
6259
|
const effectiveSelectedIds = deferSelectionCommit ? stagedSelection != null ? stagedSelection : selectedIds : selectedIds;
|
|
5986
|
-
const hasPendingSelectionChange =
|
|
6260
|
+
const hasPendingSelectionChange = useMemo7(() => {
|
|
5987
6261
|
if (!deferSelectionCommit || stagedSelection === null) return false;
|
|
5988
6262
|
if (stagedSelection.length !== selectedIds.length) return true;
|
|
5989
6263
|
const left = [...stagedSelection].sort();
|
|
5990
6264
|
const right = [...selectedIds].sort();
|
|
5991
6265
|
return left.some((entry, index) => entry !== right[index]);
|
|
5992
6266
|
}, [deferSelectionCommit, selectedIds, stagedSelection]);
|
|
5993
|
-
const selectedAssets =
|
|
6267
|
+
const selectedAssets = useMemo7(() => {
|
|
5994
6268
|
void assetRevision;
|
|
5995
6269
|
const map = assetMapRef.current;
|
|
5996
6270
|
return effectiveSelectedIds.map((id) => map.get(id)).filter(Boolean);
|
|
@@ -6772,6 +7046,11 @@ var formatRecentActivityDateTime = (value) => {
|
|
|
6772
7046
|
minute: "2-digit"
|
|
6773
7047
|
});
|
|
6774
7048
|
};
|
|
7049
|
+
var formatAppVersion = (value) => {
|
|
7050
|
+
const normalized = value == null ? void 0 : value.trim();
|
|
7051
|
+
if (!normalized) return "N\xE3o informada";
|
|
7052
|
+
return normalized.toLowerCase().startsWith("v") ? normalized : `v${normalized}`;
|
|
7053
|
+
};
|
|
6775
7054
|
var PresenceBadge = ({ status, size = "sm" }) => {
|
|
6776
7055
|
const meta = PRESENCE_META[status];
|
|
6777
7056
|
const dotSize = size === "lg" ? "h-[0.95rem] w-[0.95rem]" : size === "md" ? "h-3 w-3" : "h-2.5 w-2.5";
|
|
@@ -6842,6 +7121,7 @@ var UserMenuCupcode = ({
|
|
|
6842
7121
|
isRecentActivityLoading = false,
|
|
6843
7122
|
telescupBaseUrl,
|
|
6844
7123
|
getTelescupAccessToken,
|
|
7124
|
+
appVersion,
|
|
6845
7125
|
panels,
|
|
6846
7126
|
className
|
|
6847
7127
|
}) => {
|
|
@@ -6923,17 +7203,19 @@ var UserMenuCupcode = ({
|
|
|
6923
7203
|
const autoScrollArmTimeoutRef = useRef11(null);
|
|
6924
7204
|
const isChatMessagesControlled = typeof chatMessages !== "undefined";
|
|
6925
7205
|
const isChatReactionsControlled = typeof chatReactions !== "undefined";
|
|
6926
|
-
const initials =
|
|
6927
|
-
const handle =
|
|
7206
|
+
const initials = useMemo8(() => buildInitials(displayName, email), [displayName, email]);
|
|
7207
|
+
const handle = useMemo8(() => buildHandle(username, email), [username, email]);
|
|
6928
7208
|
const resolvedRole = roleLabel == null ? void 0 : roleLabel.trim();
|
|
7209
|
+
const resolvedAppVersion = useMemo8(() => resolveCupcodeAppVersion(appVersion), [appVersion]);
|
|
7210
|
+
const appVersionLabel = useMemo8(() => formatAppVersion(resolvedAppVersion), [resolvedAppVersion]);
|
|
6929
7211
|
const isStatusControlled = typeof status !== "undefined";
|
|
6930
7212
|
const currentStatus = status != null ? status : internalStatus;
|
|
6931
|
-
const baseNotificationList =
|
|
7213
|
+
const baseNotificationList = useMemo8(
|
|
6932
7214
|
() => notifications && notifications.length > 0 ? notifications : DEFAULT_NOTIFICATIONS,
|
|
6933
7215
|
[notifications]
|
|
6934
7216
|
);
|
|
6935
7217
|
const isStatusFocusMode = isFocusRestrictedStatus(currentStatus);
|
|
6936
|
-
const isTimedFocusMode =
|
|
7218
|
+
const isTimedFocusMode = useMemo8(() => {
|
|
6937
7219
|
if (!notificationPreferences.focusUntil) return false;
|
|
6938
7220
|
const deadline = new Date(notificationPreferences.focusUntil).getTime();
|
|
6939
7221
|
if (Number.isNaN(deadline)) return false;
|
|
@@ -6941,11 +7223,11 @@ var UserMenuCupcode = ({
|
|
|
6941
7223
|
}, [notificationPreferences.focusUntil]);
|
|
6942
7224
|
const isFocusModeActive = isStatusFocusMode || isTimedFocusMode;
|
|
6943
7225
|
const isBadgeSuppressedByFocus = isFocusModeActive;
|
|
6944
|
-
const resolvedNotificationFeed =
|
|
7226
|
+
const resolvedNotificationFeed = useMemo8(
|
|
6945
7227
|
() => appendUniqueNotifications(baseNotificationList, runtimeNotifications),
|
|
6946
7228
|
[baseNotificationList, runtimeNotifications]
|
|
6947
7229
|
);
|
|
6948
|
-
const normalizedNotificationFeed =
|
|
7230
|
+
const normalizedNotificationFeed = useMemo8(
|
|
6949
7231
|
() => resolvedNotificationFeed.map((notification) => {
|
|
6950
7232
|
var _a75;
|
|
6951
7233
|
const kind = normalizeNotificationKind(notification.kind);
|
|
@@ -6962,7 +7244,7 @@ var UserMenuCupcode = ({
|
|
|
6962
7244
|
if (typeof override === "boolean") return override;
|
|
6963
7245
|
return notification.unread !== true;
|
|
6964
7246
|
}, [notificationReadMap]);
|
|
6965
|
-
const filteredNotifications =
|
|
7247
|
+
const filteredNotifications = useMemo8(() => {
|
|
6966
7248
|
return normalizedNotificationFeed.filter((notification) => {
|
|
6967
7249
|
if (notificationReadFilter === "unread" && isNotificationRead(notification)) {
|
|
6968
7250
|
return false;
|
|
@@ -6973,18 +7255,18 @@ var UserMenuCupcode = ({
|
|
|
6973
7255
|
return true;
|
|
6974
7256
|
});
|
|
6975
7257
|
}, [isNotificationRead, normalizedNotificationFeed, notificationReadFilter, notificationTypeFilter]);
|
|
6976
|
-
const unreadNotificationsCount =
|
|
7258
|
+
const unreadNotificationsCount = useMemo8(
|
|
6977
7259
|
() => normalizedNotificationFeed.filter((notification) => !isNotificationRead(notification)).length,
|
|
6978
7260
|
[isNotificationRead, normalizedNotificationFeed]
|
|
6979
7261
|
);
|
|
6980
|
-
const unreadGeneralNotificationsCount =
|
|
7262
|
+
const unreadGeneralNotificationsCount = useMemo8(
|
|
6981
7263
|
() => normalizedNotificationFeed.filter((notification) => {
|
|
6982
7264
|
if (normalizeNotificationKind(notification.kind) === "chat") return false;
|
|
6983
7265
|
return !isNotificationRead(notification);
|
|
6984
7266
|
}).length,
|
|
6985
7267
|
[isNotificationRead, normalizedNotificationFeed]
|
|
6986
7268
|
);
|
|
6987
|
-
const groupedNotifications =
|
|
7269
|
+
const groupedNotifications = useMemo8(() => {
|
|
6988
7270
|
const groups = /* @__PURE__ */ new Map();
|
|
6989
7271
|
filteredNotifications.forEach((notification) => {
|
|
6990
7272
|
var _a75, _b7;
|
|
@@ -7011,7 +7293,7 @@ var UserMenuCupcode = ({
|
|
|
7011
7293
|
items: values.sort((left, right) => getNotificationTimestamp(right) - getNotificationTimestamp(left))
|
|
7012
7294
|
}));
|
|
7013
7295
|
}, [filteredNotifications, notificationPreferences.grouping]);
|
|
7014
|
-
const visibleGroupedNotifications =
|
|
7296
|
+
const visibleGroupedNotifications = useMemo8(() => {
|
|
7015
7297
|
if (isNotificationsExpanded) return groupedNotifications;
|
|
7016
7298
|
let remaining = NOTIFICATIONS_VISIBLE_LIMIT;
|
|
7017
7299
|
const visibleGroups = [];
|
|
@@ -7025,7 +7307,7 @@ var UserMenuCupcode = ({
|
|
|
7025
7307
|
return visibleGroups;
|
|
7026
7308
|
}, [groupedNotifications, isNotificationsExpanded]);
|
|
7027
7309
|
const hiddenNotificationsCount = Math.max(filteredNotifications.length - NOTIFICATIONS_VISIBLE_LIMIT, 0);
|
|
7028
|
-
const focusModeSummaryLabel =
|
|
7310
|
+
const focusModeSummaryLabel = useMemo8(() => {
|
|
7029
7311
|
if (isStatusFocusMode) {
|
|
7030
7312
|
const label = PRESENCE_META[currentStatus].label;
|
|
7031
7313
|
return `Ativo pelo status "${label}"`;
|
|
@@ -7038,28 +7320,28 @@ var UserMenuCupcode = ({
|
|
|
7038
7320
|
}
|
|
7039
7321
|
return "Desativado";
|
|
7040
7322
|
}, [currentStatus, isStatusFocusMode, isTimedFocusMode, notificationPreferences.focusUntil]);
|
|
7041
|
-
const baseChatUsersList =
|
|
7042
|
-
const chatUsersList =
|
|
7043
|
-
const resolvedCurrentChatUserId =
|
|
7323
|
+
const baseChatUsersList = useMemo8(() => chatUsers != null ? chatUsers : [], [chatUsers]);
|
|
7324
|
+
const chatUsersList = useMemo8(() => [...internalChatGroups, ...baseChatUsersList], [baseChatUsersList, internalChatGroups]);
|
|
7325
|
+
const resolvedCurrentChatUserId = useMemo8(() => (currentChatUserId == null ? void 0 : currentChatUserId.trim()) || null, [currentChatUserId]);
|
|
7044
7326
|
const [internalChatMessages, setInternalChatMessages] = useState11(chatMessages != null ? chatMessages : []);
|
|
7045
7327
|
const [internalChatReactions, setInternalChatReactions] = useState11(chatReactions != null ? chatReactions : []);
|
|
7046
|
-
const resolvedChatMessages =
|
|
7328
|
+
const resolvedChatMessages = useMemo8(
|
|
7047
7329
|
() => isChatMessagesControlled ? chatMessages != null ? chatMessages : [] : internalChatMessages,
|
|
7048
7330
|
[chatMessages, internalChatMessages, isChatMessagesControlled]
|
|
7049
7331
|
);
|
|
7050
|
-
const resolvedChatReactions =
|
|
7332
|
+
const resolvedChatReactions = useMemo8(
|
|
7051
7333
|
() => isChatReactionsControlled ? chatReactions != null ? chatReactions : [] : internalChatReactions,
|
|
7052
7334
|
[chatReactions, internalChatReactions, isChatReactionsControlled]
|
|
7053
7335
|
);
|
|
7054
|
-
const resolvedAllChatMessages =
|
|
7336
|
+
const resolvedAllChatMessages = useMemo8(
|
|
7055
7337
|
() => [...resolvedChatMessages, ...internalGroupMessages],
|
|
7056
7338
|
[resolvedChatMessages, internalGroupMessages]
|
|
7057
7339
|
);
|
|
7058
|
-
const resolvedAllChatReactions =
|
|
7340
|
+
const resolvedAllChatReactions = useMemo8(
|
|
7059
7341
|
() => [...resolvedChatReactions, ...internalGroupReactions],
|
|
7060
7342
|
[resolvedChatReactions, internalGroupReactions]
|
|
7061
7343
|
);
|
|
7062
|
-
const resolvedChatLogs =
|
|
7344
|
+
const resolvedChatLogs = useMemo8(() => chatMessageLogs != null ? chatMessageLogs : [], [chatMessageLogs]);
|
|
7063
7345
|
const resolvedName = (displayName == null ? void 0 : displayName.trim()) || "Usu\xE1rio Cupcode";
|
|
7064
7346
|
const resolvedEmail = (email == null ? void 0 : email.trim()) || "email n\xE3o informado";
|
|
7065
7347
|
const resolvedVisibleEmail = experienceSettings.showEmailPublicly ? resolvedEmail : "Email privado";
|
|
@@ -7068,7 +7350,7 @@ var UserMenuCupcode = ({
|
|
|
7068
7350
|
const resolvedLanguage = normalizeLanguage(isLanguageControlled ? language : internalLanguage);
|
|
7069
7351
|
const isHighContrastEnabled = experienceSettings.contrast === "high";
|
|
7070
7352
|
const isComfortableDensity = experienceSettings.density === "comfortable";
|
|
7071
|
-
const resolvedRecentActivity =
|
|
7353
|
+
const resolvedRecentActivity = useMemo8(() => {
|
|
7072
7354
|
const activityList = recentActivity != null ? recentActivity : [];
|
|
7073
7355
|
return [...activityList].sort((left, right) => {
|
|
7074
7356
|
const leftTs = left.occurredAt ? new Date(left.occurredAt).getTime() : 0;
|
|
@@ -7081,11 +7363,11 @@ var UserMenuCupcode = ({
|
|
|
7081
7363
|
const isChatSidebarOpen = isChatSidebarExpanded || isChatSidebarPinned;
|
|
7082
7364
|
const hasTelescupAvatarSupport = Boolean(telescupBaseUrl && getTelescupAccessToken);
|
|
7083
7365
|
const hasTelescupGroupAvatarSupport = hasTelescupAvatarSupport;
|
|
7084
|
-
const createGroupCandidates =
|
|
7366
|
+
const createGroupCandidates = useMemo8(
|
|
7085
7367
|
() => baseChatUsersList.filter((user) => !user.isGroup),
|
|
7086
7368
|
[baseChatUsersList]
|
|
7087
7369
|
);
|
|
7088
|
-
const conversationMetaByUserId =
|
|
7370
|
+
const conversationMetaByUserId = useMemo8(() => {
|
|
7089
7371
|
const meta = /* @__PURE__ */ new Map();
|
|
7090
7372
|
chatUsersList.forEach((user) => {
|
|
7091
7373
|
meta.set(user.id, { lastMessage: null, lastTimestamp: 0, unreadCount: 0 });
|
|
@@ -7105,7 +7387,7 @@ var UserMenuCupcode = ({
|
|
|
7105
7387
|
});
|
|
7106
7388
|
return meta;
|
|
7107
7389
|
}, [chatUsersList, resolvedAllChatMessages]);
|
|
7108
|
-
const filteredAndSortedChatUsers =
|
|
7390
|
+
const filteredAndSortedChatUsers = useMemo8(() => {
|
|
7109
7391
|
const query = chatQuery.trim().toLowerCase();
|
|
7110
7392
|
const filtered = !query ? [...chatUsersList] : chatUsersList.filter((user) => {
|
|
7111
7393
|
const haystack = `${user.name} ${user.username}`.toLowerCase();
|
|
@@ -7124,7 +7406,7 @@ var UserMenuCupcode = ({
|
|
|
7124
7406
|
return left.name.localeCompare(right.name, "pt-BR");
|
|
7125
7407
|
});
|
|
7126
7408
|
}, [chatQuery, chatUsersList, conversationMetaByUserId]);
|
|
7127
|
-
const presenceGroupCounts =
|
|
7409
|
+
const presenceGroupCounts = useMemo8(() => {
|
|
7128
7410
|
const counts = {
|
|
7129
7411
|
online: 0,
|
|
7130
7412
|
busy: 0,
|
|
@@ -7137,7 +7419,7 @@ var UserMenuCupcode = ({
|
|
|
7137
7419
|
});
|
|
7138
7420
|
return counts;
|
|
7139
7421
|
}, [filteredAndSortedChatUsers]);
|
|
7140
|
-
const groupedChatUsers =
|
|
7422
|
+
const groupedChatUsers = useMemo8(() => {
|
|
7141
7423
|
const groups = {
|
|
7142
7424
|
online: [],
|
|
7143
7425
|
busy: [],
|
|
@@ -7150,7 +7432,7 @@ var UserMenuCupcode = ({
|
|
|
7150
7432
|
});
|
|
7151
7433
|
return groups;
|
|
7152
7434
|
}, [filteredAndSortedChatUsers]);
|
|
7153
|
-
const resolvedChatUnreadByUser =
|
|
7435
|
+
const resolvedChatUnreadByUser = useMemo8(() => {
|
|
7154
7436
|
const unreadByUser = {};
|
|
7155
7437
|
conversationMetaByUserId.forEach((value, contactId) => {
|
|
7156
7438
|
if (value.unreadCount > 0) {
|
|
@@ -7177,11 +7459,11 @@ var UserMenuCupcode = ({
|
|
|
7177
7459
|
return changed ? next : current;
|
|
7178
7460
|
});
|
|
7179
7461
|
}, [normalizedNotificationFeed, resolvedChatUnreadByUser]);
|
|
7180
|
-
const resolvedChatUnreadCount =
|
|
7462
|
+
const resolvedChatUnreadCount = useMemo8(() => {
|
|
7181
7463
|
return Object.values(resolvedChatUnreadByUser).reduce((total, value) => total + value, 0);
|
|
7182
7464
|
}, [resolvedChatUnreadByUser]);
|
|
7183
7465
|
const visibleChatUnreadCount = resolvedChatUnreadCount;
|
|
7184
|
-
const firstUnreadChatUserId =
|
|
7466
|
+
const firstUnreadChatUserId = useMemo8(
|
|
7185
7467
|
() => {
|
|
7186
7468
|
var _a75, _b7;
|
|
7187
7469
|
return (_b7 = (_a75 = filteredAndSortedChatUsers.find((user) => {
|
|
@@ -7281,7 +7563,7 @@ var UserMenuCupcode = ({
|
|
|
7281
7563
|
setShowJumpToLatestMessage(false);
|
|
7282
7564
|
setPendingLatestMessagesCount(0);
|
|
7283
7565
|
}, [prefersReducedMotion, scrollChatMessagesToBottom]);
|
|
7284
|
-
const reactionsByMessageId =
|
|
7566
|
+
const reactionsByMessageId = useMemo8(() => {
|
|
7285
7567
|
const grouped = /* @__PURE__ */ new Map();
|
|
7286
7568
|
resolvedAllChatReactions.forEach((reaction) => {
|
|
7287
7569
|
var _a75, _b7;
|
|
@@ -7682,20 +7964,20 @@ var UserMenuCupcode = ({
|
|
|
7682
7964
|
openChatPanel,
|
|
7683
7965
|
resolvedAllChatMessages
|
|
7684
7966
|
]);
|
|
7685
|
-
const activeChatUser =
|
|
7967
|
+
const activeChatUser = useMemo8(
|
|
7686
7968
|
() => {
|
|
7687
7969
|
var _a75;
|
|
7688
7970
|
return (_a75 = chatUsersList.find((user) => user.id === activeChatUserId)) != null ? _a75 : null;
|
|
7689
7971
|
},
|
|
7690
7972
|
[activeChatUserId, chatUsersList]
|
|
7691
7973
|
);
|
|
7692
|
-
const activeGroupMembers =
|
|
7974
|
+
const activeGroupMembers = useMemo8(() => {
|
|
7693
7975
|
var _a75;
|
|
7694
7976
|
if (!(activeChatUser == null ? void 0 : activeChatUser.isGroup) || !((_a75 = activeChatUser.memberIds) == null ? void 0 : _a75.length)) return [];
|
|
7695
7977
|
const members = activeChatUser.memberIds.map((memberId) => baseChatUsersList.find((user) => user.id === memberId)).filter((member) => Boolean(member));
|
|
7696
7978
|
return members;
|
|
7697
7979
|
}, [activeChatUser, baseChatUsersList]);
|
|
7698
|
-
const activeChatMessages =
|
|
7980
|
+
const activeChatMessages = useMemo8(() => {
|
|
7699
7981
|
if (!activeChatUser) return [];
|
|
7700
7982
|
return [...resolvedAllChatMessages].filter((message) => message.contactId === activeChatUser.id).sort((left, right) => {
|
|
7701
7983
|
const leftTimestamp = getChatMessageTimestamp(left);
|
|
@@ -7704,11 +7986,11 @@ var UserMenuCupcode = ({
|
|
|
7704
7986
|
return left.id.localeCompare(right.id);
|
|
7705
7987
|
});
|
|
7706
7988
|
}, [activeChatUser, resolvedAllChatMessages]);
|
|
7707
|
-
const activeSharedFiles =
|
|
7708
|
-
const activeChatMessagesMap =
|
|
7989
|
+
const activeSharedFiles = useMemo8(() => extractSharedFilesFromMessages(activeChatMessages), [activeChatMessages]);
|
|
7990
|
+
const activeChatMessagesMap = useMemo8(() => {
|
|
7709
7991
|
return new Map(activeChatMessages.map((message) => [message.id, message]));
|
|
7710
7992
|
}, [activeChatMessages]);
|
|
7711
|
-
const activeChatTimeline =
|
|
7993
|
+
const activeChatTimeline = useMemo8(() => {
|
|
7712
7994
|
const items = [];
|
|
7713
7995
|
activeChatMessages.forEach((message, index) => {
|
|
7714
7996
|
const dayKey = getChatDayKey(message);
|
|
@@ -7774,7 +8056,7 @@ var UserMenuCupcode = ({
|
|
|
7774
8056
|
setShowJumpToLatestMessage(true);
|
|
7775
8057
|
setPendingLatestMessagesCount((current) => Math.min(999, current + incomingMessagesCount));
|
|
7776
8058
|
}, [activeChatMessages, activeChatUser == null ? void 0 : activeChatUser.id, activeTab, open, prefersReducedMotion, scrollChatMessagesToBottom]);
|
|
7777
|
-
const activeConversationLogs =
|
|
8059
|
+
const activeConversationLogs = useMemo8(() => {
|
|
7778
8060
|
if (!activeChatUser || !resolvedChatLogs.length) return [];
|
|
7779
8061
|
return resolvedChatLogs.filter((entry) => entry.contactId === activeChatUser.id).sort((left, right) => {
|
|
7780
8062
|
const leftTs = left.createdAt ? new Date(left.createdAt).getTime() : 0;
|
|
@@ -7783,7 +8065,7 @@ var UserMenuCupcode = ({
|
|
|
7783
8065
|
return left.id.localeCompare(right.id);
|
|
7784
8066
|
});
|
|
7785
8067
|
}, [activeChatUser, resolvedChatLogs]);
|
|
7786
|
-
const replyToMessage =
|
|
8068
|
+
const replyToMessage = useMemo8(() => {
|
|
7787
8069
|
var _a75;
|
|
7788
8070
|
if (!replyToMessageId) return null;
|
|
7789
8071
|
return (_a75 = activeChatMessagesMap.get(replyToMessageId)) != null ? _a75 : null;
|
|
@@ -10098,6 +10380,28 @@ var UserMenuCupcode = ({
|
|
|
10098
10380
|
]
|
|
10099
10381
|
}
|
|
10100
10382
|
)
|
|
10383
|
+
] }),
|
|
10384
|
+
/* @__PURE__ */ jsxs27("div", { className: cn(settingsCardClassName, "space-y-2.5"), children: [
|
|
10385
|
+
/* @__PURE__ */ jsxs27("div", { children: [
|
|
10386
|
+
/* @__PURE__ */ jsx42("p", { className: "text-xs font-semibold text-foreground", children: "Vers\xE3o do app" }),
|
|
10387
|
+
/* @__PURE__ */ jsx42("p", { className: "mt-1 text-[11px] leading-relaxed text-muted-foreground", children: "Vers\xE3o do aplicativo atual que est\xE1 exibindo este menu." })
|
|
10388
|
+
] }),
|
|
10389
|
+
/* @__PURE__ */ jsxs27(
|
|
10390
|
+
"div",
|
|
10391
|
+
{
|
|
10392
|
+
className: cn(
|
|
10393
|
+
"flex items-center justify-between gap-2 rounded-xl border bg-background/45 px-3 py-2",
|
|
10394
|
+
isHighContrastEnabled ? "border-foreground/40" : "border-border/70"
|
|
10395
|
+
),
|
|
10396
|
+
children: [
|
|
10397
|
+
/* @__PURE__ */ jsxs27("span", { className: "inline-flex items-center gap-1.5 text-xs font-semibold text-foreground", children: [
|
|
10398
|
+
/* @__PURE__ */ jsx42(Info, { className: "h-3.5 w-3.5 text-primary" }),
|
|
10399
|
+
"Vers\xE3o atual"
|
|
10400
|
+
] }),
|
|
10401
|
+
/* @__PURE__ */ jsx42("span", { className: "rounded-md border border-border/70 bg-background/60 px-2 py-1 text-[10px] font-semibold text-foreground", children: appVersionLabel })
|
|
10402
|
+
]
|
|
10403
|
+
}
|
|
10404
|
+
)
|
|
10101
10405
|
] })
|
|
10102
10406
|
] });
|
|
10103
10407
|
}
|
|
@@ -22091,7 +22395,7 @@ function getSupabasePublic() {
|
|
|
22091
22395
|
}
|
|
22092
22396
|
|
|
22093
22397
|
// src/components/ui/sonner.tsx
|
|
22094
|
-
import * as
|
|
22398
|
+
import * as React27 from "react";
|
|
22095
22399
|
import { Toaster as Sonner, toast as toast2 } from "sonner";
|
|
22096
22400
|
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
22097
22401
|
function resolveDocumentTheme() {
|
|
@@ -22104,8 +22408,8 @@ function resolveDocumentTheme() {
|
|
|
22104
22408
|
return "light";
|
|
22105
22409
|
}
|
|
22106
22410
|
var Toaster = ({ theme, ...props }) => {
|
|
22107
|
-
const [resolvedTheme, setResolvedTheme] =
|
|
22108
|
-
|
|
22411
|
+
const [resolvedTheme, setResolvedTheme] = React27.useState(() => theme != null ? theme : "system");
|
|
22412
|
+
React27.useEffect(() => {
|
|
22109
22413
|
if (typeof theme !== "undefined") return;
|
|
22110
22414
|
const syncTheme = () => setResolvedTheme(resolveDocumentTheme());
|
|
22111
22415
|
syncTheme();
|
|
@@ -22807,7 +23111,8 @@ var MainNavbar = ({
|
|
|
22807
23111
|
onPresenceStatusChange,
|
|
22808
23112
|
onLogoutClick,
|
|
22809
23113
|
onOpenAccountClick,
|
|
22810
|
-
getAccessToken
|
|
23114
|
+
getAccessToken,
|
|
23115
|
+
appVersion
|
|
22811
23116
|
}) => {
|
|
22812
23117
|
var _a74, _b7, _c;
|
|
22813
23118
|
const [chatUsers, setChatUsers] = useState13([]);
|
|
@@ -22834,28 +23139,28 @@ var MainNavbar = ({
|
|
|
22834
23139
|
chatFeatureFlagsRef.current = nextFlags;
|
|
22835
23140
|
persistChatFeatureFlags(nextFlags);
|
|
22836
23141
|
}, []);
|
|
22837
|
-
const currentPathname =
|
|
23142
|
+
const currentPathname = useMemo9(() => {
|
|
22838
23143
|
if (pathname && pathname.trim() !== "") return pathname;
|
|
22839
23144
|
if (typeof window !== "undefined") return window.location.pathname || "/";
|
|
22840
23145
|
return "/";
|
|
22841
23146
|
}, [pathname]);
|
|
22842
|
-
const currentUserId =
|
|
23147
|
+
const currentUserId = useMemo9(() => {
|
|
22843
23148
|
var _a75;
|
|
22844
23149
|
return (_a75 = resolveCurrentUserId(authUser)) != null ? _a75 : tokenDerivedUserId;
|
|
22845
23150
|
}, [authUser, tokenDerivedUserId]);
|
|
22846
|
-
const authEmail =
|
|
23151
|
+
const authEmail = useMemo9(
|
|
22847
23152
|
() => {
|
|
22848
23153
|
var _a75, _b8;
|
|
22849
23154
|
return (_b8 = (_a75 = toStringOrUndefined(authUser == null ? void 0 : authUser.email)) == null ? void 0 : _a75.toLowerCase()) != null ? _b8 : tokenDerivedEmail;
|
|
22850
23155
|
},
|
|
22851
23156
|
[authUser == null ? void 0 : authUser.email, tokenDerivedEmail]
|
|
22852
23157
|
);
|
|
22853
|
-
const isChatSuperAdmin =
|
|
23158
|
+
const isChatSuperAdmin = useMemo9(() => {
|
|
22854
23159
|
var _a75, _b8;
|
|
22855
23160
|
const roleTokens = `${(_a75 = authUser == null ? void 0 : authUser.role) != null ? _a75 : ""} ${(_b8 = authUser == null ? void 0 : authUser.jobTitle) != null ? _b8 : ""}`.toLowerCase();
|
|
22856
23161
|
return roleTokens.includes("superadmin") || roleTokens.includes("super admin");
|
|
22857
23162
|
}, [authUser == null ? void 0 : authUser.jobTitle, authUser == null ? void 0 : authUser.role]);
|
|
22858
|
-
const resolvedTelescupBaseUrl =
|
|
23163
|
+
const resolvedTelescupBaseUrl = useMemo9(() => {
|
|
22859
23164
|
if (TELESCUP_BASE_URL) {
|
|
22860
23165
|
return TELESCUP_BASE_URL;
|
|
22861
23166
|
}
|
|
@@ -22871,7 +23176,7 @@ var MainNavbar = ({
|
|
|
22871
23176
|
return false;
|
|
22872
23177
|
}
|
|
22873
23178
|
})();
|
|
22874
|
-
const resolvedAuthStatus =
|
|
23179
|
+
const resolvedAuthStatus = useMemo9(() => {
|
|
22875
23180
|
if (authStatus) return authStatus;
|
|
22876
23181
|
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)) {
|
|
22877
23182
|
return "authenticated";
|
|
@@ -23585,7 +23890,7 @@ var MainNavbar = ({
|
|
|
23585
23890
|
void supabase.removeChannel(presenceChannel);
|
|
23586
23891
|
};
|
|
23587
23892
|
}, [effectiveCurrentUserId, isAuthenticated, isChatSuperAdmin]);
|
|
23588
|
-
const chatUnreadByUser =
|
|
23893
|
+
const chatUnreadByUser = useMemo9(() => {
|
|
23589
23894
|
const counters = {};
|
|
23590
23895
|
chatMessages.forEach((message) => {
|
|
23591
23896
|
var _a75;
|
|
@@ -23595,7 +23900,7 @@ var MainNavbar = ({
|
|
|
23595
23900
|
});
|
|
23596
23901
|
return counters;
|
|
23597
23902
|
}, [chatMessages]);
|
|
23598
|
-
const chatUnreadCount =
|
|
23903
|
+
const chatUnreadCount = useMemo9(() => {
|
|
23599
23904
|
return Object.values(chatUnreadByUser).reduce((total, count2) => total + count2, 0);
|
|
23600
23905
|
}, [chatUnreadByUser]);
|
|
23601
23906
|
const handleChatMarkConversationRead = useCallback6(
|
|
@@ -24023,7 +24328,7 @@ var MainNavbar = ({
|
|
|
24023
24328
|
},
|
|
24024
24329
|
[effectiveCurrentUserId, updateChatFeatureFlags]
|
|
24025
24330
|
);
|
|
24026
|
-
const items =
|
|
24331
|
+
const items = useMemo9(() => {
|
|
24027
24332
|
const normalizedPathname = currentPathname === "" ? "/" : currentPathname;
|
|
24028
24333
|
return getMainNavItems().map((item) => {
|
|
24029
24334
|
const isAnchor = item.href.startsWith("#");
|
|
@@ -24336,7 +24641,8 @@ var MainNavbar = ({
|
|
|
24336
24641
|
recentActivity: accountsRecentActivity,
|
|
24337
24642
|
isRecentActivityLoading: isAccountsActivityLoading,
|
|
24338
24643
|
telescupBaseUrl: resolvedTelescupBaseUrl,
|
|
24339
|
-
getTelescupAccessToken
|
|
24644
|
+
getTelescupAccessToken,
|
|
24645
|
+
appVersion
|
|
24340
24646
|
}
|
|
24341
24647
|
) })
|
|
24342
24648
|
}
|
|
@@ -24495,10 +24801,10 @@ function PricingCard({
|
|
|
24495
24801
|
}
|
|
24496
24802
|
|
|
24497
24803
|
// src/components/cupcode/ProgressCupcode.tsx
|
|
24498
|
-
import * as
|
|
24804
|
+
import * as React28 from "react";
|
|
24499
24805
|
import * as ProgressPrimitive2 from "@radix-ui/react-progress";
|
|
24500
24806
|
import { jsx as jsx48, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
24501
|
-
var ProgressCupcode =
|
|
24807
|
+
var ProgressCupcode = React28.forwardRef(({ className, value, variant = "default", showLabel = false, size = "md", ...props }, ref) => {
|
|
24502
24808
|
const sizeClasses2 = {
|
|
24503
24809
|
sm: "h-2",
|
|
24504
24810
|
md: "h-3",
|
|
@@ -24546,7 +24852,7 @@ var ProgressCupcode = React29.forwardRef(({ className, value, variant = "default
|
|
|
24546
24852
|
ProgressCupcode.displayName = "ProgressCupcode";
|
|
24547
24853
|
|
|
24548
24854
|
// src/components/cupcode/ScrollbarTheme.tsx
|
|
24549
|
-
import * as
|
|
24855
|
+
import * as React29 from "react";
|
|
24550
24856
|
import { jsx as jsx49 } from "react/jsx-runtime";
|
|
24551
24857
|
var SCROLLBAR_COLOR_ATTR = "data-cc-scrollbar-color";
|
|
24552
24858
|
var SCROLLBAR_THEME_ATTR = "data-cc-scrollbar-theme";
|
|
@@ -24554,7 +24860,7 @@ var ScrollbarThemeProvider = ({
|
|
|
24554
24860
|
color = "purple",
|
|
24555
24861
|
theme = "auto"
|
|
24556
24862
|
}) => {
|
|
24557
|
-
|
|
24863
|
+
React29.useEffect(() => {
|
|
24558
24864
|
if (typeof document === "undefined") return;
|
|
24559
24865
|
const root = document.documentElement;
|
|
24560
24866
|
const previousColor = root.getAttribute(SCROLLBAR_COLOR_ATTR);
|
|
@@ -24585,7 +24891,7 @@ var ScrollbarThemeProvider = ({
|
|
|
24585
24891
|
}, [color, theme]);
|
|
24586
24892
|
return null;
|
|
24587
24893
|
};
|
|
24588
|
-
var ScrollbarArea =
|
|
24894
|
+
var ScrollbarArea = React29.forwardRef(
|
|
24589
24895
|
({ color = "purple", theme = "auto", className, ...props }, ref) => /* @__PURE__ */ jsx49(
|
|
24590
24896
|
"div",
|
|
24591
24897
|
{
|
|
@@ -24604,14 +24910,14 @@ var ScrollbarArea = React30.forwardRef(
|
|
|
24604
24910
|
ScrollbarArea.displayName = "ScrollbarArea";
|
|
24605
24911
|
|
|
24606
24912
|
// src/components/cupcode/SelectField.tsx
|
|
24607
|
-
import * as
|
|
24913
|
+
import * as React30 from "react";
|
|
24608
24914
|
import * as SelectPrimitive2 from "@radix-ui/react-select";
|
|
24609
24915
|
import { Check as Check5, ChevronDown as ChevronDown4 } from "lucide-react";
|
|
24610
24916
|
import { jsx as jsx50, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
24611
24917
|
var Select2 = SelectPrimitive2.Root;
|
|
24612
24918
|
var SelectGroup2 = SelectPrimitive2.Group;
|
|
24613
24919
|
var SelectValue2 = SelectPrimitive2.Value;
|
|
24614
|
-
var SelectTrigger2 =
|
|
24920
|
+
var SelectTrigger2 = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs31(
|
|
24615
24921
|
SelectPrimitive2.Trigger,
|
|
24616
24922
|
{
|
|
24617
24923
|
ref,
|
|
@@ -24634,7 +24940,7 @@ var SelectTrigger2 = React31.forwardRef(({ className, children, ...props }, ref)
|
|
|
24634
24940
|
}
|
|
24635
24941
|
));
|
|
24636
24942
|
SelectTrigger2.displayName = SelectPrimitive2.Trigger.displayName;
|
|
24637
|
-
var SelectContent2 =
|
|
24943
|
+
var SelectContent2 = React30.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx50(SelectPrimitive2.Portal, { children: /* @__PURE__ */ jsx50(
|
|
24638
24944
|
SelectPrimitive2.Content,
|
|
24639
24945
|
{
|
|
24640
24946
|
ref,
|
|
@@ -24664,7 +24970,7 @@ var SelectContent2 = React31.forwardRef(({ className, children, position = "popp
|
|
|
24664
24970
|
}
|
|
24665
24971
|
) }));
|
|
24666
24972
|
SelectContent2.displayName = SelectPrimitive2.Content.displayName;
|
|
24667
|
-
var SelectItem2 =
|
|
24973
|
+
var SelectItem2 = React30.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs31(
|
|
24668
24974
|
SelectPrimitive2.Item,
|
|
24669
24975
|
{
|
|
24670
24976
|
ref,
|
|
@@ -24703,10 +25009,10 @@ var SelectField = ({
|
|
|
24703
25009
|
};
|
|
24704
25010
|
|
|
24705
25011
|
// src/components/cupcode/SwitchField.tsx
|
|
24706
|
-
import * as
|
|
25012
|
+
import * as React31 from "react";
|
|
24707
25013
|
import * as SwitchPrimitives2 from "@radix-ui/react-switch";
|
|
24708
25014
|
import { jsx as jsx51, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
24709
|
-
var Switch2 =
|
|
25015
|
+
var Switch2 = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx51(
|
|
24710
25016
|
SwitchPrimitives2.Root,
|
|
24711
25017
|
{
|
|
24712
25018
|
className: cn(
|
|
@@ -24747,11 +25053,11 @@ var SwitchField = ({ label, description, ...props }) => {
|
|
|
24747
25053
|
};
|
|
24748
25054
|
|
|
24749
25055
|
// src/components/cupcode/TabsCupcode.tsx
|
|
24750
|
-
import * as
|
|
25056
|
+
import * as React32 from "react";
|
|
24751
25057
|
import * as TabsPrimitive2 from "@radix-ui/react-tabs";
|
|
24752
25058
|
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
24753
25059
|
var Tabs2 = TabsPrimitive2.Root;
|
|
24754
|
-
var TabsList2 =
|
|
25060
|
+
var TabsList2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
24755
25061
|
TabsPrimitive2.List,
|
|
24756
25062
|
{
|
|
24757
25063
|
ref,
|
|
@@ -24764,7 +25070,7 @@ var TabsList2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
24764
25070
|
}
|
|
24765
25071
|
));
|
|
24766
25072
|
TabsList2.displayName = TabsPrimitive2.List.displayName;
|
|
24767
|
-
var TabsTrigger2 =
|
|
25073
|
+
var TabsTrigger2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
24768
25074
|
TabsPrimitive2.Trigger,
|
|
24769
25075
|
{
|
|
24770
25076
|
ref,
|
|
@@ -24786,7 +25092,7 @@ var TabsTrigger2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
24786
25092
|
}
|
|
24787
25093
|
));
|
|
24788
25094
|
TabsTrigger2.displayName = TabsPrimitive2.Trigger.displayName;
|
|
24789
|
-
var TabsContent2 =
|
|
25095
|
+
var TabsContent2 = React32.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx52(
|
|
24790
25096
|
TabsPrimitive2.Content,
|
|
24791
25097
|
{
|
|
24792
25098
|
ref,
|
|
@@ -24802,9 +25108,9 @@ var TabsContent2 = React33.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
24802
25108
|
TabsContent2.displayName = TabsPrimitive2.Content.displayName;
|
|
24803
25109
|
|
|
24804
25110
|
// src/components/cupcode/TextareaField.tsx
|
|
24805
|
-
import * as
|
|
25111
|
+
import * as React33 from "react";
|
|
24806
25112
|
import { jsx as jsx53, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
24807
|
-
var TextareaField =
|
|
25113
|
+
var TextareaField = React33.forwardRef(
|
|
24808
25114
|
({ className, label, error, ...props }, ref) => {
|
|
24809
25115
|
return /* @__PURE__ */ jsxs33("div", { className: "cc-stack space-2 w-full", children: [
|
|
24810
25116
|
label && /* @__PURE__ */ jsx53("label", { className: "text-sm font-semibold text-cupcode-ink", children: label }),
|
|
@@ -24835,7 +25141,7 @@ var TextareaField = React34.forwardRef(
|
|
|
24835
25141
|
TextareaField.displayName = "TextareaField";
|
|
24836
25142
|
|
|
24837
25143
|
// src/components/cupcode/ThemeToggle.tsx
|
|
24838
|
-
import * as
|
|
25144
|
+
import * as React34 from "react";
|
|
24839
25145
|
import { Moon as Moon2, Sun as Sun2 } from "lucide-react";
|
|
24840
25146
|
import { jsx as jsx54, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
24841
25147
|
var THEME_STORAGE_KEY2 = "cupcode-theme";
|
|
@@ -24884,22 +25190,22 @@ var ThemeToggle = ({
|
|
|
24884
25190
|
onThemeChange
|
|
24885
25191
|
}) => {
|
|
24886
25192
|
var _a74;
|
|
24887
|
-
const [mounted, setMounted] =
|
|
24888
|
-
const [internalTheme, setInternalTheme] =
|
|
25193
|
+
const [mounted, setMounted] = React34.useState(false);
|
|
25194
|
+
const [internalTheme, setInternalTheme] = React34.useState(defaultTheme);
|
|
24889
25195
|
const isControlled = typeof theme !== "undefined";
|
|
24890
25196
|
const activeTheme = (_a74 = isControlled ? theme : internalTheme) != null ? _a74 : defaultTheme;
|
|
24891
|
-
|
|
25197
|
+
React34.useEffect(() => {
|
|
24892
25198
|
if (!isControlled) {
|
|
24893
25199
|
setInternalTheme(resolveTheme(defaultTheme));
|
|
24894
25200
|
}
|
|
24895
25201
|
setMounted(true);
|
|
24896
25202
|
}, [defaultTheme, isControlled]);
|
|
24897
|
-
|
|
25203
|
+
React34.useEffect(() => {
|
|
24898
25204
|
if (!mounted) return;
|
|
24899
25205
|
applyThemeClass(activeTheme);
|
|
24900
25206
|
writeStoredTheme(activeTheme);
|
|
24901
25207
|
}, [activeTheme, mounted]);
|
|
24902
|
-
|
|
25208
|
+
React34.useEffect(() => {
|
|
24903
25209
|
if (isControlled || typeof document === "undefined") return;
|
|
24904
25210
|
const observer = new MutationObserver(() => {
|
|
24905
25211
|
const resolvedTheme = resolveTheme(defaultTheme);
|
|
@@ -25067,13 +25373,13 @@ var ToastCupcode = ({
|
|
|
25067
25373
|
};
|
|
25068
25374
|
|
|
25069
25375
|
// src/components/cupcode/TooltipCupcode.tsx
|
|
25070
|
-
import * as
|
|
25376
|
+
import * as React35 from "react";
|
|
25071
25377
|
import * as TooltipPrimitive2 from "@radix-ui/react-tooltip";
|
|
25072
25378
|
import { jsx as jsx57 } from "react/jsx-runtime";
|
|
25073
25379
|
var TooltipProvider2 = TooltipPrimitive2.Provider;
|
|
25074
25380
|
var TooltipCupcode = TooltipPrimitive2.Root;
|
|
25075
25381
|
var TooltipTrigger2 = TooltipPrimitive2.Trigger;
|
|
25076
|
-
var TooltipContent2 =
|
|
25382
|
+
var TooltipContent2 = React35.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx57(
|
|
25077
25383
|
TooltipPrimitive2.Content,
|
|
25078
25384
|
{
|
|
25079
25385
|
ref,
|
|
@@ -25094,14 +25400,14 @@ var TooltipContent2 = React36.forwardRef(({ className, sideOffset = 4, ...props
|
|
|
25094
25400
|
TooltipContent2.displayName = TooltipPrimitive2.Content.displayName;
|
|
25095
25401
|
|
|
25096
25402
|
// src/components/ui/accordion.tsx
|
|
25097
|
-
import * as
|
|
25403
|
+
import * as React36 from "react";
|
|
25098
25404
|
import * as AccordionPrimitive2 from "@radix-ui/react-accordion";
|
|
25099
25405
|
import { ChevronDown as ChevronDown5 } from "lucide-react";
|
|
25100
25406
|
import { jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
25101
25407
|
var Accordion = AccordionPrimitive2.Root;
|
|
25102
|
-
var AccordionItem2 =
|
|
25408
|
+
var AccordionItem2 = React36.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx58(AccordionPrimitive2.Item, { ref, className: cn("border-b", className), ...props }));
|
|
25103
25409
|
AccordionItem2.displayName = "AccordionItem";
|
|
25104
|
-
var AccordionTrigger2 =
|
|
25410
|
+
var AccordionTrigger2 = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx58(AccordionPrimitive2.Header, { className: "flex", children: /* @__PURE__ */ jsxs37(
|
|
25105
25411
|
AccordionPrimitive2.Trigger,
|
|
25106
25412
|
{
|
|
25107
25413
|
ref,
|
|
@@ -25117,7 +25423,7 @@ var AccordionTrigger2 = React37.forwardRef(({ className, children, ...props }, r
|
|
|
25117
25423
|
}
|
|
25118
25424
|
) }));
|
|
25119
25425
|
AccordionTrigger2.displayName = AccordionPrimitive2.Trigger.displayName;
|
|
25120
|
-
var AccordionContent2 =
|
|
25426
|
+
var AccordionContent2 = React36.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx58(
|
|
25121
25427
|
AccordionPrimitive2.Content,
|
|
25122
25428
|
{
|
|
25123
25429
|
ref,
|
|
@@ -25129,7 +25435,7 @@ var AccordionContent2 = React37.forwardRef(({ className, children, ...props }, r
|
|
|
25129
25435
|
AccordionContent2.displayName = AccordionPrimitive2.Content.displayName;
|
|
25130
25436
|
|
|
25131
25437
|
// src/components/ui/alert.tsx
|
|
25132
|
-
import * as
|
|
25438
|
+
import * as React37 from "react";
|
|
25133
25439
|
import { cva as cva3 } from "class-variance-authority";
|
|
25134
25440
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
25135
25441
|
var alertVariants = cva3(
|
|
@@ -25146,13 +25452,13 @@ var alertVariants = cva3(
|
|
|
25146
25452
|
}
|
|
25147
25453
|
}
|
|
25148
25454
|
);
|
|
25149
|
-
var Alert =
|
|
25455
|
+
var Alert = React37.forwardRef(({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx59("div", { ref, role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
|
|
25150
25456
|
Alert.displayName = "Alert";
|
|
25151
|
-
var AlertTitle =
|
|
25457
|
+
var AlertTitle = React37.forwardRef(
|
|
25152
25458
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx59("h5", { ref, className: cn("mb-1 font-medium leading-none tracking-tight", className), ...props })
|
|
25153
25459
|
);
|
|
25154
25460
|
AlertTitle.displayName = "AlertTitle";
|
|
25155
|
-
var AlertDescription =
|
|
25461
|
+
var AlertDescription = React37.forwardRef(
|
|
25156
25462
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx59("div", { ref, className: cn("text-sm [&_p]:leading-relaxed", className), ...props })
|
|
25157
25463
|
);
|
|
25158
25464
|
AlertDescription.displayName = "AlertDescription";
|
|
@@ -25162,13 +25468,13 @@ import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
|
|
|
25162
25468
|
var AspectRatio = AspectRatioPrimitive.Root;
|
|
25163
25469
|
|
|
25164
25470
|
// src/components/ui/breadcrumb.tsx
|
|
25165
|
-
import * as
|
|
25471
|
+
import * as React38 from "react";
|
|
25166
25472
|
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
25167
25473
|
import { ChevronRight as ChevronRight2, MoreHorizontal } from "lucide-react";
|
|
25168
25474
|
import { jsx as jsx60, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
25169
|
-
var Breadcrumb =
|
|
25475
|
+
var Breadcrumb = React38.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx60("nav", { ref, "aria-label": "breadcrumb", ...props }));
|
|
25170
25476
|
Breadcrumb.displayName = "Breadcrumb";
|
|
25171
|
-
var BreadcrumbList =
|
|
25477
|
+
var BreadcrumbList = React38.forwardRef(
|
|
25172
25478
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
25173
25479
|
"ol",
|
|
25174
25480
|
{
|
|
@@ -25182,16 +25488,16 @@ var BreadcrumbList = React39.forwardRef(
|
|
|
25182
25488
|
)
|
|
25183
25489
|
);
|
|
25184
25490
|
BreadcrumbList.displayName = "BreadcrumbList";
|
|
25185
|
-
var BreadcrumbItem =
|
|
25491
|
+
var BreadcrumbItem = React38.forwardRef(
|
|
25186
25492
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx60("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
|
|
25187
25493
|
);
|
|
25188
25494
|
BreadcrumbItem.displayName = "BreadcrumbItem";
|
|
25189
|
-
var BreadcrumbLink =
|
|
25495
|
+
var BreadcrumbLink = React38.forwardRef(({ asChild, className, ...props }, ref) => {
|
|
25190
25496
|
const Comp = asChild ? Slot2 : "a";
|
|
25191
25497
|
return /* @__PURE__ */ jsx60(Comp, { ref, className: cn("transition-colors hover:text-foreground", className), ...props });
|
|
25192
25498
|
});
|
|
25193
25499
|
BreadcrumbLink.displayName = "BreadcrumbLink";
|
|
25194
|
-
var BreadcrumbPage =
|
|
25500
|
+
var BreadcrumbPage = React38.forwardRef(
|
|
25195
25501
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx60(
|
|
25196
25502
|
"span",
|
|
25197
25503
|
{
|
|
@@ -25274,45 +25580,45 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
|
|
|
25274
25580
|
Calendar.displayName = "Calendar";
|
|
25275
25581
|
|
|
25276
25582
|
// src/components/ui/card.tsx
|
|
25277
|
-
import * as
|
|
25583
|
+
import * as React39 from "react";
|
|
25278
25584
|
import { jsx as jsx62 } from "react/jsx-runtime";
|
|
25279
|
-
var Card =
|
|
25585
|
+
var Card = React39.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props }));
|
|
25280
25586
|
Card.displayName = "Card";
|
|
25281
|
-
var CardHeader =
|
|
25587
|
+
var CardHeader = React39.forwardRef(
|
|
25282
25588
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
|
|
25283
25589
|
);
|
|
25284
25590
|
CardHeader.displayName = "CardHeader";
|
|
25285
|
-
var CardTitle =
|
|
25591
|
+
var CardTitle = React39.forwardRef(
|
|
25286
25592
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
|
|
25287
25593
|
);
|
|
25288
25594
|
CardTitle.displayName = "CardTitle";
|
|
25289
|
-
var CardDescription =
|
|
25595
|
+
var CardDescription = React39.forwardRef(
|
|
25290
25596
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
|
|
25291
25597
|
);
|
|
25292
25598
|
CardDescription.displayName = "CardDescription";
|
|
25293
|
-
var CardContent =
|
|
25599
|
+
var CardContent = React39.forwardRef(
|
|
25294
25600
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("p-6 pt-0", className), ...props })
|
|
25295
25601
|
);
|
|
25296
25602
|
CardContent.displayName = "CardContent";
|
|
25297
|
-
var CardFooter =
|
|
25603
|
+
var CardFooter = React39.forwardRef(
|
|
25298
25604
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx62("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
|
|
25299
25605
|
);
|
|
25300
25606
|
CardFooter.displayName = "CardFooter";
|
|
25301
25607
|
|
|
25302
25608
|
// src/components/ui/carousel.tsx
|
|
25303
|
-
import * as
|
|
25609
|
+
import * as React40 from "react";
|
|
25304
25610
|
import useEmblaCarousel from "embla-carousel-react";
|
|
25305
25611
|
import { ArrowLeft, ArrowRight } from "lucide-react";
|
|
25306
25612
|
import { jsx as jsx63, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
25307
|
-
var CarouselContext =
|
|
25613
|
+
var CarouselContext = React40.createContext(null);
|
|
25308
25614
|
function useCarousel() {
|
|
25309
|
-
const context =
|
|
25615
|
+
const context = React40.useContext(CarouselContext);
|
|
25310
25616
|
if (!context) {
|
|
25311
25617
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
25312
25618
|
}
|
|
25313
25619
|
return context;
|
|
25314
25620
|
}
|
|
25315
|
-
var Carousel =
|
|
25621
|
+
var Carousel = React40.forwardRef(
|
|
25316
25622
|
({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }, ref) => {
|
|
25317
25623
|
const [carouselRef, api] = useEmblaCarousel(
|
|
25318
25624
|
{
|
|
@@ -25321,22 +25627,22 @@ var Carousel = React41.forwardRef(
|
|
|
25321
25627
|
},
|
|
25322
25628
|
plugins
|
|
25323
25629
|
);
|
|
25324
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
25325
|
-
const [canScrollNext, setCanScrollNext] =
|
|
25326
|
-
const onSelect =
|
|
25630
|
+
const [canScrollPrev, setCanScrollPrev] = React40.useState(false);
|
|
25631
|
+
const [canScrollNext, setCanScrollNext] = React40.useState(false);
|
|
25632
|
+
const onSelect = React40.useCallback((api2) => {
|
|
25327
25633
|
if (!api2) {
|
|
25328
25634
|
return;
|
|
25329
25635
|
}
|
|
25330
25636
|
setCanScrollPrev(api2.canScrollPrev());
|
|
25331
25637
|
setCanScrollNext(api2.canScrollNext());
|
|
25332
25638
|
}, []);
|
|
25333
|
-
const scrollPrev =
|
|
25639
|
+
const scrollPrev = React40.useCallback(() => {
|
|
25334
25640
|
api == null ? void 0 : api.scrollPrev();
|
|
25335
25641
|
}, [api]);
|
|
25336
|
-
const scrollNext =
|
|
25642
|
+
const scrollNext = React40.useCallback(() => {
|
|
25337
25643
|
api == null ? void 0 : api.scrollNext();
|
|
25338
25644
|
}, [api]);
|
|
25339
|
-
const handleKeyDown =
|
|
25645
|
+
const handleKeyDown = React40.useCallback(
|
|
25340
25646
|
(event) => {
|
|
25341
25647
|
if (event.key === "ArrowLeft") {
|
|
25342
25648
|
event.preventDefault();
|
|
@@ -25348,13 +25654,13 @@ var Carousel = React41.forwardRef(
|
|
|
25348
25654
|
},
|
|
25349
25655
|
[scrollPrev, scrollNext]
|
|
25350
25656
|
);
|
|
25351
|
-
|
|
25657
|
+
React40.useEffect(() => {
|
|
25352
25658
|
if (!api || !setApi) {
|
|
25353
25659
|
return;
|
|
25354
25660
|
}
|
|
25355
25661
|
setApi(api);
|
|
25356
25662
|
}, [api, setApi]);
|
|
25357
|
-
|
|
25663
|
+
React40.useEffect(() => {
|
|
25358
25664
|
if (!api) {
|
|
25359
25665
|
return;
|
|
25360
25666
|
}
|
|
@@ -25395,7 +25701,7 @@ var Carousel = React41.forwardRef(
|
|
|
25395
25701
|
}
|
|
25396
25702
|
);
|
|
25397
25703
|
Carousel.displayName = "Carousel";
|
|
25398
|
-
var CarouselContent =
|
|
25704
|
+
var CarouselContent = React40.forwardRef(
|
|
25399
25705
|
({ className, ...props }, ref) => {
|
|
25400
25706
|
const { carouselRef, orientation } = useCarousel();
|
|
25401
25707
|
return /* @__PURE__ */ jsx63("div", { ref: carouselRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx63(
|
|
@@ -25409,7 +25715,7 @@ var CarouselContent = React41.forwardRef(
|
|
|
25409
25715
|
}
|
|
25410
25716
|
);
|
|
25411
25717
|
CarouselContent.displayName = "CarouselContent";
|
|
25412
|
-
var CarouselItem =
|
|
25718
|
+
var CarouselItem = React40.forwardRef(
|
|
25413
25719
|
({ className, ...props }, ref) => {
|
|
25414
25720
|
const { orientation } = useCarousel();
|
|
25415
25721
|
return /* @__PURE__ */ jsx63(
|
|
@@ -25425,7 +25731,7 @@ var CarouselItem = React41.forwardRef(
|
|
|
25425
25731
|
}
|
|
25426
25732
|
);
|
|
25427
25733
|
CarouselItem.displayName = "CarouselItem";
|
|
25428
|
-
var CarouselPrevious =
|
|
25734
|
+
var CarouselPrevious = React40.forwardRef(
|
|
25429
25735
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
25430
25736
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
25431
25737
|
return /* @__PURE__ */ jsxs39(
|
|
@@ -25451,7 +25757,7 @@ var CarouselPrevious = React41.forwardRef(
|
|
|
25451
25757
|
}
|
|
25452
25758
|
);
|
|
25453
25759
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
25454
|
-
var CarouselNext =
|
|
25760
|
+
var CarouselNext = React40.forwardRef(
|
|
25455
25761
|
({ className, variant = "outline", size = "icon", ...props }, ref) => {
|
|
25456
25762
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
25457
25763
|
return /* @__PURE__ */ jsxs39(
|
|
@@ -25479,20 +25785,20 @@ var CarouselNext = React41.forwardRef(
|
|
|
25479
25785
|
CarouselNext.displayName = "CarouselNext";
|
|
25480
25786
|
|
|
25481
25787
|
// src/components/ui/chart.tsx
|
|
25482
|
-
import * as
|
|
25788
|
+
import * as React41 from "react";
|
|
25483
25789
|
import * as RechartsPrimitive from "recharts";
|
|
25484
25790
|
import { Fragment as Fragment5, jsx as jsx64, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
25485
25791
|
var THEMES = { light: "", dark: ".dark" };
|
|
25486
|
-
var ChartContext =
|
|
25792
|
+
var ChartContext = React41.createContext(null);
|
|
25487
25793
|
function useChart() {
|
|
25488
|
-
const context =
|
|
25794
|
+
const context = React41.useContext(ChartContext);
|
|
25489
25795
|
if (!context) {
|
|
25490
25796
|
throw new Error("useChart must be used within a <ChartContainer />");
|
|
25491
25797
|
}
|
|
25492
25798
|
return context;
|
|
25493
25799
|
}
|
|
25494
|
-
var ChartContainer =
|
|
25495
|
-
const uniqueId =
|
|
25800
|
+
var ChartContainer = React41.forwardRef(({ id, className, children, config, ...props }, ref) => {
|
|
25801
|
+
const uniqueId = React41.useId();
|
|
25496
25802
|
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
25497
25803
|
return /* @__PURE__ */ jsx64(ChartContext.Provider, { value: { config }, children: /* @__PURE__ */ jsxs40(
|
|
25498
25804
|
"div",
|
|
@@ -25537,7 +25843,7 @@ ${colorConfig.map(([key, itemConfig]) => {
|
|
|
25537
25843
|
);
|
|
25538
25844
|
};
|
|
25539
25845
|
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
25540
|
-
var ChartTooltipContent =
|
|
25846
|
+
var ChartTooltipContent = React41.forwardRef(
|
|
25541
25847
|
({
|
|
25542
25848
|
active,
|
|
25543
25849
|
payload,
|
|
@@ -25554,7 +25860,7 @@ var ChartTooltipContent = React42.forwardRef(
|
|
|
25554
25860
|
labelKey
|
|
25555
25861
|
}, ref) => {
|
|
25556
25862
|
const { config } = useChart();
|
|
25557
|
-
const tooltipLabel =
|
|
25863
|
+
const tooltipLabel = React41.useMemo(() => {
|
|
25558
25864
|
var _a74;
|
|
25559
25865
|
if (hideLabel || !(payload == null ? void 0 : payload.length)) {
|
|
25560
25866
|
return null;
|
|
@@ -25640,7 +25946,7 @@ var ChartTooltipContent = React42.forwardRef(
|
|
|
25640
25946
|
);
|
|
25641
25947
|
ChartTooltipContent.displayName = "ChartTooltip";
|
|
25642
25948
|
var ChartLegend = RechartsPrimitive.Legend;
|
|
25643
|
-
var ChartLegendContent =
|
|
25949
|
+
var ChartLegendContent = React41.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
|
|
25644
25950
|
const { config } = useChart();
|
|
25645
25951
|
if (!(payload == null ? void 0 : payload.length)) {
|
|
25646
25952
|
return null;
|
|
@@ -25692,11 +25998,11 @@ function getPayloadConfigFromPayload(config, payload, key) {
|
|
|
25692
25998
|
}
|
|
25693
25999
|
|
|
25694
26000
|
// src/components/ui/checkbox.tsx
|
|
25695
|
-
import * as
|
|
26001
|
+
import * as React42 from "react";
|
|
25696
26002
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
25697
26003
|
import { Check as Check6 } from "lucide-react";
|
|
25698
26004
|
import { jsx as jsx65 } from "react/jsx-runtime";
|
|
25699
|
-
var Checkbox =
|
|
26005
|
+
var Checkbox = React42.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx65(
|
|
25700
26006
|
CheckboxPrimitive.Root,
|
|
25701
26007
|
{
|
|
25702
26008
|
ref,
|
|
@@ -25717,11 +26023,11 @@ var CollapsibleTrigger2 = CollapsiblePrimitive.CollapsibleTrigger;
|
|
|
25717
26023
|
var CollapsibleContent2 = CollapsiblePrimitive.CollapsibleContent;
|
|
25718
26024
|
|
|
25719
26025
|
// src/components/ui/command.tsx
|
|
25720
|
-
import * as
|
|
26026
|
+
import * as React43 from "react";
|
|
25721
26027
|
import { Command as CommandPrimitive } from "cmdk";
|
|
25722
26028
|
import { Search as Search2 } from "lucide-react";
|
|
25723
26029
|
import { jsx as jsx66, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
25724
|
-
var Command =
|
|
26030
|
+
var Command = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
25725
26031
|
CommandPrimitive,
|
|
25726
26032
|
{
|
|
25727
26033
|
ref,
|
|
@@ -25736,7 +26042,7 @@ Command.displayName = CommandPrimitive.displayName;
|
|
|
25736
26042
|
var CommandDialog = ({ children, ...props }) => {
|
|
25737
26043
|
return /* @__PURE__ */ jsx66(Dialog, { ...props, children: /* @__PURE__ */ jsx66(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: /* @__PURE__ */ jsx66(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 }) }) });
|
|
25738
26044
|
};
|
|
25739
|
-
var CommandInput =
|
|
26045
|
+
var CommandInput = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs41("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
|
|
25740
26046
|
/* @__PURE__ */ jsx66(Search2, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
|
|
25741
26047
|
/* @__PURE__ */ jsx66(
|
|
25742
26048
|
CommandPrimitive.Input,
|
|
@@ -25751,7 +26057,7 @@ var CommandInput = React44.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
25751
26057
|
)
|
|
25752
26058
|
] }));
|
|
25753
26059
|
CommandInput.displayName = CommandPrimitive.Input.displayName;
|
|
25754
|
-
var CommandList =
|
|
26060
|
+
var CommandList = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
25755
26061
|
CommandPrimitive.List,
|
|
25756
26062
|
{
|
|
25757
26063
|
ref,
|
|
@@ -25760,9 +26066,9 @@ var CommandList = React44.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
25760
26066
|
}
|
|
25761
26067
|
));
|
|
25762
26068
|
CommandList.displayName = CommandPrimitive.List.displayName;
|
|
25763
|
-
var CommandEmpty =
|
|
26069
|
+
var CommandEmpty = React43.forwardRef((props, ref) => /* @__PURE__ */ jsx66(CommandPrimitive.Empty, { ref, className: "py-6 text-center text-sm", ...props }));
|
|
25764
26070
|
CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
|
|
25765
|
-
var CommandGroup =
|
|
26071
|
+
var CommandGroup = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
25766
26072
|
CommandPrimitive.Group,
|
|
25767
26073
|
{
|
|
25768
26074
|
ref,
|
|
@@ -25774,9 +26080,9 @@ var CommandGroup = React44.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
25774
26080
|
}
|
|
25775
26081
|
));
|
|
25776
26082
|
CommandGroup.displayName = CommandPrimitive.Group.displayName;
|
|
25777
|
-
var CommandSeparator =
|
|
26083
|
+
var CommandSeparator = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(CommandPrimitive.Separator, { ref, className: cn("-mx-1 h-px bg-border", className), ...props }));
|
|
25778
26084
|
CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
|
|
25779
|
-
var CommandItem =
|
|
26085
|
+
var CommandItem = React43.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
25780
26086
|
CommandPrimitive.Item,
|
|
25781
26087
|
{
|
|
25782
26088
|
ref,
|
|
@@ -25794,7 +26100,7 @@ var CommandShortcut = ({ className, ...props }) => {
|
|
|
25794
26100
|
CommandShortcut.displayName = "CommandShortcut";
|
|
25795
26101
|
|
|
25796
26102
|
// src/components/ui/context-menu.tsx
|
|
25797
|
-
import * as
|
|
26103
|
+
import * as React44 from "react";
|
|
25798
26104
|
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
25799
26105
|
import { Check as Check7, ChevronRight as ChevronRight4, Circle as Circle2 } from "lucide-react";
|
|
25800
26106
|
import { jsx as jsx67, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
@@ -25804,7 +26110,7 @@ var ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
|
25804
26110
|
var ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
25805
26111
|
var ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
25806
26112
|
var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
25807
|
-
var ContextMenuSubTrigger =
|
|
26113
|
+
var ContextMenuSubTrigger = React44.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs42(
|
|
25808
26114
|
ContextMenuPrimitive.SubTrigger,
|
|
25809
26115
|
{
|
|
25810
26116
|
ref,
|
|
@@ -25821,7 +26127,7 @@ var ContextMenuSubTrigger = React45.forwardRef(({ className, inset, children, ..
|
|
|
25821
26127
|
}
|
|
25822
26128
|
));
|
|
25823
26129
|
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
25824
|
-
var ContextMenuSubContent =
|
|
26130
|
+
var ContextMenuSubContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
25825
26131
|
ContextMenuPrimitive.SubContent,
|
|
25826
26132
|
{
|
|
25827
26133
|
ref,
|
|
@@ -25833,7 +26139,7 @@ var ContextMenuSubContent = React45.forwardRef(({ className, ...props }, ref) =>
|
|
|
25833
26139
|
}
|
|
25834
26140
|
));
|
|
25835
26141
|
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
25836
|
-
var ContextMenuContent =
|
|
26142
|
+
var ContextMenuContent = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx67(
|
|
25837
26143
|
ContextMenuPrimitive.Content,
|
|
25838
26144
|
{
|
|
25839
26145
|
ref,
|
|
@@ -25845,7 +26151,7 @@ var ContextMenuContent = React45.forwardRef(({ className, ...props }, ref) => /*
|
|
|
25845
26151
|
}
|
|
25846
26152
|
) }));
|
|
25847
26153
|
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
25848
|
-
var ContextMenuItem =
|
|
26154
|
+
var ContextMenuItem = React44.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
25849
26155
|
ContextMenuPrimitive.Item,
|
|
25850
26156
|
{
|
|
25851
26157
|
ref,
|
|
@@ -25858,7 +26164,7 @@ var ContextMenuItem = React45.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
25858
26164
|
}
|
|
25859
26165
|
));
|
|
25860
26166
|
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
25861
|
-
var ContextMenuCheckboxItem =
|
|
26167
|
+
var ContextMenuCheckboxItem = React44.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs42(
|
|
25862
26168
|
ContextMenuPrimitive.CheckboxItem,
|
|
25863
26169
|
{
|
|
25864
26170
|
ref,
|
|
@@ -25875,7 +26181,7 @@ var ContextMenuCheckboxItem = React45.forwardRef(({ className, children, checked
|
|
|
25875
26181
|
}
|
|
25876
26182
|
));
|
|
25877
26183
|
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
25878
|
-
var ContextMenuRadioItem =
|
|
26184
|
+
var ContextMenuRadioItem = React44.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs42(
|
|
25879
26185
|
ContextMenuPrimitive.RadioItem,
|
|
25880
26186
|
{
|
|
25881
26187
|
ref,
|
|
@@ -25891,7 +26197,7 @@ var ContextMenuRadioItem = React45.forwardRef(({ className, children, ...props }
|
|
|
25891
26197
|
}
|
|
25892
26198
|
));
|
|
25893
26199
|
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
25894
|
-
var ContextMenuLabel =
|
|
26200
|
+
var ContextMenuLabel = React44.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx67(
|
|
25895
26201
|
ContextMenuPrimitive.Label,
|
|
25896
26202
|
{
|
|
25897
26203
|
ref,
|
|
@@ -25900,7 +26206,7 @@ var ContextMenuLabel = React45.forwardRef(({ className, inset, ...props }, ref)
|
|
|
25900
26206
|
}
|
|
25901
26207
|
));
|
|
25902
26208
|
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
25903
|
-
var ContextMenuSeparator =
|
|
26209
|
+
var ContextMenuSeparator = React44.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx67(ContextMenuPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
|
|
25904
26210
|
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
25905
26211
|
var ContextMenuShortcut = ({ className, ...props }) => {
|
|
25906
26212
|
return /* @__PURE__ */ jsx67("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
@@ -25908,31 +26214,31 @@ var ContextMenuShortcut = ({ className, ...props }) => {
|
|
|
25908
26214
|
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
25909
26215
|
|
|
25910
26216
|
// src/components/ui/form.tsx
|
|
25911
|
-
import * as
|
|
26217
|
+
import * as React46 from "react";
|
|
25912
26218
|
import { Slot as Slot3 } from "@radix-ui/react-slot";
|
|
25913
26219
|
import { Controller, FormProvider, useFormContext } from "react-hook-form";
|
|
25914
26220
|
|
|
25915
26221
|
// src/components/ui/label.tsx
|
|
25916
|
-
import * as
|
|
26222
|
+
import * as React45 from "react";
|
|
25917
26223
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
25918
26224
|
import { cva as cva4 } from "class-variance-authority";
|
|
25919
26225
|
import { jsx as jsx68 } from "react/jsx-runtime";
|
|
25920
26226
|
var labelVariants = cva4("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
|
|
25921
|
-
var Label4 =
|
|
26227
|
+
var Label4 = React45.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx68(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
|
|
25922
26228
|
Label4.displayName = LabelPrimitive.Root.displayName;
|
|
25923
26229
|
|
|
25924
26230
|
// src/components/ui/form.tsx
|
|
25925
26231
|
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
25926
26232
|
var Form = FormProvider;
|
|
25927
|
-
var FormFieldContext =
|
|
26233
|
+
var FormFieldContext = React46.createContext({});
|
|
25928
26234
|
var FormField = ({
|
|
25929
26235
|
...props
|
|
25930
26236
|
}) => {
|
|
25931
26237
|
return /* @__PURE__ */ jsx69(FormFieldContext.Provider, { value: { name: props.name }, children: /* @__PURE__ */ jsx69(Controller, { ...props }) });
|
|
25932
26238
|
};
|
|
25933
26239
|
var useFormField = () => {
|
|
25934
|
-
const fieldContext =
|
|
25935
|
-
const itemContext =
|
|
26240
|
+
const fieldContext = React46.useContext(FormFieldContext);
|
|
26241
|
+
const itemContext = React46.useContext(FormItemContext);
|
|
25936
26242
|
const { getFieldState, formState } = useFormContext();
|
|
25937
26243
|
const fieldState = getFieldState(fieldContext.name, formState);
|
|
25938
26244
|
if (!fieldContext) {
|
|
@@ -25948,20 +26254,20 @@ var useFormField = () => {
|
|
|
25948
26254
|
...fieldState
|
|
25949
26255
|
};
|
|
25950
26256
|
};
|
|
25951
|
-
var FormItemContext =
|
|
25952
|
-
var FormItem =
|
|
26257
|
+
var FormItemContext = React46.createContext({});
|
|
26258
|
+
var FormItem = React46.forwardRef(
|
|
25953
26259
|
({ className, ...props }, ref) => {
|
|
25954
|
-
const id =
|
|
26260
|
+
const id = React46.useId();
|
|
25955
26261
|
return /* @__PURE__ */ jsx69(FormItemContext.Provider, { value: { id }, children: /* @__PURE__ */ jsx69("div", { ref, className: cn("space-y-2", className), ...props }) });
|
|
25956
26262
|
}
|
|
25957
26263
|
);
|
|
25958
26264
|
FormItem.displayName = "FormItem";
|
|
25959
|
-
var FormLabel =
|
|
26265
|
+
var FormLabel = React46.forwardRef(({ className, ...props }, ref) => {
|
|
25960
26266
|
const { error, formItemId } = useFormField();
|
|
25961
26267
|
return /* @__PURE__ */ jsx69(Label4, { ref, className: cn(error && "text-destructive", className), htmlFor: formItemId, ...props });
|
|
25962
26268
|
});
|
|
25963
26269
|
FormLabel.displayName = "FormLabel";
|
|
25964
|
-
var FormControl =
|
|
26270
|
+
var FormControl = React46.forwardRef(
|
|
25965
26271
|
({ ...props }, ref) => {
|
|
25966
26272
|
const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
|
|
25967
26273
|
return /* @__PURE__ */ jsx69(
|
|
@@ -25977,14 +26283,14 @@ var FormControl = React47.forwardRef(
|
|
|
25977
26283
|
}
|
|
25978
26284
|
);
|
|
25979
26285
|
FormControl.displayName = "FormControl";
|
|
25980
|
-
var FormDescription =
|
|
26286
|
+
var FormDescription = React46.forwardRef(
|
|
25981
26287
|
({ className, ...props }, ref) => {
|
|
25982
26288
|
const { formDescriptionId } = useFormField();
|
|
25983
26289
|
return /* @__PURE__ */ jsx69("p", { ref, id: formDescriptionId, className: cn("text-sm text-muted-foreground", className), ...props });
|
|
25984
26290
|
}
|
|
25985
26291
|
);
|
|
25986
26292
|
FormDescription.displayName = "FormDescription";
|
|
25987
|
-
var FormMessage =
|
|
26293
|
+
var FormMessage = React46.forwardRef(
|
|
25988
26294
|
({ className, children, ...props }, ref) => {
|
|
25989
26295
|
const { error, formMessageId } = useFormField();
|
|
25990
26296
|
const body = error ? String(error == null ? void 0 : error.message) : children;
|
|
@@ -25997,12 +26303,12 @@ var FormMessage = React47.forwardRef(
|
|
|
25997
26303
|
FormMessage.displayName = "FormMessage";
|
|
25998
26304
|
|
|
25999
26305
|
// src/components/ui/hover-card.tsx
|
|
26000
|
-
import * as
|
|
26306
|
+
import * as React47 from "react";
|
|
26001
26307
|
import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
|
|
26002
26308
|
import { jsx as jsx70 } from "react/jsx-runtime";
|
|
26003
26309
|
var HoverCard = HoverCardPrimitive.Root;
|
|
26004
26310
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
26005
|
-
var HoverCardContent =
|
|
26311
|
+
var HoverCardContent = React47.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx70(
|
|
26006
26312
|
HoverCardPrimitive.Content,
|
|
26007
26313
|
{
|
|
26008
26314
|
ref,
|
|
@@ -26018,11 +26324,11 @@ var HoverCardContent = React48.forwardRef(({ className, align = "center", sideOf
|
|
|
26018
26324
|
HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
26019
26325
|
|
|
26020
26326
|
// src/components/ui/input-otp.tsx
|
|
26021
|
-
import * as
|
|
26327
|
+
import * as React48 from "react";
|
|
26022
26328
|
import { OTPInput, OTPInputContext } from "input-otp";
|
|
26023
26329
|
import { Dot } from "lucide-react";
|
|
26024
26330
|
import { jsx as jsx71, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
26025
|
-
var InputOTP =
|
|
26331
|
+
var InputOTP = React48.forwardRef(
|
|
26026
26332
|
({ className, containerClassName, ...props }, ref) => /* @__PURE__ */ jsx71(
|
|
26027
26333
|
OTPInput,
|
|
26028
26334
|
{
|
|
@@ -26034,12 +26340,12 @@ var InputOTP = React49.forwardRef(
|
|
|
26034
26340
|
)
|
|
26035
26341
|
);
|
|
26036
26342
|
InputOTP.displayName = "InputOTP";
|
|
26037
|
-
var InputOTPGroup =
|
|
26343
|
+
var InputOTPGroup = React48.forwardRef(
|
|
26038
26344
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx71("div", { ref, className: cn("flex items-center", className), ...props })
|
|
26039
26345
|
);
|
|
26040
26346
|
InputOTPGroup.displayName = "InputOTPGroup";
|
|
26041
|
-
var InputOTPSlot =
|
|
26042
|
-
const inputOTPContext =
|
|
26347
|
+
var InputOTPSlot = React48.forwardRef(({ index, className, ...props }, ref) => {
|
|
26348
|
+
const inputOTPContext = React48.useContext(OTPInputContext);
|
|
26043
26349
|
const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];
|
|
26044
26350
|
return /* @__PURE__ */ jsxs43(
|
|
26045
26351
|
"div",
|
|
@@ -26059,13 +26365,13 @@ var InputOTPSlot = React49.forwardRef(({ index, className, ...props }, ref) => {
|
|
|
26059
26365
|
);
|
|
26060
26366
|
});
|
|
26061
26367
|
InputOTPSlot.displayName = "InputOTPSlot";
|
|
26062
|
-
var InputOTPSeparator =
|
|
26368
|
+
var InputOTPSeparator = React48.forwardRef(
|
|
26063
26369
|
({ ...props }, ref) => /* @__PURE__ */ jsx71("div", { ref, role: "separator", ...props, children: /* @__PURE__ */ jsx71(Dot, {}) })
|
|
26064
26370
|
);
|
|
26065
26371
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
26066
26372
|
|
|
26067
26373
|
// src/components/ui/menubar.tsx
|
|
26068
|
-
import * as
|
|
26374
|
+
import * as React49 from "react";
|
|
26069
26375
|
import * as MenubarPrimitive from "@radix-ui/react-menubar";
|
|
26070
26376
|
import { Check as Check8, ChevronRight as ChevronRight5, Circle as Circle3 } from "lucide-react";
|
|
26071
26377
|
import { jsx as jsx72, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
@@ -26074,7 +26380,7 @@ var MenubarGroup = MenubarPrimitive.Group;
|
|
|
26074
26380
|
var MenubarPortal = MenubarPrimitive.Portal;
|
|
26075
26381
|
var MenubarSub = MenubarPrimitive.Sub;
|
|
26076
26382
|
var MenubarRadioGroup = MenubarPrimitive.RadioGroup;
|
|
26077
|
-
var Menubar =
|
|
26383
|
+
var Menubar = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72(
|
|
26078
26384
|
MenubarPrimitive.Root,
|
|
26079
26385
|
{
|
|
26080
26386
|
ref,
|
|
@@ -26083,7 +26389,7 @@ var Menubar = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
26083
26389
|
}
|
|
26084
26390
|
));
|
|
26085
26391
|
Menubar.displayName = MenubarPrimitive.Root.displayName;
|
|
26086
|
-
var MenubarTrigger =
|
|
26392
|
+
var MenubarTrigger = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72(
|
|
26087
26393
|
MenubarPrimitive.Trigger,
|
|
26088
26394
|
{
|
|
26089
26395
|
ref,
|
|
@@ -26095,7 +26401,7 @@ var MenubarTrigger = React50.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
26095
26401
|
}
|
|
26096
26402
|
));
|
|
26097
26403
|
MenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;
|
|
26098
|
-
var MenubarSubTrigger =
|
|
26404
|
+
var MenubarSubTrigger = React49.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs44(
|
|
26099
26405
|
MenubarPrimitive.SubTrigger,
|
|
26100
26406
|
{
|
|
26101
26407
|
ref,
|
|
@@ -26112,7 +26418,7 @@ var MenubarSubTrigger = React50.forwardRef(({ className, inset, children, ...pro
|
|
|
26112
26418
|
}
|
|
26113
26419
|
));
|
|
26114
26420
|
MenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;
|
|
26115
|
-
var MenubarSubContent =
|
|
26421
|
+
var MenubarSubContent = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72(
|
|
26116
26422
|
MenubarPrimitive.SubContent,
|
|
26117
26423
|
{
|
|
26118
26424
|
ref,
|
|
@@ -26124,7 +26430,7 @@ var MenubarSubContent = React50.forwardRef(({ className, ...props }, ref) => /*
|
|
|
26124
26430
|
}
|
|
26125
26431
|
));
|
|
26126
26432
|
MenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;
|
|
26127
|
-
var MenubarContent =
|
|
26433
|
+
var MenubarContent = React49.forwardRef(({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }, ref) => /* @__PURE__ */ jsx72(MenubarPrimitive.Portal, { children: /* @__PURE__ */ jsx72(
|
|
26128
26434
|
MenubarPrimitive.Content,
|
|
26129
26435
|
{
|
|
26130
26436
|
ref,
|
|
@@ -26139,7 +26445,7 @@ var MenubarContent = React50.forwardRef(({ className, align = "start", alignOffs
|
|
|
26139
26445
|
}
|
|
26140
26446
|
) }));
|
|
26141
26447
|
MenubarContent.displayName = MenubarPrimitive.Content.displayName;
|
|
26142
|
-
var MenubarItem =
|
|
26448
|
+
var MenubarItem = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx72(
|
|
26143
26449
|
MenubarPrimitive.Item,
|
|
26144
26450
|
{
|
|
26145
26451
|
ref,
|
|
@@ -26152,7 +26458,7 @@ var MenubarItem = React50.forwardRef(({ className, inset, ...props }, ref) => /*
|
|
|
26152
26458
|
}
|
|
26153
26459
|
));
|
|
26154
26460
|
MenubarItem.displayName = MenubarPrimitive.Item.displayName;
|
|
26155
|
-
var MenubarCheckboxItem =
|
|
26461
|
+
var MenubarCheckboxItem = React49.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs44(
|
|
26156
26462
|
MenubarPrimitive.CheckboxItem,
|
|
26157
26463
|
{
|
|
26158
26464
|
ref,
|
|
@@ -26169,7 +26475,7 @@ var MenubarCheckboxItem = React50.forwardRef(({ className, children, checked, ..
|
|
|
26169
26475
|
}
|
|
26170
26476
|
));
|
|
26171
26477
|
MenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;
|
|
26172
|
-
var MenubarRadioItem =
|
|
26478
|
+
var MenubarRadioItem = React49.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs44(
|
|
26173
26479
|
MenubarPrimitive.RadioItem,
|
|
26174
26480
|
{
|
|
26175
26481
|
ref,
|
|
@@ -26185,7 +26491,7 @@ var MenubarRadioItem = React50.forwardRef(({ className, children, ...props }, re
|
|
|
26185
26491
|
}
|
|
26186
26492
|
));
|
|
26187
26493
|
MenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;
|
|
26188
|
-
var MenubarLabel =
|
|
26494
|
+
var MenubarLabel = React49.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx72(
|
|
26189
26495
|
MenubarPrimitive.Label,
|
|
26190
26496
|
{
|
|
26191
26497
|
ref,
|
|
@@ -26194,7 +26500,7 @@ var MenubarLabel = React50.forwardRef(({ className, inset, ...props }, ref) => /
|
|
|
26194
26500
|
}
|
|
26195
26501
|
));
|
|
26196
26502
|
MenubarLabel.displayName = MenubarPrimitive.Label.displayName;
|
|
26197
|
-
var MenubarSeparator =
|
|
26503
|
+
var MenubarSeparator = React49.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx72(MenubarPrimitive.Separator, { ref, className: cn("-mx-1 my-1 h-px bg-muted", className), ...props }));
|
|
26198
26504
|
MenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;
|
|
26199
26505
|
var MenubarShortcut = ({ className, ...props }) => {
|
|
26200
26506
|
return /* @__PURE__ */ jsx72("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props });
|
|
@@ -26202,12 +26508,12 @@ var MenubarShortcut = ({ className, ...props }) => {
|
|
|
26202
26508
|
MenubarShortcut.displayname = "MenubarShortcut";
|
|
26203
26509
|
|
|
26204
26510
|
// src/components/ui/navigation-menu.tsx
|
|
26205
|
-
import * as
|
|
26511
|
+
import * as React50 from "react";
|
|
26206
26512
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
26207
26513
|
import { cva as cva5 } from "class-variance-authority";
|
|
26208
26514
|
import { ChevronDown as ChevronDown6 } from "lucide-react";
|
|
26209
26515
|
import { jsx as jsx73, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
26210
|
-
var NavigationMenu =
|
|
26516
|
+
var NavigationMenu = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs45(
|
|
26211
26517
|
NavigationMenuPrimitive.Root,
|
|
26212
26518
|
{
|
|
26213
26519
|
ref,
|
|
@@ -26220,7 +26526,7 @@ var NavigationMenu = React51.forwardRef(({ className, children, ...props }, ref)
|
|
|
26220
26526
|
}
|
|
26221
26527
|
));
|
|
26222
26528
|
NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
|
|
26223
|
-
var NavigationMenuList =
|
|
26529
|
+
var NavigationMenuList = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
|
|
26224
26530
|
NavigationMenuPrimitive.List,
|
|
26225
26531
|
{
|
|
26226
26532
|
ref,
|
|
@@ -26233,7 +26539,7 @@ var NavigationMenuItem = NavigationMenuPrimitive.Item;
|
|
|
26233
26539
|
var navigationMenuTriggerStyle = cva5(
|
|
26234
26540
|
"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"
|
|
26235
26541
|
);
|
|
26236
|
-
var NavigationMenuTrigger =
|
|
26542
|
+
var NavigationMenuTrigger = React50.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs45(
|
|
26237
26543
|
NavigationMenuPrimitive.Trigger,
|
|
26238
26544
|
{
|
|
26239
26545
|
ref,
|
|
@@ -26253,7 +26559,7 @@ var NavigationMenuTrigger = React51.forwardRef(({ className, children, ...props
|
|
|
26253
26559
|
}
|
|
26254
26560
|
));
|
|
26255
26561
|
NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
|
|
26256
|
-
var NavigationMenuContent =
|
|
26562
|
+
var NavigationMenuContent = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
|
|
26257
26563
|
NavigationMenuPrimitive.Content,
|
|
26258
26564
|
{
|
|
26259
26565
|
ref,
|
|
@@ -26266,7 +26572,7 @@ var NavigationMenuContent = React51.forwardRef(({ className, ...props }, ref) =>
|
|
|
26266
26572
|
));
|
|
26267
26573
|
NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
|
|
26268
26574
|
var NavigationMenuLink = NavigationMenuPrimitive.Link;
|
|
26269
|
-
var NavigationMenuViewport =
|
|
26575
|
+
var NavigationMenuViewport = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx73("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx73(
|
|
26270
26576
|
NavigationMenuPrimitive.Viewport,
|
|
26271
26577
|
{
|
|
26272
26578
|
className: cn(
|
|
@@ -26278,7 +26584,7 @@ var NavigationMenuViewport = React51.forwardRef(({ className, ...props }, ref) =
|
|
|
26278
26584
|
}
|
|
26279
26585
|
) }));
|
|
26280
26586
|
NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
|
|
26281
|
-
var NavigationMenuIndicator =
|
|
26587
|
+
var NavigationMenuIndicator = React50.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx73(
|
|
26282
26588
|
NavigationMenuPrimitive.Indicator,
|
|
26283
26589
|
{
|
|
26284
26590
|
ref,
|
|
@@ -26293,7 +26599,7 @@ var NavigationMenuIndicator = React51.forwardRef(({ className, ...props }, ref)
|
|
|
26293
26599
|
NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
|
|
26294
26600
|
|
|
26295
26601
|
// src/components/ui/pagination.tsx
|
|
26296
|
-
import * as
|
|
26602
|
+
import * as React51 from "react";
|
|
26297
26603
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight6, MoreHorizontal as MoreHorizontal2 } from "lucide-react";
|
|
26298
26604
|
import { jsx as jsx74, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
26299
26605
|
var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx74(
|
|
@@ -26306,11 +26612,11 @@ var Pagination = ({ className, ...props }) => /* @__PURE__ */ jsx74(
|
|
|
26306
26612
|
}
|
|
26307
26613
|
);
|
|
26308
26614
|
Pagination.displayName = "Pagination";
|
|
26309
|
-
var PaginationContent =
|
|
26615
|
+
var PaginationContent = React51.forwardRef(
|
|
26310
26616
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx74("ul", { ref, className: cn("flex flex-row items-center gap-1", className), ...props })
|
|
26311
26617
|
);
|
|
26312
26618
|
PaginationContent.displayName = "PaginationContent";
|
|
26313
|
-
var PaginationItem =
|
|
26619
|
+
var PaginationItem = React51.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx74("li", { ref, className: cn("", className), ...props }));
|
|
26314
26620
|
PaginationItem.displayName = "PaginationItem";
|
|
26315
26621
|
var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @__PURE__ */ jsx74(
|
|
26316
26622
|
"a",
|
|
@@ -26344,12 +26650,12 @@ var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs46("sp
|
|
|
26344
26650
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
26345
26651
|
|
|
26346
26652
|
// src/components/ui/popover.tsx
|
|
26347
|
-
import * as
|
|
26653
|
+
import * as React52 from "react";
|
|
26348
26654
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
26349
26655
|
import { jsx as jsx75 } from "react/jsx-runtime";
|
|
26350
26656
|
var Popover = PopoverPrimitive.Root;
|
|
26351
26657
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
26352
|
-
var PopoverContent =
|
|
26658
|
+
var PopoverContent = React52.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx75(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx75(
|
|
26353
26659
|
PopoverPrimitive.Content,
|
|
26354
26660
|
{
|
|
26355
26661
|
ref,
|
|
@@ -26365,15 +26671,15 @@ var PopoverContent = React53.forwardRef(({ className, align = "center", sideOffs
|
|
|
26365
26671
|
PopoverContent.displayName = PopoverPrimitive.Content.displayName;
|
|
26366
26672
|
|
|
26367
26673
|
// src/components/ui/radio-group.tsx
|
|
26368
|
-
import * as
|
|
26674
|
+
import * as React53 from "react";
|
|
26369
26675
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
26370
26676
|
import { Circle as Circle4 } from "lucide-react";
|
|
26371
26677
|
import { jsx as jsx76 } from "react/jsx-runtime";
|
|
26372
|
-
var RadioGroup4 =
|
|
26678
|
+
var RadioGroup4 = React53.forwardRef(({ className, ...props }, ref) => {
|
|
26373
26679
|
return /* @__PURE__ */ jsx76(RadioGroupPrimitive.Root, { className: cn("grid gap-2", className), ...props, ref });
|
|
26374
26680
|
});
|
|
26375
26681
|
RadioGroup4.displayName = RadioGroupPrimitive.Root.displayName;
|
|
26376
|
-
var RadioGroupItem =
|
|
26682
|
+
var RadioGroupItem = React53.forwardRef(({ className, ...props }, ref) => {
|
|
26377
26683
|
return /* @__PURE__ */ jsx76(
|
|
26378
26684
|
RadioGroupPrimitive.Item,
|
|
26379
26685
|
{
|
|
@@ -26418,10 +26724,10 @@ var ResizableHandle = ({
|
|
|
26418
26724
|
);
|
|
26419
26725
|
|
|
26420
26726
|
// src/components/ui/separator.tsx
|
|
26421
|
-
import * as
|
|
26727
|
+
import * as React54 from "react";
|
|
26422
26728
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
26423
26729
|
import { jsx as jsx78 } from "react/jsx-runtime";
|
|
26424
|
-
var Separator5 =
|
|
26730
|
+
var Separator5 = React54.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx78(
|
|
26425
26731
|
SeparatorPrimitive.Root,
|
|
26426
26732
|
{
|
|
26427
26733
|
ref,
|
|
@@ -26437,13 +26743,13 @@ Separator5.displayName = SeparatorPrimitive.Root.displayName;
|
|
|
26437
26743
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
26438
26744
|
import { cva as cva6 } from "class-variance-authority";
|
|
26439
26745
|
import { X as X6 } from "lucide-react";
|
|
26440
|
-
import * as
|
|
26746
|
+
import * as React55 from "react";
|
|
26441
26747
|
import { jsx as jsx79, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
26442
26748
|
var Sheet = SheetPrimitive.Root;
|
|
26443
26749
|
var SheetTrigger = SheetPrimitive.Trigger;
|
|
26444
26750
|
var SheetClose = SheetPrimitive.Close;
|
|
26445
26751
|
var SheetPortal = SheetPrimitive.Portal;
|
|
26446
|
-
var SheetOverlay =
|
|
26752
|
+
var SheetOverlay = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx79(
|
|
26447
26753
|
SheetPrimitive.Overlay,
|
|
26448
26754
|
{
|
|
26449
26755
|
className: cn(
|
|
@@ -26471,7 +26777,7 @@ var sheetVariants = cva6(
|
|
|
26471
26777
|
}
|
|
26472
26778
|
}
|
|
26473
26779
|
);
|
|
26474
|
-
var SheetContent =
|
|
26780
|
+
var SheetContent = React55.forwardRef(
|
|
26475
26781
|
({
|
|
26476
26782
|
side = "right",
|
|
26477
26783
|
className,
|
|
@@ -26505,23 +26811,23 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx79("div", { cl
|
|
|
26505
26811
|
SheetHeader.displayName = "SheetHeader";
|
|
26506
26812
|
var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx79("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
26507
26813
|
SheetFooter.displayName = "SheetFooter";
|
|
26508
|
-
var SheetTitle =
|
|
26814
|
+
var SheetTitle = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx79(SheetPrimitive.Title, { ref, className: cn("text-lg font-semibold text-foreground", className), ...props }));
|
|
26509
26815
|
SheetTitle.displayName = SheetPrimitive.Title.displayName;
|
|
26510
|
-
var SheetDescription =
|
|
26816
|
+
var SheetDescription = React55.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx79(SheetPrimitive.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
|
|
26511
26817
|
SheetDescription.displayName = SheetPrimitive.Description.displayName;
|
|
26512
26818
|
|
|
26513
26819
|
// src/components/ui/sidebar.tsx
|
|
26514
|
-
import * as
|
|
26820
|
+
import * as React57 from "react";
|
|
26515
26821
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
26516
26822
|
import { cva as cva7 } from "class-variance-authority";
|
|
26517
26823
|
import { PanelLeft } from "lucide-react";
|
|
26518
26824
|
|
|
26519
26825
|
// src/hooks/use-mobile.tsx
|
|
26520
|
-
import * as
|
|
26826
|
+
import * as React56 from "react";
|
|
26521
26827
|
var MOBILE_BREAKPOINT = 768;
|
|
26522
26828
|
function useIsMobile() {
|
|
26523
|
-
const [isMobile, setIsMobile] =
|
|
26524
|
-
|
|
26829
|
+
const [isMobile, setIsMobile] = React56.useState(void 0);
|
|
26830
|
+
React56.useEffect(() => {
|
|
26525
26831
|
const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
|
|
26526
26832
|
const onChange = () => {
|
|
26527
26833
|
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
|
|
@@ -26541,20 +26847,20 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
26541
26847
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
26542
26848
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
26543
26849
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
26544
|
-
var SidebarContext =
|
|
26850
|
+
var SidebarContext = React57.createContext(null);
|
|
26545
26851
|
function useSidebar() {
|
|
26546
|
-
const context =
|
|
26852
|
+
const context = React57.useContext(SidebarContext);
|
|
26547
26853
|
if (!context) {
|
|
26548
26854
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
26549
26855
|
}
|
|
26550
26856
|
return context;
|
|
26551
26857
|
}
|
|
26552
|
-
var SidebarProvider =
|
|
26858
|
+
var SidebarProvider = React57.forwardRef(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {
|
|
26553
26859
|
const isMobile = useIsMobile();
|
|
26554
|
-
const [openMobile, setOpenMobile] =
|
|
26555
|
-
const [_open, _setOpen] =
|
|
26860
|
+
const [openMobile, setOpenMobile] = React57.useState(false);
|
|
26861
|
+
const [_open, _setOpen] = React57.useState(defaultOpen);
|
|
26556
26862
|
const open = openProp != null ? openProp : _open;
|
|
26557
|
-
const setOpen =
|
|
26863
|
+
const setOpen = React57.useCallback(
|
|
26558
26864
|
(value) => {
|
|
26559
26865
|
const openState = typeof value === "function" ? value(open) : value;
|
|
26560
26866
|
if (setOpenProp) {
|
|
@@ -26566,10 +26872,10 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
26566
26872
|
},
|
|
26567
26873
|
[setOpenProp, open]
|
|
26568
26874
|
);
|
|
26569
|
-
const toggleSidebar =
|
|
26875
|
+
const toggleSidebar = React57.useCallback(() => {
|
|
26570
26876
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
26571
26877
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
26572
|
-
|
|
26878
|
+
React57.useEffect(() => {
|
|
26573
26879
|
const handleKeyDown = (event) => {
|
|
26574
26880
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
26575
26881
|
event.preventDefault();
|
|
@@ -26580,7 +26886,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
26580
26886
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
26581
26887
|
}, [toggleSidebar]);
|
|
26582
26888
|
const state = open ? "expanded" : "collapsed";
|
|
26583
|
-
const contextValue =
|
|
26889
|
+
const contextValue = React57.useMemo(
|
|
26584
26890
|
() => ({
|
|
26585
26891
|
state,
|
|
26586
26892
|
open,
|
|
@@ -26608,7 +26914,7 @@ var SidebarProvider = React58.forwardRef(({ defaultOpen = true, open: openProp,
|
|
|
26608
26914
|
) }) });
|
|
26609
26915
|
});
|
|
26610
26916
|
SidebarProvider.displayName = "SidebarProvider";
|
|
26611
|
-
var Sidebar =
|
|
26917
|
+
var Sidebar = React57.forwardRef(({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children, ...props }, ref) => {
|
|
26612
26918
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
26613
26919
|
if (collapsible === "none") {
|
|
26614
26920
|
return /* @__PURE__ */ jsx80(
|
|
@@ -26683,7 +26989,7 @@ var Sidebar = React58.forwardRef(({ side = "left", variant = "sidebar", collapsi
|
|
|
26683
26989
|
);
|
|
26684
26990
|
});
|
|
26685
26991
|
Sidebar.displayName = "Sidebar";
|
|
26686
|
-
var SidebarTrigger =
|
|
26992
|
+
var SidebarTrigger = React57.forwardRef(
|
|
26687
26993
|
({ className, onClick, ...props }, ref) => {
|
|
26688
26994
|
const { toggleSidebar } = useSidebar();
|
|
26689
26995
|
return /* @__PURE__ */ jsxs48(
|
|
@@ -26708,7 +27014,7 @@ var SidebarTrigger = React58.forwardRef(
|
|
|
26708
27014
|
}
|
|
26709
27015
|
);
|
|
26710
27016
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
26711
|
-
var SidebarRail =
|
|
27017
|
+
var SidebarRail = React57.forwardRef(
|
|
26712
27018
|
({ className, ...props }, ref) => {
|
|
26713
27019
|
const { toggleSidebar } = useSidebar();
|
|
26714
27020
|
return /* @__PURE__ */ jsx80(
|
|
@@ -26735,7 +27041,7 @@ var SidebarRail = React58.forwardRef(
|
|
|
26735
27041
|
}
|
|
26736
27042
|
);
|
|
26737
27043
|
SidebarRail.displayName = "SidebarRail";
|
|
26738
|
-
var SidebarInset =
|
|
27044
|
+
var SidebarInset = React57.forwardRef(({ className, ...props }, ref) => {
|
|
26739
27045
|
return /* @__PURE__ */ jsx80(
|
|
26740
27046
|
"main",
|
|
26741
27047
|
{
|
|
@@ -26750,7 +27056,7 @@ var SidebarInset = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
26750
27056
|
);
|
|
26751
27057
|
});
|
|
26752
27058
|
SidebarInset.displayName = "SidebarInset";
|
|
26753
|
-
var SidebarInput =
|
|
27059
|
+
var SidebarInput = React57.forwardRef(
|
|
26754
27060
|
({ className, ...props }, ref) => {
|
|
26755
27061
|
return /* @__PURE__ */ jsx80(
|
|
26756
27062
|
Input,
|
|
@@ -26767,15 +27073,15 @@ var SidebarInput = React58.forwardRef(
|
|
|
26767
27073
|
}
|
|
26768
27074
|
);
|
|
26769
27075
|
SidebarInput.displayName = "SidebarInput";
|
|
26770
|
-
var SidebarHeader =
|
|
27076
|
+
var SidebarHeader = React57.forwardRef(({ className, ...props }, ref) => {
|
|
26771
27077
|
return /* @__PURE__ */ jsx80("div", { ref, "data-sidebar": "header", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
26772
27078
|
});
|
|
26773
27079
|
SidebarHeader.displayName = "SidebarHeader";
|
|
26774
|
-
var SidebarFooter =
|
|
27080
|
+
var SidebarFooter = React57.forwardRef(({ className, ...props }, ref) => {
|
|
26775
27081
|
return /* @__PURE__ */ jsx80("div", { ref, "data-sidebar": "footer", className: cn("flex flex-col gap-2 p-2", className), ...props });
|
|
26776
27082
|
});
|
|
26777
27083
|
SidebarFooter.displayName = "SidebarFooter";
|
|
26778
|
-
var SidebarSeparator =
|
|
27084
|
+
var SidebarSeparator = React57.forwardRef(
|
|
26779
27085
|
({ className, ...props }, ref) => {
|
|
26780
27086
|
return /* @__PURE__ */ jsx80(
|
|
26781
27087
|
Separator5,
|
|
@@ -26789,7 +27095,7 @@ var SidebarSeparator = React58.forwardRef(
|
|
|
26789
27095
|
}
|
|
26790
27096
|
);
|
|
26791
27097
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
26792
|
-
var SidebarContent =
|
|
27098
|
+
var SidebarContent = React57.forwardRef(({ className, ...props }, ref) => {
|
|
26793
27099
|
return /* @__PURE__ */ jsx80(
|
|
26794
27100
|
"div",
|
|
26795
27101
|
{
|
|
@@ -26804,7 +27110,7 @@ var SidebarContent = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
26804
27110
|
);
|
|
26805
27111
|
});
|
|
26806
27112
|
SidebarContent.displayName = "SidebarContent";
|
|
26807
|
-
var SidebarGroup =
|
|
27113
|
+
var SidebarGroup = React57.forwardRef(({ className, ...props }, ref) => {
|
|
26808
27114
|
return /* @__PURE__ */ jsx80(
|
|
26809
27115
|
"div",
|
|
26810
27116
|
{
|
|
@@ -26816,7 +27122,7 @@ var SidebarGroup = React58.forwardRef(({ className, ...props }, ref) => {
|
|
|
26816
27122
|
);
|
|
26817
27123
|
});
|
|
26818
27124
|
SidebarGroup.displayName = "SidebarGroup";
|
|
26819
|
-
var SidebarGroupLabel =
|
|
27125
|
+
var SidebarGroupLabel = React57.forwardRef(
|
|
26820
27126
|
({ className, asChild = false, ...props }, ref) => {
|
|
26821
27127
|
const Comp = asChild ? Slot4 : "div";
|
|
26822
27128
|
return /* @__PURE__ */ jsx80(
|
|
@@ -26835,7 +27141,7 @@ var SidebarGroupLabel = React58.forwardRef(
|
|
|
26835
27141
|
}
|
|
26836
27142
|
);
|
|
26837
27143
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
26838
|
-
var SidebarGroupAction =
|
|
27144
|
+
var SidebarGroupAction = React57.forwardRef(
|
|
26839
27145
|
({ className, asChild = false, ...props }, ref) => {
|
|
26840
27146
|
const Comp = asChild ? Slot4 : "button";
|
|
26841
27147
|
return /* @__PURE__ */ jsx80(
|
|
@@ -26856,13 +27162,13 @@ var SidebarGroupAction = React58.forwardRef(
|
|
|
26856
27162
|
}
|
|
26857
27163
|
);
|
|
26858
27164
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
26859
|
-
var SidebarGroupContent =
|
|
27165
|
+
var SidebarGroupContent = React57.forwardRef(
|
|
26860
27166
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx80("div", { ref, "data-sidebar": "group-content", className: cn("w-full text-sm", className), ...props })
|
|
26861
27167
|
);
|
|
26862
27168
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
26863
|
-
var SidebarMenu =
|
|
27169
|
+
var SidebarMenu = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx80("ul", { ref, "data-sidebar": "menu", className: cn("flex w-full min-w-0 flex-col gap-1", className), ...props }));
|
|
26864
27170
|
SidebarMenu.displayName = "SidebarMenu";
|
|
26865
|
-
var SidebarMenuItem =
|
|
27171
|
+
var SidebarMenuItem = React57.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx80("li", { ref, "data-sidebar": "menu-item", className: cn("group/menu-item relative", className), ...props }));
|
|
26866
27172
|
SidebarMenuItem.displayName = "SidebarMenuItem";
|
|
26867
27173
|
var sidebarMenuButtonVariants = cva7(
|
|
26868
27174
|
"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",
|
|
@@ -26884,7 +27190,7 @@ var sidebarMenuButtonVariants = cva7(
|
|
|
26884
27190
|
}
|
|
26885
27191
|
}
|
|
26886
27192
|
);
|
|
26887
|
-
var SidebarMenuButton =
|
|
27193
|
+
var SidebarMenuButton = React57.forwardRef(({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className, ...props }, ref) => {
|
|
26888
27194
|
const Comp = asChild ? Slot4 : "button";
|
|
26889
27195
|
const { isMobile, state } = useSidebar();
|
|
26890
27196
|
const button = /* @__PURE__ */ jsx80(
|
|
@@ -26912,7 +27218,7 @@ var SidebarMenuButton = React58.forwardRef(({ asChild = false, isActive = false,
|
|
|
26912
27218
|
] });
|
|
26913
27219
|
});
|
|
26914
27220
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
26915
|
-
var SidebarMenuAction =
|
|
27221
|
+
var SidebarMenuAction = React57.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
26916
27222
|
const Comp = asChild ? Slot4 : "button";
|
|
26917
27223
|
return /* @__PURE__ */ jsx80(
|
|
26918
27224
|
Comp,
|
|
@@ -26935,7 +27241,7 @@ var SidebarMenuAction = React58.forwardRef(({ className, asChild = false, showOn
|
|
|
26935
27241
|
);
|
|
26936
27242
|
});
|
|
26937
27243
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
26938
|
-
var SidebarMenuBadge =
|
|
27244
|
+
var SidebarMenuBadge = React57.forwardRef(
|
|
26939
27245
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx80(
|
|
26940
27246
|
"div",
|
|
26941
27247
|
{
|
|
@@ -26955,8 +27261,8 @@ var SidebarMenuBadge = React58.forwardRef(
|
|
|
26955
27261
|
)
|
|
26956
27262
|
);
|
|
26957
27263
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
26958
|
-
var SidebarMenuSkeleton =
|
|
26959
|
-
const width =
|
|
27264
|
+
var SidebarMenuSkeleton = React57.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
27265
|
+
const width = React57.useMemo(() => {
|
|
26960
27266
|
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
26961
27267
|
}, []);
|
|
26962
27268
|
return /* @__PURE__ */ jsxs48(
|
|
@@ -26983,7 +27289,7 @@ var SidebarMenuSkeleton = React58.forwardRef(({ className, showIcon = false, ...
|
|
|
26983
27289
|
);
|
|
26984
27290
|
});
|
|
26985
27291
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
26986
|
-
var SidebarMenuSub =
|
|
27292
|
+
var SidebarMenuSub = React57.forwardRef(
|
|
26987
27293
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx80(
|
|
26988
27294
|
"ul",
|
|
26989
27295
|
{
|
|
@@ -26999,9 +27305,9 @@ var SidebarMenuSub = React58.forwardRef(
|
|
|
26999
27305
|
)
|
|
27000
27306
|
);
|
|
27001
27307
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
27002
|
-
var SidebarMenuSubItem =
|
|
27308
|
+
var SidebarMenuSubItem = React57.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx80("li", { ref, ...props }));
|
|
27003
27309
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
27004
|
-
var SidebarMenuSubButton =
|
|
27310
|
+
var SidebarMenuSubButton = React57.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
|
|
27005
27311
|
const Comp = asChild ? Slot4 : "a";
|
|
27006
27312
|
return /* @__PURE__ */ jsx80(
|
|
27007
27313
|
Comp,
|
|
@@ -27025,10 +27331,10 @@ var SidebarMenuSubButton = React58.forwardRef(({ asChild = false, size = "md", i
|
|
|
27025
27331
|
SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
|
|
27026
27332
|
|
|
27027
27333
|
// src/components/ui/slider.tsx
|
|
27028
|
-
import * as
|
|
27334
|
+
import * as React58 from "react";
|
|
27029
27335
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
27030
27336
|
import { jsx as jsx81, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
27031
|
-
var Slider =
|
|
27337
|
+
var Slider = React58.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs49(
|
|
27032
27338
|
SliderPrimitive.Root,
|
|
27033
27339
|
{
|
|
27034
27340
|
ref,
|
|
@@ -27043,25 +27349,25 @@ var Slider = React59.forwardRef(({ className, ...props }, ref) => /* @__PURE__ *
|
|
|
27043
27349
|
Slider.displayName = SliderPrimitive.Root.displayName;
|
|
27044
27350
|
|
|
27045
27351
|
// src/components/ui/table.tsx
|
|
27046
|
-
import * as
|
|
27352
|
+
import * as React59 from "react";
|
|
27047
27353
|
import { jsx as jsx82 } from "react/jsx-runtime";
|
|
27048
|
-
var Table =
|
|
27354
|
+
var Table = React59.forwardRef(
|
|
27049
27355
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx82("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
|
|
27050
27356
|
);
|
|
27051
27357
|
Table.displayName = "Table";
|
|
27052
|
-
var TableHeader =
|
|
27358
|
+
var TableHeader = React59.forwardRef(
|
|
27053
27359
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("thead", { ref, className: cn("[&_tr]:border-b", className), ...props })
|
|
27054
27360
|
);
|
|
27055
27361
|
TableHeader.displayName = "TableHeader";
|
|
27056
|
-
var TableBody =
|
|
27362
|
+
var TableBody = React59.forwardRef(
|
|
27057
27363
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props })
|
|
27058
27364
|
);
|
|
27059
27365
|
TableBody.displayName = "TableBody";
|
|
27060
|
-
var TableFooter =
|
|
27366
|
+
var TableFooter = React59.forwardRef(
|
|
27061
27367
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("tfoot", { ref, className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), ...props })
|
|
27062
27368
|
);
|
|
27063
27369
|
TableFooter.displayName = "TableFooter";
|
|
27064
|
-
var TableRow =
|
|
27370
|
+
var TableRow = React59.forwardRef(
|
|
27065
27371
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82(
|
|
27066
27372
|
"tr",
|
|
27067
27373
|
{
|
|
@@ -27072,7 +27378,7 @@ var TableRow = React60.forwardRef(
|
|
|
27072
27378
|
)
|
|
27073
27379
|
);
|
|
27074
27380
|
TableRow.displayName = "TableRow";
|
|
27075
|
-
var TableHead =
|
|
27381
|
+
var TableHead = React59.forwardRef(
|
|
27076
27382
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82(
|
|
27077
27383
|
"th",
|
|
27078
27384
|
{
|
|
@@ -27086,23 +27392,23 @@ var TableHead = React60.forwardRef(
|
|
|
27086
27392
|
)
|
|
27087
27393
|
);
|
|
27088
27394
|
TableHead.displayName = "TableHead";
|
|
27089
|
-
var TableCell =
|
|
27395
|
+
var TableCell = React59.forwardRef(
|
|
27090
27396
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("td", { ref, className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className), ...props })
|
|
27091
27397
|
);
|
|
27092
27398
|
TableCell.displayName = "TableCell";
|
|
27093
|
-
var TableCaption =
|
|
27399
|
+
var TableCaption = React59.forwardRef(
|
|
27094
27400
|
({ className, ...props }, ref) => /* @__PURE__ */ jsx82("caption", { ref, className: cn("mt-4 text-sm text-muted-foreground", className), ...props })
|
|
27095
27401
|
);
|
|
27096
27402
|
TableCaption.displayName = "TableCaption";
|
|
27097
27403
|
|
|
27098
27404
|
// src/components/ui/toast.tsx
|
|
27099
|
-
import * as
|
|
27405
|
+
import * as React60 from "react";
|
|
27100
27406
|
import * as ToastPrimitives from "@radix-ui/react-toast";
|
|
27101
27407
|
import { cva as cva8 } from "class-variance-authority";
|
|
27102
27408
|
import { X as X7 } from "lucide-react";
|
|
27103
27409
|
import { jsx as jsx83 } from "react/jsx-runtime";
|
|
27104
27410
|
var ToastProvider = ToastPrimitives.Provider;
|
|
27105
|
-
var ToastViewport =
|
|
27411
|
+
var ToastViewport = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83(
|
|
27106
27412
|
ToastPrimitives.Viewport,
|
|
27107
27413
|
{
|
|
27108
27414
|
ref,
|
|
@@ -27128,11 +27434,11 @@ var toastVariants = cva8(
|
|
|
27128
27434
|
}
|
|
27129
27435
|
}
|
|
27130
27436
|
);
|
|
27131
|
-
var Toast =
|
|
27437
|
+
var Toast = React60.forwardRef(({ className, variant, ...props }, ref) => {
|
|
27132
27438
|
return /* @__PURE__ */ jsx83(ToastPrimitives.Root, { ref, className: cn(toastVariants({ variant }), className), ...props });
|
|
27133
27439
|
});
|
|
27134
27440
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
27135
|
-
var ToastAction =
|
|
27441
|
+
var ToastAction = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83(
|
|
27136
27442
|
ToastPrimitives.Action,
|
|
27137
27443
|
{
|
|
27138
27444
|
ref,
|
|
@@ -27144,7 +27450,7 @@ var ToastAction = React61.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
27144
27450
|
}
|
|
27145
27451
|
));
|
|
27146
27452
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
27147
|
-
var ToastClose =
|
|
27453
|
+
var ToastClose = React60.forwardRef(({ className, onClick, ...props }, ref) => /* @__PURE__ */ jsx83(
|
|
27148
27454
|
ToastPrimitives.Close,
|
|
27149
27455
|
{
|
|
27150
27456
|
ref,
|
|
@@ -27162,9 +27468,9 @@ var ToastClose = React61.forwardRef(({ className, onClick, ...props }, ref) => /
|
|
|
27162
27468
|
}
|
|
27163
27469
|
));
|
|
27164
27470
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
27165
|
-
var ToastTitle =
|
|
27471
|
+
var ToastTitle = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
|
|
27166
27472
|
ToastTitle.displayName = ToastPrimitives.Title.displayName;
|
|
27167
|
-
var ToastDescription =
|
|
27473
|
+
var ToastDescription = React60.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83(ToastPrimitives.Description, { ref, className: cn("text-sm opacity-90", className), ...props }));
|
|
27168
27474
|
ToastDescription.displayName = ToastPrimitives.Description.displayName;
|
|
27169
27475
|
|
|
27170
27476
|
// src/components/ui/toaster.tsx
|
|
@@ -27187,7 +27493,7 @@ function Toaster2() {
|
|
|
27187
27493
|
}
|
|
27188
27494
|
|
|
27189
27495
|
// src/components/ui/toggle.tsx
|
|
27190
|
-
import * as
|
|
27496
|
+
import * as React61 from "react";
|
|
27191
27497
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
27192
27498
|
import { cva as cva9 } from "class-variance-authority";
|
|
27193
27499
|
import { jsx as jsx85 } from "react/jsx-runtime";
|
|
@@ -27211,21 +27517,21 @@ var toggleVariants = cva9(
|
|
|
27211
27517
|
}
|
|
27212
27518
|
}
|
|
27213
27519
|
);
|
|
27214
|
-
var Toggle =
|
|
27520
|
+
var Toggle = React61.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx85(TogglePrimitive.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
|
|
27215
27521
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
27216
27522
|
|
|
27217
27523
|
// src/components/ui/toggle-group.tsx
|
|
27218
|
-
import * as
|
|
27524
|
+
import * as React62 from "react";
|
|
27219
27525
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
27220
27526
|
import { jsx as jsx86 } from "react/jsx-runtime";
|
|
27221
|
-
var ToggleGroupContext =
|
|
27527
|
+
var ToggleGroupContext = React62.createContext({
|
|
27222
27528
|
size: "default",
|
|
27223
27529
|
variant: "default"
|
|
27224
27530
|
});
|
|
27225
|
-
var ToggleGroup =
|
|
27531
|
+
var ToggleGroup = React62.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsx86(ToggleGroupPrimitive.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ jsx86(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
|
|
27226
27532
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
27227
|
-
var ToggleGroupItem =
|
|
27228
|
-
const context =
|
|
27533
|
+
var ToggleGroupItem = React62.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
27534
|
+
const context = React62.useContext(ToggleGroupContext);
|
|
27229
27535
|
return /* @__PURE__ */ jsx86(
|
|
27230
27536
|
ToggleGroupPrimitive.Item,
|
|
27231
27537
|
{
|
|
@@ -27276,7 +27582,7 @@ var useActiveSection = (sectionIds, offset = 180) => {
|
|
|
27276
27582
|
};
|
|
27277
27583
|
|
|
27278
27584
|
// src/lib/auth.tsx
|
|
27279
|
-
import { createContext as createContext6, useCallback as useCallback9, useContext as useContext7, useEffect as useEffect24, useMemo as
|
|
27585
|
+
import { createContext as createContext6, useCallback as useCallback9, useContext as useContext7, useEffect as useEffect24, useMemo as useMemo12, useRef as useRef14, useState as useState19 } from "react";
|
|
27280
27586
|
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
27281
27587
|
var STORAGE_KEYS = {
|
|
27282
27588
|
accessToken: "cc_access_token",
|
|
@@ -27855,7 +28161,7 @@ var AuthProvider = ({ children }) => {
|
|
|
27855
28161
|
},
|
|
27856
28162
|
[applyPresenceStatus]
|
|
27857
28163
|
);
|
|
27858
|
-
const value =
|
|
28164
|
+
const value = useMemo12(
|
|
27859
28165
|
() => ({
|
|
27860
28166
|
status,
|
|
27861
28167
|
user,
|
|
@@ -27915,6 +28221,8 @@ export {
|
|
|
27915
28221
|
BreadcrumbPage,
|
|
27916
28222
|
BreadcrumbSeparator,
|
|
27917
28223
|
Button,
|
|
28224
|
+
CUPCODE_APP_VERSION_ENV_KEY,
|
|
28225
|
+
CUPCODE_APP_VERSION_ENV_KEYS,
|
|
27918
28226
|
Calendar,
|
|
27919
28227
|
Card,
|
|
27920
28228
|
CardContent,
|
|
@@ -28220,6 +28528,7 @@ export {
|
|
|
28220
28528
|
navigationMenuTriggerStyle,
|
|
28221
28529
|
parseAssetId,
|
|
28222
28530
|
reducer,
|
|
28531
|
+
resolveCupcodeAppVersion,
|
|
28223
28532
|
resolveOidcEndpoints,
|
|
28224
28533
|
resolveTelescupImageURL,
|
|
28225
28534
|
responsiveSizeClasses,
|