@drewpayment/mink 0.5.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -0
- package/dashboard/out/404.html +1 -1
- package/dashboard/out/_next/static/FiL3S_40BA764FL66DRZV/_buildManifest.js +1 -0
- package/dashboard/out/_next/static/chunks/189-fe789442321eb5eb.js +1 -0
- package/dashboard/out/_next/static/chunks/255-6b79f309a27fb98b.js +1 -0
- package/dashboard/out/_next/static/chunks/4bd1b696-c023c6e3521b1417.js +1 -0
- package/dashboard/out/_next/static/chunks/738-11c31dcbdbb98d77.js +1 -0
- package/dashboard/out/_next/static/chunks/926-6421b9e9b03abc7b.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/action-log/page-1f507b433af52d16.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/activity/page-096a97ba539d5323.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/bugs/page-449d31c133432458.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/capture/page-c6617aa0a8a7333e.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/config/page-aa0a0623b3fdd0d8.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/daemon/page-7cd3fac2f5d87a0d.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/design/page-5304675c96b6793b.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/discord/page-9940dde80ba2a69e.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/file-index/page-ecd8a753614e981e.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/insights/page-7909d8beb8d8ef7a.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/learning/page-b766adc79099adb4.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/overview/page-7a9e86dcde67d6a9.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/scheduler/page-a88f93204c9742a1.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/sync/page-8a9ad4c36aa6cb65.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/tokens/page-8dac7d50d4db2756.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/waste/page-bcf56144faf7d133.js +1 -0
- package/dashboard/out/_next/static/chunks/app/(panels)/wiki/page-a32fdbd0bf58b30b.js +1 -0
- package/dashboard/out/_next/static/chunks/app/_not-found/page-dc2312ec30d73c4e.js +1 -0
- package/dashboard/out/_next/static/chunks/app/layout-782cd26e0ccc4514.js +1 -0
- package/dashboard/out/_next/static/chunks/app/page-6aca8457abc5d313.js +1 -0
- package/dashboard/out/_next/static/chunks/framework-050c1f32293f7182.js +1 -0
- package/dashboard/out/_next/static/chunks/main-app-c2dc0acf542ec1c6.js +1 -0
- package/dashboard/out/_next/static/chunks/main-ed79d05490604b83.js +1 -0
- package/dashboard/out/_next/static/chunks/pages/_app-7d307437aca18ad4.js +1 -0
- package/dashboard/out/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js +1 -0
- package/dashboard/out/_next/static/chunks/webpack-4e3139a490df1cfe.js +1 -0
- package/dashboard/out/_next/static/css/5e43917ea49c5b3e.css +1 -0
- package/dashboard/out/_next/static/media/0aa834ed78bf6d07-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/21350d82a1f187e9-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/67957d42bae0796d-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/886030b0b59bc5a7-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/8e9860b6e62d6359-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/939c4f875ee75fbb-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/bb3ef058b751a6ad-s.p.woff2 +0 -0
- package/dashboard/out/_next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/df0a9ae256c0569c-s.woff2 +0 -0
- package/dashboard/out/_next/static/media/e4af272ccee01ff0-s.p.woff2 +0 -0
- package/dashboard/out/_next/static/media/f911b923c6adde36-s.woff2 +0 -0
- package/dashboard/out/action-log.html +1 -1
- package/dashboard/out/action-log.txt +23 -22
- package/dashboard/out/activity.html +1 -1
- package/dashboard/out/activity.txt +23 -22
- package/dashboard/out/bugs.html +1 -1
- package/dashboard/out/bugs.txt +23 -22
- package/dashboard/out/capture.html +1 -0
- package/dashboard/out/capture.txt +24 -0
- package/dashboard/out/config.html +1 -0
- package/dashboard/out/config.txt +24 -0
- package/dashboard/out/daemon.html +1 -0
- package/dashboard/out/daemon.txt +24 -0
- package/dashboard/out/design.html +1 -1
- package/dashboard/out/design.txt +23 -22
- package/dashboard/out/discord.html +1 -0
- package/dashboard/out/discord.txt +24 -0
- package/dashboard/out/file-index.html +1 -1
- package/dashboard/out/file-index.txt +23 -22
- package/dashboard/out/index.html +1 -1
- package/dashboard/out/index.txt +23 -22
- package/dashboard/out/insights.html +1 -1
- package/dashboard/out/insights.txt +23 -22
- package/dashboard/out/learning.html +1 -1
- package/dashboard/out/learning.txt +23 -22
- package/dashboard/out/overview.html +1 -1
- package/dashboard/out/overview.txt +23 -22
- package/dashboard/out/scheduler.html +1 -1
- package/dashboard/out/scheduler.txt +23 -22
- package/dashboard/out/sync.html +1 -0
- package/dashboard/out/sync.txt +24 -0
- package/dashboard/out/tokens.html +1 -1
- package/dashboard/out/tokens.txt +23 -22
- package/dashboard/out/waste.html +1 -0
- package/dashboard/out/waste.txt +24 -0
- package/dashboard/out/wiki.html +1 -0
- package/dashboard/out/wiki.txt +24 -0
- package/dist/cli.js +1705 -892
- package/package.json +1 -1
- package/src/commands/skill.ts +16 -1
- package/src/core/daemon.ts +5 -3
- package/src/core/dashboard-api.ts +764 -1
- package/src/core/dashboard-server.ts +270 -0
- package/src/core/runtime.ts +7 -4
- package/src/core/vault.ts +4 -4
- package/src/types/config.ts +9 -1
- package/src/types/dashboard.ts +84 -1
- package/dashboard/out/_next/static/1wsj8DdMTS0IF2Rk9fkxV/_buildManifest.js +0 -1
- package/dashboard/out/_next/static/chunks/160-3e240a3c66269b3f.js +0 -1
- package/dashboard/out/_next/static/chunks/212-0f603e7affd3ee2a.js +0 -4
- package/dashboard/out/_next/static/chunks/255-b047925426c4e4ba.js +0 -1
- package/dashboard/out/_next/static/chunks/4bd1b696-409494caf8c83275.js +0 -1
- package/dashboard/out/_next/static/chunks/55-079130502e972d37.js +0 -1
- package/dashboard/out/_next/static/chunks/692-9c8d44014aa1813d.js +0 -1
- package/dashboard/out/_next/static/chunks/717-3d920b69f8c31178.js +0 -1
- package/dashboard/out/_next/static/chunks/752-8a8e79b1a2a3b489.js +0 -1
- package/dashboard/out/_next/static/chunks/83-ddf005b52ec7bd16.js +0 -1
- package/dashboard/out/_next/static/chunks/845-bed7bdd2fed7ff76.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/action-log/page-c52cf3851d9d92d5.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/activity/page-25a84ac9ddbbc077.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/bugs/page-7de0b71150a91377.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/design/page-a2153b4f18533187.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/file-index/page-b37bdd2344d3f81c.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/insights/page-b9cea601167e83d1.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/learning/page-faa4afcf1473c9e5.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/overview/page-354f274bc72789a8.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/scheduler/page-fc11b7fbbd04a4d7.js +0 -1
- package/dashboard/out/_next/static/chunks/app/(panels)/tokens/page-c08c102aa883500a.js +0 -1
- package/dashboard/out/_next/static/chunks/app/_not-found/page-88217a29323e3700.js +0 -1
- package/dashboard/out/_next/static/chunks/app/layout-93083f9f140da937.js +0 -1
- package/dashboard/out/_next/static/chunks/app/page-0e7a5cffcfa1d064.js +0 -1
- package/dashboard/out/_next/static/chunks/framework-1a308e28e19f1a97.js +0 -1
- package/dashboard/out/_next/static/chunks/main-7c6d83fa0f7c5e5b.js +0 -1
- package/dashboard/out/_next/static/chunks/main-app-2f83d483d67187ef.js +0 -1
- package/dashboard/out/_next/static/chunks/pages/_app-5addca2b3b969fde.js +0 -1
- package/dashboard/out/_next/static/chunks/pages/_error-022e4ac7bbb9914f.js +0 -1
- package/dashboard/out/_next/static/chunks/webpack-ee71d9ae9be3609d.js +0 -1
- package/dashboard/out/_next/static/css/cfd58816f9a2afb9.css +0 -1
- /package/dashboard/out/_next/static/{1wsj8DdMTS0IF2Rk9fkxV → FiL3S_40BA764FL66DRZV}/_ssgManifest.js +0 -0
|
@@ -14,6 +14,25 @@ import {
|
|
|
14
14
|
triggerTask,
|
|
15
15
|
triggerDeadLetterRetry,
|
|
16
16
|
triggerRescan,
|
|
17
|
+
triggerDaemonStart,
|
|
18
|
+
triggerDaemonStop,
|
|
19
|
+
triggerDaemonRestart,
|
|
20
|
+
loadConfigPanel,
|
|
21
|
+
triggerConfigSet,
|
|
22
|
+
triggerConfigReset,
|
|
23
|
+
loadSyncPanel,
|
|
24
|
+
triggerSyncPull,
|
|
25
|
+
triggerSyncPush,
|
|
26
|
+
triggerSyncDisconnect,
|
|
27
|
+
loadChannelPanel,
|
|
28
|
+
triggerChannelStart,
|
|
29
|
+
triggerChannelStop,
|
|
30
|
+
triggerChannelRestart,
|
|
31
|
+
loadWikiPanel,
|
|
32
|
+
loadWikiNote,
|
|
33
|
+
triggerCreateNote,
|
|
34
|
+
triggerAppendDaily,
|
|
35
|
+
triggerIngestFile,
|
|
17
36
|
} from "./dashboard-api";
|
|
18
37
|
import { listRegisteredProjects, getProjectMeta } from "./project-registry";
|
|
19
38
|
import { generateProjectId } from "./project-id";
|
|
@@ -410,6 +429,82 @@ export async function startDashboardServer(
|
|
|
410
429
|
return jsonResponse(getProjectsList(cwd, activeCwd));
|
|
411
430
|
}
|
|
412
431
|
|
|
432
|
+
// GET /api/config — global config (no project scoping)
|
|
433
|
+
if (pathname === "/api/config") {
|
|
434
|
+
try {
|
|
435
|
+
return jsonResponse(loadConfigPanel());
|
|
436
|
+
} catch (err) {
|
|
437
|
+
return jsonResponse(
|
|
438
|
+
{ error: err instanceof Error ? err.message : String(err) },
|
|
439
|
+
500,
|
|
440
|
+
);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// GET /api/sync — global sync status (no project scoping)
|
|
445
|
+
if (pathname === "/api/sync") {
|
|
446
|
+
try {
|
|
447
|
+
return jsonResponse(loadSyncPanel());
|
|
448
|
+
} catch (err) {
|
|
449
|
+
return jsonResponse(
|
|
450
|
+
{ error: err instanceof Error ? err.message : String(err) },
|
|
451
|
+
500,
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// GET /api/channel — global channel status + logs (no project scoping)
|
|
457
|
+
if (pathname === "/api/channel") {
|
|
458
|
+
try {
|
|
459
|
+
return jsonResponse(loadChannelPanel());
|
|
460
|
+
} catch (err) {
|
|
461
|
+
return jsonResponse(
|
|
462
|
+
{ error: err instanceof Error ? err.message : String(err) },
|
|
463
|
+
500,
|
|
464
|
+
);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// GET /api/wiki — global wiki vault summary (no project scoping)
|
|
469
|
+
if (pathname === "/api/wiki") {
|
|
470
|
+
try {
|
|
471
|
+
const limitRaw = url.searchParams.get("limit");
|
|
472
|
+
const categoryRaw = url.searchParams.get("category");
|
|
473
|
+
const limit = limitRaw ? Number(limitRaw) : undefined;
|
|
474
|
+
return jsonResponse(
|
|
475
|
+
loadWikiPanel({
|
|
476
|
+
limit: Number.isFinite(limit) ? limit : undefined,
|
|
477
|
+
category: (categoryRaw as "all" | undefined) ?? undefined,
|
|
478
|
+
}),
|
|
479
|
+
);
|
|
480
|
+
} catch (err) {
|
|
481
|
+
return jsonResponse(
|
|
482
|
+
{ error: err instanceof Error ? err.message : String(err) },
|
|
483
|
+
500,
|
|
484
|
+
);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
// GET /api/wiki/note — single note body with backlinks
|
|
489
|
+
if (pathname === "/api/wiki/note") {
|
|
490
|
+
try {
|
|
491
|
+
const notePath = url.searchParams.get("path");
|
|
492
|
+
if (!notePath) {
|
|
493
|
+
return jsonResponse({ error: "Missing path parameter" }, 400);
|
|
494
|
+
}
|
|
495
|
+
const note = loadWikiNote(notePath);
|
|
496
|
+
if (!note) {
|
|
497
|
+
return jsonResponse({ error: "Note not found" }, 404);
|
|
498
|
+
}
|
|
499
|
+
return jsonResponse(note);
|
|
500
|
+
} catch (err) {
|
|
501
|
+
return jsonResponse(
|
|
502
|
+
{ error: err instanceof Error ? err.message : String(err) },
|
|
503
|
+
500,
|
|
504
|
+
);
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
413
508
|
// Resolve project cwd from ?project=<id> query param
|
|
414
509
|
const resolvedCwd = resolveProjectCwd(url, activeCwd);
|
|
415
510
|
if (resolvedCwd === null) {
|
|
@@ -492,6 +587,181 @@ export async function startDashboardServer(
|
|
|
492
587
|
}
|
|
493
588
|
}
|
|
494
589
|
|
|
590
|
+
// POST /api/config/set — write a config value
|
|
591
|
+
if (pathname === "/api/config/set") {
|
|
592
|
+
try {
|
|
593
|
+
const body = (await req.json()) as {
|
|
594
|
+
key?: string;
|
|
595
|
+
value?: string;
|
|
596
|
+
};
|
|
597
|
+
if (!body.key || typeof body.value !== "string") {
|
|
598
|
+
return jsonResponse(
|
|
599
|
+
{ success: false, error: "Missing key or value" },
|
|
600
|
+
400,
|
|
601
|
+
);
|
|
602
|
+
}
|
|
603
|
+
const result = await triggerConfigSet(body.key, body.value);
|
|
604
|
+
if (result.success) {
|
|
605
|
+
sseManager.broadcast({
|
|
606
|
+
fileId: "config-changed" as StateFileId,
|
|
607
|
+
timestamp: new Date().toISOString(),
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
611
|
+
} catch (err) {
|
|
612
|
+
return jsonResponse(
|
|
613
|
+
{ success: false, error: err instanceof Error ? err.message : String(err) },
|
|
614
|
+
500,
|
|
615
|
+
);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
// POST /api/config/reset — clear one key (or all)
|
|
620
|
+
if (pathname === "/api/config/reset") {
|
|
621
|
+
try {
|
|
622
|
+
const body = (await req.json()) as { key?: string; all?: boolean };
|
|
623
|
+
const result = await triggerConfigReset(body.key, body.all);
|
|
624
|
+
if (result.success) {
|
|
625
|
+
sseManager.broadcast({
|
|
626
|
+
fileId: "config-changed" as StateFileId,
|
|
627
|
+
timestamp: new Date().toISOString(),
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
631
|
+
} catch (err) {
|
|
632
|
+
return jsonResponse(
|
|
633
|
+
{ success: false, error: err instanceof Error ? err.message : String(err) },
|
|
634
|
+
500,
|
|
635
|
+
);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
// Wiki writes — global (single user-level vault).
|
|
640
|
+
if (
|
|
641
|
+
pathname === "/api/wiki/notes" ||
|
|
642
|
+
pathname === "/api/wiki/daily" ||
|
|
643
|
+
pathname === "/api/wiki/ingest"
|
|
644
|
+
) {
|
|
645
|
+
const dedupKey = req.headers.get("X-Mink-Dedup-Key") ?? undefined;
|
|
646
|
+
try {
|
|
647
|
+
const body = (await req.json()) as Record<string, unknown>;
|
|
648
|
+
|
|
649
|
+
let action: Promise<
|
|
650
|
+
{ success: boolean; error?: string; filePath?: string }
|
|
651
|
+
>;
|
|
652
|
+
|
|
653
|
+
if (pathname === "/api/wiki/notes") {
|
|
654
|
+
const mode = body.mode === "structured" ? "structured" : "quick";
|
|
655
|
+
action = triggerCreateNote({
|
|
656
|
+
mode,
|
|
657
|
+
title: typeof body.title === "string" ? body.title : undefined,
|
|
658
|
+
category: typeof body.category === "string" ? body.category : undefined,
|
|
659
|
+
body: typeof body.body === "string" ? body.body : "",
|
|
660
|
+
tags: Array.isArray(body.tags) ? (body.tags as string[]) : undefined,
|
|
661
|
+
dedupKey,
|
|
662
|
+
});
|
|
663
|
+
} else if (pathname === "/api/wiki/daily") {
|
|
664
|
+
action = triggerAppendDaily(
|
|
665
|
+
typeof body.content === "string" ? body.content : "",
|
|
666
|
+
dedupKey,
|
|
667
|
+
);
|
|
668
|
+
} else {
|
|
669
|
+
action = triggerIngestFile(
|
|
670
|
+
typeof body.sourcePath === "string" ? body.sourcePath : "",
|
|
671
|
+
typeof body.category === "string" ? body.category : "inbox",
|
|
672
|
+
Array.isArray(body.tags) ? (body.tags as string[]) : undefined,
|
|
673
|
+
dedupKey,
|
|
674
|
+
);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
return action.then((result) => {
|
|
678
|
+
if (result.success) {
|
|
679
|
+
sseManager.broadcast({
|
|
680
|
+
fileId: "vault-index" as StateFileId,
|
|
681
|
+
timestamp: new Date().toISOString(),
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
685
|
+
});
|
|
686
|
+
} catch (err) {
|
|
687
|
+
return jsonResponse(
|
|
688
|
+
{ success: false, error: err instanceof Error ? err.message : String(err) },
|
|
689
|
+
500,
|
|
690
|
+
);
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
// Channel controls — global (screen session is per-vault, not per-project).
|
|
695
|
+
if (
|
|
696
|
+
pathname === "/api/channel/start" ||
|
|
697
|
+
pathname === "/api/channel/stop" ||
|
|
698
|
+
pathname === "/api/channel/restart"
|
|
699
|
+
) {
|
|
700
|
+
const action =
|
|
701
|
+
pathname === "/api/channel/start"
|
|
702
|
+
? triggerChannelStart()
|
|
703
|
+
: pathname === "/api/channel/stop"
|
|
704
|
+
? triggerChannelStop()
|
|
705
|
+
: triggerChannelRestart();
|
|
706
|
+
return action.then((result) => {
|
|
707
|
+
if (result.success) {
|
|
708
|
+
sseManager.broadcast({
|
|
709
|
+
fileId: "channel-status" as StateFileId,
|
|
710
|
+
timestamp: new Date().toISOString(),
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
// Sync controls — global (operate on ~/.mink/.git, not a project).
|
|
718
|
+
if (
|
|
719
|
+
pathname === "/api/sync/pull" ||
|
|
720
|
+
pathname === "/api/sync/push" ||
|
|
721
|
+
pathname === "/api/sync/disconnect"
|
|
722
|
+
) {
|
|
723
|
+
const action =
|
|
724
|
+
pathname === "/api/sync/pull"
|
|
725
|
+
? triggerSyncPull()
|
|
726
|
+
: pathname === "/api/sync/push"
|
|
727
|
+
? triggerSyncPush()
|
|
728
|
+
: triggerSyncDisconnect();
|
|
729
|
+
return action.then((result) => {
|
|
730
|
+
if (result.success) {
|
|
731
|
+
sseManager.broadcast({
|
|
732
|
+
fileId: "sync-status" as StateFileId,
|
|
733
|
+
timestamp: new Date().toISOString(),
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
737
|
+
});
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
// Daemon controls — global (operate on ~/.mink/ PID file, not a
|
|
741
|
+
// project state directory). Use activeCwd so the spawned daemon
|
|
742
|
+
// inherits the currently-active project.
|
|
743
|
+
if (
|
|
744
|
+
pathname === "/api/daemon/start" ||
|
|
745
|
+
pathname === "/api/daemon/stop" ||
|
|
746
|
+
pathname === "/api/daemon/restart"
|
|
747
|
+
) {
|
|
748
|
+
const action =
|
|
749
|
+
pathname === "/api/daemon/start"
|
|
750
|
+
? triggerDaemonStart(activeCwd)
|
|
751
|
+
: pathname === "/api/daemon/stop"
|
|
752
|
+
? triggerDaemonStop()
|
|
753
|
+
: triggerDaemonRestart(activeCwd);
|
|
754
|
+
return action.then((result) => {
|
|
755
|
+
if (result.success) {
|
|
756
|
+
sseManager.broadcast({
|
|
757
|
+
fileId: "daemon-status" as StateFileId,
|
|
758
|
+
timestamp: new Date().toISOString(),
|
|
759
|
+
});
|
|
760
|
+
}
|
|
761
|
+
return jsonResponse(result, result.success ? 200 : 500);
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
|
|
495
765
|
// Resolve project cwd for POST actions
|
|
496
766
|
const resolvedCwd = resolveProjectCwd(url, activeCwd);
|
|
497
767
|
if (resolvedCwd === null) {
|
package/src/core/runtime.ts
CHANGED
|
@@ -46,15 +46,18 @@ export function runtimeFile(path: string): RuntimeFile {
|
|
|
46
46
|
|
|
47
47
|
// ── Spawn helper ──────────────────────────────────────────────────────────
|
|
48
48
|
|
|
49
|
+
export type SpawnStdio = "ignore" | "pipe" | number;
|
|
50
|
+
|
|
49
51
|
export interface SpawnOptions {
|
|
50
52
|
cwd?: string;
|
|
51
53
|
env?: Record<string, string | undefined>;
|
|
52
|
-
stdout?:
|
|
53
|
-
stderr?:
|
|
54
|
+
stdout?: SpawnStdio;
|
|
55
|
+
stderr?: SpawnStdio;
|
|
54
56
|
stdin?: "ignore";
|
|
55
57
|
}
|
|
56
58
|
|
|
57
59
|
export interface SpawnedProcess {
|
|
60
|
+
pid: number;
|
|
58
61
|
unref(): void;
|
|
59
62
|
}
|
|
60
63
|
|
|
@@ -74,7 +77,7 @@ export function runtimeSpawn(
|
|
|
74
77
|
stderr: opts.stderr ?? "ignore",
|
|
75
78
|
stdin: opts.stdin ?? "ignore",
|
|
76
79
|
});
|
|
77
|
-
return { unref: () => proc.unref() };
|
|
80
|
+
return { pid: proc.pid, unref: () => proc.unref() };
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
const [bin, ...args] = cmd;
|
|
@@ -89,7 +92,7 @@ export function runtimeSpawn(
|
|
|
89
92
|
detached: true,
|
|
90
93
|
});
|
|
91
94
|
proc.unref();
|
|
92
|
-
return { unref: () => {} };
|
|
95
|
+
return { pid: proc.pid ?? -1, unref: () => {} };
|
|
93
96
|
}
|
|
94
97
|
|
|
95
98
|
// ── HTTP Server ───────────────────────────────────────────────────────────
|
package/src/core/vault.ts
CHANGED
|
@@ -11,10 +11,10 @@ const DEFAULT_VAULT_PATH = join(homedir(), ".mink", "wiki");
|
|
|
11
11
|
export function resolveVaultPath(): string {
|
|
12
12
|
const resolved = resolveConfigValue("wiki.path");
|
|
13
13
|
const raw = resolved.value;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return
|
|
14
|
+
// Normalize via path.resolve so downstream `slice(root.length + 1)` callers
|
|
15
|
+
// aren't fooled by a trailing slash (e.g. the default "~/.mink/wiki/").
|
|
16
|
+
const expanded = raw.startsWith("~/") ? join(homedir(), raw.slice(2)) : raw;
|
|
17
|
+
return resolve(expanded);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export function vaultRoot(): string {
|
package/src/types/config.ts
CHANGED
|
@@ -11,6 +11,7 @@ export interface GlobalConfig {
|
|
|
11
11
|
"sync.last-pull"?: string;
|
|
12
12
|
"channel.discord.bot-token"?: string;
|
|
13
13
|
"channel.discord.enabled"?: string;
|
|
14
|
+
"channel.discord.allowlist"?: string;
|
|
14
15
|
"channel.default-platform"?: string;
|
|
15
16
|
"channel.skip-permissions"?: string;
|
|
16
17
|
}
|
|
@@ -42,7 +43,7 @@ export interface DeviceRegistry {
|
|
|
42
43
|
export const CONFIG_KEYS: ConfigKeyMeta[] = [
|
|
43
44
|
{
|
|
44
45
|
key: "wiki.path",
|
|
45
|
-
default: "~/.mink/wiki
|
|
46
|
+
default: "~/.mink/wiki",
|
|
46
47
|
envVar: "MINK_WIKI_PATH",
|
|
47
48
|
description: "Wiki vault location",
|
|
48
49
|
scope: "local",
|
|
@@ -124,6 +125,13 @@ export const CONFIG_KEYS: ConfigKeyMeta[] = [
|
|
|
124
125
|
description: "Auto-start Discord channel when daemon starts",
|
|
125
126
|
scope: "local",
|
|
126
127
|
},
|
|
128
|
+
{
|
|
129
|
+
key: "channel.discord.allowlist",
|
|
130
|
+
default: "",
|
|
131
|
+
envVar: "MINK_CHANNEL_DISCORD_ALLOWLIST",
|
|
132
|
+
description: "Comma-separated list of Discord user IDs permitted to DM the bot",
|
|
133
|
+
scope: "local",
|
|
134
|
+
},
|
|
127
135
|
{
|
|
128
136
|
key: "channel.default-platform",
|
|
129
137
|
default: "discord",
|
package/src/types/dashboard.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { BugEntry } from "./bug-memory";
|
|
|
5
5
|
import type { LearningMemory } from "./learning-memory";
|
|
6
6
|
import type { ParsedSession } from "./action-log";
|
|
7
7
|
import type { TaskDefinition, TaskRunRecord, DeadLetterEntry } from "./scheduler";
|
|
8
|
+
import type { VaultIndexEntry } from "./note";
|
|
8
9
|
|
|
9
10
|
// ── State File Identifiers ─────────────────────────────────────────────────
|
|
10
11
|
|
|
@@ -18,7 +19,13 @@ export type StateFileId =
|
|
|
18
19
|
| "session"
|
|
19
20
|
| "project-meta"
|
|
20
21
|
| "design-report"
|
|
21
|
-
| "project-switched"
|
|
22
|
+
| "project-switched"
|
|
23
|
+
| "daemon-status"
|
|
24
|
+
| "config-changed"
|
|
25
|
+
| "sync-status"
|
|
26
|
+
| "channel-status"
|
|
27
|
+
| "channel-logs"
|
|
28
|
+
| "vault-index";
|
|
22
29
|
|
|
23
30
|
// ── SSE Event ──────────────────────────────────────────────────────────────
|
|
24
31
|
|
|
@@ -102,3 +109,79 @@ export interface DesignImagePayload {
|
|
|
102
109
|
export interface DesignPayload {
|
|
103
110
|
images: DesignImagePayload[];
|
|
104
111
|
}
|
|
112
|
+
|
|
113
|
+
export type ConfigValueSource = "default" | "shared" | "local" | "env";
|
|
114
|
+
export type ConfigValueType = "string" | "boolean" | "number";
|
|
115
|
+
|
|
116
|
+
export interface ConfigEntry {
|
|
117
|
+
key: string;
|
|
118
|
+
value: string;
|
|
119
|
+
source: ConfigValueSource;
|
|
120
|
+
type: ConfigValueType;
|
|
121
|
+
group: string;
|
|
122
|
+
scope: "shared" | "local";
|
|
123
|
+
description: string;
|
|
124
|
+
isSecret: boolean;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export interface ConfigPanelPayload {
|
|
128
|
+
entries: ConfigEntry[];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface SyncPendingChange {
|
|
132
|
+
op: "A" | "M" | "D" | "?";
|
|
133
|
+
file: string;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface SyncPanelPayload {
|
|
137
|
+
initialized: boolean;
|
|
138
|
+
enabled: boolean;
|
|
139
|
+
branch: string;
|
|
140
|
+
remote: string;
|
|
141
|
+
ahead: number;
|
|
142
|
+
behind: number;
|
|
143
|
+
lastPush: string;
|
|
144
|
+
lastPull: string;
|
|
145
|
+
pending: SyncPendingChange[];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export interface ChannelLogLine {
|
|
149
|
+
t: string;
|
|
150
|
+
m: string;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
export interface ChannelPanelPayload {
|
|
154
|
+
status: "running" | "stopped";
|
|
155
|
+
platform: "discord" | "telegram" | null;
|
|
156
|
+
session: string;
|
|
157
|
+
startedAt: string;
|
|
158
|
+
uptimeSec: number;
|
|
159
|
+
autoStart: boolean;
|
|
160
|
+
tokenMasked: string;
|
|
161
|
+
allowlist: string[];
|
|
162
|
+
logs: ChannelLogLine[];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface WikiTreeNode {
|
|
166
|
+
name: string;
|
|
167
|
+
path: string;
|
|
168
|
+
count: number;
|
|
169
|
+
depth: number;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
export interface WikiPanelPayload {
|
|
173
|
+
initialized: boolean;
|
|
174
|
+
vaultPath: string;
|
|
175
|
+
totalNotes: number;
|
|
176
|
+
inboxCount: number;
|
|
177
|
+
recent: VaultIndexEntry[];
|
|
178
|
+
tags: Array<[string, number]>;
|
|
179
|
+
tree: WikiTreeNode[];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface WikiNotePayload {
|
|
183
|
+
path: string;
|
|
184
|
+
frontmatter: Record<string, unknown>;
|
|
185
|
+
body: string;
|
|
186
|
+
backlinks: Array<{ path: string; title: string }>;
|
|
187
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST=function(e,r,t,s){return{__rewrites:{afterFiles:[{has:t,source:"/api/:path*",destination:t}],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:12,errorRate:1e-4,numBits:231,numHashes:14,bitArray:[1,1,0,e,0,e,e,r,r,e,r,e,r,r,r,r,e,r,r,r,r,r,e,r,e,e,r,e,e,r,r,r,e,r,e,r,r,e,r,e,e,e,e,e,e,e,e,e,e,e,e,r,e,r,r,e,r,r,e,e,r,r,r,r,r,r,e,e,e,e,e,e,r,r,e,r,e,e,e,e,r,e,e,r,r,r,e,r,e,r,e,r,r,e,e,e,r,e,e,e,r,r,r,e,r,e,r,r,e,r,r,e,e,r,r,e,e,e,e,e,r,r,r,r,r,r,r,e,r,e,r,e,r,r,e,r,r,e,e,e,e,e,e,e,e,e,e,r,e,r,r,r,r,r,e,e,r,e,e,e,r,e,e,e,r,e,e,e,e,r,e,e,e,e,e,r,r,e,e,e,r,e,e,e,e,e,e,r,e,r,e,e,e,r,r,r,r,r,r,e,e,r,r,e,e,r,r,e,e,e,r,e,e,r,r,e,e,e,r,r,r,r,r,r,r,r,e,r,r,e,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:r,numHashes:null,bitArray:[]},"/_error":["static/chunks/pages/_error-022e4ac7bbb9914f.js"],sortedPages:["/_app","/_error"]}}(1,0,void 0,1e-4),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[160],{2821:(e,r,o)=>{o.d(r,{$:()=>t});function t(){for(var e,r,o=0,t="",l=arguments.length;o<l;o++)(e=arguments[o])&&(r=function e(r){var o,t,l="";if("string"==typeof r||"number"==typeof r)l+=r;else if("object"==typeof r)if(Array.isArray(r)){var n=r.length;for(o=0;o<n;o++)r[o]&&(t=e(r[o]))&&(l&&(l+=" "),l+=t)}else for(t in r)r[t]&&(l&&(l+=" "),l+=t);return l}(e))&&(t&&(t+=" "),t+=r);return t}},25959:(e,r,o)=>{o.d(r,{v:()=>a});var t=o(12115);let l=e=>{let r,o=new Set,t=(e,t)=>{let l="function"==typeof e?e(r):e;if(!Object.is(l,r)){let e=r;r=(null!=t?t:"object"!=typeof l||null===l)?l:Object.assign({},r,l),o.forEach(o=>o(r,e))}},l=()=>r,n={setState:t,getState:l,getInitialState:()=>a,subscribe:e=>(o.add(e),()=>o.delete(e))},a=r=e(t,l,n);return n},n=e=>{let r=(e=>e?l(e):l)(e),o=e=>(function(e,r=e=>e){let o=t.useSyncExternalStore(e.subscribe,t.useCallback(()=>r(e.getState()),[e,r]),t.useCallback(()=>r(e.getInitialState()),[e,r]));return t.useDebugValue(o),o})(r,e);return Object.assign(o,r),o},a=e=>e?n(e):n},70814:(e,r,o)=>{o.d(r,{A:()=>d});var t=o(12115);let l=function(){for(var e=arguments.length,r=Array(e),o=0;o<e;o++)r[o]=arguments[o];return r.filter((e,r,o)=>!!e&&""!==e.trim()&&o.indexOf(e)===r).join(" ").trim()},n=e=>{let r=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase());return r.charAt(0).toUpperCase()+r.slice(1)};var a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,t.createContext)({}),i=(0,t.forwardRef)((e,r)=>{var o,n,i;let{color:d,size:c,strokeWidth:m,absoluteStrokeWidth:p,className:b="",children:u,iconNode:f,...g}=e,{size:h=24,strokeWidth:k=2,absoluteStrokeWidth:w=!1,color:x="currentColor",className:v=""}=null!=(o=(0,t.useContext)(s))?o:{},y=(null!=p?p:w)?24*Number(null!=m?m:k)/Number(null!=c?c:h):null!=m?m:k;return(0,t.createElement)("svg",{ref:r,...a,width:null!=(n=null!=c?c:h)?n:a.width,height:null!=(i=null!=c?c:h)?i:a.height,stroke:null!=d?d:x,strokeWidth:y,className:l("lucide",v,b),...!u&&!(e=>{for(let r in e)if(r.startsWith("aria-")||"role"===r||"title"===r)return!0;return!1})(g)&&{"aria-hidden":"true"},...g},[...f.map(e=>{let[r,o]=e;return(0,t.createElement)(r,o)}),...Array.isArray(u)?u:[u]])}),d=(e,r)=>{let o=(0,t.forwardRef)((o,a)=>{let{className:s,...d}=o;return(0,t.createElement)(i,{ref:a,iconNode:r,className:l("lucide-".concat(n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),"lucide-".concat(e),s),...d})});return o.displayName=n(e),o}},75889:(e,r,o)=>{o.d(r,{QP:()=>ep});let t=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),l=[],n=(e,r,o)=>{if(0==e.length-r)return o.classGroupId;let t=e[r],l=o.nextPart.get(t);if(l){let o=n(e,r+1,l);if(o)return o}let a=o.validators;if(null===a)return;let s=0===r?e.join("-"):e.slice(r).join("-"),i=a.length;for(let e=0;e<i;e++){let r=a[e];if(r.validator(s))return r.classGroupId}},a=(e,r)=>{let o=t();for(let t in e)s(e[t],o,t,r);return o},s=(e,r,o,t)=>{let l=e.length;for(let n=0;n<l;n++)i(e[n],r,o,t)},i=(e,r,o,t)=>"string"==typeof e?void d(e,r,o):"function"==typeof e?void c(e,r,o,t):void m(e,r,o,t),d=(e,r,o)=>{(""===e?r:p(r,e)).classGroupId=o},c=(e,r,o,t)=>{if(b(e))return void s(e(t),r,o,t);null===r.validators&&(r.validators=[]),r.validators.push({classGroupId:o,validator:e})},m=(e,r,o,t)=>{let l=Object.entries(e),n=l.length;for(let e=0;e<n;e++){let[n,a]=l[e];s(a,p(r,n),o,t)}},p=(e,r)=>{let o=e,l=r.split("-"),n=l.length;for(let e=0;e<n;e++){let r=l[e],n=o.nextPart.get(r);n||(n=t(),o.nextPart.set(r,n)),o=n}return o},b=e=>"isThemeGetter"in e&&!0===e.isThemeGetter,u=[],f=(e,r,o,t,l)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:l}),g=/\s+/,h=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t<e.length;t++)e[t]&&(r=h(e[t]))&&(o&&(o+=" "),o+=r);return o},k=[],w=e=>{let r=r=>r[e]||k;return r.isThemeGetter=!0,r},x=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,v=/^\((?:(\w[\w-]*):)?(.+)\)$/i,y=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,z=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,j=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,C=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,N=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,S=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,G=e=>y.test(e),O=e=>!!e&&!Number.isNaN(Number(e)),W=e=>!!e&&Number.isInteger(Number(e)),A=e=>e.endsWith("%")&&O(e.slice(0,-1)),$=e=>z.test(e),I=()=>!0,E=e=>j.test(e)&&!C.test(e),_=()=>!1,M=e=>N.test(e),L=e=>S.test(e),P=e=>!q(e)&&!F(e),T=e=>eo(e,ea,_),q=e=>x.test(e),R=e=>eo(e,es,E),U=e=>eo(e,ei,O),Z=e=>eo(e,ec,I),B=e=>eo(e,ed,_),D=e=>eo(e,el,_),Q=e=>eo(e,en,L),V=e=>eo(e,em,M),F=e=>v.test(e),H=e=>et(e,es),J=e=>et(e,ed),K=e=>et(e,el),X=e=>et(e,ea),Y=e=>et(e,en),ee=e=>et(e,em,!0),er=e=>et(e,ec,!0),eo=(e,r,o)=>{let t=x.exec(e);return!!t&&(t[1]?r(t[1]):o(t[2]))},et=(e,r,o=!1)=>{let t=v.exec(e);return!!t&&(t[1]?r(t[1]):o)},el=e=>"position"===e||"percentage"===e,en=e=>"image"===e||"url"===e,ea=e=>"length"===e||"size"===e||"bg-size"===e,es=e=>"length"===e,ei=e=>"number"===e,ed=e=>"family-name"===e,ec=e=>"number"===e||"weight"===e,em=e=>"shadow"===e;Symbol.toStringTag;let ep=((e,...r)=>{let o,t,s,i,d=e=>{let r=t(e);if(r)return r;let l=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:l,sortModifiers:n}=r,a=[],s=e.trim().split(g),i="";for(let e=s.length-1;e>=0;e-=1){let r=s[e],{isExternal:d,modifiers:c,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:b}=o(r);if(d){i=r+(i.length>0?" "+i:i);continue}let u=!!b,f=t(u?p.substring(0,b):p);if(!f){if(!u||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}u=!1}let g=0===c.length?"":1===c.length?c[0]:n(c).join(":"),h=m?g+"!":g,k=h+f;if(a.indexOf(k)>-1)continue;a.push(k);let w=l(f,u);for(let e=0;e<w.length;++e){let r=w[e];a.push(h+r)}i=r+(i.length>0?" "+i:i)}return i})(e,o);return s(e,l),l};return i=c=>(t=(o=(e=>({cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),l=(l,n)=>{o[l]=n,++r>e&&(r=0,t=o,o=Object.create(null))};return{get(e){let r=o[e];return void 0!==r?r:void 0!==(r=t[e])?(l(e,r),r):void 0},set(e,r){e in o?o[e]=r:l(e,r)}}})(e.cacheSize),parseClassName:(e=>{let{prefix:r,experimentalParseClassName:o}=e,t=e=>{let r,o=[],t=0,l=0,n=0,a=e.length;for(let s=0;s<a;s++){let a=e[s];if(0===t&&0===l){if(":"===a){o.push(e.slice(n,s)),n=s+1;continue}if("/"===a){r=s;continue}}"["===a?t++:"]"===a?t--:"("===a?l++:")"===a&&l--}let s=0===o.length?e:e.slice(n),i=s,d=!1;return s.endsWith("!")?(i=s.slice(0,-1),d=!0):s.startsWith("!")&&(i=s.slice(1),d=!0),f(o,d,i,r&&r>n?r-n:void 0)};if(r){let e=r+":",o=t;t=r=>r.startsWith(e)?o(r.slice(e.length)):f(u,!1,r,void 0,!0)}if(o){let e=t;t=r=>o({className:r,parseClassName:e})}return t})(e),sortModifiers:(e=>{let r=new Map;return e.orderSensitiveModifiers.forEach((e,o)=>{r.set(e,1e6+o)}),e=>{let o=[],t=[];for(let l=0;l<e.length;l++){let n=e[l],a="["===n[0],s=r.has(n);a||s?(t.length>0&&(t.sort(),o.push(...t),t=[]),o.push(n)):t.push(n)}return t.length>0&&(t.sort(),o.push(...t)),o}})(e),...(e=>{let r=(e=>{let{theme:r,classGroups:o}=e;return a(o,r)})(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]"))return(e=>-1===e.slice(1,-1).indexOf(":")?void 0:(()=>{let r=e.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?"arbitrary.."+t:void 0})())(e);let o=e.split("-"),t=+(""===o[0]&&o.length>1);return n(o,t,r)},getConflictingClassGroupIds:(e,r)=>{if(r){let r=t[e],n=o[e];return r?n?((e,r)=>{let o=Array(e.length+r.length);for(let r=0;r<e.length;r++)o[r]=e[r];for(let t=0;t<r.length;t++)o[e.length+t]=r[t];return o})(n,r):r:n||l}return o[e]||l}}})(e)}))(r.reduce((e,r)=>r(e),e()))).cache.get,s=o.cache.set,i=d,d(c)),(...e)=>i(((...e)=>{let r,o,t=0,l="";for(;t<e.length;)(r=e[t++])&&(o=h(r))&&(l&&(l+=" "),l+=o);return l})(...e))})(()=>{let e=w("color"),r=w("font"),o=w("text"),t=w("font-weight"),l=w("tracking"),n=w("leading"),a=w("breakpoint"),s=w("container"),i=w("spacing"),d=w("radius"),c=w("shadow"),m=w("inset-shadow"),p=w("text-shadow"),b=w("drop-shadow"),u=w("blur"),f=w("perspective"),g=w("aspect"),h=w("ease"),k=w("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],y=()=>[...v(),F,q],z=()=>["auto","hidden","clip","visible","scroll"],j=()=>["auto","contain","none"],C=()=>[F,q,i],N=()=>[G,"full","auto",...C()],S=()=>[W,"none","subgrid",F,q],E=()=>["auto",{span:["full",W,F,q]},W,F,q],_=()=>[W,"auto",F,q],M=()=>["auto","min","max","fr",F,q],L=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],eo=()=>["start","end","center","stretch","center-safe","end-safe"],et=()=>["auto",...C()],el=()=>[G,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],en=()=>[G,"screen","full","dvw","lvw","svw","min","max","fit",...C()],ea=()=>[G,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],es=()=>[e,F,q],ei=()=>[...v(),K,D,{position:[F,q]}],ed=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ec=()=>["auto","cover","contain",X,T,{size:[F,q]}],em=()=>[A,H,R],ep=()=>["","none","full",d,F,q],eb=()=>["",O,H,R],eu=()=>["solid","dashed","dotted","double"],ef=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],eg=()=>[O,A,K,D],eh=()=>["","none",u,F,q],ek=()=>["none",O,F,q],ew=()=>["none",O,F,q],ex=()=>[O,F,q],ev=()=>[G,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[$],breakpoint:[$],color:[I],container:[$],"drop-shadow":[$],ease:["in","out","in-out"],font:[P],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[$],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[$],shadow:[$],spacing:["px",O],text:[$],"text-shadow":[$],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",G,q,F,g]}],container:["container"],columns:[{columns:[O,q,F,s]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:y()}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:j()}],"overscroll-x":[{"overscroll-x":j()}],"overscroll-y":[{"overscroll-y":j()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:N()}],"inset-x":[{"inset-x":N()}],"inset-y":[{"inset-y":N()}],start:[{"inset-s":N(),start:N()}],end:[{"inset-e":N(),end:N()}],"inset-bs":[{"inset-bs":N()}],"inset-be":[{"inset-be":N()}],top:[{top:N()}],right:[{right:N()}],bottom:[{bottom:N()}],left:[{left:N()}],visibility:["visible","invisible","collapse"],z:[{z:[W,"auto",F,q]}],basis:[{basis:[G,"full","auto",s,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[O,G,"auto","initial","none",q]}],grow:[{grow:["",O,F,q]}],shrink:[{shrink:["",O,F,q]}],order:[{order:[W,"first","last","none",F,q]}],"grid-cols":[{"grid-cols":S()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":S()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...L(),"normal"]}],"justify-items":[{"justify-items":[...eo(),"normal"]}],"justify-self":[{"justify-self":["auto",...eo()]}],"align-content":[{content:["normal",...L()]}],"align-items":[{items:[...eo(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...eo(),{baseline:["","last"]}]}],"place-content":[{"place-content":L()}],"place-items":[{"place-items":[...eo(),"baseline"]}],"place-self":[{"place-self":["auto",...eo()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:et()}],mx:[{mx:et()}],my:[{my:et()}],ms:[{ms:et()}],me:[{me:et()}],mbs:[{mbs:et()}],mbe:[{mbe:et()}],mt:[{mt:et()}],mr:[{mr:et()}],mb:[{mb:et()}],ml:[{ml:et()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:el()}],"inline-size":[{inline:["auto",...en()]}],"min-inline-size":[{"min-inline":["auto",...en()]}],"max-inline-size":[{"max-inline":["none",...en()]}],"block-size":[{block:["auto",...ea()]}],"min-block-size":[{"min-block":["auto",...ea()]}],"max-block-size":[{"max-block":["none",...ea()]}],w:[{w:[s,"screen",...el()]}],"min-w":[{"min-w":[s,"screen","none",...el()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[a]},...el()]}],h:[{h:["screen","lh",...el()]}],"min-h":[{"min-h":["screen","lh","none",...el()]}],"max-h":[{"max-h":["screen","lh",...el()]}],"font-size":[{text:["base",o,H,R]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,er,Z]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",A,q]}],"font-family":[{font:[J,B,r]}],"font-features":[{"font-features":[q]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,F,q]}],"line-clamp":[{"line-clamp":[O,"none",F,U]}],leading:[{leading:[n,...C()]}],"list-image":[{"list-image":["none",F,q]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",F,q]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:es()}],"text-color":[{text:es()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...eu(),"wavy"]}],"text-decoration-thickness":[{decoration:[O,"from-font","auto",F,R]}],"text-decoration-color":[{decoration:es()}],"underline-offset":[{"underline-offset":[O,"auto",F,q]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",F,q]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",F,q]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ei()}],"bg-repeat":[{bg:ed()}],"bg-size":[{bg:ec()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},W,F,q],radial:["",F,q],conic:[W,F,q]},Y,Q]}],"bg-color":[{bg:es()}],"gradient-from-pos":[{from:em()}],"gradient-via-pos":[{via:em()}],"gradient-to-pos":[{to:em()}],"gradient-from":[{from:es()}],"gradient-via":[{via:es()}],"gradient-to":[{to:es()}],rounded:[{rounded:ep()}],"rounded-s":[{"rounded-s":ep()}],"rounded-e":[{"rounded-e":ep()}],"rounded-t":[{"rounded-t":ep()}],"rounded-r":[{"rounded-r":ep()}],"rounded-b":[{"rounded-b":ep()}],"rounded-l":[{"rounded-l":ep()}],"rounded-ss":[{"rounded-ss":ep()}],"rounded-se":[{"rounded-se":ep()}],"rounded-ee":[{"rounded-ee":ep()}],"rounded-es":[{"rounded-es":ep()}],"rounded-tl":[{"rounded-tl":ep()}],"rounded-tr":[{"rounded-tr":ep()}],"rounded-br":[{"rounded-br":ep()}],"rounded-bl":[{"rounded-bl":ep()}],"border-w":[{border:eb()}],"border-w-x":[{"border-x":eb()}],"border-w-y":[{"border-y":eb()}],"border-w-s":[{"border-s":eb()}],"border-w-e":[{"border-e":eb()}],"border-w-bs":[{"border-bs":eb()}],"border-w-be":[{"border-be":eb()}],"border-w-t":[{"border-t":eb()}],"border-w-r":[{"border-r":eb()}],"border-w-b":[{"border-b":eb()}],"border-w-l":[{"border-l":eb()}],"divide-x":[{"divide-x":eb()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":eb()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...eu(),"hidden","none"]}],"divide-style":[{divide:[...eu(),"hidden","none"]}],"border-color":[{border:es()}],"border-color-x":[{"border-x":es()}],"border-color-y":[{"border-y":es()}],"border-color-s":[{"border-s":es()}],"border-color-e":[{"border-e":es()}],"border-color-bs":[{"border-bs":es()}],"border-color-be":[{"border-be":es()}],"border-color-t":[{"border-t":es()}],"border-color-r":[{"border-r":es()}],"border-color-b":[{"border-b":es()}],"border-color-l":[{"border-l":es()}],"divide-color":[{divide:es()}],"outline-style":[{outline:[...eu(),"none","hidden"]}],"outline-offset":[{"outline-offset":[O,F,q]}],"outline-w":[{outline:["",O,H,R]}],"outline-color":[{outline:es()}],shadow:[{shadow:["","none",c,ee,V]}],"shadow-color":[{shadow:es()}],"inset-shadow":[{"inset-shadow":["none",m,ee,V]}],"inset-shadow-color":[{"inset-shadow":es()}],"ring-w":[{ring:eb()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:es()}],"ring-offset-w":[{"ring-offset":[O,R]}],"ring-offset-color":[{"ring-offset":es()}],"inset-ring-w":[{"inset-ring":eb()}],"inset-ring-color":[{"inset-ring":es()}],"text-shadow":[{"text-shadow":["none",p,ee,V]}],"text-shadow-color":[{"text-shadow":es()}],opacity:[{opacity:[O,F,q]}],"mix-blend":[{"mix-blend":[...ef(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ef()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[O]}],"mask-image-linear-from-pos":[{"mask-linear-from":eg()}],"mask-image-linear-to-pos":[{"mask-linear-to":eg()}],"mask-image-linear-from-color":[{"mask-linear-from":es()}],"mask-image-linear-to-color":[{"mask-linear-to":es()}],"mask-image-t-from-pos":[{"mask-t-from":eg()}],"mask-image-t-to-pos":[{"mask-t-to":eg()}],"mask-image-t-from-color":[{"mask-t-from":es()}],"mask-image-t-to-color":[{"mask-t-to":es()}],"mask-image-r-from-pos":[{"mask-r-from":eg()}],"mask-image-r-to-pos":[{"mask-r-to":eg()}],"mask-image-r-from-color":[{"mask-r-from":es()}],"mask-image-r-to-color":[{"mask-r-to":es()}],"mask-image-b-from-pos":[{"mask-b-from":eg()}],"mask-image-b-to-pos":[{"mask-b-to":eg()}],"mask-image-b-from-color":[{"mask-b-from":es()}],"mask-image-b-to-color":[{"mask-b-to":es()}],"mask-image-l-from-pos":[{"mask-l-from":eg()}],"mask-image-l-to-pos":[{"mask-l-to":eg()}],"mask-image-l-from-color":[{"mask-l-from":es()}],"mask-image-l-to-color":[{"mask-l-to":es()}],"mask-image-x-from-pos":[{"mask-x-from":eg()}],"mask-image-x-to-pos":[{"mask-x-to":eg()}],"mask-image-x-from-color":[{"mask-x-from":es()}],"mask-image-x-to-color":[{"mask-x-to":es()}],"mask-image-y-from-pos":[{"mask-y-from":eg()}],"mask-image-y-to-pos":[{"mask-y-to":eg()}],"mask-image-y-from-color":[{"mask-y-from":es()}],"mask-image-y-to-color":[{"mask-y-to":es()}],"mask-image-radial":[{"mask-radial":[F,q]}],"mask-image-radial-from-pos":[{"mask-radial-from":eg()}],"mask-image-radial-to-pos":[{"mask-radial-to":eg()}],"mask-image-radial-from-color":[{"mask-radial-from":es()}],"mask-image-radial-to-color":[{"mask-radial-to":es()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":v()}],"mask-image-conic-pos":[{"mask-conic":[O]}],"mask-image-conic-from-pos":[{"mask-conic-from":eg()}],"mask-image-conic-to-pos":[{"mask-conic-to":eg()}],"mask-image-conic-from-color":[{"mask-conic-from":es()}],"mask-image-conic-to-color":[{"mask-conic-to":es()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ei()}],"mask-repeat":[{mask:ed()}],"mask-size":[{mask:ec()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",F,q]}],filter:[{filter:["","none",F,q]}],blur:[{blur:eh()}],brightness:[{brightness:[O,F,q]}],contrast:[{contrast:[O,F,q]}],"drop-shadow":[{"drop-shadow":["","none",b,ee,V]}],"drop-shadow-color":[{"drop-shadow":es()}],grayscale:[{grayscale:["",O,F,q]}],"hue-rotate":[{"hue-rotate":[O,F,q]}],invert:[{invert:["",O,F,q]}],saturate:[{saturate:[O,F,q]}],sepia:[{sepia:["",O,F,q]}],"backdrop-filter":[{"backdrop-filter":["","none",F,q]}],"backdrop-blur":[{"backdrop-blur":eh()}],"backdrop-brightness":[{"backdrop-brightness":[O,F,q]}],"backdrop-contrast":[{"backdrop-contrast":[O,F,q]}],"backdrop-grayscale":[{"backdrop-grayscale":["",O,F,q]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[O,F,q]}],"backdrop-invert":[{"backdrop-invert":["",O,F,q]}],"backdrop-opacity":[{"backdrop-opacity":[O,F,q]}],"backdrop-saturate":[{"backdrop-saturate":[O,F,q]}],"backdrop-sepia":[{"backdrop-sepia":["",O,F,q]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",F,q]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[O,"initial",F,q]}],ease:[{ease:["linear","initial",h,F,q]}],delay:[{delay:[O,F,q]}],animate:[{animate:["none",k,F,q]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,F,q]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:ek()}],"rotate-x":[{"rotate-x":ek()}],"rotate-y":[{"rotate-y":ek()}],"rotate-z":[{"rotate-z":ek()}],scale:[{scale:ew()}],"scale-x":[{"scale-x":ew()}],"scale-y":[{"scale-y":ew()}],"scale-z":[{"scale-z":ew()}],"scale-3d":["scale-3d"],skew:[{skew:ex()}],"skew-x":[{"skew-x":ex()}],"skew-y":[{"skew-y":ex()}],transform:[{transform:[F,q,"","none","gpu","cpu"]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ev()}],"translate-x":[{"translate-x":ev()}],"translate-y":[{"translate-y":ev()}],"translate-z":[{"translate-z":ev()}],"translate-none":["translate-none"],accent:[{accent:es()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:es()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",F,q]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",F,q]}],fill:[{fill:["none",...es()]}],"stroke-w":[{stroke:[O,H,R,U]}],stroke:[{stroke:["none",...es()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}})}}]);
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[212],{32467:(e,t,s)=>{s.d(t,{TL:()=>r,bL:()=>o});var i=s(12115),n=s(94446),l=s(95155);function r(e){let t=function(e){let t=i.forwardRef((e,t)=>{let{children:s,...l}=e;if(i.isValidElement(s)){var r;let e,o,a=(r=s,(o=(e=Object.getOwnPropertyDescriptor(r.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.ref:(o=(e=Object.getOwnPropertyDescriptor(r,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?r.props.ref:r.props.ref||r.ref),h=function(e,t){let s={...t};for(let i in t){let n=e[i],l=t[i];/^on[A-Z]/.test(i)?n&&l?s[i]=(...e)=>{let t=l(...e);return n(...e),t}:n&&(s[i]=n):"style"===i?s[i]={...n,...l}:"className"===i&&(s[i]=[n,l].filter(Boolean).join(" "))}return{...e,...s}}(l,s.props);return s.type!==i.Fragment&&(h.ref=t?(0,n.t)(t,a):a),i.cloneElement(s,h)}return i.Children.count(s)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}(e),s=i.forwardRef((e,s)=>{let{children:n,...r}=e,o=i.Children.toArray(n),a=o.find(h);if(a){let e=a.props.children,n=o.map(t=>t!==a?t:i.Children.count(e)>1?i.Children.only(null):i.isValidElement(e)?e.props.children:null);return(0,l.jsx)(t,{...r,ref:s,children:i.isValidElement(e)?i.cloneElement(e,void 0,n):null})}return(0,l.jsx)(t,{...r,ref:s,children:n})});return s.displayName=`${e}.Slot`,s}var o=r("Slot"),a=Symbol("radix.slottable");function h(e){return i.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===a}},46074:(e,t,s)=>{s.d(t,{Te:()=>b});var i=s(12115),n=s(47650);function l(e,t,s){let i,n=s.initialDeps??[],l=!0;function r(){var r,o,a;let h,u;s.key&&(null==(r=s.debug)?void 0:r.call(s))&&(h=Date.now());let c=e();if(!(c.length!==n.length||c.some((e,t)=>n[t]!==e)))return i;if(n=c,s.key&&(null==(o=s.debug)?void 0:o.call(s))&&(u=Date.now()),i=t(...c),s.key&&(null==(a=s.debug)?void 0:a.call(s))){let e=Math.round((Date.now()-h)*100)/100,t=Math.round((Date.now()-u)*100)/100,i=t/16,n=(e,t)=>{for(e=String(e);e.length<t;)e=" "+e;return e};console.info(`%c⏱ ${n(t,5)} /${n(e,5)} ms`,`
|
|
2
|
-
font-size: .6rem;
|
|
3
|
-
font-weight: bold;
|
|
4
|
-
color: hsl(${Math.max(0,Math.min(120-120*i,120))}deg 100% 31%);`,null==s?void 0:s.key)}return(null==s?void 0:s.onChange)&&!(l&&s.skipInitialOnChange)&&s.onChange(i),l=!1,i}return r.updateDeps=e=>{n=e},r}function r(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}let o=e=>{let{offsetWidth:t,offsetHeight:s}=e;return{width:t,height:s}},a=e=>e,h=e=>{let t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let e=t;e<=s;e++)i.push(e);return i},u=(e,t)=>{let s=e.scrollElement;if(!s)return;let i=e.targetWindow;if(!i)return;let n=e=>{let{width:s,height:i}=e;t({width:Math.round(s),height:Math.round(i)})};if(n(o(s)),!i.ResizeObserver)return()=>{};let l=new i.ResizeObserver(t=>{let i=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void n({width:t.inlineSize,height:t.blockSize})}n(o(s))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return l.observe(s,{box:"border-box"}),()=>{l.unobserve(s)}},c={passive:!0},d="undefined"==typeof window||"onscrollend"in window,f=(e,t)=>{let s=e.scrollElement;if(!s)return;let i=e.targetWindow;if(!i)return;let n=0,l=e.options.useScrollendEvent&&d?()=>void 0:((e,t,s)=>{let i;return function(...n){e.clearTimeout(i),i=e.setTimeout(()=>t.apply(this,n),s)}})(i,()=>{t(n,!1)},e.options.isScrollingResetDelay),r=i=>()=>{let{horizontal:r,isRtl:o}=e.options;n=r?s.scrollLeft*(o&&-1||1):s.scrollTop,l(),t(n,i)},o=r(!0),a=r(!1);s.addEventListener("scroll",o,c);let h=e.options.useScrollendEvent&&d;return h&&s.addEventListener("scrollend",a,c),()=>{s.removeEventListener("scroll",o),h&&s.removeEventListener("scrollend",a)}},g=(e,t,s)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},m=(e,{adjustments:t=0,behavior:s},i)=>{var n,l;null==(l=null==(n=i.scrollElement)?void 0:n.scrollTo)||l.call(n,{[i.options.horizontal?"left":"top"]:e+t,behavior:s})};class p{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e,t,s;return(null==(s=null==(t=null==(e=this.targetWindow)?void 0:e.performance)?void 0:t.now)?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,s=this.indexFromElement(t);if(!t.isConnected)return void this.observer.unobserve(t);this.shouldMeasureDuringScroll(s)&&this.resizeItem(s,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var s;null==(s=t())||s.disconnect(),e=null},observe:e=>{var s;return null==(s=t())?void 0:s.observe(e,{box:"border-box"})},unobserve:e=>{var s;return null==(s=t())?void 0:s.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{void 0===s&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:a,rangeExtractor:h,onChange:()=>{},measureElement:g,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=l(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),null!=this.rafId&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()<e?"forward":"backward":null,this.scrollOffset=e,this.isScrolling=t,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let s=new Map,i=new Map;for(let n=t-1;n>=0;n--){let t=e[n];if(s.has(t.lane))continue;let l=i.get(t.lane);if(null==l||t.end>l.end?i.set(t.lane,t):t.end<l.end&&s.set(t.lane,!0),s.size===this.options.lanes)break}return i.size===this.options.lanes?Array.from(i.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=l(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes],(e,t,s,i,n,l)=>(void 0!==this.prevLanes&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:n,lanes:l}),{key:!1}),this.getMeasurements=l(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:n,lanes:l},r)=>{if(!n)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),0!==this.measurementsCache.length||this.lanesSettling||(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let o=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);let a=this.measurementsCache.slice(0,o),h=Array(l).fill(void 0);for(let e=0;e<o;e++){let t=a[e];t&&(h[t.lane]=e)}for(let n=o;n<e;n++){let e,l,o=i(n),u=this.laneAssignments.get(n);if(void 0!==u&&this.options.lanes>1){let i=h[e=u],n=void 0!==i?a[i]:void 0;l=n?n.end+this.options.gap:t+s}else{let i=1===this.options.lanes?a[n-1]:this.getFurthestMeasurement(a,n);l=i?i.end+this.options.gap:t+s,e=i?i.lane:n%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(n,e)}let c=r.get(o),d="number"==typeof c?c:this.options.estimateSize(n),f=l+d;a[n]={index:n,start:l,size:d,end:f,key:o,lane:e},h[e]=n}return this.measurementsCache=a,a},{key:!1,debug:()=>this.options.debug}),this.calculateRange=l(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,i)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:s,lanes:i}){let n=e.length-1;if(e.length<=i)return{startIndex:0,endIndex:n};let l=v(0,n,t=>e[t].start,s),r=l;if(1===i)for(;r<n&&e[r].end<s+t;)r++;else if(i>1){let o=Array(i).fill(0);for(;r<n&&o.some(e=>e<s+t);){let t=e[r];o[t.lane]=t.end,r++}let a=Array(i).fill(s+t);for(;l>=0&&a.some(e=>e>=s);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%i),r=Math.min(n,r+(i-1-r%i))}return{startIndex:l,endIndex:r}}({measurements:e,outerSize:t,scrollOffset:s,lanes:i}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=l(()=>{let e=null,t=null,s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,i,n)=>null===i||null===n?[]:e({startIndex:i,endIndex:n,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||"smooth"!==this.scrollState.behavior)return!0;let s=this.scrollState.index??(null==(t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))?void 0:t.index);if(void 0!==s&&this.range){let t=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),i=Math.max(0,s-t),n=Math.min(this.options.count-1,s+t);return e>=i&&e<=n}return!0},this.measureElement=e=>{if(!e)return void this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});let t=this.indexFromElement(e),s=this.options.getItemKey(t),i=this.elementsCache.get(s);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s;let i=this.measurementsCache[e];if(!i)return;let n=t-(this.itemSizeCache.get(i.key)??i.size);0!==n&&((null==(s=this.scrollState)?void 0:s.behavior)!=="smooth"&&(void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(i,n,this):i.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=n,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(i.index),this.itemSizeCache=new Map(this.itemSizeCache.set(i.key,t)),this.notify(!1))},this.getVirtualItems=l(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let s=[];for(let i=0,n=e.length;i<n;i++){let n=t[e[i]];s.push(n)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return r(t[v(0,t.length-1,e=>r(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;let i=this.getSize(),n=this.getScrollOffset();return"auto"===t&&(t=e>=n+i?"end":"start"),"center"===t?e+=(s-i)/2:"end"===t&&(e-=i),Math.max(Math.min(this.getMaxScrollOffset(),e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let s=this.getSize(),i=this.getScrollOffset(),n=this.measurementsCache[e];if(!n)return;if("auto"===t)if(n.end>=i+s-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=i+this.options.scrollPaddingStart))return[i,t];t="start"}if("end"===t&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let l="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,n.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{let i=this.getOffsetForAlignment(e,t),n=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:n,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let i=this.getOffsetForIndex(e,t);if(!i)return;let[n,l]=i,r=this.now();this.scrollState={index:e,align:l,behavior:s,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{let s=this.getScrollOffset()+e,i=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:i,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var e;let t,s=this.getMeasurements();if(0===s.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=s[s.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),i=s.length-1;for(;i>=0&&e.some(e=>null===e);){let t=s[i];null===e[t.lane]&&(e[t.lane]=t.end),i--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(e)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}null==this.rafId&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=null!=this.scrollState.index?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,t=e?e[0]:this.scrollState.lastTargetOffset,s=t!==this.scrollState.lastTargetOffset;if(!s&&1.01>Math.abs(t-this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.scrollState=null;return}}else this.scrollState.stableFrames=0,s&&(this.scrollState.lastTargetOffset=t,this.scrollState.behavior="auto",this._scrollToOffset(t,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}let v=(e,t,s,i)=>{for(;e<=t;){let n=(e+t)/2|0,l=s(n);if(l<i)e=n+1;else{if(!(l>i))return n;t=n-1}}return e>0?e-1:0},S="undefined"!=typeof document?i.useLayoutEffect:i.useEffect;function b(e){return function({useFlushSync:e=!0,...t}){let s=i.useReducer(()=>({}),{})[1],l={...t,onChange:(i,l)=>{var r;e&&l?(0,n.flushSync)(s):s(),null==(r=t.onChange)||r.call(t,i,l)}},[r]=i.useState(()=>new p(l));return r.setOptions(l),S(()=>r._didMount(),[]),S(()=>r._willUpdate()),r}({observeElementRect:u,observeElementOffset:f,scrollToFn:m,...e})}},83101:(e,t,s)=>{s.d(t,{F:()=>r});var i=s(2821);let n=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,l=i.$,r=(e,t)=>s=>{var i;if((null==t?void 0:t.variants)==null)return l(e,null==s?void 0:s.class,null==s?void 0:s.className);let{variants:r,defaultVariants:o}=t,a=Object.keys(r).map(e=>{let t=null==s?void 0:s[e],i=null==o?void 0:o[e];if(null===t)return null;let l=n(t)||n(i);return r[e][l]}),h=s&&Object.entries(s).reduce((e,t)=>{let[s,i]=t;return void 0===i||(e[s]=i),e},{});return l(e,a,null==t||null==(i=t.compoundVariants)?void 0:i.reduce((e,t)=>{let{class:s,className:i,...n}=t;return Object.entries(n).every(e=>{let[t,s]=e;return Array.isArray(s)?s.includes({...o,...h}[t]):({...o,...h})[t]===s})?[...e,s,i]:e},[]),null==s?void 0:s.class,null==s?void 0:s.className)}},86651:(e,t,s)=>{s.d(t,{A:()=>i});let i=(0,s(70814).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},94446:(e,t,s)=>{s.d(t,{s:()=>r,t:()=>l});var i=s(12115);function n(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function l(...e){return t=>{let s=!1,i=e.map(e=>{let i=n(e,t);return s||"function"!=typeof i||(s=!0),i});if(s)return()=>{for(let t=0;t<i.length;t++){let s=i[t];"function"==typeof s?s():n(e[t],null)}}}}function r(...e){return i.useCallback(l(...e),e)}}}]);
|